am 407f98bf: Remove the logic in CameraSource using CameraParameters class to find out the buffer size.

This commit is contained in:
James Dong
2010-05-27 08:00:31 -07:00
committed by Android Git Automerger

View File

@@ -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());