From 629e09578008b3b17d74737b434b9b11f4c8feea Mon Sep 17 00:00:00 2001 From: Ningyuan Li Date: Sat, 20 Apr 2024 00:09:22 +0900 Subject: [PATCH] automatically selects better color space if possible --- src/app/stream/session.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/app/stream/session.c b/src/app/stream/session.c index a6159cca..961a25ba 100644 --- a/src/app/stream/session.c +++ b/src/app/stream/session.c @@ -283,7 +283,14 @@ void session_config_init(app_t *app, session_config_t *config, const SERVER_DATA if (config->stream.supportedVideoFormats == 0) { config->stream.supportedVideoFormats = VIDEO_FORMAT_H264; } - config->stream.colorSpace = COLORSPACE_REC_709/* TODO: get from video capabilities */; + if (video_cap.colorSpace & SS4S_VIDEO_CAP_COLORSPACE_BT2020 && + (config->stream.supportedVideoFormats & ~VIDEO_FORMAT_MASK_H264)) { + config->stream.colorSpace = COLORSPACE_REC_2020; + } else if (video_cap.colorSpace & SS4S_VIDEO_CAP_COLORSPACE_BT709) { + config->stream.colorSpace = COLORSPACE_REC_709; + } else { + config->stream.colorSpace = COLORSPACE_REC_601; + } config->stream.colorRange = video_cap.fullColorRange ? COLOR_RANGE_FULL : COLOR_RANGE_LIMITED; #if FEATURE_SURROUND_SOUND if (audio_cap.maxChannels < CHANNEL_COUNT_FROM_AUDIO_CONFIGURATION(config->stream.audioConfiguration)) {