376 Commits

Author SHA1 Message Date
Seungha Yang
40d2026267 gstplugin: Fix for UWP build
SetThreadErrorMode() API is available on UWP but flag values
are desktop API only. Since error dialogs don't exist on UWP,
we don't need to suppress it

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1569>
2022-01-25 18:32:43 +00:00
Sebastian Dröge
b0816c4157 gstreamer: capsfeatures: Fix docs of gst_caps_features_new_single()
They were just a copy of the `new_any()` docs before.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1542>
2022-01-20 10:59:56 +02:00
Nirbheek Chauhan
614a213e6a gstplugin: Better warnings on plugin load failure on Windows
It is an extremely common mistake on Windows to have incorrect PATH
values when loading a plugin, and the error from g_module_error()
(which just calls FormatMessageW()) is very confusing in this case:

 The specified module could not be found.

 https://docs.microsoft.com/en-us/windows/win32/debug/system-error-codes--0-499-#ERROR_MOD_NOT_FOUND

It implies the plugin itself could not be found. The actual issue is
that a DLL dependency could not be found. We need to detect this case
and print a more useful error message.

We should still print the error fetched from FormatMessage() so that
people are able to google for it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1540>
2022-01-19 18:02:59 +00:00
Seungha Yang
67dce4c12c pluginfeature: Fix object leak
Need to release GstPluginFeature object after use

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1521>
2022-01-13 23:19:39 +00:00
Nirbheek Chauhan
1be6d6ccf5 meson: Add explicit check: kwarg to all run_command() calls
This is required since Meson 0.61.0, and causes a warning to be
emitted otherwise:

2c079d855e
https://github.com/mesonbuild/meson/issues/9300

This exposed a bunch of places where we had broken run_command()
calls, unnecessary run_command() calls, and places where check: true
should be used.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1507>
2022-01-09 18:12:47 +05:30
Corentin Noël
9ebcfb5221 elementfactory: Annotate create_full and make_full to take arrays
We need the array annotation for it to be usable from the introspection side.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1427>
2021-12-08 12:25:41 +00:00
Seungha Yang
97c7fec8be gst: Add APIs to allow documentation for element to be skipped
Dynamically registered elements (hardware element in most cases)
may or may not be available on a system and properties may be different
per system.
This new API will make documentation skipping possible in programmable way.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1360>
2021-11-19 13:38:18 +00:00
Sebastian Dröge
5dc95e00fa gstinfo: Add gst_debug_log_literal() function
This takes a plain message string and not a format string, and as a
result doesn't have to be passed through vasprintf() and lead to further
unnecessary allocations. It can also contain literal `%` because of
that.

The new function is mostly useful for bindings that would have to pass a
full string to GStreamer anyway and would do formatting themselves with
language-specific functionality.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1356>
2021-11-16 16:32:55 +00:00
Daniel Knobe
74957bfd50 caps: fix type of return value if string is null in gst_caps_from_string
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1348>
2021-11-15 10:56:43 +00:00
Tim-Philipp Müller
972615cf22 docs: fix unnecessary ampersand, < and > escaping in code blocks
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1340>
2021-11-12 11:39:19 +00:00
Sebastian Dröge
79c4275ed4 bin: Don't check twice for adding a bin to itself or removing it from itself
This is already covered by a `g_return_val_if_fail()` in the calling
function.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1320>
2021-11-08 20:31:44 +00:00
Sebastian Dröge
ddfd778c19 bin: Switch g_warning()s to GST_WARNING_OBJECT()s when adding/removing an element to a bin fails
The failure conditions can be overidden by subclasses, and a boolean
return value is provided to the caller whether adding/removing the child
element has actually worked. The caller can then handle this
accordingly but flooding stderr with this is not very useful.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1320>
2021-11-08 20:31:44 +00:00
Nicolas Dufresne
d4bcff7dab gstinfo: Fix leak in generate_backtrace_trace
Spotted by Laurent Pinchart.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/901>
2021-11-08 17:22:06 +00:00
Tim-Philipp Müller
d96e44922e Use g_pattern_spec_match() instead of g_pattern_match() which is deprecated since glib 2.70
Fixes compiler warnings with glib 2.70

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1279>
2021-10-30 00:34:35 +01:00
Ruben Gonzalez
0fee1e5d46 devicemonitor: g_queue_clear_full introduced in glib 2.60
The GStreamer dependency is glib >=2.56.0. Therefore, define
g_queue_clear_full if glib < 2.60.

Issue added in commit 1912bcbc

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1251>
2021-10-25 21:55:25 +02:00
Sebastian Dröge
1912bcbcc4 devicemonitor: Only fail start() if no provider at all could be started
Also refactor various internals of the monitor code:
  - Don't allow starting twice but just return directly when starting a
    second time.
  - Don't end up in an inconsistent state if call start() a second time
    while the monitor is starting up.
  - Remove complicated cookie code: it was not possible to add/remove
    filters while the monitor was started anyway so this was only useful
    in the very small time-window while starting the monitor or while
    getting the devices. Instead disallow adding/removing filters while
    the monitor is starting, and when getting devices work on a snapshot
    of providers/filters.

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

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1189>
2021-10-25 10:13:27 +00:00
Tim-Philipp Müller
081cada7cb meson: fix use of deprecated meson api external_program.path()
Just using .full_path() instead.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
2021-10-20 11:20:44 +00:00
Edward Hervey
08dc5d2961 stream: Set the object name to the stream id
Makes it more meaningful in debug logs (instead of streamNNNNN)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1187>
2021-10-20 05:53:20 +00:00
Xavier Claessens
2a10311ef5 Revert "meson: Link to objects instea of static helper library"
This reverts commit b19de413b94d228b1460b0899f9b41b2b5233943.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1194>
2021-10-19 16:56:35 +00:00
Tim-Philipp Müller
16e7048d82 gstreamer: define G_LOG_DOMAIN for all libraries
And get rid of weird way the define was done for core.

Fixes #634

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1009>
2021-10-19 00:12:25 +00:00
Thibault Saunier
6e79932ad9 meson: List libraries and their corresponding gir definition
Introduces a `libraries` variable that contains all libraries in a
list with the following format:

``` meson
libraries = [
    [pkg_name, {
        'lib': library_object
        'gir': [ {full gir definition in a dict } ]
    ],
    ....
]
```

It therefore refactors the way we build the gir so that we can reuse the
same information to build them against 'gstreamer-full' in gst-build
when linking statically

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1093>
2021-10-15 19:27:30 -03:00
Thibault Saunier
e2dd28a753 meson: Mark files as files()
Making it more robust and future proof

And fix issues that it creates

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1093>
2021-10-15 19:27:30 -03:00
Veronika Kremneva
1fdcbae677 gstreamer/gst/gstconfig.h.in: Add support for ARC64 architecture
Signed-off-by: Veronika Kremneva <kremneva@synopsys.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1161>
2021-10-15 10:22:56 +00:00
Robert Rosengren
69b3b1d6bf registrybinary: registry file mode via GST_REGISTRY_MODE
In an embedded system where all services run as seperate users it is
useful to have the gstreamer registry readable by all so it can be
re-used, in similar manner as a host system where one user have seperate
applications running but all share same registry.

To make this possible introducing GST_REGISTRY_MODE for adjusting the
changing mode of the registry binary when finishing up with the
temporary file (which has restricted access).

Fixes: #692
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/825>
2021-10-05 10:49:27 +00:00
Mathieu Duponchelle
b4cf146ed0 docs: link to concrete types rather than type macros
Latest hotdoc version extended the ignored, boilerplate macros
to now include TYPE macros for records as well

Linking to the concrete type is more informative

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/913>
2021-09-25 01:29:38 +00:00
Thibault Saunier
6c364d9626 Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00