- caching of semi-live streams to a local, on disk, ringbuffer with seeking in
the cached area. This is similar to tivo-like timeshifting.
- progress report about the buffering operations
- - easy (backward compatible) application notification of buffering
- the possibility for the application to do more complex buffering
Some use cases:
this information to estimate the amount of remaining time to download the
complete file.
+ "buffering-ranges", G_TYPE_ARRAY of GstQueryBufferingRange
+ - contains optionally the downloaded areas in the format given above. One
+ of the ranges contains the same start/stop position as above.
+
+ typedef struct
+ {
+ gint64 start;
+ gint64 stop;
+ } GstQueryBufferingRange;
+
+
For the "download" and "timeshift" buffering-modes, the start and stop positions
specify the ranges where efficient seeking in the downloaded media is possible.
Seeking outside of these ranges might be slow or not at all possible.
"start" = 0
"stop" = the total filesize
"estimated-total" = 0
+ "buffering-ranges" = NULL
A GstBaseSrc in push mode replies to the BUFFERING query with:
"start" = current position
"stop" = current position
"estimated-total" = -1
+ "buffering-ranges" = NULL
Buffering strategies