vlc | branch: master | Thomas Guillem <tho...@gllm.fr> | Thu Mar  1 18:06:21 
2018 +0100| [1ab0330d135c5e083cb4c4139a28d8778a7ffb43] | committer: Thomas 
Guillem

directx_va: also check avctx profile

Better to get all chances to get a profile.

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

 modules/codec/avcodec/directx_va.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/modules/codec/avcodec/directx_va.c 
b/modules/codec/avcodec/directx_va.c
index 3efed0f1f0..eb00abb6c7 100644
--- a/modules/codec/avcodec/directx_va.c
+++ b/modules/codec/avcodec/directx_va.c
@@ -350,12 +350,13 @@ error:
     return VLC_EGENERIC;
 }
 
-static bool profile_supported(const directx_va_mode_t *mode, const es_format_t 
*fmt)
+static bool profile_supported(const directx_va_mode_t *mode, const es_format_t 
*fmt,
+                              const AVCodecContext *avctx)
 {
     bool is_supported = mode->p_profiles == NULL || !mode->p_profiles[0];
     if (!is_supported)
     {
-        int profile = fmt->i_profile;
+        int profile = fmt->i_profile >= 0 ? fmt->i_profile : avctx->profile;
         if (mode->codec == AV_CODEC_ID_H264)
         {
             uint8_t h264_profile;
@@ -420,7 +421,7 @@ static int FindVideoServiceConversion(vlc_va_t *va, 
directx_sys_t *dx_sys,
         }
         if ( is_supported )
         {
-            is_supported = profile_supported( mode, fmt );
+            is_supported = profile_supported( mode, fmt, avctx );
             if (!is_supported)
                 msg_Warn( va, "Unsupported profile %d for %s ",
                           fmt->i_profile, 
directx_va_GetDecoderName(mode->guid) );

_______________________________________________
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to