static Stream ExtractSoundStream(SwfEntry entry) { var swe = (SwfSoundEntry)entry; var output = new MemoryStream((int)swe.Size); foreach (var chunk in swe.SoundStream) { output.Write(chunk.Data, 4, chunk.Data.Length - 4); } output.Position = 0; return(output); }
static Stream ExtractAudio(SwfEntry entry) { var chunk = entry.Chunk; int flags = chunk.Data[2]; int format = flags >> 4; if (2 == format) { return(new BinMemoryStream(chunk.Data, 9, chunk.Length - 9)); } int sample_rate = (flags >> 2) & 3; int bits_per_sample = (flags & 2) != 0 ? 16 : 8; int channels = (flags & 1) + 1; return(new BinMemoryStream(chunk.Data, 2, chunk.Length - 2)); }
static Stream ExtractChunkContents(SwfEntry entry) { var source = entry.Chunk; return(new BinMemoryStream(source.Data, 2, source.Length - 2)); }
static Stream ExtractChunk(SwfEntry entry) { return(new BinMemoryStream(entry.Chunk.Data)); }