vaapivp8enc: crash when disposing pipeline
I'm running the above pipeline with main
. It works just fine but crashes when hitting Ctrl+C to stop it.
$ G_DEBUG=fatal-criticals gst-launch-1.0 videotestsrc ! vaapivp8enc ! queue ! vaapivp8dec ! videoconvert ! xvimagesink
Setting pipeline to PAUSED ...
wl_drm@11: error 0: authenticate failed
VA error: wayland: Wayland roundtrip error: Protocol error (errno 71)
Pipeline is PREROLLING ...
Got context from element 'vaapiencodevp8-0': gst.vaapi.Display=context, gst.vaapi.Display=(GstVaapiDisplay)"\(GstVaapiDisplayDRM\)\ vaapidisplaydrm1", gst.vaapi.Display.GObject=(GstObject)"\(GstVaapiDisplayDRM\)\ vaapidisplaydrm1";
Redistribute latency...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
Redistribute latency...
New clock: GstSystemClock
handling interrupt.:99.
Interrupt: Stopping pipeline ...
Execution ended after 0:00:01.791768750
Setting pipeline to NULL ...
** (gst-launch-1.0:19008): CRITICAL **: 14:16:55.236: gst_vaapi_surface_proxy_get_surface_id: assertion 'proxy != NULL' failed
#0 0x00007f3e4a9a4913 in g_logv () at /lib64/libglib-2.0.so.0
#1 0x00007f3e4a9a4b83 in g_log () at /lib64/libglib-2.0.so.0
#2 0x00007f3e49406d35 in gst_vaapi_surface_proxy_get_surface_id (proxy=<optimized out>) at ../subprojects/gstreamer-vaapi/gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:294
#3 0x00007f3e4942aad9 in fill_picture (surface=0x7f3e3d88d020, codedbuf=0x889f60, picture=0x7f3e3d87dca0, encoder=0x8a0020) at ../subprojects/gstreamer-vaapi/gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:314
#4 ensure_picture (surface=0x7f3e3d88d020, codedbuf_proxy=<optimized out>, picture=0x7f3e3d87dca0, encoder=0x8a0020) at ../subprojects/gstreamer-vaapi/gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:360
#5 gst_vaapi_encoder_vp8_encode (base_encoder=<optimized out>, picture=0x7f3e3d87dca0, codedbuf=<optimized out>) at ../subprojects/gstreamer-vaapi/gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:424
#6 0x00007f3e4940d2eb in gst_vaapi_encoder_encode_and_queue (encoder=encoder@entry=0x8a0020, picture=0x7f3e3d87dca0) at ../subprojects/gstreamer-vaapi/gst-libs/gst/vaapi/gstvaapiencoder.c:329
#7 0x00007f3e4940e581 in gst_vaapi_encoder_put_frame (encoder=0x8a0020, frame=<optimized out>, frame@entry=0x7f3e3c19e520) at ../subprojects/gstreamer-vaapi/gst-libs/gst/vaapi/gstvaapiencoder.c:380
#8 0x00007f3e493da232 in gst_vaapiencode_handle_frame (venc=0x896d40, frame=0x7f3e3c19e520) at ../subprojects/gstreamer-vaapi/gst/vaapi/gstvaapiencode.c:657
#9 0x00007f3e495e2d1a in gst_video_encoder_chain (pad=<optimized out>, parent=<optimized out>, buf=<optimized out>) at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideoencoder.c:1719
#10 0x00007f3e4ab1e0ad in gst_pad_chain_data_unchecked (pad=pad@entry=0x8602b0, type=type@entry=4112, data=data@entry=0x7f3e3c190000) at ../subprojects/gstreamer/gst/gstpad.c:4447
#11 0x00007f3e4ab202a1 in gst_pad_push_data (pad=pad@entry=0x860060, type=type@entry=4112, data=data@entry=0x7f3e3c190000) at ../subprojects/gstreamer/gst/gstpad.c:4711
#12 0x00007f3e4ab27582 in gst_pad_push (pad=pad@entry=0x860060, buffer=0x7f3e3c190000) at ../subprojects/gstreamer/gst/gstpad.c:4830
#13 0x00007f3e4955bec5 in gst_base_src_loop (pad=0x860060) at ../subprojects/gstreamer/libs/gst/base/gstbasesrc.c:3030
#14 0x00007f3e4ab563df in gst_task_func (task=0x85a5f0) at ../subprojects/gstreamer/gst/gsttask.c:384
#15 0x00007f3e4a9ccfa4 in g_thread_pool_thread_proxy.lto_priv () at /lib64/libglib-2.0.so.0
#16 0x00007f3e4a9ca402 in g_thread_proxy () at /lib64/libglib-2.0.so.0
#17 0x00007f3e4a8d63f9 in start_thread () at /lib64/libpthread.so.0
#18 0x00007f3e4a8034c3 in clone () at /lib64/libc.so.6