add parent to query function

This commit is contained in:
Wim Taymans 2011-11-16 17:29:22 +01:00
parent f65f9938d0
commit 63a890a746
3 changed files with 13 additions and 16 deletions

View file

@ -226,7 +226,8 @@ static void gst_ffmpegdec_class_init (GstFFMpegDecClass * klass);
static void gst_ffmpegdec_init (GstFFMpegDec * ffmpegdec); static void gst_ffmpegdec_init (GstFFMpegDec * ffmpegdec);
static void gst_ffmpegdec_finalize (GObject * object); static void gst_ffmpegdec_finalize (GObject * object);
static gboolean gst_ffmpegdec_src_query (GstPad * pad, GstQuery * query); static gboolean gst_ffmpegdec_src_query (GstPad * pad, GstObject * parent,
GstQuery * query);
static gboolean gst_ffmpegdec_src_event (GstPad * pad, GstEvent * event); static gboolean gst_ffmpegdec_src_event (GstPad * pad, GstEvent * event);
static gboolean gst_ffmpegdec_sink_event (GstPad * pad, GstEvent * event); static gboolean gst_ffmpegdec_sink_event (GstPad * pad, GstEvent * event);
@ -467,15 +468,12 @@ gst_ffmpegdec_finalize (GObject * object)
} }
static gboolean static gboolean
gst_ffmpegdec_src_query (GstPad * pad, GstQuery * query) gst_ffmpegdec_src_query (GstPad * pad, GstObject * parent, GstQuery * query)
{ {
GstFFMpegDec *ffmpegdec;
gboolean res; gboolean res;
ffmpegdec = (GstFFMpegDec *) gst_pad_get_parent (pad);
/* just forward to peer */ /* just forward to peer */
res = gst_pad_query_default (pad, query); res = gst_pad_query_default (pad, parent, query);
#if 0 #if 0
{ {
GstFormat bfmt; GstFormat bfmt;
@ -494,8 +492,6 @@ gst_ffmpegdec_src_query (GstPad * pad, GstQuery * query)
} }
#endif #endif
gst_object_unref (ffmpegdec);
return res; return res;
} }

View file

@ -714,7 +714,7 @@ gst_ffmpegdemux_send_event (GstElement * element, GstEvent * event)
} }
static gboolean static gboolean
gst_ffmpegdemux_src_query (GstPad * pad, GstQuery * query) gst_ffmpegdemux_src_query (GstPad * pad, GstObject * parent, GstQuery * query)
{ {
GstFFMpegDemux *demux; GstFFMpegDemux *demux;
GstFFStream *stream; GstFFStream *stream;
@ -726,7 +726,7 @@ gst_ffmpegdemux_src_query (GstPad * pad, GstQuery * query)
avstream = stream->avstream; avstream = stream->avstream;
demux = (GstFFMpegDemux *) GST_PAD_PARENT (pad); demux = (GstFFMpegDemux *) parent;
switch (GST_QUERY_TYPE (query)) { switch (GST_QUERY_TYPE (query)) {
case GST_QUERY_POSITION: case GST_QUERY_POSITION:
@ -754,7 +754,7 @@ gst_ffmpegdemux_src_query (GstPad * pad, GstQuery * query)
case GST_FORMAT_BYTES: case GST_FORMAT_BYTES:
if (demux->videopads + demux->audiopads == 1 && if (demux->videopads + demux->audiopads == 1 &&
GST_PAD_PEER (demux->sinkpad) != NULL) GST_PAD_PEER (demux->sinkpad) != NULL)
res = gst_pad_query_default (pad, query); res = gst_pad_query_default (pad, parent, query);
break; break;
default: default:
break; break;
@ -791,7 +791,7 @@ gst_ffmpegdemux_src_query (GstPad * pad, GstQuery * query)
case GST_FORMAT_BYTES: case GST_FORMAT_BYTES:
if (demux->videopads + demux->audiopads == 1 && if (demux->videopads + demux->audiopads == 1 &&
GST_PAD_PEER (demux->sinkpad) != NULL) GST_PAD_PEER (demux->sinkpad) != NULL)
res = gst_pad_query_default (pad, query); res = gst_pad_query_default (pad, parent, query);
break; break;
default: default:
break; break;
@ -816,7 +816,7 @@ gst_ffmpegdemux_src_query (GstPad * pad, GstQuery * query)
} }
default: default:
/* FIXME : ADD GST_QUERY_CONVERT */ /* FIXME : ADD GST_QUERY_CONVERT */
res = gst_pad_query_default (pad, query); res = gst_pad_query_default (pad, parent, query);
break; break;
} }

View file

@ -105,7 +105,8 @@ static GstFlowReturn gst_ffmpegenc_chain_audio (GstPad * pad,
GstBuffer * buffer); GstBuffer * buffer);
static gboolean gst_ffmpegenc_event_sink (GstPad * pad, GstEvent * event); static gboolean gst_ffmpegenc_event_sink (GstPad * pad, GstEvent * event);
static gboolean gst_ffmpegenc_event_src (GstPad * pad, GstEvent * event); static gboolean gst_ffmpegenc_event_src (GstPad * pad, GstEvent * event);
static gboolean gst_ffmpegenc_query_sink (GstPad * pad, GstQuery * query); static gboolean gst_ffmpegenc_query_sink (GstPad * pad, GstObject * parent,
GstQuery * query);
static void gst_ffmpegenc_set_property (GObject * object, static void gst_ffmpegenc_set_property (GObject * object,
guint prop_id, const GValue * value, GParamSpec * pspec); guint prop_id, const GValue * value, GParamSpec * pspec);
@ -1233,7 +1234,7 @@ gst_ffmpegenc_event_src (GstPad * pad, GstEvent * event)
} }
static gboolean static gboolean
gst_ffmpegenc_query_sink (GstPad * pad, GstQuery * query) gst_ffmpegenc_query_sink (GstPad * pad, GstObject * parent, GstQuery * query)
{ {
gboolean res = FALSE; gboolean res = FALSE;
@ -1250,7 +1251,7 @@ gst_ffmpegenc_query_sink (GstPad * pad, GstQuery * query)
break; break;
} }
default: default:
res = gst_pad_query_default (pad, query); res = gst_pad_query_default (pad, parent, query);
break; break;
} }