root/drivers/staging/vc04_services/bcm2835-camera/mmal-parameters.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /*
   3  * Broadcom BM2835 V4L2 driver
   4  *
   5  * Copyright © 2013 Raspberry Pi (Trading) Ltd.
   6  *
   7  * Authors: Vincent Sanders @ Collabora
   8  *          Dave Stevenson @ Broadcom
   9  *              (now dave.stevenson@raspberrypi.org)
  10  *          Simon Mellor @ Broadcom
  11  *          Luke Diamand @ Broadcom
  12  */
  13 
  14 /* common parameters */
  15 
  16 /** @name Parameter groups
  17  * Parameters are divided into groups, and then allocated sequentially within
  18  * a group using an enum.
  19  * @{
  20  */
  21 
  22 #ifndef MMAL_PARAMETERS_H
  23 #define MMAL_PARAMETERS_H
  24 
  25 /** Common parameter ID group, used with many types of component. */
  26 #define MMAL_PARAMETER_GROUP_COMMON            (0 << 16)
  27 /** Camera-specific parameter ID group. */
  28 #define MMAL_PARAMETER_GROUP_CAMERA            (1 << 16)
  29 /** Video-specific parameter ID group. */
  30 #define MMAL_PARAMETER_GROUP_VIDEO             (2 << 16)
  31 /** Audio-specific parameter ID group. */
  32 #define MMAL_PARAMETER_GROUP_AUDIO             (3 << 16)
  33 /** Clock-specific parameter ID group. */
  34 #define MMAL_PARAMETER_GROUP_CLOCK             (4 << 16)
  35 /** Miracast-specific parameter ID group. */
  36 #define MMAL_PARAMETER_GROUP_MIRACAST       (5 << 16)
  37 
  38 /* Common parameters */
  39 enum mmal_parameter_common_type {
  40                 /**< Never a valid parameter ID */
  41         MMAL_PARAMETER_UNUSED = MMAL_PARAMETER_GROUP_COMMON,
  42 
  43                 /**< MMAL_PARAMETER_ENCODING_T */
  44         MMAL_PARAMETER_SUPPORTED_ENCODINGS,
  45                 /**< MMAL_PARAMETER_URI_T */
  46         MMAL_PARAMETER_URI,
  47                 /** MMAL_PARAMETER_CHANGE_EVENT_REQUEST_T */
  48         MMAL_PARAMETER_CHANGE_EVENT_REQUEST,
  49                 /** MMAL_PARAMETER_BOOLEAN_T */
  50         MMAL_PARAMETER_ZERO_COPY,
  51                 /**< MMAL_PARAMETER_BUFFER_REQUIREMENTS_T */
  52         MMAL_PARAMETER_BUFFER_REQUIREMENTS,
  53                 /**< MMAL_PARAMETER_STATISTICS_T */
  54         MMAL_PARAMETER_STATISTICS,
  55                 /**< MMAL_PARAMETER_CORE_STATISTICS_T */
  56         MMAL_PARAMETER_CORE_STATISTICS,
  57                 /**< MMAL_PARAMETER_MEM_USAGE_T */
  58         MMAL_PARAMETER_MEM_USAGE,
  59                 /**< MMAL_PARAMETER_UINT32_T */
  60         MMAL_PARAMETER_BUFFER_FLAG_FILTER,
  61                 /**< MMAL_PARAMETER_SEEK_T */
  62         MMAL_PARAMETER_SEEK,
  63                 /**< MMAL_PARAMETER_BOOLEAN_T */
  64         MMAL_PARAMETER_POWERMON_ENABLE,
  65                 /**< MMAL_PARAMETER_LOGGING_T */
  66         MMAL_PARAMETER_LOGGING,
  67                 /**< MMAL_PARAMETER_UINT64_T */
  68         MMAL_PARAMETER_SYSTEM_TIME,
  69                 /**< MMAL_PARAMETER_BOOLEAN_T */
  70         MMAL_PARAMETER_NO_IMAGE_PADDING,
  71 };
  72 
  73 /* camera parameters */
  74 
  75 enum mmal_parameter_camera_type {
  76         /* 0 */
  77                 /** @ref MMAL_PARAMETER_THUMBNAIL_CONFIG_T */
  78         MMAL_PARAMETER_THUMBNAIL_CONFIGURATION =
  79                 MMAL_PARAMETER_GROUP_CAMERA,
  80                 /**< Unused? */
  81         MMAL_PARAMETER_CAPTURE_QUALITY,
  82                 /**< @ref MMAL_PARAMETER_INT32_T */
  83         MMAL_PARAMETER_ROTATION,
  84                 /**< @ref MMAL_PARAMETER_BOOLEAN_T */
  85         MMAL_PARAMETER_EXIF_DISABLE,
  86                 /**< @ref MMAL_PARAMETER_EXIF_T */
  87         MMAL_PARAMETER_EXIF,
  88                 /**< @ref MMAL_PARAM_AWBMODE_T */
  89         MMAL_PARAMETER_AWB_MODE,
  90                 /**< @ref MMAL_PARAMETER_IMAGEFX_T */
  91         MMAL_PARAMETER_IMAGE_EFFECT,
  92                 /**< @ref MMAL_PARAMETER_COLOURFX_T */
  93         MMAL_PARAMETER_COLOUR_EFFECT,
  94                 /**< @ref MMAL_PARAMETER_FLICKERAVOID_T */
  95         MMAL_PARAMETER_FLICKER_AVOID,
  96                 /**< @ref MMAL_PARAMETER_FLASH_T */
  97         MMAL_PARAMETER_FLASH,
  98                 /**< @ref MMAL_PARAMETER_REDEYE_T */
  99         MMAL_PARAMETER_REDEYE,
 100                 /**< @ref MMAL_PARAMETER_FOCUS_T */
 101         MMAL_PARAMETER_FOCUS,
 102                 /**< Unused? */
 103         MMAL_PARAMETER_FOCAL_LENGTHS,
 104                 /**< @ref MMAL_PARAMETER_INT32_T */
 105         MMAL_PARAMETER_EXPOSURE_COMP,
 106                 /**< @ref MMAL_PARAMETER_SCALEFACTOR_T */
 107         MMAL_PARAMETER_ZOOM,
 108                 /**< @ref MMAL_PARAMETER_MIRROR_T */
 109         MMAL_PARAMETER_MIRROR,
 110 
 111         /* 0x10 */
 112                 /**< @ref MMAL_PARAMETER_UINT32_T */
 113         MMAL_PARAMETER_CAMERA_NUM,
 114                 /**< @ref MMAL_PARAMETER_BOOLEAN_T */
 115         MMAL_PARAMETER_CAPTURE,
 116                 /**< @ref MMAL_PARAMETER_EXPOSUREMODE_T */
 117         MMAL_PARAMETER_EXPOSURE_MODE,
 118                 /**< @ref MMAL_PARAMETER_EXPOSUREMETERINGMODE_T */
 119         MMAL_PARAMETER_EXP_METERING_MODE,
 120                 /**< @ref MMAL_PARAMETER_FOCUS_STATUS_T */
 121         MMAL_PARAMETER_FOCUS_STATUS,
 122                 /**< @ref MMAL_PARAMETER_CAMERA_CONFIG_T */
 123         MMAL_PARAMETER_CAMERA_CONFIG,
 124                 /**< @ref MMAL_PARAMETER_CAPTURE_STATUS_T */
 125         MMAL_PARAMETER_CAPTURE_STATUS,
 126                 /**< @ref MMAL_PARAMETER_FACE_TRACK_T */
 127         MMAL_PARAMETER_FACE_TRACK,
 128                 /**< @ref MMAL_PARAMETER_BOOLEAN_T */
 129         MMAL_PARAMETER_DRAW_BOX_FACES_AND_FOCUS,
 130                 /**< @ref MMAL_PARAMETER_UINT32_T */
 131         MMAL_PARAMETER_JPEG_Q_FACTOR,
 132                 /**< @ref MMAL_PARAMETER_FRAME_RATE_T */
 133         MMAL_PARAMETER_FRAME_RATE,
 134                 /**< @ref MMAL_PARAMETER_CAMERA_STC_MODE_T */
 135         MMAL_PARAMETER_USE_STC,
 136                 /**< @ref MMAL_PARAMETER_CAMERA_INFO_T */
 137         MMAL_PARAMETER_CAMERA_INFO,
 138                 /**< @ref MMAL_PARAMETER_BOOLEAN_T */
 139         MMAL_PARAMETER_VIDEO_STABILISATION,
 140                 /**< @ref MMAL_PARAMETER_FACE_TRACK_RESULTS_T */
 141         MMAL_PARAMETER_FACE_TRACK_RESULTS,
 142                 /**< @ref MMAL_PARAMETER_BOOLEAN_T */
 143         MMAL_PARAMETER_ENABLE_RAW_CAPTURE,
 144 
 145         /* 0x20 */
 146                 /**< @ref MMAL_PARAMETER_URI_T */
 147         MMAL_PARAMETER_DPF_FILE,
 148                 /**< @ref MMAL_PARAMETER_BOOLEAN_T */
 149         MMAL_PARAMETER_ENABLE_DPF_FILE,
 150                 /**< @ref MMAL_PARAMETER_BOOLEAN_T */
 151         MMAL_PARAMETER_DPF_FAIL_IS_FATAL,
 152                 /**< @ref MMAL_PARAMETER_CAPTUREMODE_T */
 153         MMAL_PARAMETER_CAPTURE_MODE,
 154                 /**< @ref MMAL_PARAMETER_FOCUS_REGIONS_T */
 155         MMAL_PARAMETER_FOCUS_REGIONS,
 156                 /**< @ref MMAL_PARAMETER_INPUT_CROP_T */
 157         MMAL_PARAMETER_INPUT_CROP,
 158                 /**< @ref MMAL_PARAMETER_SENSOR_INFORMATION_T */
 159         MMAL_PARAMETER_SENSOR_INFORMATION,
 160                 /**< @ref MMAL_PARAMETER_FLASH_SELECT_T */
 161         MMAL_PARAMETER_FLASH_SELECT,
 162                 /**< @ref MMAL_PARAMETER_FIELD_OF_VIEW_T */
 163         MMAL_PARAMETER_FIELD_OF_VIEW,
 164                 /**< @ref MMAL_PARAMETER_BOOLEAN_T */
 165         MMAL_PARAMETER_HIGH_DYNAMIC_RANGE,
 166                 /**< @ref MMAL_PARAMETER_DRC_T */
 167         MMAL_PARAMETER_DYNAMIC_RANGE_COMPRESSION,
 168                 /**< @ref MMAL_PARAMETER_ALGORITHM_CONTROL_T */
 169         MMAL_PARAMETER_ALGORITHM_CONTROL,
 170                 /**< @ref MMAL_PARAMETER_RATIONAL_T */
 171         MMAL_PARAMETER_SHARPNESS,
 172                 /**< @ref MMAL_PARAMETER_RATIONAL_T */
 173         MMAL_PARAMETER_CONTRAST,
 174                 /**< @ref MMAL_PARAMETER_RATIONAL_T */
 175         MMAL_PARAMETER_BRIGHTNESS,
 176                 /**< @ref MMAL_PARAMETER_RATIONAL_T */
 177         MMAL_PARAMETER_SATURATION,
 178 
 179         /* 0x30 */
 180                 /**< @ref MMAL_PARAMETER_UINT32_T */
 181         MMAL_PARAMETER_ISO,
 182                 /**< @ref MMAL_PARAMETER_BOOLEAN_T */
 183         MMAL_PARAMETER_ANTISHAKE,
 184                 /** @ref MMAL_PARAMETER_IMAGEFX_PARAMETERS_T */
 185         MMAL_PARAMETER_IMAGE_EFFECT_PARAMETERS,
 186                 /** @ref MMAL_PARAMETER_BOOLEAN_T */
 187         MMAL_PARAMETER_CAMERA_BURST_CAPTURE,
 188                 /** @ref MMAL_PARAMETER_UINT32_T */
 189         MMAL_PARAMETER_CAMERA_MIN_ISO,
 190                 /** @ref MMAL_PARAMETER_CAMERA_USE_CASE_T */
 191         MMAL_PARAMETER_CAMERA_USE_CASE,
 192                 /**< @ref MMAL_PARAMETER_BOOLEAN_T */
 193         MMAL_PARAMETER_CAPTURE_STATS_PASS,
 194                 /** @ref MMAL_PARAMETER_UINT32_T */
 195         MMAL_PARAMETER_CAMERA_CUSTOM_SENSOR_CONFIG,
 196                 /** @ref MMAL_PARAMETER_BOOLEAN_T */
 197         MMAL_PARAMETER_ENABLE_REGISTER_FILE,
 198                 /** @ref MMAL_PARAMETER_BOOLEAN_T */
 199         MMAL_PARAMETER_REGISTER_FAIL_IS_FATAL,
 200                 /** @ref MMAL_PARAMETER_CONFIGFILE_T */
 201         MMAL_PARAMETER_CONFIGFILE_REGISTERS,
 202                 /** @ref MMAL_PARAMETER_CONFIGFILE_CHUNK_T */
 203         MMAL_PARAMETER_CONFIGFILE_CHUNK_REGISTERS,
 204                 /**< @ref MMAL_PARAMETER_BOOLEAN_T */
 205         MMAL_PARAMETER_JPEG_ATTACH_LOG,
 206                 /**< @ref MMAL_PARAMETER_ZEROSHUTTERLAG_T */
 207         MMAL_PARAMETER_ZERO_SHUTTER_LAG,
 208                 /**< @ref MMAL_PARAMETER_FPS_RANGE_T */
 209         MMAL_PARAMETER_FPS_RANGE,
 210                 /**< @ref MMAL_PARAMETER_INT32_T */
 211         MMAL_PARAMETER_CAPTURE_EXPOSURE_COMP,
 212 
 213         /* 0x40 */
 214                 /**< @ref MMAL_PARAMETER_BOOLEAN_T */
 215         MMAL_PARAMETER_SW_SHARPEN_DISABLE,
 216                 /**< @ref MMAL_PARAMETER_BOOLEAN_T */
 217         MMAL_PARAMETER_FLASH_REQUIRED,
 218                 /**< @ref MMAL_PARAMETER_BOOLEAN_T */
 219         MMAL_PARAMETER_SW_SATURATION_DISABLE,
 220                 /**< Takes a @ref MMAL_PARAMETER_UINT32_T */
 221         MMAL_PARAMETER_SHUTTER_SPEED,
 222                 /**< Takes a @ref MMAL_PARAMETER_AWB_GAINS_T */
 223         MMAL_PARAMETER_CUSTOM_AWB_GAINS,
 224 };
 225 
 226 struct mmal_parameter_rational {
 227         s32 num;    /**< Numerator */
 228         s32 den;    /**< Denominator */
 229 };
 230 
 231 enum mmal_parameter_camera_config_timestamp_mode {
 232         MMAL_PARAM_TIMESTAMP_MODE_ZERO = 0, /* Always timestamp frames as 0 */
 233         MMAL_PARAM_TIMESTAMP_MODE_RAW_STC,  /* Use the raw STC value
 234                                              * for the frame timestamp
 235                                              */
 236         MMAL_PARAM_TIMESTAMP_MODE_RESET_STC, /* Use the STC timestamp
 237                                               * but subtract the
 238                                               * timestamp of the first
 239                                               * frame sent to give a
 240                                               * zero based timestamp.
 241                                               */
 242 };
 243 
 244 struct mmal_parameter_fps_range {
 245         /**< Low end of the permitted framerate range */
 246         struct mmal_parameter_rational  fps_low;
 247         /**< High end of the permitted framerate range */
 248         struct mmal_parameter_rational  fps_high;
 249 };
 250 
 251 /* camera configuration parameter */
 252 struct mmal_parameter_camera_config {
 253         /* Parameters for setting up the image pools */
 254         u32 max_stills_w; /* Max size of stills capture */
 255         u32 max_stills_h;
 256         u32 stills_yuv422; /* Allow YUV422 stills capture */
 257         u32 one_shot_stills; /* Continuous or one shot stills captures. */
 258 
 259         u32 max_preview_video_w; /* Max size of the preview or video
 260                                   * capture frames
 261                                   */
 262         u32 max_preview_video_h;
 263         u32 num_preview_video_frames;
 264 
 265         /** Sets the height of the circular buffer for stills capture. */
 266         u32 stills_capture_circular_buffer_height;
 267 
 268         /** Allows preview/encode to resume as fast as possible after the stills
 269          * input frame has been received, and then processes the still frame in
 270          * the background whilst preview/encode has resumed.
 271          * Actual mode is controlled by MMAL_PARAMETER_CAPTURE_MODE.
 272          */
 273         u32 fast_preview_resume;
 274 
 275         /** Selects algorithm for timestamping frames if
 276          * there is no clock component connected.
 277          * enum mmal_parameter_camera_config_timestamp_mode
 278          */
 279         s32 use_stc_timestamp;
 280 };
 281 
 282 enum mmal_parameter_exposuremode {
 283         MMAL_PARAM_EXPOSUREMODE_OFF,
 284         MMAL_PARAM_EXPOSUREMODE_AUTO,
 285         MMAL_PARAM_EXPOSUREMODE_NIGHT,
 286         MMAL_PARAM_EXPOSUREMODE_NIGHTPREVIEW,
 287         MMAL_PARAM_EXPOSUREMODE_BACKLIGHT,
 288         MMAL_PARAM_EXPOSUREMODE_SPOTLIGHT,
 289         MMAL_PARAM_EXPOSUREMODE_SPORTS,
 290         MMAL_PARAM_EXPOSUREMODE_SNOW,
 291         MMAL_PARAM_EXPOSUREMODE_BEACH,
 292         MMAL_PARAM_EXPOSUREMODE_VERYLONG,
 293         MMAL_PARAM_EXPOSUREMODE_FIXEDFPS,
 294         MMAL_PARAM_EXPOSUREMODE_ANTISHAKE,
 295         MMAL_PARAM_EXPOSUREMODE_FIREWORKS,
 296 };
 297 
 298 enum mmal_parameter_exposuremeteringmode {
 299         MMAL_PARAM_EXPOSUREMETERINGMODE_AVERAGE,
 300         MMAL_PARAM_EXPOSUREMETERINGMODE_SPOT,
 301         MMAL_PARAM_EXPOSUREMETERINGMODE_BACKLIT,
 302         MMAL_PARAM_EXPOSUREMETERINGMODE_MATRIX,
 303 };
 304 
 305 enum mmal_parameter_awbmode {
 306         MMAL_PARAM_AWBMODE_OFF,
 307         MMAL_PARAM_AWBMODE_AUTO,
 308         MMAL_PARAM_AWBMODE_SUNLIGHT,
 309         MMAL_PARAM_AWBMODE_CLOUDY,
 310         MMAL_PARAM_AWBMODE_SHADE,
 311         MMAL_PARAM_AWBMODE_TUNGSTEN,
 312         MMAL_PARAM_AWBMODE_FLUORESCENT,
 313         MMAL_PARAM_AWBMODE_INCANDESCENT,
 314         MMAL_PARAM_AWBMODE_FLASH,
 315         MMAL_PARAM_AWBMODE_HORIZON,
 316 };
 317 
 318 enum mmal_parameter_imagefx {
 319         MMAL_PARAM_IMAGEFX_NONE,
 320         MMAL_PARAM_IMAGEFX_NEGATIVE,
 321         MMAL_PARAM_IMAGEFX_SOLARIZE,
 322         MMAL_PARAM_IMAGEFX_POSTERIZE,
 323         MMAL_PARAM_IMAGEFX_WHITEBOARD,
 324         MMAL_PARAM_IMAGEFX_BLACKBOARD,
 325         MMAL_PARAM_IMAGEFX_SKETCH,
 326         MMAL_PARAM_IMAGEFX_DENOISE,
 327         MMAL_PARAM_IMAGEFX_EMBOSS,
 328         MMAL_PARAM_IMAGEFX_OILPAINT,
 329         MMAL_PARAM_IMAGEFX_HATCH,
 330         MMAL_PARAM_IMAGEFX_GPEN,
 331         MMAL_PARAM_IMAGEFX_PASTEL,
 332         MMAL_PARAM_IMAGEFX_WATERCOLOUR,
 333         MMAL_PARAM_IMAGEFX_FILM,
 334         MMAL_PARAM_IMAGEFX_BLUR,
 335         MMAL_PARAM_IMAGEFX_SATURATION,
 336         MMAL_PARAM_IMAGEFX_COLOURSWAP,
 337         MMAL_PARAM_IMAGEFX_WASHEDOUT,
 338         MMAL_PARAM_IMAGEFX_POSTERISE,
 339         MMAL_PARAM_IMAGEFX_COLOURPOINT,
 340         MMAL_PARAM_IMAGEFX_COLOURBALANCE,
 341         MMAL_PARAM_IMAGEFX_CARTOON,
 342 };
 343 
 344 enum MMAL_PARAM_FLICKERAVOID_T {
 345         MMAL_PARAM_FLICKERAVOID_OFF,
 346         MMAL_PARAM_FLICKERAVOID_AUTO,
 347         MMAL_PARAM_FLICKERAVOID_50HZ,
 348         MMAL_PARAM_FLICKERAVOID_60HZ,
 349         MMAL_PARAM_FLICKERAVOID_MAX = 0x7FFFFFFF
 350 };
 351 
 352 struct mmal_parameter_awbgains {
 353         struct mmal_parameter_rational r_gain;  /**< Red gain */
 354         struct mmal_parameter_rational b_gain;  /**< Blue gain */
 355 };
 356 
 357 /** Manner of video rate control */
 358 enum mmal_parameter_rate_control_mode {
 359         MMAL_VIDEO_RATECONTROL_DEFAULT,
 360         MMAL_VIDEO_RATECONTROL_VARIABLE,
 361         MMAL_VIDEO_RATECONTROL_CONSTANT,
 362         MMAL_VIDEO_RATECONTROL_VARIABLE_SKIP_FRAMES,
 363         MMAL_VIDEO_RATECONTROL_CONSTANT_SKIP_FRAMES
 364 };
 365 
 366 enum mmal_video_profile {
 367         MMAL_VIDEO_PROFILE_H263_BASELINE,
 368         MMAL_VIDEO_PROFILE_H263_H320CODING,
 369         MMAL_VIDEO_PROFILE_H263_BACKWARDCOMPATIBLE,
 370         MMAL_VIDEO_PROFILE_H263_ISWV2,
 371         MMAL_VIDEO_PROFILE_H263_ISWV3,
 372         MMAL_VIDEO_PROFILE_H263_HIGHCOMPRESSION,
 373         MMAL_VIDEO_PROFILE_H263_INTERNET,
 374         MMAL_VIDEO_PROFILE_H263_INTERLACE,
 375         MMAL_VIDEO_PROFILE_H263_HIGHLATENCY,
 376         MMAL_VIDEO_PROFILE_MP4V_SIMPLE,
 377         MMAL_VIDEO_PROFILE_MP4V_SIMPLESCALABLE,
 378         MMAL_VIDEO_PROFILE_MP4V_CORE,
 379         MMAL_VIDEO_PROFILE_MP4V_MAIN,
 380         MMAL_VIDEO_PROFILE_MP4V_NBIT,
 381         MMAL_VIDEO_PROFILE_MP4V_SCALABLETEXTURE,
 382         MMAL_VIDEO_PROFILE_MP4V_SIMPLEFACE,
 383         MMAL_VIDEO_PROFILE_MP4V_SIMPLEFBA,
 384         MMAL_VIDEO_PROFILE_MP4V_BASICANIMATED,
 385         MMAL_VIDEO_PROFILE_MP4V_HYBRID,
 386         MMAL_VIDEO_PROFILE_MP4V_ADVANCEDREALTIME,
 387         MMAL_VIDEO_PROFILE_MP4V_CORESCALABLE,
 388         MMAL_VIDEO_PROFILE_MP4V_ADVANCEDCODING,
 389         MMAL_VIDEO_PROFILE_MP4V_ADVANCEDCORE,
 390         MMAL_VIDEO_PROFILE_MP4V_ADVANCEDSCALABLE,
 391         MMAL_VIDEO_PROFILE_MP4V_ADVANCEDSIMPLE,
 392         MMAL_VIDEO_PROFILE_H264_BASELINE,
 393         MMAL_VIDEO_PROFILE_H264_MAIN,
 394         MMAL_VIDEO_PROFILE_H264_EXTENDED,
 395         MMAL_VIDEO_PROFILE_H264_HIGH,
 396         MMAL_VIDEO_PROFILE_H264_HIGH10,
 397         MMAL_VIDEO_PROFILE_H264_HIGH422,
 398         MMAL_VIDEO_PROFILE_H264_HIGH444,
 399         MMAL_VIDEO_PROFILE_H264_CONSTRAINED_BASELINE,
 400         MMAL_VIDEO_PROFILE_DUMMY = 0x7FFFFFFF
 401 };
 402 
 403 enum mmal_video_level {
 404         MMAL_VIDEO_LEVEL_H263_10,
 405         MMAL_VIDEO_LEVEL_H263_20,
 406         MMAL_VIDEO_LEVEL_H263_30,
 407         MMAL_VIDEO_LEVEL_H263_40,
 408         MMAL_VIDEO_LEVEL_H263_45,
 409         MMAL_VIDEO_LEVEL_H263_50,
 410         MMAL_VIDEO_LEVEL_H263_60,
 411         MMAL_VIDEO_LEVEL_H263_70,
 412         MMAL_VIDEO_LEVEL_MP4V_0,
 413         MMAL_VIDEO_LEVEL_MP4V_0b,
 414         MMAL_VIDEO_LEVEL_MP4V_1,
 415         MMAL_VIDEO_LEVEL_MP4V_2,
 416         MMAL_VIDEO_LEVEL_MP4V_3,
 417         MMAL_VIDEO_LEVEL_MP4V_4,
 418         MMAL_VIDEO_LEVEL_MP4V_4a,
 419         MMAL_VIDEO_LEVEL_MP4V_5,
 420         MMAL_VIDEO_LEVEL_MP4V_6,
 421         MMAL_VIDEO_LEVEL_H264_1,
 422         MMAL_VIDEO_LEVEL_H264_1b,
 423         MMAL_VIDEO_LEVEL_H264_11,
 424         MMAL_VIDEO_LEVEL_H264_12,
 425         MMAL_VIDEO_LEVEL_H264_13,
 426         MMAL_VIDEO_LEVEL_H264_2,
 427         MMAL_VIDEO_LEVEL_H264_21,
 428         MMAL_VIDEO_LEVEL_H264_22,
 429         MMAL_VIDEO_LEVEL_H264_3,
 430         MMAL_VIDEO_LEVEL_H264_31,
 431         MMAL_VIDEO_LEVEL_H264_32,
 432         MMAL_VIDEO_LEVEL_H264_4,
 433         MMAL_VIDEO_LEVEL_H264_41,
 434         MMAL_VIDEO_LEVEL_H264_42,
 435         MMAL_VIDEO_LEVEL_H264_5,
 436         MMAL_VIDEO_LEVEL_H264_51,
 437         MMAL_VIDEO_LEVEL_DUMMY = 0x7FFFFFFF
 438 };
 439 
 440 struct mmal_parameter_video_profile {
 441         enum mmal_video_profile profile;
 442         enum mmal_video_level level;
 443 };
 444 
 445 /* video parameters */
 446 
 447 enum mmal_parameter_video_type {
 448         /** @ref MMAL_DISPLAYREGION_T */
 449         MMAL_PARAMETER_DISPLAYREGION = MMAL_PARAMETER_GROUP_VIDEO,
 450 
 451         /** @ref MMAL_PARAMETER_VIDEO_PROFILE_T */
 452         MMAL_PARAMETER_SUPPORTED_PROFILES,
 453 
 454         /** @ref MMAL_PARAMETER_VIDEO_PROFILE_T */
 455         MMAL_PARAMETER_PROFILE,
 456 
 457         /** @ref MMAL_PARAMETER_UINT32_T */
 458         MMAL_PARAMETER_INTRAPERIOD,
 459 
 460         /** @ref MMAL_PARAMETER_VIDEO_RATECONTROL_T */
 461         MMAL_PARAMETER_RATECONTROL,
 462 
 463         /** @ref MMAL_PARAMETER_VIDEO_NALUNITFORMAT_T */
 464         MMAL_PARAMETER_NALUNITFORMAT,
 465 
 466         /** @ref MMAL_PARAMETER_BOOLEAN_T */
 467         MMAL_PARAMETER_MINIMISE_FRAGMENTATION,
 468 
 469         /** @ref MMAL_PARAMETER_UINT32_T.
 470          * Setting the value to zero resets to the default (one slice per
 471          * frame).
 472          */
 473         MMAL_PARAMETER_MB_ROWS_PER_SLICE,
 474 
 475         /** @ref MMAL_PARAMETER_VIDEO_LEVEL_EXTENSION_T */
 476         MMAL_PARAMETER_VIDEO_LEVEL_EXTENSION,
 477 
 478         /** @ref MMAL_PARAMETER_VIDEO_EEDE_ENABLE_T */
 479         MMAL_PARAMETER_VIDEO_EEDE_ENABLE,
 480 
 481         /** @ref MMAL_PARAMETER_VIDEO_EEDE_LOSSRATE_T */
 482         MMAL_PARAMETER_VIDEO_EEDE_LOSSRATE,
 483 
 484         /** @ref MMAL_PARAMETER_BOOLEAN_T. Request an I-frame. */
 485         MMAL_PARAMETER_VIDEO_REQUEST_I_FRAME,
 486         /** @ref MMAL_PARAMETER_VIDEO_INTRA_REFRESH_T */
 487         MMAL_PARAMETER_VIDEO_INTRA_REFRESH,
 488 
 489         /** @ref MMAL_PARAMETER_BOOLEAN_T. */
 490         MMAL_PARAMETER_VIDEO_IMMUTABLE_INPUT,
 491 
 492         /** @ref MMAL_PARAMETER_UINT32_T. Run-time bit rate control */
 493         MMAL_PARAMETER_VIDEO_BIT_RATE,
 494 
 495         /** @ref MMAL_PARAMETER_FRAME_RATE_T */
 496         MMAL_PARAMETER_VIDEO_FRAME_RATE,
 497 
 498         /** @ref MMAL_PARAMETER_UINT32_T. */
 499         MMAL_PARAMETER_VIDEO_ENCODE_MIN_QUANT,
 500 
 501         /** @ref MMAL_PARAMETER_UINT32_T. */
 502         MMAL_PARAMETER_VIDEO_ENCODE_MAX_QUANT,
 503 
 504         /** @ref MMAL_PARAMETER_VIDEO_ENCODE_RC_MODEL_T. */
 505         MMAL_PARAMETER_VIDEO_ENCODE_RC_MODEL,
 506 
 507         MMAL_PARAMETER_EXTRA_BUFFERS, /**< @ref MMAL_PARAMETER_UINT32_T. */
 508         /** @ref MMAL_PARAMETER_UINT32_T.
 509          * Changing this parameter from the default can reduce frame rate
 510          * because image buffers need to be re-pitched.
 511          */
 512         MMAL_PARAMETER_VIDEO_ALIGN_HORIZ,
 513 
 514         /** @ref MMAL_PARAMETER_UINT32_T.
 515          * Changing this parameter from the default can reduce frame rate
 516          * because image buffers need to be re-pitched.
 517          */
 518         MMAL_PARAMETER_VIDEO_ALIGN_VERT,
 519 
 520         /** @ref MMAL_PARAMETER_BOOLEAN_T. */
 521         MMAL_PARAMETER_VIDEO_DROPPABLE_PFRAMES,
 522 
 523         /** @ref MMAL_PARAMETER_UINT32_T. */
 524         MMAL_PARAMETER_VIDEO_ENCODE_INITIAL_QUANT,
 525 
 526         /**< @ref MMAL_PARAMETER_UINT32_T. */
 527         MMAL_PARAMETER_VIDEO_ENCODE_QP_P,
 528 
 529         /**< @ref MMAL_PARAMETER_UINT32_T. */
 530         MMAL_PARAMETER_VIDEO_ENCODE_RC_SLICE_DQUANT,
 531 
 532         /** @ref MMAL_PARAMETER_UINT32_T */
 533         MMAL_PARAMETER_VIDEO_ENCODE_FRAME_LIMIT_BITS,
 534 
 535         /** @ref MMAL_PARAMETER_UINT32_T. */
 536         MMAL_PARAMETER_VIDEO_ENCODE_PEAK_RATE,
 537 
 538         /* H264 specific parameters */
 539 
 540         /** @ref MMAL_PARAMETER_BOOLEAN_T. */
 541         MMAL_PARAMETER_VIDEO_ENCODE_H264_DISABLE_CABAC,
 542 
 543         /** @ref MMAL_PARAMETER_BOOLEAN_T. */
 544         MMAL_PARAMETER_VIDEO_ENCODE_H264_LOW_LATENCY,
 545 
 546         /** @ref MMAL_PARAMETER_BOOLEAN_T. */
 547         MMAL_PARAMETER_VIDEO_ENCODE_H264_AU_DELIMITERS,
 548 
 549         /** @ref MMAL_PARAMETER_UINT32_T. */
 550         MMAL_PARAMETER_VIDEO_ENCODE_H264_DEBLOCK_IDC,
 551 
 552         /** @ref MMAL_PARAMETER_VIDEO_ENCODER_H264_MB_INTRA_MODES_T. */
 553         MMAL_PARAMETER_VIDEO_ENCODE_H264_MB_INTRA_MODE,
 554 
 555         /** @ref MMAL_PARAMETER_BOOLEAN_T */
 556         MMAL_PARAMETER_VIDEO_ENCODE_HEADER_ON_OPEN,
 557 
 558         /** @ref MMAL_PARAMETER_BOOLEAN_T */
 559         MMAL_PARAMETER_VIDEO_ENCODE_PRECODE_FOR_QP,
 560 
 561         /** @ref MMAL_PARAMETER_VIDEO_DRM_INIT_INFO_T. */
 562         MMAL_PARAMETER_VIDEO_DRM_INIT_INFO,
 563 
 564         /** @ref MMAL_PARAMETER_BOOLEAN_T */
 565         MMAL_PARAMETER_VIDEO_TIMESTAMP_FIFO,
 566 
 567         /** @ref MMAL_PARAMETER_BOOLEAN_T */
 568         MMAL_PARAMETER_VIDEO_DECODE_ERROR_CONCEALMENT,
 569 
 570         /** @ref MMAL_PARAMETER_VIDEO_DRM_PROTECT_BUFFER_T. */
 571         MMAL_PARAMETER_VIDEO_DRM_PROTECT_BUFFER,
 572 
 573         /** @ref MMAL_PARAMETER_BYTES_T */
 574         MMAL_PARAMETER_VIDEO_DECODE_CONFIG_VD3,
 575 
 576         /**< @ref MMAL_PARAMETER_BOOLEAN_T */
 577         MMAL_PARAMETER_VIDEO_ENCODE_H264_VCL_HRD_PARAMETERS,
 578 
 579         /**< @ref MMAL_PARAMETER_BOOLEAN_T */
 580         MMAL_PARAMETER_VIDEO_ENCODE_H264_LOW_DELAY_HRD_FLAG,
 581 
 582         /**< @ref MMAL_PARAMETER_BOOLEAN_T */
 583         MMAL_PARAMETER_VIDEO_ENCODE_INLINE_HEADER
 584 };
 585 
 586 /** Valid mirror modes */
 587 enum mmal_parameter_mirror {
 588         MMAL_PARAM_MIRROR_NONE,
 589         MMAL_PARAM_MIRROR_VERTICAL,
 590         MMAL_PARAM_MIRROR_HORIZONTAL,
 591         MMAL_PARAM_MIRROR_BOTH,
 592 };
 593 
 594 enum mmal_parameter_displaytransform {
 595         MMAL_DISPLAY_ROT0 = 0,
 596         MMAL_DISPLAY_MIRROR_ROT0 = 1,
 597         MMAL_DISPLAY_MIRROR_ROT180 = 2,
 598         MMAL_DISPLAY_ROT180 = 3,
 599         MMAL_DISPLAY_MIRROR_ROT90 = 4,
 600         MMAL_DISPLAY_ROT270 = 5,
 601         MMAL_DISPLAY_ROT90 = 6,
 602         MMAL_DISPLAY_MIRROR_ROT270 = 7,
 603 };
 604 
 605 enum mmal_parameter_displaymode {
 606         MMAL_DISPLAY_MODE_FILL = 0,
 607         MMAL_DISPLAY_MODE_LETTERBOX = 1,
 608 };
 609 
 610 enum mmal_parameter_displayset {
 611         MMAL_DISPLAY_SET_NONE = 0,
 612         MMAL_DISPLAY_SET_NUM = 1,
 613         MMAL_DISPLAY_SET_FULLSCREEN = 2,
 614         MMAL_DISPLAY_SET_TRANSFORM = 4,
 615         MMAL_DISPLAY_SET_DEST_RECT = 8,
 616         MMAL_DISPLAY_SET_SRC_RECT = 0x10,
 617         MMAL_DISPLAY_SET_MODE = 0x20,
 618         MMAL_DISPLAY_SET_PIXEL = 0x40,
 619         MMAL_DISPLAY_SET_NOASPECT = 0x80,
 620         MMAL_DISPLAY_SET_LAYER = 0x100,
 621         MMAL_DISPLAY_SET_COPYPROTECT = 0x200,
 622         MMAL_DISPLAY_SET_ALPHA = 0x400,
 623 };
 624 
 625 /* rectangle, used lots so it gets its own struct */
 626 struct vchiq_mmal_rect {
 627         s32 x;
 628         s32 y;
 629         s32 width;
 630         s32 height;
 631 };
 632 
 633 struct mmal_parameter_displayregion {
 634         /** Bitfield that indicates which fields are set and should be
 635          * used. All other fields will maintain their current value.
 636          * \ref MMAL_DISPLAYSET_T defines the bits that can be
 637          * combined.
 638          */
 639         u32 set;
 640 
 641         /** Describes the display output device, with 0 typically
 642          * being a directly connected LCD display.  The actual values
 643          * will depend on the hardware.  Code using hard-wired numbers
 644          * (e.g. 2) is certain to fail.
 645          */
 646 
 647         u32 display_num;
 648         /** Indicates that we are using the full device screen area,
 649          * rather than a window of the display.  If zero, then
 650          * dest_rect is used to specify a region of the display to
 651          * use.
 652          */
 653 
 654         s32 fullscreen;
 655         /** Indicates any rotation or flipping used to map frames onto
 656          * the natural display orientation.
 657          */
 658         u32 transform; /* enum mmal_parameter_displaytransform */
 659 
 660         /** Where to display the frame within the screen, if
 661          * fullscreen is zero.
 662          */
 663         struct vchiq_mmal_rect dest_rect;
 664 
 665         /** Indicates which area of the frame to display. If all
 666          * values are zero, the whole frame will be used.
 667          */
 668         struct vchiq_mmal_rect src_rect;
 669 
 670         /** If set to non-zero, indicates that any display scaling
 671          * should disregard the aspect ratio of the frame region being
 672          * displayed.
 673          */
 674         s32 noaspect;
 675 
 676         /** Indicates how the image should be scaled to fit the
 677          * display. \code MMAL_DISPLAY_MODE_FILL \endcode indicates
 678          * that the image should fill the screen by potentially
 679          * cropping the frames.  Setting \code mode \endcode to \code
 680          * MMAL_DISPLAY_MODE_LETTERBOX \endcode indicates that all the
 681          * source region should be displayed and black bars added if
 682          * necessary.
 683          */
 684         u32 mode; /* enum mmal_parameter_displaymode */
 685 
 686         /** If non-zero, defines the width of a source pixel relative
 687          * to \code pixel_y \endcode.  If zero, then pixels default to
 688          * being square.
 689          */
 690         u32 pixel_x;
 691 
 692         /** If non-zero, defines the height of a source pixel relative
 693          * to \code pixel_x \endcode.  If zero, then pixels default to
 694          * being square.
 695          */
 696         u32 pixel_y;
 697 
 698         /** Sets the relative depth of the images, with greater values
 699          * being in front of smaller values.
 700          */
 701         u32 layer;
 702 
 703         /** Set to non-zero to ensure copy protection is used on
 704          * output.
 705          */
 706         s32 copyprotect_required;
 707 
 708         /** Level of opacity of the layer, where zero is fully
 709          * transparent and 255 is fully opaque.
 710          */
 711         u32 alpha;
 712 };
 713 
 714 #define MMAL_MAX_IMAGEFX_PARAMETERS 5
 715 
 716 struct mmal_parameter_imagefx_parameters {
 717         enum mmal_parameter_imagefx effect;
 718         u32 num_effect_params;
 719         u32 effect_parameter[MMAL_MAX_IMAGEFX_PARAMETERS];
 720 };
 721 
 722 #define MMAL_PARAMETER_CAMERA_INFO_MAX_CAMERAS 4
 723 #define MMAL_PARAMETER_CAMERA_INFO_MAX_FLASHES 2
 724 #define MMAL_PARAMETER_CAMERA_INFO_MAX_STR_LEN 16
 725 
 726 struct mmal_parameter_camera_info_camera_t {
 727         u32    port_id;
 728         u32    max_width;
 729         u32    max_height;
 730         u32    lens_present;
 731         u8     camera_name[MMAL_PARAMETER_CAMERA_INFO_MAX_STR_LEN];
 732 };
 733 
 734 enum mmal_parameter_camera_info_flash_type_t {
 735         /* Make values explicit to ensure they match values in config ini */
 736         MMAL_PARAMETER_CAMERA_INFO_FLASH_TYPE_XENON = 0,
 737         MMAL_PARAMETER_CAMERA_INFO_FLASH_TYPE_LED   = 1,
 738         MMAL_PARAMETER_CAMERA_INFO_FLASH_TYPE_OTHER = 2,
 739         MMAL_PARAMETER_CAMERA_INFO_FLASH_TYPE_MAX = 0x7FFFFFFF
 740 };
 741 
 742 struct mmal_parameter_camera_info_flash_t {
 743         enum mmal_parameter_camera_info_flash_type_t flash_type;
 744 };
 745 
 746 struct mmal_parameter_camera_info_t {
 747         u32                            num_cameras;
 748         u32                            num_flashes;
 749         struct mmal_parameter_camera_info_camera_t
 750                                 cameras[MMAL_PARAMETER_CAMERA_INFO_MAX_CAMERAS];
 751         struct mmal_parameter_camera_info_flash_t
 752                                 flashes[MMAL_PARAMETER_CAMERA_INFO_MAX_FLASHES];
 753 };
 754 
 755 #endif

/* [<][>][^][v][top][bottom][index][help] */