コード例 #1
0
ファイル: AMFCall.cs プロジェクト: xedoc/rtmpproxy
        public byte[] Serialize()
        {
            var result = new MemoryStream();
            var parameters = new byte[0];

            foreach (var p in Properties)
                parameters = ArrayUtil.ConcatArrays(parameters, p.Serialize());

            var resultTitle = new AMFProperty("", Name, AMF0Types.String).Serialize();

            var header = new Header()
            {
                ChunkStreamID = 3,
                Format = 0,
                StreamID = 0,
                Timestamp = 0,
                TypeID = 0x14,
                BodySize = parameters.Length + resultTitle.Length
            }.Serialize();

            result.Write(header, 0 ,header.Length);
            result.Write( resultTitle, 0, resultTitle.Length  );
            result.Write(parameters, 0, parameters.Length);

            result.Flush();

            var byteResult = result.ToArray();
            Length = byteResult.Length;
            return byteResult;
        }
コード例 #2
0
ファイル: AMFCall.cs プロジェクト: xedoc/rtmpproxy
        public byte[] Serialize()
        {
            var result     = new MemoryStream();
            var parameters = new byte[0];

            foreach (var p in Properties)
            {
                parameters = ArrayUtil.ConcatArrays(parameters, p.Serialize());
            }

            var resultTitle = new AMFProperty("", Name, AMF0Types.String).Serialize();

            var header = new Header()
            {
                ChunkStreamID = 3,
                Format        = 0,
                StreamID      = 0,
                Timestamp     = 0,
                TypeID        = 0x14,
                BodySize      = parameters.Length + resultTitle.Length
            }.Serialize();

            result.Write(header, 0, header.Length);
            result.Write(resultTitle, 0, resultTitle.Length);
            result.Write(parameters, 0, parameters.Length);

            result.Flush();

            var byteResult = result.ToArray();

            Length = byteResult.Length;
            return(byteResult);
        }
コード例 #3
0
ファイル: AMFCall.cs プロジェクト: xedoc/rtmpproxy
 public AMFCall(byte[] payload)
 {
     Name = "";
     _properties = new List<AMFProperty>();
     for (int i = 0; i < payload.Length; i++)
     {
         var prop = new AMFProperty(payload, i);
         _properties.Add(prop);
         i += prop.Length - 1;
     }
 }
コード例 #4
0
ファイル: AMFCall.cs プロジェクト: xedoc/rtmpproxy
 public AMFCall(byte[] payload)
 {
     Name        = "";
     _properties = new List <AMFProperty>();
     for (int i = 0; i < payload.Length; i++)
     {
         var prop = new AMFProperty(payload, i);
         _properties.Add(prop);
         i += prop.Length - 1;
     }
 }