[vlc-devel] [PATCH 1/2] nvdec: add chroma and depth fallback

quentin.chateau at deepskycorp.com quentin.chateau at deepskycorp.com
Mon Apr 6 15:02:06 CEST 2020


From: Quentin Chateau <quentin.chateau at deepskycorp.com>

When the chroma and depth is unknown to the hxxx_helper,
fallback to the common 4:2:0 8bits format as initial value.
The decoder may change these values later on.
---
 modules/hw/nvdec/nvdec.c | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/modules/hw/nvdec/nvdec.c b/modules/hw/nvdec/nvdec.c
index e3aeff2355..ca28522d32 100644
--- a/modules/hw/nvdec/nvdec.c
+++ b/modules/hw/nvdec/nvdec.c
@@ -923,15 +923,19 @@ static int OpenDecoder(vlc_object_t *p_this)
     // try different output
     if (p_sys->b_is_hxxx)
     {
-        uint8_t i_chroma_idc, i_depth_chroma;
-        result = hxxx_helper_get_chroma_chroma(&p_sys->hh, &i_chroma_idc,
-                                            &i_depth_luma, &i_depth_chroma);
-        if (result != VLC_SUCCESS) {
-            if (p_sys->b_is_hxxx)
-                hxxx_helper_clean(&p_sys->hh);
-            return VLC_EGENERIC;
+        uint8_t hxxx_chroma_idc, hxxx_depth_chroma, hxxx_depth_luma;
+        result = hxxx_helper_get_chroma_chroma(&p_sys->hh, &hxxx_chroma_idc,
+                                            &hxxx_depth_luma, &hxxx_depth_chroma);
+        if (result == VLC_SUCCESS)
+        {
+            i_depth_luma = hxxx_depth_luma;
+            cudaChroma = MapChomaIDC(hxxx_chroma_idc);
+        }
+        else
+        {
+            cudaChroma = cudaVideoChromaFormat_420;
+            i_depth_luma = 8;
         }
-        cudaChroma = MapChomaIDC(i_chroma_idc);
 
         unsigned i_w, i_h, i_vw, i_vh;
         result = hxxx_helper_get_current_picture_size(&p_sys->hh, &i_w, &i_h, &i_vw, &i_vh);
-- 
2.17.1



More information about the vlc-devel mailing list