summaryrefslogtreecommitdiff
path: root/gst/y4m
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@collabora.co.uk>2011-11-16 17:28:10 +0100
committerWim Taymans <wim.taymans@collabora.co.uk>2011-11-16 17:30:38 +0100
commit6d92ecac757a4e0a9f9f63805b43e26a92bb4160 (patch)
treeba958cd2fae6477ca9875138ff1516c9848a25d8 /gst/y4m
parent3c993f1c4afc4c874108404158afdafac3ad0d99 (diff)
downloadgstreamer-plugins-bad-6d92ecac757a4e0a9f9f63805b43e26a92bb4160.tar.gz
add parent to query function
Diffstat (limited to 'gst/y4m')
-rw-r--r--gst/y4m/gsty4mdec.c45
1 files changed, 20 insertions, 25 deletions
diff --git a/gst/y4m/gsty4mdec.c b/gst/y4m/gsty4mdec.c
index c61e34ebc..f39632227 100644
--- a/gst/y4m/gsty4mdec.c
+++ b/gst/y4m/gsty4mdec.c
@@ -59,7 +59,8 @@ static GstFlowReturn gst_y4m_dec_chain (GstPad * pad, GstBuffer * buffer);
static gboolean gst_y4m_dec_sink_event (GstPad * pad, GstEvent * event);
static gboolean gst_y4m_dec_src_event (GstPad * pad, GstEvent * event);
-static gboolean gst_y4m_dec_src_query (GstPad * pad, GstQuery * query);
+static gboolean gst_y4m_dec_src_query (GstPad * pad, GstObject * parent,
+ GstQuery * query);
static GstStateChangeReturn
gst_y4m_dec_change_state (GstElement * element, GstStateChange transition);
@@ -647,16 +648,16 @@ gst_y4m_dec_src_event (GstPad * pad, GstEvent * event)
}
static gboolean
-gst_y4m_dec_src_query (GstPad * pad, GstQuery * query)
+gst_y4m_dec_src_query (GstPad * pad, GstObject * parent, GstQuery * query)
{
- GstY4mDec *y4mdec = GST_Y4M_DEC (gst_pad_get_parent (pad));
+ GstY4mDec *y4mdec = GST_Y4M_DEC (parent);
gboolean res = FALSE;
switch (GST_QUERY_TYPE (query)) {
case GST_QUERY_DURATION:
{
GstFormat format;
- GstPad *peer;
+ GstQuery *peer_query;
GST_DEBUG ("duration query");
@@ -669,39 +670,33 @@ gst_y4m_dec_src_query (GstPad * pad, GstQuery * query)
break;
}
- peer = gst_pad_get_peer (y4mdec->sinkpad);
- if (peer) {
- GstQuery *peer_query = gst_query_new_duration (GST_FORMAT_BYTES);
+ peer_query = gst_query_new_duration (GST_FORMAT_BYTES);
- res = gst_pad_query (peer, peer_query);
- if (res) {
- gint64 duration;
- int n_frames;
+ res = gst_pad_peer_query (y4mdec->sinkpad, peer_query);
+ if (res) {
+ gint64 duration;
+ int n_frames;
- gst_query_parse_duration (peer_query, &format, &duration);
+ gst_query_parse_duration (peer_query, &format, &duration);
- n_frames = gst_y4m_dec_bytes_to_frames (y4mdec, duration);
- GST_DEBUG ("duration in frames %d", n_frames);
+ n_frames = gst_y4m_dec_bytes_to_frames (y4mdec, duration);
+ GST_DEBUG ("duration in frames %d", n_frames);
- duration = gst_y4m_dec_frames_to_timestamp (y4mdec, n_frames);
- GST_DEBUG ("duration in time %" GST_TIME_FORMAT,
- GST_TIME_ARGS (duration));
+ duration = gst_y4m_dec_frames_to_timestamp (y4mdec, n_frames);
+ GST_DEBUG ("duration in time %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (duration));
- gst_query_set_duration (query, GST_FORMAT_TIME, duration);
- res = TRUE;
- }
-
- gst_query_unref (peer_query);
- gst_object_unref (peer);
+ gst_query_set_duration (query, GST_FORMAT_TIME, duration);
+ res = TRUE;
}
+ gst_query_unref (peer_query);
break;
}
default:
- res = gst_pad_query_default (pad, query);
+ res = gst_pad_query_default (pad, parent, query);
break;
}
- gst_object_unref (y4mdec);
return res;
}