ext/ladspa/gstsignalprocessor.c (gst_signal_processor_process): Fix nframes-choosing.
authorAndy Wingo <wingo@pobox.com>
Mon, 31 Jul 2006 22:27:22 +0000 (22:27 +0000)
committerAndy Wingo <wingo@pobox.com>
Mon, 31 Jul 2006 22:27:22 +0000 (22:27 +0000)
Original commit message from CVS:
2006-08-01  Andy Wingo  <wingo@pobox.com>

* ext/ladspa/gstsignalprocessor.c (gst_signal_processor_process):
Fix nframes-choosing.
(gst_signal_processor_init): Init pending_in and pending_out.

ext/ladspa/gstsignalprocessor.c

index f24dd50f1bd486158a4cc98a48f24447a69d8191..884bb1e58216e9f23fe440745286d1ac7ce3c4c1 100644 (file)
@@ -237,6 +237,10 @@ gst_signal_processor_init (GstSignalProcessor * self,
   self->audio_out = g_new0 (gfloat *, klass->num_audio_out);
   self->control_out = g_new0 (gfloat, klass->num_control_out);
 
+  /* init */
+  self->pending_in = klass->num_audio_in;
+  self->pending_out = 0;
+
   self->sample_rate = 0;
 }
 
@@ -348,8 +352,11 @@ gst_signal_processor_process (GstSignalProcessor * self)
       l1 = l1 ? l1->next : NULL, l2 = l2 ? l2->next : NULL) {
     GstSignalProcessorPad *srcpad, *sinkpad;
 
-    if (l1)
-      nframes = MIN (nframes, GST_BUFFER_SIZE (l1->data) / sizeof (gfloat));
+    if (l1) {
+      GstSignalProcessorPad *tmp = (GstSignalProcessorPad *) l1->data;
+
+      nframes = MIN (nframes, GST_BUFFER_SIZE (tmp->pen) / sizeof (gfloat));
+    }
 
     if (!l2) {
       /* the output buffers have been covered, yay -- just keep looping to check
@@ -395,6 +402,8 @@ gst_signal_processor_process (GstSignalProcessor * self)
 
   klass = GST_SIGNAL_PROCESSOR_GET_CLASS (self);
 
+  GST_INFO_OBJECT (self, "process(%u)", nframes);
+
   klass->process (self, nframes);
 
   /* reset */