mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-16 19:25:18 +00:00
gst/elements/gstfdsrc.c: reset offset counter when going READY => PAUSED. (fixes #142903)
Original commit message from CVS: reviewed by Benjamin Otte <otte@gnome.org> * gst/elements/gstfdsrc.c: (gst_fdsrc_class_init), (gst_fdsrc_change_state): reset offset counter when going READY => PAUSED. (fixes #142903)
This commit is contained in:
parent
60de88e46c
commit
eb9087b14b
3 changed files with 68 additions and 0 deletions
|
@ -1,3 +1,11 @@
|
|||
2004-06-06 David Moore <dcm@acm.org>
|
||||
|
||||
reviewed by Benjamin Otte <otte@gnome.org>
|
||||
|
||||
* gst/elements/gstfdsrc.c: (gst_fdsrc_class_init),
|
||||
(gst_fdsrc_change_state):
|
||||
reset offset counter when going READY => PAUSED. (fixes #142903)
|
||||
|
||||
2004-06-06 ed@catmur.co.uk
|
||||
|
||||
reviewed by Benjamin Otte <otte@gnome.org>
|
||||
|
|
|
@ -76,6 +76,8 @@ static void gst_fdsrc_set_property (GObject * object, guint prop_id,
|
|||
static void gst_fdsrc_get_property (GObject * object, guint prop_id,
|
||||
GValue * value, GParamSpec * pspec);
|
||||
|
||||
static GstElementStateReturn gst_fdsrc_change_state (GstElement * element);
|
||||
|
||||
static GstData *gst_fdsrc_get (GstPad * pad);
|
||||
|
||||
|
||||
|
@ -90,6 +92,7 @@ static void
|
|||
gst_fdsrc_class_init (GstFdSrcClass * klass)
|
||||
{
|
||||
GObjectClass *gobject_class;
|
||||
GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass);
|
||||
|
||||
gobject_class = G_OBJECT_CLASS (klass);
|
||||
|
||||
|
@ -111,6 +114,8 @@ gst_fdsrc_class_init (GstFdSrcClass * klass)
|
|||
|
||||
gobject_class->set_property = gst_fdsrc_set_property;
|
||||
gobject_class->get_property = gst_fdsrc_get_property;
|
||||
|
||||
gstelement_class->change_state = gst_fdsrc_change_state;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -128,6 +133,31 @@ gst_fdsrc_init (GstFdSrc * fdsrc)
|
|||
fdsrc->seq = 0;
|
||||
}
|
||||
|
||||
static GstElementStateReturn
|
||||
gst_fdsrc_change_state (GstElement * element)
|
||||
{
|
||||
GstFdSrc *src = GST_FDSRC (element);
|
||||
|
||||
switch (GST_STATE_TRANSITION (element)) {
|
||||
case GST_STATE_NULL_TO_READY:
|
||||
break;
|
||||
case GST_STATE_READY_TO_NULL:
|
||||
break;
|
||||
case GST_STATE_READY_TO_PAUSED:
|
||||
src->curoffset = 0;
|
||||
break;
|
||||
case GST_STATE_PAUSED_TO_READY:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (GST_ELEMENT_CLASS (parent_class)->change_state)
|
||||
return GST_ELEMENT_CLASS (parent_class)->change_state (element);
|
||||
|
||||
return GST_STATE_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
gst_fdsrc_set_property (GObject * object, guint prop_id, const GValue * value,
|
||||
|
|
|
@ -76,6 +76,8 @@ static void gst_fdsrc_set_property (GObject * object, guint prop_id,
|
|||
static void gst_fdsrc_get_property (GObject * object, guint prop_id,
|
||||
GValue * value, GParamSpec * pspec);
|
||||
|
||||
static GstElementStateReturn gst_fdsrc_change_state (GstElement * element);
|
||||
|
||||
static GstData *gst_fdsrc_get (GstPad * pad);
|
||||
|
||||
|
||||
|
@ -90,6 +92,7 @@ static void
|
|||
gst_fdsrc_class_init (GstFdSrcClass * klass)
|
||||
{
|
||||
GObjectClass *gobject_class;
|
||||
GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass);
|
||||
|
||||
gobject_class = G_OBJECT_CLASS (klass);
|
||||
|
||||
|
@ -111,6 +114,8 @@ gst_fdsrc_class_init (GstFdSrcClass * klass)
|
|||
|
||||
gobject_class->set_property = gst_fdsrc_set_property;
|
||||
gobject_class->get_property = gst_fdsrc_get_property;
|
||||
|
||||
gstelement_class->change_state = gst_fdsrc_change_state;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -128,6 +133,31 @@ gst_fdsrc_init (GstFdSrc * fdsrc)
|
|||
fdsrc->seq = 0;
|
||||
}
|
||||
|
||||
static GstElementStateReturn
|
||||
gst_fdsrc_change_state (GstElement * element)
|
||||
{
|
||||
GstFdSrc *src = GST_FDSRC (element);
|
||||
|
||||
switch (GST_STATE_TRANSITION (element)) {
|
||||
case GST_STATE_NULL_TO_READY:
|
||||
break;
|
||||
case GST_STATE_READY_TO_NULL:
|
||||
break;
|
||||
case GST_STATE_READY_TO_PAUSED:
|
||||
src->curoffset = 0;
|
||||
break;
|
||||
case GST_STATE_PAUSED_TO_READY:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (GST_ELEMENT_CLASS (parent_class)->change_state)
|
||||
return GST_ELEMENT_CLASS (parent_class)->change_state (element);
|
||||
|
||||
return GST_STATE_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
gst_fdsrc_set_property (GObject * object, guint prop_id, const GValue * value,
|
||||
|
|
Loading…
Reference in a new issue