Sebastian Dröge
2b18846e39
qtdemux: Fix endianness/alignment problems with parsing omwa sample description entries
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8929 >
2025-05-17 07:59:46 +00:00
Sebastian Dröge
f575fe763c
qtdemux: Handle stsd entry offset correctly for audio in qtdemux_parse_node()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8929 >
2025-05-17 07:59:46 +00:00
Sebastian Dröge
ae4d505fe0
qtdemux: Pass stsd entry node to caps creation functions
...
Also fix lpcm to only read its additional fields from sound sample description v2.
Previously it would read random data if a different stsd entry was used.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8929 >
2025-05-17 07:59:46 +00:00
Sebastian Dröge
3ecb07c674
qtdemux: Don't parse invalid data from ISOBMFF AudioSampleEntryV1
...
The additional fields only exist in sound sample description v1, which
is only defined for MOV.
ISOBMFF has AudioSampleEntryV1 but it has the exact same layout as
AudioSampleEntry.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8929 >
2025-05-17 07:59:46 +00:00
Sebastian Dröge
fec61cc546
qtdemux: Don't retrieve video stsd entry multiple times
...
And remove various duplicated checks.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8929 >
2025-05-17 07:59:46 +00:00
Sebastian Dröge
af5cce9968
qtdemux: Parse uncompressed video uncC / cmpd boxes from already parsed stsd entry
...
Also simplifies code and error checking considerably.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8929 >
2025-05-17 07:59:46 +00:00
Sebastian Dröge
a6e58f7331
qtdemux: Don't retrieve enca/encv boxes a second time, wrongly
...
They need to be retrieved by index and they were already correctly retrieved
just above so let's just use that.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8929 >
2025-05-17 07:59:46 +00:00
Sebastian Dröge
bb50741b73
qtdemux: Use already parsed stsd entries instead of parsing them again
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8929 >
2025-05-17 07:59:46 +00:00
Sebastian Dröge
cf2b1909ec
qtdemux: Fix typo in debug message
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8929 >
2025-05-17 07:59:46 +00:00
Sebastian Dröge
faa912a31d
wavparse: Error out correctly if no data tag is found until EOS in pull mode
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8956 >
2025-05-15 10:24:37 +00:00
Sebastian Dröge
ba8fd35e72
wavparse: Ignore EOS when parsing the headers
...
The file might be truncated or contain < 8 bytes of remaining data after the
last chunk.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4426
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8956 >
2025-05-15 10:24:37 +00:00
Doug Nazar
a332a411b7
tests: 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
a8e11cec9a
spectrum: 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
ebaf87cd17
law: 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
39cb7b38e7
flac: 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
0c0b4ad6d0
gstrtspsrc: Free various props before being set
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8978 >
2025-05-13 19:44:21 -04: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
Olivier Crête
14f833fdcf
rtph264pay: Reject stream-format=avc without codec_data
...
Without the codec_data, it's impossible to know the size of the field
for the number of NALu in a buffer. And since nal_length_size is unkown
the stream can't be parsed and payloaded and we risk an infinite loop.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8954 >
2025-05-10 10:23:30 +00:00
Jakub Adam
ba87e0112f
qt6glwindow: add log message when a buffer pool gets set
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8938 >
2025-05-06 19:50:43 +00:00
Sebastian Dröge
fff260f1aa
qtdemux: Don't configure any channel-mask in fallback case with 1 channel
...
For mono we don't set any channel mask. Setting 0 would mean an unpositioned
layout with a single channel.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8928 >
2025-05-06 13:20:29 +00:00
Sebastian Dröge
7f8b27837c
qtdemux: Add channel layouts to three more raw audio fourccs
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8928 >
2025-05-06 13:20:29 +00:00
Sebastian Dröge
737f653e7c
qtdemux: Parse chan box
...
This is another variant of providing channel positions.
Also if neither chan nor chnl boxes are found, configure a default channel
layout for raw audio tracks.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4403
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8928 >
2025-05-06 13:20:29 +00:00
Sebastian Dröge
5c16c8f0c1
qtdemux: Check length of JPEG2000 colr box before parsing it
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8930 >
2025-05-06 11:09:55 +00:00
Sebastian Dröge
f18123ea15
qtdemux: Remove obsolete TODO comment
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8930 >
2025-05-06 11:09:55 +00:00
Sebastian Dröge
b461115699
interleave: Don't hold object lock while querying caps downstream
...
This can easily lead to deadlocks.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8933 >
2025-05-06 09:44:03 +00:00
Víctor Manuel Jáquez Leal
7a14b9020c
y4m: support more color formats
...
These are unofficial yuv4mpegpipe formats, but used for 10bit streams.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8719 >
2025-05-05 11:53:47 +00:00
Víctor Manuel Jáquez Leal
1b023dee2e
y4m: add color mappings
...
Now the chroma subsampling tag will include the chroma site. Tests
where updated accordingly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8719 >
2025-05-05 11:53:47 +00:00
Víctor Manuel Jáquez Leal
7c8a5cd28d
y4mdec: descend from GstBaseParse
...
This is an overhaul/simplification of the element.
Now it supports seek, while the performance remains more or less the same.
Fixes : #4373
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8719 >
2025-05-05 11:53:47 +00:00
Víctor Manuel Jáquez Leal
ef7829b6ad
tests: add y4mdec unit test
...
simple decoding of a i420 15x15 red square, shared with the y4menc unit test.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8719 >
2025-05-05 11:53:47 +00:00
Víctor Manuel Jáquez Leal
8d4a6a7d64
y4mdec: handle time segments
...
so chaining y4menc ! y4mdec is possible.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8719 >
2025-05-05 11:53:47 +00:00
Víctor Manuel Jáquez Leal
82e6c1c640
y4mdec: instead of memcmp, use gst_video_info_is_equal()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8719 >
2025-05-05 11:53:47 +00:00
Víctor Manuel Jáquez Leal
4cf598bcf3
y4m: share common code among encoder and decoder
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8719 >
2025-05-05 11:53:47 +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
Alexander Slobodeniuk
14d4c249ad
qtmux: fix building with -DGST_REMOVE_DEPRECATED
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8901 >
2025-05-04 22:19:55 +00:00
Tim-Philipp Müller
128710caab
meson: rename meson_options.txt to meson.options
...
Which is supported since Meson 1.1:
https://mesonbuild.com/Release-notes-for-1-1-0.html#support-for-reading-options-from-mesonoptions
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8651 >
2025-05-03 10:38:25 +01:00
Jakub Adam
e8e1430a5b
v4l2: pool: fix assert when mapping video frame with DMA_DRM caps
...
Make sure the pool recognizes DMA_DRM caps and parses them into
GstVideoInfo that has GstVideoFormat corresponding to "drm-format"
in the caps.
Fixes
gst_video_frame_map_id: assertion 'info->finfo->format ==
meta->format' failed
Where the left side of the assertion was GST_VIDEO_FORMAT_DMA_DRM and
the right side was some GstVideoFormat converted from DRM fourcc.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8913 >
2025-05-01 11:48:26 +00:00
Nirbheek Chauhan
a7c92cbcab
gst-examples: Port all webrtc examples to libsoup-3.0
...
Also do some indent changes, and add `static` while we're at it.
And move the libsoup wrap to 3.6.5, add nghttp2 wrap
We need to disable libsoup 3.0 tests because they fail to build on
Windows.
Closes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1115
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8753 >
2025-04-30 10:18:57 +00:00
Nirbheek Chauhan
1fdfab27a3
meson: Add include_type: 'system' everywhere to squelch wrap warnings
...
Wrap dependencies add a ton of warnings with the latest GCC in Fedora
42. Squelch them by specifying that these dependencies are not
a part of the gstreamer project, and should be treated as system deps.
libsoup needs some porting work for the bump, and vorbis/lame are
already at their latest releases.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8753 >
2025-04-30 10:18:56 +00:00
Hou Qi
7288b034ac
v4l2videoenc: report error only when buffer pool parameters are invalid
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8908 >
2025-04-28 13:20:00 +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
Eli Mallon
068385e83f
qtdemux: unref simple caps after use
...
Otherwise we leak a GSTCaps object every time we
use qtdemux on a file with Opus audio
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8879 >
2025-04-23 12:06:48 -07:00
Hou Qi
bf87ad72e4
v4l2: drop frames for those dequeued buffer with error flag
...
Some frames are dequeued with error flag, which may cause AV unsync if decoder
does not drop them as soon as possible. So add "output-error-dequeued" and
"capture-error-dequeued" signal for v4l2 to drop such frames.
Fixes #3031
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5479 >
2025-04-18 14:14:54 +00:00
Nicolas Dufresne
8c7ad20e4e
doc: Update cache for plugins automatically picks NV16_10LE40
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5612 >
2025-04-17 15:36:06 +00:00
Stefan Andersson
1c8b01ccbc
matroska-demux: Prevent corrupt cluster duplication
...
Make sure to always update next_cluster_offset, if next cluster offset
isn't known set it to zero. If next_cluster_offfset isn't updated it will
be the same as current and if the cluster parsing fails the same cluster
will be parsed again leading to duplication of the data in the cluster.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8855 >
2025-04-16 20:37:08 +02:00
Gustav Fahlen
e649072584
gstrtspsrc: Do not emit signal 'no-more-pads' too early
...
Due to race condition it was previously possible that
gst_element_add_pad was not completed for each RTSP stream before
signal 'no-more-pads' was emitted.
Race condition explained:
Lets say two RTSP streams are created: Video and Audio.
1. Callback new_manager_pad is called for the Video stream =>
stream->added=TRUE.
all_added=FALSE because both streams are not yet added.
Call gst_element_add_pad and emit signal 'pad-added' for Video stream.
2. Callback new_manager_pad is called for Audio stream =>
stream->added=TRUE.
all_added=TRUE because both streams are added.
Call gst_element_add_pad and emit signal 'pad-added' for Audio stream.
3. Lets say gst_element_add_pad for the audio stream completes before
the video stream. Since the audio stream already has all_added==TRUE
this will result in the signal 'no-more-pads' to be emitted before
gst_element_add_pad for the video stream is completed.
Solution is to move the logic that sets added=True and checks if all
streams are added to after gst_element_add_pad. This will make sure
signal 'no-more-pads' is not emitted until all code in
gst_element_add_pad is completed for all streams.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8832 >
2025-04-14 12:35:06 +00:00
Jan Schmidt
7212848e41
rtspsrc: Don't error out on not-linked too early
...
Wait until all pads have been exposed before accepting a not-linked,
as pads are added one-by-one and downstream might not be interested
in the first ones to appear.
Follow up to
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7946
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8798 >
2025-04-10 11:50:33 +00:00
Víctor Manuel Jáquez Leal
4fc8773371
y4menc: fix Y41B format
...
This a regression of commit fb0bea8f where output info variable was swapped with
input info variable by mistake.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8786 >
2025-04-08 13:10:19 +00:00
Ognyan Tonchev
6db576f033
gstrtpsession: Do not push events while holding SESSION_LOCK
...
Doing so can trigger deadlocks
Fixes : #4328
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8695 >
2025-04-05 08:43:06 +00:00
Ognyan Tonchev
ebb1d1a4ae
gstrtpsession: protect recv_rtcp_segment_seqnum with a lock
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8695 >
2025-04-05 08:43:05 +00:00
Ognyan Tonchev
961fc87168
gstrtpsession: use correct seqnum for the STREAM_START ans SEGMENT events
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8695 >
2025-04-05 08:43:05 +00:00