Commit graph

80 commits

Author SHA1 Message Date
Vivienne Watermeier
c38afa2070 navigation: add more constructors for navigation events
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1610>
2022-02-11 12:51:11 +00:00
Matthew Waters
102a342a01 registry: enable relocatable builds for anywhere with dladdr()
Such as Linux/BSD's.

Matches the Windows/macOS behaviour.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1662>
2022-02-08 17:35:24 +00:00
Jose Quaresma
6676b1e75c gstpluginloader: show the reason when spawning of gst-plugin-scanner fail
This fix helps in cross compiling when the meson tests runs using a qemu wraper

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1578>
2022-02-08 14:46:53 +00:00
Martin Reboredo
ece4ca5952 gstvalue: De/Serialization of GBytes
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1232>
2022-02-08 09:05:40 +00:00
Sebastian Mueller
fbbeee1dc4 context: fix transfer annotation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1663>
2022-02-08 16:24:13 +11:00
Zebediah Figura
cc835c0722 baseparse: Don't truncate the duration to milliseconds in gst_base_parse_convert_default().
There's no need to do this, and it can make seeking far less accurate.

For a specific use case: I am working with a long (45-minute) MPEG-1 layer 3 file, which has a constant bit rate but no seeking tables. Trying to seek the pipeline immediately after pausing it, without the ACCURATE flag, to a location 41 minutes in, yields a location that is potentially over ten seconds ahead of where it should be. This patch improves that drastically.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/374>
2022-02-07 20:13:01 -06:00
Zebediah Figura
334c347de2 baseparse: Trace time with GST_TIME_FORAMT in gst_base_parse_convert_default().
Be consistent with how we trace time in general.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/374>
2022-02-07 19:33:31 -06:00
Sebastian Dröge
be23dbb417 bufferpool: Deactivate pool and get rid of references to other objects from dispose instead of finalize
During dispose the pool will still have a reference count of 1 and all
API on it can still be safely called.

Subclasses will have already freed their own data before finalize is
called but would nonetheless be called into again via the pool
deactivation.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1645>
2022-02-07 21:45:44 +00:00
Matthew Waters
74233cfd67 pluginloader: support multiple subdirectories for GST_PLUGIN_SUBDIR (libdir)
i.e. if GST_PLUGIN_SUBDIR is 'some/lib/path', then the default plugin
loading assumed that there was only 'lib' as it only went up a single
directory to then find the plugin scanner.

Fix to support multiple subdirectories for GST_PLUGIN_SUBDIR (libdir).

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

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1644>
2022-02-07 09:37:57 +00:00
Matthew Waters
a7b9857647 registry: check the value of dladdr()
info.dli_fname could be NULL.

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

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1644>
2022-02-07 09:37:57 +00:00
Matthew Waters
c7d5b774d5 registry: check the return value of g_win32_get_package_installation_directory_of_module()
g_win32_get_package_installation_directory_of_module() may return NULL
in some circumstances and we need to deal with that.

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

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1644>
2022-02-07 09:37:57 +00:00
Tim-Philipp Müller
701ed92d27 Back to development
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1635>
2022-02-04 22:59:41 +00:00
Tim-Philipp Müller
f0b045a69b Release 1.20.0 2022-02-03 20:03:15 +00:00
Tim-Philipp Müller
463bafdd23 Update ChangeLogs for 1.20.0 2022-02-03 19:53:18 +00:00
Matthew Waters
747a82006c registry/macos: retrieve plugins relative to location of libgstreamer.dylib
Provides a relocatable directory structure for running GStreamer
applications as used in GStreamer.framework.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1627>
2022-02-03 10:40:42 +00:00
Tim-Philipp Müller
31b5243e1d Release 1.19.90 2022-01-28 14:28:42 +00:00
Tim-Philipp Müller
12fe353a31 Update ChangeLogs for 1.19.90 2022-01-28 14:28:28 +00:00
Mathieu Duponchelle
f9d1641848 aggregator: don't forward reconfigure events
Those will cause us to renegotiate at the next aggregate cycle,
and while at that point we may decide to reconfigure upstream
branches (in practice we don't as this is inherently racy,
and that's the reason why mixer subclasses perform conversion
internally), we certainly don't want to just forward the event
willy-nilly to all our sinkpads.

An actual issue this is fixing is when caps downstream of a
compositor are changed at every samples-selected signal emission,
for the purpose of interpolating the output geometry, and the
compositor has a non-zero latency, the reconfigure events were
forwarded to basesrc, which triggered an allocation query, which
in turn caused aggregator to have to drain (thus not being able
to queue <latency> frames), leading to disastrous effects
(choppy output as compositor couldn't consume frames fast enough,
the higher the latency the choppier the output)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1464>
2022-01-27 17:11:48 +00:00
Tim-Philipp Müller
abcbd2bb2e gstreamer: update translations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1579>
2022-01-27 01:37:18 +00:00
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
Nirbheek Chauhan
945fd11907 audio: Add logging that was useful in figuring out the last commit
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1461>
2022-01-08 05:15:30 +00:00
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
Danny Smith
779e715b6c gstnetclockclient: signal lost sync if remote time resets
When detecting the remote time has been reset which may occur if remote
device providing the clock server has been power reset, then clock is
no longer synced. Setting clock state will trigger a signal to client
informing on sync lost making it possibility to take appropriate action.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/975>
2021-12-07 13:45:30 +00:00
Corentin Noël
a445ff1607 basesink: Add missing annotations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1392>
2021-11-30 02:28:15 +00:00
Corentin Noël
7b1958c8de pushsrc: Add missing annotations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1392>
2021-11-30 02:28:15 +00:00
Corentin Noël
4e2e8492c9 bitwriter: Add missing annotations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1392>
2021-11-30 02:28:15 +00:00
Corentin Noël
6da9285158 baseparse: Add missing annotations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1392>
2021-11-30 02:28:15 +00:00
Corentin Noël
578fddbf58 basesrc: Add annotation to virtual methods with (out) parameters
This allows to actually use these virtual methods from the GObject introspection.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1376>
2021-11-23 08:54:01 +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
Nirbheek Chauhan
557d385d6c gst-ptp-helper: Do not disable multicast loopback
Otherwise we cannot run gst-ptp-helper if the PTP master is on the
same device.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1306>
2021-11-08 07:27:08 +00:00
Marcin Kolny
a46ab2ced2 typefind: fix reading file extension from URI
Currently reading extension relies on the fact that everything after the
last"." character is a file extension. Whereas that works fine for most
of the cases, it breaks when the URI contains a query part.

E.g.: `http://url.com/file.mp4?param=value` returns `mp4?param=value`
instead of `mp4`.

In this commit we use URI parser to read the path of the URI (in the example
above, that is `/file.mp4`) and read extension from that path.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1305>
2021-11-04 09:30:31 +00:00
Tim-Philipp Müller
a7b376011b Back to development 2021-11-03 19:31:23 +00:00
Tim-Philipp Müller
f513c289b0 Release 1.19.3 2021-11-03 15:43:43 +00:00
Tim-Philipp Müller
d51b091cd9 Update ChangeLogs for 1.19.3 2021-11-03 15:43:32 +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
Vivia Nikolaidou
6c21dd4de1 identity: Fix crash when receiving a gap event outside the current segment
We were checking if the start time of the gap event was
GST_CLOCK_TIME_NONE, which is superfluous because that cannot happen,
and then not checking if it was NONE after gst_segment_to_running_time,
which caused a crash if an identity received a gap event fully or
partially outside the current segment.

This patch was done in cooperation with:
Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1269>
2021-10-29 14:08:49 +03: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
92de0e7c49 gstreamer: update translations
Fixes #656

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1240>
2021-10-25 01:11:07 +01:00
Pascal Hache
d4762346f5 baseparse: fix invalid avg_bitrate after reset
gst_base_parse_reset() does not reset data_bytecount to 0, so
gst_base_parse_update_bitrates() uses a wrong value to calculate
the average bitrate on subsequent pipeline starts. This leads to an
excessive amount of "tag" events being pushed. These events include
very high "bitrate" values that diminish over time, and are produced
until the average bitrate is back to sane values.

Fixes #840

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1228>
2021-10-22 17:38:22 +00:00