[FFmpeg-devel] [PATCH] lavfi: port MP swapuv filter

Michael Niedermayer michaelni at gmx.at
Fri Mar 9 18:03:43 CET 2012


On Fri, Mar 09, 2012 at 05:02:51PM +0100, Stefano Sabatini wrote:
> On date Thursday 2012-03-08 17:11:51 +0100, Michael Niedermayer encoded:
> > On Thu, Mar 08, 2012 at 04:33:09PM +0100, Stefano Sabatini wrote:
> > > ---
> > >  doc/filters.texi         |    3 +
> > >  libavfilter/Makefile     |    1 +
> > >  libavfilter/allfilters.c |    1 +
> > >  libavfilter/vf_swapuv.c  |   97 ++++++++++++++++++++++++++++++++++++++++++++++
> > >  4 files changed, 102 insertions(+), 0 deletions(-)
> > >  create mode 100644 libavfilter/vf_swapuv.c
> > > 
> > > diff --git a/doc/filters.texi b/doc/filters.texi
> > > index 2c646cb..b32de63 100644
> > > --- a/doc/filters.texi
> > > +++ b/doc/filters.texi
> > > @@ -2631,6 +2631,9 @@ For example:
> > >  will create two separate outputs from the same input, one cropped and
> > >  one padded.
> > >  
> > > + at section swapuv
> > > +Swap U & V plane.
> > > +
> > >  @section thumbnail
> > >  Select the most representative frame in a given sequence of consecutive frames.
> > >  
> > > diff --git a/libavfilter/Makefile b/libavfilter/Makefile
> > > index df3a27f..3bdb189 100644
> > > --- a/libavfilter/Makefile
> > > +++ b/libavfilter/Makefile
> > > @@ -87,6 +87,7 @@ OBJS-$(CONFIG_SETTB_FILTER)                  += vf_settb.o
> > >  OBJS-$(CONFIG_SHOWINFO_FILTER)               += vf_showinfo.o
> > >  OBJS-$(CONFIG_SLICIFY_FILTER)                += vf_slicify.o
> > >  OBJS-$(CONFIG_SPLIT_FILTER)                  += vf_split.o
> > > +OBJS-$(CONFIG_SWAPUV_FILTER)                 += vf_swapuv.o
> > >  OBJS-$(CONFIG_THUMBNAIL_FILTER)              += vf_thumbnail.o
> > >  OBJS-$(CONFIG_TINTERLACE_FILTER)             += vf_tinterlace.o
> > >  OBJS-$(CONFIG_TRANSPOSE_FILTER)              += vf_transpose.o
> > > diff --git a/libavfilter/allfilters.c b/libavfilter/allfilters.c
> > > index f6230be..f0a7f8b 100644
> > > --- a/libavfilter/allfilters.c
> > > +++ b/libavfilter/allfilters.c
> > > @@ -95,6 +95,7 @@ void avfilter_register_all(void)
> > >      REGISTER_FILTER (SHOWINFO,    showinfo,    vf);
> > >      REGISTER_FILTER (SLICIFY,     slicify,     vf);
> > >      REGISTER_FILTER (SPLIT,       split,       vf);
> > > +    REGISTER_FILTER (SWAPUV,      swapuv,      vf);
> > >      REGISTER_FILTER (THUMBNAIL,   thumbnail,   vf);
> > >      REGISTER_FILTER (TINTERLACE,  tinterlace,  vf);
> > >      REGISTER_FILTER (TRANSPOSE,   transpose,   vf);
> > > diff --git a/libavfilter/vf_swapuv.c b/libavfilter/vf_swapuv.c
> > > new file mode 100644
> > > index 0000000..cdd4702
> > > --- /dev/null
> > > +++ b/libavfilter/vf_swapuv.c
> > > @@ -0,0 +1,97 @@
> > > +/*
> > > + * Copyright (c) 2002 Michael Niedermayer <michaelni at gmx.at>
> > > + *
> > > + * This file is part of FFmpeg.
> > > + *
> > > + * FFmpeg is free software; you can redistribute it and/or
> > > + * modify it under the terms of the GNU Lesser General Public
> > > + * License as published by the Free Software Foundation; either
> > > + * version 2.1 of the License, or (at your option) any later version.
> > > + *
> > > + * FFmpeg 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
> > > + * Lesser General Public License for more details.
> > > + *
> > > + * You should have received a copy of the GNU Lesser General Public
> > > + * License along with FFmpeg; if not, write to the Free Software
> > > + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
> > > + */
> > > +
> > > +/**
> > > + * @file
> > > + * swap UV filter
> > > + */
> > > +
> > > +#include "avfilter.h"
> > > +
> > > +static AVFilterBufferRef *get_video_buffer(AVFilterLink *link, int perms,
> > > +                                           int w, int h)
> > > +{
> > > +    AVFilterBufferRef *picref =
> > > +        avfilter_default_get_video_buffer(link, perms, w, h);
> > > +    uint8_t *tmp;
> > > +    int tmp2;
> > > +
> > > +    picref->data[0] = picref->data[0];
> > > +    tmp = picref->data[2]; picref->data[2] = picref->data[1]; picref->data[1] = tmp;
> > 
> > > +    picref->data[3] = picref->data[3];
> > > +
> > > +    picref->linesize[0] = picref->linesize[0];
> > 
> > these 2 and a few others look unneeded
> 
> Allright.
> Note also that I'm relicensing it to LGPL if you're fine with it.

teh codes quite trivial so sure, as far as its code copyrighted by me
ive not checked if iam the only copyright holder ...


> 
> BTW, is OK to nuke the swapuv filter from libavfilter/libmpcodecs?

ok

and the patch should be ok if tested

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

In fact, the RIAA has been known to suggest that students drop out
of college or go to community college in order to be able to afford
settlements. -- The RIAA
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20120309/751baccd/attachment.asc>


More information about the ffmpeg-devel mailing list