Projektarbeit Line Following Robot bei Prof. Chowanetz im WS22/23
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

mmal_parameters_camera.h 31KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755
  1. /*
  2. Copyright (c) 2012, Broadcom Europe Ltd
  3. All rights reserved.
  4. Redistribution and use in source and binary forms, with or without
  5. modification, are permitted provided that the following conditions are met:
  6. * Redistributions of source code must retain the above copyright
  7. notice, this list of conditions and the following disclaimer.
  8. * Redistributions in binary form must reproduce the above copyright
  9. notice, this list of conditions and the following disclaimer in the
  10. documentation and/or other materials provided with the distribution.
  11. * Neither the name of the copyright holder nor the
  12. names of its contributors may be used to endorse or promote products
  13. derived from this software without specific prior written permission.
  14. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
  15. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  16. WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  17. DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
  18. DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  19. (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  20. LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  21. ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  22. (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  23. SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  24. */
  25. /*=============================================================================
  26. Copyright (c) 2011 Broadcom Europe Limited.
  27. All rights reserved.
  28. =============================================================================*/
  29. /** \file
  30. * Multi-Media Abstraction Layer - Definition of some standard parameters.
  31. */
  32. #ifndef MMAL_PARAMETERS_CAMERA_H
  33. #define MMAL_PARAMETERS_CAMERA_H
  34. #include "mmal_parameters_common.h"
  35. /*************************************************
  36. * ALWAYS ADD NEW ENUMS AT THE END OF THIS LIST! *
  37. ************************************************/
  38. /** Camera-specific MMAL parameter IDs.
  39. * @ingroup MMAL_PARAMETER_IDS
  40. */
  41. enum {
  42. /* 0 */
  43. MMAL_PARAMETER_THUMBNAIL_CONFIGURATION /**< Takes a @ref MMAL_PARAMETER_THUMBNAIL_CONFIG_T */
  44. = MMAL_PARAMETER_GROUP_CAMERA,
  45. MMAL_PARAMETER_CAPTURE_QUALITY, /**< Unused? */
  46. MMAL_PARAMETER_ROTATION, /**< Takes a @ref MMAL_PARAMETER_INT32_T */
  47. MMAL_PARAMETER_EXIF_DISABLE, /**< Takes a @ref MMAL_PARAMETER_BOOLEAN_T */
  48. MMAL_PARAMETER_EXIF, /**< Takes a @ref MMAL_PARAMETER_EXIF_T */
  49. MMAL_PARAMETER_AWB_MODE, /**< Takes a @ref MMAL_PARAM_AWBMODE_T */
  50. MMAL_PARAMETER_IMAGE_EFFECT, /**< Takes a @ref MMAL_PARAMETER_IMAGEFX_T */
  51. MMAL_PARAMETER_COLOUR_EFFECT, /**< Takes a @ref MMAL_PARAMETER_COLOURFX_T */
  52. MMAL_PARAMETER_FLICKER_AVOID, /**< Takes a @ref MMAL_PARAMETER_FLICKERAVOID_T */
  53. MMAL_PARAMETER_FLASH, /**< Takes a @ref MMAL_PARAMETER_FLASH_T */
  54. MMAL_PARAMETER_REDEYE, /**< Takes a @ref MMAL_PARAMETER_REDEYE_T */
  55. MMAL_PARAMETER_FOCUS, /**< Takes a @ref MMAL_PARAMETER_FOCUS_T */
  56. MMAL_PARAMETER_FOCAL_LENGTHS, /**< Unused? */
  57. MMAL_PARAMETER_EXPOSURE_COMP, /**< Takes a @ref MMAL_PARAMETER_INT32_T or MMAL_PARAMETER_RATIONAL_T */
  58. MMAL_PARAMETER_ZOOM, /**< Takes a @ref MMAL_PARAMETER_SCALEFACTOR_T */
  59. MMAL_PARAMETER_MIRROR, /**< Takes a @ref MMAL_PARAMETER_MIRROR_T */
  60. /* 0x10 */
  61. MMAL_PARAMETER_CAMERA_NUM, /**< Takes a @ref MMAL_PARAMETER_UINT32_T */
  62. MMAL_PARAMETER_CAPTURE, /**< Takes a @ref MMAL_PARAMETER_BOOLEAN_T */
  63. MMAL_PARAMETER_EXPOSURE_MODE, /**< Takes a @ref MMAL_PARAMETER_EXPOSUREMODE_T */
  64. MMAL_PARAMETER_EXP_METERING_MODE, /**< Takes a @ref MMAL_PARAMETER_EXPOSUREMETERINGMODE_T */
  65. MMAL_PARAMETER_FOCUS_STATUS, /**< Takes a @ref MMAL_PARAMETER_FOCUS_STATUS_T */
  66. MMAL_PARAMETER_CAMERA_CONFIG, /**< Takes a @ref MMAL_PARAMETER_CAMERA_CONFIG_T */
  67. MMAL_PARAMETER_CAPTURE_STATUS, /**< Takes a @ref MMAL_PARAMETER_CAPTURE_STATUS_T */
  68. MMAL_PARAMETER_FACE_TRACK, /**< Takes a @ref MMAL_PARAMETER_FACE_TRACK_T */
  69. MMAL_PARAMETER_DRAW_BOX_FACES_AND_FOCUS, /**< Takes a @ref MMAL_PARAMETER_BOOLEAN_T */
  70. MMAL_PARAMETER_JPEG_Q_FACTOR, /**< Takes a @ref MMAL_PARAMETER_UINT32_T */
  71. MMAL_PARAMETER_FRAME_RATE, /**< Takes a @ref MMAL_PARAMETER_FRAME_RATE_T */
  72. MMAL_PARAMETER_USE_STC, /**< Takes a @ref MMAL_PARAMETER_CAMERA_STC_MODE_T */
  73. MMAL_PARAMETER_CAMERA_INFO, /**< Takes a @ref MMAL_PARAMETER_CAMERA_INFO_T */
  74. MMAL_PARAMETER_VIDEO_STABILISATION, /**< Takes a @ref MMAL_PARAMETER_BOOLEAN_T */
  75. MMAL_PARAMETER_FACE_TRACK_RESULTS, /**< Takes a @ref MMAL_PARAMETER_FACE_TRACK_RESULTS_T */
  76. MMAL_PARAMETER_ENABLE_RAW_CAPTURE, /**< Takes a @ref MMAL_PARAMETER_BOOLEAN_T */
  77. /* 0x20 */
  78. MMAL_PARAMETER_DPF_FILE, /**< Takes a @ref MMAL_PARAMETER_URI_T */
  79. MMAL_PARAMETER_ENABLE_DPF_FILE, /**< Takes a @ref MMAL_PARAMETER_BOOLEAN_T */
  80. MMAL_PARAMETER_DPF_FAIL_IS_FATAL, /**< Takes a @ref MMAL_PARAMETER_BOOLEAN_T */
  81. MMAL_PARAMETER_CAPTURE_MODE, /**< Takes a @ref MMAL_PARAMETER_CAPTUREMODE_T */
  82. MMAL_PARAMETER_FOCUS_REGIONS, /**< Takes a @ref MMAL_PARAMETER_FOCUS_REGIONS_T */
  83. MMAL_PARAMETER_INPUT_CROP, /**< Takes a @ref MMAL_PARAMETER_INPUT_CROP_T */
  84. MMAL_PARAMETER_SENSOR_INFORMATION, /**< Takes a @ref MMAL_PARAMETER_SENSOR_INFORMATION_T */
  85. MMAL_PARAMETER_FLASH_SELECT, /**< Takes a @ref MMAL_PARAMETER_FLASH_SELECT_T */
  86. MMAL_PARAMETER_FIELD_OF_VIEW, /**< Takes a @ref MMAL_PARAMETER_FIELD_OF_VIEW_T */
  87. MMAL_PARAMETER_HIGH_DYNAMIC_RANGE, /**< Takes a @ref MMAL_PARAMETER_BOOLEAN_T */
  88. MMAL_PARAMETER_DYNAMIC_RANGE_COMPRESSION, /**< Takes a @ref MMAL_PARAMETER_DRC_T */
  89. MMAL_PARAMETER_ALGORITHM_CONTROL, /**< Takes a @ref MMAL_PARAMETER_ALGORITHM_CONTROL_T */
  90. MMAL_PARAMETER_SHARPNESS, /**< Takes a @ref MMAL_PARAMETER_RATIONAL_T */
  91. MMAL_PARAMETER_CONTRAST, /**< Takes a @ref MMAL_PARAMETER_RATIONAL_T */
  92. MMAL_PARAMETER_BRIGHTNESS, /**< Takes a @ref MMAL_PARAMETER_RATIONAL_T */
  93. MMAL_PARAMETER_SATURATION, /**< Takes a @ref MMAL_PARAMETER_RATIONAL_T */
  94. /* 0x30 */
  95. MMAL_PARAMETER_ISO, /**< Takes a @ref MMAL_PARAMETER_UINT32_T */
  96. MMAL_PARAMETER_ANTISHAKE, /**< Takes a @ref MMAL_PARAMETER_BOOLEAN_T */
  97. MMAL_PARAMETER_IMAGE_EFFECT_PARAMETERS, /**< Takes a @ref MMAL_PARAMETER_IMAGEFX_PARAMETERS_T */
  98. MMAL_PARAMETER_CAMERA_BURST_CAPTURE, /**< Takes a @ref MMAL_PARAMETER_BOOLEAN_T */
  99. MMAL_PARAMETER_CAMERA_MIN_ISO, /**< Takes a @ref MMAL_PARAMETER_UINT32_T */
  100. MMAL_PARAMETER_CAMERA_USE_CASE, /**< Takes a @ref MMAL_PARAMETER_CAMERA_USE_CASE_T */
  101. MMAL_PARAMETER_CAPTURE_STATS_PASS, /**< Takes a @ref MMAL_PARAMETER_BOOLEAN_T */
  102. MMAL_PARAMETER_CAMERA_CUSTOM_SENSOR_CONFIG, /**< Takes a @ref MMAL_PARAMETER_UINT32_T */
  103. MMAL_PARAMETER_ENABLE_REGISTER_FILE, /**< Takes a @ref MMAL_PARAMETER_BOOLEAN_T */
  104. MMAL_PARAMETER_REGISTER_FAIL_IS_FATAL, /**< Takes a @ref MMAL_PARAMETER_BOOLEAN_T */
  105. MMAL_PARAMETER_CONFIGFILE_REGISTERS, /**< Takes a @ref MMAL_PARAMETER_CONFIGFILE_T */
  106. MMAL_PARAMETER_CONFIGFILE_CHUNK_REGISTERS,/**< Takes a @ref MMAL_PARAMETER_CONFIGFILE_CHUNK_T */
  107. MMAL_PARAMETER_JPEG_ATTACH_LOG, /**< Takes a @ref MMAL_PARAMETER_BOOLEAN_T */
  108. MMAL_PARAMETER_ZERO_SHUTTER_LAG, /**< Takes a @ref MMAL_PARAMETER_ZEROSHUTTERLAG_T */
  109. MMAL_PARAMETER_FPS_RANGE, /**< Takes a @ref MMAL_PARAMETER_FPS_RANGE_T */
  110. MMAL_PARAMETER_CAPTURE_EXPOSURE_COMP, /**< Takes a @ref MMAL_PARAMETER_INT32_T */
  111. /* 0x40 */
  112. MMAL_PARAMETER_SW_SHARPEN_DISABLE, /**< Takes a @ref MMAL_PARAMETER_BOOLEAN_T */
  113. MMAL_PARAMETER_FLASH_REQUIRED, /**< Takes a @ref MMAL_PARAMETER_BOOLEAN_T */
  114. MMAL_PARAMETER_SW_SATURATION_DISABLE, /**< Takes a @ref MMAL_PARAMETER_BOOLEAN_T */
  115. MMAL_PARAMETER_SHUTTER_SPEED, /**< Takes a @ref MMAL_PARAMETER_UINT32_T */
  116. MMAL_PARAMETER_CUSTOM_AWB_GAINS, /**< Takes a @ref MMAL_PARAMETER_AWB_GAINS_T */
  117. MMAL_PARAMETER_CAMERA_SETTINGS, /**< Takes a @ref MMAL_PARAMETER_CAMERA_SETTINGS_T */
  118. MMAL_PARAMETER_PRIVACY_INDICATOR, /**< Takes a @ref MMAL_PARAMETER_PRIVACY_INDICATOR_T */
  119. MMAL_PARAMETER_VIDEO_DENOISE, /**< Takes a @ref MMAL_PARAMETER_BOOLEAN_T */
  120. MMAL_PARAMETER_STILLS_DENOISE, /**< Takes a @ref MMAL_PARAMETER_BOOLEAN_T */
  121. MMAL_PARAMETER_ANNOTATE, /**< Takes a @ref MMAL_PARAMETER_CAMERA_ANNOTATE_T */
  122. MMAL_PARAMETER_STEREOSCOPIC_MODE, /**< Takes a @ref MMAL_PARAMETER_STEREOSCOPIC_MODE_T */
  123. };
  124. /** Thumbnail configuration parameter type */
  125. typedef struct MMAL_PARAMETER_THUMBNAIL_CONFIG_T
  126. {
  127. MMAL_PARAMETER_HEADER_T hdr;
  128. uint32_t enable; /**< Enable generation of thumbnails during still capture */
  129. uint32_t width; /**< Desired width of the thumbnail */
  130. uint32_t height; /**< Desired height of the thumbnail */
  131. uint32_t quality; /**< Desired compression quality of the thumbnail */
  132. } MMAL_PARAMETER_THUMBNAIL_CONFIG_T;
  133. /** EXIF parameter type. */
  134. typedef struct MMAL_PARAMETER_EXIF_T
  135. {
  136. MMAL_PARAMETER_HEADER_T hdr;
  137. uint32_t keylen; /**< If 0, assume key is terminated by '=', otherwise length of key and treat data as binary */
  138. uint32_t value_offset; /**< Offset within data buffer of the start of the value. If 0, look for a "key=value" string */
  139. uint32_t valuelen; /**< If 0, assume value is null-terminated, otherwise length of value and treat data as binary */
  140. uint8_t data[1]; /**< EXIF key/value string. Variable length */
  141. } MMAL_PARAMETER_EXIF_T;
  142. /** Exposure modes. */
  143. typedef enum
  144. {
  145. MMAL_PARAM_EXPOSUREMODE_OFF,
  146. MMAL_PARAM_EXPOSUREMODE_AUTO,
  147. MMAL_PARAM_EXPOSUREMODE_NIGHT,
  148. MMAL_PARAM_EXPOSUREMODE_NIGHTPREVIEW,
  149. MMAL_PARAM_EXPOSUREMODE_BACKLIGHT,
  150. MMAL_PARAM_EXPOSUREMODE_SPOTLIGHT,
  151. MMAL_PARAM_EXPOSUREMODE_SPORTS,
  152. MMAL_PARAM_EXPOSUREMODE_SNOW,
  153. MMAL_PARAM_EXPOSUREMODE_BEACH,
  154. MMAL_PARAM_EXPOSUREMODE_VERYLONG,
  155. MMAL_PARAM_EXPOSUREMODE_FIXEDFPS,
  156. MMAL_PARAM_EXPOSUREMODE_ANTISHAKE,
  157. MMAL_PARAM_EXPOSUREMODE_FIREWORKS,
  158. MMAL_PARAM_EXPOSUREMODE_MAX = 0x7fffffff
  159. } MMAL_PARAM_EXPOSUREMODE_T;
  160. typedef struct MMAL_PARAMETER_EXPOSUREMODE_T
  161. {
  162. MMAL_PARAMETER_HEADER_T hdr;
  163. MMAL_PARAM_EXPOSUREMODE_T value; /**< exposure mode */
  164. } MMAL_PARAMETER_EXPOSUREMODE_T;
  165. typedef enum
  166. {
  167. MMAL_PARAM_EXPOSUREMETERINGMODE_AVERAGE,
  168. MMAL_PARAM_EXPOSUREMETERINGMODE_SPOT,
  169. MMAL_PARAM_EXPOSUREMETERINGMODE_BACKLIT,
  170. MMAL_PARAM_EXPOSUREMETERINGMODE_MATRIX,
  171. MMAL_PARAM_EXPOSUREMETERINGMODE_MAX = 0x7fffffff
  172. } MMAL_PARAM_EXPOSUREMETERINGMODE_T;
  173. typedef struct MMAL_PARAMETER_EXPOSUREMETERINGMODE_T
  174. {
  175. MMAL_PARAMETER_HEADER_T hdr;
  176. MMAL_PARAM_EXPOSUREMETERINGMODE_T value; /**< metering mode */
  177. } MMAL_PARAMETER_EXPOSUREMETERINGMODE_T;
  178. /** AWB parameter modes. */
  179. typedef enum MMAL_PARAM_AWBMODE_T
  180. {
  181. MMAL_PARAM_AWBMODE_OFF,
  182. MMAL_PARAM_AWBMODE_AUTO,
  183. MMAL_PARAM_AWBMODE_SUNLIGHT,
  184. MMAL_PARAM_AWBMODE_CLOUDY,
  185. MMAL_PARAM_AWBMODE_SHADE,
  186. MMAL_PARAM_AWBMODE_TUNGSTEN,
  187. MMAL_PARAM_AWBMODE_FLUORESCENT,
  188. MMAL_PARAM_AWBMODE_INCANDESCENT,
  189. MMAL_PARAM_AWBMODE_FLASH,
  190. MMAL_PARAM_AWBMODE_HORIZON,
  191. MMAL_PARAM_AWBMODE_MAX = 0x7fffffff
  192. } MMAL_PARAM_AWBMODE_T;
  193. /** AWB parameter type. */
  194. typedef struct MMAL_PARAMETER_AWBMODE_T
  195. {
  196. MMAL_PARAMETER_HEADER_T hdr;
  197. MMAL_PARAM_AWBMODE_T value; /**< AWB mode */
  198. } MMAL_PARAMETER_AWBMODE_T;
  199. /** Image effect */
  200. typedef enum MMAL_PARAM_IMAGEFX_T
  201. {
  202. MMAL_PARAM_IMAGEFX_NONE,
  203. MMAL_PARAM_IMAGEFX_NEGATIVE,
  204. MMAL_PARAM_IMAGEFX_SOLARIZE,
  205. MMAL_PARAM_IMAGEFX_POSTERIZE,
  206. MMAL_PARAM_IMAGEFX_WHITEBOARD,
  207. MMAL_PARAM_IMAGEFX_BLACKBOARD,
  208. MMAL_PARAM_IMAGEFX_SKETCH,
  209. MMAL_PARAM_IMAGEFX_DENOISE,
  210. MMAL_PARAM_IMAGEFX_EMBOSS,
  211. MMAL_PARAM_IMAGEFX_OILPAINT,
  212. MMAL_PARAM_IMAGEFX_HATCH,
  213. MMAL_PARAM_IMAGEFX_GPEN,
  214. MMAL_PARAM_IMAGEFX_PASTEL,
  215. MMAL_PARAM_IMAGEFX_WATERCOLOUR,
  216. MMAL_PARAM_IMAGEFX_FILM,
  217. MMAL_PARAM_IMAGEFX_BLUR,
  218. MMAL_PARAM_IMAGEFX_SATURATION,
  219. MMAL_PARAM_IMAGEFX_COLOURSWAP,
  220. MMAL_PARAM_IMAGEFX_WASHEDOUT,
  221. MMAL_PARAM_IMAGEFX_POSTERISE,
  222. MMAL_PARAM_IMAGEFX_COLOURPOINT,
  223. MMAL_PARAM_IMAGEFX_COLOURBALANCE,
  224. MMAL_PARAM_IMAGEFX_CARTOON,
  225. MMAL_PARAM_IMAGEFX_DEINTERLACE_DOUBLE,
  226. MMAL_PARAM_IMAGEFX_DEINTERLACE_ADV,
  227. MMAL_PARAM_IMAGEFX_DEINTERLACE_FAST,
  228. MMAL_PARAM_IMAGEFX_MAX = 0x7fffffff
  229. } MMAL_PARAM_IMAGEFX_T;
  230. typedef struct MMAL_PARAMETER_IMAGEFX_T
  231. {
  232. MMAL_PARAMETER_HEADER_T hdr;
  233. MMAL_PARAM_IMAGEFX_T value; /**< Image effect mode */
  234. } MMAL_PARAMETER_IMAGEFX_T;
  235. #define MMAL_MAX_IMAGEFX_PARAMETERS 6 /* Image effects library currently uses a maximum of 5 parameters per effect */
  236. typedef struct MMAL_PARAMETER_IMAGEFX_PARAMETERS_T
  237. {
  238. MMAL_PARAMETER_HEADER_T hdr;
  239. MMAL_PARAM_IMAGEFX_T effect; /**< Image effect mode */
  240. uint32_t num_effect_params; /**< Number of used elements in */
  241. uint32_t effect_parameter[MMAL_MAX_IMAGEFX_PARAMETERS]; /**< Array of parameters */
  242. } MMAL_PARAMETER_IMAGEFX_PARAMETERS_T;
  243. /** Colour effect parameter type*/
  244. typedef struct MMAL_PARAMETER_COLOURFX_T
  245. {
  246. MMAL_PARAMETER_HEADER_T hdr;
  247. int32_t enable;
  248. uint32_t u;
  249. uint32_t v;
  250. } MMAL_PARAMETER_COLOURFX_T;
  251. typedef enum MMAL_CAMERA_STC_MODE_T
  252. {
  253. MMAL_PARAM_STC_MODE_OFF, /**< Frames do not have STCs, as needed in OpenMAX/IL */
  254. MMAL_PARAM_STC_MODE_RAW, /**< Use raw clock STC, needed for true pause/resume support */
  255. MMAL_PARAM_STC_MODE_COOKED, /**< Start the STC from the start of capture, only for quick demo code */
  256. MMAL_PARAM_STC_MODE_MAX = 0x7fffffff
  257. } MMAL_CAMERA_STC_MODE_T;
  258. typedef struct MMAL_PARAMETER_CAMERA_STC_MODE_T
  259. {
  260. MMAL_PARAMETER_HEADER_T hdr;
  261. MMAL_CAMERA_STC_MODE_T value;
  262. } MMAL_PARAMETER_CAMERA_STC_MODE_T;
  263. typedef enum MMAL_PARAM_FLICKERAVOID_T
  264. {
  265. MMAL_PARAM_FLICKERAVOID_OFF,
  266. MMAL_PARAM_FLICKERAVOID_AUTO,
  267. MMAL_PARAM_FLICKERAVOID_50HZ,
  268. MMAL_PARAM_FLICKERAVOID_60HZ,
  269. MMAL_PARAM_FLICKERAVOID_MAX = 0x7FFFFFFF
  270. } MMAL_PARAM_FLICKERAVOID_T;
  271. typedef struct MMAL_PARAMETER_FLICKERAVOID_T
  272. {
  273. MMAL_PARAMETER_HEADER_T hdr;
  274. MMAL_PARAM_FLICKERAVOID_T value; /**< Flicker avoidance mode */
  275. } MMAL_PARAMETER_FLICKERAVOID_T;
  276. typedef enum MMAL_PARAM_FLASH_T
  277. {
  278. MMAL_PARAM_FLASH_OFF,
  279. MMAL_PARAM_FLASH_AUTO,
  280. MMAL_PARAM_FLASH_ON,
  281. MMAL_PARAM_FLASH_REDEYE,
  282. MMAL_PARAM_FLASH_FILLIN,
  283. MMAL_PARAM_FLASH_TORCH,
  284. MMAL_PARAM_FLASH_MAX = 0x7FFFFFFF
  285. } MMAL_PARAM_FLASH_T;
  286. typedef struct MMAL_PARAMETER_FLASH_T
  287. {
  288. MMAL_PARAMETER_HEADER_T hdr;
  289. MMAL_PARAM_FLASH_T value; /**< Flash mode */
  290. } MMAL_PARAMETER_FLASH_T;
  291. typedef enum MMAL_PARAM_REDEYE_T
  292. {
  293. MMAL_PARAM_REDEYE_OFF,
  294. MMAL_PARAM_REDEYE_ON,
  295. MMAL_PARAM_REDEYE_SIMPLE,
  296. MMAL_PARAM_REDEYE_MAX = 0x7FFFFFFF
  297. } MMAL_PARAM_REDEYE_T;
  298. typedef struct MMAL_PARAMETER_REDEYE_T
  299. {
  300. MMAL_PARAMETER_HEADER_T hdr;
  301. MMAL_PARAM_REDEYE_T value; /**< Red eye reduction mode */
  302. } MMAL_PARAMETER_REDEYE_T;
  303. typedef enum MMAL_PARAM_FOCUS_T
  304. {
  305. MMAL_PARAM_FOCUS_AUTO,
  306. MMAL_PARAM_FOCUS_AUTO_NEAR,
  307. MMAL_PARAM_FOCUS_AUTO_MACRO,
  308. MMAL_PARAM_FOCUS_CAF,
  309. MMAL_PARAM_FOCUS_CAF_NEAR,
  310. MMAL_PARAM_FOCUS_FIXED_INFINITY,
  311. MMAL_PARAM_FOCUS_FIXED_HYPERFOCAL,
  312. MMAL_PARAM_FOCUS_FIXED_NEAR,
  313. MMAL_PARAM_FOCUS_FIXED_MACRO,
  314. MMAL_PARAM_FOCUS_EDOF,
  315. MMAL_PARAM_FOCUS_CAF_MACRO,
  316. MMAL_PARAM_FOCUS_CAF_FAST,
  317. MMAL_PARAM_FOCUS_CAF_NEAR_FAST,
  318. MMAL_PARAM_FOCUS_CAF_MACRO_FAST,
  319. MMAL_PARAM_FOCUS_FIXED_CURRENT,
  320. MMAL_PARAM_FOCUS_MAX = 0x7FFFFFFF
  321. } MMAL_PARAM_FOCUS_T;
  322. typedef struct MMAL_PARAMETER_FOCUS_T
  323. {
  324. MMAL_PARAMETER_HEADER_T hdr;
  325. MMAL_PARAM_FOCUS_T value; /**< Focus mode */
  326. } MMAL_PARAMETER_FOCUS_T;
  327. typedef enum MMAL_PARAM_CAPTURE_STATUS_T
  328. {
  329. MMAL_PARAM_CAPTURE_STATUS_NOT_CAPTURING,
  330. MMAL_PARAM_CAPTURE_STATUS_CAPTURE_STARTED,
  331. MMAL_PARAM_CAPTURE_STATUS_CAPTURE_ENDED,
  332. MMAL_PARAM_CAPTURE_STATUS_MAX = 0x7FFFFFFF
  333. } MMAL_PARAM_CAPTURE_STATUS_T;
  334. typedef struct MMAL_PARAMETER_CAPTURE_STATUS_T
  335. {
  336. MMAL_PARAMETER_HEADER_T hdr;
  337. MMAL_PARAM_CAPTURE_STATUS_T status; /**< Capture status */
  338. } MMAL_PARAMETER_CAPTURE_STATUS_T;
  339. typedef enum MMAL_PARAM_FOCUS_STATUS_T
  340. {
  341. MMAL_PARAM_FOCUS_STATUS_OFF,
  342. MMAL_PARAM_FOCUS_STATUS_REQUEST,
  343. MMAL_PARAM_FOCUS_STATUS_REACHED,
  344. MMAL_PARAM_FOCUS_STATUS_UNABLE_TO_REACH,
  345. MMAL_PARAM_FOCUS_STATUS_LOST,
  346. MMAL_PARAM_FOCUS_STATUS_CAF_MOVING,
  347. MMAL_PARAM_FOCUS_STATUS_CAF_SUCCESS,
  348. MMAL_PARAM_FOCUS_STATUS_CAF_FAILED,
  349. MMAL_PARAM_FOCUS_STATUS_MANUAL_MOVING,
  350. MMAL_PARAM_FOCUS_STATUS_MANUAL_REACHED,
  351. MMAL_PARAM_FOCUS_STATUS_CAF_WATCHING,
  352. MMAL_PARAM_FOCUS_STATUS_CAF_SCENE_CHANGED,
  353. MMAL_PARAM_FOCUS_STATUS_MAX = 0x7FFFFFFF
  354. } MMAL_PARAM_FOCUS_STATUS_T;
  355. typedef struct MMAL_PARAMETER_FOCUS_STATUS_T
  356. {
  357. MMAL_PARAMETER_HEADER_T hdr;
  358. MMAL_PARAM_FOCUS_STATUS_T status; /**< Focus status */
  359. } MMAL_PARAMETER_FOCUS_STATUS_T;
  360. typedef enum MMAL_PARAM_FACE_TRACK_MODE_T
  361. {
  362. MMAL_PARAM_FACE_DETECT_NONE, /**< Disables face detection */
  363. MMAL_PARAM_FACE_DETECT_ON, /**< Enables face detection */
  364. MMAL_PARAM_FACE_DETECT_MAX = 0x7FFFFFFF
  365. } MMAL_PARAM_FACE_TRACK_MODE_T;
  366. typedef struct MMAL_PARAMETER_FACE_TRACK_T /* face tracking control */
  367. {
  368. MMAL_PARAMETER_HEADER_T hdr;
  369. MMAL_PARAM_FACE_TRACK_MODE_T mode;
  370. uint32_t maxRegions;
  371. uint32_t frames;
  372. uint32_t quality;
  373. } MMAL_PARAMETER_FACE_TRACK_T;
  374. typedef struct MMAL_PARAMETER_FACE_TRACK_FACE_T /* face tracking face information */
  375. {
  376. int32_t face_id; /**< Face ID. Should remain the same whilst the face is detected to remain in the scene */
  377. int32_t score; /**< Confidence of the face detection. Range 1-100 (1=unsure, 100=positive). */
  378. MMAL_RECT_T face_rect; /**< Rectangle around the whole face */
  379. MMAL_RECT_T eye_rect[2]; /**< Rectangle around the eyes ([0] = left eye, [1] = right eye) */
  380. MMAL_RECT_T mouth_rect; /**< Rectangle around the mouth */
  381. } MMAL_PARAMETER_FACE_TRACK_FACE_T;
  382. typedef struct MMAL_PARAMETER_FACE_TRACK_RESULTS_T /* face tracking results */
  383. {
  384. MMAL_PARAMETER_HEADER_T hdr;
  385. uint32_t num_faces; /**< Number of faces detected */
  386. uint32_t frame_width; /**< Width of the frame on which the faces were detected (allows scaling) */
  387. uint32_t frame_height; /**< Height of the frame on which the faces were detected (allows scaling) */
  388. MMAL_PARAMETER_FACE_TRACK_FACE_T faces[1]; /**< Face information (variable length array */
  389. } MMAL_PARAMETER_FACE_TRACK_RESULTS_T;
  390. typedef enum MMAL_PARAMETER_CAMERA_CONFIG_TIMESTAMP_MODE_T
  391. {
  392. MMAL_PARAM_TIMESTAMP_MODE_ZERO, /**< Always timestamp frames as 0 */
  393. MMAL_PARAM_TIMESTAMP_MODE_RAW_STC, /**< Use the raw STC value for the frame timestamp */
  394. MMAL_PARAM_TIMESTAMP_MODE_RESET_STC, /**< Use the STC timestamp but subtract the timestamp
  395. * of the first frame sent to give a zero based timestamp.
  396. */
  397. MMAL_PARAM_TIMESTAMP_MODE_MAX = 0x7FFFFFFF
  398. } MMAL_PARAMETER_CAMERA_CONFIG_TIMESTAMP_MODE_T;
  399. typedef struct MMAL_PARAMETER_CAMERA_CONFIG_T
  400. {
  401. MMAL_PARAMETER_HEADER_T hdr;
  402. /* Parameters for setting up the image pools */
  403. uint32_t max_stills_w; /**< Max size of stills capture */
  404. uint32_t max_stills_h;
  405. uint32_t stills_yuv422; /**< Allow YUV422 stills capture */
  406. uint32_t one_shot_stills; /**< Continuous or one shot stills captures. */
  407. uint32_t max_preview_video_w; /**< Max size of the preview or video capture frames */
  408. uint32_t max_preview_video_h;
  409. uint32_t num_preview_video_frames;
  410. uint32_t stills_capture_circular_buffer_height; /**< Sets the height of the circular buffer for stills capture. */
  411. uint32_t fast_preview_resume; /**< Allows preview/encode to resume as fast as possible after the stills input frame
  412. * has been received, and then processes the still frame in the background
  413. * whilst preview/encode has resumed.
  414. * Actual mode is controlled by MMAL_PARAMETER_CAPTURE_MODE.
  415. */
  416. MMAL_PARAMETER_CAMERA_CONFIG_TIMESTAMP_MODE_T use_stc_timestamp;
  417. /**< Selects algorithm for timestamping frames if there is no clock component connected.
  418. */
  419. } MMAL_PARAMETER_CAMERA_CONFIG_T;
  420. #define MMAL_PARAMETER_CAMERA_INFO_MAX_CAMERAS 4
  421. #define MMAL_PARAMETER_CAMERA_INFO_MAX_FLASHES 2
  422. typedef struct MMAL_PARAMETER_CAMERA_INFO_CAMERA_T
  423. {
  424. uint32_t port_id;
  425. uint32_t max_width;
  426. uint32_t max_height;
  427. MMAL_BOOL_T lens_present;
  428. } MMAL_PARAMETER_CAMERA_INFO_CAMERA_T;
  429. typedef enum MMAL_PARAMETER_CAMERA_INFO_FLASH_TYPE_T
  430. {
  431. MMAL_PARAMETER_CAMERA_INFO_FLASH_TYPE_XENON = 0, /* Make values explicit */
  432. MMAL_PARAMETER_CAMERA_INFO_FLASH_TYPE_LED = 1, /* to ensure they match */
  433. MMAL_PARAMETER_CAMERA_INFO_FLASH_TYPE_OTHER = 2, /* values in config ini */
  434. MMAL_PARAMETER_CAMERA_INFO_FLASH_TYPE_MAX = 0x7FFFFFFF
  435. } MMAL_PARAMETER_CAMERA_INFO_FLASH_TYPE_T;
  436. typedef struct MMAL_PARAMETER_CAMERA_INFO_FLASH_T
  437. {
  438. MMAL_PARAMETER_CAMERA_INFO_FLASH_TYPE_T flash_type;
  439. } MMAL_PARAMETER_CAMERA_INFO_FLASH_T;
  440. typedef struct MMAL_PARAMETER_CAMERA_INFO_T
  441. {
  442. MMAL_PARAMETER_HEADER_T hdr;
  443. uint32_t num_cameras;
  444. uint32_t num_flashes;
  445. MMAL_PARAMETER_CAMERA_INFO_CAMERA_T cameras[MMAL_PARAMETER_CAMERA_INFO_MAX_CAMERAS];
  446. MMAL_PARAMETER_CAMERA_INFO_FLASH_T flashes[MMAL_PARAMETER_CAMERA_INFO_MAX_FLASHES];
  447. } MMAL_PARAMETER_CAMERA_INFO_T;
  448. typedef enum MMAL_PARAMETER_CAPTUREMODE_MODE_T
  449. {
  450. MMAL_PARAM_CAPTUREMODE_WAIT_FOR_END, /**< Resumes preview once capture is completed. */
  451. MMAL_PARAM_CAPTUREMODE_WAIT_FOR_END_AND_HOLD, /**< Resumes preview once capture is completed, and hold the image for subsequent reprocessing. */
  452. MMAL_PARAM_CAPTUREMODE_RESUME_VF_IMMEDIATELY, /**< Resumes preview as soon as possible once capture frame is received from the sensor.
  453. * Requires fast_preview_resume to be set via MMAL_PARAMETER_CAMERA_CONFIG.
  454. */
  455. } MMAL_PARAMETER_CAPTUREMODE_MODE_T;
  456. /** Stills capture mode control. */
  457. typedef struct MMAL_PARAMETER_CAPTUREMODE_T
  458. {
  459. MMAL_PARAMETER_HEADER_T hdr;
  460. MMAL_PARAMETER_CAPTUREMODE_MODE_T mode;
  461. } MMAL_PARAMETER_CAPTUREMODE_T;
  462. typedef enum MMAL_PARAMETER_FOCUS_REGION_TYPE_T
  463. {
  464. MMAL_PARAMETER_FOCUS_REGION_TYPE_NORMAL, /**< Region defines a generic region */
  465. MMAL_PARAMETER_FOCUS_REGION_TYPE_FACE, /**< Region defines a face */
  466. MMAL_PARAMETER_FOCUS_REGION_TYPE_MAX
  467. } MMAL_PARAMETER_FOCUS_REGION_TYPE_T;
  468. typedef struct MMAL_PARAMETER_FOCUS_REGION_T
  469. {
  470. MMAL_RECT_T rect; /**< Focus rectangle as 0P16 fixed point values. */
  471. uint32_t weight; /**< Region weighting. */
  472. uint32_t mask; /**< Mask for multi-stage regions */
  473. MMAL_PARAMETER_FOCUS_REGION_TYPE_T type; /**< Region type */
  474. } MMAL_PARAMETER_FOCUS_REGION_T;
  475. typedef struct MMAL_PARAMETER_FOCUS_REGIONS_T
  476. {
  477. MMAL_PARAMETER_HEADER_T hdr;
  478. uint32_t num_regions; /**< Number of regions defined */
  479. MMAL_BOOL_T lock_to_faces; /**< If region is within tolerance of a face, adopt face rect instead of defined region */
  480. MMAL_PARAMETER_FOCUS_REGION_T regions[1]; /**< Variable number of regions */
  481. } MMAL_PARAMETER_FOCUS_REGIONS_T;
  482. typedef struct MMAL_PARAMETER_INPUT_CROP_T
  483. {
  484. MMAL_PARAMETER_HEADER_T hdr;
  485. MMAL_RECT_T rect; /**< Crop rectangle as 16P16 fixed point values */
  486. } MMAL_PARAMETER_INPUT_CROP_T;
  487. typedef struct MMAL_PARAMETER_SENSOR_INFORMATION_T
  488. {
  489. MMAL_PARAMETER_HEADER_T hdr;
  490. MMAL_RATIONAL_T f_number; /**< Lens f-number */
  491. MMAL_RATIONAL_T focal_length; /**< Lens focal length */
  492. uint32_t model_id; /**< Sensor reported model id */
  493. uint32_t manufacturer_id; /**< Sensor reported manufacturer id */
  494. uint32_t revision; /**< Sensor reported revision */
  495. } MMAL_PARAMETER_SENSOR_INFORMATION_T;
  496. typedef struct MMAL_PARAMETER_FLASH_SELECT_T
  497. {
  498. MMAL_PARAMETER_HEADER_T hdr;
  499. MMAL_PARAMETER_CAMERA_INFO_FLASH_TYPE_T flash_type; /**< Flash type to use */
  500. } MMAL_PARAMETER_FLASH_SELECT_T;
  501. typedef struct MMAL_PARAMETER_FIELD_OF_VIEW_T
  502. {
  503. MMAL_PARAMETER_HEADER_T hdr;
  504. MMAL_RATIONAL_T fov_h; /**< Horizontal field of view */
  505. MMAL_RATIONAL_T fov_v; /**< Vertical field of view */
  506. } MMAL_PARAMETER_FIELD_OF_VIEW_T;
  507. typedef enum MMAL_PARAMETER_DRC_STRENGTH_T
  508. {
  509. MMAL_PARAMETER_DRC_STRENGTH_OFF,
  510. MMAL_PARAMETER_DRC_STRENGTH_LOW,
  511. MMAL_PARAMETER_DRC_STRENGTH_MEDIUM,
  512. MMAL_PARAMETER_DRC_STRENGTH_HIGH,
  513. MMAL_PARAMETER_DRC_STRENGTH_MAX = 0x7fffffff
  514. } MMAL_PARAMETER_DRC_STRENGTH_T;
  515. typedef struct MMAL_PARAMETER_DRC_T
  516. {
  517. MMAL_PARAMETER_HEADER_T hdr;
  518. MMAL_PARAMETER_DRC_STRENGTH_T strength; /**< DRC strength */
  519. } MMAL_PARAMETER_DRC_T;
  520. typedef enum MMAL_PARAMETER_ALGORITHM_CONTROL_ALGORITHMS_T
  521. {
  522. MMAL_PARAMETER_ALGORITHM_CONTROL_ALGORITHMS_FACETRACKING,
  523. MMAL_PARAMETER_ALGORITHM_CONTROL_ALGORITHMS_REDEYE_REDUCTION,
  524. MMAL_PARAMETER_ALGORITHM_CONTROL_ALGORITHMS_VIDEO_STABILISATION,
  525. MMAL_PARAMETER_ALGORITHM_CONTROL_ALGORITHMS_WRITE_RAW,
  526. MMAL_PARAMETER_ALGORITHM_CONTROL_ALGORITHMS_VIDEO_DENOISE,
  527. MMAL_PARAMETER_ALGORITHM_CONTROL_ALGORITHMS_STILLS_DENOISE,
  528. MMAL_PARAMETER_ALGORITHM_CONTROL_ALGORITHMS_TEMPORAL_DENOISE,
  529. MMAL_PARAMETER_ALGORITHM_CONTROL_ALGORITHMS_ANTISHAKE,
  530. MMAL_PARAMETER_ALGORITHM_CONTROL_ALGORITHMS_IMAGE_EFFECTS,
  531. MMAL_PARAMETER_ALGORITHM_CONTROL_ALGORITHMS_DYNAMIC_RANGE_COMPRESSION,
  532. MMAL_PARAMETER_ALGORITHM_CONTROL_ALGORITHMS_FACE_RECOGNITION,
  533. MMAL_PARAMETER_ALGORITHM_CONTROL_ALGORITHMS_FACE_BEAUTIFICATION,
  534. MMAL_PARAMETER_ALGORITHM_CONTROL_ALGORITHMS_SCENE_DETECTION,
  535. MMAL_PARAMETER_ALGORITHM_CONTROL_ALGORITHMS_HIGH_DYNAMIC_RANGE,
  536. MMAL_PARAMETER_ALGORITHM_CONTROL_ALGORITHMS_MAX = 0x7fffffff
  537. } MMAL_PARAMETER_ALGORITHM_CONTROL_ALGORITHMS_T;
  538. typedef struct MMAL_PARAMETER_ALGORITHM_CONTROL_T
  539. {
  540. MMAL_PARAMETER_HEADER_T hdr;
  541. MMAL_PARAMETER_ALGORITHM_CONTROL_ALGORITHMS_T algorithm;
  542. MMAL_BOOL_T enabled;
  543. } MMAL_PARAMETER_ALGORITHM_CONTROL_T;
  544. typedef enum MMAL_PARAM_CAMERA_USE_CASE_T
  545. {
  546. MMAL_PARAM_CAMERA_USE_CASE_UNKNOWN, /**< Compromise on behaviour as use case totally unknown */
  547. MMAL_PARAM_CAMERA_USE_CASE_STILLS_CAPTURE, /**< Stills capture use case */
  548. MMAL_PARAM_CAMERA_USE_CASE_VIDEO_CAPTURE, /**< Video encode (camcorder) use case */
  549. MMAL_PARAM_CAMERA_USE_CASE_MAX = 0x7fffffff
  550. } MMAL_PARAM_CAMERA_USE_CASE_T;
  551. typedef struct MMAL_PARAMETER_CAMERA_USE_CASE_T
  552. {
  553. MMAL_PARAMETER_HEADER_T hdr;
  554. MMAL_PARAM_CAMERA_USE_CASE_T use_case; /**< Use case */
  555. } MMAL_PARAMETER_CAMERA_USE_CASE_T;
  556. typedef struct MMAL_PARAMETER_FPS_RANGE_T
  557. {
  558. MMAL_PARAMETER_HEADER_T hdr;
  559. MMAL_RATIONAL_T fps_low; /**< Low end of the permitted framerate range */
  560. MMAL_RATIONAL_T fps_high; /**< High end of the permitted framerate range */
  561. } MMAL_PARAMETER_FPS_RANGE_T;
  562. typedef struct MMAL_PARAMETER_ZEROSHUTTERLAG_T
  563. {
  564. MMAL_PARAMETER_HEADER_T hdr;
  565. MMAL_BOOL_T zero_shutter_lag_mode; /**< Select zero shutter lag mode from sensor */
  566. MMAL_BOOL_T concurrent_capture; /**< Activate full zero shutter lag mode and
  567. * use the last preview raw image for the stills capture
  568. */
  569. } MMAL_PARAMETER_ZEROSHUTTERLAG_T;
  570. typedef struct MMAL_PARAMETER_AWB_GAINS_T
  571. {
  572. MMAL_PARAMETER_HEADER_T hdr;
  573. MMAL_RATIONAL_T r_gain; /**< Red gain */
  574. MMAL_RATIONAL_T b_gain; /**< Blue gain */
  575. } MMAL_PARAMETER_AWB_GAINS_T;
  576. typedef struct MMAL_PARAMETER_CAMERA_SETTINGS_T
  577. {
  578. MMAL_PARAMETER_HEADER_T hdr;
  579. uint32_t exposure;
  580. MMAL_RATIONAL_T analog_gain;
  581. MMAL_RATIONAL_T digital_gain;
  582. MMAL_RATIONAL_T awb_red_gain;
  583. MMAL_RATIONAL_T awb_blue_gain;
  584. uint32_t focus_position;
  585. } MMAL_PARAMETER_CAMERA_SETTINGS_T;
  586. typedef enum MMAL_PARAM_PRIVACY_INDICATOR_T
  587. {
  588. MMAL_PARAMETER_PRIVACY_INDICATOR_OFF, /**< Indicator will be off. */
  589. MMAL_PARAMETER_PRIVACY_INDICATOR_ON, /**< Indicator will come on just after a stills capture and
  590. * and remain on for 2seconds, or will be on whilst output[1]
  591. * is actively producing images.
  592. */
  593. MMAL_PARAMETER_PRIVACY_INDICATOR_FORCE_ON, /**< Turns indicator of for 2s independent of capture status.
  594. * Set this mode repeatedly to keep the indicator on for a
  595. * longer period.
  596. */
  597. MMAL_PARAMETER_PRIVACY_INDICATOR_MAX = 0x7fffffff
  598. } MMAL_PARAM_PRIVACY_INDICATOR_T;
  599. typedef struct MMAL_PARAMETER_PRIVACY_INDICATOR_T
  600. {
  601. MMAL_PARAMETER_HEADER_T hdr;
  602. MMAL_PARAM_PRIVACY_INDICATOR_T mode;
  603. } MMAL_PARAMETER_PRIVACY_INDICATOR_T;
  604. #define MMAL_CAMERA_ANNOTATE_MAX_TEXT_LEN 32
  605. typedef struct MMAL_PARAMETER_CAMERA_ANNOTATE_T
  606. {
  607. MMAL_PARAMETER_HEADER_T hdr;
  608. MMAL_BOOL_T enable;
  609. char text[MMAL_CAMERA_ANNOTATE_MAX_TEXT_LEN];
  610. MMAL_BOOL_T show_shutter;
  611. MMAL_BOOL_T show_analog_gain;
  612. MMAL_BOOL_T show_lens;
  613. MMAL_BOOL_T show_caf;
  614. MMAL_BOOL_T show_motion;
  615. } MMAL_PARAMETER_CAMERA_ANNOTATE_T;
  616. #define MMAL_CAMERA_ANNOTATE_MAX_TEXT_LEN_V2 256
  617. typedef struct MMAL_PARAMETER_CAMERA_ANNOTATE_V2_T
  618. {
  619. MMAL_PARAMETER_HEADER_T hdr;
  620. MMAL_BOOL_T enable;
  621. MMAL_BOOL_T show_shutter;
  622. MMAL_BOOL_T show_analog_gain;
  623. MMAL_BOOL_T show_lens;
  624. MMAL_BOOL_T show_caf;
  625. MMAL_BOOL_T show_motion;
  626. MMAL_BOOL_T show_frame_num;
  627. MMAL_BOOL_T black_text_background;
  628. char text[MMAL_CAMERA_ANNOTATE_MAX_TEXT_LEN_V2];
  629. } MMAL_PARAMETER_CAMERA_ANNOTATE_V2_T;
  630. typedef enum MMAL_STEREOSCOPIC_MODE_T {
  631. MMAL_STEREOSCOPIC_MODE_NONE = 0,
  632. MMAL_STEREOSCOPIC_MODE_SIDE_BY_SIDE = 1,
  633. MMAL_STEREOSCOPIC_MODE_TOP_BOTTOM = 2,
  634. MMAL_STEREOSCOPIC_MODE_MAX = 0x7FFFFFFF,
  635. } MMAL_STEREOSCOPIC_MODE_T;
  636. typedef struct MMAL_PARAMETER_STEREOSCOPIC_MODE_T
  637. {
  638. MMAL_PARAMETER_HEADER_T hdr;
  639. MMAL_STEREOSCOPIC_MODE_T mode;
  640. MMAL_BOOL_T decimate;
  641. MMAL_BOOL_T swap_eyes;
  642. } MMAL_PARAMETER_STEREOSCOPIC_MODE_T;
  643. #endif /* MMAL_PARAMETERS_CAMERA_H */