Commit graph

32 commits

Author SHA1 Message Date
François Laignel
39f0905a7e Use gst_element_request_pad_simple
Instead of the deprecated gst_element_get_request_pad.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/958>
2021-05-05 06:17:20 +00:00
Xavier Claessens
6e1758d509 Fix usage of C99
It's 2020, way too early for that, let's stick to C89 for now.
2020-03-23 21:32:04 -04:00
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
Aaron Boxer
46989dca96 documentation: fix a number of typos 2019-10-05 22:38:11 +00:00
Thomas Bluemel
8d955fc32b rtpjitterbuffer: Only calculate skew or reset if no gap.
In the case of reordered packets, calculating skew would cause
pts values to be off. Only calculate skew when packets come
in as expected. Also, late RTX packets should not trigger
clock skew adjustments.

Fixes #612
2019-07-03 06:23:07 -06:00
Mathieu Duponchelle
03dc22951b rtpbin: fix leak of elements requested by signals
When the signal returns a floating reference, as its return type
is transfer full, we need to sink it ourselves before passing
it to gst_bin_add (which is transfer floating).

This allows us to unref it in bin_remove_element later on, and
thus to also release the reference we now own if the signal
returns a non-floating reference as well.

As we now still hold a reference to the element when removing it,
we also need to lock its state and setting it to NULL before
unreffing it

Also update the request_aux_sender test.

https://bugzilla.gnome.org/show_bug.cgi?id=792543
2018-01-18 15:26:43 +01:00
Olivier Crête
96e71b0286 rtpsession: Send EOS if all internal sources sent bye
The ones which are not internal should not matter, and we should
wait for all sources to have sent their BYEs.

And add unit test

https://bugzilla.gnome.org/show_bug.cgi?id=773218
2017-07-04 21:14:10 -04:00
Guillaume Desmottes
57eb9fec72 tests: rtpbin: fix caps leak
https://bugzilla.gnome.org/show_bug.cgi?id=767156
2016-06-02 14:19:02 +01:00
Edward Hervey
d524439b35 check: Use GST_CHECK_MAIN () macro everywhere
Makes source code smaller, and ensures we go through common initialization
path (like the one that sets up XML unit test output ...)
2015-06-02 16:27:24 +02:00
Wim Taymans
c83ed4f61e tests: add AUX receiver unit test 2013-12-31 15:08:49 +01:00
Wim Taymans
b91e0096b7 tests: improve rtpbin test 2013-12-31 15:08:49 +01:00
Wim Taymans
3e83e6a33d tests: add AUX sender unit test 2013-12-31 15:08:49 +01:00
Wim Taymans
841f9ad050 tests: add decoder test 2013-12-31 15:08:48 +01:00
Wim Taymans
3f3b2d0886 rtpbin: handle multiple encoder instances
Keep track of elements that are added to multiple sessions and make sure
we only add them to the rtpbin once and that we clean them when no
session refers to them anymore.
2013-12-30 16:28:57 +01:00
Wim Taymans
76e4cbc753 tests: add unit test for encoder element 2013-12-30 15:17:05 +01:00
Wim Taymans
bcd1589a91 tests: fix leak 2013-12-30 15:17:05 +01:00
Nicolas Dufresne
c561ce0b9f rtpbin-test: Send missing stream-start and segment events 2013-05-13 15:36:34 +02:00
Tim-Philipp Müller
230cf41cc9 Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-04 00:07:18 +00:00
Mark Nauwelaerts
538578f345 tests: rtpbin: port to the new GLib thread API 2012-09-11 12:54:41 +02:00
Wim Taymans
443a14bdbf tests: add test for rtpsession cleanup 2012-06-07 10:44:31 +02:00
Mark Nauwelaerts
85bf98fe1a tests: rtp: misc compatibiliy fixes
... such as always setting pad caps and providing needed caps fields.
2012-03-26 18:38:34 +02:00
Wim Taymans
a6370cdb50 tests: fix more tests 2012-01-31 15:39:09 +01:00
Wim Taymans
8e39d52bbb tests: make more tests compile 2012-01-03 14:16:28 +01:00
Tim-Philipp Müller
09ca5fa910 rtpmanager: rename gstrtp* -> rtp*
This was done in 0.10 to avoid conflict with the rtp elements in
farsight, but the gst-prefixing is no longer needed in 0.11
2011-11-24 00:54:08 +00:00
Wim Taymans
a95acb7122 make %u in all request pad templates 2011-11-04 11:58:22 +01:00
Sebastian Dröge
9f256d81db rtpbin: Don't try to request the same request pad twice 2011-03-29 16:34:53 +02:00
Tim-Philipp Müller
80e43452a1 checks: add test for leak to rtpbin unit test
See #591476.
2009-08-14 13:47:18 +01:00
Wim Taymans
512ba93159 rtpbin: do better cleanup of the src ghostpads
Connect to the pad-removed signal of the ptdemux elements so that we remove the
ghostpads for them. Fixes cleanup when going to NULL as well as when releasing
the sinkpads.

Fixes #561752
2009-08-11 02:30:46 +01:00
Wim Taymans
57653143c3 tests: add receive rtpbin unit test 2009-08-11 02:30:44 +01:00
Wim Taymans
02b34602c4 tests: more rtpbin checks 2009-08-11 02:30:44 +01:00
Wim Taymans
232624c908 tests: add more rtpbin tests 2009-08-11 02:30:44 +01:00
Wim Taymans
1710d8a3a5 tests: add rtpbin unit test
Add the beginnings of an rtpbin unit test
Add some more stuff to .gitignore
2009-08-11 02:30:43 +01:00