src/io/source_apple_audio.{c,h}: if samplerate = 1, use actual source one
authorPaul Brossier <piem@piem.org>
Fri, 27 Jul 2012 16:38:19 +0000 (10:38 -0600)
committerPaul Brossier <piem@piem.org>
Fri, 27 Jul 2012 16:38:19 +0000 (10:38 -0600)
src/io/source_apple_audio.c
src/io/source_apple_audio.h

index e5dede1..d0bc6b5 100644 (file)
@@ -89,6 +89,11 @@ aubio_source_apple_audio_t * new_aubio_source_apple_audio(char_t * path, uint_t
       kExtAudioFileProperty_FileDataFormat, &propSize, &fileFormat);
   if (err) { AUBIO_ERROR("error in ExtAudioFileGetProperty, %d\n", (int)err); goto beach;}
 
+  if (s->samplerate == 1) {
+    clientFormat.mSampleRate = fileFormat.mSampleRate;
+    s->samplerate = fileFormat.mSampleRate;
+  }
+
   // set the client format description
   err = ExtAudioFileSetProperty(s->audioFile, kExtAudioFileProperty_ClientDataFormat,
       propSize, &clientFormat);
@@ -175,4 +180,8 @@ void del_aubio_source_apple_audio(aubio_source_apple_audio_t * s){
   return;
 }
 
+uint_t aubio_source_apple_audio_get_samplerate(aubio_source_apple_audio_t * s) {
+  return s->samplerate;
+}
+
 #endif /* __APPLE__ */
index 39e47df..fe6e9cc 100644 (file)
@@ -24,6 +24,7 @@
 typedef struct _aubio_source_apple_audio_t aubio_source_apple_audio_t;
 aubio_source_apple_audio_t * new_aubio_source_apple_audio(char_t * path, uint_t samplerate, uint_t block_size);
 void aubio_source_apple_audio_do(aubio_source_apple_audio_t * s, fvec_t * read_to, uint_t * read);
+uint_t aubio_source_apple_audio_get_samplerate(aubio_source_apple_audio_t * s);
 void del_aubio_source_apple_audio(aubio_source_apple_audio_t * s);
 
 #endif /* _AUBIO_SOURCE_APPLE_AUDIO_H */