public static ulong Ebml_Write_Sint_With_Id(this BinaryWriter writer, ulong id, long val)
{
int bytes = SintSize(val);
writer.Ebml_Write_Id(id);
writer.Ebml_Write_Num((ulong)bytes);
ulong pos = (ulong)writer.BaseStream.Position;
for (int i = bytes - 1; i >= 0; i--)
writer.Write((byte)(val >> (i * 8)));
return pos;
}