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
Seungha Yang
c88dd17df7
h264parse: Validate VUI framerate
...
A few streams contain invalid/wrong framerate in VUI. Do validate
it based on the spec and ignore invalid VUI framerate values.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1753
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4131 >
2023-03-08 15:43:25 +00:00
Víctor Manuel Jáquez Leal
7e2aec1219
jpegparse: demote and promote log messages level
...
Before those levels where when implementing the plugin. Now these
levels are for reporting issues from users.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4130 >
2023-03-07 23:05:32 +00:00
He Junyan
7af495072a
jpegparse: reset parse state when the SOI is not the first marker
...
There may be garbage or some bits before a SOI comes in some problematic
mjpeg streams. For example, some network error may cause the EOI marker
of the previous frame lost, and when the new frame's SOI comes, we still
use the state of the last frame, which will generate errors.
For this kind of frames without EOI, if that frame already has some data
(the SOS segment is detected), we still push it as a frame with CORRUPTED
flag set. But if not, we just discard all the data before the new SOI.
Co-Authored-By: Víctor Jáquez <vjaquez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4130 >
2023-03-07 23:05:32 +00:00
Seungha Yang
e76c481750
h265parse: Always set profile on src caps
...
h265parse should provide profile for autoplugging
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4068 >
2023-02-25 13:22:41 +00:00
Seungha Yang
362a97836f
codectimestamper: Fix timestamping on sequence update
...
... and enhance debug logging.
Keep internal timestamp offsets on drain, no reason to reset them
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3987 >
2023-02-17 10:42:57 +00:00
Thibault Saunier
cba521bc18
uritranscodebin: Fix unref of NULL
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3837 >
2023-01-28 16:54:30 +00:00
Seungha Yang
0064fc7764
mpegpsdemux: Ignore DTS if PTS < DTS
...
It's possibly timestamp rollover case. But PTS < DTS is already
invalid case anyway.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3836 >
2023-01-28 15:20:44 +00:00
Sebastian Dröge
bd91768692
mxfmux: Add all local tags to the primer
...
No matter if they're allocated via GSlice or malloc(). The allocator is
completely irrelevant, all local tags need to be in the primer so they
can be handled.
This didn't have any effect in practice because all local tags that
appear in the muxer are allocated via GSlice. Only from the demuxer they
might be allocated via malloc().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3699 >
2023-01-10 11:10:10 +00:00
Edward Hervey
f18186b5dc
mpegts: Always clear packetizer on DISCONT push mode
...
If a discontinuity is detected in push mode, we need to clear the cached section
observations since they might have potentially changed.
This was only done properly when operating with TIME segments (dvb, udp,
adaptive demuxers, ...) but not with BYTE segments (such as with custom app/fd
sources).
We still don't want to flush out the PCR observations, since this might be
needed for seeking in push-based BYTE sources.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1650
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3584 >
2022-12-18 18:50:19 +00:00
Edward Hervey
c81facec5f
mpegts: Check continuity counter on section streams
...
This wasn't really done, and is needed in order to detect potential section
changes for sections that have got identical information (such as when switching
between streams that have the same PAT/PMT pid and subtable information).
Other checks exist in tsbase to detect if the "new" PAT/PMT really is an update or not.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3530 >
2022-12-10 14:24:56 +00:00
Seungha Yang
bd8ef7ae3a
proxysink: Post EOS message on EOS event
...
proxysink is actual sink (GST_ELEMENT_FLAG_SINK flag has configured)
so it should post EOS message.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3472 >
2022-12-08 14:51:56 +00:00
Thibault Saunier
e49e0198f1
h264parse: Avoid setting wrong colorimetry info if the stream doesn't contain it
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3543 >
2022-12-07 17:30:51 +00:00
Sebastian Dröge
22c326edea
dvbsubenc: Forward GAP events as-is if we wouldn't produce an end packet and are not in the middle of an existing subtitle
...
An end packet is only produced once for the last subtitle, so multiple
GAP events between subtitles would result only in a single end packet
and nothing else otherwise. This would potentially starve downstream
then, so instead forward the GAP events in that case.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3534 >
2022-12-07 10:21:52 +02:00
He Junyan
e7d584a816
h265parse: Add the missing timestamp when splitting a frame.
...
When splitting a frame, the gst_buffer_copy_region() does not copy
the timestamp correctly for sub frames when the offset is not 0.
We still need those timestamps for each output sub frame.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3448 >
2022-11-22 21:47:49 +00:00
He Junyan
dae73d6686
h264parse: Add the missing timestamp when splitting a frame.
...
When splitting a frame, the gst_buffer_copy_region() does not copy
the timestamp correctly for sub frames when the offset is not 0.
We still need those timestamps for each output sub frame.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3448 >
2022-11-22 21:47:49 +00:00
Sebastian Dröge
76eb870251
dvbsubenc: Write Display Definition Segment if a non-default width/height is used
...
Otherwise it can't be rendered by dvbsuboverlay or ffmpeg at least.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3446 >
2022-11-22 21:04:39 +00:00