summaryrefslogtreecommitdiffstats
path: root/recipes-multimedia/onevpl/onevpl/0001-sample_decode-Add-VDSFC-CSC-for-AVC-HEVC.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-multimedia/onevpl/onevpl/0001-sample_decode-Add-VDSFC-CSC-for-AVC-HEVC.patch')
-rw-r--r--recipes-multimedia/onevpl/onevpl/0001-sample_decode-Add-VDSFC-CSC-for-AVC-HEVC.patch132
1 files changed, 0 insertions, 132 deletions
diff --git a/recipes-multimedia/onevpl/onevpl/0001-sample_decode-Add-VDSFC-CSC-for-AVC-HEVC.patch b/recipes-multimedia/onevpl/onevpl/0001-sample_decode-Add-VDSFC-CSC-for-AVC-HEVC.patch
deleted file mode 100644
index db8baa3e..00000000
--- a/recipes-multimedia/onevpl/onevpl/0001-sample_decode-Add-VDSFC-CSC-for-AVC-HEVC.patch
+++ /dev/null
@@ -1,132 +0,0 @@
1From f8d87fc857d5bfd69247c985ed82ba88e167ef30 Mon Sep 17 00:00:00 2001
2From: "Yew, Chang Ching" <chang.ching.yew@intel.com>
3Date: Fri, 9 Jul 2021 13:59:33 +0000
4Subject: [PATCH] sample_decode: Add VDSFC CSC for AVC/HEVC
5
6Upstream-Status: Submitted
7innersource PR #289
8
9Signed-off-by: Yew, Chang Ching <chang.ching.yew@intel.com>
10---
11 .../sample_decode/src/pipeline_decode.cpp | 84 +++++++++++++++++--
12 1 file changed, 77 insertions(+), 7 deletions(-)
13
14diff --git a/tools/legacy/sample_decode/src/pipeline_decode.cpp b/tools/legacy/sample_decode/src/pipeline_decode.cpp
15index 4dc811c5..d817ff2a 100644
16--- a/tools/legacy/sample_decode/src/pipeline_decode.cpp
17+++ b/tools/legacy/sample_decode/src/pipeline_decode.cpp
18@@ -765,6 +765,14 @@ bool CDecodingPipeline::IsVppRequired(sInputParams* pParams) {
19 if (pParams->eDeinterlace) {
20 bVppIsUsed = true;
21 }
22+
23+ if ((MODE_DECODER_POSTPROC_AUTO == pParams->nDecoderPostProcessing) ||
24+ (MODE_DECODER_POSTPROC_FORCE == pParams->nDecoderPostProcessing)) {
25+ /* Decoder will make decision about internal post-processing usage slightly later */
26+ if ((pParams->videoType == MFX_CODEC_AVC) || (pParams->videoType == MFX_CODEC_HEVC))
27+ bVppIsUsed = false;
28+ }
29+
30 return bVppIsUsed;
31 }
32
33@@ -1014,6 +1022,8 @@ mfxStatus CDecodingPipeline::InitMfxParams(sInputParams* pParams) {
34 if (!m_bVppIsUsed) {
35 if ((m_mfxVideoParams.mfx.FrameInfo.CropW != pParams->Width && pParams->Width) ||
36 (m_mfxVideoParams.mfx.FrameInfo.CropH != pParams->Height && pParams->Height) ||
37+ (pParams->nDecoderPostProcessing && pParams->videoType == MFX_CODEC_AVC) ||
38+ (pParams->nDecoderPostProcessing && pParams->videoType == MFX_CODEC_HEVC) ||
39 (pParams->nDecoderPostProcessing && pParams->videoType == MFX_CODEC_JPEG &&
40 pParams->fourcc == MFX_FOURCC_RGB4 &&
41 // No need to use decoder's post processing for decoding of JPEG with RGB 4:4:4
42@@ -1027,7 +1037,10 @@ mfxStatus CDecodingPipeline::InitMfxParams(sInputParams* pParams) {
43 if (((MODE_DECODER_POSTPROC_AUTO == pParams->nDecoderPostProcessing) ||
44 (MODE_DECODER_POSTPROC_FORCE == pParams->nDecoderPostProcessing)) &&
45 (MFX_CODEC_AVC == m_mfxVideoParams.mfx.CodecId ||
46- MFX_CODEC_JPEG == m_mfxVideoParams.mfx.CodecId) && /* Only for AVC and JPEG */
47+ MFX_CODEC_JPEG == m_mfxVideoParams.mfx.CodecId ||
48+ MFX_CODEC_HEVC == m_mfxVideoParams.mfx.CodecId ||
49+ MFX_CODEC_VP9 == m_mfxVideoParams.mfx.CodecId ||
50+ MFX_CODEC_AV1 == m_mfxVideoParams.mfx.CodecId) &&
51 (MFX_PICSTRUCT_PROGRESSIVE ==
52 m_mfxVideoParams.mfx.FrameInfo.PicStruct)) /* ...And only for progressive!*/
53 { /* it is possible to use decoder's post-processing */
54@@ -1050,12 +1063,69 @@ mfxStatus CDecodingPipeline::InitMfxParams(sInputParams* pParams) {
55
56 decPostProcessing->Out.FourCC = m_mfxVideoParams.mfx.FrameInfo.FourCC;
57 decPostProcessing->Out.ChromaFormat = m_mfxVideoParams.mfx.FrameInfo.ChromaFormat;
58- decPostProcessing->Out.Width = MSDK_ALIGN16(pParams->Width);
59- decPostProcessing->Out.Height = MSDK_ALIGN16(pParams->Height);
60- decPostProcessing->Out.CropX = 0;
61- decPostProcessing->Out.CropY = 0;
62- decPostProcessing->Out.CropW = pParams->Width;
63- decPostProcessing->Out.CropH = pParams->Height;
64+
65+ if (pParams->videoType == MFX_CODEC_AVC || pParams->videoType == MFX_CODEC_HEVC) {
66+ switch (pParams->fourcc) {
67+ case MFX_FOURCC_RGB4:
68+ decPostProcessing->Out.FourCC = MFX_FOURCC_RGB4;
69+ decPostProcessing->Out.ChromaFormat = MFX_CHROMAFORMAT_YUV444;
70+ break;
71+
72+ case MFX_FOURCC_NV12:
73+ decPostProcessing->Out.FourCC = MFX_FOURCC_NV12;
74+ decPostProcessing->Out.ChromaFormat = MFX_CHROMAFORMAT_YUV420;
75+ break;
76+
77+ case MFX_FOURCC_P010:
78+ decPostProcessing->Out.FourCC = MFX_FOURCC_P010;
79+ decPostProcessing->Out.ChromaFormat = MFX_CHROMAFORMAT_YUV420;
80+ break;
81+
82+ case MFX_FOURCC_P016:
83+ decPostProcessing->Out.FourCC = MFX_FOURCC_P016;
84+ decPostProcessing->Out.ChromaFormat = MFX_CHROMAFORMAT_YUV420;
85+ break;
86+
87+ case MFX_FOURCC_YUY2:
88+ decPostProcessing->Out.FourCC = MFX_FOURCC_YUY2;
89+ decPostProcessing->Out.ChromaFormat = MFX_CHROMAFORMAT_YUV422;
90+ break;
91+
92+ case MFX_FOURCC_Y210:
93+ decPostProcessing->Out.FourCC = MFX_FOURCC_Y210;
94+ decPostProcessing->Out.ChromaFormat = MFX_CHROMAFORMAT_YUV422;
95+ break;
96+
97+ case MFX_FOURCC_Y216:
98+ decPostProcessing->Out.FourCC = MFX_FOURCC_Y216;
99+ decPostProcessing->Out.ChromaFormat = MFX_CHROMAFORMAT_YUV422;
100+ break;
101+
102+ case MFX_FOURCC_AYUV:
103+ decPostProcessing->Out.FourCC = MFX_FOURCC_AYUV;
104+ decPostProcessing->Out.ChromaFormat = MFX_CHROMAFORMAT_YUV444;
105+ break;
106+
107+ case MFX_FOURCC_Y410:
108+ decPostProcessing->Out.FourCC = MFX_FOURCC_Y410;
109+ decPostProcessing->Out.ChromaFormat = MFX_CHROMAFORMAT_YUV444;
110+ break;
111+
112+ case MFX_FOURCC_Y416:
113+ decPostProcessing->Out.FourCC = MFX_FOURCC_Y416;
114+ decPostProcessing->Out.ChromaFormat = MFX_CHROMAFORMAT_YUV444;
115+ break;
116+
117+ default:
118+ break;
119+ }
120+ }
121+ decPostProcessing->Out.Width = MSDK_ALIGN16(pParams->Width);
122+ decPostProcessing->Out.Height = MSDK_ALIGN16(pParams->Height);
123+ decPostProcessing->Out.CropX = 0;
124+ decPostProcessing->Out.CropY = 0;
125+ decPostProcessing->Out.CropW = pParams->Width;
126+ decPostProcessing->Out.CropH = pParams->Height;
127
128 msdk_printf(MSDK_STRING("Decoder's post-processing is used for resizing\n"));
129 }
130--
1312.33.1
132