X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fvirtualaconsole.C;h=02a86dcf8b2f972ea23ed8111d512d0aeb31c5de;hb=eecf057a9d6b8c8cffc7d0001bff89bc9cac7b05;hp=f4d07bbfb3a00032f8b70d5eaffcb0143c0aca57;hpb=21c2e6b36d6a96c2f662a89459d607b5a387f4eb;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/virtualaconsole.C b/cinelerra-5.1/cinelerra/virtualaconsole.C index f4d07bbf..02a86dcf 100644 --- a/cinelerra-5.1/cinelerra/virtualaconsole.C +++ b/cinelerra-5.1/cinelerra/virtualaconsole.C @@ -163,30 +163,23 @@ if(debug) printf("VirtualAConsole::process_buffer %d\n", __LINE__); meter_render_end = len; double peak = 0; - - for( ; j < meter_render_end; j++) - { + while( j < meter_render_end ) { // Level history comes before clipping to get over status - double *sample = ¤t_buffer[j]; - - - if(fabs(*sample) > peak) peak = fabs(*sample); + double *sample = ¤t_buffer[j++]; + if( fabs(*sample) > peak ) peak = fabs(*sample); // Make the output device clip it // if(*sample > 1) *sample = 1; // else // if(*sample < -1) *sample = -1; } - - if(renderengine->command->realtime) - { - arender->level_history[i][arender->current_level[i]] = peak; - arender->level_samples[arender->current_level[i]] = - renderengine->command->get_direction() == PLAY_REVERSE ? + if( renderengine->command->realtime ) { + int direction = renderengine->command->get_direction(); + int64_t pos = direction == PLAY_REVERSE ? start_position - j : - start_position + j; - arender->current_level[i] = arender->get_next_peak(arender->current_level[i]); - } + start_position + j ; + arender->meter_history->set_peak(i, peak, pos); + } } } } @@ -247,7 +240,7 @@ if(debug) printf("VirtualAConsole::process_buffer %d\n", __LINE__); if(renderengine->command->get_speed() < 1) { // number of samples to skip - int interpolate_len = (int)(1.0 / renderengine->command->get_speed()); + int interpolate_len = (int)(1.0 / renderengine->command->get_speed()); real_output_len = len * interpolate_len; for(in = len - 1, out = real_output_len - 1; in >= 0; )