diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2018-10-17 19:43:51 +0300 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2018-10-17 19:44:22 +0300 |
commit | e0dee7f4c1d455280bfabe346477aeb6cbe3c223 (patch) | |
tree | 89249e0000e1e2c1ea44a29131bc4788a97ab6f9 | |
parent | 3499d9ea646311a879813fa033226b7624d9e1eb (diff) | |
download | gst-plugins-base-e0dee7f4c1d455280bfabe346477aeb6cbe3c223.tar.gz gst-plugins-base-e0dee7f4c1d455280bfabe346477aeb6cbe3c223.tar.xz |
oggdemux: Answer POSITION query
-rw-r--r-- | ext/ogg/gstoggdemux.c | 15 |
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; } |