public abstract bool TryReadContext(out IFormatContext context);
/*public bool TryReadPacket (out Packet packet) { packet = null; bool havePacket = false; List<byte[]> pagesOfData = new List<byte[]>(); bool streamIndexFound = false; int streamIndex = 0; while (!havePacket) { OggPage page; int i = 0; if (this.offset == 0 || this.offset == this.lastPage.Segments.Length) { if (!streamIndexFound && this.pageBuffer.Count != 0) page = this.pageBuffer.Dequeue(); else { page = ReadPage(); if (page == null) break; } if (!streamIndexFound) { streamIndexFound = true; streamIndex = page.StreamIndex; } else if (page.StreamIndex != streamIndex) { this.pageBuffer.Enqueue (page); continue; } } else { page = this.lastPage; i = this.offset; streamIndex = page.StreamIndex; } this.lastPage = page; int packetLength = 0; for (int s = i; s < page.Segments.Length; ++s) { byte len = (byte)page.Segments[s].Length; packetLength += len; if (len < 255) break; } byte[] packetData = new byte[packetLength]; int o = this.offset; for (; i < page.Segments.Length; ++i) { int segmentLength = page.Segments[i].Length; Buffer.BlockCopy (page.Segments[i], 0, packetData, (i - o) * 255, segmentLength); if (segmentLength < 255) { havePacket = true; break; } } pagesOfData.Add (packetData); this.offset = (i + 1 >= page.Segments.Length) ? 0 : i + 1; } if (havePacket) packet = new OggPacket (streamIndex, 0, this.lastPage.GranuleNumber, AssemblePacket (pagesOfData)); return havePacket; }*/ public bool TryReadContext(out IFormatContext context) { throw new NotImplementedException(); }
public bool TryReadContext(out IFormatContext context) { context = null; return(false); }
public static string[] ParseScriptLines(string scriptSource, IFormatContext formatContext) { return Parser.ParseScriptLines(scriptSource, formatContext); }
/*public bool TryReadPacket (out Packet packet) * { * packet = null; * * bool havePacket = false; * * List<byte[]> pagesOfData = new List<byte[]>(); * * bool streamIndexFound = false; * int streamIndex = 0; * * while (!havePacket) * { * OggPage page; int i = 0; * if (this.offset == 0 || this.offset == this.lastPage.Segments.Length) * { * if (!streamIndexFound && this.pageBuffer.Count != 0) * page = this.pageBuffer.Dequeue(); * else * { * page = ReadPage(); * if (page == null) * break; * } * * if (!streamIndexFound) * { * streamIndexFound = true; * streamIndex = page.StreamIndex; * } * else if (page.StreamIndex != streamIndex) * { * this.pageBuffer.Enqueue (page); * continue; * } * } * else * { * page = this.lastPage; * i = this.offset; * streamIndex = page.StreamIndex; * } * * this.lastPage = page; * * int packetLength = 0; * for (int s = i; s < page.Segments.Length; ++s) * { * byte len = (byte)page.Segments[s].Length; * packetLength += len; * * if (len < 255) * break; * } * * byte[] packetData = new byte[packetLength]; * * int o = this.offset; * for (; i < page.Segments.Length; ++i) * { * int segmentLength = page.Segments[i].Length; * Buffer.BlockCopy (page.Segments[i], 0, packetData, (i - o) * 255, segmentLength); * if (segmentLength < 255) * { * havePacket = true; * break; * } * } * * pagesOfData.Add (packetData); * * this.offset = (i + 1 >= page.Segments.Length) ? 0 : i + 1; * } * * if (havePacket) * packet = new OggPacket (streamIndex, 0, this.lastPage.GranuleNumber, AssemblePacket (pagesOfData)); * * return havePacket; * }*/ public bool TryReadContext(out IFormatContext context) { throw new NotImplementedException(); }