Просмотр исходного кода

libobs: Add VIDEO_CS_SRGB support

jpark37 6 лет назад
Родитель
Сommit
a69151e204

+ 3 - 2
libobs/media-io/video-io.h

@@ -176,9 +176,10 @@ static inline const char *get_video_colorspace_name(enum video_colorspace cs)
 	switch (cs) {
 	case VIDEO_CS_709:
 		return "709";
+	case VIDEO_CS_SRGB:
+		return "sRGB";
 	case VIDEO_CS_601:
-	case VIDEO_CS_DEFAULT:
-	case VIDEO_CS_SRGB:;
+	case VIDEO_CS_DEFAULT:;
 	}
 
 	return "601";

+ 2 - 0
libobs/media-io/video-matrices.c

@@ -173,6 +173,8 @@ bool video_format_get_parameters(enum video_colorspace color_space,
 #endif
 	if (color_space == VIDEO_CS_DEFAULT)
 		color_space = VIDEO_CS_601;
+	else if (color_space == VIDEO_CS_SRGB)
+		color_space = VIDEO_CS_709;
 
 	for (size_t i = 0; i < NUM_FORMATS; i++) {
 		if (format_info[i].color_space != color_space)

+ 3 - 4
libobs/media-io/video-scaler-ffmpeg.c

@@ -92,12 +92,11 @@ static inline int get_ffmpeg_scale_type(enum video_scale_type type)
 static inline const int *get_ffmpeg_coeffs(enum video_colorspace cs)
 {
 	switch (cs) {
-	case VIDEO_CS_DEFAULT:
-		return sws_getCoefficients(SWS_CS_ITU601);
-	case VIDEO_CS_601:
-		return sws_getCoefficients(SWS_CS_ITU601);
 	case VIDEO_CS_709:
+	case VIDEO_CS_SRGB:
 		return sws_getCoefficients(SWS_CS_ITU709);
+	case VIDEO_CS_DEFAULT:
+	case VIDEO_CS_601:
 	default:
 		return sws_getCoefficients(SWS_CS_ITU601);
 	}