private void OnHeaderChanged(RTMPMessage msg)
{
FlushContents();
var s = new MemoryStream();
using (s) {
using (var writer=new RTMPBinaryWriter(s, true)) {
writer.Write((byte)'F');
writer.Write((byte)'L');
writer.Write((byte)'V');
writer.Write((byte)1);
writer.Write((byte)5);
writer.WriteUInt32(9);
writer.WriteUInt32(0);
}
if (metadata!=null) WriteMessage(s, metadata, 0xFFFFFFFF);
if (audioHeader!=null) WriteMessage(s, audioHeader, 0xFFFFFFFF);
if (videoHeader!=null) WriteMessage(s, videoHeader, 0xFFFFFFFF);
}
streamIndex = TargetChannel.GenerateStreamID();
streamOrigin = DateTime.Now;
timestampOrigin = msg.Timestamp;
var bytes = s.ToArray();
ContentSink.OnContentHeader(new Content(streamIndex, TimeSpan.Zero, position, bytes));
position += bytes.Length;
}