Commit 180bf988 authored by Justin Ruggles's avatar Justin Ruggles

mp3on4: create a separate flush function for MP3onMP4.

The correct decoder private context needs to be used.
This fixes mp3on4 playback and seeking in avplay.
parent 53c8443a
...@@ -2004,6 +2004,19 @@ alloc_fail: ...@@ -2004,6 +2004,19 @@ alloc_fail:
} }
static void flush_mp3on4(AVCodecContext *avctx)
{
int i;
MP3On4DecodeContext *s = avctx->priv_data;
for (i = 0; i < s->frames; i++) {
MPADecodeContext *m = s->mp3decctx[i];
memset(m->synth_buf, 0, sizeof(m->synth_buf));
m->last_buf_size = 0;
}
}
static int decode_frame_mp3on4(AVCodecContext * avctx, static int decode_frame_mp3on4(AVCodecContext * avctx,
void *data, int *data_size, void *data, int *data_size,
AVPacket *avpkt) AVPacket *avpkt)
...@@ -2148,7 +2161,7 @@ AVCodec ff_mp3on4_decoder = { ...@@ -2148,7 +2161,7 @@ AVCodec ff_mp3on4_decoder = {
.init = decode_init_mp3on4, .init = decode_init_mp3on4,
.close = decode_close_mp3on4, .close = decode_close_mp3on4,
.decode = decode_frame_mp3on4, .decode = decode_frame_mp3on4,
.flush = flush, .flush = flush_mp3on4,
.long_name = NULL_IF_CONFIG_SMALL("MP3onMP4"), .long_name = NULL_IF_CONFIG_SMALL("MP3onMP4"),
}; };
#endif #endif
......
...@@ -83,7 +83,7 @@ AVCodec ff_mp3on4float_decoder = { ...@@ -83,7 +83,7 @@ AVCodec ff_mp3on4float_decoder = {
.init = decode_init_mp3on4, .init = decode_init_mp3on4,
.close = decode_close_mp3on4, .close = decode_close_mp3on4,
.decode = decode_frame_mp3on4, .decode = decode_frame_mp3on4,
.flush = flush, .flush = flush_mp3on4,
.long_name = NULL_IF_CONFIG_SMALL("MP3onMP4"), .long_name = NULL_IF_CONFIG_SMALL("MP3onMP4"),
}; };
#endif #endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment