<div dir="auto"><div>Hi Bill,<br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le mer. 25 janv. 2023, 21 h 45, Bill Hofmann via gstreamer-devel <<a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank" rel="noreferrer">gstreamer-devel@lists.freedesktop.org</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_default"><font face="verdana, sans-serif">So, I've got a 1080p HEVC 8bit/component file encoded with alpha. I've verified that, for instance, if I play that mp4 file on <a href="https://rotato.app/tools/transparent-video" rel="noreferrer noreferrer" target="_blank">https://rotato.app/tools/transparent-video</a>, it is in fact valid and has alpha (Safari on Mac Ventura), so using Apple's HEVC decoder I expect.</font></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default"><font face="verdana, sans-serif">When I play it using gst-play:</font><br><br></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div class="gmail_default"><font face="monospace">GST_PLUGIN_FEATURE_RANK=vah265dec:9999 GST_DEBUG=2,buffer*:1 gst-play-1.0 --use-playbin3 --videosink="kmssink connector-id=308 plane-id=31 skip-vsync=true" /media/views/content/views/redmonster.mp4</font></div></blockquote><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">I get a passel of these errors:<br><br></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div class="gmail_default"><font face="monospace" size="1">0:00:00.069814340 20898 0x7feab00205e0 WARN             h265decoder gsth265decoder.c:733:gst_h265_decoder_preprocess_slice:<vah265dec0> Current picture is not finished but slice header has first_slice_segment_in_pic_flag</font></div><div class="gmail_default"><font face="monospace" size="1">0:00:00.069829360 20898 0x7feab00205e0 WARN            videodecoder gstvideodecoder.c:4795:_gst_video_decoder_error:<vah265dec0> error: Failed to decode data</font></div></blockquote><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">And no picture, or no useful picture.  When instead I use an HLS segmented version of it, I *DO* get a picture, but a bad one - it seems to see the mask, but not be able to render the image.</div></div></blockquote></div></div><div dir="auto"><br></div><div dir="auto">H.264 and H.265 alpha have not been implemented yet. Normally it should have played the colors, but the parsers have issues with the alpha slices. Unlike alpha/webm, the alpha stream is embedded in the bitstream instead of the container, thus the parser has to be involved.</div><div dir="auto"><br></div><div dir="auto">I have a sample for h.264 alpha, and it decoded fine the colors, could you file an issue and attach a sample for the h.265 case. We should first fix the decoding of the colors, and then adding alpha support seems fun project too.</div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Good news is that a vp9/webm version with alpha *does* play like a charm using the same magic gst-play command line.</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Any thoughts on diagnosing the issue? Is it just "vah265dec doesn't support alpha" or is it something more complex?</div></div></blockquote></div></div><div dir="auto"><br></div><div dir="auto">The VP9 alpha support does not yet work with VA, but the autoplugger does the right thing (plug software decoders, it works with some V4L2 decoders, not all of them).</div><div dir="auto"><br></div><div dir="auto">The method of encoding 2 streams and combining them is identical. We simply need the parsers to extract the second stream and create the meta, and then bins to create the alpha decoders from 2 decoders. Here's a presentation about VP9/VP8 support.</div><div dir="auto"><br></div><div dir="auto"><a href="https://youtu.be/R0flfhLok94">https://youtu.be/R0flfhLok94</a><br></div><div dir="auto"><br></div><div dir="auto">Nicolas</div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">-Bill</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div>-- <br><div dir="ltr" data-smartmail="gmail_signature"><div dir="ltr"><div><font face="verdana, sans-serif">Bill Hofmann</font></div><div><font face="verdana, sans-serif" color="#666666">+1 (510) 387-0952</font></div></div></div></div>
</blockquote></div></div></div>