diff options
author | Lajos Molnar <lajos@google.com> | 2014-08-01 13:39:30 -0700 |
---|---|---|
committer | Lajos Molnar <lajos@google.com> | 2014-08-01 13:41:10 -0700 |
commit | 18def1b8b8cdc91695ebb75bb392a84bb1b9c9be (patch) | |
tree | c3ea8561d53f3934f18f803f934aaaa920b66a20 /media | |
parent | 16513e84b7ee558f57bb8a79b35a3e8614548a5d (diff) | |
parent | e1009a0ff7fedf0b260929299bb23cf27e52c701 (diff) | |
download | frameworks_av-18def1b8b8cdc91695ebb75bb392a84bb1b9c9be.zip frameworks_av-18def1b8b8cdc91695ebb75bb392a84bb1b9c9be.tar.gz frameworks_av-18def1b8b8cdc91695ebb75bb392a84bb1b9c9be.tar.bz2 |
resolved conflicts for merge of e1009a0f to master
Diffstat (limited to 'media')
-rw-r--r-- | media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp | 33 | ||||
-rw-r--r-- | media/libmediaplayerservice/nuplayer/NuPlayerDriver.h | 1 |
2 files changed, 28 insertions, 6 deletions
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp b/media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp index 20703f3..6cfbcdc 100644 --- a/media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp +++ b/media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp @@ -42,6 +42,7 @@ NuPlayerDriver::NuPlayerDriver() mLooper(new ALooper), mPlayerFlags(0), mAtEOS(false), + mLooping(false), mStartupSeekTimeUs(-1) { mLooper->setName("NuPlayerDriver Looper"); @@ -76,6 +77,7 @@ status_t NuPlayerDriver::setDataSource( const KeyedVector<String8, String8> *headers) { Mutex::Autolock autoLock(mLock); + ALOGV("setDataSource: url=%s", url); if (mState != STATE_IDLE) { return INVALID_OPERATION; } @@ -94,6 +96,7 @@ status_t NuPlayerDriver::setDataSource( status_t NuPlayerDriver::setDataSource(int fd, int64_t offset, int64_t length) { Mutex::Autolock autoLock(mLock); + ALOGV("setDataSource: fd=%d", fd); if (mState != STATE_IDLE) { return INVALID_OPERATION; } @@ -112,6 +115,7 @@ status_t NuPlayerDriver::setDataSource(int fd, int64_t offset, int64_t length) { status_t NuPlayerDriver::setDataSource(const sp<IStreamSource> &source) { Mutex::Autolock autoLock(mLock); + ALOGV("setDataSource: stream source"); if (mState != STATE_IDLE) { return INVALID_OPERATION; } @@ -378,12 +382,14 @@ status_t NuPlayerDriver::reset() { mDurationUs = -1; mPositionUs = -1; mStartupSeekTimeUs = -1; + mLooping = false; return OK; } -status_t NuPlayerDriver::setLooping(int /* loop */) { - return INVALID_OPERATION; +status_t NuPlayerDriver::setLooping(int loop) { + mLooping = loop != 0; + return OK; } player_type NuPlayerDriver::playerType() { @@ -534,11 +540,26 @@ status_t NuPlayerDriver::dump( void NuPlayerDriver::notifyListener( int msg, int ext1, int ext2, const Parcel *in) { - if (msg == MEDIA_PLAYBACK_COMPLETE || msg == MEDIA_ERROR) { - mAtEOS = true; - if (msg == MEDIA_PLAYBACK_COMPLETE) { - mState = STATE_PAUSED; + switch (msg) { + case MEDIA_PLAYBACK_COMPLETE: + { + if (mLooping) { + mPlayer->seekToAsync(0); + break; + } else { + mState = STATE_PAUSED; + } + // fall through } + + case MEDIA_ERROR: + { + mAtEOS = true; + break; + } + + default: + break; } sendEvent(msg, ext1, ext2, in); diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerDriver.h b/media/libmediaplayerservice/nuplayer/NuPlayerDriver.h index 0148fb1..9424aae 100644 --- a/media/libmediaplayerservice/nuplayer/NuPlayerDriver.h +++ b/media/libmediaplayerservice/nuplayer/NuPlayerDriver.h @@ -111,6 +111,7 @@ private: uint32_t mPlayerFlags; bool mAtEOS; + bool mLooping; int64_t mStartupSeekTimeUs; |