summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.h
diff options
context:
space:
mode:
authorWei Jia <wjia@google.com>2015-02-04 17:01:11 -0800
committerWei Jia <wjia@google.com>2015-02-24 16:34:11 -0800
commit9816016afb2a13c6a866cd047d57020566a8b9a9 (patch)
tree176a616a7d5da21447e880158cef57516efee9c3 /media/libmediaplayerservice/nuplayer/NuPlayerRenderer.h
parent658fc18d8e632441cd5d83a4f74b53620cbac1fe (diff)
downloadframeworks_av-9816016afb2a13c6a866cd047d57020566a8b9a9.zip
frameworks_av-9816016afb2a13c6a866cd047d57020566a8b9a9.tar.gz
frameworks_av-9816016afb2a13c6a866cd047d57020566a8b9a9.tar.bz2
mediaplayer: support dynamic playback rate
Bug: 19196501 Change-Id: I856b1507d5fa2cedfb645706d2435683a7d3e050
Diffstat (limited to 'media/libmediaplayerservice/nuplayer/NuPlayerRenderer.h')
-rw-r--r--media/libmediaplayerservice/nuplayer/NuPlayerRenderer.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.h b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.h
index faf3b3f..38843d5 100644
--- a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.h
+++ b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.h
@@ -48,6 +48,8 @@ struct NuPlayer::Renderer : public AHandler {
void queueEOS(bool audio, status_t finalResult);
+ void setPlaybackRate(float rate);
+
void flush(bool audio, bool notifyComplete);
void signalTimeDiscontinuity();
@@ -100,6 +102,7 @@ private:
kWhatPostDrainVideoQueue = 'pDVQ',
kWhatQueueBuffer = 'queB',
kWhatQueueEOS = 'qEOS',
+ kWhatSetRate = 'setR',
kWhatFlush = 'flus',
kWhatPause = 'paus',
kWhatResume = 'resm',
@@ -138,6 +141,7 @@ private:
int32_t mVideoDrainGeneration;
sp<MediaClock> mMediaClock;
+ float mPlaybackRate;
int64_t mAudioFirstAnchorTimeMediaUs;
int64_t mAnchorTimeMediaUs;
int64_t mAnchorNumFramesWritten;
@@ -243,6 +247,8 @@ private:
void startAudioOffloadPauseTimeout();
void cancelAudioOffloadPauseTimeout();
+ int64_t getDurationUsIfPlayedAtSampleRate(uint32_t numFrames);
+
DISALLOW_EVIL_CONSTRUCTORS(Renderer);
};