Wim Taymans
fc4684f4c6
fix compilation
2011-10-27 16:03:17 +02:00
Edward Hervey
d4a2a46606
rtpssrcdemux: Fix wrong usage of gst_iterator_filter
...
It takes a GValue* as the user_data.
And don't forget to unref the demuxer before returning.
2011-10-13 09:34:04 +02:00
Wim Taymans
87fbd1e784
Merge branch 'master' into 0.11
...
Conflicts:
common
ext/pulse/pulsesink.c
ext/soup/gstsouphttpclientsink.c
gst/audioparsers/gstaacparse.c
gst/audioparsers/gstac3parse.c
gst/rtp/gstrtph264depay.c
gst/rtpmanager/gstrtpjitterbuffer.c
gst/rtpmanager/rtpjitterbuffer.c
gst/rtsp/gstrtspsrc.c
sys/ximage/gstximagesrc.c
2011-09-28 12:44:59 +02:00
Ha Nguyen
931020158e
rtpbin: Fix a leaked clock for each buffering message
...
Fixes bug #659237 .
2011-09-19 14:05:26 +02:00
Mark Nauwelaerts
e2179cbb74
rtpsession: avoid source premature timing out
...
Use slightly adjusted sender interval to determine sender timeout rather than
our own sender side interval (which may have been forced small).
2011-09-19 11:56:44 +02:00
Mark Nauwelaerts
f65d4c8300
rtpsession: avoid timing out source too quickly
...
... following a PAUSE/PLAY cycle, particularly applicable when operating
with a short RTCP interval (possibly forced so server-side).
2011-09-19 11:56:44 +02:00
Mark Nauwelaerts
77ebd33991
rtpjitterbuffer/rtpbin: relax dropping rtcp packets
...
... to at least having it trigger a/v synchronization, possibly without
using provided values which are still not considered sane
(as previously dropped).
2011-09-19 11:56:44 +02:00
Mark Nauwelaerts
adfe7d0467
rtpjitterbuffer: some more reset when clearing pt map
...
... which in particular caters for some more reset following a possible
rtsp PLAY.
2011-09-19 11:56:44 +02:00
Mark Nauwelaerts
915db26029
rtpjitterbuffer: only reset skew on gap if input ts available
2011-09-19 11:56:44 +02:00
Mark Nauwelaerts
1e17e10f75
rtpjitterbuffer: check some more for possible rtp timestamp discontinuity
...
... when operating in non slave mode, and reset if detected.
This should avoid some (large) bogus outgoing timestamp due to jumps
in rtp time, as result of PAUSE/PLAY or seek or ...
2011-09-19 11:56:40 +02:00
Mark Nauwelaerts
9c95072048
rtpbin: alternative inter-stream syncing methods
...
... at least if not syncing to NPT time:
* either sync using RTCP SR data (as currently)
* only perform the above once using initial RTCP SR packets
* discard RTCP and sync by equating provided stream's clock-base rtptime,
as provided by jitterbuffer (typically obtained from RTP-Info in RTSP).
2011-09-19 11:52:03 +02:00
Mark Nauwelaerts
4b7301e4d1
rtpjitterbuffer: also provide clock-base to sync signal
2011-09-19 11:52:00 +02:00
Mark Nauwelaerts
f29c253934
rtpbin: allow configurable rtcp stream syncing interval
...
... rather than necessarily syncing at each RTCP SR.
2011-09-19 11:51:57 +02:00
Mark Nauwelaerts
afd26f0078
rtpsession: trigger reconsideration if rtcp interval set
2011-09-19 11:51:50 +02:00
Wim Taymans
33f18b8ea4
Merge branch 'master' into 0.11
...
Conflicts:
gst/audioparsers/gstamrparse.c
gst/isomp4/qtdemux.c
2011-09-06 16:06:25 +02:00
Olivier Crête
b2e8362767
rtpsession: Initialise the last_keyframe_request variable
2011-09-02 19:24:46 -04:00
Wim Taymans
4121021bb2
Merge branch 'master' into 0.11
...
Conflicts:
ext/pulse/pulsesink.c
ext/pulse/pulsesrc.c
gst/audioparsers/gstac3parse.c
gst/rtp/gstrtph264depay.c
gst/rtp/gstrtph264pay.c
gst/rtpmanager/gstrtpssrcdemux.c
2011-08-03 18:25:30 +02:00
Mark Nauwelaerts
c03648c8bb
rtpsession: properly init rtcp_min_interval
2011-07-29 12:08:42 +02:00
Mark Nauwelaerts
3a98f6f0fd
rtpssrcdemux: keep a ref on the src pad while using it
...
Prevent a possible race if clear_ssrc() is called between getting the pad and
doing the push.
Based on patch by <olivier.crete@collabora.com>
https://bugzilla.gnome.org/show_bug.cgi?id=650916
2011-07-28 14:51:01 +02:00
Olivier Crête
c7b9b98648
rtpssrcdemux: Make the pads lock recursive and hold it across the signal emit
...
We need to keep the lock held because we don't want a push before the "new-ssrc-pad"
handler has completed. But we may want to push an event from inside that handler, hence
the recursive mutex.
https://bugzilla.gnome.org/show_bug.cgi?id=650916
2011-07-28 14:50:59 +02:00
Olivier Crête
e26b5391c2
rtpssrcdemux: Use PADs lock
...
https://bugzilla.gnome.org/show_bug.cgi?id=650916
2011-07-28 14:50:57 +02:00
Olivier Crête
6095d2a3f0
rtpsession: Always send application requested feedback in immediate mode
...
Send as many application requested feedback messages in immediate mode, even if they
have already been sent.
https://bugzilla.gnome.org/show_bug.cgi?id=654583
2011-07-25 17:20:59 +02:00
Olivier Crête
354faabda0
rtpsession: Don't let the computed RTP bandwidth fall too low
...
If it falls too low, the computed RTCP bandwidth will be near zero and
the RTCP thread will be stopped.
https://bugzilla.gnome.org/show_bug.cgi?id=654583
2011-07-25 16:19:00 +02:00
Olivier Crête
4d48109f9d
rtpsession: Wait longer to timeout SSRC collision
...
Using the current RTCP interval to timeout SSRC collision can lead to
collisions being timed out immediately if a BYE packet is sent because
it is sent immediately, so the interval is 0. This is not what we
want. So just set a static 10 times the default RTCP interval, it
should be enough
https://bugzilla.gnome.org/show_bug.cgi?id=648642
2011-07-25 16:18:58 +02:00
Mark Nauwelaerts
ef02634dc6
rtpmanager: port to 0.11
...
* use G_DEFINE_TYPE
* adjust to new GstBuffer and corresponding rtp and rtcp buffer interfaces
* misc caps and segment handling changes
FIXME: also relies on being able to pass caps along with a buffer,
which has no evident equivalent yet, so that either needs one,
or still needs quite some code path modification to drag along caps.
2011-07-06 10:16:12 +02:00
Mark Nauwelaerts
d59a00aa1c
Merge branch 'master' into 0.11
...
Conflicts:
ext/pulse/pulsesink.c
2011-07-04 11:48:13 +02:00
Miguel Angel Cabrera Moya
977a5eee7a
rtpjitterbuffer: return correct type when assertion fails
2011-06-24 11:59:01 +02:00
Wim Taymans
cc65bff7c1
Merge branch 'master' into 0.11
...
Conflicts:
configure.ac
docs/plugins/inspect/plugin-esdsink.xml
docs/plugins/inspect/plugin-gconfelements.xml
2011-06-21 18:24:41 +02:00
Olivier Crête
581a30d892
rtpsession: The signal has 5 arguments, not 4
2011-06-20 16:47:36 -04:00
Wim Taymans
409f29700d
-good: port some more plugins
2011-06-13 17:51:40 +02:00
Wim Taymans
e15651816e
Merge branch 'master' into 0.11
2011-05-17 16:13:59 +02:00
Sebastian Dröge
b694bfeca3
ssrcdemux: Fix uninitialized variable compiler warning for (pre-) releases too
2011-05-17 10:47:32 +02:00
Sebastian Dröge
0f05d3e5a5
rtpssrcdemux: Fix uninitialized variable compiler warning
2011-05-17 09:24:08 +02:00
Olivier Crête
b6bfc512e8
ssrcdemux: Implement iterate internal links for sink pads
...
https://bugzilla.gnome.org/show_bug.cgi?id=649617
2011-05-17 09:22:29 +02:00
Olivier Crête
23b6c8febc
rtpssrcdemux: iterate pad function is only valid for src pads
...
The iterate function is only used for src pads, so mark it as such and remove
dead code.
https://bugzilla.gnome.org/show_bug.cgi?id=649617
2011-05-17 09:22:25 +02:00
Olivier Crête
1bf94a92b0
rtpssrcdemux: Release lock before emitting signal
...
If the lock is not released before emitting a signal, it may cause a deadlock
if any other function in the element is called.
Also removed an unused timestamp parameter
https://bugzilla.gnome.org/show_bug.cgi?id=649617
2011-05-17 09:22:20 +02:00
Wim Taymans
a1894ed363
Merge branch 'master' into 0.11
2011-04-25 11:38:28 +02:00
Olivier Crête
42531337f5
rtpsession: Remove incomplete support for RTCP FIR
...
Remove bits that were meant to suppport RTCP FIR
https://bugzilla.gnome.org/show_bug.cgi?id=648160
2011-04-20 07:50:43 +01:00
Wim Taymans
7555d0949f
Merge branch 'master' into 0.11
...
Conflicts:
android/apetag.mk
android/avi.mk
android/flv.mk
android/icydemux.mk
android/id3demux.mk
android/qtdemux.mk
android/rtp.mk
android/rtpmanager.mk
android/rtsp.mk
android/soup.mk
android/udp.mk
android/wavenc.mk
android/wavparse.mk
configure.ac
2011-04-18 10:23:45 +02:00
Robert Swain
5b18c652fb
rtp, rtpmanager: Address unused but set variables
...
GCC 4.6.x spits warnings about variables that are unused but set. Such
variables have been removed where trivial but with comments left behind
for informational purposes in some cases.
gst_rtp_session_chain_recv_rtcp () was changed in commit 490113d4
to always return GST_FLOW_OK instead of the return value of
rtp_session_process_rtcp (), so we'll keep it that way.
2011-04-16 12:49:16 +01:00
Olivier Crête
9d9257916b
rtpsession: Use existing functions to parse RTCP FB packets
...
Use existing functions to get the FCI from FB packets.
https://bugzilla.gnome.org/show_bug.cgi?id=622553
2011-04-15 12:48:04 +01:00
Olivier Crête
5ccd964d86
rtpsession: marshal GstBuffer as a MiniObject instead of a pointer
...
https://bugzilla.gnome.org/show_bug.cgi?id=622553
2011-04-15 12:47:40 +01:00
Pascal Buhler
0d2d52856f
rtpssrcdemux: Unknown SSRC is not fatal
...
https://bugzilla.gnome.org/show_bug.cgi?id=646966
2011-04-11 17:37:58 -04:00
Pascal Buhler
58ef84846e
rtpsession: Number of active sources should be updated whenever the status of the source changes to active
...
Forward-ported by Olivier Crête
https://bugzilla.gnome.org/show_bug.cgi?id=646965
2011-04-11 17:37:36 -04:00
Havard Graff
53c88ae33e
rtpmanager: ignore a BYE if it is sent with our internal SSRC
...
https://bugzilla.gnome.org/show_bug.cgi?id=646964
2011-04-11 17:34:12 -04:00
Thibault Saunier
b541208b77
android: Make it ready for androgenizer
...
Remove the android/ top dir
Fixe the Makefile.am to be androgenized
To build gstreamer for android we are now using androgenizer which generates the needed Android.mk files.
Androgenizer can be found here: http://git.collabora.co.uk/?p=user/derek/androgenizer.git
2011-04-11 01:20:11 +02:00
Havard Graff
93f022d6ab
rtpsession: fix wrongly applied patch
...
Obviously recv_rtp_sink does not have much to do with send_rtcp_src...
See commit 046ff170.
https://bugzilla.gnome.org/show_bug.cgi?id=647263
2011-04-09 12:32:37 +01:00
Havard Graff
e71a908d96
jitterbuffer: Make src_query MT-safe
...
It is possible that the element might be going down while the event arrives
2011-04-08 15:23:05 +02:00
Sebastian Dröge
4c36ca30b2
jitterbuffer: Unref event if the parent element disappeared
2011-04-08 15:22:19 +02:00
Havard Graff
342686bb02
jitterbuffer: Make upstream events MT-safe
2011-04-08 15:21:46 +02:00
Sebastian Dröge
31af4fe33e
rtp: Unref events if the parent element disappeared
2011-04-08 15:20:51 +02:00
Ole André Vadla Ravnås
046f170d6a
rtpmanager: fix pad callbacks so they handle when parent goes away
...
1) We need to lock and get a strong ref to the parent, if still there.
2) If it has gone away, we need to handle that gracefully.
This is necessary in order to safely modify a running pipeline. Has been
observed when a streaming thread is doing a buffer_alloc() while an
application thread sends an event on a pad further downstream, and from
within a pad probe (holding STREAM_LOCK) carries out the pipeline plumbing
while the streaming thread has its buffer_alloc() in progress.
2011-04-08 15:16:56 +02:00
Havard Graff
f8370bb2a8
rtpsession: make iterate_internal_links MT-safe
2011-04-08 14:41:34 +02:00
Wim Taymans
c124ba1489
Merge branch 'master' into 0.11
...
Conflicts:
gst/rtsp/gstrtspsrc.c
2011-04-05 17:20:08 +02:00
Mark Nauwelaerts
e5bcaa45e6
Revert "jitterbuffer: reset element base_time upon flush"
...
This reverts commit f84b8a69cb
.
Fixes bug #646397 .
2011-04-04 11:49:00 +02:00
Wim Taymans
8f22a09dc4
Merge branch 'master' into 0.11-fdo
2011-03-28 20:50:59 +02:00
Mark Nauwelaerts
6bc1aa0e59
jitterbuffer: handle position query
2011-03-09 17:18:08 +01:00
Wim Taymans
a4fdb8ee44
Merge branch 'master' into 0.11
...
Conflicts:
tests/examples/cairo/Makefile.am
2011-03-08 10:14:20 +00:00
Mark Nauwelaerts
1f7f434df6
jitterbuffer: also estimate eos if very near eos
2011-03-07 16:56:43 +01:00
Mark Nauwelaerts
3c9a4239bf
jitterbuffer: avoid trying to buffer more than is available.
...
That is, in case of short (or near eos of) stream, deadlock (until timeout)
would occur trying to buffer more than is yet forthcoming.
2011-03-07 16:56:18 +01:00
Mark Nauwelaerts
f84b8a69cb
jitterbuffer: reset element base_time upon flush
...
... to arrange for properly scheduled timeout (following seek).
2011-03-07 11:07:12 +01:00
Wim Taymans
0a56b25882
rtpsession: use NetAddress metadata
2011-02-28 13:28:29 +01:00
Wim Taymans
d87c27fd2c
miniobject: use buffer private field for extra data
...
Use the owner private field to store extra buffer data instead of using
subclassing.
2011-02-28 11:58:48 +01:00
Blaise Gassend
0f88181f43
rtpbin: handle NULL demux elements
...
When using gstrtpbin with ignore-pt=true, the free_stream function tries to
call gst_element_set_locked_state and gst_element_set_state on a stream->demux
which is NULL.
fixes #642412
2011-02-22 13:31:35 +01:00
Wim Taymans
45ea930a99
rtpbin: fix setting the SDES property
...
Only the sdes veriable is protected with the object lock.
Use the right object when setting the sdes property.
2011-02-21 17:19:05 +01:00
Wim Taymans
61382aad28
source: fix type of ntpnstime
2011-02-02 18:30:47 +01:00
Wim Taymans
8598aaf81b
rtpbin: Get and use the NTP time when receiving RTCP
...
When we receive an RTCP packet, get the current NTP time in nanseconds so that
we can correctly calculate the round-trip time.
2011-02-02 18:30:46 +01:00
Olivier Crête
cd923223dd
rtpsession: Add action signal to request early RTCP
2011-02-01 18:28:51 +01:00
Olivier Crête
c0996e6b90
rtpsession: Add callback to get the current time
2011-02-01 18:28:51 +01:00
Olivier Crête
a630c68fc3
rtpsession: Don't relay more than one PLI request per RTT
...
Drop PLI requests if one was relay in the last RTT, the other side may
just not have received the keyframe yet.
2011-02-01 18:28:51 +01:00
Olivier Crête
a61bb9e94b
rtpsession: Send GstForceKeyUnit event in response to received RTCP PLI
2011-02-01 18:28:51 +01:00
Sjoerd Simons
7350d2adfa
gstrtpsession: Fallback for FIR to PLI if PLI isn't available
2011-02-01 18:28:51 +01:00
Olivier Crête
52f95fa7ee
rtpsession: Implement sending PLI packets in response to GstForceKeyUnit
2011-02-01 18:28:51 +01:00
Olivier Crête
db5150a23a
rtpsource: Retain RTCP Feedback packets for a specified amount of time
2011-02-01 18:28:51 +01:00
Olivier Crête
90354ecb49
rtpsession: Make rtcp buffer metadata writable after processing it
...
Functions that process the rtcp buffer could decide to keep a ref
on the buffer for further processing. So make the metadata writable
only after they are done.
2011-02-01 18:28:50 +01:00
Olivier Crête
1643f427db
rtpsession: Emit signal on incoming RTCP FB packet
2011-02-01 18:28:50 +01:00
Wim Taymans
f399b6a641
rtpsession: fix compilation
2011-02-01 18:28:50 +01:00
Olivier Crête
1bde427250
rtpsession: Add method to request early RTCP packet
...
Implement the early mode defined in RFC 4585. In this mode, RTCP feedback
packets are sent early to notifier.
2011-02-01 17:03:39 +01:00
Olivier Crête
975e1fecb3
rtpsession: Add property for minimum interval between Regular RTCP messages
...
This can be changed according to RFC 4585
2011-02-01 16:56:15 +01:00
Olivier Crête
cdb5465741
rtpsession: Emit signal when sending a compound RTCP packet
...
This allows users to add extra RTCP packets to the compound
RTCP packet.
2011-02-01 16:50:58 +01:00
Olivier Crête
589b254ce5
rtpptdemux: Tag upstream custom events with payload type
2011-02-01 16:50:25 +01:00
Olivier Crete
c7b1ce7310
rtpssrcdemux: Tag upstream custom events with SSRC
2011-02-01 16:49:10 +01:00
Olivier Crête
9f073459e0
rtpsession: Emit "on-ssrc-validated" when validating by RTCP
...
Emit "on-ssrc-validated" if the SSRC is validated by receiving
a RTCP SDES packet.
2011-02-01 16:45:58 +01:00
Stefan Kost
9f34b89245
rtpjitterbuffer: don't divide by 0
2011-01-25 21:57:57 +02:00
Wim Taymans
b5647685c4
rtpsource: use the right variable
...
Use the right variable for specifying that we sent a receiver report.
2010-12-27 13:13:46 +01:00
Wim Taymans
7caad21a57
rtpsource: include last send RB block
...
Only report RB values for non-internal sources.
Report not only the RB blocks we last received from but also the last RB
block we sent to a source.
2010-12-23 13:58:30 +01:00
Wim Taymans
8fa5ddab9a
rtpsession: remember last sent RB values.
2010-12-23 13:58:30 +01:00
Wim Taymans
6035ee08c0
rtpsource: include all stats and document
...
Include all possible stats of a source in the stats structure because we might
be interested in what happened in the past.
Document the stats property and the fields.
2010-12-23 13:58:30 +01:00
Wim Taymans
10a5a795ea
rtpsession: also emit RTCP activity on SR
...
Also emit RTCP activity signals when we receive an SR packet without RB blocks,
such as from a sender that is not receiving anything.
2010-12-23 13:58:30 +01:00
Wim Taymans
1230258e6f
docs: add some more gstrtpbin docs
2010-12-23 13:58:29 +01:00
Wim Taymans
2b53cbe923
rtpsession: unlock before emitting signals
2010-12-22 11:46:21 +01:00
Wim Taymans
eb6d552353
jitterbuffer: get better buffering level
...
When the jitterbuffer contains -1 timestamps, make sure we still calculate the
buffer fill level by skipping the -1 buffers.
Try to be more resilient to weird input timestamps.
2010-12-20 15:56:50 +01:00
Wim Taymans
6cb0efede4
jitterbuffer: provide a clock.
...
since we are using the clock for sync, we need to also provide a clock for good
measure. The reason is that even if downstream elements provide a clock, we
don't want to have that clock selected because it might not be running yet.
2010-12-20 11:13:09 +01:00
Wim Taymans
210f1c44c7
rtpbin: copy buffering stats
...
when we create an aggregate buffering message, copy the buffering stats form the
last message. At least we get correct buffering mode then.
2010-12-20 11:13:09 +01:00
Wim Taymans
0c3333da04
session: fix average RTCP packet size some more.
...
Fix stupid error in averaging macro.
Include udp headers in packet length estimation.
2010-12-14 18:12:43 +01:00
Wim Taymans
7ebd374766
rtpbin: correctly calculate RTCP packet size
2010-12-14 17:15:23 +01:00
Wim Taymans
ffc7cd9803
jitterbuffer: avoid leaking sink events
...
Avoid leaking the newsegment event when it has the wrong format.
2010-12-13 12:57:58 +01:00
Mark Nauwelaerts
46c91476eb
rtpssrcdemux: do not hold custom PAD_LOCK when pushing downstream
2010-12-03 15:50:21 +01:00
Olivier Crête
077a61932a
rtpbin: Use the right constant to define the "use-pipeline-clock" property
...
The wrong #define was being used, now use the correct one.
2010-10-14 17:41:30 -04:00
Stefan Kost
d8167e3071
various (gst): add a missing G_PARAM_STATIC_STRINGS flags
2010-10-13 18:00:28 +03:00
Tim-Philipp Müller
d65eb2b91a
ext, gst: canonicalise property names where this wasn't the case
...
ie. "foo_bar" -> "foo-bar"
2010-10-12 16:04:21 +01:00
Vladimir Eremeev
8bf7381385
rtpjitterbuffer: improve article reference in comment block
...
https://bugzilla.gnome.org/show_bug.cgi?id=631082
2010-10-01 18:07:03 +01:00
Thijs Vermeir
2c2c90a723
rtpjitterbuffer: update link to documentation
2010-09-30 12:08:49 +02:00
Pascal Buhler
7a8c2a4b8a
rtpmanager: packet lost should not be a warning. It happens all the time...
2010-09-24 16:00:03 +02:00
Pascal Buhler
ca6a512b5e
rtpbin: Make cleaning up sources in rtp_session_on_timeout MT safe
...
Using _foreach_remove on the hashtable, while releasing the lock protecting
that table inside the callback is not a good idea. The hashtable might
then change (a source removed or added) while signals like on_timeout
are being sent.
This solution makes a copy of the table, performs the _foreach without
actually removing any sources, but marks them for removal on a second
iteration with the real list, but this time not letting go of the lock.
Fixes #630452
2010-09-24 15:38:00 +02:00
Pascal Buhler
bd8d80a8e4
rtpbin: Handle rysnc of iterator when looking for free pad name
...
If a new pad was added while iterating then a pad could be
returned that was already in use.
Fixes #630451
2010-09-24 14:10:26 +02:00
Wim Taymans
8337c89c74
rtpsession: fix compilation
2010-09-24 14:10:26 +02:00
Trond Andersen
800b4bdb26
rtpbin: Unlock before adding pad in new_payload_found
...
Holding internal locks while potentially calling out is a source
of deadlocks, and in this case the application might subscribe to the
pad-added signal.
Fixes #630449
2010-09-24 14:00:11 +02:00
Havard Graff
062568a9f5
rtpsession: relax third-party collision detection
...
If the source has been inactive for some time, we assume that it has
simply changed its transport source address. Hence, there is no true
third-party collision - only a simulated one.
Fixes #630447
2010-09-24 13:56:56 +02:00
Wim Taymans
ce007b244e
rtpsource: whitespace fixes
2010-09-24 13:50:02 +02:00
Wim Taymans
c5203a479b
rtpsource: simplify the rate estimation some more
2010-09-24 13:48:50 +02:00
Havard Graff
0fa589a3dd
rtpmanager: provide additional statistics
2010-09-24 13:26:10 +02:00
Wim Taymans
2c8b725591
rtpstats: printf format fixes
2010-09-17 11:07:52 +02:00
Olivier Crête
8e73da10b3
gstrtpsession: Split getting the caps into its own function
2010-09-13 16:25:42 +02:00
Wim Taymans
8e1c9b5b33
rtpbin: small cleanup.
2010-09-13 16:25:42 +02:00
Wim Taymans
d541f5e24d
rtpsession: Small cleanups
...
Make the property description prettier.
Actually multiple the bandwidth with the fraction.
2010-09-13 15:51:20 +02:00
Olivier Crête
1f17b334ff
rtpsession: Calculate RTCP bandwidth as a fraction of the RTP bandwidth
...
Calculate the RTCP bandwidth to be a fraction of the RTP bandwidth if it is
specified as a value between 0 and 1.
2010-09-13 15:51:20 +02:00
Wim Taymans
8381d9788d
session: improve bandwidth recalculation
...
Also recalculate bandwidth when one of the source bandwidths changed.
Use the newly calculated bandwidth.
2010-09-13 15:51:20 +02:00
Olivier Crête
6f53a2b240
rtpsession: Add the option to auto-discover the RTP bandwidth
2010-09-13 15:51:19 +02:00
Thijs Vermeir
f38e37470a
rtpbin: set use-pipeline-clock on correct GObject
2010-09-13 14:39:51 +02:00
Olivier Crête
94e87ef8ee
rtpsession: Initialise the average scaled by 16
2010-09-13 13:10:19 +02:00
Wim Taymans
e6db74764b
rtpsession: add running_time argument docs
2010-09-13 12:41:56 +02:00
Olivier Crête
00fd89c074
rtpstats: Rectify description of current_time in RTPArrivalStats
...
It is the current time, it is unrelated to when the packet was actually received.
2010-09-13 12:37:01 +02:00
Wim Taymans
cb6de429a0
rtpsession: compute the average correctly scaled
2010-09-13 12:31:40 +02:00
Olivier Crête
64e4ffa25b
rtpsession: Count sent RTCP packets after they have been finished
...
If they are counted before calling gst_rtcp_buffer_end(), then the
size is way too big.
2010-09-13 12:13:23 +02:00
Olivier Crête
306ee454c6
gstrtpsession: Don't unref pads in finalize
...
The gstrtpsession object is not holding any reference to them directly
2010-09-13 12:10:11 +02:00
Wim Taymans
93228ccd52
rtpbin: add ntp-sync property
...
Add an ntp-sync property that will sync the received streams to the server
NTP time. This requires synchronized NTP times between the sender and receivers,
like with ntpd.
Based on patch from Thijs Vermeir.
Fixes #627796
2010-09-06 11:01:57 +02:00
Wim Taymans
f03fd91400
jitterbuffer: rename a variable to avoid confusion
2010-09-06 11:01:57 +02:00
Wim Taymans
e3479630ae
rtpbin: rename some variables for less confusion
2010-09-06 11:01:57 +02:00
Wim Taymans
0f59664c6a
rtpjitterbuffer: move comment where it belongs
2010-09-06 11:01:57 +02:00
Wim Taymans
4fd81747f3
session: minor cleanups
...
Make clock snapshots more accurate by only sampling the same clock once.
2010-09-06 11:01:57 +02:00
Thijs Vermeir
51020549f0
rtpbin: add use-pipeline-clock property
...
With this property RTCP SR NTP times can be based
on the system clock (maybe synced with ntpd) or the
current pipeline clock.
https://bugzilla.gnome.org/show_bug.cgi?id=627796
2010-09-06 11:01:57 +02:00
Thijs Vermeir
244a35a226
rtpptdemux: fix memleak on custom downstream events
...
by not sending custom downstream event twice and fix memleak when
not handling the event
https://bugzilla.gnome.org/show_bug.cgi?id=623196
2010-06-30 12:39:09 +02:00
Sebastian Dröge
f16ed4a91c
gst: Don't use GST_DEBUG_FUNCPTR for GObject vfuncs
2010-06-06 17:52:40 +02:00
Thijs Vermeir
0bb2be3a7e
rtpjitterbuffer: fix compiler warning
...
unused variable ‘estimated’
2010-06-02 15:32:36 +02:00
Alessandro Decina
4b6cb93025
rtpjitterbuffer: stop buffering and emit EOS at the end of a stream
...
When using RTP_JITTER_BUFFER_MODE_BUFFER, make sure that the ringbuffer doesn't
get stuck buffering forever when there isn't enough data left to fill the
buffer.
2010-06-02 14:21:16 +02:00
Wim Taymans
dc2662e22b
rtpbin: fix docs
...
Documentation error spotted by tony <caicai0119 at gmail.com>
Fixes #618419
2010-05-13 13:01:26 +02:00
Wim Taymans
50f26c671b
rtpsession: fix return value
2010-05-07 19:06:35 +02:00
Wim Taymans
aadf4ddf7e
rtpsession: add properties to configure the bandwidth
...
Add properties to proxy the bandwidth configuration to the session object.
2010-05-07 18:58:58 +02:00
Wim Taymans
69cde0e874
rtpsession: add properties to configure bandwidths
...
Add properties to configure the sender and receiver bandwidths.
Configure the bandwidths before calculating the RTCP timeout when we need to.
2010-05-07 18:57:13 +02:00
Wim Taymans
d84dc1112d
rtpstats: add some debug info
2010-05-07 18:56:30 +02:00
Wim Taymans
5690331c9e
rtpsession: small cleanups
2010-05-07 18:55:34 +02:00
Wim Taymans
0da5cf2e21
rtpstats: make bandwidths more configurable
...
Add a method to configure the various bandwidths in the session.
2010-05-07 16:55:13 +02:00
Wim Taymans
6eee730c4a
rtpsession: handle NONE RTCP intervals
...
Prepare for handling RTCP reporting intervals of GST_CLOCK_TIME_NONE, which
means don't send RTCP at all.
2010-05-07 13:32:30 +02:00
Alessandro Decina
40899379c0
rtpjitterbuffer: move some initialization code from change_state to _init.
...
Set ->active to TRUE in _init so it can be set to FALSE after creating the
jitterbuffer and it won't be mistakenly reset to TRUE in the change_state
function.
This is needed to start the jitterbuffer as inactive when rtpbin is buffering.
2010-05-03 13:34:59 +02:00
Alessandro Decina
ffc2da30fc
rtpbin: fix a bug handling BUFFERING messages.
...
If a session exists but has no streams, set the min buffering percent to 0
since it means that we haven't received anything for that session yet.
2010-05-03 11:56:58 +02:00
Alessandro Decina
f6e9f359b9
rtpbin: when a stream is created, pause the jitterbuffer if rtpbin is buffering.
2010-05-03 11:51:37 +02:00
Alessandro Decina
38a5b08ef2
rtpbin: fix a bug calculating stream offsets.
2010-05-03 11:23:59 +02:00
Stefan Kost
d6e9af2a11
docs: do proper escaping for "%"
2010-04-08 18:05:46 +03:00
Stefan Kost
9967a4112b
rtpsession: remove prototype for non existing function
...
There is no function by that name anywhere.
2010-04-08 14:02:50 +03:00
Benjamin Otte
cccfeaa59c
gst_element_class_set_details => gst_element_class_set_details_simple
2010-03-18 14:32:00 +01:00
Benjamin Otte
1055aaa9cb
Add -Wredundant-decls warning flag
...
Also fix compile issues
2010-03-17 19:35:10 +01:00
Benjamin Otte
21f66635e8
Update for recent changes to common submodule
...
This just replaces every "$ERROR_CFLAGS" usage with a usage of
"$WARNING_CFLAGS $ERROR_CFLAGS" to get the same functionality as
previously.
Actually using that separation will happen later.
2010-03-10 21:53:51 +01:00
Olivier Crête
a6dfe96169
rtpsession: Make it possible to favor new sources in case of SSRC conflict
...
Add a "favor-new" property that tells the session to favor new sources when
there is a SSRC conflict. This is useful for SIP calls and other such cases
where a remote loop is extremely unlikely.
Fixes #607615
2010-03-10 11:21:19 +01:00
Olivier Crête
f336ea283f
rtpsession: Move SSRC conflicts lists into RTPSource
...
We will also need to track SSRC conflicts in remote sources.
See #607615
2010-03-10 11:21:18 +01:00
Wim Taymans
529f443a61
rtpsource: use payload size to estimate bitrate
...
Use the length of the payload for estimating the receiver bitrate so that it
matches the calculations done on the sender side. Together with the number of
packets one can scale the bitrate with the header overhead of the lower
transport.
2010-03-08 17:48:04 +01:00
Wim Taymans
c971d1a9ab
rtpsource: refactor bitrate estimation
...
Don't reuse the same variable we need for stats for the bitrate estimation
because we're updating it.
Refactor the bitrate estimation code so that both sender and receivers use the
same code path.
2010-03-08 17:48:00 +01:00
Tristan Matthews
a0a6d4ff3b
added bitrate estimation to receiver-side stats, fixes #611213
2010-03-08 17:47:55 +01:00
Sebastian Dröge
bcd06ea527
rtpjitterbuffer: Reset skew detection after instantiating the jitterbuffer
...
...not only when going to READY. This sets high_level and friends to
a more useful value.
2010-02-23 17:24:03 +01:00
Sebastian Dröge
0a12e69024
rtpjitterbuffer: Return 100 if high-level is 0 instead of dividing by zero
2010-02-23 17:20:02 +01:00
Tim-Philipp Müller
07fa73f199
docs: add Since: markers for new jitterbuffer properties
2010-02-19 12:13:07 +00:00
Wim Taymans
9d40d60960
rtpbin: remove use of ntp_ns_base
2010-02-15 21:36:29 +01:00
Wim Taymans
5a4ecc9da1
rtpbin: remove more ntpnstime and cleanups
...
Remove some code where we pass ntpnstime around, we can do most things with the
running_time just fine.
Rename a variable in the ArrivalStats struct so that it's clear that this is the
current system time.
2010-02-15 21:36:29 +01:00
Wim Taymans
74241e549f
rtpsource: use running_time for jitter
...
Use the running_time to calculate the jitter instead of the ntp time. Part of
the plan to get rid of ntpnsbase.
2010-02-15 21:36:29 +01:00
Wim Taymans
83cb1aecc8
rtpbin: change how NTP time is calculated in RTCP
...
Don't calculate the NTP time based on the running_time of the pipeline but from
the systemclock. This allows us to generate more accurate NTP timestamps in case
the systemclock is synchronized with NTP or similar.
2010-02-15 21:36:29 +01:00
Tim-Philipp Müller
63c86ac3d8
raw1394, matroska, rtpmanager: remove padding from structures
...
None of these element and class structures are in public headers,
so don't need padding.
2010-02-15 00:50:10 +00:00
Wim Taymans
7f08081016
jitterbuffer: don't resync to invalid timestamps
...
If we detect backward timestamps on the server, don't try to resync when we
don't have an input timestamp (such as when using RTSP over TCP) instead, do
nothing but assume the timestamp was ok, it will correct itself when time goes
forwards.
2010-02-12 19:32:27 +01:00
Wim Taymans
d344754f03
rtpbin: fix typo
2010-02-12 17:22:56 +01:00
Wim Taymans
772eca5aff
jitterbuffer: start out active and not buffering
...
There is no need to set the latency in the jittebuffer in _init, we will set
that later when going to PAUSED.
Set the jitterbuffer active and not buffering when starting.
2010-02-12 17:22:56 +01:00
Wim Taymans
8bbfd94c25
rtpbin: more buffering work
...
When deactivating jitterbuffers when the buffering starts, keep the current
percent of the jitterbuffer and also set the jitterbuffer in the buffering state
so that we know when it's filled again.
Add property to get the buffering percentage of the jitterbuffer.
2010-02-12 17:22:56 +01:00
Wim Taymans
e6e287cdcc
rtpjitterbuffer: adjust latency in buffer mode
...
When we are in buffer mode, adjust the buffering low/high thresholds based on
the total configured latency. If we don't and there is a huge queue or element
with a big latency downstream we might drain the complete queue immediately and
start buffering again.
2010-02-12 17:22:55 +01:00
Wim Taymans
ab73603031
jitterbuffer: add ts-offset to timestamp
...
Add the ts-offset to the buffer timestamp to get the final output timestamp of
the buffer.
2010-02-12 17:22:55 +01:00
Wim Taymans
74a3be350d
rtpbin: do more accurate buffer offsets
...
Return the next timestamp in the jitterbuffer.
Use the min-timestamp of the jitterbuffers to calculate an offset so that the
next timestamp is pushed with a timestamp equal to running_time.
Start producing timestamps from 0 in the buffering case too.
2010-02-12 17:22:55 +01:00
Wim Taymans
3efcc0fbc1
rtpbin: only start buffering when < 100%
...
Only start buffering when the percentage message is < 100 %.
2010-02-12 17:22:55 +01:00
Wim Taymans
0348ebe651
rtpbin: keep track of elapsed pause time
...
Keep track of the time we spend pausing the jitterbuffers when they were
buffering and distribute this elapsed time to the jitterbuffers.
Also keep the latency in nanosecond precision.
2010-02-12 17:22:54 +01:00
Wim Taymans
ecf6ed8fc1
jitterbuffer: keep track of offset
...
Keep track of an outgoing offset that we add to each outgoing buffer to
compensate for PAUSE when buffering.
Adjust the offset when activating.
2010-02-12 17:22:54 +01:00
Wim Taymans
048e5b6fbe
jitterbuffer: report level using high watermark
2010-02-12 17:22:54 +01:00
Wim Taymans
8d814f3782
rtpbin: pass running_time to jitterbuffer pause
...
Pass the current running time to the jitterbuffer when pausing or resuming so
that it calculate the right offsets.
Small cleanups and comments.
Set the default rtspsrc latency to 2 seconds.
2010-02-12 17:22:54 +01:00
Wim Taymans
bf697b12e3
rtpbin: add some comments
2010-02-12 17:22:53 +01:00
Wim Taymans
20a27a545a
rtpbin: more buffering updates
...
Add signal to pause the jitterbuffer. This will be emitted from gstrtpbin when
one of the jitterbuffers is buffering.
Make rtpbin collect the buffering messages and post a new buffering message with
the min value.
Remove the stats callback from jitterbuffer but pass a percent integer to
functions that affect the buffering state of the jitterbuffer. This allows us
then to post buffering messages from outside of the jitterbuffer lock.
2010-02-12 17:22:53 +01:00
Wim Taymans
a5b9d3f917
rtpbin: propagate buffer-mode property
...
Propagate buffer-mode property to the jitterbuffers.
Intercept BUFFERING messages in rtpbin
2010-02-12 17:22:53 +01:00
Wim Taymans
d3db9574a9
jitterbuffer: do more buffering implementation
...
Add callback for buffering stats.
Configure the latency in the jitterbuffer instead of passing it with _insert.
Calculate buffering levels when pushing and popping
Post buffering messages.
2010-02-12 17:22:52 +01:00
Wim Taymans
aeacbfed3e
jitterbuffer: flesh out buffering mode some more
...
Add a buffering state to the jitterbuffer and wait until buffering ends before
pushing out packets.
2010-02-12 17:22:52 +01:00
Wim Taymans
56b29c9a6b
jitterbuffer: hook up the mode property
...
Expose a mode property on the jitterbuffer.
Fix the case where timestamps are -1 in the check for outgoing timestamps.
2010-02-12 17:22:52 +01:00
Wim Taymans
be4517a6b8
jitterbuffer: add buffering mode options
...
Add getters and setters for different buffering modes that the jitterbuffer will
support. Default to the current slave mode.
2010-02-12 17:22:52 +01:00
Wim Taymans
99a581215f
jitterbuffer: add some more debug info
2010-02-12 13:53:57 +01:00
Wim Taymans
05418f1687
rtpbin: avoid some structure copies
...
Don't make copied in the getter and setter for SDES in the RTPSource. This
avoids a couple of copies of the SDES structure when generating RTCP
packets.
2009-12-22 22:27:21 +01:00
Pascal Buhler
c3448f978e
rtpmanager: improve SDES handling
...
Store SDES internally as a struct to support multiple PRIV values.
Include all values set in SDES struct when sending RTCP SDES.
2009-12-22 21:43:25 +01:00
Wim Taymans
9734699788
rtpbin: add property to remove pads automatically
...
Add a property called autoremove to automatically remove the pads of sources
that timed out.
Fixes #554839
2009-12-21 15:07:44 +01:00
Wim Taymans
c611bbaa8e
ssrcdemux: fix comparison
...
A NULL means no pad was found.
2009-12-21 15:07:34 +01:00
Aurelien Grimaud
07f27f0efd
rtpsession: avoid buffer ref/unref pairs for CSRCs
...
We ref the buffer before pushing it downstream in order to get the CSRCs of it
after pushing. This causes performance problems when downstream elements want to
change the metadata because the buffer needs to be subbuffered.
Instead, read and store the CSRCs of the buffer in an array before pushing it
and process the array after pushing the buffer. This allows us to remove the
ref/unref pair.
Fixes #603376
2009-11-30 15:59:50 +01:00
Wim Taymans
8070ae967b
jitterbuffer: avoid using wrong clock-rate
...
Check for a valid clock-rate before attempting to estimate the npt
stop time.
2009-11-25 10:38:23 -06:00
Wim Taymans
5682e2bf01
rtpbin: fix typo in comments
2009-11-25 10:37:30 -06:00
Stefan Kost
9ee0815e85
docs: more links and better short description
...
Fix spelling of GstRtpSsrcDemux to get it linked. Add more links. Change
the short description to be more meaningful.
2009-11-20 11:25:49 +02:00
Wim Taymans
f52859432f
jitterbuffer: release lock before emiting signals
...
Release the jbuf lock before emiting the request-pt-map signal to avoid
deadlocks. We also need to catch the shutdown case when locking again.
Fixes #593354
2009-11-18 10:50:44 +01:00
Stefan Kost
e43eb89449
tests: add a jitterbuffer test
...
Tests pushing a few buffers in various order and asserting the order sent by the
jitterbuffer. Contains two disabled tests that need more work.
2009-10-22 13:35:57 +03:00
Stefan Kost
6904e46ef2
build: use gst-glib-gen.mak to fix the glib build rules.
...
The build rules in glib-gen.mak were using pattern rules in a non save way.
2009-10-16 11:53:38 +03:00
Håvard Graff
58b9de4cca
rtpptdemux: only forward the lost-event to the last seen pt-number
...
forward all events on all pads except for the PacketLost event, which we want to
forward to the last seen pt pad.
Fixes #598377
2009-10-14 12:28:55 +02:00
Stefan Kost
e0cdd879b4
build: fprintf, sprintf, sscanf need stdio.h
2009-10-07 14:03:20 +03:00
Wim Taymans
0040d01265
rtpbin: use locking around the sessions
2009-10-05 16:07:24 +02:00