Revert "Use Rec 2020 colorspace for WCG support even if HDR is off on the host"

Rec 2020 conversion causes colors to be blown out in SDR

This reverts commit 472e8ee92e.
This commit is contained in:
Cameron Gutman 2022-10-13 01:18:57 -05:00
commit e6c4332445
15 changed files with 17 additions and 21 deletions

View file

@ -989,7 +989,7 @@ Exit:
overlayVertexBuffer->Release();
}
int DXVA2Renderer::getDecoderSdrColorspace()
int DXVA2Renderer::getDecoderColorspace()
{
if (m_DeviceQuirks & DXVA2_QUIRK_NO_VP) {
// StretchRect() assumes Rec 601 on Intel and Qualcomm GPUs.

View file

@ -19,7 +19,7 @@ public:
virtual bool prepareDecoderContext(AVCodecContext* context, AVDictionary** options) override;
virtual void renderFrame(AVFrame* frame) override;
virtual void notifyOverlayUpdated(Overlay::OverlayType type) override;
virtual int getDecoderSdrColorspace() override;
virtual int getDecoderColorspace() override;
virtual int getDecoderCapabilities() override;
private:

View file

@ -210,7 +210,7 @@ bool MmalRenderer::initialize(PDECODER_PARAMETERS params)
return true;
}
int MmalRenderer::getDecoderSdrColorspace()
int MmalRenderer::getDecoderColorspace()
{
// MMAL seems to always use Rec. 709 colorspace for rendering
// even when we try to set something else in the input format.

View file

@ -17,7 +17,7 @@ public:
virtual enum AVPixelFormat getPreferredPixelFormat(int videoFormat) override;
virtual bool needsTestFrame() override;
virtual int getRendererAttributes() override;
virtual int getDecoderSdrColorspace() override;
virtual int getDecoderColorspace() override;
private:
static void InputPortCallback(MMAL_PORT_T* port, MMAL_BUFFER_HEADER_T* buffer);

View file

@ -153,7 +153,7 @@ public:
return 0;
}
virtual int getDecoderSdrColorspace() {
virtual int getDecoderColorspace() {
// Rec 601 is default
return COLORSPACE_REC_601;
}
@ -177,7 +177,7 @@ public:
default:
// If the colorspace is not populated, assume the encoder
// is sending the colorspace that we requested.
return getDecoderSdrColorspace();
return getDecoderColorspace();
}
}

View file

@ -470,7 +470,7 @@ VAAPIRenderer::isDirectRenderingSupported()
return false;
}
int VAAPIRenderer::getDecoderSdrColorspace()
int VAAPIRenderer::getDecoderColorspace()
{
// Gallium drivers don't support Rec 709 yet - https://gitlab.freedesktop.org/mesa/mesa/issues/1915
// Intel-vaapi-driver defaults to Rec 601 - https://github.com/intel/intel-vaapi-driver/blob/021bcb79d1bd873bbd9fbca55f40320344bab866/src/i965_output_dri.c#L186

View file

@ -41,7 +41,7 @@ public:
virtual void renderFrame(AVFrame* frame) override;
virtual bool needsTestFrame() override;
virtual bool isDirectRenderingSupported() override;
virtual int getDecoderSdrColorspace() override;
virtual int getDecoderColorspace() override;
virtual int getDecoderCapabilities() override;
virtual void notifyOverlayUpdated(Overlay::OverlayType) override;

View file

@ -428,7 +428,7 @@ bool VDPAURenderer::needsTestFrame()
return true;
}
int VDPAURenderer::getDecoderSdrColorspace()
int VDPAURenderer::getDecoderColorspace()
{
// VDPAU defaults to Rec 601.
// https://http.download.nvidia.com/XFree86/vdpau/doxygen/html/group___vdp_video_mixer.html#ga65580813e9045d94b739ed2bb8b62b46

View file

@ -19,7 +19,7 @@ public:
virtual void waitToRender() override;
virtual void renderFrame(AVFrame* frame) override;
virtual bool needsTestFrame() override;
virtual int getDecoderSdrColorspace() override;
virtual int getDecoderColorspace() override;
virtual int getDecoderCapabilities() override;
private: