[vlc-commits] directx_va: disable HEVC 8 bits decoding for old Intel drivers too

Steve Lhomme git at videolan.org
Thu Apr 5 09:19:31 CEST 2018


vlc/vlc-3.0 | branch: master | Steve Lhomme <robux4 at ycbcr.xyz> | Tue Apr  3 10:04:00 2018 +0200| [e0329ff0c31db3e750a2e90c804a0b8ea43e3ead] | committer: Jean-Baptiste Kempf

directx_va: disable HEVC 8 bits decoding for old Intel drivers too

They don't work just like with 10 bits.

Fixes #20164

(cherry picked from commit 6c055e8b1e4638808031120fc40f2bd88697acd1)
Signed-off-by: Jean-Baptiste Kempf <jb at videolan.org>

> http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=e0329ff0c31db3e750a2e90c804a0b8ea43e3ead
---

 modules/codec/avcodec/d3d11va.c | 4 +++-
 modules/codec/avcodec/dxva2.c   | 4 +++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/modules/codec/avcodec/d3d11va.c b/modules/codec/avcodec/d3d11va.c
index 37657aebbc..3aee0cd621 100644
--- a/modules/codec/avcodec/d3d11va.c
+++ b/modules/codec/avcodec/d3d11va.c
@@ -543,6 +543,7 @@ static int DxGetInputList(vlc_va_t *va, input_list_t *p_list)
     return VLC_SUCCESS;
 }
 
+extern const GUID DXVA_ModeHEVC_VLD_Main;
 extern const GUID DXVA_ModeHEVC_VLD_Main10;
 extern const GUID DXVA_ModeVP9_VLD_10bit_Profile2;
 static bool CanUseIntelHEVC(vlc_va_t *va)
@@ -577,7 +578,8 @@ static int DxSetupOutput(vlc_va_t *va, const GUID *input, const video_format_t *
     }
 #endif
 
-    if (IsEqualGUID(input,&DXVA_ModeHEVC_VLD_Main10) && !CanUseIntelHEVC(va))
+    if ((IsEqualGUID(input,&DXVA_ModeHEVC_VLD_Main) ||
+         IsEqualGUID(input,&DXVA_ModeHEVC_VLD_Main10)) && !CanUseIntelHEVC(va))
         return VLC_EGENERIC;
 
     DXGI_FORMAT processorInput[5];
diff --git a/modules/codec/avcodec/dxva2.c b/modules/codec/avcodec/dxva2.c
index 895ae325ff..f8f7713e22 100644
--- a/modules/codec/avcodec/dxva2.c
+++ b/modules/codec/avcodec/dxva2.c
@@ -495,6 +495,7 @@ static int DxGetInputList(vlc_va_t *va, input_list_t *p_list)
     return VLC_SUCCESS;
 }
 
+extern const GUID DXVA_ModeHEVC_VLD_Main;
 extern const GUID DXVA_ModeHEVC_VLD_Main10;
 static bool CanUseIntelHEVC(vlc_va_t *va)
 {
@@ -517,7 +518,8 @@ static int DxSetupOutput(vlc_va_t *va, const GUID *input, const video_format_t *
 {
     VLC_UNUSED(fmt);
 
-    if (IsEqualGUID(input,&DXVA_ModeHEVC_VLD_Main10) && !CanUseIntelHEVC(va))
+    if ((IsEqualGUID(input,&DXVA_ModeHEVC_VLD_Main) ||
+         IsEqualGUID(input,&DXVA_ModeHEVC_VLD_Main10)) && !CanUseIntelHEVC(va))
         return VLC_EGENERIC;
 
     int err = VLC_EGENERIC;



More information about the vlc-commits mailing list