• 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/drivers/staging/dream/include/mach/qdsp5/
1#ifndef QDSP5VIDDECCMDI_H
2#define QDSP5VIDDECCMDI_H
3
4/*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*
5
6    V I D E O  D E 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 VIDDEC Task
11
12REFERENCES
13  None
14
15EXTERNALIZED FUNCTIONS
16  None
17
18Copyright(c) 1992 - 2008 by QUALCOMM, Incorporated.
19
20This software is licensed under the terms of the GNU General Public
21License version 2, as published by the Free Software Foundation, and
22may be copied, distributed, and modified under those terms.
23
24This program is distributed in the hope that it will be useful,
25but WITHOUT ANY WARRANTY; without even the implied warranty of
26MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
27GNU General Public License for more details.
28
29*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*/
30/*===========================================================================
31
32                      EDIT HISTORY FOR FILE
33
34This section contains comments describing changes made to this file.
35Notice that changes are listed in reverse chronological order.
36
37$Header: //source/qcom/qct/multimedia2/AdspSvc/7XXX/qdsp5cmd/video/qdsp5vdeccmdi.h#2 $ $DateTime: 2008/07/30 10:50:23 $ $Author: pavanr $
38Revision History:
39
40when       who     what, where, why
41--------   ---     ----------------------------------------------------------
4205/10/08   ac      initial version
43===========================================================================*/
44
45
46/*
47 * Command to inform VIDDEC that new subframe packet is ready
48 */
49
50#define	VIDDEC_CMD_SUBFRAME_PKT		0x0000
51#define	VIDDEC_CMD_SUBFRAME_PKT_LEN \
52	sizeof(viddec_cmd_subframe_pkt)
53
54#define	VIDDEC_CMD_SF_INFO_1_DM_DMA_STATS_EXCHANGE_FLAG_DM		0x0000
55#define	VIDDEC_CMD_SF_INFO_1_DM_DMA_STATS_EXCHANGE_FLAG_DMA 	0x0001
56
57#define	VIDDEC_CMD_SF_INFO_0_SUBFRAME_CONTI		0x0000
58#define	VIDDEC_CMD_SF_INFO_0_SUBFRAME_FIRST		0x0001
59#define	VIDDEC_CMD_SF_INFO_0_SUBFRAME_LAST		0x0002
60#define	VIDDEC_CMD_SF_INFO_0_SUBFRAME_FIRST_AND_LAST 	0x0003
61
62#define	VIDDEC_CMD_CODEC_SELECTION_WORD_MPEG_4		0x0000
63#define	VIDDEC_CMD_CODEC_SELECTION_WORD_H_263_P0	0x0001
64#define	VIDDEC_CMD_CODEC_SELECTION_WORD_H_264		0x0002
65#define	VIDDEC_CMD_CODEC_SELECTION_WORD_H_263_p3	0x0003
66#define	VIDDEC_CMD_CODEC_SELECTION_WORD_RV9		0x0004
67#define	VIDDEC_CMD_CODEC_SELECTION_WORD_WMV9		0x0005
68#define	VIDDEC_CMD_CODEC_SELECTION_WORD_SMCDB		0x0006
69#define	VIDDEC_CMD_CODEC_SELECTION_WORD_QFRE		0x0007
70#define	VIDDEC_CMD_CODEC_SELECTION_WORD_VLD		0x0008
71
72typedef struct {
73	unsigned short	cmd_id;
74	unsigned short	packet_seq_number;
75	unsigned short	codec_instance_id;
76	unsigned short	subframe_packet_size_high;
77	unsigned short	subframe_packet_size_low;
78	unsigned short	subframe_packet_high;
79	unsigned short	subframe_packet_low;
80	unsigned short	subframe_packet_partition;
81	unsigned short	statistics_packet_size_high;
82	unsigned short	statistics_packet_size_low;
83	unsigned short	statistics_packet_high;
84	unsigned short	statistics_packet_low;
85	unsigned short	statistics_partition;
86	unsigned short	subframe_info_1;
87	unsigned short	subframe_info_0;
88	unsigned short	codec_selection_word;
89	unsigned short	num_mbs;
90} __attribute__((packed)) viddec_cmd_subframe_pkt;
91
92
93/*
94 * Command to inform VIDDEC task that post processing is required for the frame
95 */
96
97#define	VIDDEC_CMD_PP_ENABLE		0x0001
98#define	VIDDEC_CMD_PP_ENABLE_LEN \
99	sizeof(viddec_cmd_pp_enable)
100
101#define	VIDDEC_CMD_PP_INFO_0_DM_DMA_LS_EXCHANGE_FLAG_DM		0x0000
102#define	VIDDEC_CMD_PP_INFO_0_DM_DMA_LS_EXCHANGE_FLAG_DMA	0x0001
103
104typedef struct {
105	unsigned short	cmd_id;
106	unsigned short	packet_seq_num;
107	unsigned short	codec_instance_id;
108	unsigned short	postproc_info_0;
109	unsigned short	codec_selection_word;
110	unsigned short	pp_output_addr_high;
111	unsigned short	pp_output_addr_low;
112	unsigned short	postproc_info_1;
113	unsigned short	load_sharing_packet_size_high;
114	unsigned short	load_sharing_packet_size_low;
115	unsigned short	load_sharing_packet_high;
116	unsigned short	load_sharing_packet_low;
117	unsigned short	load_sharing_partition;
118	unsigned short	pp_param_0;
119	unsigned short	pp_param_1;
120	unsigned short	pp_param_2;
121	unsigned short	pp_param_3;
122} __attribute__((packed)) viddec_cmd_pp_enable;
123
124
125/*
126 * FRAME Header Packet : It is at the start of new frame
127 */
128
129#define	VIDDEC_CMD_FRAME_HEADER_PACKET	0x0002
130#define	VIDDEC_CMD_FRAME_HEADER_PACKET_LEN	\
131	sizeof(viddec_cmd_frame_header_packet)
132
133#define	VIDDEC_CMD_FRAME_INFO_0_ERROR_SKIP	0x0000
134#define	VIDDEC_CMD_FRAME_INFO_0_ERROR_BLACK	0x0800
135
136typedef struct {
137	unsigned short	packet_id;
138	unsigned short	x_dimension;
139	unsigned short	y_dimension;
140	unsigned short	line_width;
141	unsigned short	frame_info_0;
142	unsigned short	frame_buffer_0_high;
143	unsigned short	frame_buffer_0_low;
144	unsigned short	frame_buffer_1_high;
145	unsigned short	frame_buffer_1_low;
146	unsigned short	frame_buffer_2_high;
147	unsigned short	frame_buffer_2_low;
148	unsigned short	frame_buffer_3_high;
149	unsigned short	frame_buffer_3_low;
150	unsigned short	frame_buffer_4_high;
151	unsigned short	frame_buffer_4_low;
152	unsigned short	frame_buffer_5_high;
153	unsigned short	frame_buffer_5_low;
154	unsigned short	frame_buffer_6_high;
155	unsigned short	frame_buffer_6_low;
156	unsigned short	frame_buffer_7_high;
157	unsigned short	frame_buffer_7_low;
158	unsigned short	frame_buffer_8_high;
159	unsigned short	frame_buffer_8_low;
160	unsigned short	frame_buffer_9_high;
161	unsigned short	frame_buffer_9_low;
162	unsigned short	frame_buffer_10_high;
163	unsigned short	frame_buffer_10_low;
164	unsigned short	frame_buffer_11_high;
165	unsigned short	frame_buffer_11_low;
166	unsigned short	frame_buffer_12_high;
167	unsigned short	frame_buffer_12_low;
168	unsigned short	frame_buffer_13_high;
169	unsigned short	frame_buffer_13_low;
170	unsigned short	frame_buffer_14_high;
171	unsigned short	frame_buffer_14_low;
172	unsigned short	frame_buffer_15_high;
173	unsigned short	frame_buffer_15_low;
174	unsigned short	output_frame_buffer_high;
175	unsigned short	output_frame_buffer_low;
176	unsigned short	end_of_packet_marker;
177} __attribute__((packed)) viddec_cmd_frame_header_packet;
178
179
180/*
181 * SLICE HEADER PACKET
182 * I-Slice and P-Slice
183 */
184
185#define	VIDDEC_CMD_SLICE_HEADER_PKT_ISLICE		0x0003
186#define	VIDDEC_CMD_SLICE_HEADER_PKT_ISLICE_LEN	\
187	sizeof(viddec_cmd_slice_header_pkt_islice)
188
189#define	VIDDEC_CMD_ISLICE_INFO_1_MOD_SLICE_TYPE_PSLICE	0x0000
190#define	VIDDEC_CMD_ISLICE_INFO_1_MOD_SLICE_TYPE_BSLICE	0x0100
191#define	VIDDEC_CMD_ISLICE_INFO_1_MOD_SLICE_TYPE_ISLICE	0x0200
192#define	VIDDEC_CMD_ISLICE_INFO_1_MOD_SLICE_TYPE_SPSLICE	0x0300
193#define	VIDDEC_CMD_ISLICE_INFO_1_MOD_SLICE_TYPE_SISLICE	0x0400
194#define	VIDDEC_CMD_ISLICE_INFO_1_NOPADDING	0x0000
195#define	VIDDEC_CMD_ISLICE_INFO_1_PADDING	0x0800
196
197#define	VIDDEC_CMD_ISLICE_EOP_MARKER		0x7FFF
198
199typedef struct {
200	unsigned short	cmd_id;
201	unsigned short	packet_id;
202	unsigned short	slice_info_0;
203	unsigned short	slice_info_1;
204	unsigned short	slice_info_2;
205	unsigned short	num_bytes_in_rbsp_high;
206	unsigned short	num_bytes_in_rbsp_low;
207	unsigned short	num_bytes_in_rbsp_consumed;
208	unsigned short	end_of_packet_marker;
209} __attribute__((packed)) viddec_cmd_slice_header_pkt_islice;
210
211
212#define	VIDDEC_CMD_SLICE_HEADER_PKT_PSLICE		0x0003
213#define	VIDDEC_CMD_SLICE_HEADER_PKT_PSLICE_LEN	\
214	sizeof(viddec_cmd_slice_header_pkt_pslice)
215
216
217typedef struct {
218	unsigned short	cmd_id;
219	unsigned short	packet_id;
220	unsigned short	slice_info_0;
221	unsigned short	slice_info_1;
222	unsigned short	slice_info_2;
223	unsigned short	slice_info_3;
224	unsigned short	refidx_l0_map_tab_info_0;
225	unsigned short	refidx_l0_map_tab_info_1;
226	unsigned short	refidx_l0_map_tab_info_2;
227	unsigned short	refidx_l0_map_tab_info_3;
228	unsigned short	num_bytes_in_rbsp_high;
229	unsigned short	num_bytes_in_rbsp_low;
230	unsigned short	num_bytes_in_rbsp_consumed;
231	unsigned short	end_of_packet_marker;
232} __attribute__((packed)) viddec_cmd_slice_header_pkt_pslice;
233
234
235#endif
236