Short: IFF ANIM DataType V1.12 Author: GISBURN@w-specht.rhein-ruhr.de (Roland Mainz) Uploader: GISBURN w-specht rhein-ruhr de (Roland Mainz) Type: util/dtype Replaces: util/dtype/animdtc0111.LhA Architecture: m68k-amigaos IFF ANIM DataType, a replacement for (little bit) buggy CBM anim.datatype. animation.datatype subclass. Shareware ! Starting with V1.8, anim.datatype is shareware. See "anim.datatype.doc/MAIN" for details Features are: - Can save it's local format. anim.datatype supports DTM_WRITE for it's local format, e.g you can save animations in IFF ANIM using this datatype. Supports currently IFF ANIM-3 as output format, other formats are on the way. Converters like "DTConvert" are now able to write IFF ANIM using this datatype :-) - Supports sound. Any sound (loaded with a sound.datatype subclass) can be attached to the animation. If you want, you can read-out this animation+sound as an IFF FILM stream (using DumpDTAnim (Aminet:gfx/conv/DumpDTAnim#?.LhA)) and make a playback using film.datatype. - Per-frame-colormaps (e.g. palatte change per frame). Using DBufDTAnim >= v1.2 (Aminet:gfx/show/DBufDTAnim) or animation.datatype V41, you can use this feature. - Supports all (currently) defined ANIM compression modes: - ANIM-0 ILBM BODY - ANIM-1 ILBM XOR (disabled, no test files) - ANIM-2 Long Delta mode - ANIM-3 Short Delta mode - ANIM-4 General Delta mode (disabled, no test files) - ANIM-5 Byte Delta mode - ANIM-6 Stereo Byte Delta mode - ANIM-7 Anim-5 compression using LONG/WORD data - ANIM-8 Anim-5 compression using LONG/WORD data - ANIM-J Eric Grahams compression format - Compression modes can be mixed in any way (e.g. ANIM-5 with ANIM-J etc.). - Interleave counts can have any value (not limited to 1 or 2 frames back), maybe 255. - Should be safer than the CBM version. Includes stack checking code and many asserts to avoid crashes. - Random frame access (even to deltas). - Supports clipboard as input. - Dynamic loading of frames (disk-based) or caching the whole anim in memory. - Preference file with various options and per project settings like - Viewmode ID - Frames Per Second Rate - VERBOSE option which shows the internal structure of the animation stream (used compression modes; animation dimensions and other attributes). - Sound attachment with - Volume control - Matches the "DataTypes" proposal. Future versions will implement: - Frame skipping (by compression type and/or by frame number). - Color cycling in an animation. Changes since last release (V1.11): V1.12 - Replaced the custom stack swapping code by my "standard" module. - Now the default FPS rate is 10 if animation.datatype is < V41. If V41 is running with ADTA_AdaptiveFPS, the fps is set to 60. - Fixed ModeID handling. The previous behaviour was that a 0 mode id causes the datatype to select it's own mode id. But 0 means LORES. Now the default is -1 (which means INVALID_ID), which causes the datatype to do it's own calculations. Fixed. - OM_DISPOSE now preserves Result2 (IoErr()) to avoid that an error code may get lost. V1.11 - Recompiled with SAS/C 6.58. May fix some mc68060 related problems. - Found the longstanding bug that animation.datatype V40.7 didn't free some frames. Reason is that ADTM_LOADFRAME may be used like "realloc". Now alf_UserData is checked; any given frame will be freed (ADTM_UNLOADFRAME). Fixed. - ADTM_UNLOADFRAME now clears alf_UserData to indicate that the frame has been freed. - Now supports anims deeper than 8 planes, but a colormap (e.g. a CMAP chunk) is still expected. - Fixed the bug that a free of the current frame caused an frame to be not freed. (The idea was to hold the current frame for following delta accesses; this has been replaced by the idea of the "posted free"). - Implemented the idea of a "posted free". For delta accesses, it's not very usefull to free the frame when the next frame needs it for it's delta access. Therefore, the anim.datatype now manages a "free list", where the free of the previous and the previous-previous frame will be posted until it is really not longer in use. - Fixed a bug in the LOADALL mode that the wrong previous frame was used (due a change in V1.10). - The single framenodes now caches a pointer to their previous frame. This should speed up loading a little bit. - If an animation has dynamic timing and the superclass (animation.datatype) has the ADTA_AdaptiveFPS flag set, the playback speed now defaults to 60 fps. - Saved an AllocVecPooled in ADTM_LOADFRAME by merging multiple delta buffer allocations to one allocation (which can hold the largest delta). - The stack swapping code now allocates it's memory without the MEMF_CLEAR flags, which should speed up things. - Removed BestModeIDA code, because animation.datatype does the same. - The options setting for DPaint brush compatibility patch worked wrong (the order was wrong). Now the options work as described. Fixed. - Fixed a bug in the encoder that the last color of a dynamic pallete as not copied (GetRGB32 got numcolors - 1 instead of numcolors). Fixed. ---- Bye, Roland