[MPlayer-dev-eng] [PATCH] SSE2 optimizations for libmpeg2

Diego Biurrun diego at biurrun.de
Thu Apr 3 01:48:48 CEST 2008


On Wed, Apr 02, 2008 at 07:18:39PM -0400, Alexander Strange wrote:
> 
> On Apr 2, 2008, at 7:15 PM, Diego Biurrun wrote:
> > On Wed, Apr 02, 2008 at 05:39:57AM -0400, Alexander Strange wrote:
> >>
> >> On Apr 1, 2008, at 2:27 PM, Diego Biurrun wrote:
> >>> On Tue, Mar 11, 2008 at 11:34:44AM +0800, Zuxy Meng wrote:
> >>>>
> >>>> 2008/2/19, Diego Biurrun <diego at biurrun.de>:
> >>>>>
> >>>>> And here is a version without the (apparently ineffectual) motion
> >>>>> compensation bits.
> >>>>
> >>>> Are u going to apply this?
> >>>
> >>> I'm not at all sure. According to Christophe Massiot on libmpeg2-
> >>> devel the output of this IDCT differs from the MMXEXT one even  
> >>> though
> >>> they use the same algorithm. Thus I'm not sure if it will ever be
> >>> acceptable upstream.
> >>>
> >>> There must still be a bug lurking in there.  Maybe you can find it?
> >>
> >> This should be rounder_sse2 (0):
> >> static const int32_t rounder4_128[] ATTR_ALIGN(16) = rounder (0);
> >>
> >> Attached patch fixes that and builds with the last change to  
> >> libmpeg2.
> >
> > You also make the following changes respective to the patch I posted:
> >
> > diff -u libmpeg2/idct_mmx.c libmpeg2/idct_mmx.c
> > --- libmpeg2/idct_mmx.c	(working copy)
> > +++ libmpeg2/idct_mmx.c	(working copy)
> > @@ -869,7 +869,7 @@
> >
> > -static inline void idct (int16_t * const block)
> > +void idct (int16_t * const block)
> > {
> > @@ -902,7 +902,7 @@
> >
> > -static inline void sse2_idct (int16_t * const block)
> > +void sse2_idct (int16_t * const block)
> >
> > Is this on purpose?
> 
> That's accidentally left over from testing it. I only meant to change  
> rounder(0) and the idct init function.

IOW, I should just apply the following change to my patch, right?

-+    static const int32_t rounder4_128[] ATTR_ALIGN(16) = rounder (0);
++    static const int32_t rounder4_128[] ATTR_ALIGN(16) = rounder_sse2 (0);

Or what do you mean by the "idct init function"?

Diego



More information about the MPlayer-dev-eng mailing list