28 #ifndef MMAL_PARAMETERS_VIDEO_H 29 #define MMAL_PARAMETERS_VIDEO_H 176 typedef struct MMAL_DISPLAYREGION_T {
187 uint32_t display_num;
235 } MMAL_DISPLAYREGION_T;
241 typedef enum MMAL_VIDEO_PROFILE_T {
242 MMAL_VIDEO_PROFILE_H263_BASELINE,
243 MMAL_VIDEO_PROFILE_H263_H320CODING,
244 MMAL_VIDEO_PROFILE_H263_BACKWARDCOMPATIBLE,
245 MMAL_VIDEO_PROFILE_H263_ISWV2,
246 MMAL_VIDEO_PROFILE_H263_ISWV3,
247 MMAL_VIDEO_PROFILE_H263_HIGHCOMPRESSION,
248 MMAL_VIDEO_PROFILE_H263_INTERNET,
249 MMAL_VIDEO_PROFILE_H263_INTERLACE,
250 MMAL_VIDEO_PROFILE_H263_HIGHLATENCY,
251 MMAL_VIDEO_PROFILE_MP4V_SIMPLE,
252 MMAL_VIDEO_PROFILE_MP4V_SIMPLESCALABLE,
253 MMAL_VIDEO_PROFILE_MP4V_CORE,
254 MMAL_VIDEO_PROFILE_MP4V_MAIN,
255 MMAL_VIDEO_PROFILE_MP4V_NBIT,
256 MMAL_VIDEO_PROFILE_MP4V_SCALABLETEXTURE,
257 MMAL_VIDEO_PROFILE_MP4V_SIMPLEFACE,
258 MMAL_VIDEO_PROFILE_MP4V_SIMPLEFBA,
259 MMAL_VIDEO_PROFILE_MP4V_BASICANIMATED,
260 MMAL_VIDEO_PROFILE_MP4V_HYBRID,
261 MMAL_VIDEO_PROFILE_MP4V_ADVANCEDREALTIME,
262 MMAL_VIDEO_PROFILE_MP4V_CORESCALABLE,
263 MMAL_VIDEO_PROFILE_MP4V_ADVANCEDCODING,
264 MMAL_VIDEO_PROFILE_MP4V_ADVANCEDCORE,
265 MMAL_VIDEO_PROFILE_MP4V_ADVANCEDSCALABLE,
266 MMAL_VIDEO_PROFILE_MP4V_ADVANCEDSIMPLE,
267 MMAL_VIDEO_PROFILE_H264_BASELINE,
268 MMAL_VIDEO_PROFILE_H264_MAIN,
269 MMAL_VIDEO_PROFILE_H264_EXTENDED,
270 MMAL_VIDEO_PROFILE_H264_HIGH,
271 MMAL_VIDEO_PROFILE_H264_HIGH10,
272 MMAL_VIDEO_PROFILE_H264_HIGH422,
273 MMAL_VIDEO_PROFILE_H264_HIGH444,
274 MMAL_VIDEO_PROFILE_H264_CONSTRAINED_BASELINE,
275 MMAL_VIDEO_PROFILE_DUMMY = 0x7FFFFFFF
276 } MMAL_VIDEO_PROFILE_T;
282 typedef enum MMAL_VIDEO_LEVEL_T {
283 MMAL_VIDEO_LEVEL_H263_10,
284 MMAL_VIDEO_LEVEL_H263_20,
285 MMAL_VIDEO_LEVEL_H263_30,
286 MMAL_VIDEO_LEVEL_H263_40,
287 MMAL_VIDEO_LEVEL_H263_45,
288 MMAL_VIDEO_LEVEL_H263_50,
289 MMAL_VIDEO_LEVEL_H263_60,
290 MMAL_VIDEO_LEVEL_H263_70,
291 MMAL_VIDEO_LEVEL_MP4V_0,
292 MMAL_VIDEO_LEVEL_MP4V_0b,
293 MMAL_VIDEO_LEVEL_MP4V_1,
294 MMAL_VIDEO_LEVEL_MP4V_2,
295 MMAL_VIDEO_LEVEL_MP4V_3,
296 MMAL_VIDEO_LEVEL_MP4V_4,
297 MMAL_VIDEO_LEVEL_MP4V_4a,
298 MMAL_VIDEO_LEVEL_MP4V_5,
299 MMAL_VIDEO_LEVEL_MP4V_6,
300 MMAL_VIDEO_LEVEL_H264_1,
301 MMAL_VIDEO_LEVEL_H264_1b,
302 MMAL_VIDEO_LEVEL_H264_11,
303 MMAL_VIDEO_LEVEL_H264_12,
304 MMAL_VIDEO_LEVEL_H264_13,
305 MMAL_VIDEO_LEVEL_H264_2,
306 MMAL_VIDEO_LEVEL_H264_21,
307 MMAL_VIDEO_LEVEL_H264_22,
308 MMAL_VIDEO_LEVEL_H264_3,
309 MMAL_VIDEO_LEVEL_H264_31,
310 MMAL_VIDEO_LEVEL_H264_32,
311 MMAL_VIDEO_LEVEL_H264_4,
312 MMAL_VIDEO_LEVEL_H264_41,
313 MMAL_VIDEO_LEVEL_H264_42,
314 MMAL_VIDEO_LEVEL_H264_5,
315 MMAL_VIDEO_LEVEL_H264_51,
316 MMAL_VIDEO_LEVEL_DUMMY = 0x7FFFFFFF
317 } MMAL_VIDEO_LEVEL_T;
323 typedef struct MMAL_PARAMETER_VIDEO_PROFILE_T
329 MMAL_VIDEO_PROFILE_T profile;
330 MMAL_VIDEO_LEVEL_T level;
332 } MMAL_PARAMETER_VIDEO_PROFILE_T;
335 typedef enum MMAL_VIDEO_RATECONTROL_T {
336 MMAL_VIDEO_RATECONTROL_DEFAULT,
337 MMAL_VIDEO_RATECONTROL_VARIABLE,
338 MMAL_VIDEO_RATECONTROL_CONSTANT,
339 MMAL_VIDEO_RATECONTROL_VARIABLE_SKIP_FRAMES,
340 MMAL_VIDEO_RATECONTROL_CONSTANT_SKIP_FRAMES,
341 MMAL_VIDEO_RATECONTROL_DUMMY = 0x7fffffff
342 } MMAL_VIDEO_RATECONTROL_T;
345 typedef enum MMAL_VIDEO_INTRA_REFRESH_T {
346 MMAL_VIDEO_INTRA_REFRESH_CYCLIC,
347 MMAL_VIDEO_INTRA_REFRESH_ADAPTIVE,
348 MMAL_VIDEO_INTRA_REFRESH_BOTH,
349 MMAL_VIDEO_INTRA_REFRESH_KHRONOSEXTENSIONS = 0x6F000000,
350 MMAL_VIDEO_INTRA_REFRESH_VENDORSTARTUNUSED = 0x7F000000,
351 MMAL_VIDEO_INTRA_REFRESH_CYCLIC_MROWS,
352 MMAL_VIDEO_INTRA_REFRESH_PSEUDO_RAND,
353 MMAL_VIDEO_INTRA_REFRESH_MAX,
354 MMAL_VIDEO_INTRA_REFRESH_DUMMY = 0x7FFFFFFF
355 } MMAL_VIDEO_INTRA_REFRESH_T;
358 typedef enum MMAL_VIDEO_ENCODE_RC_MODEL_T {
359 MMAL_VIDEO_ENCODER_RC_MODEL_DEFAULT = 0,
360 MMAL_VIDEO_ENCODER_RC_MODEL_JVT = MMAL_VIDEO_ENCODER_RC_MODEL_DEFAULT,
361 MMAL_VIDEO_ENCODER_RC_MODEL_VOWIFI,
362 MMAL_VIDEO_ENCODER_RC_MODEL_CBR,
363 MMAL_VIDEO_ENCODER_RC_MODEL_LAST,
364 MMAL_VIDEO_ENCODER_RC_MODEL_DUMMY = 0x7FFFFFFF
365 } MMAL_VIDEO_ENCODE_RC_MODEL_T;
367 typedef struct MMAL_PARAMETER_VIDEO_ENCODE_RC_MODEL_T {
369 MMAL_VIDEO_ENCODE_RC_MODEL_T rc_model;
370 }MMAL_PARAMETER_VIDEO_ENCODE_RC_MODEL_T;
373 typedef struct MMAL_PARAMETER_VIDEO_RATECONTROL_T {
376 MMAL_VIDEO_RATECONTROL_T control;
377 } MMAL_PARAMETER_VIDEO_RATECONTROL_T;
380 typedef enum MMAL_VIDEO_ENCODE_H264_MB_INTRA_MODES_T {
381 MMAL_VIDEO_ENCODER_H264_MB_4x4_INTRA = 1,
382 MMAL_VIDEO_ENCODER_H264_MB_8x8_INTRA = 2,
383 MMAL_VIDEO_ENCODER_H264_MB_16x16_INTRA = 4,
384 MMAL_VIDEO_ENCODER_H264_MB_INTRA_DUMMY = 0x7fffffff
385 } MMAL_VIDEO_ENCODE_H264_MB_INTRA_MODES_T;
387 typedef struct MMAL_PARAMETER_VIDEO_ENCODER_H264_MB_INTRA_MODES_T {
389 MMAL_VIDEO_ENCODE_H264_MB_INTRA_MODES_T mb_mode;
390 }MMAL_PARAMETER_VIDEO_ENCODER_H264_MB_INTRA_MODES_T;
393 typedef enum MMAL_VIDEO_NALUNITFORMAT_T {
394 MMAL_VIDEO_NALUNITFORMAT_STARTCODES = 1,
395 MMAL_VIDEO_NALUNITFORMAT_NALUNITPERBUFFER = 2,
396 MMAL_VIDEO_NALUNITFORMAT_ONEBYTEINTERLEAVELENGTH = 4,
397 MMAL_VIDEO_NALUNITFORMAT_TWOBYTEINTERLEAVELENGTH = 8,
398 MMAL_VIDEO_NALUNITFORMAT_FOURBYTEINTERLEAVELENGTH = 16,
399 MMAL_VIDEO_NALUNITFORMAT_DUMMY = 0x7fffffff
400 } MMAL_VIDEO_NALUNITFORMAT_T;
403 typedef struct MMAL_PARAMETER_VIDEO_NALUNITFORMAT_T {
406 MMAL_VIDEO_NALUNITFORMAT_T format;
407 } MMAL_PARAMETER_VIDEO_NALUNITFORMAT_T;
412 typedef struct MMAL_PARAMETER_VIDEO_LEVEL_EXTENSION_T {
415 uint32_t custom_max_mbps;
416 uint32_t custom_max_fs;
417 uint32_t custom_max_br_and_cpb;
418 } MMAL_PARAMETER_VIDEO_LEVEL_EXTENSION_T;
423 typedef struct MMAL_PARAMETER_VIDEO_INTRA_REFRESH_T {
426 MMAL_VIDEO_INTRA_REFRESH_T refresh_mode;
431 } MMAL_PARAMETER_VIDEO_INTRA_REFRESH_T;
434 typedef struct MMAL_PARAMETER_VIDEO_EEDE_ENABLE_T {
438 } MMAL_PARAMETER_VIDEO_EEDE_ENABLE_T;
441 typedef struct MMAL_PARAMETER_VIDEO_EEDE_LOSSRATE_T {
445 } MMAL_PARAMETER_VIDEO_EEDE_LOSSRATE_T;
448 typedef struct MMAL_PARAMETER_VIDEO_DRM_INIT_INFO_T {
451 uint32_t current_time;
452 uint32_t ticks_per_sec;
454 } MMAL_PARAMETER_VIDEO_DRM_INIT_INFO_T;
457 typedef struct MMAL_PARAMETER_VIDEO_DRM_PROTECT_BUFFER_T {
460 uint32_t size_wanted;
467 } MMAL_PARAMETER_VIDEO_DRM_PROTECT_BUFFER_T;
469 typedef struct MMAL_PARAMETER_VIDEO_RENDER_STATS_T {
476 uint32_t pixel_clock_nominal;
477 uint32_t pixel_clock;
480 } MMAL_PARAMETER_VIDEO_RENDER_STATS_T;
482 typedef enum MMAL_INTERLACETYPE_T {
483 MMAL_InterlaceProgressive,
484 MMAL_InterlaceFieldSingleUpperFirst,
486 MMAL_InterlaceFieldSingleLowerFirst,
488 MMAL_InterlaceFieldsInterleavedUpperFirst,
490 MMAL_InterlaceFieldsInterleavedLowerFirst,
494 MMAL_InterlaceKhronosExtensions = 0x6F000000,
495 MMAL_InterlaceVendorStartUnused = 0x7F000000,
496 MMAL_InterlaceMax = 0x7FFFFFFF
497 } MMAL_INTERLACETYPE_T;
499 typedef struct MMAL_PARAMETER_VIDEO_INTERLACE_TYPE_T {
502 MMAL_INTERLACETYPE_T eMode;
504 } MMAL_PARAMETER_VIDEO_INTERLACE_TYPE_T;
506 typedef enum MMAL_SOURCE_PATTERN_T {
507 MMAL_VIDEO_SOURCE_PATTERN_WHITE,
508 MMAL_VIDEO_SOURCE_PATTERN_BLACK,
509 MMAL_VIDEO_SOURCE_PATTERN_DIAGONAL,
510 MMAL_VIDEO_SOURCE_PATTERN_NOISE,
511 MMAL_VIDEO_SOURCE_PATTERN_RANDOM,
512 MMAL_VIDEO_SOURCE_PATTERN_COLOUR,
513 MMAL_VIDEO_SOURCE_PATTERN_BLOCKS,
514 MMAL_VIDEO_SOURCE_PATTERN_SWIRLY,
515 MMAL_VIDEO_SOURCE_PATTERN_DUMMY = 0x7fffffff
516 } MMAL_SOURCE_PATTERN_T;
518 typedef struct MMAL_PARAMETER_VIDEO_SOURCE_PATTERN_T {
521 MMAL_SOURCE_PATTERN_T pattern;
525 } MMAL_PARAMETER_VIDEO_SOURCE_PATTERN_T;
#define MMAL_PARAMETER_GROUP_VIDEO