MemoryStream DecompressSwfData(byte[] raw_swf_data) { var raw_reader = new SwfStreamReader(raw_swf_data); OriginalHeader = SwfShortHeader.Read(raw_reader); switch (OriginalHeader.Format) { case "FWS": return(new MemoryStream(raw_swf_data)); case "CWS": var rest_stream = SwfStreamReader.DecompressZBytes( raw_reader.ReadRest()); var new_short_header = new SwfShortHeader { Format = "FWS", Version = OriginalHeader.Version, FileLength = OriginalHeader.FileLength }; var uncompressed_stream = new MemoryStream(); SwfShortHeader.Write(new_short_header, uncompressed_stream); rest_stream.WriteTo(uncompressed_stream); uncompressed_stream.Position = 0; return(uncompressed_stream); default: throw new System.Exception(string.Format( "Unsupported swf format: {0}", OriginalHeader.Format)); } }
public static SwfLongHeader Read(SwfStreamReader reader) { return(new SwfLongHeader { ShortHeader = SwfShortHeader.Read(reader), FrameSize = SwfRect.Read(reader), FrameRate = reader.ReadFixedPoint_8_8(), FrameCount = reader.ReadUInt16() }); }