Pregunta

Estoy usando esta función para decodificar audio, pero no hay sonido:

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

Los datos se descargan con éxito, pero no sé a dónde ir desde aquí, ya que no hay sonido en absoluto.

¿Fue útil?

Solución

Si utiliza avcodec_decode_audio3 En su lugar, se cose funcionar:

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

Pero probablemente deberías usar avcodec_decode_audio4 como avcodec_decode_audio3 costuras para estar en desuso. No sé mucho sobre FFMPEG/Libav, pero supongo que el Audio4 usa el sistema de búfer en Libav en lugar de pasar un búfer.

Tal vez esta diferencia le dé una pista de cómo usar audio4:

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top