Retrieve the rotation angles supported for pictures by the camera.


#include <camera/camera_api.h>
camera_error_t camera_get_photo_rotations(camera_handle_t handle, camera_frametype_t frametype, bool burst, int numasked, int *numsupported, uint32_t *rotations, bool *nonsquare)



The handle returned by a call to the camera_open() function.


The frame type to query supported rotations for. Using CAMERA_FRAMETYPE_UNSPECIFIED will return the supported rotations for the currently configured frametype.


Whether the rotations should be valid for burst capture


The requested number rotations to retrieve from the camera. If you provide a number larger than the maximum number of rotations available on the camera, only the supported rotations are returned.


A pointer to the number of rotations that are returned. If the value of numasked is larger than the number of rotations available on the camera, this is updated to reflect the number rotations supported by the camera.


A pointer a uint32 array. The array is updated with the photo rotations supported by the camera. Ensure that you create an array with the same number of elements as indicated by the numasked argument.


The value updated to reflect whether the camera supports rotation of images that are not a square angle (or multiples of 90 degrees).




Typical rotations are multiples of 90 degrees (called square rotations), such as 0, 90, 180, and 270. For cameras that support only square rotations, the value of non-square should be set to false.

When calling this function, ensure that the rotations argument points to an array which has at least the number of elements allocated as specified in the numasked argument. To determine an appropriate size for this array, you can invoke this function in presizing-mode by setting the numasked argument to 0 or rotations argument set to NULL. When the function is invoked in this presizing-mode, the maximum array size required is returned in numsupported argument. You can then allocate an array of the appropriate size and invoke the function again with numasked argument set to the value returned previously in the numsupported argument.

The values that you retrieve using this function can be written to CAMERA_IMGPROP_ROTATION property using the camera_set_photo_property() function.


CAMERA_OK when the function successfully completes, otherwise another camera_error_t value that provides the reason that the call failed.