]> git.sesse.net Git - ffmpeg/commitdiff
gsmdec: add flush function to reset the decoder state when seeking
authorJustin Ruggles <justin.ruggles@gmail.com>
Fri, 28 Oct 2011 14:07:41 +0000 (10:07 -0400)
committerJustin Ruggles <justin.ruggles@gmail.com>
Wed, 2 Nov 2011 18:41:16 +0000 (14:41 -0400)
libavcodec/gsmdec.c

index 26340c2792666a1a51ea73700350478171d53a74..77c22e5d79dc0b0039fef7a966cae3ce9ad36c7f 100644 (file)
@@ -87,6 +87,12 @@ static int gsm_decode_frame(AVCodecContext *avctx, void *data,
     return avctx->block_align;
 }
 
+static void gsm_flush(AVCodecContext *avctx)
+{
+    GSMContext *s = avctx->priv_data;
+    memset(s, 0, sizeof(*s));
+}
+
 AVCodec ff_gsm_decoder = {
     .name           = "gsm",
     .type           = AVMEDIA_TYPE_AUDIO,
@@ -94,6 +100,7 @@ AVCodec ff_gsm_decoder = {
     .priv_data_size = sizeof(GSMContext),
     .init           = gsm_init,
     .decode         = gsm_decode_frame,
+    .flush          = gsm_flush,
     .long_name = NULL_IF_CONFIG_SMALL("GSM"),
 };
 
@@ -104,5 +111,6 @@ AVCodec ff_gsm_ms_decoder = {
     .priv_data_size = sizeof(GSMContext),
     .init           = gsm_init,
     .decode         = gsm_decode_frame,
+    .flush          = gsm_flush,
     .long_name = NULL_IF_CONFIG_SMALL("GSM Microsoft variant"),
 };