NOTE: You must edit either the Imakefile or the Makefile to and uncomment out the AUDIO DEFINES and Libraries for your machine type before compiling. -------------------------------------------------------------- What's Supported -------------------------------------------------------------- The following is a list of currently supported audio formats: AVI 8 and 16 bit RAW(PCM) mono/stereo. AVI ADPCM is supported(mono only for now). Quicktime 8 and 16 bit RAW(PCM) mono/stereo. Quicktime 8 and 16 bit TWOS(signed PCM) mono/stereo. Quicktime MAC6 is *NOT* supported. The following is a list of currently supported machines: Sun Sparcs NEC EWS workstations Sony NEWS 5000 series workstations SGI Indigo PC with soundcards running unix/linux/QNX Any machine running AudioFile(AF) Any machine(or Xterminal) running Net Audio (NAS) HP 9000/715 - sort of working - still has problems. IBM AIX S6000 machines with audio. -------------------------------------------------------------- Generic Bug's -------------------------------------------------------------- + JPEG/MPEG codecs, because of their compute intensive nature, cause audio starvation(pops). Solution is to use +b option. Looking into other causes. + Remote Control Window colors not selectable. + HP support pseudo functional. Still needs a lot of work. -------------------------------------------------------------- New(or Fixes) to 2.69.7.8 -------------------------------------------------------------- + fixed bad core dump bug in some audio section. overwriting a buffer. + SGI syncing problem fixed. Audio was block and preventing video from be able to play at speed. + A handful of minor bugs where fixed in the MPEG routines. Two caused corruption and one prevented bottom part of screen from being drawn with certain resolutions. + MPG wasn't properly flushing bits after a new quant scale + MPG if height > bug, was truncating bottom of image. + MPG spurious warning messages(DCT-A and DCT-B err) removed. + AVI RGB depth 24 support added. + AVI XMPG support added. This is the Editable MPEG Video Codec and if the spec matches the sample I have, it's a Kludge. The AVI Headers DON'T match(as in resolution and proper audio/video timing) the MPEG SEQ header which looks to have the correct info. + AVI support for "pads" streams(or rather tolerance for). + HP Raw audio device support to bypass upper lever HP audio server routines. + QT: minor bug in Gray Colormap generation. + DL animation format thrown back in and now allows it to be readable from the file. + IFF Anim8 support written by Garrick Meeker. + Added Quiet flag(+q) to prevent XAnim title from being printed out to tty. Useful when called in background by another program. + AUDIO fixed bug where anims without audio prevent following anims with audio from enabling that audio. + AUDIO Fixed scaling bug in ADPCM audio code. Affected main 8khz machines. + Fixed compile bug when compiling without Remote Control Window. + cleaning and simplifying internal structures. reducing global variables, etc. -------------------------------------------------------------- New(or Fixes) to 2.69.7.7 -------------------------------------------------------------- + remodified audio/video sync code yet again. This time to help smooth out some startup syncing problems and to help handle more compute intensive video(large frame or jpeg/mpeg). + Added IBM RS6000 audio support - Code written by Jeff Kusnitz, thanks. + Fixed bug in NAS audio that caused memory corruption after an "unable to Toggle" warning(which occurs if a machine has an audio device with a fixed output). + Merged Audio_Outputs into one routine so I didn't have to keep modifying all of them(95% of the code was the same). + Added Dithering(+F option) to Cinepak Video Codec. It's on by default unless +CF4 is used(list +F after that to override). + Fixed Bug with some RLE depth 1 codec. + Fixed audio Bug with SGI generated quicktimes audio depth > 8. + Fixed bug that was causing quicktime to erroneously send back a FULL_IM flag allowing serious skipping to occur. This causes on screen corruption if the Video Codec doesn't really support serious skipping. -------------------------------------------------------------- New(or Fixes) to 2.69.7.6 -------------------------------------------------------------- + Added MPEG support for Type I frames. Type B and Type P frames are currently skipped, but will be added in the future. Although I've rewritten large chunks of it, the core decoding routines are from mpeg_play. + Added Sony NEWS workstation audio support. Thanks to Kazushi Yoshida for writing the code. + Fixed some bugs in the JPEG routines. -------------------------------------------------------------- New(or Fixes) to 2.69.7.5 -------------------------------------------------------------- + JPEG: code massively rewritten and optimized. MJPG and IJPG video codecs now supported. + CVID: some optimization here. + SGI: sgi hardware volume is actually exponential. Now XAnim's SGI volume function is also exponential + Sparc: had some problems with older Sparc audio devices that couldn't support NOT having an audio channel selected. The Sparc audio ports are now radio button style. + Sparc: Some serious incompatibility problems between gcc/cc and the /usr/includes and gcc's /usr/includes. Fixed for now. Was causing ioctl err 22's during run time on certain machine configurations. -------------------------------------------------------------- New(or Fixes) to 2.69.7.4a -------------------------------------------------------------- + ALL: You can now add sound to animations that don't have sound support(ie FLI/FLC/IFF) by specifying a .wav file after the animation file. ie "xanim bart.fli laugh.wav". Only some .wav audio compression are currently supported, more on the way. NOTE: if audio is longer than animation, then animation waits on the last frame until audio is done. +f option currently doesn't affect .wav files. + PC: best variable not defined in Linux_Closest_Freq() err. + PC: libjpeg.a already used by the system and was being found 1st by the linker causing errors. Renamed to libxajpg.a. + ALL: Solution that helps high frame rate anims on SGI machines was hurting some others. Now only fixed on SGI machines. + ALL: work around to help play some broken FLC's. -------------------------------------------------------------- New(or Fixes) to 2.69.7.4 -------------------------------------------------------------- + Fixed bug with Quicktime signed(TWOS) 16 bit stereo audio format. + Fixed bug with +f option and any 16 bit audio format. + +Ae is now be made enabled by default. + SPEAKER env variable checked(INTERNAL/HEADPHONES/EXTERNAL/NONE). + RemoteControl Window made smaller and now has dynamically changing bitmaps to better indicate current function of the buttons. + RemoteControl window no longer overlaps Anim Window. + "+Ar" option enables/disables RemoteControl Window. + "z" window command pops creates/destroys RemoteControl Window on-the-fly. + More fine tuning of video/audio routines. + AVI ADPCM is no longer decompressed 1st. +f now works with this audio codec. + AVI JPEG Video Codec support added, including interleaved frames. + AVI MJPG Video Codec support added. + HP: finally code sound out of an HP. Code still has a ways to go. And HP Aserver library seems to be part of the problem. -------------------------------------------------------------- Configuring For Your Machine -------------------------------------------------------------- You'll need to edit the Makefile or the Imakefile. Go to the Audio section and uncomment out the DEFINE's associated with your machine type. Make sure no other machine's DEFINE's are uncommented. That would be bad. -------------------------------------------------------------- Sun Sparc Specific Info -------------------------------------------------------------- IF YOUR ARE USING OPENWINDOWS THEN YOU MUST USE Makefile.unx AND YOU MUST EDIT THE CHANGES REQUIRED. This is because of bugs/deficiencies with the OpenWindows Athena libraries. See top of Makefile.unx for more details. Having some problems with gcc, because it wants to use it's own include files and they're usually wrong(or out of date). Use cc if this happens. If you are using Solaris, use the -DSOLARIS define in the Makefile. -------------------------------------------------------------- Linux(soundcard) Specific Info -------------------------------------------------------------- Compiles and runs on 8 bit and 16 bit sound cards(sound driver 2.5 and 2.99). Some video/audio syncing problem with driver 2.5 that got better with 2.99. -------------------------------------------------------------- SGI Specific Info -------------------------------------------------------------- NEWSFLASH. The audio stuff should be included now in Irix 5.3. You might be able to obtain them for free if you have the Irix 5.1 or Irix 5.2 releases, but that's just a rumor. If you have Irix 5.1 or greater then make sure you have installed the digital media development subsystem (dmedia_dev.sw.audio) off of the CD-ROM. If this isn't on your CD_ROM then read on... "according to the 5.2 readme first page, it says that the Audio Development software has been moved from the IDO to a purchasable option, IRIS media libraries. " And you either have to contact SGI and buy it($495) OR In the meantime, you can compile XAnim on an Irix 4.0.5 machine and the XAnim binary should work back on the original Irix 5.1 or 5.2 machine. Once XAnim audio is stablized on SGI's, I should be able to provide an xanim executable. NOTE: I don't have nor can I legally distribute the SGI audio libraries and include files. -------------------------------------------------------------- HP Specific Info -------------------------------------------------------------- Written and getting better, but still has a ways to go. With HP's you need to start up the system Audio Server before you can use ANY audio program. Here's how(from the Audio.man page on an HP 700/915): Step 1. Start the NCS Local Location Broker Daemon. Task 1. If you are not already superuser, log in as superuser. Task 2. Enter the command line /usr/etc/ncs/llbd&&&&. To make llbd start automatically at boot time, edit the file /etc/netncsrc and change the line START_LLBD=0 to START_LLBD=1. Step 2. Reboot. Step 3. Set the AUDIO environment variable to specify the node where the audio client should look for the audio server. If AUDIO is not set or if it is set to :0, the client connects with a server on the same node. To specify that the client should connect to a server on another node, set AUDIO = node_name: (Korn, Bourne, and POSIX shells) export AUDIO or setenv AUDIO node_name: (C shell) Step 4. Normally, the audio server starts whenever the system is booted. Check for the existence of the Aserver processes by typing ps -e | grep Aserver You should see two Aserver processes. If the server is not running, start the audio server by hand by typing /usr/audio/bin/Aserver Then type ps -e | grep Aserver and check that there are two active server processes. -------------------------------------------------------------- IBM RS6000 Specific Info -------------------------------------------------------------- Waiting for feedback on how it works. -------------------------------------------------------------- AudioFile (AF) Specific Info -------------------------------------------------------------- I haven't brought up AF yet on my machine, but have gotten reports that it works okay. -------------------------------------------------------------- Net Audio (NAS) Specific Info -------------------------------------------------------------- I have brought NAS up on my machine and have fine tuned it. NAS has some deficiencies that make it difficult to keep audio/video in sync. Hopefully they'll improve it and likewise I'll improve my understanding of it and work from there. -------------------------------------------------------------- Any comments, questions, bugs, fixes, etc email me at podlipec@wellfleet.com or podlipec@shell.portal.com If you make changes to the audio code, please send entire xanim_audio.c file unless the patches are minor. --------------------------------------------------------------