Loading media/libmediaplayerservice/nuplayer/NuPlayer.cpp +32 −9 Original line number Original line Diff line number Diff line Loading @@ -1447,6 +1447,29 @@ void NuPlayer::onMessageReceived(const sp<AMessage> &msg) { break; break; } } case kWhatGetStats: { ALOGV("kWhatGetStats"); Vector<sp<AMessage>> *trackStats; CHECK(msg->findPointer("trackstats", (void**)&trackStats)); trackStats->clear(); if (mVideoDecoder != NULL) { trackStats->push_back(mVideoDecoder->getStats()); } if (mAudioDecoder != NULL) { trackStats->push_back(mAudioDecoder->getStats()); } // respond for synchronization sp<AMessage> response = new AMessage; sp<AReplyToken> replyID; CHECK(msg->senderAwaitsResponse(&replyID)); response->postReply(replyID); break; } default: default: TRESPASS(); TRESPASS(); break; break; Loading Loading @@ -2210,16 +2233,16 @@ status_t NuPlayer::getCurrentPosition(int64_t *mediaUs) { return renderer->getCurrentPosition(mediaUs); return renderer->getCurrentPosition(mediaUs); } } void NuPlayer::getStats(Vector<sp<AMessage> > *mTrackStats) { void NuPlayer::getStats(Vector<sp<AMessage> > *trackStats) { CHECK(mTrackStats != NULL); CHECK(trackStats != NULL); mTrackStats->clear(); ALOGV("NuPlayer::getStats()"); if (mVideoDecoder != NULL) { sp<AMessage> msg = new AMessage(kWhatGetStats, this); mTrackStats->push_back(mVideoDecoder->getStats()); msg->setPointer("trackstats", trackStats); } if (mAudioDecoder != NULL) { sp<AMessage> response; mTrackStats->push_back(mAudioDecoder->getStats()); (void) msg->postAndAwaitResponse(&response); } // response is for synchronization, ignore contents } } sp<MetaData> NuPlayer::getFileMeta() { sp<MetaData> NuPlayer::getFileMeta() { Loading media/libmediaplayerservice/nuplayer/NuPlayer.h +2 −1 Original line number Original line Diff line number Diff line Loading @@ -88,7 +88,7 @@ struct NuPlayer : public AHandler { status_t getSelectedTrack(int32_t type, Parcel* reply) const; status_t getSelectedTrack(int32_t type, Parcel* reply) const; status_t selectTrack(size_t trackIndex, bool select, int64_t timeUs); status_t selectTrack(size_t trackIndex, bool select, int64_t timeUs); status_t getCurrentPosition(int64_t *mediaUs); status_t getCurrentPosition(int64_t *mediaUs); void getStats(Vector<sp<AMessage> > *mTrackStats); void getStats(Vector<sp<AMessage> > *trackStats); sp<MetaData> getFileMeta(); sp<MetaData> getFileMeta(); float getFrameRate(); float getFrameRate(); Loading Loading @@ -159,6 +159,7 @@ private: kWhatPrepareDrm = 'pDrm', kWhatPrepareDrm = 'pDrm', kWhatReleaseDrm = 'rDrm', kWhatReleaseDrm = 'rDrm', kWhatMediaClockNotify = 'mckN', kWhatMediaClockNotify = 'mckN', kWhatGetStats = 'gSts', }; }; wp<NuPlayerDriver> mDriver; wp<NuPlayerDriver> mDriver; Loading Loading
media/libmediaplayerservice/nuplayer/NuPlayer.cpp +32 −9 Original line number Original line Diff line number Diff line Loading @@ -1447,6 +1447,29 @@ void NuPlayer::onMessageReceived(const sp<AMessage> &msg) { break; break; } } case kWhatGetStats: { ALOGV("kWhatGetStats"); Vector<sp<AMessage>> *trackStats; CHECK(msg->findPointer("trackstats", (void**)&trackStats)); trackStats->clear(); if (mVideoDecoder != NULL) { trackStats->push_back(mVideoDecoder->getStats()); } if (mAudioDecoder != NULL) { trackStats->push_back(mAudioDecoder->getStats()); } // respond for synchronization sp<AMessage> response = new AMessage; sp<AReplyToken> replyID; CHECK(msg->senderAwaitsResponse(&replyID)); response->postReply(replyID); break; } default: default: TRESPASS(); TRESPASS(); break; break; Loading Loading @@ -2210,16 +2233,16 @@ status_t NuPlayer::getCurrentPosition(int64_t *mediaUs) { return renderer->getCurrentPosition(mediaUs); return renderer->getCurrentPosition(mediaUs); } } void NuPlayer::getStats(Vector<sp<AMessage> > *mTrackStats) { void NuPlayer::getStats(Vector<sp<AMessage> > *trackStats) { CHECK(mTrackStats != NULL); CHECK(trackStats != NULL); mTrackStats->clear(); ALOGV("NuPlayer::getStats()"); if (mVideoDecoder != NULL) { sp<AMessage> msg = new AMessage(kWhatGetStats, this); mTrackStats->push_back(mVideoDecoder->getStats()); msg->setPointer("trackstats", trackStats); } if (mAudioDecoder != NULL) { sp<AMessage> response; mTrackStats->push_back(mAudioDecoder->getStats()); (void) msg->postAndAwaitResponse(&response); } // response is for synchronization, ignore contents } } sp<MetaData> NuPlayer::getFileMeta() { sp<MetaData> NuPlayer::getFileMeta() { Loading
media/libmediaplayerservice/nuplayer/NuPlayer.h +2 −1 Original line number Original line Diff line number Diff line Loading @@ -88,7 +88,7 @@ struct NuPlayer : public AHandler { status_t getSelectedTrack(int32_t type, Parcel* reply) const; status_t getSelectedTrack(int32_t type, Parcel* reply) const; status_t selectTrack(size_t trackIndex, bool select, int64_t timeUs); status_t selectTrack(size_t trackIndex, bool select, int64_t timeUs); status_t getCurrentPosition(int64_t *mediaUs); status_t getCurrentPosition(int64_t *mediaUs); void getStats(Vector<sp<AMessage> > *mTrackStats); void getStats(Vector<sp<AMessage> > *trackStats); sp<MetaData> getFileMeta(); sp<MetaData> getFileMeta(); float getFrameRate(); float getFrameRate(); Loading Loading @@ -159,6 +159,7 @@ private: kWhatPrepareDrm = 'pDrm', kWhatPrepareDrm = 'pDrm', kWhatReleaseDrm = 'rDrm', kWhatReleaseDrm = 'rDrm', kWhatMediaClockNotify = 'mckN', kWhatMediaClockNotify = 'mckN', kWhatGetStats = 'gSts', }; }; wp<NuPlayerDriver> mDriver; wp<NuPlayerDriver> mDriver; Loading