diff options
Diffstat (limited to 'media/libstagefright/timedtext/TimedTextDriver.cpp')
-rw-r--r-- | media/libstagefright/timedtext/TimedTextDriver.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/media/libstagefright/timedtext/TimedTextDriver.cpp b/media/libstagefright/timedtext/TimedTextDriver.cpp index 54ce7ac..12fd7f4 100644 --- a/media/libstagefright/timedtext/TimedTextDriver.cpp +++ b/media/libstagefright/timedtext/TimedTextDriver.cpp @@ -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); @@ -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); @@ -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: |