#ifndef MMAL_PARAMETERS_H
#define MMAL_PARAMETERS_H
#include <linux/math.h>
#define MMAL_PARAMETER_GROUP_COMMON (0 << 16)
#define MMAL_PARAMETER_GROUP_CAMERA (1 << 16)
#define MMAL_PARAMETER_GROUP_VIDEO (2 << 16)
#define MMAL_PARAMETER_GROUP_AUDIO (3 << 16)
#define MMAL_PARAMETER_GROUP_CLOCK (4 << 16)
#define MMAL_PARAMETER_GROUP_MIRACAST (5 << 16)
enum mmal_parameter_common_type {
MMAL_PARAMETER_UNUSED = MMAL_PARAMETER_GROUP_COMMON,
MMAL_PARAMETER_SUPPORTED_ENCODINGS,
MMAL_PARAMETER_URI,
MMAL_PARAMETER_CHANGE_EVENT_REQUEST,
MMAL_PARAMETER_ZERO_COPY,
MMAL_PARAMETER_BUFFER_REQUIREMENTS,
MMAL_PARAMETER_STATISTICS,
MMAL_PARAMETER_CORE_STATISTICS,
MMAL_PARAMETER_MEM_USAGE,
MMAL_PARAMETER_BUFFER_FLAG_FILTER,
MMAL_PARAMETER_SEEK,
MMAL_PARAMETER_POWERMON_ENABLE,
MMAL_PARAMETER_LOGGING,
MMAL_PARAMETER_SYSTEM_TIME,
MMAL_PARAMETER_NO_IMAGE_PADDING,
};
enum mmal_parameter_camera_type {
MMAL_PARAMETER_THUMBNAIL_CONFIGURATION =
MMAL_PARAMETER_GROUP_CAMERA,
MMAL_PARAMETER_CAPTURE_QUALITY,
MMAL_PARAMETER_ROTATION,
MMAL_PARAMETER_EXIF_DISABLE,
MMAL_PARAMETER_EXIF,
MMAL_PARAMETER_AWB_MODE,
MMAL_PARAMETER_IMAGE_EFFECT,
MMAL_PARAMETER_COLOUR_EFFECT,
MMAL_PARAMETER_FLICKER_AVOID,
MMAL_PARAMETER_FLASH,
MMAL_PARAMETER_REDEYE,
MMAL_PARAMETER_FOCUS,
MMAL_PARAMETER_FOCAL_LENGTHS,
MMAL_PARAMETER_EXPOSURE_COMP,
MMAL_PARAMETER_ZOOM,
MMAL_PARAMETER_MIRROR,
MMAL_PARAMETER_CAMERA_NUM,
MMAL_PARAMETER_CAPTURE,
MMAL_PARAMETER_EXPOSURE_MODE,
MMAL_PARAMETER_EXP_METERING_MODE,
MMAL_PARAMETER_FOCUS_STATUS,
MMAL_PARAMETER_CAMERA_CONFIG,
MMAL_PARAMETER_CAPTURE_STATUS,
MMAL_PARAMETER_FACE_TRACK,
MMAL_PARAMETER_DRAW_BOX_FACES_AND_FOCUS,
MMAL_PARAMETER_JPEG_Q_FACTOR,
MMAL_PARAMETER_FRAME_RATE,
MMAL_PARAMETER_USE_STC,
MMAL_PARAMETER_CAMERA_INFO,
MMAL_PARAMETER_VIDEO_STABILISATION,
MMAL_PARAMETER_FACE_TRACK_RESULTS,
MMAL_PARAMETER_ENABLE_RAW_CAPTURE,
MMAL_PARAMETER_DPF_FILE,
MMAL_PARAMETER_ENABLE_DPF_FILE,
MMAL_PARAMETER_DPF_FAIL_IS_FATAL,
MMAL_PARAMETER_CAPTURE_MODE,
MMAL_PARAMETER_FOCUS_REGIONS,
MMAL_PARAMETER_INPUT_CROP,
MMAL_PARAMETER_SENSOR_INFORMATION,
MMAL_PARAMETER_FLASH_SELECT,
MMAL_PARAMETER_FIELD_OF_VIEW,
MMAL_PARAMETER_HIGH_DYNAMIC_RANGE,
MMAL_PARAMETER_DYNAMIC_RANGE_COMPRESSION,
MMAL_PARAMETER_ALGORITHM_CONTROL,
MMAL_PARAMETER_SHARPNESS,
MMAL_PARAMETER_CONTRAST,
MMAL_PARAMETER_BRIGHTNESS,
MMAL_PARAMETER_SATURATION,
MMAL_PARAMETER_ISO,
MMAL_PARAMETER_ANTISHAKE,
MMAL_PARAMETER_IMAGE_EFFECT_PARAMETERS,
MMAL_PARAMETER_CAMERA_BURST_CAPTURE,
MMAL_PARAMETER_CAMERA_MIN_ISO,
MMAL_PARAMETER_CAMERA_USE_CASE,
MMAL_PARAMETER_CAPTURE_STATS_PASS,
MMAL_PARAMETER_CAMERA_CUSTOM_SENSOR_CONFIG,
MMAL_PARAMETER_ENABLE_REGISTER_FILE,
MMAL_PARAMETER_REGISTER_FAIL_IS_FATAL,
MMAL_PARAMETER_CONFIGFILE_REGISTERS,
MMAL_PARAMETER_CONFIGFILE_CHUNK_REGISTERS,
MMAL_PARAMETER_JPEG_ATTACH_LOG,
MMAL_PARAMETER_ZERO_SHUTTER_LAG,
MMAL_PARAMETER_FPS_RANGE,
MMAL_PARAMETER_CAPTURE_EXPOSURE_COMP,
MMAL_PARAMETER_SW_SHARPEN_DISABLE,
MMAL_PARAMETER_FLASH_REQUIRED,
MMAL_PARAMETER_SW_SATURATION_DISABLE,
MMAL_PARAMETER_SHUTTER_SPEED,
MMAL_PARAMETER_CUSTOM_AWB_GAINS,
};
enum mmal_parameter_camera_config_timestamp_mode {
MMAL_PARAM_TIMESTAMP_MODE_ZERO = 0,
MMAL_PARAM_TIMESTAMP_MODE_RAW_STC,
MMAL_PARAM_TIMESTAMP_MODE_RESET_STC,
};
struct mmal_parameter_fps_range {
struct s32_fract fps_low;
struct s32_fract fps_high;
};
struct mmal_parameter_camera_config {
u32 max_stills_w;
u32 max_stills_h;
u32 stills_yuv422;
u32 one_shot_stills;
u32 max_preview_video_w;
u32 max_preview_video_h;
u32 num_preview_video_frames;
u32 stills_capture_circular_buffer_height;
u32 fast_preview_resume;
s32 use_stc_timestamp;
};
enum mmal_parameter_exposuremode {
MMAL_PARAM_EXPOSUREMODE_OFF,
MMAL_PARAM_EXPOSUREMODE_AUTO,
MMAL_PARAM_EXPOSUREMODE_NIGHT,
MMAL_PARAM_EXPOSUREMODE_NIGHTPREVIEW,
MMAL_PARAM_EXPOSUREMODE_BACKLIGHT,
MMAL_PARAM_EXPOSUREMODE_SPOTLIGHT,
MMAL_PARAM_EXPOSUREMODE_SPORTS,
MMAL_PARAM_EXPOSUREMODE_SNOW,
MMAL_PARAM_EXPOSUREMODE_BEACH,
MMAL_PARAM_EXPOSUREMODE_VERYLONG,
MMAL_PARAM_EXPOSUREMODE_FIXEDFPS,
MMAL_PARAM_EXPOSUREMODE_ANTISHAKE,
MMAL_PARAM_EXPOSUREMODE_FIREWORKS,
};
enum mmal_parameter_exposuremeteringmode {
MMAL_PARAM_EXPOSUREMETERINGMODE_AVERAGE,
MMAL_PARAM_EXPOSUREMETERINGMODE_SPOT,
MMAL_PARAM_EXPOSUREMETERINGMODE_BACKLIT,
MMAL_PARAM_EXPOSUREMETERINGMODE_MATRIX,
};
enum mmal_parameter_awbmode {
MMAL_PARAM_AWBMODE_OFF,
MMAL_PARAM_AWBMODE_AUTO,
MMAL_PARAM_AWBMODE_SUNLIGHT,
MMAL_PARAM_AWBMODE_CLOUDY,
MMAL_PARAM_AWBMODE_SHADE,
MMAL_PARAM_AWBMODE_TUNGSTEN,
MMAL_PARAM_AWBMODE_FLUORESCENT,
MMAL_PARAM_AWBMODE_INCANDESCENT,
MMAL_PARAM_AWBMODE_FLASH,
MMAL_PARAM_AWBMODE_HORIZON,
};
enum mmal_parameter_imagefx {
MMAL_PARAM_IMAGEFX_NONE,
MMAL_PARAM_IMAGEFX_NEGATIVE,
MMAL_PARAM_IMAGEFX_SOLARIZE,
MMAL_PARAM_IMAGEFX_POSTERIZE,
MMAL_PARAM_IMAGEFX_WHITEBOARD,
MMAL_PARAM_IMAGEFX_BLACKBOARD,
MMAL_PARAM_IMAGEFX_SKETCH,
MMAL_PARAM_IMAGEFX_DENOISE,
MMAL_PARAM_IMAGEFX_EMBOSS,
MMAL_PARAM_IMAGEFX_OILPAINT,
MMAL_PARAM_IMAGEFX_HATCH,
MMAL_PARAM_IMAGEFX_GPEN,
MMAL_PARAM_IMAGEFX_PASTEL,
MMAL_PARAM_IMAGEFX_WATERCOLOUR,
MMAL_PARAM_IMAGEFX_FILM,
MMAL_PARAM_IMAGEFX_BLUR,
MMAL_PARAM_IMAGEFX_SATURATION,
MMAL_PARAM_IMAGEFX_COLOURSWAP,
MMAL_PARAM_IMAGEFX_WASHEDOUT,
MMAL_PARAM_IMAGEFX_POSTERISE,
MMAL_PARAM_IMAGEFX_COLOURPOINT,
MMAL_PARAM_IMAGEFX_COLOURBALANCE,
MMAL_PARAM_IMAGEFX_CARTOON,
};
enum MMAL_PARAM_FLICKERAVOID {
MMAL_PARAM_FLICKERAVOID_OFF,
MMAL_PARAM_FLICKERAVOID_AUTO,
MMAL_PARAM_FLICKERAVOID_50HZ,
MMAL_PARAM_FLICKERAVOID_60HZ,
MMAL_PARAM_FLICKERAVOID_MAX = 0x7FFFFFFF
};
struct mmal_parameter_awbgains {
struct s32_fract r_gain;
struct s32_fract b_gain;
};
enum mmal_parameter_rate_control_mode {
MMAL_VIDEO_RATECONTROL_DEFAULT,
MMAL_VIDEO_RATECONTROL_VARIABLE,
MMAL_VIDEO_RATECONTROL_CONSTANT,
MMAL_VIDEO_RATECONTROL_VARIABLE_SKIP_FRAMES,
MMAL_VIDEO_RATECONTROL_CONSTANT_SKIP_FRAMES
};
enum mmal_video_profile {
MMAL_VIDEO_PROFILE_H263_BASELINE,
MMAL_VIDEO_PROFILE_H263_H320CODING,
MMAL_VIDEO_PROFILE_H263_BACKWARDCOMPATIBLE,
MMAL_VIDEO_PROFILE_H263_ISWV2,
MMAL_VIDEO_PROFILE_H263_ISWV3,
MMAL_VIDEO_PROFILE_H263_HIGHCOMPRESSION,
MMAL_VIDEO_PROFILE_H263_INTERNET,
MMAL_VIDEO_PROFILE_H263_INTERLACE,
MMAL_VIDEO_PROFILE_H263_HIGHLATENCY,
MMAL_VIDEO_PROFILE_MP4V_SIMPLE,
MMAL_VIDEO_PROFILE_MP4V_SIMPLESCALABLE,
MMAL_VIDEO_PROFILE_MP4V_CORE,
MMAL_VIDEO_PROFILE_MP4V_MAIN,
MMAL_VIDEO_PROFILE_MP4V_NBIT,
MMAL_VIDEO_PROFILE_MP4V_SCALABLETEXTURE,
MMAL_VIDEO_PROFILE_MP4V_SIMPLEFACE,
MMAL_VIDEO_PROFILE_MP4V_SIMPLEFBA,
MMAL_VIDEO_PROFILE_MP4V_BASICANIMATED,
MMAL_VIDEO_PROFILE_MP4V_HYBRID,
MMAL_VIDEO_PROFILE_MP4V_ADVANCEDREALTIME,
MMAL_VIDEO_PROFILE_MP4V_CORESCALABLE,
MMAL_VIDEO_PROFILE_MP4V_ADVANCEDCODING,
MMAL_VIDEO_PROFILE_MP4V_ADVANCEDCORE,
MMAL_VIDEO_PROFILE_MP4V_ADVANCEDSCALABLE,
MMAL_VIDEO_PROFILE_MP4V_ADVANCEDSIMPLE,
MMAL_VIDEO_PROFILE_H264_BASELINE,
MMAL_VIDEO_PROFILE_H264_MAIN,
MMAL_VIDEO_PROFILE_H264_EXTENDED,
MMAL_VIDEO_PROFILE_H264_HIGH,
MMAL_VIDEO_PROFILE_H264_HIGH10,
MMAL_VIDEO_PROFILE_H264_HIGH422,
MMAL_VIDEO_PROFILE_H264_HIGH444,
MMAL_VIDEO_PROFILE_H264_CONSTRAINED_BASELINE,
MMAL_VIDEO_PROFILE_DUMMY = 0x7FFFFFFF
};
enum mmal_video_level {
MMAL_VIDEO_LEVEL_H263_10,
MMAL_VIDEO_LEVEL_H263_20,
MMAL_VIDEO_LEVEL_H263_30,
MMAL_VIDEO_LEVEL_H263_40,
MMAL_VIDEO_LEVEL_H263_45,
MMAL_VIDEO_LEVEL_H263_50,
MMAL_VIDEO_LEVEL_H263_60,
MMAL_VIDEO_LEVEL_H263_70,
MMAL_VIDEO_LEVEL_MP4V_0,
MMAL_VIDEO_LEVEL_MP4V_0b,
MMAL_VIDEO_LEVEL_MP4V_1,
MMAL_VIDEO_LEVEL_MP4V_2,
MMAL_VIDEO_LEVEL_MP4V_3,
MMAL_VIDEO_LEVEL_MP4V_4,
MMAL_VIDEO_LEVEL_MP4V_4a,
MMAL_VIDEO_LEVEL_MP4V_5,
MMAL_VIDEO_LEVEL_MP4V_6,
MMAL_VIDEO_LEVEL_H264_1,
MMAL_VIDEO_LEVEL_H264_1b,
MMAL_VIDEO_LEVEL_H264_11,
MMAL_VIDEO_LEVEL_H264_12,
MMAL_VIDEO_LEVEL_H264_13,
MMAL_VIDEO_LEVEL_H264_2,
MMAL_VIDEO_LEVEL_H264_21,
MMAL_VIDEO_LEVEL_H264_22,
MMAL_VIDEO_LEVEL_H264_3,
MMAL_VIDEO_LEVEL_H264_31,
MMAL_VIDEO_LEVEL_H264_32,
MMAL_VIDEO_LEVEL_H264_4,
MMAL_VIDEO_LEVEL_H264_41,
MMAL_VIDEO_LEVEL_H264_42,
MMAL_VIDEO_LEVEL_H264_5,
MMAL_VIDEO_LEVEL_H264_51,
MMAL_VIDEO_LEVEL_DUMMY = 0x7FFFFFFF
};
struct mmal_parameter_video_profile {
enum mmal_video_profile profile;
enum mmal_video_level level;
};
enum mmal_parameter_video_type {
MMAL_PARAMETER_DISPLAYREGION = MMAL_PARAMETER_GROUP_VIDEO,
MMAL_PARAMETER_SUPPORTED_PROFILES,
MMAL_PARAMETER_PROFILE,
MMAL_PARAMETER_INTRAPERIOD,
MMAL_PARAMETER_RATECONTROL,
MMAL_PARAMETER_NALUNITFORMAT,
MMAL_PARAMETER_MINIMISE_FRAGMENTATION,
MMAL_PARAMETER_MB_ROWS_PER_SLICE,
MMAL_PARAMETER_VIDEO_LEVEL_EXTENSION,
MMAL_PARAMETER_VIDEO_EEDE_ENABLE,
MMAL_PARAMETER_VIDEO_EEDE_LOSSRATE,
MMAL_PARAMETER_VIDEO_REQUEST_I_FRAME,
MMAL_PARAMETER_VIDEO_INTRA_REFRESH,
MMAL_PARAMETER_VIDEO_IMMUTABLE_INPUT,
MMAL_PARAMETER_VIDEO_BIT_RATE,
MMAL_PARAMETER_VIDEO_FRAME_RATE,
MMAL_PARAMETER_VIDEO_ENCODE_MIN_QUANT,
MMAL_PARAMETER_VIDEO_ENCODE_MAX_QUANT,
MMAL_PARAMETER_VIDEO_ENCODE_RC_MODEL,
MMAL_PARAMETER_EXTRA_BUFFERS,
MMAL_PARAMETER_VIDEO_ALIGN_HORIZ,
MMAL_PARAMETER_VIDEO_ALIGN_VERT,
MMAL_PARAMETER_VIDEO_DROPPABLE_PFRAMES,
MMAL_PARAMETER_VIDEO_ENCODE_INITIAL_QUANT,
MMAL_PARAMETER_VIDEO_ENCODE_QP_P,
MMAL_PARAMETER_VIDEO_ENCODE_RC_SLICE_DQUANT,
MMAL_PARAMETER_VIDEO_ENCODE_FRAME_LIMIT_BITS,
MMAL_PARAMETER_VIDEO_ENCODE_PEAK_RATE,
MMAL_PARAMETER_VIDEO_ENCODE_H264_DISABLE_CABAC,
MMAL_PARAMETER_VIDEO_ENCODE_H264_LOW_LATENCY,
MMAL_PARAMETER_VIDEO_ENCODE_H264_AU_DELIMITERS,
MMAL_PARAMETER_VIDEO_ENCODE_H264_DEBLOCK_IDC,
MMAL_PARAMETER_VIDEO_ENCODE_H264_MB_INTRA_MODE,
MMAL_PARAMETER_VIDEO_ENCODE_HEADER_ON_OPEN,
MMAL_PARAMETER_VIDEO_ENCODE_PRECODE_FOR_QP,
MMAL_PARAMETER_VIDEO_DRM_INIT_INFO,
MMAL_PARAMETER_VIDEO_TIMESTAMP_FIFO,
MMAL_PARAMETER_VIDEO_DECODE_ERROR_CONCEALMENT,
MMAL_PARAMETER_VIDEO_DRM_PROTECT_BUFFER,
MMAL_PARAMETER_VIDEO_DECODE_CONFIG_VD3,
MMAL_PARAMETER_VIDEO_ENCODE_H264_VCL_HRD_PARAMETERS,
MMAL_PARAMETER_VIDEO_ENCODE_H264_LOW_DELAY_HRD_FLAG,
MMAL_PARAMETER_VIDEO_ENCODE_INLINE_HEADER
};
enum mmal_parameter_mirror {
MMAL_PARAM_MIRROR_NONE,
MMAL_PARAM_MIRROR_VERTICAL,
MMAL_PARAM_MIRROR_HORIZONTAL,
MMAL_PARAM_MIRROR_BOTH,
};
enum mmal_parameter_displaytransform {
MMAL_DISPLAY_ROT0 = 0,
MMAL_DISPLAY_MIRROR_ROT0 = 1,
MMAL_DISPLAY_MIRROR_ROT180 = 2,
MMAL_DISPLAY_ROT180 = 3,
MMAL_DISPLAY_MIRROR_ROT90 = 4,
MMAL_DISPLAY_ROT270 = 5,
MMAL_DISPLAY_ROT90 = 6,
MMAL_DISPLAY_MIRROR_ROT270 = 7,
};
enum mmal_parameter_displaymode {
MMAL_DISPLAY_MODE_FILL = 0,
MMAL_DISPLAY_MODE_LETTERBOX = 1,
};
enum mmal_parameter_displayset {
MMAL_DISPLAY_SET_NONE = 0,
MMAL_DISPLAY_SET_NUM = 1,
MMAL_DISPLAY_SET_FULLSCREEN = 2,
MMAL_DISPLAY_SET_TRANSFORM = 4,
MMAL_DISPLAY_SET_DEST_RECT = 8,
MMAL_DISPLAY_SET_SRC_RECT = 0x10,
MMAL_DISPLAY_SET_MODE = 0x20,
MMAL_DISPLAY_SET_PIXEL = 0x40,
MMAL_DISPLAY_SET_NOASPECT = 0x80,
MMAL_DISPLAY_SET_LAYER = 0x100,
MMAL_DISPLAY_SET_COPYPROTECT = 0x200,
MMAL_DISPLAY_SET_ALPHA = 0x400,
};
struct vchiq_mmal_rect {
s32 x;
s32 y;
s32 width;
s32 height;
};
struct mmal_parameter_displayregion {
u32 set;
u32 display_num;
s32 fullscreen;
u32 transform;
struct vchiq_mmal_rect dest_rect;
struct vchiq_mmal_rect src_rect;
s32 noaspect;
u32 mode;
u32 pixel_x;
u32 pixel_y;
u32 layer;
s32 copyprotect_required;
u32 alpha;
};
#define MMAL_MAX_IMAGEFX_PARAMETERS 5
struct mmal_parameter_imagefx_parameters {
enum mmal_parameter_imagefx effect;
u32 num_effect_params;
u32 effect_parameter[MMAL_MAX_IMAGEFX_PARAMETERS];
};
#define MMAL_PARAMETER_CAMERA_INFO_MAX_CAMERAS 4
#define MMAL_PARAMETER_CAMERA_INFO_MAX_FLASHES 2
#define MMAL_PARAMETER_CAMERA_INFO_MAX_STR_LEN 16
struct mmal_parameter_camera_info_camera {
u32 port_id;
u32 max_width;
u32 max_height;
u32 lens_present;
u8 camera_name[MMAL_PARAMETER_CAMERA_INFO_MAX_STR_LEN];
};
enum mmal_parameter_camera_info_flash_type {
MMAL_PARAMETER_CAMERA_INFO_FLASH_TYPE_XENON = 0,
MMAL_PARAMETER_CAMERA_INFO_FLASH_TYPE_LED = 1,
MMAL_PARAMETER_CAMERA_INFO_FLASH_TYPE_OTHER = 2,
MMAL_PARAMETER_CAMERA_INFO_FLASH_TYPE_MAX = 0x7FFFFFFF
};
struct mmal_parameter_camera_info_flash {
enum mmal_parameter_camera_info_flash_type flash_type;
};
struct mmal_parameter_camera_info {
u32 num_cameras;
u32 num_flashes;
struct mmal_parameter_camera_info_camera
cameras[MMAL_PARAMETER_CAMERA_INFO_MAX_CAMERAS];
struct mmal_parameter_camera_info_flash
flashes[MMAL_PARAMETER_CAMERA_INFO_MAX_FLASHES];
};
#endif