diff options
author | Clément Bœsch <ubitux@gmail.com> | 2012-11-11 23:18:03 +0100 |
---|---|---|
committer | Clément Bœsch <ubitux@gmail.com> | 2012-11-11 23:18:12 +0100 |
commit | 3a7f00810c26f478b31e1c2d99ccb1da49ea02e4 (patch) | |
tree | 07fb5c590e71f9b441320038c08a0561f46887fc /libavfilter | |
parent | 8eecbaf5e40663caf2db4600324741d35c60bc58 (diff) | |
download | ffmpeg-3a7f00810c26f478b31e1c2d99ccb1da49ea02e4.tar.gz |
lavfi: remove mp=geq filter.
Native geq video filter is now available.
Diffstat (limited to 'libavfilter')
-rw-r--r-- | libavfilter/Makefile | 1 | ||||
-rw-r--r-- | libavfilter/libmpcodecs/vf_geq.c | 196 | ||||
-rw-r--r-- | libavfilter/version.h | 2 | ||||
-rw-r--r-- | libavfilter/vf_mp.c | 2 |
4 files changed, 1 insertions, 200 deletions
diff --git a/libavfilter/Makefile b/libavfilter/Makefile index 9eb821dab6..226ddcc946 100644 --- a/libavfilter/Makefile +++ b/libavfilter/Makefile @@ -171,7 +171,6 @@ OBJS-$(CONFIG_MP_FILTER) += libmpcodecs/vf_eq.o OBJS-$(CONFIG_MP_FILTER) += libmpcodecs/vf_fil.o #OBJS-$(CONFIG_MP_FILTER) += libmpcodecs/vf_filmdint.o OBJS-$(CONFIG_MP_FILTER) += libmpcodecs/vf_fspp.o -OBJS-$(CONFIG_MP_FILTER) += libmpcodecs/vf_geq.o OBJS-$(CONFIG_MP_FILTER) += libmpcodecs/vf_harddup.o OBJS-$(CONFIG_MP_FILTER) += libmpcodecs/vf_il.o OBJS-$(CONFIG_MP_FILTER) += libmpcodecs/vf_ilpack.o diff --git a/libavfilter/libmpcodecs/vf_geq.c b/libavfilter/libmpcodecs/vf_geq.c deleted file mode 100644 index 22f29387d5..0000000000 --- a/libavfilter/libmpcodecs/vf_geq.c +++ /dev/null @@ -1,196 +0,0 @@ -/* - * Copyright (C) 2006 Michael Niedermayer <michaelni@gmx.at> - * - * 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 <math.h> -#include <inttypes.h> - -#include "config.h" - -#include "mp_msg.h" - -#include "img_format.h" -#include "mp_image.h" -#include "vf.h" - -#include "libavcodec/avcodec.h" -#include "libavutil/eval.h" - -struct vf_priv_s { - AVExpr * e[3]; - int framenum; - mp_image_t *mpi; -}; - -static int config(struct vf_instance *vf, - int width, int height, int d_width, int d_height, - unsigned int flags, unsigned int outfmt){ - return vf_next_config(vf,width,height,d_width,d_height,flags,outfmt); -} - -static inline double getpix(struct vf_instance *vf, double x, double y, int plane){ - int xi, yi; - mp_image_t *mpi= vf->priv->mpi; - int stride= mpi->stride[plane]; - uint8_t *src= mpi->planes[plane]; - xi=x= FFMIN(FFMAX(x, 0), (mpi->w >> (plane ? mpi->chroma_x_shift : 0))-1); - yi=y= FFMIN(FFMAX(y, 0), (mpi->h >> (plane ? mpi->chroma_y_shift : 0))-1); - - x-=xi; - y-=yi; - - return - (1-y)*((1-x)*src[xi + yi * stride] + x*src[xi + 1 + yi * stride]) - + y *((1-x)*src[xi + (yi+1) * stride] + x*src[xi + 1 + (yi+1) * stride]); -} - -//FIXME cubic interpolate -//FIXME keep the last few frames -static double lum(void *vf, double x, double y){ - return getpix(vf, x, y, 0); -} - -static double cb(void *vf, double x, double y){ - return getpix(vf, x, y, 1); -} - -static double cr(void *vf, double x, double y){ - return getpix(vf, x, y, 2); -} - -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ - mp_image_t *dmpi; - int x,y, plane; - - if(!(mpi->flags&MP_IMGFLAG_DIRECT)){ - // no DR, so get a new image! hope we'll get DR buffer: - vf->dmpi=vf_get_image(vf->next,mpi->imgfmt, MP_IMGTYPE_TEMP, - MP_IMGFLAG_ACCEPT_STRIDE|MP_IMGFLAG_PREFER_ALIGNED_STRIDE, - mpi->w,mpi->h); - } - - dmpi= vf->dmpi; - vf->priv->mpi= mpi; - - vf_clone_mpi_attributes(dmpi, mpi); - - for(plane=0; plane<3; plane++){ - int w= mpi->w >> (plane ? mpi->chroma_x_shift : 0); - int h= mpi->h >> (plane ? mpi->chroma_y_shift : 0); - uint8_t *dst = dmpi->planes[plane]; - int dst_stride= dmpi->stride[plane]; - double const_values[]={ - M_PI, - M_E, - 0, - 0, - w, - h, - vf->priv->framenum, - w/(double)mpi->w, - h/(double)mpi->h, - 0 - }; - if (!vf->priv->e[plane]) continue; - for(y=0; y<h; y++){ - const_values[3]=y; - for(x=0; x<w; x++){ - const_values[2]=x; - dst[x + y * dst_stride] = av_expr_eval(vf->priv->e[plane], - const_values, vf); - } - } - } - - vf->priv->framenum++; - - return vf_next_put_image(vf,dmpi, pts); -} - -static void uninit(struct vf_instance *vf){ - av_free(vf->priv); - vf->priv=NULL; -} - -//===========================================================================// -static int vf_open(vf_instance_t *vf, char *args){ - char eq[3][2000] = { { 0 }, { 0 }, { 0 } }; - int plane, res; - - vf->config=config; - vf->put_image=put_image; -// vf->get_image=get_image; - vf->uninit=uninit; - vf->priv=av_malloc(sizeof(struct vf_priv_s)); - memset(vf->priv, 0, sizeof(struct vf_priv_s)); - - if (args) sscanf(args, "%1999[^:]:%1999[^:]:%1999[^:]", eq[0], eq[1], eq[2]); - - if (!eq[1][0]) strncpy(eq[1], eq[0], sizeof(eq[0])-1); - if (!eq[2][0]) strncpy(eq[2], eq[1], sizeof(eq[0])-1); - - for(plane=0; plane<3; plane++){ - static const char *const_names[]={ - "PI", - "E", - "X", - "Y", - "W", - "H", - "N", - "SW", - "SH", - NULL - }; - static const char *func2_names[]={ - "lum", - "cb", - "cr", - "p", - NULL - }; - double (*func2[])(void *, double, double)={ - lum, - cb, - cr, - plane==0 ? lum : (plane==1 ? cb : cr), - NULL - }; - res = av_expr_parse(&vf->priv->e[plane], eq[plane], const_names, NULL, NULL, func2_names, func2, 0, NULL); - - if (res < 0) { - mp_msg(MSGT_VFILTER, MSGL_ERR, "geq: error loading equation `%s'\n", eq[plane]); - return 0; - } - } - - return 1; -} - -const vf_info_t vf_info_geq = { - "generic equation filter", - "geq", - "Michael Niedermayer", - "", - vf_open, - NULL -}; diff --git a/libavfilter/version.h b/libavfilter/version.h index 5021c8c5eb..87fe669c7c 100644 --- a/libavfilter/version.h +++ b/libavfilter/version.h @@ -30,7 +30,7 @@ #define LIBAVFILTER_VERSION_MAJOR 3 #define LIBAVFILTER_VERSION_MINOR 22 -#define LIBAVFILTER_VERSION_MICRO 100 +#define LIBAVFILTER_VERSION_MICRO 101 #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \ LIBAVFILTER_VERSION_MINOR, \ diff --git a/libavfilter/vf_mp.c b/libavfilter/vf_mp.c index 31410c44b5..8042340a80 100644 --- a/libavfilter/vf_mp.c +++ b/libavfilter/vf_mp.c @@ -142,7 +142,6 @@ extern const vf_info_t vf_info_filmdint; extern const vf_info_t vf_info_flip; extern const vf_info_t vf_info_format; extern const vf_info_t vf_info_fspp; -extern const vf_info_t vf_info_geq; extern const vf_info_t vf_info_halfpack; extern const vf_info_t vf_info_harddup; extern const vf_info_t vf_info_il; @@ -190,7 +189,6 @@ static const vf_info_t* const filters[]={ &vf_info_fil, // &vf_info_filmdint, cmmx.h vd.h ‘opt_screen_size_x’ &vf_info_fspp, - &vf_info_geq, &vf_info_harddup, &vf_info_il, &vf_info_ilpack, |