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 /include | |
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 'include')
-rw-r--r-- | include/media/MediaPlayerInterface.h | 2 | ||||
-rw-r--r-- | include/media/mediaplayer.h | 3 | ||||
-rw-r--r-- | include/media/stagefright/AudioPlayer.h | 2 |
3 files changed, 7 insertions, 0 deletions
diff --git a/include/media/MediaPlayerInterface.h b/include/media/MediaPlayerInterface.h index 7beb176..77c82b2 100644 --- a/include/media/MediaPlayerInterface.h +++ b/include/media/MediaPlayerInterface.h @@ -96,6 +96,8 @@ public: virtual void flush() = 0; virtual void pause() = 0; virtual void close() = 0; + + virtual status_t setPlaybackRatePermille(int32_t rate) { return INVALID_OPERATION; } }; MediaPlayerBase() : mCookie(0), mNotify(0) {} diff --git a/include/media/mediaplayer.h b/include/media/mediaplayer.h index 00b7dd5..d0b87c8 100644 --- a/include/media/mediaplayer.h +++ b/include/media/mediaplayer.h @@ -145,6 +145,9 @@ enum media_parameter_keys { // audio track, or zero for error (e.g. no audio track) or unknown. KEY_PARAMETER_AUDIO_CHANNEL_COUNT = 1200, // get only + // Playback rate expressed in permille (1000 is normal speed), saved as int32_t, with negative + // values used for rewinding or reverse playback. + KEY_PARAMETER_PLAYBACK_RATE_PERMILLE = 1300, // set only }; // ---------------------------------------------------------------------------- diff --git a/include/media/stagefright/AudioPlayer.h b/include/media/stagefright/AudioPlayer.h index 0b79324..70c47ae 100644 --- a/include/media/stagefright/AudioPlayer.h +++ b/include/media/stagefright/AudioPlayer.h @@ -64,6 +64,8 @@ public: bool isSeeking(); bool reachedEOS(status_t *finalStatus); + status_t setPlaybackRatePermille(int32_t ratePermille); + private: friend class VideoEditorAudioPlayer; sp<MediaSource> mSource; |