Browse Source

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.
jpark37 3 years ago
parent
commit
59dbc3eb81

+ 3 - 3
UI/data/locale/en-US.ini

@@ -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"

+ 4 - 4
UI/window-basic-main.cpp

@@ -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;
 }

+ 7 - 7
UI/window-basic-settings.cpp

@@ -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:

+ 2 - 2
deps/media-playback/media-playback/media.c

@@ -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;
 	}

+ 2 - 2
docs/sphinx/reference-libobs-media-io.rst

@@ -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
 
 ---------------------
 

+ 2 - 2
docs/sphinx/reference-outputs.rst

@@ -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 {

+ 6 - 6
libobs/media-io/video-io.h

@@ -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";

+ 5 - 5
libobs/media-io/video-matrices.c

@@ -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;
 	}
 

+ 2 - 2
libobs/media-io/video-scaler-ffmpeg.c

@@ -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;
 	}
 

+ 2 - 2
libobs/obs-scene.c

@@ -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;
 		}
 	}

+ 6 - 6
libobs/obs.c

@@ -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:

+ 2 - 2
plugins/obs-ffmpeg/obs-ffmpeg-av1.c

@@ -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;

+ 2 - 2
plugins/obs-ffmpeg/obs-ffmpeg-mux.c

@@ -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;

+ 2 - 2
plugins/obs-ffmpeg/obs-ffmpeg-nvenc.c

@@ -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;

+ 2 - 2
plugins/obs-ffmpeg/obs-ffmpeg-output.c

@@ -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;

+ 1 - 1
plugins/win-dshow/data/locale/en-US.ini

@@ -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"

+ 2 - 2
plugins/win-dshow/ffmpeg-decode.c

@@ -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;
 	}

+ 4 - 4
plugins/win-dshow/win-dshow.cpp

@@ -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,