mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-25 11:11:08 +00:00
100 lines
2.4 KiB
Text
100 lines
2.4 KiB
Text
Query
|
|
-----
|
|
|
|
Purpose
|
|
~~~~~~~
|
|
|
|
Queries are used to get information about the stream.
|
|
A query is started on a specific pad and travels up or downstream.
|
|
|
|
|
|
Requirements
|
|
~~~~~~~~~~~~
|
|
|
|
- multiple return values, grouped together when they make sense.
|
|
- one pad function to perform the query
|
|
- extensible queries.
|
|
|
|
Implementation
|
|
~~~~~~~~~~~~~~
|
|
|
|
- GstQuery extends GstMiniObject and contains a GstStructure (see GstMessage)
|
|
- some standard query types are defined below
|
|
- methods to create and parse the results in the GstQuery.
|
|
- define pad method:
|
|
|
|
gboolean (*GstPadQueryFunction) (GstPad *pad,
|
|
GstObject *parent,
|
|
GstQuery *query);
|
|
|
|
pad returns result in query structure and TRUE as result or FALSE when
|
|
query is not supported.
|
|
|
|
Query types
|
|
~~~~~~~~~~~
|
|
|
|
- GST_QUERY_POSITION:
|
|
|
|
get info on current position of the stream in stream_time.
|
|
|
|
- GST_QUERY_DURATION:
|
|
|
|
get info on the total duration of the stream.
|
|
|
|
- GST_QUERY_LATENCY:
|
|
|
|
get amount of latency introduced in the pipeline. (See part-latency.txt)
|
|
|
|
- GST_QUERY_RATE:
|
|
|
|
get the current playback rate of the pipeline
|
|
|
|
- GST_QUERY_SEEKING:
|
|
|
|
get info on how seeking can be done
|
|
- getrange, with/without offset/size
|
|
- ranges where seeking is efficient (for caching network sources)
|
|
- flags describing seeking behaviour (forward, backward, segments,
|
|
play backwards, ...)
|
|
|
|
- GST_QUERY_SEGMENT:
|
|
|
|
get info about the currently configured playback segment.
|
|
|
|
- GST_QUERY_CONVERT:
|
|
|
|
convert format/value to another format/value pair.
|
|
|
|
- GST_QUERY_FORMATS:
|
|
|
|
return list of supported formats that can be used for GST_QUERY_CONVERT.
|
|
|
|
- GST_QUERY_BUFFERING:
|
|
|
|
query available media for efficient seeking (See part-buffering.txt)
|
|
|
|
- GST_QUERY_CUSTOM:
|
|
|
|
a custom query, the name of the query defines the properties of the query.
|
|
|
|
- GST_QUERY_URI:
|
|
|
|
query the uri of the source or sink element
|
|
|
|
- GST_QUERY_ALLOCATION:
|
|
|
|
the buffer allocation properties (See part-bufferpool.txt)
|
|
|
|
- GST_QUERY_SCHEDULING:
|
|
|
|
the scheduling properties (See part-scheduling.txt)
|
|
|
|
- GST_QUERY_ACCEPT_CAPS:
|
|
|
|
check if caps are supported (See part-negotiation.txt)
|
|
|
|
- GST_QUERY_CAPS:
|
|
|
|
get the possible caps (See part-negotiation.txt)
|
|
|
|
|