Commit graph

7923 commits

Author SHA1 Message Date
Vineeth TM
fc02815459 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
2016-01-20 09:25:44 +01:00
Stefan Sauer
4859494945 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.
2016-01-20 09:14:12 +01:00
Luis de Bethencourt
227c387b43 tracerrecord: avoid overwriting value
res value is overwritten, remove the assignment.
priv__gst_structure_append_template_to_gstring () always returns TRUE
anyway.

CID 1349645
2016-01-19 12:04:19 +00:00
Edward Hervey
128760f246 tracerrecord: Disable logging if GST_DISABLE_GST_DEBUG
Make the gst_tracer_record_log() a no-op if the gst-debug subsystem
is disabled.
2016-01-19 11:12:21 +01:00
Tim-Philipp Müller
eb4c5498b5 value: fail flag deserialization on invalid flag names 2016-01-18 19:39:11 +00:00
Vineeth TM
843d120c2f gst: ref/unref new enum types in gst_init/deinit
https://bugzilla.gnome.org/show_bug.cgi?id=760767
2016-01-18 09:11:00 +02:00
Philip Van Hoof
cb625698a2 tracer.h: don't include private noinst header gsttracerutils.h in a public header
https://bugzilla.gnome.org/show_bug.cgi?id=760732
2016-01-17 00:00:51 +00:00
Stefan Sauer
d15da9e221 tracer: update the docs
Add the new enum and flags. Remove the GstTracerRecordPrivate.
2016-01-16 21:04:46 +01:00
Stefan Sauer
af91d23204 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.
2016-01-16 19:21:00 +01:00
Stefan Sauer
8cd76a918a tracer: add a GstTracerValueFlags and replace strings
This allows us to document the flags and makes the logs a bit smaller.
2016-01-16 18:52:32 +01:00
Tim-Philipp Müller
dfb782ca97 message: add function guard to gst_message_set_buffering_stats()
https://bugzilla.gnome.org/show_bug.cgi?id=760704
2016-01-16 16:01:38 +00:00
Tim-Philipp Müller
8b88fc487f 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 89ee5d948d.
2016-01-16 16:00:16 +00:00
Stefan Sauer
89ee5d948d 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, ...
2016-01-16 13:31:51 +01:00
Stefan Sauer
10b78d872b 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
2016-01-15 21:54:01 +01:00
Nirbheek Chauhan
20c89fa8bc GstDeviceMonitor: Clarify the behaviour of gst_device_monitor_add_filter 2016-01-14 22:07:51 +00:00
Nirbheek Chauhan
4d6c7ccd08 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.
2016-01-14 22:07:51 +00:00
Matthew Waters
347734e529 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
2016-01-13 11:56:14 +11:00
Tim-Philipp Müller
4febebb962 info: add buffer list support to GST_PTR_FORMAT 2016-01-08 19:25:24 +00:00
Aurélien Zanelli
6b71877692 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
2016-01-08 18:24:06 +00:00
Stefan Sauer
2f41e7bc6a 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.
2016-01-07 23:03:48 +01:00
Stefan Sauer
281f792042 tracerutils: update #endif comment
We changed the define, but left the comment inconsistent.
2016-01-07 22:43:58 +01:00
Stefan Sauer
8968af3589 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().
2016-01-07 22:41:32 +01:00
Sebastian Dröge
9d91ad0b85 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.
2016-01-07 18:46:21 +02:00
Sebastian Dröge
d787105fd5 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.
2016-01-07 18:41:25 +02:00
Stefan Sauer
555f48da4b structure: log a warning if we can't serialize a field
The function always returns TRUE right now, so atleast log something.
2016-01-06 21:25:32 +01:00
Stefan Sauer
5e40639be7 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.
2016-01-06 20:46:58 +01:00
Sebastian Dröge
5fe1b7efe3 clock: adjust/unadjust_with_calibration() have a clock parameter but it's useless
Document this, for 2.0 we should just remove that parameter.
2016-01-06 16:25:38 +02:00
Sebastian Dröge
fb01dd000b 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.
2016-01-06 16:25:38 +02:00
Stefan Sauer
efa316d666 docs: add the tracer to the docs
Add GstTracer and GstTracerFactory to the core docs.
2016-01-06 13:05:53 +01:00
Stefan Sauer
1af0a3ce6f tracerutils: move header to noinst section
This is internal code, that is only to be used in core.
2016-01-06 11:37:12 +01:00
Stefan Sauer
e5ca47236e 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.
2016-01-06 11:33:34 +01:00
Sebastian Dröge
01ba6d40a8 clock: Fix typo
clocked -> clock
2016-01-05 16:44:53 +02:00
Sebastian Dröge
2f776d679f clock: Don't allow setting an unsynced clock as master 2016-01-05 14:23:26 +02:00
Sebastian Dröge
ab827eca2e clock: Don't try to slave unsynced clocks
They will return useless values from get_time().
2016-01-05 14:21:58 +02:00
Stefan Sauer
bdc60306c7 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.
2016-01-03 22:58:06 +01:00
Stefan Sauer
46a851b279 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
2016-01-03 22:58:06 +01:00
Tim-Philipp Müller
7c992cfbe0 docs: fix some warnings and add some since markers 2016-01-03 17:50:35 +00:00
Stefan Sauer
583304959a grammar.y: remove trailing whitespace 2016-01-03 11:39:56 +01:00
Tim-Philipp Müller
433581c05a gst: fix typo in comment 2015-12-31 12:20:59 +00:00
Sebastian Dröge
2c272d74fd caps: Add (transfer full) annotation to simplify() and subtract() return value
https://bugzilla.gnome.org/show_bug.cgi?id=759948
2015-12-29 14:32:47 +02:00
Aurélien Zanelli
2ee33237c8 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
2015-12-29 14:30:29 +02:00
Xavier Claessens
46f83f5fcd core: Add g_autoptr() support to all types
https://bugzilla.gnome.org/show_bug.cgi?id=754464
2015-12-14 12:06:55 -05:00
Sebastian Dröge
615af0b1b0 element: Unref event if GstElement::send_event() is not implemented
Otherwise we'll take ownership of the event only if it's implemented, and
leak the event in all other situations.
2015-12-14 10:10:04 +01:00
Aurélien Zanelli
51a70dd586 element: unref message in _post_message when there is no implementation
'gst_element_post_message' takes the ownership of the message, so it
shall unref it when there is no post_message implementation. Otherwise
message is leaked.

https://bugzilla.gnome.org/show_bug.cgi?id=759300
2015-12-10 16:44:31 +02:00
Sebastian Dröge
b427997119 element: Don't hold state lock all the time while sending an event
This lock seems to exist only to prevent elements from changing states while
events are being processed. However events are going to be processed
nonetheless in those elements if sent directly via pads, so protection must
already be implemented inside the elements for event handling if it is needed.

As such having the lock here is not very useful and is actually causing
various deadlocks in different situations as described in
https://bugzilla.gnome.org/show_bug.cgi?id=744040
2015-12-10 11:35:05 +02:00
Sebastian Dröge
2d427c75ae bin: Post a LATENCY message with async-handling=TRUE if the PLAYING state is reached
Otherwise each bin might have a different latency in the end, causing
synchronization problems.

The bin will still first handle latency internally as before, but gives the
overall pipeline the opportunity to update the latency of the whole pipeline
afterwards.

https://bugzilla.gnome.org/show_bug.cgi?id=759125
2015-12-09 11:13:22 +02:00
Sebastian Dröge
c247117990 element: Check for an activated pad before adding, not a non-flushing one
The pad could be activated but flushing because of a FLUSH_START event. That's
not what we're looking for here, we want to check for activated pads.

https://bugzilla.gnome.org/show_bug.cgi?id=758928
2015-12-07 12:59:39 +02:00
Wim Taymans
87ab2603da query: fix docs
The allocation query has parameters with the meta API, not flags.
2015-12-04 11:57:45 +01:00
Edward Hervey
56d4650789 pad: Implement GstPadEventFullFunction
API: GstPadEventFullFunction

Returns a GstFlowReturn, allows asynchronous elements to properly
propagate flow returns

https://bugzilla.gnome.org/show_bug.cgi?id=757821
2015-12-02 16:04:03 +01:00
Edward Hervey
e5d5f99a9e gstclock: Fix GST_STIME_ARGS
It wasn't properly handling GST_CLOCK_STIME_NONE and always use the
sign marker (+/-) to make it easier to identify signed values in
logs

https://bugzilla.gnome.org/show_bug.cgi?id=758870
2015-12-01 17:13:41 +01:00