Loading media/libstagefright/timedtext/TimedTextDriver.cpp +7 −2 Original line number Diff line number Diff line Loading @@ -43,7 +43,8 @@ TimedTextDriver::TimedTextDriver( const wp<MediaPlayerBase> &listener) : mLooper(new ALooper), mListener(listener), mState(UNINITIALIZED) { mState(UNINITIALIZED), mCurrentTrackIndex(UINT_MAX) { mLooper->setName("TimedTextDriver"); mLooper->start(); mPlayer = new TimedTextPlayer(listener); Loading @@ -57,6 +58,9 @@ TimedTextDriver::~TimedTextDriver() { } status_t TimedTextDriver::selectTrack_l(size_t index) { if (mCurrentTrackIndex == index) { return OK; } sp<TimedTextSource> source; source = mTextSourceVector.valueFor(index); mPlayer->setDataSource(source); Loading Loading @@ -138,11 +142,12 @@ status_t TimedTextDriver::unselectTrack(size_t index) { if (mCurrentTrackIndex != index) { return INVALID_OPERATION; } mCurrentTrackIndex = UINT_MAX; switch (mState) { case UNINITIALIZED: return INVALID_OPERATION; case PLAYING: mPlayer->pause(); mPlayer->setDataSource(NULL); mState = UNINITIALIZED; return OK; case PREPARED: Loading media/libstagefright/timedtext/TimedTextPlayer.cpp +11 −1 Original line number Diff line number Diff line Loading @@ -183,11 +183,20 @@ void TimedTextPlayer::onMessageReceived(const sp<AMessage> &msg) { break; } case kWhatSetSource: { mSendSubtitleGeneration++; sp<RefBase> obj; msg->findObject("source", &obj); if (obj == NULL) break; if (mSource != NULL) { mSource->stop(); mSource.clear(); mSource = NULL; } // null source means deselect track. if (obj == NULL) { mPendingSeekTimeUs = kInvalidTimeUs; mPaused = false; notifyListener(); break; } mSource = static_cast<TimedTextSource*>(obj.get()); status_t err = mSource->start(); Loading Loading @@ -217,6 +226,7 @@ void TimedTextPlayer::doRead(MediaSource::ReadOptions* options) { int64_t startTimeUs = 0; int64_t endTimeUs = 0; sp<ParcelEvent> parcelEvent = new ParcelEvent(); CHECK(mSource != NULL); status_t err = mSource->read(&startTimeUs, &endTimeUs, &(parcelEvent->parcel), options); if (err == WOULD_BLOCK) { Loading Loading
media/libstagefright/timedtext/TimedTextDriver.cpp +7 −2 Original line number Diff line number Diff line Loading @@ -43,7 +43,8 @@ TimedTextDriver::TimedTextDriver( const wp<MediaPlayerBase> &listener) : mLooper(new ALooper), mListener(listener), mState(UNINITIALIZED) { mState(UNINITIALIZED), mCurrentTrackIndex(UINT_MAX) { mLooper->setName("TimedTextDriver"); mLooper->start(); mPlayer = new TimedTextPlayer(listener); Loading @@ -57,6 +58,9 @@ TimedTextDriver::~TimedTextDriver() { } status_t TimedTextDriver::selectTrack_l(size_t index) { if (mCurrentTrackIndex == index) { return OK; } sp<TimedTextSource> source; source = mTextSourceVector.valueFor(index); mPlayer->setDataSource(source); Loading Loading @@ -138,11 +142,12 @@ status_t TimedTextDriver::unselectTrack(size_t index) { if (mCurrentTrackIndex != index) { return INVALID_OPERATION; } mCurrentTrackIndex = UINT_MAX; switch (mState) { case UNINITIALIZED: return INVALID_OPERATION; case PLAYING: mPlayer->pause(); mPlayer->setDataSource(NULL); mState = UNINITIALIZED; return OK; case PREPARED: Loading
media/libstagefright/timedtext/TimedTextPlayer.cpp +11 −1 Original line number Diff line number Diff line Loading @@ -183,11 +183,20 @@ void TimedTextPlayer::onMessageReceived(const sp<AMessage> &msg) { break; } case kWhatSetSource: { mSendSubtitleGeneration++; sp<RefBase> obj; msg->findObject("source", &obj); if (obj == NULL) break; if (mSource != NULL) { mSource->stop(); mSource.clear(); mSource = NULL; } // null source means deselect track. if (obj == NULL) { mPendingSeekTimeUs = kInvalidTimeUs; mPaused = false; notifyListener(); break; } mSource = static_cast<TimedTextSource*>(obj.get()); status_t err = mSource->start(); Loading Loading @@ -217,6 +226,7 @@ void TimedTextPlayer::doRead(MediaSource::ReadOptions* options) { int64_t startTimeUs = 0; int64_t endTimeUs = 0; sp<ParcelEvent> parcelEvent = new ParcelEvent(); CHECK(mSource != NULL); status_t err = mSource->read(&startTimeUs, &endTimeUs, &(parcelEvent->parcel), options); if (err == WOULD_BLOCK) { Loading