summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/AudioPlayer.cpp
diff options
context:
space:
mode:
authorJean-Michel Trivi <jmtrivi@google.com>2012-02-02 09:06:31 -0800
committerJean-Michel Trivi <jmtrivi@google.com>2012-02-13 12:39:54 -0800
commit7a8b0ed6419e57dd8b41d3806893d63d3df91aab (patch)
treeda2076d221f7eb3e26db190d51173c04a91e0788 /media/libstagefright/AudioPlayer.cpp
parent1f5ce8b0941c9c6baadd40d151634145f6d5a35c (diff)
downloadframeworks_av-7a8b0ed6419e57dd8b41d3806893d63d3df91aab.zip
frameworks_av-7a8b0ed6419e57dd8b41d3806893d63d3df91aab.tar.gz
frameworks_av-7a8b0ed6419e57dd8b41d3806893d63d3df91aab.tar.bz2
Playback rate on MediaPlayer
Add support for modifying the playback rate of a MediaPlayer by altering the sample rate of its AudioTrack. The playback rate is expressed in permille, where 1000 is the playback at normal speed. Change-Id: I981d060ab32f7bae7a767e82c60c88ae635dceed
Diffstat (limited to 'media/libstagefright/AudioPlayer.cpp')
-rw-r--r--media/libstagefright/AudioPlayer.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/media/libstagefright/AudioPlayer.cpp b/media/libstagefright/AudioPlayer.cpp
index 9a9c3ef..df27566 100644
--- a/media/libstagefright/AudioPlayer.cpp
+++ b/media/libstagefright/AudioPlayer.cpp
@@ -268,6 +268,16 @@ bool AudioPlayer::reachedEOS(status_t *finalStatus) {
return mReachedEOS;
}
+status_t AudioPlayer::setPlaybackRatePermille(int32_t ratePermille) {
+ if (mAudioSink.get() != NULL) {
+ return mAudioSink->setPlaybackRatePermille(ratePermille);
+ } else if (mAudioTrack != NULL){
+ return mAudioTrack->setSampleRate(ratePermille * mSampleRate / 1000);
+ } else {
+ return NO_INIT;
+ }
+}
+
// static
size_t AudioPlayer::AudioSinkCallback(
MediaPlayerBase::AudioSink *audioSink,