Jordan Petridis
d68f472683
bad: Avoid gcc false positive about variable initialization
...
In gstbayer2rgb the dtmp always gets initialized when
we check for bayersrc16.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8979 >
2025-05-15 15:21:20 +00:00
Doug Nazar
17474ebbb2
videoframe-audiolevel: Switch to GST_AUDIO_NE()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8984 >
2025-05-14 14:45:55 -04:00
Doug Nazar
4fb0a06271
uritranscodebin: Free various props before being set
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8978 >
2025-05-13 19:37:59 -04:00
Doug Nazar
38ca8ae156
transcodebin: Free various props before being set
...
Also disable setting filters more than once.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8978 >
2025-05-13 19:35:58 -04:00
Olivier Crête
f13c757696
h264parse: Require codec_data when receiving stream-format=avc or avc3
...
It's not really possible to safely interpret the content afterwards if
it's missing.
Even for AVC3, the codec_data doesn't need to contain a SPS/PPS, but
it still needs to be present to tell downstream elements about the size
of the nal unit length field.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8955 >
2025-05-12 18:31:46 -04:00
Olivier Crête
ffed473992
h264parse: Never output stream-format=avc/avc3 caps without codec_data
...
It's not possible to interpret further buffers without knowing the nal_length_size
field, so avc1/avc3 caps without the codec_data aren't valid, don't push them out.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8955 >
2025-05-12 18:31:46 -04:00
Daniel Morin
57e8dbfeb4
analytics: change tensor-id and use new API
...
- tensor-id changed to match tensor-id-registry at https://github.com/collabora/tensor-id-registry
- Use new GstTensorMeta API to get tensor.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8548 >
2025-05-10 19:18:41 +00:00
Daniel Morin
ec60daa66d
tensordecoder: add general classifier tensor-decoder
...
- Classification output is more standard compare to other tensor-decoder.
- This tensor-decoder implement a standard classification tensor-decoder.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8548 >
2025-05-10 19:18:40 +00:00
Alexander Slobodeniuk
7f4282481e
removesilence: canonicalize property names
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8915 >
2025-05-10 12:09:38 +00:00
Alexander Slobodeniuk
d437e92049
properties: add G_PARAM_STATIC_STRINGS where missing
...
"Hold on, I know you need to generate the registry, but let me just
create copies of all those strings first", Framework whispered
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8915 >
2025-05-10 12:09:38 +00:00
Xavier Claessens
352a8a8b12
unifxfdsink: Add an property to allow copying
...
By design, unixfd is meant to be used for zero-copy and failing when the data is
not FD based memory is wanted to help debug pipelines. Though, there exists
cases, notably with RTP payloader and demuxers, where its not possible
to get all the data into FD memory through allocation queries.
To allow using unixfd for these cases, introduce a property on the unixfdsink
that enable copying the non FD data into freshly allocated memfd.
Co-authored-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8861 >
2025-05-05 19:15:56 +00:00
Víctor Manuel Jáquez Leal
16d34468fb
y4m: move y4mdec to good to have a single y4m plugin
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8719 >
2025-05-05 11:53:46 +00:00
Zhao, Gang
4fa01d5e4c
midiparse: Quit parsing if error occurred
...
Invalid midi files will crash gstreamer or let it enter infinite
loop. Fixed it by quit parsing if error is encountered.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8396 >
2025-05-01 07:42:39 +00:00
Zhao, Gang
43e3796d7d
midiparse: Consider tempo change when calculating duration
...
Midi meta event set tempo would change tempo. Should consider tempo
change when calculating buffer PTS / duration.
Save tempo change to a list and calculate duration according to the
list.
Fixed #4158
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8396 >
2025-05-01 07:42:39 +00:00
Alexander Slobodeniuk
a03c4de48f
elements: use set_static_metadata when it's allowed
...
Those strings are nice but CPU doesn't want to copy them
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8905 >
2025-04-26 19:30:15 +02:00
Nicolas Dufresne
239c0eb5f8
video: Add 10bit 422 NV16_10LE40 format
...
Similar to NV12_10LE40, this is a 422 variant. This format is also named
NV20 (20bit per pixels) in other stack and is produced by rkvdec
decoder.
Co-authored-by: Sebastian Fricke <sebastian.fricke@collabora.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5612 >
2025-04-17 15:36:06 +00:00
Jan Alexander Steffens (heftig)
24bcff5650
mpegtsmux: Read prog-map[PMT_ORDER_<PID>] for PMT order key
...
Right now the prog-map's meaning of `PMT_%d` is overloaded:
- PMT_<PGM> is used to look up the PID for the PMT.
- PMT_<PID> is used to look up ordering keys for streams in the PMT.
This is not a problem in practice because program numbers and PES PIDs
shouldn't overlap. Still, it's quite the wart in the API.
Provide "PMT_ORDER_%d" as an unambiguous way of specifying ordering
keys.
See: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1510#note_2790022
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8584 >
2025-04-16 13:39:15 +00:00
Daniel Morin
55e9e3cb13
tensordecoders: updating element classification
...
- `TensorDecoder` is clashing with media decoder which cause decodebin use it.
Replacing with `Tensordecoder` to avoid clash
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8819 >
2025-04-15 00:30:06 +00:00
Guillaume Desmottes
9b19c10f39
alphacombine: unblock when alpha sink is eos
...
If the alpha sink receives EOS while the other thread was waiting for a
alpha buffer it was stuck waiting forever.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8775 >
2025-04-07 23:45:33 +00:00
Guillaume Desmottes
d2086675a4
alphadecodebin: use a multiqueue instead of a couple of queues
...
Fix gapless playback as queues are no longer stopped after the first
eos.
Co-authored-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Fix #4165
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8775 >
2025-04-07 23:45:33 +00:00
Jakub Adam
75517d0faf
unixfdsrc: fix allocating FD memory with nonzero offsets
...
The element should allocate GstFdMemory large enough to fit incoming
memory's size plus its potential offset.
Fixes "gst_memory_resize: assertion 'size + mem->offset + offset <=
mem->maxsize' failed".
Fixes an issue reproducible on Raspberry Pi 4 that results in a garbled
image on the receiver's end:
gst-launch-1.0 libcamerasrc ! unixfdsink socket-path=/tmp/socket
gst-launch-1.0 unixfdsrc socket-path=/tmp/socket ! autovideosink
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8025 >
2025-04-07 14:51:47 +00:00
Guillaume Desmottes
e8038d2994
codecalpha: name both queues
...
Make it easier to debug from logs.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8744 >
2025-03-31 15:15:28 +00:00
Doug Nazar
2e96ed13de
rfbsrc: Free various props before being set & during cleanup
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8648 >
2025-03-27 09:03:18 +00:00
Doug Nazar
c2cb94a421
frei0r: Free various props before being set
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8648 >
2025-03-27 09:03:18 +00:00
Doug Nazar
afd979c9e4
faceoverlay: Free various props during cleanup
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8648 >
2025-03-27 09:03:18 +00:00
Philippe Normand
1e2b103b20
alphacombine: De-couple flush-start/stop events handling
...
There is no guarantee that any FLUSH_STOP event is preceded by a FLUSH_START.
The element now stops flushing once it has received a FLUSH_STOP on all its sink
pads.
Fixes #4174
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8604 >
2025-03-12 18:34:53 +00:00
Thibault Saunier
ed693c7435
video: Give better names to buffer pools
...
Making debugging simpler
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8617 >
2025-03-12 14:49:22 +00:00
Carlos Bentzen
ee6618d9ba
h266parse: clear cache values with memset
...
Fixes a stack overflow on Windows/MSVC.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8588 >
2025-03-05 10:02:38 +00:00
Benjamin Gaignard
fab7e43fe2
debugutils: videocodectestsink: Add GBR_10LE as supported pixel format
...
Add GBR_10LE in the list of supported format of the element.
GBR_10LE is used as output format in Fluster ARGON tests suite.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8502 >
2025-02-18 13:01:14 +00:00
Benjamin Gaignard
a50dddeea2
videoparsers: av1: Fix typo in debug log
...
comsumed -> consumed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8502 >
2025-02-18 13:01:13 +00:00
Benjamin Gaignard
2f81d53efc
videoparsers: av1: Allow av1parse to parse annexb streams
...
Let's av1 parser do it job event it receives an annexb stream.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8502 >
2025-02-18 13:01:13 +00:00
Edward Hervey
96e660e0d9
mpegts: Fix PCR Discontinuity handling for HLS
...
We can only reliably use the adaptation field discontinuity flag if our input is
properly timestamped on a regular basis (ex: UDP, DVB, RTP, etc...).
For HLS and other systems which don't provide that information, we should not
reset the base observations. Otherwise we would potentially end up picking a
reference time from a long time ago.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8480 >
2025-02-14 14:33:45 +00:00
Mart Raudsepp
def2f12d84
mpegtsmux: Fix error message for PID < 0x40 to be in the claimed base 16
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8463 >
2025-02-12 12:39:29 +00:00
Mart Raudsepp
395c8cafa6
mpegtsmux: Fix deadlock when requesting pad for PID < 0x40
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8463 >
2025-02-12 12:39:29 +00:00
Alexander Slobodeniuk
15bf924940
cpu-throttling-clock: fix missing GObject vtable chainups
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8452 >
2025-02-11 22:49:06 +01:00
Carlos Bentzen
b848c91dec
mpegtsmux: add support for VVC/H.266 video
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8435 >
2025-02-10 20:57:40 +00:00
Edward Hervey
63a03b167a
mpegts: Take into account adaptation field discont
...
If the flag is set, there is an *expected* discontinuity:
* For CC, we ignore the fact it's not contiguous
* For PCR, we acknowledge the values aren't contiguous
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8420 >
2025-02-10 19:41:21 +00:00
Alexander Slobodeniuk
b22c1da0d3
basetsmux: fix chaining up GObject's constructed virtual method
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8416 >
2025-02-10 17:49:29 +00:00
Alexander Slobodeniuk
9f5c08931d
rtpsrc: fix chaining up GObject's constructed virtual method
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8416 >
2025-02-10 17:49:29 +00:00
Glyn Davies
f32402e9b4
h264parse: Force full timestamp on all timecode updates. Was invalid between midnight and 1am
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8401 >
2025-02-10 11:50:23 +00:00
He Junyan
f63a70966e
av1parse: Handle the padding OBU correctly
...
The current av1parse can not find the edge of frame correctly if there
is padding OBUs inside the stream. We now use a flag seen_non_padding to
check whether we see some valid data after a data push. Then the padding
OBUs will be the part of the new frame.
We also refine the code logic to make the code more readable.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4044
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8269 >
2025-02-07 16:56:53 +00:00
Carlos Bentzen
bb74aceb5d
h266parse: clean up unused APS fields
...
Since APS is always carried in-band, we don't need to keep the APS
NALs around in the parser anymore.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8359 >
2025-02-07 08:25:17 +00:00
Carlos Bentzen
5fad23d26b
h266parse: enable vvc1 and vvi1 stream formats
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8359 >
2025-02-07 08:25:17 +00:00
Carlos Bentzen
05d4a2022e
h266parse: handle packetized frames
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8359 >
2025-02-07 08:25:17 +00:00
Carlos Bentzen
551782b32b
h266parse: don't prepend APS NALs on IDR frames
...
Instead, APS NALs can just be pushed an in-band NALs like PH and SEI.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8359 >
2025-02-07 08:25:17 +00:00
Carlos Bentzen
c7e9aba025
h266parse: negotiate before handling codec_data NALs
...
If we find VPS/SPS/PPS in codec_data and call gst_h266_parse_process_nal
with them, we need to have negotiated before in order to correctly
process them with flags like h266parse->transform set or not depending
on the negotiation. This is important because in certain vvc1/vvi1 streams we
may have correct codec_data but faulty parameter sets in the stream and
we would want to push the parameter sets from codec_data first.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8359 >
2025-02-07 08:25:17 +00:00
Carlos Bentzen
f4f7e99e05
h266parse: parse codec_data
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8359 >
2025-02-07 08:25:17 +00:00
Carlos Bentzen
8607ccdf2c
h266parse: update IDR position in more cases
...
The IDR position should be updated if we're processing an
IDR frame or pushing codec NALs. Not only when picture_header_in_slice_header_flag
is set.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8359 >
2025-02-07 08:25:17 +00:00
Carlos Bentzen
7c29249ca5
h266parse: fix typos
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8359 >
2025-02-07 08:25:17 +00:00
Carlos Bentzen
fe61b43814
h266parse: implement make_codec_data
...
implement serialization of codec_data containing VvcDecoderConfigurationRecord
as defined in ISO/IEC 14996-15.
The VPS/SPS/PPS NALs are added to the codec_data. APS NALs could be
optionally included as well but will be pushed in-band instead, because:
1. Logic is easier that way. We'd have to filter out for PREFIX_APS only
(SUFFIX_APS aren't allowed in codec_data).
2. APS NALs can also be sent for every non-keyframe slice, and often are, so just pushing
them in-band makes more sense to have less to keep track and avoid possible
duplicates.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8359 >
2025-02-07 08:25:17 +00:00