]>
Commit | Line | Data |
---|---|---|
e79753ed PM |
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 | ||
8 | GENERAL DESCRIPTION | |
9 | This file contains defintions of format blocks of commands | |
10 | that are accepted by VIDDEC Task | |
11 | ||
12 | REFERENCES | |
13 | None | |
14 | ||
15 | EXTERNALIZED FUNCTIONS | |
16 | None | |
17 | ||
18 | Copyright(c) 1992 - 2008 by QUALCOMM, Incorporated. | |
19 | ||
20 | This software is licensed under the terms of the GNU General Public | |
21 | License version 2, as published by the Free Software Foundation, and | |
22 | may be copied, distributed, and modified under those terms. | |
23 | ||
24 | This program is distributed in the hope that it will be useful, | |
25 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
26 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
27 | GNU General Public License for more details. | |
28 | ||
29 | *====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*/ | |
30 | /*=========================================================================== | |
31 | ||
32 | EDIT HISTORY FOR FILE | |
33 | ||
34 | This section contains comments describing changes made to this file. | |
35 | Notice 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 $ | |
38 | Revision History: | |
39 | ||
40 | when who what, where, why | |
41 | -------- --- ---------------------------------------------------------- | |
42 | 05/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 | ||
72 | typedef 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 | ||
104 | typedef 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 | ||
136 | typedef 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 | ||
199 | typedef 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 | ||
217 | typedef 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 |