Loading media/libmediaplayer2/nuplayer2/NuPlayer2.cpp +19 −8 Original line number Diff line number Diff line Loading @@ -825,19 +825,30 @@ void NuPlayer2::onMessageReceived(const sp<AMessage> &msg) { case kWhatGetSelectedTrack: { int32_t type32; CHECK(msg->findInt32("type", (int32_t*)&type32)); media_track_type type = (media_track_type)type32; size_t inbandTracks = 0; status_t err = INVALID_OPERATION; ssize_t selectedTrack = -1; if (mCurrentSourceInfo.mSource != NULL) { err = OK; inbandTracks = mCurrentSourceInfo.mSource->getTrackCount(); selectedTrack = mCurrentSourceInfo.mSource->getSelectedTrack(type); } int32_t type32; CHECK(msg->findInt32("type", (int32_t*)&type32)); media_track_type type = (media_track_type)type32; ssize_t selectedTrack = mCurrentSourceInfo.mSource->getSelectedTrack(type); if (selectedTrack == -1 && mCCDecoder != NULL) { err = OK; selectedTrack = mCCDecoder->getSelectedTrack(type); if (selectedTrack != -1) { selectedTrack += inbandTracks; } } PlayerMessage* reply; CHECK(msg->findPointer("reply", (void**)&reply)); reply->add_values()->set_int32_value(selectedTrack); } sp<AMessage> response = new AMessage; response->setInt32("err", err); Loading media/libmediaplayer2/nuplayer2/NuPlayer2CCDecoder.cpp +12 −0 Original line number Diff line number Diff line Loading @@ -199,6 +199,18 @@ status_t NuPlayer2::CCDecoder::selectTrack(size_t index, bool select) { return OK; } ssize_t NuPlayer2::CCDecoder::getSelectedTrack(media_track_type type) const { if (mSelectedTrack != -1) { CCTrack track = mTracks[mSelectedTrack]; if (track.mTrackType == kTrackTypeCEA608 || track.mTrackType == kTrackTypeCEA708) { return (type == MEDIA_TRACK_TYPE_SUBTITLE ? mSelectedTrack : -1); } return (type == MEDIA_TRACK_TYPE_UNKNOWN ? mSelectedTrack : -1); } return -1; } bool NuPlayer2::CCDecoder::isSelected() const { return mSelectedTrack >= 0 && mSelectedTrack < (int32_t)getTrackCount(); } Loading media/libmediaplayer2/nuplayer2/NuPlayer2CCDecoder.h +1 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ struct NuPlayer2::CCDecoder : public RefBase { size_t getTrackCount() const; sp<AMessage> getTrackInfo(size_t index) const; status_t selectTrack(size_t index, bool select); ssize_t getSelectedTrack(media_track_type type) const; bool isSelected() const; void decode(const sp<ABuffer> &accessUnit); void display(int64_t timeUs); Loading media/libmediaplayerservice/nuplayer/NuPlayer.cpp +19 −8 Original line number Diff line number Diff line Loading @@ -659,19 +659,30 @@ void NuPlayer::onMessageReceived(const sp<AMessage> &msg) { case kWhatGetSelectedTrack: { int32_t type32; CHECK(msg->findInt32("type", (int32_t*)&type32)); media_track_type type = (media_track_type)type32; size_t inbandTracks = 0; status_t err = INVALID_OPERATION; ssize_t selectedTrack = -1; if (mSource != NULL) { err = OK; inbandTracks = mSource->getTrackCount(); selectedTrack = mSource->getSelectedTrack(type); } int32_t type32; CHECK(msg->findInt32("type", (int32_t*)&type32)); media_track_type type = (media_track_type)type32; ssize_t selectedTrack = mSource->getSelectedTrack(type); if (selectedTrack == -1 && mCCDecoder != NULL) { err = OK; selectedTrack = mCCDecoder->getSelectedTrack(type); if (selectedTrack != -1) { selectedTrack += inbandTracks; } } Parcel* reply; CHECK(msg->findPointer("reply", (void**)&reply)); reply->writeInt32(selectedTrack); } sp<AMessage> response = new AMessage; response->setInt32("err", err); Loading media/libmediaplayerservice/nuplayer/NuPlayerCCDecoder.cpp +12 −0 Original line number Diff line number Diff line Loading @@ -200,6 +200,18 @@ status_t NuPlayer::CCDecoder::selectTrack(size_t index, bool select) { return OK; } ssize_t NuPlayer::CCDecoder::getSelectedTrack(media_track_type type) const { if (mSelectedTrack != -1) { CCTrack track = mTracks[mSelectedTrack]; if (track.mTrackType == kTrackTypeCEA608 || track.mTrackType == kTrackTypeCEA708) { return (type == MEDIA_TRACK_TYPE_SUBTITLE ? mSelectedTrack : -1); } return (type == MEDIA_TRACK_TYPE_UNKNOWN ? mSelectedTrack : -1); } return -1; } bool NuPlayer::CCDecoder::isSelected() const { return mSelectedTrack >= 0 && mSelectedTrack < (int32_t)getTrackCount(); } Loading Loading
media/libmediaplayer2/nuplayer2/NuPlayer2.cpp +19 −8 Original line number Diff line number Diff line Loading @@ -825,19 +825,30 @@ void NuPlayer2::onMessageReceived(const sp<AMessage> &msg) { case kWhatGetSelectedTrack: { int32_t type32; CHECK(msg->findInt32("type", (int32_t*)&type32)); media_track_type type = (media_track_type)type32; size_t inbandTracks = 0; status_t err = INVALID_OPERATION; ssize_t selectedTrack = -1; if (mCurrentSourceInfo.mSource != NULL) { err = OK; inbandTracks = mCurrentSourceInfo.mSource->getTrackCount(); selectedTrack = mCurrentSourceInfo.mSource->getSelectedTrack(type); } int32_t type32; CHECK(msg->findInt32("type", (int32_t*)&type32)); media_track_type type = (media_track_type)type32; ssize_t selectedTrack = mCurrentSourceInfo.mSource->getSelectedTrack(type); if (selectedTrack == -1 && mCCDecoder != NULL) { err = OK; selectedTrack = mCCDecoder->getSelectedTrack(type); if (selectedTrack != -1) { selectedTrack += inbandTracks; } } PlayerMessage* reply; CHECK(msg->findPointer("reply", (void**)&reply)); reply->add_values()->set_int32_value(selectedTrack); } sp<AMessage> response = new AMessage; response->setInt32("err", err); Loading
media/libmediaplayer2/nuplayer2/NuPlayer2CCDecoder.cpp +12 −0 Original line number Diff line number Diff line Loading @@ -199,6 +199,18 @@ status_t NuPlayer2::CCDecoder::selectTrack(size_t index, bool select) { return OK; } ssize_t NuPlayer2::CCDecoder::getSelectedTrack(media_track_type type) const { if (mSelectedTrack != -1) { CCTrack track = mTracks[mSelectedTrack]; if (track.mTrackType == kTrackTypeCEA608 || track.mTrackType == kTrackTypeCEA708) { return (type == MEDIA_TRACK_TYPE_SUBTITLE ? mSelectedTrack : -1); } return (type == MEDIA_TRACK_TYPE_UNKNOWN ? mSelectedTrack : -1); } return -1; } bool NuPlayer2::CCDecoder::isSelected() const { return mSelectedTrack >= 0 && mSelectedTrack < (int32_t)getTrackCount(); } Loading
media/libmediaplayer2/nuplayer2/NuPlayer2CCDecoder.h +1 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ struct NuPlayer2::CCDecoder : public RefBase { size_t getTrackCount() const; sp<AMessage> getTrackInfo(size_t index) const; status_t selectTrack(size_t index, bool select); ssize_t getSelectedTrack(media_track_type type) const; bool isSelected() const; void decode(const sp<ABuffer> &accessUnit); void display(int64_t timeUs); Loading
media/libmediaplayerservice/nuplayer/NuPlayer.cpp +19 −8 Original line number Diff line number Diff line Loading @@ -659,19 +659,30 @@ void NuPlayer::onMessageReceived(const sp<AMessage> &msg) { case kWhatGetSelectedTrack: { int32_t type32; CHECK(msg->findInt32("type", (int32_t*)&type32)); media_track_type type = (media_track_type)type32; size_t inbandTracks = 0; status_t err = INVALID_OPERATION; ssize_t selectedTrack = -1; if (mSource != NULL) { err = OK; inbandTracks = mSource->getTrackCount(); selectedTrack = mSource->getSelectedTrack(type); } int32_t type32; CHECK(msg->findInt32("type", (int32_t*)&type32)); media_track_type type = (media_track_type)type32; ssize_t selectedTrack = mSource->getSelectedTrack(type); if (selectedTrack == -1 && mCCDecoder != NULL) { err = OK; selectedTrack = mCCDecoder->getSelectedTrack(type); if (selectedTrack != -1) { selectedTrack += inbandTracks; } } Parcel* reply; CHECK(msg->findPointer("reply", (void**)&reply)); reply->writeInt32(selectedTrack); } sp<AMessage> response = new AMessage; response->setInt32("err", err); Loading
media/libmediaplayerservice/nuplayer/NuPlayerCCDecoder.cpp +12 −0 Original line number Diff line number Diff line Loading @@ -200,6 +200,18 @@ status_t NuPlayer::CCDecoder::selectTrack(size_t index, bool select) { return OK; } ssize_t NuPlayer::CCDecoder::getSelectedTrack(media_track_type type) const { if (mSelectedTrack != -1) { CCTrack track = mTracks[mSelectedTrack]; if (track.mTrackType == kTrackTypeCEA608 || track.mTrackType == kTrackTypeCEA708) { return (type == MEDIA_TRACK_TYPE_SUBTITLE ? mSelectedTrack : -1); } return (type == MEDIA_TRACK_TYPE_UNKNOWN ? mSelectedTrack : -1); } return -1; } bool NuPlayer::CCDecoder::isSelected() const { return mSelectedTrack >= 0 && mSelectedTrack < (int32_t)getTrackCount(); } Loading