CSharpRTMP.Core.Protocols.Rtsp.BaseRtspAppProtocolHandler.ComputeSDP C# (CSharp) Method

ComputeSDP() private method

private ComputeSDP ( RtspProtocol pFrom, string localStreamName, string targetStreamName, string host ) : string
pFrom RtspProtocol
localStreamName string
targetStreamName string
host string
return string
        private string ComputeSDP(RtspProtocol pFrom,string localStreamName, string targetStreamName, string host)
        {
            StreamCapabilities pCapabilities = null;
            var pInboundStream = GetInboundStream(localStreamName);
           
            if (pInboundStream == null)
                FATAL("Stream {0} not found", localStreamName);
            else
                pCapabilities = pInboundStream.Capabilities;
            if (pCapabilities == null)
            {
                FATAL("Inbound stream {0} not found", (localStreamName));
                return "";
            }
            Debug(pCapabilities.AudioCodecId.ToString());
            string audioTrack = GetAudioTrack(pFrom, pCapabilities);
            string videoTrack = GetVideoTrack(pFrom, pCapabilities);
            if (audioTrack == "" && videoTrack == "")
                return "";

            string nearAddress = "0.0.0.0";
            string farAddress = "0.0.0.0";
            if ((pFrom.IOHandler != null)
                    && (pFrom.IOHandler.Type == IOHandlerType.IOHT_TCP_CARRIER))
            {
                nearAddress = ((TCPCarrier)pFrom.IOHandler).NearIP;
                farAddress = ((TCPCarrier)pFrom.IOHandler).FarIP;
            }

            if (targetStreamName == "")
                targetStreamName = localStreamName;

            //3. Prepare the body of the response

            var sw = new StringBuilder();
            sw.AppendLine("v=0");
            sw.AppendLine($"o=- {pFrom.Id} 0 IN IP4 {nearAddress}");
            sw.AppendLine("s=" + targetStreamName);
            sw.AppendLine("u=http://www.linkage.com");
            //result += "[email protected]\r\n";
            sw.AppendLine("c=IN IP4 " + nearAddress);
            sw.AppendLine("t=0 0");
            //result += "a=recvonly\r\n";
            sw.Append(audioTrack);
            sw.Append(videoTrack);
            
            //FINEST("result:\n%s", STR(result));
            return sw.ToString();
        }