Settings on the Camera

You can configure various settings on the camera to modify the ISO, aperture, shutter speed, frame rate, resolution, format, etc.

Before or after you start the viewfinder, you can configure various manual settings (i.e., ISO, shutter speed, white balance, and aperture) on the camera. Most of the manual settings, however can be set only when viewfinder is running (or has been started). More more information about which settings can be started only after the viewfinder is started, see the documentation for the function in the Camera Framework Library in this guide. As you run your application and make manual setting changes, you many notice that any changes in the manual settings aren't visible for several frames. This is expected due to the latency in the image processing pipeline. This latency varies from system to system. If you configure any of these settings before you call camera_set_vf_mode(), those settings are lost because the camera_set_vf_mode() resets those. The settings are also lost whenever you restart the viewfinder, that is stop and then restart the viewfinder. For more information about setting the viewfinder mode, see the Viewfinder Mode.

To retrieve and configure camera settings, you use functions from the camera_3a.h. There are functions to:

3A Locked modes

Typically, these functions are used to lock settings on the camera. If you use 3A lock modes, it can lock auto focus, autoexposure, or auto white balance.. For example, you can lock the white balance. Depending on the camera, only some settings on the camera can be locked. To determine what camera settings can be locked, you can call camera_get_3a_lock_modes() to see what you camera settings can be locked, and then based on the lock modes available, which combinations of camera settings can be locked using camera_set_3a_lock_mode().

For example, if you camera_get_3a_lock_modes, you might can an array that indicates that all 3A algorithms can be locked independently:
element 0: CAMERA_3A_AUTOFOCUS
element 1: CAMERA_3A_AUTOEXPOSURE
element 2: CAMERA_3A_AUTOWHITEBALANCE
element 3: CAMERA_3A_NONE
Another example, would be a camera where auto focus and auto exposure must be locked simultaneously, while auto white balance can be locked independently:
element 0: CAMERA_3A_AUTOFOCUS | CAMERA_3A_AUTOEXPOSURE
element 1: AMERA_3A_AUTOWHITEBALANCE
element 2: CAMERA_3A_NONE
For more information and examples, see the camera_get_3a_lock_modes().
To lock the mode, you call camera_set_3a_lock(). To lock multiple modes together, you logically OR the values together. Here's an example:
camera_set_3a_lock(cameraHandle, CAMERA_3A_AUTOFOCUS | CAMERA_3A_AUTOEXPOSURE);

Manual camera settings

You can manually set aperture, focus, white balance, shutter speed, exposure modes, and ISO values for the camera, instead of letting the camera automatic modes do it (if available). The advantage of setting it manually is to give the user more control over the appearance of the image buffers captured from the camera. These manual settings can be set only after you call the camera_start_viewfinder()

Note: Cameras may not support all available manual settings. To determine which manual exposure settings can be adjusted, you should call camera_get_exposure_modes().