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

Commit 9843e8c9 authored by Chong Zhang's avatar Chong Zhang Committed by Android Git Automerger
Browse files

am 58dd0786: Merge "Send kWhatConnected in onTimeUpdate() before first access unit" into klp-dev

* commit '58dd0786':
  Send kWhatConnected in onTimeUpdate() before first access unit
parents a35b4278 58dd0786
Loading
Loading
Loading
Loading
+23 −17
Original line number Diff line number Diff line
@@ -1687,6 +1687,26 @@ private:
        return true;
    }

    void handleFirstAccessUnit() {
        if (mFirstAccessUnit) {
            sp<AMessage> msg = mNotify->dup();
            msg->setInt32("what", kWhatConnected);
            msg->post();

            if (mSeekable) {
                for (size_t i = 0; i < mTracks.size(); ++i) {
                    TrackInfo *info = &mTracks.editItemAt(i);

                    postNormalPlayTimeMapping(
                            i,
                            info->mNormalPlayTimeRTP, info->mNormalPlayTimeUs);
                }
            }

            mFirstAccessUnit = false;
        }
    }

    void onTimeUpdate(int32_t trackIndex, uint32_t rtpTime, uint64_t ntpTime) {
        ALOGV("onTimeUpdate track %d, rtpTime = 0x%08x, ntpTime = 0x%016llx",
             trackIndex, rtpTime, ntpTime);
@@ -1718,6 +1738,8 @@ private:
            }
        }
        if (mAllTracksHaveTime && dataReceivedOnAllChannels()) {
            handleFirstAccessUnit();

            // Time is now established, lets start timestamping immediately
            for (size_t i = 0; i < mTracks.size(); ++i) {
                TrackInfo *trackInfo = &mTracks.editItemAt(i);
@@ -1751,23 +1773,7 @@ private:
            return;
        }

        if (mFirstAccessUnit) {
            sp<AMessage> msg = mNotify->dup();
            msg->setInt32("what", kWhatConnected);
            msg->post();

            if (mSeekable) {
                for (size_t i = 0; i < mTracks.size(); ++i) {
                    TrackInfo *info = &mTracks.editItemAt(i);

                    postNormalPlayTimeMapping(
                            i,
                            info->mNormalPlayTimeRTP, info->mNormalPlayTimeUs);
                }
            }

            mFirstAccessUnit = false;
        }
        handleFirstAccessUnit();

        TrackInfo *track = &mTracks.editItemAt(trackIndex);