]> git.sesse.net Git - vlc/blobdiff - include/video_output.h
* src/video_output/video_output.c, include/video_output.h:
[vlc] / include / video_output.h
index 15e301ec52ffda2632b1d8c55f5fa3350b2b42bb..2d7d100af35fedb734a1e3c089984a7733cfac57 100644 (file)
@@ -5,7 +5,7 @@
  * thread, and destroy a previously opened video output thread.
  *****************************************************************************
  * Copyright (C) 1999, 2000 VideoLAN
- * $Id: video_output.h,v 1.80 2002/07/12 21:57:25 massiot Exp $
+ * $Id: video_output.h,v 1.93 2003/03/24 23:50:46 gbazin Exp $
  *
  * Authors: Vincent Seguin <seguin@via.ecp.fr>
  *          Samuel Hocevar <sam@via.ecp.fr>
@@ -37,7 +37,7 @@
 typedef void (vout_chroma_convert_t)( vout_thread_t *,
                                       picture_t *, picture_t * );
 
-typedef struct vout_chroma_s
+typedef struct vout_chroma_t
 {
     /* conversion functions */
     vout_chroma_convert_t *pf_convert;
@@ -47,30 +47,9 @@ typedef struct vout_chroma_s
 
     /* Plugin used and shortcuts to access its capabilities */
     module_t * p_module;
-    int  ( * pf_init )  ( vout_thread_t * );
-    void ( * pf_end )   ( vout_thread_t * );
 
 } vout_chroma_t;
 
-/*****************************************************************************
- * vout_fifo_t
- *****************************************************************************/
-typedef struct vout_fifo_s
-{
-    /* See the fifo types below */
-    int                 i_type;
-    vlc_bool_t          b_die;
-    int                 i_fifo;      /* Just to keep track of the fifo index */
-
-    vlc_mutex_t         data_lock;
-    vlc_cond_t          data_wait;
-
-} vout_fifo_t;
-
-#define VOUT_EMPTY_FIFO         0
-#define VOUT_YUV_FIFO           1
-#define VOUT_SPU_FIFO           2
-
 /*****************************************************************************
  * vout_thread_t: video output thread descriptor
  *****************************************************************************
@@ -78,7 +57,7 @@ typedef struct vout_fifo_s
  * is represented by a video output thread, and described using the following
  * structure.
  *****************************************************************************/
-struct vout_thread_s
+struct vout_thread_t
 {
     VLC_COMMON_MEMBERS
 
@@ -89,23 +68,22 @@ struct vout_thread_s
     vout_sys_t *        p_sys;                       /* system output method */
 
     /* Current display properties */
-    u16                 i_changes;             /* changes made to the thread */
+    uint16_t            i_changes;             /* changes made to the thread */
     float               f_gamma;                                    /* gamma */
     vlc_bool_t          b_grayscale;           /* color or grayscale display */
     vlc_bool_t          b_info;              /* print additional information */
     vlc_bool_t          b_interface;                     /* render interface */
     vlc_bool_t          b_scale;                    /* allow picture scaling */
     vlc_bool_t          b_fullscreen;           /* toogle fullscreen display */
+    vlc_bool_t          b_override_aspect;         /* aspect ratio overriden */
     mtime_t             render_time;             /* last picture render time */
-    int                 i_window_width;                /* video window width */
-    int                 i_window_height;              /* video window height */
+    unsigned int        i_window_width;                /* video window width */
+    unsigned int        i_window_height;              /* video window height */
 
     /* Plugin used and shortcuts to access its capabilities */
     module_t *   p_module;
-    int       ( *pf_create )     ( vout_thread_t * );
     int       ( *pf_init )       ( vout_thread_t * );
     void      ( *pf_end )        ( vout_thread_t * );
-    void      ( *pf_destroy )    ( vout_thread_t * );
     int       ( *pf_manage )     ( vout_thread_t * );
     void      ( *pf_render )     ( vout_thread_t *, picture_t * );
     void      ( *pf_display )    ( vout_thread_t *, picture_t * );
@@ -136,12 +114,12 @@ struct vout_thread_s
     mtime_t             display_jitter;    /* average deviation from the PTS */
     count_t             c_jitter_samples;  /* number of samples used for the *
                                             * calculation of the jitter      */
-
-    /* Mouse */
-    int                 i_mouse_x, i_mouse_y, i_mouse_button;
+    /* delay created by internal caching */
+    int                 i_pts_delay;
 
     /* Filter chain */
     char *psz_filter_chain;
+    vlc_bool_t b_filter_change;
 };
 
 #define I_OUTPUTPICTURES p_vout->output.i_pictures
@@ -162,36 +140,32 @@ struct vout_thread_s
 #define VOUT_DEPTH_CHANGE       0x0400                      /* depth changed */
 #define VOUT_CHROMA_CHANGE      0x0800               /* change chroma tables */
 
-/* Disabled for thread deadlocks issues --Meuuh */
-//#define VOUT_NODISPLAY_CHANGE   0xff00    /* changes which forbidden display */
-
 #define MAX_JITTER_SAMPLES      20
 
 /*****************************************************************************
  * Prototypes
  *****************************************************************************/
-#define vout_CreateThread(a,b,c,d,e) __vout_CreateThread(CAST_TO_VLC_OBJECT(a),b,c,d,e)
-VLC_EXPORT( vout_thread_t *, __vout_CreateThread,   ( vlc_object_t *, int, int, u32, int ) );
-VLC_EXPORT( void,              vout_DestroyThread,  ( vout_thread_t * ) );
-
-vout_fifo_t *   vout_CreateFifo     ( void );
-void            vout_DestroyFifo    ( vout_fifo_t * );
-void            vout_FreeFifo       ( vout_fifo_t * );
+#define vout_Request(a,b,c,d,e,f) __vout_Request(VLC_OBJECT(a),b,c,d,e,f)
+VLC_EXPORT( vout_thread_t *, __vout_Request,      ( vlc_object_t *, vout_thread_t *, unsigned int, unsigned int, uint32_t, unsigned int ) );
+#define vout_Create(a,b,c,d,e) __vout_Create(VLC_OBJECT(a),b,c,d,e)
+VLC_EXPORT( vout_thread_t *, __vout_Create,       ( vlc_object_t *, unsigned int, unsigned int, uint32_t, unsigned int ) );
+VLC_EXPORT( void,            vout_Destroy,        ( vout_thread_t * ) );
+VLC_EXPORT( int, vout_VarCallback, ( vlc_object_t *, const char *, vlc_value_t, vlc_value_t, void * ) );
 
-VLC_EXPORT( int,             vout_ChromaCmp,      ( u32, u32 ) );
+VLC_EXPORT( int,             vout_ChromaCmp,      ( uint32_t, uint32_t ) );
 
 VLC_EXPORT( picture_t *,     vout_CreatePicture,  ( vout_thread_t *, vlc_bool_t, vlc_bool_t, vlc_bool_t ) );
-VLC_EXPORT( void,            vout_AllocatePicture,( vout_thread_t *, picture_t *, int, int, u32 ) );
+VLC_EXPORT( void,            vout_AllocatePicture,( vout_thread_t *, picture_t *, int, int, uint32_t ) );
 VLC_EXPORT( void,            vout_DestroyPicture, ( vout_thread_t *, picture_t * ) );
 VLC_EXPORT( void,            vout_DisplayPicture, ( vout_thread_t *, picture_t * ) );
 VLC_EXPORT( void,            vout_DatePicture,    ( vout_thread_t *, picture_t *, mtime_t ) );
 VLC_EXPORT( void,            vout_LinkPicture,    ( vout_thread_t *, picture_t * ) );
 VLC_EXPORT( void,            vout_UnlinkPicture,  ( vout_thread_t *, picture_t * ) );
-VLC_EXPORT( void,            vout_PlacePicture,   ( vout_thread_t *, int, int, int *, int *, int *, int * ) );
+VLC_EXPORT( void,            vout_PlacePicture,   ( vout_thread_t *, unsigned int, unsigned int, unsigned int *, unsigned int *, unsigned int *, unsigned int * ) );
 picture_t *     vout_RenderPicture  ( vout_thread_t *, picture_t *,
                                                        subpicture_t * );
 
-VLC_EXPORT( subpicture_t *,  vout_CreateSubPicture,   ( vout_thread_t *, int, int ) );
+VLC_EXPORT( subpicture_t *,  vout_CreateSubPicture,   ( vout_thread_t *, int ) );
 VLC_EXPORT( void,            vout_DestroySubPicture,  ( vout_thread_t *, subpicture_t * ) );
 VLC_EXPORT( void,            vout_DisplaySubPicture,  ( vout_thread_t *, subpicture_t * ) );