internal static int CalcBufferSize(Stream input)
{
// determine the size of byte buffer
int bufferSize = DefaultBufferSize;
if (input.CanSeek)
{
long len = input.Length;
if (len < bufferSize)
{
bufferSize = checked((int)len);
}
else if (len > MaxStreamLengthForDefaultBufferSize)
{
bufferSize = BiggerBufferSize;
}
}
// return the byte buffer size
return bufferSize;
}