Android RIL speech_codec_info
Я пытаюсь изменить исходный код Android, чтобы получить голосовой речевой кодек, который согласовывается в каждом вызове GSM.
Сначала я погрузился в исходные файлы, такие как AudioPolicyManager и некоторые другие файлы соц ядра Linux. Когда вы записываете дополнительные записи в эти файлы, вы получаете то, что динамик и микрофон всегда настроены на одну и ту же частоту (максимальное значение, я думаю, 48000 Гц в моем случае с динамиками). Я почти уверен, что голос не передается с такой частотой, ядро телефонии согласовывает метод сжатия голоса, прежде чем вставить его в канал. Я также безуспешно пытался восстановить его с помощью AT-команд, даже когда есть некоторые пропетирские команды, у которых нет документации.
Наконец, у меня был краткий обзор радио-журнала RIL (logcat -b radio), и я нашел эту строку:
I / RILQ (331): (0/331): RIL [0] [событие] qcril_qmi_voice_send_unsol_voice_speech_codec_info_htc: android_call_id = 1, кодек = 7
Я думаю, что это даст мне уверенность в том, какой речевой кодек согласован перед установкой вызова GSM, однако этот исходный код не открыт. Это *.so скомпилированная библиотека (./vendor/htc/m8/pprietary/blobs/gsm/vendor/lib/libril-qc-qmi-1.so)
Я также разобрал (objdump), что для того, чтобы узнать, какой голосовой кодек соответствует 7, но я думаю, что я потрачу впустую свое время, просматривая эту сборку.
Итак, мой вопрос: кто-нибудь знает, есть ли какой-нибудь бесплатный открытый код libril.c, чтобы дать мне представление о том, какие речевые коды соответствуют этим целым значениям? В этот момент мой оператор телефонии заявляет, что он поддерживает AMR-WB в вызовах 3g. Если я найду какой-нибудь исходный файл, в котором кодек 7 соответствует AMR-WB, я почти уверен, что мой оператор телефонии прав.
Примечание: я не ищу HD-Voice более 4G, я уже знаю, как это проверить.
заранее спасибо
2 ответа
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
Как упомянул Чус Муньос, 7 представляет широкополосный AMR
Для предъявления по месту требования.
Я настоятельно подтверждаю, что voice_codec=7 является кодеком AMR_WB через 3G. Я купил беспроводную связь Sierra, чтобы получить кодек через AT-команду, и это действительно подтверждает это. Это решение применимо для всех серий msm8974