- Timestamp:
- Dec 13, 2018, 2:14:33 AM (6 years ago)
- Branches:
- feature/autosink, feature/cnn, feature/crepe, fix/ffmpeg5, master
- Children:
- 1a30c43
- Parents:
- e6a5aa5
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/io/sink.c
re6a5aa5 r56174a2 54 54 }; 55 55 56 #ifdef HAVE_VORBISENC 57 typedef struct _aubio_sink_vorbis_t aubio_sink_vorbis_t; 58 extern aubio_sink_vorbis_t * new_aubio_sink_vorbis(const char_t *uri, 59 uint_t samplerate); 60 extern void del_aubio_sink_vorbis (aubio_sink_vorbis_t *s); 61 extern uint_t aubio_sink_vorbis_open(aubio_sink_vorbis_t *s); 62 extern uint_t aubio_sink_vorbis_close(aubio_sink_vorbis_t *s); 63 extern uint_t aubio_sink_vorbis_preset_channels(aubio_sink_vorbis_t *s, 64 uint_t channels); 65 extern uint_t aubio_sink_vorbis_preset_samplerate(aubio_sink_vorbis_t *s, 66 uint_t samplerate); 67 extern uint_t aubio_sink_vorbis_get_channels(aubio_sink_vorbis_t *s); 68 extern uint_t aubio_sink_vorbis_get_samplerate(aubio_sink_vorbis_t *s); 69 extern void aubio_sink_vorbis_do(aubio_sink_vorbis_t *s, fvec_t* 70 write_data, uint_t write); 71 extern void aubio_sink_vorbis_do_multi(aubio_sink_vorbis_t *s, fmat_t* 72 write_data, uint_t write); 73 #endif /* HAVE_VORBISENC */ 74 75 static const char_t *aubio_get_extension(const char_t *filename) 76 { 77 // find last occurence of dot character 78 const char_t *ext = strrchr(filename, '.'); 79 if (!ext || ext == filename) return ""; 80 else return ext + 1; 81 } 82 56 83 aubio_sink_t * new_aubio_sink(const char_t * uri, uint_t samplerate) { 57 84 aubio_sink_t * s = AUBIO_NEW(aubio_sink_t); 85 86 #ifdef HAVE_VORBISENC 87 // check if this uri could be for us 88 uint_t match_oggstream = 0; 89 if (strcmp (aubio_get_extension(uri), "ogg") == 0) match_oggstream = 1; 90 if (match_oggstream) { 91 s->sink = (void *)new_aubio_sink_vorbis(uri, samplerate); 92 if (s->sink) { 93 s->s_do = (aubio_sink_do_t)(aubio_sink_vorbis_do); 94 s->s_do_multi = (aubio_sink_do_multi_t)(aubio_sink_vorbis_do_multi); 95 s->s_preset_samplerate = (aubio_sink_preset_samplerate_t)(aubio_sink_vorbis_preset_samplerate); 96 s->s_preset_channels = (aubio_sink_preset_channels_t)(aubio_sink_vorbis_preset_channels); 97 s->s_get_samplerate = (aubio_sink_get_samplerate_t)(aubio_sink_vorbis_get_samplerate); 98 s->s_get_channels = (aubio_sink_get_channels_t)(aubio_sink_vorbis_get_channels); 99 s->s_close = (aubio_sink_close_t)(aubio_sink_vorbis_close); 100 s->s_del = (del_aubio_sink_t)(del_aubio_sink_vorbis); 101 return s; 102 } 103 } 104 #endif /* HAVE_VORBISENC */ 105 58 106 #ifdef HAVE_SINK_APPLE_AUDIO 59 107 s->sink = (void *)new_aubio_sink_apple_audio(uri, samplerate);
Note: See TracChangeset
for help on using the changeset viewer.