]> git.sesse.net Git - vlc/blobdiff - include/video_output.h
Improved overlay and bitmap support, not tested on nVidia cards.
[vlc] / include / video_output.h
index fb0fdb9969fd2b858f6ba823e9ec2cc6bc4088da..105e13cb47c2b99e24442aa18c17d9867dd7754a 100644 (file)
@@ -2,10 +2,10 @@
  * video_output.h : video output thread
  * This module describes the programming interface for video output threads.
  * It includes functions allowing to open a new thread, send pictures to a
- * thread, and destroy a previously oppenned video output thread.
+ * thread, and destroy a previously opened video output thread.
  *****************************************************************************
  * Copyright (C) 1999, 2000 VideoLAN
- * $Id: video_output.h,v 1.68 2001/12/30 07:09:54 sam Exp $
+ * $Id: video_output.h,v 1.75 2002/04/25 21:52:42 sam Exp $
  *
  * Authors: Vincent Seguin <seguin@via.ecp.fr>
  *
@@ -39,7 +39,7 @@ typedef struct vout_bank_s
 
 } vout_bank_t;
 
-#ifndef PLUGIN
+#ifndef __PLUGIN__
 extern vout_bank_t *p_vout_bank;
 #else
 #   define p_vout_bank (p_symbols->p_vout_bank)
@@ -110,7 +110,7 @@ typedef struct vout_thread_s
     vlc_mutex_t         change_lock;                   /* thread change lock */
     int *               pi_status;                  /* temporary status flag */
     p_vout_sys_t        p_sys;                       /* system output method */
-                                                                   
+
     /* Current display properties */
     u16                 i_changes;             /* changes made to the thread */
     float               f_gamma;                                    /* gamma */
@@ -120,6 +120,8 @@ typedef struct vout_thread_s
     boolean_t           b_scale;                    /* allow picture scaling */
     boolean_t           b_fullscreen;           /* toogle fullscreen display */
     mtime_t             render_time;             /* last picture render time */
+    int                 i_window_width;                /* video window width */
+    int                 i_window_height;              /* video window height */
 
     /* Plugin used and shortcuts to access its capabilities */
     struct module_s *   p_module;
@@ -128,10 +130,10 @@ typedef struct vout_thread_s
     void             ( *pf_end )        ( struct vout_thread_s * );
     void             ( *pf_destroy )    ( struct vout_thread_s * );
     int              ( *pf_manage )     ( struct vout_thread_s * );
+    void             ( *pf_render )     ( struct vout_thread_s *,
+                                          struct picture_s * );
     void             ( *pf_display )    ( struct vout_thread_s *,
                                           struct picture_s * );
-    void             ( *pf_setpalette ) ( struct vout_thread_s *,
-                                          u16 *, u16 *, u16 * );
 
     /* Statistics - these numbers are not supposed to be accurate, but are a
      * good indication of the thread status */
@@ -146,7 +148,7 @@ typedef struct vout_thread_s
     vout_chroma_t       chroma;                        /* translation tables */
 
     /* Picture and subpicture heaps */
-    picture_t           p_picture[VOUT_MAX_PICTURES];            /* pictures */
+    picture_t           p_picture[2*VOUT_MAX_PICTURES];          /* pictures */
     subpicture_t        p_subpicture[VOUT_MAX_PICTURES];      /* subpictures */
 
     /* Bitmap fonts */
@@ -187,20 +189,22 @@ typedef struct vout_thread_s
 /*****************************************************************************
  * Prototypes
  *****************************************************************************/
-#ifndef PLUGIN
+#ifndef __PLUGIN__
 void            vout_InitBank       ( void );
 void            vout_EndBank        ( void );
 
-vout_thread_t * vout_CreateThread   ( int *pi_status, int, int, int, int );
+vout_thread_t * vout_CreateThread   ( int *pi_status, int, int, u32, int );
 void            vout_DestroyThread  ( vout_thread_t *, int *pi_status );
 
 vout_fifo_t *   vout_CreateFifo     ( void );
 void            vout_DestroyFifo    ( vout_fifo_t * );
 void            vout_FreeFifo       ( vout_fifo_t * );
 
+int             vout_ChromaCmp          ( u32, u32 );
+
 picture_t *     vout_CreatePicture  ( vout_thread_t *,
                                       boolean_t, boolean_t, boolean_t );
-void            vout_AllocatePicture( picture_t *, int, int, int );
+void            vout_AllocatePicture( picture_t *, int, int, u32 );
 void            vout_DestroyPicture ( vout_thread_t *, picture_t * );
 void            vout_DisplayPicture ( vout_thread_t *, picture_t * );
 void            vout_DatePicture    ( vout_thread_t *, picture_t *, mtime_t );
@@ -231,5 +235,6 @@ void            vout_RenderSubPictures  ( vout_thread_t *, picture_t *,
 #   define vout_LinkPicture p_symbols->vout_LinkPicture
 #   define vout_UnlinkPicture p_symbols->vout_UnlinkPicture
 #   define vout_PlacePicture p_symbols->vout_PlacePicture
+#   define vout_ChromaCmp p_symbols->vout_ChromaCmp
 #endif