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
Olivier Crête
79a9564c68
rtpsession: Send FIR requests in response to key unit requests with all-headers=TRUE
...
https://bugzilla.gnome.org/show_bug.cgi?id=658419
2011-11-14 12:26:27 +01:00
Olivier Crête
12a6b9613b
rtpsession: Put the PLI requests in each RTPSource
...
Also refactor a bit and put all the keyframe request code in one
place inside rtpsession.c
https://bugzilla.gnome.org/show_bug.cgi?id=658419
2011-11-14 12:26:27 +01:00
Olivier Crête
59c028a4ce
rtpsession: Hack to FIR because Google doesn't set the sender ssrc correctly
...
https://bugzilla.gnome.org/show_bug.cgi?id=658419
2011-11-14 12:26:27 +01:00
Olivier Crête
0ad78db0a3
rtpsession: Process received Full Intra Requests
...
Process FIR requests according to RFC 5104
https://bugzilla.gnome.org/show_bug.cgi?id=658419
2011-11-14 12:26:27 +01: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
afd26f0078
rtpsession: trigger reconsideration if rtcp interval set
2011-09-19 11:51:50 +02:00
Olivier Crête
b2e8362767
rtpsession: Initialise the last_keyframe_request variable
2011-09-02 19:24:46 -04:00
Mark Nauwelaerts
c03648c8bb
rtpsession: properly init rtcp_min_interval
2011-07-29 12:08:42 +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
Olivier Crête
581a30d892
rtpsession: The signal has 5 arguments, not 4
2011-06-20 16:47:36 -04: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
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
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
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
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
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
Wim Taymans
8fa5ddab9a
rtpsession: remember last sent RB values.
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
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
Stefan Kost
d8167e3071
various (gst): add a missing G_PARAM_STATIC_STRINGS flags
2010-10-13 18:00:28 +03: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
Wim Taymans
8337c89c74
rtpsession: fix compilation
2010-09-24 14:10:26 +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
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
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
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
Wim Taymans
50f26c671b
rtpsession: fix return value
2010-05-07 19:06:35 +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