Commit graph

2964 commits

Author SHA1 Message Date
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