Skip to content

Commit 27ed124

Browse files
theandi666Android (Google) Code Review
authored andcommitted
Merge "Properly report that we're no longer playing after receiving event" into ics-mr1
2 parents ae561ae + e96e84b commit 27ed124

File tree

3 files changed

+17
-4
lines changed

3 files changed

+17
-4
lines changed

media/libmediaplayerservice/nuplayer/NuPlayer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -796,7 +796,7 @@ void NuPlayer::notifyListener(int msg, int ext1, int ext2) {
796796
return;
797797
}
798798

799-
driver->sendEvent(msg, ext1, ext2);
799+
driver->notifyListener(msg, ext1, ext2);
800800
}
801801

802802
void NuPlayer::flushDecoder(bool audio, bool needShutdown) {

media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ NuPlayerDriver::NuPlayerDriver()
3535
mNumFramesDropped(0),
3636
mLooper(new ALooper),
3737
mState(UNINITIALIZED),
38+
mAtEOS(false),
3839
mStartupSeekTimeUs(-1) {
3940
mLooper->setName("NuPlayerDriver Looper");
4041

@@ -106,7 +107,7 @@ status_t NuPlayerDriver::prepare() {
106107
}
107108

108109
status_t NuPlayerDriver::prepareAsync() {
109-
sendEvent(MEDIA_PREPARED);
110+
notifyListener(MEDIA_PREPARED);
110111

111112
return OK;
112113
}
@@ -117,6 +118,7 @@ status_t NuPlayerDriver::start() {
117118
return INVALID_OPERATION;
118119
case STOPPED:
119120
{
121+
mAtEOS = false;
120122
mPlayer->start();
121123

122124
if (mStartupSeekTimeUs >= 0) {
@@ -173,7 +175,7 @@ status_t NuPlayerDriver::pause() {
173175
}
174176

175177
bool NuPlayerDriver::isPlaying() {
176-
return mState == PLAYING;
178+
return mState == PLAYING && !mAtEOS;
177179
}
178180

179181
status_t NuPlayerDriver::seekTo(int msec) {
@@ -190,6 +192,7 @@ status_t NuPlayerDriver::seekTo(int msec) {
190192
case PLAYING:
191193
case PAUSED:
192194
{
195+
mAtEOS = false;
193196
mPlayer->seekToAsync(seekTimeUs);
194197
break;
195198
}
@@ -291,7 +294,7 @@ void NuPlayerDriver::notifyPosition(int64_t positionUs) {
291294
}
292295

293296
void NuPlayerDriver::notifySeekComplete() {
294-
sendEvent(MEDIA_SEEK_COMPLETE);
297+
notifyListener(MEDIA_SEEK_COMPLETE);
295298
}
296299

297300
void NuPlayerDriver::notifyFrameStats(
@@ -320,4 +323,12 @@ status_t NuPlayerDriver::dump(int fd, const Vector<String16> &args) const {
320323
return OK;
321324
}
322325

326+
void NuPlayerDriver::notifyListener(int msg, int ext1, int ext2) {
327+
if (msg == MEDIA_PLAYBACK_COMPLETE || msg == MEDIA_ERROR) {
328+
mAtEOS = true;
329+
}
330+
331+
sendEvent(msg, ext1, ext2);
332+
}
333+
323334
} // namespace android

media/libmediaplayerservice/nuplayer/NuPlayerDriver.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ struct NuPlayerDriver : public MediaPlayerInterface {
6767
void notifyPosition(int64_t positionUs);
6868
void notifySeekComplete();
6969
void notifyFrameStats(int64_t numFramesTotal, int64_t numFramesDropped);
70+
void notifyListener(int msg, int ext1 = 0, int ext2 = 0);
7071

7172
protected:
7273
virtual ~NuPlayerDriver();
@@ -95,6 +96,7 @@ struct NuPlayerDriver : public MediaPlayerInterface {
9596
};
9697

9798
State mState;
99+
bool mAtEOS;
98100

99101
int64_t mStartupSeekTimeUs;
100102

0 commit comments

Comments
 (0)