Commit graph

13 commits

Author SHA1 Message Date
Mathieu Duponchelle
8467939538 rtpbasedepayload: condition the sending of gap events
The default implementation for packet loss handling previously
always sent a gap event.

While this is correct as long as we know the packet that was
lost was actually a media packet, with ULPFEC this becomes
a bit more complicated, as we do not know whether the packet
that was lost was a FEC packet, in which case it is better
to not actually send any gap events in the default implementation.

Some payloaders can be more clever about, for example VP8 can
use the picture-id, and the M and S bits to determine whether
the missing packet was inside an encoded frame or outside,
and thus whether if it was a media packet or a FEC packet,
which is why ulpfecdec still lets these lost events go through,
though stripping them of their seqnum, and appending a new
"might-have-been-fec" field to them.

This is all a bit terrible, but necessary to have ULPFEC
integrate properly with the rest of our RTP stack.

https://bugzilla.gnome.org/show_bug.cgi?id=794909
2018-04-19 16:39:06 +02:00
Tim-Philipp Müller
3f184c3abc tests: include config.h and don't include unix headers
In many cases the unistd.h includes weren't actually needed.

Don't build tests that need it on windows with MSVC
(multifdsink, multisocketsink, pipelines/tcp).

Preparation for making tests work on Windows with MSVC.
2018-01-16 18:14:59 +00:00
Mikhail Fludkov
7a206336dd rtpbasedepayload: look at ssrc before sequence numbers
Doing so prevents us dropping buffers in the rare, but possible, situations,
when the stream changes SSRC and new sequence numbers does not differ
much from the last sequence number from previous SSRC. For example:
ssrc - 0xaaaa 101,102,103,104 ssrc - 0xbbbb 102, 103, 104, 105...
In the scenario above we don't want to drop the first 3 packets of
0xbbbb stream.

https://bugzilla.gnome.org/show_bug.cgi?id=764459
2016-04-03 11:49:16 +03:00
Vineeth TM
44b70ca3a1 base: use new gst_element_class_add_static_pad_template()
https://bugzilla.gnome.org/show_bug.cgi?id=763075
2016-03-24 14:25:41 +02:00
Tim-Philipp Müller
29cd7966b7 tests: rtpbasedepayload: add test for seqnum gap discont setting
The problem was triggered only when the input buffers were not
writable, so add extra ref to test this code path.
2015-12-11 10:40:49 +00:00
Hyunjun Ko
5d90a28d5f tests: rtpbasedepayload: fix crash in test when passing varargs
Need to pass 64 bits where 64 bits are expected.

https://bugzilla.gnome.org/show_bug.cgi?id=748027
2015-04-17 19:47:09 +01:00
Nicolas Dufresne
b7facbaf22 basedepay: Handle initial gaps and no clock-base
When generating segment, we can't assume the first buffer is actually
the first expected one. If it's not, we need to adjust the segment to
start a bit before.

Additionally, we if don't know when the stream is suppose to have
started (no clock-base in caps), it means we need to keep everything in
running time and only rely on jitterbuffer to synchronize.

https://bugzilla.gnome.org/show_bug.cgi?id=635701
2015-03-27 19:03:41 -04:00
Nicolas Dufresne
802ad73103 basedepayload: Fix generated segment
This fixes playback position in RTSP.

https://bugzilla.gnome.org/show_bug.cgi?id=635701
2015-03-26 17:43:47 -04:00
Tim-Philipp Müller
c53ba4beeb Fix double semicolons 2015-03-10 09:27:08 +00:00
Tim-Philipp Müller
2f7af2d41b tests: rtpbasepayload: fix indentation 2014-12-12 15:09:55 +00:00
Edward Hervey
2ca269ac6b check: Fix include path of rtp checks
Fixes make distcheck
2014-07-31 16:11:25 +02:00
Tim-Philipp Müller
8f8f1f9de1 tests: fix vararg handling in rtpbasedepayload unit test
Makes it pass on 32-bit systems.
2014-06-23 01:02:22 +01:00
Sebastian Rasmussen
ba9e8f0797 tests: Refactor RTP basepayloading test into pay/depay parts
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=723328
2014-02-24 12:12:18 +01:00