- /* Thread properties and lock */
- boolean_t b_die; /* `die' flag */
- boolean_t b_error; /* `error' flag */
- boolean_t b_active; /* `active' flag */
- vlc_thread_t thread_id; /* id for pthread functions */
- vlc_mutex_t picture_lock; /* picture heap lock */
- vlc_mutex_t subpicture_lock; /* subpicture heap lock */
- vlc_mutex_t change_lock; /* thread change lock */
- int * pi_status; /* temporary status flag */
- p_vout_sys_t p_sys; /* system output method */
- vdec_DecodeMacroblock_t *
- vdec_DecodeMacroblock; /* decoder function to use */
-
- /* Current display properties */
- u16 i_changes; /* changes made to the thread */
- int i_width; /* current output method width */
- int i_height; /* current output method height */
- int i_bytes_per_line; /* bytes per line (incl. virtual) */
- int i_screen_depth; /* significant bpp: 8, 15, 16 or 24 */
- int i_bytes_per_pixel;/* real screen depth: 1, 2, 3 or 4 */
- float f_gamma; /* gamma */
-
- /* Color masks and shifts in RGB mode - masks are set by system
- * initialization, shifts are calculated. A pixel color value can be
- * obtained using the formula ((value >> rshift) << lshift) */
- u32 i_red_mask; /* red mask */
- u32 i_green_mask; /* green mask */
- u32 i_blue_mask; /* blue mask */
- int i_red_lshift, i_red_rshift; /* red shifts */
- int i_green_lshift, i_green_rshift; /* green shifts */
- int i_blue_lshift, i_blue_rshift; /* blue shifts */
-
- /* Useful pre-calculated pixel values - these are not supposed to be
- * accurate values, but rather values looking nice, given their usage. */
- u32 i_white_pixel; /* white */
- u32 i_black_pixel; /* black */
- u32 i_gray_pixel; /* gray */
- u32 i_blue_pixel; /* blue */
-
- /* Plugins */
- vout_sys_create_t * p_sys_create; /* allocate output method */
- vout_sys_init_t * p_sys_init; /* initialize output method */
- vout_sys_end_t * p_sys_end; /* terminate output method */
- vout_sys_destroy_t * p_sys_destroy; /* destroy output method */
- vout_sys_manage_t * p_sys_manage; /* handle events */
- vout_sys_display_t * p_sys_display; /* display rendered image */
-
- vout_set_palette_t * p_set_palette; /* set 8bpp palette */
-
- yuv_sys_init_t * p_yuv_init; /* initialize YUV tables */
- yuv_sys_reset_t * p_yuv_reset; /* reset YUV tables */
- yuv_sys_end_t * p_yuv_end; /* free YUV tables */
-
- /* Pictures and rendering properties */
- boolean_t b_grayscale; /* color or grayscale display */
- boolean_t b_info; /* print additional information */
- boolean_t b_interface; /* render interface */
- boolean_t b_scale; /* allow picture scaling */
- mtime_t render_time; /* last picture render time */
-
- /* Idle screens management */
- mtime_t last_display_date; /* last non idle display date */
- mtime_t last_idle_date; /* last idle display date */
- mtime_t init_display_date;
-
- /* Statistics - these numbers are not supposed to be accurate, but are a
+ VLC_COMMON_MEMBERS
+
+ /** \name Thread properties and locks */
+ /**@{*/
+ vlc_mutex_t picture_lock; /**< picture heap lock */
+ vlc_mutex_t subpicture_lock; /**< subpicture heap lock */
+ vlc_mutex_t change_lock; /**< thread change lock */
+ vout_sys_t * p_sys; /**< system output method */
+ /**@}*/
+
+ /** \name Current display properties */
+ /**@{*/
+ uint16_t i_changes; /**< changes made to the thread.
+ \see \ref vout_changes */
+ 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 */
+ 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 */
+
+ intf_thread_t *p_parent_intf; /**< parent interface for embedded
+ vout (if any) */
+ /**@}*/
+
+ /** \name Plugin used and shortcuts to access its capabilities */
+ /**@{*/
+ module_t * p_module;
+ int ( *pf_init ) ( vout_thread_t * );
+ void ( *pf_end ) ( 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 * );
+ void ( *pf_swap ) ( vout_thread_t * ); /* OpenGL only */
+ int ( *pf_lock ) ( vout_thread_t * ); /* OpenGL only */
+ void ( *pf_unlock ) ( vout_thread_t * ); /* OpenGL only */
+ int ( *pf_control ) ( vout_thread_t *, int, va_list );
+ /**@}*/
+
+ /** \name Statistics
+ * These numbers are not supposed to be accurate, but are a