]> git.sesse.net Git - vlc/blobdiff - include/video_output.h
* Mandatory step for video output IV and the audio output quality
[vlc] / include / video_output.h
index a34bd447e2ef3b5bf69b95056e5e6e6e3f3402be..3923a275ee8dc834216daa1753ee66fb902f21ee 100644 (file)
@@ -5,6 +5,7 @@
  * thread, and destroy a previously oppenned video output thread.
  *****************************************************************************
  * Copyright (C) 1999, 2000 VideoLAN
+ * $Id: video_output.h,v 1.58 2001/05/01 04:18:17 sam Exp $
  *
  * Authors: Vincent Seguin <seguin@via.ecp.fr>
  *
@@ -56,9 +57,9 @@ typedef void (yuv_end_t)            ( p_vout_thread_t p_vout );
 typedef struct vout_yuv_s
 {
     /* conversion functions */
-    vout_yuv_convert_t *        p_Convert420;         /* YUV 4:2:0 converter */
-    vout_yuv_convert_t *        p_Convert422;         /* YUV 4:2:2 converter */
-    vout_yuv_convert_t *        p_Convert444;         /* YUV 4:4:4 converter */
+    vout_yuv_convert_t *pf_yuv420;                    /* YUV 4:2:0 converter */
+    vout_yuv_convert_t *pf_yuv422;                    /* YUV 4:2:2 converter */
+    vout_yuv_convert_t *pf_yuv444;                    /* YUV 4:4:4 converter */
 
     /* Pre-calculated conversion tables */
     void *              p_base;            /* base for all conversion tables */
@@ -105,6 +106,28 @@ typedef struct vout_buffer_s
     byte_t *    p_data;                                    /* memory address */
 } vout_buffer_t;
 
+/*****************************************************************************
+ * vout_fifo_t
+ *****************************************************************************/
+typedef struct vout_fifo_s
+{
+    /* See the fifo types below */
+    int                 i_type;
+    boolean_t           b_die;
+    int                 i_fifo;      /* Just to keep track of the fifo index */
+
+    int                 i_width;
+    int                 i_height;
+
+    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
  *****************************************************************************
@@ -166,6 +189,7 @@ typedef struct vout_thread_s
 
     /* Pictures and rendering properties */
     boolean_t           b_grayscale;           /* color or grayscale display */
+    boolean_t           b_YCbr;            /* use YUV to YCbr instead of RGB */
     boolean_t           b_info;              /* print additional information */
     boolean_t           b_interface;                     /* render interface */
     boolean_t           b_scale;                    /* allow picture scaling */
@@ -234,6 +258,11 @@ typedef struct vout_thread_s
  *****************************************************************************/
 vout_thread_t * vout_CreateThread   ( int *pi_status );
 void            vout_DestroyThread  ( vout_thread_t *p_vout, int *pi_status );
+
+vout_fifo_t *   vout_CreateFifo         ( void );
+void            vout_DestroyFifo        ( vout_fifo_t *p_fifo );
+void            vout_FreeFifo           ( vout_fifo_t *p_fifo );
+
 picture_t *     vout_CreatePicture  ( vout_thread_t *p_vout, int i_type,
                                       int i_width, int i_height );
 void            vout_DestroyPicture ( vout_thread_t *p_vout, picture_t *p_pic );