[FFmpeg-devel] port mplayer eq filter to libavfilter

Stefano Sabatini stefano.sabatini-lala
Wed Dec 8 16:01:34 CET 2010


On date Wednesday 2010-12-08 07:16:40 -0500, Ronald S. Bultje encoded:
> Hi,
> 
> On Tue, Dec 7, 2010 at 2:01 PM, Stefano Sabatini
> <stefano.sabatini-lala at poste.it> wrote:
> > On date Tuesday 2010-12-07 10:00:26 +0800, William Yu encoded:
> >> 2010/12/4 Michael Niedermayer <michaelni at gmx.at>:
> >> > On Fri, Dec 03, 2010 at 02:47:58AM +0100, Michael Niedermayer wrote:
> >> > [...]
> >> >>
> >> >> > +
> >> >> > + ? ?__asm__ volatile (
> >> >> > + ? ? ? ?"movd %3, %%mm3 \n\t"
> >> >> > + ? ? ? ?"movd %4, %%mm4 \n\t"
> >> >> > + ? ? ? ?"punpcklwd %%mm3, %%mm3 \n\t"
> >> >> > + ? ? ? ?"punpcklwd %%mm4, %%mm4 \n\t"
> >> >> > + ? ? ? ?"punpckldq %%mm3, %%mm3 \n\t"
> >> >> > + ? ? ? ?"punpckldq %%mm4, %%mm4 \n\t"
> >> >> > + ? ? ? ?"1: \n\t"
> >> >> > + ? ? ? ?"pxor %%mm0, %%mm0 \n\t"
> >> >> > + ? ? ? ?"mov %2, %%"REG_c" \n\t"
> >> >> > + ? ? ? ?"sar $3, %%"REG_c" \n\t"
> >> >> > + ? ? ? ?"2: \n\t"
> >> >> > + ? ? ? ?"movq (%0), %%mm1 \n\t"
> >> >>
> >> >> > + ? ? ? ?"movq %%mm1, %%mm2 \n\t"
> >> >>
> >> >> have you benchmarked changeing this one from mplayer?
> >> >
> >> > note, you can trivially benchmark code by putting START/STOP_TIMER around
> >> > code that you want to benchmark
> >> >
> >>
> >> Thanks for your help. I optimizing it.
> >> Should i revert assembly code to original mplayer code
> >> before i can finding out a better way?
> >
> > Absolutely.
> >
> > Please try to change the code as little as you can, this is a *port*,
> > further optimizations can be done later (that also means less work for
> > you and for the reviewers).
> 
> NO!

No need for screaming.
 
> Most of my suggested changes clearly make it faster and better. Anyone
> can confirm that without needing to time it. We don't accept broken
> ports, but likewise we should not expect broken mplayer code. Being in
> mplayer in no way guarantees being perfect.
> 
> Please keep the changes, except for that one line pointed out by
> Michael because that one should potentially be checked.
> 
> (The problem I see here is tons of broken ports going into our broken
> SVN, and then people that complain about brokenness - like me or Mans
> in the past - will be expected to fix it. Or worse, it just won't
> happen, and ffmpeg will become as broken as mplayer is today.)

Broken ported code should be fixed before integratio, but optims
should IMO go in separate commits, this will achieve two objectives:

* it is easy to compare and track the changes between the original
  code and the ported one
* less work for the porter and for the reviewers, if he's interested
  he can do further optimization changes later.

I don't think it is a good idea to require more and more to the
contributor, this usually ends up with the contributor giving up and
with no integrated code at all (and waste of time of both the
contributor and the reviewers).
-- 
FFmpeg = Fast and Free Majestic Peaceless Egregious Geisha



More information about the ffmpeg-devel mailing list