Signed-off-by: James Almer <jamr...@gmail.com> --- libavcodec/h264_redundant_pps_bsf.c | 9 +++++++++ 1 file changed, 9 insertions(+)
diff --git a/libavcodec/h264_redundant_pps_bsf.c b/libavcodec/h264_redundant_pps_bsf.c index 24b7b6730..d806427da 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, -- 2.18.0 _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel