Commit graph

121868 commits

Author SHA1 Message Date
Denis Yuji Shimizu
51a3ef55c9 analytics: objectdetectionoverlay: improve event handling
This change ensures that the `GST_EVENT_EOS`,
`GST_EVENT_FLUSH_START` and `GST_EVENT_FLUSH_STOP`
events are forwarded to the sink downstream.
The logging message for `GST_EVENT_FLUSH_START`
has also been fixed.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8576>
2025-03-01 10:47:33 +00:00
Nicolas Dufresne
356c1ff8e3 validate: Do not use G_URI_FLAGS_NONE symbol from 2.66
The GStreamer project currently requires GLib 2.64,
so just avoid this new API for now.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8577>
2025-03-01 00:03:55 +00:00
Dongyun Seo
c206ddd930 playbin3: fix unlocking twice
fix unlocking playbin3 lock twice.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8570>
2025-02-28 13:49:11 +00:00
Dongyun Seo
e778791b90 pitch: fix build error
fix build error due to sound integer sample caps

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8570>
2025-02-28 13:49:11 +00:00
Elliot Chen
4b44169f05 gstplay: support disabling the selected track at startup
In some cases, need to disable some type tracks at startup before
receiving the stream collection message. And fix printing error log
in this case.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8568>
2025-02-28 18:10:18 +09:00
Robert Mader
970bfc335e waylandsink/demo: Use playbin3 instead of playbin
Video looping currently does not work reliably with the later
and playbin3 is generally considered the better choice.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8561>
2025-02-27 23:32:29 +00:00
Olivier Crête
0e9d6f7e42 avtpsrc: Use GSocket to have cancellable wait
Otherwise it would block forever when there is no sender.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8550>
2025-02-27 21:37:51 +00:00
Tim-Philipp Müller
3523ba76ae csharp: fix GstAudioRingBuffer structure size and field offset mismatches
.. which caused the gstreamer_sharp_abi unit test to fail.

GstAudioRingBuffer has segdone and segbase as struct fields and
a get/set API with the same name but different types. The fields
have been deprecated and are no longer used now, and they need to
be hidden and we also need to rename them so that the generator
does not mix types (the setter/getters use guint64 but the fields
have gint types, which caused some type confusion in the generator).

Co-authored by: Andoni Morales Alastruey <ylatuya@gmail.com>

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8541>
2025-02-27 17:38:57 +00:00
Tim-Philipp Müller
458494c8e5 csharp: gstreamer: update for 1.26 API
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8541>
2025-02-27 15:03:00 +00:00
Tim-Philipp Müller
15323a65fb csharp: ges: update for 1.26 API
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8541>
2025-02-27 15:02:32 +00:00
Thibault Saunier
4c051f25c8 dots-viewer: cargo: Mark as not being part of a workspace
Otherwise if GStreamer is checked out inside a directory that
has a `Cargo.toml` file, building fails with:

```
error: current package believes it's in a workspace when it's not:
current rust-project/gstreamer/subprojects/gst-devtools/dots-viewer/Cargo.toml
workspace rust-project/Cargo.toml

This may be fixable by adding `gstreamer/subprojects/gst-devtools/dots-viewer`
to the `workspace.members` array of the manifest located at: rust-project/Cargo.toml

Alternatively, to keep it out of the workspace, add the package to the `workspace.exclude`
array, or add an empty `[workspace]` table to the package's manifest.
```

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8562>
2025-02-26 16:20:25 +00:00
Jochen Henneberg
71d8618daf qtdemux: Ignore non-zero values for UV/XY in transformation matrix
But write an info message about that. The values have been ignored
before !8127 as well.

Fixes #4252

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8559>
2025-02-26 14:51:57 +00:00
L. E. Segovia
8ab2844443 android: Use the Ninja generator
An upcoming Cerbero change will one-ring all the builds.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8478>
2025-02-26 12:22:23 +00:00
L. E. Segovia
c963597525 cmake: Memoize include checks
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8478>
2025-02-26 12:22:23 +00:00
Sebastian Dröge
593dc0356c Revert "glupload: Add formats supported by #GstGLMemory to raw caps when generating sink pad caps"
This reverts commit cf30e875de.

This broke caps negotiation on Wayland/EGL with:

  videotestsrc ! glupload ! glimagesinkelement

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

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8552>
2025-02-26 10:08:41 +00:00
Thibault Saunier
ff15682f0a docs: Add a way to specify extra_assets path for plugins doc
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8545>
2025-02-25 20:06:12 +00:00
Roberto Viola
2e8b542145 dashsink: fix period duration in dynamic MPD
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8531>
2025-02-25 12:33:39 +00:00
Tim-Philipp Müller
1b01090e4a rtsp-server: media: fix locking in gst_rtsp_media_get_dscp_qos()
Fixes #4247

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8551>
2025-02-25 01:03:38 +00:00
Sebastian Dröge
1d91616b3c splitmuxsink: Also increment fragment IDs when no filename is configured on the sink
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8544>
2025-02-24 23:11:52 +00:00
Thibault Saunier
6d83673132 tracer: dots: Check that pipeline-snapshot::dots-viewer-ws-url exists
It is a very new property and the tracer should still be usable if that
property doesn't exist

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8547>
2025-02-24 20:04:49 +00:00
Jochen Henneberg
30a00b6a97 validate: Don't print to stdout on bail out
Otherwise, if the output is multiline like from expected/actual file
comparison mismatch, meson will parse the lines for TAP formatted
strings and report an error. In that case the tests is accidently
SKIPPED instead of FAIL.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8376>
2025-02-24 19:00:16 +00:00
Jochen Henneberg
8a5ca84612 validate: Get proper error message on diff error instead of assert
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8376>
2025-02-24 19:00:16 +00:00
Jochen Henneberg
61fc65475e validate: 'bat' is optional
If 'bat' is not installed G_IS_SUBPROCESS (subprocess) fails and the
error message is misleading.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8376>
2025-02-24 19:00:16 +00:00
Thibault Saunier
ed943b04c0 dots-viewer: cargo_wrapper: Force log file to be written in utf-8
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8242>
2025-02-24 18:10:50 +00:00
Qian Hu (胡骞)
a99694cca8 wayland: leverage unified object destruction for wl_callback
This patch refactors gst_wl_display_callback_destroy() to use the
recently introduced gst_wl_display_object_destroy() helper. Previously,
the function manually handled wl_callback destruction with explicit
lock/unlock calls and direct invocation of wl_callback_destroy().
Switching to gst_wl_display_object_destroy() unifies the destruction
process across similar objects, reducing code duplication and potential
errors.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8242>
2025-02-24 18:10:50 +00:00
Qian Hu (胡骞)
6d17596777 wayland: fix crash issue during stop flow
when received xdg config event fron wayland server,
gst_wl_display_thread_run will call handle_xdg_surface_configure
which protected by priv->sync_mutex.

and in handle_xdg_surface_configure, configure_mutex also is locked

but if waylandsink set state from paused to ready, that will dispose
wlwindow, which will try to clear configure_mutex, and try to destroy
xdg_surface,
that do not proteced by anything.

so, problem is:
1) if clear configure_mutex(with locked state), clear lock will abort
2) after xdg_surface destroy, handle_xdg_surface_config may still call
   ack_configure, that will lead wayland server go wrong

so, this patch updates gst_wl_window_finalize to use the new
destruction function for xdg_toplevel and xdg_surface, ensuring all
destruction operations are properly synchronized.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8242>
2025-02-24 18:10:50 +00:00
Qian Hu (胡骞)
308540c2fe wayland: add synchronized object destruction function
Introduces a new generic destruction function
gst_wl_display_object_destroy that ensures all
destruction operations are protected by
sync_mutex.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8242>
2025-02-24 18:10:50 +00:00
Thibault Saunier
722c088ab3 tests: dash: Test retry-backoff-time
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8128>
2025-02-24 16:57:23 +00:00
Thibault Saunier
bbf5b71622 tests: dash: Add a test to check that retries work
This tries that both `souphttpsrc` and `adaptivedemux2` behave as
expected when HTTP failures happen but "solve themselves".

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8128>
2025-02-24 16:57:23 +00:00
Thibault Saunier
8c16be5901 adaptivedemux: Add 'backoff' logic for HTTP request
So that the user can configure waits between retries

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8128>
2025-02-24 16:57:23 +00:00
Thibault Saunier
6d0c0d5d29 adaptivedemux2: Expose a max-retries property
So the user can configure what is the maximum number of time HTTP requests can
be performed

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8128>
2025-02-24 16:57:23 +00:00
Thibault Saunier
ba4a260c07 souphttpsrc: Add the notion of "retry-backoff"
So that the user can force waits between retries

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8128>
2025-02-24 16:57:23 +00:00
Thibault Saunier
6652360d30 souphttpsrc: Retry on SERVICE_UNAVAILABLE and INTERNAL_SERVER_ERROR
Those might be temporary issue, for example s3 returns SERVICE_UNAVAILABLE high
load, but afterward a few tries the request will work, and it has been observed
that internal server error sometimes "fix themselves"  so it makes sense to
also retry requests, in case.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8128>
2025-02-24 16:57:23 +00:00
Thibault Saunier
99ad918ece adaptivedemux2: Increment retry counter to stop after MAX_ERROR_COUNT
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8128>
2025-02-24 16:57:23 +00:00
Thibault Saunier
1faa88b1ff dashdemux2: Do not set empty string 'track_id'
This is not needed and generates g_warning like:

```
  Trying to set empty string on taglist field 'container-specific-track-id'. Please file a bug.
```

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8128>
2025-02-24 16:57:23 +00:00
Thibault Saunier
294f1165fa validate: Implement a 'http-request' action type
Which is useable with our own HTTP server

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8128>
2025-02-24 16:57:23 +00:00
Thibault Saunier
7e1fd3b069 validate: scenario: Reset the pipeline on expected ERROR messages while executing actions
Otherwise the scenario gets into an inconsistent state and users won't
be able to properly recover.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8128>
2025-02-24 16:57:23 +00:00
Thibault Saunier
6ddaa9f56a validate: scenario: Better log expected Error messages on the bus
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8128>
2025-02-24 16:57:23 +00:00
Thibault Saunier
78cf4706d9 validate: launcher: add HTTP server control endpoints
Add administrative REST API endpoints to RangeHTTPServer allowing tests to:

- Configure HTTP return codes for specific paths:
  * PUT /admin/status-rules to set rules
  * Support time-based expiry with "during" parameter
  * Support count-based expiry with "repeat" parameter
  * DELETE /admin/status-rules/<path> to remove rules

- Track failure statistics:
  * PUT /admin/failure-counts/start to begin monitoring
  * GET /admin/failure-counts/<path> to get current count

Useful for testing HTTP retry mechanisms, error handling and failure
recovery behaviors.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8128>
2025-02-24 16:57:22 +00:00
Thibault Saunier
0259d46fd3 validate: scenario: Add an action type to start the http scenario
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8128>
2025-02-24 16:57:22 +00:00
Elliot Chen
2548503898 scaletempo: scaletempo: clip the timestamp or duration of gap event if needed
For some cases, maybe the timestamp of gap event is smaller than
segment start value or larger than segment stop value in playback.
And the timestamp plus duration may exceed segment boundary. Need
check and clip the timestamp or duration before recalculating.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8517>
2025-02-24 12:09:04 +00:00
Tim-Philipp Müller
644a005ecb Back to development after 1.25.90 2025-02-23 23:52:57 +00:00
Tim-Philipp Müller
94a3e912ab Release 1.25.90 2025-02-23 23:44:10 +00:00
Tim-Philipp Müller
2ad386e4e4 gst-plugins-ugly: update translations 2025-02-23 23:44:02 +00:00
Tim-Philipp Müller
2f0a0a837c gst-plugins-bad: update translations 2025-02-23 23:44:02 +00:00
Tim-Philipp Müller
7bd882b94c gst-plugins-good: update translations 2025-02-23 23:44:02 +00:00
Tim-Philipp Müller
a43c9ba9a0 gst-plugins-base: update translations 2025-02-23 23:44:02 +00:00
Tim-Philipp Müller
9cd9db2b77 gstreamer: update translations 2025-02-23 23:44:02 +00:00
Nirbheek Chauhan
7b3ec8c419 ci: Don't install WiX 3.x in the windows image
Fails to install, and we don't need it anymore either.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8532>
2025-02-23 16:55:53 +00:00
Sebastian Dröge
bd2308f9cc ci: Update image tags
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8532>
2025-02-23 16:55:53 +00:00