Commit graph

3023 commits

Author SHA1 Message Date
Thibault Saunier
a8d4857555 gst: Use libunwind/libdw to generate backtraces if avalaible
Making the gst_debug_print_trace function more generally useful.

API:
  + gst_debug_get_trace

https://bugzilla.gnome.org/show_bug.cgi?id=772555
2016-11-04 14:22:05 -03:00
Tim-Philipp Müller
81a69d956d docs: remove app dev manual and plugin writer's guide
They have moved to gst-docs and will be maintained there in future.
2016-11-01 17:55:54 +00:00
Sebastian Dröge
81ee25ad4e Release 1.10.0 2016-11-01 17:50:24 +02:00
Tim-Philipp Müller
9429a7b932 docs: add index for API new in 1.10 2016-10-22 17:18:59 +01:00
Tim-Philipp Müller
746d61f569 docs: add index for API new in 1.8 2016-10-22 17:18:46 +01:00
Tim-Philipp Müller
6d0d350a94 docs: paths in env vars are separated by semicolons on windows
https://bugzilla.gnome.org/show_bug.cgi?id=772431
2016-10-10 10:59:26 +01:00
Guillaume Desmottes
0b9b8c768c docs: fix GST_LEAKS_TRACER_SIG doc
The documentation wasn't mentioning the SIGUSR2 signal.

https://bugzilla.gnome.org/show_bug.cgi?id=772571
2016-10-10 10:47:01 +01:00
Sebastian Dröge
4246b5f0ce Release 1.9.90 2016-09-30 13:01:17 +03:00
Thibault Saunier
618f925edc meson: Fix gtkdoc using new meson features 2016-09-26 12:24:06 -03:00
Sebastian Dröge
a80e51da10 Release 1.9.2 2016-09-01 12:24:45 +03:00
Thibault Saunier
da73b89200 element: Add API to more easily post messages about flowing issues
In many parts of the code we raise streaming error when the flow
goes wrong, and each time we create more or less similare error
message. Also that message does not let the application know what
has actually gone wrong. In the new API we add a "flow-return" detail
field inside the GstMessage so that the application has all the information
if it needs it.

API:
    GST_ELEMENT_FLOW_ERROR

https://bugzilla.gnome.org/show_bug.cgi?id=770158
2016-08-27 09:33:20 -03:00
Wonchul Lee
c7e8b062e3 docs: fix typo in stream selection docs
https://bugzilla.gnome.org//show_bug.cgi?id=770428
2016-08-26 14:21:43 +01:00
Tim-Philipp Müller
3cba95ca2a element: rename gst_element_message_new_details() to gst_make_element_message_details()
Fixes g-i warning "Gst: Constructor return type mismatch
symbol='gst_element_message_new_details' constructed='Gst.Element'
return='Gst.Structure'".

This is a newly-added function in git that has not been in a stable
release yet, so it's fine to rename it. It's also only used indirectly
via macros.
2016-08-26 12:56:40 +01:00
Thibault Saunier
d18fff7ff5 meson: doc: Fix building documentation when using subprojects
and check the presence of gtk-doc before building the documentation
2016-08-25 15:10:33 -03:00
Tim-Philipp Müller
1e1ea38b8e docs: release: add tag signing command 2016-08-23 10:52:32 +01:00
Arjen Veenhuizen
cf6cac07dd buffer: add explicit getters and setters for buffer flags
These can be used from bindings.

https://bugzilla.gnome.org/show_bug.cgi?id=768301
2016-08-22 18:59:06 +01:00
Nirbheek Chauhan
b2f9808722 Add support for Meson as alternative/parallel build system
https://github.com/mesonbuild/meson

With contributions from:

Tim-Philipp Müller <tim@centricular.com>
Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
Jussi Pakkanen <jpakkane@gmail.com> (original port)

Highlights of the features provided are:
* Faster builds on Linux (~40-50% faster)
* The ability to build with MSVC on Windows
* Generate Visual Studio project files
* Generate XCode project files
* Much faster builds on Windows (on-par with Linux)
* Seriously fast configure and building on embedded

... and many more. For more details see:

http://blog.nirbheek.in/2016/05/gstreamer-and-meson-new-hope.html
http://blog.nirbheek.in/2016/07/building-and-developing-gstreamer-using.html

Building with Meson should work on both Linux and Windows, but may
need a few more tweaks on other operating systems.
2016-08-19 21:26:14 +01:00
Tim-Philipp Müller
e2cd6ffafc Remove old alloc tracing code now that we have a GstTracer-based replacement
It's been internal API only in 1.x.
2016-08-13 10:10:30 +01:00
Jan Schmidt
9fd2101b36 events: Implement the stream-group-done event
A new event which precedes EOS in situations where we
need downstream to unblock any pads waiting on a stream
before we can send EOS. E.g, decodebin draining a chain
so it can switch pads.

https://bugzilla.gnome.org/show_bug.cgi?id=768995
2016-07-25 20:22:20 +10:00
Carlos Rafael Giani
eead9cf827 message: Add redirect message
Redirection messages are already used in fragmented sources and in
uridecodebin, so it makes sense to introduce these as an official message
type.

https://bugzilla.gnome.org/show_bug.cgi?id=631673
2016-07-25 12:59:21 +03:00
Vincent Penquerc'h
e5a78516a8 docs: add GST_ELEMENT_*_WITH_DETAILS to doc list 2016-07-22 15:25:09 +01:00
Vincent Penquerc'h
9641502700 docs: list new message details apis where they seem to belong 2016-07-22 15:04:58 +01:00
Guillaume Desmottes
17c37efa83 leaks tracer: add creation stack trace support
This allow us to provide the trace of leaked objects making it easier
to debug.

https://bugzilla.gnome.org/show_bug.cgi?id=767862
2016-07-08 12:07:53 +03:00
Guillaume Desmottes
3bb5c1e73a leaks tracer: add checkpoint support using SIGUSR2
https://bugzilla.gnome.org/show_bug.cgi?id=767857
2016-07-08 11:23:43 +03:00
Guillaume Desmottes
53d2e8c977 leaks tracer: log alive objects when receiving SIGUSR1
We don't want to automatically catch signals so use an env variable to
enable this feature.

https://bugzilla.gnome.org/show_bug.cgi?id=767857
2016-07-08 11:23:38 +03:00
Sebastian Dröge
af5c9cbb20 Release 1.9.1 2016-07-06 13:05:02 +03:00
Edward Hervey
63f6f05d66 gst: New Stream listing/selection system
* GstStream
* GstStreamCollection
* GST_EVENT_SELECT_STREAMS
* GST_MESSAGE_STREAM_COLLECTION
2016-06-30 12:31:06 +02:00
Reynaldo H. Verdejo Pinochet
6b8494072e docs/design/part-tracing: fix reference to renamed func 2016-06-17 13:31:12 -07:00
Sebastian Dröge
8c7da1d426 adapter: Rename functions and implement new functions, update test
We don't do calculations with different units (buffer offsets and bytes)
anymore but have functions for:
1) getting the number of bytes since the last discont
2) getting the offset (and pts/dts) at the last discont

and the previously added function to get the last offset and its distance from
the current adapter position.

https://bugzilla.gnome.org/show_bug.cgi?id=766647
2016-06-10 09:49:33 +03:00
Edward Hervey
67ae0ad225 adapter: Add methods to query current offset
API: gst_buffer_prev_offset
API: gst_buffer_get_offset_from_discont

The gst_buffer_get_offset_from_discont() method allows retrieving the current
offset based on the GST_BUFFER_OFFSET of the buffers that were pushed in.

The offset will be set initially by the GST_BUFFER_OFFSET of
DISCONT buffers, and then incremented by the sizes of the following
buffers.

The gst_buffer_prev_offset() method allows retrievent the previous
GST_BUFFER_OFFSET regardless of flags. It works in the same way as
the other gst_buffer_prev_*() methods.

https://bugzilla.gnome.org/show_bug.cgi?id=766647
2016-06-10 09:49:33 +03:00
Sebastian Dröge
1dbb27f3a7 utils: Add gst_pad_link_maybe_ghosting() for consistency
We already had a _full() version, but having that alone seems inconsistent.
Add a non-full version that mirrors the behaviour of gst_pad_link() vs
gst_pad_link_full().
2016-06-08 12:12:28 +03:00
Guillaume Desmottes
0bb7fa9855 tracers: add leaks tracer
https://bugzilla.gnome.org/show_bug.cgi?id=765052
2016-06-03 00:36:46 +01:00
Stefan Sauer
1385e24bc6 design: update design doc
Some of the api was renamed before the merge.
2016-05-30 02:06:01 -07:00
Sebastian Dröge
4f699387b0 docs: Update for git master 2016-05-15 13:29:55 +03:00
Sebastian Dröge
8177173db0 element: Add gst_element_call_async()
This calls a function from another thread, asynchronously. This is to be
used for cases when a state change has to be performed from a streaming
thread, directly via gst_element_set_state() or indirectly e.g. via SEEK
events.

Calling those functions directly from the streaming thread will cause
deadlocks in many situations, as they might involve waiting for the
streaming thread to shut down from this very streaming thread.

This is mostly a convenience function around a GThreadPool and is for example
used by GstBin to continue asynchronous state changes.

https://bugzilla.gnome.org/show_bug.cgi?id=760532
2016-04-27 18:51:33 +03:00
Sebastian Dröge
a4db38ab05 manual: Fix buffer memory leak in appsrc example
g_signal_emit_by_name() is not like gst_app_src_push_buffer() due to reference
counting limitations of signals, it does *not* take ownership of the buffer.
2016-04-27 09:22:27 +03:00
Tim-Philipp Müller
fbcfa38236 docs: pwg: remove broken references to example code
We point to gst-template at the beginning that shoul be
enough.

https://bugzilla.gnome.org/show_bug.cgi?id=623575
2016-04-10 18:38:43 +01:00
Tim-Philipp Müller
6e3fb7af52 element: add API to get property change notifications via messages
Be notified in the application thread via bus messages about
notify::* and deep-notify::* property changes, instead of
having to deal with it in a non-application thread.

API: gst_element_add_property_notify_watch()
API: gst_element_add_property_deep_notify_watch()
API: gst_element_remove_property_notify_watch()
API: gst_message_new_property_notify()
API: gst_message_parse_property_notify()
API: GST_MESSAGE_PROPERTY_NOTIFY

https://bugzilla.gnome.org/show_bug.cgi?id=763142
2016-04-08 13:27:59 +01:00
Matthew Waters
f876306638 utils: expose pad_link_maybe_ghosting
This is a useful function to automatically add ghost pads when linking
two elements across bin boundaries without know their exact parentage.

e.g. when using gst_parse_bin_from_description (with or without it ghosting pads),
one can simply retreive the src/sink pads from the bin to link to another pad.

Similar functionality is provided by gst_element_link_pads{_full}() however only
by pad name rather than by actual pads.

API: gst_pad_link_maybe_ghosting_full

https://bugzilla.gnome.org/show_bug.cgi?id=764176
2016-04-06 23:26:41 +10:00
Reynaldo H. Verdejo Pinochet
4503232f83 docs/design/part-states.txt: spelling fix 2016-04-03 23:38:34 -07:00
Sebastian Dröge
1abf889ddd Release 1.8.0 2016-03-24 11:49:08 +02:00
Sebastian Dröge
b6859ed71f Release 1.7.91 2016-03-15 11:56:10 +02:00
Sebastian Dröge
e505e1e6cd Release 1.7.90 2016-03-01 18:14:03 +02:00
Tim-Philipp Müller
fa12d23a17 element: add gst_element_class_add_static_pad_template()
Pretty much every single element does

  gst_element_class_add_pad_template (element_class,
      gst_static_pad_template_get (&some_templ));

which is both confusing and unnecessary. We might just
as well add a function to do that in one step.

https://bugzilla.gnome.org/show_bug.cgi?id=762778
2016-02-28 13:10:03 +00:00
Edward Hervey
01ad1fb343 manual: Fix examples to check for gst_buffer_map return values
Otherwise people reading the manual will expect it to always
succeed :)

https://bugzilla.gnome.org/show_bug.cgi?id=728326
2016-02-23 17:30:48 +01:00
Tim-Philipp Müller
fefd65fea0 docs: manual: remove dead link from integration page 2016-02-20 10:18:06 +00:00
Tim-Philipp Müller
efac7d15ee docs: manual: fix formatting
advanced-dataaccess.xml:1210: element listitem: validity error : Element
listitem content does not follow the DTD, expecting (...),
got (para CDATA para )
      </listitem>
2016-02-20 10:14:13 +00:00
George Yunaev
e6f0095750 manual: Explain what happens if upstream elements are removed from the pipeline without draining them first
https://bugzilla.gnome.org/show_bug.cgi?id=762302
2016-02-20 11:01:32 +02:00
Sebastian Dröge
9e33bfa2c7 Release 1.7.2 2016-02-19 11:47:52 +02:00
Stian Selnes
778160be08 harness: Add event stress test functions with callback
Similar to the stress test functions for buffers that has a callback to
create the buffer to be pushed, it's useful to have functions that use a
callback to create the event to be pushed.

API: gst_harness_stress_push_event_with_cb_start()
API: gst_harness_stress_push_event_with_cb_start_full()
API: gst_harness_stress_send_upstream_event_with_cb_start()
API: gst_harness_stress_push_upstream_event_with_cb_start_full()

https://bugzilla.gnome.org/show_bug.cgi?id=761932
2016-02-12 19:32:29 +00:00
Havard Graff
668b3215b8 testclock: add crank method
And use it inside GstHarness

API: gst_test_clock_crank()

https://bugzilla.gnome.org/show_bug.cgi?id=761906
2016-02-12 17:08:32 +00:00
Havard Graff
cc4e4ae029 harness: enable empty harness creation and refactor around this
Also make the testclock a member of the harness, allowing some
more interactions with the clock prior to adding elements.

https://bugzilla.gnome.org/show_bug.cgi?id=761905
2016-02-12 16:42:43 +00:00
Tim-Philipp Müller
81df1e1a34 docs: pwg: fix missing end of line semicolon in custom meta example 2016-02-02 16:34:51 +00:00
Luis de Bethencourt
09397c442d docs: fix an other typo in clock chapter
Shockingly I missed this bigger typo in the previos fix
2016-01-27 12:45:23 +00:00
Luis de Bethencourt
130d6c8282 docs: fix typo in clock chapter 2016-01-27 12:27:44 +00:00
Tim-Philipp Müller
63421675b1 tracer: rename GST_TRACER_PLUGINS env var to GST_TRACERS 2016-01-22 12:50:08 +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
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
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
2d5ba30606 docs/design: update tracerspec examples 2016-01-16 13:31:51 +01:00
Stefan Sauer
1c8cfa42ea docs/design: spell checking 2016-01-16 13:31:51 +01: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
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
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
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
Tim-Philipp Müller
d94e0c4563 docs: design: update list of disted files after file rename 2016-01-06 18:56:56 +00:00
Sebastian Dröge
2d38699144 docs: Hide NTP packet API and add GST_PTP_STATISTICS_* defines to the docs 2016-01-06 19:42:49 +02:00
Stefan Sauer
8b6ad65e63 docs: cleanup -unused.txt report for libs
The IGNORE_H_FILES can only contain files or dirs.
2016-01-06 18:14:06 +01:00
Stefan Sauer
110451397a docs: add more core api to the right sections
Add new and documented api reported in -unused.txt to -section.txt.
2016-01-06 17:59:23 +01:00
Stefan Sauer
cf0738e43e 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.
2016-01-06 17:59:23 +01: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
0c952d0711 docs: add new pad-event function to the docs 2016-01-06 13:33:39 +01:00
Stefan Sauer
0be259f44f docs: hide internal tracer api from docs
Also address warnigns regarding the unstable tracer api.
2016-01-06 13:30:25 +01: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
4cc1116a9d docs: rename the tracer doc to part since it is now merged 2016-01-06 11:52:53 +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
1205a04a25 tracing: add some pointers about memory tracing 2016-01-03 11:40:12 +01:00
Sebastian Dröge
99d7ca79e3 net: Add NTP and PTP clock types to the docs
This gives us the property documentation for example.
2015-12-28 19:41:38 +02:00
Sebastian Dröge
2a188848eb Release 1.7.1 2015-12-24 13:58:52 +01:00
Sebastian Dröge
86cc8f0091 docs: update to git 2015-12-16 09:35:18 +01:00
Sebastian Dröge
ad5c97e44e manual: Fix dynamic pipeline example
Use GST_PAD_PROBE_PASS to pass through all events other than EOS instead of
blocking on the first non-EOS event forever. Also fix a typo in a comment in
that function.

Thanks to David Jaggard for reporting this on the mailing list.
2015-12-14 10:04:19 +01:00
Luis de Bethencourt
69ef85afa2 docs: typo in the location of make_element tool
https://bugzilla.gnome.org/show_bug.cgi?id=759352
2015-12-13 00:37:42 +00:00
Edward Hervey
41e1bea7ef buffer: Add a GST_BUFFER_DTS_OR_PTS macro
API: GST_BUFFER_DTS_OR_PTS

Many scenarios/elements require dealing with streams of buffers that
might have DTS set (i.e. encoded data, potentially reordered)

To simplify getting the increasing "timestamp" of those buffers, create
a macro that will return the DTS if valid, and if not the PTS
2015-10-27 08:33:23 +01:00
Guillaume Desmottes
f0ee10d778 doc: add GST_{PTR,SEGMENT}_FORMAT
Very useful formats in debug output so best to have them in the
generated doc.

https://bugzilla.gnome.org/show_bug.cgi?id=756115
2015-10-26 09:19:13 +00:00
Vivia Nikolaidou
6ff8fdfc47 segment: Add _full variants of all stream/running_time from/to segment position functions
See formula clarifications in design docs for calculation details.

https://bugzilla.gnome.org/show_bug.cgi?id=756564
2015-10-23 15:50:38 +03:00
Stefan Sauer
70d2a676af tracer: rename the envvar to GST_TRACER_PLUGINS
The subsystem reused the GST_TRACE var that is allready in use by the alloc tracer.
Fixes #756760
2015-10-19 21:41:13 +02:00
Tim-Philipp Müller
bc5c199bc5 docs: mention xdot utility to view .dot files directly 2015-10-16 15:59:49 +01:00
Tim-Philipp Müller
0a5fbd4d3b docs: manual: improve advanced metadata example a bit
Accept both filename and a URI as argument, and print
the error from the error message if there's an error.

https://bugzilla.gnome.org/show_bug.cgi?id=756630
2015-10-16 12:00:22 +01:00
Marcin Kolny
e8d0b019b3 tracer: add missing hooks
Add following hooks: element-new, element-add-pad, element-remove-pad,
bin-add-pre, bin-add-post, bin-remove-pre, bin-remove-post, pad-link-pre,
pad-link-post, pad-unlink-pre, pad-unlink-post.

https://bugzilla.gnome.org/show_bug.cgi?id=733187
2015-10-05 20:59:39 +02:00
Stefan Sauer
26af78b71f tracing: update docs 2015-10-05 20:59:39 +02:00
Stefan Sauer
77fd813760 design: update tracer design
Update the tracer event classes section. Add a performance section.
2015-10-05 20:59:39 +02:00
Stefan Sauer
c500372f5a design: update tracer design 2015-10-05 20:59:39 +02:00
Stefan Sauer
db3686c14d design: update design docs
Add new tracer idea.
2015-10-05 20:59:39 +02:00
Stefan Sauer
0ab7d5f631 design: update design 2015-10-05 20:59:39 +02:00
Stefan Sauer
75fb1f1a73 log: make the log tracer more verbose again
Define log formats per message type and print details.
2015-10-05 20:59:39 +02:00
Stefan Sauer
e08fab7d5f tracer: use macros for hooks
Wrap the hook with a pre and post macro. This looks less intrusive than the
previous version, although it is a little less optimized.
2015-10-05 20:59:39 +02:00
Stefan Sauer
8a8f16863b design: more planning 2015-10-05 20:59:39 +02:00
Stefan Sauer
68b1473846 tracer: add the hook-id to the invoke signature
Tracers that subscribe to multiple hooks can know what hook was used.
2015-10-05 20:59:39 +02:00
Stefan Sauer
4e5d586c7d tracer: initial prototype for the tracing subsystem 2015-10-05 20:59:39 +02:00