diff options
-rw-r--r-- | camera/CameraHal.cpp | 41 | ||||
-rw-r--r-- | camera/CameraParameters.cpp | 2 | ||||
-rw-r--r-- | camera/OMXCameraAdapter/OMXCapabilities.cpp | 31 | ||||
-rw-r--r-- | camera/TICameraParameters.cpp | 2 | ||||
-rw-r--r-- | camera/inc/CameraProperties.h | 2 | ||||
-rw-r--r-- | camera/inc/TICameraParameters.h | 2 |
6 files changed, 64 insertions, 16 deletions
diff --git a/camera/CameraHal.cpp b/camera/CameraHal.cpp index ba92d40..cf81c82 100644 --- a/camera/CameraHal.cpp +++ b/camera/CameraHal.cpp @@ -361,16 +361,14 @@ int CameraHal::setParameters(const CameraParameters& params) } if ( (!isResolutionValid(w, h, mCameraProperties->get(CameraProperties::SUPPORTED_PREVIEW_SIZES))) - && (!isResolutionValid(w, h, mCameraProperties->get(CameraProperties::SUPPORTED_PREVIEW_SIDEBYSIDE_SIZES))) - && (!isResolutionValid(w, h, mCameraProperties->get(CameraProperties::SUPPORTED_PREVIEW_TOPBOTTOM_SIZES))) ) - { + && (!isResolutionValid(w, h, mCameraProperties->get(CameraProperties::SUPPORTED_PREVIEW_SUBSAMPLED_SIZES))) + && (!isResolutionValid(w, h, mCameraProperties->get(CameraProperties::SUPPORTED_PREVIEW_SIDEBYSIDE_SIZES))) + && (!isResolutionValid(w, h, mCameraProperties->get(CameraProperties::SUPPORTED_PREVIEW_TOPBOTTOM_SIZES))) ) { CAMHAL_LOGEB("Invalid preview resolution %d x %d", w, h); return BAD_VALUE; - } - else - { + } else { mParameters.setPreviewSize(w, h); - } + } if ( ( oldWidth != w ) || ( oldHeight != h ) ) { @@ -478,8 +476,9 @@ int CameraHal::setParameters(const CameraParameters& params) params.getPictureSize(&w, &h); if ( (isResolutionValid(w, h, mCameraProperties->get(CameraProperties::SUPPORTED_PICTURE_SIZES))) - || (isResolutionValid(w, h, mCameraProperties->get(CameraProperties::SUPPORTED_PICTURE_TOPBOTTOM_SIZES))) - || (isResolutionValid(w, h, mCameraProperties->get(CameraProperties::SUPPORTED_PICTURE_SIDEBYSIDE_SIZES))) ) { + || (isResolutionValid(w, h, mCameraProperties->get(CameraProperties::SUPPORTED_PICTURE_SUBSAMPLED_SIZES))) + || (isResolutionValid(w, h, mCameraProperties->get(CameraProperties::SUPPORTED_PICTURE_TOPBOTTOM_SIZES))) + || (isResolutionValid(w, h, mCameraProperties->get(CameraProperties::SUPPORTED_PICTURE_SIDEBYSIDE_SIZES))) ) { mParameters.setPictureSize(w, h); } else { CAMHAL_LOGEB("ERROR: Invalid picture resolution %d x %d", w, h); @@ -2793,6 +2792,28 @@ char* CameraHal::getParameters() mCameraAdapter->getParameters(mParameters); } + if ( (valstr = mParameters.get(TICameraParameters::KEY_S3D_CAP_FRAME_LAYOUT)) != NULL ) { + if (!strcmp(TICameraParameters::S3D_TB_FULL, valstr)) { + mParameters.set(CameraParameters::KEY_SUPPORTED_PICTURE_SIZES, mParameters.get(TICameraParameters::KEY_SUPPORTED_PICTURE_TOPBOTTOM_SIZES)); + } else if (!strcmp(TICameraParameters::S3D_SS_FULL, valstr)) { + mParameters.set(CameraParameters::KEY_SUPPORTED_PICTURE_SIZES, mParameters.get(TICameraParameters::KEY_SUPPORTED_PICTURE_SIDEBYSIDE_SIZES)); + } else if ((!strcmp(TICameraParameters::S3D_TB_SUBSAMPLED, valstr)) + || (!strcmp(TICameraParameters::S3D_SS_SUBSAMPLED, valstr))) { + mParameters.set(CameraParameters::KEY_SUPPORTED_PICTURE_SIZES, mParameters.get(TICameraParameters::KEY_SUPPORTED_PICTURE_SUBSAMPLED_SIZES)); + } + } + + if ( (valstr = mParameters.get(TICameraParameters::KEY_S3D_PRV_FRAME_LAYOUT)) != NULL ) { + if (!strcmp(TICameraParameters::S3D_TB_FULL, valstr)) { + mParameters.set(CameraParameters::KEY_SUPPORTED_PREVIEW_SIZES, mParameters.get(TICameraParameters::KEY_SUPPORTED_PREVIEW_TOPBOTTOM_SIZES)); + } else if (!strcmp(TICameraParameters::S3D_SS_FULL, valstr)) { + mParameters.set(CameraParameters::KEY_SUPPORTED_PREVIEW_SIZES, mParameters.get(TICameraParameters::KEY_SUPPORTED_PREVIEW_SIDEBYSIDE_SIZES)); + } else if ((!strcmp(TICameraParameters::S3D_TB_SUBSAMPLED, valstr)) + || (!strcmp(TICameraParameters::S3D_SS_SUBSAMPLED, valstr))) { + mParameters.set(CameraParameters::KEY_SUPPORTED_PREVIEW_SIZES, mParameters.get(TICameraParameters::KEY_SUPPORTED_PREVIEW_SUBSAMPLED_SIZES)); + } + } + CameraParameters mParams = mParameters; // Handle RECORDING_HINT to Set/Reset Video Mode Parameters @@ -3391,8 +3412,10 @@ void CameraHal::insertSupportedParams() p.set(CameraParameters::KEY_SUPPORTED_PICTURE_FORMATS, mCameraProperties->get(CameraProperties::SUPPORTED_PICTURE_FORMATS)); p.set(CameraParameters::KEY_SUPPORTED_PREVIEW_SIZES, mCameraProperties->get(CameraProperties::SUPPORTED_PREVIEW_SIZES)); p.set(CameraParameters::KEY_SUPPORTED_PREVIEW_FORMATS, mCameraProperties->get(CameraProperties::SUPPORTED_PREVIEW_FORMATS)); + p.set(TICameraParameters::KEY_SUPPORTED_PICTURE_SUBSAMPLED_SIZES, mCameraProperties->get(CameraProperties::SUPPORTED_PICTURE_SUBSAMPLED_SIZES)); p.set(TICameraParameters::KEY_SUPPORTED_PICTURE_SIDEBYSIDE_SIZES, mCameraProperties->get(CameraProperties::SUPPORTED_PICTURE_SIDEBYSIDE_SIZES)); p.set(TICameraParameters::KEY_SUPPORTED_PICTURE_TOPBOTTOM_SIZES, mCameraProperties->get(CameraProperties::SUPPORTED_PICTURE_TOPBOTTOM_SIZES)); + p.set(TICameraParameters::KEY_SUPPORTED_PREVIEW_SUBSAMPLED_SIZES, mCameraProperties->get(CameraProperties::SUPPORTED_PREVIEW_SUBSAMPLED_SIZES)); p.set(TICameraParameters::KEY_SUPPORTED_PREVIEW_SIDEBYSIDE_SIZES, mCameraProperties->get(CameraProperties::SUPPORTED_PREVIEW_SIDEBYSIDE_SIZES)); p.set(TICameraParameters::KEY_SUPPORTED_PREVIEW_TOPBOTTOM_SIZES, mCameraProperties->get(CameraProperties::SUPPORTED_PREVIEW_TOPBOTTOM_SIZES)); p.set(CameraParameters::KEY_SUPPORTED_PREVIEW_FRAME_RATES, mCameraProperties->get(CameraProperties::SUPPORTED_PREVIEW_FRAME_RATES)); diff --git a/camera/CameraParameters.cpp b/camera/CameraParameters.cpp index 0479197..21d4f9a 100644 --- a/camera/CameraParameters.cpp +++ b/camera/CameraParameters.cpp @@ -33,11 +33,13 @@ const char CameraProperties::CAMERA_SENSOR_ID[] = "prop-sensor-id"; const char CameraProperties::ORIENTATION_INDEX[]="prop-orientation"; const char CameraProperties::FACING_INDEX[]="prop-facing"; const char CameraProperties::SUPPORTED_PREVIEW_SIZES[] = "prop-preview-size-values"; +const char CameraProperties::SUPPORTED_PREVIEW_SUBSAMPLED_SIZES[] = "prop-preview-subsampled-size-values"; const char CameraProperties::SUPPORTED_PREVIEW_TOPBOTTOM_SIZES[] = "prop-preview-topbottom-size-values"; const char CameraProperties::SUPPORTED_PREVIEW_SIDEBYSIDE_SIZES[] = "prop-preview-sidebyside-size-values"; const char CameraProperties::SUPPORTED_PREVIEW_FORMATS[] = "prop-preview-format-values"; const char CameraProperties::SUPPORTED_PREVIEW_FRAME_RATES[] = "prop-preview-frame-rate-values"; const char CameraProperties::SUPPORTED_PICTURE_SIZES[] = "prop-picture-size-values"; +const char CameraProperties::SUPPORTED_PICTURE_SUBSAMPLED_SIZES[] = "prop-picture-subsampled-size-values"; const char CameraProperties::SUPPORTED_PICTURE_TOPBOTTOM_SIZES[] = "prop-picture-topbottom-size-values"; const char CameraProperties::SUPPORTED_PICTURE_SIDEBYSIDE_SIZES[] = "prop-picture-sidebyside-size-values"; const char CameraProperties::SUPPORTED_PICTURE_FORMATS[] = "prop-picture-format-values"; diff --git a/camera/OMXCameraAdapter/OMXCapabilities.cpp b/camera/OMXCameraAdapter/OMXCapabilities.cpp index 0b992a4..0bed42c 100644 --- a/camera/OMXCameraAdapter/OMXCapabilities.cpp +++ b/camera/OMXCameraAdapter/OMXCapabilities.cpp @@ -758,12 +758,10 @@ status_t OMXCameraAdapter::insertImageSizes(CameraProperties::Properties* params if ( NO_ERROR != ret ) { CAMHAL_LOGEB("Error inserting supported picture sizes 0x%x", ret); } else { - params->set(CameraProperties::SUPPORTED_PICTURE_SIZES, supported); + params->set(CameraProperties::SUPPORTED_PICTURE_SUBSAMPLED_SIZES, supported); } - } - else - { - params->set(CameraProperties::SUPPORTED_PICTURE_SIZES, supported); + } else { + params->set(CameraProperties::SUPPORTED_PICTURE_SUBSAMPLED_SIZES, supported); } } @@ -883,12 +881,12 @@ status_t OMXCameraAdapter::insertPreviewSizes(CameraProperties::Properties* para CAMHAL_LOGEB("Error inserting supported preview sizes 0x%x", ret); return ret; } else { - params->set(CameraProperties::SUPPORTED_PREVIEW_SIZES, supported); + params->set(CameraProperties::SUPPORTED_PREVIEW_SUBSAMPLED_SIZES, supported); } } else { - params->set(CameraProperties::SUPPORTED_PREVIEW_SIZES, supported); + params->set(CameraProperties::SUPPORTED_PREVIEW_SUBSAMPLED_SIZES, supported); } } @@ -1851,6 +1849,16 @@ status_t OMXCameraAdapter::insertDefaults(CameraProperties::Properties* params, *pos = '\0'; } params->set(CameraProperties::S3D_PRV_FRAME_LAYOUT, temp); + + if (!strcmp(TICameraParameters::S3D_TB_FULL, temp)) { + params->set(CameraProperties::SUPPORTED_PREVIEW_SIZES, params->get(CameraProperties::SUPPORTED_PREVIEW_TOPBOTTOM_SIZES)); + } else if (!strcmp(TICameraParameters::S3D_SS_FULL, temp)) { + params->set(CameraProperties::SUPPORTED_PREVIEW_SIZES, params->get(CameraProperties::SUPPORTED_PREVIEW_SIDEBYSIDE_SIZES)); + } else if ((!strcmp(TICameraParameters::S3D_TB_SUBSAMPLED, temp)) + || (!strcmp(TICameraParameters::S3D_SS_SUBSAMPLED, temp))) { + params->set(CameraProperties::SUPPORTED_PREVIEW_SIZES, params->get(CameraProperties::SUPPORTED_PREVIEW_SUBSAMPLED_SIZES)); + } + strncpy(temp, params->get(CameraProperties::S3D_CAP_FRAME_LAYOUT_VALUES), MAX_PROP_VALUE_LENGTH - 1); if ((pos = strstr(temp, PARAM_SEP))) { @@ -1858,6 +1866,15 @@ status_t OMXCameraAdapter::insertDefaults(CameraProperties::Properties* params, } params->set(CameraProperties::S3D_CAP_FRAME_LAYOUT, temp); + if (!strcmp(TICameraParameters::S3D_TB_FULL, temp)) { + params->set(CameraProperties::SUPPORTED_PICTURE_SIZES, params->get(CameraProperties::SUPPORTED_PICTURE_TOPBOTTOM_SIZES)); + } else if (!strcmp(TICameraParameters::S3D_SS_FULL, temp)) { + params->set(CameraProperties::SUPPORTED_PICTURE_SIZES, params->get(CameraProperties::SUPPORTED_PICTURE_SIDEBYSIDE_SIZES)); + } else if ((!strcmp(TICameraParameters::S3D_TB_SUBSAMPLED, temp)) + || (!strcmp(TICameraParameters::S3D_SS_SUBSAMPLED, temp))) { + params->set(CameraProperties::SUPPORTED_PICTURE_SIZES, params->get(CameraProperties::SUPPORTED_PICTURE_SUBSAMPLED_SIZES)); + } + params->set(CameraProperties::ANTIBANDING, DEFAULT_ANTIBANDING); params->set(CameraProperties::BRIGHTNESS, DEFAULT_BRIGHTNESS); params->set(CameraProperties::CONTRAST, DEFAULT_CONTRAST); diff --git a/camera/TICameraParameters.cpp b/camera/TICameraParameters.cpp index f5d9a5d..eac4f9b 100644 --- a/camera/TICameraParameters.cpp +++ b/camera/TICameraParameters.cpp @@ -100,8 +100,10 @@ const char TICameraParameters::KEY_S3D_CAP_FRAME_LAYOUT[] = "s3d-cap-frame-layou const char TICameraParameters::KEY_S3D_CAP_FRAME_LAYOUT_VALUES[] = "s3d-cap-frame-layout-values"; //TI extentions fo 3D resolutions +const char TICameraParameters::KEY_SUPPORTED_PICTURE_SUBSAMPLED_SIZES[] = "supported-picture-subsampled-size-values"; const char TICameraParameters::KEY_SUPPORTED_PICTURE_TOPBOTTOM_SIZES[] = "supported-picture-topbottom-size-values"; const char TICameraParameters::KEY_SUPPORTED_PICTURE_SIDEBYSIDE_SIZES[] = "supported-picture-sidebyside-size-values"; +const char TICameraParameters::KEY_SUPPORTED_PREVIEW_SUBSAMPLED_SIZES[] = "supported-preview-subsampled-size-values"; const char TICameraParameters::KEY_SUPPORTED_PREVIEW_TOPBOTTOM_SIZES[] = "supported-preview-topbottom-size-values"; const char TICameraParameters::KEY_SUPPORTED_PREVIEW_SIDEBYSIDE_SIZES[] = "supported-preview-sidebyside-size-values"; diff --git a/camera/inc/CameraProperties.h b/camera/inc/CameraProperties.h index a351e94..384d35b 100644 --- a/camera/inc/CameraProperties.h +++ b/camera/inc/CameraProperties.h @@ -54,11 +54,13 @@ public: static const char ORIENTATION_INDEX[]; static const char FACING_INDEX[]; static const char SUPPORTED_PREVIEW_SIZES[]; + static const char SUPPORTED_PREVIEW_SUBSAMPLED_SIZES[]; static const char SUPPORTED_PREVIEW_TOPBOTTOM_SIZES[]; static const char SUPPORTED_PREVIEW_SIDEBYSIDE_SIZES[]; static const char SUPPORTED_PREVIEW_FORMATS[]; static const char SUPPORTED_PREVIEW_FRAME_RATES[]; static const char SUPPORTED_PICTURE_SIZES[]; + static const char SUPPORTED_PICTURE_SUBSAMPLED_SIZES[]; static const char SUPPORTED_PICTURE_TOPBOTTOM_SIZES[]; static const char SUPPORTED_PICTURE_SIDEBYSIDE_SIZES[]; static const char SUPPORTED_PICTURE_FORMATS[]; diff --git a/camera/inc/TICameraParameters.h b/camera/inc/TICameraParameters.h index 522a299..2a1a556 100644 --- a/camera/inc/TICameraParameters.h +++ b/camera/inc/TICameraParameters.h @@ -222,8 +222,10 @@ static const char S3D_TB_SUBSAMPLED[]; static const char S3D_SS_SUBSAMPLED[]; //TI extentions fo 3D resolutions +static const char KEY_SUPPORTED_PICTURE_SUBSAMPLED_SIZES[]; static const char KEY_SUPPORTED_PICTURE_TOPBOTTOM_SIZES[]; static const char KEY_SUPPORTED_PICTURE_SIDEBYSIDE_SIZES[]; +static const char KEY_SUPPORTED_PREVIEW_SUBSAMPLED_SIZES[]; static const char KEY_SUPPORTED_PREVIEW_TOPBOTTOM_SIZES[]; static const char KEY_SUPPORTED_PREVIEW_SIDEBYSIDE_SIZES[]; |