mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 12:11:13 +00:00
gst/modplug/gstmodplug.cc: handle events - don't do crap when a discont arrives that's not necessary
Original commit message from CVS: * gst/modplug/gstmodplug.cc: handle events - don't do crap when a discont arrives that's not necessary This allows correct loading and playback of mods in Rhythmbox
This commit is contained in:
parent
7dc81ddbcc
commit
94f1403b7b
2 changed files with 18 additions and 0 deletions
|
@ -1,3 +1,10 @@
|
|||
2004-03-14 Benjamin Otte <otte@gnome.org>
|
||||
|
||||
* gst/modplug/gstmodplug.cc:
|
||||
handle events - don't do crap when a discont arrives that's not
|
||||
necessary
|
||||
This allows correct loading and playback of mods in Rhythmbox
|
||||
|
||||
2004-03-14 Benjamin Otte <otte@gnome.org>
|
||||
|
||||
* configure.ac:
|
||||
|
|
|
@ -270,6 +270,7 @@ gst_modplug_init (GstModPlug *modplug)
|
|||
modplug->buffer_in = NULL;
|
||||
|
||||
modplug->state = MODPLUG_STATE_NEED_TUNE;
|
||||
GST_FLAG_SET (modplug, GST_ELEMENT_EVENT_AWARE);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -484,6 +485,7 @@ gst_modplug_fixate (GstPad *pad, const GstCaps *caps)
|
|||
static void
|
||||
gst_modplug_handle_event (GstModPlug *modplug)
|
||||
{
|
||||
gint64 value;
|
||||
guint32 remaining;
|
||||
GstEvent *event;
|
||||
|
||||
|
@ -495,7 +497,16 @@ gst_modplug_handle_event (GstModPlug *modplug)
|
|||
}
|
||||
|
||||
switch (GST_EVENT_TYPE (event)) {
|
||||
case GST_EVENT_EOS:
|
||||
gst_event_unref (event);
|
||||
break;
|
||||
case GST_EVENT_DISCONTINUOUS:
|
||||
if (gst_event_discont_get_value (event, GST_FORMAT_BYTES, &value)) {
|
||||
if (remaining == value) {
|
||||
gst_event_unref (event);
|
||||
break;
|
||||
}
|
||||
}
|
||||
gst_bytestream_flush_fast (modplug->bs, remaining);
|
||||
default:
|
||||
gst_pad_event_default (modplug->sinkpad, event);
|
||||
|
|
Loading…
Reference in a new issue