Allow decoders to choose a desired colorspace

This commit is contained in:
Cameron Gutman
2019-12-14 15:25:56 -08:00
parent 88930a9de4
commit 160684f23e
7 changed files with 21 additions and 0 deletions
+1
View File
@@ -44,6 +44,7 @@ public:
virtual bool initialize(PDECODER_PARAMETERS params) = 0;
virtual bool isHardwareAccelerated() = 0;
virtual int getDecoderCapabilities() = 0;
virtual int getDecoderColorspace() = 0;
virtual int submitDecodeUnit(PDECODE_UNIT du) = 0;
virtual void renderFrameOnMainThread() = 0;
};
@@ -31,6 +31,11 @@ public:
return 0;
}
virtual int getDecoderColorspace() {
// Rec 601 is default
return COLORSPACE_REC_601;
}
virtual FramePacingConstraint getFramePacingConstraint() {
// No pacing preference
return PACING_ANY;
+5
View File
@@ -50,6 +50,11 @@ int FFmpegVideoDecoder::getDecoderCapabilities()
return m_BackendRenderer->getDecoderCapabilities();
}
int FFmpegVideoDecoder::getDecoderColorspace()
{
return m_FrontendRenderer->getDecoderColorspace();
}
enum AVPixelFormat FFmpegVideoDecoder::ffGetFormat(AVCodecContext* context,
const enum AVPixelFormat* pixFmts)
{
+1
View File
@@ -17,6 +17,7 @@ public:
virtual bool initialize(PDECODER_PARAMETERS params) override;
virtual bool isHardwareAccelerated() override;
virtual int getDecoderCapabilities() override;
virtual int getDecoderColorspace() override;
virtual int submitDecodeUnit(PDECODE_UNIT du) override;
virtual void renderFrameOnMainThread() override;
+6
View File
@@ -31,6 +31,12 @@ SLVideoDecoder::getDecoderCapabilities()
return 0;
}
int
SLVideoDecoder::getDecoderColorspace()
{
return COLORSPACE_REC_709;
}
bool
SLVideoDecoder::initialize(PDECODER_PARAMETERS params)
{
+1
View File
@@ -12,6 +12,7 @@ public:
virtual bool initialize(PDECODER_PARAMETERS params);
virtual bool isHardwareAccelerated();
virtual int getDecoderCapabilities();
virtual int getDecoderColorspace();
virtual int submitDecodeUnit(PDECODE_UNIT du);
// Unused since rendering is done directly from the decode thread