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 *) {
|
status_t CameraSource::start(MetaData *) {
|
||||||
LOGV("start");
|
LOGV("start");
|
||||||
CHECK(!mStarted);
|
CHECK(!mStarted);
|
||||||
@ -144,13 +127,6 @@ status_t CameraSource::start(MetaData *) {
|
|||||||
CHECK_EQ(OK, mCamera->startRecording());
|
CHECK_EQ(OK, mCamera->startRecording());
|
||||||
|
|
||||||
mStarted = true;
|
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;
|
return OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -222,6 +198,11 @@ status_t CameraSource::read(
|
|||||||
mFrameTimes.erase(mFrameTimes.begin());
|
mFrameTimes.erase(mFrameTimes.begin());
|
||||||
++mNumFramesEncoded;
|
++mNumFramesEncoded;
|
||||||
}
|
}
|
||||||
|
if (mBufferGroup == NULL) {
|
||||||
|
mBufferGroup = new MediaBufferGroup();
|
||||||
|
CHECK(mBufferGroup != NULL);
|
||||||
|
mBufferGroup->add_buffer(new MediaBuffer(frame->size()));
|
||||||
|
}
|
||||||
|
|
||||||
mBufferGroup->acquire_buffer(buffer);
|
mBufferGroup->acquire_buffer(buffer);
|
||||||
memcpy((*buffer)->data(), frame->pointer(), frame->size());
|
memcpy((*buffer)->data(), frame->pointer(), frame->size());
|
||||||
|
Reference in New Issue
Block a user