X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fvideo_output.h;h=ac776338a76fc4e210603f8809095d164c93040f;hb=267cd7f9b7dac986e6d2bc490f778107be95a8fc;hp=52265515919830e6112ed61aa16de004cb4b71a2;hpb=85b29bdc288a1573d43bd524908be5748a9b3640;p=vlc diff --git a/include/video_output.h b/include/video_output.h index 5226551591..ac776338a7 100644 --- a/include/video_output.h +++ b/include/video_output.h @@ -1,7 +1,7 @@ /***************************************************************************** * video_output.h : video output thread ***************************************************************************** - * Copyright (C) 1999, 2000 VideoLAN (Centrale Réseaux) and its contributors + * Copyright (C) 1999, 2000 the VideoLAN team * $Id$ * * Authors: Vincent Seguin @@ -19,7 +19,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ /** @@ -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 * @@ -84,11 +87,12 @@ struct vout_thread_t 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 */ uint32_t render_time; /**< last picture render time */ unsigned int i_window_width; /**< video window width */ unsigned int i_window_height; /**< video window height */ unsigned int i_alignment; /**< video alignment in window */ + unsigned int i_par_num; /**< monitor pixel aspect-ratio */ + unsigned int i_par_den; /**< monitor pixel aspect-ratio */ intf_thread_t *p_parent_intf; /**< parent interface for embedded vout (if any) */ @@ -149,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 */ }; @@ -183,8 +199,12 @@ struct vout_thread_t #define VOUT_DEPTH_CHANGE 0x0400 /** change chroma tables */ #define VOUT_CHROMA_CHANGE 0x0800 +/** cropping parameters changed */ +#define VOUT_CROP_CHANGE 0x1000 +/** aspect ratio changed */ +#define VOUT_ASPECT_CHANGE 0x2000 /** change/recreate picture buffers */ -#define VOUT_PICTURE_BUFFERS_CHANGE 0x1000 +#define VOUT_PICTURE_BUFFERS_CHANGE 0x4000 /**@}*/ /* Alignment flags */ @@ -226,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 ) @@ -249,12 +271,14 @@ static inline int vout_Control( vout_thread_t *p_vout, int i_query, ... ) enum output_query_e { - VOUT_SET_ZOOM, /* arg1= double res= */ + 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= vlc_bool_t res= */ 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= */ }; /**