[FFmpeg-devel] [PATCH] AAC: type puns for 16 bit floating point rounding

Diego Biurrun diego
Thu Dec 4 09:24:14 CET 2008


On Thu, Dec 04, 2008 at 01:03:35AM -0500, Alex Converse wrote:
> On Wed, Dec 3, 2008 at 10:13 PM, M?ns Rullg?rd <mans at mansr.com> wrote:
> > "Alex Converse" <alex.converse at gmail.com> writes:
> >
> >> Attached is the remaing patch from the AAC Main series with the
> >> rounding functions rewritten as suggested to do arithmetic in the
> >> integer domain rather than the floating point domain.
> >>
> >> A configure check has been added as suggested but I'm not happy with
> >> it. Any input on this is greatly appreciated.
> >>
> >> --- a/configure
> >> +++ b/configure
> >> @@ -844,6 +844,7 @@ HAVE_LIST="
> >>      gethrtime
> >>      GetProcessTimes
> >>      getrusage
> >> +    ieee754_pun
> >>      imlib2
> >>      inet_aton
> >>      inline_asm
> >> @@ -1800,6 +1801,13 @@ EOF
> >>  od -A n -t x1 $TMPO | grep -q '42 *49 *47 *45' && enable bigendian
> >>
> >>  # ---
> >> +# IEEE float test
> >> +check_cc <<EOF || die "IEEE float test failed"
> >> +float f[3] = {218387568.0f, 218387568.0f, 218387568.0f };
> >> +EOF
> >> +strings $TMPO | grep -E -q 'MPEGMPEGMPEG|GEPMGEPMGEPM' && enable ieee754_pun
> >
> > That test isn't portable.  However, I think it's safe to assume
> > IEEE754 floats.  I doubt anyone will ever run FFmpeg on a VAX, and
> > it's already broken on Cray since we assume two's complement signed
> > integers.
> 
> So what's the preferred behavior here? Should it just be an untested
> configure flag that's on by default? Should all the non-754 code
> remain at all?

I see little point in keeping this code and littering the code with
#ifdef, but others will have to make the final decision...

Diego




More information about the ffmpeg-devel mailing list