1d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes#include <inttypes.h>
2d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughestypedef uint32_t mpers_ptr_t;
3d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughestypedef
4d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesstruct {
5d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesuint32_t type;
6d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesunion {
7d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesstruct {
8d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesuint32_t width;
9d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesuint32_t height;
10d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesuint32_t pixelformat;
11d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesuint32_t field;
12d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesuint32_t bytesperline;
13d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesuint32_t sizeimage;
14d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesuint32_t colorspace;
15d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesuint32_t priv;
16d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes} ATTRIBUTE_PACKED pix;
17d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesstruct {
18d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesuint32_t width;
19d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesuint32_t height;
20d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesuint32_t pixelformat;
21d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesuint32_t field;
22d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesuint32_t colorspace;
23d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesstruct {
24d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesuint32_t sizeimage;
25d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesuint16_t bytesperline;
26d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesuint16_t reserved[7];
27d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes} ATTRIBUTE_PACKED plane_fmt[8];
28d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesunsigned char num_planes;
29d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesunsigned char reserved[11];
30d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes} ATTRIBUTE_PACKED pix_mp;
31d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesstruct {
32d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesstruct {
33d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesint32_t left;
34d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesint32_t top;
35d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesint32_t width;
36d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesint32_t height;
37d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes} ATTRIBUTE_PACKED w;
38d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesuint32_t field;
39d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesuint32_t chromakey;
40d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesmpers_ptr_t clips;
41d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesuint32_t clipcount;
42d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesmpers_ptr_t bitmap;
43d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesunsigned char global_alpha;
44d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesunsigned char mpers_end_filler_1[3];
45d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes} ATTRIBUTE_PACKED win;
46d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesstruct {
47d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesuint32_t sampling_rate;
48d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesuint32_t offset;
49d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesuint32_t samples_per_line;
50d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesuint32_t sample_format;
51d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesint32_t start[2];
52d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesuint32_t count[2];
53d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesuint32_t flags;
54d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesuint32_t reserved[2];
55d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes} ATTRIBUTE_PACKED vbi;
56d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesstruct {
57d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesuint16_t service_set;
5839bac055674d23770b9a724221b728e443196ea7Elliott Hughesuint16_t service_lines[2][24];
5939bac055674d23770b9a724221b728e443196ea7Elliott Hughesunsigned char mpers_filler_2[2];
60d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesuint32_t io_size;
61d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesuint32_t reserved[2];
62d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes} ATTRIBUTE_PACKED sliced;
63d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughesunsigned char raw_data[200];
64d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes} fmt;
65d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes} ATTRIBUTE_PACKED m32_struct_v4l2_format;
66d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes#define MPERS_m32_struct_v4l2_format m32_struct_v4l2_format
67