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

Commit 324143b1 authored by Andy McFadden's avatar Andy McFadden Committed by Android (Google) Code Review
Browse files

Adjust timestamp scale

BufferQueue item timestamps are in nanoseconds, MediaCodec buffer
timestamps are in microseconds.  Adjust.

Bug 8988357

Change-Id: Ib12824d7eea0316a14543c756e3a127c0866db6b
parent dd90e8b5
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -288,7 +288,7 @@ bool GraphicBufferSource::fillCodecBuffer_l() {
        mBufferSlot[item.mBuf] = item.mGraphicBuffer;
    }

    err = submitBuffer_l(mBufferSlot[item.mBuf], item.mTimestamp, cbi);
    err = submitBuffer_l(mBufferSlot[item.mBuf], item.mTimestamp / 1000, cbi);
    if (err != OK) {
        ALOGV("submitBuffer_l failed, releasing bq buf %d", item.mBuf);
        mBufferQueue->releaseBuffer(item.mBuf, EGL_NO_DISPLAY,
@@ -328,7 +328,7 @@ status_t GraphicBufferSource::signalEndOfInputStream() {
}

status_t GraphicBufferSource::submitBuffer_l(sp<GraphicBuffer>& graphicBuffer,
        int64_t timestamp, int cbi) {
        int64_t timestampUsec, int cbi) {
    ALOGV("submitBuffer_l cbi=%d", cbi);
    CodecBuffer& codecBuffer(mCodecBuffers.editItemAt(cbi));
    codecBuffer.mGraphicBuffer = graphicBuffer;
@@ -343,7 +343,7 @@ status_t GraphicBufferSource::submitBuffer_l(sp<GraphicBuffer>& graphicBuffer,

    status_t err = mNodeInstance->emptyDirectBuffer(header, 0,
            4 + sizeof(buffer_handle_t), OMX_BUFFERFLAG_ENDOFFRAME,
            timestamp);
            timestampUsec);
    if (err != OK) {
        ALOGW("WARNING: emptyDirectBuffer failed: 0x%x", err);
        codecBuffer.mGraphicBuffer = NULL;
+1 −1
Original line number Diff line number Diff line
@@ -131,7 +131,7 @@ private:
    // Marks the mCodecBuffers entry as in-use, copies the GraphicBuffer
    // reference into the codec buffer, and submits the data to the codec.
    status_t submitBuffer_l(sp<GraphicBuffer>& graphicBuffer,
            int64_t timestamp, int cbi);
            int64_t timestampUsec, int cbi);

    // Submits an empty buffer, with the EOS flag set.   Returns without
    // doing anything if we don't have a codec buffer available.