

       <<<< WARNING, THIS IS AN EXPERIMENTAL RELEASE >>>>

      IF YOU HAVE TROUBLES WITH THIS RELEASE AND YOU DON'T
      HAVE THE TIME TO DEBUG IT, YOU'LL PROBABLY WANT TO
      BACK OFF TO REV 2.69.7.8*.

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().

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 I've implemented some
BOFL(breath of life) from parent to child, so if parent dies, the
child should die within 5 to 10 seconds, so I'm 99% certain the child
won't survive for very long.  But if not, you should be
familiar with "ps" and "kill" in order to find and terminate the
child and thereby free up the audio device.

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 MAC6 is *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.
  + 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.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).

--------------------------------------------------------------
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). 
  + AUDIO: 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.
  

--------------------------------------------------------------
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 -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.

--------------------------------------------------------------
