PeerCastStation.FLV.RTMP.RTMPPlayConnection.RequestChannel C# (CSharp) Method

RequestChannel() private method

private RequestChannel ( StreamName stream_name, CancellationToken cancel_token ) : Task
stream_name StreamName
cancel_token System.Threading.CancellationToken
return Task
		private async Task<Channel> RequestChannel(
			StreamName stream_name,
			CancellationToken cancel_token)
		{
			Guid channel_id;
			if (!Guid.TryParse(stream_name.Name, out channel_id)) {
				return null;
			}
			var tracker_uri =
				stream_name.Parameters.ContainsKey("tip") ?
				OutputStreamBase.CreateTrackerUri(channel_id, stream_name.Parameters["tip"]) :
				null;
			var channel = owner.RequestChannel(channel_id, tracker_uri);
			if (channel==null) return null;
			var trying = 0;
			while (
					trying++<10 &&
					(channel.ChannelInfo==null ||
					 String.IsNullOrEmpty(channel.ChannelInfo.ContentType))){
				await Task.Delay(1000, cancel_token);
			}
			if (channel.ChannelInfo==null ||
			    String.IsNullOrEmpty(channel.ChannelInfo.ContentType) ||
			    channel.ChannelInfo.ContentType!="FLV") {
				return null;
			}
			return channel;
		}