From 67e89d9e161dba70fee807a499ce90736793db12 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Wed, 4 Sep 2024 23:13:48 -0500 Subject: [PATCH] Add workaround for incorrect color range in AMF AV1 encoding output --- app/streaming/video/ffmpeg-renderers/plvk.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/streaming/video/ffmpeg-renderers/plvk.cpp b/app/streaming/video/ffmpeg-renderers/plvk.cpp index 903f17e3..2616e52e 100644 --- a/app/streaming/video/ffmpeg-renderers/plvk.cpp +++ b/app/streaming/video/ffmpeg-renderers/plvk.cpp @@ -569,6 +569,12 @@ bool PlVkRenderer::mapAvFrameToPlacebo(const AVFrame *frame, pl_frame* mappedFra mappedFrame->color.hdr.min_luma = PL_COLOR_HDR_BLACK; } + // HACK: AMF AV1 encoding on the host PC does not set full color range properly in the + // bitstream data, so libplacebo incorrectly renders the content as limited range. + // + // As a workaround, set full range manually in the mapped frame ourselves. + mappedFrame->repr.levels = PL_COLOR_LEVELS_FULL; + return true; }