- Sep 23, 2019
-
-
Tim-Philipp Müller authored
-
Tim-Philipp Müller authored
-
Tim-Philipp Müller authored
-
- Sep 14, 2019
-
-
Bindings might have a hard time making sure that the reference is indeed still floating after returning here. See gstreamer/gstreamer#444
-
Bindings might have a hard time making sure that the reference is indeed still floating after returning here. See gstreamer/gstreamer#444
-
Fixing the annotation fixes leaking of the created element in all bindings using GObject-Introspection. Fixes gstreamer/gstreamer#444
-
- Sep 08, 2019
-
-
-
-
In cases with many long-lived buffers that have qdata only very briefly, the memory overhead of keeping an array of 16 GstQData structs for each buffer can be significant. We free the array when the last qdata is removed, like it was done in 1.14. Fixes #436
-
- Sep 03, 2019
-
-
This patch simply add a null check around a case where a child may have been unparented concurrently to the deep_add_remove operation. This was found by accident in the form of an "IS_GST_OBJECT" assertion, but had no other known side effect in that test.
-
- Aug 15, 2019
-
-
Tim-Philipp Müller authored
The install kwarg on configure_file() was only added in Meson 0.50 but we're targetting older versions as well, which caused a warning. The install kwarg is not needed here as we specify install_dir, so we can just drop it. Fixes #379
-
- Aug 14, 2019
-
-
The documentation says that this allows the subclass to signal that it needs more data before it can decide on caps, so let's actually implement it that way.
-
aggregator: Assert if the sink/src pad type that is to be used is not a GstAggregatorPad or subclass thereof
-
aggregator: Ensure that the source pad is created as a GstAggregatorPad if no type is given in the pad template Otherwise we would create a GstPad and that causes invalid memory accesses later.
-
Guillaume Desmottes authored
If the element before the sink needs $n buffers to produce one output buffer, we were reffing $n events and unreffing only one. Prevent this by using g_object_set_qdata_full() to handle the event unreffing so we're sure no ref will be lost.
-
Guillaume Desmottes authored
The records are static and so appear as false positives when using those tracers with the leaks tracer as well. The leaks tracer was already setting this flag on its record so let's set it on the other ones as well.
-
Guillaume Desmottes authored
This is quite useful for debugging when tracer is reporting the wrong latency because of an element breaking the events/buffers ordering.
-
- Aug 11, 2019
-
-
In gst_download_buffer_wait_for_data(), when a seek is made with perform_seek_to_offset() the `qlock` is released temporarily. Therefore, the flushing condition can be set during this period and should be checked. This was not being checked before, causing occasional deadlocks when GST_DOWNLOAD_BUFFER_WAIT_ADD_CHECK() was called. GST_DOWNLOAD_BUFFER_WAIT_ADD_CHECK() assumes that the caller has already checked that we're not flushing before, since this is done when acquiring the lock; so if we release it temporarily somewhere, we need to check for flush again. Without that check, the function would keep waiting for the condition variable to be notified before checking for flushing condition again, and that may very well never happen. This was reproduced when during pad deactivation when running WebKit in gdb.
-
- Aug 09, 2019
-
-
Instead of guessing something based on preprocessor defines and magic.
-
Tim-Philipp Müller authored
This was added in 1.16 and accidentally duplicated the value of the existing GST_MESSAGE_REDIRECT. As the only known user of this message is GStreamer core itself, and it is quite an obscure message, it seems best to just fix up the enum value even if that technically breaks API. Fixes #418
-
- Aug 08, 2019
-
-
gst_ring_buffer_logger_log calls several functions while formatting the message which may in turn log a message while we already hold the mutex. Do all formatting first before acquiring the mutex to avoid this and reduce the time we hold the mutex.
-
sync=TRUE implementation changes the latency query of a non-live upstream into live, though it wrongly set the upstream max latency to 0. As non-live sources won't loose data if we wait longer, this should have been reported as have no max latency limite (-1).
-
Previous code was a copy/paste from the property setter function.
-
When passing "sink_%d" twice to aggregator before it would create two pads called "sink_0", because it failed to parse "%d" as integer and used 0 instead then. Instead validate that parsing was actually successful and also don't even try to parse if the requested pad name contains a '%'.
-
The offset in gst_buffer_resize() is additive. So to move back the offset to zero, we need to pass the opposite of the current offset. This was raised through the related unit test failingon 32bit as on 64bit the alignment padding was enough to hide the issue. The test was modified to also fail on 64bit. This patch will remove spurious assertions like: assertion 'bufmax >= bufoffs + offset + size' failed Fixes #316
-
-
The `query` argument of gst_pad_query is "transfer none". Query objects are "borrowed" by the pad query handlers and those should never unref them. This was leading to double freed queries in a very racy way with nested GESTimelines.
-
Otherwise when seeking backwards we would keep the last_stop at the last position we saw until playback passed the seek position again, and if switching to the next pad happens in the meantime we would set the wrong offset in the outgoing segment.
-
-
Tim-Philipp Müller authored
Not that it matters, since we don't check the return value anyway. Unclear why the aggregator pad flush function should have a return value at all really, and perhaps it should be called reset anyway. Spotted by dv on irc.
-
Before GST_PAD_PROBE_HANDLED was introduced, we had to handle the case where some probes would reset the probe info data field to NULL. This would be considered an invalid use-case. But with GST_PAD_PROBE_HANDLED it is totally fine to reset that, since the probe has "handled" it.
-
- Aug 07, 2019
-
-
Otherwise the objects from that static helper library are not included in the gstreamer-1.0 static library. This was supposed to be fixed in Meson, but the pull request hasn't been merged yet: https://github.com/mesonbuild/meson/pull/3939 Closes gstreamer/gstreamer#398
-
This is only needed on Windows when building with MSVC, but it is safe to pass it everywhere. Closes gstreamer/gstreamer#398
-
The original version of the patch used glib-2.0 but that was later changed to gstreamer-1.0 for autotools. The meson file was forgotten. Fix the path to match the one used in libgstreamer-gdb.py.in.
-
-
Like all other scripts in the same dir. It has a hashbang, so it should be executable.
-
../tools/gst-inspect.c:44:20: error: 'DEFAULT_PAGER' defined but not used [-Werror=unused-const-variable=]
-
- Aug 06, 2019
-
-
-
../subprojects/gstreamer/libs/gst/base/gstbitwriter.h: In function 'gboolean _gst_bit_writer_check_remaining(GstBitWriter*, guint32)': ../subprojects/gstreamer/libs/gst/base/gstbitwriter.h:161:31: error: invalid conversion from 'gpointer' {aka 'void*'} to 'guint8*' {aka 'unsigned char*'} [-fpermissive] bitwriter->data = g_realloc (bitwriter->data, (new_bit_size >> 3)); ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-