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

Commit 407f98bf authored by James Dong's avatar James Dong
Browse files

Remove the logic in CameraSource using CameraParameters class to find out the buffer size.

Change-Id: I76eea76bda49529d08b46241d3dded1a804f891c
parent c109190b
Loading
Loading
Loading
Loading
+5 −24
Original line number Diff line number Diff line
@@ -119,23 +119,6 @@ CameraSource::~CameraSource() {
    }
}

static int bytesPerPixelTimes10(const char *colorFormat) {
    LOGI("color format: %s", colorFormat);
    return 20;
#if 0
    // XXX: Fix Camera Hal bug?
    // On sholes, it returns CameraParameters::PIXEL_FORMAT_YUV420SP???
    if (!strcmp(colorFormat, CameraParameters::PIXEL_FORMAT_YUV422SP) ||
        !strcmp(colorFormat, CameraParameters::PIXEL_FORMAT_YUV422I)  ||
        !strcmp(colorFormat, CameraParameters::PIXEL_FORMAT_RGB565)) {
        return 20;
    } else if (!strcmp(colorFormat, CameraParameters::PIXEL_FORMAT_YUV420SP)) {
        return 15;
    }
    CHECK_EQ(0, "Unknown color format");
#endif
}

status_t CameraSource::start(MetaData *) {
    LOGV("start");
    CHECK(!mStarted);
@@ -144,13 +127,6 @@ status_t CameraSource::start(MetaData *) {
    CHECK_EQ(OK, mCamera->startRecording());

    mStarted = true;
    mBufferGroup = new MediaBufferGroup();
    String8 s = mCamera->getParameters();
    CameraParameters params(s);
    const char *colorFormat = params.getPreviewFormat();
    const int size = (mWidth * mHeight * bytesPerPixelTimes10(colorFormat))/10;
    mBufferGroup->add_buffer(new MediaBuffer(size));

    return OK;
}

@@ -222,6 +198,11 @@ status_t CameraSource::read(
        mFrameTimes.erase(mFrameTimes.begin());
        ++mNumFramesEncoded;
    }
    if (mBufferGroup == NULL) {
        mBufferGroup = new MediaBufferGroup();
        CHECK(mBufferGroup != NULL);
        mBufferGroup->add_buffer(new MediaBuffer(frame->size()));
    }

    mBufferGroup->acquire_buffer(buffer);
    memcpy((*buffer)->data(), frame->pointer(), frame->size());