mirror of
https://github.com/moonlight-stream/moonlight-qt
synced 2024-12-17 14:43:09 +00:00
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:
parent
0928d1fab2
commit
e6c4332445
15 changed files with 17 additions and 21 deletions
|
@ -415,12 +415,8 @@ bool Session::populateDecoderProperties(SDL_Window* window)
|
|||
"Using colorspace override: %d",
|
||||
m_StreamConfig.colorSpace);
|
||||
}
|
||||
else if (!m_StreamConfig.enableHdr) {
|
||||
m_StreamConfig.colorSpace = decoder->getDecoderSdrColorspace();
|
||||
}
|
||||
else {
|
||||
// In HDR mode, we opt for Rec 2020 for WCG displays
|
||||
m_StreamConfig.colorSpace = COLORSPACE_REC_2020;
|
||||
m_StreamConfig.colorSpace = decoder->getDecoderColorspace();
|
||||
}
|
||||
|
||||
m_StreamConfig.colorRange = qEnvironmentVariableIntValue("COLOR_RANGE_OVERRIDE", &ok);
|
||||
|
|
|
@ -67,7 +67,7 @@ public:
|
|||
virtual bool isAlwaysFullScreen() = 0;
|
||||
virtual bool isHdrSupported() = 0;
|
||||
virtual int getDecoderCapabilities() = 0;
|
||||
virtual int getDecoderSdrColorspace() = 0;
|
||||
virtual int getDecoderColorspace() = 0;
|
||||
virtual int getDecoderColorRange() = 0;
|
||||
virtual QSize getDecoderMaxResolution() = 0;
|
||||
virtual int submitDecodeUnit(PDECODE_UNIT du) = 0;
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -87,9 +87,9 @@ int FFmpegVideoDecoder::getDecoderCapabilities()
|
|||
return capabilities;
|
||||
}
|
||||
|
||||
int FFmpegVideoDecoder::getDecoderSdrColorspace()
|
||||
int FFmpegVideoDecoder::getDecoderColorspace()
|
||||
{
|
||||
return m_FrontendRenderer->getDecoderSdrColorspace();
|
||||
return m_FrontendRenderer->getDecoderColorspace();
|
||||
}
|
||||
|
||||
int FFmpegVideoDecoder::getDecoderColorRange()
|
||||
|
|
|
@ -20,7 +20,7 @@ public:
|
|||
virtual bool isAlwaysFullScreen() override;
|
||||
virtual bool isHdrSupported() override;
|
||||
virtual int getDecoderCapabilities() override;
|
||||
virtual int getDecoderSdrColorspace() override;
|
||||
virtual int getDecoderColorspace() override;
|
||||
virtual int getDecoderColorRange() override;
|
||||
virtual QSize getDecoderMaxResolution() override;
|
||||
virtual int submitDecodeUnit(PDECODE_UNIT du) override;
|
||||
|
|
|
@ -63,7 +63,7 @@ SLVideoDecoder::getDecoderCapabilities()
|
|||
}
|
||||
|
||||
int
|
||||
SLVideoDecoder::getDecoderSdrColorspace()
|
||||
SLVideoDecoder::getDecoderColorspace()
|
||||
{
|
||||
return COLORSPACE_REC_709;
|
||||
}
|
||||
|
|
|
@ -14,7 +14,7 @@ public:
|
|||
virtual bool isHardwareAccelerated() override;
|
||||
virtual bool isAlwaysFullScreen() override;
|
||||
virtual int getDecoderCapabilities() override;
|
||||
virtual int getDecoderSdrColorspace() override;
|
||||
virtual int getDecoderColorspace() override;
|
||||
virtual int getDecoderColorRange() override;
|
||||
virtual QSize getDecoderMaxResolution() override;
|
||||
virtual int submitDecodeUnit(PDECODE_UNIT du) override;
|
||||
|
|
Loading…
Reference in a new issue