* 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>
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;
/* 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
*****************************************************************************
* is represented by a video output thread, and described using the following
* structure.
*****************************************************************************/
-struct vout_thread_s
+struct vout_thread_t
{
VLC_COMMON_MEMBERS
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 * );
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
#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 * ) );