mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 06:54:49 +00:00
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
This commit is contained in:
parent
06940084e5
commit
2713712906
5 changed files with 20 additions and 14 deletions
|
@ -1,3 +1,11 @@
|
||||||
|
2004-04-16 Benjamin Otte <otte@gnome.org>
|
||||||
|
|
||||||
|
* 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 <ds@schleef.org>
|
2004-04-15 David Schleef <ds@schleef.org>
|
||||||
|
|
||||||
* gst/gstvalue.c: (gst_value_serialize_buffer),
|
* gst/gstvalue.c: (gst_value_serialize_buffer),
|
||||||
|
|
|
@ -245,8 +245,6 @@ gst_filesrc_init (GstFileSrc * src)
|
||||||
|
|
||||||
src->mapbuf = NULL;
|
src->mapbuf = NULL;
|
||||||
src->mapsize = DEFAULT_MMAPSIZE; /* default is 4MB */
|
src->mapsize = DEFAULT_MMAPSIZE; /* default is 4MB */
|
||||||
|
|
||||||
src->seek_happened = FALSE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -660,10 +658,10 @@ gst_filesrc_get (GstPad * pad)
|
||||||
return GST_DATA (gst_event_new_flush ());
|
return GST_DATA (gst_event_new_flush ());
|
||||||
}
|
}
|
||||||
/* check for seek */
|
/* check for seek */
|
||||||
if (src->seek_happened) {
|
if (src->need_discont) {
|
||||||
GstEvent *event;
|
GstEvent *event;
|
||||||
|
|
||||||
src->seek_happened = FALSE;
|
src->need_discont = FALSE;
|
||||||
GST_DEBUG_OBJECT (src, "sending discont");
|
GST_DEBUG_OBJECT (src, "sending discont");
|
||||||
event =
|
event =
|
||||||
gst_event_new_discontinuous (FALSE, GST_FORMAT_BYTES, src->curoffset,
|
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)))
|
if (!gst_filesrc_open_file (GST_FILESRC (element)))
|
||||||
return GST_STATE_FAILURE;
|
return GST_STATE_FAILURE;
|
||||||
}
|
}
|
||||||
|
src->need_discont = TRUE;
|
||||||
break;
|
break;
|
||||||
case GST_STATE_PAUSED_TO_READY:
|
case GST_STATE_PAUSED_TO_READY:
|
||||||
if (GST_FLAG_IS_SET (element, GST_FILESRC_OPEN))
|
if (GST_FLAG_IS_SET (element, GST_FILESRC_OPEN))
|
||||||
gst_filesrc_close_file (GST_FILESRC (element));
|
gst_filesrc_close_file (GST_FILESRC (element));
|
||||||
src->seek_happened = TRUE;
|
src->need_discont = TRUE;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -910,7 +909,7 @@ gst_filesrc_srcpad_event (GstPad * pad, GstEvent * event)
|
||||||
goto error;
|
goto error;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
src->seek_happened = TRUE;
|
src->need_discont = TRUE;
|
||||||
src->need_flush = GST_EVENT_SEEK_FLAGS (event) & GST_SEEK_FLAG_FLUSH;
|
src->need_flush = GST_EVENT_SEEK_FLAGS (event) & GST_SEEK_FLAG_FLUSH;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,7 +70,7 @@ struct _GstFileSrc {
|
||||||
GstBuffer *mapbuf;
|
GstBuffer *mapbuf;
|
||||||
size_t mapsize;
|
size_t mapsize;
|
||||||
|
|
||||||
gboolean seek_happened;
|
gboolean need_discont;
|
||||||
gboolean need_flush;
|
gboolean need_flush;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -245,8 +245,6 @@ gst_filesrc_init (GstFileSrc * src)
|
||||||
|
|
||||||
src->mapbuf = NULL;
|
src->mapbuf = NULL;
|
||||||
src->mapsize = DEFAULT_MMAPSIZE; /* default is 4MB */
|
src->mapsize = DEFAULT_MMAPSIZE; /* default is 4MB */
|
||||||
|
|
||||||
src->seek_happened = FALSE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -660,10 +658,10 @@ gst_filesrc_get (GstPad * pad)
|
||||||
return GST_DATA (gst_event_new_flush ());
|
return GST_DATA (gst_event_new_flush ());
|
||||||
}
|
}
|
||||||
/* check for seek */
|
/* check for seek */
|
||||||
if (src->seek_happened) {
|
if (src->need_discont) {
|
||||||
GstEvent *event;
|
GstEvent *event;
|
||||||
|
|
||||||
src->seek_happened = FALSE;
|
src->need_discont = FALSE;
|
||||||
GST_DEBUG_OBJECT (src, "sending discont");
|
GST_DEBUG_OBJECT (src, "sending discont");
|
||||||
event =
|
event =
|
||||||
gst_event_new_discontinuous (FALSE, GST_FORMAT_BYTES, src->curoffset,
|
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)))
|
if (!gst_filesrc_open_file (GST_FILESRC (element)))
|
||||||
return GST_STATE_FAILURE;
|
return GST_STATE_FAILURE;
|
||||||
}
|
}
|
||||||
|
src->need_discont = TRUE;
|
||||||
break;
|
break;
|
||||||
case GST_STATE_PAUSED_TO_READY:
|
case GST_STATE_PAUSED_TO_READY:
|
||||||
if (GST_FLAG_IS_SET (element, GST_FILESRC_OPEN))
|
if (GST_FLAG_IS_SET (element, GST_FILESRC_OPEN))
|
||||||
gst_filesrc_close_file (GST_FILESRC (element));
|
gst_filesrc_close_file (GST_FILESRC (element));
|
||||||
src->seek_happened = TRUE;
|
src->need_discont = TRUE;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -910,7 +909,7 @@ gst_filesrc_srcpad_event (GstPad * pad, GstEvent * event)
|
||||||
goto error;
|
goto error;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
src->seek_happened = TRUE;
|
src->need_discont = TRUE;
|
||||||
src->need_flush = GST_EVENT_SEEK_FLAGS (event) & GST_SEEK_FLAG_FLUSH;
|
src->need_flush = GST_EVENT_SEEK_FLAGS (event) & GST_SEEK_FLAG_FLUSH;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,7 +70,7 @@ struct _GstFileSrc {
|
||||||
GstBuffer *mapbuf;
|
GstBuffer *mapbuf;
|
||||||
size_t mapsize;
|
size_t mapsize;
|
||||||
|
|
||||||
gboolean seek_happened;
|
gboolean need_discont;
|
||||||
gboolean need_flush;
|
gboolean need_flush;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue