public static ulong Ebml_Write_Float_With_Id(this BinaryWriter writer, ulong id, double val)
{
writer.Ebml_Write_Id(id);
writer.Ebml_Write_Num(4);
ulong pos = (ulong)writer.BaseStream.Position;
byte[] dBytes = BitConverter.GetBytes((float)val);
Array.Reverse(dBytes);
writer.Write(dBytes);
return pos;
}