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

Commit b8fbe1f2 authored by James Dong's avatar James Dong Committed by Android Git Automerger
Browse files

am cd9cdf8d: am 407f98bf: Remove the logic in CameraSource using...

am cd9cdf8d: am 407f98bf: Remove the logic in CameraSource using CameraParameters class to find out the buffer size.
parents d1e2d823 cd9cdf8d
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());