Top
audio_capture
audio_decode
audio_encode
audio_lowpower
audio_mixer
audio_processor
audio_render
audio_splitter
image_decode
image_encode
image_fx
resize
source
transition
clock
null_sink
text_scheduler
visualisation
camera
egl_render
hvs
isp
rawcam
video_decode
video_encode
video_render
video_scheduler
video_splitter
Custom Index
Metadata

OMX.broadcom.isp

This component wraps the ISP (Image Sensor Processor) hardware block to offer hardware accelerated format conversion and resizing. It has one input port taking Bayer, YUV or RGB images in numerous different formats. Monochrome sensors using the normal CSI-2 pixel format packings are also supported, however what is normally the Bayer part of the processing is still in Bayer mode, therefore the same parameters need to be applied to all 4 channels to avoid strange colour effects.

It has three output ports: Port 361 supports various RGB and YUV formats. Port 362 is off the low res resizer which can only downscale. Due to this port 362 must be at a lower resolution to port 361. If set to a higher resolution then the port will effectively be disabled and no ouput produced. It also doesn't have the colour conversion block, and so only supports YUV formats. Port 363 provides the image statistics available when a Bayer input format is used.

Port 361 is treated as the main output - the pipeline will stall until an output buffer is available on that port. That includes if port 361 is disabled then no processing will occur. If no output buffer is available on port 362 when both an input buffer and port 361 output buffer are available, the frame will be processed with the low resolution output disabled.

Please note that this component has been developed for use under MMAL. It has not been tested at all under IL, so there may be unexpected behaviour under IL. It is also not considered to be production quality code yet - please use with caution.

PortIndexNotes
360OMX_IndexParamPortDefinition Set this to control the input size of the image. Typically this is called by the component itself when this port is tunnelled with an appropriate output port. The stripe height a multiple of 16, and >= nFrameHeight.
OMX_IndexConfigCommonInputCrop Allows cropping at the input. Cropping can be changed at any time. Cropping dimensions can not exceed the image size set via the image will result in the crop width/height being initially clipped, but if the clipped width/height is <= 0, then the whole crop region will be ignored. A region with x, y, width, and height all of 0 is interpreted as no cropping (ie width and height set to image width/height). Please note that this is applied BEFORE any mirror operations have been performed via OMX_IndexConfigCommonMirror.
OMX_IndexConfigCommonMirror Query / set the mirroring requirements for images. Please note that this is currently restricted to being set before both input and high res ports are active. Also note that this is applied AFTER any cropping has been performed via OMX_IndexConfigCommonInputCrop.
OMX_IndexParamBrcmBayerOrder Set / query the Bayer order for the incoming data.
OMX_IndexParamCameraPoolToEncoderFunction Used to set up proprietary communication with the previous component.
OMX_IndexConfigBrcmUseProprietaryCallback Forces use of proprietary tunnelling between ports.
OMX_IndexParamBrcmSupportsUnalignedSliceheight Retrieves the capabilites of this component to allow any nSliceHeight value >= nHeight.
OMX_IndexParamCcmShift Set/retrieve a shift value to be applied to the input colour correction matrix. This allows the use of data packed into the least significant bits of a 16 bit word. Value is the number of positions to shift left. Max shift of 5.
OMX_IndexParamCustomCcm Set/retrieve a custom colour conversion matrix for the input data.
OMX_IndexConfigCameraDigitalGain Manual pipe digital gain. bAutoGain is not applicable to this component and will be ignored. xGain will always be used to set the digital gain within the pipe. This parameter only applies to Bayer input formats.
OMX_IndexParamBrcmIspBlockOverride Disables ISP blocks. Query / set a bitmask that can disable ISP processing blocks. Blocks can NOT be enabled if they haven't been configured in the tuning.
361OMX_IndexParamPortDefinition Query this to show what the output size will be. Set to alter the number of buffers to be used, or change the size of the output image if the custom resize setting is not being used. YUV image dimensions must be even. nSliceHeight must be a multiple of 16 >= nFrameHeight, or 0 which indicates no preference. nStride must be a multiple of 32, or a multiple of 64 for RGBA32 format. FIXME: Correct the list of supported formats
362OMX_IndexParamPortDefinition Query this to show what the output size will be. This port must be at a lower resolution than 361, and only supports YUV formats, not the RGB formats that port 361 does.
360 361 362OMX_IndexParamMinimumAlignment Query the minimum alignment that the component requries on the port.
OMX_IndexParamImagePortFormat Set / query the image port format used. These ports support RGB565, RGBA32 or YUV420 raw bitmap formats. FIXME: Correct the list of supported formats
OMX_IndexParamColorSpace Set/retrieve the image colour space that buffers on the port should be processed with. FIXME: Implement me.
361 362OMX_IndexParamOutputShift Set/retrieve an additional shift parameter applied at the output of the ISP. This is to allow packing of values into fewer bits (eg 10 bit packed in the LSBs of a 16 bit word). Value is the number of bits to shift left. The range will vary based on output format.
 OMX_IndexConfigCustomAwbGains Custom AWB Gains. Allows client to set AWB gains. This parameter only applies to Bayer input formats.
OMX_IndexParamBrcmLensShadingOverride Set the lens shading table. Allows the client to provide a lens shading grid.
OMX_IndexParamBrcmBlackLevel Specify the level to be treated as black.