+2006-12-18 Wim Taymans <wim@fluendo.com>
+
+ * 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@schleef.org>
* sys/osxvideo/osxvideosink.h:
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;
- } else {
- 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");
}
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;
+ break;
+ default:
+ break;
+ }
ret = gst_pad_event_default (pad, event);
gst_object_unref (self);