GNOME Bugzilla – Bug 786413
Caught SIGSEGV when transcode 1920x1080 video with videoparse
Last modified: 2018-11-03 15:51:12 UTC
Gstreamer-vaapi: 1.12.0 (1.8.3 version this issue already exist). Intel VA driver: 1.8.3 Libva: 1.8.3 OS: Yocto Build image. By using fail command Caught SIGVSEGV and if run second time or third time again, it will causing the processing not able to exit ever ctrl-c. It happens in 1920x1080 video during transcoding. 1. Command fail in 1920x1080 video: gst-launch-1.0 filesrc location=/home/root/Puppies_1920x1080_38mbps_30fps_Main_at_L4.1.mkv ! matroskademux ! vaapih265dec ! videoparse width=1920 height=1080 format=i420 framerate=30 ! vaapipostproc width=1280 height=720 ! vaapih264enc ! fpsdisplaysink videosink=fakesink text-overlay=false gst-launch-1.0 -v filesrc location=/home/root/HoneyBee_1920x1080_10mbps_30fps_L4.2.mp4 ! qtdemux ! vaapih264dec ! videoparse width=1920 format=i420 framerate=30 height=1080 ! vaapipostproc width=1920 height=1080 ! vaapih265enc ! fpsdisplaysink video-sink=fakesink text-overlay=false 2. Command Pass in 640x320 video: gst-launch-1.0 -v filesrc location=/home/root/Cactus_640x320_3mbps_30fps_Main_at_L2.2.mp4 ! qtdemux ! vaapih264dec ! videoparse width=640 format=i420 framerate=30 height=320 ! vaapipostproc width=1920 height=1080 ! vaapih265enc ! fpsdisplaysink video-sink=fakesink text-overlay=false 3. Command Pass in 1920x1080 video if no videoparse: gst-launch-1.0 -v filesrc location=/home/root/HoneyBee_1920x1080_10mbps_30fps_L4.2.mp4 ! qtdemux ! vaapih264dec ! vaapipostproc width=1920 height=1080 ! vaapih265enc ! fpsdisplaysink video-sink=fakesink text-overlay=false 4. Command Pass in 1920x1080 video if replace vaapi decode to avdec_xxx. gst-launch-1.0 -v filesrc location=/home/root/HoneyBee_1920x1080_10mbps_30fps_L4.2.mp4 ! qtdemux ! avdec_h264 ! videoparse width=1920 format=i420 framerate=30 height=1080 ! vaapipostproc width=1920 height=1080 ! vaapih265enc ! fpsdisplaysink video-sink=fakesink text-overlay=false
I'm aware that videoparse deprecated in 1.12.0 version. It should return an error and exit, instead of leaving it causing SIGSEGV??
To avoid this crash, gst adapter should handle the case if gst_buffer_copy_region fails. In vaapi, it's doing as much as it can. (returning NULL when region copy is requested since it's unsupported) By the way, bug #785054 should fix this, if I understand correctly.
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/66.