File Index
Files and directories
Sign in
FILE

mmal-msg-format.h

File preview with syntax highlighting.

linux-6.19.14/drivers/platform/raspberrypi/vchiq-mmal/mmal-msg-format.h C
  1/* SPDX-License-Identifier: GPL-2.0 */
  2/*
  3 * Broadcom BCM2835 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#ifndef MMAL_MSG_FORMAT_H
 15#define MMAL_MSG_FORMAT_H
 16
 17#include <linux/math.h>
 18
 19#include "mmal-msg-common.h"
 20
 21/* MMAL_ES_FORMAT_T */
 22
 23struct mmal_audio_format {
 24	u32 channels;		/* Number of audio channels */
 25	u32 sample_rate;	/* Sample rate */
 26
 27	u32 bits_per_sample;	/* Bits per sample */
 28	u32 block_align;	/* Size of a block of data */
 29};
 30
 31struct mmal_video_format {
 32	u32 width;		/* Width of frame in pixels */
 33	u32 height;		/* Height of frame in rows of pixels */
 34	struct mmal_rect crop;	/* Visible region of the frame */
 35	struct s32_fract frame_rate;	/* Frame rate */
 36	struct s32_fract par;		/* Pixel aspect ratio */
 37
 38	/*
 39	 * FourCC specifying the color space of the video stream. See the
 40	 * MmalColorSpace "pre-defined color spaces" for some examples.
 41	 */
 42	u32 color_space;
 43};
 44
 45struct mmal_subpicture_format {
 46	u32 x_offset;
 47	u32 y_offset;
 48};
 49
 50union mmal_es_specific_format {
 51	struct mmal_audio_format audio;
 52	struct mmal_video_format video;
 53	struct mmal_subpicture_format subpicture;
 54};
 55
 56/* Definition of an elementary stream format (MMAL_ES_FORMAT_T) */
 57struct mmal_es_format_local {
 58	u32 type;	/* enum mmal_es_type */
 59
 60	u32 encoding;	/* FourCC specifying encoding of the elementary
 61			 * stream.
 62			 */
 63	u32 encoding_variant;	/* FourCC specifying the specific
 64				 * encoding variant of the elementary
 65				 * stream.
 66				 */
 67
 68	union mmal_es_specific_format *es;	/* Type specific
 69						 * information for the
 70						 * elementary stream
 71						 */
 72
 73	u32 bitrate;	/* Bitrate in bits per second */
 74	u32 flags;	/* Flags describing properties of the elementary
 75			 * stream.
 76			 */
 77
 78	u32 extradata_size;	/* Size of the codec specific data */
 79	u8  *extradata;		/* Codec specific data */
 80};
 81
 82/* Remote definition of an elementary stream format (MMAL_ES_FORMAT_T) */
 83struct mmal_es_format {
 84	u32 type;	/* enum mmal_es_type */
 85
 86	u32 encoding;	/* FourCC specifying encoding of the elementary
 87			 * stream.
 88			 */
 89	u32 encoding_variant;	/* FourCC specifying the specific
 90				 * encoding variant of the elementary
 91				 * stream.
 92				 */
 93
 94	u32 es;	/* Type specific
 95		 * information for the
 96		 * elementary stream
 97		 */
 98
 99	u32 bitrate;	/* Bitrate in bits per second */
100	u32 flags;	/* Flags describing properties of the elementary
101			 * stream.
102			 */
103
104	u32 extradata_size;	/* Size of the codec specific data */
105	u32 extradata;		/* Codec specific data */
106};
107
108#endif /* MMAL_MSG_FORMAT_H */
~/ Read-only file preview.