msm_vidc.h revision 731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7
1731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan#ifndef __MSM_VIDC_H__
2731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan#define __MSM_VIDC_H__
3cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
4731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan#include <linux/types.h>
5cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
6cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct msm_vidc_extradata_header {
7731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int size;
8731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int:32; /** Keeping binary compatibility */
9731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int:32; /* with firmware and OpenMAX IL **/
10731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int type; /* msm_vidc_extradata_type */
11731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int data_size;
12731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned char data[1];
13cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
14cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct msm_vidc_interlace_payload {
15cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned int format;
16cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
17cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct msm_vidc_framerate_payload {
18cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned int frame_rate;
19cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
20cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct msm_vidc_ts_payload {
21cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned int timestamp_lo;
22cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned int timestamp_hi;
23cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
24cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct msm_vidc_concealmb_payload {
25cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned int num_mbs;
26cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
27cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct msm_vidc_recoverysei_payload {
28cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned int flags;
29cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
30cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct msm_vidc_aspect_ratio_payload {
31cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned int size;
32cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned int version;
33cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned int port_index;
34cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned int aspect_width;
35cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned int aspect_height;
36cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
37cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct msm_vidc_mpeg2_seqdisp_payload {
38cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned int video_format;
39731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int color_descp;
40cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned int color_primaries;
41cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned int transfer_char;
42cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned int matrix_coeffs;
43cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned int disp_width;
44cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned int disp_height;
45cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
46cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct msm_vidc_input_crop_payload {
47731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int size;
48731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int version;
49731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int port_index;
50731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int left;
51731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int top;
52731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int width;
53731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int height;
54cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
55cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct msm_vidc_digital_zoom_payload {
56731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int size;
57731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int version;
58731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int port_index;
59731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int zoom_width;
60731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int zoom_height;
61cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
62cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct msm_vidc_extradata_index {
63731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int type;
64731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	union {
65731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan		struct msm_vidc_input_crop_payload input_crop;
66731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan		struct msm_vidc_digital_zoom_payload digital_zoom;
67731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan		struct msm_vidc_aspect_ratio_payload aspect_ratio;
68731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	};
69cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
70cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct msm_vidc_panscan_window {
71cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned int panscan_height_offset;
72cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned int panscan_width_offset;
73cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned int panscan_window_width;
74cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned int panscan_window_height;
75cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
76cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct msm_vidc_panscan_window_payload {
77cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned int num_panscan_windows;
78cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	struct msm_vidc_panscan_window wnd[1];
79cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
80cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct msm_vidc_stream_userdata_payload {
81731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int type;
82731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int data[1];
83731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan};
84731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavanstruct msm_vidc_frame_qp_payoad {
85731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int frame_qp;
86cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
87cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct msm_vidc_frame_qp_payload {
88731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int frame_qp;
89cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
90cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct msm_vidc_frame_bits_info_payload {
91731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int frame_bits;
92731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int header_bits;
93cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
94cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct msm_vidc_s3d_frame_packing_payload {
95731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int fpa_id;
96731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int cancel_flag;
97731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int fpa_type;
98731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int quin_cunx_flag;
99731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int content_interprtation_type;
100731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int spatial_flipping_flag;
101731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int frame0_flipped_flag;
102731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int field_views_flag;
103731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int current_frame_is_frame0_flag;
104731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int frame0_self_contained_flag;
105731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int frame1_self_contained_flag;
106731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int frame0_graid_pos_x;
107731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int frame0_graid_pos_y;
108731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int frame1_graid_pos_x;
109731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int frame1_graid_pos_y;
110731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int fpa_reserved_byte;
111731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int fpa_repetition_period;
112731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	unsigned int fpa_extension_flag;
113cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
114cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
115cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajenum msm_vidc_extradata_type {
116731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	MSM_VIDC_EXTRADATA_NONE = 0x00000000,
117731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	MSM_VIDC_EXTRADATA_MB_QUANTIZATION = 0x00000001,
118731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	MSM_VIDC_EXTRADATA_INTERLACE_VIDEO = 0x00000002,
119731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	MSM_VIDC_EXTRADATA_VC1_FRAMEDISP = 0x00000003,
120731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	MSM_VIDC_EXTRADATA_VC1_SEQDISP = 0x00000004,
121731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	MSM_VIDC_EXTRADATA_TIMESTAMP = 0x00000005,
122731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	MSM_VIDC_EXTRADATA_S3D_FRAME_PACKING = 0x00000006,
123731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	MSM_VIDC_EXTRADATA_FRAME_RATE = 0x00000007,
124731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	MSM_VIDC_EXTRADATA_PANSCAN_WINDOW = 0x00000008,
125731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	MSM_VIDC_EXTRADATA_RECOVERY_POINT_SEI = 0x00000009,
126731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	MSM_VIDC_EXTRADATA_MPEG2_SEQDISP = 0x0000000D,
127731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	MSM_VIDC_EXTRADATA_STREAM_USERDATA = 0x0000000E,
128731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	MSM_VIDC_EXTRADATA_FRAME_QP = 0x0000000F,
129731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	MSM_VIDC_EXTRADATA_FRAME_BITS_INFO = 0x00000010,
130731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	MSM_VIDC_EXTRADATA_INPUT_CROP = 0x0700000E,
131731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	MSM_VIDC_EXTRADATA_DIGITAL_ZOOM = 0x07000010,
132731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	MSM_VIDC_EXTRADATA_MULTISLICE_INFO = 0x7F100000,
133731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	MSM_VIDC_EXTRADATA_NUM_CONCEALED_MB = 0x7F100001,
134731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	MSM_VIDC_EXTRADATA_INDEX = 0x7F100002,
135731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	MSM_VIDC_EXTRADATA_ASPECT_RATIO = 0x7F100003,
136731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	MSM_VIDC_EXTRADATA_METADATA_LTR = 0x7F100004,
137731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	MSM_VIDC_EXTRADATA_METADATA_FILLER = 0x7FE00002,
138731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan	MSM_VIDC_EXTRADATA_METADATA_MBI = 0x7F100005,
139cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
140cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajenum msm_vidc_interlace_type {
141cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	MSM_VIDC_INTERLACE_FRAME_PROGRESSIVE = 0x01,
142cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	MSM_VIDC_INTERLACE_INTERLEAVE_FRAME_TOPFIELDFIRST = 0x02,
143cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	MSM_VIDC_INTERLACE_INTERLEAVE_FRAME_BOTTOMFIELDFIRST = 0x04,
144cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	MSM_VIDC_INTERLACE_FRAME_TOPFIELDFIRST = 0x08,
145cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	MSM_VIDC_INTERLACE_FRAME_BOTTOMFIELDFIRST = 0x10,
146cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
147cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajenum msm_vidc_recovery_sei {
148cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	MSM_VIDC_FRAME_RECONSTRUCTION_INCORRECT = 0x0,
149cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	MSM_VIDC_FRAME_RECONSTRUCTION_CORRECT = 0x01,
150cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	MSM_VIDC_FRAME_RECONSTRUCTION_APPROXIMATELY_CORRECT = 0x02,
151cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
152cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajenum msm_vidc_userdata_type {
153cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	MSM_VIDC_USERDATA_TYPE_FRAME = 0x1,
154cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	MSM_VIDC_USERDATA_TYPE_TOP_FIELD = 0x2,
155cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	MSM_VIDC_USERDATA_TYPE_BOTTOM_FIELD = 0x3,
156cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
157cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#endif
158