aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustin Ruggles <justin.ruggles@gmail.com>2012-08-06 13:06:25 -0400
committerJustin Ruggles <justin.ruggles@gmail.com>2012-08-06 14:39:21 -0400
commitfdbeae449030543525ce45b048c0241643ce02ef (patch)
treefc43e526088eb5ec825f7d9a01559961b8959192
parent2fa57c9daf5b535bf9aa5253b45cc3df6bc05aa8 (diff)
downloadffmpeg-fdbeae449030543525ce45b048c0241643ce02ef.tar.gz
mpc8: add a flush function
Ensures that the next frame decoded after seeking will be decoded as a keyframe.
-rw-r--r--libavcodec/mpc8.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/libavcodec/mpc8.c b/libavcodec/mpc8.c
index f2e8342dcb..639adaac3b 100644
--- a/libavcodec/mpc8.c
+++ b/libavcodec/mpc8.c
@@ -420,6 +420,12 @@ static int mpc8_decode_frame(AVCodecContext * avctx, void *data,
return c->cur_frame ? c->last_bits_used >> 3 : buf_size;
}
+static av_cold void mpc8_decode_flush(AVCodecContext *avctx)
+{
+ MPCContext *c = avctx->priv_data;
+ c->cur_frame = 0;
+}
+
AVCodec ff_mpc8_decoder = {
.name = "mpc8",
.type = AVMEDIA_TYPE_AUDIO,
@@ -427,6 +433,7 @@ AVCodec ff_mpc8_decoder = {
.priv_data_size = sizeof(MPCContext),
.init = mpc8_decode_init,
.decode = mpc8_decode_frame,
+ .flush = mpc8_decode_flush,
.capabilities = CODEC_CAP_DR1,
.long_name = NULL_IF_CONFIG_SMALL("Musepack SV8"),
};