summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/media/AudioResamplerPublic.h17
-rw-r--r--include/media/Visualizer.h3
2 files changed, 19 insertions, 1 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
diff --git a/include/media/Visualizer.h b/include/media/Visualizer.h
index b92f816..186e018 100644
--- a/include/media/Visualizer.h
+++ b/include/media/Visualizer.h
@@ -95,7 +95,8 @@ public:
// install a callback to receive periodic captures. The capture rate is specified in milliHertz
// and the capture format is according to flags (see callback_flags).
- status_t setCaptureCallBack(capture_cbk_t cbk, void* user, uint32_t flags, uint32_t rate);
+ status_t setCaptureCallBack(capture_cbk_t cbk, void* user, uint32_t flags, uint32_t rate,
+ bool force = false);
// set the capture size capture size must be a power of two in the range
// [VISUALIZER_CAPTURE_SIZE_MAX. VISUALIZER_CAPTURE_SIZE_MIN]