diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2014-06-06 22:38:37 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-06-06 22:54:22 +0200 |
commit | 3b42a8e43924b9dd160e5e3f30d883a45aff3299 (patch) | |
tree | 719139743a93c44bf22e12f4edd4b84776642c0a /libavcodec | |
parent | 5163fb9446f38eed7b950f285954bb8d3bde3899 (diff) | |
download | ffmpeg-3b42a8e43924b9dd160e5e3f30d883a45aff3299.tar.gz |
avcodec/mpeg12enc: store sequence display extension only if we have something to store in it
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/mpeg12enc.c | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/libavcodec/mpeg12enc.c b/libavcodec/mpeg12enc.c index 568094542f..cb7c367848 100644 --- a/libavcodec/mpeg12enc.c +++ b/libavcodec/mpeg12enc.c @@ -330,17 +330,21 @@ static void mpeg1_encode_sequence_header(MpegEncContext *s) put_bits(&s->pb, 2, s->mpeg2_frame_rate_ext.num-1); // frame_rate_ext_n put_bits(&s->pb, 5, s->mpeg2_frame_rate_ext.den-1); // frame_rate_ext_d - put_header(s, EXT_START_CODE); - put_bits(&s->pb, 4, 2); // sequence display extension - put_bits(&s->pb, 3, 0); // video_format: 0 is components - put_bits(&s->pb, 1, 1); // colour_description - put_bits(&s->pb, 8, s->avctx->color_primaries); // colour_primaries - put_bits(&s->pb, 8, s->avctx->color_trc); // transfer_characteristics - put_bits(&s->pb, 8, s->avctx->colorspace); // matrix_coefficients - put_bits(&s->pb, 14, s->width); // display_horizontal_size - put_bits(&s->pb, 1, 1); // marker_bit - put_bits(&s->pb, 14, s->height); // display_vertical_size - put_bits(&s->pb, 3, 0); // remaining 3 bits are zero padding + if (s->avctx->color_primaries != AVCOL_PRI_UNSPECIFIED || + s->avctx->color_trc != AVCOL_TRC_UNSPECIFIED || + s->avctx->colorspace != AVCOL_SPC_UNSPECIFIED) { + put_header(s, EXT_START_CODE); + put_bits(&s->pb, 4, 2); // sequence display extension + put_bits(&s->pb, 3, 0); // video_format: 0 is components + put_bits(&s->pb, 1, 1); // colour_description + put_bits(&s->pb, 8, s->avctx->color_primaries); // colour_primaries + put_bits(&s->pb, 8, s->avctx->color_trc); // transfer_characteristics + put_bits(&s->pb, 8, s->avctx->colorspace); // matrix_coefficients + put_bits(&s->pb, 14, s->width); // display_horizontal_size + put_bits(&s->pb, 1, 1); // marker_bit + put_bits(&s->pb, 14, s->height); // display_vertical_size + put_bits(&s->pb, 3, 0); // remaining 3 bits are zero padding + } } put_header(s, GOP_START_CODE); |