Jordan Petridis [Fri, 11 Jan 2019 10:32:49 +0000 (12:32 +0200)]
tests: gstdatetime: move gst_date_time_new* and time() calls closer
While extremelly rare, time and gst_date_time_new_* will have
diff values and potentially trigger an assertion. Thus move
the calls as closely together as possible to mitigate this.
Sebastian Dröge [Thu, 10 Jan 2019 12:05:34 +0000 (12:05 +0000)]
Revert "bin: Hold the state lock while removing elements from a bin"
This reverts commit
7f70d7a9450b321585fbfd1eb977548d4264b2a6
Jan Alexander Steffens (heftig) [Wed, 9 Jan 2019 13:01:02 +0000 (14:01 +0100)]
tests: Add more int range fixation tests
Jan Alexander Steffens (heftig) [Wed, 9 Jan 2019 12:38:44 +0000 (13:38 +0100)]
structure: Support stepped ranges when fixating
The step restriction was completely ignored until now.
Jan Alexander Steffens (heftig) [Wed, 9 Jan 2019 12:37:30 +0000 (13:37 +0100)]
structure: Use GLib's CLAMP macro for fixating ranges
Just a bit of refactoring.
Sebastian Dröge [Mon, 7 Jan 2019 12:08:25 +0000 (14:08 +0200)]
element: Add note about racyness to gst_element_set_locked_state()
This is racy if the state lock of the parent bin is not taken. The
parent bin might've just checked the flag in another thread and as the
next step proceed to change the child element's state.
Sebastian Dröge [Mon, 7 Jan 2019 12:08:00 +0000 (14:08 +0200)]
bin: Hold the state lock while removing elements from a bin
We need to take the state lock here to ensure that we're
not currently just before setting the state of this child
element. Otherwise it can happen that we removed the element
here and e.g. set it to NULL state, and shortly afterwards
have another thread set it to a higher state again as part of
a state change for the whole bin.
When adding an element to the bin this is not needed as we
require callers to always ensure after adding to the bin that
the new element is set to the correct state.
Tim-Philipp Müller [Sat, 5 Jan 2019 18:55:12 +0000 (18:55 +0000)]
aggregator: fix typo in docs
Sebastian Dröge [Wed, 2 Jan 2019 21:35:11 +0000 (23:35 +0200)]
pipeline: Call gst_task_cleanup_all() before checking reference counts after shutdown
We have to ensure that all background threads from thread pools are shut
down, or otherwise they might not have had a chance yet to drop their
last reference to the pipeline and then the assertion for a reference
count of 1 on the pipeline fails.
Sebastian Dröge [Wed, 2 Jan 2019 16:41:24 +0000 (18:41 +0200)]
pipeline: Use the test clock in all unit tests
And check for exact times as we can now do that thanks to the test clock
being deterministic.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/313
Michael Olbrich [Wed, 26 Sep 2018 15:09:50 +0000 (17:09 +0200)]
gdb: implement 'gst-dot' and 'gst-print' commands
This adds two custom gdb commands:
'gst-dot' creates dot files that a very close to what
GST_DEBUG_BIN_TO_DOT_FILE() produces. Object properties and buffer content
(e.g. codec-data in caps) are not available.
'gst-print' produces high-level information about GStreamer objects. This
is currently limited to pads for GstElements and events for the pads. The
output can look like this:
(gdb) gst-print pad.object.parent
GstMatroskaDemux (matroskademux0) {
SinkPad (sink, pull) {
}
SrcPad (video_0, push) {
events:
stream-start:
stream-id: 0463ccb080d00b8689bf569a435c4ff84f9ff753545318ae2328ea0763fd0bec/001:
1274058367
caps: video/x-theora
width: 1920
height: 800
pixel-aspect-ratio: 1/1
framerate: 24/1
streamheader: < 0x5555557c7d30 [GstBuffer], 0x5555557c7e40 [GstBuffer], 0x7fffe00141d0 [GstBuffer] >
segment: time
rate: 1
tag: global
container-format: Matroska
}
SrcPad (audio_0, push) {
events:
stream-start:
stream-id: 0463ccb080d00b8689bf569a435c4ff84f9ff753545318ae2328ea0763fd0bec/002:
1551204875
caps: audio/mpeg
mpegversion: 4
framed: true
stream-format: raw
codec_data: 0x7fffe0014500 [GstBuffer]
level: 2
base-profile: lc
profile: lc
channels: 2
rate: 44100
segment: time
rate: 1
tag: global
container-format: Matroska
tag: stream
audio-codec: MPEG-4 AAC audio
language-code: en
}
}
Michael Olbrich [Sat, 29 Dec 2018 15:20:54 +0000 (16:20 +0100)]
gdb: make the code PEP-8 compliant
Tim-Philipp Müller [Mon, 31 Dec 2018 14:55:55 +0000 (14:55 +0000)]
tests: remove unused gststream.h file
Looks like an earlier version of the .c file.
Nicolas Dufresne [Wed, 19 Dec 2018 21:55:57 +0000 (16:55 -0500)]
gst-inspect: Disable colors when piped
This follows what git and systemd tools would do.
Nicolas Dufresne [Wed, 19 Dec 2018 21:06:40 +0000 (16:06 -0500)]
gst-inspect: Fix pager color with less
Fixes #341
Tim-Philipp Müller [Wed, 19 Dec 2018 00:34:40 +0000 (00:34 +0000)]
basesrc: ensure submitted buffer list is writable
Fixes flaky appsrc unit test where depending on scheduling
the submitted list might not be writable if submitted via
an action signal from the application thread.
Fixes gst-plugins-base#522
Jonny Lamb [Fri, 14 Dec 2018 15:55:27 +0000 (15:55 +0000)]
identity: fixes to the eos-after and error-after properties
I copied `error-after` to make the `eos-after` property, but it turned
out there were some problems with that one, so this patch: adds
separate counters (so setting to NULL and reusing the element will
still work); clarifies the properties' min values; and reports an
error when both are set.
Michael Gruner [Wed, 28 Nov 2018 20:58:32 +0000 (14:58 -0600)]
gst-uninstalled: include prefix in the plugins path
Seungha Yang [Mon, 17 Dec 2018 14:29:16 +0000 (23:29 +0900)]
tests: datetime: Fix failure on Windows
The documentation for WIN32 mktime indicates that for struct tm*
before January 1, 1970, that -1 is returned, and since mktime is timezone
dependent, the struct tm corresponding to 1:00, Jan. 1, 1970 might be failed.
See also
https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/mktime-mktime32-mktime64
Edward Hervey [Tue, 25 Sep 2018 07:03:03 +0000 (09:03 +0200)]
queue2: Add details of query in debug log
Edward Hervey [Sat, 15 Dec 2018 10:42:30 +0000 (11:42 +0100)]
parse: Move variable to block where it's used
There was a dead assignment used outside of the bin/pipeline creation
which was confusing (and unused). Just move that variable to
where it is actually used.
(Note that that variable was not needed outside of that block since
the refactoring done in
2b33d3318519fd613dd5a4ebbd7c308609904e68 )
Edward Hervey [Sat, 15 Dec 2018 10:08:09 +0000 (11:08 +0100)]
examples: Remove dead assignments
Those values are always set after before usage
Edward Hervey [Sat, 15 Dec 2018 10:07:21 +0000 (11:07 +0100)]
harness: assert on result of gst_pad_push_event()
That assertion was accidentally removed in the refactoring done in
60de1f26c78feb0cde6d3f82cf86cf35daa71cc0
Edward Hervey [Sat, 15 Dec 2018 09:53:55 +0000 (10:53 +0100)]
gst-inspect: Remove dead assignment
readable is set just after before usage since
906bbd3817c86e64d1bfa57570469055456addfe
Sebastian Dröge [Fri, 14 Dec 2018 16:38:21 +0000 (18:38 +0200)]
pad: Let threads in the test take ownership of a strong reference to their pads
Otherwise it can easily happen that the pad is destroyed before the
thread disappears, as happened sometimes in the test_pad_probe_block_add_remove
test where joining of the thread was done *after* the pad was unreffed
and destroyed.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/339
Sebastian Dröge [Fri, 14 Dec 2018 16:37:53 +0000 (18:37 +0200)]
pad: Print some debug information about pad probe hooks we remove
Jonny Lamb [Tue, 11 Dec 2018 16:48:56 +0000 (16:48 +0000)]
identity: add eos-after property
Using `num-buffers` can be unpredictable as buffer sizes are often
arbitrary (filesrc, multifilesrc, etc.). The `error-after` property on
`identity` is better but obviously reports an error afterwards. This
adds `eos-after` which does exactly the same thing but reports EOS
instead.
Guillaume Desmottes [Tue, 11 Dec 2018 09:48:46 +0000 (10:48 +0100)]
gstcaps: add gst_caps_set_features_simple()
Convenient helper setting a caps feature on all the structures of a
caps.
Roman Sivriver [Thu, 6 Dec 2018 20:22:21 +0000 (20:22 +0000)]
gst: fixed the install command for gdb python macros on macos - `install -D` is not supported by BSD install
Dardo D Kleiner [Sat, 1 Dec 2018 15:32:07 +0000 (10:32 -0500)]
buffer: Add more exhaustive test for gst_buffer_foreach_meta() meta removal
Existing test for iterating/removing buffer meta data was insufficient
to detect linked list corruption when removing multiple items, and could
also suffer from such corruption in attempting to count remaining items.
Modified the one test and added several others to exercise multiple
scenarios.
Validates fix for issue #332.
Dardo D Kleiner [Sat, 1 Dec 2018 15:48:11 +0000 (10:48 -0500)]
buffer: Fix memory corruption in gst_buffer_foreach_meta() when removing metas
Fix corruption of meta list head when removing metas at the beginning
during iteration. Linked list handling in gst_buffer_foreach_meta
failed to track the previous entry and update the correct next pointer
when removing items from beyond the head of the list, resulting in
arbitrary list pointer corruption.
Closes #332
Thibault Saunier [Wed, 5 Dec 2018 20:24:00 +0000 (17:24 -0300)]
Automatic update of common submodule
From cd1dee0 to 59cb678
Nicolas Dufresne [Sat, 24 Nov 2018 02:22:21 +0000 (21:22 -0500)]
libdw support is optional
This was no longer optional, leading to deadcode. This regression was
found trying to fix the unwind variant in cerbero.
Zeeshan Ali [Thu, 29 Nov 2018 11:54:46 +0000 (12:54 +0100)]
gst-inspect: Fix colors for "URI handling" section
They seemed incompatible with other colors.
Zeeshan Ali [Wed, 28 Nov 2018 17:06:54 +0000 (18:06 +0100)]
gst-inspect: Avoid use of non-bright blue color
Simple blue doesn't work on Linux console, which also happens to be a
gnome-terminal theme. Use bright-blue instead.
KimTaeSoo [Mon, 26 Nov 2018 13:00:28 +0000 (22:00 +0900)]
baseparse: Add unit test for short reads
Before the previous commit, buffer pulling count and chain function call
counts are not equal due to EOS. After the modification, these counts
are equal so unit test is passing.
https://gitlab.freedesktop.org/gstreamer/gstreamer/merge_requests/33
https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/294
KimTaeSoo [Wed, 14 Nov 2018 15:17:09 +0000 (00:17 +0900)]
baseparse: Use buffer from short reads instead of pulling again
baseparse internally uses a 64kb buffer for pulling data from upstream.
If a 64kb pull is failing with a short read, it would previously pull
again the requested size.
Doing so is not only inefficient but also seems to cause problems with
some elements (rawvideoparse) where the second pull would fail with EOS.
Short reads are only allowed in GStreamer at EOS.
Closes https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/294
Philippe Normand [Wed, 28 Nov 2018 11:00:21 +0000 (11:00 +0000)]
input-selector: Let context queries pass through
By doing so GL source elements can successfully reuse the GL context and display
of downstream elements. This change fixes an issue in playbin when using
gltestsrc where the context query made by the source element would fail and the
source element would create a second (useless) GLDisplay.
Jordan Petridis [Wed, 28 Nov 2018 03:58:53 +0000 (05:58 +0200)]
Run gst-indent through the files
This is required before we enabled an indent test in the CI.
https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/33
Zeeshan Ali [Sat, 24 Nov 2018 13:51:19 +0000 (14:51 +0100)]
gst-inspect: Use only original 16 colors
Not only this will make colored output work on old terminals and console
as well, terminals can theme the actual colors this way to make it fit
with their different themes this way.
Mathieu Duponchelle [Tue, 27 Nov 2018 01:59:41 +0000 (02:59 +0100)]
Revert "harness: Take ownership of floating references (pads, elements) passed to the harness"
This reverts commit
2faf93c009d866d68cf0d063a29bb8c21f192aea.
THis broke half our unit tests, oops:
https://ci.gstreamer.net/job/GStreamer-master/11203/testReport/
Sebastian Dröge [Tue, 13 Nov 2018 12:32:56 +0000 (14:32 +0200)]
harness: Take ownership of floating references (pads, elements) passed to the harness
Without this bindings get confused about the meaning of references, and
we really own these references if they are not already owned by
something else.
Zeeshan Ali [Sat, 24 Nov 2018 11:06:38 +0000 (12:06 +0100)]
gst-inspect: Tell `less` to parse color codes
This change was originally part of
2cf16838c54 (gst-inspect: Colored
output) but got lost during the recent rebase.
Zeeshan Ali [Sat, 27 Oct 2018 17:06:20 +0000 (18:06 +0100)]
gst-inspect: Colored output
Let's make the output a bit pretty to read. The colored output can be
disabled with `--no-colors` option or by setting `GST_INSPECT_NO_COLORS'
env (to any value).
The chosen colors are based on the popular Solarized theme, which is
targeted for both dark and light backgrounds.
Note:
* We only support true colors. If the terminal doesn't signal support for
that via 'COLORTERM' env, we disable colored output.
* We don't add colors to --print-plugin-auto-install-info output, as
that's meant for machines, not humans. Not only machines don't care
about beauty, the existing ones will likely not expect colors and choke
on it and we'll get angry mob at our doors.
[1] https://ethanschoonover.com/solarized
Zeeshan Ali [Sat, 10 Nov 2018 22:35:18 +0000 (23:35 +0100)]
gst-inspect: Remove redundant plugin name from output
When printing info about a specific plugin, there is no need to prefix
some of the details with plugin's name. It's not only redundant but also
inconsistent and makes the task of adding consistent coloring to the
output (which we'll do in a follow patch), harder.
Nirbheek Chauhan [Thu, 22 Nov 2018 22:01:38 +0000 (03:31 +0530)]
gst-inspect: Use less -F -X everywhere as the pager
This emulates the default behaviour of git help pages, and also fixes
a bug on macOS where `less -F` doesn't display anything at all when
the output is shorter than one terminal screen.
Also moved the DEFAULT_PAGER define to after the includes, because
it's an unprefixed define.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/330
Jordan Petridis [Mon, 12 Nov 2018 12:00:22 +0000 (14:00 +0200)]
Add Gitlab CI configuration
This commit adds a .gitlab-ci.yml file, which uses a feature
to fetch the config from a centralized repository. The intent is
to have all the gstreamer modules use the same configuration.
The configuration is currently hosted at the gst-ci repository
under the gitlab/ci_template.yml path.
Part of https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/29
Seungha Yang [Tue, 11 Dec 2018 11:12:50 +0000 (20:12 +0900)]
tests: caps: Add more broken caps test case
Seungha Yang [Tue, 11 Dec 2018 11:12:41 +0000 (20:12 +0900)]
gst: Fix string leak when G_VALUE_COLLECT_INIT() was failed
Returned string should be freed
Fixes #319
Sebastian Dröge [Sat, 10 Nov 2018 18:41:40 +0000 (20:41 +0200)]
debugutils: Make sure that GST_DEBUG_GRAPH_SHOW_VERBOSE gets the correct value in introspection
Currently in Python it would become a signed 64 bit value but should
actually be an unsigned 32 bit value with all bits set.
This is the same problem as with GST_MESSAGE_TYPE_ANY.
See https://bugzilla.gnome.org/show_bug.cgi?id=732633
Havard Graff [Tue, 6 Nov 2018 09:20:17 +0000 (10:20 +0100)]
tests: fix tests when compiling with glib_checks=disabled
We won't be able to do ASSERT_CRITICAL, but the main body of the tests
are still valid, and given we ship GStreamer with this configuration, it
is important to be able to run some tests against it.
Havard Graff [Wed, 31 Oct 2018 09:29:22 +0000 (10:29 +0100)]
test/datetime: fix test for windows
In the previous configuration, mktime returned -1 on Windows 10 compiled
with MSVC using meson.
Fix this by moving the hour one forward.
Havard Graff [Wed, 31 Oct 2018 09:27:23 +0000 (10:27 +0100)]
tests/uri: fix test after GHashTable changes in GLib 2.59
Maybe the implementation should not be dependent on a "random" hash-table
ordering, but at least this shows the problem clearly.
Zeeshan Ali [Fri, 9 Nov 2018 10:34:19 +0000 (11:34 +0100)]
gst-inspect: Pipe stderr to pager as well
If stderr is not redirected by the user, also page that.
Niels De Graef [Mon, 5 Nov 2018 11:24:01 +0000 (12:24 +0100)]
typefind: cleanup (un)reffing of several objects.
By using these functions, we can shave off a few lines, and make the
intent of that line more clear.
Tim-Philipp Müller [Thu, 8 Nov 2018 14:09:32 +0000 (14:09 +0000)]
Fix distcheck
Follow-up to !18 and #320.
Michael Olbrich [Wed, 26 Sep 2018 11:33:31 +0000 (13:33 +0200)]
gst: add some gdb python macros
This adds gdb pretty printer for some GStreamer types.
For GstObject pointers the type and name is added, e.g.
"0x5555557e4110 [GstDecodeBin|decodebin0]".
For GstMiniObject pointers the object type is added, e.g.
"0x7fffe001fc50 [GstBuffer]".
For GstClockTime and GstClockTimeDiff the time is also printed in human
readable form, e.g. "
150116219955 [+0:02:30.
116219955]".
Fixes #320
Sebastian Dröge [Thu, 8 Nov 2018 08:09:29 +0000 (10:09 +0200)]
clock: Move clock GWeakRef to a private GstClockEntry struct
There's no need for it to be in the public struct and we can keep the
padding for things to be added in the future.
Matthew Waters [Thu, 17 May 2018 11:42:43 +0000 (21:42 +1000)]
query: add a new bitrate query
Allows determining from downstream what the expected bitrate of a stream
may be which is useful in queue2 for setting time based limits when
upstream does not provide timing information.
Implement bitrate query handling in queue2
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/60
Matthew Waters [Thu, 17 May 2018 11:09:36 +0000 (21:09 +1000)]
queue2: avoid ping-pong between 0% and 100% buffering messages
If upstream is pushing buffers larger than our limits, only 1 buffer
is ever in the queue at a time. Once that single buffer has left the
queue, a 0% buffering message would be posted followed immediately by a
100% buffering message when the next buffer was inserted into the queue
a very short time later. As per the recommendations, This would result
in the application pausing for a short while causing the appearance of
a short stutter.
The first step of a solution involves not posting a buffering message if
there is still data waiting on the sink pad for insertion into the queue.
This successfully drops the 0% messages from being posted however a
message is still posted on each transition to 100% when the new buffer
arrives resulting in a string of 100% buffering messages. We silence
these by storing the last posted buffering percentage and only posting a
new message when it is different from or last posted message.
Nicolas Dufresne [Tue, 6 Nov 2018 20:12:27 +0000 (20:12 +0000)]
tracers: log: Fix post query trace
The post tracer hooks have a GstQuery argument which was truncated from
the trace. As the post hook is the one that contains the useful data,
this bug was hiding the important information from that trace.
Havard Graff [Tue, 6 Nov 2018 13:21:35 +0000 (14:21 +0100)]
docs: add new GstTestClock API
Havard Graff [Tue, 6 Nov 2018 10:45:45 +0000 (11:45 +0100)]
harness: improve _wait_for_clock_id_waits performance
By moving the functionality down to the testclock, the implementation
no longer needs to poll the waits, but rather wait properly for
them to be added.
The performance-hit here would be that by polling the test-clock
regularly, you would create contention on the testclock-lock, making code
using the testclock (gst_clock_id_wait) fighting for the lock.
Havard Graff [Thu, 20 Sep 2018 08:42:48 +0000 (01:42 -0700)]
systemclock: pre-calculate the ratio for multiplying the perf-count on win
Saves a lot of computations.
Havard Graff [Sun, 28 Oct 2018 11:46:09 +0000 (12:46 +0100)]
gstpad: use hook_id instead of hook in called_probes list
A pointer to a hook in this list can easily not be unique, given both
the slice-allocator reusing memory, and the OS re-using freed blocks
in malloc.
By doing many repeated add and remove of probes, this becomes very easily
reproduced.
Instead use hook_id, which *is* unique for a added GHook.
Matthew Waters [Thu, 27 Sep 2018 09:13:35 +0000 (19:13 +1000)]
gst/buffer: add a new function for wrapping GBytes
One restriction on the GBytes is that the data cannot be NULL as this is
explicitly forbidden by GstMemory.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/318
Matthew Waters [Fri, 2 Nov 2018 13:49:01 +0000 (00:49 +1100)]
meson: generate pkg-config files for our plugins
Jan Alexander Steffens (heftig) [Mon, 5 Nov 2018 13:07:59 +0000 (14:07 +0100)]
gst_clear_*: Remove volatile from arguments
g_clear_pointer is not thread-safe and never was. GLib similarly removed
the volatile from g_clear_object in
2aacef39b1.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/327
Jan Alexander Steffens (heftig) [Mon, 5 Nov 2018 13:03:51 +0000 (14:03 +0100)]
gst_clear_*: Cast to GstMiniObject** when needed
Niels De Graef [Mon, 5 Nov 2018 08:37:29 +0000 (09:37 +0100)]
docs: update gstreamer-sections.txt with new API
Niels De Graef [Mon, 5 Nov 2018 09:33:54 +0000 (10:33 +0100)]
query: add gst_query_take()
This makes its API consistent with the other GstMiniObject subclasses
Niels De Graef [Mon, 5 Nov 2018 07:57:16 +0000 (08:57 +0100)]
message: add gst_message_take()
This makes its API consistent with the other GstMiniObject subclasses
Niels De Graef [Sun, 4 Nov 2018 18:14:32 +0000 (19:14 +0100)]
taglist: add gst_tag_list_replace/take()
This makes its API consistent with the other GstMiniObject subclasses.
Niels De Graef [Sun, 4 Nov 2018 18:13:39 +0000 (19:13 +0100)]
bufferlist: add gst_buffer_list_replace/take()
This makes its API consistent with the other GstMiniObject subclasses.
Niels De Graef [Sun, 4 Nov 2018 18:04:19 +0000 (19:04 +0100)]
structure: add gst_clear_structure()
Basically, you can use this instead of using gst_structure_free (which
needs to be preceded by a NULL-check).
Also fixes #275
Niels De Graef [Sun, 4 Nov 2018 17:55:42 +0000 (18:55 +0100)]
taglist: add gst_clear_tag_list()
Basically, you can use this instead of using gst_tag_list_unref (which
needs to be preceded by a NULL-check).
Also fixes #275
Niels De Graef [Sun, 4 Nov 2018 17:55:16 +0000 (18:55 +0100)]
query: add gst_clear_query()
Basically, you can use this instead of using gst_query_unref (which
needs to be preceded by a NULL-check).
Also fixes #275
Niels De Graef [Sun, 4 Nov 2018 17:54:44 +0000 (18:54 +0100)]
message: add gst_clear_message()
Basically, you can use this instead of using gst_message_unref (which
needs to be preceded by a NULL-check).
Also fixes #275
Niels De Graef [Sun, 4 Nov 2018 17:53:51 +0000 (18:53 +0100)]
event: add gst_clear_event()
Basically, you can use this instead of using gst_event_unref (which
needs to be preceded by a NULL-check).
Also fixes #275
Niels De Graef [Sun, 4 Nov 2018 17:53:31 +0000 (18:53 +0100)]
caps: add gst_clear_caps()
Basically, you can use this instead of using gst_caps_unref (which
needs to be preceded by a NULL-check).
Also fixes #275
Niels De Graef [Sun, 4 Nov 2018 17:52:50 +0000 (18:52 +0100)]
bufferlist: add gst_clear_buffer_list()
Basically, you can use this instead of using gst_buffer_list_unref
(which needs to be preceded by a NULL-check).
Also fixes #275
Niels De Graef [Sun, 4 Nov 2018 17:51:28 +0000 (18:51 +0100)]
buffer: add gst_clear_buffer()
Basically, you can use this instead of using gst_buffer_unref (which
needs to be preceded by a NULL-check).
Also fixes #275
Niels De Graef [Sat, 3 Nov 2018 19:00:57 +0000 (20:00 +0100)]
miniobject: add gst_clear_mini_object()
This is based on g_clear_object(). Basically, you can use this instead
of using gst_mini_object_unref (which needs to be preceded by a NULL-check).
Also fixes #275
Niels De Graef [Thu, 8 Feb 2018 16:31:15 +0000 (17:31 +0100)]
object: add gst_clear_object()
This is based on g_clear_object(). Basically, you can use this instead
of using g_object_unref (which needs to be preceded by a NULL-check).
Fixes #275
Haihao Xiang [Mon, 5 Nov 2018 03:07:14 +0000 (11:07 +0800)]
Clone the code from gitlab
This fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/326
Sebastian Dröge [Sun, 4 Nov 2018 10:45:57 +0000 (12:45 +0200)]
typefind: Always forward RECONFIGURE events upstream
Based on a patch by Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/67
Sebastian Dröge [Sat, 3 Nov 2018 16:44:48 +0000 (18:44 +0200)]
clock: Move clock weak ref into its own ABI struct
Otherwise it will be hard to add other things into the padding later
without breaking API.
Sebastian Dröge [Sat, 3 Nov 2018 16:29:17 +0000 (18:29 +0200)]
clock: Add new functions to the documentation
Sebastian Dröge [Sat, 3 Nov 2018 16:29:03 +0000 (18:29 +0200)]
clock: Fix deprecation handling of the GstClock clock field
Thomas Bluemel [Thu, 8 Sep 2016 14:49:54 +0000 (08:49 -0600)]
clock: Keep weak reference to underlying clock
Fixes potential segmentation fault when using a GstClockID that
is referencing an already freed GstClock
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/187
Zeeshan Ali [Tue, 30 Oct 2018 14:30:38 +0000 (15:30 +0100)]
gst-inspect: Don't page if output fits the screen
Zeeshan Ali [Tue, 30 Oct 2018 13:52:15 +0000 (14:52 +0100)]
gst-inspect: Flush stdout before closing stdout FD
Otherwise, last line can be lost.
Sebastian Dröge [Sun, 28 Oct 2018 15:19:38 +0000 (15:19 +0000)]
harness: Add API for proposing meta APIs from the allocation query
https://bugzilla.gnome.org/show_bug.cgi?id=797350
Jan Schmidt [Thu, 20 Sep 2018 13:17:52 +0000 (23:17 +1000)]
segment: Allow stop == -1 in gst_segment_to_running_time() and rate < 0
If a segment has stop == -1, then gst_segment_to_running_time()
would refuse to calculate a running time for negative rates,
but gst_segment_do_seek() allows this scenario and uses a
valid duration for calculations.
Make the 2 functions consistent by using any configured duration
to calculate a running time too in that case.
https://bugzilla.gnome.org/show_bug.cgi?id=796559
Zeeshan Ali [Sat, 27 Oct 2018 12:38:57 +0000 (13:38 +0100)]
gst-inspect: Pipe stdout to less if not piped already
https://bugzilla.gnome.org/show_bug.cgi?id=797344
Sebastian Dröge [Fri, 26 Oct 2018 08:21:42 +0000 (09:21 +0100)]
typefind: Lower debug level of some output related to the URI query
It's not a warning if an URI doesn't have an extension, and it's also
not mandatory that sources have an URI or even answer the URI query.
Jordan Petridis [Tue, 16 Oct 2018 16:35:03 +0000 (19:35 +0300)]
gst: skip format specifiers from gir generation
GST_TIME_FORMAT, GST_TIME_ARGS, GST_STIME_FORMAT, GST_STIME_ARGS
GST_PTR_FORMAT, GST_SEGMENT_FORMAT, GST_FOURCC_FORMAT and
GST_FOURCC_ARGS are format specifiers.
They can't be used outside of C and should be generated in the gir.
https://bugzilla.gnome.org/show_bug.cgi?id=797320
Jordan Petridis [Tue, 16 Oct 2018 16:35:03 +0000 (19:35 +0300)]
gst/gsterror.h: skip GST_ERROR_SYSTEM during gir generation
GST_ERROR_SYSTEM can't really be used outside of C and should
be skipped.
https://bugzilla.gnome.org/show_bug.cgi?id=797320
Edward Hervey [Mon, 22 Oct 2018 13:26:25 +0000 (15:26 +0200)]
multiqueue: Don't clamp running times for position calculation
Since we use full signed running times, we no longer need to clamp
the buffer time.
This avoids having the position of single queues not advancing for
buffers that are out of segment and never waking up non-linked
streams (resulting in an apparent "deadlock").
Edward Hervey [Mon, 22 Oct 2018 11:45:52 +0000 (13:45 +0200)]
queue2: Reset result flow when retrying
If we ever get a GST_FLOW_EOS from downstream, we might retry
pushing new data. But if pushing that data doesn't return a
GstFlowReturn (such as pushing events), we would end up returning
the previous GstFlowReturn (i.e. EOS).
Not properly resetting it would cause cases where queue2 would
stop pushing on the first GstEvent stored (even if there is more
data contained within).