diff options
Diffstat (limited to 'recipes-multimedia/vpl/files/0002-Enable-YUV400-JPEG-Enc-for-vaapi.patch')
-rw-r--r-- | recipes-multimedia/vpl/files/0002-Enable-YUV400-JPEG-Enc-for-vaapi.patch | 154 |
1 files changed, 0 insertions, 154 deletions
diff --git a/recipes-multimedia/vpl/files/0002-Enable-YUV400-JPEG-Enc-for-vaapi.patch b/recipes-multimedia/vpl/files/0002-Enable-YUV400-JPEG-Enc-for-vaapi.patch deleted file mode 100644 index 5529b5e3..00000000 --- a/recipes-multimedia/vpl/files/0002-Enable-YUV400-JPEG-Enc-for-vaapi.patch +++ /dev/null | |||
@@ -1,154 +0,0 @@ | |||
1 | From 1a064a36c164080a21f8d89409564c1812dea6af Mon Sep 17 00:00:00 2001 | ||
2 | From: Vincent Cheah Beng Keat <vincent.beng.keat.cheah@intel.com> | ||
3 | Date: Wed, 15 May 2024 09:51:53 +0800 | ||
4 | Subject: [PATCH 2/9] Enable YUV400 JPEG Enc for vaapi | ||
5 | |||
6 | Upstream-Status: Backport [https://github.com/intel/libvpl-tools/commit/747b66ce97c6ac5d17a8b8629eb22d790d802da3] | ||
7 | Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com> | ||
8 | --- | ||
9 | .../legacy/sample_common/src/sample_utils.cpp | 2 +- | ||
10 | .../sample_common/src/vaapi_allocator.cpp | 13 +++++++++++- | ||
11 | .../sample_encode/src/pipeline_encode.cpp | 20 +++++++++---------- | ||
12 | .../sample_encode/src/sample_encode.cpp | 4 ---- | ||
13 | 4 files changed, 22 insertions(+), 17 deletions(-) | ||
14 | |||
15 | diff --git a/tools/legacy/sample_common/src/sample_utils.cpp b/tools/legacy/sample_common/src/sample_utils.cpp | ||
16 | index ddd783f..b2b67bf 100644 | ||
17 | --- a/tools/legacy/sample_common/src/sample_utils.cpp | ||
18 | +++ b/tools/legacy/sample_common/src/sample_utils.cpp | ||
19 | @@ -284,7 +284,7 @@ mfxStatus CSmplYUVReader::LoadNextFrame(mfxFrameSurface1* pSurface) { | ||
20 | MFX_FOURCC_P010 == pInfo.FourCC || MFX_FOURCC_P210 == pInfo.FourCC || | ||
21 | MFX_FOURCC_P016 == pInfo.FourCC || MFX_FOURCC_I010 == pInfo.FourCC || | ||
22 | MFX_FOURCC_P016 == pInfo.FourCC || MFX_FOURCC_I010 == pInfo.FourCC || | ||
23 | - MFX_FOURCC_I420 == pInfo.FourCC) { | ||
24 | + MFX_FOURCC_I420 == pInfo.FourCC || MFX_FOURCC_YUV400 == pInfo.FourCC) { | ||
25 | pitch = pData.Pitch; | ||
26 | ptr = pData.Y + pInfo.CropX + pInfo.CropY * pData.Pitch; | ||
27 | |||
28 | diff --git a/tools/legacy/sample_common/src/vaapi_allocator.cpp b/tools/legacy/sample_common/src/vaapi_allocator.cpp | ||
29 | index db18e23..8ee2408 100644 | ||
30 | --- a/tools/legacy/sample_common/src/vaapi_allocator.cpp | ||
31 | +++ b/tools/legacy/sample_common/src/vaapi_allocator.cpp | ||
32 | @@ -54,6 +54,8 @@ unsigned int ConvertMfxFourccToVAFormat(mfxU32 fourcc) { | ||
33 | return VA_FOURCC_Y216; | ||
34 | case MFX_FOURCC_Y416: | ||
35 | return VA_FOURCC_Y416; | ||
36 | + case MFX_FOURCC_YUV400: | ||
37 | + return VA_FOURCC_Y800; | ||
38 | |||
39 | default: | ||
40 | assert(!"unsupported fourcc"); | ||
41 | @@ -133,7 +135,8 @@ static mfxStatus GetVAFourcc(mfxU32 fourcc, unsigned int& va_fourcc) { | ||
42 | (VA_FOURCC_Y210 != va_fourcc) && (VA_FOURCC_Y410 != va_fourcc) && | ||
43 | (VA_FOURCC_RGB565 != va_fourcc) && (VA_FOURCC_RGBP != va_fourcc) && | ||
44 | (VA_FOURCC_P016 != va_fourcc) && (VA_FOURCC_Y216 != va_fourcc) && | ||
45 | - (VA_FOURCC_Y416 != va_fourcc) && (VA_FOURCC_AYUV != va_fourcc))) { | ||
46 | + (VA_FOURCC_Y416 != va_fourcc) && (VA_FOURCC_AYUV != va_fourcc) && | ||
47 | + (VA_FOURCC_Y800 != va_fourcc))) { | ||
48 | return MFX_ERR_MEMORY_ALLOC; | ||
49 | } | ||
50 | |||
51 | @@ -281,6 +284,9 @@ mfxStatus vaapiFrameAllocator::AllocImpl(mfxFrameAllocRequest* request, | ||
52 | else if (fourcc == MFX_FOURCC_RGBP) { | ||
53 | format = VA_RT_FORMAT_RGBP; | ||
54 | } | ||
55 | + else if (fourcc == MFX_FOURCC_YUV400) { | ||
56 | + format = VA_RT_FORMAT_YUV400; | ||
57 | + } | ||
58 | |||
59 | va_res = m_libva->vaCreateSurfaces(m_dpy, | ||
60 | format, | ||
61 | @@ -486,6 +492,11 @@ mfxStatus vaapiFrameAllocator::LockFrame(mfxMemId mid, mfxFrameData* ptr) { | ||
62 | } | ||
63 | if (MFX_ERR_NONE == mfx_res) { | ||
64 | switch (vaapi_mid->m_image.format.fourcc) { | ||
65 | + case MFX_FOURCC_YUV400: | ||
66 | + if (mfx_fourcc != vaapi_mid->m_image.format.fourcc) | ||
67 | + return MFX_ERR_LOCK_MEMORY; | ||
68 | + { ptr->Y = pBuffer + vaapi_mid->m_image.offsets[0]; } | ||
69 | + break; | ||
70 | case VA_FOURCC_NV12: | ||
71 | if (mfx_fourcc != vaapi_mid->m_image.format.fourcc) | ||
72 | return MFX_ERR_LOCK_MEMORY; | ||
73 | diff --git a/tools/legacy/sample_encode/src/pipeline_encode.cpp b/tools/legacy/sample_encode/src/pipeline_encode.cpp | ||
74 | index 4476c49..cda607b 100644 | ||
75 | --- a/tools/legacy/sample_encode/src/pipeline_encode.cpp | ||
76 | +++ b/tools/legacy/sample_encode/src/pipeline_encode.cpp | ||
77 | @@ -50,6 +50,7 @@ msdk_tick time_get_frequency(void) { | ||
78 | |||
79 | mfxU16 FourCcBitDepth(mfxU32 fourCC) { | ||
80 | switch (fourCC) { | ||
81 | + case MFX_FOURCC_YUV400: | ||
82 | case MFX_FOURCC_NV12: | ||
83 | case MFX_FOURCC_NV16: | ||
84 | case MFX_FOURCC_YUY2: | ||
85 | @@ -845,8 +846,8 @@ mfxStatus CEncodingPipeline::CheckHyperEncodeParams(mfxHyperMode hyperMode) { | ||
86 | #endif | ||
87 | |||
88 | mfxU32 CEncodingPipeline::FileFourCC2EncFourCC(mfxU32 fcc) { | ||
89 | - // File reader automatically converts I420, YV12, and YUV400 to NV12 | ||
90 | - if (fcc == MFX_FOURCC_I420 || fcc == MFX_FOURCC_YV12 || fcc == MFX_FOURCC_YUV400) | ||
91 | + // File reader automatically converts I420 and YV12 to NV12 | ||
92 | + if (fcc == MFX_FOURCC_I420 || fcc == MFX_FOURCC_YV12) | ||
93 | return MFX_FOURCC_NV12; | ||
94 | else | ||
95 | return fcc; | ||
96 | @@ -1054,6 +1055,7 @@ mfxStatus CEncodingPipeline::AllocFrames() { | ||
97 | |||
98 | // prepare allocation requests | ||
99 | EncRequest.NumFrameSuggested = EncRequest.NumFrameMin = nEncSurfNum; | ||
100 | + | ||
101 | MSDK_MEMCPY_VAR(EncRequest.Info, &(m_mfxEncParams.mfx.FrameInfo), sizeof(mfxFrameInfo)); | ||
102 | if (m_pmfxVPP) { | ||
103 | EncRequest.Type |= | ||
104 | @@ -1650,15 +1652,11 @@ mfxStatus CEncodingPipeline::Init(sInputParams* pParams) { | ||
105 | |||
106 | // FileReader can convert yv12->nv12 without vpp, when hw impl | ||
107 | if (pParams->bUseHWLib) { | ||
108 | - m_InputFourCC = ((pParams->FileInputFourCC == MFX_FOURCC_I420) || | ||
109 | - (pParams->FileInputFourCC == MFX_FOURCC_YUV400)) | ||
110 | - ? MFX_FOURCC_NV12 | ||
111 | - : pParams->FileInputFourCC; | ||
112 | - | ||
113 | - pParams->EncodeFourCC = ((pParams->EncodeFourCC == MFX_FOURCC_I420) || | ||
114 | - (pParams->EncodeFourCC == MFX_FOURCC_YUV400)) | ||
115 | - ? MFX_FOURCC_NV12 | ||
116 | - : pParams->EncodeFourCC; | ||
117 | + m_InputFourCC = (pParams->FileInputFourCC == MFX_FOURCC_I420) ? MFX_FOURCC_NV12 | ||
118 | + : pParams->FileInputFourCC; | ||
119 | + | ||
120 | + pParams->EncodeFourCC = | ||
121 | + (pParams->EncodeFourCC == MFX_FOURCC_I420) ? MFX_FOURCC_NV12 : pParams->EncodeFourCC; | ||
122 | } | ||
123 | else { | ||
124 | m_InputFourCC = pParams->FileInputFourCC; | ||
125 | diff --git a/tools/legacy/sample_encode/src/sample_encode.cpp b/tools/legacy/sample_encode/src/sample_encode.cpp | ||
126 | index 0a65016..7c722ea 100644 | ||
127 | --- a/tools/legacy/sample_encode/src/sample_encode.cpp | ||
128 | +++ b/tools/legacy/sample_encode/src/sample_encode.cpp | ||
129 | @@ -94,10 +94,8 @@ void PrintHelp(char* strAppName, const char* strErrorMessage, ...) { | ||
130 | #endif | ||
131 | printf( | ||
132 | " [-nv12|nv16|yuy2|uyvy|ayuv|rgb4|bgr4|p010|y210|y410|a2rgb10|p016|p210|y216|i010|i420] - input color format (by default YUV420 is expected).\n"); | ||
133 | -#if (defined(_WIN64) || defined(_WIN32)) | ||
134 | printf( | ||
135 | " [-yuv400] - input color format is YUV400 (grayscale) and will be converted to NV12 for encoding (JPEG only).\n"); | ||
136 | -#endif | ||
137 | printf( | ||
138 | " [-msb10] - 10-bit color format is expected to have data in Most Significant Bits of words.\n (LSB data placement is expected by default).\n This option also disables data shifting during file reading.\n"); | ||
139 | printf( | ||
140 | @@ -924,11 +922,9 @@ mfxStatus ParseInputString(char* strInput[], mfxU32 nArgNum, sInputParams* pPara | ||
141 | else if (msdk_match(strInput[i], "-y410")) { | ||
142 | pParams->FileInputFourCC = MFX_FOURCC_Y410; | ||
143 | } | ||
144 | -#if (defined(_WIN64) || defined(_WIN32)) | ||
145 | else if (msdk_match(strInput[i], "-yuv400")) { | ||
146 | pParams->FileInputFourCC = MFX_FOURCC_YUV400; | ||
147 | } | ||
148 | -#endif | ||
149 | else if (msdk_match(strInput[i], "-ec::p010")) { | ||
150 | pParams->EncodeFourCC = MFX_FOURCC_P010; | ||
151 | } | ||
152 | -- | ||
153 | 2.43.2 | ||
154 | |||