diff options
author | Jean-Michel Trivi <jmtrivi@google.com> | 2012-02-02 09:06:31 -0800 |
---|---|---|
committer | Jean-Michel Trivi <jmtrivi@google.com> | 2012-02-13 12:39:54 -0800 |
commit | 7a8b0ed6419e57dd8b41d3806893d63d3df91aab (patch) | |
tree | da2076d221f7eb3e26db190d51173c04a91e0788 /media/libstagefright | |
parent | 1f5ce8b0941c9c6baadd40d151634145f6d5a35c (diff) | |
download | frameworks_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')
-rw-r--r-- | media/libstagefright/AudioPlayer.cpp | 10 | ||||
-rw-r--r-- | media/libstagefright/AwesomePlayer.cpp | 8 |
2 files changed, 18 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, diff --git a/media/libstagefright/AwesomePlayer.cpp b/media/libstagefright/AwesomePlayer.cpp index 85b7979..70945e3 100644 --- a/media/libstagefright/AwesomePlayer.cpp +++ b/media/libstagefright/AwesomePlayer.cpp @@ -2251,6 +2251,14 @@ status_t AwesomePlayer::setParameter(int key, const Parcel &request) { { return setCacheStatCollectFreq(request); } + case KEY_PARAMETER_PLAYBACK_RATE_PERMILLE: + { + if (mAudioPlayer != NULL) { + return mAudioPlayer->setPlaybackRatePermille(request.readInt32()); + } else { + return NO_INIT; + } + } default: { return ERROR_UNSUPPORTED; |