summaryrefslogtreecommitdiffstats
path: root/recipes-multimedia/onevpl/files/0001-Encode-Bugfix-for-HEVC-VDENC-422-RPL-caps-issue.-588.patch
blob: 6209f960a75e4c0bc9dc68f2048aff617e2d8c2a (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
From 3830e393b6e2807f842d3cacda575fa715827e62 Mon Sep 17 00:00:00 2001
From: gfxVPLsdm <gfxvplsdm@intel.com>
Date: Thu, 19 Oct 2023 13:03:53 +0800
Subject: [PATCH] [Encode] Bugfix for HEVC VDENC 422 RPL caps issue. (#5886)

Fixed HEVC VDENC 422 RPL caps issue.

Co-authored-by: Wenjuan Zhang <wenjuan.zhang@intel.com>

Upstream-Status: Backport [https://github.com/oneapi-src/oneVPL-intel-gpu/commit/3830e393b6e2807f842d3cacda575fa715827e62]
Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
---
 .../hevc/agnostic/base/hevcehw_base_recon422.h        |  4 +++-
 .../hevc/agnostic/base/hevcehw_base_recon422_ext.h    | 11 +++++++++++
 .../hevc/linux/base/hevcehw_base_va_packer_lin.cpp    |  2 +-
 3 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/_studio/mfx_lib/encode_hw/hevc/agnostic/base/hevcehw_base_recon422.h b/_studio/mfx_lib/encode_hw/hevc/agnostic/base/hevcehw_base_recon422.h
index 24bf5cf2..d150ca1c 100644
--- a/_studio/mfx_lib/encode_hw/hevc/agnostic/base/hevcehw_base_recon422.h
+++ b/_studio/mfx_lib/encode_hw/hevc/agnostic/base/hevcehw_base_recon422.h
@@ -36,7 +36,9 @@ class Recon422
 public:
 #define DECL_BLOCK_LIST\
         DECL_BLOCK(SetCallChain)\
-        DECL_BLOCK(SetRecon422Caps)
+        DECL_BLOCK(SetRecon422Caps)\
+        DECL_BLOCK(HardcodeCaps)\
+        DECL_BLOCK(HardcodeCapsExt)
 #define DECL_FEATURE_NAME "Base_RECON422"
 #include "hevcehw_decl_blocks.h"
 
diff --git a/_studio/mfx_lib/encode_hw/hevc/agnostic/base/hevcehw_base_recon422_ext.h b/_studio/mfx_lib/encode_hw/hevc/agnostic/base/hevcehw_base_recon422_ext.h
index 165c96b1..63b3c301 100644
--- a/_studio/mfx_lib/encode_hw/hevc/agnostic/base/hevcehw_base_recon422_ext.h
+++ b/_studio/mfx_lib/encode_hw/hevc/agnostic/base/hevcehw_base_recon422_ext.h
@@ -40,6 +40,17 @@ public:
     {}
 
 protected:
+    virtual void Query1WithCaps(const FeatureBlocks& /*blocks*/, TPushQ1 Push) override
+    {
+        Push(BLK_HardcodeCaps
+            , [this](const mfxVideoParam&, mfxVideoParam&, StorageRW& strg) -> mfxStatus
+        {
+            auto& caps = HEVCEHW::Base::Glob::EncodeCaps::Get(strg);
+            caps.YUV422ReconSupport = !caps.Color420Only;
+            return MFX_ERR_NONE;
+        });
+    }
+
     virtual void Query1NoCaps(const FeatureBlocks& blocks, TPushQ1 Push) override
     {
         using Base::Glob;
diff --git a/_studio/mfx_lib/encode_hw/hevc/linux/base/hevcehw_base_va_packer_lin.cpp b/_studio/mfx_lib/encode_hw/hevc/linux/base/hevcehw_base_va_packer_lin.cpp
index 1ffc9388..46a1f69c 100644
--- a/_studio/mfx_lib/encode_hw/hevc/linux/base/hevcehw_base_va_packer_lin.cpp
+++ b/_studio/mfx_lib/encode_hw/hevc/linux/base/hevcehw_base_va_packer_lin.cpp
@@ -60,7 +60,7 @@ void VAPacker::Query1WithCaps(const FeatureBlocks& /*blocks*/, TPushQ1 Push)
 
         caps.MaxEncodedBitDepth |= (!caps.BitDepth8Only);
         caps.YUV444ReconSupport |= (!caps.Color420Only && IsOn(par.mfx.LowPower));
-        caps.YUV422ReconSupport &= (!caps.Color420Only);
+        caps.YUV422ReconSupport &= (!caps.Color420Only && !IsOn(par.mfx.LowPower));
 
         return MFX_ERR_NONE;
     });
-- 
2.40.1