我试图修改android的源代码,以获得语音语音编解码器,这是协商在每个GSM呼叫。
一开始,我深入到了一些源文件,如AudioPolicyManager和其他一些Linux内核的soc文件。当你将额外的日志写入这些文件时,扬声器和麦克风总是被设置为相同的频率(我猜,在我的情况下,最大频率是48,000赫兹)。我很确定语音不是以这样的频率传输的,电话核心在将语音压缩方法推入信道之前先协商一种语音压缩方法。我还试图通过AT命令撤回它,但没有成功,即使有一些没有doc的丙型命令。
最后,我简要地查看了RIL无线电日志(logcat -b收音机),并找到了这一行:
I/RILQ ( 331):(0/331):RIL qcril_qmi_voice_send_unsol_voice_speech_codec_info_htc: android_call_id = 1,编解码器=7
我认为这将使我确定在建立GSM呼叫之前,哪个语音编解码器是协商的,但是这个源代码是不开放的。它是一个(./vendor/htc/m8/proprietary/blobs/gsm/vendor/lib/libril-qc-qmi-1.so)的*.so编译库。
我也已经分解(objdump),为了得到哪个语音编解码器对应于7,但我想我会浪费我的时间去寻找那个程序集。
因此,我的问题是:是否有人知道是否有任何免费的开源库c,以便让我知道哪些语音代码与该整数值相对应?此时,我的电话运营商表示,他们在3g通话中支持AMR。如果我找到了一些源文件,其中编解码器7与AMR相对应,我几乎可以肯定我的电话操作员是对的。
注:我不是在寻找高清-声音4G,我已经知道如何检查它。
提前感谢
发布于 2017-06-30 06:14:10
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正如Chus Mu oz提到的,7代表AMR宽带。
发布于 2015-11-06 15:48:02
可能与之有关的人。
我强烈确认voice_codec=7是3G上的AMR_WB编解码器。我买了一个塞拉无线,以便通过AT命令获得编解码器,它确实证实了这一点。此解决方案适用于所有msm8974系列。
https://stackoverflow.com/questions/32582407
复制相似问题