avcodec/mpeg4_unpack_bframes_bsf: implement a AVBSFContext.flush() callback
authorJames Almer <jamrial@gmail.com>
Fri, 27 Jul 2018 01:26:01 +0000 (22:26 -0300)
committerJames Almer <jamrial@gmail.com>
Fri, 17 Aug 2018 02:43:12 +0000 (23:43 -0300)
Signed-off-by: James Almer <jamrial@gmail.com>
libavcodec/mpeg4_unpack_bframes_bsf.c

index c2b779a..e9c535f 100644 (file)
@@ -166,6 +166,12 @@ static int mpeg4_unpack_bframes_init(AVBSFContext *ctx)
     return 0;
 }
 
+static void mpeg4_unpack_bframes_flush(AVBSFContext *bsfc)
+{
+    UnpackBFramesBSFContext *ctx = bsfc->priv_data;
+    av_packet_unref(ctx->b_frame);
+}
+
 static void mpeg4_unpack_bframes_close(AVBSFContext *bsfc)
 {
     UnpackBFramesBSFContext *ctx = bsfc->priv_data;
@@ -181,6 +187,7 @@ const AVBitStreamFilter ff_mpeg4_unpack_bframes_bsf = {
     .priv_data_size = sizeof(UnpackBFramesBSFContext),
     .init           = mpeg4_unpack_bframes_init,
     .filter         = mpeg4_unpack_bframes_filter,
+    .flush          = mpeg4_unpack_bframes_flush,
     .close          = mpeg4_unpack_bframes_close,
     .codec_ids      = codec_ids,
 };