diff options
-rw-r--r-- | media/libmediaplayerservice/nuplayer/RTSPSource.cpp | 4 | ||||
-rw-r--r-- | media/libstagefright/rtsp/MyHandler.h | 13 |
2 files changed, 17 insertions, 0 deletions
diff --git a/media/libmediaplayerservice/nuplayer/RTSPSource.cpp b/media/libmediaplayerservice/nuplayer/RTSPSource.cpp index aae46d8..f641f80 100644 --- a/media/libmediaplayerservice/nuplayer/RTSPSource.cpp +++ b/media/libmediaplayerservice/nuplayer/RTSPSource.cpp @@ -132,6 +132,10 @@ void NuPlayer::RTSPSource::pause() { // Check if EOS or ERROR is received if (source != NULL && source->isFinished(mediaDurationUs)) { + if (mHandler != NULL) { + ALOGI("Nearing EOS...No Pause is issued"); + mHandler->cancelTimeoutCheck(); + } return; } } diff --git a/media/libstagefright/rtsp/MyHandler.h b/media/libstagefright/rtsp/MyHandler.h index e105b15..2eea5c9 100644 --- a/media/libstagefright/rtsp/MyHandler.h +++ b/media/libstagefright/rtsp/MyHandler.h @@ -107,6 +107,7 @@ struct MyHandler : public AHandler { kWhatEOS = 'eos!', kWhatSeekDiscontinuity = 'seeD', kWhatNormalPlayTimeMapping = 'nptM', + kWhatCancelCheck = 'canC', }; MyHandler( @@ -255,6 +256,11 @@ struct MyHandler : public AHandler { msg->post(); } + void cancelTimeoutCheck() { + sp<AMessage> msg = new AMessage('canC', this); + msg->post(); + } + static void addRR(const sp<ABuffer> &buf) { uint8_t *ptr = buf->data() + buf->size(); ptr[0] = 0x80 | 0; @@ -1402,6 +1408,13 @@ struct MyHandler : public AHandler { break; } + case 'canC': + { + ALOGV("cancel checking timeout"); + mCheckGeneration++; + break; + } + default: TRESPASS(); break; |