camera_h264avc_parameters_t

Updated: April 19, 2023

The supported video encoder parameters for H.264/AVC

Synopsis:

#include <camera/camera_h264avc.h>
typedef enum {
    CAMERA_H264AVC_BITRATE = 0,
    CAMERA_H264AVC_KEYFRAMEINTERVAL,
    CAMERA_H264AVC_SLICETYPE,
    CAMERA_H264AVC_SLICESIZE,
    CAMERA_H264AVC_PROFILE,
    CAMERA_H264AVC_LEVEL,
    CAMERA_H264AVC_ENTROPYCODING,
    CAMERA_H264AVC_RATECONTROL,
    CAMERA_H264AVC_QPI,
    CAMERA_H264AVC_QPP,
    CAMERA_H264AVC_NUMPARAMETERS
} camera_h264avc_parameters_t;

Data:

CAMERA_H264AVC_BITRATE
The target bitrate or target average bitrate.
Depending on the value you configured for CAMERA_H264AVC_RATECONTROL, the bitrate is interpreted as follows:
  • CAMERA_H264AVC_RATECONTROL_CBR: The target bitrate of the encoded video.
  • CAMERA_H264AVC_RATECONTROL_VBR: The target average bitrate of the encoded video.
  • CAMERA_H264AVC_RATECONTROL_NONE: The bitrate is ignored.

The units are in bits per second as an unsigned int value.

CAMERA_H264AVC_KEYFRAMEINTERVAL
The interval (in frames) between the generation of each keyframe, as an unsigned int value.
CAMERA_H264AVC_SLICETYPE
The algorithm used to generate NAL slices.

The parameter must be set to a camera_h264avc_slicetype_t value, and can be modified only before you start to encode video.

CAMERA_H264AVC_SLICESIZE
The slice size, as an unsigned int value.
Depending on the value you configured for CAMERA_H264AVC_SLICETYPE, the slice size is interpreted as follows:
  • CAMERA_H264AVC_SLICE_FRAME: The slice size is ignored.
  • CAMERA_H264AVC_SLICE_BYTES: The slice size is in bytes.
  • CAMERA_H264AVC_SLICE_MACROBLOCKS: The slice size is the number of macroblocks.

On some devices, this parameter can only be modified before you start encoding video.

CAMERA_H264AVC_PROFILE
The profile used to encode the video.

The parameter must be set to a value from camera_h264avc_profile_t. You can modify this parameter only before you start encoding video.

CAMERA_H264AVC_LEVEL
The level used to encode the video.

The parameter must be set to a value from camera_h264avc_level_t. You can modify this parameter only before you start encoding video.

CAMERA_H264AVC_ENTROPYCODING
The entropy coding method.

The parameter must be set to a value from camera_h264avc_entropycoding_t. You can modify this parameter only before you start encoding video.

CAMERA_H264AVC_RATECONTROL
The rate control method used for the encoding.

The parameter must be set to a value from camera_h264avc_ratecontrol_t. You can modify this parameter only before you start encoding video.

CAMERA_H264AVC_QPI
The Quantization Parameter (QP) that is used to encode key (I) frames when the CAMERA_H264AVC_RATECONTROL parameter is set to CAMERA_H264AVC_RATECONTROL_NONE.

For other rate control methods, this parameter has no impact. The value being set is an unsigned int value.

CAMERA_H264AVC_QPP
The Quantization Parameter (QP) that is used to encode inter (P) frames when the CAMERA_H264AVC_RATECONTROL parameter is set to CAMERA_H264AVC_RATECONTROL_NONE.

For other rate control methods, this parameter has no impact. The value being set is an unsigned int value.

CAMERA_H264AVC_NUMPARAMETERS
An end-of-list identifier for the list of supported video encoder parameters.

Library:

libcamapi

Description:

Use these as parameters in parameter-value pairs that you pass as an argument list to video encoder configuration functions.