summaryrefslogtreecommitdiffstats
path: root/media/libmedia
diff options
context:
space:
mode:
authorAndy Hung <hunga@google.com>2014-08-11 20:26:28 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-08-11 18:20:32 +0000
commit306c92dabc524f408445f7da2524c7a5e77ade63 (patch)
tree3e7b9269223865424df13a4efc513ecfe57af69c /media/libmedia
parentde975ca87c3dbdf9b7d92dae54b3446670b2a50e (diff)
parentcd04484f4837b8ca0041d118286ab6a98e84fc75 (diff)
downloadframeworks_av-306c92dabc524f408445f7da2524c7a5e77ade63.zip
frameworks_av-306c92dabc524f408445f7da2524c7a5e77ade63.tar.gz
frameworks_av-306c92dabc524f408445f7da2524c7a5e77ade63.tar.bz2
Merge "Extend downsampling ratios greater than 2:1" into lmp-dev
Diffstat (limited to 'media/libmedia')
-rw-r--r--media/libmedia/AudioTrack.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/media/libmedia/AudioTrack.cpp b/media/libmedia/AudioTrack.cpp
index b5c9125..d87e6f5 100644
--- a/media/libmedia/AudioTrack.cpp
+++ b/media/libmedia/AudioTrack.cpp
@@ -28,6 +28,7 @@
#include <utils/Log.h>
#include <private/media/AudioTrackShared.h>
#include <media/IAudioFlinger.h>
+#include <media/AudioResamplerPublic.h>
#define WAIT_PERIOD_MS 10
#define WAIT_STREAM_END_TIMEOUT_SEC 120
@@ -82,7 +83,7 @@ status_t AudioTrack::getMinFrameCount(
}
*frameCount = (sampleRate == 0) ? afFrameCount * minBufCount :
- afFrameCount * minBufCount * sampleRate / afSampleRate;
+ afFrameCount * minBufCount * uint64_t(sampleRate) / afSampleRate;
// The formula above should always produce a non-zero value, but return an error
// in the unlikely event that it does not, as that's part of the API contract.
if (*frameCount == 0) {
@@ -646,8 +647,7 @@ status_t AudioTrack::setSampleRate(uint32_t rate)
if (AudioSystem::getOutputSamplingRateForAttr(&afSamplingRate, &mAttributes) != NO_ERROR) {
return NO_INIT;
}
- // Resampler implementation limits input sampling rate to 2 x output sampling rate.
- if (rate == 0 || rate > afSamplingRate*2 ) {
+ if (rate == 0 || rate > afSamplingRate * AUDIO_RESAMPLER_DOWN_RATIO_MAX) {
return BAD_VALUE;
}
@@ -1002,7 +1002,7 @@ status_t AudioTrack::createTrack_l(size_t epoch)
minBufCount = nBuffering;
}
- size_t minFrameCount = (afFrameCount*mSampleRate*minBufCount)/afSampleRate;
+ size_t minFrameCount = afFrameCount * minBufCount * uint64_t(mSampleRate) / afSampleRate;
ALOGV("minFrameCount: %zu, afFrameCount=%zu, minBufCount=%d, sampleRate=%u, afSampleRate=%u"
", afLatency=%d",
minFrameCount, afFrameCount, minBufCount, mSampleRate, afSampleRate, afLatency);