public static ulong Ebml_Write_Utf8_With_Id(this BinaryWriter writer, ulong id, string val)
{
byte[] data = Encoding.UTF8.GetBytes(val);
writer.Ebml_Write_Id(id);
writer.Ebml_Write_Num((ulong)data.Length);
ulong pos = (ulong)writer.BaseStream.Position;
writer.Write(data);
return pos;
}