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

Commit 8abd4256 authored by Andreas Huber's avatar Andreas Huber Committed by Android Git Automerger
Browse files

am 05c1cada: am 577615c9: Merge "Better support for rtsp (normal play-)time...

am 05c1cada: am 577615c9: Merge "Better support for rtsp (normal play-)time display. Better seek support, timeout if no packets arrive for too long." into gingerbread

Merge commit '05c1cada'

* commit '05c1cada':
  Better support for rtsp (normal play-)time display. Better seek support, timeout if no packets arrive for too long.
parents 84ecebb9 05c1cada
Loading
Loading
Loading
Loading
+4 −9
Original line number Diff line number Diff line
@@ -199,7 +199,6 @@ AwesomePlayer::AwesomePlayer()
      mExtractorFlags(0),
      mLastVideoBuffer(NULL),
      mVideoBuffer(NULL),
      mRTSPTimeOffset(0),
      mSuspensionState(NULL) {
    CHECK_EQ(mClient.connect(), OK);

@@ -759,7 +758,10 @@ status_t AwesomePlayer::getDuration(int64_t *durationUs) {
}

status_t AwesomePlayer::getPosition(int64_t *positionUs) {
    if (mSeeking) {
    if (mRTSPController != NULL) {
        *positionUs = mRTSPController->getNormalPlayTimeUs();
    }
    else if (mSeeking) {
        *positionUs = mSeekTimeUs;
    } else if (mVideoSource != NULL) {
        Mutex::Autolock autoLock(mMiscStateLock);
@@ -770,10 +772,6 @@ status_t AwesomePlayer::getPosition(int64_t *positionUs) {
        *positionUs = 0;
    }

    if (mRTSPController != NULL) {
        *positionUs += mRTSPTimeOffset;
    }

    return OK;
}

@@ -790,13 +788,10 @@ status_t AwesomePlayer::seekTo(int64_t timeUs) {

status_t AwesomePlayer::seekTo_l(int64_t timeUs) {
    if (mRTSPController != NULL) {
        pause_l();
        mRTSPController->seek(timeUs);
        play_l();

        notifyListener_l(MEDIA_SEEK_COMPLETE);
        mSeekNotificationSent = true;
        mRTSPTimeOffset = timeUs;
        return OK;
    }

+2 −0
Original line number Diff line number Diff line
@@ -41,6 +41,8 @@ struct ARTSPController : public MediaExtractor {
    virtual sp<MetaData> getTrackMetaData(
            size_t index, uint32_t flags);

    int64_t getNormalPlayTimeUs();

    void onMessageReceived(const sp<AMessage> &msg);

protected:
+0 −1
Original line number Diff line number Diff line
@@ -182,7 +182,6 @@ private:

    sp<ALooper> mLooper;
    sp<ARTSPController> mRTSPController;
    int64_t mRTSPTimeOffset;
    sp<ARTPSession> mRTPSession;
    sp<UDPPusher> mRTPPusher, mRTCPPusher;

+1 −5
Original line number Diff line number Diff line
@@ -178,12 +178,8 @@ ARTPAssembler::AssemblyStatus AAMRAssembler::addPacket(
        }
    }

    uint64_t ntpTime;
    CHECK(buffer->meta()->findInt64(
                "ntp-time", (int64_t *)&ntpTime));

    sp<ABuffer> accessUnit = new ABuffer(totalSize);
    accessUnit->meta()->setInt64("ntp-time", ntpTime);
    CopyTimes(accessUnit, buffer);

    size_t dstOffset = 0;
    for (size_t i = 0; i < tableOfContents.size(); ++i) {
+3 −7
Original line number Diff line number Diff line
@@ -155,7 +155,7 @@ bool AAVCAssembler::addSingleTimeAggregationPacket(const sp<ABuffer> &buffer) {
        sp<ABuffer> unit = new ABuffer(nalSize);
        memcpy(unit->data(), &data[2], nalSize);

        PropagateTimes(buffer, unit);
        CopyTimes(unit, buffer);

        addSingleNALUnit(unit);

@@ -287,7 +287,7 @@ ARTPAssembler::AssemblyStatus AAVCAssembler::addFragmentedNALUnit(
    ++totalSize;

    sp<ABuffer> unit = new ABuffer(totalSize);
    PropagateTimes(buffer, unit);
    CopyTimes(unit, *queue->begin());

    unit->data()[0] = (nri << 5) | nalType;

@@ -325,10 +325,6 @@ void AAVCAssembler::submitAccessUnit() {
    LOG(VERBOSE) << "Access unit complete (" << mNALUnits.size() << " nal units)";
#endif

    uint64_t ntpTime;
    CHECK((*mNALUnits.begin())->meta()->findInt64(
                "ntp-time", (int64_t *)&ntpTime));

    size_t totalSize = 0;
    for (List<sp<ABuffer> >::iterator it = mNALUnits.begin();
         it != mNALUnits.end(); ++it) {
@@ -347,7 +343,7 @@ void AAVCAssembler::submitAccessUnit() {
        offset += nal->size();
    }

    accessUnit->meta()->setInt64("ntp-time", ntpTime);
    CopyTimes(accessUnit, *mNALUnits.begin());

#if 0
    printf(mAccessUnitDamaged ? "X" : ".");
Loading