diff options
| author | Eric Laurent <elaurent@google.com> | 2011-06-16 21:13:43 -0700 |
|---|---|---|
| committer | Eric Laurent <elaurent@google.com> | 2011-06-16 21:13:43 -0700 |
| commit | da382248758eacd9f91d6f0a50dff3f021791c24 (patch) | |
| tree | 59406d7927fc6e8ea8bdfe5f284d50741f293ba4 /include/system/audio.h | |
| parent | 9f7ad372b33dc6c69cc5818aaf36e6e51ecefe29 (diff) | |
| download | core-da382248758eacd9f91d6f0a50dff3f021791c24.tar.gz core-da382248758eacd9f91d6f0a50dff3f021791c24.tar.bz2 core-da382248758eacd9f91d6f0a50dff3f021791c24.zip | |
Fixed some audio helper functions
Make sure audio_is_valid_format() is true only
for formats supported by AudioTrack and AudioRecord.
Generalized audio_is_linear_pcm().
Added audio_bytes_per_sample() function.
Change-Id: If588af6c08f09796ab04bccbbd6e720f1e914412
Diffstat (limited to 'include/system/audio.h')
| -rw-r--r-- | include/system/audio.h | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/include/system/audio.h b/include/system/audio.h index 32945007e..2e261cebe 100644 --- a/include/system/audio.h +++ b/include/system/audio.h @@ -369,6 +369,10 @@ static inline bool audio_is_valid_format(uint32_t format) { switch (format & AUDIO_FORMAT_MAIN_MASK) { case AUDIO_FORMAT_PCM: + if (format != AUDIO_FORMAT_PCM_16_BIT && + format != AUDIO_FORMAT_PCM_8_BIT) { + return false; + } case AUDIO_FORMAT_MP3: case AUDIO_FORMAT_AMR_NB: case AUDIO_FORMAT_AMR_WB: @@ -384,16 +388,30 @@ static inline bool audio_is_valid_format(uint32_t format) static inline bool audio_is_linear_pcm(uint32_t format) { + return ((format & AUDIO_FORMAT_MAIN_MASK) == AUDIO_FORMAT_PCM); +} + +static inline size_t audio_bytes_per_sample(uint32_t format) +{ + size_t size = 0; + switch (format) { - case AUDIO_FORMAT_PCM_16_BIT: - case AUDIO_FORMAT_PCM_8_BIT: - return true; - default: - return false; + case AUDIO_FORMAT_PCM_32_BIT: + case AUDIO_FORMAT_PCM_8_24_BIT: + size = sizeof(int32_t); + break; + case AUDIO_FORMAT_PCM_16_BIT: + size = sizeof(int16_t); + break; + case AUDIO_FORMAT_PCM_8_BIT: + size = sizeof(uint8_t); + break; + default: + break; } + return size; } - __END_DECLS #endif // ANDROID_AUDIO_CORE_H |
