[transform-swf-updates] Status report for week ending May 28th (actually 29th)
Brought to you by:
smackay
From: News on r. b. a. p. f. T. S. f. J. <tra...@li...> - 2010-05-29 21:49:07
|
First: No alpha release yet. Progress this week: API Changes: Removed the identifier attribute from Movie. While getting movie to keep track of the identifiers used for object definitions was somewhat useful, it complicated the code and slowed the decoding of Movies. Now you will have to maintain the counter in your code rather than relying on Movie to do it. Separated out the Flash Video (FLV) related code. It will be added to a new project. Code Changes: Encoding and Decoding Movies is now based on streams. The SWFDecoder now supports an internal buffer where the data is loaded from the underlying stream before being decoded. Similarly the SWFEncoder uses the buffer to write to the underlying stream in blocks. Removed as many bit fields reads and writes, instead grouping them into calls to readByte / writeByte. These two changed combined seem to have contributed to a MAJOR increase in speed - the code is at least twice as fast. The increase is probably a result of the code changes but perhaps more importantly the reduction in memory use - it is certainly obvious when the garbage collector runs between tests. Previously tests on the real-world Flash files has to run with the JVM setting -Xmx256m. Now that is no longer necessary :) Testing: There are still a few issues when decoding DefineFont3 objects. Most decode without any problems but there are a few cases that cause unbderflow errors. The root cause is not known - there might be some functionality that is poorly described or not listed in Adobe's file format specification. Planned for next week: Adding support for streams took waaaaay more work then expected so next week's plan is the same plan as last week: More debugging and a decision on whether to have an alpha release of the code. Overall Progress: Transform now fully supports Flash 10. Now passing tests to decode, encode and copy 300 real-world Flash 8 and Flash 9 files - except some DefineFont3 tags. AWTDecoder is able to render text using Java AWT Fonts. TTFDecoder is able to render text using TrueType Fonts. BMPDecoder is passing all acceptance tests for Window BMP images. JPGDecoder is passing all acceptance tests for JPEG images. PNGDecoder is passing all acceptance tests for JPEG images. BufferedImageDecoder is mostly passing acceptance tests for PNGimages. WAVDecoder is passing tests for generating event and streaming sounds. MP3Decoder is passing tests for generating event and streaming sounds. Canvas is passing tests for drawing shapes. Open Tickets: #49 - Add Event which merges (and replaces) MovieClipEvent and ButtonEvent. #125 - Add support for decoding files with hidden actionscript. #121 - Update Maven assembly to generate jars for sources and docs. #122 - Register and deploy to a central Maven repository. #126 - Group reads and write of bit fields into byte accesses. Closed - but Trac is not updated yet. #30 - Upgrade coder classes to support streams directly. #43 - Sound decoders do not report incorrect sample rates. General Tasks Still ToDo: Assess test coverage. Fix problems reported by PMD. Complete suite of Unit Tests. Remove all the magic numbers reported by CheckStyle Add javadoc comments for all methods and fields. Review the javadoc comments. It has been a good week with great progress. Stuart -- Flagstone Software Ltd. |