summaryrefslogtreecommitdiffstats
path: root/include/system/audio.h
diff options
context:
space:
mode:
authorEric Laurent <elaurent@google.com>2011-06-16 21:13:43 -0700
committerEric Laurent <elaurent@google.com>2011-06-16 21:13:43 -0700
commitda382248758eacd9f91d6f0a50dff3f021791c24 (patch)
tree59406d7927fc6e8ea8bdfe5f284d50741f293ba4 /include/system/audio.h
parent9f7ad372b33dc6c69cc5818aaf36e6e51ecefe29 (diff)
downloadcore-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.h30
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