summaryrefslogtreecommitdiffstats
path: root/include/media
diff options
context:
space:
mode:
authorRicardo Garcia <rago@google.com>2015-04-30 18:39:16 -0700
committerRicardo Garcia <rago@google.com>2015-06-22 16:08:40 -0700
commit6c7f062d3149d6890daaee64828959ad6f61ea54 (patch)
treedcab2e17178bf6d01ead75fad5df883961a6e195 /include/media
parentfa907d4ee326c7bb9cbb4882ab7c0ec42bbceee3 (diff)
downloadframeworks_av-6c7f062d3149d6890daaee64828959ad6f61ea54.zip
frameworks_av-6c7f062d3149d6890daaee64828959ad6f61ea54.tar.gz
frameworks_av-6c7f062d3149d6890daaee64828959ad6f61ea54.tar.bz2
Using centralized isAudioPlaybackRateValid to validate parameters
Centralized validation code bug: 20701446 Change-Id: I9d9941c7639c05b2afe069ff4f858c693c910bfe
Diffstat (limited to 'include/media')
-rw-r--r--include/media/AudioResamplerPublic.h17
1 files changed, 17 insertions, 0 deletions
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