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

Commit 0c5b910e authored by Lajos Molnar's avatar Lajos Molnar Committed by Android (Google) Code Review
Browse files

Merge "stagefright: set PTS for SoftwareRenderer"

parents fc7fca77 908ea660
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -106,12 +106,15 @@ struct AwesomeLocalRenderer : public AwesomeRenderer {
    }

    virtual void render(MediaBuffer *buffer) {
        int64_t timeUs;
        CHECK(buffer->meta_data()->findInt64(kKeyTime, &timeUs));

        render((const uint8_t *)buffer->data() + buffer->range_offset(),
               buffer->range_length());
               buffer->range_length(), timeUs * 1000);
    }

    void render(const void *data, size_t size) {
        mTarget->render(data, size, NULL);
    void render(const void *data, size_t size, int64_t timestampNs) {
        mTarget->render(data, size, timestampNs, NULL);
    }

protected:
+6 −1
Original line number Diff line number Diff line
@@ -138,7 +138,7 @@ static int ALIGN(int x, int y) {
}

void SoftwareRenderer::render(
        const void *data, size_t size, void *platformPrivate) {
        const void *data, size_t size, int64_t timestampNs, void *platformPrivate) {
    ANativeWindowBuffer *buf;
    int err;
    if ((err = native_window_dequeue_buffer_and_wait(mNativeWindow.get(),
@@ -230,6 +230,11 @@ void SoftwareRenderer::render(

    CHECK_EQ(0, mapper.unlock(buf->handle));

    if ((err = native_window_set_buffers_timestamp(mNativeWindow.get(),
            timestampNs)) != 0) {
        ALOGW("Surface::set_buffers_timestamp returned error %d", err);
    }

    if ((err = mNativeWindow->queueBuffer(mNativeWindow.get(), buf,
            -1)) != 0) {
        ALOGW("Surface::queueBuffer returned error %d", err);
+1 −1
Original line number Diff line number Diff line
@@ -34,7 +34,7 @@ public:
    ~SoftwareRenderer();

    void render(
            const void *data, size_t size, void *platformPrivate);
            const void *data, size_t size, int64_t timestampNs, void *platformPrivate);

private:
    enum YUVMode {