summaryrefslogtreecommitdiffstats
path: root/include
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 /include
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 'include')
-rw-r--r--include/media/MediaPlayerInterface.h2
-rw-r--r--include/media/mediaplayer.h3
-rw-r--r--include/media/stagefright/AudioPlayer.h2
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;