Estoy implementando un decodificador de audio usando ffmpeg. Mientras leo el audio e incluso busco que funcione, no puedo encontrar una manera de limpiar los buffers después de buscar, así que no tengo artefactos cuando la aplicación comienza a leer el audio inmediatamente después de buscar.FFMPEG Buscando trae artefactos de audio
avcodec_flush_buffers no parece tener ningún efecto en los búfers internos. Este problema ocurre con todos los decodificadores (mp3, aac, wma, ...) pero con PCM/WAV (que no usa los búfers internos para guardar los datos para decodificar ya que el audio no está comprimido).
El fragmento de código es simple:
av_seek_frame(audioFilePack->avContext, audioFilePack->stream, posInTimeFrame, AVSEEK_FLAG_ANY);
avcodec_flush_buffers(audioFilePack->avContext->streams[audioFilePack->stream]->codec);
Explicando:
audioFilePack->avContext = FormatContext
audioFilePack->stream = Stream Position (also used to read audio packets)
audioFilePack->avContext->streams[audioFilePack->stream]->codec = CodecContext for the codec used
¿Alguna idea sobre lo que debe hacer para que pueda buscar y obtener sin audio residual? Gracias!
¿No hay ideas? Estoy tratando de arreglar esto por casi 2 semanas sin ninguna idea sobre lo que puede estar causando esto ... ¿debería funcionar como está? –
El mensaje también se envió a la lista de correo oficial de ffmpeg-usuario. Ayuda aún necesitada –
¿Puedes describir los artefactos con más detalle? ¿Son clics y pops? –