[transform-swf-updates] Status report for week ending June 4th
Brought to you by:
smackay
From: News on r. b. a. p. f. T. S. f. J. <tra...@li...> - 2010-06-04 17:06:44
|
Breaking News: There will be an alpha release next week - there are only one or two random bugs left and all the tests are passing but I don't want to rush out a release on a Friday just in case I missed something. Since all the tests are passing it seems likely that a beta version will be released shortly - certainly before the end of June and hopefully in the next week or so. Progress this week: API Changes: Simplified Movie by moving the version, compressed, frameSize and frameRate attributes into a new class MovieHeader. Movie is now purely a container class. It is also easier to write custom decoders which for example only decode the meta data on a movie. The decodeFromStream() and encodeToStream methods on Movie are now private. Compressed Flash files contain a mix of uncompressed and compressed data therefore the stream passed to the method was not necessarily the stream used to handle the encoding / decoding. For writing the encoding stream has to be closed to ensure all data is flushed to the file. To do this the stream actually used had to be returned so the calling code could close the correct one. This was ugly so the Movie class was simplified to make it easier to write custom encoders and decoders when required. Added the method decodeFromUrl(URL) to Movie to make it easier to read files from a network. The method is simple with no reries if there is an error. If retry functionality is needed then a custom decoder i.e. your own version of Movie must be written - however that is really easy to do by simply copying the existing Movie class and modifying the read(URL) method. This is probably the last of the changes to public methods so the API can be considered extremely stable, if not actually frozen. Code Changes: Simplified Context so the variables are accessible directly. Moved classes that handle decoding of the different types of object to packages to minimise the number of import directives. Coalesced all widely used constants into the SWF class. Moved ImageTag from com.flagstone.transform.coder to com.flagstone.transform.image. Moved MovieTag from com.flagstone.transform.coder to com.flagstone.transform. Moved DefineTag from com.flagstone.transform.coder to com.flagstone.transform. Refactored (cleaned up) coder classes to make them more independent and removed unused code. Testing: Resolved the issue with decoding DefineFont3. This problem is a bug in Flash where the containsLayout flag is not set if the font definition is followed by a FontAlignment tag even though the font definition does contain layout information. Closed Tickets: #30 Upgrade coder classes to support streams directly. #49 Add Event which merges (and replaces) MovieClipEvent and ButtonEvent. #121 Update Maven assembly to generate jars for sources and docs. #126 Group reads and write of bit fields into byte accesses. #127 Remove length attribute when passing a stream to ImageDecoder. #128 Remove length attribute when passing a stream to SoundDecoder. #130 Upgrade JPGDecoder to filter extension blocks. Closed Conditionally: #131 SoundDecoders should only load data on demand. This is closed for MP3 files where frames are only loaded on demand but this cannot be imp'lemented for WAV files since the the FMT block which defines the sound may be decoded from a file after the DATA block which contains the sound samples. This means that a WAV file must be completely loaded into memory before it can be processed. Open Tickets: #122 Register and deploy to a central Maven repository. #125 Add support for decoding files with hidden actionscript. Regards, Stuart -- Flagstone Software Ltd. |