summaryrefslogtreecommitdiff
path: root/core/multimedia/opieplayer/libmpeg3/mpeg3protos.h
authorkergoth <kergoth>2002-01-25 22:14:26 (UTC)
committer kergoth <kergoth>2002-01-25 22:14:26 (UTC)
commit15318cad33835e4e2dc620d033e43cd930676cdd (patch) (unidiff)
treec2fa0399a2c47fda8e2cd0092c73a809d17f68eb /core/multimedia/opieplayer/libmpeg3/mpeg3protos.h
downloadopie-15318cad33835e4e2dc620d033e43cd930676cdd.zip
opie-15318cad33835e4e2dc620d033e43cd930676cdd.tar.gz
opie-15318cad33835e4e2dc620d033e43cd930676cdd.tar.bz2
Initial revision
Diffstat (limited to 'core/multimedia/opieplayer/libmpeg3/mpeg3protos.h') (more/less context) (ignore whitespace changes)
-rw-r--r--core/multimedia/opieplayer/libmpeg3/mpeg3protos.h278
1 files changed, 278 insertions, 0 deletions
diff --git a/core/multimedia/opieplayer/libmpeg3/mpeg3protos.h b/core/multimedia/opieplayer/libmpeg3/mpeg3protos.h
new file mode 100644
index 0000000..631336b
--- a/dev/null
+++ b/core/multimedia/opieplayer/libmpeg3/mpeg3protos.h
@@ -0,0 +1,278 @@
1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3**
4** This file is part of Qtopia Environment.
5**
6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file.
10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15**
16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you.
18**
19**********************************************************************/
20#ifndef MPEG3PROTOS_H
21#define MPEG3PROTOS_H
22
23#if defined(__cplusplus)
24extern "C" {
25#endif
26
27/* CSS */
28
29mpeg3_css_t* mpeg3_new_css();
30
31/* DEMUX */
32
33mpeg3_demuxer_t* mpeg3_new_demuxer(mpeg3_t *file, int do_audio, int do_video, int stream_id);
34int mpeg3_delete_demuxer(mpeg3_demuxer_t *demuxer);
35int mpeg3demux_read_data(mpeg3_demuxer_t *demuxer, unsigned char *output, long size);
36unsigned int mpeg3demux_read_int32(mpeg3_demuxer_t *demuxer);
37unsigned int mpeg3demux_read_int24(mpeg3_demuxer_t *demuxer);
38unsigned int mpeg3demux_read_int16(mpeg3_demuxer_t *demuxer);
39double mpeg3demux_length(mpeg3_demuxer_t *demuxer);
40mpeg3_demuxer_t* mpeg3_get_demuxer(mpeg3_t *file);
41long mpeg3demux_tell(mpeg3_demuxer_t *demuxer);
42double mpeg3demux_tell_percentage(mpeg3_demuxer_t *demuxer);
43double mpeg3demux_get_time(mpeg3_demuxer_t *demuxer);
44int mpeg3demux_eof(mpeg3_demuxer_t *demuxer);
45int mpeg3demux_bof(mpeg3_demuxer_t *demuxer);
46int mpeg3demux_copy_titles(mpeg3_demuxer_t *dst, mpeg3_demuxer_t *src);
47int mpeg3demux_create_title(mpeg3_demuxer_t *demuxer, int timecode_search, FILE *toc);
48long mpeg3demuxer_total_bytes(mpeg3_demuxer_t *demuxer);
49int mpeg3demux_seek_byte(mpeg3_demuxer_t *demuxer, long byte);
50int mpeg3demux_seek_time(mpeg3_demuxer_t *demuxer, double new_time);
51int mpeg3demux_seek_percentage(mpeg3_demuxer_t *demuxer, double percentage);
52int mpeg3demux_print_streams(mpeg3_demuxer_t *demuxer, FILE *toc);
53int mpeg3demux_print_timecodes(mpeg3_title_t *title, FILE *output);
54int mpeg3demux_read_titles(mpeg3_demuxer_t *demuxer);
55int mpeg3demux_open_title(mpeg3_demuxer_t *demuxer, int title_number);
56
57/* TITLE */
58
59mpeg3_title_t* mpeg3_new_title(mpeg3_t *file, char *path);
60int mpeg3_delete_title(mpeg3_title_t *title);
61int mpeg3_copy_title(mpeg3_title_t *dst, mpeg3_title_t *src);
62
63
64/* ATRACK */
65
66mpeg3_atrack_t* mpeg3_new_atrack(mpeg3_t *file, int stream_id, int is_ac3, mpeg3_demuxer_t *demuxer);
67int mpeg3_delete_atrack(mpeg3_t *file, mpeg3_atrack_t *atrack);
68
69/* VTRACK */
70
71mpeg3_vtrack_t* mpeg3_new_vtrack(mpeg3_t *file, int stream_id, mpeg3_demuxer_t *demuxer);
72int mpeg3_delete_vtrack(mpeg3_t *file, mpeg3_vtrack_t *vtrack);
73
74/* AUDIO */
75mpeg3audio_t* mpeg3audio_new(mpeg3_t *file, mpeg3_atrack_t *track, int is_ac3);
76int mpeg3audio_delete(mpeg3audio_t *audio);
77int mpeg3audio_seek_sample(mpeg3audio_t *audio, long sample);
78int mpeg3audio_seek_percentage(mpeg3audio_t *audio, double percentage);
79int mpeg3audio_decode_audio(mpeg3audio_t *audio,
80 mpeg3_real_t *output_f,
81 short *output_i, int sampleSpacing,
82 int channel,
83 long start_position,
84 long len);
85int mpeg3audio_read_raw(mpeg3audio_t *audio, unsigned char *output, long *size, long max_size);
86int mpeg3audio_read_ac3_header(mpeg3audio_t *audio);
87int mpeg3audio_read_pcm_header(mpeg3audio_t *audio);
88int mpeg3audio_synth_mono(mpeg3audio_t *audio, mpeg3_real_t *bandPtr, mpeg3_real_t *samples, int *pnt);
89int mpeg3audio_synth_stereo(mpeg3audio_t *audio, mpeg3_real_t *bandPtr, int channel, mpeg3_real_t *out, int *pnt);
90int mpeg3audio_replace_buffer(mpeg3audio_t *audio, long new_allocation);
91int mpeg3audio_ac3_exponent_unpack(mpeg3audio_t *audio,
92 mpeg3_ac3bsi_t *bsi,
93 mpeg3_ac3audblk_t *audblk);
94int mpeg3audio_ac3_bit_allocate(mpeg3audio_t *audio,
95 unsigned int fscod,
96 mpeg3_ac3bsi_t *bsi,
97 mpeg3_ac3audblk_t *audblk);
98int mpeg3audio_ac3_coeff_unpack(mpeg3audio_t *audio,
99 mpeg3_ac3bsi_t *bsi,
100 mpeg3_ac3audblk_t *audblk,
101 mpeg3ac3_stream_samples_t samples);
102int mpeg3audio_ac3_imdct(mpeg3audio_t *audio,
103 mpeg3_ac3bsi_t *bsi,
104 mpeg3_ac3audblk_t *audblk,
105 mpeg3ac3_stream_samples_t samples);
106int mpeg3audio_replace_buffer(mpeg3audio_t *audio, long new_allocation);
107int mpeg3audio_dct36(mpeg3_real_t *inbuf, mpeg3_real_t *o1, mpeg3_real_t *o2, mpeg3_real_t *wintab, mpeg3_real_t *tsbuf);
108int mpeg3audio_dct12(mpeg3_real_t *in,mpeg3_real_t *rawout1,mpeg3_real_t *rawout2,register mpeg3_real_t *wi,register mpeg3_real_t *ts);
109int mpeg3audio_read_header(mpeg3audio_t *audio);
110int mpeg3audio_do_ac3(mpeg3audio_t *audio);
111int mpeg3audio_dolayer2(mpeg3audio_t *audio);
112int mpeg3audio_dolayer3(mpeg3audio_t *audio);
113int mpeg3audio_do_pcm(mpeg3audio_t *audio);
114int mpeg3audio_dct64(mpeg3_real_t *a, mpeg3_real_t *b, mpeg3_real_t *c);
115int mpeg3audio_reset_synths(mpeg3audio_t *audio);
116int mpeg3audio_prev_header(mpeg3audio_t *audio);
117int mpeg3audio_read_layer3_frame(mpeg3audio_t *audio);
118int mpeg3audio_new_decode_tables(mpeg3audio_t *audio);
119int mpeg3audio_imdct_init(mpeg3audio_t *audio);
120
121
122/* VIDEO */
123mpeg3video_t* mpeg3video_new(mpeg3_t *file, mpeg3_vtrack_t *track);
124int mpeg3video_delete(mpeg3video_t *video);
125int mpeg3video_read_frame(mpeg3video_t *video,
126 long frame_number,
127 unsigned char **output_rows,
128 int in_x,
129 int in_y,
130 int in_w,
131 int in_h,
132 int out_w,
133 int out_h,
134 int color_model);
135int mpeg3video_set_cpus(mpeg3video_t *video, int cpus);
136int mpeg3video_set_mmx(mpeg3video_t *video, int use_mmx);
137int mpeg3video_seek(mpeg3video_t *video);
138int mpeg3video_seek_frame(mpeg3video_t *video, long frame);
139int mpeg3video_seek_percentage(mpeg3video_t *video, double percentage);
140int mpeg3video_previous_frame(mpeg3video_t *video);
141int mpeg3video_drop_frames(mpeg3video_t *video, long frames);
142int mpeg3video_read_yuvframe(mpeg3video_t *video,
143 long frame_number,
144 char *y_output,
145 char *u_output,
146 char *v_output,
147 int in_x,
148 int in_y,
149 int in_w,
150 int in_h);
151int mpeg3video_read_raw(mpeg3video_t *video, unsigned char *output, long *size, long max_size);
152int mpeg3video_display_second_field(mpeg3video_t *video);
153int mpeg3video_init_output();
154int mpeg3video_get_header(mpeg3video_t *video, int dont_repeat);
155int mpeg3video_getpicture(mpeg3video_t *video, int framenum);
156int mpeg3video_match_refframes(mpeg3video_t *video);
157int mpeg3video_next_code(mpeg3_bits_t* stream, unsigned int code);
158int mpeg3video_prev_code(mpeg3_bits_t* stream, unsigned int code);
159int mpeg3video_getgophdr(mpeg3video_t *video);
160int mpeg3video_present_frame(mpeg3video_t *video);
161int mpeg3video_read_frame_backend(mpeg3video_t *video, int skip_bframes);
162int mpeg3video_getslicehdr(mpeg3_slice_t *slice, mpeg3video_t *video);
163int mpeg3video_get_macroblock_address(mpeg3_slice_t *slice);
164int mpeg3video_macroblock_modes(mpeg3_slice_t *slice,
165 mpeg3video_t *video,
166 int *pmb_type,
167 int *pstwtype,
168 int *pstwclass,
169 int *pmotion_type,
170 int *pmv_count,
171 int *pmv_format,
172 int *pdmv,
173 int *pmvscale,
174 int *pdct_type);
175int mpeg3video_motion_vectors(mpeg3_slice_t *slice,
176 mpeg3video_t *video,
177 int PMV[2][2][2],
178 int dmvector[2],
179 int mv_field_sel[2][2],
180 int s,
181 int mv_count,
182 int mv_format,
183 int h_r_size,
184 int v_r_size,
185 int dmv,
186 int mvscale);
187void mpeg3video_motion_vector(mpeg3_slice_t *slice,
188 mpeg3video_t *video,
189 int *PMV,
190 int *dmvector,
191 int h_r_size,
192 int v_r_size,
193 int dmv,
194 int mvscale,
195 int full_pel_vector);
196int mpeg3video_get_cbp(mpeg3_slice_t *slice);
197int mpeg3video_clearblock(mpeg3_slice_t *slice, int comp, int size);
198int mpeg3video_getmpg2intrablock(mpeg3_slice_t *slice,
199 mpeg3video_t *video,
200 int comp,
201 int dc_dct_pred[]);
202int mpeg3video_getintrablock(mpeg3_slice_t *slice,
203 mpeg3video_t *video,
204 int comp,
205 int dc_dct_pred[]);
206int mpeg3video_getmpg2interblock(mpeg3_slice_t *slice,
207 mpeg3video_t *video,
208 int comp);
209int mpeg3video_getinterblock(mpeg3_slice_t *slice,
210 mpeg3video_t *video,
211 int comp);
212int mpeg3video_reconstruct(mpeg3video_t *video,
213 int bx,
214 int by,
215 int mb_type,
216 int motion_type,
217 int PMV[2][2][2],
218 int mv_field_sel[2][2],
219 int dmvector[2],
220 int stwtype);
221void mpeg3video_calc_dmv(mpeg3video_t *video,
222 int DMV[][2],
223 int *dmvector,
224 int mvx,
225 int mvy);
226
227
228/* FILESYSTEM */
229
230mpeg3_fs_t* mpeg3_new_fs(char *path);
231int mpeg3_delete_fs(mpeg3_fs_t *fs);
232int mpeg3io_open_file(mpeg3_fs_t *fs);
233int mpeg3io_close_file(mpeg3_fs_t *fs);
234int mpeg3io_read_data(unsigned char *buffer, long bytes, mpeg3_fs_t *fs);
235
236/* BITSTREAM */
237mpeg3_bits_t* mpeg3bits_new_stream(mpeg3_t *file, mpeg3_demuxer_t *demuxer);
238unsigned int mpeg3bits_getbits(mpeg3_bits_t* stream, int n);
239int mpeg3bits_read_buffer(mpeg3_bits_t* stream, unsigned char *buffer, int bytes);
240int mpeg3bits_use_ptr(mpeg3_bits_t* stream, unsigned char *buffer);
241int mpeg3bits_use_demuxer(mpeg3_bits_t* stream);
242int mpeg3bits_refill(mpeg3_bits_t* stream);
243int mpeg3bits_getbitoffset(mpeg3_bits_t *stream);
244void mpeg3bits_start_reverse(mpeg3_bits_t* stream);
245void mpeg3bits_start_forward(mpeg3_bits_t* stream);
246int mpeg3bits_delete_stream(mpeg3_bits_t* stream);
247int mpeg3bits_byte_align(mpeg3_bits_t *stream);
248int mpeg3bits_seek_start(mpeg3_bits_t* stream);
249int mpeg3bits_seek_time(mpeg3_bits_t* stream, double time_position);
250int mpeg3bits_seek_byte(mpeg3_bits_t* stream, long position);
251int mpeg3bits_seek_percentage(mpeg3_bits_t* stream, double percentage);
252unsigned int mpeg3bits_next_startcode(mpeg3_bits_t* stream);
253int mpeg3bits_seek_end(mpeg3_bits_t* stream);
254
255/* MISC */
256int mpeg3_read_toc(mpeg3_t *file);
257int mpeg3_generate_toc(FILE *output, char *path, int timecode_search, int print_streams);
258int mpeg3_mmx_test();
259int mpeg3io_seek(mpeg3_fs_t *fs, long byte);
260int mpeg3io_seek_relative(mpeg3_fs_t *fs, long bytes);
261int mpeg3io_device(char *path, char *device);
262int mpeg3_decrypt_packet(mpeg3_css_t *css, unsigned char *sector);
263int mpeg3_delete_css(mpeg3_css_t *css);
264int mpeg3_get_keys(mpeg3_css_t *css, char *path);
265int mpeg3_copy_fs(mpeg3_fs_t *dst, mpeg3_fs_t *src);
266int mpeg3_min(int x, int y);
267int mpeg3_max(int x, int y);
268int mpeg3_new_slice_buffer(mpeg3_slice_buffer_t *slice_buffer);
269int mpeg3_expand_slice_buffer(mpeg3_slice_buffer_t *slice_buffer);
270int mpeg3_delete_slice_decoder(mpeg3_slice_t *slice);
271int mpeg3_new_slice_decoder(mpeg3video_t *video, mpeg3_slice_t *slice);
272int mpeg3_delete_slice_buffer(mpeg3_slice_buffer_t *slice_buffer);
273
274#if defined(__cplusplus)
275}
276#endif
277
278#endif