public static int Ebml_Read_Sint(this BinaryReader reader, int size, out long number)
{
int n = 1;
if (size > 8)
throw new ArgumentException("Invalid size");
if (size == 0)
{
number = 0;
}
else
{
number = (sbyte)reader.ReadByte();
while (n++ < size)
{
byte b = reader.ReadByte();
number = (number << 8) | b;
}
}
return 0;
}