summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice/nuplayer/NuPlayerDriver.h
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2013-02-05 22:46:45 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-02-05 22:46:45 +0000
commitb81b557d6e89cc2960b74ab343a08b5b44bff1f2 (patch)
tree46b630f44dd82e2082d8a5682d63e02d18af6012 /media/libmediaplayerservice/nuplayer/NuPlayerDriver.h
parent27243b75722c077699a593cb64947f1d763a177f (diff)
parent57cea553cb19235553463412db5ad04c99835411 (diff)
downloadframeworks_av-b81b557d6e89cc2960b74ab343a08b5b44bff1f2.zip
frameworks_av-b81b557d6e89cc2960b74ab343a08b5b44bff1f2.tar.gz
frameworks_av-b81b557d6e89cc2960b74ab343a08b5b44bff1f2.tar.bz2
Merge "Support for a "preparation" state that can take care of lengthy"
Diffstat (limited to 'media/libmediaplayerservice/nuplayer/NuPlayerDriver.h')
-rw-r--r--media/libmediaplayerservice/nuplayer/NuPlayerDriver.h30
1 files changed, 21 insertions, 9 deletions
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerDriver.h b/media/libmediaplayerservice/nuplayer/NuPlayerDriver.h
index 553c406..49b8ed2 100644
--- a/media/libmediaplayerservice/nuplayer/NuPlayerDriver.h
+++ b/media/libmediaplayerservice/nuplayer/NuPlayerDriver.h
@@ -61,6 +61,8 @@ struct NuPlayerDriver : public MediaPlayerInterface {
virtual status_t dump(int fd, const Vector<String16> &args) const;
+ void notifySetDataSourceCompleted(status_t err);
+ void notifyPrepareCompleted(status_t err);
void notifyResetComplete();
void notifySetSurfaceComplete();
void notifyDuration(int64_t durationUs);
@@ -68,17 +70,32 @@ struct NuPlayerDriver : public MediaPlayerInterface {
void notifySeekComplete();
void notifyFrameStats(int64_t numFramesTotal, int64_t numFramesDropped);
void notifyListener(int msg, int ext1 = 0, int ext2 = 0);
+ void notifyFlagsChanged(uint32_t flags);
protected:
virtual ~NuPlayerDriver();
private:
+ enum State {
+ STATE_IDLE,
+ STATE_SET_DATASOURCE_PENDING,
+ STATE_UNPREPARED,
+ STATE_PREPARING,
+ STATE_PREPARED,
+ STATE_RUNNING,
+ STATE_PAUSED,
+ STATE_RESET_IN_PROGRESS,
+ };
+
mutable Mutex mLock;
Condition mCondition;
+ State mState;
+
+ status_t mAsyncResult;
+
// The following are protected through "mLock"
// >>>
- bool mResetInProgress;
bool mSetSurfaceInProgress;
int64_t mDurationUs;
int64_t mPositionUs;
@@ -88,19 +105,14 @@ private:
sp<ALooper> mLooper;
sp<NuPlayer> mPlayer;
+ uint32_t mPlayerFlags;
- enum State {
- UNINITIALIZED,
- STOPPED,
- PLAYING,
- PAUSED
- };
-
- State mState;
bool mAtEOS;
int64_t mStartupSeekTimeUs;
+ status_t prepare_l();
+
DISALLOW_EVIL_CONSTRUCTORS(NuPlayerDriver);
};