Commit fc43fc9f authored by Justin Ruggles's avatar Justin Ruggles

gsmdec: add flush function to reset the decoder state when seeking

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