From 1e38ecbdf9328e8f312956a079d44564f283743c 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 ++++++++- third_party/ss4s | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/app/stream/session.c b/src/app/stream/session.c index 3f6bc0144..d0fbf22cf 100644 --- a/src/app/stream/session.c +++ b/src/app/stream/session.c @@ -280,7 +280,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)) { diff --git a/third_party/ss4s b/third_party/ss4s index d55531be3..4e4c798b2 160000 --- a/third_party/ss4s +++ b/third_party/ss4s @@ -1 +1 @@ -Subproject commit d55531be33519172760eaf6c71d1c653187abe3a +Subproject commit 4e4c798b2264d8e0ee752309577ce3f2a2f07048