mirror of
https://github.com/moonlight-stream/moonlight-qt.git
synced 2025-07-03 08:15:37 +00:00
Allow decoders to choose a desired colorspace
This commit is contained in:
parent
88930a9de4
commit
160684f23e
@ -284,6 +284,8 @@ bool Session::populateDecoderProperties(SDL_Window* window)
|
|||||||
|
|
||||||
m_VideoCallbacks.capabilities |= decoder->getDecoderCapabilities();
|
m_VideoCallbacks.capabilities |= decoder->getDecoderCapabilities();
|
||||||
|
|
||||||
|
m_StreamConfig.colorSpace = decoder->getDecoderColorspace();
|
||||||
|
|
||||||
delete decoder;
|
delete decoder;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -44,6 +44,7 @@ public:
|
|||||||
virtual bool initialize(PDECODER_PARAMETERS params) = 0;
|
virtual bool initialize(PDECODER_PARAMETERS params) = 0;
|
||||||
virtual bool isHardwareAccelerated() = 0;
|
virtual bool isHardwareAccelerated() = 0;
|
||||||
virtual int getDecoderCapabilities() = 0;
|
virtual int getDecoderCapabilities() = 0;
|
||||||
|
virtual int getDecoderColorspace() = 0;
|
||||||
virtual int submitDecodeUnit(PDECODE_UNIT du) = 0;
|
virtual int submitDecodeUnit(PDECODE_UNIT du) = 0;
|
||||||
virtual void renderFrameOnMainThread() = 0;
|
virtual void renderFrameOnMainThread() = 0;
|
||||||
};
|
};
|
||||||
|
@ -31,6 +31,11 @@ public:
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virtual int getDecoderColorspace() {
|
||||||
|
// Rec 601 is default
|
||||||
|
return COLORSPACE_REC_601;
|
||||||
|
}
|
||||||
|
|
||||||
virtual FramePacingConstraint getFramePacingConstraint() {
|
virtual FramePacingConstraint getFramePacingConstraint() {
|
||||||
// No pacing preference
|
// No pacing preference
|
||||||
return PACING_ANY;
|
return PACING_ANY;
|
||||||
|
@ -50,6 +50,11 @@ int FFmpegVideoDecoder::getDecoderCapabilities()
|
|||||||
return m_BackendRenderer->getDecoderCapabilities();
|
return m_BackendRenderer->getDecoderCapabilities();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int FFmpegVideoDecoder::getDecoderColorspace()
|
||||||
|
{
|
||||||
|
return m_FrontendRenderer->getDecoderColorspace();
|
||||||
|
}
|
||||||
|
|
||||||
enum AVPixelFormat FFmpegVideoDecoder::ffGetFormat(AVCodecContext* context,
|
enum AVPixelFormat FFmpegVideoDecoder::ffGetFormat(AVCodecContext* context,
|
||||||
const enum AVPixelFormat* pixFmts)
|
const enum AVPixelFormat* pixFmts)
|
||||||
{
|
{
|
||||||
|
@ -17,6 +17,7 @@ public:
|
|||||||
virtual bool initialize(PDECODER_PARAMETERS params) override;
|
virtual bool initialize(PDECODER_PARAMETERS params) override;
|
||||||
virtual bool isHardwareAccelerated() override;
|
virtual bool isHardwareAccelerated() override;
|
||||||
virtual int getDecoderCapabilities() override;
|
virtual int getDecoderCapabilities() override;
|
||||||
|
virtual int getDecoderColorspace() override;
|
||||||
virtual int submitDecodeUnit(PDECODE_UNIT du) override;
|
virtual int submitDecodeUnit(PDECODE_UNIT du) override;
|
||||||
virtual void renderFrameOnMainThread() override;
|
virtual void renderFrameOnMainThread() override;
|
||||||
|
|
||||||
|
@ -31,6 +31,12 @@ SLVideoDecoder::getDecoderCapabilities()
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
SLVideoDecoder::getDecoderColorspace()
|
||||||
|
{
|
||||||
|
return COLORSPACE_REC_709;
|
||||||
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
SLVideoDecoder::initialize(PDECODER_PARAMETERS params)
|
SLVideoDecoder::initialize(PDECODER_PARAMETERS params)
|
||||||
{
|
{
|
||||||
|
@ -12,6 +12,7 @@ public:
|
|||||||
virtual bool initialize(PDECODER_PARAMETERS params);
|
virtual bool initialize(PDECODER_PARAMETERS params);
|
||||||
virtual bool isHardwareAccelerated();
|
virtual bool isHardwareAccelerated();
|
||||||
virtual int getDecoderCapabilities();
|
virtual int getDecoderCapabilities();
|
||||||
|
virtual int getDecoderColorspace();
|
||||||
virtual int submitDecodeUnit(PDECODE_UNIT du);
|
virtual int submitDecodeUnit(PDECODE_UNIT du);
|
||||||
|
|
||||||
// Unused since rendering is done directly from the decode thread
|
// Unused since rendering is done directly from the decode thread
|
||||||
|
Loading…
x
Reference in New Issue
Block a user