Is SFront deterministic ?

From: John Lazzaro (lazzaro@CS.Berkeley.EDU)
Date: Thu Aug 26 1999 - 12:28:00 EDT


> Is SFront deterministic ?

If you look in each Makefile in the examples, you'll
see the "mp4test" option, which

[1] generates audio from the ASCII/MIDI files
[2] creates an MP4 bitstream
[3] uncompressed the bitstream and creates another audio file
[4] diffs the two audio files

For all the examples, the results are byte-by-byte identical when
compiled on the same machine, as tested on Solaris/cc and egcs/Linux/glibc.

However if audio created in step 1 is compared when the same sa.c is
compiled on two different compiler/OS/library variants, the comparison
may not be exact -- because the "rand"
implementations may be totally different, and so the same seed will
not result in the same stream of random numbers (machines here meaning
OS/compiler/library combinations). For example, RAND_MAX is the
largest 16-bit number on Solaris/cc, but the largest 32-but number
under ecgs/glibc/Linux ...

Since the MP4-SA spec stops way short of specifying computation down
to a bit-accurate level of the final outputs in the general case,
however, its unclear that replacing the system rand() function with
a custom one helps determinism very much -- however, there are other
really good reasons to dump the system rand() in sfront, though, so
it will happen eventually ...

                                                                --jl



This archive was generated by hypermail 2b29 : Wed May 10 2000 - 12:15:29 EDT