+
+ int i_rmask, i_gmask, i_bmask; /**< color masks for RGB chroma */
+ int i_rrshift, i_lrshift;
+ int i_rgshift, i_lgshift;
+ int i_rbshift, i_lbshift;
+ video_palette_t *p_palette; /**< video palette from demuxer */
+};
+
+/**
+ * Initialize a video_format_t structure with chroma 'i_chroma'
+ * \param p_src pointer to video_format_t structure
+ * \param i_chroma chroma value to use
+ */
+static inline void video_format_Init( video_format_t *p_src, vlc_fourcc_t i_chroma )
+{
+ memset( p_src, 0, sizeof( video_format_t ) );
+ p_src->i_chroma = i_chroma;
+ p_src->i_sar_num = p_src->i_sar_den = 1;
+ p_src->p_palette = NULL;
+}
+
+/**
+ * Copy video_format_t including the palette
+ * \param p_dst video_format_t to copy to
+ * \param p_src video_format_t to copy from
+ */
+static inline int video_format_Copy( video_format_t *p_dst, video_format_t *p_src )
+{
+ memcpy( p_dst, p_src, sizeof( video_format_t ) );
+ if( p_src->p_palette )
+ {
+ p_dst->p_palette = (video_palette_t *) malloc( sizeof( video_palette_t ) );
+ if( !p_dst->p_palette )
+ return VLC_ENOMEM;
+ memcpy( p_dst->p_palette, p_src->p_palette, sizeof( video_palette_t ) );
+ }
+ return VLC_SUCCESS;