public override void OnServerHandshake(VideoServerHandshake handshake)
 {
     AvailableFormats = handshake.Formats;
     ActiveFormat     = AvailableFormats[0];
     SendClientHandshake(ActiveFormat);
     HandshakeDone = true;
 }
        public override void OnServerHandshake(VideoServerHandshake handshake)
        {
            AvailableFormats = handshake.Formats;
            ActiveFormat     = AvailableFormats[0];
            SendClientHandshake(ActiveFormat);
            HandshakeDone = true;

            FeedVideoFormat?.Invoke(this,
                                    new VideoFormatEventArgs(ActiveFormat));
        }
예제 #3
0
        public void TestVideoServerHandshake()
        {
            VideoServerHandshake packet = NanoPacketFactory
                                          .ParsePacket(ResourcesProvider.GetBytes("tcp_video_server_handshake.bin", ResourceType.Nano), _context)
                                          as VideoServerHandshake;

            Assert.NotNull(packet);
            Assert.NotNull(packet.Header);
            Assert.Equal <NanoChannel>(NanoChannel.Video, packet.Channel);

            Assert.Equal <NanoPayloadType>(NanoPayloadType.Streamer, packet.Header.PayloadType);

            Assert.Equal <StreamerFlags>(StreamerFlags.GotSeqAndPrev | StreamerFlags.Unknown1,
                                         packet.StreamerHeader.Flags);
            Assert.Equal <uint>(1, packet.StreamerHeader.SequenceNumber);
            Assert.Equal <uint>(0, packet.StreamerHeader.PreviousSequenceNumber);
            Assert.Equal <VideoPayloadType>(VideoPayloadType.ServerHandshake,
                                            (VideoPayloadType)packet.StreamerHeader.PacketType);

            Assert.Equal <uint>(5, packet.ProtocolVersion);
            Assert.Equal <uint>(1280, packet.Width);
            Assert.Equal <uint>(720, packet.Height);
            Assert.Equal <uint>(30, packet.FPS);
            Assert.Equal <ulong>(1495315092425, packet.ReferenceTimestamp);
            Assert.Equal <int>(4, packet.Formats.Length);

            Assert.Equal <uint>(30, packet.Formats[0].FPS);
            Assert.Equal <uint>(1280, packet.Formats[0].Width);
            Assert.Equal <uint>(720, packet.Formats[0].Height);
            Assert.Equal <VideoCodec>(VideoCodec.H264, packet.Formats[0].Codec);

            Assert.Equal <uint>(30, packet.Formats[1].FPS);
            Assert.Equal <uint>(960, packet.Formats[1].Width);
            Assert.Equal <uint>(540, packet.Formats[1].Height);
            Assert.Equal <VideoCodec>(VideoCodec.H264, packet.Formats[1].Codec);

            Assert.Equal <uint>(30, packet.Formats[2].FPS);
            Assert.Equal <uint>(640, packet.Formats[2].Width);
            Assert.Equal <uint>(360, packet.Formats[2].Height);
            Assert.Equal <VideoCodec>(VideoCodec.H264, packet.Formats[2].Codec);

            Assert.Equal <uint>(30, packet.Formats[3].FPS);
            Assert.Equal <uint>(320, packet.Formats[3].Width);
            Assert.Equal <uint>(180, packet.Formats[3].Height);
            Assert.Equal <VideoCodec>(VideoCodec.H264, packet.Formats[3].Codec);
        }
 public abstract void OnServerHandshake(VideoServerHandshake handshake);