Changeset 0da5208 for src/io/sink_sndfile.c
- Timestamp:
- Dec 18, 2018, 1:01:35 PM (6 years ago)
- Branches:
- feature/autosink, feature/cnn, feature/crepe, fix/ffmpeg5, master
- Children:
- dbad82c
- Parents:
- 20ce2ad
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/io/sink_sndfile.c
r20ce2ad r0da5208 49 49 uint_t scratch_size; 50 50 smpl_t *scratch_data; 51 int format; 51 52 }; 52 53 53 54 uint_t aubio_sink_sndfile_open(aubio_sink_sndfile_t *s); 55 56 uint_t aubio_str_extension_matches(const char_t *ext, 57 const char_t *pattern); 58 const char_t *aubio_str_get_extension(const char_t *filename); 54 59 55 60 aubio_sink_sndfile_t * new_aubio_sink_sndfile(const char_t * path, uint_t samplerate) { … … 67 72 s->samplerate = 0; 68 73 s->channels = 0; 74 75 aubio_sink_sndfile_preset_format(s, aubio_str_get_extension(path)); 69 76 70 77 // zero samplerate given. do not open yet … … 112 119 if (s->samplerate != 0 /* && s->channels != 0 */) { 113 120 return aubio_sink_sndfile_open(s); 121 } 122 return AUBIO_OK; 123 } 124 125 uint_t aubio_sink_sndfile_preset_format(aubio_sink_sndfile_t *s, 126 const char_t *fmt) 127 { 128 if (aubio_str_extension_matches(fmt, "wav")) { 129 s->format = SF_FORMAT_WAV | SF_FORMAT_PCM_16; 130 } else if (aubio_str_extension_matches(fmt, "aiff")) { 131 s->format = SF_FORMAT_AIFF | SF_FORMAT_PCM_16; 132 } else if (aubio_str_extension_matches(fmt, "flac")) { 133 s->format = SF_FORMAT_FLAC | SF_FORMAT_PCM_16; 134 } else if (aubio_str_extension_matches(fmt, "ogg")) { 135 s->format = SF_FORMAT_OGG | SF_FORMAT_VORBIS; 136 } else if (atoi(fmt) > 0x010000) { 137 s->format = atoi(fmt); 138 } else { 139 AUBIO_WRN("sink_sndfile: could not guess format for %s," 140 " using default (wav)\n", s->path); 141 s->format = SF_FORMAT_WAV | SF_FORMAT_PCM_16; 142 return AUBIO_FAIL; 114 143 } 115 144 return AUBIO_OK; … … 132 161 sfinfo.samplerate = s->samplerate; 133 162 sfinfo.channels = s->channels; 134 sfinfo.format = SF_FORMAT_WAV | SF_FORMAT_PCM_16;163 sfinfo.format = s->format; 135 164 136 165 /* try creating the file */
Note: See TracChangeset
for help on using the changeset viewer.