2012-01-10 1 views
0

에는 FFmpeg로 디코딩 WMA : 데이터가 성공적으로 다운로드나는 오디오를 디코딩이 기능을 사용하고 있지만,이 소리없는 아이폰

int decodedBytes; 
decodedBytes = avcodec_decode_audio4(myData->pCodecCtx, myData->myFrame, &data_size, &myData->pkt); 

,하지만 여기에서 어디로 모르겠어요, 전혀 소리가 나지 않기 때문입니다. 당신이 avcodec_decode_audio3를 사용하는 경우

+0

으로 "소리가 나지 않는다"당신은 당신이 아무 소리도 들리지 않는 의미합니까하거나 소리 샘플을 얻을하지 않습니다 데이터? ffmpeg만이 디코딩을 처리합니다. coreaudio, openal 등으로 출력해야합니다. –

+0

더 많은 내용을 입력하십시오. 목표는 무엇입니까? 오류 메시지 또는 코드? 아마 더 필요한 샘플 코드. –

+0

사운드 샘플 데이터가 있습니다. AVCodecContext, AVCodec, AVFrame, AVPacket 및 AVFormatContext의 모든 필드가 채워졌지만 AudioQueueEnqueueBuffer를 사용하여 올바르게 출력하지 못하는 것 같습니다. 더 많은 코드가 필요합니까? 그걸 이메일로 보내 주시겠습니까? 당신의 도움을 주셔서 감사합니다! – Winston

답변

3

대신이 일을 솔기 :

decodedBytes = avcodec_decode_audio3(myData->pCodecCtx, samples, &data_size, &myData->pkt); 

을하지만 당신은 아마되지 수 avcodec_decode_audio4avcodec_decode_audio3으로 솔기를 사용해야합니다. ffmpeg/libav에 대해서는 잘 모르지만 audio4가 버퍼를 전달하는 대신 libav에서 버퍼 시스템을 사용한다고 추측 할 수 있습니다.

아마이 DIFF는 사용하는 방법 audio4 힌트를 줄 것이다 :

http://git.libav.org/?p=libav.git;a=commitdiff;h=f199f38573c4c02753f03ba8db04481038fa6f2e

+0

고마워요! 나는 그것에 대해 살펴보고있다. – Winston

+0

예, avcodec_decode_audio3에서 작동하지만, avcodec_decode_audio4를 사용하여 작동하게 만드는 방법을 알아야합니다. 감사! – Winston

+0

지금까지 avcodec_decode_audio4를 사용하는 데 유용한 변경을 할 수 없었습니다. 어떻게하는지에 대한 아이디어가 있습니까? – Winston

관련 문제