Loading media/libstagefright/AwesomePlayer.cpp +29 −22 Original line number Diff line number Diff line Loading @@ -1345,7 +1345,7 @@ void AwesomePlayer::setAudioSource(sp<MediaSource> source) { } void AwesomePlayer::addTextSource(size_t trackIndex, const sp<MediaSource>& source) { Mutex::Autolock autoLock(mTimedTextLock); Mutex::Autolock autoLock(mLock); CHECK(source != NULL); if (mTextDriver == NULL) { Loading Loading @@ -1395,7 +1395,6 @@ status_t AwesomePlayer::initAudioDecoder() { if (mAudioSource != NULL) { Mutex::Autolock autoLock(mStatsLock); TrackStat *stat = &mStats.mTracks.editItemAt(mStats.mAudioTrackIndex); const char *component; if (!mAudioSource->getFormat() ->findCString(kKeyDecoderComponent, &component)) { Loading Loading @@ -2268,13 +2267,13 @@ status_t AwesomePlayer::getParameter(int key, Parcel *reply) { } status_t AwesomePlayer::getTrackInfo(Parcel *reply) const { Mutex::Autolock autoLock(mTimedTextLock); if (mTextDriver == NULL) { return INVALID_OPERATION; Mutex::Autolock autoLock(mLock); size_t trackCount = mExtractor->countTracks(); if (mTextDriver != NULL) { trackCount += mTextDriver->countExternalTracks(); } reply->writeInt32(mTextDriver->countExternalTracks() + mExtractor->countTracks()); reply->writeInt32(trackCount); for (size_t i = 0; i < mExtractor->countTracks(); ++i) { sp<MetaData> meta = mExtractor->getTrackMetaData(i); Loading @@ -2296,28 +2295,31 @@ status_t AwesomePlayer::getTrackInfo(Parcel *reply) const { } const char *lang; if (meta->findCString(kKeyMediaLanguage, &lang)) { reply->writeString16(String16(lang)); } else { reply->writeString16(String16("")); if (!meta->findCString(kKeyMediaLanguage, &lang)) { lang = "und"; } reply->writeString16(String16(lang)); } if (mTextDriver != NULL) { mTextDriver->getExternalTrackInfo(reply); } return OK; } // FIXME: // At present, only timed text track is able to be selected or unselected. status_t AwesomePlayer::selectTrack(size_t trackIndex, bool select) { Mutex::Autolock autoLock(mTimedTextLock); if (mTextDriver == NULL) { return INVALID_OPERATION; ALOGV("selectTrack: trackIndex = %d and select=%d", trackIndex, select); Mutex::Autolock autoLock(mLock); size_t trackCount = mExtractor->countTracks(); if (mTextDriver != NULL) { trackCount += mTextDriver->countExternalTracks(); } if (trackIndex >= mExtractor->countTracks() + mTextDriver->countExternalTracks()) { return BAD_VALUE; if (trackIndex >= trackCount) { ALOGE("Track index (%d) is out of range [0, %d)", trackIndex, trackCount); return ERROR_OUT_OF_RANGE; } if (trackIndex < mExtractor->countTracks()) { Loading @@ -2331,6 +2333,11 @@ status_t AwesomePlayer::selectTrack(size_t trackIndex, bool select) { } } // Timed text track handling if (mTextDriver == NULL) { return INVALID_OPERATION; } status_t err = OK; if (select) { err = mTextDriver->selectTrack(trackIndex); Loading Loading @@ -2371,7 +2378,7 @@ status_t AwesomePlayer::invoke(const Parcel &request, Parcel *reply) { } case INVOKE_ID_ADD_EXTERNAL_SOURCE: { Mutex::Autolock autoLock(mTimedTextLock); Mutex::Autolock autoLock(mLock); if (mTextDriver == NULL) { mTextDriver = new TimedTextDriver(mListener); } Loading @@ -2383,7 +2390,7 @@ status_t AwesomePlayer::invoke(const Parcel &request, Parcel *reply) { } case INVOKE_ID_ADD_EXTERNAL_SOURCE_FD: { Mutex::Autolock autoLock(mTimedTextLock); Mutex::Autolock autoLock(mLock); if (mTextDriver == NULL) { mTextDriver = new TimedTextDriver(mListener); } Loading @@ -2398,12 +2405,12 @@ status_t AwesomePlayer::invoke(const Parcel &request, Parcel *reply) { case INVOKE_ID_SELECT_TRACK: { int trackIndex = request.readInt32(); return selectTrack(trackIndex, true); return selectTrack(trackIndex, true /* select */); } case INVOKE_ID_UNSELECT_TRACK: { int trackIndex = request.readInt32(); return selectTrack(trackIndex, false); return selectTrack(trackIndex, false /* select */); } default: { Loading media/libstagefright/include/AwesomePlayer.h +0 −1 Original line number Diff line number Diff line Loading @@ -232,7 +232,6 @@ private: int64_t mLastVideoTimeUs; TimedTextDriver *mTextDriver; mutable Mutex mTimedTextLock; sp<WVMExtractor> mWVMExtractor; sp<MediaExtractor> mExtractor; Loading Loading
media/libstagefright/AwesomePlayer.cpp +29 −22 Original line number Diff line number Diff line Loading @@ -1345,7 +1345,7 @@ void AwesomePlayer::setAudioSource(sp<MediaSource> source) { } void AwesomePlayer::addTextSource(size_t trackIndex, const sp<MediaSource>& source) { Mutex::Autolock autoLock(mTimedTextLock); Mutex::Autolock autoLock(mLock); CHECK(source != NULL); if (mTextDriver == NULL) { Loading Loading @@ -1395,7 +1395,6 @@ status_t AwesomePlayer::initAudioDecoder() { if (mAudioSource != NULL) { Mutex::Autolock autoLock(mStatsLock); TrackStat *stat = &mStats.mTracks.editItemAt(mStats.mAudioTrackIndex); const char *component; if (!mAudioSource->getFormat() ->findCString(kKeyDecoderComponent, &component)) { Loading Loading @@ -2268,13 +2267,13 @@ status_t AwesomePlayer::getParameter(int key, Parcel *reply) { } status_t AwesomePlayer::getTrackInfo(Parcel *reply) const { Mutex::Autolock autoLock(mTimedTextLock); if (mTextDriver == NULL) { return INVALID_OPERATION; Mutex::Autolock autoLock(mLock); size_t trackCount = mExtractor->countTracks(); if (mTextDriver != NULL) { trackCount += mTextDriver->countExternalTracks(); } reply->writeInt32(mTextDriver->countExternalTracks() + mExtractor->countTracks()); reply->writeInt32(trackCount); for (size_t i = 0; i < mExtractor->countTracks(); ++i) { sp<MetaData> meta = mExtractor->getTrackMetaData(i); Loading @@ -2296,28 +2295,31 @@ status_t AwesomePlayer::getTrackInfo(Parcel *reply) const { } const char *lang; if (meta->findCString(kKeyMediaLanguage, &lang)) { reply->writeString16(String16(lang)); } else { reply->writeString16(String16("")); if (!meta->findCString(kKeyMediaLanguage, &lang)) { lang = "und"; } reply->writeString16(String16(lang)); } if (mTextDriver != NULL) { mTextDriver->getExternalTrackInfo(reply); } return OK; } // FIXME: // At present, only timed text track is able to be selected or unselected. status_t AwesomePlayer::selectTrack(size_t trackIndex, bool select) { Mutex::Autolock autoLock(mTimedTextLock); if (mTextDriver == NULL) { return INVALID_OPERATION; ALOGV("selectTrack: trackIndex = %d and select=%d", trackIndex, select); Mutex::Autolock autoLock(mLock); size_t trackCount = mExtractor->countTracks(); if (mTextDriver != NULL) { trackCount += mTextDriver->countExternalTracks(); } if (trackIndex >= mExtractor->countTracks() + mTextDriver->countExternalTracks()) { return BAD_VALUE; if (trackIndex >= trackCount) { ALOGE("Track index (%d) is out of range [0, %d)", trackIndex, trackCount); return ERROR_OUT_OF_RANGE; } if (trackIndex < mExtractor->countTracks()) { Loading @@ -2331,6 +2333,11 @@ status_t AwesomePlayer::selectTrack(size_t trackIndex, bool select) { } } // Timed text track handling if (mTextDriver == NULL) { return INVALID_OPERATION; } status_t err = OK; if (select) { err = mTextDriver->selectTrack(trackIndex); Loading Loading @@ -2371,7 +2378,7 @@ status_t AwesomePlayer::invoke(const Parcel &request, Parcel *reply) { } case INVOKE_ID_ADD_EXTERNAL_SOURCE: { Mutex::Autolock autoLock(mTimedTextLock); Mutex::Autolock autoLock(mLock); if (mTextDriver == NULL) { mTextDriver = new TimedTextDriver(mListener); } Loading @@ -2383,7 +2390,7 @@ status_t AwesomePlayer::invoke(const Parcel &request, Parcel *reply) { } case INVOKE_ID_ADD_EXTERNAL_SOURCE_FD: { Mutex::Autolock autoLock(mTimedTextLock); Mutex::Autolock autoLock(mLock); if (mTextDriver == NULL) { mTextDriver = new TimedTextDriver(mListener); } Loading @@ -2398,12 +2405,12 @@ status_t AwesomePlayer::invoke(const Parcel &request, Parcel *reply) { case INVOKE_ID_SELECT_TRACK: { int trackIndex = request.readInt32(); return selectTrack(trackIndex, true); return selectTrack(trackIndex, true /* select */); } case INVOKE_ID_UNSELECT_TRACK: { int trackIndex = request.readInt32(); return selectTrack(trackIndex, false); return selectTrack(trackIndex, false /* select */); } default: { Loading
media/libstagefright/include/AwesomePlayer.h +0 −1 Original line number Diff line number Diff line Loading @@ -232,7 +232,6 @@ private: int64_t mLastVideoTimeUs; TimedTextDriver *mTextDriver; mutable Mutex mTimedTextLock; sp<WVMExtractor> mWVMExtractor; sp<MediaExtractor> mExtractor; Loading