]> git.sesse.net Git - vlc/blobdiff - include/vlc_filter.h
A bit of vlc/libvlc cleanup:
[vlc] / include / vlc_filter.h
index f032946fd5981cf24cf39adacf439dbbda77d0fa..4e420c24ee524e44c490786a379a110a618a9f2e 100644 (file)
@@ -1,7 +1,7 @@
 /*****************************************************************************
- * 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.
  *****************************************************************************/
+
+#if !defined( __LIBVLC__ )
+  #error You are not libvlc or one of its plugins. You cannot include this file
+#endif
+
 #ifndef _VLC_FILTER_H
 #define _VLC_FILTER_H 1
 
+#include <vlc_es.h>
+
 /**
  * \file
  * This file defines the structure and types used by video and audio filters
 
 typedef struct filter_owner_sys_t filter_owner_sys_t;
 
-/**
- * \defgroup filter Filter
- *
- * The structure describing a filter
- *
- * @{
+/** Structure describing a filter
+ * @warning 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
 {
@@ -51,15 +56,18 @@ struct filter_t
     /* Output format of filter */
     es_format_t         fmt_out;
 
+    /* Filter configuration */
+    config_chain_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 );
-
-    subpicture_t *      ( *pf_subpicture_filter ) ( filter_t * );
+                                                int, int, int );
 
-    subpicture_t *      ( *pf_render_string ) ( filter_t *, block_t * );
+    subpicture_t *      ( *pf_sub_filter ) ( filter_t *, mtime_t );
+    int                 ( *pf_render_text ) ( filter_t *, subpicture_region_t *,
+                                              subpicture_region_t * );
 
     /*
      * Buffers allocation
@@ -75,15 +83,11 @@ struct 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;
 };
 
-/**
- * @}
- */
-
 #endif /* _VLC_FILTER_H */