summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2018-10-17 19:43:51 +0300
committerSebastian Dröge <sebastian@centricular.com>2018-10-17 19:44:22 +0300
commite0dee7f4c1d455280bfabe346477aeb6cbe3c223 (patch)
tree89249e0000e1e2c1ea44a29131bc4788a97ab6f9
parent3499d9ea646311a879813fa033226b7624d9e1eb (diff)
downloadgst-plugins-base-e0dee7f4c1d455280bfabe346477aeb6cbe3c223.tar.gz
gst-plugins-base-e0dee7f4c1d455280bfabe346477aeb6cbe3c223.tar.xz
oggdemux: Answer POSITION query
-rw-r--r--ext/ogg/gstoggdemux.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/ext/ogg/gstoggdemux.c b/ext/ogg/gstoggdemux.c
index 767f9b6ec..a4e10749b 100644
--- a/ext/ogg/gstoggdemux.c
+++ b/ext/ogg/gstoggdemux.c
@@ -252,6 +252,19 @@ gst_ogg_pad_src_query (GstPad * pad, GstObject * parent, GstQuery * query)
ogg = GST_OGG_DEMUX (parent);
switch (GST_QUERY_TYPE (query)) {
+ case GST_QUERY_POSITION:
+ {
+ GstFormat format;
+ GstOggPad *ogg_pad = GST_OGG_PAD (pad);
+
+ gst_query_parse_position (query, &format, NULL);
+ /* can only get position in time */
+ if (format != GST_FORMAT_TIME)
+ goto wrong_format;
+
+ gst_query_set_position (query, format, ogg_pad->position);
+ break;
+ }
case GST_QUERY_DURATION:
{
GstFormat format;
@@ -385,7 +398,7 @@ done:
/* ERRORS */
wrong_format:
{
- GST_DEBUG_OBJECT (ogg, "only query duration on TIME is supported");
+ GST_DEBUG_OBJECT (ogg, "only query position/duration on TIME is supported");
res = FALSE;
goto done;
}