GNOME Bugzilla – Bug 747972
vaapidecode: make it work with waylandsink
Last modified: 2017-11-09 19:16:27 UTC
Right now, if you play a video using as video sink waylayndsink, the pipieline fails: 0:00:00.213794717 5057 0x7f949c26ee80 DEBUG waylandsink gstwaylandsink.c:535:gst_wayland_sink_preroll:<waylandsink0> preroll buffer 0x7f94a00c4890 0:00:00.213930788 5057 0x7f949c26ee80 DEBUG waylandsink wlshmallocator.c:170:gst_wl_shm_memory_construct_wl_buffer:<wlshmallocator0> Creating wl_buffer of size 4 (1 x 1, stride 4), format BGRx 0:00:00.213978233 5057 0x7f949c26ee80 DEBUG waylandsink wlshmallocator.c:170:gst_wl_shm_memory_construct_wl_buffer:<wlshmallocator0> Creating wl_buffer of size 8355840 (1920 x 1088, stride 7680), format BGRA 0:00:00.0 / 0:09:56.4 ^MPrerolled.^M0:00:00.264382448 5057 0x7f949c26ee80 DEBUG waylandsink wlshmallocator.c:170:gst_wl_shm_memory_construct_wl_buffer:<wlshmallocator0> Creating wl_buffer of size 8355840 (1920 x 1088, stride 7680), format BGRA ** (gst-play-1.0:5057): CRITICAL **: gst_wl_shm_memory_construct_wl_buffer: assertion 'shm_mem->fd != -1' failed 0:00:00.306617236 5057 0x7f949c26ee80 ERROR waylandsink gstwaylandsink.c:700:gst_wayland_sink_render:<waylandsink0> could not create wl_buffer out of wl_shm memory 0:00:00.307085939 5057 0x7f94ac0044f0 ERROR vaapidecode gstvaapidecode.c:324:gst_vaapidecode_push_decoded_frame: video sink rejected the video buffer (error: error [-5]) 0:00:00.307108041 5057 0x7f94ac0044f0 ERROR vaapidecode gstvaapidecode.c:412:gst_vaapidecode_handle_frame: push loop error after decoding -5
I'm not seeing this issue. This pipeline runs ok for me: `videotestsrc ! x264enc ! vaapidecodebin ! waylandsink`
(In reply to Scott D Phillips from comment #1) > I'm not seeing this issue. This pipeline runs ok for me: `videotestsrc ! > x264enc ! vaapidecodebin ! waylandsink` Cool! I guess now waylandsink can handle external buffers. Though, I would be nice if vaapidecode/vaapipostproc could accept wayland buffers, to avoid memcopy. But that feature would need to stabilize the gstwayland API.
Moving to Product:GStreamer, Component:gstreamer-vaapi
well, I have neglecting this since long ago. waylandsink works with memcopy. I'll close this as NOTABUG If we need zero copy, we will create another bug.