FILE: indeo.readme

FILE: indeo.readme
DATE: 16Oct96
AUTH: Mark Podlipec

/* Indeo Decompression Module for XAnim
 *
 * Revision History
 *----------------------
 *  Rev 0.0   Aug95  Podlipec (podlipec@ici.net)
 *     ported/modified from Intel Indeo SDK.
 *  Rev 1.0 06Nov95  Podlipec (podlipec@ici.net)
 *                   Initial release. For use with XAnim 2.70.3 or higher.
 *  Rev 2.0 09Feb96  Podlipec (podlipec@ici.net)
 *                   Fixed bug that caused corruption with anims
 *     of width less than a certain value.
 *  Rev 2.2 01May96  Podlipec (podlipec@ici.net)
 *                   On machines where  "long int" is 64 bits, I
 *                   need to modify the Indeo code to use
 *                   "int" and not "long int".
 *                   This is known to affect some Alpha machines.
 */

-------------------------------------------------------------------------------
              Copyright and Licensing Notice

  Indeo (r) and the Indeo logo are trademarks of Intel Corporation.

  By Using this Software, you are agreeing to be bound by the terms of
  this agreement. Do not use this software until you have carefully
  read and agreed to the following terms and conditions. If you do
  not agree to the terms of this agreement, then remove all copies.

  Restrictions:

  You MAY:
      1: Freely use this Software in conjunction with XAnim.

  You MAY NOT:
      1: Use this Software for any application other than XAnim.
      2: Sell or distribute this Software without direct written
         permission from the Author.
      3: Sublicense this Software.
      4: Reverse engineer, decompile, or disassemble this Software.

  WARRANTY: This Software is provided "AS IS". There are no warranties
  of any kind either express or implied including warranties of
  merchantability or fitness for any particular purpose.

  LIMITATION OF LIABILITY: Neither Intel nor the Author shall be liable
  for any loss of profits, loss of use, loss of data, interruptions
  of business, nor for indirect, special, incidental or consequential
  damages of any kind whether under this agreement or otherwise, even
  if advised of the possibility of such damages.
  
  EXPORT LAWS: You agree that this Software is not intended to be shipped
  either directly or indirectly to country groups Q,S,W,Y,Z,Afghanistan
  or the People's Republic of China, unless a validated export license
  is obtained from the U.S. Department of Commerce.

  Definitions:
     Software: XAnim Indeo decompression modules precompiled for various
               machine platforms and OS. 
     Author:   Mark Podlipec (podlipec@baynetworks.com)

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

  XAnim is owned and copyrighted by Mark Podlipec.
  Copyright (C) 1990-1998,1999 Mark Podlipec.
  All rights reserved.

  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/
  http://xanim.resnet.gatech.edu


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

NOTE: XAnim 2.70.3 OR GREATER IS REQUIRED FOR INDEO SUPPORT!!!

These modules will add AVI and Quicktime support for the following
Video Codecs:

            + Intel Indeo R3.1  (IV31)      depth 24
            + Intel Indeo R3.2  (IV32)      depth 24
            + Intel RAW         (YVU9)      depth 24

Indeo support for XAnim is being provided as an optional machine
specific object module that is linked into XAnim at compile time.

 1) The first step is figuring out which XAnim Indeo decompression
    library module you need to obtain for your machine.

    Below is a table that matches your machine/OS to which library
    you need to download(ok, they're really object files). 

      Machine/OS                        Library Name(LIB_NAME)  Size(bytes)
    ------------                        ----------------------------------
     Sun 3's(SunOS 4.x)xa2.0_iv32_sun3.o102298
cross-compiler provided to me
by Sebastien C. Roy (Sebastien.Roy@unh.edu)
    ------------                        ----------------------------------
     Sun Sparcs(SunOS 4.x)xa2.0_iv32_sparcCOFF.o112656
     Sun Sparcs(SunOS 5.x)xa2.0_iv32_sparcELF.o113428
     Sun Sparcs(Solaris X)xa2.0_iv32_sparcELF.o113428
    ------------                        ----------------------------------
     Sun Solaris x86                    xa2.0_iv32_sol86.o107872
         cross-compiler provided to me
         by Daniel Rock (rock@wurzelausix.CS.Uni-SB.DE)
    ------------                        ----------------------------------
     HP 9000/7xx            xa2.0_iv32_parisc.o108872
    ------------                        ----------------------------------
     HP 68k                 xa2.0_iv32_68k.o109632
cross-compiler provided to me
by Stan Brown
    ------------                        ----------------------------------
     DEC Alpha OSF/1xa2.2_iv32_alphaOSF1.o154872
Avoid Revs 27052-27053
    ------------                        ----------------------------------
     x86 Esix 4.03axa2.0_iv32_sol86.o      107872
     x86 Unixware 2.1xa2.0_iv32_sol86.o      107872
    ------------                        ----------------------------------
     x86 386/NetBSDxa2.0_iv32_netbsd386.o108370
         cross-compiler provided to me
         by Roland C Dowdeswell(roland@imrryr.org)
    ------------                        ----------------------------------
     x86 BSDI 2xa2.0_iv32_netbsd386.o108370
    ------------                        ----------------------------------
     x86 FreeBSD 2.1.0xa2.0_iv32_netbsd386.o108370
    ------------                        ----------------------------------
     x86 Linux AOUTxa2.0_iv32_linuxAOUT.o108310
     x86 Linux ELFxa2.0_iv32_linuxELF.o109152
         both cross-compilers provided to me 
         by Mark Nordberg(mpn@mindspring.com) 
    ------------                        ----------------------------------
     PowerPC Linux xa2.0_iv32_linuxPPC.o124464
cross-compiler provided to me
by Tom Rini
    ------------                        ----------------------------------
     NetBSD 68Kxa2.0_iv32_netbsd68k.o102282
        cross-compiler provided to me
        by Ingolf Koch(ingolf@mipool.uni-jena.de)
    ------------                        ----------------------------------
     SGI Irix 5.x and 6.xxa2.0_iv32_sgi.o118388
         cross-compiler provided to me 
         by Paul Close
    ------------                        ----------------------------------
     Pyramid Nile DC/OSx d087xa2.0_iv32_sgi.o118388
        There are some warnings that you can ignore.
        Might also work with MIS series DC/OSx c087.
    ------------                        ----------------------------------
     Amiga(gcc compiler?)               xa2.0_iv32_amiga.lha    102298
        Thanks to Adrian (Sauron) Siemieniak for creating
        and providing this object file derived from the
        Sun 3x object module.        
    ------------                        ----------------------------------



    yeah, I know it's a short list, but these are the only machines
    that I have physical access to or cross-compilers for.

    NOTE: SunOS 4.1.3 uses AOUT and Sun Solaris used ELF. They're not
    compatible.

    NOTE: If your machine is not supported, it's because I don't have physical
    access to that type of machine. There are a handful of options
    available to you(not all of them may be feasible)

        a) Permanently loan me that type of machine so that I may
           compile a library module for that machine type. Please
           contact me first and yes, I'd be surprised if someone
           chose this option. :^) 

        b) Send me a cross-compiler for your machine type. Must
           be a Sparc SunOS 4.1.x executable or more specifically
           it must run on my machine.  I'll do the compile and then
           you'll need to verify that the resulting library module
           works on your machine.

   Yes, I know gcc can be a cross-compiler. No, I don't currently
   have the time to setup it up for all the various platforms.
           
     Since I'm not allowed to distribute the source code I can't login
     to an account on a remote machine in order to do the compile.

     Also, I personally can't give you a non-disclosure. You need
     to contact Intel about licensing Indeo(I believe the email address
     is  "developer_support@intel.com", but I'm not sure).

 2) Obtaining the object files. Follow the steps below:

        EITHER

        1) Download the modules from one of the XAnim Web Pages

                http://xanim.va.pubnix.com/home.html
                http://smurfland.cit.buffalo.edu/xanim/home.html
http://www.tm.informatik.uni-frankfurt.de/xanim/
http://xanim.resnet.gatech.edu


        OR

1) cd into the XAnim directory on your machine
2) ftp xanim.va.pubnix.com     OR  ftp 208.240.89.238
3) user is "anonymous"
4) passwd is your email address
5) "type binary"VERY IMPORTANT
6) "cd modules"
7) "get LIB_NAME.Z"NOTE: the .Z at the end
8) "quit"

    NOTE: LIB_NAME is obtained from the table in section 1 based
     on the type of machine and OS you are running. If you don't
     know, contact your system administrator or a coworker who
     does know. 

 3) "uncompress LIB_NAME.Z"

     This will create LIB_NAME from LIB_NAME.Z

 3a) Put LIB_NAME into a directory called "mods" inside the xanim directory.

 4) Edit Section III of either your Imakefile or Makefile(derived
    from Makefile.unx).  If you are not sure which one to
    use then read the compile.help that came with xanim.
      
    a) In Section III of either the Imakefile or Makefile

       Uncomment out the following define:

         XA_IV32_DEF = -DXA_IV32

      and add LIB_NAME to the XA_IV32_LIB define. For example
      if you have Sun Sparc running SunOS 4.1.3 then you would
      use the following:

        XA_IV32_LIB = mods/xa2.0_iv32_sparcCOFF.o

      For other machine/OS types, use the approriate xa_iv32_*.o file
      listed in the table at the top of this readme.

      NOTE:  There is no "-" or anything other prefix. Just the object 
             file name.

    b) If and ONLY if you are using the Imakefile(in other
       words DON'T do this if you are using the Makefile(derived
       from Makefile.unx)) then do the following:

  "xmkmf" 
   
    c) Now(regardless of which makefile)

  "touch xanim.h" 
  "make xanim"
 
      NOTE: make sure you see -DXA_IV32 on the compile command lines
      and make sure both xa_avi.c and xa_qt.c get recompiled.

 5)  Have fun. :^)

-------------------------------------------------------------------------
NOTES on how XAnim options affect Indeo on 8 bit Color displays/visuals.

None of these options matter on monochrome/TrueColor/DirectColor displays
and visuals.

  With no options, XAnim will create a 256 entry RGB332 colormap
  and dither to that. 

     xanim  free_fall.avi

  -F will turn off this dithering and XAnim will instead truncate
  the 24bit RGB values down to the RGB332 colormap.(I see no real
  advantage to this, which is why +F is on by default)

     xanim  -F free_fall.avi

  The +CF4 option will TURN OFF the dithering by default. +CF4 causes
   XAnim to scan the animation ahead of time and the select the
   "best" 256 colors from the possible thousands sampled. These colors
   may be further reduced depending on how many colors are still 
   available(ie not in use by other X11 applications).

     xanim +CF4 free_fall.avi

  If you specify +F AFTER the +CF4 option, dithering will be used
  with the +CF4 option.

     xanim +CF4 +F free_fall.avi
 

  The -Cn option may be used with all of the above examples. -Cn tells
   XAnim to create it's own colormap, giving it FULL USE of those
   256 colors. Please note that it is up to your X11 Window Manager(NOT
   XAnim) to install this colormap based on which window the Color Focus
   is on. Normally, Color Focus follows the mouse pointer, but not
   always.


      xanim -Cn free_fall.avi

      xanim -Cn +CF4 free_fall.avi



Mark Podlipec
podlipec@ici.net