From 24e18c73f55b934bfda1ad76b999241fb97ee809 Mon Sep 17 00:00:00 2001 From: jpark37 Date: Sat, 25 Jan 2020 10:33:06 -0800 Subject: [PATCH] media-playback: Leverage VIDEO_CS_SRGB Doesn't change much now, but may someday. --- deps/media-playback/media-playback/media.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/deps/media-playback/media-playback/media.c b/deps/media-playback/media-playback/media.c index 718a69597..f5383524a 100644 --- a/deps/media-playback/media-playback/media.c +++ b/deps/media-playback/media-playback/media.c @@ -109,9 +109,15 @@ static inline enum speaker_layout convert_speaker_layout(uint8_t channels) } } -static inline enum video_colorspace convert_color_space(enum AVColorSpace s) +static inline enum video_colorspace +convert_color_space(enum AVColorSpace s, enum AVColorTransferCharacteristic trc) { - return s == AVCOL_SPC_BT709 ? VIDEO_CS_709 : VIDEO_CS_DEFAULT; + if (s == AVCOL_SPC_BT709) { + return (trc == AVCOL_TRC_IEC61966_2_1) ? VIDEO_CS_SRGB + : VIDEO_CS_709; + } + + return VIDEO_CS_DEFAULT; } static inline enum video_range_type convert_color_range(enum AVColorRange r) @@ -365,7 +371,7 @@ static void mp_media_next_video(mp_media_t *m, bool preload) frame->data[0] -= frame->linesize[0] * (f->height - 1); new_format = convert_pixel_format(m->scale_format); - new_space = convert_color_space(f->colorspace); + new_space = convert_color_space(f->colorspace, f->color_trc); new_range = m->force_range == VIDEO_RANGE_DEFAULT ? convert_color_range(f->color_range) : m->force_range;