Wim Taymans
e0a1ce1291
session: generate reconfigure on collision
...
When we detect a collision, change the SSRC that we suggest upstream
and trigger RECONFIGURE. This should make upstream select a new SSRC.
2013-07-26 12:18:01 +02:00
Wim Taymans
495d43c089
session: produce RTCP for all internal sources
...
Loop over all the internal sources and produce RTCP. We also need
to queue the RTCP packets and send them when we are finished.
2013-07-26 12:18:00 +02:00
Wim Taymans
9505fd4150
session: deprecate internal source and ssrc properties
...
Deprecate the internal source and internal ssrc properties. There might
be more than one internal source.
2013-07-26 12:17:59 +02:00
Wim Taymans
3d6ee1fb5e
session: internal sources don't use probation
2013-07-26 12:17:59 +02:00
Wim Taymans
0e53e9109e
session: give caps to session
...
Let the session parse the caps and update its SSRC when needed.
2013-07-26 12:17:59 +02:00
Wim Taymans
c06482a2cb
session: make method to suggest available SSRC
...
Make a method to suggest the best available SSRC. This is the SSRC of the last
created internal source and is used to instruct upstream to produce this
SSRC.
2013-07-26 12:17:59 +02:00
Wim Taymans
33ce50e8b1
session: keep SDES and set on new internal sources
...
Keep track of the SDES ourselves and set it on all newly created
internal sources.
2013-07-26 12:17:59 +02:00
Wim Taymans
5652f02b76
session: make method to make internal sources
...
Add a method to obtain an internal source and use it to create
our internal source
2013-07-26 12:17:59 +02:00
Wim Taymans
7f83927c95
session: count internal sources and how many are senders
2013-07-26 12:17:58 +02:00
Wim Taymans
719343c206
rtpsession: separate BYE marking and scheduling
...
First mark sources with BYE and then schedule the BYE RTCP message.
2013-07-26 12:17:58 +02:00
Wim Taymans
391943ba82
session: get SSRC from RTCP packet itself
...
Get the SSRC from the RTCP packet instead.
2013-07-26 12:17:57 +02:00
Wim Taymans
a3f75a17ef
session: fix bandwidth calculation
...
We iterate over all sources and the internal one is also in the
hashtable so avoid adding it twice.
2013-07-26 12:17:57 +02:00
Wim Taymans
9eaef9d332
session: add some docs
2013-07-26 12:17:56 +02:00
Wim Taymans
2163355a47
session: Rearrange RTCP reporting a little
...
Make a function to generate an RTCP packet for a source, pass the source as a
parameter.
Move timeout of collisions to session cleanup phase.
2013-07-26 12:17:56 +02:00
Wim Taymans
a3bf374351
session: move check for is_early around
...
Move the check for the early RTCP to where it is needed and used.
2013-07-26 12:17:56 +02:00
Wim Taymans
b069db6a2e
session: parse packet outside of the session lock
2013-07-26 12:17:56 +02:00
Wim Taymans
57c27ec319
session: do nicer checks for internal sources
2013-07-26 12:17:56 +02:00
Wim Taymans
93d07298ff
session: let source keep track if it sent BYE
2013-07-26 12:17:56 +02:00
Wim Taymans
0c9c1434a8
source: reset more
2013-07-26 12:17:56 +02:00
Wim Taymans
1d02496d15
source: also use the source for bye_reason
...
Store the BYE reason in our internal source object. Rename the methods on the
source object a little because now the BYE can be received in RTCP or
set when the session wants to send BYE.
2013-07-26 12:17:56 +02:00
Wim Taymans
ddd071e54c
session: configure sdes with structure only
...
Remove code to configure the SDES with methods and types, only
allow configuration with GstStructure
2013-07-26 12:17:55 +02:00
Wim Taymans
0060e1d45d
session: refactor add and find source
...
Make functions to find and add a source to the hashtable.
2013-07-26 12:17:55 +02:00
Wim Taymans
adb0d68c07
session: remove source from sync_rtcp
...
We don't need to know the sender source of the session in the
callback, the SR packet is for all participants in the session.
2013-07-26 12:17:55 +02:00
Wim Taymans
bf7d8173b3
jitterbuffer: add some more debug
2013-07-26 12:17:55 +02:00
Wim Taymans
c44a29bd53
bin: fix compilation
2013-07-24 14:17:45 +02:00
Wim Taymans
f87875e35b
rtpjitterbuffer: fix locking
...
Take the lock earlier so that we do things that follow with the right
locking.
2013-07-24 10:49:03 +02:00
Wim Taymans
dece8413ef
rtpsession: don't use invalid times in RTCP timeouts
...
An invalid timeout can be calculated when we disabled RTCP by setting the
bandwidth to 0. Make sure all code can handle this case.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=674626
2013-07-23 17:41:48 +02:00
Wim Taymans
25e0f0d6b6
rtpsession: lock session when changing bandwidth
...
Take the session lock when changing the bandwidth properties so that we don't
end up with inconsistent behaviour.
2013-07-23 17:41:48 +02:00
Wim Taymans
c337265ee4
session: reset some RTCP variables
...
The early_send time was set to 0 and always triggering an early RTCP packet.
2013-07-23 17:41:48 +02:00
Carlos Rafael Giani
95429f1d4b
rtpbin: added custom downstream sync event
...
rtpbin can now send a custom in-band downstream event which informs
downstream that the bin has received an RTCP SR packet. This is useful
for applications which want to drop the initial unsynchronized received
RTP packets.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=703560
Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
2013-07-23 06:25:20 +02:00
Sebastian Dröge
5a9f4a3cbc
rtpsession: Add support for group-id in the stream-start event
2013-07-22 15:30:13 +02: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
J. Rick Ramstetter
f01b751e52
rtp: Fix documentation and comments to use rtpbin instead of old gstrtpbin
...
https://bugzilla.gnome.org/show_bug.cgi?id=703426
2013-07-02 10:12:17 +02:00
Wim Taymans
519305d14d
jitterbuffer: improve sync on first packets
...
Don't throw away the first RTCP packet if it arrives before the first
RTP packet but remember and use it to signal sync once we get the
RTP packet.
See https://bugzilla.gnome.org/show_bug.cgi?id=691400
2013-06-27 16:23:20 +02:00
Wim Taymans
8969f00661
jitterbuffer: only signal loop when active
...
Only signal the loop function when it is active.
2013-06-27 16:15:45 +02:00
Wim Taymans
4bd2ffb26e
jitterbuffer: signal timestamp discont
...
We can now use the RESYNC buffer flag to mark a timestamp discont when we update
the ts-offset property.
2013-06-27 16:13:37 +02:00
Olivier Crête
2cd6f53e24
rtpptdemux: Wait after the caps to forward the other events
...
First forward the stream-start, then the caps, then the rest
2013-06-20 23:16:59 -04:00
Wim Taymans
51c9f7989f
rtpsession: Use the right hashtable to calculate bandwidth
...
Don't use an unused hashtable to iterate source to calculate bandwidth.
Remove unused code.
2013-06-13 16:02:19 +02:00
Wim Taymans
63f0ecbbe7
rtpsession: send stream-start and segment events
...
Also send stream-start and segment event on the RTCP pad.
We don't need to send anything on the sync_src pad because we
already forwarded all incomming events.
2013-05-28 12:26:25 +02:00
Nicolas Dufresne
04c9f43567
rtpmux: Send stream-start before caps
2013-05-13 15:37:05 +02:00
Sebastian Dröge
b0b0557c48
gst: Add better support for static plugins
2013-04-15 15:54:11 +02:00
Olivier Crête
6f3734c305
rtpssrcdemux: Only forward stick events while holding the sinkpad stream lock
...
Otherwise we get a race where if the RTCP packet comes in first and while
it is added the pads, the segment event arrives on the RTP stream, the event
may be lost completely and never forwarded.
2013-04-02 23:42:42 -04:00
Olivier Crête
76679f9ae9
rtpssrcdemux: No need to explicitely forward the caps
...
They are forwarded with the other events
2013-04-02 23:42:41 -04:00
Olivier Crête
4ad8693f3c
rtpssrcdemux: Remove unused GstSegment
2013-04-02 23:42:41 -04:00
Olivier Crête
7293b0eff7
rtpssrcdemux: Simplify event forwarding
...
Use the gst_pad_forward() mechanic, this way we won't miss pads that are
added while we are pushing
2013-04-02 23:42:41 -04:00
Olivier Crête
f4c3aef13a
rtpssrcdemux: Don't cross the internal links
...
We had the wrong condition to check for the internal links, so RTP and RTCP
pads got crossed!
2013-04-02 23:42:41 -04:00
Paul HENRYS
10802cae73
rtpsession: Fix wrong code organisation in case of collision
...
change_ssrc field of RTPSession should be set before calling
rtp_session_schedule_bye_locked () as this function will call reconsider function
that will wake up rtcp_thread which will call rtp_session_on_timeout () that will
check change_ssrc to change the ssrc.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=694184
2013-02-22 09:28:07 +02:00
Wim Taymans
a61055809f
rtpsession: only delay RTCP when we are a sender
...
Only delay the RTCP thread when we are a sender, which we can know because we
have a send_rtp_src pad. Otherwise we might delay the RTCP thread if we
are only a receiver and then there is no code path that wakes up the
RTCP thread and we end up without RTCP packets.
2013-02-20 21:07:41 +02:00
Wim Taymans
2d5319c1fa
rtpsession: delay RTCP until first RTP packet
...
Delay sending the first RTCP packet until we have sent the first RTP packet.
Otherwise we will send out a Receiver Report instead of a sender report.
See https://bugzilla.gnome.org/show_bug.cgi?id=691400
2013-02-08 17:05:27 +01:00
Wim Taymans
2971ed44ee
rtpsession: remove dead code
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=668355
2013-02-07 15:06:40 +01:00
Paul HENRYS
0e91c949d8
rtpptdemux: forward sticky events and then set caps
...
When a new src pad is added, first forward the sticky events and then
set the caps on the src pad
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=692786
2013-02-07 14:38:20 +01:00
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
Zeeshan Ali
6ea5ca354d
rtpmux: more debug
...
20070815135038-f3f1e-9c7a5490a525c6e8753cb1b8c03354df99132b5c.gz
2012-12-16 16:31:46 +00:00
Youness Alaoui
f0e209b638
rtpmux: missing comment
...
20070820185032-4f0f6-0ab67b6ac40dd4e35a8fe53f3cb6daff65ce43b9.gz
2012-12-16 16:30:33 +00:00
Olivier Crete
3ed5590da6
rtpmux: Make buffer writable before writing into it
...
20070712195336-3e2dc-91a5fb797cfa4919d4e2f9a728c6d6fbd3b83d93.gz
2012-12-16 16:30:31 +00:00
Olivier Crete
dd13f7c8ef
rtpmux: Set pads active when adding them to a potentially running element
...
20070706202459-3e2dc-a3731f885725594def0a7be997fc7b3a739ee967.gz
2012-12-16 16:30:27 +00:00
Olivier Crete
1c5075f927
rtpmux: Fix multiple ref leaks (patches by SP GLE)
...
20070607120121-3e2dc-061e9ef7a47b1b84fa8f8092f4b8bcc0e6db8c8c.gz
2012-12-16 16:30:23 +00:00
Zeeshan Ali
42f455e902
rtpmux: send event to all src pads
...
20070528152505-f3f1e-039216c73dc93f64c49962c77a0253cb9cfec4d3.gz
2012-12-16 16:30:18 +00:00
Zeeshan Ali
dba101bb0f
rtpmux: print a warning if receive an error iterating sinkpads
...
20070528123749-f3f1e-4c1eb3f511b5610143610a65a94d117f2c3d2580.gz
2012-12-16 16:30:15 +00:00
Zeeshan Ali
baa48dc6bc
rtpmux: deal with all the gst_iterator_next() return values
...
20070528122808-f3f1e-d301644c3be7633ec6dc5e28596e9346d2da6a50.gz
2012-12-16 16:30:12 +00:00
Zeeshan Ali
de40874670
rtpmux: Return correct value from the event handler
...
20070525123116-f3f1e-131b37b5f4521618fe2f1320409a47e65b35ad2d.gz
2012-12-16 16:30:08 +00:00
Zeeshan Ali
ed76f67e96
rtpmux: Ville's original patch to fix the traversal of dtmf event
...
20070525102709-f3f1e-6c41d1ef934068a4f4e810e7e981b420075b0c98.gz
2012-12-16 16:30:05 +00:00
zeeshan.ali@nokia.com
94ebe07862
rtpmux: Set the correct ts-offset on the get_prop value
...
20070329135250-65035-a43e222d91d57c0a61cb3287586aaa29abf78674.gz
2012-12-16 16:30:01 +00:00
zeeshan.ali@nokia.com
1ee542c378
rtpmux: Refactorize state_change
...
20070329135223-65035-23a0107b2e397710f035c6e88cc0e49b65bb4d5d.gz
2012-12-16 16:29:58 +00:00
zeeshan.ali@nokia.com
2498ba671a
rtpmux: set SSRC on the packets
...
20070329133622-65035-1be6e0aa85a71389f7d257b9cd3e13a73d6b745b.gz
2012-12-16 16:29:55 +00:00
zeeshan.ali@nokia.com
ee69c2690d
rtpmux: Code clean-up and more debug output
...
20070329131936-65035-9d499e209e0d7a409c3aa0d1040778babf076179.gz
2012-12-16 16:29:52 +00:00
zeeshan.ali@nokia.com
1c799ce964
rtpmux: Use own clock-base
...
20070328112219-65035-1ba5fefbc65059e9b0c860528a31062ceb6a7331.gz
2012-12-16 16:29:48 +00:00
zeeshan.ali@nokia.com
b04630d7a2
rtpmux: Only accept RTP streams that have the same clock-rate
...
20070323163139-65035-fc0b17b0b8a7a041f48994c4f26e96568168bf95.gz
2012-12-16 16:29:45 +00:00
zeeshan.ali@nokia.com
6fe1e02efd
rtpmux: Some more code-cleanups
...
20070322161552-65035-bda96165e146b4f1d5fea1cc9576a7ab3abebc9e.gz
2012-12-16 16:29:42 +00:00
zeeshan.ali@nokia.com
1603223ee5
rtpmux: return newpad instead of NULL and warn if failed to create a pad
...
20070322154251-65035-cdb6651e61c2eb0205cc8c24693b43f98a2da718.gz
2012-12-16 16:29:38 +00:00
zeeshan.ali@nokia.com
23d3ed5c5f
rtpmux: Refactorize the RTPMux code
...
20070322124132-65035-0a3278147546e33f687097a43b775b3f6aa99f93.gz
2012-12-16 16:29:35 +00:00
zeeshan.ali@nokia.com
21e6e951f6
rtpmux: Some more doc fixing
...
20070322121453-65035-12d602272217b51bd97df4e5790024c399622dd3.gz
2012-12-16 16:29:32 +00:00
zeeshan.ali@nokia.com
0de7fb6f37
rtpmux: More Refactoring
...
20070322113228-65035-bae34a79599e7de5293ed77b022361ccff822bb9.gz
2012-12-16 16:29:29 +00:00
zeeshan.ali@nokia.com
0f755657ce
rtpmux: More documentation
...
20070322113154-65035-624850541a5b5fc3df231204be5a83d07239db28.gz
2012-12-16 16:29:26 +00:00
zeeshan.ali@nokia.com
5483c78ac0
rtpmux: Refactor the event handler function
...
20070321163311-65035-987e7f25d1ab5335b79f44b277abf15e4e37d317.gz
2012-12-16 16:29:23 +00:00
zeeshan.ali@nokia.com
db1523ae60
rtpmux: Add RTPDTMFMux element
...
20070321145244-65035-9a01390b0dee3398e53199a1fa1d9352004f338e.gz
2012-12-16 16:29:19 +00:00
zeeshan.ali@nokia.com
97ff54dce7
rtpmux: Remove DTMF-specific code from RTP muxer and make it extendable
...
20070321123149-65035-b8a8f55ff78eed8cbb0042e827885edfc5438242.gz
2012-12-16 16:29:16 +00:00
zeeshan.ali@nokia.com
1a227ac7e5
rtpmux: Put more helpful description
...
20070320120524-65035-db27a7cf6307b511aeb3d996d26e790e367a7bad.gz
2012-12-16 16:29:13 +00:00
zeeshan.ali@nokia.com
d876c0d8cc
rtpmux: remove the (commented-out) code for blocking the pads
...
20070316151641-65035-0123af387951f88594797c722e882cfe70240aff.gz
2012-12-16 16:29:10 +00:00
zeeshan.ali@nokia.com
209228c44d
rtpmux: Drop buffers instead of blocking the sinkpads
...
20070316131444-65035-9c1345ad96108881f455d4b55a7f623cd302d0ed.gz
2012-12-16 16:29:05 +00:00
zeeshan.ali@nokia.com
795822ffa5
rtpmux: Implement stream locking, needed for DTMF
...
20070314171618-65035-e4d24b1606ce0a3e2e739f01833f61e4d7555eac.gz
2012-12-16 16:29:02 +00:00
zeeshan.ali@nokia.com
fd209faa56
rtpmux: use GST_*_OBJECT instead of g_*
...
20070314102058-65035-e2442888f2e3e5a3a7659ad7954a4fba34749ce2.gz
2012-12-16 16:28:58 +00:00
zeeshan.ali@nokia.com
b0208cb0a6
rtpmux: No need to manage pads, parent does that for us
...
20070314101854-65035-ef5f4abde227102a1128835ab325905eae4c3726.gz
2012-12-16 16:28:55 +00:00
zeenix@gmail.com
74e9071dad
rtpmux: Fix copyright header
...
20070314090358-d014a-3a6d3eeeaaf5cb8ca3bca6a33e99a551f598bd48.gz
2012-12-16 16:28:51 +00:00
zeeshan.ali@nokia.com
3c4cdf1541
rtpmux: The first implementation of RTP muxer
...
20070307085307-65035-833402413f99cb3f8be4883e92bad4c8722510c9.gz
2012-12-16 16:28:41 +00:00
Havard Graff
9c94f1187c
jitterbuffer: bundle together late lost-events
...
The scenario where you have a gap in a steady flow of packets of
say 10 seconds (500 packets of with duration of 20ms), the jitterbuffer
will idle up until it receives the first buffer after the gap, but will
then go on to produce 499 lost-events, to "cover up" the gap.
Now this is obviously wrong, since the last possible time for the earliest
lost-events to be played out has obviously expired, but the fact that
the jitterbuffer has a "length", represented with its own latency combined
with the total latency downstream, allows for covering up at least some
of this gap.
So in the case of the "length" being 200ms, while having received packet
500, the jitterbuffer should still create a timeout for packet 491, which
will have its time expire at 10,02 seconds, specially since it might
actually arrive in time! But obviously, waiting for packet 100, that had
its time expire at 2 seconds, (remembering that the current time is 10)
is useless...
The patch will create one "big" lost-event for the first 490 packets,
and then go on to create single ones if they can reach their
playout deadline.
See https://bugzilla.gnome.org/show_bug.cgi?id=667838
2012-12-13 12:00:43 +01:00
Wim Taymans
c755af0cb0
rtpsource: protect against invalid RTP packets
2012-11-12 11:18:30 +01: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
Wim Taymans
d5fd524a0c
rtsession: fix compiler warning
2012-10-17 13:55:45 +02:00
Wim Taymans
26a21e85e2
rtpbin: clarify the ntp-sync option
2012-10-17 13:35:07 +02:00
Wim Taymans
f17db5c4ed
rtpsession: update caps in the source
...
Inform the source when caps changed. This was removed in the port to 1.0
leaving the source unaware of the clock-rate and unable to interpollate
rtp timestamps for SR packets.
2012-10-17 13:22:40 +02:00
Wim Taymans
f4eef3f48d
rtpbin: set PTS and DTS in jitterbufffer
2012-10-17 12:46:32 +02:00
Wim Taymans
796c1d8029
rtpbin: disable check for ntp-sync
...
Disable the check for the ntp-sync method. It is expected that
a rather larger offset needs to be applied with this method.
2012-10-17 12:27:03 +02:00
Wim Taymans
1cebcfa8c2
rtpbin: use running-time for NTP time
...
When use-pipeline-clock is set, use the running-time of the
pipeline to calculate the NTP timestamps. This method would previously
only work when the base-time is set to 0 but with this change it can
also work with different offsets and we can also implement pause/resume
of the sender and receiver now.
2012-10-17 12:26:05 +02:00
Wim Taymans
5b394385b9
session: also stop probatation on existing sources
...
Receiving an RTCP packet should also stop probation on sources we have seen
before.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=683065
2012-08-30 22:07:24 +02:00
Aleix Conchillo Flaque
4a200b670f
rtp: make rtp packet probation configurable (bug #682512 )
2012-08-30 21:49:57 +02:00
Tim-Philipp Müller
4bb52bbadf
docs: gst-launch -> gst-launch-1.0 and ffmpegcolorspace -> videoconvert
2012-08-27 21:20:30 +01:00
Aleix Conchillo Flaque
8d864dbbfc
rtspsrc: make jitterbuffer drop-on-latency available ( fix #682055 )
...
Conflicts:
gst/rtsp/gstrtspsrc.h
2012-08-22 10:39:19 +02:00
Tim-Philipp Müller
787c314ec3
Silence some 'variable may be used uninitialized' compiler warnings
...
When compiling with -DG_DISABLE_ASSERT
2012-08-08 11:31:59 +01:00
Olivier Crête
2e21ace12c
rtpssrcdemux: Block pad while it is announced.
...
Block the RTP pad and associated RTCP pads while they are being
announced. This it to prevent a race where one is announced and
before the callback has connected it, the other one gets a buffer.
We can't use the "padlock" of ssrcdemux because it causes deadlocks.
2012-08-06 18:04:58 -07:00
Olivier Crête
2aa360c936
rtpssrcdemux: Release lock before signalling new pad
...
This prevents a deadlock where something would try to push an event
through the SSRC demux from the callback, causing the pads to be iterated
and the lock taken.
2012-08-04 18:14:28 -07:00
Wim Taymans
51371d26ee
update for RTP buffer api changes
2012-07-17 16:38:27 +02:00
Tim-Philipp Müller
c22268b5d3
rtpsession: remove deprecated and unused "ntp-ns-base" property
2012-07-06 13:16:00 +01:00
Wim Taymans
30d3dfee36
update for task api change
2012-06-20 10:33:42 +02:00
Wim Taymans
dc04908412
update for clock api changes
2012-06-20 10:01:57 +02:00
Pascal Buhler
8161daef4a
rtpsession: creation should be signaled before validation
...
https://bugzilla.gnome.org/show_bug.cgi?id=667850
2012-05-09 10:36:18 +02:00
Tim-Philipp Müller
e09ae5736d
Use new gst_element_class_set_static_metadata()
2012-04-10 00:51:41 +01:00
Sebastian Dröge
aa2cd462da
gst: Update for GST_PLUGIN_DEFINE() API changes
2012-04-05 17:36:38 +02:00
Sebastian Dröge
5cdd49bf25
gst: Update versioning
2012-04-04 14:37:47 +02:00
Mark Nauwelaerts
a34cbc7637
rtpbin: fix some lock management
...
... to avoid trying to take a non-recursive lock twice.
2012-03-26 18:38:34 +02:00
Wim Taymans
7f3a00decd
jitterbuffer: reply FALSe on serialized queries
2012-03-14 15:45:38 +01:00
Wim Taymans
af59f573b5
rtpsession: don't leak the address
2012-03-13 19:26:47 +01:00
Wim Taymans
b5f1969406
rtpbin: improve cleanup
...
Reuse cleanup methods to make sure we remove all pads correctly
2012-03-07 15:22:36 +01:00
Wim Taymans
9942d3566e
rtpsession: set caps without the lock
...
Release the lock before setting the caps on the srcpad, which triggers an event,
which could eventually call back into us and cause a deadlock.
2012-03-07 15:02:44 +01:00
Wim Taymans
5cce960baa
ptdemux: set caps after activating the pad
...
Set the caps after we activated the pad or else it will just fail.
2012-03-07 15:02:44 +01:00
Mark Nauwelaerts
f189f62b13
Merge branch 'master' into 0.11
...
Conflicts:
ext/wavpack/gstwavpackenc.c
tests/check/elements/audioiirfilter.c
tests/examples/v4l2/probe.c
2012-03-01 11:29:50 +01:00
Edward Hervey
9beda57c3a
Suppress deprecation warnings in selected files, for g_value_array_* mostly
2012-02-27 14:47:25 +01:00
Tim-Philipp Müller
979431c034
rtpjitterbuffer: declare variables at the beginning of the block
...
It's how we roll. Fixes 'ISO C90 forbids mixed declarations and code'
compiler warning.
2012-02-16 11:21:28 +00:00
Wim Taymans
225e98d623
Merge branch 'master' into 0.11
...
Conflicts:
ext/flac/gstflacenc.c
ext/jack/gstjackaudioclient.c
ext/jack/gstjackaudiosink.c
ext/jack/gstjackaudiosrc.c
ext/pulse/plugin.c
ext/shout2/gstshout2.c
gst/matroska/matroska-mux.c
gst/rtp/gstrtph264pay.c
2012-02-10 16:23:14 +01:00
Wim Taymans
9365f12d6e
GST_FLOW_WRONG_STATE -> GST_FLOW_FLUSHING
2012-02-08 16:43:30 +01:00
Wim Taymans
ed8c0b7f63
jitterbuffer: fix caps after pt change
2012-02-06 09:23:07 +01:00
Wim Taymans
c94c06530e
jitterbuffer: fix caps leak
2012-02-06 09:18:17 +01:00
Tim-Philipp Müller
0f3b7b010e
build: ignore GValueArray deprecation warnings for the time being
...
until this gets sorted out with the GLib folks and we have a
viable alternative.
https://bugzilla.gnome.org/show_bug.cgi?id=667228
2012-02-01 16:40:51 +00:00
Olivier Crête
87f2088303
rtpjitterbuffer: Don't leak caps event when not pushing
2012-01-27 19:05:24 +01:00
Olivier Crête
33a6d1921f
rtpptdemux: Forward sticky events
2012-01-27 19:05:24 +01:00
Olivier Crête
7b1f8cb8f0
rtpptdemux: Protect all uses pad list with OBJECT LOCK
...
Actually protect the entire pad list and use it in a thread safe
way.
2012-01-27 19:05:24 +01:00
Olivier Crête
b3f5cdd1f9
rtpssrcdemux: Forward sticky events to new pads
2012-01-27 19:05:24 +01:00
Olivier Crête
76c93af537
rtpssrcdemux: Add ssrc to forwarded CAPS events
...
Also iterate the list of GstRtpSsrcDemuxPad safely
2012-01-27 19:05:23 +01:00
Olivier Crête
3285c45dbc
rtpssrccdemux: Factor out getting dpad by pad
2012-01-27 19:05:23 +01:00
Olivier Crête
b850741430
rtpsession: Keep the buffer mapped while it is being modified
2012-01-27 19:05:23 +01:00
Olivier Crête
aeec2d5f7e
rtpsession: Initialise the address pointer to NULL
2012-01-27 19:05:23 +01:00
Tim-Philipp Müller
5525e40970
rtpmanager: don't pretend our random hostnames are fully-qualified domain names
2012-01-25 13:19:12 +00:00
Sebastian Dröge
0b517ce9fb
Merge branch '0.11' of ssh://git.freedesktop.org/git/gstreamer/gst-plugins-good into 0.11
2012-01-25 12:49:34 +01:00
Sebastian Dröge
10554b271f
Merge branch 'master' into 0.11
...
Conflicts:
ext/flac/gstflacdec.c
ext/jpeg/gstjpegenc.c
ext/pulse/pulsesink.c
sys/v4l2/gstv4l2src.c
2012-01-25 12:49:11 +01:00
Wim Taymans
b4630dd3e0
more memory API porting
2012-01-25 12:30:29 +01:00
Tim-Philipp Müller
a476d529d2
rtpmanager: don't reveal the user's username, hostname or real name by default
...
Send a randomly made-up user@hostname as CNAME and don't
send a NAME at all by default.
https://bugzilla.gnome.org/show_bug.cgi?id=668320
2012-01-23 13:47:08 +00:00
Tim-Philipp Müller
7cb9b7ab9d
Use new GLib API unconditionally
2012-01-22 23:15:19 +00:00
Mark Nauwelaerts
eff88a239f
rtpbin: arrange for initialized variables
2012-01-20 17:10:51 +01:00
Wim Taymans
1584806634
port to new gthread API
2012-01-19 11:33:53 +01:00
Sebastian Dröge
cb789e32ad
rtpmanager: Port to GIO
2012-01-17 13:08:42 +01:00
Tim-Philipp Müller
f10e8192fa
rtpptdemux: plug pad leak in error code path
...
Based on patch by: Stig Sandnes <stig.sandnes@cisco.com>
Don't leak srcpad if there are no caps.
https://bugzilla.gnome.org/show_bug.cgi?id=667820
2012-01-13 11:02:24 +00:00
Vincent Penquerc'h
654a04f90c
gstrtpssrcdemux: fix element leak
2012-01-12 18:23:42 +00:00
Sebastian Dröge
93e3ed5a86
Merge branch 'master' into 0.11
...
Conflicts:
ext/cairo/gsttextoverlay.c
ext/pulse/pulseaudiosink.c
gst/audioparsers/gstaacparse.c
gst/avi/gstavimux.c
gst/flv/gstflvmux.c
gst/interleave/interleave.c
gst/isomp4/gstqtmux.c
gst/matroska/matroska-demux.c
gst/matroska/matroska-mux.c
gst/matroska/matroska-mux.h
gst/matroska/matroska-read-common.c
gst/multifile/gstmultifilesink.c
gst/multipart/multipartmux.c
gst/shapewipe/gstshapewipe.c
gst/smpte/gstsmpte.c
gst/udp/gstmultiudpsink.c
gst/videobox/gstvideobox.c
gst/videocrop/gstaspectratiocrop.c
gst/videomixer/videomixer.c
gst/videomixer/videomixer2.c
gst/wavparse/gstwavparse.c
po/ja.po
po/lv.po
po/sr.po
tests/check/Makefile.am
tests/check/elements/qtmux.c
tests/check/elements/rgvolume.c
2012-01-10 14:32:32 +01:00
Wim Taymans
5fd2b7abe3
GST_FLOW_UNEXPECTED -> GST_FLOW_EOS
2012-01-03 15:26:21 +01:00
Tim-Philipp Müller
b8b8454bcb
Suppress deprecation warnings in selected files, for g_static_rec_mutex_* mostly
...
GStaticRecMutex is part of our API/ABI, not much we can do here
in 0.10 for most of these.
2011-12-12 09:46:27 +00:00
Tim-Philipp Müller
330d984288
Use g_thread_try_new() instead of g_thread_crate() with newer glib versions
2011-12-12 09:46:27 +00:00
Tim-Philipp Müller
66f6e12888
Work around deprecated thread API in glib master
...
Add private replacements for deprecated functions such as
g_mutex_new(), g_mutex_free(), g_cond_new() etc., mostly
to avoid the deprecation warnings. We'll change these
over to the new API once we depend on glib >= 2.32.
2011-12-12 09:46:27 +00:00
Wim Taymans
9e27b122d9
ssrcdemux: fix iterator and caps
2011-12-10 11:13:38 +01:00
Wim Taymans
da980884dd
rtpsession: forward the caps event
2011-12-10 11:13:38 +01:00
Wim Taymans
a705b2ec17
jitterbuffer: simply forward the caps event
...
forward the caps event we get as input instead of making a new event etc..
2011-12-10 11:13:38 +01:00