From 271371290666c6c58ba7c225d411f229d1ebf725 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Fri, 16 Apr 2004 02:57:55 +0000 Subject: [PATCH] gst/elements/gstfilesrc.*: s/seek_happened/need_discont/ and require discont before sending any data Original commit message from CVS: * gst/elements/gstfilesrc.c: (gst_filesrc_init), (gst_filesrc_get), (gst_filesrc_change_state), (gst_filesrc_srcpad_event): * gst/elements/gstfilesrc.h: s/seek_happened/need_discont/ and require discont before sending any data --- ChangeLog | 8 ++++++++ gst/elements/gstfilesrc.c | 11 +++++------ gst/elements/gstfilesrc.h | 2 +- plugins/elements/gstfilesrc.c | 11 +++++------ plugins/elements/gstfilesrc.h | 2 +- 5 files changed, 20 insertions(+), 14 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9d9b6f934f..38e8cbfaac 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2004-04-16 Benjamin Otte + + * gst/elements/gstfilesrc.c: (gst_filesrc_init), (gst_filesrc_get), + (gst_filesrc_change_state), (gst_filesrc_srcpad_event): + * gst/elements/gstfilesrc.h: + s/seek_happened/need_discont/ and require discont before sending any + data + 2004-04-15 David Schleef * gst/gstvalue.c: (gst_value_serialize_buffer), diff --git a/gst/elements/gstfilesrc.c b/gst/elements/gstfilesrc.c index eac08fa9fd..1943b24d78 100644 --- a/gst/elements/gstfilesrc.c +++ b/gst/elements/gstfilesrc.c @@ -245,8 +245,6 @@ gst_filesrc_init (GstFileSrc * src) src->mapbuf = NULL; src->mapsize = DEFAULT_MMAPSIZE; /* default is 4MB */ - - src->seek_happened = FALSE; } static void @@ -660,10 +658,10 @@ gst_filesrc_get (GstPad * pad) return GST_DATA (gst_event_new_flush ()); } /* check for seek */ - if (src->seek_happened) { + if (src->need_discont) { GstEvent *event; - src->seek_happened = FALSE; + src->need_discont = FALSE; GST_DEBUG_OBJECT (src, "sending discont"); event = gst_event_new_discontinuous (FALSE, GST_FORMAT_BYTES, src->curoffset, @@ -806,11 +804,12 @@ gst_filesrc_change_state (GstElement * element) if (!gst_filesrc_open_file (GST_FILESRC (element))) return GST_STATE_FAILURE; } + src->need_discont = TRUE; break; case GST_STATE_PAUSED_TO_READY: if (GST_FLAG_IS_SET (element, GST_FILESRC_OPEN)) gst_filesrc_close_file (GST_FILESRC (element)); - src->seek_happened = TRUE; + src->need_discont = TRUE; break; default: break; @@ -910,7 +909,7 @@ gst_filesrc_srcpad_event (GstPad * pad, GstEvent * event) goto error; break; } - src->seek_happened = TRUE; + src->need_discont = TRUE; src->need_flush = GST_EVENT_SEEK_FLAGS (event) & GST_SEEK_FLAG_FLUSH; break; } diff --git a/gst/elements/gstfilesrc.h b/gst/elements/gstfilesrc.h index 8ebda1e5c6..bd6a7bad2d 100644 --- a/gst/elements/gstfilesrc.h +++ b/gst/elements/gstfilesrc.h @@ -70,7 +70,7 @@ struct _GstFileSrc { GstBuffer *mapbuf; size_t mapsize; - gboolean seek_happened; + gboolean need_discont; gboolean need_flush; }; diff --git a/plugins/elements/gstfilesrc.c b/plugins/elements/gstfilesrc.c index eac08fa9fd..1943b24d78 100644 --- a/plugins/elements/gstfilesrc.c +++ b/plugins/elements/gstfilesrc.c @@ -245,8 +245,6 @@ gst_filesrc_init (GstFileSrc * src) src->mapbuf = NULL; src->mapsize = DEFAULT_MMAPSIZE; /* default is 4MB */ - - src->seek_happened = FALSE; } static void @@ -660,10 +658,10 @@ gst_filesrc_get (GstPad * pad) return GST_DATA (gst_event_new_flush ()); } /* check for seek */ - if (src->seek_happened) { + if (src->need_discont) { GstEvent *event; - src->seek_happened = FALSE; + src->need_discont = FALSE; GST_DEBUG_OBJECT (src, "sending discont"); event = gst_event_new_discontinuous (FALSE, GST_FORMAT_BYTES, src->curoffset, @@ -806,11 +804,12 @@ gst_filesrc_change_state (GstElement * element) if (!gst_filesrc_open_file (GST_FILESRC (element))) return GST_STATE_FAILURE; } + src->need_discont = TRUE; break; case GST_STATE_PAUSED_TO_READY: if (GST_FLAG_IS_SET (element, GST_FILESRC_OPEN)) gst_filesrc_close_file (GST_FILESRC (element)); - src->seek_happened = TRUE; + src->need_discont = TRUE; break; default: break; @@ -910,7 +909,7 @@ gst_filesrc_srcpad_event (GstPad * pad, GstEvent * event) goto error; break; } - src->seek_happened = TRUE; + src->need_discont = TRUE; src->need_flush = GST_EVENT_SEEK_FLAGS (event) & GST_SEEK_FLAG_FLUSH; break; } diff --git a/plugins/elements/gstfilesrc.h b/plugins/elements/gstfilesrc.h index 8ebda1e5c6..bd6a7bad2d 100644 --- a/plugins/elements/gstfilesrc.h +++ b/plugins/elements/gstfilesrc.h @@ -70,7 +70,7 @@ struct _GstFileSrc { GstBuffer *mapbuf; size_t mapsize; - gboolean seek_happened; + gboolean need_discont; gboolean need_flush; };