当前位置: 代码迷 >> 多媒体/流媒体开发 >> 音频解码有关问题
  详细解决方案

音频解码有关问题

热度:2136   发布时间:2013-02-26 00:00:00.0
音频解码问题
代码如下,数据保存到文件可正常播放,但就是不能边解码边放
C/C++ code
HRESULT CMyAudioSourceStream::FillBuffer(IMediaSample *pms){    CheckPointer(pms,E_POINTER);    BYTE *pData;    int DataLen,de_size,cmp_size;    pms->GetPointer(&pData);    DataLen=pms->GetSize();    de_size=0;    cmp_size=0;    int MyRecv=recv(aClient,(char *)buffer,AVCODEC_MAX_AUDIO_FRAME_SIZE,0);    if (MyRecv>0)    {        fwrite(buffer,MyRecv,1,TestFile);        while (DataLen!=0 && MyRecv>0)        {           int out_size=avcodec_decode_audio2(c,(int16_t *)pData,&DataLen,buffer,MyRecv);           if (out_size<0)            {               break;           }           MyRecv-=out_size;           buffer+=out_size;           cmp_size+=out_size;           pData+=DataLen;           de_size+=DataLen;                   }        pData-=de_size;        buffer-=cmp_size;        pms->SetActualDataLength(de_size);        pms->SetSyncPoint(TRUE);        pms->SetTime(0,0);    }    return NOERROR;} 


------解决方案--------------------------------------------------------
边解码边放必须要有一个原则就是不要破坏一个完整的sample
  相关解决方案