Diffstat (limited to 'core/multimedia/opieplayer/libmad/decoder.h') (more/less context) (ignore whitespace changes)
-rw-r--r-- | core/multimedia/opieplayer/libmad/decoder.h | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/core/multimedia/opieplayer/libmad/decoder.h b/core/multimedia/opieplayer/libmad/decoder.h index dbacc1a..f34150d 100644 --- a/core/multimedia/opieplayer/libmad/decoder.h +++ b/core/multimedia/opieplayer/libmad/decoder.h | |||
@@ -1,87 +1,91 @@ | |||
1 | /* | 1 | /* |
2 | * mad - MPEG audio decoder | 2 | * libmad - MPEG audio decoder library |
3 | * Copyright (C) 2000-2001 Robert Leslie | 3 | * Copyright (C) 2000-2001 Robert Leslie |
4 | * | 4 | * |
5 | * This program is free software; you can redistribute it and/or modify | 5 | * This program is free software; you can redistribute it and/or modify |
6 | * it under the terms of the GNU General Public License as published by | 6 | * it under the terms of the GNU General Public License as published by |
7 | * the Free Software Foundation; either version 2 of the License, or | 7 | * the Free Software Foundation; either version 2 of the License, or |
8 | * (at your option) any later version. | 8 | * (at your option) any later version. |
9 | * | 9 | * |
10 | * This program is distributed in the hope that it will be useful, | 10 | * This program is distributed in the hope that it will be useful, |
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
13 | * GNU General Public License for more details. | 13 | * GNU General Public License for more details. |
14 | * | 14 | * |
15 | * You should have received a copy of the GNU General Public License | 15 | * You should have received a copy of the GNU General Public License |
16 | * along with this program; if not, write to the Free Software | 16 | * along with this program; if not, write to the Free Software |
17 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 17 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
18 | * | 18 | * |
19 | * $Id$ | 19 | * $Id$ |
20 | */ | 20 | */ |
21 | 21 | ||
22 | # ifndef LIBMAD_DECODER_H | 22 | # ifndef LIBMAD_DECODER_H |
23 | # define LIBMAD_DECODER_H | 23 | # define LIBMAD_DECODER_H |
24 | 24 | ||
25 | # include "stream.h" | 25 | # include "stream.h" |
26 | # include "frame.h" | 26 | # include "frame.h" |
27 | # include "synth.h" | 27 | # include "synth.h" |
28 | 28 | ||
29 | enum mad_decoder_mode { | 29 | enum mad_decoder_mode { |
30 | MAD_DECODER_MODE_SYNC = 0, | 30 | MAD_DECODER_MODE_SYNC = 0, |
31 | MAD_DECODER_MODE_ASYNC | 31 | MAD_DECODER_MODE_ASYNC |
32 | }; | 32 | }; |
33 | 33 | ||
34 | enum mad_flow { | 34 | enum mad_flow { |
35 | MAD_FLOW_CONTINUE = 0x0000, | 35 | MAD_FLOW_CONTINUE = 0x0000,/* continue normally */ |
36 | MAD_FLOW_STOP = 0x0010, | 36 | MAD_FLOW_STOP = 0x0010,/* stop decoding normally */ |
37 | MAD_FLOW_BREAK = 0x0011, | 37 | MAD_FLOW_BREAK = 0x0011,/* stop decoding and signal an error */ |
38 | MAD_FLOW_IGNORE = 0x0020 | 38 | MAD_FLOW_IGNORE = 0x0020/* ignore the current frame */ |
39 | }; | 39 | }; |
40 | 40 | ||
41 | struct mad_decoder { | 41 | struct mad_decoder { |
42 | enum mad_decoder_mode mode; | 42 | enum mad_decoder_mode mode; |
43 | 43 | ||
44 | int options; | 44 | int options; |
45 | 45 | ||
46 | struct { | 46 | struct { |
47 | long pid; | 47 | long pid; |
48 | int in; | 48 | int in; |
49 | int out; | 49 | int out; |
50 | } async; | 50 | } async; |
51 | 51 | ||
52 | struct { | 52 | struct { |
53 | struct mad_stream stream; | 53 | struct mad_stream stream; |
54 | struct mad_frame frame; | 54 | struct mad_frame frame; |
55 | struct mad_synth synth; | 55 | struct mad_synth synth; |
56 | } *sync; | 56 | } *sync; |
57 | 57 | ||
58 | void *cb_data; | 58 | void *cb_data; |
59 | 59 | ||
60 | enum mad_flow (*input_func)(void *, struct mad_stream *); | 60 | enum mad_flow (*input_func)(void *, struct mad_stream *); |
61 | enum mad_flow (*header_func)(void *, struct mad_header const *); | 61 | enum mad_flow (*header_func)(void *, struct mad_header const *); |
62 | enum mad_flow (*filter_func)(void *, struct mad_frame *); | 62 | enum mad_flow (*filter_func)(void *, |
63 | struct mad_stream const *, struct mad_frame *); | ||
63 | enum mad_flow (*output_func)(void *, | 64 | enum mad_flow (*output_func)(void *, |
64 | struct mad_header const *, struct mad_pcm *); | 65 | struct mad_header const *, struct mad_pcm *); |
65 | enum mad_flow (*error_func)(void *, struct mad_stream *, struct mad_frame *); | 66 | enum mad_flow (*error_func)(void *, struct mad_stream *, struct mad_frame *); |
66 | enum mad_flow (*message_func)(void *, void *, unsigned int *); | 67 | enum mad_flow (*message_func)(void *, void *, unsigned int *); |
67 | }; | 68 | }; |
68 | 69 | ||
69 | void mad_decoder_init(struct mad_decoder *, void *, | 70 | void mad_decoder_init(struct mad_decoder *, void *, |
70 | enum mad_flow (*)(void *, struct mad_stream *), | 71 | enum mad_flow (*)(void *, struct mad_stream *), |
71 | enum mad_flow (*)(void *, struct mad_header const *), | 72 | enum mad_flow (*)(void *, struct mad_header const *), |
72 | enum mad_flow (*)(void *, struct mad_frame *), | 73 | enum mad_flow (*)(void *, |
74 | struct mad_stream const *, | ||
75 | struct mad_frame *), | ||
73 | enum mad_flow (*)(void *, | 76 | enum mad_flow (*)(void *, |
74 | struct mad_header const *, | 77 | struct mad_header const *, |
75 | struct mad_pcm *), | 78 | struct mad_pcm *), |
76 | enum mad_flow (*)(void *, | 79 | enum mad_flow (*)(void *, |
77 | struct mad_stream *, | 80 | struct mad_stream *, |
78 | struct mad_frame *), | 81 | struct mad_frame *), |
79 | enum mad_flow (*)(void *, void *, unsigned int *)); | 82 | enum mad_flow (*)(void *, void *, unsigned int *)); |
80 | int mad_decoder_finish(struct mad_decoder *); | 83 | int mad_decoder_finish(struct mad_decoder *); |
81 | 84 | ||
82 | # define mad_decoder_options(decoder, opts) ((decoder)->options = (opts)) | 85 | # define mad_decoder_options(decoder, opts) \ |
86 | ((void) ((decoder)->options = (opts))) | ||
83 | 87 | ||
84 | int mad_decoder_run(struct mad_decoder *, enum mad_decoder_mode); | 88 | int mad_decoder_run(struct mad_decoder *, enum mad_decoder_mode); |
85 | int mad_decoder_message(struct mad_decoder *, void *, unsigned int *); | 89 | int mad_decoder_message(struct mad_decoder *, void *, unsigned int *); |
86 | 90 | ||
87 | # endif | 91 | # endif |