Xavier Claessens
22b7200d60
bus: do not leak message on invalid handler return value
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6124 >
2024-02-15 18:37:48 +00:00
Xavier Claessens
57f12dd2fa
bus: do not leak messages if there is no async handler
...
This does not typically happen because "enable-async" property is TRUE
by default. The only place where it is set to FALSE is in GstBin where a
sync handler is used and always returns GST_BUS_DROP.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6124 >
2024-02-15 18:37:48 +00:00
Xavier Claessens
350345150e
bus: warn when message queue grows too much
...
It usually means application is not handling messages causing memory
consumption to grow infinitely.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3313 >
2024-02-15 17:45:06 +00:00
Philippe Normand
1ecabcd1c5
taglist: Register new tag for container specific track ID
...
Unique identifier for the audio, video or text track this tag is associated
with. The mappings for several container formats are defined in the [Sourcing
In-band Media Resource Tracks from Media Containers into HTML
specification](https://dev.w3.org/html5/html-sourcing-inband-tracks ).
Based on previous patch by Brendan Long.
Fixes #45
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6041 >
2024-02-12 10:37:29 +00:00
Seungha Yang
75ddcd7566
pluginloader-win32: Early terminate if plugin loader binary is not installed
...
External plugin loader support for Windows is introduced
in this dev cycle. Since helper binary was not required (useless)
before this version, people may not ship the binary
with new GStreamer version, then they will observe warning message.
Instead of displaying the warning at plugin loading time,
checks helper bin earlier and disable external plugin loader
if helper binary is not installed.
Fixes: https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/448
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6083 >
2024-02-11 13:49:34 +00:00
Xavier Claessens
561f8b71ee
structure: Allow STRICT flag only in _serialize_full()
...
The STRICT flag makes _serialize() nullable which is an API break for
bindings. Forbid it and add _serialize_full() that accepts it and is
properly annotated.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5829 >
2024-02-09 15:45:33 +00:00
Sebastian Dröge
7c1ea2eeab
pad: Copy over seqnum when creating a new segment event for applying pad offset
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6057 >
2024-02-06 10:24:26 +00:00
Sebastian Dröge
3972736f91
utils: Remove unnecessary const-removal casts from gst_util_filename_compare()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6063 >
2024-02-06 08:03:56 +00:00
Sebastian Dröge
404e4ca626
utils: Annotate gst_util_filename_compare() parameters as filenames
...
They're not UTF-8 strings.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6063 >
2024-02-06 08:03:56 +00:00
Piotr Brzeziński
ffdec6bc2b
macos: Fix gst_macos_main() terminating whole process before returning a value
...
Removes the usage of [NSApp terminate] to avoid killing the process and thus never actually returning a value.
The new way is just to use [NSApp stop] and send an event, since stop only happens after an event is processed.
Unlike terminate, stop will only halt the event loop, not the whole process.
This uses an NSApplicationDelegate to listen for NSApp finishing the launch process, and then signals the 'main' thread
to proceed. That makes sure to never call [NSApp stop] before NSApp is actually running, which could happen if the
provided 'main' function finished quickly enough.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6005 >
2024-01-30 19:37:23 +00:00
Guillaume Desmottes
bebcb74801
core: pad: call tracer query-post hook after probes
...
Tracers are likely interested about the end result of the query, so
after probes have been caled.
Fix a bug where the buffer-lateness tracer was reporting a wrong latency
when pad probes increased the latency.
Also call the tracer hook if the pad has no query function.
Fix https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/486
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5963 >
2024-01-30 07:48:30 +00:00
Jonas K Danielsson
fa4b46680d
gstutils: Add g_util_filename_compare
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4491 >
2024-01-24 20:15:19 +00:00
Guillaume Desmottes
c9c7e83a78
core: pipeline: add gst_pipeline_get_configured_latency()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4472 >
2024-01-18 20:17:04 +01:00
Guillaume Desmottes
ba4ab9dc16
core: pipeline: add gst_pipeline_is_live()
...
Convenient API for applications wanting to check if a pipeline is live
or not. Save them from checking the change_state return value or sending
latency queries.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4472 >
2024-01-18 20:17:04 +01:00
Guillaume Desmottes
9dc4d48ff5
core: pipeline: protect priv->is_live with object lock
...
It's supposed to be according to the comment where it's defined.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4472 >
2024-01-18 20:16:19 +01:00
Xavier Claessens
6a3b2001a3
gstpad, gstobject: Add GMutexLocker helper
...
Add GST_OBJECT_AUTO_LOCK() and GST_PAD_STREAM_AUTO_LOCK() to simplify
g_autoptr(GMutexLocker) usage.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4300 >
2024-01-11 17:20:23 +00:00
Stéphane Cerveau
97ebaa0bc1
gstutils: add gst_util_ceil_log2
...
Move ceil_log2 from nalutils.* to gstutils.*
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5888 >
2024-01-09 15:34:10 +00:00
Olivier Crête
f5d5f2cf1a
meta: Add API to register metas in two steps
...
And also remove the specific registration APIs for
serializable meta.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5830 >
2023-12-19 22:41:31 +00:00
Olivier Crête
2a9c4e3270
meta: Move the clear operation to its own vfunc
...
Some transforms always assumed that the transformation was some kind
of copy. So adding a "clear" operation didn't work out in practice.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5830 >
2023-12-19 22:41:31 +00:00
Xavier Claessens
f545e79bee
meta: gst_meta_serialize() is not introspectable
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5355 >
2023-12-17 16:13:26 +00:00
Xavier Claessens
06d9d934f9
meta: Add serialize/deserialize API
...
This allows metas to be serialized to be transmitted or stored. This is
intended to be used for example by gdppay or unixfdsink.
Implemented on GstCustomMeta, GstVideoMeta, GstReferenceTimestampMeta,
and GstAudioMeta.
Sponsored-by: Netflix Inc.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5355 >
2023-12-17 16:13:26 +00:00
Xavier Claessens
9501d64ccd
structure: Add GST_SERIALIZE_FLAG_STRICT
...
It makes serialization succeed only if all values have a type that can
be deserialized.
Sponsored-by: Netflix Inc.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5355 >
2023-12-17 16:13:26 +00:00
Xavier Claessens
899d08722a
buffer: Remove trailing space
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5355 >
2023-12-17 16:13:26 +00:00
Xavier Claessens
d2fb30a188
devenv: Whitelist all plugins to be able to run tests
...
Meson devenv already overrides GST_PLUGIN_PATH and
GST_PLUGIN_SYSTEM_PATH so only built plugins can be found. That means
unit tests are allowed to use every plugins.
This makes easier to run some unit tests under devenv instead of through
"meson test".
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5748 >
2023-12-14 15:09:35 +00:00
Jordan Yelloz
4ec5de8784
gstcontext: Added gst_clear_context()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5756 >
2023-12-02 09:03:47 +00:00
Jordan Yelloz
ac6952e936
gstpromise: Added gst_clear_promise()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5756 >
2023-12-02 09:03:47 +00:00
Jordan Yelloz
e33d5303f7
gstpromise: Added GST_IS_PROMISE() macro
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5728 >
2023-11-28 15:41:49 -07:00
Stéphane Cerveau
12b2dfe41b
meson: fix gstreamer-full static mode on win32
...
Win32 was expecting the symbol gst_init_static_plugins in gstreamer-full
dynamic mode.
Add mode in gstreamer gstreamer-full options to tell if its a
gstreamer-full static or shared mode.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5098 >
2023-11-27 18:12:18 +00:00
Olivier Crête
aa7333fe43
meta: Add a new "clear" transform to avoid re-allocations
...
In the buffer pool, try to clear metas before freeing them so we
avoid constant reallocations on every frame.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4962 >
2023-11-21 18:04:53 +00:00
Daniel Moberg
8a89f4eba7
gstpad: Recheck pads when linking after temporary unlock
...
This commit makes sure that pads are valid for linking
after the pads has been temporarily unlocked in the linking process.
Not doing this opens up for a race condition where
pads potentially can be linked twice.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5670 >
2023-11-16 08:30:14 +00:00
Philippe Normand
18fcd14fb8
streamcollection: Fixup doc blurbs
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5605 >
2023-11-10 00:28:42 +00:00
Xavier Claessens
24c34cadec
GstAllocator: Add GST_ALLOCATOR_FLAG_NO_COPY flag
...
Detail a bit the intention behind GST_ALLOCATOR_FLAG_CUSTOM_ALLOC, even
if implementation does not currently fully follow that usage. Introduce
a new flag specifically for copying memories using the default system
allocator.
Sponsored-by: Netflix Inc.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5328 >
2023-11-03 18:22:00 +00:00
Philippe Normand
03717697d9
debugutils: Ensure we always expose a bin_to_dot_data implementation
...
Fixes a linking issue when building with `-Dgst_debug=false`.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5550 >
2023-10-26 08:24:40 +00:00
Seungha Yang
b545bd2ac5
pluginloader-win32: Increase plugin loading timeout
...
Some hardware plugin loading might take more than 10sec under
full CPU load condition
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5545 >
2023-10-25 20:13:07 +00:00
Tim-Philipp Müller
654f3370a0
meson: Bump GLib requirement to >= 2.64
...
This includes fixes to make GstBus watches non-racy.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2126 >
2023-10-22 10:48:12 +01:00
Xavier Claessens
452ab184cb
GstCustomMeta: simplify API
...
Move the GstStructure field into public struct for direct access, that's
easier than having to call a function to get it. It is not an API/ABI
breakage to extend the public structure of a GstMeta because they are
always allocated by inside GStreamer. The structure is exposed already
by gst_custom_meta_get_structure() which does not return a copy/ref, so
it is locked into holding a GstStructure forever anyway.
Also add gst_meta_register_custom_simple() because most of the time only
a name is required, tags and transform functions are more niche
use-case.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5385 >
2023-09-27 18:46:34 +00:00
Ruben Gonzalez
87dcc7f7ad
gstutils: Delete extra semicolon
...
Warning reported by GCC with -Wpedantic: ISO C does not allow extra
‘;’ outside of a function.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5359 >
2023-09-20 17:18:58 +00:00
Matthew Waters
9160a9eb26
parse: avoid -Werror=unused-but-set-variable
...
bison seems to generate a yyparse() with one unsed but set variable in it.
Avoid that.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5110 >
2023-07-29 13:12:21 +00:00
Philippe Normand
cec774b653
query: Add a quark for SELECTABLE query type
...
So that `gst_query_type_get_name()` won't return "unknown" for this type.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5048 >
2023-07-19 01:24:30 +00:00
Víctor Manuel Jáquez Leal
e5d524b338
caps: Fix documentation
...
Fix gst_caps_filter_and_map_in_place() documentation, aiming to
gst_caps_maps_in_place() to express their difference.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4933 >
2023-06-26 19:56:55 +02:00
Alicia Boya García
82ffdfb13c
task: Log task states as string
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4913 >
2023-06-22 23:24:58 +00:00
Edward Hervey
8081c22a73
streamcollection: Use upstream-id as name
...
It is more coherent, in the same vein as 08dc5d29
Fixes #2640
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4911 >
2023-06-22 14:06:04 +02:00
Seungha Yang
eb87bbc1ba
gst: Don't use DllMain in case of static build
...
That might cause duplicated symbol linking error if app has its own
DllMain
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4905 >
2023-06-20 19:14:49 +00:00
Guillaume Desmottes
767ee35265
tracerutils: allow casting parameters types
...
It was impossible to have an u32 parameter such as
'max-buffer-size=(uint)5' because the parentheses were not properly
parsed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3981 >
2023-06-12 12:27:57 +00:00
Nicolas Dufresne
343c42ca84
flagset: Fail parsing on overflowing hex strings
...
This adds code to detect when the hex form of the string we are to
parse exceeds the number of bytes that would form a 32bit flag. This will
avoid treating as flagset anything above then the expected 32 bits and also
stop treading DRM format with modifiers as flagset (like
drm-format=AB24:0x0100000000000002).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4775 >
2023-06-09 22:26:39 +00:00
Philippe Normand
56b9c4772f
utils: Fix doc warnings in gst_utils_simplify_fraction
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4793 >
2023-06-08 02:38:54 +00:00
Seungha Yang
9f70328b70
systemclock: Use Windows interlocked APIs
...
MSVC most likely does not support C11 atomic operations
with given compile options
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4794 >
2023-06-08 01:02:45 +00:00
Seungha Yang
c79649b6ec
gst: Call priv_gst_clock_init() on DllMain
...
Can avoid atomic read per gst_util_get_timestamp() call
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4794 >
2023-06-08 01:02:45 +00:00
Stéphane Cerveau
e6cd58bc3c
gstreamer-full: keep g_module_symbol to init plugins
...
In Android use case, the flag GST_FULL_COMPILATION
is not defined whereas the plugins need to be
initialized using 'gst_init_static_plugins'
method.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4777 >
2023-06-06 13:10:21 +00:00
Nirbheek Chauhan
5fed707553
docs: Use backticks to escape * in markdown
...
Otherwise it's interpreted as emphasis.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4753 >
2023-06-02 13:25:23 +00:00