* includes all common video types and constants.
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
- * $Id: video.h,v 1.58 2002/11/11 14:39:11 sam Exp $
+ * $Id: video.h,v 1.62 2003/03/28 17:02:25 gbazin Exp $
*
* Authors: Vincent Seguin <seguin@via.ecp.fr>
*
/* The picture heap we are attached to */
picture_heap_t* p_heap;
+ /* Some vouts require the picture to be locked before it can be modified */
+ int (* pf_lock) ( vout_thread_t *, picture_t * );
+ int (* pf_unlock) ( vout_thread_t *, picture_t * );
+
/* Private data - the video output plugin might want to put stuff here to
* keep track of the picture */
picture_sys_t * p_sys;
/* Picture static properties - those properties are fixed at initialization
* and should NOT be modified */
- int i_width; /* picture width */
- int i_height; /* picture height */
+ unsigned int i_width; /* picture width */
+ unsigned int i_height; /* picture height */
vlc_fourcc_t i_chroma; /* picture chroma */
- int i_aspect; /* aspect ratio */
+ unsigned int i_aspect; /* aspect ratio */
/* Real pictures */
picture_t* pp_picture[VOUT_MAX_PICTURES]; /* pictures */
+ int i_last_used_pic; /* last used pic in heap */
+ vlc_bool_t b_allow_modify_pics;
/* Stuff used for truecolor RGB planes */
int i_rmask, i_rrshift, i_lrshift;
void (* pf_setpalette) ( vout_thread_t *, uint16_t *, uint16_t *, uint16_t * );
};
-/* RGB2PIXEL: assemble RGB components to a pixel value, returns a uint32_t */
-#define RGB2PIXEL( p_vout, i_r, i_g, i_b ) \
- (((((uint32_t)i_r) >> p_vout->output.i_rrshift) \
- << p_vout->output.i_lrshift) \
- | ((((uint32_t)i_g) >> p_vout->output.i_rgshift) \
- << p_vout->output.i_lgshift) \
- | ((((uint32_t)i_b) >> p_vout->output.i_rbshift) \
- << p_vout->output.i_lbshift))
-
/*****************************************************************************
* Flags used to describe the status of a picture
*****************************************************************************/