From 6c7f062d3149d6890daaee64828959ad6f61ea54 Mon Sep 17 00:00:00 2001 From: Ricardo Garcia Date: Thu, 30 Apr 2015 18:39:16 -0700 Subject: Using centralized isAudioPlaybackRateValid to validate parameters Centralized validation code bug: 20701446 Change-Id: I9d9941c7639c05b2afe069ff4f858c693c910bfe --- include/media/AudioResamplerPublic.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'include/media') diff --git a/include/media/AudioResamplerPublic.h b/include/media/AudioResamplerPublic.h index 6cf2ca9..055f724 100644 --- a/include/media/AudioResamplerPublic.h +++ b/include/media/AudioResamplerPublic.h @@ -108,6 +108,23 @@ static inline bool isAudioPlaybackRateEqual(const AudioPlaybackRate &pr1, pr2.mFallbackMode == pr2.mFallbackMode; } +static inline bool isAudioPlaybackRateValid(const AudioPlaybackRate &playbackRate) { + if (playbackRate.mFallbackMode == AUDIO_TIMESTRETCH_FALLBACK_FAIL && + (playbackRate.mStretchMode == AUDIO_TIMESTRETCH_STRETCH_SPEECH || + playbackRate.mStretchMode == AUDIO_TIMESTRETCH_STRETCH_DEFAULT)) { + //test sonic specific constraints + return playbackRate.mSpeed >= TIMESTRETCH_SONIC_SPEED_MIN && + playbackRate.mSpeed <= TIMESTRETCH_SONIC_SPEED_MAX && + playbackRate.mPitch >= AUDIO_TIMESTRETCH_PITCH_MIN && + playbackRate.mPitch <= AUDIO_TIMESTRETCH_PITCH_MAX; + } else { + return playbackRate.mSpeed >= AUDIO_TIMESTRETCH_SPEED_MIN && + playbackRate.mSpeed <= AUDIO_TIMESTRETCH_SPEED_MAX && + playbackRate.mPitch >= AUDIO_TIMESTRETCH_PITCH_MIN && + playbackRate.mPitch <= AUDIO_TIMESTRETCH_PITCH_MAX; + } +} + // TODO: Consider putting these inlines into a class scope // Returns the source frames needed to resample to destination frames. This is not a precise -- cgit v1.1