[MPlayer-dev-eng] removing libmpcodecs/vf_yuy2.c

Reinhard Tartler siretart at tauware.de
Thu May 13 20:06:03 CEST 2010


Hi,

Attila and I are thinking about what needs to be done to get started on
a potential rc4 release. The first task is to get mplayer compiled
against ffmpeg-0.6 with shared libraries. This currently fails because
parts of mplayer use symbols of libswscale that are *not* part of the
public API. First step is this linker error:

vf_yuy2.c:(.text+0x115): undefined reference to `yv12toyuy2'
vf_yuy2.c:(.text+0x180): undefined reference to `yuv422ptoyuy2'
collect2: ld returned 1 exit status


We have looked at libmpcodecs/vf_yuy2.c, and found that it is rather
redundant and is effectively replaced by -vf format=yuv2. We therefore
propose to remove that file.

patch follows:

Reinhard & Attila

Index: Makefile
===================================================================
--- Makefile	(revision 31095)
+++ Makefile	(working copy)
@@ -473,7 +473,6 @@
               libmpcodecs/vf_vo.c \
               libmpcodecs/vf_yadif.c \
               libmpcodecs/vf_yuvcsp.c \
-              libmpcodecs/vf_yuy2.c \
               libmpcodecs/vf_yvu9.c \
               libmpdemux/aac_hdr.c \
               libmpdemux/asfheader.c \
Index: DOCS/man/en/mplayer.1
===================================================================
--- DOCS/man/en/mplayer.1	(revision 31095)
+++ DOCS/man/en/mplayer.1	(working copy)
@@ -4176,11 +4176,11 @@
 .PD 1
 .
 .TP
-.B s3fb (Linux only) (also see \-vf yuv2 and \-dr)
+.B s3fb (Linux only) (also see \-dr)
 S3 Virge specific video output driver.
 This driver supports the card's YUV conversion and scaling, double
 buffering and direct rendering features.
-Use \-vf yuy2 to get hardware-accelerated YUY2 rendering, which is
+Use \-vf format=yuy2 to get hardware-accelerated YUY2 rendering, which is
 much faster than YV12 on this card.
 .PD 0
 .RSs
@@ -6071,11 +6071,6 @@
 .RE
 .
 .TP
-.B "yuy2\ \ \ "
-Forces software YV12/\:I420/\:422P to YUY2 conversion.
-Useful for video cards/\:drivers with slow YV12 but fast YUY2 support.
-.
-.TP
 .B "yvu9\ \ \ "
 Forces software YVU9 to YV12 colorspace conversion.
 Deprecated in favor of the software scaler.
Index: libmpcodecs/vf_yuy2.c
===================================================================
--- libmpcodecs/vf_yuy2.c	(revision 31095)
+++ libmpcodecs/vf_yuy2.c	(working copy)
@@ -1,100 +0,0 @@
-/*
- * This file is part of MPlayer.
- *
- * MPlayer is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * MPlayer is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with MPlayer; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <inttypes.h>
-
-#include "config.h"
-#include "mp_msg.h"
-#include "help_mp.h"
-
-#include "img_format.h"
-#include "mp_image.h"
-#include "vf.h"
-
-#include "libswscale/rgb2rgb.h"
-#include "vf_scale.h"
-
-//===========================================================================//
-
-static int config(struct vf_instance *vf,
-        int width, int height, int d_width, int d_height,
-	unsigned int flags, unsigned int outfmt){
-
-    sws_rgb2rgb_init(get_sws_cpuflags());
-
-    if(vf_next_query_format(vf,IMGFMT_YUY2)<=0){
-	mp_msg(MSGT_VFILTER, MSGL_WARN, MSGTR_MPCODECS_WarnNextFilterDoesntSupport, "YUY2");
-	return 0;
-    }
-
-    return vf_next_config(vf,width,height,d_width,d_height,flags,IMGFMT_YUY2);
-}
-
-static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){
-    mp_image_t *dmpi;
-
-    // hope we'll get DR buffer:
-    dmpi=vf_get_image(vf->next,IMGFMT_YUY2,
-	MP_IMGTYPE_TEMP, MP_IMGFLAG_ACCEPT_STRIDE,
-	mpi->w, mpi->h);
-
-    if(mpi->imgfmt==IMGFMT_422P)
-    yuv422ptoyuy2(mpi->planes[0],mpi->planes[1],mpi->planes[2], dmpi->planes[0],
-	    mpi->w,mpi->h, mpi->stride[0],mpi->stride[1],dmpi->stride[0]);
-    else
-    yv12toyuy2(mpi->planes[0],mpi->planes[1],mpi->planes[2], dmpi->planes[0],
-	    mpi->w,mpi->h, mpi->stride[0],mpi->stride[1],dmpi->stride[0]);
-
-    vf_clone_mpi_attributes(dmpi, mpi);
-
-    return vf_next_put_image(vf,dmpi, pts);
-}
-
-//===========================================================================//
-
-static int query_format(struct vf_instance *vf, unsigned int fmt){
-    switch(fmt){
-    case IMGFMT_YV12:
-    case IMGFMT_I420:
-    case IMGFMT_IYUV:
-    case IMGFMT_422P:
-	return vf_next_query_format(vf,IMGFMT_YUY2) & (~VFCAP_CSP_SUPPORTED_BY_HW);
-    }
-    return 0;
-}
-
-static int vf_open(vf_instance_t *vf, char *args){
-    vf->config=config;
-    vf->put_image=put_image;
-    vf->query_format=query_format;
-    return 1;
-}
-
-const vf_info_t vf_info_yuy2 = {
-    "fast YV12/Y422p -> YUY2 conversion",
-    "yuy2",
-    "A'rpi",
-    "",
-    vf_open,
-    NULL
-};
-
-//===========================================================================//

-- 
Gruesse/greetings,
Reinhard Tartler, KeyID 945348A4



More information about the MPlayer-dev-eng mailing list