videotestsrc segfault on Windows 10
The following command often (~85% of the time) segfaults on Windows 10 at startup prior to displaying any video. I am using the binaries from https://gstreamer.freedesktop.org/data/pkg/windows/1.17.2/msvc/gstreamer-1.0-msvc-x86_64-1.17.2.msi I haven't been able to reproduce the crash with 1.16.2.
gst-launch-1.0.exe videotestsrc is-live=true ! video/x-raw,width=720,height=576 ! queue leaky=downstream ! videoscale ! video/x-raw, width=800,height=600 ! autovideosink
Command line output prior to the crash:
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Got context from element 'autovideosink0': gst.d3d11.device.handle=context, device=(GstD3D11Device)"\(GstD3D11Device\)\ d3d11device4", adapter=(int)0;
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
With GST_DEBUG=4, the messages immediately prior to the crash are as follows:
0:00:10.251071000 89896 00000197C80E8000 INFO GST_STATES gstbin.c:2517:gst_bin_element_set_state:<capsfilter0> current PAUSED pending VOID_PENDING, desired next PLAYING
0:00:10.281374000 89896 00000197C80E8000 INFO GST_STATES gstelement.c:2759:gst_element_continue_state:<capsfilter0> completed state change to PLAYING
0:00:10.309029000 89896 00000197C80E8000 INFO GST_STATES gstelement.c:2662:_priv_gst_element_state_changed:<capsfilter0> notifying about state-changed PAUSED to PLAYING (VOID_PENDING pending)
0:00:10.344545000 89896 00000197C80E8000 INFO GST_STATES gstbin.c:2965:gst_bin_change_state_func:<pipeline0> child 'capsfilter0' changed state to 4(PLAYING) successfully
0:00:10.376965000 89896 00000197C80E8000 INFO GST_STATES gstelement.c:2759:gst_element_continue_state:<videotestsrc0> completed state change to PLAYING
0:00:10.404662000 89896 00000197C80E8000 INFO GST_STATES gstelement.c:2662:_priv_gst_element_state_changed:<videotestsrc0> notifying about state-changed PAUSED to PLAYING (VOID_PENDING pending)
0:00:10.408948000 89896 00000197CAA771C0 INFO GST_EVENT gstevent.c:928:gst_event_new_segment: creating segment event time segment start=0:00:00.000000000, offset=0:00:00.000000000, stop=99:99:99.999999999, rate=1.000000, applied_rate=1.000000, flags=0x00, time=0:00:00.000000000, base=0:00:00.000000000, position 0:00:00.000000000, duration 99:99:99.999999999
0:00:10.440279000 89896 00000197C80E8000 INFO GST_STATES gstbin.c:2965:gst_bin_change_state_func:<pipeline0> child 'videotestsrc0' changed state to 4(PLAYING) successfully
0:00:10.503758000 89896 00000197CAA771C0 INFO basesrc gstbasesrc.c:2961:gst_base_src_loop:<videotestsrc0> marking pending DISCONT
The stack trace from Visual Studio is below, but without debug symbols it is meaningless to me. I haven't been able to compile a debug build of gstreamer for myself.
0000014786420000() Unknown
gstvideotestsrc.dll!00007ffd2fa01107() Unknown
gstvideotestsrc.dll!00007ffd2fa06118() Unknown
gstvideotestsrc.dll!00007ffd2fa01dfd() Unknown
gstbase-1.0-0.dll!00007ffcf5594c18() Unknown
gstbase-1.0-0.dll!00007ffcf5574a4d() Unknown
gstbase-1.0-0.dll!00007ffcf5594bb0() Unknown
gstbase-1.0-0.dll!00007ffcf5577639() Unknown
gstbase-1.0-0.dll!00007ffcf557891f() Unknown
gstreamer-1.0-0.dll!00007ffcf1458ee1() Unknown
glib-2.0-0.dll!00007ffcf3d37194() Unknown
glib-2.0-0.dll!00007ffcf3d366ce() Unknown
glib-2.0-0.dll!00007ffcf3d5f3f7() Unknown
ucrtbase.dll!thread_start<unsigned int (__cdecl*)(void * __ptr64)>() Unknown
kernel32.dll!BaseThreadInitThunk() Unknown
ntdll.dll!RtlUserThreadStart() Unknown