Lines Matching refs:mpi
258 static void get_image(struct vf_instance *vf, mp_image_t *mpi){
259 if(mpi->flags&MP_IMGFLAG_PRESERVE) return; // don't change
261 vf->dmpi=ff_vf_get_image(vf->next,mpi->imgfmt,
262 mpi->type, mpi->flags | MP_IMGFLAG_READABLE, mpi->width, mpi->height);
263 mpi->planes[0]=vf->dmpi->planes[0];
264 mpi->stride[0]=vf->dmpi->stride[0];
265 mpi->width=vf->dmpi->width;
266 if(mpi->flags&MP_IMGFLAG_PLANAR){
267 mpi->planes[1]=vf->dmpi->planes[1];
268 mpi->planes[2]=vf->dmpi->planes[2];
269 mpi->stride[1]=vf->dmpi->stride[1];
270 mpi->stride[2]=vf->dmpi->stride[2];
272 mpi->flags|=MP_IMGFLAG_DIRECT;
275 static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){
278 if(!(mpi->flags&MP_IMGFLAG_DIRECT)){
280 dmpi=ff_vf_get_image(vf->next,mpi->imgfmt,
283 mpi->width,mpi->height);
284 ff_vf_clone_mpi_attributes(dmpi, mpi);
289 vf->priv->mpeg2= mpi->qscale_type;
290 if(vf->priv->log2_count || !(mpi->flags&MP_IMGFLAG_DIRECT)){
291 if(mpi->qscale || vf->priv->qp){
292 filter(vf->priv, dmpi->planes, mpi->planes, dmpi->stride, mpi->stride, mpi->w, mpi->h, mpi->qscale, mpi->qstride);
294 memcpy_pic(dmpi->planes[0], mpi->planes[0], mpi->w, mpi->h, dmpi->stride[0], mpi->stride[0]);
295 memcpy_pic(dmpi->planes[1], mpi->planes[1], mpi->w>>mpi->chroma_x_shift, mpi->h>>mpi->chroma_y_shift, dmpi->stride[1], mpi->stride[1]);
296 memcpy_pic(dmpi->planes[2], mpi->planes[2], mpi->w>>mpi->chroma_x_shift, mpi->h>>mpi->chroma_y_shift, dmpi->stride[2], mpi->stride[2]);