Edward Hervey
d656fe8d54
jitterbuffer: Don't create lost events if we don't need them
...
When "do-lost" is set to FALSE we don't use/send the lost events.
In that case, don't create them to start with :)
https://bugzilla.gnome.org/show_bug.cgi?id=762988
2016-04-07 10:13:56 +02:00
Edward Hervey
cf866a8469
jitterbuffer: Add tracing of lock usage
...
Helps with debugging lock usage
https://bugzilla.gnome.org/show_bug.cgi?id=762988
2016-04-07 10:06:18 +02:00
Sebastian Dröge
df247f091c
rtpjitterbuffer: Add RFC7273 media clock handling
...
https://bugzilla.gnome.org/show_bug.cgi?id=762259
2016-04-03 11:24:34 +03:00
Stian Selnes
4c0e509328
rtpsession: Add new signal 'on-app-rtcp'
...
Similar to the 'on-feedback-rtcp' signal, but emitted for RTCP APP
packets.
https://bugzilla.gnome.org/show_bug.cgi?id=762217
2016-03-30 15:42:01 +03:00
Minjae Kim
eb13a1d607
rtpmanager: Set to initial value for 'ntpns' in get_current_times()
...
Initialize "ntpns" variable to -1 as the OE compiler for some reason doesn't
realize that the variable is set in all code paths.
https://bugzilla.gnome.org/show_bug.cgi?id=764119
2016-03-29 10:21:07 +03:00
Vineeth TM
1071309870
good: use new gst_element_class_add_static_pad_template()
...
https://bugzilla.gnome.org/show_bug.cgi?id=763076
2016-03-24 14:32:20 +02:00
Nirbheek Chauhan
78847d03cf
rtpmanager: Some comment and documentation clarifications/fixes
2016-03-15 09:32:47 +00:00
Sebastian Dröge
b6e10be278
Revert "rtpjitterbuffer: don't forget to unlock mutex in error code path in two cases"
...
This reverts commit a7fb7b5359
.
The mutex is taken by the caller, we should keep it locked when returning so
the caller can unlock it again.
2016-03-02 13:13:24 +02:00
Tim-Philipp Müller
a7fb7b5359
rtpjitterbuffer: don't forget to unlock mutex in error code path in two cases
2016-03-01 14:14:36 +00:00
Stian Selnes
5a2cc41398
rtpmanager: Don't warn for duplicate/reordered packets
...
This is a normal scenario and should not be a warning.
https://bugzilla.gnome.org/show_bug.cgi?id=762208
2016-02-21 22:37:57 +00:00
Miguel París Díaz
92affe2dec
rtpbin: add "get-session" signal
...
This gets the GstRTPSession element, as compared to the RTPSession object
that is returned by get-internal-session.
https://bugzilla.gnome.org/show_bug.cgi?id=759293
2016-02-16 13:39:52 +02:00
Sebastian Dröge
366bbffcd8
Revert "WIP: rtpjitterbuffer: Add RFC7273 media clock handling"
...
This reverts commit 271501f657
.
It wasn't meant to be pushed yet as the commit message indicates.
2016-01-18 11:30:45 +02:00
Sebastian Dröge
271501f657
WIP: rtpjitterbuffer: Add RFC7273 media clock handling
2016-01-18 08:58:59 +02:00
Sebastian Dröge
e4b2360e6e
rtpjitterbuffer: Fix packet dropping after a big discont
...
We would queue 5 consective packets before considering a reset and a proper
discont here. Instead of expecting the next output packet to have the current
seqnum (i.e. the fifth), expect it to have the first seqnum. Otherwise we're
going to drop all queued up packets.
2015-12-09 12:24:09 +02:00
Sebastian Dröge
b13b80ea39
rtpsession: Add a warning if an empty RTCP packet is tried to be sent
...
https://bugzilla.gnome.org/show_bug.cgi?id=759119
2015-12-07 14:41:51 +02:00
Alessandro Decina
dd4df554d5
rtpmanager: rtpsession: don't send empty RTCP packets
...
generate_rtcp can produce empty packets when reduced size RTCP is turned on.
Skip them since it doesn't make sense to push them and they cause errors with
elements that expect RTCP packets to contain data (like srtpenc).
2015-11-25 14:54:58 +11:00
Arun Raghavan
7e22ea5d5a
rtpmanager: Document properties that are expressed in bits per second
...
This changed in 928cd110bc
and
73c0c2920f
but was not documented.
https://bugzilla.gnome.org/show_bug.cgi?id=747863
2015-11-05 09:48:59 +05:30
Arun Raghavan
e9692e4207
rtpmanager: Trivial gst-indent fixes
2015-11-05 09:48:59 +05:30
Luis de Bethencourt
9fee2c7c9f
rtpmanager: switch G_GINT64_FORMAT for GST_STIME_ARGS
...
No need to use G_GINT64_FORMAT for potentially negative values of
GstClockTimeDiff. Since 1.6 these can be handled with GST_STIME_ARGS.
Plus it creates more readable values in the logs.
https://bugzilla.gnome.org/show_bug.cgi?id=757480
2015-11-03 14:47:00 +00:00
Luis de Bethencourt
d4f094f587
rtpmanager: use GST_STIME_ARGS for GstClockTimeDiff
...
No need to manually handle negative values of diff, GST_STIME_ARGS does
exactly this.
2015-11-03 14:26:32 +00:00
Mischa Spiegelmock
cdd7091c1c
docs: Minor fixes in various places
...
https://bugzilla.gnome.org/show_bug.cgi?id=756996
2015-10-23 10:42:19 +03:00
Stian Selnes
91a78053c7
rtpmanager: Add 'source-stats' to stats and notify
...
Add statitics from each rtp source to the rtp session property.
'source-stats' is a GValueArray where each element is a GstStructure of
stats for one rtp source.
The availability of new stats is signaled via g_object_notify.
https://bugzilla.gnome.org/show_bug.cgi?id=752669
2015-10-11 10:57:09 +01:00
Sebastian Dröge
f09da189aa
rtpsession: Implement sending of reduced size RTCP packets
...
https://bugzilla.gnome.org/show_bug.cgi?id=750456
2015-10-11 10:47:47 +01:00
Sebastian Dröge
2be5416e4a
rtpbin: Add missing break
2015-10-07 23:23:45 +01:00
Miguel París Díaz
f321bfeaf4
rtpmanager: Take into account packet rate for max-dropout and max-misorder calculations
...
https://bugzilla.gnome.org/show_bug.cgi?id=751311
2015-10-07 12:07:18 +01:00
Miguel París Díaz
4c96094fbb
rtpmanager: add "max-dropout-time" and "max-misorder-time" props
...
https://bugzilla.gnome.org/show_bug.cgi?id=751311
2015-10-07 12:06:47 +01:00
Olivier Crête
58073eaa7a
rtpmux: Use default upstream event handling
...
https://bugzilla.gnome.org/show_bug.cgi?id=752694
2015-10-02 17:39:10 -04:00
Olivier Crête
43c213fc5d
rtpmux: As 0xFFFFFFFF is a valid ssrc, check if it has been set
...
https://bugzilla.gnome.org/show_bug.cgi?id=752694
2015-10-02 17:39:10 -04:00
Havard Graff
d5e26ab909
gstrtpmux: allow the ssrc-property to decide ssrc on outgoing buffers
...
By not doing this, the muxer is not effectively a rtpmuxer, rather a
funnel, since it should be a single stream that exists the muxer.
If not specified, take the first ssrc seen on a sinkpad, allowing upstream
to decide ssrc in "passthrough" with only one sinkpad.
Also, let downstream ssrc overrule internal configured one
We hence has the following order for determining the ssrc used by
rtpmux:
0. Suggestion from GstRTPCollision event
1. Downstream caps
2. ssrc-Property
3. (First) upstream caps containing ssrc
4. Randomly generated
https://bugzilla.gnome.org/show_bug.cgi?id=752694
2015-10-02 17:39:06 -04:00
Miguel París Díaz
bf0e4f65b4
rtpstats: add utility for calculating RTP packet rate
2015-10-02 19:25:27 +01:00
Hyunjun Ko
b814d7ed25
rtpsource: doesn't handle probation and rtp gap in case of sender
...
https://bugzilla.gnome.org/show_bug.cgi?id=754548
2015-10-02 16:42:36 +03:00
Hyunjun Ko
2b1f52755d
rtpmanager: add new on-new-sender-ssrc, on-sender-ssrc-active signals
...
Allows for applications to get internal source's RTP statistics.
(eg. sender sources for a server/client)
https://bugzilla.gnome.org/show_bug.cgi?id=746747
2015-10-02 16:39:29 +03:00
Jan Schmidt
866c86dd37
Fix some compiler warnings when building with G_DISABLE_ASSERT
...
Touches rtpmanager and gdkpixbufsink
2015-09-26 22:18:26 +10:00
Sebastian Dröge
7046852e7d
gst: Don't use deprecated gst_segment_to_position()
2015-09-26 00:12:46 +02:00
Sebastian Dröge
01c0f8723f
rtpbin/rtpjitterbuffer/rtspsrc: Add property to set maximum ms between RTCP SR RTP time and last observed RTP time
...
https://bugzilla.gnome.org/show_bug.cgi?id=755125
2015-09-25 23:55:05 +02:00
Sebastian Dröge
a0ae6b5b5a
rtpbin/session: Allow RTCP sync to happen based on capture time or send time
...
Send time is the previous behaviour and the default, but there are use cases
where you want to synchronize based on the capture time.
https://bugzilla.gnome.org/show_bug.cgi?id=755125
2015-09-25 23:55:00 +02:00
Mark Nauwelaerts
b7b244f356
rtpjitterbuffer: reset just a bit more upon flush_stop
2015-09-13 15:42:06 +02:00
Mark Nauwelaerts
1e7a3473fd
rtpjitterbuffer: remove dead struct member
2015-09-13 15:41:03 +02:00
Sebastian Dröge
68a9209408
rtpjitterbuffer: Keep the DTS estimate if we got no DTS after a jitterbuffer reset
...
Otherwise we will just output buffers without timestamps after a reset if no
timestamps are provided by upstream, e.g. when using RTSP over TCP.
https://bugzilla.gnome.org/show_bug.cgi?id=749536
2015-08-13 16:45:16 +02:00
Hyunjun Ko
b0d6020862
rtprtxsend: print valid type where guint32 is expected
...
https://bugzilla.gnome.org/show_bug.cgi?id=746445
2015-08-06 01:39:43 -03:00
Havard Graff
764bbf99a8
rtpmux: handle different ssrc's on sinkpads
...
Do this by not putting the ssrc from the src pads in the caps used to
probe other sinkpads, and then intersecting with it later.
https://bugzilla.gnome.org/show_bug.cgi?id=752491
2015-07-16 16:46:11 -04:00
Sebastian Dröge
582ade2c42
rtpjitterbuffer: Fix indention
2015-07-10 00:13:32 +03:00
Sebastian Dröge
ae8acc0973
rtpjitterbuffer: Always estimate DTS from the current clock time
...
Estimating it from the RTP time will give us the PTS, so in cases of PTS!=DTS
we would produce wrong DTS. As now the estimated DTS is based on the clock,
don't store it in the jitterbuffer items as it would otherwise be used in the
skew calculations and would influence the results. We only really need the DTS
for timer calculations.
https://bugzilla.gnome.org/show_bug.cgi?id=749536
2015-07-10 00:13:22 +03:00
Sebastian Dröge
6e7c724afa
rtpjitterbuffer: Calculate DTS from the clock if we had none for the first packet after a reset
...
https://bugzilla.gnome.org/show_bug.cgi?id=749536
2015-07-08 23:19:52 +03:00
Havard Graff
ddd032f56b
rtpjitterbuffer: fix gap-time calculation and remove "late"
...
The amount of time that is completely expired and not worth waiting for,
is the duration of the packets in the gap (gap * duration) - the
latency (size) of the jitterbuffer (priv->latency_ns). This is the duration
that we make a "multi-lost" packet for.
The "late" concept made some sense in 0.10 as it reflected that a buffer
coming in had not been waited for at all, but had a timestamp that was
outside the jitterbuffer to wait for. With the rewrite of the waiting
(timeout) mechanism in 1.0, this no longer makes any sense, and the
variable no longer reflects anything meaningful (num > 0 is useless,
the duration is what matters)
Fixed up the tests that had been slightly modified in 1.0 to allow faulty
behavior to sneak in, and port some of them to use GstHarness.
https://bugzilla.gnome.org/show_bug.cgi?id=738363
2015-07-08 23:18:48 +03:00
Stian Selnes
40524e5a49
Revert "rtpjitterbuffer: Fix expected_dts calc in calculate_expected"
...
This reverts commit 05bd708fc5
.
The reverted patch is wrong and introduces a regression because there
may still be time to receive some of the packets included in the gap
if they are reordered.
2015-07-08 23:18:48 +03:00
Sebastian Dröge
4e23481d9f
rtpjitterbuffer: Calculate receive time if we don't have any
...
This is required to properly schedule packet loss timers and make
sure all our calculations work properly.
https://bugzilla.gnome.org/show_bug.cgi?id=749536
2015-07-08 17:02:05 +03:00
Sebastian Dröge
243730ced4
rtpjitterbuffer: Handle seqnum gaps in TCP streams without erroring out or overflowing calculations
...
That is, handle DTS==GST_CLOCK_TIME_NONE correctly.
https://bugzilla.gnome.org/show_bug.cgi?id=749536
2015-07-08 15:15:00 +03:00
Stefan Sauer
12930c2f8c
docs: fix "Symbol name not found at the start of the comment block"
...
Add symbols or change comment into a regular comment.
2015-07-07 17:12:02 +02:00
Miguel París Díaz
5ae672fd22
rtpjitterbuffer: Consider timers len to compare with RTP_MAX_DROPOUT
...
When there are a lot of small gaps, we can consider that there is
a big gap (too losses) to reset the buffer.
https://bugzilla.gnome.org/show_bug.cgi?id=751636
2015-07-02 18:38:46 +02:00