summaryrefslogtreecommitdiff
path: root/libavcodec/h264_redundant_pps_bsf.c
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2018-07-26 22:32:15 -0300
committerJames Almer <jamrial@gmail.com>2018-08-16 23:43:12 -0300
commit2954e513930f9b1bc2cfba49eed3fc1911e76892 (patch)
tree74075c8b5f4a611df95131d3745ced516ee40809 /libavcodec/h264_redundant_pps_bsf.c
parente5b1f2b02749c7fb02a26b65adb72fd9fdf630be (diff)
avcodec/h264_redundant_pps_bsf: implement a AVBSFContext.flush() callback
Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavcodec/h264_redundant_pps_bsf.c')
-rw-r--r--libavcodec/h264_redundant_pps_bsf.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/libavcodec/h264_redundant_pps_bsf.c b/libavcodec/h264_redundant_pps_bsf.c
index 26baca84e3..cc5a3060f5 100644
--- a/libavcodec/h264_redundant_pps_bsf.c
+++ b/libavcodec/h264_redundant_pps_bsf.c
@@ -35,6 +35,7 @@ typedef struct H264RedundantPPSContext {
int global_pic_init_qp;
int current_pic_init_qp;
+ int extradata_pic_init_qp;
} H264RedundantPPSContext;
@@ -145,6 +146,7 @@ static int h264_redundant_pps_init(AVBSFContext *bsf)
h264_redundant_pps_fixup_pps(ctx, au->units[i].content);
}
+ ctx->extradata_pic_init_qp = ctx->current_pic_init_qp;
err = ff_cbs_write_extradata(ctx->output, bsf->par_out, au);
if (err < 0) {
av_log(bsf, AV_LOG_ERROR, "Failed to write extradata.\n");
@@ -157,6 +159,12 @@ static int h264_redundant_pps_init(AVBSFContext *bsf)
return 0;
}
+static void h264_redundant_pps_flush(AVBSFContext *bsf)
+{
+ H264RedundantPPSContext *ctx = bsf->priv_data;
+ ctx->current_pic_init_qp = ctx->extradata_pic_init_qp;
+}
+
static void h264_redundant_pps_close(AVBSFContext *bsf)
{
H264RedundantPPSContext *ctx = bsf->priv_data;
@@ -172,6 +180,7 @@ const AVBitStreamFilter ff_h264_redundant_pps_bsf = {
.name = "h264_redundant_pps",
.priv_data_size = sizeof(H264RedundantPPSContext),
.init = &h264_redundant_pps_init,
+ .flush = &h264_redundant_pps_flush,
.close = &h264_redundant_pps_close,
.filter = &h264_redundant_pps_filter,
.codec_ids = h264_redundant_pps_codec_ids,