gstreamer/tests/check/elements
Havard Graff 8b96d8ee8d rtpbin: fix shutdown crash in rtpbin
The key is to make sure the jitterbuffer is set to NULL *before* the
ptdemux.

The race that existed would basically happen when ptdemux had reached
READY, and the jitterbuffer would then push a buffer, triggering a new
pad with a new payloadtype being added and ghosted to the rtpbin itself.

However, the srcpad of the ptdemux would now be inactive, and all the
sticky-event pushed on it would be swallowed, not allowing any to reach
the ghost-pad. Then the buffer in-flight would come to the ghostpad,
and we would assert that a buffer arrived before the necessary
events.

By simply re-ordering the state-changes, we ensure that there will be
no buffer racing into the ptdemux while its state is being changed,
and the problem disappears completely.

Notice also that there is not point in disconnecting the signals on the
ptdemux before this point, since we need the push-thread to settle
down before we can do this in a non-racy way.
2019-12-20 08:27:07 +00:00
..
aacparse.c tests: aacparser: Test that short raw frames don't get concatenated 2018-01-18 19:09:25 +00:00
ac3parse.c check: Use GST_CHECK_MAIN () macro everywhere 2015-06-02 16:27:24 +02:00
alpha.c tests: add test suite for alpha 2015-04-10 10:20:03 +01:00
alphacolor.c tests: Fix some more unit tests 2013-05-10 13:34:16 +02:00
amrparse.c check: Remove dead code 2017-01-02 15:06:33 +01:00
apev2mux.c check: Use GST_CHECK_MAIN () macro everywhere 2015-06-02 16:27:24 +02:00
aspectratiocrop.c check: Use GST_CHECK_MAIN () macro everywhere 2015-06-02 16:27:24 +02:00
audioamplify.c tests: Remove pointless unistd.h include 2018-12-30 21:54:44 +09:00
audiochebband.c check: Use GST_CHECK_MAIN () macro everywhere 2015-06-02 16:27:24 +02:00
audiocheblimit.c check: Use GST_CHECK_MAIN () macro everywhere 2015-06-02 16:27:24 +02:00
audiodynamic.c tests: Remove pointless unistd.h include 2018-12-30 21:54:44 +09:00
audioecho.c tests: Fix some more unit tests 2013-05-10 13:34:16 +02:00
audiofirfilter.c tests: fix bus leaks 2016-07-18 10:53:19 +01:00
audioiirfilter.c tests: fix bus leaks 2016-07-18 10:53:19 +01:00
audioinvert.c tests: Remove pointless unistd.h include 2018-12-30 21:54:44 +09:00
audiopanorama.c tests: Remove pointless unistd.h include 2018-12-30 21:54:44 +09:00
audiowsincband.c check: Use GST_CHECK_MAIN () macro everywhere 2015-06-02 16:27:24 +02:00
audiowsinclimit.c check: Use GST_CHECK_MAIN () macro everywhere 2015-06-02 16:27:24 +02:00
autodetect.c meson: add options to set package name and origin 2017-05-20 14:53:42 +01:00
avimux.c tests: Remove pointless unistd.h include 2018-12-30 21:54:44 +09:00
avisubtitle.c tests: Remove pointless unistd.h include 2018-12-30 21:54:44 +09:00
capssetter.c tests: Remove pointless unistd.h include 2018-12-30 21:54:44 +09:00
deinterlace.c deinterlace: Added unit tests for field=auto 2016-03-24 14:34:11 +02:00
deinterleave.c deinterleave: fix leaks 2016-06-21 10:51:08 +03:00
dtmf.c rtpdtmfsrc: clock-base and seqnum-base -> timestamp-offset and seqnum-offset 2014-10-10 18:12:32 -04:00
equalizer.c check: Use GST_CHECK_MAIN () macro everywhere 2015-06-02 16:27:24 +02:00
flacparse.c check: Use GST_CHECK_MAIN () macro everywhere 2015-06-02 16:27:24 +02:00
flvdemux.c tests: flvdemux: Add new test for channel detect using aac codec-data 2018-10-12 14:35:37 -04:00
flvmux.c test: flvmux: Test changing caps with one sinkpad 2019-06-19 14:36:21 +02:00
gdkpixbufoverlay.c tests: gdkpixbufoverlay: add minimal unit test 2015-09-29 11:15:35 +01:00
gdkpixbufsink.c Fix FSF address 2012-11-04 00:07:18 +00:00
icydemux.c icydemux: reset tags on empty value 2017-02-14 12:24:13 +02:00
id3demux.c Fix FSF address 2012-11-04 00:07:18 +00:00
id3v2mux.c check: Use GST_CHECK_MAIN () macro everywhere 2015-06-02 16:27:24 +02:00
imagefreeze.c test: imagefreeze: add test for the num-buffers property 2019-03-14 09:12:28 +01:00
interleave.c interleave: fix message leaks in test 2016-06-21 10:51:08 +03:00
jpegdec.c documentation: fix a number of typos 2019-10-05 22:38:11 +00:00
jpegenc.c fix buffer leaks in tests 2016-06-21 10:51:08 +03:00
level.c documentation: fix a number of typos 2019-10-05 22:38:11 +00:00
matroskademux.c matroska: fix memory leaks due to toc related updates 2017-12-15 16:14:43 +02:00
matroskamux.c tests: matroskamux avoid -Wmaybe-uninitialized 2019-01-18 13:53:18 +00:00
matroskaparse.c tests: matroskaparse: fail on errors and disable pull mode test 2014-06-28 17:40:45 +01:00
mpegaudioparse.c check: Use GST_CHECK_MAIN () macro everywhere 2015-06-02 16:27:24 +02:00
mpg123audiodec.c tests: fix mpg123audiodec test for big-endian architectures 2016-02-16 10:40:39 +00:00
mulawdec.c tests: fix mulawdec/mulawenc test for big endian systems 2014-10-25 11:09:57 +01:00
mulawenc.c tests: fix mulawdec/mulawenc test for big endian systems 2014-10-25 11:09:57 +01:00
multifile.c tests: Remove pointless unistd.h include 2018-12-30 21:54:44 +09:00
packets.h rtp: Implement ULPFEC (RFC 5109) 2018-02-21 14:15:22 +01:00
parser.c tests: Fix parser tests 2013-05-10 13:10:29 +02:00
parser.h Fix FSF address 2012-11-04 00:07:18 +00:00
qtdemux.c tests: qtdemux: Add checking exposed segment event 2018-06-06 11:19:25 -04:00
qtdemux.h tests: Remove pointless unistd.h include 2018-12-30 21:54:44 +09:00
qtmux.c qtmux: port to GstAggregator 2019-12-16 14:17:38 +00:00
rganalysis.c rganalysis: Fix compiler warnings in the unit test 2016-01-08 15:32:47 +02:00
rglimiter.c tests: Add missing LDADD for libm in tests using math.h 2017-03-08 22:55:09 -05:00
rgvolume.c documentation: fix a number of typos 2019-10-05 22:38:11 +00:00
rtp-payloading.c documentation: fix a number of typos 2019-10-05 22:38:11 +00:00
rtpbin.c rtpbin: fix shutdown crash in rtpbin 2019-12-20 08:27:07 +00:00
rtpbin_buffer_list.c test: rtpbin_buffer_list: add a test for invalid packets in buffer list 2019-08-07 15:32:30 -04:00
rtpcollision.c tests: rtpcollision: use alawenc/dec in these tests instead of Speex 2014-12-30 17:19:59 +00:00
rtpfunnel.c Initial commit of GstRtpFunnel 2018-10-15 14:20:58 +02:00
rtph261.c rtph261depay: Fix check of valid payload length 2016-08-26 11:53:22 -04:00
rtph263.c rtph263ppay: Fix caps leak 2016-11-01 20:20:47 +02:00
rtph264.c rtph26xpay: Wait until there is a VCL or suffix NAL to send 2019-07-03 19:05:29 +00:00
rtph265.c rtph265pay: Also immediately send packet if it is a suffix NAL 2019-07-03 19:05:29 +00:00
rtpjitterbuffer.c rtpjitterbuffer: make test more stable 2019-11-29 18:33:10 +00:00
rtpmux.c Run gst-indent through the files 2018-11-28 05:52:16 +02:00
rtpred.c documentation: fix a number of typos 2019-10-05 22:38:11 +00:00
rtprtx.c documentation: fix a number of typos 2019-10-05 22:38:11 +00:00
rtpsession.c rtpsession: add test for requesting FIR after having requested PLI 2019-11-29 20:17:29 +00:00
rtpssrcdemux.c rtpssrcdemux: Avoid taking streamlock out-of-band 2019-06-04 09:26:06 -04:00
rtpstorage.c documentation: fix a number of typos 2019-10-05 22:38:11 +00:00
rtpulpfec.c tests: rtpulpfec: fix buffer leak in unit test 2019-03-06 19:40:10 +00:00
rtpvp9.c tests: fix indentation 2016-09-15 09:53:07 +01:00
shapewipe.c tests: Remove pointless unistd.h include 2018-12-30 21:54:44 +09:00
souphttpsrc.c souphttpsrc test: free g_get_current_dir return 2018-04-13 20:35:24 +02:00
spectrum.c tests: Remove pointless unistd.h include 2018-12-30 21:54:44 +09:00
splitmux.c documentation: fix a number of typos 2019-10-05 22:38:11 +00:00
udpsink.c tests: udpsink: add check that sets QoS on IPv4/6 sockets 2017-12-23 12:45:11 +01:00
udpsrc.c tests: Remove pointless unistd.h include 2018-12-30 21:54:44 +09:00
videobox.c tests: Remove pointless unistd.h include 2018-12-30 21:54:44 +09:00
videocrop.c tests: Remove pointless unistd.h include 2018-12-30 21:54:44 +09:00
videofilter.c tests: Remove pointless unistd.h include 2018-12-30 21:54:44 +09:00
videomixer.c tests: Remove pointless unistd.h include 2018-12-30 21:54:44 +09:00
vp8dec.c tests: vp8dec: add test for caps renegotiation 2014-09-02 01:01:43 -03:00
vp8enc.c vp8enc-test: Send inital events 2013-05-10 09:24:47 +02:00
vp9enc.c gst: Don't declare variables inside the for loop header 2016-12-13 22:32:46 +02:00
wavpackdec.c check: Use GST_CHECK_MAIN () macro everywhere 2015-06-02 16:27:24 +02:00
wavpackenc.c check: Use GST_CHECK_MAIN () macro everywhere 2015-06-02 16:27:24 +02:00
wavpackparse.c tests: Remove pointless unistd.h include 2018-12-30 21:54:44 +09:00
wavparse.c tests: wavparse: add test for processing an actual .wav file 2016-11-03 15:42:29 +02:00
y4menc.c tests: Remove pointless unistd.h include 2018-12-30 21:54:44 +09:00