Remove the logic in CameraSource using CameraParameters class to find out the buffer size.
Change-Id: I76eea76bda49529d08b46241d3dded1a804f891c
This commit is contained in:
@ -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());
|
||||
|
Reference in New Issue
Block a user