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)