Adapted mad codec plugin to new aout3. Not tested yet.`
[vlc.git] / modules / codec / mad / libmad.h
1 /***************************************************************************
2            mad_libmad.h  -  description
3                -------------------
4     begin                : Mon Nov 5 2001
5     copyright            : (C) 2001 by Jean-Paul Saman
6     email                : jpsaman@wxs.nl
7  ***************************************************************************/
8
9 /***************************************************************************
10  *                                                                         *
11  *   This program is free software; you can redistribute it and/or modify  *
12  *   it under the terms of the GNU General Public License as published by  *
13  *   the Free Software Foundation; either version 2 of the License, or     *
14  *   (at your option) any later version.                                   *
15  *                                                                         *
16  ***************************************************************************/
17
18 #ifndef _VLC_MAD_LIBMAD_H_
19 #define _VLC_MAD_LIBMAD_H_
20
21 /*
22  * Function prototypes for libmad callback functions.
23  */
24
25 /*
26  * Each of the following functions will return one of:
27  * MAD_FLOW_CONTINUE = continue normally
28  * MAD_FLOW_STOP     = stop decoding normally
29  * MAD_FLOW_BREAK    = stop decoding and signal an error
30  * MAD_FLOW_IGNORE   = ignore the current frame
31  */
32
33 /* enum mad_flow (*input_func)(void *, struct mad_stream *);*/
34 enum mad_flow libmad_input(void *data, struct mad_stream *p_libmad_stream);
35
36 /* enum mad_flow (*header_func)(void *, struct mad_header const *);*/
37 enum mad_flow libmad_header(void *data, struct mad_header const *p_libmad_header);
38
39 /* enum mad_flow (*filter_func)(void *, struct mad_stream const *, struct mad_frame *); */
40 // enum mad_flow libmad_filter(void *data, struct mad_stream const *p_libmad_stream, struct mad_frame *p_libmad_frame);
41
42 /* enum mad_flow (*output_func)(void *, struct mad_header const *, struct mad_pcm *); */
43 //enum mad_flow libmad_output(void *data, struct mad_header const *p_libmad_header, struct mad_pcm *p_libmad_pcm);
44 enum mad_flow libmad_output3(void *data, struct mad_header const *p_libmad_header, struct mad_pcm *p_libmad_pcm);
45
46 /* enum mad_flow (*error_func)(void *, struct mad_stream *, struct mad_frame *); */
47 enum mad_flow libmad_error(void *data, struct mad_stream *p_libmad_stream, struct mad_frame *p_libmad_frame);
48
49 /* enum mad_flow (*message_func)(void *, void *, unsigned int *); */
50 /* enum mad_flow libmad_message(void *, void*, unsigned int*); */
51
52 #endif