From fc771c97a45fcc4afa103f3090d61681a0dd4002 Mon Sep 17 00:00:00 2001 From: Steve Baker Date: Wed, 29 May 2002 18:54:17 +0000 Subject: use new dparams api. run demo_dparams to hear how smooth it is now Original commit message from CVS: use new dparams api. run demo_dparams to hear how smooth it is now --- ext/ladspa/gstladspa.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) (limited to 'ext') diff --git a/ext/ladspa/gstladspa.c b/ext/ladspa/gstladspa.c index 0e75c41d..75568482 100644 --- a/ext/ladspa/gstladspa.c +++ b/ext/ladspa/gstladspa.c @@ -811,15 +811,16 @@ gst_ladspa_loop(GstElement *element) } } - num_to_process = GST_DPMAN_PREPROCESS(ladspa->dpman, ladspa->buffersize, ladspa->timestamp); + GST_DPMAN_PREPROCESS(ladspa->dpman, ladspa->buffersize, ladspa->timestamp); num_processed = 0; /* split up processing of the buffer into chunks so that dparams can * be updated when required. * In many cases the buffer will be processed in one chunk anyway. */ - while(GST_DPMAN_PROCESS_CHUNK(ladspa->dpman, num_to_process, num_processed)) { + while(GST_DPMAN_PROCESS(ladspa->dpman, num_processed)) { + num_to_process = GST_DPMAN_FRAMES_TO_PROCESS(ladspa->dpman); for (i=0 ; iconnect_port (ladspa->handle, oclass->sinkpad_portnums[i], data_in[i]); } @@ -834,8 +835,7 @@ gst_ladspa_loop(GstElement *element) data_out[i] += num_to_process; } - num_processed = num_to_process; - num_to_process = 0; + num_processed += num_to_process; } for (i=0 ; idpman, num_samples, GST_BUFFER_TIMESTAMP(buf)); + GST_DPMAN_PREPROCESS(ladspa->dpman, num_samples, GST_BUFFER_TIMESTAMP(buf)); num_processed = 0; /* split up processing of the buffer into chunks so that dparams can * be updated when required. * In many cases the buffer will be processed in one chunk anyway. */ - while(GST_DPMAN_PROCESS_CHUNK(ladspa->dpman, num_to_process, num_processed)) { + while(GST_DPMAN_PROCESS(ladspa->dpman, num_processed)) { + num_to_process = GST_DPMAN_FRAMES_TO_PROCESS(ladspa->dpman); + desc->connect_port(ladspa->handle,oclass->sinkpad_portnums[0],data_in); for (i=0 ; iconnect_port(ladspa->handle,oclass->srcpad_portnums[i],data_out[i]); @@ -955,7 +957,6 @@ gst_ladspa_chain (GstPad *pad, GstBuffer *buf) data_out[i] += num_to_process; } num_processed += num_to_process; - num_to_process = 0; } if (numsrcpads > 0){ @@ -1012,7 +1013,7 @@ gst_ladspa_get(GstPad *pad) data = (LADSPA_Data *) GST_BUFFER_DATA(buf); desc = ladspa->descriptor; - num_to_process = GST_DPMAN_PREPROCESS(ladspa->dpman, ladspa->buffersize, ladspa->timestamp); + GST_DPMAN_PREPROCESS(ladspa->dpman, ladspa->buffersize, ladspa->timestamp); num_processed = 0; /* update timestamp */ @@ -1022,13 +1023,14 @@ gst_ladspa_get(GstPad *pad) * be updated when required. * In many cases the buffer will be processed in one chunk anyway. */ - while(GST_DPMAN_PROCESS_CHUNK(ladspa->dpman, num_to_process, num_processed)) { + while(GST_DPMAN_PROCESS(ladspa->dpman, num_processed)) { + num_to_process = GST_DPMAN_FRAMES_TO_PROCESS(ladspa->dpman); + desc->connect_port(ladspa->handle,oclass->srcpad_portnums[0],data); desc->run(ladspa->handle, num_to_process); data += num_to_process; num_processed = num_to_process; - num_to_process = 0; } return buf; -- cgit v1.2.1