summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/timedtext/TimedTextDriver.cpp
diff options
context:
space:
mode:
authorInsun Kang <insun@google.com>2012-09-20 21:03:44 +0900
committerInsun Kang <insun@google.com>2012-09-20 22:20:26 +0900
commitef58870d2c798f046c87b06be0ec0cad109a754b (patch)
tree52211cd8e0c9963b8ec8f88609dcd6e2975a8265 /media/libstagefright/timedtext/TimedTextDriver.cpp
parentd5a9ae029b50678de3b468d8324728a73ff5b0aa (diff)
downloadframeworks_av-ef58870d2c798f046c87b06be0ec0cad109a754b.zip
frameworks_av-ef58870d2c798f046c87b06be0ec0cad109a754b.tar.gz
frameworks_av-ef58870d2c798f046c87b06be0ec0cad109a754b.tar.bz2
Bug fix: MediaPlayer's deselectTrack() for subtitle.
o Previously, deselectTrack() actually doesn't work properly in TimedTextDriver / TimedTextPlayer. o Ignores select track operation when the same track is selected in a row. Bug: 7200096 TESTED=runtest -d cts-media -c android.media.cts.MediaPlayerTest Change-Id: If7feac294cf9b358f616be45574bc2e26001c887
Diffstat (limited to 'media/libstagefright/timedtext/TimedTextDriver.cpp')
-rw-r--r--media/libstagefright/timedtext/TimedTextDriver.cpp9
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: