mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-10-03 09:12:19 +00:00
add parent to pad functions
This commit is contained in:
parent
2711109c13
commit
940de5b195
11 changed files with 169 additions and 178 deletions
|
@ -97,12 +97,17 @@ static GstCaps *gst_ass_render_getcaps (GstPad * pad, GstCaps * filter);
|
|||
static gboolean gst_ass_render_setcaps_video (GstPad * pad, GstCaps * caps);
|
||||
static gboolean gst_ass_render_setcaps_text (GstPad * pad, GstCaps * caps);
|
||||
|
||||
static GstFlowReturn gst_ass_render_chain_video (GstPad * pad, GstBuffer * buf);
|
||||
static GstFlowReturn gst_ass_render_chain_text (GstPad * pad, GstBuffer * buf);
|
||||
static GstFlowReturn gst_ass_render_chain_video (GstPad * pad,
|
||||
GstObject * parent, GstBuffer * buf);
|
||||
static GstFlowReturn gst_ass_render_chain_text (GstPad * pad,
|
||||
GstObject * parent, GstBuffer * buf);
|
||||
|
||||
static gboolean gst_ass_render_event_video (GstPad * pad, GstEvent * event);
|
||||
static gboolean gst_ass_render_event_text (GstPad * pad, GstEvent * event);
|
||||
static gboolean gst_ass_render_event_src (GstPad * pad, GstEvent * event);
|
||||
static gboolean gst_ass_render_event_video (GstPad * pad, GstObject * parent,
|
||||
GstEvent * event);
|
||||
static gboolean gst_ass_render_event_text (GstPad * pad, GstObject * parent,
|
||||
GstEvent * event);
|
||||
static gboolean gst_ass_render_event_src (GstPad * pad, GstObject * parent,
|
||||
GstEvent * event);
|
||||
|
||||
static gboolean gst_ass_render_query_video (GstPad * pad, GstObject * parent,
|
||||
GstQuery * query);
|
||||
|
@ -377,9 +382,9 @@ gst_ass_render_query_src (GstPad * pad, GstObject * parent, GstQuery * query)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
gst_ass_render_event_src (GstPad * pad, GstEvent * event)
|
||||
gst_ass_render_event_src (GstPad * pad, GstObject * parent, GstEvent * event)
|
||||
{
|
||||
GstAssRender *render = GST_ASS_RENDER (gst_pad_get_parent (pad));
|
||||
GstAssRender *render = GST_ASS_RENDER (parent);
|
||||
gboolean ret = FALSE;
|
||||
|
||||
switch (GST_EVENT_TYPE (event)) {
|
||||
|
@ -420,8 +425,6 @@ gst_ass_render_event_src (GstPad * pad, GstEvent * event)
|
|||
break;
|
||||
}
|
||||
|
||||
gst_object_unref (render);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -903,9 +906,10 @@ gst_ass_render_process_text (GstAssRender * render, GstBuffer * buffer,
|
|||
}
|
||||
|
||||
static GstFlowReturn
|
||||
gst_ass_render_chain_video (GstPad * pad, GstBuffer * buffer)
|
||||
gst_ass_render_chain_video (GstPad * pad, GstObject * parent,
|
||||
GstBuffer * buffer)
|
||||
{
|
||||
GstAssRender *render = GST_ASS_RENDER (GST_PAD_PARENT (pad));
|
||||
GstAssRender *render = GST_ASS_RENDER (parent);
|
||||
GstFlowReturn ret = GST_FLOW_OK;
|
||||
gboolean in_seg = FALSE;
|
||||
guint64 start, stop, clip_start = 0, clip_stop = 0;
|
||||
|
@ -1044,10 +1048,10 @@ out_of_segment:
|
|||
}
|
||||
|
||||
static GstFlowReturn
|
||||
gst_ass_render_chain_text (GstPad * pad, GstBuffer * buffer)
|
||||
gst_ass_render_chain_text (GstPad * pad, GstObject * parent, GstBuffer * buffer)
|
||||
{
|
||||
GstFlowReturn ret = GST_FLOW_OK;
|
||||
GstAssRender *render = GST_ASS_RENDER (GST_PAD_PARENT (pad));
|
||||
GstAssRender *render = GST_ASS_RENDER (parent);
|
||||
GstClockTime timestamp, duration;
|
||||
GstClockTime sub_running_time, vid_running_time;
|
||||
GstClockTime sub_running_time_end;
|
||||
|
@ -1220,10 +1224,10 @@ gst_ass_render_handle_tags (GstAssRender * render, GstTagList * taglist)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
gst_ass_render_event_video (GstPad * pad, GstEvent * event)
|
||||
gst_ass_render_event_video (GstPad * pad, GstObject * parent, GstEvent * event)
|
||||
{
|
||||
gboolean ret = FALSE;
|
||||
GstAssRender *render = GST_ASS_RENDER (gst_pad_get_parent (pad));
|
||||
GstAssRender *render = GST_ASS_RENDER (parent);
|
||||
|
||||
GST_DEBUG_OBJECT (pad, "received video event %s",
|
||||
GST_EVENT_TYPE_NAME (event));
|
||||
|
@ -1282,8 +1286,6 @@ gst_ass_render_event_video (GstPad * pad, GstEvent * event)
|
|||
break;
|
||||
}
|
||||
|
||||
gst_object_unref (render);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -1313,11 +1315,11 @@ gst_ass_render_query_video (GstPad * pad, GstObject * parent, GstQuery * query)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
gst_ass_render_event_text (GstPad * pad, GstEvent * event)
|
||||
gst_ass_render_event_text (GstPad * pad, GstObject * parent, GstEvent * event)
|
||||
{
|
||||
gint i;
|
||||
gboolean ret = FALSE;
|
||||
GstAssRender *render = GST_ASS_RENDER (gst_pad_get_parent (pad));
|
||||
GstAssRender *render = GST_ASS_RENDER (parent);
|
||||
|
||||
GST_DEBUG_OBJECT (pad, "received text event %s", GST_EVENT_TYPE_NAME (event));
|
||||
|
||||
|
@ -1411,8 +1413,6 @@ gst_ass_render_event_text (GstPad * pad, GstEvent * event)
|
|||
break;
|
||||
}
|
||||
|
||||
gst_object_unref (render);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
@ -204,11 +204,12 @@ static gboolean gst_signal_processor_sink_activate_push (GstPad * pad,
|
|||
static GstStateChangeReturn gst_signal_processor_change_state (GstElement *
|
||||
element, GstStateChange transition);
|
||||
|
||||
static gboolean gst_signal_processor_event (GstPad * pad, GstEvent * event);
|
||||
static gboolean gst_signal_processor_event (GstPad * pad, GstObject * parent,
|
||||
GstEvent * event);
|
||||
static GstFlowReturn gst_signal_processor_getrange (GstPad * pad,
|
||||
guint64 offset, guint length, GstBuffer ** buffer);
|
||||
GstObject * parent, guint64 offset, guint length, GstBuffer ** buffer);
|
||||
static GstFlowReturn gst_signal_processor_chain (GstPad * pad,
|
||||
GstBuffer * buffer);
|
||||
GstObject * parent, GstBuffer * buffer);
|
||||
static gboolean gst_signal_processor_setcaps (GstPad * pad, GstCaps * caps);
|
||||
|
||||
|
||||
|
@ -583,13 +584,13 @@ gst_signal_processor_interleave_group (GstSignalProcessorGroup * group,
|
|||
}
|
||||
|
||||
static gboolean
|
||||
gst_signal_processor_event (GstPad * pad, GstEvent * event)
|
||||
gst_signal_processor_event (GstPad * pad, GstObject * parent, GstEvent * event)
|
||||
{
|
||||
GstSignalProcessor *self;
|
||||
GstSignalProcessorClass *bclass;
|
||||
gboolean ret;
|
||||
|
||||
self = GST_SIGNAL_PROCESSOR (gst_pad_get_parent (pad));
|
||||
self = GST_SIGNAL_PROCESSOR (parent);
|
||||
bclass = GST_SIGNAL_PROCESSOR_GET_CLASS (self);
|
||||
|
||||
GST_DEBUG_OBJECT (pad, "got event %s", GST_EVENT_TYPE_NAME (event));
|
||||
|
@ -611,20 +612,18 @@ gst_signal_processor_event (GstPad * pad, GstEvent * event)
|
|||
break;
|
||||
}
|
||||
case GST_EVENT_FLUSH_START:
|
||||
ret = gst_pad_event_default (pad, event);
|
||||
ret = gst_pad_event_default (pad, parent, event);
|
||||
break;
|
||||
case GST_EVENT_FLUSH_STOP:
|
||||
/* clear errors now */
|
||||
self->flow_state = GST_FLOW_OK;
|
||||
ret = gst_pad_event_default (pad, event);
|
||||
ret = gst_pad_event_default (pad, parent, event);
|
||||
break;
|
||||
default:
|
||||
ret = gst_pad_event_default (pad, event);
|
||||
ret = gst_pad_event_default (pad, parent, event);
|
||||
break;
|
||||
}
|
||||
|
||||
gst_object_unref (self);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -967,14 +966,14 @@ gst_signal_processor_do_pulls (GstSignalProcessor * self, guint nframes)
|
|||
}
|
||||
|
||||
static GstFlowReturn
|
||||
gst_signal_processor_getrange (GstPad * pad, guint64 offset,
|
||||
gst_signal_processor_getrange (GstPad * pad, GstObject * parent, guint64 offset,
|
||||
guint length, GstBuffer ** buffer)
|
||||
{
|
||||
GstSignalProcessor *self;
|
||||
GstSignalProcessorPad *spad = (GstSignalProcessorPad *) pad;
|
||||
GstFlowReturn ret = GST_FLOW_ERROR;
|
||||
|
||||
self = GST_SIGNAL_PROCESSOR (gst_pad_get_parent (pad));
|
||||
self = GST_SIGNAL_PROCESSOR (parent);
|
||||
|
||||
if (spad->pen) {
|
||||
*buffer = spad->pen;
|
||||
|
@ -998,8 +997,6 @@ gst_signal_processor_getrange (GstPad * pad, guint64 offset,
|
|||
|
||||
GST_DEBUG_OBJECT (self, "returns %s", gst_flow_get_name (ret));
|
||||
|
||||
gst_object_unref (self);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -1046,11 +1043,12 @@ gst_signal_processor_do_pushes (GstSignalProcessor * self)
|
|||
}
|
||||
|
||||
static GstFlowReturn
|
||||
gst_signal_processor_chain (GstPad * pad, GstBuffer * buffer)
|
||||
gst_signal_processor_chain (GstPad * pad, GstObject * parent,
|
||||
GstBuffer * buffer)
|
||||
{
|
||||
GstSignalProcessor *self;
|
||||
|
||||
self = GST_SIGNAL_PROCESSOR (gst_pad_get_parent (pad));
|
||||
self = GST_SIGNAL_PROCESSOR (parent);
|
||||
|
||||
GST_LOG_OBJECT (self, "chain(%s:%s, %p) : p_in=%u, p_out=%u",
|
||||
GST_DEBUG_PAD_NAME (pad), buffer, self->pending_in, self->pending_out);
|
||||
|
@ -1062,8 +1060,6 @@ gst_signal_processor_chain (GstPad * pad, GstBuffer * buffer)
|
|||
gst_signal_processor_do_pushes (self);
|
||||
}
|
||||
|
||||
gst_object_unref (self);
|
||||
|
||||
return self->flow_state;
|
||||
}
|
||||
|
||||
|
|
|
@ -140,11 +140,11 @@ static void gst_base_video_decoder_finalize (GObject * object);
|
|||
static gboolean gst_base_video_decoder_setcaps (GstBaseVideoDecoder * vdec,
|
||||
GstCaps * caps);
|
||||
static gboolean gst_base_video_decoder_sink_event (GstPad * pad,
|
||||
GstEvent * event);
|
||||
GstObject * parent, GstEvent * event);
|
||||
static gboolean gst_base_video_decoder_src_event (GstPad * pad,
|
||||
GstEvent * event);
|
||||
GstObject * parent, GstEvent * event);
|
||||
static GstFlowReturn gst_base_video_decoder_chain (GstPad * pad,
|
||||
GstBuffer * buf);
|
||||
GstObject * parent, GstBuffer * buf);
|
||||
static gboolean gst_base_video_decoder_sink_query (GstPad * pad,
|
||||
GstObject * parent, GstQuery * query);
|
||||
static GstStateChangeReturn gst_base_video_decoder_change_state (GstElement *
|
||||
|
@ -308,8 +308,8 @@ gst_base_video_decoder_setcaps (GstBaseVideoDecoder * base_video_decoder,
|
|||
}
|
||||
|
||||
if (ret) {
|
||||
gst_buffer_replace (&GST_BASE_VIDEO_CODEC (base_video_decoder)->state.
|
||||
codec_data, NULL);
|
||||
gst_buffer_replace (&GST_BASE_VIDEO_CODEC (base_video_decoder)->
|
||||
state.codec_data, NULL);
|
||||
gst_caps_replace (&GST_BASE_VIDEO_CODEC (base_video_decoder)->state.caps,
|
||||
NULL);
|
||||
GST_BASE_VIDEO_CODEC (base_video_decoder)->state = state;
|
||||
|
@ -387,13 +387,14 @@ gst_base_video_decoder_flush (GstBaseVideoDecoder * dec, gboolean hard)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
gst_base_video_decoder_sink_event (GstPad * pad, GstEvent * event)
|
||||
gst_base_video_decoder_sink_event (GstPad * pad, GstObject * parent,
|
||||
GstEvent * event)
|
||||
{
|
||||
GstBaseVideoDecoder *base_video_decoder;
|
||||
GstBaseVideoDecoderClass *base_video_decoder_class;
|
||||
gboolean ret = FALSE;
|
||||
|
||||
base_video_decoder = GST_BASE_VIDEO_DECODER (gst_pad_get_parent (pad));
|
||||
base_video_decoder = GST_BASE_VIDEO_DECODER (parent);
|
||||
base_video_decoder_class =
|
||||
GST_BASE_VIDEO_DECODER_GET_CLASS (base_video_decoder);
|
||||
|
||||
|
@ -499,7 +500,6 @@ gst_base_video_decoder_sink_event (GstPad * pad, GstEvent * event)
|
|||
}
|
||||
|
||||
done:
|
||||
gst_object_unref (base_video_decoder);
|
||||
return ret;
|
||||
|
||||
newseg_wrong_format:
|
||||
|
@ -580,12 +580,13 @@ gst_base_video_decoder_do_seek (GstBaseVideoDecoder * dec, GstEvent * event)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
gst_base_video_decoder_src_event (GstPad * pad, GstEvent * event)
|
||||
gst_base_video_decoder_src_event (GstPad * pad, GstObject * parent,
|
||||
GstEvent * event)
|
||||
{
|
||||
GstBaseVideoDecoder *base_video_decoder;
|
||||
gboolean res = FALSE;
|
||||
|
||||
base_video_decoder = GST_BASE_VIDEO_DECODER (gst_pad_get_parent (pad));
|
||||
base_video_decoder = GST_BASE_VIDEO_DECODER (parent);
|
||||
|
||||
GST_DEBUG_OBJECT (base_video_decoder,
|
||||
"received event %d, %s", GST_EVENT_TYPE (event),
|
||||
|
@ -686,7 +687,6 @@ gst_base_video_decoder_src_event (GstPad * pad, GstEvent * event)
|
|||
break;
|
||||
}
|
||||
done:
|
||||
gst_object_unref (base_video_decoder);
|
||||
return res;
|
||||
|
||||
convert_error:
|
||||
|
@ -1207,12 +1207,12 @@ gst_base_video_decoder_chain_reverse (GstBaseVideoDecoder * dec,
|
|||
}
|
||||
|
||||
static GstFlowReturn
|
||||
gst_base_video_decoder_chain (GstPad * pad, GstBuffer * buf)
|
||||
gst_base_video_decoder_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
|
||||
{
|
||||
GstBaseVideoDecoder *base_video_decoder;
|
||||
GstFlowReturn ret = GST_FLOW_OK;
|
||||
|
||||
base_video_decoder = GST_BASE_VIDEO_DECODER (GST_PAD_PARENT (pad));
|
||||
base_video_decoder = GST_BASE_VIDEO_DECODER (parent);
|
||||
|
||||
GST_LOG_OBJECT (base_video_decoder,
|
||||
"chain %" GST_TIME_FORMAT " duration %" GST_TIME_FORMAT " size %d",
|
||||
|
|
|
@ -118,13 +118,13 @@ static void gst_base_video_encoder_finalize (GObject * object);
|
|||
static GstCaps *gst_base_video_encoder_sink_getcaps (GstPad * pad,
|
||||
GstCaps * filter);
|
||||
static gboolean gst_base_video_encoder_src_event (GstPad * pad,
|
||||
GstEvent * event);
|
||||
GstObject * parent, GstEvent * event);
|
||||
static gboolean gst_base_video_encoder_sink_event (GstPad * pad,
|
||||
GstEvent * event);
|
||||
GstObject * parent, GstEvent * event);
|
||||
static gboolean gst_base_video_encoder_sink_query (GstPad * pad,
|
||||
GstObject * parent, GstQuery * query);
|
||||
static GstFlowReturn gst_base_video_encoder_chain (GstPad * pad,
|
||||
GstBuffer * buf);
|
||||
GstObject * parent, GstBuffer * buf);
|
||||
static GstStateChangeReturn gst_base_video_encoder_change_state (GstElement *
|
||||
element, GstStateChange transition);
|
||||
static gboolean gst_base_video_encoder_src_query (GstPad * pad,
|
||||
|
@ -132,8 +132,7 @@ static gboolean gst_base_video_encoder_src_query (GstPad * pad,
|
|||
|
||||
#define gst_base_video_encoder_parent_class parent_class
|
||||
G_DEFINE_TYPE_WITH_CODE (GstBaseVideoEncoder, gst_base_video_encoder,
|
||||
GST_TYPE_BASE_VIDEO_CODEC, G_IMPLEMENT_INTERFACE (GST_TYPE_PRESET, NULL);
|
||||
);
|
||||
GST_TYPE_BASE_VIDEO_CODEC, G_IMPLEMENT_INTERFACE (GST_TYPE_PRESET, NULL););
|
||||
|
||||
static void
|
||||
gst_base_video_encoder_class_init (GstBaseVideoEncoderClass * klass)
|
||||
|
@ -546,14 +545,15 @@ gst_base_video_encoder_sink_eventfunc (GstBaseVideoEncoder * base_video_encoder,
|
|||
}
|
||||
|
||||
static gboolean
|
||||
gst_base_video_encoder_sink_event (GstPad * pad, GstEvent * event)
|
||||
gst_base_video_encoder_sink_event (GstPad * pad, GstObject * parent,
|
||||
GstEvent * event)
|
||||
{
|
||||
GstBaseVideoEncoder *enc;
|
||||
GstBaseVideoEncoderClass *klass;
|
||||
gboolean handled = FALSE;
|
||||
gboolean ret = TRUE;
|
||||
|
||||
enc = GST_BASE_VIDEO_ENCODER (gst_pad_get_parent (pad));
|
||||
enc = GST_BASE_VIDEO_ENCODER (parent);
|
||||
klass = GST_BASE_VIDEO_ENCODER_GET_CLASS (enc);
|
||||
|
||||
GST_DEBUG_OBJECT (enc, "received event %d, %s", GST_EVENT_TYPE (event),
|
||||
|
@ -591,17 +591,17 @@ gst_base_video_encoder_sink_event (GstPad * pad, GstEvent * event)
|
|||
|
||||
GST_DEBUG_OBJECT (enc, "event handled");
|
||||
|
||||
gst_object_unref (enc);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gst_base_video_encoder_src_event (GstPad * pad, GstEvent * event)
|
||||
gst_base_video_encoder_src_event (GstPad * pad, GstObject * parent,
|
||||
GstEvent * event)
|
||||
{
|
||||
GstBaseVideoEncoder *base_video_encoder;
|
||||
gboolean ret = FALSE;
|
||||
|
||||
base_video_encoder = GST_BASE_VIDEO_ENCODER (gst_pad_get_parent (pad));
|
||||
base_video_encoder = GST_BASE_VIDEO_ENCODER (parent);
|
||||
|
||||
GST_LOG_OBJECT (base_video_encoder, "handling event: %" GST_PTR_FORMAT,
|
||||
event);
|
||||
|
@ -634,7 +634,6 @@ gst_base_video_encoder_src_event (GstPad * pad, GstEvent * event)
|
|||
break;
|
||||
}
|
||||
|
||||
gst_object_unref (base_video_encoder);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -701,14 +700,14 @@ error:
|
|||
}
|
||||
|
||||
static GstFlowReturn
|
||||
gst_base_video_encoder_chain (GstPad * pad, GstBuffer * buf)
|
||||
gst_base_video_encoder_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
|
||||
{
|
||||
GstBaseVideoEncoder *base_video_encoder;
|
||||
GstBaseVideoEncoderClass *klass;
|
||||
GstVideoFrameState *frame;
|
||||
GstFlowReturn ret = GST_FLOW_OK;
|
||||
|
||||
base_video_encoder = GST_BASE_VIDEO_ENCODER (gst_pad_get_parent (pad));
|
||||
base_video_encoder = GST_BASE_VIDEO_ENCODER (parent);
|
||||
klass = GST_BASE_VIDEO_ENCODER_GET_CLASS (base_video_encoder);
|
||||
|
||||
g_return_val_if_fail (klass->handle_frame != NULL, GST_FLOW_ERROR);
|
||||
|
@ -773,8 +772,6 @@ gst_base_video_encoder_chain (GstPad * pad, GstBuffer * buf)
|
|||
done:
|
||||
GST_BASE_VIDEO_CODEC_STREAM_UNLOCK (base_video_encoder);
|
||||
|
||||
g_object_unref (base_video_encoder);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
@ -69,12 +69,12 @@ static gboolean gst_base_audio_visualizer_sink_setcaps (GstBaseAudioVisualizer *
|
|||
scope, GstCaps * caps);
|
||||
|
||||
static GstFlowReturn gst_base_audio_visualizer_chain (GstPad * pad,
|
||||
GstBuffer * buffer);
|
||||
GstObject * parent, GstBuffer * buffer);
|
||||
|
||||
static gboolean gst_base_audio_visualizer_src_event (GstPad * pad,
|
||||
GstEvent * event);
|
||||
GstObject * parent, GstEvent * event);
|
||||
static gboolean gst_base_audio_visualizer_sink_event (GstPad * pad,
|
||||
GstEvent * event);
|
||||
GstObject * parent, GstEvent * event);
|
||||
|
||||
static gboolean gst_base_audio_visualizer_src_query (GstPad * pad,
|
||||
GstObject * parent, GstQuery * query);
|
||||
|
@ -783,7 +783,8 @@ gst_base_audio_visualizer_ensure_negotiated (GstBaseAudioVisualizer * scope)
|
|||
}
|
||||
|
||||
static GstFlowReturn
|
||||
gst_base_audio_visualizer_chain (GstPad * pad, GstBuffer * buffer)
|
||||
gst_base_audio_visualizer_chain (GstPad * pad, GstObject * parent,
|
||||
GstBuffer * buffer)
|
||||
{
|
||||
GstFlowReturn ret = GST_FLOW_OK;
|
||||
GstBaseAudioVisualizer *scope;
|
||||
|
@ -795,7 +796,7 @@ gst_base_audio_visualizer_chain (GstPad * pad, GstBuffer * buffer)
|
|||
gboolean (*render) (GstBaseAudioVisualizer * scope, GstBuffer * audio,
|
||||
GstBuffer * video);
|
||||
|
||||
scope = GST_BASE_AUDIO_VISUALIZER (gst_pad_get_parent (pad));
|
||||
scope = GST_BASE_AUDIO_VISUALIZER (parent);
|
||||
klass = GST_BASE_AUDIO_VISUALIZER_CLASS (G_OBJECT_GET_CLASS (scope));
|
||||
|
||||
render = klass->render;
|
||||
|
@ -937,18 +938,17 @@ gst_base_audio_visualizer_chain (GstPad * pad, GstBuffer * buffer)
|
|||
g_mutex_unlock (scope->config_lock);
|
||||
|
||||
beach:
|
||||
gst_object_unref (scope);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gst_base_audio_visualizer_src_event (GstPad * pad, GstEvent * event)
|
||||
gst_base_audio_visualizer_src_event (GstPad * pad, GstObject * parent,
|
||||
GstEvent * event)
|
||||
{
|
||||
gboolean res;
|
||||
GstBaseAudioVisualizer *scope;
|
||||
|
||||
scope = GST_BASE_AUDIO_VISUALIZER (gst_pad_get_parent (pad));
|
||||
scope = GST_BASE_AUDIO_VISUALIZER (parent);
|
||||
|
||||
switch (GST_EVENT_TYPE (event)) {
|
||||
case GST_EVENT_QOS:
|
||||
|
@ -977,18 +977,18 @@ gst_base_audio_visualizer_src_event (GstPad * pad, GstEvent * event)
|
|||
res = gst_pad_push_event (scope->sinkpad, event);
|
||||
break;
|
||||
}
|
||||
gst_object_unref (scope);
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gst_base_audio_visualizer_sink_event (GstPad * pad, GstEvent * event)
|
||||
gst_base_audio_visualizer_sink_event (GstPad * pad, GstObject * parent,
|
||||
GstEvent * event)
|
||||
{
|
||||
gboolean res;
|
||||
GstBaseAudioVisualizer *scope;
|
||||
|
||||
scope = GST_BASE_AUDIO_VISUALIZER (gst_pad_get_parent (pad));
|
||||
scope = GST_BASE_AUDIO_VISUALIZER (parent);
|
||||
|
||||
switch (GST_EVENT_TYPE (event)) {
|
||||
case GST_EVENT_CAPS:
|
||||
|
@ -1020,7 +1020,6 @@ gst_base_audio_visualizer_sink_event (GstPad * pad, GstEvent * event)
|
|||
res = gst_pad_push_event (scope->srcpad, event);
|
||||
break;
|
||||
}
|
||||
gst_object_unref (scope);
|
||||
|
||||
return res;
|
||||
}
|
||||
|
|
|
@ -97,13 +97,16 @@ G_DEFINE_TYPE (GstDVBSubOverlay, gst_dvbsub_overlay, GST_TYPE_ELEMENT);
|
|||
static GstCaps *gst_dvbsub_overlay_getcaps (GstPad * pad, GstCaps * filter);
|
||||
|
||||
static GstFlowReturn gst_dvbsub_overlay_chain_video (GstPad * pad,
|
||||
GstBuffer * buf);
|
||||
GstObject * parent, GstBuffer * buf);
|
||||
static GstFlowReturn gst_dvbsub_overlay_chain_text (GstPad * pad,
|
||||
GstBuffer * buf);
|
||||
GstObject * parent, GstBuffer * buf);
|
||||
|
||||
static gboolean gst_dvbsub_overlay_event_video (GstPad * pad, GstEvent * event);
|
||||
static gboolean gst_dvbsub_overlay_event_text (GstPad * pad, GstEvent * event);
|
||||
static gboolean gst_dvbsub_overlay_event_src (GstPad * pad, GstEvent * event);
|
||||
static gboolean gst_dvbsub_overlay_event_video (GstPad * pad,
|
||||
GstObject * parent, GstEvent * event);
|
||||
static gboolean gst_dvbsub_overlay_event_text (GstPad * pad, GstObject * parent,
|
||||
GstEvent * event);
|
||||
static gboolean gst_dvbsub_overlay_event_src (GstPad * pad, GstObject * parent,
|
||||
GstEvent * event);
|
||||
|
||||
static void new_dvb_subtitles_cb (DvbSub * dvb_sub, DVBSubtitles * subs,
|
||||
gpointer user_data);
|
||||
|
@ -353,9 +356,10 @@ gst_dvbsub_overlay_query_src (GstPad * pad, GstObject * parent,
|
|||
}
|
||||
|
||||
static gboolean
|
||||
gst_dvbsub_overlay_event_src (GstPad * pad, GstEvent * event)
|
||||
gst_dvbsub_overlay_event_src (GstPad * pad, GstObject * parent,
|
||||
GstEvent * event)
|
||||
{
|
||||
GstDVBSubOverlay *render = GST_DVBSUB_OVERLAY (gst_pad_get_parent (pad));
|
||||
GstDVBSubOverlay *render = GST_DVBSUB_OVERLAY (parent);
|
||||
gboolean ret = FALSE;
|
||||
|
||||
switch (GST_EVENT_TYPE (event)) {
|
||||
|
@ -389,8 +393,6 @@ gst_dvbsub_overlay_event_src (GstPad * pad, GstEvent * event)
|
|||
break;
|
||||
}
|
||||
|
||||
gst_object_unref (render);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -740,9 +742,10 @@ new_dvb_subtitles_cb (DvbSub * dvb_sub, DVBSubtitles * subs, gpointer user_data)
|
|||
}
|
||||
|
||||
static GstFlowReturn
|
||||
gst_dvbsub_overlay_chain_text (GstPad * pad, GstBuffer * buffer)
|
||||
gst_dvbsub_overlay_chain_text (GstPad * pad, GstObject * parent,
|
||||
GstBuffer * buffer)
|
||||
{
|
||||
GstDVBSubOverlay *overlay = GST_DVBSUB_OVERLAY (GST_PAD_PARENT (pad));
|
||||
GstDVBSubOverlay *overlay = GST_DVBSUB_OVERLAY (parent);
|
||||
GstClockTime sub_running_time;
|
||||
|
||||
GST_INFO_OBJECT (overlay, "subpicture/x-dvb buffer with size %u",
|
||||
|
@ -785,9 +788,10 @@ gst_dvbsub_overlay_chain_text (GstPad * pad, GstBuffer * buffer)
|
|||
}
|
||||
|
||||
static GstFlowReturn
|
||||
gst_dvbsub_overlay_chain_video (GstPad * pad, GstBuffer * buffer)
|
||||
gst_dvbsub_overlay_chain_video (GstPad * pad, GstObject * parent,
|
||||
GstBuffer * buffer)
|
||||
{
|
||||
GstDVBSubOverlay *overlay = GST_DVBSUB_OVERLAY (GST_PAD_PARENT (pad));
|
||||
GstDVBSubOverlay *overlay = GST_DVBSUB_OVERLAY (parent);
|
||||
GstFlowReturn ret = GST_FLOW_OK;
|
||||
gint64 start, stop;
|
||||
guint64 cstart, cstop;
|
||||
|
@ -954,10 +958,11 @@ gst_dvbsub_overlay_query_video (GstPad * pad, GstObject * parent,
|
|||
}
|
||||
|
||||
static gboolean
|
||||
gst_dvbsub_overlay_event_video (GstPad * pad, GstEvent * event)
|
||||
gst_dvbsub_overlay_event_video (GstPad * pad, GstObject * parent,
|
||||
GstEvent * event)
|
||||
{
|
||||
gboolean ret = FALSE;
|
||||
GstDVBSubOverlay *render = GST_DVBSUB_OVERLAY (gst_pad_get_parent (pad));
|
||||
GstDVBSubOverlay *render = GST_DVBSUB_OVERLAY (parent);
|
||||
|
||||
GST_DEBUG_OBJECT (pad, "received video event %s",
|
||||
GST_EVENT_TYPE_NAME (event));
|
||||
|
@ -1004,16 +1009,15 @@ gst_dvbsub_overlay_event_video (GstPad * pad, GstEvent * event)
|
|||
break;
|
||||
}
|
||||
|
||||
gst_object_unref (render);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gst_dvbsub_overlay_event_text (GstPad * pad, GstEvent * event)
|
||||
gst_dvbsub_overlay_event_text (GstPad * pad, GstObject * parent,
|
||||
GstEvent * event)
|
||||
{
|
||||
gboolean ret = FALSE;
|
||||
GstDVBSubOverlay *render = GST_DVBSUB_OVERLAY (gst_pad_get_parent (pad));
|
||||
GstDVBSubOverlay *render = GST_DVBSUB_OVERLAY (parent);
|
||||
|
||||
GST_DEBUG_OBJECT (pad, "received text event %s", GST_EVENT_TYPE_NAME (event));
|
||||
|
||||
|
@ -1067,8 +1071,6 @@ gst_dvbsub_overlay_event_text (GstPad * pad, GstEvent * event)
|
|||
break;
|
||||
}
|
||||
|
||||
gst_object_unref (render);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
@ -90,22 +90,27 @@ static void gst_dvd_spu_finalize (GObject * object);
|
|||
static GstStateChangeReturn gst_dvd_spu_change_state (GstElement * element,
|
||||
GstStateChange transition);
|
||||
|
||||
static gboolean gst_dvd_spu_src_event (GstPad * pad, GstEvent * event);
|
||||
static gboolean gst_dvd_spu_src_event (GstPad * pad, GstObject * parent,
|
||||
GstEvent * event);
|
||||
static gboolean gst_dvd_spu_src_query (GstPad * pad, GstObject * parent,
|
||||
GstQuery * query);
|
||||
|
||||
static GstCaps *gst_dvd_spu_video_proxy_getcaps (GstPad * pad,
|
||||
GstCaps * filter);
|
||||
static gboolean gst_dvd_spu_video_set_caps (GstPad * pad, GstCaps * caps);
|
||||
static GstFlowReturn gst_dvd_spu_video_chain (GstPad * pad, GstBuffer * buf);
|
||||
static gboolean gst_dvd_spu_video_event (GstPad * pad, GstEvent * event);
|
||||
static GstFlowReturn gst_dvd_spu_video_chain (GstPad * pad, GstObject * parent,
|
||||
GstBuffer * buf);
|
||||
static gboolean gst_dvd_spu_video_event (GstPad * pad, GstObject * parent,
|
||||
GstEvent * event);
|
||||
static gboolean gst_dvd_spu_video_query (GstPad * pad, GstObject * parent,
|
||||
GstQuery * query);
|
||||
static void gst_dvd_spu_redraw_still (GstDVDSpu * dvdspu, gboolean force);
|
||||
|
||||
static void gst_dvd_spu_check_still_updates (GstDVDSpu * dvdspu);
|
||||
static GstFlowReturn gst_dvd_spu_subpic_chain (GstPad * pad, GstBuffer * buf);
|
||||
static gboolean gst_dvd_spu_subpic_event (GstPad * pad, GstEvent * event);
|
||||
static GstFlowReturn gst_dvd_spu_subpic_chain (GstPad * pad, GstObject * parent,
|
||||
GstBuffer * buf);
|
||||
static gboolean gst_dvd_spu_subpic_event (GstPad * pad, GstObject * parent,
|
||||
GstEvent * event);
|
||||
static gboolean gst_dvd_spu_subpic_set_caps (GstPad * pad, GstCaps * caps);
|
||||
|
||||
static void gst_dvd_spu_clear (GstDVDSpu * dvdspu);
|
||||
|
@ -273,9 +278,9 @@ gst_dvd_spu_flush_spu_info (GstDVDSpu * dvdspu, gboolean keep_events)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
gst_dvd_spu_src_event (GstPad * pad, GstEvent * event)
|
||||
gst_dvd_spu_src_event (GstPad * pad, GstObject * parent, GstEvent * event)
|
||||
{
|
||||
GstDVDSpu *dvdspu = GST_DVD_SPU (gst_pad_get_parent (pad));
|
||||
GstDVDSpu *dvdspu = GST_DVD_SPU (parent);
|
||||
GstPad *peer;
|
||||
gboolean res = TRUE;
|
||||
|
||||
|
@ -284,8 +289,6 @@ gst_dvd_spu_src_event (GstPad * pad, GstEvent * event)
|
|||
res = gst_pad_send_event (peer, event);
|
||||
gst_object_unref (peer);
|
||||
}
|
||||
|
||||
gst_object_unref (dvdspu);
|
||||
return res;
|
||||
}
|
||||
|
||||
|
@ -372,14 +375,12 @@ gst_dvd_spu_video_proxy_getcaps (GstPad * pad, GstCaps * filter)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
gst_dvd_spu_video_event (GstPad * pad, GstEvent * event)
|
||||
gst_dvd_spu_video_event (GstPad * pad, GstObject * parent, GstEvent * event)
|
||||
{
|
||||
GstDVDSpu *dvdspu = (GstDVDSpu *) (gst_object_get_parent (GST_OBJECT (pad)));
|
||||
GstDVDSpu *dvdspu = (GstDVDSpu *) parent;
|
||||
SpuState *state = &dvdspu->spu_state;
|
||||
gboolean res = TRUE;
|
||||
|
||||
g_return_val_if_fail (dvdspu != NULL, FALSE);
|
||||
|
||||
switch (GST_EVENT_TYPE (event)) {
|
||||
case GST_EVENT_CAPS:
|
||||
{
|
||||
|
@ -399,7 +400,7 @@ gst_dvd_spu_video_event (GstPad * pad, GstEvent * event)
|
|||
GstBuffer *to_push = NULL;
|
||||
|
||||
/* Forward the event before handling */
|
||||
res = gst_pad_event_default (pad, event);
|
||||
res = gst_pad_event_default (pad, parent, event);
|
||||
|
||||
GST_DEBUG_OBJECT (dvdspu,
|
||||
"Still frame event on video pad: in-still = %d", in_still);
|
||||
|
@ -425,7 +426,7 @@ gst_dvd_spu_video_event (GstPad * pad, GstEvent * event)
|
|||
} else {
|
||||
GST_DEBUG_OBJECT (dvdspu,
|
||||
"Custom event %" GST_PTR_FORMAT " on video pad", event);
|
||||
res = gst_pad_event_default (pad, event);
|
||||
res = gst_pad_event_default (pad, parent, event);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -465,14 +466,14 @@ gst_dvd_spu_video_event (GstPad * pad, GstEvent * event)
|
|||
dvdspu->video_seg = seg;
|
||||
DVD_SPU_UNLOCK (dvdspu);
|
||||
|
||||
res = gst_pad_event_default (pad, event);
|
||||
res = gst_pad_event_default (pad, parent, event);
|
||||
break;
|
||||
}
|
||||
case GST_EVENT_FLUSH_START:
|
||||
res = gst_pad_event_default (pad, event);
|
||||
res = gst_pad_event_default (pad, parent, event);
|
||||
goto done;
|
||||
case GST_EVENT_FLUSH_STOP:
|
||||
res = gst_pad_event_default (pad, event);
|
||||
res = gst_pad_event_default (pad, parent, event);
|
||||
|
||||
DVD_SPU_LOCK (dvdspu);
|
||||
gst_segment_init (&dvdspu->video_seg, GST_FORMAT_UNDEFINED);
|
||||
|
@ -482,12 +483,11 @@ gst_dvd_spu_video_event (GstPad * pad, GstEvent * event)
|
|||
DVD_SPU_UNLOCK (dvdspu);
|
||||
goto done;
|
||||
default:
|
||||
res = gst_pad_event_default (pad, event);
|
||||
res = gst_pad_event_default (pad, parent, event);
|
||||
break;
|
||||
}
|
||||
|
||||
done:
|
||||
gst_object_unref (dvdspu);
|
||||
return res;
|
||||
#if 0
|
||||
error:
|
||||
|
@ -522,9 +522,9 @@ gst_dvd_spu_video_query (GstPad * pad, GstObject * parent, GstQuery * query)
|
|||
}
|
||||
|
||||
static GstFlowReturn
|
||||
gst_dvd_spu_video_chain (GstPad * pad, GstBuffer * buf)
|
||||
gst_dvd_spu_video_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
|
||||
{
|
||||
GstDVDSpu *dvdspu = (GstDVDSpu *) (gst_object_get_parent (GST_OBJECT (pad)));
|
||||
GstDVDSpu *dvdspu = (GstDVDSpu *) parent;
|
||||
GstFlowReturn ret;
|
||||
|
||||
g_return_val_if_fail (dvdspu != NULL, GST_FLOW_ERROR);
|
||||
|
@ -534,8 +534,6 @@ gst_dvd_spu_video_chain (GstPad * pad, GstBuffer * buf)
|
|||
|
||||
ret = dvdspu_handle_vid_buffer (dvdspu, buf);
|
||||
|
||||
gst_object_unref (dvdspu);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -879,9 +877,9 @@ submit_new_spu_packet (GstDVDSpu * dvdspu, GstBuffer * buf)
|
|||
}
|
||||
|
||||
static GstFlowReturn
|
||||
gst_dvd_spu_subpic_chain (GstPad * pad, GstBuffer * buf)
|
||||
gst_dvd_spu_subpic_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
|
||||
{
|
||||
GstDVDSpu *dvdspu = (GstDVDSpu *) (gst_object_get_parent (GST_OBJECT (pad)));
|
||||
GstDVDSpu *dvdspu = (GstDVDSpu *) parent;
|
||||
GstFlowReturn ret = GST_FLOW_OK;
|
||||
gsize size;
|
||||
|
||||
|
@ -1000,23 +998,25 @@ gst_dvd_spu_subpic_chain (GstPad * pad, GstBuffer * buf)
|
|||
|
||||
done:
|
||||
DVD_SPU_UNLOCK (dvdspu);
|
||||
gst_object_unref (dvdspu);
|
||||
|
||||
return ret;
|
||||
|
||||
/* ERRORS */
|
||||
caps_not_set:
|
||||
{
|
||||
GST_ELEMENT_ERROR (dvdspu, RESOURCE, NO_SPACE_LEFT,
|
||||
(_("Subpicture format was not configured before data flow")), (NULL));
|
||||
ret = GST_FLOW_ERROR;
|
||||
goto done;
|
||||
}
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gst_dvd_spu_subpic_event (GstPad * pad, GstEvent * event)
|
||||
gst_dvd_spu_subpic_event (GstPad * pad, GstObject * parent, GstEvent * event)
|
||||
{
|
||||
GstDVDSpu *dvdspu = (GstDVDSpu *) (gst_object_get_parent (GST_OBJECT (pad)));
|
||||
GstDVDSpu *dvdspu = (GstDVDSpu *) parent;
|
||||
gboolean res = TRUE;
|
||||
|
||||
g_return_val_if_fail (dvdspu != NULL, FALSE);
|
||||
|
||||
/* Some events on the subpicture sink pad just get ignored, like
|
||||
* FLUSH_START */
|
||||
switch (GST_EVENT_TYPE (event)) {
|
||||
|
@ -1036,7 +1036,7 @@ gst_dvd_spu_subpic_event (GstPad * pad, GstEvent * event)
|
|||
gboolean need_push;
|
||||
|
||||
if (!gst_structure_has_name (structure, "application/x-gst-dvd")) {
|
||||
res = gst_pad_event_default (pad, event);
|
||||
res = gst_pad_event_default (pad, parent, event);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -1126,12 +1126,11 @@ gst_dvd_spu_subpic_event (GstPad * pad, GstEvent * event)
|
|||
goto done;
|
||||
break;
|
||||
default:
|
||||
res = gst_pad_event_default (pad, event);
|
||||
res = gst_pad_event_default (pad, parent, event);
|
||||
break;
|
||||
}
|
||||
|
||||
done:
|
||||
gst_object_unref (dvdspu);
|
||||
|
||||
return res;
|
||||
}
|
||||
|
|
|
@ -80,8 +80,10 @@ static void mpegts_base_free_stream (MpegTSBaseStream * ptream);
|
|||
static gboolean mpegts_base_sink_activate (GstPad * pad);
|
||||
static gboolean mpegts_base_sink_activate_pull (GstPad * pad, gboolean active);
|
||||
static gboolean mpegts_base_sink_activate_push (GstPad * pad, gboolean active);
|
||||
static GstFlowReturn mpegts_base_chain (GstPad * pad, GstBuffer * buf);
|
||||
static gboolean mpegts_base_sink_event (GstPad * pad, GstEvent * event);
|
||||
static GstFlowReturn mpegts_base_chain (GstPad * pad, GstObject * parent,
|
||||
GstBuffer * buf);
|
||||
static gboolean mpegts_base_sink_event (GstPad * pad, GstObject * parent,
|
||||
GstEvent * event);
|
||||
static GstStateChangeReturn mpegts_base_change_state (GstElement * element,
|
||||
GstStateChange transition);
|
||||
|
||||
|
@ -1183,10 +1185,10 @@ mpegts_base_flush (MpegTSBase * base)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
mpegts_base_sink_event (GstPad * pad, GstEvent * event)
|
||||
mpegts_base_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
|
||||
{
|
||||
gboolean res = TRUE;
|
||||
MpegTSBase *base = GST_MPEGTS_BASE (gst_object_get_parent (GST_OBJECT (pad)));
|
||||
MpegTSBase *base = GST_MPEGTS_BASE (parent);
|
||||
|
||||
GST_WARNING_OBJECT (base, "Got event %s",
|
||||
gst_event_type_get_name (GST_EVENT_TYPE (event)));
|
||||
|
@ -1221,8 +1223,6 @@ mpegts_base_sink_event (GstPad * pad, GstEvent * event)
|
|||
res = GST_MPEGTS_BASE_GET_CLASS (base)->push_event (base, event);
|
||||
gst_event_unref (event);
|
||||
}
|
||||
|
||||
gst_object_unref (base);
|
||||
return res;
|
||||
}
|
||||
|
||||
|
@ -1242,7 +1242,7 @@ mpegts_base_push (MpegTSBase * base, MpegTSPacketizerPacket * packet,
|
|||
}
|
||||
|
||||
static GstFlowReturn
|
||||
mpegts_base_chain (GstPad * pad, GstBuffer * buf)
|
||||
mpegts_base_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
|
||||
{
|
||||
GstFlowReturn res = GST_FLOW_OK;
|
||||
MpegTSBase *base;
|
||||
|
@ -1251,7 +1251,7 @@ mpegts_base_chain (GstPad * pad, GstBuffer * buf)
|
|||
MpegTSPacketizer2 *packetizer;
|
||||
MpegTSPacketizerPacket packet;
|
||||
|
||||
base = GST_MPEGTS_BASE (gst_object_get_parent (GST_OBJECT (pad)));
|
||||
base = GST_MPEGTS_BASE (parent);
|
||||
packetizer = base->packetizer;
|
||||
|
||||
if (G_UNLIKELY (!GST_CLOCK_TIME_IS_VALID (base->first_buf_ts)) &&
|
||||
|
@ -1311,7 +1311,6 @@ mpegts_base_chain (GstPad * pad, GstBuffer * buf)
|
|||
mpegts_packetizer_clear_packet (base->packetizer, &packet);
|
||||
}
|
||||
|
||||
gst_object_unref (base);
|
||||
return res;
|
||||
}
|
||||
|
||||
|
@ -1373,6 +1372,7 @@ static void
|
|||
mpegts_base_loop (MpegTSBase * base)
|
||||
{
|
||||
GstFlowReturn ret = GST_FLOW_ERROR;
|
||||
|
||||
switch (base->mode) {
|
||||
case BASE_MODE_SCANNING:
|
||||
/* Find first sync point */
|
||||
|
@ -1397,7 +1397,7 @@ mpegts_base_loop (MpegTSBase * base)
|
|||
if (G_UNLIKELY (ret != GST_FLOW_OK))
|
||||
goto error;
|
||||
base->seek_offset += gst_buffer_get_size (buf);
|
||||
ret = mpegts_base_chain (base->sinkpad, buf);
|
||||
ret = mpegts_base_chain (base->sinkpad, GST_OBJECT_CAST (base), buf);
|
||||
if (G_UNLIKELY (ret != GST_FLOW_OK))
|
||||
goto error;
|
||||
}
|
||||
|
|
|
@ -855,10 +855,10 @@ done:
|
|||
}
|
||||
|
||||
static gboolean
|
||||
gst_ts_demux_srcpad_event (GstPad * pad, GstEvent * event)
|
||||
gst_ts_demux_srcpad_event (GstPad * pad, GstObject * parent, GstEvent * event)
|
||||
{
|
||||
gboolean res = TRUE;
|
||||
GstTSDemux *demux = GST_TS_DEMUX (gst_pad_get_parent (pad));
|
||||
GstTSDemux *demux = GST_TS_DEMUX (parent);
|
||||
|
||||
GST_DEBUG_OBJECT (pad, "Got event %s",
|
||||
gst_event_type_get_name (GST_EVENT_TYPE (event)));
|
||||
|
@ -871,10 +871,9 @@ gst_ts_demux_srcpad_event (GstPad * pad, GstEvent * event)
|
|||
gst_event_unref (event);
|
||||
break;
|
||||
default:
|
||||
res = gst_pad_event_default (pad, event);
|
||||
res = gst_pad_event_default (pad, parent, event);
|
||||
}
|
||||
|
||||
gst_object_unref (demux);
|
||||
return res;
|
||||
}
|
||||
|
||||
|
|
|
@ -132,8 +132,9 @@ static void gst_sdp_demux_handle_message (GstBin * bin, GstMessage * message);
|
|||
static void gst_sdp_demux_stream_push_event (GstSDPDemux * demux,
|
||||
GstSDPStream * stream, GstEvent * event);
|
||||
|
||||
static gboolean gst_sdp_demux_sink_event (GstPad * pad, GstEvent * event);
|
||||
static GstFlowReturn gst_sdp_demux_sink_chain (GstPad * pad,
|
||||
static gboolean gst_sdp_demux_sink_event (GstPad * pad, GstObject * parent,
|
||||
GstEvent * event);
|
||||
static GstFlowReturn gst_sdp_demux_sink_chain (GstPad * pad, GstObject * parent,
|
||||
GstBuffer * buffer);
|
||||
|
||||
/*static guint gst_sdp_demux_signals[LAST_SIGNAL] = { 0 }; */
|
||||
|
@ -387,12 +388,12 @@ is_multicast_address (const gchar * host_name)
|
|||
for (ai = res; !ret && ai; ai = ai->ai_next) {
|
||||
if (ai->ai_family == AF_INET)
|
||||
ret =
|
||||
IN_MULTICAST (ntohl (((struct sockaddr_in *) ai->ai_addr)->
|
||||
sin_addr.s_addr));
|
||||
IN_MULTICAST (ntohl (((struct sockaddr_in *) ai->ai_addr)->sin_addr.
|
||||
s_addr));
|
||||
else
|
||||
ret =
|
||||
IN6_IS_ADDR_MULTICAST (&((struct sockaddr_in6 *) ai->
|
||||
ai_addr)->sin6_addr);
|
||||
IN6_IS_ADDR_MULTICAST (&((struct sockaddr_in6 *) ai->ai_addr)->
|
||||
sin6_addr);
|
||||
}
|
||||
|
||||
freeaddrinfo (res);
|
||||
|
@ -1471,12 +1472,12 @@ start_session_failure:
|
|||
}
|
||||
|
||||
static gboolean
|
||||
gst_sdp_demux_sink_event (GstPad * pad, GstEvent * event)
|
||||
gst_sdp_demux_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
|
||||
{
|
||||
GstSDPDemux *demux;
|
||||
gboolean res = TRUE;
|
||||
|
||||
demux = GST_SDP_DEMUX (gst_pad_get_parent (pad));
|
||||
demux = GST_SDP_DEMUX (parent);
|
||||
|
||||
switch (GST_EVENT_TYPE (event)) {
|
||||
case GST_EVENT_EOS:
|
||||
|
@ -1488,24 +1489,21 @@ gst_sdp_demux_sink_event (GstPad * pad, GstEvent * event)
|
|||
gst_event_unref (event);
|
||||
break;
|
||||
}
|
||||
gst_object_unref (demux);
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
static GstFlowReturn
|
||||
gst_sdp_demux_sink_chain (GstPad * pad, GstBuffer * buffer)
|
||||
gst_sdp_demux_sink_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
|
||||
{
|
||||
GstSDPDemux *demux;
|
||||
|
||||
demux = GST_SDP_DEMUX (gst_pad_get_parent (pad));
|
||||
demux = GST_SDP_DEMUX (parent);
|
||||
|
||||
/* push the SDP message in an adapter, we start doing something with it when
|
||||
* we receive EOS */
|
||||
gst_adapter_push (demux->adapter, buffer);
|
||||
|
||||
gst_object_unref (demux);
|
||||
|
||||
return GST_FLOW_OK;
|
||||
}
|
||||
|
||||
|
|
|
@ -55,10 +55,13 @@ static void gst_y4m_dec_get_property (GObject * object,
|
|||
static void gst_y4m_dec_dispose (GObject * object);
|
||||
static void gst_y4m_dec_finalize (GObject * object);
|
||||
|
||||
static GstFlowReturn gst_y4m_dec_chain (GstPad * pad, GstBuffer * buffer);
|
||||
static gboolean gst_y4m_dec_sink_event (GstPad * pad, GstEvent * event);
|
||||
static GstFlowReturn gst_y4m_dec_chain (GstPad * pad, GstObject * parent,
|
||||
GstBuffer * buffer);
|
||||
static gboolean gst_y4m_dec_sink_event (GstPad * pad, GstObject * parent,
|
||||
GstEvent * event);
|
||||
|
||||
static gboolean gst_y4m_dec_src_event (GstPad * pad, GstEvent * event);
|
||||
static gboolean gst_y4m_dec_src_event (GstPad * pad, GstObject * parent,
|
||||
GstEvent * event);
|
||||
static gboolean gst_y4m_dec_src_query (GstPad * pad, GstObject * parent,
|
||||
GstQuery * query);
|
||||
|
||||
|
@ -415,7 +418,7 @@ error:
|
|||
}
|
||||
|
||||
static GstFlowReturn
|
||||
gst_y4m_dec_chain (GstPad * pad, GstBuffer * buffer)
|
||||
gst_y4m_dec_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
|
||||
{
|
||||
GstY4mDec *y4mdec;
|
||||
int n_avail;
|
||||
|
@ -425,7 +428,7 @@ gst_y4m_dec_chain (GstPad * pad, GstBuffer * buffer)
|
|||
int i;
|
||||
int len;
|
||||
|
||||
y4mdec = GST_Y4M_DEC (gst_pad_get_parent (pad));
|
||||
y4mdec = GST_Y4M_DEC (parent);
|
||||
|
||||
GST_DEBUG_OBJECT (y4mdec, "chain");
|
||||
|
||||
|
@ -545,18 +548,18 @@ gst_y4m_dec_chain (GstPad * pad, GstBuffer * buffer)
|
|||
break;
|
||||
}
|
||||
|
||||
gst_object_unref (y4mdec);
|
||||
GST_DEBUG ("returning %d", flow_ret);
|
||||
|
||||
return flow_ret;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gst_y4m_dec_sink_event (GstPad * pad, GstEvent * event)
|
||||
gst_y4m_dec_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
|
||||
{
|
||||
gboolean res;
|
||||
GstY4mDec *y4mdec;
|
||||
|
||||
y4mdec = GST_Y4M_DEC (gst_pad_get_parent (pad));
|
||||
y4mdec = GST_Y4M_DEC (parent);
|
||||
|
||||
GST_DEBUG_OBJECT (y4mdec, "event");
|
||||
|
||||
|
@ -592,17 +595,16 @@ gst_y4m_dec_sink_event (GstPad * pad, GstEvent * event)
|
|||
break;
|
||||
}
|
||||
|
||||
gst_object_unref (y4mdec);
|
||||
return res;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gst_y4m_dec_src_event (GstPad * pad, GstEvent * event)
|
||||
gst_y4m_dec_src_event (GstPad * pad, GstObject * parent, GstEvent * event)
|
||||
{
|
||||
gboolean res;
|
||||
GstY4mDec *y4mdec;
|
||||
|
||||
y4mdec = GST_Y4M_DEC (gst_pad_get_parent (pad));
|
||||
y4mdec = GST_Y4M_DEC (parent);
|
||||
|
||||
GST_DEBUG_OBJECT (y4mdec, "event");
|
||||
|
||||
|
@ -643,7 +645,6 @@ gst_y4m_dec_src_event (GstPad * pad, GstEvent * event)
|
|||
break;
|
||||
}
|
||||
|
||||
gst_object_unref (y4mdec);
|
||||
return res;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue