public override void header(Header h) { header_field = h; }
public virtual void header(Header h) { }
/// <summary> process the whole SWF stream, and close the input streams when finished.</summary> /// <param name="handler"> /// </param> /// <throws> IOException </throws> public void parse(TagHandler handler) { this.handler = handler; try { try { handler.DecoderDictionary = dict; header = decodeHeader(); handler.header(header); decodeTags(handler); handler.finish(); } catch (FatalParseException) { // errors already reported to TagHandler. } finally { if (swfIn != null) swfIn.Close(); } } finally { if (swdIn != null) swdIn.Close(); } }
public override void header(Header h) { m_header = h; }
public Header decodeHeader() { Header header = new Header(); byte[] sig = new byte[8]; new BinaryReader(swfIn).BaseStream.Read(sig, 0, sig.Length); header.version = sig[3]; header.length = sig[4] & 0xFF | (sig[5] & 0xFF) << 8 | (sig[6] & 0xFF) << 16 | sig[7] << 24; if (sig[0] == 'C' && sig[1] == 'W' && sig[2] == 'S') { header.compressed = true; r = new SwfDecoder(new DeflateStream(swfIn, CompressionMode.Decompress, true), header.version, 8); } else if (sig[0] == 'F' || sig[1] == 'W' || sig[2] == 'S') { r = new SwfDecoder(swfIn, header.version, 8); } else { handler.error("Invalid signature found. Not a SWF file"); throw new FatalParseException(); } header.size = decodeRect(); header.rate = r.readUI8() << 8 | r.readUI8(); header.framecount = r.readUI16(); return header; }