/*****************************************************************************
- * vlc_codec.h: codec related structures
+ * vlc_filter.h: filter related structures
*****************************************************************************
- * Copyright (C) 1999-2003 VideoLAN
+ * Copyright (C) 1999-2003 the VideoLAN team
* $Id$
*
* Authors: Gildas Bazin <gbazin@videolan.org>
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
#ifndef _VLC_FILTER_H
#define _VLC_FILTER_H 1
*
* @{
*/
+
+/*
+ * BIG FAT WARNING : the code relies in the first 4 members of filter_t
+ * and decoder_t to be the same, so if you have anything to add, do it
+ * at the end of the structure.
+ */
struct filter_t
{
VLC_COMMON_MEMBERS
/* Module properties */
module_t * p_module;
- filter_sys_t * p_sys;
-
- void ( * pf_video_blend ) ( filter_t *, picture_t *,
- picture_t *, picture_t *,
- int, int );
- picture_t * ( * pf_video_filter ) ( filter_t *, picture_t * );
-
- subpicture_t * ( *pf_render_string ) ( filter_t *, block_t * );
+ filter_sys_t * p_sys;
/* Input format */
es_format_t fmt_in;
/* Output format of filter */
es_format_t fmt_out;
+ /* Filter configuration */
+ sout_cfg_t * p_cfg;
+
+ picture_t * ( * pf_video_filter ) ( filter_t *, picture_t * );
+ block_t * ( * pf_audio_filter ) ( filter_t *, block_t * );
+ void ( * pf_video_blend ) ( filter_t *, picture_t *,
+ picture_t *, picture_t *,
+ int, int, int );
+
+ subpicture_t * ( *pf_sub_filter ) ( filter_t *, mtime_t );
+ int ( *pf_render_text ) ( filter_t *, subpicture_region_t *, subpicture_region_t * );
+
/*
* Buffers allocation
*/
/* Audio output callbacks */
- aout_buffer_t * ( * pf_aout_buffer_new) ( filter_t *, int );
- void ( * pf_aout_buffer_del) ( filter_t *, aout_buffer_t * );
+ block_t * ( * pf_audio_buffer_new) ( filter_t *, int );
/* Video output callbacks */
picture_t * ( * pf_vout_buffer_new) ( filter_t * );
void ( * pf_picture_unlink) ( filter_t *, picture_t * );
/* SPU output callbacks */
- subpicture_t * ( * pf_spu_buffer_new) ( filter_t * );
- void ( * pf_spu_buffer_del) ( filter_t *, subpicture_t * );
+ subpicture_t * ( * pf_sub_buffer_new) ( filter_t * );
+ void ( * pf_sub_buffer_del) ( filter_t *, subpicture_t * );
/* Private structure for the owner of the decoder */
filter_owner_sys_t *p_owner;