Commit graph

88 commits

Author SHA1 Message Date
Tim-Philipp Müller
ef8ca3549e gst: fix awkward dest_format inout parameter in query utility functions
The idea was originally that if one passed &dest_fmt with
dest_fmt=GST_FORMAT_DEFAULT, then the code answering the query
could change dest_fmt to the actual default format used. However,
in more than half a decade of GStreamer 0.10 no piece of code in
GStreamer has ever used that feature, nor are there that many
users of this API that actually check whether the format returned
is the original format passed before using the values returned.
Also, it's just annoying-to-use API in its own right.

For all these reasons, make it so that the destination format is
passed directly and can't be changed by the element queried.
2011-07-28 11:23:15 +01:00
Wim Taymans
0aa1465bbc query: add method to check for metadata
Add a method to check if a certain metadata is supported in the ALLOCATION
query.
2011-06-23 18:03:22 +02:00
Wim Taymans
a14623f925 query: add some more checks
Make sure that the alignment is valid.
When we have a 0 size (variable buffer size), we can't have a bufferpool.
2011-06-11 20:45:42 +02:00
Wim Taymans
bb2d7241fa query: set all default values
Fill all query values with good defaults.
2011-06-11 19:54:47 +02:00
Wim Taymans
f6dc8eba34 memory: cleanups and improve docs
Make the fallback copy use the same memory allocator as the original object.
Improve some docs.
Require an alloc function when registering an allocator.
Remove gst_memory_allocator_get_default() and merge the feature in
gst_memory_allocator_find()
Fix locks on the hashtable.
Remove defined but not-implemented gst_memory_span() method.
2011-06-08 11:03:50 +02:00
Wim Taymans
78ea732149 query: add methods to query allocators
Add API to add and query allocator implementations to/from the ALLOCATION query.
2011-06-07 16:35:07 +02:00
Wim Taymans
7e6d579301 scheduling: port to new scheduling query 2011-05-24 17:39:56 +02:00
Wim Taymans
5fa3082e19 query: add SCHEDULING query
Add a new query to replace the checkgetrange function.
2011-05-24 17:39:56 +02:00
Wim Taymans
dc520c11bc query: add allocation query name
Add ALLOCATION query name and guard some functions against invalid queries.
2011-05-18 18:48:03 +02:00
Wim Taymans
df4a8e2f23 query: make sure query is writable
Make sure the Query is writable before executing the setters.
2011-05-10 15:41:54 +02:00
Wim Taymans
933446ec44 query: Hide GstStructure in queries
Hide the GstStructure from the query API.
Rename some methods to match the more common names in GObject libraries.
Add some more useful query API.
2011-05-10 15:33:53 +02:00
Sebastian Dröge
98d1ee4a8f gst: Update everything for the new GstIterator API 2011-05-05 15:36:03 +02:00
Wim Taymans
9d80fbac23 query: improve allocation parameters query
Use the same parameters as those used for the bufferpool. Make sure we can pass
a minimum and maximum amount of buffers needed.
2011-05-02 11:09:52 +02:00
Wim Taymans
ed1862269a query: init the ALLOCATION query correctly
Don't add the 'pool' property instead of adding it with a NULL array.
2011-04-29 12:11:56 +02:00
Wim Taymans
ccfaa53fb2 query: fix parsing of the ALLOCATION query
Add methods for parsing the caps and the need_pool boolean.
2011-04-29 10:50:17 +02:00
Wim Taymans
6ea2e71c48 query: fix typo in method name and improve docs
Fixed typo in method name and add/improve the docs.
2011-04-28 16:20:22 +02:00
Wim Taymans
06f6935107 bufferpool: add query to request pool and configuration
Add a query to request allocation parameters and optionally a bufferpool as
well. This should allow elements to discover downstream capabilities and also
use the downstream allocators.
2011-04-28 15:31:48 +02:00
Josep Torra
5ccda2f8f4 Small cosmetic cleanups
Make sure the return values from g_return_* are of the right type.
2011-04-25 11:10:47 +02:00
Wim Taymans
24bb414035 Merge branch 'master' into 0.11
Conflicts:
	configure.ac
2011-04-19 16:21:15 +02:00
Tim-Philipp Müller
f4b178af3b query: const-ify formats arguments to gst_query_set_formatsv() 2011-04-19 11:48:05 +01:00
Wim Taymans
b108e3b999 miniobject: cleanups
Use the stored size in the miniobject to free the miniobject.
Refactor some init methods.
2011-02-23 16:48:00 +01:00
Wim Taymans
6c18c9508d miniobject: more boxed type fixing
More miniobject fixing, leaks horribly somewhere..
2011-02-23 10:35:09 +01:00
Tim-Philipp Müller
3256c708be docs: gst: more gobject introspection annotations
Many of these are superfluous, added for clarity.
2010-12-07 18:37:04 +00:00
Edward Hervey
5519b1fcb1 gstquery: Use structure property directly, avoid function variable.
All functions in this file can access the structure field of a query directly.
This avoids having to call gst_query_get_structure() to get it, along with being
able to remove some function variables that were used to store the result of that
function.
2010-12-03 11:33:37 +01:00
Stefan Kost
898583b2a0 docs: query doc improvements
More xrefs. Mentioned that some queries need a running pipeline.
2010-12-03 09:50:32 +02:00
Tim-Philipp Müller
34abe02458 query: minor gst_query_add_buffering_range() code reflow
Sprinkle some G_UNLIKELY(), return TRUE/FALSE constants, avoid an
unnecessary g_value_unset(), move g_value_init()+set_int64_range()
closer to where they're needed.
2010-09-16 19:40:15 +01:00
Tim-Philipp Müller
58e5d5e5b9 query: gst_query_add_buffering_range() optimisations
Don't create a new GValueArray copy for every single _add_buffering_range()
call, but append to the existing value array owned by the structure instead.
2010-09-16 19:40:15 +01:00
Sebastian Dröge
36e1ad94e1 gstquery: Only fill the start/stop values of the buffering ranges if a non-NULL pointer was provided 2010-09-03 19:58:49 +02:00
Philippe Normand
9ef1c47079 gstquery: new buffering_ranges API
Added a new query type to retrieve informations about the areas of the
media currently buffered. See bug 623121.

API: gst_query_add_buffering_range
API: gst_query_get_n_buffering_ranges
API: gst_query_parse_nth_buffering_range
2010-09-03 19:55:25 +02:00
Johan Dahlin
6ab6dcf931 query: Add out annotations
https://bugzilla.gnome.org/show_bug.cgi?id=621773
2010-06-16 19:03:21 +02:00
Sebastian Dröge
fd68dbc08f gst: Use GSlice instead of normal g_malloc in more places 2010-03-28 19:48:45 +02:00
Benjamin Otte
a9d1a493a7 Fixes for -Wwrite-strings
This changes some APIs in compatible ways:
- Some functions now take "const char *" arguments, not "char *"
- Some structs now have "conts char *" members, not "char *"
The changes may cause warnings when compiling with the right warning
flags. You've been warned.

Also adds -Wwrite-strings as a warning flag in configure.ac.

https://bugzilla.gnome.org/show_bug.cgi?id=611692
2010-03-10 20:50:10 +01:00
Stefan Kost
868878db87 docs: use '*' instead of xxx to avoid creating a broekn xref 2009-11-27 14:18:38 +02:00
Wim Taymans
0b5e8f0e57 query: whitespace fixes 2009-11-23 11:34:07 +01:00
Edward Hervey
43dba6cefc miniobjects: Don't chain up to empty finalize method.
If ever we do anything in mini_object_finalize, we should make sure the 4
core miniobject finalize methods chain back up again.
2009-06-24 11:00:27 +02:00
Tim-Philipp Müller
c8acbbfde0 structure: add gst_structure_id_new() convenience function
Add convenience wrapper for gst_structure_id_empty_new() plus
gst_structure_id_set() and use it in a few places.

API: gst_structure_id_new()
2009-05-29 19:28:10 +01:00
Tim-Philipp Müller
bc7c7e9836 micro-optimisation: use GST_QUARK in more places
Use gst_structure_id_empty_new() in combination with GST_QUARK
rather than gst_structure_id_new() when creating message, event,
query and taglist structures. Mostly just because we can.
2009-05-29 19:27:43 +01:00
Stefan Kost
c2da78a953 docs: fix gtk-doc warnings
Move MT safety to main description (it does not belong to Return: or Since:
statement). Add a few missing return docs. Downgrade a normal comment froma doc
comment. Fix a doc header to only contain symbol name.
2009-05-22 12:53:11 +03:00
Sebastian Dröge
e7ccf786c3 gst: Use G_DEFINE_TYPE and friends or at least g_once_init_* in the _get_type() functions 2009-04-04 10:20:36 +02:00
Sebastian Dröge
9b65eb6838 API: Add URI query type. This is useful to query the URI of a sink/source element and can be used by demuxers that ne...
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gstquark.c:
* gst/gstquark.h:
* gst/gstquery.c: (gst_query_new_uri), (gst_query_set_uri),
(gst_query_parse_uri):
* gst/gstquery.h:
API: Add URI query type. This is useful to query the URI
of a sink/source element and can be used by demuxers that
need to get data from other files.
This query should go upstream by default.
Fixes bug #562949.
* plugins/elements/gstfdsink.c: (gst_fd_sink_query):
* plugins/elements/gstfdsrc.c: (gst_fd_src_class_init),
(gst_fd_src_query):
* plugins/elements/gstfilesink.c: (gst_file_sink_query):
* plugins/elements/gstfilesrc.c: (gst_file_src_class_init),
(gst_file_src_query):
Implement URI query.
2008-12-20 17:33:44 +00:00
Wim Taymans
82479761f1 gst/gstquery.*: Add GstQueryType for custom queries instead of having to use the not-so-very-convenient registration ...
Original commit message from CVS:
* gst/gstquery.c:
* gst/gstquery.h:
Add GstQueryType for custom queries instead of having to use the
not-so-very-convenient registration infrastructure to register new
types.
2008-11-20 10:35:50 +00:00
David Schleef
93f300823f gst/gstutils.c: Remove check in gst_pad_query_convert() that src_val must be positive, because that's not a requirement.
Original commit message from CVS:
* gst/gstutils.c: Remove check in gst_pad_query_convert() that
src_val must be positive, because that's not a requirement.
This causes problems with converting negative granulepos
values for Dirac.
* gst/gstquery.c: Same, gst_query_new_convert().
2008-08-27 03:04:23 +00:00
Stefan Kost
2f6b52d6f3 gst/gstquery.c: Also use G_GINT64_CONSTANT for the queries.
Original commit message from CVS:
* gst/gstquery.c:
Also use G_GINT64_CONSTANT for the queries.
2008-04-16 18:48:03 +00:00
Wim Taymans
08beab1f20 docs/design/part-buffering.txt: Fix some typos and set the estimated total for push mode to -1.
Original commit message from CVS:
* docs/design/part-buffering.txt:
Fix some typos and set the estimated total for push mode to -1.
* gst/gstquery.c: (gst_query_new_buffering):
Set buffering-left to 0 as we're not buffering by default.
* libs/gst/base/gstbasesrc.c: (gst_base_src_default_query):
Implement BUFFERING query.
2008-04-09 18:26:15 +00:00
Wim Taymans
7293b3e7d7 Rename _avail -> _range
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gstquery.c: (gst_query_parse_latency),
(gst_query_set_buffering_percent),
(gst_query_parse_buffering_percent),
(gst_query_set_buffering_range), (gst_query_parse_buffering_range):
* gst/gstquery.h:
Rename _avail -> _range
API: gst_query_set_buffering_range
API: gst_query_parse_buffering_range
2008-04-08 20:28:21 +00:00
Wim Taymans
1365624d74 Add busy field and quark for the buffering query so that the app can only use the query to see if buffering is in pro...
Original commit message from CVS:
* docs/design/part-buffering.txt:
* gst/gstquark.c:
* gst/gstquark.h:
* gst/gstquery.c: (gst_query_parse_latency),
(gst_query_new_buffering), (gst_query_set_buffering_percent),
(gst_query_parse_buffering_percent):
* gst/gstquery.h:
Add busy field and quark for the buffering query so that the app can
only use the query to see if buffering is in progress.
2008-04-08 20:17:49 +00:00
Wim Taymans
5e14412c47 Reorder the message docs and headers for clarity.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gstmessage.c: (gst_message_set_buffering_stats),
(gst_message_parse_buffering_stats):
* gst/gstmessage.h:
* gst/gstquery.c: (gst_query_new_latency), (gst_query_set_latency),
(gst_query_parse_latency), (gst_query_new_buffering),
(gst_query_set_buffering_percent),
(gst_query_parse_buffering_percent),
(gst_query_set_buffering_stats), (gst_query_parse_buffering_stats),
(gst_query_set_buffering_avail), (gst_query_parse_buffering_avail):
* gst/gstquery.h:
Reorder the message docs and headers for clarity.
Add aditional buffering stats API for messages.
Add buffering query.
Convert some leftover queries to use GstQuark.
API: gst_message_set_buffering_stats
API: gst_message_parse_buffering_stats
API: GST_QUERY_BUFFERING
API: GstBufferingMode
API: gst_query_new_buffering
API: gst_query_set_buffering_percent
API: gst_query_parse_buffering_percent
API: gst_query_set_buffering_stats
API: gst_query_parse_buffering_stats
API: gst_query_set_buffering_avail
API: gst_query_parse_buffering_avail
2008-04-08 19:59:06 +00:00
Sebastian Dröge
109511b55b Properly chain up finalize functions to the parent class.
Original commit message from CVS:
* gst/gstbuffer.c: (gst_buffer_class_init), (gst_buffer_finalize):
* gst/gstevent.c: (gst_event_class_init), (gst_event_finalize):
* gst/gstmessage.c: (gst_message_class_init),
(gst_message_finalize):
* gst/gstquery.c: (gst_query_class_init), (gst_query_finalize):
* plugins/elements/gstfilesrc.c: (gst_mmap_buffer_class_init),
(gst_mmap_buffer_finalize):
Properly chain up finalize functions to the parent class.
2008-02-12 12:04:43 +00:00
Tim-Philipp Müller
99a41cefe3 g_type_class_ref() other types as well, see #349410 and #64764.
Original commit message from CVS:
* gst/gst.c: (init_post):
* gst/gstevent.c: (_gst_event_initialize):
* gst/gstquery.c: (_gst_query_initialize):
* libs/gst/dataprotocol/dataprotocol.c (gst_dp_init):
g_type_class_ref() other types as well, see #349410 and #64764.
* gst/gstbuffer.c: (_gst_buffer_initialize):
* gst/gstmessage.c: (_gst_message_initialize):
Simplify existing g_type_class_ref().
2007-11-01 21:50:05 +00:00
Stefan Kost
1756e6aa87 gst/: Remove empty instance_init() functions to save relocs and lessen the noise. Remove some of the function prototy...
Original commit message from CVS:
* gst/gstindexfactory.c: (gst_index_factory_get_type):
* gst/gstplugin.c: (gst_plugin_init):
* gst/gstpluginfeature.c: (gst_plugin_feature_init):
* gst/gstquery.c: (gst_query_get_type):
* gst/gstregistry.c: (gst_registry_init):
* gst/gsturi.c: (gst_uri_handler_base_init):
Remove empty instance_init() functions to save relocs and lessen the
noise. Remove some of the function prototypes that are doubled by
G_DEFINE_TYPE.
2007-06-27 10:12:14 +00:00