Stefan Sauer [Thu, 21 Jan 2016 07:12:01 +0000 (08:12 +0100)]
tracerrecord: don't leak the spec structures
Change the gst_tracer_record_new() api to take the parameters the make the
spec structure directly. This allows us to own the top-level structure and
also collect the args so that we can take ownership of the sub-structures.
https://bugzilla.gnome.org/show_bug.cgi?id=760821
Tim-Philipp Müller [Thu, 21 Jan 2016 15:45:30 +0000 (15:45 +0000)]
device: fix comparison in _has_classesv()
We're comparing a pointer type with '\0' here, which
probably isn't right, and the loop condition made sure
that classes[0] is != NULL already, so it's pointless.
Was probaby meant to check if the string pointed to is
not empty, so make it do that instead.
Stefan Sauer [Wed, 20 Jan 2016 19:32:24 +0000 (20:32 +0100)]
test/tracerrecord: unref objects and free string
Florin Apostol [Mon, 18 Jan 2016 22:45:58 +0000 (22:45 +0000)]
systemclock: tests: added stress test for async order
Keep inserting alarms at the beginning of the list. Due to
https://bugzilla.gnome.org/show_bug.cgi?id=760757
alarm thread will get confused and not serve them in order.
Florin Apostol [Mon, 18 Jan 2016 16:25:20 +0000 (16:25 +0000)]
systemclock: fixed race condition in handling alarms
When choosing the first entry from the list, gst_system_clock_async_thread
must set the entry state to busy before releasing the clock lock. Otherwise
a new entry could be added to the beginning of the list and
gst_system_clock_async_thread will be unaware and keep waiting on the entry
it has already chosen.
Also improved messages about expected state and bumped them to ERROR level
to detect unexpected state changes.
https://bugzilla.gnome.org/show_bug.cgi?id=760757
Tim-Philipp Müller [Wed, 20 Jan 2016 11:07:17 +0000 (11:07 +0000)]
utils: remove duplicate check
Tim-Philipp Müller [Wed, 20 Jan 2016 09:57:00 +0000 (09:57 +0000)]
multiqueue: two small fixes for when an existing pad is requested
Unlock when returning NULL from gst_single_queue_new(), and don't
crash with debug logging enabled if NULL is returned.
Spotted by Steven Hoving.
Stefan Sauer [Wed, 20 Jan 2016 09:02:37 +0000 (10:02 +0100)]
gstvalue: remove a half finishesh sentence in the docs
No idea what was the idea here. SO lets just drop it.
Vineeth TM [Tue, 19 Jan 2016 05:39:06 +0000 (14:39 +0900)]
tracerrecord: Fix self->spec structure invalid free
self->spec is got using g_value_get_boxed(), which is a transfer none function.
So the same should not be freed, which is resulting in wrong behavior.
https://bugzilla.gnome.org/show_bug.cgi?id=760821
Vineeth TM [Wed, 20 Jan 2016 08:25:44 +0000 (09:25 +0100)]
tracerrecord: Initialise flags to avoid wrong comparision
GstTracerValueFlags is not being initialized and the same could result in wrong
comparision and behavior. Hence initializing it to GST_TRACER_VALUE_FLAGS_NONE.
https://bugzilla.gnome.org/show_bug.cgi?id=760821
Stefan Sauer [Wed, 20 Jan 2016 08:18:01 +0000 (09:18 +0100)]
tests/gst/info: Fix messages glist memory leak
Vineeth TM [Tue, 19 Jan 2016 06:03:55 +0000 (15:03 +0900)]
tests: tracerrecord: Fix messages glist memory leak
https://bugzilla.gnome.org/show_bug.cgi?id=760821
Stefan Sauer [Mon, 18 Jan 2016 20:12:53 +0000 (21:12 +0100)]
tracer: add an internal ptr format for tracer serialisation
We need to apply the string wrapping that value serialisation does also in the
tracer logging, otherwise we can't parse nested structures.
Stefan Sauer [Mon, 18 Jan 2016 20:09:49 +0000 (21:09 +0100)]
tracer/gststats: fix mismatch between '.class' and tracer args
Clean up from the recent changes. The logging descriptiors did not match what we logged.
Jan Schmidt [Wed, 11 Nov 2015 14:14:34 +0000 (01:14 +1100)]
queue2: Add use-tags-bitrate property
The use-tags-bitrate property makes queue2 look at
tag events in the stream and extract a bitrate for the
stream to use when calculating a duration for buffers
that don't have one explicitly set.
This lets queue2 sensibly buffer to a time threshold
for any bytestream for which the general bitrate is known.
Luis de Bethencourt [Tue, 19 Jan 2016 12:04:16 +0000 (12:04 +0000)]
tracerrecord: avoid overwriting value
res value is overwritten, remove the assignment.
priv__gst_structure_append_template_to_gstring () always returns TRUE
anyway.
CID 1349645
Edward Hervey [Tue, 19 Jan 2016 10:11:25 +0000 (11:11 +0100)]
benchmarks: Disable tracerserialize benchmark on GST_DISABLE_GST_DEBUG
no gst-debugging => no tracer logging (and no pony either)
Edward Hervey [Tue, 19 Jan 2016 10:10:30 +0000 (11:10 +0100)]
tracerrecord: Disable logging if GST_DISABLE_GST_DEBUG
Make the gst_tracer_record_log() a no-op if the gst-debug subsystem
is disabled.
Tim-Philipp Müller [Mon, 18 Jan 2016 19:17:16 +0000 (19:17 +0000)]
value: fail flag deserialization on invalid flag names
Tim-Philipp Müller [Mon, 18 Jan 2016 19:10:48 +0000 (19:10 +0000)]
tests: structure: fix wrong flag name in deserialization test
There is no GST_SEEK_FLAGS_NONE only GST_SEEK_FLAG_NONE (but
the deserializer silently skips bad flag names currently).
Tim-Philipp Müller [Sun, 17 Jan 2016 23:49:27 +0000 (23:49 +0000)]
tracers: fix thread-id casts to 64-bit ints on 32-bit systems
https://bugzilla.gnome.org/show_bug.cgi?id=760762
Vineeth TM [Mon, 18 Jan 2016 01:13:02 +0000 (10:13 +0900)]
gst: ref/unref new enum types in gst_init/deinit
https://bugzilla.gnome.org/show_bug.cgi?id=760767
Tim-Philipp Müller [Sun, 17 Jan 2016 00:08:33 +0000 (00:08 +0000)]
win32: update exports for new flags get_type()
Philip Van Hoof [Sat, 16 Jan 2016 21:43:23 +0000 (22:43 +0100)]
tracer.h: don't include private noinst header gsttracerutils.h in a public header
https://bugzilla.gnome.org/show_bug.cgi?id=760732
Stefan Sauer [Sat, 16 Jan 2016 20:24:19 +0000 (21:24 +0100)]
benchmark: improve script
Use a temp file for the log and fix one env-var.
Stefan Sauer [Sat, 16 Jan 2016 20:23:10 +0000 (21:23 +0100)]
tracer/stats: use the right log template
When porting we used the wrong record (copy and paste).
Stefan Sauer [Sat, 16 Jan 2016 20:04:46 +0000 (21:04 +0100)]
tracer: update the docs
Add the new enum and flags. Remove the GstTracerRecordPrivate.
Stefan Sauer [Sat, 16 Jan 2016 20:02:39 +0000 (21:02 +0100)]
gst-stats: update to latest tarcer api
The thread-ids are serialized as uint64. The 'elem-ix' got changed to
'element-ix'. Make the code a bit more robust.
Stefan Sauer [Sat, 16 Jan 2016 17:55:07 +0000 (18:55 +0100)]
tracer: use the new flags to create the optional field in the format string
This spares us explicitly listing the field in the spec. and thus hide this
implementation detail.
Stefan Sauer [Sat, 16 Jan 2016 17:52:32 +0000 (18:52 +0100)]
tracer: add a GstTracerValueFlags and replace strings
This allows us to document the flags and makes the logs a bit smaller.
Tim-Philipp Müller [Sat, 16 Jan 2016 16:01:38 +0000 (16:01 +0000)]
message: add function guard to gst_message_set_buffering_stats()
https://bugzilla.gnome.org/show_bug.cgi?id=760704
Tim-Philipp Müller [Sat, 16 Jan 2016 14:51:37 +0000 (14:51 +0000)]
gst.h: Don't spew warnings if GST_USE_UNSTABLE_API is not defined
Only hide GstTracer and GstTracerRecord API behind GST_USE_UNSTABLE_API,
but don't spew any warnings, otherwise everyone has to define this
to avoid compiler warnings.
This reverts parts of commit
89ee5d948dff560204e6edd210c44ed2b8654b8e.
Stefan Sauer [Sat, 16 Jan 2016 12:30:34 +0000 (13:30 +0100)]
benchmarks: update the tracer benchmark and add a shell benchmark
Stefan Sauer [Sat, 16 Jan 2016 12:28:32 +0000 (13:28 +0100)]
docs/design: update tracerspec examples
Stefan Sauer [Sat, 16 Jan 2016 12:27:59 +0000 (13:27 +0100)]
docs/design: spell checking
Stefan Sauer [Sat, 16 Jan 2016 12:24:16 +0000 (13:24 +0100)]
tracer: add a GFlag for the tracer scope
Port all tracers. Add the GST_USE_UNSTABLE_API flag to the internal CFLAGS so
that we don't have to specify this for gir, docs, mkenum, ...
Sebastian Dröge [Sat, 16 Jan 2016 09:48:02 +0000 (10:48 +0100)]
output-selector: Make access to the active pad and last buffer thread-safe
Both can be modified from different threads at the same time.
Sebastian Dröge [Sat, 16 Jan 2016 09:47:36 +0000 (10:47 +0100)]
output-selector: Notify when the active-pad property is changing
Stefan Sauer [Tue, 12 Jan 2016 13:59:04 +0000 (14:59 +0100)]
tracerrecord: add a log record class
We use this class to register tracer log entry metadata and build a log
template. With the log template we can serialize log data very efficiently.
This also simplifies the logging code, since that is now a simple varargs
function that is not exposing the implementation details.
Add docs for the new class and basic tests.
Remove the previous log handler.
Fixes #760267
Sebastian Dröge [Fri, 15 Jan 2016 08:48:32 +0000 (09:48 +0100)]
netclientclock: Check return value of g_socket_close()
CID 1348452
Sebastian Dröge [Fri, 15 Jan 2016 08:02:42 +0000 (09:02 +0100)]
netclientclock: Free data after removing it from the list
Does not matter here but makes Coverity more happy. It can't
know that g_list_remove() only looks at the pointer value but
does not dereference it.
CID 1348454
Nirbheek Chauhan [Thu, 14 Jan 2016 19:00:59 +0000 (00:30 +0530)]
GstDeviceMonitor: Clarify the behaviour of gst_device_monitor_add_filter
Nirbheek Chauhan [Thu, 14 Jan 2016 18:55:05 +0000 (00:25 +0530)]
GstDeviceMonitor: Don't remove unmatched class filters
If no providers for a particular class could be found, then removing unmatched
filters would cause all devices to be returned instead which is not at all what
the user intended. We still return 0 for unmatched filters.
Florin Apostol [Wed, 13 Jan 2016 21:32:20 +0000 (21:32 +0000)]
netclientclock: Fix GError memory leak in handling NTP response
Error was not released if gst_ntp_packet_receive failed.
https://bugzilla.gnome.org/show_bug.cgi?id=760598
Matthew Waters [Wed, 13 Jan 2016 02:10:10 +0000 (13:10 +1100)]
win32: update exports for API additions
Matthew Waters [Mon, 11 Jan 2016 05:31:39 +0000 (16:31 +1100)]
info: expose debugging printf functions
Other gst libraries and/or elements may want to add some debug logging to an
external debug system or implement delayed debugging for performance reasons.
Exposes the internal __gst_vasprintf as gst_info_vasprintf which has a fallback
to g_vasprintf if the debug system is disabled.
API: gst_info_vasprintf
API: gst_info_strdup_vprintf
API: gst_info_strdup_printf
https://bugzilla.gnome.org/show_bug.cgi?id=760421
Carlos Rafael Giani [Mon, 11 Jan 2016 20:17:25 +0000 (21:17 +0100)]
basesrc: Only set duration/position query values in case of query success
Currently, the query values are being set even if the query itself was
determined to have failed. Fix this to ensure the values are only set in
case of a query success.
https://bugzilla.gnome.org/show_bug.cgi?id=760479
Stefan Sauer [Sun, 10 Jan 2016 13:30:05 +0000 (14:30 +0100)]
tracers: code clean ups
Drop some trailing whilespace. Make field order consistent.
Stefan Sauer [Fri, 8 Jan 2016 22:35:53 +0000 (23:35 +0100)]
benchmark: fix copy'n'past of the file-description comment
Stefan Sauer [Fri, 8 Jan 2016 22:06:55 +0000 (23:06 +0100)]
benchmark: add a benchmark for bgo/760267
Big suprise - GstStructure is faster than GVariant.
HoonHee Lee [Tue, 10 Mar 2015 04:07:18 +0000 (13:07 +0900)]
funnel: improve debug message
https://bugzilla.gnome.org/show_bug.cgi?id=745939
Tim-Philipp Müller [Fri, 8 Jan 2016 19:25:24 +0000 (19:25 +0000)]
info: add buffer list support to GST_PTR_FORMAT
Aurélien Zanelli [Wed, 25 Nov 2015 16:36:25 +0000 (17:36 +0100)]
controlsource: fix GetValue and GetValueArray documentation
GstControlSourceGetValue() value paramater is a gdouble, not a GValue
and GstControlSourceGetValueArray doesn't return a GstValueArray but
an array of double.
https://bugzilla.gnome.org/show_bug.cgi?id=758668
Stefan Sauer [Thu, 7 Jan 2016 22:03:48 +0000 (23:03 +0100)]
tracer: harmonize the query hooks
In post hooks always pass the return value as the last param. Pass the query
also to post hooks since it is still alive.
Stefan Sauer [Thu, 7 Jan 2016 21:47:37 +0000 (22:47 +0100)]
tracers/stats: add missing parameters to callback functions
Stefan Sauer [Thu, 7 Jan 2016 21:43:58 +0000 (22:43 +0100)]
tracerutils: update #endif comment
We changed the define, but left the comment inconsistent.
Stefan Sauer [Thu, 7 Jan 2016 18:13:03 +0000 (19:13 +0100)]
tracerutils: document the tracer hook functions
Document all tracer hook function pointer together with the detail string that
one needs to use with gst_tracing_register_hook().
Sebastian Dröge [Thu, 7 Jan 2016 16:46:21 +0000 (18:46 +0200)]
tracer: Use GST_DISABLE_GST_TRACER_HOOKS instead of GST_DISABLE_GST_DEBUG everywhere
Previously we used the latter one still for the tracer utility code, causing
undefined references in the resulting binary if the debugging system was
disabled but the tracer system not.
Sebastian Dröge [Thu, 7 Jan 2016 16:41:25 +0000 (18:41 +0200)]
gst: Rename _priv_gst_info_start_time to _priv_gst_start_time and initialize it centrally
It's used by the debugging and tracer subsystem and in various files, make it
a central thing that is initialized independ of the existence of those
subsystems.
Stefan Sauer [Wed, 6 Jan 2016 20:42:30 +0000 (21:42 +0100)]
win32: update win32 exports
Remove the _hook_id() methods we made internal in the prev commit.
Stefan Sauer [Wed, 6 Jan 2016 20:17:16 +0000 (21:17 +0100)]
structure: log a warning if we can't serialize a field
The function always returns TRUE right now, so atleast log something.
Aleksander Wabik [Tue, 6 Oct 2015 12:49:00 +0000 (12:49 +0000)]
tests: queue2: add test for fill level arithmetic overflow
https://bugzilla.gnome.org/show_bug.cgi?id=755971
Tim-Philipp Müller [Wed, 6 Jan 2016 19:51:44 +0000 (19:51 +0000)]
queue2: avoid calculating fill levels multiple times
Macro expansion means we might calculate the fill level once
for the check and then possibly again for the return value.
Tim-Philipp Müller [Wed, 6 Jan 2016 19:50:21 +0000 (19:50 +0000)]
queue2: fix fill level arithmetic overflow with large values
Based on patch by: Aleksander Wabik <awabik@opera.com>
https://bugzilla.gnome.org/show_bug.cgi?id=755971
Stefan Sauer [Wed, 6 Jan 2016 19:41:26 +0000 (20:41 +0100)]
tracer: make gst_tracing_register_hook_id static
We don't need to expose this as public API. Change the only plugin that was
using it.
Tim-Philipp Müller [Wed, 6 Jan 2016 18:56:38 +0000 (18:56 +0000)]
docs: design: update list of disted files after file rename
Sebastian Dröge [Wed, 6 Jan 2016 17:42:49 +0000 (19:42 +0200)]
docs: Hide NTP packet API and add GST_PTP_STATISTICS_* defines to the docs
Stefan Sauer [Wed, 6 Jan 2016 17:17:27 +0000 (18:17 +0100)]
docs: remove parent docs for GstPtpClock
Instance docs don't need to docuemnt the parent (first member).
Stefan Sauer [Wed, 6 Jan 2016 17:14:06 +0000 (18:14 +0100)]
docs: cleanup -unused.txt report for libs
The IGNORE_H_FILES can only contain files or dirs.
Stefan Sauer [Wed, 6 Jan 2016 16:58:11 +0000 (17:58 +0100)]
docs: add more core api to the right sections
Add new and documented api reported in -unused.txt to -section.txt.
Stefan Sauer [Wed, 6 Jan 2016 16:54:44 +0000 (17:54 +0100)]
docs: exclude more header from doc-scan
Exclude gst/printf/*.h and a few generated .h files from the api-scan. This
makes -unused.txt report file from gtkdoc useful again.
Sebastian Dröge [Wed, 6 Jan 2016 14:21:40 +0000 (16:21 +0200)]
clock: adjust/unadjust_with_calibration() have a clock parameter but it's useless
Document this, for 2.0 we should just remove that parameter.
Sebastian Dröge [Wed, 6 Jan 2016 14:19:22 +0000 (16:19 +0200)]
clock: Add gst_clock_unadjust_with_calibration()
We already have gst_clock_adjust_with_calibration() and
gst_clock_unadjust_unlocked(), having the other variant is useful.
Stefan Sauer [Wed, 6 Jan 2016 12:33:39 +0000 (13:33 +0100)]
docs: add new pad-event function to the docs
Stefan Sauer [Wed, 6 Jan 2016 12:26:27 +0000 (13:26 +0100)]
docs: hide internal tracer api from docs
Also address warnigns regarding the unstable tracer api.
Stefan Sauer [Wed, 6 Jan 2016 11:47:26 +0000 (12:47 +0100)]
docs: add the tracer to the docs
Add GstTracer and GstTracerFactory to the core docs.
Stefan Sauer [Wed, 6 Jan 2016 10:52:53 +0000 (11:52 +0100)]
docs: rename the tracer doc to part since it is now merged
Stefan Sauer [Wed, 6 Jan 2016 10:35:46 +0000 (11:35 +0100)]
tracerutils: move header to noinst section
This is internal code, that is only to be used in core.
Stefan Sauer [Wed, 6 Jan 2016 10:31:16 +0000 (11:31 +0100)]
configure: add a new option to disable the tracer hooks
This was previously done via {enable,disable}-gst-debug. Since both subsystems
are independent having separate options is better.
Sebastian Dröge [Tue, 5 Jan 2016 14:44:53 +0000 (16:44 +0200)]
clock: Fix typo
clocked -> clock
Sebastian Dröge [Tue, 5 Jan 2016 12:59:34 +0000 (14:59 +0200)]
netclientclock: Disconnect the "synced" signal handler from the internal clock
Not from the external one.
Stefan Sauer [Tue, 5 Jan 2016 12:57:12 +0000 (13:57 +0100)]
controller: rename new cubic interpolation mode
Don't abbreviate to 'mono' and use 'monotonic' instead.
Sebastian Dröge [Tue, 5 Jan 2016 12:23:26 +0000 (14:23 +0200)]
clock: Don't allow setting an unsynced clock as master
Sebastian Dröge [Tue, 5 Jan 2016 12:21:58 +0000 (14:21 +0200)]
clock: Don't try to slave unsynced clocks
They will return useless values from get_time().
Sebastian Dröge [Tue, 5 Jan 2016 11:41:08 +0000 (13:41 +0200)]
ntp: The clock inherits from GstNetClientClock, not just GstSystemClock
Sebastian Dröge [Mon, 4 Jan 2016 15:18:07 +0000 (17:18 +0200)]
netclientclock: Destroy a cached clock 60 seconds after its last use
There's not much lost by having the clock idle around a bit longer but it will
potentially allow anybody wanting to use the same clock server again to sync
much faster.
Sebastian Dröge [Mon, 4 Jan 2016 14:31:23 +0000 (16:31 +0200)]
netclientclock: Only ever run one clock against a specific server
If multiple net/NTP clocks are created for the same server, reuse the same
internal clock for all of them. This makes sure that we don't flood the server
with too many requests and also possibly allows faster synchronization if
there already was an earlier synchronized clock when creating a new one.
Sebastian Dröge [Mon, 4 Jan 2016 08:39:27 +0000 (10:39 +0200)]
nettimeprovider: Use GInitable instead of having a new() function that can return NULL
Bindings don't like that much and as we're using GIO here anyway we can as
well use GInitable for possibly failing initialization.
Sebastian Dröge [Sun, 3 Jan 2016 12:06:16 +0000 (14:06 +0200)]
nettimeprovider: Mark address, port and clock properties CONSTRUCT_ONLY
They can't sensibly be changed after construction.
Stefan Sauer [Sun, 3 Jan 2016 21:55:48 +0000 (22:55 +0100)]
parse_launch: make nicer log messages
Add two macros to build nicer element/pad name strings. The macros avoid
printing "(NULL)" and print the element type in addition to the name.
Stefan Sauer [Sat, 2 Jan 2016 18:42:17 +0000 (19:42 +0100)]
parse-launch: warn when still waiting to plug sub-pipelines after no-more-pads
The parse-launch API automagically handles dynamic pads and performs delayed
linking as needed, without any feedback about whether the linking succeeded or
not however. If a delayed dynamic link can't be completed for whatever reason,
parse-launch will simply wait in case a suitable pad appears later. This may
never happen though, in which case the pipeline may just hang forever.
Try to improve this by connecting to the "no-more-pads" signal of any element
with dynamic pads and posting a warning message for the related outstanding
dynamic links when "no-more-pads" is emitted.
Fixes #760003
Tim-Philipp Müller [Thu, 31 Dec 2015 19:27:12 +0000 (19:27 +0000)]
docs: fix some warnings and add some since markers
Stefan Sauer [Sun, 3 Jan 2016 10:39:24 +0000 (11:39 +0100)]
tracing: add some pointers about memory tracing
Stefan Sauer [Sun, 3 Jan 2016 10:37:57 +0000 (11:37 +0100)]
grammar.y: remove trailing whitespace
Tim-Philipp Müller [Thu, 31 Dec 2015 00:04:09 +0000 (00:04 +0000)]
tests: value: test buffer serialisation/deserialisation more thoroughly
Tests data/strings as well, not just that we received
something non-NULL back.
Tim-Philipp Müller [Thu, 31 Dec 2015 10:57:37 +0000 (10:57 +0000)]
gst: fix typo in comment
Sebastian Dröge [Wed, 30 Dec 2015 14:57:29 +0000 (16:57 +0200)]
netclientclock: Implement resolval of hostnames
Just allowing IPs here is not ideal and implementing DNS resolval is easy.
Sebastian Dröge [Tue, 29 Dec 2015 14:28:02 +0000 (16:28 +0200)]
ptpclock: Add read-only properties to get the master and grandmaster clock ids
Sebastian Dröge [Tue, 29 Dec 2015 12:32:47 +0000 (14:32 +0200)]
caps: Add (transfer full) annotation to simplify() and subtract() return value
https://bugzilla.gnome.org/show_bug.cgi?id=759948
Aurélien Zanelli [Tue, 29 Dec 2015 10:06:39 +0000 (11:06 +0100)]
caps: add 'transfer full' annotation to caps returned by interserction functions
To make clear caller is responsible to unref them.
https://bugzilla.gnome.org/show_bug.cgi?id=759948