mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-17 03:35:21 +00:00
Make filesrc respond to seek
Original commit message from CVS: Make filesrc respond to seek
This commit is contained in:
parent
a7c0c874b5
commit
f0e4bd3b5c
4 changed files with 26 additions and 4 deletions
|
@ -441,6 +441,11 @@ gst_filesrc_get (GstPad *pad)
|
|||
src->seek_happened = FALSE;
|
||||
return GST_BUFFER (gst_event_new (GST_EVENT_DISCONTINUOUS));
|
||||
}
|
||||
/* check for flush */
|
||||
if (src->need_flush) {
|
||||
src->need_flush = FALSE;
|
||||
return GST_BUFFER (gst_event_new_flush ());
|
||||
}
|
||||
|
||||
/* check for EOF */
|
||||
if (src->curoffset == src->filelen) {
|
||||
|
@ -650,8 +655,13 @@ gst_filesrc_srcpad_event (GstPad *pad, GstEvent *event)
|
|||
break;
|
||||
}
|
||||
src->seek_happened = TRUE;
|
||||
src->need_flush = GST_EVENT_SEEK_FLUSH(event);
|
||||
gst_event_free (event);
|
||||
/* push a discontinuous event? */
|
||||
break;
|
||||
case GST_EVENT_FLUSH:
|
||||
src->need_flush = TRUE;
|
||||
break;
|
||||
default:
|
||||
return FALSE;
|
||||
break;
|
||||
|
|
|
@ -74,6 +74,7 @@ struct _GstFileSrc {
|
|||
GMutex *map_regions_lock;
|
||||
|
||||
gboolean seek_happened;
|
||||
gboolean need_flush;
|
||||
};
|
||||
|
||||
struct _GstFileSrcClass {
|
||||
|
|
|
@ -441,6 +441,11 @@ gst_filesrc_get (GstPad *pad)
|
|||
src->seek_happened = FALSE;
|
||||
return GST_BUFFER (gst_event_new (GST_EVENT_DISCONTINUOUS));
|
||||
}
|
||||
/* check for flush */
|
||||
if (src->need_flush) {
|
||||
src->need_flush = FALSE;
|
||||
return GST_BUFFER (gst_event_new_flush ());
|
||||
}
|
||||
|
||||
/* check for EOF */
|
||||
if (src->curoffset == src->filelen) {
|
||||
|
@ -650,8 +655,13 @@ gst_filesrc_srcpad_event (GstPad *pad, GstEvent *event)
|
|||
break;
|
||||
}
|
||||
src->seek_happened = TRUE;
|
||||
src->need_flush = GST_EVENT_SEEK_FLUSH(event);
|
||||
gst_event_free (event);
|
||||
/* push a discontinuous event? */
|
||||
break;
|
||||
case GST_EVENT_FLUSH:
|
||||
src->need_flush = TRUE;
|
||||
break;
|
||||
default:
|
||||
return FALSE;
|
||||
break;
|
||||
|
|
|
@ -74,6 +74,7 @@ struct _GstFileSrc {
|
|||
GMutex *map_regions_lock;
|
||||
|
||||
gboolean seek_happened;
|
||||
gboolean need_flush;
|
||||
};
|
||||
|
||||
struct _GstFileSrcClass {
|
||||
|
|
Loading…
Reference in a new issue