2015-09-15 3 views
1

En essayant de modifier le code source android afin d'obtenir le codec vocal vocal qui est négocié dans chaque appel GSM. Au début, j'ai plongé dans des fichiers sources comme AudioPolicyManager et quelques autres fichiers soc du noyau Linux. Ce que vous obtenez lorsque vous écrivez des journaux supplémentaires dans ces fichiers est que le haut-parleur et le microphone sont toujours réglés sur la même fréquence (le maximum que je suppose, 48000Hz dans mon cas avec les haut-parleurs). Je suis assez sûr que la voix n'est pas transmise avec une telle fréquence, le noyau de la téléphonie négocie une méthode de compression de la voix avant de la pousser dans le canal. J'ai aussi essayé de le récupérer via des commandes AT sans succès, même s'il y a des commandes propriétaires qui n'ont pas de doc.Android RIL speech_codec_info

Enfin j'eu une brève vue dans le journal radio RIL (logcat la radio -b) et je trouve cette ligne:

I/RILQ (331): (0/331): RIL [0] [événement ] qcril_qmi_voice_send_unsol_voice_speech_codec_info_htc: android_call_id = 1, codec = 7

Je pense que cela me permettra de savoir quel codec vocal est négocié avant de configurer un appel GSM, mais ce code source n'est pas ouvert. C'est une bibliothèque * .so compilée (./vendor/htc/m8/proprietary/blobs/gsm/vendor/lib/libril-qc-qmi-1.so)

J'ai également démonté (objdump) que dans afin d'obtenir quelle voix codec correspond à 7 mais je suppose que je vais perdre mon temps à regarder cet assemblage. Donc, ma question est la suivante: Est-ce que quelqu'un sait s'il y a un libril.c open source libre afin de me faire une idée quels codes de la parole correspondent à ces valeurs entières ?. À ce moment, mon opérateur de téléphonie déclare qu'ils supportent AMR-WB dans les appels 3g. Si j'ai trouvé un fichier source dans lequel le codec 7 correspond à AMR-WB, je serai presque sûr que mon opérateur de téléphonie a raison.

Note: Je ne recherche pas HD-Voice sur 4G, je sais déjà comment le vérifier.

Merci d'avance

+0

je l'ai testé en mode GSM 2G et je reçois codec = 6. Le point est ce qui correspond codec lisibles par l'homme avec chaque numéro –

Répondre

1
CODEC_QCELP13K = 0x0001 
    CODEC_EVRC = 0x0002 
    CODEC_EVRC_B = 0x0003 
    CODEC_EVRC_WB = 0x0004 
    CODEC_EVRC_NW = 0x0005 
    CODEC_AMR_NB = 0x0006 
    CODEC_AMR_WB = 0x0007 
    CODEC_GSM_EFR = 0x0008 
    CODEC_GSM_FR = 0x0009 
    CODEC_GSM_HR = 0x000A 
    CODEC_G711U = 0x000B 
    CODEC_G723 = 0x000C 
    CODEC_G711A = 0x000D 
    CODEC_G722 = 0x000E 
    CODEC_G711AB = 0x000F 
    CODEC_G729 = 0x0010 
    CODEC_EVS_NB = 0x0011 
    CODEC_EVS_WB = 0x0012 
    CODEC_EVS_SWB = 0x0013 
    CODEC_EVS_FB = 0x0014 

Comme Chus Muñoz mentionné, 7 représente AMR à large bande

+0

Merci beaucoup, j'apprécie vraiment une telle information utile. Où as-tu eu ça? –

0

À qui de droit.

Je confirme fortement que voice_codec = 7 est le codec AMR_WB sur 3G. J'ai acheté une sierra sans fil afin d'obtenir le codec via la commande AT et cela le confirme vraiment. Cette solution applique pour toutes les séries msm8974