From eae312137f71af037d5f5b4071eef8e2ecd6055e Mon Sep 17 00:00:00 2001 From: Eino-Ville Talvala Date: Fri, 4 Jan 2013 12:05:56 -0800 Subject: [PATCH] Camera2: Fix JPEG quality metadata type, new warnings. - 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 6ab19b1638..859e2e9ff4 100644 --- a/services/camera/libcameraservice/camera2/Parameters.cpp +++ b/services/camera/libcameraservice/camera2/Parameters.cpp @@ -1207,23 +1207,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 = @@ -1752,7 +1753,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; @@ -2362,10 +2367,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 4192e9755a..9f5f03ba80 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; -- 2.11.0