]> git.sesse.net Git - vlc/blobdiff - include/video_output.h
- Do not attach libvlc to the global data
[vlc] / include / video_output.h
index 40ff0bd09be361e6d680cfabf248949cba51fb01..ac776338a76fc4e210603f8809095d164c93040f 100644 (file)
@@ -55,6 +55,9 @@ typedef struct vout_chroma_t
 
 } vout_chroma_t;
 
+/** Maximum numbers of video filters2 that can be attached to a vout */
+#define MAX_VFILTERS 10
+
 /**
  * Video output thread descriptor
  *
@@ -150,6 +153,18 @@ struct vout_thread_t
     char *psz_filter_chain;
     vlc_bool_t b_filter_change;
 
+    /* Video filter2 chain
+     * these are handled like in transcode.c
+     * XXX: we might need to merge the two chains (v1 and v2 filters) */
+    char       *psz_vfilters[MAX_VFILTERS];
+    config_chain_t *p_vfilters_cfg[MAX_VFILTERS];
+    int         i_vfilters_cfg;
+
+    filter_t   *pp_vfilters[MAX_VFILTERS];
+    int         i_vfilters;
+
+    vlc_bool_t b_vfilter_change;
+
     /* Misc */
     vlc_bool_t       b_snapshot;     /**< take one snapshot on the next loop */
 };
@@ -231,6 +246,8 @@ 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( void, vout_EnableFilter, ( vout_thread_t *, char *,vlc_bool_t , vlc_bool_t  ) );
+
 
 static inline int vout_vaControl( vout_thread_t *p_vout, int i_query,
                                   va_list args )
@@ -260,7 +277,8 @@ enum output_query_e
     VOUT_REPARENT,
     VOUT_SNAPSHOT,
     VOUT_CLOSE,
-    VOUT_SET_FOCUS         /* arg1= vlc_bool_t       res=    */
+    VOUT_SET_FOCUS,         /* arg1= vlc_bool_t       res=    */
+    VOUT_SET_VIEWPORT       /* arg1= view rect, arg2=clip rect, res= */
 };
 
 /**