- 14 Mar, 2020 1 commit
-
-
Having a NULL caps in a GValue is legal and we should handle it properly for comparisons.
-
- 13 Mar, 2020 1 commit
-
-
Stéphane Cerveau authored
-
- 12 Mar, 2020 2 commits
-
-
Before that commit `{test, }` wouldn't be accepted as an array because of the trailing coma, the commit fixes that. At the same time, the code has been refactored to avoid special casing the first element of the list, making `{,}` or `<,>` valid lists.
-
Guillaume Desmottes authored
Looks like it's been removed from glib.devhelp2 on Fedora 31. Fix #508
-
- 11 Mar, 2020 1 commit
-
-
Matthew Waters authored
This allows an element to not require implementing transform or transform_ip.
-
- 09 Mar, 2020 6 commits
-
-
Sebastian Dröge authored
There can only be a single waiter: on the streaming thread.
-
Sebastian Dröge authored
There can only be a single waiter: on the streaming thread.
-
Sebastian Dröge authored
... and immediately return FLUSHING from the streaming thread instead of waiting potentially forever. Fixes gstreamer/gstreamer#516
-
Sebastian Dröge authored
We kept the start time around and subtracted it everywhere for "easy of debugging", but we don't do anything like this anywhere else and it only complicates the code unnecessarily.
-
Sebastian Dröge authored
-
fixate() will return empty caps if it gets empty caps passed and assert early if any caps are provided as there's no meaningful way of fixating any caps. truncate() and simplify() will return the input caps in case of any/empty caps as before, but slightly optimized and as documented behaviour. Also add tests for this and a few other operations behaviour on empty/any caps.
-
- 05 Mar, 2020 1 commit
-
-
This is not an API breakage, as implementors are already expected to return a GstFlowReturn
-
- 03 Mar, 2020 1 commit
-
-
Seungha Yang authored
Required to avoid broken log string on Windows but missed in the commit of 493a3261
-
- 02 Mar, 2020 1 commit
-
-
The format modifier for thread-id prints hex value without "0x" prefix on Windows.
-
- 28 Feb, 2020 3 commits
-
-
Tim-Philipp Müller authored
.. instead of looking things up by thread id from a GHashTable, which also happens to have no locking around insertion/lookup.
-
Tim-Philipp Müller authored
-
gst-inspect-1.0 segfaults on tracing logs where it fails to find element stats. So on the pipelines where we get the following WARNING during execution will afterwards crash with a segfault as the g_ptr_array has a index for it but it is just a NULL pointer. WARN default gst-stats.c:444:do_message_stats: no element stats found for ix=X An example of an pipeline which can reproducibly create a trace log where this occurs would be this GST_DEBUG="GST_TRACER:7" GST_TRACERS="stats;rusage;latency" gst-launch-1.0 videotestsrc num-buffers=120 ! autovideosink &> trace.log gst-stats-1.0 trace.log
-
- 27 Feb, 2020 1 commit
-
-
Add the equation to the debug message to make it easier for non-GStreamer experts to understand why their pipeline has latency.
-
- 26 Feb, 2020 3 commits
-
-
That's the minimum version of GLib we require right now. Fixes gstreamer/gstreamer#514
-
The clocksync element is a generic element that can be placed in a pipeline to synchronise passing buffers to the clock at that point. This is similar to 'identity sync=true', but because it isn't GstBaseTransform-based, it can process GstBufferLists without breaking them into separate GstBuffers
-
Seungha Yang authored
g_log_writer_supports_color() was introduced since GLib 2.50.0 which is slightly higher version than our minimum required GLib version.
-
- 25 Feb, 2020 1 commit
-
-
Nirbheek Chauhan authored
We do not have a way to know the format modifiers to use with string functions provided by the system. `G_GUINT64_FORMAT` and other string modifiers only work for glib string formatting functions. We cannot use them for string functions provided by the stdlib. See: https://developer.gnome.org/glib/stable/glib-Basic-Types.html#glib-Basic-Types.description F.ex.: ``` ../tools/gst-stats.c:921:11: error: too many arguments for format [-Werror=format-extra-args] printf ("Number of Buffers passed: %" G_GUINT64_FORMAT "\n", num_buffers); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../tools/gst-stats.c:922:11: error: unknown conversion type character 'l' in format [-Werror=format=] printf ("Number of Events sent: %" G_GUINT64_FORMAT "\n", num_events); ^~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /builds/nirbheek/cerbero/cerbero-build/dist/windows_x86_64/include/glib-2.0/glib/gtypes.h:32, from /builds/nirbheek/cerbero/cerbero-build/dist/windows_x86_64/include/glib-2.0/glib/galloca.h:32, from /builds/nirbheek/cerbero/cerbero-build/dist/windows_x86_64/include/glib-2.0/glib.h:30, from ../gst/gst.h:27, from ../tools/tools.h:28, from ../tools/gst-stats.c:30: /builds/nirbheek/cerbero/cerbero-build/dist/windows_x86_64/lib/glib-2.0/include/glibconfig.h:69:28: note: format string is defined here #define G_GUINT64_FORMAT "llu" ^ ``` and ``` ../tests/misc/netclock-replay.c: In function 'main': ../tests/misc/netclock-replay.c:98:23: error: unknown conversion type character 'l' in format [-Werror=format=] if (sscanf (line, "%" G_GUINT64_FORMAT " %" G_GUINT64_FORMAT " %" ^~~ In file included from /builds/nirbheek/cerbero/cerbero-build/dist/windows_x86/include/glib-2.0/glib/gtypes.h:32, from /builds/nirbheek/cerbero/cerbero-build/dist/windows_x86/include/glib-2.0/glib/galloca.h:32, from /builds/nirbheek/cerbero/cerbero-build/dist/windows_x86/include/glib-2.0/glib.h:30, from ../tests/misc/../../libs/gst/net/gstntppacket.c:38, from ../tests/misc/netclock-replay.c:31: /builds/nirbheek/cerbero/cerbero-build/dist/windows_x86/lib/glib-2.0/include/glibconfig.h:69:28: note: format string is defined here #define G_GUINT64_FORMAT "llu" ^ ``` This is needed for upgrading glib inside Cerbero which builds with `-Werror` on Windows: gstreamer/cerbero!419
-
- 19 Feb, 2020 1 commit
-
-
Tim-Philipp Müller authored
Seems unnecessary to print the parent name for every element in the pipeline graph, it's clear from the graph what the parent element is and it's hard to imagine a case where this is useful info rather than just distracting spam. So far this was only done for pads, but we should just do it for everything.
-
- 15 Feb, 2020 2 commits
-
-
A buffer to be skipped wasn't unref'd in gst_base_parse_chain(). Fixes #406
-
-
- 14 Feb, 2020 3 commits
-
-
When the user sets filters, we should not trace ref counts of object that are not traced. This optimizes the tracer by potentially avoiding generating useless backtraces.
-
Otherwise an application cannot rely on a subsequent call to e.g. gst_pad_query_duration() succeeding.
-
Previously we would use the object lock only for storing the sync handler and its user_data in a local variable, then unlock it and only then call the sync handler. Between unlocking and calling the sync handler it might be unset and the user_data be freed, causing it to be called with a freed pointer. To prevent this add a refcounting wrapper struct around the sync handler, hold the object lock while retrieving it and increasing the reference count and only actually free it once the reference count reaches zero. As a side-effect we can now also allow to actually replace the sync handler. Previously it was only allowed to clear it after initially setting it according to the docs, but the code still allowed to clear it and then set a different one. Fixes gstreamer/gstreamer#506
-
- 13 Feb, 2020 1 commit
-
-
Seungha Yang authored
Fixing markdown syntax
-
- 12 Feb, 2020 2 commits
-
-
Keep the ANY caps empty internally when appending and merging caps/structures. Previously, an ANY caps could end up containing internal structures, which could be fetched by the user, and gave the caps a non-zero length. Also, made sure that `gst_caps_set_features_simple` frees the features if caps is empty.
-
Fixed gst_caps_is_strictly_equal() to take into account whether either of the caps are ANY caps. Previously, two ANY caps could be considered not strictly equal if one of them still contained some remnant *internal* structure (this can happen if an ANY caps has emerged from an append or merge operation). Also, an ANY caps with no remnant internal structures was considered strictly equal to an EMPTY caps. Similarly, a non-ANY caps was considered strictly equal to an ANY caps if its remnant internal structures happened to match. Also changed gst_caps_is_fixed to take into account that an ANY caps should not be considered fixed even if it contains a single remnant internal fixed structure. This affects gst_caps_is_equal(), which uses a separate method if both caps are fixed. Previously, this meant that a non-ANY fixed caps was considered equal to an ANY caps if it contained a single matching remnant internal structure. Added some tests for these two equality methods, which covers the above examples, as well as asserts existing behaviour. Fixes #496
-
- 10 Feb, 2020 1 commit
-
-
Sebastian Dröge authored
This has the same function as the negotiate() functions in various other base classes and is required to be able to completely re-implement submit_input_buffer() in subclasses.
-
- 04 Feb, 2020 1 commit
-
-
When we do not have any information about DTSs we shouldn't try to make them up, moreover after seeking `segment->start` has nothing to do with the next buffer timing (and is probably after the actual buffer timestamp) and since, since gstreamer/gstreamer@fa831247 we do: ``` if (buffer->dts > buffer->dts) buffer->pts = buffer->dts ``` we end up setting `buffer->pts = segment->start` which is plain broken and leads to downstream decoder accept the first buffer as it will be inside the segment (its pts==segment->start) which basically means accurate seeking behaves mostly the same way as keyframe seeks. Fixes gstreamer/gstreamer#492
-
- 27 Jan, 2020 2 commits
-
-
POSIX defines CLOCK_MONOTONIC to always be a macro, so I think it's safe to assume that CLOCK_TAI will also be.
-
GST_CLOCK_TYPE_TAI is GStreamer abstraction for CLOCK_TAI. Main motivation for this patch is support for transmission offloading features - when network packets are timestamped with the time they are deemed to be actually transmitted. Linux API for that requires that time to be in CLOCK_TAI coordinate. With GST_CLOCK_TYPE_TAI, applications can use CLOCK_TAI directly on their pipelines, avoiding the need to cross timestamp packet times. By leveraging system's CLOCK_TAI, applications also don't need to keep track of leap seconds - less burden for them. Just keep system's CLOCK_TAI accurate and use it.
-
- 24 Jan, 2020 2 commits
-
-
Sebastian Dröge authored
bin: Don't consider having a group-id or being STREAM_START if we have not a single STREAM_START message This would cause us to set GST_GROUP_ID_INVALID as group-id in the aggregated STREAM_START message if there are no sinks at all or none of them have a STREAM_START message, which is simply wrong. If we have not a single STREAM_START message then the bin should not be considered STREAM_START.
-
Sebastian Dröge authored
They are optional on STREAM_START messages/events but if available should have at least a valid value. For STREAM_GROUP_DONE events don't allow creating it with an invalid group id as this does not make any sense.
-
- 23 Jan, 2020 1 commit
-
-
Sebastian Dröge authored
This allows start-time selection in gst_aggregator_pad_chain_internal() to actually work as that code assumes it to be -1 for actually overriding the value. Fixes gstreamer/gstreamer#500
-
- 09 Jan, 2020 1 commit
-
-
Jan Alexander Steffens authored
child and bin were switched. gstreamer/gstreamer!354
-
- 06 Jan, 2020 1 commit
-
-
Thibault Saunier authored
-