X-Git-Url: http://git.cinelerra-gg.org/git/?p=goodguy%2Fhistory.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Faudioidevice.C;h=3156dab209ab77575e2c9d9de49df660ec3d7eb0;hp=65874ddd752319610b1a91888234ed483ea20f89;hb=a19a685a46ddc630010788707d9e5b9d2342af46;hpb=21c2e6b36d6a96c2f662a89459d607b5a387f4eb diff --git a/cinelerra-5.1/cinelerra/audioidevice.C b/cinelerra-5.1/cinelerra/audioidevice.C index 65874ddd..3156dab2 100644 --- a/cinelerra-5.1/cinelerra/audioidevice.C +++ b/cinelerra-5.1/cinelerra/audioidevice.C @@ -42,9 +42,9 @@ #define GET_8BIT(i) ((double)(buffer[(i)])) #define GET_16BIT(i) ((double)(*(int16_t*)&buffer[(i)])) -#define GET_24BIT(i) (zi=(i), ((zi&1) ? \ - ((double)((*(uint8_t*)&buffer[zi]) | (*(int16_t*)&buffer[zi+1] << 8))) : \ - ((double)((*(uint16_t*)&buffer[zi]) | (*(int8_t*)&buffer[zi+2] << 16))))) +#define GET_24BIT(i) ((i&1) ? \ + ((double)((*(uint8_t*)&buffer[i]) | (*(int16_t*)&buffer[i+1] << 8))) : \ + ((double)((*(uint16_t*)&buffer[i]) | (*(int8_t*)&buffer[i+2] << 16)))) #define GET_32BIT(i) ((double)(*(int32_t *)&buffer[(i)])) #define GET_8BITS(j,k) { double sample = gain*GET_8BIT(k); STORE(j); } @@ -103,7 +103,6 @@ int AudioDevice::read_buffer(Samples **data, int channels, int xfr_samples = xfr_size / frame_size; for( int ich=0; ichget_data() + input_offset; if( map51_2 ) { @@ -200,6 +199,7 @@ while( is_recording ) { else { --input_buffer_count; printf("AudioDevice::run_input: buffer overflow\n"); + result = 1; } ibfr = &input[input_buffer_in]; ibfr->size = 0; @@ -208,7 +208,7 @@ while( is_recording ) { buffer_lock->unlock(); polling_lock->unlock(); } - else { + if( result ) { perror("AudioDevice::run_input"); usleep(250000); }