• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6.36/drivers/staging/dream/include/mach/qdsp5/
1#ifndef QDSP5VIDENCCMDI_H
2#define QDSP5VIDENCCMDI_H
3
4/*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*
5
6    V I D E O  E N C O D E R  I N T E R N A L  C O M M A N D S
7
8GENERAL DESCRIPTION
9  This file contains defintions of format blocks of commands
10  that are accepted by VIDENC Task
11
12REFERENCES
13  None
14
15EXTERNALIZED FUNCTIONS
16  None
17
18Copyright(c) 2008 by QUALCOMM, Incorporated.
19*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*/
20/*===========================================================================
21
22			EDIT HISTORY FOR FILE
23
24This section contains comments describing changes made to this file.
25Notice that changes are listed in reverse chronological order.
26
27Revision History:
28
29when       who     what, where, why
30--------   ---     ----------------------------------------------------------
3109/25/08   umeshp      initial version
32===========================================================================*/
33
34  #define VIDENC_CMD_CFG           0x0000
35  #define VIDENC_CMD_ACTIVE        0x0001
36  #define VIDENC_CMD_IDLE          0x0002
37  #define VIDENC_CMD_FRAME_START   0x0003
38  #define VIDENC_CMD_STATUS_QUERY  0x0004
39  #define VIDENC_CMD_RC_CFG        0x0005
40  #define VIDENC_CMD_DIS_CFG       0x0006
41  #define VIDENC_CMD_DIS           0x0007
42  #define VIDENC_CMD_INTRA_REFRESH 0x0008
43  #define VIDENC_CMD_DIGITAL_ZOOM  0x0009
44
45
46/*
47 * Command to pass the frame message information to VIDENC
48 */
49
50
51#define VIDENC_CMD_FRAME_START_LEN \
52	sizeof(videnc_cmd_frame_start)
53
54typedef struct {
55	unsigned short  cmd_id;
56	unsigned short  frame_info;
57	unsigned short  frame_rho_budget_word_high;
58	unsigned short  frame_rho_budget_word_low;
59	unsigned short  input_luma_addr_high;
60	unsigned short  input_luma_addr_low;
61	unsigned short  input_chroma_addr_high;
62	unsigned short  input_chroma_addr_low;
63	unsigned short  ref_vop_buf_ptr_high;
64	unsigned short  ref_vop_buf_ptr_low;
65	unsigned short  enc_pkt_buf_ptr_high;
66	unsigned short  enc_pkt_buf_ptr_low;
67	unsigned short  enc_pkt_buf_size_high;
68	unsigned short  enc_pkt_buf_size_low;
69	unsigned short  unfilt_recon_vop_buf_ptr_high;
70	unsigned short  unfilt_recon_vop_buf_ptr_low;
71	unsigned short  filt_recon_vop_buf_ptr_high;
72	unsigned short  filt_recon_vop_buf_ptr_low;
73} __attribute__((packed)) videnc_cmd_frame_start;
74
75/*
76 * Command to pass the frame-level digital stabilization parameters to VIDENC
77 */
78
79
80#define VIDENC_CMD_DIS_LEN \
81    sizeof(videnc_cmd_dis)
82
83typedef struct {
84	unsigned short  cmd_id;
85	unsigned short  vfe_out_prev_luma_addr_high;
86	unsigned short  vfe_out_prev_luma_addr_low;
87	unsigned short  stabilization_info;
88} __attribute__((packed)) videnc_cmd_dis;
89
90/*
91 * Command to pass the codec related parameters to VIDENC
92 */
93
94
95#define VIDENC_CMD_CFG_LEN \
96    sizeof(videnc_cmd_cfg)
97
98typedef struct {
99	unsigned short  cmd_id;
100	unsigned short  cfg_info_0;
101	unsigned short  cfg_info_1;
102	unsigned short  four_mv_threshold;
103	unsigned short  ise_fse_mv_cost_fac;
104	unsigned short  venc_frame_dim;
105	unsigned short  venc_DM_partition;
106} __attribute__((packed)) videnc_cmd_cfg;
107
108/*
109 * Command to start the video encoding
110 */
111
112
113#define VIDENC_CMD_ACTIVE_LEN \
114    sizeof(videnc_cmd_active)
115
116typedef struct {
117    unsigned short  cmd_id;
118} __attribute__((packed)) videnc_cmd_active;
119
120/*
121 * Command to stop the video encoding
122 */
123
124
125#define VIDENC_CMD_IDLE_LEN \
126    sizeof(videnc_cmd_idle)
127
128typedef struct {
129	unsigned short  cmd_id;
130} __attribute__((packed)) videnc_cmd_idle;
131
132/*
133 * Command to query staus of VIDENC
134 */
135
136
137#define VIDENC_CMD_STATUS_QUERY_LEN \
138    sizeof(videnc_cmd_status_query)
139
140typedef struct {
141	unsigned short  cmd_id;
142} __attribute__((packed)) videnc_cmd_status_query;
143
144/*
145 * Command to set rate control for a frame
146 */
147
148
149#define VIDENC_CMD_RC_CFG_LEN \
150    sizeof(videnc_cmd_rc_cfg)
151
152typedef struct {
153	unsigned short  cmd_id;
154	unsigned short  max_frame_qp_delta;
155	unsigned short  max_min_frame_qp;
156} __attribute__((packed)) videnc_cmd_rc_cfg;
157
158/*
159 * Command to set intra-refreshing
160 */
161
162
163#define VIDENC_CMD_INTRA_REFRESH_LEN \
164    sizeof(videnc_cmd_intra_refresh)
165
166typedef struct {
167	unsigned short  cmd_id;
168	unsigned short  num_mb_refresh;
169	unsigned short  mb_index[15];
170} __attribute__((packed)) videnc_cmd_intra_refresh;
171
172/*
173 * Command to pass digital zoom information to the VIDENC
174 */
175#define VIDENC_CMD_DIGITAL_ZOOM_LEN \
176    sizeof(videnc_cmd_digital_zoom)
177
178typedef struct {
179	unsigned short  cmd_id;
180	unsigned short  digital_zoom_en;
181	unsigned short  luma_frame_shift_X;
182	unsigned short  luma_frame_shift_Y;
183	unsigned short  up_ip_luma_rows;
184	unsigned short  up_ip_luma_cols;
185	unsigned short  up_ip_chroma_rows;
186	unsigned short  up_ip_chroma_cols;
187	unsigned short  luma_ph_incr_V_low;
188	unsigned short  luma_ph_incr_V_high;
189	unsigned short  luma_ph_incr_H_low;
190	unsigned short  luma_ph_incr_H_high;
191	unsigned short  chroma_ph_incr_V_low;
192	unsigned short  chroma_ph_incr_V_high;
193	unsigned short  chroma_ph_incr_H_low;
194	unsigned short  chroma_ph_incr_H_high;
195} __attribute__((packed)) videnc_cmd_digital_zoom;
196
197/*
198 * Command to configure digital stabilization parameters
199 */
200
201#define VIDENC_CMD_DIS_CFG_LEN \
202    sizeof(videnc_cmd_dis_cfg)
203
204typedef struct {
205	unsigned short  cmd_id;
206	unsigned short  image_stab_subf_start_row_col;
207	unsigned short  image_stab_subf_dim;
208	unsigned short  image_stab_info_0;
209} __attribute__((packed)) videnc_cmd_dis_cfg;
210
211
212#endif
213