Lte-Voip通话与3G通话的PCM语音区别

       两个手机同时打开Lte-Voip,通话,由于之前做了一个加密功能,

在3G,2G通话都没有问题,正常,其中一个手机是4G,也正常;如果

同时是4G Voip,会出现提示“网络信号错误,丢失,无法通话”;

        查看了初步的代码,得出基本的结论,修改的代码不会影响网络,只

可能是Modem直接死掉;然后根据这个原则,判断是内存分配或使用上的问题;

经过log打印,发现果真如此。

         原来2G,3G,4G在数据的up,dn时,所采用的编码格式不一样,4G Voip

实际上走的数据业务,可通讯的语音数据量大了一倍640,另外4G语音PCM采样率也大一倍16K,

所以问题.... 

解决方案,使用动态获取返回大小。

Android侧代码:

扫描二维码关注公众号,回复: 10435835 查看本文章

retval = mSpeechMessenger->readMdDataFromShareMemory(
                             mP4WSDBuf,
                             &data_type,
                             &data_size,
                             p_sph_msg->length,
                             p_sph_msg->rw_index);

        // share memory
        retval = mSpeechMessenger->writeApDataToShareMemory(mMicData,
                                                            SHARE_BUFF_DATA_TYPE_PCM_FillSE,
                                                            320,  /////  首要怀疑点,
                                                            &payload_length,
                                                            &write_idx);

Modem侧代码:

void spc_pcmNWay_writeSEDataDone(kal_uint16 offset,  {

   ASSERT(info.syncWord == 0xA2A2);
   ASSERT(info.type == AUD_CCCI_STRMBUF_TYPE_PCM_FillSE);
   ASSERT(info.length == (length - sizeof(spcBufInfo)));

    if(info.length >0){
        ASSERT(info.length == gSpc_Pcm4way.seBufSize);

发布了83 篇原创文章 · 获赞 61 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/junwua/article/details/83272438