Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dbd89c79 authored by Ray Essick's avatar Ray Essick Committed by android-build-merger
Browse files

Merge "Move NuPlayer::getStats from binder to handler thread" into pi-dev

am: c2d0641b

Change-Id: I246f31e0cf3989b88ff9e58025e5f64245ed2b72
parents a63f07bf c2d0641b
Loading
Loading
Loading
Loading
+32 −9
Original line number Diff line number Diff line
@@ -1447,6 +1447,29 @@ void NuPlayer::onMessageReceived(const sp<AMessage> &msg) {
            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:
            TRESPASS();
            break;
@@ -2210,16 +2233,16 @@ status_t NuPlayer::getCurrentPosition(int64_t *mediaUs) {
    return renderer->getCurrentPosition(mediaUs);
}

void NuPlayer::getStats(Vector<sp<AMessage> > *mTrackStats) {
    CHECK(mTrackStats != NULL);
void NuPlayer::getStats(Vector<sp<AMessage> > *trackStats) {
    CHECK(trackStats != NULL);

    mTrackStats->clear();
    if (mVideoDecoder != NULL) {
        mTrackStats->push_back(mVideoDecoder->getStats());
    }
    if (mAudioDecoder != NULL) {
        mTrackStats->push_back(mAudioDecoder->getStats());
    }
    ALOGV("NuPlayer::getStats()");
    sp<AMessage> msg = new AMessage(kWhatGetStats, this);
    msg->setPointer("trackstats", trackStats);

    sp<AMessage> response;
    (void) msg->postAndAwaitResponse(&response);
    // response is for synchronization, ignore contents
}

sp<MetaData> NuPlayer::getFileMeta() {
+2 −1
Original line number Diff line number Diff line
@@ -88,7 +88,7 @@ struct NuPlayer : public AHandler {
    status_t getSelectedTrack(int32_t type, Parcel* reply) const;
    status_t selectTrack(size_t trackIndex, bool select, int64_t timeUs);
    status_t getCurrentPosition(int64_t *mediaUs);
    void getStats(Vector<sp<AMessage> > *mTrackStats);
    void getStats(Vector<sp<AMessage> > *trackStats);

    sp<MetaData> getFileMeta();
    float getFrameRate();
@@ -159,6 +159,7 @@ private:
        kWhatPrepareDrm                 = 'pDrm',
        kWhatReleaseDrm                 = 'rDrm',
        kWhatMediaClockNotify           = 'mckN',
        kWhatGetStats                   = 'gSts',
    };

    wp<NuPlayerDriver> mDriver;