XAnim Revision 2.70.1 Beta NOTE: VMS users - The make.com files etc are configured yet with the new changes. Let me know if you succeed in doing so. Thanks. This release contains experimental code that forks off a new process in order to handle the audio stream. It uses pipe(), fork() and select() to create this process and setup communication between the parent video process and the child audio process. I'm working on eliminating the need for select(), but I might find I have to go the other way as well. We'll see. Having a separate audio process will prevent cpu intensive video codecs(like jpeg and mpeg) from causing starvation of audio device(this definitely did occur with the prior revs under heavy loads). It also prevents audio device blocking from affecting video. WARNING: It's possible that the child process will live on if the parent process core dumps. In this release, the audio child checks the parents pid IF it hasn't heard from the parent in over 5 seconds. If the pid returned isn't the same as it was at birth, the child dies. However, you should be familiar with "ps" and "kill" in order to find and terminate the child and thereby free up the audio device if this fails on your machine. It has been compiled and tested on a Sparc 10 running SunOS 4.1.3 and X11R5. I am very interested in hearing about how this ports to other machines and what needed to be done, if anything. I'm also interested in how well the video/audio stays in sync, etc. I try to answer all email, but not all messages have correct return addresses. Also, please mention which Rev of XAnim and what machine you have for bug reports, etc. Thanks, Mark --- podlipec@wellfleet.com podlipec@baynetworks.com podlipec@shell.portal.com NOTE: see compile.help for compiling information. -------------------------------------------------------------- What's Supported -------------------------------------------------------------- XAnim supports the following AVI/Quicktime Audio Codecs: 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 MAC3/MAC6/IMA4 are *NOT* supported. XAnim supports audio on the following 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. DEC Alpha workstations running Multimedia Services -------------------------------------------------------------- Generic Bug's -------------------------------------------------------------- + Remote Control Window colors not selectable. + HP support pseudo functional. Still needs a lot of work. + Some MPEG Type I frames aren't correctly support. I know what's wrong, just need to find time to fix it. + The NAS xanim audio code is new and has problems when you stop/restart it(echoing). I'm going to look into debugging it before backing it out. -------------------------------------------------------------- New(or Fixes) to 2.70.1 -------------------------------------------------------------- + Dithering added to MPEG (+F option on by default) + Dithering added to JPEG (+F option on by default) + AUDIO: SOLARIS define replaces with SVR4 + BOFL: audio code now checks for parent pid if it hasn't heard from the parent in over 5 seconds. If parent pid has changes(ie the child is orphaned, then it dies). I think this is cleaner that setting an arbitrary time limit. There is still a 24 hour failsafe. + audio_exit bug fixed for those running without audio. -------------------------------------------------------------- New(or Fixes) to 2.70.0 -------------------------------------------------------------- + Makefile partitioned a litte better and hopefully makes configuration easier. + WAV and AU audio only files now work(by creating fake anim). + Added Sun AU audio file support + QT: greyscale colormap fix with +CF4 option. + AUDIO: DEC Multimedia Services added by Tom Morris. + AUDIO: NetBSD audio support by Roland C Dowdeswell. + AUDIO: Sony audio patch for SVR4/NEWS-OS 6.x by Takashi Hagiwara + Acorn Replay Movie support. + Parallax Motion JPEG with ULAW audio support. + Keyboard commands now work in Remote Control window as well as animation window. -------------------------------------------------------------- New(or Fixes) to 2.69.7.8a -------------------------------------------------------------- + Radius Cinepak support removed by request from Radius(hopefully temporary). -------------------------------------------------------------- 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. NOTE: Below needs to be updated for various machines and is definitely incomplete, but may also be out-of-date. -------------------------------------------------------------- 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 -DSVR4 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. If you still have 5.1 or 5.2 and you owned the development CD under a previous release of Irix, you can complain about "loss of functionality" and get the new copy. 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. --------------------------------------------------------------