From 64143ff27c2ffd8bd91ee9451305704e6b54ac6e Mon Sep 17 00:00:00 2001 From: Eino-Ville Talvala Date: Fri, 4 Jan 2013 12:05:56 -0800 Subject: Camera2: Fix JPEG quality metadata type, new warnings.: DO NOT MERGE - JPEG quality tag is now a uint8_t, not an int. Update parameter code accordingly. - Fix new warnings about narrowing conversions. Bug: 7944244 Change-Id: Ie081c57c9e9323148614b170b132ffb98c0a0b9f --- .../camera/libcameraservice/camera2/Parameters.cpp | 37 ++++++++++++++-------- .../camera/libcameraservice/camera2/Parameters.h | 2 +- 2 files changed, 24 insertions(+), 15 deletions(-) diff --git a/services/camera/libcameraservice/camera2/Parameters.cpp b/services/camera/libcameraservice/camera2/Parameters.cpp index 11cabae..278a19c 100644 --- a/services/camera/libcameraservice/camera2/Parameters.cpp +++ b/services/camera/libcameraservice/camera2/Parameters.cpp @@ -1208,23 +1208,24 @@ status_t Parameters::set(const String8& paramString) { } // JPEG_THUMBNAIL_QUALITY - validatedParams.jpegThumbQuality = - newParams.getInt(CameraParameters::KEY_JPEG_THUMBNAIL_QUALITY); - if (validatedParams.jpegThumbQuality < 0 || - validatedParams.jpegThumbQuality > 100) { + int quality = newParams.getInt(CameraParameters::KEY_JPEG_THUMBNAIL_QUALITY); + // also makes sure quality fits in uint8_t + if (quality < 0 || quality > 100) { ALOGE("%s: Requested JPEG thumbnail quality %d is not supported", - __FUNCTION__, validatedParams.jpegThumbQuality); + __FUNCTION__, quality); return BAD_VALUE; } + validatedParams.jpegThumbQuality = quality; // JPEG_QUALITY - validatedParams.jpegQuality = - newParams.getInt(CameraParameters::KEY_JPEG_QUALITY); - if (validatedParams.jpegQuality < 0 || validatedParams.jpegQuality > 100) { + quality = newParams.getInt(CameraParameters::KEY_JPEG_QUALITY); + // also makes sure quality fits in uint8_t + if (quality < 0 || quality > 100) { ALOGE("%s: Requested JPEG quality %d is not supported", - __FUNCTION__, validatedParams.jpegQuality); + __FUNCTION__, quality); return BAD_VALUE; } + validatedParams.jpegQuality = quality; // ROTATION validatedParams.jpegRotation = @@ -1749,7 +1750,11 @@ status_t Parameters::updateRequest(CameraMetadata *request) const { CropRegion::OUTPUT_PREVIEW | CropRegion::OUTPUT_VIDEO | CropRegion::OUTPUT_PICTURE )); - int32_t reqCropRegion[3] = { crop.left, crop.top, crop.width }; + int32_t reqCropRegion[3] = { + static_cast(crop.left), + static_cast(crop.top), + static_cast(crop.width) + }; res = request->update(ANDROID_SCALER_CROP_REGION, reqCropRegion, 3); if (res != OK) return res; @@ -2347,10 +2352,14 @@ Parameters::CropRegion Parameters::calculateCropRegion( float minOutputWidth, minOutputHeight, minOutputRatio; { float outputSizes[][2] = { - { previewWidth, previewHeight }, - { videoWidth, videoHeight }, - { jpegThumbSize[0], jpegThumbSize[1] }, - { pictureWidth, pictureHeight }, + { static_cast(previewWidth), + static_cast(previewHeight) }, + { static_cast(videoWidth), + static_cast(videoHeight) }, + { static_cast(jpegThumbSize[0]), + static_cast(jpegThumbSize[1]) }, + { static_cast(pictureWidth), + static_cast(pictureHeight) }, }; minOutputWidth = outputSizes[0][0]; diff --git a/services/camera/libcameraservice/camera2/Parameters.h b/services/camera/libcameraservice/camera2/Parameters.h index 4ba6773..dc2cdcf 100644 --- a/services/camera/libcameraservice/camera2/Parameters.h +++ b/services/camera/libcameraservice/camera2/Parameters.h @@ -55,7 +55,7 @@ struct Parameters { int pictureWidth, pictureHeight; int32_t jpegThumbSize[2]; - int32_t jpegQuality, jpegThumbQuality; + uint8_t jpegQuality, jpegThumbQuality; int32_t jpegRotation; bool gpsEnabled; -- cgit v1.1