public BufferWithOffset(Stream s,bool forceRead = false , int length = -1)
{
if (s is MemoryStream && !forceRead)
{
Buffer = (s as MemoryStream).GetBuffer();
Offset = (int) (s as MemoryStream).Position;
//if (s is OutputStream) Offset += (int)(s as OutputStream).Consumed;
_length = (length==-1?(int)s.GetAvaliableByteCounts():length) + Offset;
}
else
{
Buffer = new byte[length == -1?s.Length - s.Position:length];
Offset = 0;
s.Read(Buffer, 0, Buffer.Length);
_length = Buffer.Length;
}
}
public byte this[int index]