Nirbheek Chauhan [Mon, 24 Jun 2019 15:44:51 +0000 (21:14 +0530)]
leakstracer: Get rid of GSlice usage
It's not faster than malloc, and is slower in most cases. Glib is also
getting rid of it entirely: https://gitlab.gnome.org/GNOME/glib/merge_requests/940
Nirbheek Chauhan [Fri, 21 Jun 2019 05:56:38 +0000 (11:26 +0530)]
leakstracer: Remove unused and redundant record fields
All leak records are obviously scoped to the process, and nothing in
the GstTracerRecord code uses these fields anyway.
Nirbheek Chauhan [Fri, 21 Jun 2019 05:13:18 +0000 (10:43 +0530)]
tracerrecord: Be stricter while parsing record templates
It's not really possible for us to recover when someone uses the
gst_tracer_record_new() API incorrectly. Also, document a piece of
somewhat-obscure code.
Nirbheek Chauhan [Tue, 18 Jun 2019 22:12:46 +0000 (03:42 +0530)]
leakstracer: Improve documentation for the element
Also print a useful g_warning() message when leaks are detected.
Nirbheek Chauhan [Mon, 1 Jul 2019 09:25:20 +0000 (14:55 +0530)]
gstcheck: Document strcmp used in string cmp macros
strcmp() does not allow the arguments to be NULL, but g_strcmp0()
does, so document that we use g_strcmp0() so that people don't need to
worry about that.
Nirbheek Chauhan [Fri, 21 Jun 2019 05:11:18 +0000 (10:41 +0530)]
gstsystemclock: Mark the clock as MAY_BE_LEAKED
It is freed in gst_deinit(), but otherwise it is leaked.
Nirbheek Chauhan [Tue, 18 Jun 2019 22:09:59 +0000 (03:39 +0530)]
gstinfo: Rework stack trace detection a bit
Ensure that the code paths for HAVE_UNWIND and HAVE_DBGHELP are never
taken at the same time, even if the build file code changes.
Prefer DbgHelp over libunwind on Windows in case both are somehow
available because DbgHelp is only available when building with the
MSVC toolchain, and libunwind won't give us debug symbols from objects
built with the MSVC toolchain.
Also, print slightly more useful messages for the level of stack trace
support enabled, and document what each if conditional does.
Nirbheek Chauhan [Tue, 18 Jun 2019 21:49:16 +0000 (03:19 +0530)]
gstinfo: Add an explicit enum for GST_STACK_TRACE_SHOW_NONE
The code implicitly uses this value when the stack trace is not FULL.
Mostly useful for documenting the behaviour when each flag is passed
and for translating to/from strings.
Carlos Rafael Giani [Mon, 24 Jun 2019 12:35:16 +0000 (14:35 +0200)]
basesrc: Add public gst_base_src_negotiate () function
This is useful for when format changes occur mid-stream.
Thibault Saunier [Thu, 27 Jun 2019 19:51:47 +0000 (15:51 -0400)]
multiqueue: Hold weak references to pads/multiqueue in SingleQueue
Without holding a ref we have no guarantees that the SingleQueue
doesn't have dangling pointers on those objects during its destruction.
Nirbheek Chauhan [Mon, 6 May 2019 13:49:47 +0000 (19:19 +0530)]
gstplugin: Don't stat plugins when building for UWP
When using GStreamer with Universal Windows Platform apps, dynamic
plugins can only be loaded by filename (without a path) using
gst_plugin_load_file() which will call into g_module_open().
On Windows, GModule calls LoadLibrary() on the filename, but with
UWP we need to use LoadPackagedLibrary() which is basically the same
as LoadLibrary(), except it looks only for DLLs (by name) that have
been packaged as assets with the app.
These assets are not files and cannot be accessed using normal file
APIs such as open() or stat().
The upstream glib merge request for adding LoadPackagedLibrary support
is: https://gitlab.gnome.org/GNOME/glib/merge_requests/951
NOTE: Whitespcae removal is to make gst-indent happy
Nirbheek Chauhan [Wed, 15 May 2019 23:27:16 +0000 (04:57 +0530)]
gstconfig.h.in: Windows ARM64 does not allow unaligned access
Nicolas Dufresne [Wed, 19 Jun 2019 21:39:58 +0000 (17:39 -0400)]
testclock: Allow calling crank with a past entry
At the moment, we can only use crank if the pending entry is in the
future. This patch leaves the clock time to the same point if the
pending entry was in the past. This still execute a single entry. This
will be needed for the jitterbuffer, since as soon as we stop waking up
the jitterbuffer when the timer is reschedule later, we may endup with
such case in the unit tests.
Related to #608
Thibault Saunier [Sun, 23 Jun 2019 03:46:35 +0000 (23:46 -0400)]
multiqueue: Stop using the gst_pad_element_private API
There was a race where we could still get the pad event function
called when its private member were already unset, leading to
a segfault in the event handler:
```
0 gst_multi_queue_src_event (pad=<optimized out>, parent=<optimized out>, event=0x7f3ff0007600) at ../subprojects/gstreamer/plugins/elements/gstmultiqueue.c:2534
2534 ret = gst_pad_push_event (sq->sinkpad, event);
[Current thread is 1 (Thread 0x7f406c0258c0 (LWP 21925))]
(gdb) bt
0 0x00007f4062ec1399 in gst_multi_queue_src_event (pad=<optimized out>, parent=<optimized out>, event=0x7f3ff0007600 [GstEvent]) at ../subprojects/gstreamer/plugins/elements/gstmultiqueue.c:2534
1 0x00007f406b40f46d in gst_validate_pad_monitor_src_event_check (handler=0x7f4062ec1360 <gst_multi_queue_src_event>, event=0x7f3ff0007600 [GstEvent], parent=0x7f3fcc01f090 [GstMultiQueue|multiqueue167], pad_monitor=0x7f3fe809e7c0 [GstValidatePadMonitor|validatepadmonitor2213]) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c:2101
2 0x00007f406b40f46d in gst_validate_pad_monitor_src_event_func (pad=<optimized out>, parent=0x7f3fcc01f090 [GstMultiQueue|multiqueue167], event=0x7f3ff0007600 [GstEvent]) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c:2374
3 0x00007f406b904387 in gst_pad_send_event_unchecked (pad=pad@entry=0x7f3fdc027650 [GstPad|src_0], event=event@entry=0x7f3ff0007600 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../subprojects/gstreamer/gst/gstpad.c:5772
4 0x00007f406b90481b in gst_pad_push_event_unchecked (pad=pad@entry=0x7f4058182fc0 [GstPad|sink], event=event@entry=0x7f3ff0007600 [GstEvent], type=type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../subprojects/gstreamer/gst/gstpad.c:5417
5 0x00007f406b90f016 in gst_pad_push_event (pad=0x7f4058182fc0 [GstPad|sink], event=event@entry=0x7f3ff0007600 [GstEvent]) at ../subprojects/gstreamer/gst/gstpad.c:5554
6 0x00007f406a1c99ba in gst_video_decoder_src_event_default (decoder=0x7f3fe81c6060 [GstTheoraDec|theoradec46], event=<optimized out>) at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideodecoder.c:1532
7 0x00007f406b40f46d in gst_validate_pad_monitor_src_event_check (handler=0x7f406a1ca270 <gst_video_decoder_src_event>, event=0x7f3ff0007600 [GstEvent], parent=0x7f3fe81c6060 [GstTheoraDec|theoradec46], pad_monitor=0x7f4028163aa0 [GstValidatePadMonitor|validatepadmonitor2216]) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c:2101
8 0x00007f406b40f46d in gst_validate_pad_monitor_src_event_func (pad=<optimized out>, parent=0x7f3fe81c6060 [GstTheoraDec|theoradec46], event=0x7f3ff0007600 [GstEvent]) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c:2374
```
This make the GstSingleQueue a MiniObject, mainly so it is properly
refcounted.
This also make use of the GstMultiQueuePad class for srcpads which
is totally valid as srcpads and sinkpads share the same SingleQueue
object.
Mathieu Duponchelle [Fri, 21 Jun 2019 13:38:15 +0000 (15:38 +0200)]
devicemonitor: add debug category
Michael Bunk [Thu, 20 Jun 2019 12:04:55 +0000 (14:04 +0200)]
Fixing various typos
Guillaume Desmottes [Thu, 20 Jun 2019 11:12:01 +0000 (16:42 +0530)]
latency: display event pointer in logs
This is quite useful for debugging when tracer is reporting the wrong
latency because of an element breaking the events/buffers ordering.
Guillaume Desmottes [Thu, 20 Jun 2019 08:19:14 +0000 (13:49 +0530)]
gstelements_private: sync gst_buffer_get_flags_string() with new flags
Thibault Saunier [Thu, 20 Jun 2019 03:29:24 +0000 (23:29 -0400)]
multiqueue: never unref queries we do not own
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.
Havard Graff [Mon, 17 Jun 2019 07:50:32 +0000 (09:50 +0200)]
gstmeta: Optimize get_tags() by using private quark table
Havard Graff [Thu, 13 Jun 2019 08:32:32 +0000 (10:32 +0200)]
pad: increase debug-level to warning for fatal outcomes
Håvard Graff [Thu, 13 Jun 2019 15:21:03 +0000 (15:21 +0000)]
queue: don't report 0 max-latency for leaky queue if max was already 0.
Havard Graff [Wed, 22 May 2019 08:09:47 +0000 (10:09 +0200)]
harness: move creating of buffer and event queues to harness itself
By only having it on sinkpad-creation, it is racy to write a test
with a sometimes-pad (like a demuxer) that you want to pull from, having
the pull wait until the pad arrives and the buffer can be produced.
Stian Selnes [Wed, 3 Oct 2018 11:56:22 +0000 (13:56 +0200)]
harness: Fix race when forwarding event while tearing down harness
Stian Selnes [Mon, 28 May 2018 08:57:13 +0000 (10:57 +0200)]
harness: Make sure pad functions are not called after teardown
For the query function there's a risk that the function may be called
after the harness has been teared down. Since the function accesses a
pointer to the harness via the pad's data, the harness must protect
itself against this.
Event and chain function is also handled for constistency, although
they don't have the same problem since the gstpad.c checks whether the
pad is flushing before calling these.
Mathieu Duponchelle [Tue, 11 Jun 2019 20:09:33 +0000 (22:09 +0200)]
aggregator: don't try to take STREAM_LOCK on sink pad flush
This was a misguided effort to try and guarantee the buffers of
the sink pads would not change during aggregate, when an upstream
branch is seeked independently, however this is simply incorrect
as downstream has not necessarily been flushed, or the aggregate
function might be waiting to receive buffers on other pads.
Mathieu Duponchelle [Tue, 11 Jun 2019 13:20:18 +0000 (15:20 +0200)]
aggregator: send flush_stop ourselves if needed
In !159 , we switched to sending flush_start ourselves from the
do_seek implementation. If no flushing seek successfully made its
way upstream, we need to send flush_stop ourselves as well.
Mathieu Duponchelle [Mon, 10 Jun 2019 15:23:29 +0000 (17:23 +0200)]
aggregator: don't hold stream lock when flushing
Releasing a GRecMutex from a different thread is undefined
behaviour.
There should be no reason to hold the stream lock from the
moment aggregator receives a flush_start until it receives
the last flush_stop: the source pad task is stopped, and can
only be restarted once the last flush_stop has arrived.
I can only speculate as to the reason why this was done,
as it was that way since the original commit. My best
guess is that aggregator originally didn't marshall events
and queries to the aggregate thread, and this somehow
helped work around this.
Mathieu Duponchelle [Wed, 22 May 2019 19:37:43 +0000 (21:37 +0200)]
aggregator: refactor flushing logic
Instead of tracking "pending_flush_*" on the pads and the
aggregator, we now simply track the last seqnum for flush start
and flush stop events on the pads, and use it to determine whether
we should enter or exit our flushing state.
See https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/977
Mathieu Duponchelle [Wed, 5 Jun 2019 16:40:12 +0000 (18:40 +0200)]
valgrind: revert generic suppression of ld-related errors
the replacement suppression casts way too large a net, ignoring
all leaks in the main thread
Mathieu Duponchelle [Wed, 5 Jun 2019 18:58:45 +0000 (20:58 +0200)]
valgrind: ignore dlopen leaks when parsing launch lines
Mathieu Duponchelle [Wed, 5 Jun 2019 18:58:45 +0000 (20:58 +0200)]
valgrind: suppress intentional debug list item leak
Sebastian Dröge [Tue, 4 Jun 2019 14:56:30 +0000 (17:56 +0300)]
concat: Improve debug output a bit
Sebastian Dröge [Tue, 4 Jun 2019 14:55:30 +0000 (17:55 +0300)]
concat: Reset last_stop on FLUSH_STOP too
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.
Niels De Graef [Tue, 4 Jun 2019 06:50:59 +0000 (08:50 +0200)]
Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally
Since we started depending on GLib 2.44, we can be sure this macro is
defined (it will be a no-op on compilers that don't support it). For
plugins we should just start using `G_DECLARE_FINAL_TYPE` which means
we no longer need the macro there, but for most types in core we don't
want to break ABI, which means it's better to just keep it like it is
(and use the `#ifdef` instead).
Niels De Graef [Fri, 31 May 2019 20:56:09 +0000 (22:56 +0200)]
meson: Bump minimal GLib version to 2.44
This means we can use some newer features and get rid of some
boilerplate code using the `G_DECLARE_*` macros.
As discussed on IRC, 2.44 is old enough by now to start depending on it.
Mathieu Duponchelle [Sat, 1 Jun 2019 00:37:26 +0000 (02:37 +0200)]
docs: unprefix subproject paths
Thibault Saunier [Fri, 31 May 2019 03:23:35 +0000 (23:23 -0400)]
docs: Add tracers support
Mathieu Duponchelle [Thu, 30 May 2019 23:56:08 +0000 (01:56 +0200)]
gstelement: fix links to the gsterror page
Mathieu Duponchelle [Thu, 30 May 2019 23:45:41 +0000 (01:45 +0200)]
gsttaglist: do not link to symbols from gst-plugins-base in doc
Mathieu Duponchelle [Wed, 29 May 2019 19:33:42 +0000 (21:33 +0200)]
doc: remove xml from comments
Thibault Saunier [Wed, 22 May 2019 22:56:34 +0000 (18:56 -0400)]
docs: Document pad types
And update the plugins doc cache
Thibault Saunier [Wed, 22 May 2019 13:47:41 +0000 (09:47 -0400)]
aggregator: Minor documentation fix
Tim-Philipp Müller [Wed, 29 Jul 2015 10:48:33 +0000 (11:48 +0100)]
aggregator: fix flow-return boolean return type mismatch
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.
Michael Olbrich [Sun, 12 May 2019 05:45:31 +0000 (07:45 +0200)]
gdb: add gst_element_pad() function
Another helper to navigate a pipeline. It makes it possible to easily
access the pads of an element:
(gdb) print $gst_element_pad(basesink, "sink")
$1 = 0x7fffe80770f0 [GstPad|sink]
Michael Olbrich [Sat, 11 May 2019 19:08:50 +0000 (21:08 +0200)]
gdb: print more data for segment events
This add the different timestamps for segment events:
(gdb) gst-print pad
SrcPad(src, push) {
events:
[...]
segment: time
rate: 1.1
start: 0:03:08.
449753330
time: 0:03:08.
449753330
position: 0:03:08.
449753330
duration: 0:12:14.
166687500
[...]
}
Michael Olbrich [Sat, 11 May 2019 19:02:37 +0000 (21:02 +0200)]
gdb: add 'gst-pipeline-tree' command
It shows a simple tree of all elements in pipeline.
As with gst-dot, the toplevel bin is found from any element of the
pipeline:
(gdb) gst-pipeline-tree bsink
playbin
inputselector1
inputselector0
uridecodebin0
queue2-0
decodebin0
avdec_aac0
aacparse0
vaapidecodebin0
vaapipostproc0
capsfilter1
vaapi-queue
vaapidecode0
capsfilter0
h264parse0
multiqueue0
matroskademux0
typefind
typefindelement0
source
playsink
abin
aconv
resample
conv
identity
aqueue
pulsesink0
vbin
vconv
scale
conv
identity
vqueue
vaapisink0
vdbin
deinterlace
vdconv
audiotee
streamsynchronizer0
Michael Olbrich [Sat, 11 May 2019 18:59:04 +0000 (20:59 +0200)]
gdb: add gst_pipeline() and gst_bin_get() functions
This simplifies navigating in a GStreamer pipeline, e.g.
(gdb) print $gst_bin_get($gst_pipeline(pad), "matroskademux0")
$1 = 0x7fffe81b4050 [GstMatroskaDemux|matroskademux0]
Michael Olbrich [Sat, 11 May 2019 18:55:36 +0000 (20:55 +0200)]
gdb: handle ghost and proxy pads while looking for the top-level element
The parent object for pads is not always a GstElement. Handle GstProxyPad
parents as well.
Michael Olbrich [Sat, 11 May 2019 18:53:54 +0000 (20:53 +0200)]
gdb: refactor finding top-level pipeline
No functional changes. Just refactoring to make it possible to reuse this
later.
Michael Olbrich [Sat, 11 May 2019 18:53:05 +0000 (20:53 +0200)]
gdb: gst-print add more pad and element information
For elements, this adds all child elements, the state and base/start time:
(gdb) gst-print pipeline
0x5555556ebd20 "pipeline0"
GstPipeline(pipeline0) {
children:
fakesink0
queue0
videotestsrc0
state: PLAYING
base_time: +2:54:36.
892581150
start_time: 0:00:00.
000000000
}
For pads, this adds the peer pads and the current task state and the
offset (if not zero):
(gdb) gst-print pad
SrcGhostPad(src, push) {
events:
[...]
peer: vaapisink0:sink
inner peer: scale:src
}
(gdb) gst-print pad
SrcPad(src, push) {
events:
[...]
peer: queue0:sink
task: STARTED
offset:
30000000 [+0:00:00.
030000000]
}
Michael Olbrich [Sat, 11 May 2019 18:39:00 +0000 (20:39 +0200)]
gdb: refactor time formating
Make it reuseable independent of the GstClockTimePrinter.
Sebastian Dröge [Wed, 22 May 2019 07:44:50 +0000 (10:44 +0300)]
dataurisrc: Add test that checks various URIs against their expected output
Benjamin Otte [Tue, 21 May 2019 15:22:04 +0000 (17:22 +0200)]
dataurisrc: Fix crash when semicolon is aprt of data
This URI is valid:
data:,;base64
(It encodes the literal string ";base64")
But would lead to a crash because the code assumed the semicolon would
be placed before the colon.
Benjamin Otte [Tue, 21 May 2019 15:15:52 +0000 (17:15 +0200)]
dataurisrc: Allow case-insensitive scheme
Quoting RFC 2396:
For resiliency, programs interpreting URI should treat upper case
letters as equivalent to lower case in scheme names (e.g., allow
"HTTP" as well as "http").
Matthew Waters [Thu, 16 May 2019 06:17:35 +0000 (16:17 +1000)]
docs: add coretracers to the list of plugins
Thibault Saunier [Thu, 16 May 2019 13:11:00 +0000 (09:11 -0400)]
docs: Stop building the doc cache by default
Fixes https://gitlab.freedesktop.org/gstreamer/gst-docs/issues/36
Thibault Saunier [Thu, 16 May 2019 02:46:45 +0000 (22:46 -0400)]
docs: Update diplayed plugins filename something stable
Thibault Saunier [Thu, 16 May 2019 01:15:35 +0000 (21:15 -0400)]
hotdoc: Let the the registry inspect in forks
So that the whole process doesn't segfault if something bad happens while inspecting
Thibault Saunier [Wed, 15 May 2019 13:23:06 +0000 (09:23 -0400)]
docs: Use the MESON_BUILD_ROOT env variable in the plugins cache generator
Thibault Saunier [Tue, 14 May 2019 19:27:05 +0000 (15:27 -0400)]
docs: Do not pass the json through stdout
Unicode encoding breaks on windows when doing so
Thibault Saunier [Tue, 14 May 2019 17:44:43 +0000 (13:44 -0400)]
registry: Avoid discovering plugins in hotdoc private directories
Thibault Saunier [Tue, 14 May 2019 17:44:24 +0000 (13:44 -0400)]
docs: Do not inspect internal files
Seungha Yang [Tue, 14 May 2019 11:27:47 +0000 (20:27 +0900)]
docs: Always follow Unix style newline
The 'open()' follows default behavior of OS (CRLF in case of Windows).
So it results in a bunch of git diff on Windows.
Sebastian Dröge [Thu, 16 May 2019 12:15:27 +0000 (15:15 +0300)]
basesink: Remove leading space from Since maker of gst_base_sink_get_stats()
gobject-introspection does not like this.
Sebastian Dröge [Thu, 16 May 2019 12:13:23 +0000 (15:13 +0300)]
basesink: Fix syntax for gtk-doc comment of the new stats property
Edward Hervey [Mon, 13 May 2019 14:42:04 +0000 (16:42 +0200)]
gstpad: Probes that return HANDLED can reset the data info field
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.
Sebastian Dröge [Mon, 6 May 2019 19:17:50 +0000 (22:17 +0300)]
filesink: Implement workaround for some (network) filesystems that spuriously return EACCES on write
This seems to happen when another client is accessing the file at the
same time, and retrying after a short amount of time solves it.
Sometimes partial data is written at that point already but we have no
idea how much it is, or if what was written is correct (it sometimes
isn't) so we always first seek back to the current position and repeat
the whole failed write.
It happens at least on Linux and macOS on SMB/CIFS and NFS file systems.
Between write attempts that failed with EACCES we wait 10ms, and after
enough consecutive tries that failed with EACCES we simply time out.
In theory a valid EACCES for files to which we simply have no access
should've happened already during the call to open(), except for NFS
(see open(2)).
This can be enabled with the new max-transient-error-timeout property, and
a new o-sync boolean property was added to open the file in O_SYNC mode
as without that it's not guaranteed that we get EACCES for the actual
writev() call that failed but might only get it at a later time.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/305
Aaron Boxer [Tue, 14 May 2019 19:44:07 +0000 (15:44 -0400)]
gstreamer.pc.in: exec_prefix must be defined before libexecdir
Thibault Saunier [Tue, 14 May 2019 02:47:38 +0000 (22:47 -0400)]
docs: Update plugins cache
Thibault Saunier [Tue, 14 May 2019 02:47:05 +0000 (22:47 -0400)]
docs: Fix cache invalidation status
The dictionnary is updated in place so we were checking the same twice
Thibault Saunier [Sun, 11 Nov 2018 23:11:47 +0000 (20:11 -0300)]
docs: Use the new GstPluginsPath.json to have the right plugin path
When inspecting plugins to generate the json cache file. Otherwise
when we are not in the uninstalled env and using `gst-build` plugins
with dependency might fail/throw warning, etc..
Thibault Saunier [Sun, 28 Oct 2018 12:05:41 +0000 (12:05 +0000)]
pkgconfig: Add information about libexecdir
https://bugzilla.gnome.org/show_bug.cgi?id=797349
Thibault Saunier [Thu, 13 Sep 2018 19:14:22 +0000 (16:14 -0300)]
doc: Update the README
Thibault Saunier [Sun, 19 Aug 2018 22:41:41 +0000 (19:41 -0300)]
doc: Fix hotdoc warnings
* Making sure that `static inline` function are in the GIR (by first
defining them, and make sure to mark as skiped)
* Do not try to link to unexisting symbols
* Also generate GIR information about gst_tracers
Thibault Saunier [Mon, 22 Oct 2018 06:14:11 +0000 (03:14 -0300)]
Port to hotdoc
Thibault Saunier [Fri, 14 Sep 2018 12:24:26 +0000 (09:24 -0300)]
doc: Remove gtk-doc support
Thibault Saunier [Sat, 11 Aug 2018 14:12:27 +0000 (10:12 -0400)]
gst: Add a GParamSpecFlag to force gst-inspect to use pspec default value
Instead of the object value, this should be used every time a random
value will be returned by g_object_get This is also useful to make the
values returned by inspecting element stable accross runs.
Thibault Saunier [Mon, 22 Oct 2018 09:44:04 +0000 (11:44 +0200)]
doc: Add some missing docstrings
Thibault Saunier [Mon, 22 Oct 2018 09:32:45 +0000 (11:32 +0200)]
doc: Fix and add some missing docstrings
Thibault Saunier [Mon, 22 Oct 2018 09:32:40 +0000 (11:32 +0200)]
structure: Mark _from_string as constructor
Nirbheek Chauhan [Mon, 13 May 2019 09:12:28 +0000 (14:42 +0530)]
meson: Pass -DGST_STATIC_COMPILATION for static builds
This is only needed on Windows when building with MSVC, but it is safe
to pass it everywhere.
Closes https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/398
Nirbheek Chauhan [Mon, 13 May 2019 07:54:42 +0000 (13:24 +0530)]
meson: Link to objects instea of static helper library
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 https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/398
Michael Olbrich [Sat, 11 May 2019 16:21:19 +0000 (18:21 +0200)]
meson: set correct install path for gdb helper
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.
Niels De Graef [Fri, 10 May 2019 12:51:15 +0000 (14:51 +0200)]
uri: Add gst_clear_uri()
Basically, you can use this instead of using `gst_uri_unref()` (which
needs to be preceded by a NULL-check).
See https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/275
and https://gitlab.freedesktop.org/gstreamer/gstreamer/merge_requests/3
Víctor Manuel Jáquez Leal [Thu, 9 May 2019 06:59:59 +0000 (08:59 +0200)]
gstbasesink: Fix gir annotation
Aaron Boxer [Sat, 26 Jan 2019 15:40:19 +0000 (10:40 -0500)]
gstbasesink: add stats getter method
fixes #355
Niels De Graef [Wed, 8 May 2019 10:11:50 +0000 (12:11 +0200)]
gst: Add support for g_autoptr(GstPromise)
Niklas Hambüchen [Wed, 1 May 2019 13:46:56 +0000 (15:46 +0200)]
Make get_flex_version.py script executable
Like all other scripts in the same dir.
It has a hashbang, so it should be executable.
Guillaume Desmottes [Thu, 25 Apr 2019 05:11:54 +0000 (10:41 +0530)]
gst-stats: format latency as GST_TIME
Latency is easier to read when formatted as time rather than displayed
as a flat number in ns.
Especially when displaying GST_CLOCK_TIME_NONE which is now formated as
99:99:99.
999999999 instead of
18446744073709551615.
Andoni Morales Alastruey [Wed, 24 Apr 2019 16:22:06 +0000 (18:22 +0200)]
gst-inspect: fix unused-const-variable error in windows
../tools/gst-inspect.c:44:20: error: 'DEFAULT_PAGER' defined but not used [-Werror=unused-const-variable=]
Mathieu Duponchelle [Mon, 12 Nov 2018 18:59:41 +0000 (19:59 +0100)]
gstsegment: Add GST_SEEK_FLAG_TRICKMODE_FORWARD_PREDICTED
This is generally useful, and mandated by the ONVIF streaming
spec, section 6.5.3
<https://www.onvif.org/specs/stream/ONVIF-Streaming-Spec.pdf>
Rasmus Thomsen [Sat, 20 Apr 2019 20:26:52 +0000 (22:26 +0200)]
meson: check for libcap via pkg-config
It's possible that setcap is installed, but the libcap headers/libs aren't (e.g.
during cross compilation, when you have the program installed for the host,
but need the headers of the target). Also removes the need to manually check
for the libcap headers.
Sebastian Dröge [Tue, 23 Apr 2019 15:00:59 +0000 (18:00 +0300)]
bitwriter: Fix inclusion of header in C++ code
../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));
~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sebastian Dröge [Tue, 23 Apr 2019 14:33:34 +0000 (17:33 +0300)]
base: Include gstbitwriter.h in the single-include header
Sebastian Dröge [Tue, 23 Apr 2019 12:08:18 +0000 (15:08 +0300)]
gst: Fix various Since markers
Sebastian Dröge [Tue, 23 Apr 2019 12:07:08 +0000 (15:07 +0300)]
libs: Fix various Since markers
Sebastian Dröge [Tue, 23 Apr 2019 11:54:03 +0000 (14:54 +0300)]
aggregator: Mark all public structs as Since: 1.14
Sebastian Dröge [Tue, 23 Apr 2019 11:39:48 +0000 (14:39 +0300)]
caps: Add Since: 1.16 marker to gst_caps_copy()
Sebastian Dröge [Tue, 23 Apr 2019 09:31:07 +0000 (12:31 +0300)]
bitwriter: Mark the whole type as Since: 1.16