diff options
author | Glenn Kasten <gkasten@google.com> | 2014-01-09 12:24:48 -0800 |
---|---|---|
committer | Glenn Kasten <gkasten@google.com> | 2014-05-06 09:11:52 -0700 |
commit | 34a37bdebb3d606dac7c7d1dd7a0effdb59bd3d6 (patch) | |
tree | 88dcee1bd4ad4e327695ef5057b825890ce556b4 /media | |
parent | 29e594c520e22b94b540873f72312614cc3fdca1 (diff) | |
download | frameworks_base-34a37bdebb3d606dac7c7d1dd7a0effdb59bd3d6.zip frameworks_base-34a37bdebb3d606dac7c7d1dd7a0effdb59bd3d6.tar.gz frameworks_base-34a37bdebb3d606dac7c7d1dd7a0effdb59bd3d6.tar.bz2 |
Add AudioFormat.getBytesPerSample and use it
Change-Id: I90a40987ea99006af4a6e31136078c04976eb54d
Diffstat (limited to 'media')
-rw-r--r-- | media/java/android/media/AudioFormat.java | 15 | ||||
-rw-r--r-- | media/java/android/media/AudioRecord.java | 2 | ||||
-rw-r--r-- | media/java/android/media/AudioTrack.java | 2 | ||||
-rw-r--r-- | media/java/android/media/JetPlayer.java | 6 |
4 files changed, 21 insertions, 4 deletions
diff --git a/media/java/android/media/AudioFormat.java b/media/java/android/media/AudioFormat.java index ad0d459..6b524b5 100644 --- a/media/java/android/media/AudioFormat.java +++ b/media/java/android/media/AudioFormat.java @@ -139,4 +139,19 @@ public class AudioFormat { public static final int CHANNEL_IN_FRONT_BACK = CHANNEL_IN_FRONT | CHANNEL_IN_BACK; // CHANNEL_IN_ALL is not yet defined; if added then it should match AUDIO_CHANNEL_IN_ALL + /** @hide */ + public static int getBytesPerSample(int audioFormat) + { + switch (audioFormat) { + case ENCODING_PCM_8BIT: + return 1; + case ENCODING_PCM_16BIT: + case ENCODING_DEFAULT: + return 2; + case ENCODING_INVALID: + default: + throw new IllegalArgumentException("Bad audio format " + audioFormat); + } + } + } diff --git a/media/java/android/media/AudioRecord.java b/media/java/android/media/AudioRecord.java index a4891f8..384e120 100644 --- a/media/java/android/media/AudioRecord.java +++ b/media/java/android/media/AudioRecord.java @@ -319,7 +319,7 @@ public class AudioRecord // NB: this section is only valid with PCM data. // To update when supporting compressed formats int frameSizeInBytes = mChannelCount - * (mAudioFormat == AudioFormat.ENCODING_PCM_8BIT ? 1 : 2); + * (AudioFormat.getBytesPerSample(mAudioFormat)); if ((audioBufferSize % frameSizeInBytes != 0) || (audioBufferSize < 1)) { throw new IllegalArgumentException("Invalid audio buffer size."); } diff --git a/media/java/android/media/AudioTrack.java b/media/java/android/media/AudioTrack.java index 17840f2..1899685 100644 --- a/media/java/android/media/AudioTrack.java +++ b/media/java/android/media/AudioTrack.java @@ -518,7 +518,7 @@ public class AudioTrack // NB: this section is only valid with PCM data. // To update when supporting compressed formats int frameSizeInBytes = mChannelCount - * (mAudioFormat == AudioFormat.ENCODING_PCM_8BIT ? 1 : 2); + * (AudioFormat.getBytesPerSample(mAudioFormat)); if ((audioBufferSize % frameSizeInBytes != 0) || (audioBufferSize < 1)) { throw new IllegalArgumentException("Invalid audio buffer size."); } diff --git a/media/java/android/media/JetPlayer.java b/media/java/android/media/JetPlayer.java index bd91fc5..7735e78 100644 --- a/media/java/android/media/JetPlayer.java +++ b/media/java/android/media/JetPlayer.java @@ -169,9 +169,11 @@ public class JetPlayer native_setup(new WeakReference<JetPlayer>(this), JetPlayer.getMaxTracks(), - // bytes to frame conversion: sample format is ENCODING_PCM_16BIT, 2 channels + // bytes to frame conversion: // 1200 == minimum buffer size in frames on generation 1 hardware - Math.max(1200, buffSizeInBytes / 4)); + Math.max(1200, buffSizeInBytes / + (AudioFormat.getBytesPerSample(AudioFormat.ENCODING_PCM_16BIT) * + 2 /*channels*/))); } } |