mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-20 04:56:24 +00:00
adaptivedemux: Move SEEK handling to a separate function
Just for code readability. Doesn't change behaviour
This commit is contained in:
parent
d33352edb5
commit
deb686cfe1
1 changed files with 209 additions and 206 deletions
|
@ -1262,20 +1262,10 @@ gst_adaptive_demux_can_seek (GstAdaptiveDemux * demux)
|
||||||
GST_SEEK_FLAG_SNAP_NEAREST))
|
GST_SEEK_FLAG_SNAP_NEAREST))
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
gst_adaptive_demux_src_event (GstPad * pad, GstObject * parent,
|
gst_adaptive_demux_handle_seek_event (GstAdaptiveDemux * demux, GstPad * pad,
|
||||||
GstEvent * event)
|
GstEvent * event)
|
||||||
{
|
{
|
||||||
GstAdaptiveDemux *demux;
|
GstAdaptiveDemuxClass *demux_class = GST_ADAPTIVE_DEMUX_GET_CLASS (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:
|
|
||||||
{
|
|
||||||
gdouble rate;
|
gdouble rate;
|
||||||
GstFormat format;
|
GstFormat format;
|
||||||
GstSeekFlags flags;
|
GstSeekFlags flags;
|
||||||
|
@ -1283,7 +1273,7 @@ gst_adaptive_demux_src_event (GstPad * pad, GstObject * parent,
|
||||||
gint64 start, stop;
|
gint64 start, stop;
|
||||||
guint32 seqnum;
|
guint32 seqnum;
|
||||||
gboolean update;
|
gboolean update;
|
||||||
gboolean ret = TRUE;
|
gboolean ret;
|
||||||
GstSegment oldsegment;
|
GstSegment oldsegment;
|
||||||
GstAdaptiveDemuxStream *stream = NULL;
|
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,
|
demux_class->stream_seek (stream, rate >= 0, stream_seek_flags, ts, &ts);
|
||||||
&ts);
|
|
||||||
|
|
||||||
/* replace event with a new one without snaping to seek on all streams */
|
/* replace event with a new one without snaping to seek on all streams */
|
||||||
gst_event_unref (event);
|
gst_event_unref (event);
|
||||||
|
@ -1400,8 +1389,7 @@ gst_adaptive_demux_src_event (GstPad * pad, GstObject * parent,
|
||||||
event =
|
event =
|
||||||
gst_event_new_seek (rate, format, REMOVE_SNAP_FLAGS (flags),
|
gst_event_new_seek (rate, format, REMOVE_SNAP_FLAGS (flags),
|
||||||
start_type, start, stop_type, stop);
|
start_type, start, stop_type, stop);
|
||||||
GST_DEBUG_OBJECT (demux, "Adapted snap seek to %" GST_PTR_FORMAT,
|
GST_DEBUG_OBJECT (demux, "Adapted snap seek to %" GST_PTR_FORMAT, event);
|
||||||
event);
|
|
||||||
}
|
}
|
||||||
stream = NULL;
|
stream = NULL;
|
||||||
|
|
||||||
|
@ -1417,8 +1405,7 @@ gst_adaptive_demux_src_event (GstPad * pad, GstObject * parent,
|
||||||
demux->segment.base = oldsegment.base;
|
demux->segment.base = oldsegment.base;
|
||||||
}
|
}
|
||||||
|
|
||||||
GST_DEBUG_OBJECT (demux, "Calling subclass seek: %" GST_PTR_FORMAT,
|
GST_DEBUG_OBJECT (demux, "Calling subclass seek: %" GST_PTR_FORMAT, event);
|
||||||
event);
|
|
||||||
|
|
||||||
ret = demux_class->seek (demux, 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_adaptive_demux_start_tasks (demux);
|
||||||
GST_MANIFEST_UNLOCK (demux);
|
GST_MANIFEST_UNLOCK (demux);
|
||||||
GST_API_UNLOCK (demux);
|
GST_API_UNLOCK (demux);
|
||||||
|
|
||||||
gst_event_unref (event);
|
gst_event_unref (event);
|
||||||
|
|
||||||
return ret;
|
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:{
|
case GST_EVENT_RECONFIGURE:{
|
||||||
GstAdaptiveDemuxStream *stream;
|
GstAdaptiveDemuxStream *stream;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue