]> git.sesse.net Git - vlc/blobdiff - include/vlc_vout.h
Merge branch 'master' of git@git.videolan.org:vlc
[vlc] / include / vlc_vout.h
index 47206d54f6993298ebc37e9495756f9b0ca3dc67..23e98adc4d02b197ebb9cd96890d5b02c33ceffc 100644 (file)
@@ -81,7 +81,6 @@ struct picture_t
     int             i_status;                             /**< picture flags */
     int             i_type;                /**< is picture a direct buffer ? */
     bool            b_slow;                 /**< is picture in slow memory ? */
-    int             i_matrix_coefficients;   /**< in YUV type, encoding type */
     /**@}*/
 
     /** \name Picture management properties
@@ -507,13 +506,14 @@ struct vout_thread_t
     /**@{*/
     uint16_t            i_changes;          /**< changes made to the thread.
                                                       \see \ref vout_changes */
-    bool                b_scale;                  /**< allow picture scaling */
-    bool                b_fullscreen;         /**< toogle fullscreen display */
+    unsigned            b_fullscreen:1;       /**< toogle fullscreen display */
+    unsigned            b_autoscale:1;      /**< auto scaling picture or not */
+    unsigned            b_on_top:1; /**< stay always on top of other windows */
+    int                 i_zoom;               /**< scaling factor if no auto */
     unsigned int        i_window_width;              /**< video window width */
     unsigned int        i_window_height;            /**< video window height */
     unsigned int        i_alignment;          /**< video alignment in window */
 
-    struct vout_window_t *p_window;   /**< window for embedded vout (if any) */
     /**@}*/
 
     /** \name Plugin used and shortcuts to access its capabilities */
@@ -568,12 +568,16 @@ struct vout_thread_t
 #define VOUT_INFO_CHANGE        0x0001
 /** b_interface changed */
 #define VOUT_INTF_CHANGE        0x0004
-/** b_scale changed */
+/** b_autoscale changed */
 #define VOUT_SCALE_CHANGE       0x0008
+/** b_on_top changed */
+#define VOUT_ON_TOP_CHANGE     0x0010
 /** b_cursor changed */
 #define VOUT_CURSOR_CHANGE      0x0020
 /** b_fullscreen changed */
 #define VOUT_FULLSCREEN_CHANGE  0x0040
+/** i_zoom changed */
+#define VOUT_ZOOM_CHANGE        0x0080
 /** size changed */
 #define VOUT_SIZE_CHANGE        0x0200
 /** depth changed */
@@ -598,6 +602,9 @@ struct vout_thread_t
 
 #define MAX_JITTER_SAMPLES      20
 
+/* scaling factor (applied to i_zoom in vout_thread_t) */
+#define ZOOM_FP_FACTOR          1000
+
 /*****************************************************************************
  * Prototypes
  *****************************************************************************/
@@ -668,14 +675,9 @@ VLC_EXPORT( void,            vout_DestroyPicture, ( vout_thread_t *, picture_t *
 VLC_EXPORT( void,            vout_DisplayPicture, ( vout_thread_t *, picture_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 *, unsigned int, unsigned int, unsigned int *, unsigned int *, unsigned int *, unsigned int * ) );
+VLC_EXPORT( void,            vout_PlacePicture,   ( const vout_thread_t *, unsigned int, unsigned int, unsigned int *, unsigned int *, unsigned int *, unsigned int * ) );
 
-VLC_EXPORT( int, vout_vaControlDefault, ( vout_thread_t *, int, va_list ) );
-VLC_EXPORT( void *, vout_RequestWindow, ( vout_thread_t *, int *, int *, unsigned int *, unsigned int * ) );
-VLC_EXPORT( void,   vout_ReleaseWindow, ( vout_thread_t *, void * ) );
-VLC_EXPORT( int, vout_ControlWindow, ( vout_thread_t *, void *, int, va_list ) );
 void vout_IntfInit( vout_thread_t * );
-VLC_EXPORT( int, vout_Snapshot, ( vout_thread_t *p_vout, picture_t *p_pic ) );
 VLC_EXPORT( void, vout_EnableFilter, ( vout_thread_t *, char *,bool , bool  ) );
 
 
@@ -701,13 +703,9 @@ static inline int vout_Control( vout_thread_t *p_vout, int i_query, ... )
 
 enum output_query_e
 {
-    VOUT_GET_SIZE,         /* arg1= unsigned int*, arg2= unsigned int*, res= */
     VOUT_SET_SIZE,         /* arg1= unsigned int, arg2= unsigned int, res= */
     VOUT_SET_STAY_ON_TOP,  /* arg1= bool       res=    */
     VOUT_REPARENT,
-    VOUT_SNAPSHOT,
-    VOUT_CLOSE,
-    VOUT_SET_FOCUS,         /* arg1= bool       res=    */
     VOUT_SET_VIEWPORT,      /* arg1= view rect, arg2=clip rect, res= */
     VOUT_REDRAW_RECT,       /* arg1= area rect, res= */
 };
@@ -719,6 +717,8 @@ typedef struct snapshot_t {
   int i_height;      /* In pixels */
   int i_datasize;    /* In bytes */
   mtime_t date;      /* Presentation time */
+  vlc_cond_t p_condvar;
+  vlc_mutex_t p_mutex;
 } snapshot_t;
 
 /**@}*/