mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 06:54:49 +00:00
tagdemux: fix src query handler
We don't want to blindly forward all queries.
This commit is contained in:
parent
d1beba8b6d
commit
ee2c699016
1 changed files with 13 additions and 5 deletions
|
@ -1340,13 +1340,17 @@ gst_tag_demux_pad_query (GstPad * pad, GstObject * parent, GstQuery * query)
|
||||||
GstTagDemux *demux = GST_TAG_DEMUX (parent);
|
GstTagDemux *demux = GST_TAG_DEMUX (parent);
|
||||||
GstFormat format;
|
GstFormat format;
|
||||||
gint64 result;
|
gint64 result;
|
||||||
|
gboolean res = TRUE;
|
||||||
if (!gst_pad_peer_query (demux->priv->sinkpad, query))
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
switch (GST_QUERY_TYPE (query)) {
|
switch (GST_QUERY_TYPE (query)) {
|
||||||
|
case GST_QUERY_SCHEDULING:
|
||||||
|
res = gst_pad_peer_query (demux->priv->sinkpad, query);
|
||||||
|
break;
|
||||||
case GST_QUERY_POSITION:
|
case GST_QUERY_POSITION:
|
||||||
{
|
{
|
||||||
|
if (!(res = gst_pad_peer_query (demux->priv->sinkpad, query)))
|
||||||
|
goto done;
|
||||||
|
|
||||||
gst_query_parse_position (query, &format, &result);
|
gst_query_parse_position (query, &format, &result);
|
||||||
if (format == GST_FORMAT_BYTES) {
|
if (format == GST_FORMAT_BYTES) {
|
||||||
result -= demux->priv->strip_start;
|
result -= demux->priv->strip_start;
|
||||||
|
@ -1356,6 +1360,9 @@ gst_tag_demux_pad_query (GstPad * pad, GstObject * parent, GstQuery * query)
|
||||||
}
|
}
|
||||||
case GST_QUERY_DURATION:
|
case GST_QUERY_DURATION:
|
||||||
{
|
{
|
||||||
|
if (!(res = gst_pad_peer_query (demux->priv->sinkpad, query)))
|
||||||
|
goto done;
|
||||||
|
|
||||||
gst_query_parse_duration (query, &format, &result);
|
gst_query_parse_duration (query, &format, &result);
|
||||||
if (format == GST_FORMAT_BYTES) {
|
if (format == GST_FORMAT_BYTES) {
|
||||||
result -= demux->priv->strip_start + demux->priv->strip_end;
|
result -= demux->priv->strip_start + demux->priv->strip_end;
|
||||||
|
@ -1364,10 +1371,11 @@ gst_tag_demux_pad_query (GstPad * pad, GstObject * parent, GstQuery * query)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
res = gst_pad_query_default (pad, parent, query);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
done:
|
||||||
return TRUE;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
Loading…
Reference in a new issue