Commit graph

9326 commits

Author SHA1 Message Date
Doug Nazar
581e72a23e rtsp-server: tests: Fix a few memory leaks
Also use any port to run server to avoid conflicts.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9116>
2025-05-28 23:41:49 +00:00
Doug Nazar
feb6e1602a validate: Escape '%' in Valgrind log filenames
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9042>
2025-05-28 16:01:44 +00:00
Doug Nazar
822bef51f0 validate: Fix marking actions done
Don't take extra ref during calling done() from 'stream-selection'
Mark as done actions that are completed immediately

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9042>
2025-05-28 16:01:44 +00:00
Doug Nazar
5c4bf60c94 validate: Free log files
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9042>
2025-05-28 16:01:44 +00:00
Doug Nazar
09cf44aa13 validate: Various minor cleanups for lost memory or use after free
Includes several missing unref(), clear() or free() calls.
Reset current_seek since we just cleared all the seeks.
Reset all_configs to NULL to prevent double clearing.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9042>
2025-05-28 16:01:44 +00:00
Tim-Philipp Müller
d273b790e1 textoverlay: fix shading for RGBx/RGBA pixel format variants
... for cases where there's padding at the end of each row.

Fixes #4414.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9106>
2025-05-28 08:45:03 +00:00
Daniel Morin
e72e9a95d8 rtpsender: fix 'priority' GValue get/set
- 'priority' is declared as enum, we need to use g_value_[get|set]_enum()

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9105>
2025-05-28 07:28:16 +00:00
Aleix Pol
e627d02171 qml6glitem,qtitem: Allow configuring if the item will consume input events
At the moment we are always accepting the input events to forward into
GStreamer infrastructure. This works but we might have other uses for
such events elsewhere in the QtQuick scene so allow opting out to this
behaviour.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9085>
2025-05-28 01:13:21 +00:00
Doug Nazar
c5f9d4073f adaptivedemux2: Fix race for expected error in test
After gst-validate-1.0 notices the first expected error on the bus, it will
queue the completion of that action while the pipeline is still processing the
error and getting to the basesrc for the second error.

Mark the second error as 'sometimes=true', as it's not critical to the test.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9060>
2025-05-27 20:35:41 +00:00
Doug Nazar
c14b135861 adaptivedemux2: Ensure all download tasks call g_task_return_*()
There is a small window during stopping when tasks have been add
to the transfer_requests queue, but never transfered to the
active_transfers array and causes the fallowing error:

GTask 0x7f2c4400e930 (source object: (nil), source tag: (nil)) finalized
without ever returning (using g_task_return_*()).
This potentially indicates a bug in the program.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9060>
2025-05-27 20:35:41 +00:00
Doug Nazar
7fe08e057c tsdemux: Ensure AC3 descriptor is long enough before accessing
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9044>
2025-05-27 10:44:37 +00:00
Doug Nazar
3df63a079c glcontext/egl: Free dma_formats if someone else already initialized
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9044>
2025-05-27 10:44:37 +00:00
Doug Nazar
99aba78c88 gstreamer: Ensure we free the template
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9044>
2025-05-27 10:44:37 +00:00
Doug Nazar
75cf21d834 gstreamer: A few small memory cleanups
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9044>
2025-05-27 10:44:37 +00:00
Sebastian Dröge
68815a3a15 play: Improve stream selection
- Unset stream ids if a collection does not contain them
  - Automatically select a default stream of a type if the stream type is
    enabled but no stream is selected yet when receiving the stream collection
  - Warn if there's a collection update via streams-selected and if there are
    unexpected streams being selected, or actually selected streams not being
    found
  - Improve debug output a bit

Among other things this also makes sure that we don't forget a selected stream
id when disabling a track so that when enabling it again later the same one can
be enabled again.

See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4344

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9081>
2025-05-27 09:31:52 +00:00
Doug Nazar
50cad4a7fa libav: Only allocate extradata while decoding
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9056>
2025-05-27 08:28:11 +00:00
Thibault Saunier
d0b2e6cb68 validate: scenario: Fix race condition when ignoring EOS
The part of the code that is commented with:

```
  /* gst_validate_action_set_done() does not finish the action
    * immediately. Instead, it posts a task to the main thread to do most
    * of the work in _action_set_done().
    *
    * While the EOS handling lock guarantees that if an action had to call
    * gst_validate_action_set_done() it has done so, it does not guarantee
    * that _action_set_done() has been called.
    *
    * Is it possible that this handler is run before _action_set_done(), so
    * we check at this point for actions that have a pending_set_done and
    * call it before continuing. */
```

was not being executed in the case where the scenario was 'ignoring EOS'
while it was also required.

Also fix potential use after free in that specific code path.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9014>
2025-05-27 06:59:36 +00:00
Seungha Yang
8ff0a1c132 nvencoder: Fix GstNvEncTask leak on non-flow-ok return
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9078>
2025-05-27 00:05:37 +09:00
Seungha Yang
1fb633368e nvencoder: Fix GstVideoCodecFrame leak on non-flow-ok return
... and use gst_video_encoder_release_frame() to drop frame
instead of gst_video_encoder_finish_frame()

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9078>
2025-05-26 23:39:21 +09:00
Nicolas Dufresne
500f9b60af alphacombine: Fix seeking after EOS
The alpha_eos state was not being reset on flush-stop, as a side effect
flushing seek after EOS did not work.

Fixes #4442

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9069>
2025-05-26 12:13:40 +00:00
Seungha Yang
5521af04f8 d3d12memory: Allow set_fence() only against writable memory
Setting a fence to memory should only be allowed on the side
that modified that memory or has the right to modify it

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9075>
2025-05-26 11:34:29 +00:00
Seungha Yang
2a44248bcd d3d12: Enable GIR for MSVC build as well
cerbero issue should be fixed by
https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1824

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9076>
2025-05-26 18:29:53 +09:00
Seungha Yang
66b35a984d d3d12memory: Make D3D12 map flags inspectable
GIR scanner does not seem to be able to infer integer value

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9076>
2025-05-26 18:29:47 +09:00
L. E. Segovia
7b8d4c0974 orc: Update pregenerated files
Fixes -Wtype-limits on gstbayer.orc when emulating convuuslw.

Regenerated Orc files use OrcOnce, which increases the minimum version to 0.4.34.

See https://gitlab.freedesktop.org/gstreamer/orc/-/merge_requests/212 (ORC_MIN)

See https://gitlab.freedesktop.org/gstreamer/orc/-/merge_requests/238 (AVX2 convussql)

See 8a86d51753 (OrcOnce)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9067>
2025-05-25 14:36:17 +00:00
L. E. Segovia
00dfff821a orc: Remove references to gst-indent-1.0
These are automatically handled by pre-commit now.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9067>
2025-05-25 14:36:17 +00:00
Thibault Saunier
515bf888a9 python: Make use of the new structure.is_writable method
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9027>
2025-05-25 15:16:37 +02:00
Thibault Saunier
78a44afc22 gst: Add a gst_structure_is_writable method
There are cases (in the gst-python bindings for example) where
it is interesting to know that the structure is not writable

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9027>
2025-05-25 15:16:37 +02:00
Thibault Saunier
f0e1591111 python: Add overrides for Buffer/Query/Event/Context to handle writability
And make them look more like proper MiniObject

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9027>
2025-05-25 15:16:37 +02:00
Thibault Saunier
0201423142 python: Factor out a MiniObject class that all mini object will be based on
Making the API closer to what it should be as Caps are MiniObject

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9027>
2025-05-25 15:16:37 +02:00
Thibault Saunier
da9365176b python: Add a Caps.get_value variant that does not copy the structures
Keeping the __getitem__ implementation the same way

This also now make structure.set_value() raise an exception if the structure
was not writable

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9027>
2025-05-25 15:16:37 +02:00
Thibault Saunier
c3d2209c1f python: Add overrides to be able to write into the GstStructure inside GstCaps
Add Python bindings for allowing to modify GstCaps structures with proper
writability checks.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9027>
2025-05-25 15:16:37 +02:00
Seungha Yang
e10b460ed4 rtputils: Add debug category
Use rtputils specific debug category instead of "default"

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9070>
2025-05-25 19:32:34 +09:00
Sebastian Dröge
60d9ad038c meta: Add g_return_val_if_fail() for NULL valid_tags in gst_meta_api_type_tags_contain_only()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9054>
2025-05-25 06:45:27 +00:00
Robert Mader
31660c3ad2 glupload: Promote fixate caps results print to info
And include the input caps. The idea is that this info is
often among the most relevant and having it on INFO level
thus allows to avoid the more noisy DEBUG one.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8981>
2025-05-25 00:23:44 +00:00
Doug Nazar
635e0ad5c1 dash: mpdclient: Re-enable test now that mpdclient is fixed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8734>
2025-05-24 12:10:59 +00:00
Doug Nazar
9a04896293 dash: mpdclient: Don't pass terminating NUL to adapter
libxml2 will complain if it detects any characters after the valid
XML, including a NUL byte.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8734>
2025-05-24 12:10:59 +00:00
Jan Schmidt
8eb5e3771b vtenc: Use strlcpy instead of strncpy
Silences a compiler warning, and there's no cross-platform
consideration as this plugin is apple-only

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9058>
2025-05-23 19:00:32 +00:00
Branko Subasic
73ef16864e matroskamux: Write stream headers before finishing file
In the rare case when we get EOS on all pads before we get any buffer we
would finish the file without writing headers, i.e. the file would be
corrupt. This patch makes sure that a header is always written.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9061>
2025-05-23 13:37:17 +00:00
Jordan Petridis
98e8d3a127 gsttracerutils: Fix leak in gst_tracer_utils_create_tracer()
Co-authored-by: Alicia Boya García <aboya@igalia.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9028>
2025-05-23 12:37:15 +00:00
Jan Schmidt
4c6a0b655d meson: Add build_rpath for qt6 plugin on macOS
This is the same fix for qt6 that was done for the qt5 plugin
in gstreamer/gstreamer!3708

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9059>
2025-05-23 11:16:18 +00:00
Nirbheek Chauhan
e4d5cece28 meson: Add a monorepo-wide qt-method option and yield to it
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9046>
2025-05-23 09:43:17 +00:00
Nirbheek Chauhan
32eaa0ae35 meson: Rework build files for qt examples in -base
The build files had quite a few things wrong:

* Not using the method: kwarg, which can cause the wrong Qt to be
  used for building
* There was no way to enable the build for them
* Qt was being detected multiple times, differently
* Unnecessary check for libGL
* have_cxx was being used incorrectly
* Qt tool detection was outdated

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9046>
2025-05-23 09:43:17 +00:00
Nirbheek Chauhan
0ba85c84a1 meson: Make qml/qml6 plugins use the right qt detection method
Otherwise they can pick up the wrong qt and cause two different Qt
instances to be used in the same program.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9046>
2025-05-23 09:43:17 +00:00
Nirbheek Chauhan
331a381c66 meson: Fix qt detection for qt6d3d11 plugin
This now matches the code for the qml6gl plugin.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9046>
2025-05-23 09:43:17 +00:00
Seungha Yang
099b8825a7 d3d12: Generate gir file
Prerequisite for rust binding

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9053>
2025-05-23 06:45:37 +00:00
Seungha Yang
ac49baabb6 d3d12: Fix docs annotations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9053>
2025-05-23 06:45:37 +00:00
Doug Nazar
2dc485823c rtsp-server: A few small memory cleanups
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9052>
2025-05-22 10:53:33 +00:00
Thibault Saunier
feb3df61a7 debug: Use log contexts in some places
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6855>
2025-05-22 09:53:35 +00:00
Thibault Saunier
c796abbf0a gst: info: Add a GstLogContext API
Add a new API to control logging behavior, particularly for implementing
"log once" functionality and periodic logging. This helps avoid spamming
logs with repetitive messages.

The API provides:
- Static and dynamic context creation
- Configurable message identity calculation
- Periodic reset capability
- Context-aware logging macros
- Element message variants with context support

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6855>
2025-05-22 09:53:35 +00:00
Doug Nazar
707024f940 ges: Free path and uri
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9043>
2025-05-21 20:12:31 +00:00
Doug Nazar
1383140c5c ges: Ensure we free the pad and the pad template
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9043>
2025-05-21 20:12:31 +00:00
Doug Nazar
938a7a0de0 ges: Silence warning about invalid escape sequence
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9043>
2025-05-21 20:12:31 +00:00
Robert Mader
47308092dd wayland: Remove custom format mapping
As of Gst >= 1.24 we can just use GstVideoInfoDmaDrm APIs. Note
that SHM formats match DRM ones with only two exceptions.

No functional changes intended (for backporting) apart from
supporting a few more formats - those present in video-info-dma.c
but missing in the removed mapping.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8983>
2025-05-21 18:11:12 +00:00
Sebastian Dröge
571f32eec0 qtdemux: cmpd box is only mandatory for uncompressed video with uncC version 0
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9039>
2025-05-21 17:04:26 +00:00
Guillaume Desmottes
328b6bc55d core: gstvalue: fix ANY/EMPTY caps (features) hash
They should be special cases as both do not have any actual caps/features.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9037>
2025-05-21 16:03:15 +00:00
Guillaume Desmottes
8f627b1f9c uridecodebin3: Don't hold play items lock while releasing pads
Releasing the pad can cause messages that call back into the message
handler of uridecodebin3 and take exactly the same lock again.

Fix #4443

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9032>
2025-05-21 14:43:08 +00:00
Sebastian Dröge
7ffbb1ce34 subtitleoverlay: Remove 0.10 hardware caps handling
This also reverts c02d41c2. videoconvert and videoscale are supposed to support
raw video with any caps features as long as no conversion is actually necessary,
and assuming they don't breaks usage of GstVideoOverlayCompositionMeta with e.g.
dmabuf or GL memory caps.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4353

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9020>
2025-05-21 13:07:51 +00:00
Sebastian Dröge
34efd430e4 videobalance: Implement basetransform meta transform function
This makes sure we can pass through more metas correctly, e.g.
GstVideoOverlayComposition meta.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9004>
2025-05-21 12:13:56 +00:00
Sebastian Dröge
6072e54666 gl: Implement basetransform meta transform function
This makes sure we can pass through more metas correctly, e.g.
GstVideoOverlayComposition meta.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4422

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9004>
2025-05-21 12:13:56 +00:00
Sebastian Dröge
1c3bc57d00 videoconvertscale: Use new gst_meta_api_type_tags_contain_only() API
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9004>
2025-05-21 12:13:56 +00:00
Sebastian Dröge
bd3c267adb meta: Add gst_meta_api_type_tags_contain_only()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9004>
2025-05-21 12:13:56 +00:00
Sebastian Dröge
8099c7e186 validate: Add a set of tests for checking if videooverlaycomposition reaches the sink
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9024>
2025-05-21 11:42:52 +00:00
Matthew Waters
daae2c18a4 gl/window: add support for configuring whether a backing surface is needed
Fixes videotestsrc ! glimagesink videotestsrc ! glimagesink under Wayland (at
least).

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2997

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9007>
2025-05-21 08:30:47 +00:00
Thibault Saunier
6fc32cbe0e validate: Do not list test files that are not autogenerated in .testlist
It was useless, adding the .validatetest to the git repo should be enough

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9035>
2025-05-20 21:43:14 +00:00
Hou Qi
749987be2b v4l2: pool: Send drop frame signal after dqbuf success
This is a regression introduced by https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5479

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4424

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8969>
2025-05-20 19:20:17 +00:00
Thibault Saunier
5658683881 imagefreeze: Reset 'flushing' state when receiving FLUSH_STOP
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9015>
2025-05-20 16:47:09 +00:00
Thibault Saunier
5fc7340a70 imagefreeze: Set seqnum from segment too
This is the right behavior, setting from seeks is also OK but we should take the seqnums from segment into account too

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9015>
2025-05-20 16:47:09 +00:00
Olivier Crête
9e3d251c23 tflite: Also look for C symbols in libtensorflow-lite
For some builds, there isn't a separate C library such as
some Yocto builds of tflite.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8523>
2025-05-20 16:05:51 +00:00
Olivier Crête
25cf5262dd tflite: Make VSI header build in C code
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8523>
2025-05-20 16:05:51 +00:00
Olivier Crête
c941ded4ba tflite: Add Coral EdgeTPU inference element
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8523>
2025-05-20 16:05:51 +00:00
Denis Shimizu
05782229ee tflite: Add TensorFlow Lite element
A new element wrapping the LiteRT (aka TensorFlow Lite) inference engine.
It currently supports only CPU.

Co-authored-by: Daniel Morin <daniel.morin@collabora.com>
Co-authored-by: Denis Shimizu <denis.shimizu@collabora.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8523>
2025-05-20 16:05:51 +00:00
Olivier Crête
5c188d90c0 tensor: Add helper function to stringify a tensor data type
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8523>
2025-05-20 16:05:51 +00:00
Seungha Yang
ba05421ab2 baseparse: Add disable-clip property
Adding a property to allow pushing buffers that are out of segment,
and do not drop out of segment buffers by default

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8773>
2025-05-20 12:17:22 +00:00
Seungha Yang
1688d2c410 d3d12: Fix gstreamer-full subproject build with gcc
Since default option "cpp_std=c++14" is not applied automatically
in case that gstreamer is used as a meson subproject, specify
cpp_std option explicitly

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9030>
2025-05-20 11:12:20 +00:00
Nirbheek Chauhan
ceb1e6cd33 webrtc examples: Fix building with make
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9023>
2025-05-19 19:42:23 +00:00
Nirbheek Chauhan
6c9f9761ad webrtc examples: Fix running against self-signed certs
This broke with the initial port to libsoup 3.0

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9023>
2025-05-19 19:42:23 +00:00
Doug Nazar
08143e9967 validate: baseclasses: Reset Test timeouts between iterations
Several options (valgrind, gdb, rr) increase the timeout each time
the tests start. Eventually reaching inf and causing a conversion
to integer to throw an exception.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9019>
2025-05-19 17:09:43 +00:00
Adrian Perez de Castro
3968dd92a5 alsa: Support enumerating virtual PCM sinks
Add support to the ALSA device provider to enumerate PCM outputs that do
not correspond to a physical sound device i.e. they are "virtual" sinks,
like the plug, dmix, or softvol PCM outputs that can be setup in the ALSA
configuration files.

The main use-case for this is allowing usage of GstDeviceMonitor in setups
where there is no audio server and have custom ALSA audio configurations.
As those are likely to be uncommon, the feature is opt-in: a list of device
names and wildcard patterns separated by semicolons must be assigned to the
GST_ALSA_PCM_ALLOW environment variable before such PCM outputs will be
enumerated by the ALSA device provider. This allows either scanning all
PCM outputs, listing individual outputs, providing simple patterns with
'*' wildcards (which match only at the start or end of the name), or
a combination of them:

  GST_ALSA_PCM_ALLOW=1                         # Enable listing PCM outputs.
  GST_ALSA_PCM_ALLOW='*'                       # Same, using a wildcard.
  GST_ALSA_PCM_ALLOW='out_1;out_1'             # Exact listing.
  GST_ALSA_PCM_ALLOW='out_*'                   # Using a wildcard.
  GST_ALSA_PCM_ALLOW='out_*;other_*;line_out'  # Multiple items.

The main motivation for this patch is supporting enumeration of PCM outputs
in the WebKit GTK and WPE ports, which use GstDeviceMonitor to determine
which devices may be chosen for sound output. While on desktops typically
PulseAudio or PipeWire are used nowadays, on embedded devices it is often
desirable to avoid them and use custom configurations that perform audio
routing and processing using only ALSA.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8831>
2025-05-17 00:47:36 +03:00
Doug Nazar
d33107226c audiovisualizer: Change test to use native endian audio format
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8975>
2025-05-18 11:03:59 +00:00
Doug Nazar
19a330dba0 audiomixer: Change test to use native endian audio format
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8975>
2025-05-18 11:03:59 +00:00
Doug Nazar
74f84484a2 videoconvertscale: Use correct variable size for gst_structure_get()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8975>
2025-05-18 11:03:59 +00:00
Doug Nazar
46e13bca06 tests: opus: Update channel support and add to meson
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8982>
2025-05-17 16:51:28 +00:00
Jan Schmidt
6ecf12f019 adaptivedemux: Answer element-level SELECTABLE query
Add handling for the selectable query as an element query,
on top of the existing pad query handling. This is useful
for uridecodebin when handling stream collection messages
before any adaptivedemux source pads have been exposed.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9002>
2025-05-17 11:13:12 +00:00
Jan Schmidt
f6efbbfa2f adaptivedemux: Copy collection inside lock
When posting the collection message, don't access the shared
collection after releasing the manifest and track locks.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9002>
2025-05-17 11:13:12 +00:00
Sebastian Dröge
6877ca4d62 pipeline: Store the actual latency even if no static latency was configured
Previously the latency was only stored if a static latency was configured on the
pipeline, which caused gst_pipeline_get_configured_latency() to always return
GST_CLOCK_TIME_NONE in that case.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4429

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8972>
2025-05-17 08:58:58 +00:00
Sebastian Dröge
f3b077ff9a validate: Update h265parse expected file for container-provided bitrates
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8929>
2025-05-17 07:59:46 +00:00
Sebastian Dröge
c6fb458a3e gst-integration-testsuites: Update medias submodule
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8929>
2025-05-17 07:59:46 +00:00
Sebastian Dröge
c5520a7cae qtdemux: Add support for DNxHR
Apart from the fourcc it works the same as DNxHD and can be distinguished from
the beginning of each frame header.

ffmpeg uses the same codec ID for DNxHD and DNxHR so we use the same caps with
just an additional, optional profile field for the DNxHR profile.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3066

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8929>
2025-05-17 07:59:46 +00:00
Sebastian Dröge
9fa7f8b001 qtdemux: Parse content light level and mastering display info if available
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8929>
2025-05-17 07:59:46 +00:00
Sebastian Dröge
8a30c6b13b qtdemux: Use already parsed codec data boxes instead of parsing a second time
And parse common boxes in a central place.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8929>
2025-05-17 07:59:46 +00:00
Sebastian Dröge
cba7ce1228 qtdemux: Add missing codec sample entry fourccs to qtdemux_parse_node()
This allows parsing the various common sample entry boxes like btrt, colr, pasp,
chan, chnl, etc. for extending the caps with additional information.

Also unify some cases, which as a side effect makes them more correct because
many were not checking for different versions of the boxes and the corresponding
different offsets.

See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4403

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8929>
2025-05-17 07:59:46 +00:00
Sebastian Dröge
118e66f59d qtdemux: Take Theora headers directly out of the already parsed nodes
Instead of parsing them yet another time.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8929>
2025-05-17 07:59:46 +00:00
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