[FFmpeg-cvslog] fate/aic: force simple idct

Michael Niedermayer michaelni at gmx.at
Sat Jun 14 17:28:57 CEST 2014


On Sat, Jun 14, 2014 at 01:31:10PM +0000, Carl Eugen Hoyos wrote:
> Michael Niedermayer <git <at> videolan.org> writes:
> 
> > fate/aic: force simple idct
> > 
> > This should ensure all platforms use the same idct
> 
> I would like to suggest to revert this:
> As you know, I am all for hiding bugs from users 
> (by committing hacks around bugs), but hiding 
> user-visible bugs from fate is not a good idea 
> imo;-)

if you dont specify the idct then one will be choosen
automatically,  which will not produce the same output on all platforms
for example armv6 without neon should fail this fate test


> 
> Uncommenting this line in dsputil_ppc.c fixes the 
> issue for me (and unfortunately doesn't break 
> fate):
> c->idct_permutation_type = FF_TRANSPOSE_IDCT_PERM;

unfortunately though it will break decoding mpeg1/2/4, h263 and a
few others on ppc. (untested)

fate forces the simple idct for all these tests so its not vissible
through fate.

The bug you see is caused by ppc setting onle 2 of 3 idct functions
so the idct_permutation_type is either right for 2 (used by most code)
or 1 (used by aic)

you can see this by comparing the code to some other that sets idcts


            if ((avctx->idct_algo == FF_IDCT_AUTO) ||
                (avctx->idct_algo == FF_IDCT_ALTIVEC)) {
                c->idct_put              = ff_idct_put_altivec;
                c->idct_add              = ff_idct_add_altivec;
                c->idct_permutation_type = FF_TRANSPOSE_IDCT_PERM;
            }

vs.
        if (avctx->idct_algo == FF_IDCT_AUTO ||
            avctx->idct_algo == FF_IDCT_SIMPLEARMV6) {
            c->idct_put              = ff_simple_idct_put_armv6;
            c->idct_add              = ff_simple_idct_add_armv6;
            c->idct                  = ff_simple_idct_armv6;
            c->idct_permutation_type = FF_LIBMPEG2_IDCT_PERM;
        }

the later sets c->idct too



[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

The real ebay dictionary, page 1
"Used only once"    - "Some unspecified defect prevented a second use"
"In good condition" - "Can be repaird by experienced expert"
"As is" - "You wouldnt want it even if you were payed for it, if you knew ..."
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-cvslog/attachments/20140614/f519dd51/attachment.asc>


More information about the ffmpeg-cvslog mailing list