Наследование: RTMPMessage
Пример #1
0
 private void OnMetaData(DataMessage msg)
 {
   this.metadata = msg;
   var info = new AtomCollection();
   info.SetChanInfoType("FLV");
   info.SetChanInfoStreamType("video/x-flv");
   info.SetChanInfoStreamExt(".flv");
   if (metadata.Arguments[0].Type==AMF.AMFValueType.ECMAArray || metadata.Arguments[0].Type==AMF.AMFValueType.Object){
     var bitrate = 0.0;
     var val = metadata.Arguments[0]["maxBitrate"];
     if (!AMF.AMFValue.IsNull(val)) {
       double maxBitrate;
       string maxBitrateStr = System.Text.RegularExpressions.Regex.Replace((string)val, @"([\d]+)k", "$1");
       if (double.TryParse(maxBitrateStr, out maxBitrate)) {
         bitrate += maxBitrate;
       }
     }
     else if (!AMF.AMFValue.IsNull(val = metadata.Arguments[0]["videodatarate"])) {
       bitrate += (double)val;
     }
     if (!AMF.AMFValue.IsNull(val = metadata.Arguments[0]["audiodatarate"])) {
       bitrate += (double)val;
     }
     info.SetChanInfoBitrate((int)bitrate);
   }
   OnChannelInfoChanged(info);
   OnHeaderChanged(msg);
   OnContentChanged(msg);
 }
Пример #2
0
 private void ClearDataFrame(DataMessage msg)
 {
   var name = (string)msg.Arguments[0];
   switch (name) {
   case "onMetaData":
     metadata = null;
     break;
   }
 }
Пример #3
0
        public void OnData(DataMessage msg)
        {
            switch (msg.PropertyName) {
              case "@setDataFrame":
            SetDataFrame(msg);
            break;

              case "@clearDataFrame":
            ClearDataFrame(msg);
            break;

              case "onMetaData":
            OnMetaData(msg);
            break;

              default:
            OnContentChanged(msg);
            break;
              }
        }
Пример #4
0
			public void OnData(DataMessage msg)
			{
				this.connection.PostMessage(3,
					new RTMPMessage(
						msg.MessageType,
						msg.Timestamp,
						this.connection.StreamId,
						msg.Body)
				);
			}
Пример #5
0
 private Task OnData(DataMessage msg, CancellationToken cancel_token)
 {
     flvBuffer.OnData(msg);
     return(Task.Delay(0));
 }
Пример #6
0
 protected virtual Task OnData(DataMessage msg, CancellationToken cancel_token)
 {
     return(Task.Delay(0));
 }
Пример #7
0
 private Task OnData(DataMessage msg, CancellationToken cancel_token)
 {
   flvBuffer.OnData(msg);
   return Task.Delay(0);
 }
Пример #8
0
 private void SetDataFrame(DataMessage msg)
 {
     var name = (string)msg.Arguments[0];
       var data_msg = new DataAMF0Message(msg.Timestamp, 0, name, new AMF.AMFValue[] { msg.Arguments[1] });
       OnData(data_msg);
 }
Пример #9
0
		protected virtual async Task OnData(DataMessage msg, CancellationToken cancel_token)
		{
		}
Пример #10
0
 void OnData(DataMessage msg)
 {
     flvBuffer.OnData(msg);
 }
Пример #11
0
 protected virtual Task OnData(DataMessage msg, CancellationToken cancel_token)
 {
   return Task.Delay(0);
 }
Пример #12
0
 void OnData(DataMessage msg)
 {
     flvBuffer.OnData(msg);
 }