/* ** ** $VER: mpegvideo_datatype.guide 1.2 (31.10.96) ** mpegvideo.datatype 1.1 ** ** documentation ** ** (C) Copyright 1996 by Roland 'Gizzy' Mainz ** All Rights Reserved ** */ =================== mpegvideo.datatype documentation ================== =========================================================================== Datatypes class for mpeg video stream animations. Based on the CBM datatypes example source/ documents written by David Junod. =========================== Future ======================================== =========================================================================== I decided to contact the current owners of the animation.datatype code (AmigaTech., VisCorp etc.) because I want to do the official future development of animation.datatype (and picture.datatype, if possible). If there are any comments/ideas, bug reports etc., send them to me. I'm going to write an article to explain how a subclass of animation.datatype, the common pitfalls etc. Don't try this without my article. This text will also explain future improvements. | Warning: The __current__ behaviour of ADTM_UNLOADFRAME will be slightly | changed (in a compatible way for the existing CBM datatypes). Don't use | this method for now unless I or CBM says something else. If there is any interest for a "ssa.datatype" (the proDAD SSA animation format), I'll contact proDAD. ========================= Requirements ==================================== =========================================================================== - You need at least Kick/WB 3.0. | Many people wrote me that they cannot find an "animation.datatype" class. | Only the 3.1 release contains it. (Subclasses of) animation.datatype | can run under 3.0. - You need the "mathieeedoubbas.library" (V38 or higher) library in your LIBS: (or something equal) directory. - Much memory I've compiled the mpegvideo.datatype with plane 68000 code (not tested on a plane 68000 yet) to allow A500/A600/A1000 users to run the datatype. This is a major speed hole. Future releases may contain special compiled versions, if there is a request for them. =========================== Misc ========================================== =========================================================================== mpegvideo.datatype is a datatype to view mpeg system streams. It's a subclass of animation.datatype. This release was set up for various reasons: - First at all, to show that subclasses of animation.datatype aren't magic, hacks or something else. This datatype has been developed conforming to the "animation_dtc.doc" autodoc. The people who said that it's not possible to write a new subclass (except the CBM's IFF ANIM-5 and CDXL ones) are WRONG. - The people who said that animation.datatype is buggy are WRONG. There are only two non-serious and one serios bug (fixed by my "paranimdtcpatch"). The two non-serious bugs can simply surrounded by a subclass. All other crashes, hangs etc. are triggered by the CBM subclass ANIM (CDXL not tested yet) and stack overrun problems. INCREASE your stack size!! - To turn off the bug reports for my internal (and inofficial, non-public) testing releases which are travelling through the networks (delete them NOW !). All bug reports should be related to this (and the following) AMINET- Releases (except you are a BETA-tester). - To allow mc68000/mc68010 based AMIGA users the taste of real time video, if they have the required memory :-) (assumed, not tested). - To introduce the series of new animation.datatype subclasses like mpegvideo.datatype - mpeg video streams mpegsystem.datatype - mpeg system strams (video + audio) picmovie.datatype - build animations/movies from single pictures and sounds anim.datatype - iff anim-5/-7 datatype film.datatype - iff LIST FILM anims (interleaved ILBMs/8SVXs) moviesetter.datatype - GoldDisk moviesetter.datatype ssa.datatype - if any interest... - To test which response such a datatype will produce. - The "Computer '96" fair in Köln/Germany and the matching AminetCD 15. Now I fully support SAS/C for all my projects (SMakefile included). A matching DMakefile is on the way. ====================== Request for comments/help ========================== =========================================================================== 1. Who wrote animation.datatype and it's subclasses ? If you have any address, phone number, email (or something equal), please send me this. 2. Who owns the rights on the animation.datatype (source-)code 3. dito. amigaguide.(datatype|library) 4. email address (or something equal) of David N. Junod For my address, email etc. see below... =============================== Usage ===================================== =========================================================================== If the datatypes descriptor file was activated, any attempt to load an mpeg file using MultiView, AmigaGuide or SwitchWindow will load the entire animation. NOTE: This may be a long time. Each picture is loaded into memory. (I've tested a mpeg video stream from the german news "Tagesschau".) =========================== Installation ================================== =========================================================================== After unpacking this archive: Shell: - Unpack this archive and copy the mpegvideo.datatype to SYS:Classes/DataTypes: Copy CLONE FROM mpegvideo.datatype TO SYS:Classes/DataTypes/mpegvideo.datatype Then copy the datatypes descriptor into the DEVS:DataTypes directory Copy CLONE FROM "MPEG Video(%|.info)" TO DEVS:Datatypes/ ================================ BUGS ===================================== =========================================================================== - Even the current V1.2 makes output to the serial port. Will be fixed soon. (use sushi ((Aminet3|SET2c):dev/debug/sushi.lha). - Linking to an animation in an amigaguide.datatype object is currently not possible due a bug in amigaguide.datatype (not all required methods are passed to the animation). ->IF THERE IS A REQUEST, I will write a patch for amigaguide.datatype to fix this bug !!! - The datatype descriptor file is not the recommned way to identify a mpeg video stream. It should be replaced by code which do this work. See mpegvideo.datatype.doc for a complete list of all (removed/fixed etc.) bugs. BUG REPORTS should contain your machine (type, CPU, FPU etc.), additional hardware (graphics card and the emulation software) and your used software (KICK/WB3.0/3.1, cybergfx etc.) =============================== TODO ====================================== =========================================================================== >WARNING: This code is more than one year old. >I've only recompiled it with SAS/C 6.56, disabled HAM/HAM8/color output >and other features. Due a bug in the loader, an invalid (e.g. not 100% >conforming) mpeg video stream will CRASH your machine. Fixed in the >(currently 22.10.1996) state-of-the-art V1.8. This is not a bug >of animation.datatype! The above warning is now obsolete. I decided to rebuild the project from scatch (see autodoc for reasons). - Fix some inconsistensies - DMakefile - More time to rework this and other public projects ============================== SOURCE ===================================== =========================================================================== Sorry, I've removed the source. I've working on a releaseable form. See mpegvideo.datatype.doc for additional information. ============================= Copyright =================================== =========================================================================== Sorry, but in the V1.1 release, I've forgotten the COPYRIGHT notice. Here it is: (Because I don't have the original ones (my code was a mergin of mpeg_play 1.X, 2.0, I've taken them from the mpeg_play 2.0 distribution and from mpeg2decode).) The main work (the mpeg decoder etc.) is based upon mpeg_play 1.xx and 2.0, which is... Copyright (c) 1992 The Regents of the University of California. All rights reserved. Permission to use, copy, modify, and distribute this software and its documentation for any purpose, without fee, and without written agreement is hereby granted, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. 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. ... and the idct algorithm is based on jrevdct.c (also found in the mpeg_play package), which is Copyright (C) 1991, 1992, Thomas G. Lane. This file is part of the Independent JPEG Group's software. For conditions of distribution and use, see the accompanying README file. This implementation is based on an algorithm described in C. Loeffler, A. Ligtenberg and G. Moschytz, "Practical Fast 1-D DCT Algorithms with 11 Multiplications", Proc. Int'l. Conf. on Acoustics, Speech, and Signal Processing 1989 (ICASSP '89), pp. 988-991. =========================== Author's Request ============================== =========================================================================== By releasing this program I do not place any obligations on you, feel free to share this program with your friends (and enemies). If you want to blame me, report any bugs, or wants a new version send your letter to: Roland Mainz Hohenstaufenstraße 8 52388 Nörvenich GERMANY EMAIL is also available: Up to December 1996 I'm reachable using this email address: Reinhold.A.Mainz@KBV.DE Please put your name and address in your mails ! German mailers should add their phone numbers. Sorry, but I can only look once a month for mails. The entire "mpegvideo.datatype" package may be noncommercially redistributed, provided that the package is always distributed in it's complete form (including it's documentation). A small copy fee for media costs is okay but any kind of commercial distribution is strictly forbidden! Comments and suggestions how to improve this program are generally appreciated! Thanks to David Junod, who wrote the datatypes example code, Matt Dillon for his DICE, and Olaf 'Olsen' Barthel for his help, ideas and some text clips from his documentations.