MPEG Video Software Decoder (Version 2.0; Jan 27, 1993) Lawrence A. Rowe, Ketan Patel, and Brian Smith Computer Science Division-EECS, Univ. of Calif. at Berkeley Amiga version 2.01 (Feb 12 1993) by Michael Balzer Student of Computer Science, Univ. of Dortmund, Germany Intro ===== This is the third release of the first public domain MPEG viewer for the Commodore Amiga. Please also read the file "README" for some general information about this software. This player needs at least a 68020 CPU (and 881 FPU). Compile yourself if you need a 68000 version, or you might give Kamran Karimi's Run68017 68020 emulation a try but I don't guarantee it will work. AmigaOS 2.04 or higher required. This player needs Markus Wild's ixemul.library. As this lib still doesn't seem to exist on everyone's machines, I have included it with this distribution. For the complete GCC distribution contact your next FTP server. And... NO, THIS PLAYER DOESN'T NEED X-WINDOWS! Changes against V1.22 (second release): * Release 1.23 (not released due to 2.01): * - Dither mono & threshold now work (fast!) * - New option: -saveiff framename_%d.iff (guess for what ;-) * Saving currently forces screen mode. No support for 24 bit yet * - Added new option: -amiga screen:mode/depth/width/height, * reworked option dependancies * * Release 2.01 (Feb 12 1993): * - Based upon the new 2.0 release of the mpeg player for UNIX * - No need to enhance color allocation, as the new player * allows to set the range values (ncolors = l_rng*cr_rng*cb_rng) * - 24 Bit IFF save mode implemented Amiga Specials ============== Get the usage info by calling "mpeg_play -?". There are two additional options in the amiga version, each needing one parameter: 1a) -amiga window This lets the player display the animation in a window on your workbench (better: default public screen). If this option is not specified, the player will open an own screen. 1b) -amiga screen[:id[/depth[/width[/height]]]] This tells the player to open the specified screen without opening the ScreenMode request. All parameters are optional, a plain "-amiga screen" will open a screen of your default display mode (lores) with width 320, height 200 and depth 8 (256 colors). You can get the ID for a mode by a) looking into graphics/modeid.h or b) leaving the screen option away and choosing the preferred display mode from the screen mode requester, the player will then print the according option text before playing the anim. Example usage: "-amiga screen:0x91000/7" will open a DoubleNTSC lores screen of size 320 x 200 with 128 colors. 2) -saveiff framename_%04d.iff This one is usefull for converting an MPEG anim to an IFF anim. The player will save each frame to disk, using the given name template. The format string should contain something like "%04d", which will be replaced by the frame number. The leading "0" means the number will have leading '0's if it's shorter than the second value ("4" = 4 digits), you should always use this because otherwise it's very difficult to sort the frames afterwards (e.g. frame10 will come before frame2). When saving, loop mode is automatically disabled and the player will use a custom screen for output (unless you are saving 24 bit true color ILBMs by specifying "-dither color"). You should use exactly the resolution of the anim (player prints it at the beginning) for the screen if saving, in order to reduce the size of the frames (the player saves the complete screen). I have included John Bickers' "mkanim" tool and a script file that does the conversion of the single frames into an ANIM5 animation for you. Have a look at it, it's quite simple and customizable. Example usages ============== 1> mpeg_play movies/micky.mpg This will ask you for the screenmode and display the anim on a custom screen. 2> mpeg_play -amiga screen movies/micky.mpg This will open a 320x200x8 lores screen and display the anim. 3> mpeg_play -amiga window movies/micky.mpg This will display the anim in a window on the workbench. 4> mpeg_play -amiga screen:0/8/160/120 -saveiff ram:micky%02d.iff movies/micky.mpg This will display micky.mpg on a 160x120x8 lores screen and save the frames as ram:micky00.iff, ram:micky01.iff, ... You might then cd to ram: and type "makeanim micky" to generate an IFF anim from the frames. Be carefull when saving single frames - there fit a lot of pictures in those mpeg anims! For example, I have converted the "iicm.mpg" anim (a very nice one!), it contains 800 frames and the IFF anim file's size is 6.3 MB... (but it's a lot of fun to view it in full speed :-) 5> mpeg_play -dither color -saveiff ram:micky%05d.i24 movies/micky.mpg Will display nothing but save each frame in IFF 24 bit format to ram:micky00000.i24, ram:micky00001.i24 and so on. When displaying on less than 128 color screens, you should experiment with the range options '-l_range', '-cr_range' and '-cb_range'. Normal values for them are 8, 4 and 4 respectively. Multiplying the three values gives you the amount of colors allocated, so on 32 colors you should try e.g. 8, 2 and 2 or 4, 2 and 4. There are several dithering methods implemented in this player, you should try them all to get a feeling of what they look like. There's still no HAM support, but I'll think about it. Amiga Bugs ========== There's a known problem: When breaking the player while displaying on a custom screen, the player sometimes crashes. I don't know what this problem might be, I guess it's in the GCC's library. Any hints are very welcome. Domino Specials =============== Attention, DOMINO owners! The current Domino software (Intuition emulator) has an ugly bug (took me one day to find out), all graphics calls are limited to a maximum of 5 planes (32 colors) when running on the Domino! This affects displaying and saving of both palette modes with more than 32 colors _and_ true color mode, as I use standard graphics calls for 24 bit as well (3 * 8 bit). Fortunately you don't have to disable the Domino software completely, switching to a normal Amiga display mode before running the mpeg player is sufficient. Why I don't use the Domino's VGA and HiColor modes? I really would like to, but how? I'm waiting for XPert finally releasing their domino.library... Speed ===== Don't expect this player to be the Speedy Gonzales of anim players. On an Amiga 4000, you get a maximum of about 11 frames per second (dithering threshold on 2 color NTSC lores screen) (same on A2000/2630/32MHz: 5 fps), normal rating will be around 4 to 5 frames per second on an A4000. Nevertheless, this release of the player is on my A4000 nearly as fast as on a SUN Sparcstation IPC. I think, many time is spent converting the data to plane format. I would love to see future Amigas offering chunky modes... Source ====== There are two archives, one containing the binaries (and other usefull stuff) and the other one containing the sources (split up into original UNIX part plus special Amiga changes & extensions). I included the necessary X11 header files (don't think, many Amiga programmers have them around). The Makefile and code are for Markus Wild's port of the famous GNU GCC C compiler (thanks again, Markus!). Don't forget to build an amiga.lib version 39.x for your GCC before trying to compile the code. Famous last words ================= Send me email if you have questions, comments or suggestions! UseNet: balzer@heike.informatik.uni-dortmund.de or at home: bilbo@bagsend.aworld.de Z-Net: m.balzer@aworld.zer Have Fun! Michael