protected override void SerializeToStream(CitpBinaryWriter writer) { base.SerializeToStream(writer); writer.Write(SourceIdentifier); writer.Write(FrameFormat.GetCustomAttribute <CitpId>().Id); writer.Write(FrameWidth); writer.Write(FrameHeight); writer.Write(Fps); writer.Write(Timeout); }
protected override void SerializeToStream(CitpBinaryWriter writer) { base.SerializeToStream(writer); switch (Version) { case MsexVersion.Version1_0: case MsexVersion.Version1_1: writer.Write(SourceIdentifier); writer.Write(FrameFormat.GetCustomAttribute <CitpId>().Id); writer.Write(FrameWidth); writer.Write(FrameHeight); writer.Write((ushort)FrameBuffer.Length); writer.Write(FrameBuffer); break; case MsexVersion.Version1_2: writer.Write(MediaServerUuid); writer.Write(SourceIdentifier); writer.Write(FrameFormat.GetCustomAttribute <CitpId>().Id); writer.Write(FrameWidth); writer.Write(FrameHeight); if (FrameFormat == MsexImageFormat.FragmentedJpeg || FrameFormat == MsexImageFormat.FragmentedPng) { if (FragmentInfo == null) { throw new InvalidOperationException("FragmentInfo must be set when sending a fragmented image format"); } writer.Write((ushort)(FrameBuffer.Length + FragmentPreamble.ByteLength)); writer.Write(FragmentInfo.FrameIndex); writer.Write(FragmentInfo.FragmentCount); writer.Write(FragmentInfo.FragmentIndex); writer.Write(FragmentInfo.FragmentByteOffset); } else { writer.Write((ushort)FrameBuffer.Length); } writer.Write(FrameBuffer); break; } }