122266 Commits

Author SHA1 Message Date
Sebastian Dröge
137044195d qtdemux: Don't parse fiel box a second time for JPEG-2000
It was already parsed above in general for all video codecs. Just put the number
of fields into the JPEG-2000 in the specific field.

As a side effect this also actually checks if enough data is available.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8929>
2025-05-17 07:59:46 +00:00
Sebastian Dröge
45443603f8 qtdemux: Remove second parsing of fiel box for JPEG
Exactly the same is already done some hundred lines above for all video codecs.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8929>
2025-05-17 07:59:46 +00:00
Sebastian Dröge
8687ef453c qtdemux: Simplify parsing of SVQ3/VP31 boxes
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8929>
2025-05-17 07:59:46 +00:00
Sebastian Dröge
98d8bb9a12 qtdemux: Parse codec data for QDM2/QDMC correctly
First find the wave box then include its whole content instead of just including
everything from a random offset onwards.

Also actually do that for QDMC instead of leaving commented code.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8929>
2025-05-17 07:59:46 +00:00
Sebastian Dröge
cd6d2f16a6 qtdemux: Use already parsed damr box for AMR NB/WB streams
Instead of parsing it again and possibly getting the offset for reading
it wrong.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8929>
2025-05-17 07:59:46 +00:00
Sebastian Dröge
18db5538a0 qtdemux: Don't parse audio sample entry a second time in mp4a fallback case
These values were all passed a few hundred lines above already and can directly
be re-used here. The offset for the sample rate was also wrong.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8929>
2025-05-17 07:59:46 +00:00
Sebastian Dröge
d98df47e53 qtdemux: Add qtdemux_tree_get_child_by_index_full() helper function
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8929>
2025-05-17 07:59:46 +00:00
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
Matthew Waters
ea577da12e examples/webrtc/signalling: fix compatibility with python 3.13
Fixes:

Traceback (most recent call last):
  File "/usr/lib64/python3.13/site-packages/websockets/asyncio/server.py", line 373, in conn_handler
    await self.handler(connection)
          ~~~~~~~~~~~~^^^^^^^^^^^^

TypeError: WebRTCSimpleServer.run.<locals>.handler() missing 1 required positional argument: 'path'
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8992>
2025-05-16 18:33:09 +00:00
Sebastian Dröge
08c56f3e2d element: ref-sink the correct pad template when replacing an existing one
templ is the new one that is being stored and that needs to be ref-sinked,
padtempl is the old one that just needs to be unreffed.

Fixes leaking the old template, and also makes sure that the new template is not
floating which can cause use-after-frees with bindings as they might wrongly
take ownership of a still floating template.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8988>
2025-05-16 17:47:47 +00:00
Adrian Perez de Castro
6432f6a1f2 alsa: Avoid infinite loop in DSD rate detection
Stop testing DSD rates in gst_alsa_detect_dsd_rates() if the rate becomes zero
or negative. This avoids an infinite loop if gst_alsa_probe_supported_formats()
is used on a PCM sink defined like the following in the ALSA configuration file:

  pcm.buggy {
    type plug
    slave.pcm "buggy_volume"
    hint.description "Causes an infinite loop in GStreamer"
  }
  pcm.buggy_volume {
    type softvol
    slave.pcm "buggy_dmix"
    control.name "buggy_volume"
  }
  pcm.buggy_dmix {
    type dmix
    ipc_key 12345
    slave {
      pcm "hw:0,0"
      period_size 1024
      buffer_size 4096
    }
  }

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8985>
2025-05-16 17:09:05 +00:00
Robert Mader
c03a5b0c1b glupload: Only add texture-target field to GL caps
So far we simply ignored it for MEMORY_DMABUF passthrough caps
without known negative cosequences, but with upcoming more complicated
caps negotiations it's becoming an issue, thus fix it.

Fixes: 7e71d4f753 ("gl: upload: Add DMA_DRM passthrough upload")
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8964>
2025-05-16 13:40:43 +00:00
Jordan Petridis
818feea0b5 bad: Add more variants for an srt suppression
Followup to 087cb87d27e268d55a8d152690870ac4a2b3e166

These are some more variants of the same issue we
already suppressed in the commit above.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8979>
2025-05-15 15:21:20 +00:00
Jordan Petridis
17d271057a core: suppress glib_init_ctor as well
We already suppress gobject_init_ctor and this
is the same.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8979>
2025-05-15 15:21:20 +00:00
Jordan Petridis
9dc21492a3 opencv: import as system dep
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8979>
2025-05-15 15:21:20 +00:00
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
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
11dccf43e0 volume: 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
bf05a050e9 audiomixer: 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
af2b6b4c38 adder: 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
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
a9f5362ff7 musepack: 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
19e35473f0 ges-audio-track: 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
d3658eef72 controller: Free various props before being set
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8978>
2025-05-13 19:47:37 -04:00
Doug Nazar
80072383c5 directcontrolbinding: Free various props before being set
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8978>
2025-05-13 19:46:34 -04:00
Doug Nazar
42741ce897 rtspclientsink: Free various props before being set
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8978>
2025-05-13 19:45:12 -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
Doug Nazar
e4f60e44ee gstglfiltershader: Free various props before set & during cleanup
gst_object_replace() takes a reference so no need to dup object.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8978>
2025-05-13 19:42:37 -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
Doug Nazar
9d91e4cfc2 vulkan: Free various props before being set
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8978>
2025-05-13 19:34:59 -04:00
Doug Nazar
e81d0124da transcoder: Free various props before during cleanup
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8978>
2025-05-13 19:23:53 -04:00
Doug Nazar
5867c7900a all: Annotate *_set_property() contructor only props without free
Properties that are marked constructor only aren't required to be freed
before g_value_dup_*() as they can only be called once during construction.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8978>
2025-05-13 19:15:21 -04:00
Seungha Yang
4d87ffb8f3 d3d12decoder: Workaround for NVIDIA crash on resolution change
Recent NVIDIA driver seems to crash on resolution change
if ID3D12VideoDecoder and ID3D12VideoDecodeCommandList are reused.

Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4415
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8968>
2025-05-12 23:40:13 +00:00
Olivier Crête
111c0a4186 h264parse test: Ensure avc3 caps include a codec_data
The avc3 caps without a codec_data are just totally invalid

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8955>
2025-05-12 18:31:46 -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