Commit graph

15 commits

Author SHA1 Message Date
Sebastian Dröge
e9a0307b94 rtph26[45]pay: Change default aggregate-mode to "none" for backwards compatibility
We didn't aggregate at all in previous versions and there are apparently
various RTP implementations that don't handle aggregation well at all.

As part of this also document that for RTSP it is recommended to keep it
set to "none" while for WebRTC it should be set to "zero-latency".

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/749

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/692>
2020-08-08 10:08:31 +03:00
Ognyan Tonchev
a78a74bff0 rtph26x: Use gst_memory_map() instead of gst_buffer_map() in avc mode
gst_buffer_map () results in memcopying when a GstBuffer contains
more than one GstMemory and when AVC (length-prefixed) alignment is used.
This has quite an impact on performance on systems with limited amount of
resources. With this patch the whole GstBuffer will not be mapped at once,
instead each individual GstMemory will be iterated and mapped separately.
2020-03-06 10:44:16 +00:00
Olivier Crête
97f2fb4cc8 rtph26xpay: Wait until there is a VCL or suffix NAL to send
With unit tests.
2019-07-03 19:05:29 +00:00
Olivier Crête
42d775dfbe rtph264pay test: Add unit tests for aggregation 2019-07-03 19:05:29 +00:00
Olivier Crête
cede4f993d rtph264pay: Default to not adding latency when aggregating
Send the bundle as soon as there is one VCL unit in the packet at
the end of an incoming buffer.

The DELTA_UNIT flag is not reliable, so ignore it.
2019-07-03 19:05:29 +00:00
Jan Alexander Steffens (heftig)
b46dab13d2 rtph264pay: Support STAP-A bundling
Add a new property "do-aggregate"* to the H.264 RTP payloader which
enables STAP-A aggregation as per [RFC-6184][1]. With aggregation enabled,
packets are bundled instead of sent immediately, up until the MTU size.
Bundles also end at access unit boundaries or when packets have to be
fragmented.

*: The property-name is kept generic since it might apply more widely,
   e.g. STAP-B or MTAP.
[1]: https://tools.ietf.org/html/rfc6184#section-5.7

Closes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/434
2019-07-03 19:05:29 +00:00
Nirbheek Chauhan
062f2c46fa misc: Fix warnings on Cerbero's mingw (gcc 4.7)
error: this decimal constant is unsigned only in ISO C90 [-Werror]
2019-02-06 14:28:54 +00:00
Nicolas Dufresne
cf3da6a443 test: rtph264depay: Check handling of STAP-A marker
Related to #557
2019-01-31 19:30:14 +00:00
Jan Alexander Steffens (heftig)
791711f9be test: rtph264pay: Verify we only mark the last fragment 2019-01-09 15:36:40 +00:00
Nicolas Dufresne
a0c58a77dc test: rtph264depay: Check the marker is converted to flag 2018-12-18 13:39:54 -05:00
Nicolas Dufresne
6b89144c9c test: rtph264depay: Check that EOS drains the depayloaded
In AU mode, the depayloader may have accumulated NALs, test that
these NALs are drained and not dropped.
2018-12-18 13:39:54 -05:00
Nicolas Dufresne
aa7e78b8e4 test: rtph264pay: Add tests for marker bit
Test that marker bit is transferred when input buffer has the
marker flag set but also that it's set whenever the payloader
receives complete AU.
2018-12-18 13:39:54 -05:00
Nicolas Dufresne
73ee9cdea2 test: rtph264pay: Verify slices timestamp
This test make sure that timestamps are properly transfered
to each NALU.
2018-12-18 13:39:54 -05:00
Nicolas Dufresne
cd09a3103f test: rtph264pay: Add reserved nals test 2018-12-18 13:39:54 -05:00
Tim-Philipp Müller
a9e57f3608 tests: rtph264depay: add test for using downstream memory allocator 2017-11-23 09:36:00 +01:00