Commit graph

709 commits

Author SHA1 Message Date
Markovtsev Vadim 7cebe2fc41 rtpjitterbuffer: improve debug output
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=688935
2013-02-07 14:32:26 +01:00
Wim Taymans 978cc9f538 rtpbin: rework cleanup of streams
Move the work of cleaning up the client streams in the free_stream
function. This allows us to properly clean up the client streams when we
remove an RTP stream as well.

Based on patch by Sujay <sdatar@cisco.com>

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=660156
2013-02-07 13:02:34 +01:00
Wim Taymans c3077012c0 jitterbuffer: do skew estimation only for new timestamps
Only run the skew estimation code when we have a new RTP timestamp. If we have
the same RTP timestamp, we simply use the previous estimation. This works
because the new observation with the same RTP timestamp has to have a bigger
receiver time and is thus not going to influence the estimation except for
causing more jitter.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=640023
2013-02-06 17:15:11 +01:00
Wim Taymans 747447d298 rtpsession: avoid '...is used uninitialized' 2013-01-29 10:32:51 +01:00
Tim-Philipp Müller 629772f735 rtpmanager: use C89-style comments 2013-01-28 23:07:34 +00:00
Olivier Crête 451217c437 gstrtpsession: Fix double-declared variable 2013-01-28 18:06:15 -05:00
Olivier Crête 7300d489fe rtp: Fix compilation errors in previous patches 2013-01-28 17:58:20 -05:00
Haakon Sporsheim 86c13ceae6 rtpsession: Ensure MT safe event handling and plug event leak.
https://bugzilla.gnome.org/show_bug.cgi?id=667826
2013-01-28 17:44:31 -05:00
Idar Tollefsen 268c998a32 rtpsession: mt-safe event-push
By taking a ref of the sink-pad under lock, it won't dissappear
while the push is taking place

https://bugzilla.gnome.org/show_bug.cgi?id=667816
2013-01-28 17:34:50 -05:00
Pascal Buhler f459fe2673 rtpssrcdemux: Safely push on pads that might be removed due to a RTCP BYE
https://bugzilla.gnome.org/show_bug.cgi?id=667815
2013-01-28 17:01:27 -05:00
Wim Taymans 72402cc649 rtp: small improvements 2013-01-08 16:27:42 +01:00
Wim Taymans af055d9574 jitterbuffer: refactor handle sync code
Move the code that combines the last SR packet and the current jitterbuffer sync
values into a sync structure, into its own function. We want to reuse this bit
later.
2013-01-07 15:50:33 +01:00
Wim Taymans 87f7d6b9bf rtp: include downstream latency in SR calculations
When we make a mapping between an RTP timestamp and an NTP timestamp, include
the downstream latency applied to the sinks. This makes it possible to have
both sinks run with different latencies and still have correct sync on the
client. It also is more correct because the RTP timestamp in the SR report will
actually correspond more closely to the NTP time it was sent on the server.
For pipelines with high latency on the sender side, this actually allows a
GStreamer receiver to perform synchronisation instead of dropping the RTCP
packets.
2013-01-07 15:45:10 +01:00
Wim Taymans c631ed3300 rtpsession: don't cast event functions
There is no need to cast the event functions and only causes problems later when
we change the signature later and things silently compiles wrong code.
2013-01-07 14:25:14 +01:00
Wim Taymans 8dcde8b3ea rtp: more debug 2013-01-07 14:23:34 +01:00
Wim Taymans 6b7d05ac57 rtpsession: improve debug 2013-01-07 14:22:48 +01:00
Tim-Philipp Müller 8a3b116d1f docs: add rtpmux and rtpdtmfmux to plugin docs
https://bugzilla.gnome.org/show_bug.cgi?id=629117
2012-12-16 16:36:39 +00:00
Tim-Philipp Müller 3295b5d791 rtpmanager: move rtpmux and rtpdtmfmux elements from -bad
https://bugzilla.gnome.org/show_bug.cgi?id=629117
2012-12-16 16:36:39 +00: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
Sebastian Dröge f17064a8ea rtpmux: Update for GST_PLUGIN_DEFINE() API changes 2012-12-16 16:36:34 +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 ca27a279ba rtpdtmfmux: remove unused variable 2012-12-16 16:35:15 +00:00
Stefan Kost c85dceeacb rtpdtmfmux: remove unused signal boilerplate 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
Tim-Philipp Müller a45429d81d rtpmux: fix missing debug log message argument 2012-12-16 16:35:15 +00:00
Olivier Crête 4a8d0243b5 rtpdtmfmux: Add some debug messages 2012-12-16 16:35:14 +00:00
Olivier Crête 423ce98666 rtpdtmfmux: Remove stream-lock event handling 2012-12-16 16:35:14 +00:00
Olivier Crête a4500c0e74 rtpdtmfmux: Update doc for simplification 2012-12-16 16:35:14 +00:00
Olivier Crête 70097866de rtpdtmfmux: Drop buffers on non-priority sinks when something is incoming on the priority sink 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 2bcea1537b rtpdtmfmux: Cleanup event function 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 7be57cac3a rtpdtmfmux: Update documentation 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
Wim Taymans 0d54122804 dtmfmux: method name cleanups 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
Olivier Crête 0111bafb3a rtpmux: Fix leak Fixed a leak discovered by Laurent Glayal <spegle@yahoo.fr> 2012-12-16 16:33:46 +00:00
Olivier Crête fcc1522d2e rtpmux: Fix leak
Fixed a leak discovered by Laurent Glayal <spegle@yahoo.fr>
2012-12-16 16:33:46 +00:00
Olivier Crête ff6686f1c7 rtpmux: Fix warning 2012-12-16 16:33:46 +00:00
Olivier Crête 00791f930b rtpmux: Set different caps depending on the input 2012-12-16 16:33:46 +00:00
Olivier Crête ed0b407038 rtpmux: Only free pad private when pad is disposed 2012-12-16 16:33:45 +00:00
Olivier Crête 92bb5199ac rtpmux: Remove useless caps mangling 2012-12-16 16:33:45 +00:00
Olivier Crête 3ccf3217fe rtpmux: Rename variable for more clarity 2012-12-16 16:33:45 +00:00
Olivier Crête 4b958f6d8d rtpmux: Use GST_BOILERPLATE 2012-12-16 16:33:45 +00:00
Olivier Crête abe57be248 rtpmux: Do the includes locally 2012-12-16 16:33:45 +00:00
Olivier Crête 05844c89e9 rtpmux: Add GST_DEBUG_FUNCPTRs 2012-12-16 16:33:45 +00:00
Olivier Crête fd102b95ab rtpdtmfmux: Release locked pad on release_pad
Release the special pad if the pad is removed from the muxer.
2012-12-16 16:33:45 +00:00
Laurent Glayal 00f8bab712 rtpdtmfmux: Release special on pad dispose
Fixes #577690
2012-12-16 16:33:45 +00:00
Stefan Kost a4a22454dc docs: various doc fixes
No short-desc as we have them in the element details.
Also keep things (Makefile.am and sections.txt) sorted.
Reword ambigous returns. No text after since please.
2012-12-16 16:33:41 +00:00
Olivier Crête 7d4395a910 rtpmux: Move rtpmux from gst-plugins-farsight to -bad 2012-12-16 16:33:27 +00:00
Olivier Crête 68215752f4 rtpmux: Re-indent to Gst style 2012-12-16 16:33:24 +00:00
Olivier Crête c7d0809434 rtpmux: Document rtp muxer a bit 2012-12-16 16:33:20 +00:00
Laurent Glayal 47c7a93df2 rtpmux: Add signals before stream lock and after unlocking 2012-12-16 16:33:17 +00:00
Olivier Crête f1656ed8b0 rtpmux: Let ssrc through getcaps 2012-12-16 16:33:14 +00:00
Olivier Crête 1529dffaf9 rtpmux: Rename have_base to have_ts_base 2012-12-16 16:33:11 +00:00
Olivier Crête 57563517bd rtpmux: Protect the seqnum with object lock in rtpmux 2012-12-16 16:33:08 +00:00
Olivier Crête d3237eaf95 rtpmux: Remove unused sink_ts_base 2012-12-16 16:33:04 +00:00
Olivier Crête cc23958183 rtpmux: Have getcaps to force the same clockrate on all pads 2012-12-16 16:33:01 +00:00
Olivier Crête dc36590d0c rtpmux: Validate RTP data in RTP Mux 2012-12-16 16:32:57 +00:00
Olivier Crête 360c8d4f1d rtpmux: Remove unused clock-rate property 2012-12-16 16:32:54 +00:00
Olivier Crête b86232d0dc rtpmux: Clarify locking in rtpdtmfmux 2012-12-16 16:32:50 +00:00
Laurent Glayal 4b607cdda5 rtpmux: Missing format parameter 2012-12-16 16:32:47 +00:00
Håvard Graff b313c80367 rtpmux: Update seqnum base in rtp muxer
With help from Wim
2012-12-16 16:32:43 +00:00
Håvard Graff c479f90274 rtpmux: Fix some more leaks 2012-12-16 16:32:40 +00:00
Håvard Graff 1b5e769e0b rtpmux: Fix leak 2012-12-16 16:32:37 +00:00
Olivier Crête 5cbb0de823 rtpmux: Don't unref caps we don't know (thanks Wim) 2012-12-16 16:32:32 +00:00
Olivier Crête cebf506949 rtpmux: Put per-buffer debug at level LOG 2012-12-16 16:32:29 +00:00
Olivier Crête 3c12a423b7 rtpmux: Make debug print accurate 2012-12-16 16:32:25 +00:00
Olivier Crête c49f4c87c6 rtpmux: Set our caps on the buffers 2012-12-16 16:32:22 +00:00
Olivier Crête ec63da9366 rtpmux: Take the clock-base stored from the last setcaps 2012-12-16 16:32:18 +00:00
Olivier Crête 674c074114 rtpmux: Store the clock-base on setcaps 2012-12-16 16:32:15 +00:00
Olivier Crête 90264b9686 rtpmux: Add padprivate to the request pads 2012-12-16 16:32:11 +00:00
Olivier Crête 15d661ba3e rtpmux: Make indentation more correct 2012-12-16 16:31:56 +00:00
Olivier Crête 3a7d09a749 rtpmux: Fix typo 2012-12-16 16:31:53 +00:00
Olivier Crête 91aef3ec5e rtpmux: Set seqnum-base and clock-base in caps from rtpmuxer 2012-12-16 16:31:50 +00:00