cdxl.datatype Reference¶
BOOPSI datatype class reference for cdxl.datatype, synthesised from the AmigaOS NDK 3.2 Release 4 (Autodocs/cdxl).
Class properties¶
| Property | Value |
|---|---|
| Display name | cdxl.datatype |
| Group ID | GID_ANIMATION = MAKE_ID('a','n','i','m') (animation) |
| Superclass | animation.datatype |
| File format | CDXL (CD-ROM video stream) |
| Methods declared | 6 |
| Parent class page | animation.datatype |
Description¶
The cdxl data type, a sub-class of the animation.datatype, is used to load and play CDXL files.
Methods¶
Each method is declared in the autodoc METHODS block. Method implementations are inherited from the superclass unless noted otherwise in the parent's autodoc.
| Method | Purpose |
|---|---|
OM_NEW |
Create a new movie object from an CDXL. The source may be either a file or the clipboard. |
ADTM_LOADFRAME |
Load a specific frame of the ANIM. The frame is specified in the alf_Frame member of the adtFrame structure, see |
ADTM_LOADNEWFORMATFRAME |
identical to ADTM_LOADFRAME. |
ADTM_UNLOADFRAME |
forcibly unload all the data of the current frame and release its resources. (V45). |
ADTM_UNLOADNEWFORMATFRAME |
identical to ADTM_UNLOADFRAME. |
OM_GET |
retrieve attributes from the CDXL animation. The message is of type (struct OpGet *) and the following attributes are supported, in addition to that of the animation class: DTA_Methods: Retrieve list of supported methods. |
See also¶
animation.datatype
Release history (NDK 3.2 R4)¶
Excerpted from ReleaseNotes/cdxl-dt-RelNotes in the NDK 3.2 R4 distribution.
-------------------- AmigaOS 3.5/3.9 project -------------------------
cdxl 44.8 (9.3.1999)
- The autodocs now state correctly that input has to come
from a file and not from the clipboard.
- The object init code now does extensive error checking,
both to make sure that input comes from a file and that
there is sensible data in the CDXL file. Unfortunately,
there is very little data that identifies a CDXL format
file as such. We try to make the best of what is available.
- The code that determines the playback speed should be much
smarter than in previous revisions.
- Stereo CDXL files are now recognized as such. The audio
playback speed is adjusted accordingly.
- The frame loader now does extensive error checking and
no longer calls Seek() for every frame to decode.
- Since there are CDXL file with stereo sound track that
cannot be identified as such, I have added an option to
force playback in stereo. This is what the environment
variable "classes/datatypes/animation/cdxl/stereo" is for;
if set to 1, stereo playback is enabled. Note that the
sound.datatype implementation does not support stereo
playback yet, but this is being worked on.
cdxl 44.9 (12.3.1999)
- Implemented per-frame colour map changes. Again, this
is implemented as a user configurable option since it
takes up so much memory and time. The variable name
is "classes/datatypes/animation/cdxl/palettechanges".
- Now requires OS 3.1, animation.datatype V44 and
sound.datatype V44.
- Sound timing now takes precedence over playback
timing since the former should be more accurate.
- Implemented stereo sound playback; this includes
support for the ADTM_LOADNEWFORMATFRAME method.
cdxl 44.10 (13.3.1999)
- Added ADTM_UNLOADNEWFORMATFRAME method support,
required by the (again) updated animation.datatype.
cdxl 44.11 (14.3.1999)
- The frame loader now notices per-frame colour map
changes. I originally did not want to do this, but
there are only a few bytes to check per palette
to find out if the frame just loaded needs a
new palette. Support for the environment variable
for activating this feature has been removed.
cdxl 44.12 (15.3.1999)
- The set of methods supported by this DataTypes class
is now a superset of the methods offered by
animation.datatype; note that the superclass method
data is not constructed dynamically. I have just
duplicated the table found in the animation.datatype
source code and added the additional methods implemented
in this DataType.
cdxl 44.13 (27.3.1999)
- ADTM_UNLOADNEWFORMATFRAME method support somehow
didn't get implemented correctly. Now it works again.
- Per frame colour maps are now reused if possible.
cdxl 44.14 (12.4.1999)
- Now makes a copy of the superclass method list, then
adds its own methods. This is safer than making assumptions
about the methods supported by the superclass.
cdxl 44.15 (22.4.1999)
- Removed the environment variable option.
-------------------- AmigaOS 3.1.4.(1) project -----------------------
Changes for release 45.1 (14.8.2018)
- Fixed a race condition on library lifetime handling.
- Fixed a potential memory leak on library init.
Changes for release 45.2 (4.9.2018)
- Backported the changes from 44.16, see below:
- Changed all __aligned attributes
to a different method of
guaranteeing long word
alignment. cdxl 44.16
(10.5.1999)
Changes for release 45.3 (8.9.2018)
- Only minor changes and optimizations.
Changes for release 45.4 (10.9.2018)
- Fixed another race condition on LibOpen.
Changes for release 45.5 (12.9.2018)
- Forgot to align the size of the assembly class structure
with that of the C version, hence overrunning memory.
----------------------- AmigaOS 3.2 project --------------------------
Changes for cdxl 47.1 (1.4.2020):
- Doubled default speed, most game CDXL files play correctly now
Changes for cdxl 47.2 (4.4.2020):
- Reworked the speed management
- Defaults to more common 300 KB/s or x2 CD32 CD-ROM CDXL
- New EnvVariables to overide defaults
classes/datatypes/animation/cdxl/cdspeed
set playback speed in CD-ROM speed units (1-63) x1=150KB/s
classes/datatypes/animation/cdxl/speed
set playback speed in KB/s - overrides cdspeed var
classes/datatypes/animation/cdxl/stereo
Force stereo sound separartion for rare stereo tracks
with not correctly set stereo audio flag (needs testing)
Changes for cdxl 47.3 (5.4.2020):
- New EnvVariable to overide defaults
classes/datatypes/animation/cdxl/fps
set playback speed in FPS units (1-60), most files are 12fps
it's much easier for the user and we compute the rest
Changes for cdxl 47.4 (27.7.2020):
- Fix freeze to to not accepting steroe files that change stereo
bit after first frame (assumption is that first frame tells the
truth
- Fix DTA_Methods asking of supertype. stereo playback could never
have worked all these years. Unfortunately it seems some of the
the supporting datatypes is not quite up to the task yet of
playing streaming audio
Changes for cdxl 47.5 (09.9.2020):
- Now reads the fps setting from file at the same location AGAblaster
encodes it and not 0
- Decoding stereo now works (
Changes for cdxl 47.6 (10.12.2020):
- Oops it seems the fps was hardcoded to 15 by a mistake
- Actually let's just default to 12 fps and let user override from there
as 12fps seems like the most normal setting
Cross-references¶
datatypes.libraryReference — DataType API,NewDTObjectA(),DisposeDTObject(),DTA_*tagsanimation.datatypeReference — superclass; full method implementations live hereiffparse.libraryReference — IFF file format primitives (FORM/LIST/PROP/CAT chunks)
Source: AmigaOS NDK 3.2 Release 4, Autodocs/cdxl_dtc.doc, Include_H/datatypes/datatypes.h, ReleaseNotes/cdxl-dt-RelNotes.