[vlc-devel] [PATCH 2/8] d3d11va: workaround for Xbox decoder limitations

Steve Lhomme robux4 at videolabs.io
Tue Jan 10 09:55:41 CET 2017


---
 modules/codec/avcodec/d3d11va.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/modules/codec/avcodec/d3d11va.c b/modules/codec/avcodec/d3d11va.c
index b139b8a..c3f5e9e 100644
--- a/modules/codec/avcodec/d3d11va.c
+++ b/modules/codec/avcodec/d3d11va.c
@@ -963,6 +963,17 @@ static int DxCreateDecoderSurfaces(vlc_va_t *va, int codec_id, const video_forma
         ID3D10Multithread_Release(pMultithread);
     }
 
+#if VLC_WINSTORE_APP
+    if (codec_id == AV_CODEC_ID_H264 && 
+        (dx_sys->surface_width > 2304 || dx_sys->surface_height > 2304) &&
+        isXboxHardware((ID3D11Device*) dx_sys->d3ddev))
+    {
+        msg_Warn(va, "%dx%d resolution not supported by your hardware", dx_sys->surface_width, dx_sys->surface_height);
+        dx_sys->surface_count = 0;
+        return VLC_EGENERIC;
+    }
+#endif
+
     D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC viewDesc;
     ZeroMemory(&viewDesc, sizeof(viewDesc));
     viewDesc.DecodeProfile = dx_sys->input;
-- 
2.10.2



More information about the vlc-devel mailing list