From: <wt...@ke...> - 2006-12-18 15:52:11
|
CVS Root: /cvs/gstreamer Module: gst-plugins-good Changes by: wtay Date: Mon Dec 18 2006 15:52:06 UTC Log message: * ext/ladspa/gstsignalprocessor.c: (gst_signal_processor_setcaps), (gst_signal_processor_event): Reset flow_state back to _OK after a flush stop so that we exit our error state after the flush. Fixes #374213 Modified files: . : ChangeLog ext/ladspa : gstsignalprocessor.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-good/ChangeLog.diff?r1=1.2668&r2=1.2669 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-good/ext/ladspa/gstsignalprocessor.c.diff?r1=1.17&r2=1.18 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-plugins-good/ChangeLog,v retrieving revision 1.2668 retrieving revision 1.2669 diff -u -d -r1.2668 -r1.2669 --- ChangeLog 18 Dec 2006 15:49:08 -0000 1.2668 +++ ChangeLog 18 Dec 2006 15:51:54 -0000 1.2669 @@ -1,3 +1,10 @@ +2006-12-18 Wim Taymans <wi...@fl...> + + * ext/ladspa/gstsignalprocessor.c: (gst_signal_processor_setcaps), + (gst_signal_processor_event): + Reset flow_state back to _OK after a flush stop so that we exit our + error state after the flush. Fixes #374213 2006-12-16 David Schleef <ds...@sc...> * sys/osxvideo/osxvideosink.h: Index: gstsignalprocessor.c RCS file: /cvs/gstreamer/gst-plugins-good/ext/ladspa/gstsignalprocessor.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- gstsignalprocessor.c 16 Aug 2006 16:50:00 -0000 1.17 +++ gstsignalprocessor.c 18 Dec 2006 15:51:54 -0000 1.18 @@ -382,25 +382,26 @@ GstStructure *s; gint sample_rate; + GST_DEBUG_OBJECT (pad, "got caps %" GST_PTR_FORMAT, caps); s = gst_caps_get_structure (caps, 0); if (!gst_structure_get_int (s, "rate", &sample_rate)) { GST_WARNING ("got no sample-rate"); goto impossible; - } else { - GST_DEBUG_OBJECT (self, "Got rate=%d", sample_rate); } + GST_DEBUG_OBJECT (self, "Got rate=%d", sample_rate); if (GST_SIGNAL_PROCESSOR_IS_RUNNING (self)) gst_signal_processor_stop (self); if (GST_SIGNAL_PROCESSOR_IS_INITIALIZED (self)) gst_signal_processor_cleanup (self); - if (!gst_signal_processor_setup (self, sample_rate)) { + if (!gst_signal_processor_setup (self, sample_rate)) goto start_failed; - self->sample_rate = sample_rate; - gst_caps_replace (&self->caps, caps); - } + self->sample_rate = sample_rate; + gst_caps_replace (&self->caps, caps); } else { GST_DEBUG_OBJECT (self, "skipping, have caps already"); } @@ -449,6 +450,16 @@ if (bclass->event) bclass->event (self, event); + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_FLUSH_START: + break; + case GST_EVENT_FLUSH_STOP: + /* clear errors now */ + self->flow_state = GST_FLOW_OK; + default: + } ret = gst_pad_event_default (pad, event); gst_object_unref (self); |