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

Change-Id: I76eea76bda49529d08b46241d3dded1a804f891c
diff --git a/media/libstagefright/CameraSource.cpp b/media/libstagefright/CameraSource.cpp
index 87d7ebb..476b36d 100644
--- a/media/libstagefright/CameraSource.cpp
+++ b/media/libstagefright/CameraSource.cpp
@@ -119,23 +119,6 @@
     }
 }
 
-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 @@
     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 @@
         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());