camera_get_video_rotations()

Retrieve the configurable rotation angles supported for the encoded video produced by the camera

Synopsis:

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

Arguments:

handle
The handle returned by a call to the camera_open() function.
frametype
The frame type to query supported rotations for. Using CAMERA_FRAMETYPE_UNSPECIFIED will return the supported rotations for the currently configured frame type.
numasked
The requested number of video rotations to return in the rotations array. You can use a value of 0 to determine the number of rotations supported by the camera.
numsupported
The returned number of video rotations supported by the specified camera.
rotations
A pointer to a uint32_t array. The array is updated with the video rotations supported by the camera. Ensure that you allocate an array with the same number of elements as specified in the numasked argument.
nonsquare
The value updated to reflect whether the camera supports rotation of video output images that are not a square angle (multiples of 90 degrees).

Library:

libcamapi

Description:

Typical rotations are multiples of 90 degrees (called square rotations), such as 0, 90, 180, and 270. For cameras that support only square rotations, a value of false will be returned in the nonsquare argument.

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

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

Returns:

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