------------------------------------------------------------
  Release Notes for Transform SWF for Java, Version 2.1.4.
------------------------------------------------------------

The release will improve the test coverage by adding more TestNG suites and 
unit test classes. Bug fixes are also included.


Bug Fixes
    7936. Error in setting encoding table for FSDefineJPEGImage2 and FSDefineJPEGImage3.
    8748. FSDefineFont[2] fails to handle buggy fonts
    8749. FSVideoFrame does not set identifier.
    8750. FSText does not encode records without style information.
    8751. FSTextConstructor.defineTextBlock() bounding box is incorrect.
    8866. FSImageConstructor: encoding argument is not checked.
        
Class Changes
    None
    
Testing Changes
    Restructured test data.

Package Changes
    None

  
-------------
  Bug Fixes  
-------------

7936. Error in setting encoding table for FSDefineJPEGImage2 and FSDefineJPEGImage3.

When a null reference is passed to the setEncodingTable method on the classes
FSDefineJPEGImage2 and FSDefineJPEGImage3 an empty encoding table is created
and assigned to the instance variable. However a programming error meant that 
the table was create but not assigned correctly. This is now fixed.

8748. FSDefineFont[2] fails to handle buggy fonts.

In the FSDefineFont and FSDefineFont2 classes the index table whose entries 
point to the start of each glyph is now used rather than starting decoding a 
glyph from where the last one finished. The makes the process more robust in 
the face of errors.

8749. FSVideoFrame does not set identifier.

The identifier attribute was not using the value passed as an argument in the 
constructor: public FSVideoFrame(int anIdentifier, int frameNumber, byte[] data)
Instead the attribute was being assigned to itself. This is now fixed.

8750. FSText does not encode records without style information.

If an FSText object did not contain any style information (font, color or x and
y offset) then the object was not encoded correctly. This is now fixed.

8751. FSTextConstructor.defineTextBlock() bounding box is incorrect.

The bounding box for a block of text was not taking into account the descent of
the last line of the block. The result was that the bounding did not completely 
enclose the text preventing it from being redrawn completely if the text was 
animated or placed close to or in front of another obect. This is now fixed.

8776. Indexed PNG images lose alpha.

When the FSImageConstructor is used to define a flash object for an indexed PNG
image any colours which are completely transparent are now set to black to
prevent the the alpha channel information from being ignored and an opaque 
colour displayed instead.

8866. FSImageConstructor: encoding argument is not checked.

The setIndexedImage() and setColorImage() methods each have an argument, encoding
which specified the format of the encoded data also passed as an argument. The 
encoding argument will be assigned to the format attribute. The methods now 
correctly check that the encoding argument is checked, previously they were
incorrectly checking the format (which was already set to a valid value). The 
logic of the test was flawed and an IllegalArgumentException was being thrown.

-----------------
  Class Changes  
-----------------

None

-------------------
  Testing Changes  
-------------------

1. Restructured test data

The test/data directory was restructured to reduce the number of files shipped
with each release. Now specific test suites for each of different files types 
handled by the the constructor classes in the com.flagstone.transform.util are 
included.

Sample flash files are also included. Each file contains a single type of data
structure and provide some examples extracted from real-world flash files. The 
formal testing of the classes in the com.flagstone.transform package will be 
carried out using classes located in com.flagstone.transform.test. The other 
classes will require on the test data sets.

-------------------
  Package Changes  
-------------------

None
