summaryrefslogtreecommitdiffstats
path: root/recipes-multimedia/vpl/files/0003-Enable-YUV400-JPEG-Enc-for-linux-vaapi-only.patch
blob: 7e7355565fda4f31b23666519920c66ebd12efa6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
From a876f3bd8d31ae47e4f8148ec89edef1eb5dee5f Mon Sep 17 00:00:00 2001
From: Vincent Cheah Beng Keat <vincent.beng.keat.cheah@intel.com>
Date: Wed, 12 Jun 2024 10:58:13 +0800
Subject: [PATCH 3/9] Enable YUV400 JPEG Enc for linux vaapi only

Upstream-Status: Backport [https://github.com/intel/libvpl-tools/commit/ef82b8a608999e56a2449937d1fa4cbee274d9ab]
Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
---
 .../sample_encode/src/pipeline_encode.cpp     | 28 +++++++++++++++----
 .../sample_encode/src/sample_encode.cpp       |  2 +-
 2 files changed, 23 insertions(+), 7 deletions(-)

diff --git a/tools/legacy/sample_encode/src/pipeline_encode.cpp b/tools/legacy/sample_encode/src/pipeline_encode.cpp
index cda607b..b29dc29 100644
--- a/tools/legacy/sample_encode/src/pipeline_encode.cpp
+++ b/tools/legacy/sample_encode/src/pipeline_encode.cpp
@@ -846,9 +846,15 @@ mfxStatus CEncodingPipeline::CheckHyperEncodeParams(mfxHyperMode hyperMode) {
 #endif
 
 mfxU32 CEncodingPipeline::FileFourCC2EncFourCC(mfxU32 fcc) {
-    // File reader automatically converts I420 and YV12 to NV12
-    if (fcc == MFX_FOURCC_I420 || fcc == MFX_FOURCC_YV12)
+    // File reader automatically converts I420, YV12 to NV12
+    // On windows, YUV400 is automatically converts to NV12.
+    if (fcc == MFX_FOURCC_I420 || fcc == MFX_FOURCC_YV12
+#if (defined(_WIN64) || defined(_WIN32))
+        || fcc == MFX_FOURCC_YUV400
+#endif
+    ) {
         return MFX_FOURCC_NV12;
+    }
     else
         return fcc;
 }
@@ -1652,11 +1658,21 @@ mfxStatus CEncodingPipeline::Init(sInputParams* pParams) {
 
     // FileReader can convert yv12->nv12 without vpp, when hw impl
     if (pParams->bUseHWLib) {
-        m_InputFourCC = (pParams->FileInputFourCC == MFX_FOURCC_I420) ? MFX_FOURCC_NV12
-                                                                      : pParams->FileInputFourCC;
+        m_InputFourCC = ((pParams->FileInputFourCC == MFX_FOURCC_I420)
+#if (defined(_WIN64) || defined(_WIN32))
+                         || (pParams->FileInputFourCC == MFX_FOURCC_YUV400)
+#endif
+                             )
+                            ? MFX_FOURCC_NV12
+                            : pParams->FileInputFourCC;
 
-        pParams->EncodeFourCC =
-            (pParams->EncodeFourCC == MFX_FOURCC_I420) ? MFX_FOURCC_NV12 : pParams->EncodeFourCC;
+        pParams->EncodeFourCC = ((pParams->EncodeFourCC == MFX_FOURCC_I420)
+#if (defined(_WIN64) || defined(_WIN32))
+                                 || (pParams->EncodeFourCC == MFX_FOURCC_YUV400)
+#endif
+                                     )
+                                    ? MFX_FOURCC_NV12
+                                    : pParams->EncodeFourCC;
     }
     else {
         m_InputFourCC = pParams->FileInputFourCC;
diff --git a/tools/legacy/sample_encode/src/sample_encode.cpp b/tools/legacy/sample_encode/src/sample_encode.cpp
index 7c722ea..ed142f5 100644
--- a/tools/legacy/sample_encode/src/sample_encode.cpp
+++ b/tools/legacy/sample_encode/src/sample_encode.cpp
@@ -95,7 +95,7 @@ void PrintHelp(char* strAppName, const char* strErrorMessage, ...) {
     printf(
         "   [-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");
     printf(
-        "   [-yuv400] -  input color format is YUV400 (grayscale) and will be converted to NV12 for encoding (JPEG only).\n");
+        "   [-yuv400] -  input color format is YUV400 (grayscale) and will be converted to NV12 for encoding (JPEG Windows only).\n");
     printf(
         "   [-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");
     printf(
-- 
2.43.2