- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
tests/src/io/test-sink_wavwrite.c
r05774ba3 r9720945 2 2 #include <aubio.h> 3 3 #include "utils_tests.h" 4 5 #define aubio_sink_custom "wavwrite"6 7 #ifdef HAVE_WAVWRITE8 #define HAVE_AUBIO_SINK_CUSTOM9 #define aubio_sink_custom_t aubio_sink_wavwrite_t10 #define new_aubio_sink_custom new_aubio_sink_wavwrite11 #define del_aubio_sink_custom del_aubio_sink_wavwrite12 #define aubio_sink_custom_do aubio_sink_wavwrite_do13 #define aubio_sink_custom_do_multi aubio_sink_wavwrite_do_multi14 #define aubio_sink_custom_close aubio_sink_wavwrite_close15 #define aubio_sink_custom_preset_samplerate aubio_sink_wavwrite_preset_samplerate16 #define aubio_sink_custom_preset_channels aubio_sink_wavwrite_preset_channels17 #define aubio_sink_custom_get_samplerate aubio_sink_wavwrite_get_samplerate18 #define aubio_sink_custom_get_channels aubio_sink_wavwrite_get_channels19 #endif /* HAVE_WAVWRITE */20 21 #include "base-sink_custom.h"22 4 23 5 // this file uses the unstable aubio api, please use aubio_sink instead … … 26 8 int main (int argc, char **argv) 27 9 { 28 return base_main(argc, argv); 10 sint_t err = 0; 11 12 if (argc < 3) { 13 err = 2; 14 PRINT_ERR("not enough arguments\n"); 15 PRINT_MSG("usage: %s <input_path> <output_path> [samplerate] [hop_size]\n", argv[0]); 16 return err; 17 } 18 19 #ifdef HAVE_WAVWRITE 20 uint_t samplerate = 0; 21 uint_t hop_size = 512; 22 uint_t n_frames = 0, read = 0; 23 24 char_t *source_path = argv[1]; 25 char_t *sink_path = argv[2]; 26 27 if ( argc >= 4 ) samplerate = atoi(argv[3]); 28 if ( argc >= 5 ) hop_size = atoi(argv[4]); 29 if ( argc >= 6 ) { 30 err = 2; 31 PRINT_ERR("too many arguments\n"); 32 return err; 33 } 34 35 fvec_t *vec = new_fvec(hop_size); 36 if (!vec) { err = 1; goto beach_fvec; } 37 38 aubio_source_t *i = new_aubio_source(source_path, samplerate, hop_size); 39 if (!i) { err = 1; goto beach_source; } 40 41 if (samplerate == 0 ) samplerate = aubio_source_get_samplerate(i); 42 43 aubio_sink_wavwrite_t *o = new_aubio_sink_wavwrite(sink_path, samplerate); 44 if (!o) { err = 1; goto beach_sink; } 45 46 do { 47 aubio_source_do(i, vec, &read); 48 aubio_sink_wavwrite_do(o, vec, read); 49 n_frames += read; 50 } while ( read == hop_size ); 51 52 PRINT_MSG("read %d frames at %dHz (%d blocks) from %s written to %s\n", 53 n_frames, samplerate, n_frames / hop_size, 54 source_path, sink_path); 55 56 del_aubio_sink_wavwrite(o); 57 beach_sink: 58 del_aubio_source(i); 59 beach_source: 60 del_fvec(vec); 61 beach_fvec: 62 #else 63 err = 3; 64 PRINT_ERR("aubio was not compiled with aubio_sink_wavwrite\n"); 65 #endif /* HAVE_WAVWRITE */ 66 return err; 29 67 }
Note: See TracChangeset
for help on using the changeset viewer.