diff options
author | Andy Hung <hunga@google.com> | 2015-04-10 03:28:12 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-04-10 03:28:12 +0000 |
commit | 7d014e50b3acd60e73ed7d7a74dc58485c7a413c (patch) | |
tree | d2d5a07889b721c5d775c9da8c9dbc0531d19173 /include/media/AudioResamplerPublic.h | |
parent | e62e16371b6c2f33072b3345e1d1853673b9a3d8 (diff) | |
parent | 8edb8dc44b8a2f81bdb5db645b6b708548771a31 (diff) | |
download | frameworks_av-7d014e50b3acd60e73ed7d7a74dc58485c7a413c.zip frameworks_av-7d014e50b3acd60e73ed7d7a74dc58485c7a413c.tar.gz frameworks_av-7d014e50b3acd60e73ed7d7a74dc58485c7a413c.tar.bz2 |
Merge "Add playback rate to AudioTrack"
Diffstat (limited to 'include/media/AudioResamplerPublic.h')
-rw-r--r-- | include/media/AudioResamplerPublic.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/include/media/AudioResamplerPublic.h b/include/media/AudioResamplerPublic.h index 3c30148..07d946d 100644 --- a/include/media/AudioResamplerPublic.h +++ b/include/media/AudioResamplerPublic.h @@ -42,6 +42,8 @@ #define AUDIO_TIMESTRETCH_PITCH_MAX 2.0f #define AUDIO_TIMESTRETCH_PITCH_NORMAL 1.0f +// TODO: Consider putting these inlines into a class scope + // Returns the source frames needed to resample to destination frames. This is not a precise // value and depends on the resampler (and possibly how it handles rounding internally). // Nevertheless, this should be an upper bound on the requirements of the resampler. @@ -66,4 +68,13 @@ static inline size_t destinationFramesPossible(size_t srcFrames, uint32_t srcSam return dstFrames > 2 ? dstFrames - 2 : 0; } +static inline size_t sourceFramesNeededWithTimestretch( + uint32_t srcSampleRate, size_t dstFramesRequired, uint32_t dstSampleRate, + float speed) { + // required is the number of input frames the resampler needs + size_t required = sourceFramesNeeded(srcSampleRate, dstFramesRequired, dstSampleRate); + // to deliver this, the time stretcher requires: + return required * (double)speed + 1 + 1; // accounting for rounding dependencies +} + #endif // ANDROID_AUDIO_RESAMPLER_PUBLIC_H |