h265decoder: h265 stream with alpha not decoding properly
Describe your issue
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 https://rotato.app/tools/transparent-video, it is in fact valid and has alpha (Safari on Mac Ventura), so using Apple's HEVC decoder I expect.
Expected Behavior
Expect video to play properly, with alpha mask respected.
Observed Behavior
When playing using gst-play-1.0 on Ubuntu 22.04 LTS using kmssink
in 1.22, I see either no image (and lots of errors to console) if playing a file or the alpha mask plus flashes of the image when using an HLS segmented version of same delivered via HTTP.
See this thread for more detail: https://lists.freedesktop.org/archives/gstreamer-devel/2023-January/080913.html
Setup
- Operating System: Ubuntu 22.04 LTS up to date as of Jan 25 2023
- Device: Computer - Intel NUC i5 11th gen
- GStreamer Version: 1.22.0 built locally
-
Command line:
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
Steps to reproduce the bug
When I play it using gst-play:
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
I get a passel of these errors:
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
0:00:00.069829360 20898 0x7feab00205e0 WARN videodecoder gstvideodecoder.c:4795:_gst_video_decoder_error:<vah265dec0> error: Failed to decode data
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.
How reproducible is the bug?
100% reproducible
Screenshots if relevant
Solutions you have tried
Note that a similar 8bit vp9 packaged in webm plays properly.