
 MPEG decoder (03-September-1996)
 ================================

 Version 1.08 by Sren Lange and Henrik Bjerregaard Pedersen

 This is our port of version 2.0 of the Berkeley MPEG-1 decoder.
 We gratefully acknowledge the work of the Computer Science Division-EECS,
 Univ. of Calif. at Berkeley.

 This program is Public Domain, and is provided 'as is'. The authors cannot
 accept any liability for any damage or loss of any kind as a result of the
 use of this program.
 You are allowed to copy, distribute and use this program for any
 non-commercial purposes, as long as this file is included unaltered.

 Bug report, suggestions (and donations!!!) to

 Sren Lange
 Aldershvilevej 113, 1, -1
 DK-2880 Bagsvaerd
 Denmark
 email: lange@login.dknet.dk

 or

 Henrik Bjerregaard Pedersen
 Bellahoejvej 126 st. th.
 DK-2720 Vanlose
 Denmark
 email: henrik@login.dknet.dk


 MPEG filetype
 -------------
 The Acorn allocated filetype for MPEG is &BF8.


 Using the decoder
 -----------------
 *MPEGDecode [-leave] [-at <x> <y>] [-memory <address>] [<format>]
             <mpegfile> [<directory>]


 (ie.  *MPEGDecode <mpegfile>                       to display the file

  or   *MPEGDecode <mpegfile> <directory>           to save the frames as PBM

  or   *MPEGDecode sprite16 <mpegfile> <directory>  to save the frames as
                                                    16bpp new format sprites

  or   *MPEGDecode -at 0 0 <mpegfile>               to display the movie in
                                                    the bottom left corner of
                                                    the screen

  or   *MPEGDecode -leave <mpegfile>                to display the movie and
                                                    leave the last frame on
                                                    screen

  or   *MPEGDecode -leave -at 0 0 <mpegfile>        to display the movie in
                                                    the bottom left corner and
                                                    leave the last frame on
                                                    screen
  or   *MPEGDecode -memory <address> <mpegfile>     to output to a block in
                                                    memory)


 When saving the frames:

 Possible formats are
 PBM (default), sprite, sprite16, sprite24, greysprite, P15, Replay.

 The directory will be created if it doesn't already exist. Frame number N
 is stored as '<directory>.<N DIV4096>.<(N DIV64)MOD64>.<N MOD64>'.
 Eg. frame number 67 will be saved as '<directory>.0.1.3'.


 When displaying the frames:

 Pressing MENU will abort the playback; pressing ADJUST will pause the film.


 Output to memory:

 The '-memory' switch forces MPEGDecode to write the data to an area in
the memory. This can be in the RMA or in a dynamic area; MPEGDecode doesn't
care and simply crashes if you call it with an illegal address!
 You should not uses this switch!!!!


 History
 -------
 08-Jan-1995
 1.01:  - B-frames are output in the correct order.
        - 'Done!' is no longer displayed at the end.
        - The frames may be displayed (in 4, 8, 16 or 32 bpp modes).

 14-Jan-1995
 1.02:  - Commandline arguments cleaned up.
        - 50-75% faster display.
        - 50% faster saving.
        - 5-7% faster decoding (overall typically 15-20% faster than 1.01).
        - File operations done using DeskLib rather than CLib.
        - Correct positioning of frames on-screen in non-square pixel modes.

 26-Jan-1995
 1.03:  - Reading is done using CLib, writing still uses DeskLib.
        - Adobted the sprites from Paul LeBeaus !MPEG.

 10-Feb-1995
 1.04:  - Can output in several different formats.
        - Fixed small bug preventing some large movies to be displayed in
          rectangular pixel modes.
        - Screen is redrawn when exiting. Notice: This requires that !MPEG
          isn't stored in a write-protected directory. It is all done in a
          rather messy way. Sorry.
        - Improved malloc() check.

 18-Apr-1995
 1.05:  - Improved redrawing when exiting. It is no longer required that
          the decoder is stored in a non-write-protected directory.
        - Correct frame height. Used to be a multiple of 16 pixels always.
        - New output format - Replay; this saves the frames in an uncompressed
          format 2 Replay movie. If the decoding is aborted prematurely, the
          file will be left open.
        - New output format - P15; this is a 15bpp version of PBM.
        - Much faster saving of 'greysprite' and 'sprite24'.
        - The filetype is set when a frame is saved.

 11-May-1995
 1.06:  - The movie can be displayed at any point on the screen.
        - Redrawing when the movie ends can be prevented.
        - Playback control can be done using the mouse buttons.
        - The colour lookup-tables are now specified in the !Run and !Boot
          files. You can replace them with '<ARMovie$Dir>.MovingLine.4rgb11c01'
          and '<ARMovie$Dir>.MovingLine.8rgb11'.
        - Output to memory.

 04-Jun-1995
 1.07:  - 'helpful' sprite included in the ARMovies generated by specifying
          'Replay' as output format.

 03-Sep-1996
 1.08:  - Save as Replay used to crash some machines (due to DeskLib???).
          Hopefully it works better now.
        - Never runs faster than 25 frames/second! Not likely to be a problem
          on A5000s, but on a StrongARM machines it may be possible for small
          movies.

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