Update VIDEO_CS_DEFAULT to mean 709 instead of 601
Consistent with modified default UI setting.
This commit is contained in:
@@ -431,12 +431,12 @@ static bool init_encoder(struct nvenc_data *enc, obs_data_t *settings)
|
||||
vui_params->colourDescriptionPresentFlag = 1;
|
||||
|
||||
switch (voi->colorspace) {
|
||||
case VIDEO_CS_DEFAULT:
|
||||
case VIDEO_CS_601:
|
||||
vui_params->colourPrimaries = 6;
|
||||
vui_params->transferCharacteristics = 6;
|
||||
vui_params->colourMatrix = 6;
|
||||
break;
|
||||
case VIDEO_CS_DEFAULT:
|
||||
case VIDEO_CS_709:
|
||||
vui_params->colourPrimaries = 1;
|
||||
vui_params->transferCharacteristics = 1;
|
||||
|
@@ -160,12 +160,12 @@ static void add_video_encoder_params(struct ffmpeg_muxer *stream,
|
||||
enum AVColorTransferCharacteristic trc = AVCOL_TRC_UNSPECIFIED;
|
||||
enum AVColorSpace spc = AVCOL_SPC_UNSPECIFIED;
|
||||
switch (info->colorspace) {
|
||||
case VIDEO_CS_DEFAULT:
|
||||
case VIDEO_CS_601:
|
||||
pri = AVCOL_PRI_SMPTE170M;
|
||||
trc = AVCOL_TRC_SMPTE170M;
|
||||
spc = AVCOL_SPC_SMPTE170M;
|
||||
break;
|
||||
case VIDEO_CS_DEFAULT:
|
||||
case VIDEO_CS_709:
|
||||
pri = AVCOL_PRI_BT709;
|
||||
trc = AVCOL_TRC_BT709;
|
||||
|
@@ -241,12 +241,12 @@ static bool nvenc_update(void *data, obs_data_t *settings)
|
||||
enc->context->max_b_frames = bf;
|
||||
|
||||
switch (info.colorspace) {
|
||||
case VIDEO_CS_DEFAULT:
|
||||
case VIDEO_CS_601:
|
||||
enc->context->color_trc = AVCOL_TRC_SMPTE170M;
|
||||
enc->context->color_primaries = AVCOL_PRI_SMPTE170M;
|
||||
enc->context->colorspace = AVCOL_SPC_SMPTE170M;
|
||||
break;
|
||||
case VIDEO_CS_DEFAULT:
|
||||
case VIDEO_CS_709:
|
||||
enc->context->color_trc = AVCOL_TRC_BT709;
|
||||
enc->context->color_primaries = AVCOL_PRI_BT709;
|
||||
|
@@ -1088,11 +1088,11 @@ static bool try_connect(struct ffmpeg_output *output)
|
||||
config.color_range = voi->range == VIDEO_RANGE_FULL ? AVCOL_RANGE_JPEG
|
||||
: AVCOL_RANGE_MPEG;
|
||||
switch (voi->colorspace) {
|
||||
case VIDEO_CS_DEFAULT:
|
||||
case VIDEO_CS_601:
|
||||
config.color_primaries = AVCOL_PRI_SMPTE170M;
|
||||
config.color_trc = AVCOL_TRC_SMPTE170M;
|
||||
break;
|
||||
case VIDEO_CS_DEFAULT:
|
||||
case VIDEO_CS_709:
|
||||
config.color_primaries = AVCOL_PRI_BT709;
|
||||
config.color_trc = AVCOL_TRC_BT709;
|
||||
@@ -1104,18 +1104,9 @@ static bool try_connect(struct ffmpeg_output *output)
|
||||
}
|
||||
|
||||
if (format_is_yuv(voi->format)) {
|
||||
switch (voi->colorspace) {
|
||||
case VIDEO_CS_DEFAULT:
|
||||
case VIDEO_CS_601:
|
||||
config.colorspace = AVCOL_SPC_SMPTE170M;
|
||||
break;
|
||||
case VIDEO_CS_709:
|
||||
config.colorspace = AVCOL_SPC_BT709;
|
||||
break;
|
||||
case VIDEO_CS_SRGB:
|
||||
config.colorspace = AVCOL_SPC_BT709;
|
||||
break;
|
||||
}
|
||||
config.colorspace = (voi->colorspace == VIDEO_CS_601)
|
||||
? AVCOL_SPC_SMPTE170M
|
||||
: AVCOL_SPC_BT709;
|
||||
} else {
|
||||
config.colorspace = AVCOL_SPC_RGB;
|
||||
}
|
||||
|
@@ -244,13 +244,29 @@ static bool vaapi_update(void *data, obs_data_t *settings)
|
||||
|
||||
enc->context->time_base = (AVRational){voi->fps_den, voi->fps_num};
|
||||
enc->context->pix_fmt = obs_to_ffmpeg_video_format(info.format);
|
||||
enc->context->colorspace = info.colorspace == VIDEO_CS_709
|
||||
? AVCOL_SPC_BT709
|
||||
: AVCOL_SPC_BT470BG;
|
||||
enc->context->color_range = info.range == VIDEO_RANGE_FULL
|
||||
? AVCOL_RANGE_JPEG
|
||||
: AVCOL_RANGE_MPEG;
|
||||
|
||||
switch (info.colorspace) {
|
||||
case VIDEO_CS_601:
|
||||
enc->context->color_trc = AVCOL_TRC_SMPTE170M;
|
||||
enc->context->color_primaries = AVCOL_PRI_SMPTE170M;
|
||||
enc->context->colorspace = AVCOL_SPC_SMPTE170M;
|
||||
break;
|
||||
case VIDEO_CS_DEFAULT:
|
||||
case VIDEO_CS_709:
|
||||
enc->context->color_trc = AVCOL_TRC_BT709;
|
||||
enc->context->color_primaries = AVCOL_PRI_BT709;
|
||||
enc->context->colorspace = AVCOL_SPC_BT709;
|
||||
break;
|
||||
case VIDEO_CS_SRGB:
|
||||
enc->context->color_trc = AVCOL_TRC_IEC61966_2_1;
|
||||
enc->context->color_primaries = AVCOL_PRI_BT709;
|
||||
enc->context->colorspace = AVCOL_SPC_BT709;
|
||||
break;
|
||||
}
|
||||
|
||||
if (keyint_sec > 0) {
|
||||
enc->context->gop_size =
|
||||
keyint_sec * voi->fps_num / voi->fps_den;
|
||||
|
Reference in New Issue
Block a user