changeset 6860:e575f4ee82f1

- yuv422 disabled (no IMGFMT for _planar_ 422) - direct rendering support (use get_image to allocate the image buffer)
author arpi
date Wed, 31 Jul 2002 20:18:44 +0000
parents ed26b2d781e9
children 79f54159ca15
files libmpcodecs/vf_lavcdeint.c
diffstat 1 files changed, 13 insertions(+), 37 deletions(-) [+]
line wrap: on
line diff
--- a/libmpcodecs/vf_lavcdeint.c	Wed Jul 31 19:50:42 2002 +0000
+++ b/libmpcodecs/vf_lavcdeint.c	Wed Jul 31 20:18:44 2002 +0000
@@ -25,9 +25,6 @@
 
 struct vf_priv_s 
 {
-  AVPicture pic;
-  UINT8     *outbuf;
-  int       outbuf_size;
   int       width, height;
   int       pix_fmt;
 };
@@ -61,6 +58,7 @@
       return PIX_FMT_YUV420P;
       break;
 
+#if 0
       /* 4:2:2 */
     case IMGFMT_UYVY:
     case IMGFMT_UYNV:
@@ -73,6 +71,7 @@
     case IMGFMT_V655:
       return PIX_FMT_YUV422P;
       break;
+#endif
 
       /* Are there any _planar_ YUV 4:4:4 formats? */
 
@@ -102,37 +101,18 @@
   priv->width  = width;
   priv->height = height;
 
-    
-  if(priv->outbuf) 
-    av_free(priv->outbuf);
-
-  priv->outbuf_size = 
-    avpicture_get_size(priv->pix_fmt, priv->width, priv->height);
-
-  priv->outbuf = av_malloc(priv->outbuf_size); 
-  avpicture_fill(&priv->pic, priv->outbuf, priv->pix_fmt, 
-		 priv->width, priv->height);
-  
   return vf_next_config(vf,
 			width, height,
 			d_width, d_height,
 			flags, outfmt);
 }
 
-
-static void
-uninit (struct vf_instance_s *vf)
-{
-  if(vf->priv->outbuf)
-    av_free(vf->priv->outbuf);
-}
-
-
 static void 
 put_image (struct vf_instance_s* vf, mp_image_t *mpi)
 {
   struct vf_priv_s *priv = vf->priv;
   mp_image_t* dmpi;
+  AVPicture pic;
   AVPicture lavc_picture;
   
   lavc_picture.data[0]     = mpi->planes[0];
@@ -142,26 +122,23 @@
   lavc_picture.linesize[1] = mpi->stride[1];
   lavc_picture.linesize[2] = mpi->stride[2];
   
+  dmpi = vf_get_image(vf->next, mpi->imgfmt,
+		      MP_IMGTYPE_TEMP, MP_IMGFLAG_ACCEPT_STRIDE,
+		      priv->width, priv->height);
 
-  dmpi = vf_get_image(vf->next, mpi->imgfmt,
-		      MP_IMGTYPE_EXPORT, 0,
-		      mpi->w, mpi->h);
+  pic.data[0]     = dmpi->planes[0];
+  pic.data[1]     = dmpi->planes[1];
+  pic.data[2]     = dmpi->planes[2];
+  pic.linesize[0] = dmpi->stride[0];
+  pic.linesize[1] = dmpi->stride[1];
+  pic.linesize[2] = dmpi->stride[2];
 
-  
-  if (avpicture_deinterlace(&priv->pic, &lavc_picture, 
+  if (avpicture_deinterlace(&pic, &lavc_picture, 
 			    priv->pix_fmt, priv->width, priv->height) < 0)
     {
       /* This should not happen -- see config() */
       return;
     }
-
-  
-  dmpi->planes[0] = priv->pic.data[0];
-  dmpi->planes[1] = priv->pic.data[1];
-  dmpi->planes[2] = priv->pic.data[2];
-  dmpi->stride[0] = priv->pic.linesize[0];
-  dmpi->stride[1] = priv->pic.linesize[1];
-  dmpi->stride[2] = priv->pic.linesize[2];
   
   vf_next_put_image(vf, dmpi);
 }
@@ -186,7 +163,6 @@
   vf->config       = config;
   vf->put_image    = put_image;
   vf->query_format = query_format;
-  vf->uninit       = uninit;
   vf->priv         = malloc(sizeof(struct vf_priv_s));
   memset(vf->priv,0,sizeof(struct vf_priv_s));