diff options
author | Andy Wingo <wingo@pobox.com> | 2006-07-31 22:27:22 +0000 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2006-07-31 22:27:22 +0000 |
commit | 9457674bc0f0d31efcd5f85e99d3214dcff5c32a (patch) | |
tree | 5f850ab9c0a5c2c9f39e97c0864ac7a4f0d6b6fe | |
parent | 04547b69bc1950cd04d815c3296a7c330dafd8a8 (diff) |
ext/ladspa/gstsignalprocessor.c (gst_signal_processor_process): Fix nframes-choosing.
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.
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | ext/ladspa/gstsignalprocessor.c | 13 |
2 files changed, 15 insertions, 2 deletions
@@ -1,5 +1,9 @@ 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 (gst_signal_processor_init): No more default sample rate, although we never check that the sample rate actually gets set. Something for the future. diff --git a/ext/ladspa/gstsignalprocessor.c b/ext/ladspa/gstsignalprocessor.c index f24dd50f..884bb1e5 100644 --- a/ext/ladspa/gstsignalprocessor.c +++ b/ext/ladspa/gstsignalprocessor.c @@ -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 */ |