Top
audio_capture
audio_decode
audio_encode
audio_lowpower
audio_mixer
audio_processor
audio_render
audio_splitter
image_decode
image_encode
image_fx
image_read
image_write
resize
source
transition
write_still
clock
null_sink
text_scheduler
visualisation
read_media
write_media
camera
egl_render
video_decode
video_encode
video_render
video_scheduler
video_splitter
Custom Index
Metadata

OMX.broadcom.camera

73
camera
70
71
72

This conformant component interfaces to platform-specific camera hardware, and produces raw YUV images. It has a clock input port for correctly assigning timestamps to frames.

The preview port, 70, will emit video images whenever the component is in the executing state and the port is not disabled. The video capture port, 71, will emit images only when the capturing configuration parameter OMX_IndexConfigPortCapturing is set for that port, and either the clock port is disabled or the connected clock is in the Running state.

Due to limitations in the current underlying layers, it is not currently possible to emit the same frame at multiple resolutions. This means that to obtain both preview and video capture images simultaneously, the two ports must be at the same resolution and of the same image format. If they are different, the capture port takes precedence, and no images will be emitted from the preview port.

If port 71 is executing when a connected clock is transitioned to stop the component will stop recording data at the end of the current image, and then transmit a packet with no data but with the EOS flag set.

Port 72 is for still image captures only. This uses a second instance of Camplus and will grab the Bayer input image from the primary Camplus instance, and then process it in the background. The primary Camplus may resume viewfinder operation dependent on configuration and memory being available in the input pool. The port will only capture an image when the port is executing and OMX_IndexConfigPortCapturing is set for the port. If the bOneShot flag is set, an EOS will be emited from the port after each complete capture.

The video ports will emit images in OMX_COLOR_FormatYUV420PackedPlanar or OMX_COLOR_FormatYUV420PackedSemiPlanar or OMX_COLOR_FormatYUV422PackedPlanar format, unless configured for proprietary tunnelling to a Broadcom component supporting the OMX_IndexParamImagePoolDisplayFunction callback, or OMX_IndexParamCameraPoolToEncoderFunction callback, in which case images can be provided in Broadcom-specific format.

In order to optimise loading of relevant drivers, the recommended initialisation sequence is:

  • Create component.
  • Use OMX_IndexConfigRequestCallback to request callbacks on OMX_IndexParamCameraDeviceNumber.
  • Set OMX_IndexParamISPTunerName.
  • Set OMX_IndexParamCameraFlashType.
  • Set OMX_IndexParamCameraDeviceNumber.
  • Wait for the callback that OMX_IndexParamCameraDeviceNumber has changed. At this point, all the drivers have been loaded. Other settings can be applied whilst waiting for this event.
  • Query for OMX_IndexConfigCameraSensorModes as required.
  • Change state to IDLE, and proceed as required.
The component should function as instructed if this sequence is not adhered to, but unnecessary drivers and/or tuners may be loaded and then unloaded, extending the startup latency.

PortIndexNotes
 OMX_IndexParamCommonSensorMode Query / set the camera sensor mode. When setting this parameter, only bOneShot is used. It will return the actual sensor resolution when queried (as per the OMX specification)
OMX_IndexConfigCommonDigitalZoom Query / set the digital zoom factor. The zoomed rectangle is always taken from the centre of the image.
OMX_IndexConfigPortCapturing Query / set whether images are to be emitted on the specified port or not. Changing to enabling capture when the component is not executing will reset the internal counter used for time stamping frames when not connected to a clock component.
OMX_IndexConfigCapturing This index is deprecated and should no longer be used. Use OMX_IndexConfigPortCapturing instead.
OMX_IndexAutoPauseAfterCapture Query / set option to pause the component after the capture bit has been cleared (either by the client or due to the bOneShot flag in OMX_IndexParamCommonSensorMode)
OMX_IndexParamCameraCamplusId Query / set the identifier to use with the Broadcom Camplus library used by this component.
OMX_IndexParamCameraDeviceNumber Camera device number. Query / set the camera number (as defined by the Videocore make system) to be used by this camera component. When set, the value will be checked to ensure that the camera number specified is defined for the platform. Setting this parameter also triggers loading of the relevant drivers to speed up queries for OMX_IndexConfigCameraSensorModes, which require the drivers to be loaded. This parameter is supported by OMX_IndexConfigRequestCallback, so the client can be notified once that driver is loaded, rather than having to poll the settings.
OMX_IndexParamCameraDevicesPresent Query the camera devices defined for this platform. The result is a bitmask indicating which cameras ahve been detected.
OMX_IndexParamISPTunerName ISP tuner name. Allow the client to query / set the name of the camera tuner module to be used by Camplus. If tuner_name is a null string, the default tuner for the camera module is loaded. It is recommended that this parameter is set before OMX_IndexParamCameraDeviceNumber to avoid reloading the CDI and default tuner.
OMX_IndexConfigCommonFrameStabilisation Query / set the state of the image stabilisation function of the camera (NB the image will be automatically zoomed by approx 10% to allow the stabilisation alogrithm space to operate in)
OMX_IndexConfigCommonExposure Query / set the exposure mode for the camera.
OMX_IndexConfigCommonExposureValue Query / set the exposure parameters for the camera
OMX_IndexParamCameraImagePool Set the image pool parameters for to be used by the components. This allows a client to specifies the size, type, and number of images in each pool. By default the sizes are left as 0 so the size is determined by OMX_IndexParamPortMaxFrameSize. The number of images in each pool is always determined by the settings in this parameter.
OMX_IndexConfigCameraISPOutputPoolHeight Set the height of the high-resolution output image in stills capture only. The component will copy out of this image into OMX buffers as required, or pass pointers to stripes within the buffer. If the height of this buffer is less than nFrameHeight for a port, then attempts to use OMX_IndexParamImagePoolDisplayFunction, or OMX_IndexParamCameraPoolToEncoderFunction will be rejected as the complete frame isn't available. A value of 0 is interpreted as allocate full frames. The value must be a multiple of 16.
OMX_IndexConfigFocusControl Query/set the focus mode.
OMX_IndexConfigCommonFocusStatus Query the focus position, and the state of the auto/manual focus operations.
OMX_IndexParamImagePoolExternal Allows pointers to external image pools to be passed in to the component to be used for image capture. image_pool is used as the ISP high resolution image pool, image_pool2 as the ISP low res pool, image_pool3 as the input pool, image_pool3 as the high res stills pool, and image_pool5 as the stills input pool. If being used, all five must be valid image pools. If not, all five must be NULL, the default, which causes the component to allocate pools when active.
OMX_IndexConfigBrcmCameraStats Camera frame statistics. Allows the Camplus frame counts for number of frames produced and dropped to be read by the client. These counts get reset whenever a new mode is requested from Camplus. Additional knowledge of when this occurs is required to obtain meaningful results from this config.
OMX_IndexParamCameraSwapImagePools Swap over image pools. Configures the camera component to swap over the two image pools when in stills capture mode. The behind this logic being that the viewfinder high res images and the capture low res images are approximately the same size, and the viewfinder low res images and the capture high res circular output buffer are approximately the same size. DO NOT USE WITH PARALLEL CAPTURE, AS POOL ALLOCATIONS ALREADY TAKE THIS INTO ACCOUNT
OMX_IndexParamCameraSingleBufferCaptureInput Save memory by using a single input buffer. Configures the camera component to switch to a single input buffer when capturing, therefore saving the memory requirement of having two full resolution bayer input buffers to store the input images.
OMX_IndexConfigCommonRedEyeRemoval Red eye reduction/removal configuration. Configures the red eye reduction algorithm in the camera processing pipeline. The stage is only enabled if the flash mode is not FlashOff. The OMX_RedEyeRemovalSimple mode requests that the algorithm uses a reduced complexity algorithm to reduce the processing time.
OMX_IndexConfigCameraSensorModes Query the image sensor modes supported by the selected CDI. This will return the number of modes supported, and allow to iteratively query for them. If the CDI is not available, then the error OMX_ErrorNotReady will be returned. It is the responsibility of the client to delay and retry the request.
OMX_IndexConfigCommonSharpness Image sharpening. Query / set the sharpening/softening of the output image. -100 = max softening. 0 = no change. +100 = max sharpening.
OMX_IndexConfigCommonContrast Query / set the contrast. As per the OMX-IL 1.1.1 spec, the range is -100 to 100, with 0 indicating no change.
OMX_IndexConfigCommonBrightness Query / set the brightness. As per the OMX-IL 1.1.1 spec, the range is +0 to 100, representing 0 to 100%.
OMX_IndexConfigCommonSaturation Query / set the image saturation. As per the OMX-IL 1.1.1 spec, the range is -100 to 100, with 0 indicating no change, -100 will result in a completely black image, and 100 will result in a completely white image. This setting is ignored if OMX_IndexConfigCommonColorEnhancement is enabled.
OMX_IndexConfigCommonColorEnhancement Query / set the values with which to fill the U and V planes of the output image. This feature overrides any saturation settings when enabled. The change is made within the ISP, so postprocessor software stages will not have any colour data to work with. Use of functions such as red eye reduction when colour enhancement is active may produce indeterminate results.
OMX_IndexConfigCommonFlickerCancellation Query / set the flicker cancellation frequency. Values are defined for Off, 50Hz, 60Hz, or auto. The method for auto detecting the flicker frequency is not defined, and currently results in the feature being turned off.
OMX_IndexConfigInputCropPercentages Set crop region seen by ISP. Query / set the region of the input image that will be cropped before being processed by the ISP. It is specified as a fraction of the input width and height, expressed as a 16p16 value.
OMX_IndexConfigCommonWhiteBalance Query / set the auto white balance operating mode.
OMX_IndexConfigStillsAntiShakeEnable Query / set the state of the antishake function of the camera.
OMX_IndexConfigStillColourDenoiseEnable Configure still colour denoise. Query / set the state of the still colour denoise function of the camera. This is only applicable whilst doing a stills capture in YUV422 or YUV420 planar format.
OMX_IndexConfigVideoColourDenoiseEnable Configure video colour denoise. Query / set the state of the video colour denoising function of the camera. This is only applicable whilst the camera is producing images in the Broadcom-specific format or YUV420.
OMX_IndexConfigTemporalDenoiseEnable Configure temporal denoise. Query / set the state of the temporal denoising function of the camera. This is only applicable whilst the camera is producing images in the Broadcom-specific format or YUV420.
OMX_IndexConfigCommonFaceDetectionControl Face detection. Query / set the state of the face detection algorithm. Will return OMX_ErrorUnsupportedIndex if the algorithm is not loaded.
OMX_IndexConfigDrawBoxAroundFaces Draw boxes around faces. Query / set the state of adding boxes around the faces detected in the viewfinder frames.
OMX_IndexConfigDrawBoxLineParams Face box style parameters. Query / set the parameters for the box to be drawn around faces/focus regions.
OMX_IndexConfigCommonFaceDetectionRegion Face detection output. Query the currently detected face regions within the viewfinder image. Will return OMX_ErrorUnsupportedIndex if the algorithm is not loaded.
OMX_IndexConfigAFAssistLight Query / set the mode for the Auto focus assist light. It is assumed that the platform supports such a feature.
OMX_IndexConfigSmartShakeReductionEnable Smart Shake Reduction (SSR). Query / set the state of the Smart Shake Reduction function. Will return OMX_ErrorUnsupportedIndex if the algorithm is not loaded.
OMX_IndexConfigWaitForFocusBeforeCapture Wait for focus before capture. Query / set whether the camera component will ensure that the camera module has reported the lens back at the focused position before stopping capturing with the OneShot flag set. This may lead to multiple complete images being emitted from the capture port, and any receiving component/client should be prepared for this.
OMX_IndexConfigCommonImageFilter Query / select image effects to be applied to the viewfinder and capture images
OMX_IndexConfigCommonImageFilterParameters Query / set optional parameters for the selected image filter.
OMX_IndexConfigPrivacyIndicator Query / set whether the privacy indicator light should be switched on whenever the component is capturing. The indicator used depends on the capabilities of the flash driver selected.
OMX_IndexParamFlashControl Query / set the flash control, which controls the basic mode of flash operation.
OMX_IndexParamCameraFlashType Query / set which type of flash (xenon/LED) to use if flash is requested. Changing this value requires the drivers to be reloaded, so it is recommended this is set before setting OMX_IndexParamCameraDeviceNumber.
OMX_IndexConfigCameraFlashConfig Query / set the flags to use to modify the flash algorithm.
OMX_IndexConfigFlashChargeLevel Query the charge level of the currently selected flash device. This is updated at the start of every frame.
OMX_IndexConfigCameraEnableStatsPass Query / set whether a separate stats pass should be done before each capture. This will be done automatically if flash is requested.
OMX_IndexConfigCaptureRawImageURI Configure filename for raw Bayer image. Query / set whether the filename to which the raw Bayer format image should be written out to file. Follows the standard URI structure. Can NOT be set when the capture bit is set and the capture port is executing. Will return OMX_ErrorUnsupportedIndex if the algorithm is not loaded.
OMX_IndexConfigCameraIsoReferenceValue Allows the client to obtain the ISO reference for unity analogue gain.
OMX_IndexConfigCameraCaptureAbortsAutoFocus Starting a capture aborts AF. Query / set whether setting the capture bit will abort any AF cycle that is in progress, or if the AF cycle should continue and the capture happen automatically on completion.
OMX_IndexParamCameraDisableAlgorithm Disabling processing stages. This allows optional processing stages to be totally disabled, and hence not loaded when the component is taken from Loaded to Idle.
OMX_IndexParamCameraCaptureEventFunction Allows a VideoCore callback function to be registered to be used as an indication of when a capture is being started. This will not work over ILCS.
OMX_IndexParamCameraUseCase Camera use case. Query / set the use case to be passed into the tuner module.
OMX_IndexConfigCameraInputFrame This parameter allows a Videocore component to obtain the pointer for the camera input frame (typically Bayer). For debug use only, and will not work over ILCS.
OMX_IndexParamDynamicParameterFile Specify a dynamic parameter file to use or not. If a file is to be used, OMX_IndexParamUseDynamicParameterFile must be set.
OMX_IndexParamUseDynamicParameterFile Specify whether we wish to load the DPF file.
OMX_IndexParamDynamicParameterFileFailFatal Classify error condition when DFP fails to load. This specifies whether the failure to load the DPF file should this be treated as a fatal error Enables loading of a dynamic parameter file. The filename is set with OMX_IndexParamDynamicParameterFile.
OMX_IndexConfigCameraInfo Query the camera and lens information for the current camera.
OMX_IndexConfigCameraFeatures Camera features. Query the capabilities of the current camera (lens and shutter). Some information is only valid when the component is Idle or Executing.
OMX_IndexConfigRequestCallback Query / set whether a RIL_CALLBACK_CONFIGCHANGED should be generated when parameters change state within the component. Currently supported for OMX_IndexConfigCommonFocusStatus, OMX_IndexParamCommonSensorMode, OMX_IndexConfigCameraSettings, OMX_IndexParamCameraDeviceNumber, OMX_IndexConfigCommonSceneDetected, OMX_IndexConfigCommonFaceDetectionRegion, OMX_IndexParamCaptureStatus, and OMX_IndexConfigFieldOfView only.
OMX_IndexConfigCommonFocusRegionXY Query / set the focus regions to use as a set of x/y/width/height boxes.
OMX_IndexConfigUserSettingsId Frame identification. Sets an identifier to be set on the start of the next frame. Gets the identifier seen on the last frame from Camplus. This allows a client to identify when a group of settings have all been applied to Camplus (apply settings, change OMX_IndexConfigUserSettingsId, wait for value read back from OMX_IndexConfigUserSettingsId to change to match).
OMX_IndexConfigCameraSettings Get the parameters applied to the last frame from the camera. The client can also set OMX_IndexConfigRequestCallback for this config.
OMX_IndexConfigBurstCapture Set the camera into a mode where it is only doing captures. The viewfinder port can be executing, but will only emit the snapshot images associated to any captures requested, and not viewfinder frames. This is an optimisation, and not essential.
OMX_IndexConfigPowerDown Standby/power control. Query /set the power status of the camera module. Setting this parameter to OMX_TRUE instructs the component to power down the sensor, but keeping all memory allocated as required by the component state.
OMX_IndexParamBrcmCameraInputAspectRatio Sensor aspect ratio selection. Query / set the prefered aspect ratio of the sensor CDI mode. The CDI will use the nearest value to this. If both are left as 0, then the aspect ratio of the requested output mode is used to bias the sensor mode selection.
OMX_IndexConfigDynamicRangeExpansion Dynamic range expansion. Configures the dynamic range expansion Camplus software stage.
OMX_IndexConfigFaceRecognitionControl Face Recognition Control. Enables/disables the face recognition software stage (if present)
OMX_IndexConfigFaceRecognitionSaveFace Face Recognition Face Learning. Instructs the face recognition stage to save the next primary face it sees into the database with the supplied ID.
OMX_IndexConfigFaceRecognitionDatabaseUri Face Recognition Database File. Specifies the URI of the database file to be used by face recognition.
OMX_IndexConfigFlashInfo Flash Information. Queries for the information on the flash devices present.
OMX_IndexConfigCommonFaceBeautification Face Beautification. Enables/disables the face beautification algorithm, if it is present.
OMX_IndexConfigCommonSceneDetectionControl Automatic Scene Detection Control. Enables/disables the scene detection algorithm, if it is present.
OMX_IndexConfigCommonSceneDetected Automatic Scene Detection Status. Returns the currently detected scene type, as reported by the scene detection algorithm. This config also supports OMX_IndexConfigRequestCallback to report changes in value.
OMX_IndexParamDisableVllPool Controls whether Camplus software stages are loaded into a memory pool allocated by this component, or loaded without specifying where to store the VLLs. If a memory pool is not used, then there is the possibility that a software stage will fail to load due to insufficient memory - this consideration must be made by the application/user.
OMX_IndexConfigBrcmDrawStaticBox

Define a static box to be drawn on the viewfinder images.

Allows a client to set a static box to be drawn on the viewfinder images using the parameters specified for other types of boxes (face tracking, or focus results). This box will always be drawn when it is defined, overriding any face tracking or focus cycle results.

OMX_IndexParamCameraCaptureMode Allow the client to specify the behaviour desired for stills captures. Options are: OMX_CameraCaptureModeWaitForCaptureEnd: Wait for capture to complete before resuming viewfinder. OMX_CameraCaptureModeWaitForCaptureEndAndUsePreviousInputImage: Reprocess the same input frame multiple times with different settings. Currently not implemented in the Camplus levels. OMX_CameraCaptureModeResumeViewfinderImmediately: Resume viewfinder/video encode as soon as the input image for the still has been acquired, and then process the still in a parallel thread. This requires image_pool_params.eInputPoolMode to be set to OMX_CAMERAIMAGEPOOLINPUTMODE_TWOPOOLS, and image_pool_params.nNumHiResStillsFrames to be non-zero, otherwise the image pools won't split in a manner that allows viewfinder to be resumed.
OMX_IndexConfigBrcmCameraRnDPreprocess Test control allowing a software stage to be dropped into the preprocessor pipeline easily and controlled through OMX. Software stage must be called rnd_prep_stage, and SW_STAGE_DISABLE_RND_PREPROC must be undefined in camera_config.h. It is inserted into both video and stills pipelines as the last software stage.
OMX_IndexConfigBrcmCameraRnDPostprocess Test control allowing a software stage to be dropped into the postprocessor pipeline easily and controlled through OMX. Software stage must be called rnd_prep_stage, and SW_STAGE_DISABLE_RND_POSTPROC must be undefined in camera_config.h. It is inserted into both video and stills pipelines as the last software stage.
OMX_IndexParamCommonUseStcTimestamps This parameter selects how the component timestamps buffers if there is no clock. The options are: OMX_TimestampModeZero: Always timestamp them as time 0. OMX_TimestampModeRawStc: Read the STC timestamp of when the frame was captured, and use that raw value. OMX_TimestampModeResetStc: Store the STC of the 1st frame sent on the video port, and subtract that value from all frames. The offset value will get reset whenever video capture is started with either the port capturing flag or enabling the port, so a capture pause function can not be achieved in this mode. If passing buffers it also relies on passing the entire frame in one buffer, as the time information is not available until the whole frame has been received from Camplus.
OMX_IndexParamCaptureStatus Returns the actual capture status of the camera component. Set to True when a stills capture starts, and will be cleared when the capture image has been passed downstream. This parameter is supported by OMX_IndexConfigRequestCallback to allow a client to do stuff on image capture (eg play a shutter sound).
OMX_IndexParamBrcmLazyImagePoolDestroy The image pool will be deleted lazily, i.e. we will not wait for the images to be returned from the pool, but instead rely on the image pool tidying itself up automatically when all references are released.
OMX_IndexConfigBrcmHighDynamicRange Enable / disable the High Dynamic Range (HDR) software stage.
OMX_IndexConfigFieldOfView Image field of view. Returns the field of view provided by the current camera settings. Read only.
OMX_IndexConfigBrcmPoolMemAllocSize Returns the amount of memory being used by the component's image pools. Read only.
70OMX_IndexParamPortDefinition Query / set the preview port resolution. Parts of this value may be overwritten by the component if Camplus needs to apply additional conditions on the image format.
OMX_IndexConfigVideoFramerate Query / set the framerate including when the port is already executing.
OMX_IndexParamImagePoolDisplayFunction Used to set up proprietary communication with the next component. The current default when using proprietary communication is to use the Broadcom-specific image format in place of OMX_COLOR_FormatYUV420PackedPlanar, provided that the capture port has not requested YUV420 explicitly. This is to allow a performance optimisation to be used within the denoising algorithm.
OMX_IndexConfigCameraSensorModes Query the image sensor mode that would be used for the currently defined port definition.
OMX_IndexConfigCommonRotate Query / set the rotation requirements for images emitted from the viewfinder port. Only rotations of 0, 90, 180, and 270 degrees are supported.
OMX_IndexConfigCommonMirror Query / set the mirroring requirements for images emitted from the viewfinder port. These are always used in combination with the rotation parameters, so OMX_MirrorBoth and rotate 180 will result in the image being back at upright.
71OMX_IndexParamPortDefinition Query / set the capture port resolution.
OMX_IndexConfigVideoFramerate Query / set the framerate including when the port is already executing.
OMX_IndexParamImagePoolDisplayFunction Used to set up proprietary communication with the next component.
OMX_IndexParamCameraPoolToEncoderFunction

Used to set up proprietary communication with the next component (video encoder specific)

OMX_IndexConfigCameraSensorModes Query the image sensor mode that would be used for the currently defined port definition.
OMX_IndexConfigCommonRotate Query / set the rotation requirements for images emitted from the capture port. Only rotations of 0, 90, 180, and 270 degrees are supported.
OMX_IndexConfigCommonMirror Query / set the mirroring requirements for images emitted from the capture port. These are always used in combination with the rotation parameters, so OMX_MirrorBoth and rotate 180 will result in the image being back at upright.
72OMX_IndexParamCameraStripeFunction Used to set up proprietary communication with the next component when passing image stripes (write still specific)
OMX_IndexConfigCameraStripeFuncMinLines Used to set the minimum number of lines to be passed using the stripe function. The stripe function itself is set with OMX_IndexParamCameraStripeFunction.
OMX_IndexParamImagePortFormat Query / set the video port format. This port supports a small range of uncompressed pixel formats.
70 71OMX_IndexParamVideoPortFormat Query / set the video port format. These ports support a small range of uncompressed pixel formats.
70 71 72OMX_IndexParamBrcmDisableProprietaryTunnels Tells the component not to use proprietary communication for the selected output port.
OMX_IndexParamPortMaxFrameSize Allows the defining of the maximum frame size to be used on the specified port. Image pools will be sized based on this information in the absence of any additional configuration from the application (via OMX_IndexParamCameraImagePool). The size passed in OMX_IndexParamPortDefinition will be checked against this setting (potentially tranposed) to ensure that the images can fit in the pool.
73OMX_IndexParamOtherPortFormat Query / set the format used by this port. This port supports only the clock format type.