You can configure various settings on the camera to modify the ISO,
aperture, shutter speed, framerate, 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). For more information about which
settings can be started only after the viewfinder is started, see the documentation for the function in the
Camera library Library in this guide.
Note: 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 them. 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 defined in the
camera_3a.h header. There
are functions that allow you to:
- retrieve the supported camera settings, such as
camera_get_supported_ev_offsets() and
camera_get_supported_manual_aperture_values()
- retrieve the current camera setting, such as
camera_get_manual_iso(), which gets the current manual ISO value
- set the camera settings, such as camera_set_manual_iso(), which sets the
manual ISO value on the camera
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, auto exposure, 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, call
camera_get_3a_lock_modes() to see which camera settings can be locked, and then
based on the lock modes available, determine the combinations of camera
settings that can be locked using camera_set_3a_lock_mode().
For example, if you call
camera_get_3a_lock_modes,
you might get an array that indicates
that all 3A algorithms can be locked independently. For example:
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 can 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 making the settings manually is that it gives
you more control over the appearance of the image buffers captured from the camera.
These manual settings can be set only after you call
camera_start_viewfinder().
Note: Not all cameras support all the available manual settings.
To determine which manual exposure settings can be adjusted,
you can call camera_get_exposure_modes().