[FFmpeg-devel] [PATCH] yadif port to libavfitler

Stefano Sabatini stefano.sabatini-lala
Sat Sep 4 12:45:08 CEST 2010


On date Thursday 2010-06-10 12:34:05 +0200, Michael Niedermayer encoded:
> On Sun, Jun 06, 2010 at 02:28:17PM -0700, Baptiste Coudurier wrote:
> > On 5/25/10 3:31 PM, Michael Niedermayer wrote:
> >> On Mon, May 24, 2010 at 07:16:57PM -0700, Baptiste Coudurier wrote:
> >>> On 05/24/2010 04:18 AM, M?ns Rullg?rd wrote:
> >>>> Michael Niedermayer<michaelni at gmx.at>   writes:
> >>>>
> >>>>> On Sun, May 23, 2010 at 06:03:50PM -0700, Baptiste Coudurier wrote:
> >>>>>> On 5/23/10 4:22 AM, Michael Niedermayer wrote:
> >>>>>>> On Sun, May 23, 2010 at 04:10:57AM -0700, Baptiste Coudurier wrote:
> >>>>> [...]
> >>>>>>>> In short what's required before svn inclusion ?
> >>>>>>>
> >>>>>>> cpuid + matching md5 to mplayer
> >>>>>>> (id also like to see double frame output to work if possible but if
> >>>>>>> thats
> >>>>>>>     a problem we could look into it later)
> >>>>>>
> >>>>>> I'd go for later :)
> >>>>>>
> >>>>>>> and if fast_memcpy isnt ported we need a todo/fixme somewhere so we
> >>>>>>> dont
> >>>>>>> forget it
> >>>>>>
> >>>>>> md5 matches, cpuid is a bit complicated to port since MM_FLAGS are
> >>>>>> defined
> >>>>>> in avcodec.h
> >>>>>
> >>>>> where is the problem with moving them to some header in avutil ?
> >>>>
> >>>> Make that a new header only for cpuid stuff.
> >>>>
> >>>
> >>> All right, first attempt attached.
> >>>
> >>> --
> >>> Baptiste COUDURIER
> >>> Key fingerprint                 8D77134D20CC9220201FC5DB0AC9325C5C1ABAAA
> >>> FFmpeg maintainer                                  http://www.ffmpeg.org
> >>
> >>>   libavcodec/avcodec.h    |    4 +++-
> >>>   libavcodec/dsputil.h    |    6 +-----
> >>>   libavcodec/x86/Makefile |    3 +--
> >>>   libavutil/Makefile      |    2 ++
> >>>   libavutil/cpuid.h       |   44 
> >>> ++++++++++++++++++++++++++++++++++++++++++++
> >>>   libavutil/x86/cpuid.c   |    2 +-
> >>>   6 files changed, 52 insertions(+), 9 deletions(-)
> >>> c75422b037d027c7bdb9c2bbe859bdac4c438304  avutil_mm_support.patch
> >>> Index: libavcodec/avcodec.h
> >>> ===================================================================
> >>> --- libavcodec/avcodec.h	(revision 23288)
> >>> +++ libavcodec/avcodec.h	(working copy)
> >>> @@ -30,7 +30,7 @@
> >>>   #include "libavutil/avutil.h"
> >>>
> >>>   #define LIBAVCODEC_VERSION_MAJOR 52
> >>> -#define LIBAVCODEC_VERSION_MINOR 68
> >>> +#define LIBAVCODEC_VERSION_MINOR 69
> >>>   #define LIBAVCODEC_VERSION_MICRO  3
> >>
> >> micro should be zerod if minor is bumped
> >>
> >> remaining code ok with me
> >
> > All right, updated.
> >
> > yadif updated as well.
> > Issues are named args in asm
> > yadif should be compiled only when gpl is enabled.
> >
> > -- 
> > Baptiste COUDURIER
> > Key fingerprint                 8D77134D20CC9220201FC5DB0AC9325C5C1ABAAA
> > FFmpeg maintainer                                  http://www.ffmpeg.org
> 
> >  libavcodec/avcodec.h    |    6 ++++--
> >  libavcodec/dsputil.h    |    6 +-----
> >  libavcodec/x86/Makefile |    3 +--
> >  libavutil/Makefile      |    2 ++
> >  libavutil/cpuid.h       |   44 ++++++++++++++++++++++++++++++++++++++++++++
> >  5 files changed, 52 insertions(+), 9 deletions(-)
> > 0542f2bb707208ba2f7e9f9701468c5ce6f0a6e5  avutil_mm_support.patch
> > Index: libavutil/Makefile
> > ===================================================================
> > --- libavutil/Makefile	(revision 23501)
> > +++ libavutil/Makefile	(working copy)
> > @@ -51,6 +51,8 @@
> >         tree.o                                                           \
> >         utils.o                                                          \
> >  
> > +OBJS-$(ARCH_X86) += x86/cpuid.o
> > +
> >  TESTPROGS = adler32 aes base64 crc des lls md5 pca sha softfloat tree
> >  TESTPROGS-$(HAVE_LZO1X_999_COMPRESS) += lzo
> >  
> > Index: libavutil/cpuid.h
> > ===================================================================
> > --- libavutil/cpuid.h	(revision 0)
> > +++ libavutil/cpuid.h	(revision 0)
> > @@ -0,0 +1,44 @@
> > +/*
> > + * Copyright (c) 2000, 2001, 2002 Fabrice Bellard
> > + *
> > + * 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
> > + */
> > +
> > +#ifndef AVUTIL_CPUID_H
> > +#define AVUTIL_CPUID_H
> > +
> > +#define FF_MM_FORCE    0x80000000 /* Force usage of selected flags (OR) */
> > +    /* lower 16 bits - CPU features */
> > +#define FF_MM_MMX      0x0001 ///< standard MMX
> > +#define FF_MM_3DNOW    0x0004 ///< AMD 3DNOW
> > +#define FF_MM_MMX2     0x0002 ///< SSE integer functions or AMD MMX ext
> > +#define FF_MM_SSE      0x0008 ///< SSE functions
> > +#define FF_MM_SSE2     0x0010 ///< PIV SSE2 functions
> > +#define FF_MM_3DNOWEXT 0x0020 ///< AMD 3DNowExt
> > +#define FF_MM_SSE3     0x0040 ///< Prescott SSE3 functions
> > +#define FF_MM_SSSE3    0x0080 ///< Conroe SSSE3 functions
> > +#define FF_MM_SSE4     0x0100 ///< Penryn SSE4.1 functions
> > +#define FF_MM_SSE42    0x0200 ///< Nehalem SSE4.2 functions
> > +#define FF_MM_IWMMXT   0x0100 ///< XScale IWMMXT
> > +#define FF_MM_ALTIVEC  0x0001 ///< standard AltiVec
> > +
> > +/* should be defined by architectures supporting
> > +   one or more MultiMedia extension */
> > +int mm_support(void);
> 
> you arent moving mm_support() to libavutil just the declaration from the
> header?
> 
> yadif itself should be ok if tested

Updated against the av_get_cpu_flags() patch.

Still missing documentation (Baptiste feel free to continue to work on
this, I don't even know how did you test it).

Regards.
-- 
FFmpeg = Friendly & Formidable Meaningful Problematic Elfic Gadget



More information about the ffmpeg-devel mailing list