Commit graph

3019 commits

Author SHA1 Message Date
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
Vineeth TM 215cfcf993 gstreamer: Fix memory leaks when context parse fails
When g_option_context_parse fails, context and error variables are not getting free'd
which results in memory leaks. Free'ing the same.

And replacing g_error_free with g_clear_error, which checks if the error being passed
is not NULL and sets the variable to NULL on free'ing.

https://bugzilla.gnome.org/show_bug.cgi?id=753851
2015-10-02 17:31:11 +03:00
Matthew Waters d5ded15889 bin: implement context propagation when adding elements
When adding an element to a bin we need to propagate the GstContext's
to/from the element.

This moves the GstContext list from GstBin to GstElement and adds
convenience functions to get the currently set list of GstContext's.

This does not deal with the collection of GstContext's propagated
using GST_CONTEXT_QUERY.  Element subclasses are advised to call
gst_element_set_context if they need to propagate GstContext's
received from the context query.

https://bugzilla.gnome.org/show_bug.cgi?id=705579
2015-09-28 18:21:59 +10:00
Vivia Nikolaidou 44ba1565d9 segment: Replaced gst_segment_to_position with gst_segment_position_from_running_time
gst_segment_to_position might cause confusion, especially with the addition of
gst_segment_position_from_stream_time . Deprecated gst_segment_to_position
now, and replaced it with gst_segment_position_from_running_time.

Also added unit tests.
2015-09-26 00:00:08 +02:00
Vivia Nikolaidou c0d4b1b646 segment: Added gst_segment_position_from_stream_time()
gst_segment_position_from_stream_time() will convert stream time into a
position in the segment so that gst_segment_to_stream_time() with that
position returns the same stream time. It will return -1 if the stream time
given is not inside the segment.
2015-09-25 23:59:53 +02:00