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

Rémi Denis-Courmont remi at remlab.net
Tue Apr 7 09:48:04 CEST 2020


Hi,

I don't follow. Normally, you can't start any decoder if you don't know the format. It's even so now that if the packetiser finds a format change, we restart the decoder. That was specifically added (by Thomas?) to address switching between software and hardware decoding.

I don't see how you can even end up in the described situation, unless the demuxer lies about the ES being packetised.

Le 6 avril 2020 16:02:06 GMT+03:00, quentin.chateau at deepskycorp.com a écrit :
>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
>
>_______________________________________________
>vlc-devel mailing list
>To unsubscribe or modify your subscription options:
>https://mailman.videolan.org/listinfo/vlc-devel

-- 
Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20200407/0de9e5c5/attachment.html>


More information about the vlc-devel mailing list