XAnim 2.80.121Mar99

XAnim 2.80.121Mar99

COMPILING ON UNIX Systems (And all Unix derivatives)

  Please also read the following files:

README.dll
README.zlib

  If you can't go the dll route, then you need to read 
  the "cinepak.readme", "indeo.readme" and the "creative.readme" files.

  If you have Imake on your system, Read and edit the Imakefile
  and then you can type

    xmkmf

  which should produce a Makefile from the Imakefile. Then
  you can type:

    make xanim
  
  If this doesn't work you can copy Makefile.unx to Makefile.
  Read and edit the Makefile(that you just created). Make 
  any necessary changes for your particular machine or preferencs
  and the type:

    make xanim

  NOTE: That in the Imakefile, XCOMM is used as a comment. This
  is recommended by X11R6, but may break older revs. To fix,
  simply replace every occurence of "XCOMM" with "#" in the
  Imakefile. See top of Imakefile for more details.


COMPILING ON VMS/AXP Systems
  The files make.com and xanimXX.opt are provided for VMS users.
  make.com should correctly detect wether you're running
  DECWindows XUI or DECWindows MOTIF(revs 1.1 and 1.2) and use
  the appropriate xanimXX.opt file.
 
  If you use the VMS MMS (or "make") facility, then a descript.mms
  file is provided.

  NOTE: since VMS is case insensitve, all options to xanim must be
  enclosed in double quotes in order for them to be proper recognized.
  Example:
xanim "+f -Cn" anim1 anim2


HOW TO USE XANIM
The following is a copy of the man page with examples at the end.

SYNOPSIS
     xanim [ +Vnum ] [ +Aaopts ]  [  +Ccopts  ]  [  +Ggopts  ]  [
          +Mmopts  ] [ +Ssopts ] [ +Wwopts ] [ +Zzopts ] [ +opts ] animfile 
          [ [ +opts ] [ animfile ] ... ]
 
DESCRIPTION
     XAnim is a program that can display  animations  of  various
     formats on systems running X11. XAnim currently supports the
     following animation types:
 
  +  FLI animations.
  +  FLC animations.
  +  IFF animations.
  +  GIF87a and GIF89a files.
  +  GIF89a animation extension support.
  +  a kludgy text file listing gifs and  what  order  to
     show them in.
  +  DL animations. Formats 1, 2 and most of 3.
  +  Amiga PFX(PageFlipper Plus F/X) animations. DISABLED TEMPORARILY.
  +  Amiga MovieSetter animations(For those Eric Schwartz
     fans).
  +  Utah Raster Toolkit RLE images and anims.
  +  AVI animations.
  +  Quicktime Animations.
          +  SGI Movie Format Files.
          + WAV audio files may have their  sound  added  to  any
            animation  type  that  doesn't  already  have audio, by
            specifying the .wav file after the  animation  file  on
            the command line.
  +  JFIF images. NOTE: use XV for single images. This is more
     for animation of a sequence of JPEG images.
          +  MPEG animations. NOT FULLY SUPPORTED.  NO AUDIO. 
             And currently only Type  I  Frames  are displayed.
             Type  B  and Type P frames are currently ignored, 
             but will be added in future revs.
          +  AU audio files may have their  sound  added  to  any
             animation  type  that doesn't already have audio, by
             specifying the .wav file after the animation file on
             the command line.
  +  any combination of the above  on  the  same  command
     line.

     Please see the file Formats.doc for specific support details
     on each format.

     XAnim also provides various options that allow the  user  to
     alter colormaps, playback speeds, looping modes and can pro-
     vide on-the-fly scaling of animations with the mouse.
 
OPTIONS
     A + will generally turn an option on and a -  will  turn  an
     option  off.   This  can  be  reversed at compile time. (see
     xanim_config.h).

     In each SubMenu, the options can be  run  together  with  no
     intervening spaces. In the list of SubMenu options presented
     below, the first letter given is the letter  that  specifies
     the  SubMenu  and  should NOT be repeated if several SubMenu
     options are to be run together.

     For example,  "+Cn  +Cs10  +CF4"  can  also  be  written  as
     "+Cns10F4" or "+CF4s10n".

     A + or a - within a SubMenu will be an exit from  that  sub-
     menu.   Options  will  affect  all  animations following the
     invocation of that option. Some options may  be  changed  in
     between animations without affecting previous animations.

     In the following sections,  an  "num"  represents  an  integer
     number and an "fnum" represents a floating point number. Don't
     include the double quotes. If a floating point number is of an 
     integer amount, the "." need not be specified. There should be
     no spaces between the option and the numbers.
 
     aopts SubMenu for Audio Options

  +AeAudio Enable. On by default.

  +AkThis option allows XAnim to skip video frames
in order to help keep video in sync with audio.
Default is on.

          +AmTake the audio from the  next  audio-only  file
and  use it with the video file previous to it.
Any audio already existing in that  video  file
will  be discarded. NOTE: XAnim by default will
add audio from an audio-only file to a previous
video only(ie not audio) file. This option just
forces the issue if the previous  file  already
has audio. Default is off.

          +AM     Take the audio from the  next  audio-only  file
and  use it with the video file previous to it.
And in addition, scale the timing of that video
file  to  be of the same duration of this audio
file.  Any audio already existing in that video
file will be discarded. Default is off.


  +Ap"num"This turns a hardware specific Audio port on or off.
   Port 0 - main speaker (on  by default)
   Port 1 - headphones   (off by default)
   Port 2 - line out     (off by default)

          +As"fnum"Scale Audio playback speed by "fnum". Only the
range 0.125 to 8.00 is allowed.
NOTE: CURRENTLY VIDEO DOESN'T SCALE WITH AUDIO.

  +Av"num"Sets the inital Audio Volume(0-100) with 0
the lowest. default is 40. See xa_config.h
 
     copts SubMenu for Color Options
 
  +C1Create a colormap from the  first  frame  of  a
TrueColor  anim  and  then  remap the remaining
frames to this colormap. This  can  potentially
add  significant time to the startup of an ani-
mation but usually results  in  better  colors.
The  animation  needs  to  be buffered for this
option to work.  Not  valid  for  TrueColor  or
DirectColor displays(nor is it needed).
 
  +C3Convert TrueColor  anims  to  332(StaticColor).
TrueColor  anims  are  animations  that provide
separate RGB info for each pixel,  rather  than
each  pixel being an index into a global color-
map. AVI(16bit CRAM), QT(RPZA and RLE depth  16
and  24)  and URT RLE 24 bit anims are examples
of TrueColor anims. This option is ignored  for
TrueColor or DirectColor displays.
 
  +CA     Create  a  colormap  from  each  frame   of   a
TrueColor  anim.  This  can  be  useful  if the
colors radically change during  the  course  of
the  animation.  This can take a VERY,VERY long
time at start up. Animation must  be  buffered.
This   option   is  ignored  for  TrueColor  or
DirectColor displays.
 
  +Ca     Remap all images to  single  new  cmap  created
from all of the colormaps.
 
  +Cd     Use Floyd-Steinberg  dithering  if  needed  for
non-monochrome  displays.   This  will  cause a
reduction in playback speed.
 
  +Cf     Forcibly remap to all  frames  to  1st  frame's
cmap.

  +CF0  Turns off CF4 option.

  +CF4  This option samples the colors of true color
animations ahead of time and forms a color
lookup table.  Beats the just truncating to a
RGB 332 color table and IMHO beats dithering.
See the +s option below(also in copts submenu).
Currently ONLY Work with unbuffered animations
 
  +Cg     Convert TrueColor anims  to  gray  scale.  This
option is ignored for TrueColor and DirectColor
displays.
 
  +Ch     Use histogram to aid in color  reduction.  His-
trogramming  is  only  done  on frames that are
buffered.
 
  +Cm     This option is currently needed if you want  to
dither  TrueColor anims to a 332 colormap. Ani-
mation must be buffered.  Typically  +bC3dm  is
the  option  to  use. This can take a VERY long
time at start up.
 
  +Cn     Don't create new colormap but instead  allocate
colors from the X11 Display's default cmap.

  +Cs"num"This is the number of frames the +CF4 option looks
at ahead of time. More frames potentially yields
better colors results, but takes more time at
start up.  default is 5.
 
     gopts SubMenu for Gamma Options
 
  +Ga"fnum"Set gamma of animation to be displayed.
 
  +Gd"fnum"Set gamma of display. 1.0 is no change. gamma's
greater  than 1.0 typically brighten the anima-
tion.
 
     mopts SubMenu for Median-Cut Quantization Options
 
  +Macompute box color from average of box.
 
  +Mccompute box color as center of box.
 
  +Mb"num"Truncate rgb to "num" bits before quantizing.
 
     sopts SubMenu for Scaling Options
 
  +SiHalf the  height  of  IFF  anims  if  they  are
interlaced.(Not  completely  reliable since not
all IFF anims correctly identify themselves  as
interlaced).
 
  +SnPrevents X11  window  from  resizing  to  match
animations's size.
 
  +SrAllow user to  resize  animation  on  the  fly.
Enlarging an animation can greatly reduce play-
back speed depending on the power of the cpu.
 
  +Ss"fnum"Scale the size  of  animation  by  "fnum"  before
displaying.
 
  +Sh"fnum"Scale the horizontal size of the  animation  by
"fnum" before displaying.
 
  +Sv"fnum"Scale the vertical size  of  the  animation  by
"fnum" before displaying.
 
  +Sx"num"Scale the animation to have  width  "num"  before
displaying.
 
  +Sy"num"Scale the animation to have height  "num"  before
displaying.
 
  +ScCopy display scaling factors to display buffer-
ing factors.
 
  +SS"fnum"Scale the size of the animation by "fnum"  before
buffering it.
 
  +SH"fnum"Scale the horizontal size of the  animation  by
"fnum" before buffering it.
 
  +SV"fnum"Scale the vertical size  of  the  animation  by
"fnum" before buffering it.
 
  +SX"num"Scale the animation to have  width  "num"  before
buffering it.
 
  +SY"num"Scale the animation to have height  "num"  before
buffering it.
 
  +SCCopy buffer scaling factors to display  scaling
factors.

     wopts SubMenu for Remote Window and Control Options.
(See "Remote_Window.doc" )

  +W"id"Specify X11 Window "id" of window to draw into.

  +WdDon't refresh window at end of anim.

  +WnxUse property x for communication. 
Default is XANIM_PROPERTY

  +WpPrepare anim, but don't start playing it.

  +WrResize X11 Window to fit anim.

  +Wx"num"Position anim at x coordinate "num".

  +Wy"num"Position anim at y coordinate "num".

  +WcPosition relative to center of anim.

     zopts SubMenu for Special Options


  +ZeXAnim will exit after playing  through  command
line once.

  +Zp"num"XAnim pause at frame "num" and then wait for user
input.  Several  pauses  may be specified. Each
group of pauses will only affect the  animation
immediately following them on the command line.
Pauses will occur at least once.

  +ZpeXAnim will pause on the last frame of the anim.

  +ZrThis option pops up the Remote Control  Window.
This  overrides  the  default  condition set in
xanim_config.h. Remote Control support must  be
compiled into XAnim for this to work.

  +ZvThis option cause XAnim to exit prior to even
displaying the animation. This is useful in
conjunction with the +v option if you just
want to obtain info about the animation without
actually playing it.
 
     Normal Options

          +bUncompress and buffer images before displaying.
This  only  applies  to AVI, QT, IFF, FLI, FLC,
JPEG, MPEG and DL animations. The  rest(GIF87a,
GIF89a,  PFX  and  RLE)  are  currently  always
uncompressed and buffered. This is  cleared  by
the +f option.

  +BUsed X11 Shared Memory(if present)for unbuffered
animations only.(This is mutually exclusive with
+b above).

  +DUse X11 Multi Buffering (if present) to smooth 
animations by double-buffering. Default is on.
 
          +fDon't load anim into memory, but read each sec-
tion  only  when needed. This is supported only
for AVI, QT, IFF, FLI, FLC, JPEG, MPEG  and  DL
animations.  This  option  is cleared by the +b
option.  This  saves  memory  at  the  cost  of
speed.
 
  +clet xanim know that iff anim  is  a  nonlooping
one.
 
  +d"num"debug switch. "num" can be from 0(off) to 5(most)
for level of detail.
 
  +FFloyd-Steinberg dithering when needed.
 
  +j"num""num"  is  the  number  of  milliseconds  between
frames.  if  0  then  the time specified in the
animation is used for timing purposes.
 
  +l"num"loop animation "num" number of times before  mov-
ing on to next animation.
 
  +lp"num"ping-pong animation "num" number of times  before
moving on to next animation.
 
  +Ndon't display images. Useful for benchmarking.
 
  +oturns    on    certain    optimizations.    See
xanim.readme.
 
  +pUse Pixmap instead of Image in X11. This option
has    no    effect   if   the   animation   is
buffered(either  by  default  or  with  the  +b
option).
 
  +qPrevents XAnim from printing out the title header. 
Useful for when XAnim is called by other programs
where no tty output is desired(doesn't affect +v
or +d# options).

  +rootTiles animation/video onto X11 root screen.

  +rAllow color cycling for IFF single images.
 
  +RAllow color cycling  for  IFF  anims.  (default
should be off)
 
  +T0Title option 0. Title is just XAnim.
 
  +T1Title option 1. Title  is  current  anim  name.
When  anim is stopped, the current frame number
is included.
 
  +T2Title option 2. Title is current anim name  and
current frame number.
 
  +vVerbose mode. Gives some information about ani-
mation such as size, number of frames, etc.
 
  +V"num"Select X11 Visual to use when displaying anima-
tion.  The  "num"  is  obtained  by  using the +X
option of xanim.
 
  +VclassSelect the best X11 Visual of Class class  when
displaying  the  animation. class can be anyone
of the following strings and is  case  insensi-
tive. (ie StaTicGraY is same as staticgray).
 
staticgray    Select best StaticGray Visual.
grayscale     Select best GrayScale Visual.
staticcolor   Select best StaticColor Visual.
pseudocolor   Select best PseudoColor Visual.
truecolor     Select best TrueColor Visual.
directcolor   Select best DirectColor Visual.
 
  +XX11 verbose mode. Display information about the
support X11 visuals.


 
 
WINDOW COMMANDS
     Once the animation is up and running there are various  com-
     mands  that  can  be entered into that animation window from
     the keyboard.
 
     q         quit.
 
     Q         Quit.
 
     g         Stop color cycling.

     p         Toggle ping pong flag for looping.
 
     r         Restore original Colors(useful after g).
 
     w         Restore original window size(useful after resizing).

     z         This pops up or removes the Remote Control Window.
               Remote Control support must be compiled into XAnim
               for this to work.
 
     <space>   Toggle. starts/stops animation.
 
     ,         Single step back one frame.
 
     .         Single step forward one frame.
 
     <         Go back to start of previous anim.
 
     >         Go forward to start of next anim.
 
     m         Single step back one frame staying within anim.
 
     /         Single step forward one frame staying within anim.
 
     -         Increase animation playback speed.
 
     =         Decrease animation playback speed.
 
     0         Reset animation playback speed to original values.

     AUDIO RELATED WINDOW COMMANDS

     1       Decrement volume by 10.
 
     2       Decrement volume by 1.
 
     3       Increment volume by 1.
 
     4       Increment volume by 10.
 
     s       Toggle. Audio Volume(MUTE). on/off.
 
     8       Toggle. Main Speaker. on/off.
 
     9       Toggle. Headphones. on/off.
 
 
MOUSE BUTTONS
     Once the animation is up and running the mouse buttons  have
     the following functions.
 
     <Left_Button>
       Single step back one frame.
 
     <Middle_Button>
       Toggle. starts/stops animation.
 
     <Right_Button>
       Single step forward one frame.
 
BUFFERING, PIXMAPS and READ_FROM_FILE Options
     XAnim by default will read the entire animation into memory.
     PFX,  Moviesetter, GIF or URT RLE type animations are always
     uncompressed and stored in memory as individual images.
 
     For the AVI, QT, IFF, FLI/FLC, JPEG, MPEG and DL animations,
     only  the  compressed delta is stored. These deltas are then
     uncompressed each time they need to be displayed. The buffer
     option(+b)  may  be used to potentially speed up playback by
     uncompressing and storing these images ahead  of  time.  But
     more memory is used up in the process.

     When an XPutImage is called, the image typically gets copied
     twice,  once to memory and then from there onto the display.
     A pixmap is directly copied onto  the  display  without  the
     first  copy.  This is why it is sometimes much faster to use
     the pixmap option(+p).  Each image isn't  converted  into  a
     pixmap until the first time it is displayed. This is why the
     first loop of an animation using this  option  is  sometimes
     slower  than  subsequent  loops. While the pixmap option may
     improve playback speed, it will slow things down if  on-the-
     fly  scaling needs to be performed. This is because XAnim no
     longer has direct access to the image and  needs  to  get  a
     copy of it before it can be scaled.
 
     The read from file option(+f) causes XAnim not to store  the
     compressed  deltas in memory. Instead as each image is to be
     displayed, XAnim reads the  corresponding  compressed  delta
     from  the  file, expands it and then displays it. While this
     can dramatically cut down on  memory  usage,  the  necessary
     reads  from  disk(or whatever) can slow down playback speed.
     XAnim still needs to allocate one  to  three  image  buffers
     depending  on  the type of animation and the scaling options
     used. This option is only supported for  AVI,  QT,  FLI/FLC,
     IFF,  JPEG,  MPEG  and  DL animations. The BODY chunk of IFF
     animations is not included in this. As a result, an IFF ani-
     mation  that  is  made  up  of  several BODY chunks will not
     currently benefit from this option.

 
SCALING Options
     There are two sets of scaling options. One set, the  display
     scaling factors,  affects the size of the animation as it is
     displayed. The other set, the buffer scaling factors, affect
     the   size   of   the   images   as   they   are  stored  in
     memory(buffered). The buffer  scaling  factors  only  affect
     animations  that  are  buffered  and can greatly increase or
     decrease memory usage.
 
     These two sets are completely independent of each other. You
     can  set  the  buffer scaling factors to 20 times the normal
     animation size and not affect the size at which that  anima-
     tion  is  displayed.  The  images are stored at 20 times the
     normal size(and at 400 times the memory usage), but then get
     scaled  back  down  to  normal  size before being displayed.
     NOTE: that an animation must be buffered in  order  for  the
     buffer scaling factors to have any affect on it. The display
     scaling factors affect all animations.
 
     You can create pixellation like  affects  by  buffering  the
     animation  at  1/8 it's normal size, but keeping the display
     scaling factors at the original size. (IE  "xanim  +bSS0.125
     anim.anim").
 
     Many times it's faster to store  and  display  an  animation
     with large dimensions at half-size. The option "+bSS0.5C" or
     "+bSS0.5s0.5" both will accomplish this. To save memory, you
     could  even store the animation at half size and yet display
     it at full size. "+bSS0.5" will accomplish this.
 
FORWARDS, BACKWARDS and OPTIMIZATION.
     Many type of animations(FLI/FLC/IFF/some AVI  and  QTs)  are
     compressed  with  forward  playback in mind only. Each delta
     only stores the difference between the current frame and the
     previous frame. As a results, most of these animations don't
     display correctly when played backwards.  Even when buffered
     up, these may not work, since XAnim only stores the smallest
     rectangle that encompasses the  changes  from  the  previous
     frame.  You  can  force  XAnim  to store the entire frame by
     specifying the "-o" option to turn  this  optimization  off.
     This will most likely use more memory and slow down the ani-
     mation, since more of the image needs to  be  stored  and/or
     displayed.
 
COLOR OPTIONS
     Most of this will be a TBD for a future rev and what's  here
     might be sketchy, incomplete or just plain confusing.
 
     TrueColor and DirectColor displays don't need to worry about
     most of these options, as the animations can be displayed in
     their original colors(ignoring monitor variations etc). How-
     ever,  TrueColor  and  DirectColor  displays  can't  display
 
     animations that employ color cycling  techniques  where  the
     colormap  changes  from  frame  to frame.  DirectColor could
     potentially support this, but not TrueColor.
 
     For the rest of the displays, the problem  becomes  matching
     the  colors in the animations to the available colors of the
     Display.  For  most  PseudoColor  displays  this  means  256
     colors.  Many  of  which are already in use by various other
     programs. XAnim defaults to creating it's own  colormap  and
     using  all  the  colors  from  that. The window manager then
     installs this new colormap, whenever the  mouse  pointer  is
     inside  the  XAnim  animation  window(Sometimes  a  specific
     action is required to change the ColorMap Focus, like click-
     ing  in the window or pressing a specific key). In any case,
     this action usually causes  all  the  other  colors  on  the
     screen  to  be  temporarily  "messed-up"  until the mouse is
     moved out of the animation window. The  alternative,  is  to
     use  the  "+Cn"  option.  Now XAnim tries allocating all the
     colors it needs from the current colormap. If it can't get a
     certain color, then XAnim choose one that is "close" to this
     certain color. Close is completely arbitrary. The  animation
     is  now displayed in colors that are different than the ori-
     ginal colors. This difference may or may not be noticeable.
 
     Another big problem is when the animations are what I called
     TrueColor animations. Where each pixel is stored as RGB tri-
     plets. For example, AVI 16 bit CRAM animations.  Each  pixel
     has  5  bits of Red, 5 bits of Green and 5 bits of Blue info
     associated with it. This means there  can  be  up  to  32768
     unique  colors  in  each  image.  And  on  most  PseudoColor
     displays we can only display 256 unique colors. Beside  get-
     ting  better  displays,  what  can  we do? XAnim defaults to
     truncating the RGB information from 555 to 332. That is to 3
     bits  of  Red,  3  bits of Green and 2 bits of Blue. Less on
     Blue because the human eye is  more  sensitive  to  Red  and
     Green than Blue.  This 332 colormap happens to be 256 colors
     in size, which nicely fits  in  with  our  display.  If  our
     display  only  had  64 colors, then XAnim is smart enough to
     truncate things down to 222. Now the problem is  the  colors
     of the displayed anim are noticeably different than the ori-
     ginal colors.  Typically you  can  see  color  banding  etc.
     While  this  is fine to get a feel for the animation, we can
     do better. One of the solutions XAnim  currently  offers  is
     the "+bC1" option. What this does is choose the the best 256
     colors from the first image  of  the  animation.  Then  each
     pixel  of  each subsequent image is remapped to one of these
     256 colors.  This takes up some CPU time up front  and  more
     memory since each image needs to be buffered, but results in
     a colors that are closer to the originals.  Another  option,
     "+bCA",  chooses  the  best  256  from  each image, then 256
     colors from all these colormaps  are  chosen  as  the  final
     colormap.   This  is useful if the colors in the first image
     aren't representative of the rest of the animation. This can
     be  very  slow.  Another  option  that is supported, but not
     really optimized for yet is "+bC3dm". This causes  XAnim  to
     use  a  332 colormap and then apply a Floyd-Steinberg dither
     algorithm to each image.  Currently this is very slow.  Dif-
     ferent  dithers(like Ordered) and better optimizations might
     speed this up  in  future  revs.  In  general,  handling  of
     TrueColor animations in XAnim needs to be improved.
 
     Another scenario where colors need to be remapped,  is  when
     several  images  or animations with different colormaps need
     to be displayed.  Changing the colormap usually  results  in
     an annoying flicker. One solution to this is to remap all of
     the images/animations to the same colormap. The "+Ca" option
     chooses  the  best  colors  from  all the colormaps and then
     remaps all the images to it. The "+Cf" option, simply remaps
     everything  to the first colormap.  The "+Ch" option is use-
     ful when an animation's colormap specifies a lot  of  colors
     that aren't used. XAnim looks through each buffered image of
     the animation and makes a histogram of the  useage  of  each
     color.  This  information  is then used to weedout unused or
     rarely used colors.
 
QUICKTIME ANIMATIONS
     Quicktime animations are  usually  stored  in  two  separate
     files.  One is call a data fork and ends with a ".data". The
     other is a resource fork and ends in  a  ".rsrc".  Sometimes
     these  animations  are in a "flattened/merged fork" format, 
     where everything is put into one file. There's no standard 
     naming  format for these types of files although usually 
     .qt or .mov is used.
 
     For example, if you have a quicktime animation  made  up  of
     two  files  named:  "spin.rsrc"  and  "spin.data",   you can
     display them using Xanim with either of the  following  com-
     mands  "xanim  spin"  or  "xanim spin.rsrc".  XAnim is smart
     enough to add/modfiy the  ".rsrc"  and  ".data"  endings  as
     needed.

     If you use AUFS from the Columbia  Appletalk  Package,  then
     Macintosh  files have their data fork stored in the expected
     place, and the resource fork is in a file with the same name
     in a  .resource subdirectory. Therefore, if the data fork is
     in "spin", and the resource fork isin  ".resource/spin", the
     movie can be displayed with "xanim spin".
 
     For "flattened/merged fork" quicktime animations, you  need
     to  specify the entire file name.
 
     NOTE: XAnim doesn't support 100% of the quicktime format.

EXAMPLES:
To display a single animation with Audio:

xanim +Ae car_race.avi

To display a audio animation on Sparc. main speakers off
and  headphones on:

xanim +Aep1 -Ap0 car_race.avi

To display a single animation:

xanim iff3.anim

To display a nonlooping IFF animation:

xanim +c iff3.anim

To display A.fli 3 times, B.anim and C.movie 2 times each and D.fli
once before repeating:

xanim -l3 A.fli -l2 B.anim C.movie -l1 D.fli

To see A.anim real slow(2 seconds for each frame):

xanim +j2000 A.anim

To display title image for a while then run an animation at
normal speed:

xanim +j2000 title.gif +j0 anim.gifanim


A series of GIF's can be displayed as:

xanim im_0.gif im_1.gif im_2.gif ... im_36.gif

 or

xanim im_*.gif

 or

xanim im.txt

 or

xanim im.gifanim

where im.txt is a txt file(a list of images, see anim.doc for more details).
and im.gifanim is one gif file composed of im_0.gif through im_36.gif.
(see txtmerge to create a single gif file from a txt file).

X11 Notes:
--------------------------------------
 I. X11 Server Options

   When XAnim opens the display it passes the argument list to X11 which
   then filters off the arguments it recognizes. XAnim won't even see these
   arguments(which is sometimes a problem). For instance

   xa -geom =+100+100 skier.fli

   will play the anim skier.fli at pos <100,100> on the X11 screen.  Or

   xa -display nantucket:0.0 skier.fli

   will display the anim skier.fli on the machine nantucket's display.

   Sometimes this is a problem, because a valid XAnim option is stripped by the
   X11 server. For instance if +r was being stripped, then use ++r instead.
   Same goes with -r. Use --r instead if you believe it's being filtered
   by X11.

Machine Specific and Compiler Notes:
--------------------------------------
 Some PC's need you to uncomment the line below in Makefile.
 #XA_INET_LIB = -linet

 Depending on your window manager(mwm,uwm,olwm,twm etc), you might
 want to have XAnim do a XInstallColormap. This shouldn't be necessary
 for most workstations and can cause core dumps on some PCs.
 There are usually user selectable options for each window manager
 that selects the colormap focus policy(pointer,fixed,explicit etc).
 Use -DNO_INSTALL in Makefile if you DON't want XAnim to install
 the colormap.

 Some X11's don't have support for multiple visuals.  An executable
 compiled with such an X11 will not be able to correctly run on a
 machine that does supports multiple visuals even if they're binary
 compatible.

 Hugh D.R. Evans has supplied make.com, xanim.opt and added VMS defines
 so that VMS users may compile and run XAnim. Rick Dyson has provided
 the descript.mms file and some VMS fixes. John Kneitz has also
 provide some VMS fixes and suggestions.

And Yet More Notes about Quicktime Animations
---------------------------------------------
        NOTES ON QUICKTIME ANIMATIONS WITH XANIM

  (these are just my notes and may contain some inconsistencies.
   There's currently some question about the true meaning of
   "flatten". It might just mean taking a quicktime file and
   replacing a references to another files with those files
   themselves.  But lately many people use it to mean collapsing
   the *.data and *.rsrc forks into one *.data fork for export
   to a non-mac computer. - Mark)


   EXTRACTING Quicktime Animations

    Typically you will obtain the quicktime animations that have
    been archived and then binhex'd. If the file you have ends
    in a .hqx, then you need to run hexbin on it ("hexbin anim.hqx").
    This will create a *.bin file(not necessarily anim.bin, it
    could be anything.bin. The actual name is contained within
    the *.hqx file).  

    If the file you have ends in a .bin or you've just hexbin'd a file, 
    now you need to unpack it. In other words extract the files that
    are contained within it. These files can be programs/documents/
    animations/images etc. They're not necessarily quicktime animations.

    There is a program called macunpack that should be used to
    accomplish this. You need to use the -f option, I recommend
    the -lv options as well. (ie "macunpack -flv file.bin")

    Macunpack doesn't support certain DiskDoubler or Stuffit Deluxe
    archives. There is no unix/pc program that I know of that does(except 
    for the Mac). In this case your only choice is to get a hold of a 
    Macintosh computer and someone who knows how to use it and
    hopefully some method of transferring files to/from it.

    Once you've unpacked everything, you should have three files,
    a *.info, a *.rsrc and a *.data. You can delete the *.info file.
    XAnim doesn't need or use it.

    The quicktime animation is made up of BOTH the *.rsrc and the
    *.data files and therefore XAnim needs BOTH the *.rsrc and the 
    *.data in order to recognize and display the animation.
  
    The only exception to this is if the animation has been "flattened".
    Essentially, all that this means is that the .rsrc and .data files
    were merged into one file for export to a non-mac computer.
    This file doesn't have any real naming conventions, but it is
    usually something like .mov, .mv, .qt, etc(it is never .bin or .hqx). 
    And it is rarely .data. If XAnim can't play it, then it's 95%
    likely to be a *.data fork(that's missing a *.rsrc fork) and not
    a flattened quicktime animation.

    Macunpack and hexbin can be found in the macutil archive. They
    are available at the following locations:

        sumex-aim.stanford.edu:/info-mac/unix/macutil-20b1.shar
        ftp.cwi.nl:/pub/macutil2.0b3.shar.Z
        solaris.ims.ac.jp:/pub/unix/mac/macutil-20b1.shar

    Use archie to find other sites.

    Here's a quick blurb on macutils from the readme.

        o hexbin - a program to convert BinHex 4.0 to MacBinary;
  it also converts uuencode (and UULite) files to their
  native binary format; support for .dl, .hex, and .hcx
  formats (all predecessors of BinHex 4.0) also exists

        o macunpack - a program to unpack PackIt, StuffIt,
  Diamond, Compactor/Compact Pro, most StuffIt Classic
  and StuffIt Deluxe, DiskDoubler, Zoom and LHarc/MacLHa
  archives.

  It also decodes BinHex 5.0, MacBinary, uuencode, and
  UNIX compress (ie: .Z suffix) files (as well as variants
  of compress implemented by various Macintosh compress
  programs).


  TRANSFERING DIRECTLY FROM A MACINTOSH

    If you are transferring a quicktime animation directly from a 
    Macintosh(ftp/fetch/gator/etc), you need to use the MacBinary mode.
    This will archive all three resource forks(.info,.rsrc and .data) 
    into a .bin file and transfer that. You must then use "macunpack -flv"
    as described above.
  
    If you use Binary mode(as opposed to the MacBinary mode), ONLY the 
    *.data file will be transferred. This *.data file is useless without
    the *.rsrc file, unless it happens to be "flattened". If you don't
    absolutely know this to be true, then use the MacBinary mode and 
    extract with macunpack.


  OTHER PROGRAMS

    mcvert is also capable of extracting the *.rsrc and *.data files
    form a MacBinary file(*.bin). It doesn't support all of the
    archival compression formats that macunpack does and I'm not
    as familiar with it. Archie should be able to find it.

  CREATING A QUICKTIME FOR EXPORT ON A MACINTOSH

    Movieconverter, part of Apple's Quicktime Starter Kit (a commercial product)
    can do this.  Save the movie as BOTH "Make self-contained" and "Playable
    on non-Apple computers." 


  If you have any other questions or problems trying to run 
  quicktime animation using xanim I might be able to answer
  them.

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

Mark Podlipec - podlipec@ici.net
http://xanim.va.pubnix.com/home.html
http://smurfland.cit.buffalo.edu/xanim/home.html
http://www.tm.informatik.uni-frankfurt.de/xanim/