From 59dbc3eb81441010514dacf014507dcf7286fb45 Mon Sep 17 00:00:00 2001 From: jpark37 Date: Sat, 9 Apr 2022 20:54:28 -0700 Subject: [PATCH] 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. --- UI/data/locale/en-US.ini | 6 +++--- UI/window-basic-main.cpp | 8 ++++---- UI/window-basic-settings.cpp | 14 +++++++------- deps/media-playback/media-playback/media.c | 4 ++-- docs/sphinx/reference-libobs-media-io.rst | 4 ++-- docs/sphinx/reference-outputs.rst | 4 ++-- libobs/media-io/video-io.h | 12 ++++++------ libobs/media-io/video-matrices.c | 10 +++++----- libobs/media-io/video-scaler-ffmpeg.c | 4 ++-- libobs/obs-scene.c | 4 ++-- libobs/obs.c | 12 ++++++------ plugins/obs-ffmpeg/obs-ffmpeg-av1.c | 4 ++-- plugins/obs-ffmpeg/obs-ffmpeg-mux.c | 4 ++-- plugins/obs-ffmpeg/obs-ffmpeg-nvenc.c | 4 ++-- plugins/obs-ffmpeg/obs-ffmpeg-output.c | 4 ++-- plugins/win-dshow/data/locale/en-US.ini | 2 +- plugins/win-dshow/ffmpeg-decode.c | 4 ++-- plugins/win-dshow/win-dshow.cpp | 8 ++++---- 18 files changed, 56 insertions(+), 56 deletions(-) diff --git a/UI/data/locale/en-US.ini b/UI/data/locale/en-US.ini index 5d2339105..c6ddf2d86 100644 --- a/UI/data/locale/en-US.ini +++ b/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" diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp index 2437fc533..727dfbdac 100644 --- a/UI/window-basic-main.cpp +++ b/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; } diff --git a/UI/window-basic-settings.cpp b/UI/window-basic-settings.cpp index b7c000a74..f9e004238 100644 --- a/UI/window-basic-settings.cpp +++ b/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: diff --git a/deps/media-playback/media-playback/media.c b/deps/media-playback/media-playback/media.c index b90425cf2..07bb44fb6 100644 --- a/deps/media-playback/media-playback/media.c +++ b/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; } diff --git a/docs/sphinx/reference-libobs-media-io.rst b/docs/sphinx/reference-libobs-media-io.rst index 44033e049..d0c106b07 100644 --- a/docs/sphinx/reference-libobs-media-io.rst +++ b/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 --------------------- diff --git a/docs/sphinx/reference-outputs.rst b/docs/sphinx/reference-outputs.rst index 090ce10ac..fc86ca7ae 100644 --- a/docs/sphinx/reference-outputs.rst +++ b/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 { diff --git a/libobs/media-io/video-io.h b/libobs/media-io/video-io.h index 599bdb0af..7453d921f 100644 --- a/libobs/media-io/video-io.h +++ b/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"; diff --git a/libobs/media-io/video-matrices.c b/libobs/media-io/video-matrices.c index be69a2355..a008fe35a 100644 --- a/libobs/media-io/video-matrices.c +++ b/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; } diff --git a/libobs/media-io/video-scaler-ffmpeg.c b/libobs/media-io/video-scaler-ffmpeg.c index 08fa0cc71..2d8db8b3c 100644 --- a/libobs/media-io/video-scaler-ffmpeg.c +++ b/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; } diff --git a/libobs/obs-scene.c b/libobs/obs-scene.c index aaf8b2f11..3bec04705 100644 --- a/libobs/obs-scene.c +++ b/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; } } diff --git a/libobs/obs.c b/libobs/obs.c index 3c21038ab..ff6775170 100644 --- a/libobs/obs.c +++ b/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: diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-av1.c b/plugins/obs-ffmpeg/obs-ffmpeg-av1.c index a31531457..7c84675fe 100644 --- a/plugins/obs-ffmpeg/obs-ffmpeg-av1.c +++ b/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; diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-mux.c b/plugins/obs-ffmpeg/obs-ffmpeg-mux.c index 2c9ce841c..01f51c413 100644 --- a/plugins/obs-ffmpeg/obs-ffmpeg-mux.c +++ b/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; diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-nvenc.c b/plugins/obs-ffmpeg/obs-ffmpeg-nvenc.c index 28dfacbb1..0ee244de4 100644 --- a/plugins/obs-ffmpeg/obs-ffmpeg-nvenc.c +++ b/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; diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-output.c b/plugins/obs-ffmpeg/obs-ffmpeg-output.c index 372b393bf..985b5086a 100644 --- a/plugins/obs-ffmpeg/obs-ffmpeg-output.c +++ b/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; diff --git a/plugins/win-dshow/data/locale/en-US.ini b/plugins/win-dshow/data/locale/en-US.ini index 5c0fef1c1..934d9b67a 100644 --- a/plugins/win-dshow/data/locale/en-US.ini +++ b/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" diff --git a/plugins/win-dshow/ffmpeg-decode.c b/plugins/win-dshow/ffmpeg-decode.c index 67cf96ec8..cff6b8c8a 100644 --- a/plugins/win-dshow/ffmpeg-decode.c +++ b/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; } diff --git a/plugins/win-dshow/win-dshow.cpp b/plugins/win-dshow/win-dshow.cpp index 65b7b5d07..0cd17ad18 100644 --- a/plugins/win-dshow/win-dshow.cpp +++ b/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,