Commit graph

109 commits

Author SHA1 Message Date
Olivier Crête
58073eaa7a rtpmux: Use default upstream event handling
https://bugzilla.gnome.org/show_bug.cgi?id=752694
2015-10-02 17:39:10 -04:00
Olivier Crête
43c213fc5d rtpmux: As 0xFFFFFFFF is a valid ssrc, check if it has been set
https://bugzilla.gnome.org/show_bug.cgi?id=752694
2015-10-02 17:39:10 -04:00
Havard Graff
d5e26ab909 gstrtpmux: allow the ssrc-property to decide ssrc on outgoing buffers
By not doing this, the muxer is not effectively a rtpmuxer, rather a
funnel, since it should be a single stream that exists the muxer.

If not specified, take the first ssrc seen on a sinkpad, allowing upstream
to decide ssrc in "passthrough" with only one sinkpad.

Also, let downstream ssrc overrule internal configured one

We hence has the following order for determining the ssrc used by
rtpmux:

0. Suggestion from GstRTPCollision event
1. Downstream caps
2. ssrc-Property
3. (First) upstream caps containing ssrc
4. Randomly generated

https://bugzilla.gnome.org/show_bug.cgi?id=752694
2015-10-02 17:39:06 -04:00
Havard Graff
764bbf99a8 rtpmux: handle different ssrc's on sinkpads
Do this by not putting the ssrc from the src pads in the caps used to
probe other sinkpads, and then  intersecting with it later.

https://bugzilla.gnome.org/show_bug.cgi?id=752491
2015-07-16 16:46:11 -04:00
Sebastian Dröge
dc059efa60 rtp: Use GST_BUFFER_PTS() instead of GST_BUFFER_TIMESTAMP()
The mix between all these in the RTP code is confusing, let's try to be
consistent.
2015-06-10 14:34:47 +02:00
Tim-Philipp Müller
2e412a447a docs: update example pipelines in element docs
Mostly gst-launch -> gst-launch-1.0
Use autovideosink/autoaudiosink more often.
Sprinkle some converters here and there.
2015-05-10 11:05:00 +01:00
Luis de Bethencourt
9391622579 Rename property enums from ARG_ to PROP_
Property enum items should be named PROP_ for consistency and readability.
2015-04-27 11:22:11 +01:00
Sjoerd Simons
0ee384b251 rtpmux: Don't set PROXY_CAPS flag on the src pad
rtpmux behaves like a funnel in that it forwards whatever upstream is
sending buffers. So setting proxy caps doesn't make sense as the
upstream don't have to have compatible caps, thus resulting in an empty
caps set as a result of a caps query. Instead set fixed caps just
as funnel does.

https://bugzilla.gnome.org/show_bug.cgi?id=738722
2014-10-21 10:52:00 +02:00
Olivier Crête
b3069634bd rtpmux: clock-base and seqnum-base -> timestamp-offset and seqnum-offset
These were renamed in GstRTPBasePayload in 1.0
2014-10-10 18:12:23 -04:00
Sanjay NM
26a1344f37 Miscellaneous minor cleanups
Fix redundant variables and assignments,
and unreachable breaks.

https://bugzilla.gnome.org/show_bug.cgi?id=736875
https://bugzilla.gnome.org/show_bug.cgi?id=736876
https://bugzilla.gnome.org/show_bug.cgi?id=736879
https://bugzilla.gnome.org/show_bug.cgi?id=736880
https://bugzilla.gnome.org/show_bug.cgi?id=736881
https://bugzilla.gnome.org/show_bug.cgi?id=736888
https://bugzilla.gnome.org/show_bug.cgi?id=736890
https://bugzilla.gnome.org/show_bug.cgi?id=736892
https://bugzilla.gnome.org/show_bug.cgi?id=736893
https://bugzilla.gnome.org/show_bug.cgi?id=736894
2014-09-24 00:45:31 +01:00
Sebastian Rasmussen
1a35bf9647 rtpmux: Unref pad template caps after usage
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=734473
2014-08-08 15:38:32 -03:00
Olivier Crête
0742a5a257 rtpmux: Always let upstream chose the ssrc if it wishes 2014-05-04 19:11:03 -04:00
Tim-Philipp Müller
c9597298f9 docs: remove outdated and pointless 'Last reviewed' lines from docs
They are very confusing for people, and more often than not
also just not very accurate. Seeing 'last reviewed: 2005' in
your docs is not very confidence-inspiring. Let's just remove
those comments.
2014-04-26 23:35:17 +01:00
Vincent Penquerc'h
f10c3f1a76 rtpmux: fix buffer list drop check
While porting to 0.11, the check was mistakenly made constant,
instead of testing for the return value of process_buffer_locked.

Coverity 1139663
2014-04-21 17:21:20 +01:00
Olivier Crête
3aa20e7c8d rtpmux: Enable proxy caps on the src pads 2013-07-11 17:21:22 -04:00
Olivier Crête
1997acc8b2 rtpmux: Keep caps order from the peer or the filter 2013-07-09 17:43:31 -04:00
Nicolas Dufresne
04c9f43567 rtpmux: Send stream-start before caps 2013-05-13 15:37:05 +02:00
Tim-Philipp Müller
de204ba754 rtpmux: Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-12-16 16:36:39 +00:00
Tim-Philipp Müller
2778a1757f rtpmux: Use gst_element_class_set_static_metadata()
where possible. Avoids some string copies. Also re-indent
some stuff. Also some indent fixes here and there.
2012-12-16 16:36:39 +00:00
Olivier Crête
15dfdc58d4 rtpmux: Misc fix for 0.11
Convert the incoming caps before proxying them
Clear the last_pad when going to ready

tests: Implement accept_caps, don't leak event
2012-12-16 16:36:38 +00:00
Wim Taymans
83262be703 rtpmux: update for RTP buffer api changes 2012-12-16 16:36:38 +00:00
Wim Taymans
c86156ad8f rtpmux: fix compilation 2012-12-16 16:35:36 +00:00
Wim Taymans
6826bbb6da rtpmux: fix for caps api changes 2012-12-16 16:35:33 +00:00
Matej Knopp
bb345a584d rtpmux: Fix compiler warnings 2012-12-16 16:35:29 +00:00
Olivier Crête
af4e999c59 rtpmux: Unref non-forwarded events
Also, don't unref forwarded ones
2012-12-16 16:35:29 +00:00
Olivier Crête
a8789d1df1 rtpmux: resync iterator on resync 2012-12-16 16:35:29 +00:00
Olivier Crête
0c54079af5 rtpmux: Re-push sticky events on input pad change 2012-12-16 16:35:29 +00:00
Olivier Crête
21831b430f rtpmux: Don't leak gvalue from iterator 2012-12-16 16:35:29 +00:00
Wim Taymans
ccc4b960fc rtpmux: more porting 2012-12-16 16:35:26 +00:00
Olivier Crête
f20a6b1d16 rtpmux: port to 0.11 2012-12-16 16:35:26 +00:00
Wim Taymans
35b6668fb6 rtpmux: make request pads take _%u 2012-12-16 16:35:22 +00:00
Olivier Crête
aa3607ef5c rtpdtmfmux: Add last-stop to dtmf-event upstream events
Add the running time of the last outputted buffer to the
upstream "dtmf-event" events so that the dtmf source does not
leave a gap.
2012-12-16 16:35:22 +00:00
Edward Hervey
d137482fe5 rtpmux: Remove dead assignments 2012-12-16 16:35:22 +00:00
Stefan Kost
55aae6bfab rtpmux: add missing G_PARAM_STATIC_STRINGS flags
Canonicalize property names as needed.
2012-12-16 16:35:15 +00:00
Olivier Crête
9674d5cc23 rtpmux: Improve documentation
Add an example pipeline, and try to explain a bit more what it does.
2012-12-16 16:35:15 +00:00
Stefan Kost
2353f8d852 rtpmux: no need to ref pad in _chain() 2012-12-16 16:35:15 +00:00
Youness Alaoui
e42d2eebcb rtpmux: Unlock the right mutex
The mutex locked is for the 'mux' object, but we unlock the
pad, which means that if the rtpmux gets a flush, then the
object lock will stay locked forever, causing it to freeze
the next time it tries to take it.

Fixes bug #627991
2012-12-16 16:35:15 +00:00
Olivier Crête
78d1ebac9e rtpmux: Add support for GstBufferList
Factor out most of the buffer handling and implement a chain_list
function. Also, the DTMF muxer has been modified to just have a
function to accept or reject a buffer instead of having to subclass
both chain and chain_list.
2012-12-16 16:35:15 +00:00
Olivier Crête
c00f14419b rtpmux: Don't leak invalid buffers 2012-12-16 16:35:15 +00:00
Olivier Crête
423ce98666 rtpdtmfmux: Remove stream-lock event handling 2012-12-16 16:35:14 +00:00
Olivier Crête
f6548fe9b6 rtpdtmfmux: Add priority sink pads 2012-12-16 16:35:14 +00:00
Olivier Crête
8e58646f5c rtpmux: Aggregate incoming segments 2012-12-16 16:35:14 +00:00
Olivier Crête
e590fc1f32 rtpmux: Simplify request pad creation 2012-12-16 16:35:14 +00:00
Benjamin Otte
2867e00225 rtpmux: gst_element_class_set_details => gst_element_class_set_details_simple 2012-12-16 16:35:10 +00:00
unknown
fb7266884d rtpmux: update the current_ssrc from the caps
Fixes #604101
2012-12-16 16:33:47 +00:00
Håvard Graff
eab65e84ca rtpmux: release pads when disposing
Because of an allocated priv (GstRTPMuxPadPrivate), the element will
leak memory if not gst_rtp_mux_release_pad() is called. This would
previously only happen if release_request_pad() was called explicitly,
somthing that should not be neccesary.

Fixes #604099
2012-12-16 16:33:46 +00:00
Olivier Crête
3841cc74cf rtpmux: Don't ignore requested pad name 2012-12-16 16:33:46 +00:00
Olivier Crête
d93295ff9d rtpmux: Remove empty finalize 2012-12-16 16:33:46 +00:00
Olivier Crête
5e90a4e86b rtpmux: Free the pad private data on pad release
Free the pad private data on pad release instead of using a weak ref,
which is not thread safe. Also, lock the content of the pad private using the element's
object lock.
2012-12-16 16:33:46 +00:00
Olivier Crête
4be63c9add rtpmux: Reject wrong caps 2012-12-16 16:33:46 +00:00