libobs: Rename Rec. 2020 to Rec. 2100

Rec. 2020 is really an SDR spec, but I think HDR10 made it okay to slap
PQ on it, call it an HDR spec. Rec. 2100 came along after and formally
allowed the use of PQ/HLG, so we should use 2100 instead.
master
jpark37 2022-04-09 20:54:28 -07:00 committed by Jim
parent 6ed2edde71
commit 59dbc3eb81
18 changed files with 56 additions and 56 deletions

View File

@ -1037,15 +1037,15 @@ Basic.Settings.Advanced.General.ProcessPriority.BelowNormal="Below Normal"
Basic.Settings.Advanced.General.ProcessPriority.Idle="Idle"
Basic.Settings.Advanced.FormatWarning="Warning: Color formats other than NV12/P010 are primarily intended for recording, and are not recommended when streaming. Streaming may incur increased CPU usage due to color format conversion."
Basic.Settings.Advanced.FormatWarning10BitSdr="Warning: 10-bit formats are more commonly used with HDR color spaces."
Basic.Settings.Advanced.FormatWarning2020="Warning: Rec. 2020 should use a format with more precision."
Basic.Settings.Advanced.FormatWarning2100="Warning: Rec. 2100 should use a format with more precision."
Basic.Settings.Advanced.Audio.BufferingTime="Audio Buffering Time"
Basic.Settings.Advanced.Video.ColorFormat="Color Format"
Basic.Settings.Advanced.Video.ColorSpace="Color Space"
Basic.Settings.Advanced.Video.ColorSpace.sRGB="sRGB"
Basic.Settings.Advanced.Video.ColorSpace.601="Rec. 601"
Basic.Settings.Advanced.Video.ColorSpace.709="Rec. 709"
Basic.Settings.Advanced.Video.ColorSpace.2020PQ="Rec. 2020 (PQ)"
Basic.Settings.Advanced.Video.ColorSpace.2020HLG="Rec. 2020 (HLG)"
Basic.Settings.Advanced.Video.ColorSpace.2100PQ="Rec. 2100 (PQ)"
Basic.Settings.Advanced.Video.ColorSpace.2100HLG="Rec. 2100 (HLG)"
Basic.Settings.Advanced.Video.ColorRange="Color Range"
Basic.Settings.Advanced.Video.ColorRange.Partial="Limited"
Basic.Settings.Advanced.Video.ColorRange.Full="Full"

View File

@ -4302,10 +4302,10 @@ static inline enum video_colorspace GetVideoColorSpaceFromName(const char *name)
colorspace = VIDEO_CS_601;
else if (strcmp(name, "709") == 0)
colorspace = VIDEO_CS_709;
else if (strcmp(name, "2020PQ") == 0)
colorspace = VIDEO_CS_2020_PQ;
else if (strcmp(name, "2020HLG") == 0)
colorspace = VIDEO_CS_2020_HLG;
else if (strcmp(name, "2100PQ") == 0)
colorspace = VIDEO_CS_2100_PQ;
else if (strcmp(name, "2100HLG") == 0)
colorspace = VIDEO_CS_2100_HLG;
return colorspace;
}

View File

@ -1033,16 +1033,16 @@ void OBSBasicSettings::LoadColorRanges()
#define CS_SRGB_STR QTStr("Basic.Settings.Advanced.Video.ColorSpace.sRGB")
#define CS_709_STR QTStr("Basic.Settings.Advanced.Video.ColorSpace.709")
#define CS_601_STR QTStr("Basic.Settings.Advanced.Video.ColorSpace.601")
#define CS_2020PQ_STR QTStr("Basic.Settings.Advanced.Video.ColorSpace.2020PQ")
#define CS_2020HLG_STR QTStr("Basic.Settings.Advanced.Video.ColorSpace.2020HLG")
#define CS_2100PQ_STR QTStr("Basic.Settings.Advanced.Video.ColorSpace.2100PQ")
#define CS_2100HLG_STR QTStr("Basic.Settings.Advanced.Video.ColorSpace.2100HLG")
void OBSBasicSettings::LoadColorSpaces()
{
ui->colorSpace->addItem(CS_SRGB_STR, "sRGB");
ui->colorSpace->addItem(CS_709_STR, "709");
ui->colorSpace->addItem(CS_601_STR, "601");
ui->colorSpace->addItem(CS_2020PQ_STR, "2020PQ");
ui->colorSpace->addItem(CS_2020HLG_STR, "2020HLG");
ui->colorSpace->addItem(CS_2100PQ_STR, "2100PQ");
ui->colorSpace->addItem(CS_2100HLG_STR, "2100HLG");
}
#define AV_FORMAT_DEFAULT_STR \
@ -2534,8 +2534,8 @@ void OBSBasicSettings::UpdateColorFormatSpaceWarning()
{
const QString text = ui->colorFormat->currentText();
switch (ui->colorSpace->currentIndex()) {
case 3: /* Rec.2020 (PQ) */
case 4: /* Rec.2020 (HLG) */
case 3: /* Rec.2100 (PQ) */
case 4: /* Rec.2100 (HLG) */
if (text == "P010") {
ui->advancedMsg2->clear();
} else if (text == "I010") {
@ -2543,7 +2543,7 @@ void OBSBasicSettings::UpdateColorFormatSpaceWarning()
QTStr("Basic.Settings.Advanced.FormatWarning"));
} else {
ui->advancedMsg2->setText(QTStr(
"Basic.Settings.Advanced.FormatWarning2020"));
"Basic.Settings.Advanced.FormatWarning2100"));
}
break;
default:

View File

@ -128,8 +128,8 @@ convert_color_space(enum AVColorSpace s, enum AVColorTransferCharacteristic trc)
case AVCOL_SPC_SMPTE240M:
return VIDEO_CS_601;
case AVCOL_SPC_BT2020_NCL:
return (trc == AVCOL_TRC_ARIB_STD_B67) ? VIDEO_CS_2020_HLG
: VIDEO_CS_2020_PQ;
return (trc == AVCOL_TRC_ARIB_STD_B67) ? VIDEO_CS_2100_HLG
: VIDEO_CS_2100_PQ;
default:
return VIDEO_CS_DEFAULT;
}

View File

@ -69,8 +69,8 @@ Video Handler
- VIDEO_CS_601 - Rec. 601 color space
- VIDEO_CS_709 - Rec. 709 color space
- VIDEO_CS_SRGB - sRGB color space
- VIDEO_CS_2020_PQ - Rec. 2020 color space, PQ transfer
- VIDEO_CS_2020_HLG - Rec. 2020 color space, HLG transfer
- VIDEO_CS_2100_PQ - Rec. 2100 color space, PQ transfer
- VIDEO_CS_2100_HLG - Rec. 2100 color space, HLG transfer
---------------------

View File

@ -724,8 +724,8 @@ Functions used by outputs
VIDEO_CS_601,
VIDEO_CS_709,
VIDEO_CS_SRGB,
VIDEO_CS_2020_PQ,
VIDEO_CS_2020_HLG,
VIDEO_CS_2100_PQ,
VIDEO_CS_2100_HLG,
};
enum video_range_type {

View File

@ -87,8 +87,8 @@ enum video_colorspace {
VIDEO_CS_601,
VIDEO_CS_709,
VIDEO_CS_SRGB,
VIDEO_CS_2020_PQ,
VIDEO_CS_2020_HLG,
VIDEO_CS_2100_PQ,
VIDEO_CS_2100_HLG,
};
enum video_range_type {
@ -201,10 +201,10 @@ static inline const char *get_video_colorspace_name(enum video_colorspace cs)
return "sRGB";
case VIDEO_CS_601:
return "Rec. 601";
case VIDEO_CS_2020_PQ:
return "Rec. 2020 (PQ)";
case VIDEO_CS_2020_HLG:
return "Rec. 2020 (HLG)";
case VIDEO_CS_2100_PQ:
return "Rec. 2100 (PQ)";
case VIDEO_CS_2100_HLG:
return "Rec. 2100 (HLG)";
}
return "Unknown";

View File

@ -49,7 +49,7 @@ static struct {
0.2126f,
},
{
VIDEO_CS_2020_PQ,
VIDEO_CS_2100_PQ,
0.0593f,
0.2627f,
},
@ -193,8 +193,8 @@ static bool video_format_get_parameters_for_bpc(
if ((color_space == VIDEO_CS_DEFAULT) || (color_space == VIDEO_CS_SRGB))
color_space = VIDEO_CS_709;
else if (color_space == VIDEO_CS_2020_HLG)
color_space = VIDEO_CS_2020_PQ;
else if (color_space == VIDEO_CS_2100_HLG)
color_space = VIDEO_CS_2100_PQ;
if (bpc < 8)
bpc = 8;
@ -244,8 +244,8 @@ bool video_format_get_parameters(enum video_colorspace color_space,
{
uint32_t bpc = 8;
switch (color_space) {
case VIDEO_CS_2020_PQ:
case VIDEO_CS_2020_HLG:
case VIDEO_CS_2100_PQ:
case VIDEO_CS_2100_HLG:
bpc = 10;
}

View File

@ -107,8 +107,8 @@ static inline const int *get_ffmpeg_coeffs(enum video_colorspace cs)
case VIDEO_CS_601:
colorspace = SWS_CS_ITU601;
break;
case VIDEO_CS_2020_PQ:
case VIDEO_CS_2020_HLG:
case VIDEO_CS_2100_PQ:
case VIDEO_CS_2100_HLG:
colorspace = SWS_CS_BT2020;
}

View File

@ -1511,8 +1511,8 @@ scene_video_get_color_space(void *data, size_t count,
struct obs_video_info ovi;
if (obs_get_video_info(&ovi)) {
switch (ovi.colorspace) {
case VIDEO_CS_2020_PQ:
case VIDEO_CS_2020_HLG:
case VIDEO_CS_2100_PQ:
case VIDEO_CS_2100_HLG:
canvas_space = GS_CS_709_EXTENDED;
}
}

View File

@ -80,11 +80,11 @@ static inline void calc_gpu_conversion_sizes(const struct obs_video_info *ovi)
video->conversion_needed = true;
video->conversion_width_i = 1.f / (float)ovi->output_width;
video->conversion_height_i = 1.f / (float)ovi->output_height;
if (ovi->colorspace == VIDEO_CS_2020_PQ) {
if (ovi->colorspace == VIDEO_CS_2100_PQ) {
video->conversion_techs[0] = "I010_PQ_Y";
video->conversion_techs[1] = "I010_PQ_U";
video->conversion_techs[2] = "I010_PQ_V";
} else if (ovi->colorspace == VIDEO_CS_2020_HLG) {
} else if (ovi->colorspace == VIDEO_CS_2100_HLG) {
video->conversion_techs[0] = "I010_HLG_Y";
video->conversion_techs[1] = "I010_HLG_U";
video->conversion_techs[2] = "I010_HLG_V";
@ -99,10 +99,10 @@ static inline void calc_gpu_conversion_sizes(const struct obs_video_info *ovi)
video->conversion_needed = true;
video->conversion_width_i = 1.f / (float)ovi->output_width;
video->conversion_height_i = 1.f / (float)ovi->output_height;
if (ovi->colorspace == VIDEO_CS_2020_PQ) {
if (ovi->colorspace == VIDEO_CS_2100_PQ) {
video->conversion_techs[0] = "P010_PQ_Y";
video->conversion_techs[1] = "P010_PQ_UV";
} else if (ovi->colorspace == VIDEO_CS_2020_HLG) {
} else if (ovi->colorspace == VIDEO_CS_2100_HLG) {
video->conversion_techs[0] = "P010_HLG_Y";
video->conversion_techs[1] = "P010_HLG_UV";
video->maximum_nits = 1000.f;
@ -387,8 +387,8 @@ static bool obs_init_textures(struct obs_video_info *ovi)
enum gs_color_space space = GS_CS_SRGB;
switch (ovi->colorspace) {
case VIDEO_CS_2020_PQ:
case VIDEO_CS_2020_HLG:
case VIDEO_CS_2100_PQ:
case VIDEO_CS_2100_HLG:
space = GS_CS_709_EXTENDED;
break;
default:

View File

@ -213,12 +213,12 @@ static bool av1_update(struct av1_encoder *enc, obs_data_t *settings)
enc->context->color_trc = AVCOL_TRC_IEC61966_2_1;
enc->context->colorspace = AVCOL_SPC_BT709;
break;
case VIDEO_CS_2020_PQ:
case VIDEO_CS_2100_PQ:
enc->context->color_primaries = AVCOL_PRI_BT2020;
enc->context->color_trc = AVCOL_TRC_SMPTE2084;
enc->context->colorspace = AVCOL_SPC_BT2020_NCL;
break;
case VIDEO_CS_2020_HLG:
case VIDEO_CS_2100_HLG:
enc->context->color_primaries = AVCOL_PRI_BT2020;
enc->context->color_trc = AVCOL_TRC_ARIB_STD_B67;
enc->context->colorspace = AVCOL_SPC_BT2020_NCL;

View File

@ -144,12 +144,12 @@ static void add_video_encoder_params(struct ffmpeg_muxer *stream,
trc = AVCOL_TRC_IEC61966_2_1;
spc = AVCOL_SPC_BT709;
break;
case VIDEO_CS_2020_PQ:
case VIDEO_CS_2100_PQ:
pri = AVCOL_PRI_BT2020;
trc = AVCOL_TRC_SMPTE2084;
spc = AVCOL_SPC_BT2020_NCL;
break;
case VIDEO_CS_2020_HLG:
case VIDEO_CS_2100_HLG:
pri = AVCOL_PRI_BT2020;
trc = AVCOL_TRC_ARIB_STD_B67;
spc = AVCOL_SPC_BT2020_NCL;

View File

@ -273,12 +273,12 @@ static bool nvenc_update(struct nvenc_encoder *enc, obs_data_t *settings,
enc->context->color_trc = AVCOL_TRC_IEC61966_2_1;
enc->context->colorspace = AVCOL_SPC_BT709;
break;
case VIDEO_CS_2020_PQ:
case VIDEO_CS_2100_PQ:
enc->context->color_primaries = AVCOL_PRI_BT2020;
enc->context->color_trc = AVCOL_TRC_SMPTE2084;
enc->context->colorspace = AVCOL_SPC_BT2020_NCL;
break;
case VIDEO_CS_2020_HLG:
case VIDEO_CS_2100_HLG:
enc->context->color_primaries = AVCOL_PRI_BT2020;
enc->context->color_trc = AVCOL_TRC_ARIB_STD_B67;
enc->context->colorspace = AVCOL_SPC_BT2020_NCL;

View File

@ -1129,12 +1129,12 @@ static bool try_connect(struct ffmpeg_output *output)
config.color_trc = AVCOL_TRC_IEC61966_2_1;
config.colorspace = AVCOL_SPC_BT709;
break;
case VIDEO_CS_2020_PQ:
case VIDEO_CS_2100_PQ:
config.color_primaries = AVCOL_PRI_BT2020;
config.color_trc = AVCOL_TRC_SMPTE2084;
config.colorspace = AVCOL_SPC_BT2020_NCL;
break;
case VIDEO_CS_2020_HLG:
case VIDEO_CS_2100_HLG:
config.color_primaries = AVCOL_PRI_BT2020;
config.color_trc = AVCOL_TRC_ARIB_STD_B67;
config.colorspace = AVCOL_SPC_BT2020_NCL;

View File

@ -5,7 +5,7 @@ ColorSpace="Color Space"
ColorSpace.Default="Default"
ColorSpace.709="Rec. 709"
ColorSpace.601="Rec. 601"
ColorSpace.2020="Rec. 2020"
ColorSpace.2100="Rec. 2100"
ColorRange="Color Range"
ColorRange.Default="Default"
ColorRange.Partial="Partial"

View File

@ -294,8 +294,8 @@ convert_color_space(enum AVColorSpace s, enum AVColorTransferCharacteristic trc)
case AVCOL_SPC_SMPTE240M:
return VIDEO_CS_601;
case AVCOL_SPC_BT2020_NCL:
return (trc == AVCOL_TRC_ARIB_STD_B67) ? VIDEO_CS_2020_HLG
: VIDEO_CS_2020_PQ;
return (trc == AVCOL_TRC_ARIB_STD_B67) ? VIDEO_CS_2100_HLG
: VIDEO_CS_2100_PQ;
default:
return VIDEO_CS_DEFAULT;
}

View File

@ -80,7 +80,7 @@ using namespace DShow;
#define TEXT_COLOR_DEFAULT obs_module_text("ColorSpace.Default")
#define TEXT_COLOR_709 obs_module_text("ColorSpace.709")
#define TEXT_COLOR_601 obs_module_text("ColorSpace.601")
#define TEXT_COLOR_2020 obs_module_text("ColorSpace.2020")
#define TEXT_COLOR_2100 obs_module_text("ColorSpace.2100")
#define TEXT_COLOR_RANGE obs_module_text("ColorRange")
#define TEXT_RANGE_DEFAULT obs_module_text("ColorRange.Default")
#define TEXT_RANGE_PARTIAL obs_module_text("ColorRange.Partial")
@ -1095,8 +1095,8 @@ DShowInput::GetColorSpace(obs_data_t *settings) const
if (astrcmpi(space, "601") == 0)
return VIDEO_CS_601;
if (astrcmpi(space, "2020") == 0)
return VIDEO_CS_2020_PQ;
if (astrcmpi(space, "2100") == 0)
return VIDEO_CS_2100_PQ;
return VIDEO_CS_DEFAULT;
}
@ -1944,7 +1944,7 @@ static obs_properties_t *GetDShowProperties(void *obj)
obs_property_list_add_string(p, TEXT_COLOR_DEFAULT, "default");
obs_property_list_add_string(p, TEXT_COLOR_709, "709");
obs_property_list_add_string(p, TEXT_COLOR_601, "601");
obs_property_list_add_string(p, TEXT_COLOR_2020, "2020");
obs_property_list_add_string(p, TEXT_COLOR_2100, "2100");
p = obs_properties_add_list(ppts, COLOR_RANGE, TEXT_COLOR_RANGE,
OBS_COMBO_TYPE_LIST,