+{
+ VLC_UNUSED(p_this);
+ picture_Copy( p_dest, p_src );
+}
+
+/*****************************************************************************
+ *
+ *****************************************************************************/
+static void PictureReleaseCallback( picture_t *p_picture )
+{
+ if( --p_picture->i_refcount > 0 )
+ return;
+ picture_Delete( p_picture );
+}
+/*****************************************************************************
+ *
+ *****************************************************************************/
+picture_t *picture_New( vlc_fourcc_t i_chroma, int i_width, int i_height, int i_aspect )
+{
+ picture_t *p_picture = malloc( sizeof(*p_picture) );
+
+ if( !p_picture )
+ return NULL;
+
+ memset( p_picture, 0, sizeof(*p_picture) );
+ if( __vout_AllocatePicture( NULL, p_picture,
+ i_chroma, i_width, i_height, i_aspect ) )
+ {
+ free( p_picture );
+ return NULL;
+ }
+
+ p_picture->i_refcount = 1;
+ p_picture->pf_release = PictureReleaseCallback;
+ p_picture->i_status = RESERVED_PICTURE;
+
+ return p_picture;
+}
+
+/*****************************************************************************
+ *
+ *****************************************************************************/
+void picture_Delete( picture_t *p_picture )
+{
+ assert( p_picture && p_picture->i_refcount == 0 );
+
+ free( p_picture->p_data_orig );
+ free( p_picture->p_sys );
+ free( p_picture );
+}
+
+/*****************************************************************************
+ *
+ *****************************************************************************/
+void picture_CopyPixels( picture_t *p_dst, const picture_t *p_src )