* You have to notice that sometime a simple picture_Hold may do what
* you want without the copy overhead.
* Provided for convenience.
+ *
+ * \param p_dst pointer to the destination picture.
+ * \param p_src pointer to the source picture.
*/
static inline void picture_Copy( picture_t *p_dst, const picture_t *p_src )
{
* Prototypes
*****************************************************************************/
-/**
- * Copy the source picture onto the destination picture.
- * \param p_this a vlc object
- * \param p_dst pointer to the destination picture.
- * \param p_src pointer to the source picture.
- */
-#define vout_CopyPicture(a,b,c) __vout_CopyPicture(VLC_OBJECT(a),b,c)
-VLC_EXPORT( void, __vout_CopyPicture, ( vlc_object_t *p_this, picture_t *p_dst, picture_t *p_src ) );
-
/**
* Initialise different fields of a picture_t (but does not allocate memory).
* \param p_this a vlc object
p_sys->i_next = (mtime_t)(p_sys->i_reload + mdate());
}
vlc_mutex_lock( &p_dec->p_sys->lock );
- vout_CopyPicture( p_dec, p_pic, p_dec->p_sys->p_image );
+ picture_Copy( p_pic, p_dec->p_sys->p_image );
vlc_mutex_unlock( &p_dec->p_sys->lock );
p_pic->date = (*pp_block)->i_pts;
free( p_region );
return NULL;
}
- vout_CopyPicture( VLC_OBJECT(p_intf), p_dest, p_region->p_picture );
+ picture_Copy( p_dest, p_region->p_picture );
#else
fmt_out.i_chroma = p_fmt->i_chroma;
p_dest = ConvertImage( p_intf, &p_region->p_picture,
continue;
}
- vout_CopyPicture( p_stream, p_new_pic, p_pic );
+ picture_Copy( p_new_pic, p_pic );
}
p_new_pic->i_refcount = 1;
picture_t *p_tmp = video_new_buffer_decoder( id->p_decoder );
if( p_tmp )
{
- vout_CopyPicture( p_stream, p_tmp, p_pic );
+ picture_Copy( p_tmp, p_pic );
p_pic->pf_release( p_pic );
p_pic = p_tmp;
}
p_pic2 = video_new_buffer_decoder( id->p_decoder );
if( p_pic2 != NULL )
{
- vout_CopyPicture( p_stream, p_pic2, p_pic );
+ picture_Copy( p_pic2, p_pic );
p_pic2->date = i_pts;
}
}
else
{
/* FIXME the copy is probably not needed anymore */
- vout_CopyPicture( p_filter, p_region->p_picture, p_overlay->data.p_pic );
+ picture_Copy( p_region->p_picture, p_overlay->data.p_pic );
}
p_region->i_x = p_overlay->i_x;
p_region->i_y = p_overlay->i_y;
msleep( VOUT_OUTMEM_SLEEP );
}
- vout_CopyPicture( p_vout, p_outpic, p_inpic );
+ picture_Copy( p_outpic, p_inpic );
vout_DatePicture( p_sys->p_vout, p_outpic, p_inpic->date );
if( p_pic )
}
/* FIXME the copy is probably not needed anymore */
- vout_CopyPicture( p_filter, &p_region->p_picture, p_pic );
+ picture_Copy( p_region->p_picture, p_pic );
vlc_mutex_unlock( &p_logo_list->lock );
/* where to locate the logo: */
//This copy is a bit unfortunate but image_Convert can't write into an existing image so it is better to copy the
//(say) 16bit YUV image here than a 32bit RGB image somehwere else.
//It is also not that expensive in time.
- vout_CopyPicture( p_vout, p_outpic, p_pic );
+ picture_Copy( p_outpic, p_pic );
VlcPictureToIplImage( p_vout, p_pic);
//pass the image to the internal opencv filter for processing
if ((p_vout->p_sys->p_opencv) && (p_vout->p_sys->p_opencv->p_module))
p_vout->p_sys->p_opencv->pf_video_filter( p_vout->p_sys->p_opencv, &(p_vout->p_sys->hacked_pic));
//copy the processed image into the output image
if ((p_vout->p_sys->p_proc_image) && (p_vout->p_sys->p_proc_image->p_data))
- vout_CopyPicture( p_vout, p_outpic, p_vout->p_sys->p_proc_image );
+ picture_Copy( p_outpic, p_vout->p_sys->p_proc_image );
}
//calculate duration
}
/* FIXME the copy is probably not needed anymore */
if( p_pic )
- vout_CopyPicture( p_filter, p_region->p_picture, p_pic );
+ picture_Copy( p_region->p_picture, p_pic );
p_region->i_x = 0;
p_region->i_y = 0;
}
/* FIXME the copy is probably not needed anymore */
- vout_CopyPicture( p_filter, p_region->p_picture, p_pic );
+ picture_Copy( p_region->p_picture, p_pic );
p_sys->b_need_update = false;
p_region->i_x = p_sys->i_xoff;
p_region->i_y = p_sys->i_yoff;
/* FIXME the copy is probably not needed anymore */
- vout_CopyPicture( p_filter, p_region->p_picture, p_pic );
+ picture_Copy( p_region->p_picture, p_pic );
p_spu->p_region->p_next = p_region;
}
vout_ChromaCmp
vout_Close
vout_ControlWindow
-__vout_CopyPicture
__vout_Create
vout_CreatePicture
vout_DatePicture
/* Duplicate image */
picture_Release( p_pif ); /* XXX: Better fix must be possible */
p_pif = p_image->p_filter->pf_vout_buffer_new( p_image->p_filter );
- if( p_pif ) vout_CopyPicture( p_image->p_parent, p_pif, p_pic );
+ if( p_pif )
+ picture_Copy( p_pif, p_pic );
}
return p_pif;
if( vout_LockPicture( p_vout, PP_OUTPUTPICTURE[0] ) )
return NULL;
- vout_CopyPicture( p_vout, PP_OUTPUTPICTURE[0], p_pic );
+ picture_Copy( PP_OUTPUTPICTURE[0], p_pic );
spu_RenderSubpictures( p_vout->p_spu,
PP_OUTPUTPICTURE[0], &p_vout->fmt_out,
if( vout_LockPicture( p_vout, PP_OUTPUTPICTURE[0] ) )
return NULL;
- vout_CopyPicture( p_vout, PP_OUTPUTPICTURE[0], p_pic );
+ picture_Copy( PP_OUTPUTPICTURE[0], p_pic );
spu_RenderSubpictures( p_vout->p_spu,
PP_OUTPUTPICTURE[0], &p_vout->fmt_out,
p_subpic, &p_vout->fmt_in );
if( vout_LockPicture( p_vout, &p_vout->p_picture[0] ) )
return NULL;
- vout_CopyPicture( p_vout, &p_vout->p_picture[0], p_tmp_pic );
+ picture_Copy( &p_vout->p_picture[0], p_tmp_pic );
}
else
{
}
}
-/*****************************************************************************
- * vout_CopyPicture: copy a picture to another one
- *****************************************************************************
- * This function takes advantage of the image format, and reduces the
- * number of calls to memcpy() to the minimum. Source and destination
- * images must have same width (hence i_visible_pitch), height, and chroma.
- *****************************************************************************/
-void __vout_CopyPicture( vlc_object_t *p_this,
- picture_t *p_dest, picture_t *p_src )
-{
- VLC_UNUSED(p_this);
- picture_Copy( p_dest, p_src );
-}
-
/*****************************************************************************
*
*****************************************************************************/