[FFmpeg-devel] mp3 seeking issue.
Dale Curtis
dalecurtis at chromium.org
Sun Oct 21 19:51:50 CEST 2012
On Sun, Oct 21, 2012 at 12:45 AM, Reimar Döffinger <Reimar.Doeffinger at gmx.de
> wrote:
>
> I think this is a very long standing bug in the MP3 decoder, it probably
> does not reset some of the state in the flush function.
> Nobody ever investigated it properly to my knowledge.
I had some time this morning, I'm not sure if this is correct but it gets
rid of most of the seek artifacting:
diff --git a/libavcodec/mpegaudiodec.c b/libavcodec/mpegaudiodec.c
index 77f86c5..1c1e317 100644
--- a/libavcodec/mpegaudiodec.c
+++ b/libavcodec/mpegaudiodec.c
@@ -1716,6 +1716,9 @@ static void flush(AVCodecContext *avctx)
{
MPADecodeContext *s = avctx->priv_data;
memset(s->synth_buf, 0, sizeof(s->synth_buf));
+ memset(s->last_buf, 0, sizeof(s->last_buf));
+ memset(s->sb_samples, 0, sizeof(s->sb_samples));
+
s->last_buf_size = 0;
}
There's still a slight clicking noise, but otherwise it sounds much better.
More information about the ffmpeg-devel
mailing list