Jan Schmidt
64133b40a7
rtpmp4gdepay: Set duration on outgoing buffers
...
If we have constant duration buffers, set the duration on
outgoing buffers, like rtpmp4adepay does. This fixes
problems with (for example) muxers like mp4mux not writing
the duration of the final sample into the index.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6878 >
2024-05-20 15:24:32 +00:00
Tim-Philipp Müller
eec64e372b
rtph264depay: fix FU-B handling
...
Skip extra 16-bit DON in FU-B header.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/806
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6607 >
2024-04-29 12:21:52 +00:00
Tim-Philipp Müller
b1a45b527a
rtph264depay: minor refactoring of FU handling code
...
Make code easier to follow, and prepare for next commit.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6607 >
2024-04-29 12:21:52 +00:00
Jan Schmidt
351936aeac
rtpmp4adepay: Set duration on outgoing buffers
...
If we can calculate timestamps for buffers, then set the duration
on outgoing buffers based on the number of samples depayloaded.
This can fix the muxing to mp4, where otherwise the last packet
in a muxed file will have 0 duration in the mp4 file.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6447 >
2024-03-27 10:53:38 +00:00
Mathieu Duponchelle
519546aea3
rtpgstpay: flush on EOS
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5173 >
2024-03-07 14:02:33 +00:00
Sebastian Dröge
b88d69b722
rtpgstpay: Delay pushing of event packets until the next buffer
...
And also re-timestamp them with the current buffer's PTS.
Not doing so keeps the timestamps of event packets as
GST_CLOCK_TIME_NONE or the timestamp of the previous buffer, both of
which are bogus.
Making sure that (especially) the first packet has a valid timestamp
allows putting e.g. the NTP timestamp RTP header extension on it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5173 >
2024-03-07 14:02:33 +00:00
Tim-Philipp Müller
0a6948ee20
rtppassthroughpay: fix critical in gst-inspect
...
gst_segment_to_running_time() will fail noisily
if the segment has not been initialised yet.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6151 >
2024-02-21 11:25:10 +00:00
Jochen Henneberg
5d1d0cf9a5
rtpmp4gdepay: Enabled header extension aggregation
...
Because this depayloader may build several output buffers within one
process run we push them all into a GstBufferList and push them out at
once to make sure that each buffer gets notified about each header
extension.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5378 >
2024-02-19 11:23:17 +00:00
Jochen Henneberg
75849c63c8
rtpsbcdepay: Enabled header extension aggregation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5378 >
2024-02-19 11:23:17 +00:00
Jochen Henneberg
3fffcd021a
rtpvorbisdepay: Enabled header extension aggregation
...
Because this depayloader may build several output buffers within one
process run we push them all into a GstBufferList and push them out at
once to make sure that each buffer gets notified about each header
extension.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5378 >
2024-02-19 11:23:17 +00:00
Jochen Henneberg
e1e7421982
rtpmp4vdepay: Enabled header extension aggregation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5378 >
2024-02-19 11:23:17 +00:00
Jochen Henneberg
334ceaca21
rtptheoradepay: Enabled header extension aggregation
...
Because this depayloader may build several output buffers within one
process run we push them all into a GstBufferList and push them out at
once to make sure that each buffer gets notified about each header
extension.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5378 >
2024-02-19 11:23:17 +00:00
Jochen Henneberg
0a4918a509
rtpsv3vdepay: Enabled header extension aggregation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5378 >
2024-02-19 11:23:17 +00:00
Jochen Henneberg
d810049f01
rtpmp4adepay: Enabled header extension aggregation
...
Because this depayloader may build several output buffers within one process
run we push them all into a GstBufferList and push them out at once to
make sure that each buffer gets notified about each header extension.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5378 >
2024-02-19 11:23:17 +00:00
Jochen Henneberg
90b5d2eb93
rtpklvdepay: Enabled header extension aggregation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5378 >
2024-02-19 11:23:17 +00:00
Jochen Henneberg
2c3f169ebb
rtpjpegdepay: Enabled header extension aggregation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5378 >
2024-02-19 11:23:16 +00:00
Jochen Henneberg
460813f7ee
rtpj2kdepay: Enabled header extension aggregation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5378 >
2024-02-19 11:23:16 +00:00
Jochen Henneberg
ae3a00abd2
rtph263pdepay: Enabled header extension aggregation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5378 >
2024-02-19 11:23:16 +00:00
Jochen Henneberg
4fd4c240e0
rtph263depay: Enabled header extensions aggregation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5378 >
2024-02-19 11:23:16 +00:00
Jochen Henneberg
ae5bdaa7e1
rtph261depay: Enabled header extension aggregation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5378 >
2024-02-19 11:23:16 +00:00
Sebastian Dröge
499474a76d
Revert "rtpvp8pay: Use GstBitReader instead of dboolhuff implementation from libvpx"
...
This reverts commit b730e7a1b2
.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3300
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6116 >
2024-02-14 15:45:24 +00:00
Sebastian Dröge
b730e7a1b2
rtpvp8pay: Use GstBitReader instead of dboolhuff implementation from libvpx
...
All compressed frame header values that are read as part of the
payloader are encoded as bits with 50:50 probability, and as such are
just the plain bits as they are.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5810 >
2024-01-31 16:52:28 +00:00
Tim-Philipp Müller
d415816cb1
rtpvrawdepay: only announce supported formats in sink template
...
For most video formats we currently just assume that they
have a depth of 8 bits, whilst advertising that we can
handle 8/10/12/16 bit depth.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5866 >
2023-12-25 19:00:18 +01:00
Sebastian Dröge
c9c26eab26
rtpvp8pay: Also set partition IDs in the packets if meta exists but without temporal_scalability
...
Encoders will add the meta to every single buffer, but we only cannot set
partition IDs properly when the meta has temporal_scalability set
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5814 >
2023-12-21 11:26:49 +00:00
Arun Raghavan
ee903a5afd
rtp: Fix incorrect RTP channel order lookup by name
...
The g_ascii_strcasecmp() logic is inverted, since it returns 0 on equality.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5815 >
2023-12-15 15:21:20 -05:00
Sebastian Dröge
14b94ea00b
rtpvp9pay: Don't include unused dboolhuff.h header
...
It's only used by the VP8 payloader.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5784 >
2023-12-09 11:17:15 +00:00
Robin Gustavsson
38a8411bdf
rtpklvdepay: Recover after invalid fragmented KLV unit
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4816 >
2023-11-17 09:01:10 +00:00
Olivier Crête
c2a357c867
rtpopusdepay: set resync flag
...
- Set re-sync flag on output buffer when rtp had the marker flag set.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5529 >
2023-11-10 21:45:13 +00:00
Tim-Philipp Müller
bce1d121ba
rtpac3depay: should output audio/x-ac3 not audio/ac3
...
audio/x-ac3 is the canonical media format in GStreamer.
audio/ac3 is sometimes accepted as input (e.g. in rtpac3pay
or ac3parse), but shouldn't be output.
Fixes #3038 .
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5472 >
2023-10-19 13:27:58 +00:00
Xavier Claessens
0ab48250a9
GstCustomMeta: Use simplified API where possible
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5385 >
2023-09-27 18:46:34 +00:00
Jonas K Danielsson
749652e60c
rtp: Add rtppassthroughpay element
...
This elements pass RTP packets along unchanged and appear as a RTP
payloader element.
This is useful, for example when using the gstreamer-rtsp-server
library, in the case where you are receiving RTP packets from a
different source and want to serve them over RTSP. Since the
gst-rtsp-server library expect the element marked as payX to be a RTP
payloader element and assumes certain properties are available.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5204 >
2023-08-22 14:01:09 +00:00
Sebastian Dröge
09045da073
rtpgstpay: Enable hdrext aggregation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4979 >
2023-08-15 07:12:03 +02:00
Jochen Henneberg
a97d3acb90
rtp/vp8depay+vp9depay: Enable hdrext aggregation for VP8 and VP9
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4979 >
2023-08-15 07:12:03 +02:00
Jochen Henneberg
2673a66e60
rtp/h264depay+h265depay: Enable hdrext aggregation for H264 and H265
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4979 >
2023-08-15 07:12:03 +02:00
Peter Stensson
33fb3bfd60
rtpvp9pay: Only mark first outgoing packet as non delta-unit
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4937 >
2023-06-29 09:48:41 +00:00
Peter Stensson
af43648bdf
rtpvp8pay: Only mark first outgoing packet as non delta-unit
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4937 >
2023-06-29 09:48:41 +00:00
Peter Stensson
b40b4ffb81
rtph265pay: Only mark first NAL as non delta-unit
...
When the input buffer contained multiple NAL's the second one would keep
the non delta-unit flag for a key frame.
The delta-unit flag will now be set per NAL when preparing the buffer
list to payload.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4937 >
2023-06-29 09:48:41 +00:00
Camilo Celis Guzman
0cee3cd833
rtpvp8pay: rtpvp9pay: access picture_id property atomically
...
Atomically set and get the picture_id. This changeset only atomically gets
the picture-id when such property is queried on the element, on every other
place where it is accessed internally it is accessed directly.
This is because there is no MT scenario where we would be modifying this value
and reading it internally in parallel.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4530 >
2023-05-05 07:45:19 +00:00
Camilo Celis Guzman
e4d8cda9a1
rtpvp8pay, rtpvp9pay: increment PictureID on FLUSH_START
...
In recent versions of Chrome (M106) a change on their jitter buffer means that
they are very susceptible to PictureID discontinuities.
Then avoid at all cost resetting the PictureID. Moreover, according to
the RFCs for VP8 and VP9 payloads; the PictureID can start off at any
random value. So there is no logical problem of incrementing it here
rather than resetting it, as long as it is a different PictureID.
WebRTC's recent corruption issue:
https://bugs.chromium.org/p/webrtc/issues/detail?id=15101
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4530 >
2023-05-05 07:45:19 +00:00
Camilo Celis Guzman
f159fd8568
rtpvp8pay, rtpvp9pay: expose picture-id as a property
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4530 >
2023-05-05 07:45:19 +00:00
Camilo Celis Guzman
11187a81c3
rtpvp9pay: add picture-id-offset property
...
Bring the VP9 payloader in sync in this regard to the VP8 payloader
Allowing setting the picture id to a known value is useful when testing.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4530 >
2023-05-05 07:45:19 +00:00
Camilo Celis Guzman
7cffb40c2e
rtpvp9pay: minor refactor of PictureID logic
...
This brings the logic inline with the vp8pay
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4530 >
2023-05-05 07:45:19 +00:00
Camilo Celis Guzman
a79616ea7a
rtpvp8pay: avoid reseting PictureID if NO_PICTURE_ID mode is set
...
There is no logical change here, as `& (1 << nbits) - 1` would produce also 0
when NO_PICTURE_ID mode is choosen. However, this avoid computing a random
integer that is actually unused.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4530 >
2023-05-05 07:45:19 +00:00
Camilo Celis Guzman
7dd6375c5e
rtpvp8pay, rtpvp9pay: use GType like name for PictureIDMode
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4530 >
2023-05-05 07:45:19 +00:00
Tim-Philipp Müller
ba417b0e07
rtpjpegdepay: fix logic error when checking if an EOI is present
...
We wouldn't add the missing EOI marker if the frame ended with
either 0xFF NN or 0xNN D9.
Fixes #2407
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4256 >
2023-03-24 19:39:33 +00:00
Edward Hervey
ee759fb4bf
plugins: Fix wrong enum usage
...
gcc 13 now detects conflicting enum usages. Fix the various cases where it was wrong
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4225 >
2023-03-20 11:40:30 +00:00
Tim-Philipp Müller
0fc568c6b1
gst-plugins-good: re-indent with GNU indent 2.2.12
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4182 >
2023-03-17 03:18:54 +00:00
Arun Raghavan
0ed51294e0
rtpopusdepay: Assume 48 kHz if sprop-maxcapturerate is missing
...
This matches 7587, section 6.1:
> sprop-maxcapturerate: a hint about the maximum input sampling rate
> [...]
> bandwidths (Table 1). By default, the sender is assumed to have
> no limitations, i.e., 48000.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2354
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4151 >
2023-03-14 11:09:08 -04:00
Patricia Muscalu
c3e52d5c4f
rtph264pay: Don't insert SPS/PPS before the second image slice
...
Only the first slice, for which fist_mb_in_slice is set to 0,
should trigger insertion of SPS and PPS buffers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3402 >
2023-02-08 12:10:11 +00:00
Mathieu Duponchelle
2048a0a4d9
redenc: fix setting of extension ID for twcc
...
1 was previously hardcoded in, and the bug went under the radar because
webrtcsink hardcodes the number too.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3785 >
2023-01-24 22:52:48 +00:00