private static void DescribeBext(StringBuilder sb, byte[] data) { int offset = 0; sb.AppendFormat("Description: {0}\r\n", ByteArrayExtensions.DecodeAsString(data, 0, 256, ASCIIEncoding.ASCII)); offset += 256; sb.AppendFormat("Originator: {0}\r\n", ByteArrayExtensions.DecodeAsString(data, offset, 32, ASCIIEncoding.ASCII)); offset += 32; sb.AppendFormat("Originator Reference: {0}\r\n", ByteArrayExtensions.DecodeAsString(data, offset, 32, ASCIIEncoding.ASCII)); offset += 32; sb.AppendFormat("Origination Date: {0}\r\n", ByteArrayExtensions.DecodeAsString(data, offset, 10, ASCIIEncoding.ASCII)); offset += 10; sb.AppendFormat("Origination Time: {0}\r\n", ByteArrayExtensions.DecodeAsString(data, offset, 8, ASCIIEncoding.ASCII)); offset += 8; sb.AppendFormat("Time Reference Low: {0}\r\n", BitConverter.ToUInt32(data, offset)); offset += 4; sb.AppendFormat("Time Reference High: {0}\r\n", BitConverter.ToUInt32(data, offset)); offset += 4; sb.AppendFormat("Version: {0}\r\n", BitConverter.ToUInt16(data, offset)); offset += 2; sb.AppendFormat("SMPTE UMID: {0}\r\n", ByteArrayExtensions.DecodeAsString(data, offset, 64, Encoding.ASCII)); //byte[] smpteumid = 64 bytes; offset += 64; sb.AppendFormat("Loudness Value: {0}\r\n", BitConverter.ToUInt16(data, offset)); offset += 2; sb.AppendFormat("Loudness Range: {0}\r\n", BitConverter.ToUInt16(data, offset)); offset += 2; sb.AppendFormat("Max True Peak Level: {0}\r\n", BitConverter.ToUInt16(data, offset)); offset += 2; sb.AppendFormat("Max Momentary Loudness: {0}\r\n", BitConverter.ToUInt16(data, offset)); offset += 2; sb.AppendFormat("Max short term loudness: {0}\r\n", BitConverter.ToUInt16(data, offset)); offset += 2; //byte[] reserved = 180 bytes; offset += 180; sb.AppendFormat("Coding History: {0}\r\n", ByteArrayExtensions.DecodeAsString(data, offset, data.Length - offset, Encoding.ASCII)); }