-rw-r--r-- | v3/Android.mk | 10 | ||||
-rw-r--r-- | v3/EmulatedFakeCamera3.cpp | 29 | ||||
-rw-r--r-- | v3/EmulatedFakeCamera3.h | 4 | ||||
-rw-r--r-- | v3/LoadXml.cpp | 208 | ||||
-rw-r--r-- | v3/LoadXml.h | 48 | ||||
-rw-r--r--[-rwxr-xr-x] | v3/QemuClient.h | 2 | ||||
-rw-r--r-- | v3/fake-pipeline2/JpegCompressor.cpp | 328 | ||||
-rw-r--r-- | v3/fake-pipeline2/JpegCompressor.h | 53 | ||||
-rw-r--r-- | v3/fake-pipeline2/Sensor.cpp | 93 | ||||
-rw-r--r-- | v3/inc/qemu_pipe.h | 94 | ||||
-rw-r--r-- | v3/inc/qemud.h | 153 |
11 files changed, 362 insertions, 660 deletions
diff --git a/v3/EmulatedFakeCamera3.cpp b/v3/EmulatedFakeCamera3.cpp index 41d8c0b..6e2b39f 100644 --- a/v3/EmulatedFakeCamera3.cpp +++ b/v3/EmulatedFakeCamera3.cpp @@ -194,7 +194,6 @@ EmulatedFakeCamera3::EmulatedFakeCamera3(int cameraId, struct hw_module_t* modul mFlushTag = false; mPlugged = false; - gLoadXml.parseXMLFile(); } EmulatedFakeCamera3::~EmulatedFakeCamera3() { @@ -405,8 +404,6 @@ status_t EmulatedFakeCamera3::closeCamera() { status_t EmulatedFakeCamera3::getCameraInfo(struct camera_info *info) { char property[PROPERTY_VALUE_MAX]; - char* tempApkName = gLoadXml.getApkPackageName(IPCThreadState::self()->getCallingPid()); - List_Or * temp=new List_Or(); info->facing = mFacingBack ? CAMERA_FACING_BACK : CAMERA_FACING_FRONT; if (mSensorType == SENSOR_USB) { if (mFacingBack) { @@ -415,15 +412,6 @@ status_t EmulatedFakeCamera3::getCameraInfo(struct camera_info *info) { property_get("hw.camera.orientation.front", property, "0"); } int32_t orientation = atoi(property); - - if (gLoadXml.findApkCp(tempApkName, temp)) { - orientation = atoi(temp->pro); - } - if (temp != NULL) { - delete temp; - temp = NULL; - } - property_get("hw.camera.usb.orientation_offset", property, "0"); orientation += atoi(property); orientation %= 360; @@ -530,6 +518,18 @@ status_t EmulatedFakeCamera3::configureStreams( newStream->stream_type, newStream->max_buffers, isRestart); } + + if ((newStream->width == 0) || (newStream->width == UINT32_MAX) || + (newStream->height == 0) || (newStream->height == UINT32_MAX)) { + ALOGE("invalid width or height. \n"); + return -EINVAL; + } + + if (newStream->rotation == UINT32_MAX) { + ALOGE("invalid StreamRotation. \n"); + return -EINVAL; + } + ALOGV("%s: Stream %p (id %zu), type %d, usage 0x%x, format 0x%x", __FUNCTION__, newStream, i, newStream->stream_type, newStream->usage, @@ -562,11 +562,12 @@ status_t EmulatedFakeCamera3::configureStreams( if (!validFormat) { ALOGE("%s: Unsupported stream format 0x%x requested", __FUNCTION__, newStream->format); - return BAD_VALUE; + return -EINVAL; } status_t ret = checkValidJpegSize(newStream->width, newStream->height); if (ret != OK) { + ALOGE("Invalid Jpeg Size. \n"); return BAD_VALUE; } @@ -2013,7 +2014,7 @@ status_t EmulatedFakeCamera3::constructStaticInfo() { static const int32_t availableTargetFpsRanges[] = { - 5, 15, 15, 15, 5, 25, 25, 25, 5, 30, 30, 30, + 5, 15, 15, 15, 5, 20, 20, 20, 5, 25, 25, 25, 5, 30, 30, 30, }; info.update(ANDROID_CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES, availableTargetFpsRanges, |