Commit graph

289 commits

Author SHA1 Message Date
Tim-Philipp Müller
e6a0f52e3c adapter: add gst_adapter_take_buffer_list()
API: gst_adapter_take_buffer_list()
2015-03-14 17:22:22 +00:00
William Manley
fc765592a1 meta: Add GstNetControlMessageMeta
GstNetAddress can be used to store ancillary data which was received with
or is to be sent alongside the buffer data.  When used with socket sinks
and sources which understand this meta it allows sending and receiving
ancillary data such as unix credentials (See `GUnixCredentialsMessage`)
and Unix file descriptions (See `GUnixFDMessage`).

This will be useful for implementing protocols which use file-descriptor
passing in payloaders/depayloaders without having to re-implement all the
socket handling code already present in elements such as multisocketsink,
etc.  This, in turn, will be useful for implementing zero-copy video IPC.

This meta uses the platform independent `GSocketControlMessage` API
provided by GLib as a part of GIO.  As a result this new meta does not
require any new dependencies or any conditional compliation for
portablility, although it is unlikely to do anything useful on non-UNIX
platforms.
2015-03-14 13:54:51 +01:00
Stefan Sauer
0461c9f21d docs: ignore libcheck headers that use doxygen comments 2014-12-29 12:05:27 +01:00
Sebastian Rasmussen
13f9fda2c3 docs: Add missing interfaces to documentation
https://bugzilla.gnome.org/show_bug.cgi?id=742057
2014-12-28 12:22:59 +00:00
Jonas Holmberg
4a304a7774 flowcombiner: add a gst_flow_combiner_clear() method
https://bugzilla.gnome.org/show_bug.cgi?id=737359

API: gst_flow_combiner_clear()
2014-09-25 15:40:42 +01:00
Thibault Saunier
87a79673b0 check: Add a function to check destruction of objects
Add a method letting people to ensure that unreffing one object
leads to its destruction, and possibly the destruction of more object
(think destruction of a GstBin etc...).

https://bugzilla.gnome.org/show_bug.cgi?id=736477
2014-09-12 17:18:21 +02:00
Tim-Philipp Müller
86d7a597f0 bytereader: add gst_byte_reader_peek_sub_reader() and _get_sub_reader()
Adds API to get or peek a sub-reader of a certain size from
a given byte reader. This is useful when parsing nested chunks,
one can easily get a byte reader for a sub-chunk and make
sure one never reads beyond the sub-chunk boundary.

API: gst_byte_reader_peek_sub_reader()
API: gst_byte_reader_get_sub_reader()
2014-08-15 10:03:26 +01:00
Sebastian Rasmussen
863ba1a598 docs: Fix documentation typos and inconsistencies
* GstGlobalDeviceMonitor was renamed to GstDeviceMonitor
 * Expand GST_MESSAGE_DEVICE to the full enum value names
 * Correct the incorrect references to the GstDeviceProvider interfaces
 * Describe caps arguments for gstcheck interface
 * Add missing docs for GstNetAddressMeta and its add function
 * Add docs for toc helper macros
 * Avoid refering to GstValueList type as done elsewhere

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=732786
2014-07-09 09:22:11 +02:00
Sebastian Rasmussen
05cd4f89d3 docs: Cleanup interface references in docs
* Delete references to removed interfaces
 * Add missing documentation sections
 * Fix duplicate interface references for GstDevice

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=732786
2014-07-09 09:21:32 +02:00
Tim-Philipp Müller
a6d9c1a3c3 docs: add GstFlowCombiner 2014-05-27 10:05:51 +01:00
Tim-Philipp Müller
fa94322349 sparsefile: keep it private as helper API for downloadbuffer
There's no expectation that any other element or applications
might want to use this helper API any time soon, so keep it
private for the time being. There were open questions regarding
portability and binding-friendliness too.

This also removes the gio dependency of -base again.

https://bugzilla.gnome.org/show_bug.cgi?id=729951
https://bugzilla.gnome.org/show_bug.cgi?id=729949
2014-05-13 20:05:55 +01:00
Tim-Philipp Müller
b17ea57223 docs: pick up GstBaseParse hierarchy and properties 2014-05-13 19:14:08 +01:00
Tim-Philipp Müller
de6968de7f docs: expose GstPushSrcClass in documentation
Might come in handy in case someone wants to derive from it.
2014-05-13 19:10:43 +01:00
Wim Taymans
451d0e3b0d downloadbuffer: update docs 2014-05-08 16:54:57 +02:00
Sebastian Rasmussen
3de939cb5b adapter: Adapt gst_adapter_copy() for bindings
This is done by introducing a new gst_adapter_copy_bytes() call that
returns a GBytes structure.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=725476
2014-03-15 13:16:16 +01:00
Sebastian Dröge
f47c704b99 basesrc: Add gst_base_src_set_automatic_eos() API
This defaults to TRUE and if it is set to FALSE it is the subclasses
responsibility to return GST_FLOW_EOS from the create() vmethod once
the stream is done.
2014-02-13 12:09:06 +01:00
Sebastian Rasmussen
49950e57ad docs: add missing docs, fixing doc errors
* add many missing declarations to sections
 * GstController has been removed, update docs
 * skip GstIndex when generating documentation
 * rephrase so gtkdoc doesn't imagine return value
 * add missing argument description for gst_context_new()
 * document GstOutputSelectorPadNegotiationMode and move to header-file

https://bugzilla.gnome.org/show_bug.cgi?id=719614
2013-12-03 00:11:59 +00:00
Thiago Santos
581c4297d0 dataqueue: add gst_data_queue_push_force
Adds a variant of the _push function that doesn't check the queue limits
before adding the new item. It is useful when pushing an element to the
queue shouldn't lock the thread.

One particular scenario is when the queue is used to serialize buffers
and events that are going to be pushed from another thread. The
dataqueue should have a limit on the amount of buffers to be stored to
avoid large memory consumption, but events can be considered to have
negligible impact on memory compared to buffers. So it is useful to be
used to push items into the queue that contain events, even though the
queue is already full, it shouldn't matter inserting an item that has
no significative size.

This scenario happens on adaptive elements (dashdemux / mssdemux) as
there is a single download thread fetching buffers and putting into the
dataqueues for the streams. This same download thread can als generate
events in some situations as caps changes, eos or a internal control
events. There can be a deadlock at preroll if the first buffer fetched
is large enough to fill the dataqueue and the download thread and the
next iteration of the download thread decides to push an event to this
same dataqueue before fetching buffers to other streams, if this push
locks, the pipeline will be stuck in preroll as no more buffers will be
downloaded.
There is a somewhat common practice in dash streams to have a single
very large buffer for audio and one for video, so this will always
happen as the download thread will have to push an EOS right after
fetching the first buffer for any stream.

API: gst_data_queue_push_force

https://bugzilla.gnome.org/show_bug.cgi?id=705694
2013-08-13 12:00:48 -03:00
Jonas Holmberg
0ea8748c6b check: Added gst_check_setup_events_with_stream_id()
Added a new function gst_check_setup_events_with_stream_id(), since
gst_check_setup_events() does not work with multiple pads.

https://bugzilla.gnome.org/show_bug.cgi?id=703377
2013-07-01 15:54:11 +02:00
Nicolas Dufresne
a1866e64c5 check: Add helper that sends initial events
https://bugzilla.gnome.org/show_bug.cgi?id=700033
2013-05-10 09:23:28 +02:00
Tim-Philipp Müller
22b7c0bf58 check: add some more fail_unless_*() macros for convenience
API: fail_unless_equals_int_hex
API: assert_equals_int_hex
API: fail_unless_equals_int64_hex
API: assert_equals_int64_hex
API: fail_unless_equals_uint64_hex
API: assert_equals_uint64_hex
API: fail_unless_equals_pointer
API: assert_equals_pointer
2013-02-19 17:40:20 +00:00
Stefan Sauer
fba696eb05 docs: update the controller docs
Add the control bindings to the docs. Add a little more detail.
2013-02-01 22:00:18 +01:00
Olivier Crête
10154e2f97 docs: Put the right path for the gstttestclock include file 2013-01-24 17:50:31 -05:00
Tim-Philipp Müller
64eee27ebc Use GST_*_1_0 environment variables everywhere
The _1_0 suffixed environment variables override the
non-suffixed ones, so if we're in an environment that
sets the _1_0 suffixed ones, such as jhbuild, we need
to set those to make sure ours actually always get
used.
2013-01-15 13:47:32 +00:00
Tim-Philipp Müller
5ea8937f56 docs: minor GstBaseParse docs fixes
Expose docs for gst_base_parse_finish_frame().
2013-01-14 20:05:23 +00:00
Sebastian Rasmussen
4eeb471e11 check: allow GstTestClock to handle clock notifications
API: gst_test_clock_peek_id_count()
API: gst_test_clock_has_id()
API: gst_test_clock_peek_next_pending_id()
API: gst_test_clock_wait_for_next_pending_id()
API: gst_test_clock_wait_for_pending_id_count()
API: gst_test_clock_process_next_clock_id()
API: gst_test_clock_get_next_entry_time()

https://bugzilla.gnome.org/show_bug.cgi?id=683012
2012-11-13 21:47:01 +00:00
Sebastian Rasmussen
e58da2a22d check: add GstTestClock as a deterministic clock for testing
API: GstTestClock
API: gst_test_clock_new()
API: gst_test_clock_new_with_start_time()
API: gst_test_clock_set_time()
API: gst_test_clock_advance_time()

https://bugzilla.gnome.org/show_bug.cgi?id=683012
2012-11-13 21:19:57 +00:00
Sebastian Dröge
09982c3c13 dataqueue/queuearray: Make public API again
These are actually used outside of coreelements nowadays.
Also hide lots of internals and add padding and documentation.
2012-10-25 14:03:01 +02:00
Tim-Philipp Müller
bf2452d776 g_type_init() is no longer required and deprecated in glib >= 2.35.0
https://bugzilla.gnome.org/show_bug.cgi?id=686456
2012-10-20 12:56:30 +01:00
Tim-Philipp Müller
4e373aa952 docs: add Since markers for new API and add it to docs and .def file 2012-10-04 11:24:09 +01:00
Stefan Sauer
57ea490f5a collectpads: remove gst_collect_pads_add_pad_full
Rename gst_collect_pads_add_pad_full() to gst_collect_pads_add_pad() and fix all
invocations.
2012-09-12 21:04:47 +02:00
Sebastian Dröge
f24d36c380 docs: Add new basesrc/basetransform API to the docs 2012-08-14 15:46:35 +02:00
Stefan Sauer
e9b62b030c collectpads: remove unimplemented api
We can always add this back if we need it. Fixes parts of #670852.
2012-07-24 21:38:35 +02:00
Mark Nauwelaerts
e076e36840 collectpads2: rename to collectpads 2012-04-17 15:07:54 +02:00
Sebastian Dröge
b0d89da6b6 gst: Change versioning
Remove GST_MAJORMINOR and replace it by GST_API_VERSION
Also set GST_VERSION_{MAJOR,MINOR,MICRO,NANO} explicitely
now.

All versions are at 1.0.0 now for the release soon but
API/ABI can still change until the 1.0.0 release.

Next release versions until 1.0.0 will be 0.10.9X and
these will be release candidates. GST_VERSION_* will
nonetheless stay at 1.0.0.0.
2012-04-04 14:28:55 +02:00
Wim Taymans
416a4a252c docs: remove transform lock 2012-02-23 11:59:22 +01:00
Tim-Philipp Müller
ca697b61f3 docs: remove collectpads from docs, fix build 2012-01-26 10:48:51 +00:00
Tim-Philipp Müller
9a3e4ce5cb libs: remove gdp dataprotocol library
Made private and moved to gdp plugin in -base for
the time being, until we figure out what we do with
gdp and 0.11.
2011-12-25 23:41:50 +00:00
Stefan Sauer
503b739b23 controller: cleanup interpolation modes
Remove deprecated/unimplemented modes. Turn interpolation mode into a gobject
property. Update docs and examples.
2011-12-19 23:36:26 +01:00
Stefan Sauer
2c7a8b924a controlsources: refactor interpolation control source
Move most of the code to a GstTimedValueControlSource. Split out the trigger
'interpolation mode' to a new control source class. Move tests and examples to
new api. Update docs.

Fixes #610338
2011-12-19 22:52:30 +01:00
Wim Taymans
8acc2d9dc7 basesink: last-buffer -> last-sample
Rename the last-buffer property to last-sample and make it return the new
GstSample type so that we can include caps and timing info in one nice bundle.
2011-12-01 16:46:06 +01:00
Stefan Sauer
009d799087 collectpads: move fields out of reserved and restore padding
Do the 0.11 ABI changes. Add extra fields for destroy_notify and drop the qdata
hack. Rename _add_pad_full to _add_pad and remove the old _add_pad.
2011-11-17 08:39:01 +01:00
Stefan Sauer
6f29ac8bb1 controller: update docs for controller move 2011-11-04 20:11:51 +01:00
Wim Taymans
bed4d5f9b0 docs: update 2011-10-28 12:28:46 +02:00
Wim Taymans
d110c4db31 Merge branch 'master' into 0.11 2011-10-28 11:13:55 +02:00
Sebastian Dröge
2f100e86f6 collectpads2: Merge the clip and prepare_buffer function into one 2011-10-28 10:38:24 +02:00
Sebastian Dröge
1b1b7931b0 collectpads2: Add to the documentation 2011-10-28 09:36:12 +02:00
Tim-Philipp Müller
434e7042d8 base: make GstDataQueue private API for multiqueue
There's no code that uses it other than multiqueue, so make it private
to multiqueue for now. That way we can also do optimisations that
require API/ABI breaks. If anyone ever wants to use it, we can still
make it public again.
2011-10-07 13:54:37 +01:00
Wim Taymans
947276484f docs: fix some more docs 2011-09-28 11:16:33 +02:00
Sebastian Dröge
43538e2e75 Merge branch 'master' into 0.11
Conflicts:
	docs/design/draft-buffer2.txt
	docs/design/part-TODO.txt
	docs/design/part-block.txt
	docs/design/part-bufferlist.txt
	docs/design/part-caps.txt
	docs/design/part-element-transform.txt
	docs/design/part-events.txt
	docs/design/part-negotiation.txt
	gst/gstcaps.c
	gst/gstevent.h
	gst/gstghostpad.c
	gst/gstinterface.c
	gst/gstpad.c
	gst/gstpad.h
	gst/gstutils.c
	libs/gst/base/gstbasesink.c
	libs/gst/base/gstbasesrc.c
	libs/gst/base/gstbasetransform.c
	libs/gst/base/gsttypefindhelper.c
	plugins/elements/gstcapsfilter.c
	plugins/elements/gsttee.c
	tests/check/generic/sinks.c
	tools/gst-launch.1.in
2011-09-08 14:28:23 +02:00