summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2016-05-12 09:20:19 +0200
committerAnton Khirnov <anton@khirnov.net>2016-05-19 14:17:03 +0200
commita1df7865039b8a7743f9067300c0b367db50a727 (patch)
tree2266649b519870f82d0352601a2c4c6a2c1f1388
parentcea1fb854c26a1d8c8857ec94adeb8a19beb5004 (diff)
nvenc: only write the VUI signal type fields if they are set
Based on a patch by Agatha Hu <ahu@nvidia.com>.
-rw-r--r--libavcodec/nvenc.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c
index 283a71c294..d28b347c6b 100644
--- a/libavcodec/nvenc.c
+++ b/libavcodec/nvenc.c
@@ -588,8 +588,9 @@ static int nvenc_setup_h264_config(AVCodecContext *avctx)
NV_ENC_CONFIG_H264 *h264 = &cc->encodeCodecConfig.h264Config;
NV_ENC_CONFIG_H264_VUI_PARAMETERS *vui = &h264->h264VUIParameters;
- vui->colourDescriptionPresentFlag = 1;
- vui->videoSignalTypePresentFlag = 1;
+ vui->colourDescriptionPresentFlag = avctx->colorspace != AVCOL_SPC_UNSPECIFIED ||
+ avctx->color_primaries != AVCOL_PRI_UNSPECIFIED ||
+ avctx->color_trc != AVCOL_TRC_UNSPECIFIED;
vui->colourMatrix = avctx->colorspace;
vui->colourPrimaries = avctx->color_primaries;
@@ -597,6 +598,9 @@ static int nvenc_setup_h264_config(AVCodecContext *avctx)
vui->videoFullRangeFlag = avctx->color_range == AVCOL_RANGE_JPEG;
+ vui->videoSignalTypePresentFlag = vui->colourDescriptionPresentFlag ||
+ vui->videoFullRangeFlag;
+
h264->disableSPSPPS = (avctx->flags & AV_CODEC_FLAG_GLOBAL_HEADER) ? 1 : 0;
h264->repeatSPSPPS = (avctx->flags & AV_CODEC_FLAG_GLOBAL_HEADER) ? 0 : 1;
h264->outputAUD = 1;