Commit graph

344 commits

Author SHA1 Message Date
Wind Yuan fb4fc8fc09 bitwriter: Add a generic bit writer
GstBitWriter provides a bit writer that can write any number of
bits into a memory buffer. It provides functions for writing any
number of bits into 8, 16, 32 and 64 bit variables.

https://bugzilla.gnome.org/show_bug.cgi?id=707543
2018-05-06 17:05:21 +02:00
luz.paz 4a402c1c7d Fix typos in comments and docs
Found via `codespell`

https://bugzilla.gnome.org/show_bug.cgi?id=795610
2018-05-01 11:18:03 +01:00
Olivier Crête dda9a99989 aggregator: Add API to check if a pad has a new buffer
https://bugzilla.gnome.org/show_bug.cgi?id=795332
2018-04-25 14:20:19 -04:00
Mathieu Duponchelle 03e27aa5f0 API: gst_queue_array_peek_nth
https://bugzilla.gnome.org/show_bug.cgi?id=795157
2018-04-14 00:14:56 +02:00
Edward Hervey 22fac0b212 docs: Update libs documentation
* Make sure all libcheck headers are ignored
* Add all missing symbols
2018-04-02 12:44:15 +02:00
Tim-Philipp Müller e1ac1bc3a8 meson: docs: update api decorators to ignore 2018-03-13 11:54:42 +00:00
Tim-Philipp Müller 99df754c22 docs: fixup for new libs API export decorators 2018-03-13 00:57:37 +00:00
Sebastian Dröge 89eac59e92 queuearray: Implement pop_tail_struct() for completeness
All other variants of {peek,pop}_{head,tail}_{,struct} were already
implemented.

https://bugzilla.gnome.org/show_bug.cgi?id=794035
2018-03-05 09:39:57 +02:00
Tim-Philipp Müller cbe24ecc89 Add new symbol to docs and .def file
Fixes make check
2018-03-01 22:21:17 +00:00
Tim-Philipp Müller bbf8f50cde queuearray: add _peek_tail() and _pop_tail()
API: gst_queue_array_pop_tail()
API: gst_queue_array_peek_tail()

These will be needed later for appsrc.
2018-02-19 15:44:04 +00:00
Tim-Philipp Müller 7b7b3e754a docs: add flow combiner ref/unref to docs
So new-in-1.12 index actually has some entries.
2018-02-14 19:37:35 +00:00
Tim-Philipp Müller 8f4e4b0261 docs: add index for new symbols in 1.14 2018-02-14 19:13:28 +00:00
Tim-Philipp Müller 5389254f2f docs: add index for new symbols in 1.12 2018-02-14 19:12:06 +00:00
Tim-Philipp Müller bce246f39f aggregator: rename _get_buffer() -> _peek_buffer() and _steal -> _pop
https://bugzilla.gnome.org/show_bug.cgi?id=791204
2018-01-23 09:44:44 +00:00
Tim-Philipp Müller 18fe36a286 basesrc: add buffer list support
Add a gst_base_src_submit_buffer_list() function that allows subclasses
to produce a bufferlist containing multiple buffers in the ::create()
function. The buffers in the buffer list will then also be pushed out
in one go as a GstBufferList. This can reduce push overhead
significantly for sources with packetised inputs (such as udpsrc)
in high-throughput scenarios.

The _submit_buffer_list() approach was chosen because it is fairly
straight-forward, backwards-compatible, bindings-friendly (as opposed
to e.g. making the create function return a mini object instead),
and it allows the subclass maximum control: the subclass can decide
dynamically at runtime whether to return a list or a single buffer
(which would be messier if we added a create_list virtual method).

https://bugzilla.gnome.org/show_bug.cgi?id=750241
2017-12-07 12:17:09 +00:00
Tim-Philipp Müller d8e7fc40b1 harness: add gst_harness_take_all_data() + _take_all_data_as_{bytes,buffer}()
Convenience function to just grab all pending data
from the harness, e.g. if we just want to check if
it matches what we expect and we don't care about
the chunking or buffer metadata.

Based on patch by: Havard Graff <havard.graff@gmail.com>
2017-12-05 15:37:00 +00:00
Tim-Philipp Müller e6dbbb3854 aggregator: hook up to docs 2017-12-02 19:00:32 +00:00
Tim-Philipp Müller 3af87f437e meson: fix gtk-doc invocation
Argument is called "scanobjs_args", and we were missing a quote.
2017-08-07 11:23:36 +01:00
Stefan Sauer 3325ebb616 docs: use the full path to ignore dirs 2017-05-13 18:19:05 +02:00
Tim-Philipp Müller 89ce63ee6c controller: include new proxycontrolbinding header
And fix includes in docs to just include the main header (the
include for the proxycontrolbinding was wrong in the docs).
2017-04-11 20:18:29 +01:00
Matthew Waters 3eb4896435 controllers: add new proxy control binding
Allows proxying the control interface from one property on one GstObject
to another property (of the same type) in another GstObject.

E.g. in a parent-child relationship, one may need to
gst_object_sync_values() on the child and have a binding (set elsewhere)
on the parent update the value.

Note: that this doesn't solve GObject property forwarding and must be
taken care of by the implementation manually or using GBinding.

https://bugzilla.gnome.org/show_bug.cgi?id=774657
2016-11-23 17:15:09 +11:00
Vincent Penquerc'h 4caf66fbca baseparse: expose gst_base_parse_drain 2016-11-10 12:47:37 +00: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
Thibault Saunier 618f925edc meson: Fix gtkdoc using new meson features 2016-09-26 12:24:06 -03: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
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
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
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
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
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
Tim-Philipp Müller 41b85d91eb baseparse: add API for subclass to set tags
This is needed so that we can do proper tag handling
all around, and combine the upstream tags with the
tags set by the subclass and any extra tags the
base class may want to add.

API: gst_base_parse_merge_tags()

https://bugzilla.gnome.org/show_bug.cgi?id=679768
2015-08-16 14:32:23 +01:00
Nirbheek Chauhan 0ae4efdff2 docs: section entry missing for gst_direct_control_binding_new_absolute 2015-08-14 19:17:03 +02:00
Havard Graff 28100e0b6a harness: add _set_forwarding function
To be able to disable the slightly "magic" forwarding of the
necessary events between the harnesses.

Also introduce a new test-suite for GstHarness, that documents the
feature, and should hopefully expand into documenting most of the
features the harness possesses.

https://bugzilla.gnome.org/show_bug.cgi?id=752746
2015-08-09 16:02:37 +01:00
Havard Graff c97f82e32b harness: add functions for adding sub-harnesses directly
By introducing gst_harness_add_src_harness and gst_harness_add_sink_harness
we collect all sub-harness setup in one function, making the previous
sub-harness creation functions now calls these directly, and making it
much easier (and less error-prone) to add your own src or sink-harness
using the more generic harness-creation functions.
2015-07-20 15:30:11 +01:00
Tim-Philipp Müller ac79c7f05a harness: rename GstHarnessPrepareBuffer -> GstHarnessPrepareBufferFunc
https://bugzilla.gnome.org/show_bug.cgi?id=751916
2015-07-07 00:58:15 +01:00
Tim-Philipp Müller 49c896db3a docs: add GstHarness to documentation
https://bugzilla.gnome.org/show_bug.cgi?id=751916
2015-07-07 00:53:48 +01:00
Tim-Philipp Müller d0f85838ab queuearray: allow storing of structs in addition to pointers
This way we don't have to allocate/free temporary structs
for storing things in the queue array.

API: gst_queue_array_new_for_struct()
API: gst_queue_array_push_tail_struct()
API: gst_queue_array_peek_head_struct()
API: gst_queue_array_pop_head_struct()
API: gst_queue_array_drop_struct()

https://bugzilla.gnome.org/show_bug.cgi?id=750149
2015-07-04 11:03:51 +01:00
Sebastian Dröge 866f9ace5c adapter: Add get variants of the buffer based take functions
Main difference to gst_adapter_map() for all practical purposes is that
GstMeta of the buffers will be preserved.

https://bugzilla.gnome.org/show_bug.cgi?id=742385
2015-06-30 18:40:28 +02:00
Nicolas Dufresne 2448a62ff4 doc: Add more missing symbols in lib-sections.txt
These where causing broken links.
2015-06-14 11:23:22 -04:00
Nicolas Dufresne 80279df2a1 doc: Include and fix GstControlPoint 2015-06-14 11:22:36 -04:00
Nicolas Dufresne 88386f1225 doc: Add GstNetControlMessageMeta to the doc
This is being referenced elsewhere, but results in broken links.
It seems to be public API, so I think it should be in the doc.
2015-06-14 11:21:26 -04:00
Nicolas Dufresne 0e0a0c1b11 doc: Various doc fixes for libgstreamer-base
* Fix function name in sections.txt
* Add few missing or fix miss-named
* Workaround gtk-doc being confused with non typedef
  types (loose track of public/private
2015-06-14 10:56:28 -04:00
Nicolas Dufresne cbb9529b85 doc: Add indexes of added APIs
One of the nice feature in GTK doc is that it generate indexes
of added APIs base on the since marker. Include that in our doc
while fixing the issue of duplicate ID (produce xml contains that
id it seems)
2015-06-13 19:46:21 -04:00
Nicolas Dufresne d7b22481ae Revert "doc: Add GstNtpPacket to the doc"
This reverts commit c4eb876961.

Oops, this is not a public API
2015-06-13 14:37:48 -04:00
Nicolas Dufresne c4eb876961 doc: Add GstNtpPacket to the doc 2015-06-13 14:21:41 -04:00