Zach van Rijn
4b71094f30
pcapparse: Avoid unaligned memory access
...
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3602
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7266 >
2024-07-30 10:00:18 +00:00
Jan Schmidt
7b6959edf2
dvbsubenc: fixed some memory leaks and a crash
...
Fix leaks of internal GstBuffers, and a crash if subtitle segments end
up empty.
Based on a patch by Jurijs Satcs <jurijs.satcs@veset.tv>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6673 >
2024-04-17 14:27:03 +01:00
Sebastian Dröge
fcf22b3790
alphadecodebin: Explicitly pass 64 bit integers as such through varargs
...
Maybe fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3422
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6470 >
2024-03-28 12:11:44 +00:00
Mark Nauwelaerts
682c749ac1
dvdspu: avoid null dereference
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6390 >
2024-03-18 20:37:12 +00:00
Mathieu Duponchelle
64bbeb106c
rtponviftimestamp: make sure to set E and T bits on last buffer of lists
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6294 >
2024-03-07 19:58:09 +00:00
Jan Schmidt
ab6c205a8e
rtponviftimestamp: Use gst_segment_to_stream_time_full()
...
In the situation where playback starts from a keyframe before
the target playback segment, then the first buffers will be
outside the configured segment and gst_segment_to_stream_time()
will return GST_CLOCK_TIME_NONE unconditionally.
If drop-out-of-segment is false, the RTP buffers will not be
dropped, but will be sent witout ONVIF extension timestamps
and given GST_CLOCK_TIME_NONE timestamps on the receiver.
Instead, use gst_segment_to_stream_time_full() to extrapolate
stream time outside the segment so that such buffers still
get assigned their correct timestamps on the receiver.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6287 >
2024-03-07 12:03:04 +00:00
Jan Schmidt
1190761f7e
dvbsubenc: Fix bottom field size calculation
...
Don't accidentally include the stuffing byte (if present)
into the bottom field size. It should only be included in the
total segment length.
Fixes problems with FFmpeg not rendering the subtitles
with a stuffing byte, giving a "Invalid object location!" error.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6281 >
2024-03-07 00:29:12 +00:00
Sebastian Dröge
db52137c1a
sdpdemux: Add SDP message (aka session) attributes to the caps too
...
They apply to all medias, and if overridden by the specific media then
they would also be overridden just below in the created caps.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6086 >
2024-02-09 19:05:47 +00:00
Philippe Normand
79d2144408
vp9parse: Fix critical warning during caps negotiation
...
`gst_pad_get_allowed_caps()` returns a non-writable caps, so we need to make it
writable, otherwise the `gst_caps_remove_structure()` call below might trigger a
critical warning.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5976 >
2024-01-24 13:57:26 +00:00
Robert Mader
ba04085ba4
camerabin: Correctly relink viewfinderbin_queue
...
This reverts a part of de92a6c7f2
. Unlike `image_filter` and
`video_filter`, `viewfinder_filter` does not get linked to `src` but
`viewfinderbin_queue`. Thus the fix in the mentioned commit does not
apply for it and should be reverted.
This was not spotted earlier as only the other filters are used in
the project that uncovered the issue.
Fixes: de92a6c7f2
("camerabin: Fix source updates with user filters")
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5842 >
2023-12-20 10:19:28 +00:00
Seungha Yang
a46737a731
av1parser: Fix array sizes in scalability structure
...
Since the AV1 specification is not explicitly mentioning about
the array size bounds, array sizes in scalability structure
should be defined as possible maximum sizes that can have.
Also, this commit removes GST_AV1_MAX_SPATIAL_LAYERS define from
public header which is API break but the define is misleading
and this patch is introducing ABI break already
ZDI-CAN-22300
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5824 >
2023-12-18 10:50:18 +00:00
Seungha Yang
ec9ddb6222
rtponviftimestamp: Fix drop-out-of-segment=false mode
...
Fixing unexpected buffer dropping and flow error in case that:
* use-reference-timestamps=false
* drop-out-of-segment=false
* Calculated utc offset is not valid because buffer is out-of-segment
The above case should be considered as a valid data flow without returning
errors.
Fixing regression introduced by
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1683
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5788 >
2023-12-09 15:41:26 +00:00
Robert Mader
e3f6818003
camerabin: Fix source updates with user filters
...
Take the case into account when user filters have been set before the
source gets updated.
Note that the further linking of the filters, if present, happens below
in the `gst_camera_bin_check_and_replace_filter()` calls.
The audio filter is still affected by the same issue but left out for
now.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5682 >
2023-11-16 18:39:26 +00:00
Sebastian Dröge
7dfaa57b6f
mxfdemux: Store GstMXFDemuxEssenceTrack in their own fixed allocation
...
Previously they were stored inline inside a GArray, but as references to
the tracks were stored in various other places although the array could
still be updated (and reallocated!), this could lead to dangling
references in various places.
Instead now store them in a GPtrArray in their own allocation so each
track's memory position stays fixed.
Fixes ZDI-CAN-22299
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3055
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5638 >
2023-11-10 16:20:43 +00:00
Guillaume Desmottes
c44e6be7de
audiobuffersplit: disable max-silence-time if set to 0
...
According to the property documentation max-silence-time is supposed to be
disabled when set to 0 but it was not.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5632 >
2023-11-09 19:17:41 +00:00
Jan Alexander Steffens (heftig)
4299be47ab
tsmux: Fix default get_es_descrs_func
...
`tsmux_stream_default_get_es_descrs` is missing the `user_data`
parameter and shouldn't be cast to `TsMuxStreamGetESDescriptorsFunc`.
Prefer not casting at all to make sure we don't miss such an issue.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5516 >
2023-10-20 08:53:19 +00:00
Jan Alexander Steffens (heftig)
da02db0d95
tsmux: Fix default new_stream_func
...
`tsmux_stream_new` is missing the `user_data` parameter and shouldn't be
cast to `TsMuxNewStreamFunc`.
Prefer not casting at all to make sure we don't miss such an issue.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5516 >
2023-10-20 08:53:19 +00:00
Jan Alexander Steffens (heftig)
2d938d37a6
tsmux: Add missing include
...
We need `GstMpegtsPMTStream` here.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5516 >
2023-10-20 08:53:19 +00:00
Jan Alexander Steffens (heftig)
77429e4096
tsmux: Simplify tsmux_section_write_packet
...
- Don't try to make the parameters match `GHFunc`. Use a dedicated
callback for `g_hash_table_foreach`.
- Don't try to be clever with buffer memories. We're allocating a full
packet anyway, might as well memcpy and save on a lot of complexity.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5516 >
2023-10-20 08:53:19 +00:00
Jan Alexander Steffens (heftig)
c205086f2b
tsmux: tsmux_packet_out should always consume its buffer
...
Consuming the buffer only when successful is an antipattern and easily
leads to leaks.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5516 >
2023-10-20 08:53:19 +00:00
Jan Alexander Steffens (heftig)
6198c4b8a1
tsmux: Don't memset in pad_stream when writing a PCR packet
...
tsmux_write_ts_header will write a stuffing adaptation field, so we
don't need to prefill the buffer.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5516 >
2023-10-20 08:53:19 +00:00
Jan Alexander Steffens (heftig)
4e9cb5d8eb
tsmux: Move out parameters of tsmux_write_ts_header
...
Move them to the end of the parameter list and also allow passing NULLs
to ignore the payload information, but assert that the payload length is
zero in this case.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5516 >
2023-10-20 08:53:19 +00:00
Jan Alexander Steffens (heftig)
a65035ac25
tsmux: Fix two more uses of gst_buffer_map
...
The buffers should be used for writing.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5516 >
2023-10-20 08:53:19 +00:00
Jan Alexander Steffens (heftig)
61c62919a7
tsmux: Fix error handling in pad_stream
...
Don't leak the map or the buffer if we encounter an error.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5513 >
2023-10-19 23:22:33 +01:00
Jan Alexander Steffens (heftig)
5e78ef7a10
tsmux: Fill padding packets with stuffing bytes
...
Instead of leaving it uncleared, emitting probably old packet data but
potentially also random or sensitive application data.
Also fix the mapping mode.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5513 >
2023-10-19 23:22:33 +01:00
Philippe Normand
4311de2be0
interaudiosink: Ensure adapters don't store buffers with audio meta
...
The interaudiosrc might take buffers of different sizes from the audio adapter,
so keeping metas consistency would be an issue. So the sink now strips the audio
metas away and the src adds them back (for non-interleaved layouts only) when
taking buffers from the adapter.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5416 >
2023-09-28 15:14:38 +02:00
Philippe Normand
acd4202bc0
interaudiosrc: Add audio meta to buffers containing non-interleaved samples
...
Without this a downstream audioconverter wouldn't be able to map the
GstAudioBuffer prior to conversion.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5416 >
2023-09-28 15:14:38 +02:00
Sebastian Dröge
1edd1c38dc
mxfdemux: Check number of channels for AES3 audio
...
Only up to 8 channels are allowed and using a higher number would cause
integer overflows when copying the data, and lead to out of bound
writes.
Also check that each buffer is at least 4 bytes long to avoid another
overflow.
Fixes ZDI-CAN-21661, CVE-2023-40475
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2897
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5365 >
2023-09-20 15:14:27 +01:00
Sebastian Dröge
f73fc41f2c
mxfdemux: Fix integer overflow causing out of bounds writes when handling invalid uncompressed video
...
Check ahead of time when parsing the track information whether
width, height and bpp are valid and usable without overflows.
Fixes ZDI-CAN-21660, CVE-2023-40474
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2896
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5365 >
2023-09-20 15:14:27 +01:00
Jan Alexander Steffens (heftig)
3b46b162b7
rtmp2: Allow NULL flash version, omitting the field
...
rtmpsink omits it by default. Allow us to do the same.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5248 >
2023-09-12 18:13:06 +00:00
Seungha Yang
4740a91e00
h265parse: Allow partially broken hvcC data
...
Ignores parsing error on the last nalu of the array if the nalu type
is not VPS/SPS/PPS
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2905
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5220 >
2023-08-23 11:20:33 +00:00
Guillaume Desmottes
c98cf346a9
rtmp2sink: fix crash if message conversion failed
...
The message pointer is not set so we can't display it in logs.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5202 >
2023-08-18 14:04:14 +00:00
Jan Schmidt
d710d60c40
audiolatency: Fix event refcounting bug handling latency events
...
Fix a refcounting bug introduced in
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5146
If upstream returns FALSE when processing a latency event, it will
be unreffed an extra time
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5152 >
2023-08-06 09:52:16 +01:00
Jan Schmidt
58c48bab7e
audiolatency: Forward latency query and event upstream
...
Make sure the pipeline still configures the latency that it would configure
if audiolatency was not in the pipeline.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5152 >
2023-08-06 09:51:19 +01:00
Philippe Normand
1ea67bdfc5
transcodebin: Fixes for upstream selectable support
...
The upstream selectable query was not performed in all situations where we
handle the stream-start event. This could potentially lead to unlinked pads
between decodebin3 and encodebin later on.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5141 >
2023-08-03 15:06:54 +01:00
Víctor Manuel Jáquez Leal
90cfe4746e
jpegparse: Warn only malformed data in APP data.
...
It's only malformed data in APP when its length is less than 6 chars,
because it should have at least an id string. Otherwise, if the id string
is not handled, no warning is raised, only a debug message noticing it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5053 >
2023-07-18 12:30:57 +02:00
Víctor Manuel Jáquez Leal
122e7b7584
jpegparse: Parse AVI1 tag in app0.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5053 >
2023-07-18 12:30:57 +02:00
Sebastian Dröge
5f3cf0a7d7
dvdspu: Avoid integer overflow when checking if enough data is available
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4899 >
2023-06-20 10:07:14 +00:00
Sebastian Dröge
60226124ec
dvdspu: Make sure enough data is allocated for the available data
...
If the size read from the stream is smaller than the currently available
data then the size is bogus and the data should simply be discarded.
Fixes ZDI-CAN-20994
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2660
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4899 >
2023-06-20 10:07:14 +00:00
Nicolas Dufresne
49106eab5d
h265parse: Don't override upstream framerate
...
The framerate should only be replaced (and corrected for alternating field)
when it is parsed from the bitstream. Otherwise, the upstream framerate
from caps should be trusted and assumed correct.
Related to gst-plugins-bad!2020
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4352 >
2023-06-16 08:18:49 +00:00
Nicolas Dufresne
77cda4b6b8
h265parse: Rename parsed_framerate to framerate_from_caps
...
That meaning of parsed_framerate is ambigious, it is set whenever the
framerate has been parsed from caps, which can be confused with being
parsed from the bitstream. Rename this as framerate_from_caps.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4352 >
2023-06-16 08:18:49 +00:00
Mengkejiergeli Ba
43e4f3a727
h265parse: Fix to check returned value
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4352 >
2023-06-16 08:18:49 +00:00
Michael Olbrich
0fe375dc84
sdpdemux: ensure that only one srcpad is created per stream
...
If two senders use the same multicast IP and port then new_session_pad()
may try to add a srcpad to the same stream twice.
stream->srcpad is updated but gst_element_add_pad() fails the second
time. As a result stream->srcpad points to a deleted object and
access in gst_sdp_demux_stream_free() fails with a segfault.
Just ignore the second pad. Nothing useful can be done with it anyway.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4873 >
2023-06-16 01:53:12 +00:00
Tim-Philipp Müller
61bef370e0
asfmux: fix potentially unaligned write on 32-bit ARM
...
Fixes #2665
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4855 >
2023-06-14 09:12:15 +01:00
Thibault Saunier
f984d775e8
testsrcbin: Remove spurious caps unref
...
Caps are cleared at the end of the function
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2575
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4685 >
2023-05-20 09:59:07 +01:00
Jan Schmidt
40cd8d5a96
mpegpsdemux: Rework gap sending
...
Take the gap logic from mpegtsdemux, and don't
send gap events on a stream that's outputting buffers with
no timestamps. Time isn't advancing, but the stream has
buffers - so it's not sparse.
Fixes #2374
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4623 >
2023-05-12 18:24:20 +01:00
Mihail Ivanchev
d27de58cca
gstcodectimestamper: remove PC file generation from plugin's own meson.build
...
The file generated here is incomplete; it is generated for all plugins in a loop at an upper level.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4520 >
2023-05-01 18:30:33 +01:00
Sebastian Dröge
2dfa168736
tsdemux: Set number of channels to 2 for dual mono Opus
...
Instead of leaving it at 0, which will then cause caps creation to fail.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4446 >
2023-04-18 14:21:54 +01:00
Sebastian Dröge
5ddc082710
plugins: Fix various trivial clang compiler warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4221 >
2023-03-18 19:52:40 +00:00
Sebastian Dröge
a246be6fd2
tsdemux: Fix reading of extended Opus channel configuration
...
Argument evaluation order is implementation defined in C, and gcc is
evaluating right-to-left (works) while clang is evaluating left-to-right
(does not work).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4221 >
2023-03-18 19:52:40 +00:00