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

Commit 3caa7148 authored by James Dong's avatar James Dong
Browse files

Not all audio source has the drift time information

Change-Id: I74e502376348ca4a6ffaa7492bed35c1355e7e62
parent 7755cdd6
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -209,7 +209,7 @@ status_t AACEncoder::read(
    CHECK_EQ(mBufferGroup->acquire_buffer(&buffer), OK);
    uint8_t *outPtr = (uint8_t *)buffer->data();
    bool readFromSource = false;
    int64_t wallClockTimeUs = 0;
    int64_t wallClockTimeUs = -1;

    if (mFrameCount == 0) {
        memcpy(outPtr, mAudioSpecificConfigData, 2);
@@ -240,8 +240,9 @@ status_t AACEncoder::read(
            CHECK_EQ(align, 0);

            int64_t timeUs;
            CHECK(mInputBuffer->meta_data()->findInt64(kKeyDriftTime, &timeUs));
            if (mInputBuffer->meta_data()->findInt64(kKeyDriftTime, &timeUs)) {
                wallClockTimeUs = timeUs;
            }
            if (mInputBuffer->meta_data()->findInt64(kKeyTime, &timeUs)) {
                mAnchorTimeUs = timeUs;
            }
@@ -298,7 +299,7 @@ status_t AACEncoder::read(
    int64_t mediaTimeUs =
        ((mFrameCount - 1) * 1000000LL * kNumSamplesPerFrame) / mSampleRate;
    buffer->meta_data()->setInt64(kKeyTime, mAnchorTimeUs + mediaTimeUs);
    if (readFromSource) {
    if (readFromSource && wallClockTimeUs != -1) {
        buffer->meta_data()->setInt64(kKeyDriftTime, mediaTimeUs - wallClockTimeUs);
    }
    ++mFrameCount;
+5 −4
Original line number Diff line number Diff line
@@ -148,7 +148,7 @@ status_t AMRNBEncoder::read(
    ReadOptions::SeekMode mode;
    CHECK(options == NULL || !options->getSeekTo(&seekTimeUs, &mode));
    bool readFromSource = false;
    int64_t wallClockTimeUs = 0;
    int64_t wallClockTimeUs = -1;

    while (mNumInputSamples < kNumSamplesPerFrame) {
        if (mInputBuffer == NULL) {
@@ -171,8 +171,9 @@ status_t AMRNBEncoder::read(
            readFromSource = true;

            int64_t timeUs;
            CHECK(mInputBuffer->meta_data()->findInt64(kKeyDriftTime, &timeUs));
            if (mInputBuffer->meta_data()->findInt64(kKeyDriftTime, &timeUs)) {
                wallClockTimeUs = timeUs;
            }
            if (mInputBuffer->meta_data()->findInt64(kKeyTime, &timeUs)) {
                mAnchorTimeUs = timeUs;
            }
@@ -227,7 +228,7 @@ status_t AMRNBEncoder::read(
    buffer->meta_data()->setInt64(
            kKeyTime, mAnchorTimeUs + mediaTimeUs);

    if (readFromSource) {
    if (readFromSource && wallClockTimeUs != -1) {
        buffer->meta_data()->setInt64(kKeyDriftTime,
            mediaTimeUs - wallClockTimeUs);
    }
+5 −4
Original line number Diff line number Diff line
@@ -199,7 +199,7 @@ status_t AMRWBEncoder::read(
    ReadOptions::SeekMode mode;
    CHECK(options == NULL || !options->getSeekTo(&seekTimeUs, &mode));
    bool readFromSource = false;
    int64_t wallClockTimeUs = 0;
    int64_t wallClockTimeUs = -1;

    while (mNumInputSamples < kNumSamplesPerFrame) {
        if (mInputBuffer == NULL) {
@@ -221,8 +221,9 @@ status_t AMRWBEncoder::read(
            CHECK_EQ(align, 0);

            int64_t timeUs;
            CHECK(mInputBuffer->meta_data()->findInt64(kKeyDriftTime, &timeUs));
            if (mInputBuffer->meta_data()->findInt64(kKeyDriftTime, &timeUs)) {
                wallClockTimeUs = timeUs;
            }
            if (mInputBuffer->meta_data()->findInt64(kKeyTime, &timeUs)) {
                mAnchorTimeUs = timeUs;
            }
@@ -285,7 +286,7 @@ status_t AMRWBEncoder::read(

    int64_t mediaTimeUs = mNumFramesOutput * 20000LL;
    buffer->meta_data()->setInt64(kKeyTime, mAnchorTimeUs + mediaTimeUs);
    if (readFromSource) {
    if (readFromSource && wallClockTimeUs != -1) {
        buffer->meta_data()->setInt64(kKeyDriftTime, mediaTimeUs - wallClockTimeUs);
    }