Merge "Camera: add QCIF resolution exception" into pi-dev

This commit is contained in:
Yin-Chia Yeh
2019-04-02 19:07:19 +00:00
committed by Android (Google) Code Review
3 changed files with 55 additions and 2 deletions

View File

@@ -807,7 +807,10 @@ public class Camera {
*
* @throws RuntimeException if starting preview fails; usually this would be
* because of a hardware or other low-level error, or because release()
* has been called on this Camera instance.
* has been called on this Camera instance. The QCIF (176x144) exception
* mentioned in {@link Parameters#setPreviewSize setPreviewSize} and
* {@link Parameters#setPictureSize setPictureSize} can also cause this
* exception be thrown.
*/
public native final void startPreview();
@@ -2848,6 +2851,16 @@ public class Camera {
* orientation should also be considered while setting picture size and
* thumbnail size.
*
* Exception on 176x144 (QCIF) resolution:
* Camera devices usually have a fixed capability for downscaling from
* larger resolution to smaller, and the QCIF resolution sometimes
* is not fully supported due to this limitation on devices with
* high-resolution image sensors. Therefore, trying to configure a QCIF
* preview size with any picture or video size larger than 1920x1080
* (either width or height) might not be supported, and
* {@link #setParameters(Camera.Parameters)} might throw a
* RuntimeException if it is not.
*
* @param width the width of the pictures, in pixels
* @param height the height of the pictures, in pixels
* @see #setDisplayOrientation(int)
@@ -2893,6 +2906,16 @@ public class Camera {
* preview can be different from the resolution of the recorded video
* during video recording.</p>
*
* <p>Exception on 176x144 (QCIF) resolution:
* Camera devices usually have a fixed capability for downscaling from
* larger resolution to smaller, and the QCIF resolution sometimes
* is not fully supported due to this limitation on devices with
* high-resolution image sensors. Therefore, trying to configure a QCIF
* video resolution with any preview or picture size larger than
* 1920x1080 (either width or height) might not be supported, and
* {@link #setParameters(Camera.Parameters)} will throw a
* RuntimeException if it is not.</p>
*
* @return a list of Size object if camera has separate preview and
* video output; otherwise, null is returned.
* @see #getPreferredPreviewSizeForVideo()
@@ -3187,6 +3210,16 @@ public class Camera {
* <p>Applications need to consider the display orientation. See {@link
* #setPreviewSize(int,int)} for reference.</p>
*
* <p>Exception on 176x144 (QCIF) resolution:
* Camera devices usually have a fixed capability for downscaling from
* larger resolution to smaller, and the QCIF resolution sometimes
* is not fully supported due to this limitation on devices with
* high-resolution image sensors. Therefore, trying to configure a QCIF
* picture size with any preview or video size larger than 1920x1080
* (either width or height) might not be supported, and
* {@link #setParameters(Camera.Parameters)} might throw a
* RuntimeException if it is not.</p>
*
* @param width the width for pictures, in pixels
* @param height the height for pictures, in pixels
* @see #setPreviewSize(int,int)

View File

@@ -2130,6 +2130,12 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri
* </table>
* <p>Refer to {@link CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES android.request.availableCapabilities} for additional
* mandatory stream configurations on a per-capability basis.</p>
* <p>Exception on 176x144 (QCIF) resolution: camera devices usually have a fixed capability for
* downscaling from larger resolution to smaller, and the QCIF resolution sometimes is not
* fully supported due to this limitation on devices with high-resolution image sensors.
* Therefore, trying to configure a QCIF resolution stream together with any other
* stream larger than 1920x1080 resolution (either width or height) might not be supported,
* and capture session creation will fail if it is not.</p>
* <p>This key is available on all devices.</p>
*
* @see CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL
@@ -2325,6 +2331,12 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri
* ratio 4:3, and the JPEG encoder alignment requirement is 16, the maximum JPEG size will be
* 3264x2448.</li>
* </ul>
* <p>Exception on 176x144 (QCIF) resolution: camera devices usually have a fixed capability on
* downscaling from larger resolution to smaller ones, and the QCIF resolution can sometimes
* not be fully supported due to this limitation on devices with high-resolution image
* sensors. Therefore, trying to configure a QCIF resolution stream together with any other
* stream larger than 1920x1080 resolution (either width or height) might not be supported,
* and capture session creation will fail if it is not.</p>
* <p>This key is available on all devices.</p>
*
* @see CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL
@@ -3182,7 +3194,7 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri
* <li><code>LEVEL_3</code> devices additionally support YUV reprocessing and RAW image capture, along
* with additional output stream configurations.</li>
* <li><code>EXTERNAL</code> devices are similar to <code>LIMITED</code> devices with exceptions like some sensor or
* lens information not reorted or less stable framerates.</li>
* lens information not reported or less stable framerates.</li>
* </ul>
* <p>See the individual level enums for full descriptions of the supported capabilities. The
* {@link CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES android.request.availableCapabilities} entry describes the device's capabilities at a

View File

@@ -433,6 +433,14 @@ public abstract class CameraDevice implements AutoCloseable {
* target combinations with sizes outside of these guarantees, but this can only be tested for
* by attempting to create a session with such targets.</p>
*
* <p>Exception on 176x144 (QCIF) resolution:
* Camera devices usually have a fixed capability for downscaling from larger resolution to
* smaller, and the QCIF resolution sometimes is not fully supported due to this
* limitation on devices with high-resolution image sensors. Therefore, trying to configure a
* QCIF resolution stream together with any other stream larger than 1920x1080 resolution
* (either width or height) might not be supported, and capture session creation will fail if it
* is not.</p>
*
* @param outputs The new set of Surfaces that should be made available as
* targets for captured image data.
* @param callback The callback to notify about the status of the new capture session.