mediaplayer: optimize buffer queue management
Various changes for power consumption including:
Restrict the number of messages in flight.
Buffer more frames in the GenericSource so reads occur in a burst.
Bug: 15094301
Change-Id: I783481fd91f3fdd445b95e88ab82178f649f1a38
Signed-off-by: Phil Burk <philburk@google.com>
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayer.h b/media/libmediaplayerservice/nuplayer/NuPlayer.h
index 89ae11c..2e951bd 100644
--- a/media/libmediaplayerservice/nuplayer/NuPlayer.h
+++ b/media/libmediaplayerservice/nuplayer/NuPlayer.h
@@ -67,6 +67,8 @@
status_t getSelectedTrack(int32_t type, Parcel* reply) const;
status_t selectTrack(size_t trackIndex, bool select);
+ static const size_t kAggregateBufferSizeBytes;
+
protected:
virtual ~NuPlayer();
@@ -158,8 +160,11 @@
// notion of time has changed.
bool mTimeDiscontinuityPending;
+ // Used by feedDecoderInputData to aggregate small buffers into
+ // one large buffer.
sp<ABuffer> mPendingAudioAccessUnit;
status_t mPendingAudioErr;
+ sp<ABuffer> mAggregateBuffer;
FlushStatus mFlushingAudio;
FlushStatus mFlushingVideo;