Sebastian Dröge
e8ab8eccae
baseparse: Try harder to fixate caps based on upstream in default negotiation
...
Upstream might provide a width/height while downstream has the field but accepts
a range. gst_caps_fixate() would select the minimum value of that range later
but it would be more accurate to take the upstream value, at least if it's a
subset of what downstream accepts.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4608
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9593 >
2025-08-24 10:32:02 +00:00
Vivienne Watermeier
54d28569b2
baseparse: don't clear most sticky events after a FLUSH_STOP event
...
Clearing sticky events - besides EOS, STREAM_GROUP_DONE, and SEGMENT -
risks losing them if a flush occurs before we get another buffer.
Also adds a unit test: parser_sticky_events_after_flush
Fixes #4193
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9506 >
2025-08-21 11:00:36 +00:00
Mathieu Duponchelle
75590bfeac
aggregator: implement start-time-selection=now
...
This is actually the only correct mode when live, let's at least expose
an option for it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9394 >
2025-08-13 14:13:22 +03:00
Sebastian Dröge
9d6cd03221
ptp: Fix a new Rust 1.89 compiler warning on Windows
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9527 >
2025-08-11 07:49:48 +00:00
Sebastian Dröge
8921c6504b
ptp: Fix new compiler warning with Rust 1.89
...
This still compiles with Rust 1.48 and newer.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9512 >
2025-08-08 13:14:30 +03:00
Doug Nazar
88314f7706
netclientclock: Add deinitialize function for testing
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9115 >
2025-07-07 13:01:34 +00:00
Mathieu Duponchelle
39a7e0066c
aggregator: add sub_latency_min to pad queue size
...
It should be possible for a subclass to let data accumulate on any of its input
pads for as long as it has introduced latency.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9320 >
2025-07-02 06:11:27 +00:00
Thibault Saunier
07e6d5a881
aggregator: Do not set event seqnum to INVALID
...
This might happen when we get EOS without any data flow
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9128 >
2025-05-30 23:16:07 +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
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
Nirbheek Chauhan
2c39756b24
gst-ptp-helper: Fix meson warning about rust_crate_type
...
WARNING: Project targets '>= 1.4' but uses feature deprecated since
'1.3.0': rust_crate_type arg in static_library. Use rust_abi or
rust.proc_macro() instead.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8753 >
2025-04-30 10:18:57 +00:00
Sebastian Dröge
df46cfcb28
aggregator: Don't produce buffers when live but not in PLAYING yet
...
Especially in force-live=true mode it was possible to produce buffers before the
element was set to PLAYING as long as a clock was available already.
This could easily lead to outputting buffers too early, and e.g. before the
correct base time is set and available.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8897 >
2025-04-26 11:08:12 +03:00
Sebastian Dröge
b05a498187
aggregator: Check after waiting if we're still running and otherwise stop
...
Previously we might've produced a buffer needlessly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8897 >
2025-04-26 11:07:27 +03:00
Mathieu Duponchelle
d1b4104cbc
aggregator: expose current-level-* properties on sink pads
...
As aggregator internally queues data (up to latency), those properties
are helpful to monitor queue levels in the complete pipeline.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8731 >
2025-04-08 17:26:34 +00:00
Alexander Slobodeniuk
7aace62267
aggregator: fix chaining up in GObject "constructed" virtual methods
...
This doesn't always bring visible issue, but is formally incorrect:
not chaining up means that the code doesn't trigger GstObject and
GstElement "constructed" implementations.
In particular both GstElement's and GstObject's classes in
"constructed" may sign up this object for tracing and
GstObject's class sets GST_OBJECT_FLAG_CONSTRUCTED flag.
If we don't chain up none of this is going to be executed.
For example, before the fix leaks tracer couldn't detect this leak:
```c
int main (int argc, char **argv) {
g_setenv ("GST_TRACERS", "leaks(name=all-leaks)", TRUE);
g_setenv ("GST_DEBUG", "GST_TRACER:7", TRUE);
g_setenv ("G_DEBUG", "fatal-warnings", TRUE);
gst_init (&argc, &argv);
// leak audiomixer: doesn't detect because it's based on the aggregator
gst_element_factory_make ("audiomixer", "Jerry");
// leak videoconvert: this one is detected fine because it's not
// based on the aggregator
//gst_element_factory_make ("videoconvert", "Tom");
gst_deinit ();
return 0;
}
// $ cc tst.c $(pkg-config --cflags --libs gstreamer-1.0) -o tst && ./tst
```
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8416 >
2025-02-10 17:49:28 +00:00
L. E. Segovia
fab3da528e
gst-indent: build our own indent tool and make it available in the devenv
...
No more formatting mismatches owing to different GNU indent
versions shipped by different distro versions.
See #340
Co-authored-by: L. E. Segovia <amy@centricular.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5192 >
2025-01-31 19:14:41 -03:00
Sebastian Dröge
fb2337ea82
netclientclock: Don't stop searching the clock cache when the first corrupted clock is found
...
The clock we're looking for might be working fine and be available afterwards.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8334 >
2025-01-27 07:47:05 +00:00
Sebastian Dröge
dd58ae8cc8
netclientclock: Don't ever store failed internal clocks in the cache
...
If starting the internal clock fails we would still store a broken clock in the
cache despite it being unusable and never recovering.
Not storing it allows the application to simply create a new one at a later time
and have starting it retried.
Also signal to the application that such a clock is not synced.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8334 >
2025-01-27 07:47:05 +00:00
Mathieu Duponchelle
7983ecff1c
docs: generate hotdoc configs for libraries with our helper script
...
With this patch, configure time is identical no matter whether doc is
enabled or not.
The configuration files also now contain explicitly-listed sources with
no wildcards.
For the four libraries where hotdoc needs to use clang to generate the
documentation (as opposed to the rest of the libraries where hotdoc uses
the gir), the script will call pkg-config to determine the appropriate
C flags.
This means a side effect of this patch is that pkg-config files are now
generated for the gstadaptivedemux and gstopencv libraries.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8312 >
2025-01-17 20:36:06 +01:00
Edward Hervey
316722d7c9
gstptpclock: Fix GST_STIME_ARGS usage
...
It requires a signed value
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229 >
2025-01-13 12:51:44 +00:00
Andrew Yooeun Chun
26e769589a
basetransform: fix incorrect logging inside gst_base_transform_query_caps
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7381 >
2025-01-12 03:41:02 +00:00
Sebastian Dröge
d08fb9c241
baseparse: Add bitrate tags to empty taglists too
...
It's unclear why empty taglists should be handled in a special way. If the
subclass or upstream did not provide any tags at all then we can still provide
bitrate tags at least.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8157 >
2024-12-21 13:07:44 +00:00
Thibault Saunier
2c9a642b66
meson: Give the same name for api_version in all modules
...
There were 2 version of it, apiversion and api_version, I chose the one
with most occurencies: `api_version`
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8178 >
2024-12-20 20:19:28 +00:00
Thibault Saunier
619b1df389
gst-plugin-scanner: Do not create tracers when inspecting plugins
...
Ensuring that GST_TRACERS is not set in that process
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8086 >
2024-12-10 09:35:35 +00:00
Alicia Boya García
2080aff70c
adapter: Improve documentation for gst_adapter_available()
...
When I first read the documentation of gst_adapter_available() and
gst_adapter_available_fast() I got quite confused as it seemed that
both performed the same purpose but one was slower than the other.
I shared it with other people and found they also arrived at the same
wrong conclusion.
Hopefully this patch will make the actual purpose clearer.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-docs/-/issues/12
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7859 >
2024-11-11 17:25:18 +00:00
Taruntej Kanakamalla
36d8243397
ptp: use ip_mreq instead of ip_mreqn for macOS
...
To join a multicast the macOS still uses the interface address
from the ip_mreq instead of the ip_mreqn unlike other Linux systems.
So add a new conditional block for macOS to use ip_mreq for IP_ADD_MEMBERSHIP
and ip_mreqn for IP_MULTICAST_IF
This is similar to the fix in the glib for multicast join/leave
operation on macOS
https://gitlab.gnome.org/GNOME/glib/-/merge_requests/4333
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7851 >
2024-11-11 10:26:43 +00:00
Mathieu Duponchelle
eb825574f4
aggregator: fix start time selection first with force-live
...
When force-live is true, we don't want to wait for a first buffer
to select a start time.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1783
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7752 >
2024-10-29 08:52:40 +00:00
Edward Hervey
38c07a2d01
all: Fix closure annotations
...
This was misused almost everywhere.
See
https://gi.readthedocs.io/en/latest/annotations/giannotations.html#support-for-gobject-closures
and: https://www.bassi.io/articles/2023/02/20/bindable-api-2023/
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7725 >
2024-10-25 08:58:29 +00:00
Mathieu Duponchelle
5e8359d407
aggregator: fix live query when force-live is TRUE
...
When force-live is TRUE, aggregator will correctly change its state with
NO_PREROLL, but unless something upstream is live did not previously set
live to TRUE on the latency query.
Fix this by or'ing force_live into the result.
Also improve debug
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7718 >
2024-10-23 18:52:54 +00:00
Robert Rosengren
ff6ad49557
Revert "gstnetclockclient: signal lost sync if remote time resets"
...
This reverts commit 779e715b6cee4f7793c43a0e78c6106ab66f1032.
Since the introduced corrupt clock state for when discovering a time
server restart, this resulted in previous similar check as done in
this patch became ignored/jumped over (in case of the corrupt state
has been noticed).
Reference: df41d11a7d7f844e593a10f6a6a0858333fbf7ec
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7664 >
2024-10-23 16:13:44 +00:00
Robert Rosengren
3f6bde317e
netclientclock: send clock sync signal upon corrupted
...
Clients that already gotten a signal for synced clock, may rely on
getting the same when marked as corrupted to take appropriate action. So
send clock signal indicating no sync at identified corrupted state.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7664 >
2024-10-23 16:13:44 +00:00
Sebastian Dröge
25184cf496
ptp-helper: Silence deprecation warning
...
The new API is only available since Rust 1.81.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7678 >
2024-10-17 22:39:45 +00:00
Jakub Adam
5d995382f8
aggregator: Fix handling NEED_DATA return from update_src_caps()
...
Since GST_AGGREGATOR_FLOW_NEED_DATA == GST_FLOW_CUSTOM_ERROR == -100,
in order to print the right debug message, we have to check that
condition first before comparing ret with GST_FLOW_OK.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7663 >
2024-10-16 20:07:43 +00:00
Sebastian Dröge
6233eb0ff3
common: Stop using GQuark-based GstStructure field name API
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432 >
2024-09-26 19:21:29 +03:00
Sebastian Dröge
37ef85f268
aggregator: Add gst_aggregator_push_src_event()
...
This ensures that any pending events are pushed before pushing the new event.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7542 >
2024-09-19 17:08:45 +03:00
Sebastian Dröge
075a81b44f
aggregator: Remove unused tag handling code
...
If this becomes API it would now have to be implemented differently because
various elements are implementing tag handling themselves now and this would
conflict.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7542 >
2024-09-19 16:12:14 +03:00
Sebastian Dröge
03d2b28559
aggregator: Immediately return NONE from simple_get_next_time() on non-TIME segments
...
Otherwise this gives critical warnings.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7511 >
2024-09-13 12:23:52 +03:00
Tim-Philipp Müller
6031f9ece1
gstreamer: use g_sort_array() instead of deprecated g_qsort_with_data()
...
Fixes compiler warnings with the latest GLib versions.
See https://gitlab.gnome.org/GNOME/glib/-/merge_requests/4127
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7384 >
2024-09-02 22:31:34 +00:00
Jan Schmidt
807dbfbebf
check: Add fail_unless_matches_string() and assert macros
...
Add string check macros for checking expected strings against
a regular expression instead of just a direct literal match
as provided by the existing fail_unless_equals_string()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7365 >
2024-08-16 14:18:35 +00:00
Vivia Nikolaidou
331b37ac9a
ptpclock: Fix typo in comments
...
s/continous/continuous/
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7121 >
2024-07-02 00:08:28 +00:00
Edward Hervey
a20569b1ba
basesink: Remove field not used
...
It was never actually used since it was introduced as part of the commit
introducing support for instant rate
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7077 >
2024-06-21 09:29:48 +02:00
Guillaume Desmottes
e2b1730398
typefindhelper: implement get_length on GstTypeFindBufHelper
...
Some typefind code may rely on gst_type_find_get_length() which was not
working when using the helper.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6937 >
2024-06-07 10:00:56 +02:00
Samuel Thibault
31047b878f
ptp-helper: Add GNU/Hurd support
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6970 >
2024-05-30 16:14:29 +00:00
Sebastian Dröge
2a58e6de8f
gstreamer: ptp-helper: Use u64 instead of c_ulong for ifa_flags on Solaris/Illumos
...
See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3553#note_2429400
Patch by Marcel Telka <marcel@telka.sk>.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6934 >
2024-05-28 09:06:57 +03:00
Sebastian Dröge
1c88b06912
gstreamer: ptp-helper: Use if_nametoindex
and setsockopt
on Solaris / Illumos too
...
Patch by Marcel Telka <marcel@telka.sk>.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3552
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6925 >
2024-05-26 12:34:26 +03:00
Sebastian Dröge
354623a246
gstreamer: ptp-helper: Don't import Context
trait multiple times unnecessarily
...
This only affected the Solaris / Illumos code path.
Patch by Marcel Telka <marcel@telka.sk>.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3551
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6925 >
2024-05-26 12:34:21 +03:00
Sebastian Dröge
8bff6b4988
gstreamer: ptp-helper: Use c_ulong
for ifa_flags
on Solaris/Illumos
...
Based on a patch by Marcel Telka <marcel@telka.sk>.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3553
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6925 >
2024-05-26 12:34:13 +03:00
Sebastian Dröge
1f12493787
gstreamer: Solaris/Illumos require linking to libnsl / libsocket for various socket APIs
...
Patch by Tim Mooney <Tim.Mooney@ndsu.edu> from OpenIndiana/oi-userland
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6925 >
2024-05-26 12:33:50 +03:00
Sebastian Dröge
0ef396359c
gst: Move GstQueueArray as GstVecDeque to core
...
And change lengths and indices from guint to gsize for a more correct type.
Also deprecate GstQueueArray and implement it in terms of GstVecDeque.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6779 >
2024-05-06 18:25:42 +00:00
Johan Sternerup
deddcbdc66
basesrc: protect segment_seqnum/pending with object lock
...
In a few places the object lock was not taken when writing to
segment_pending and segment_seqnum.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6671 >
2024-04-22 18:13:46 +00:00