adaptivedemux: Move SEEK handling to a separate function

Just for code readability. Doesn't change behaviour
This commit is contained in:
Edward Hervey 2016-06-08 18:02:32 +02:00 committed by Sebastian Dröge
parent d33352edb5
commit deb686cfe1

View file

@ -1262,20 +1262,10 @@ gst_adaptive_demux_can_seek (GstAdaptiveDemux * demux)
GST_SEEK_FLAG_SNAP_NEAREST))
static gboolean
gst_adaptive_demux_src_event (GstPad * pad, GstObject * parent,
gst_adaptive_demux_handle_seek_event (GstAdaptiveDemux * demux, GstPad * pad,
GstEvent * event)
{
GstAdaptiveDemux *demux;
GstAdaptiveDemuxClass *demux_class;
demux = GST_ADAPTIVE_DEMUX_CAST (parent);
demux_class = GST_ADAPTIVE_DEMUX_GET_CLASS (demux);
/* FIXME handle events received on pads that are to be removed */
switch (event->type) {
case GST_EVENT_SEEK:
{
GstAdaptiveDemuxClass *demux_class = GST_ADAPTIVE_DEMUX_GET_CLASS (demux);
gdouble rate;
GstFormat format;
GstSeekFlags flags;
@ -1283,7 +1273,7 @@ gst_adaptive_demux_src_event (GstPad * pad, GstObject * parent,
gint64 start, stop;
guint32 seqnum;
gboolean update;
gboolean ret = TRUE;
gboolean ret;
GstSegment oldsegment;
GstAdaptiveDemuxStream *stream = NULL;
@ -1387,8 +1377,7 @@ gst_adaptive_demux_src_event (GstPad * pad, GstObject * parent,
}
}
demux_class->stream_seek (stream, rate >= 0, stream_seek_flags, ts,
&ts);
demux_class->stream_seek (stream, rate >= 0, stream_seek_flags, ts, &ts);
/* replace event with a new one without snaping to seek on all streams */
gst_event_unref (event);
@ -1400,8 +1389,7 @@ gst_adaptive_demux_src_event (GstPad * pad, GstObject * parent,
event =
gst_event_new_seek (rate, format, REMOVE_SNAP_FLAGS (flags),
start_type, start, stop_type, stop);
GST_DEBUG_OBJECT (demux, "Adapted snap seek to %" GST_PTR_FORMAT,
event);
GST_DEBUG_OBJECT (demux, "Adapted snap seek to %" GST_PTR_FORMAT, event);
}
stream = NULL;
@ -1417,8 +1405,7 @@ gst_adaptive_demux_src_event (GstPad * pad, GstObject * parent,
demux->segment.base = oldsegment.base;
}
GST_DEBUG_OBJECT (demux, "Calling subclass seek: %" GST_PTR_FORMAT,
event);
GST_DEBUG_OBJECT (demux, "Calling subclass seek: %" GST_PTR_FORMAT, event);
ret = demux_class->seek (demux, event);
@ -1477,10 +1464,26 @@ gst_adaptive_demux_src_event (GstPad * pad, GstObject * parent,
gst_adaptive_demux_start_tasks (demux);
GST_MANIFEST_UNLOCK (demux);
GST_API_UNLOCK (demux);
gst_event_unref (event);
return ret;
}
static gboolean
gst_adaptive_demux_src_event (GstPad * pad, GstObject * parent,
GstEvent * event)
{
GstAdaptiveDemux *demux;
demux = GST_ADAPTIVE_DEMUX_CAST (parent);
/* FIXME handle events received on pads that are to be removed */
switch (event->type) {
case GST_EVENT_SEEK:
{
return gst_adaptive_demux_handle_seek_event (demux, pad, event);
}
case GST_EVENT_RECONFIGURE:{
GstAdaptiveDemuxStream *stream;