From 9d375e114ac240ccff77d75724f6bc0e2210a1ba Mon Sep 17 00:00:00 2001 From: Mark Thompson Date: Mon, 7 May 2018 23:12:28 +0100 Subject: [PATCH] h264_metadata: Fix AUD writing The aud structure exists on the stack, so the variable was previously out-of-scope when the unit is written. --- libavcodec/h264_metadata_bsf.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/libavcodec/h264_metadata_bsf.c b/libavcodec/h264_metadata_bsf.c index 1fbc5e3282..90ad4aad98 100644 --- a/libavcodec/h264_metadata_bsf.c +++ b/libavcodec/h264_metadata_bsf.c @@ -220,6 +220,7 @@ static int h264_metadata_filter(AVBSFContext *bsf, AVPacket *out) AVPacket *in = NULL; CodedBitstreamFragment *au = &ctx->access_unit; int err, i, j, has_sps; + H264RawAUD aud; uint8_t *displaymatrix_side_data = NULL; size_t displaymatrix_side_data_size = 0; @@ -256,9 +257,6 @@ static int h264_metadata_filter(AVBSFContext *bsf, AVPacket *out) 0x3ff, // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int primary_pic_type_mask = 0xff; - H264RawAUD aud = { - .nal_unit_header.nal_unit_type = H264_NAL_AUD, - }; for (i = 0; i < au->nb_units; i++) { if (au->units[i].type == H264_NAL_SLICE || @@ -281,7 +279,10 @@ static int h264_metadata_filter(AVBSFContext *bsf, AVPacket *out) goto fail; } - aud.primary_pic_type = j; + aud = (H264RawAUD) { + .nal_unit_header.nal_unit_type = H264_NAL_AUD, + .primary_pic_type = j, + }; err = ff_cbs_insert_unit_content(ctx->cbc, au, 0, H264_NAL_AUD, &aud, NULL);