Loading media/libmediaplayer2/include/mediaplayer2/mediaplayer2.h +1 −1 Original line number Diff line number Diff line Loading @@ -86,7 +86,7 @@ public: MediaPlayer2SeekMode mode = MediaPlayer2SeekMode::SEEK_PREVIOUS_SYNC); status_t notifyAt(int64_t mediaTimeUs); status_t getCurrentPosition(int64_t *msec); status_t getDuration(int64_t *msec); status_t getDuration(int64_t srcId, int64_t *msec); status_t reset(); status_t setAudioStreamType(audio_stream_type_t type); status_t getAudioStreamType(audio_stream_type_t *type); Loading media/libmediaplayer2/mediaplayer2.cpp +8 −1 Original line number Diff line number Diff line Loading @@ -718,8 +718,15 @@ status_t MediaPlayer2::getCurrentPosition(int64_t *msec) { return ret; } status_t MediaPlayer2::getDuration(int64_t *msec) { status_t MediaPlayer2::getDuration(int64_t srcId, int64_t *msec) { Mutex::Autolock _l(mLock); // TODO: cache duration for currentSrcId and nextSrcId, and return correct // value for nextSrcId. if (srcId != mSrcId) { *msec = -1; return OK; } ALOGV("getDuration_l"); bool isValidState = (mCurrentState & (MEDIA_PLAYER2_PREPARED | MEDIA_PLAYER2_STARTED | MEDIA_PLAYER2_PAUSED | MEDIA_PLAYER2_PLAYBACK_COMPLETE)); Loading media/libmediaplayer2/nuplayer2/NuPlayer2.cpp +17 −3 Original line number Diff line number Diff line Loading @@ -791,9 +791,13 @@ void NuPlayer2::onMessageReceived(const sp<AMessage> &msg) { sp<AReplyToken> replyID; CHECK(msg->senderAwaitsResponse(&replyID)); int64_t srcId; CHECK(msg->findInt64("srcId", (int64_t*)&srcId)); PlayerMessage* reply; CHECK(msg->findPointer("reply", (void**)&reply)); // TODO: use correct source info based on srcId. size_t inbandTracks = 0; if (mCurrentSourceInfo.mSource != NULL) { inbandTracks = mCurrentSourceInfo.mSource->getTrackCount(); Loading Loading @@ -824,10 +828,14 @@ void NuPlayer2::onMessageReceived(const sp<AMessage> &msg) { case kWhatGetSelectedTrack: { int64_t srcId; CHECK(msg->findInt64("srcId", (int64_t*)&srcId)); int32_t type32; CHECK(msg->findInt32("type", (int32_t*)&type32)); media_track_type type = (media_track_type)type32; // TODO: use correct source info based on srcId. size_t inbandTracks = 0; status_t err = INVALID_OPERATION; ssize_t selectedTrack = -1; Loading Loading @@ -863,15 +871,18 @@ void NuPlayer2::onMessageReceived(const sp<AMessage> &msg) { sp<AReplyToken> replyID; CHECK(msg->senderAwaitsResponse(&replyID)); int64_t srcId; size_t trackIndex; int32_t select; int64_t timeUs; CHECK(msg->findInt64("srcId", (int64_t*)&srcId)); CHECK(msg->findSize("trackIndex", &trackIndex)); CHECK(msg->findInt32("select", &select)); CHECK(msg->findInt64("timeUs", &timeUs)); status_t err = INVALID_OPERATION; // TODO: use correct source info based on srcId. size_t inbandTracks = 0; if (mCurrentSourceInfo.mSource != NULL) { inbandTracks = mCurrentSourceInfo.mSource->getTrackCount(); Loading Loading @@ -2324,8 +2335,9 @@ status_t NuPlayer2::setVideoScalingMode(int32_t mode) { return OK; } status_t NuPlayer2::getTrackInfo(PlayerMessage* reply) const { status_t NuPlayer2::getTrackInfo(int64_t srcId, PlayerMessage* reply) const { sp<AMessage> msg = new AMessage(kWhatGetTrackInfo, this); msg->setInt64("srcId", srcId); msg->setPointer("reply", reply); sp<AMessage> response; Loading @@ -2333,9 +2345,10 @@ status_t NuPlayer2::getTrackInfo(PlayerMessage* reply) const { return err; } status_t NuPlayer2::getSelectedTrack(int32_t type, PlayerMessage* reply) const { status_t NuPlayer2::getSelectedTrack(int64_t srcId, int32_t type, PlayerMessage* reply) const { sp<AMessage> msg = new AMessage(kWhatGetSelectedTrack, this); msg->setPointer("reply", reply); msg->setInt64("srcId", srcId); msg->setInt32("type", type); sp<AMessage> response; Loading @@ -2346,8 +2359,9 @@ status_t NuPlayer2::getSelectedTrack(int32_t type, PlayerMessage* reply) const { return err; } status_t NuPlayer2::selectTrack(size_t trackIndex, bool select, int64_t timeUs) { status_t NuPlayer2::selectTrack(int64_t srcId, size_t trackIndex, bool select, int64_t timeUs) { sp<AMessage> msg = new AMessage(kWhatSelectTrack, this); msg->setInt64("srcId", srcId); msg->setSize("trackIndex", trackIndex); msg->setInt32("select", select); msg->setInt64("timeUs", timeUs); Loading media/libmediaplayer2/nuplayer2/NuPlayer2.h +3 −3 Original line number Diff line number Diff line Loading @@ -82,9 +82,9 @@ struct NuPlayer2 : public AHandler { void rewind(); status_t setVideoScalingMode(int32_t mode); status_t getTrackInfo(PlayerMessage* reply) const; status_t getSelectedTrack(int32_t type, PlayerMessage* reply) const; status_t selectTrack(size_t trackIndex, bool select, int64_t timeUs); status_t getTrackInfo(int64_t srcId, PlayerMessage* reply) const; status_t getSelectedTrack(int64_t srcId, int32_t type, PlayerMessage* reply) const; status_t selectTrack(int64_t srcId, size_t trackIndex, bool select, int64_t timeUs); status_t getCurrentPosition(int64_t *mediaUs); void getStats(Vector<sp<AMessage> > *mTrackStats); Loading media/libmediaplayer2/nuplayer2/NuPlayer2Driver.cpp +9 −4 Original line number Diff line number Diff line Loading @@ -603,28 +603,33 @@ status_t NuPlayer2Driver::invoke(const PlayerMessage &request, PlayerMessage *re case MEDIA_PLAYER2_INVOKE_ID_GET_TRACK_INFO: { return mPlayer->getTrackInfo(response); int64_t srcId = (it++)->int64_value(); return mPlayer->getTrackInfo(srcId, response); } case MEDIA_PLAYER2_INVOKE_ID_SELECT_TRACK: { int64_t srcId = (it++)->int64_value(); int trackIndex = (it++)->int32_value(); int64_t msec = 0; // getCurrentPosition should always return OK getCurrentPosition(&msec); return mPlayer->selectTrack(trackIndex, true /* select */, msec * 1000LL); return mPlayer->selectTrack(srcId, trackIndex, true /* select */, msec * 1000LL); } case MEDIA_PLAYER2_INVOKE_ID_UNSELECT_TRACK: { int64_t srcId = (it++)->int64_value(); int trackIndex = (it++)->int32_value(); return mPlayer->selectTrack(trackIndex, false /* select */, 0xdeadbeef /* not used */); return mPlayer->selectTrack( srcId, trackIndex, false /* select */, 0xdeadbeef /* not used */); } case MEDIA_PLAYER2_INVOKE_ID_GET_SELECTED_TRACK: { int64_t srcId = (it++)->int64_value(); int32_t type = (it++)->int32_value(); return mPlayer->getSelectedTrack(type, response); return mPlayer->getSelectedTrack(srcId, type, response); } default: Loading Loading
media/libmediaplayer2/include/mediaplayer2/mediaplayer2.h +1 −1 Original line number Diff line number Diff line Loading @@ -86,7 +86,7 @@ public: MediaPlayer2SeekMode mode = MediaPlayer2SeekMode::SEEK_PREVIOUS_SYNC); status_t notifyAt(int64_t mediaTimeUs); status_t getCurrentPosition(int64_t *msec); status_t getDuration(int64_t *msec); status_t getDuration(int64_t srcId, int64_t *msec); status_t reset(); status_t setAudioStreamType(audio_stream_type_t type); status_t getAudioStreamType(audio_stream_type_t *type); Loading
media/libmediaplayer2/mediaplayer2.cpp +8 −1 Original line number Diff line number Diff line Loading @@ -718,8 +718,15 @@ status_t MediaPlayer2::getCurrentPosition(int64_t *msec) { return ret; } status_t MediaPlayer2::getDuration(int64_t *msec) { status_t MediaPlayer2::getDuration(int64_t srcId, int64_t *msec) { Mutex::Autolock _l(mLock); // TODO: cache duration for currentSrcId and nextSrcId, and return correct // value for nextSrcId. if (srcId != mSrcId) { *msec = -1; return OK; } ALOGV("getDuration_l"); bool isValidState = (mCurrentState & (MEDIA_PLAYER2_PREPARED | MEDIA_PLAYER2_STARTED | MEDIA_PLAYER2_PAUSED | MEDIA_PLAYER2_PLAYBACK_COMPLETE)); Loading
media/libmediaplayer2/nuplayer2/NuPlayer2.cpp +17 −3 Original line number Diff line number Diff line Loading @@ -791,9 +791,13 @@ void NuPlayer2::onMessageReceived(const sp<AMessage> &msg) { sp<AReplyToken> replyID; CHECK(msg->senderAwaitsResponse(&replyID)); int64_t srcId; CHECK(msg->findInt64("srcId", (int64_t*)&srcId)); PlayerMessage* reply; CHECK(msg->findPointer("reply", (void**)&reply)); // TODO: use correct source info based on srcId. size_t inbandTracks = 0; if (mCurrentSourceInfo.mSource != NULL) { inbandTracks = mCurrentSourceInfo.mSource->getTrackCount(); Loading Loading @@ -824,10 +828,14 @@ void NuPlayer2::onMessageReceived(const sp<AMessage> &msg) { case kWhatGetSelectedTrack: { int64_t srcId; CHECK(msg->findInt64("srcId", (int64_t*)&srcId)); int32_t type32; CHECK(msg->findInt32("type", (int32_t*)&type32)); media_track_type type = (media_track_type)type32; // TODO: use correct source info based on srcId. size_t inbandTracks = 0; status_t err = INVALID_OPERATION; ssize_t selectedTrack = -1; Loading Loading @@ -863,15 +871,18 @@ void NuPlayer2::onMessageReceived(const sp<AMessage> &msg) { sp<AReplyToken> replyID; CHECK(msg->senderAwaitsResponse(&replyID)); int64_t srcId; size_t trackIndex; int32_t select; int64_t timeUs; CHECK(msg->findInt64("srcId", (int64_t*)&srcId)); CHECK(msg->findSize("trackIndex", &trackIndex)); CHECK(msg->findInt32("select", &select)); CHECK(msg->findInt64("timeUs", &timeUs)); status_t err = INVALID_OPERATION; // TODO: use correct source info based on srcId. size_t inbandTracks = 0; if (mCurrentSourceInfo.mSource != NULL) { inbandTracks = mCurrentSourceInfo.mSource->getTrackCount(); Loading Loading @@ -2324,8 +2335,9 @@ status_t NuPlayer2::setVideoScalingMode(int32_t mode) { return OK; } status_t NuPlayer2::getTrackInfo(PlayerMessage* reply) const { status_t NuPlayer2::getTrackInfo(int64_t srcId, PlayerMessage* reply) const { sp<AMessage> msg = new AMessage(kWhatGetTrackInfo, this); msg->setInt64("srcId", srcId); msg->setPointer("reply", reply); sp<AMessage> response; Loading @@ -2333,9 +2345,10 @@ status_t NuPlayer2::getTrackInfo(PlayerMessage* reply) const { return err; } status_t NuPlayer2::getSelectedTrack(int32_t type, PlayerMessage* reply) const { status_t NuPlayer2::getSelectedTrack(int64_t srcId, int32_t type, PlayerMessage* reply) const { sp<AMessage> msg = new AMessage(kWhatGetSelectedTrack, this); msg->setPointer("reply", reply); msg->setInt64("srcId", srcId); msg->setInt32("type", type); sp<AMessage> response; Loading @@ -2346,8 +2359,9 @@ status_t NuPlayer2::getSelectedTrack(int32_t type, PlayerMessage* reply) const { return err; } status_t NuPlayer2::selectTrack(size_t trackIndex, bool select, int64_t timeUs) { status_t NuPlayer2::selectTrack(int64_t srcId, size_t trackIndex, bool select, int64_t timeUs) { sp<AMessage> msg = new AMessage(kWhatSelectTrack, this); msg->setInt64("srcId", srcId); msg->setSize("trackIndex", trackIndex); msg->setInt32("select", select); msg->setInt64("timeUs", timeUs); Loading
media/libmediaplayer2/nuplayer2/NuPlayer2.h +3 −3 Original line number Diff line number Diff line Loading @@ -82,9 +82,9 @@ struct NuPlayer2 : public AHandler { void rewind(); status_t setVideoScalingMode(int32_t mode); status_t getTrackInfo(PlayerMessage* reply) const; status_t getSelectedTrack(int32_t type, PlayerMessage* reply) const; status_t selectTrack(size_t trackIndex, bool select, int64_t timeUs); status_t getTrackInfo(int64_t srcId, PlayerMessage* reply) const; status_t getSelectedTrack(int64_t srcId, int32_t type, PlayerMessage* reply) const; status_t selectTrack(int64_t srcId, size_t trackIndex, bool select, int64_t timeUs); status_t getCurrentPosition(int64_t *mediaUs); void getStats(Vector<sp<AMessage> > *mTrackStats); Loading
media/libmediaplayer2/nuplayer2/NuPlayer2Driver.cpp +9 −4 Original line number Diff line number Diff line Loading @@ -603,28 +603,33 @@ status_t NuPlayer2Driver::invoke(const PlayerMessage &request, PlayerMessage *re case MEDIA_PLAYER2_INVOKE_ID_GET_TRACK_INFO: { return mPlayer->getTrackInfo(response); int64_t srcId = (it++)->int64_value(); return mPlayer->getTrackInfo(srcId, response); } case MEDIA_PLAYER2_INVOKE_ID_SELECT_TRACK: { int64_t srcId = (it++)->int64_value(); int trackIndex = (it++)->int32_value(); int64_t msec = 0; // getCurrentPosition should always return OK getCurrentPosition(&msec); return mPlayer->selectTrack(trackIndex, true /* select */, msec * 1000LL); return mPlayer->selectTrack(srcId, trackIndex, true /* select */, msec * 1000LL); } case MEDIA_PLAYER2_INVOKE_ID_UNSELECT_TRACK: { int64_t srcId = (it++)->int64_value(); int trackIndex = (it++)->int32_value(); return mPlayer->selectTrack(trackIndex, false /* select */, 0xdeadbeef /* not used */); return mPlayer->selectTrack( srcId, trackIndex, false /* select */, 0xdeadbeef /* not used */); } case MEDIA_PLAYER2_INVOKE_ID_GET_SELECTED_TRACK: { int64_t srcId = (it++)->int64_value(); int32_t type = (it++)->int32_value(); return mPlayer->getSelectedTrack(type, response); return mPlayer->getSelectedTrack(srcId, type, response); } default: Loading