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

Change-Id: I76eea76bda49529d08b46241d3dded1a804f891c
This commit is contained in:
James Dong
2010-05-27 01:57:08 -07:00
parent c109190b69
commit 407f98bfcd

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