summaryrefslogtreecommitdiff
path: root/libavcodec/h264_metadata_bsf.c
diff options
context:
space:
mode:
authorMark Thompson <sw@jkqxz.net>2018-05-07 23:12:28 +0100
committerMark Thompson <sw@jkqxz.net>2018-05-10 23:53:54 +0100
commit9d375e114ac240ccff77d75724f6bc0e2210a1ba (patch)
tree8bf8613fd0ec0efe3359ff845c6b3b1cbbef618c /libavcodec/h264_metadata_bsf.c
parent2b412135009204246cb18f5dd784fb1b916c2518 (diff)
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.
Diffstat (limited to 'libavcodec/h264_metadata_bsf.c')
-rw-r--r--libavcodec/h264_metadata_bsf.c9
1 files 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);