@DATABASE "Default"
@NODE "MAIN" "IsisPPC documentation"
@TOC "MAIN"

        IsisPPC - an MPEG-Player for PowerPC-equipped Amiga computers

        (C) Copyright 1997, 1998 by phase5 digital products

        Written by André Osterhues


  @{" Disclaimer          " LINK "Disclaimer"     }     Please read this first
  @{" Introduction        " LINK "Introduction"   }     What is IsisPPC? And what is MPEG?
  @{" Requirements        " LINK "Requirements"   }     Which Hard- and Software is required?
  @{" Installation        " LINK "Installation"   }     How to install IsisPPC?
  @{" Usage               " LINK "Usage"          }     Things you have to consider
  @{" Options             " LINK "Options"        }     WB ToolTypes and CLI arguments
  @{" Preferences         " LINK "Preferences"    }     User's preferred settings
  @{" FAQ                 " LINK "FAQ"            }     Frequently Asked Questions
  @{" History             " LINK "History"        }     History of versions
  @{" Bugs                " LINK "Bugs"           }     Also called »Programmfehler«
  @{" Future              " LINK "Future"         }     What will be supported in the future?
  @{" Thanks              " LINK "Thank you"      }     Thanks to...
  @{" Author              " LINK "Author"         }     The one who...

@ENDNODE



@NODE "Disclaimer" "Disclaimer"
@TOC "MAIN"


  Disclaimer
  ==========

  This software contains parts that are
  Copyright (c) 1995 The Regents of the University of California.

  IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
  DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
  OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF
  CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

  THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
  AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
  ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO
  PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.

@ENDNODE



@NODE "Introduction" "Introduction"
@TOC "MAIN"


  Introduction
  ============

  IsisPPC is an @{" MPEG " LINK "MPEG"}-Player for Amiga computers.

  Some Features:

  - Starts from Workbench as well as from CLI

  - Display in 8/15/16/24 Bit on Workbench or any Public-Screen (auto-sensing)

  - Display in 8/15/16/24 Bit on CyberGraphX-Screens

  - Usage of the Video-@{" Overlay " LINK "Overlay"} in combination with the CyberVision64/3D

  - @{" Control-Panel " LINK "Usage"}

  - Automatic resizing at window size change

  - VideoCD/CD-I support (using external drivers from BurnIt)

  - Audio support via AHI V4

  - Supports MPEG audio layer I-III

@ENDNODE



@NODE "MPEG" "MPEG"
@TOC "MAIN"


  MPEG
  ====

  The name MPEG refers to the Moving Pictures Experts Group,
  a consortium of digital video and audio processing experts.
  In the year 1993, the draft of this group was published by
  the ISO (International Organization for Standards) and thus
  declared a standard.

  There is a distinction between @{" MPEG video " LINK "MPEG video"}, @{" MPEG audio " LINK "MPEG audio"}
  and @{" MPEG system " LINK "MPEG system"}

  One of the goals has been to reach as good picture and sound
  quality as possible using as few storage memory as possible.
  As an upper bound for storage memory usage, 192 KByte per
  second was defined.
  For comparison: Without data compression, just the video data
  would consume over 3700 KByte per second. Additionally, there
  would be about 172 KByte per second for sound in stereo CD
  quality.

@ENDNODE



@NODE "MPEG video" "MPEG video"
@TOC "MAIN"


  MPEG video
  ==========

  In MPEG video, an animation is divided into single pictures,
  called "frames". There are three different types of frames:
  I-, P- and B-frames

    I-frames (intra):
    -----------------
    These frames are compressed similar to the well-known JPEG
    pictures. Data is stored independantly from previous or
    following frames.

    P-frames (predictive):
    ----------------------
    Here, only changes concerning the previous I- or P-frame are
    stored. To display P-frames, data from the previous I- or P-
    frame must be decoded and available.

    B-frames (bidirectionally predictive):
    --------------------------------------
    In B-frames, a steady motion of single picture parts between
    the previous and the following frame is being searched. In
    the best case, just the motion itself is coded and stored.
    B-frames require fewest memory, but can only be decoded after
    the previous and the following(!) frame has been decoded.

  A typical sequence of MPEG-frames would be (in order of display):

    I  B  B  P  B  B  P  B  B  I...
    1  2  3  4  5  6  7  8  9 10

  They would be ordered like this in the MPEG video file:

    I  P  B  B  P  B  B  I  B  B...
    1  4  2  3  7  5  6 10  8  9

  With the SKIP option, you can control which types of frames
  will be decoded and displayed (see @{" Options " LINK "Options"}).

@ENDNODE



@NODE "MPEG audio" "MPEG audio"
@TOC "MAIN"


  MPEG audio
  ==========

  In MPEG audio, we distinguish Layer-I, Layer-II and Layer-III.
  Together with the number in the term, also the complexity of
  the Layer increases; while Layer-I and -II are quite easily
  comprehensible (and can be played in real-time on 68060-equipped
  Amigas), Layer-III is rather complex.

  In practise, however, Layer-II is used for most VideoCDs/CD-Is.
  Layer-III is used for DVD (Digital Versatile Disc) applications.

  IsisPPC supports playback of all three layers.

@ENDNODE



@NODE "MPEG system" "MPEG system"
@TOC "MAIN"


  MPEG system
  ===========

  Here, @{" MPEG video " LINK "MPEG video"} and @{" MPEG audio " LINK "MPEG audio"} data are stored
  together in a single file. This method is used mainly for Video CDs.

@ENDNODE



@NODE "Requirements" "Requirements"
@TOC "MAIN"


  Requirements
  ============

  Minimal configuration:
  - an Amiga with a PowerPC and 68040 CPU
  - AmigaOS 2.0
  - a graphic card with CyberGraphX support
    (or AGA with CyberGraphX AGA)
  - CyberGraphX Version 3.0 (v41)
  - AHI V4+
  - at least 4 MB RAM
  - a CD-ROM-Drive for VideoCD/CD-I playback

  Ideal configuration:
  - PowerPC 604e/200MHz and 68060 CPU
  - AmigaOS 3.x
  - a CyberVision64 or CyberVision64/3D
  - 16 MB RAM or more
  - a double-speed CD-ROM-Drive

  Memory requirements:
  - At least 2 MB free RAM

@ENDNODE



@NODE "Installation" "Installation"
@TOC "MAIN"


  Installation
  ============

  The installer script will install all required files for you.



  If you rather want to install IsisPPC by hand, follow these steps:

  1. Copy the file IsisPPC into a directory of your choice.

  2. Ensure that the following libraries are in the LIBS: drawer:
        - asl.library
        - cgxsystem.library
        - cgxvideo.library, if you want to use the overlay of the CyberVision64/3D
        - gtlayout.library
        - ppc.library
  3. If you want to use the CD track option of IsisPPC, install these files to the
     LIBS: drawer:
        - BurnIt_Master.driver
        - the BurnIt_Drivers/BurnIt_CDRom subdirectory with the driver for your
          CD-ROM drive


  Please make sure you have AHI V4+ installed (can be found on Aminet).

@ENDNODE



@NODE "Usage" "Usage"
@TOC "MAIN"


  Usage
  =====

  IsisPPC can be started from Workbench as well as from CLI. The ToolTypes and
  CLI arguments are explained on the @{" Options " LINK "Options"} page.

  Right after the program start, a control panel will appear.
  The meaning of most of the tapedeck gadgets should be clear:

  >     Play            Start playback or continue after pause
  ||    Pause           Pause playback or step if already paused
  <<    Backward        Spool backward
  >>    Forward         Spool forward
  ^     Eject           Eject MPEG (Note: this one doesn't quit the program)
  |<    Previous        Previous VideoCD track
  >|    Next            Next VideoCD track

  Below the tapedeck gadgets are three additional gadgets:

  Load                  Load MPEG and start playback
  Prefs                 Set/change @{" preferences " LINK "Preferences"}
  Quit                  Exit program

  There is also a menu with all these options.


  Keyboard settings (display window has to be activated):
        - ' '                   Play
        - 'p' 'P'               Pause/Step
        - '<'                   Backward
        - '>'                   Forward
        - 'e' 'E'               Eject
        - '-'                   Previous
        - '+'                   Next

        - 'l' 'L'               Load
        - 's' 'S'               Prefs
        - 'q' 'Q' 'ESC'         Quit

        - 'f' 'F'               Full window size
        - 'r' 'R'               Reset window size
        - 'h' 'H'               Half window size
        - 'd' 'D'               Double window size
        - 'z' 'Z'               Zoom window
        - 'a' 'A'               Window alignment (improves AGA speed)
                                Should be selected this after dragging the
                                window when using an AGA screen

@ENDNODE



@NODE "Options" "Options"
@TOC "MAIN"


  Options
  =======

  The following Workbench ToolTypes/CLI arguments are supported:

  NAME=<MPEG filename>          The name of the MPEG file (with path)
  SCREEN                        Display on a 8/15/16/24bit screen
  PUBSCREEN=<pubscreen name>    Display on a public screen
  OVERLAY                       Display in an @{" overlay " LINK "Overlay"} window
                                (only possible with the CyberVision64/3D)
  COLORKEY                      Usage of color keying (see @{" Overlay " LINK "Overlay"})
  BACKDROP                      Usage of Workbench-Backdrop (see @{" Overlay " LINK "Overlay"})
  SCREENMODE=<screen mode name> Screen mode string
  DEPTH                         Screen depth
  DITHER=ORDERED|FS2            Dither mode for 8bit display (ordered or floyd-steinberg2)
  CDTRACK=<track number>        Playback from VideoCD/CD-I track
  FPS                           Number of frames per second
                                Two values have a special meaning:
                                 0 = as fast as defined in the MPEG file
                                -1 = as fast as possible
  FAST                          Faster decompression with lower quality
                                (slightly blurred picture)
  SKIP=<percentage>             Percentage of frames to be skipped (see also @{" FAQ " LINK "FAQ"})
  MUTEAUDIO                     Turn off audio output
  LOOP                          The MPEG film will be repeated after the last frame has been
                                displayed
  RESTART                       After playing one MPEG, the file requester pops up again
  STATS                         Print timing statistics after playing

@ENDNODE



@NODE "Preferences" "Preferences"
@TOC "MAIN"


  Preferences
  ===========

  Input
  -----
  Input                         Get MPEG stream from "AmigaDOS file" or "CD track"
  Default path                  Default path for file requester
  Device name                   SCSI device of CD-ROM drive
  Device unit                   SCSI unit of CD-ROM drive

  Display
  -------
  Display                       Type of display: "PubScreen", "Screen" or "WB-Backdrop"
  Overlay                       Type of overlay: "No overlay", "Overlay" or "Colorkey"
  Dithering                     Dither mode for 8bit display (ordered or floyd-steinberg2)
  PubScreen name                Name of PubScreen (if Display is set to "PubScreen")
  Screen mode                   Screen mode (if Display is set to "Screen")

  Speed
  -----
  FPS                           Number of frames per second
  Skip                          Percentage of frames to be skipped
  Fast                          Faster decompression with lower quality
                                (slightly blurred picture)

  Audio
  -----
  AHI unit                      AHI unit to playback sound (setup with SYS:Prefs/AHI)
  Volume                        Sound volume (0 = silent, 100 = loud)
  Balance                       Sound balance (-50 = left channel, 0 = centered,
                                50 = right channel)
  Mute                          Turn off audio output

  Misc
  ----
  Loop                          The MPEG film will be repeated after the last frame has been
                                displayed
  Statistics                    Print timing statistics after playing

@ENDNODE



@NODE "Overlay" "Overlay"
@TOC "MAIN"


  Overlay
  =======

  The CyberVision64/3D has a special feature compared to convential graphics cards: the overlay.
  An Overlay is in priciple a rectangular part of the screen, which cannot be hidden by windows
  or other picture elements. To put it in other words: an overlay is always the frontmost element
  in the hierarchy.

  Using the OVERLAY option has the following advantages:
  1) The CPU doesn't have to perform a colour space conversion (the conversion from YUV to RGB data
     is done by the graphics card).
  2) The graphics processor also scales the output. That means that it (virtually) doesn't matter
     if the video is shown in a small window or on the whole screen.
  So, with an overlay, the graphics output speed is increased strongly

  Unfortunately, by using an overlay some parts of the original Amiga "look and feel" get lost.
  The screen on which an overlay is displayed cannot be dragged anymore. Further, it sometimes looks
  strange if one wants to drag another window on top of the IsisPPC window and the IsisPPC output
  covers that window. But this effect can be eliminated by using the COLORKEY option (other window
  can lay above the IsisPPC window then).

  Colorkey
  ========

  When using color keying, the window background is filled with a specific color. The Overlay is
  only shown where this color is located. If another window lays above the IsisPPC window, the IsisPPC
  window's key color is covered by that window and only the non-covered part of the Overlay is
  displayed.

@ENDNODE



@NODE "History" "History"
@TOC "MAIN"


  History
  =======

  20.02.1998    V2.5    Now audio-only files can be played
                        Fixed bug with audio layer I mono files
  15.02.1998    V2.4    Double-buffering file I/O
  12.02.1998    V2.3    Design bug fixed
                        Output of audio statistics
  12.02.1998    V2.2    Improved Prefs design
                        New Prefs subsection "Audio"
                        Optimized audio decoder for layers II and III
  06.02.1998    V2.1    Align menu on AGA screens
  24.01.1998    V2.0    Bugfixes, completely reworked major parts of program
  ??.11.1997    V1.20   first public release

@ENDNODE



@NODE "FAQ" "FAQ"
@TOC "MAIN"


  FAQ
  ===

  Q: When selecting an MPEG stream with audio, audio playback stutters.

  A: Increase the "Skip" value in the "Prefs" window to about 50. Click "Use".
     If audio still stutters, you'll have to increase the value even further.
     Values >=90 mean "skip all B-frames" and a value of 100 means "skip all
     B- and P-frames". Take a look at @{" MPEG video " LINK "MPEG video"} for an explanation of B-
     and P-frames.

     You might also improve speed a bit by using the FAST option.


  Q: I use IsisPPC on an AGA screen. When moving the display window, it gets
     really slow. Why is this and what can I do?

  A: For AGA display, image data must be converted from chunky to planar and
     then it is blitted into the Bitmap, which lies in ChipRAM. When the left
     edge of the display window is not a multiple of 32, data has to be
     shifted. This requires additional computations, which have to be done in
     (noncachable) ChipRAM - it gets real slow.
     When the left edge is a multiple of 32, however, the shifting doesn't
     need to be done. This improves speed on AGA machines drastically.
     The "Align" function (from the "Window"-Menu) moves the window in order
     to assure the left edge lies on a multiple of 32.
     So, always select "Align" from the menu after dragging the window.



@ENDNODE




@NODE "Bugs" "Bugs"
@TOC "MAIN"


  Bugs
  ====

  - When using the video overlay (option @{" OVERLAY " LINK "Overlay"}), sometimes patterns appear on the
    right hand side of the window. This is due to hardware bandwidth limitations and has
    nothing to do with IsisPPC as other programs using the overlay feature suffer from
    it as well. The effect gets even stronger when using the COLORKEY option.

    Solution:
    Use the "CGXMode" program to decrease the display mode's pixel clock. Check if those
    stripes still appear and decrease further if necessary.



  - If you should discover further bugs, please contact the @{" author " LINK "Author"}.

@ENDNODE



@NODE "Future" "Future"
@TOC "MAIN"


  Future plans
  ============

  - Index feature for VideoCDs/CD-Is with only one track

@ENDNODE



@NODE "Thank you" "Thanks"
@TOC "MAIN"


  Thanks to (alphabetical order)
  ==============================

  - Olaf Barthel, for gtlayout.library

  - Stefan Burstroem, for the audio decoder

  - Steve Krueger, for the excellent SAS/C (M68k and PPC) compilers

  - Frank Mariak, who gave me so much invaluable advice

  - Robert Reiswig, for the CyberGraphX, PPC, Osiris and Isis support pages and for the installer script

  - Ralph Schmidt, for ppc.library

  - Michael Siegel, for the BurnIt drivers and documentation

@ENDNODE



@NODE "Author" "Author"
@TOC "MAIN"


  Author
  ======

  André Osterhues
  Meitnerweg 13
  D-44227 Dortmund
  Germany

  e-mail: osiris@develop.phase5.de



  The latest version of IsisPPC (as well as of my other programs)
  can be found here:
  http://studserver.uni-dortmund.de/~su0583/

  Check out the official CyberGraphX support page at:
  http://www.vgr.com/

@ENDNODE
