Short:        MPEG video datatype V2.6
Author:       GISBURN@w-specht.rhein-ruhr.de (Roland Mainz)
Uploader:     GISBURN w-specht rhein-ruhr de (Roland Mainz)
Type:         util/dtype
Replaces:     util/dtype/mpegvdt205.LhA
Architecture: m68k-amigaos; ppc-powerup

----

Does NOT replace: util/dtype/mpvdtc0111.lha (or any other V1 version)

----

MPEG video datatype, which is able to play mpeg 1/2 video streams.
animation.datatype subclass.

Version V2.6, gamma3 version (still gamma, sorry)

----


WARNING: Please read all suppied docs carefully, please !
         And read them all and complete _before_ testing !
         (Some points in the docs are unfinished (sorry).)

The file "mpegvideo.datatype.doc" contains a MAIN section with more
detailed info.

-----

CONTENTS OF THE GAMMA2 ARCHIVE:

- The "mpegvideo.datatype" itself
  - 000ieee/   for all Amigas, including plane m68000 machines
  - 020ieee/   for Amigas which have at least a m68020 CPU
  - 020881/    for Amigas which have at least a m68020 CPU and a 68881 FPU
  - 040881/    for Amigas which have at least a m68040 CPU
  - 060881/    for Amigas which have at least a m68040 CPU
  - 040ppc/    for Amigas which use Phase5's PPC board
               (m68k-060/50 and PPC/200 preferred)

- "DTConvert", a small utility to use the encoder
  (e.g. read IFF ANIM,     write MPEG Video     or
        read AVI,          write MPEG Video     or
        read CDXL,         write MPEG Video     or
        read GIF Animation write MPEG Video  or ...
        and so on, you only need a datatype which supports
        writing in it's local format, and then you can use DTConvert
        for conversion)

  WARNING: The original CBM anim.datatype is very buggy and crashes
           your system !

Using the decoder:
- Install the datatype and have fun :-)
  The "preferences" section in "mpegvideo.datatype.doc" describes how to
  get CyberGFX output

- The encoder. The encoder encodes MPEG-1 per default, but
  can also be configured to write MPEG-2

  Take a look into the (uncompleted) "preferences" section
  how to configure the encoder...

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

NAME
    mpegvideo.datatype

FEATURES
    - Supports MPEG-2 (excluding temporal and spatial scalability).

    - Realtime-playback. In the default mode, the mpegvideo.datatype
      tries to create a realtime-playback
      (this mode needs __MUCH__ memory because the datatype acts as a
      ram player in this mode).

    - Gfx-Card support:
        - CyberGFX-support: mpegvideo.datatype's decoder supports
          15/16/24 cybergfx bitmaps
          (requires animation.datatype V41)

        - P96 support: Additionally to the CyberGFX support,
          mpegvideo.datatype supports the P96 YUV-Bitmap type,
          which allows a custom animation.datatype player to use
          gfx-card overlays.
          Another benefit is that remapping is then the job of
          the gfxcard (-software), which may speed up things...
          (requires animation.datatype V41)

        - For those people which have no gfxcard-software like
          CyberGFX or P96, the datatype is able to create
          planar 24 bit images that applications which use
          animation.datatype subclasses for decoding (WildFire
          for example) can use 24 bit.

    - No more crashing with streams like "ID4.mpg" (which crashes
      many software decoders like mpegvideo.datatype V1.xx).

    - Truecolor-Output now works

    - Two playback modes:
      - Decode to ram, then play
      - Decode and play at the same time

    - A fully-working encoder which supports MPEG-1 and MPEG-2
      (excluding temporal and spatial scalability).

    - New design, which allows to split decoder and encoder in
      multiple theads. DataTypes class is seperated from the
      decoder and encoder parts.
      Main purpose is to get ready for the PPC version of the
      mpegvideo.datatype, and to support parallel encoding/decoding
      using multiple PPCs/mc680xx.

    - Support for mpeg decoder hardware.
      If the Amiga has a "cd32mpeg.device" compatible device
      which supports the MPEGCMD_READFRAMEYUV device command,
      mpegvideo.datatype can use this device for decoding
      (which may limit to MPEG-1. I don't know any MPEG-2 hardware
      for the Amiga. Anyway, this feature is experimental and
      untested yet, sorry).

    - Different versions for different CPU/FPU combinations,
      __including__ the mc68000/mc68010 and the PPC.

    - Supports VMM, __even__ for CyberGFX bitmap output.
      For 15/16/24 bit output modes the ram usage has been
      reduced.

    - Supports scaling of output. The output can be enlarged or
      shrinked on demand.

    - Preferences with global, local and per-project settings
      which controlles both encoder and decoder.

    - Progress gauge with time-to-go information

TODO
    - Fixing the bounch of bugs which may occur in the testing
      cycle.

    - The mpeg decoder hardware support is untested. The code
      has been adapted from code which has been written for
      the cd32mpeg.device, but because I sold my CD32 (a big
      mistake :-(  ), I cannot test it.

    - Fixing the P96 YUV-code, which is broken since V2.0

    - An INTERPOLATE mode/option for bitmap scaling.

    - Fixing the crap message handling in the PPC version which 
      causes an unneccesary slowdown

----

Any more features wanted ?

----

Bye,
Roland