[FFmpeg-devel] [PATCH] make tiny_psnr work with 32-bit audio
Mon Nov 9 00:58:15 CET 2009
On Sun, Nov 08, 2009 at 03:29:47PM -0500, Justin Ruggles wrote:
> Justin Ruggles wrote:
> > Hi,
> > I was trying to do some comparisons with 32-bit audio, but tiny_psnr
> > kept crashing with a float exception. Then I noticed it does not really
> > support 32-bit integer comparisons. The attached patch seems to work.
> > -Justin
> Hmmm... Most of the regression tests fail with this patch because of:
> - psnr= ((2*log16(max<<16) + log16(i) - log16(sse))*284619LL*F +
> (1<<31)) / (1LL<<32);
> + psnr= ((2*log16(max<<16) + log16(i) - log16(sse))*284619LL*F +
> (1LL<<31)) / (1LL<<32);
> Looking at an objdump of tiny_psnr.o, it appears that the compiler is
> treating (1 << 31) as a 32-bit integer (with a negative value), then
> sign extending it to 64-bit. Is that what is meant to happen?
i think your LL addition fixes a rounding bug
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
The real ebay dictionary, page 3
"Rare item" - "Common item with rare defect or maybe just a lie"
"Professional" - "'Toy' made in china, not functional except as doorstop"
"Experts will know" - "The seller hopes you are not an expert"
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 189 bytes
Desc: Digital signature
More information about the ffmpeg-devel