<html><head></head><body>Hi,<br><br>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.<br><br>I don't see how you can even end up in the described situation, unless the demuxer lies about the ES being packetised.<br><br><div class="gmail_quote">Le 6 avril 2020 16:02:06 GMT+03:00, quentin.chateau@deepskycorp.com a écrit :<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<pre class="k9mail">From: Quentin Chateau <quentin.chateau@deepskycorp.com><br><br>When the chroma and depth is unknown to the hxxx_helper,<br>fallback to the common 4:2:0 8bits format as initial value.<br>The decoder may change these values later on.<hr> modules/hw/nvdec/nvdec.c | 20 ++++++++++++--------<br> 1 file changed, 12 insertions(+), 8 deletions(-)<br><br>diff --git a/modules/hw/nvdec/nvdec.c b/modules/hw/nvdec/nvdec.c<br>index e3aeff2355..ca28522d32 100644<br>--- a/modules/hw/nvdec/nvdec.c<br>+++ b/modules/hw/nvdec/nvdec.c<br>@@ -923,15 +923,19 @@ static int OpenDecoder(vlc_object_t *p_this)<br>     // try different output<br>     if (p_sys->b_is_hxxx)<br>     {<br>-        uint8_t i_chroma_idc, i_depth_chroma;<br>-        result = hxxx_helper_get_chroma_chroma(&p_sys->hh, &i_chroma_idc,<br>-                                            &i_depth_luma, &i_depth_chroma);<br>-        if (result != VLC_SUCCESS) {<br>-            if (p_sys->b_is_hxxx)<br>-                hxxx_helper_clean(&p_sys->hh);<br>-            return VLC_EGENERIC;<br>+        uint8_t hxxx_chroma_idc, hxxx_depth_chroma, hxxx_depth_luma;<br>+        result = hxxx_helper_get_chroma_chroma(&p_sys->hh, &hxxx_chroma_idc,<br>+                                            &hxxx_depth_luma, &hxxx_depth_chroma);<br>+        if (result == VLC_SUCCESS)<br>+        {<br>+            i_depth_luma = hxxx_depth_luma;<br>+            cudaChroma = MapChomaIDC(hxxx_chroma_idc);<br>+        }<br>+        else<br>+        {<br>+            cudaChroma = cudaVideoChromaFormat_420;<br>+            i_depth_luma = 8;<br>         }<br>-        cudaChroma = MapChomaIDC(i_chroma_idc);<br> <br>         unsigned i_w, i_h, i_vw, i_vh;<br>         result = hxxx_helper_get_current_picture_size(&p_sys->hh, &i_w, &i_h, &i_vw, &i_vh);</pre></blockquote></div><br>-- <br>Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.</body></html>