* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
*
- * 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-1307, USA.
+ * 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.
*****************************************************************************/
/*****************************************************************************
- * vout_yuv_convert_t: YUV convertion function
+ * vout_yuv_convert_t: YUV conversion function
*****************************************************************************
- * This is the prototype common to all convertion functions. The type of p_pic
- * will change depending of the screen depth treated.
+ * This is the prototype common to all conversion functions. The type of p_pic
+ * will change depending on the processed screen depth.
* Parameters:
* p_vout video output thread
* p_pic picture address
int i_matrix_coefficients );
/*****************************************************************************
- * vout_yuv_t: pre-calculated YUV convertion tables
+ * vout_yuv_t: pre-calculated YUV conversion tables
*****************************************************************************
- * These tables are used by convertion and scaling functions.
+ * These tables are used by conversion and scaling functions.
*****************************************************************************/
typedef struct vout_yuv_s
{
- /* Convertion functions */
+ /* conversion functions */
vout_yuv_convert_t * p_Convert420; /* YUV 4:2:0 converter */
vout_yuv_convert_t * p_Convert422; /* YUV 4:2:2 converter */
vout_yuv_convert_t * p_Convert444; /* YUV 4:4:4 converter */
- /* Pre-calculated convertion tables */
+ /* Pre-calculated conversion tables */
void * p_base; /* base for all conversion tables */
union
{
u32 * p_rgb32; /* RGB 32 bits table */
} yuv;
- /* Temporary convertion buffer and offset array */
- void * p_buffer; /* convertion buffer */
+ /* Temporary conversion buffer and offset array */
+ void * p_buffer; /* conversion buffer */
int * p_offset; /* offset array */
} vout_yuv_t;
/*****************************************************************************
* vout_buffer_t: rendering buffer
*****************************************************************************
- * This structure store informations about a buffer. Buffers are not completely
+ * This structure stores information about a buffer. Buffers are not completely
* cleared between displays, and modified areas need to be stored.
*****************************************************************************/
typedef struct vout_buffer_s
{
/* Picture area */
int i_pic_x, i_pic_y; /* picture position */
- int i_pic_width, i_pic_height; /* picture extension */
+ int i_pic_width, i_pic_height; /* picture size */
/* Other areas - only vertical extensions of areas are stored */
int i_areas; /* number of areas */
* structure.
*****************************************************************************/
typedef int (vout_sys_create_t) ( p_vout_thread_t p_vout,
- char *psz_display, int i_root_window );
+ char *psz_display,
+ int i_root_window, void *p_data );
typedef int (vout_sys_init_t) ( p_vout_thread_t p_vout );
typedef void (vout_sys_end_t) ( p_vout_thread_t p_vout );
typedef void (vout_sys_destroy_t) ( p_vout_thread_t p_vout );
typedef int (vout_sys_manage_t) ( p_vout_thread_t p_vout );
typedef void (vout_sys_display_t) ( p_vout_thread_t p_vout );
+
typedef void (vout_set_palette_t) ( p_vout_thread_t p_vout, u16 *red,
u16 *green, u16 *blue, u16 *transp );
+typedef int (yuv_sys_init_t) ( p_vout_thread_t p_vout );
+typedef int (yuv_sys_reset_t) ( p_vout_thread_t p_vout );
+typedef void (yuv_sys_end_t) ( p_vout_thread_t p_vout );
+
typedef struct vout_thread_s
{
/* Thread properties and lock */
u32 i_blue_pixel; /* blue */
/* Plugins */
- void * p_vout_plugin; /* video output plugin */
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; /* sets 8bpp palette */
+
+ 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 additionnal informations */
+ boolean_t b_info; /* print additional information */
boolean_t b_interface; /* render interface */
boolean_t b_scale; /* allow picture scaling */
int i_buffer_index; /* buffer index */
vout_buffer_t p_buffer[2]; /* buffers properties */
- /* Videos heap and translation tables */
+ /* Video heap and translation tables */
picture_t p_picture[VOUT_MAX_PICTURES]; /* pictures */
subpicture_t p_subpicture[VOUT_MAX_PICTURES]; /* subpictures */
int i_pictures; /* current heap size */
p_vout_font_t p_default_font; /* default font */
p_vout_font_t p_large_font; /* large font */
- /* Synchronisation informations - synchro level is updated by the vout
+ /* Synchronization informations - synchro level is updated by the vout
* thread and read by decoder threads */
int i_synchro_level; /* trashing level */
} vout_thread_t;
* Prototypes
*****************************************************************************/
vout_thread_t * vout_CreateThread ( char *psz_display, int i_root_window,
- int i_width, int i_height, int *pi_status, int i_method );
+ int i_width, int i_height, int *pi_status,
+ int i_method, void *p_data );
void vout_DestroyThread ( vout_thread_t *p_vout, int *pi_status );
picture_t * vout_CreatePicture ( vout_thread_t *p_vout, int i_type,
int i_width, int i_height );