static gboolean gst_mpeg2dec_src_event (GstPad * pad, GstEvent * event);
-static gboolean gst_mpeg2dec_src_query (GstPad * pad, GstQuery * query);
+static gboolean gst_mpeg2dec_src_query (GstPad * pad, GstObject * parent,
+ GstQuery * query);
static gboolean gst_mpeg2dec_sink_convert (GstPad * pad, GstFormat src_format,
gint64 src_value, GstFormat * dest_format, gint64 * dest_value);
static void clear_buffers (GstMpeg2dec * mpeg2dec);
-//static gboolean gst_mpeg2dec_sink_query (GstPad * pad, GstQuery * query);
+//static gboolean gst_mpeg2dec_sink_query (GstPad * pad, GstObject * parent, GstQuery * query);
#if 0
static const GstFormat *gst_mpeg2dec_get_formats (GstPad * pad);
}
static gboolean
-gst_mpeg2dec_src_query (GstPad * pad, GstQuery * query)
+gst_mpeg2dec_src_query (GstPad * pad, GstObject * parent, GstQuery * query)
{
gboolean res = TRUE;
GstMpeg2dec *mpeg2dec;
- mpeg2dec = GST_MPEG2DEC (GST_PAD_PARENT (pad));
+ mpeg2dec = GST_MPEG2DEC (parent);
switch (GST_QUERY_TYPE (query)) {
case GST_QUERY_POSITION:
GstFormat format;
GstFormat rformat;
gint64 total, total_bytes;
- GstPad *peer;
-
- if ((peer = gst_pad_get_peer (mpeg2dec->sinkpad)) == NULL)
- goto error;
/* save requested format */
gst_query_parse_duration (query, &format, NULL);
/* send to peer */
- if ((res = gst_pad_query (peer, query))) {
- gst_object_unref (peer);
+ if ((res = gst_pad_peer_query (mpeg2dec->sinkpad, query))) {
goto done;
} else {
GST_LOG_OBJECT (mpeg2dec, "query on peer pad failed, trying bytes");
/* query peer for total length in bytes */
gst_query_set_duration (query, GST_FORMAT_BYTES, -1);
- if (!(res = gst_pad_query (peer, query))) {
+ if (!(res = gst_pad_peer_query (mpeg2dec->sinkpad, query))) {
GST_LOG_OBJECT (mpeg2dec, "query on peer pad failed");
- gst_object_unref (peer);
goto error;
}
- gst_object_unref (peer);
/* get the returned format */
gst_query_parse_duration (query, &rformat, &total_bytes);
break;
}
default:
- res = gst_pad_query_default (pad, query);
+ res = gst_pad_query_default (pad, parent, query);
break;
}
done:
static gboolean gst_siddec_src_convert (GstPad * pad, GstFormat src_format,
gint64 src_value, GstFormat * dest_format, gint64 * dest_value);
static gboolean gst_siddec_src_event (GstPad * pad, GstEvent * event);
-static gboolean gst_siddec_src_query (GstPad * pad, GstQuery * query);
+static gboolean gst_siddec_src_query (GstPad * pad, GstObject * parent, GstQuery * query);
static void gst_siddec_get_property (GObject * object, guint prop_id,
GValue * value, GParamSpec * pspec);
}
static gboolean
-gst_siddec_src_query (GstPad * pad, GstQuery * query)
+gst_siddec_src_query (GstPad * pad, GstObject * parent, GstQuery * query)
{
gboolean res = TRUE;
GstSidDec *siddec;
- siddec = GST_SIDDEC (gst_pad_get_parent (pad));
+ siddec = GST_SIDDEC (parent);
switch (GST_QUERY_TYPE (query)) {
case GST_QUERY_POSITION:
break;
}
default:
- res = gst_pad_query_default (pad, query);
+ res = gst_pad_query_default (pad, parent, query);
break;
}
- gst_object_unref (siddec);
return res;
}
static gboolean gst_x264_enc_sink_set_caps (GstPad * pad, GstCaps * caps);
static GstCaps *gst_x264_enc_sink_get_caps (GstPad * pad, GstCaps * filter);
static gboolean gst_x264_enc_sink_event (GstPad * pad, GstEvent * event);
-static gboolean gst_x264_enc_sink_query (GstPad * pad, GstQuery * query);
+static gboolean gst_x264_enc_sink_query (GstPad * pad, GstObject * parent,
+ GstQuery * query);
static gboolean gst_x264_enc_src_event (GstPad * pad, GstEvent * event);
static GstFlowReturn gst_x264_enc_chain (GstPad * pad, GstBuffer * buf);
static void gst_x264_enc_flush_frames (GstX264Enc * encoder, gboolean send);
}
static gboolean
-gst_x264_enc_sink_query (GstPad * pad, GstQuery * query)
+gst_x264_enc_sink_query (GstPad * pad, GstObject * parent, GstQuery * query)
{
gboolean ret = FALSE;
- GstX264Enc *encoder;
-
- encoder = GST_X264_ENC (gst_pad_get_parent (pad));
switch (GST_QUERY_TYPE (query)) {
case GST_QUERY_CAPS:
break;
}
default:
- ret = gst_pad_query_default (pad, query);
+ ret = gst_pad_query_default (pad, parent, query);
break;
}
- gst_object_unref (encoder);
return ret;
}
GstEvent * event);
static gboolean gst_asf_demux_send_event_unlocked (GstASFDemux * demux,
GstEvent * event);
-static gboolean gst_asf_demux_handle_src_query (GstPad * pad, GstQuery * query);
+static gboolean gst_asf_demux_handle_src_query (GstPad * pad,
+ GstObject * parent, GstQuery * query);
static GstFlowReturn gst_asf_demux_chain (GstPad * pad, GstBuffer * buf);
static gboolean gst_asf_demux_sink_event (GstPad * pad, GstEvent * event);
static GstFlowReturn gst_asf_demux_process_object (GstASFDemux * demux,
}
static gboolean
-gst_asf_demux_handle_src_query (GstPad * pad, GstQuery * query)
+gst_asf_demux_handle_src_query (GstPad * pad, GstObject * parent,
+ GstQuery * query)
{
GstASFDemux *demux;
gboolean res = FALSE;
- demux = GST_ASF_DEMUX (gst_pad_get_parent (pad));
+ demux = GST_ASF_DEMUX (parent);
GST_DEBUG ("handling %s query",
gst_query_type_get_name (GST_QUERY_TYPE (query)));
gboolean seekable;
/* try downstream first in TIME */
- res = gst_pad_query_default (pad, query);
+ res = gst_pad_query_default (pad, parent, query);
gst_query_parse_seeking (query, &fmt, &seekable, NULL, NULL);
GST_LOG_OBJECT (demux, "upstream %s seekable %d",
* but we might end up in a live (rtsp) one ... */
/* first forward */
- res = gst_pad_query_default (pad, query);
+ res = gst_pad_query_default (pad, parent, query);
if (!res)
break;
break;
}
default:
- res = gst_pad_query_default (pad, query);
+ res = gst_pad_query_default (pad, parent, query);
break;
}
- gst_object_unref (demux);
return res;
}
static GstFlowReturn gst_real_audio_demux_chain (GstPad * pad, GstBuffer * buf);
static gboolean gst_real_audio_demux_sink_event (GstPad * pad, GstEvent * ev);
static gboolean gst_real_audio_demux_src_event (GstPad * pad, GstEvent * ev);
-static gboolean gst_real_audio_demux_src_query (GstPad * pad, GstQuery * query);
+static gboolean gst_real_audio_demux_src_query (GstPad * pad,
+ GstObject * parent, GstQuery * query);
static void gst_real_audio_demux_loop (GstRealAudioDemux * demux);
static gboolean gst_real_audio_demux_sink_activate (GstPad * sinkpad);
static gboolean gst_real_audio_demux_sink_activate_push (GstPad * sinkpad,
}
static gboolean
-gst_real_audio_demux_src_query (GstPad * pad, GstQuery * query)
+gst_real_audio_demux_src_query (GstPad * pad, GstObject * parent,
+ GstQuery * query)
{
GstRealAudioDemux *demux;
gboolean ret = FALSE;
- demux = GST_REAL_AUDIO_DEMUX (gst_pad_get_parent (pad));
+ demux = GST_REAL_AUDIO_DEMUX (parent);
switch (GST_QUERY_TYPE (query)) {
case GST_QUERY_DURATION:{
break;
}
default:
- ret = gst_pad_query_default (pad, query);
+ ret = gst_pad_query_default (pad, parent, query);
break;
}
- gst_object_unref (demux);
return ret;
}
static void gst_rdt_manager_get_property (GObject * object,
guint prop_id, GValue * value, GParamSpec * pspec);
-static gboolean gst_rdt_manager_query_src (GstPad * pad, GstQuery * query);
+static gboolean gst_rdt_manager_query_src (GstPad * pad, GstObject * parent,
+ GstQuery * query);
static gboolean gst_rdt_manager_src_activate_push (GstPad * pad,
gboolean active);
}
static gboolean
-gst_rdt_manager_query_src (GstPad * pad, GstQuery * query)
+gst_rdt_manager_query_src (GstPad * pad, GstObject * parent, GstQuery * query)
{
GstRDTManager *rdtmanager;
gboolean res;
- rdtmanager = GST_RDT_MANAGER (GST_PAD_PARENT (pad));
+ rdtmanager = GST_RDT_MANAGER (parent);
switch (GST_QUERY_TYPE (query)) {
case GST_QUERY_LATENCY:
break;
}
default:
- res = gst_pad_query_default (pad, query);
+ res = gst_pad_query_default (pad, parent, query);
break;
}
return res;
static gboolean gst_rmdemux_sink_event (GstPad * pad, GstEvent * event);
static gboolean gst_rmdemux_src_event (GstPad * pad, GstEvent * event);
static void gst_rmdemux_send_event (GstRMDemux * rmdemux, GstEvent * event);
-static gboolean gst_rmdemux_src_query (GstPad * pad, GstQuery * query);
+static gboolean gst_rmdemux_src_query (GstPad * pad, GstObject * parent,
+ GstQuery * query);
static gboolean gst_rmdemux_perform_seek (GstRMDemux * rmdemux,
GstEvent * event);
static gboolean
-gst_rmdemux_src_query (GstPad * pad, GstQuery * query)
+gst_rmdemux_src_query (GstPad * pad, GstObject * parent, GstQuery * query)
{
gboolean res = FALSE;
GstRMDemux *rmdemux;
- rmdemux = GST_RMDEMUX (gst_pad_get_parent (pad));
+ rmdemux = GST_RMDEMUX (parent);
switch (GST_QUERY_TYPE (query)) {
case GST_QUERY_POSITION:
break;
}
default:
- res = gst_pad_query_default (pad, query);
+ res = gst_pad_query_default (pad, parent, query);
break;
}
- gst_object_unref (rmdemux);
return res;
}