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

GetVideoTrack() private method

private GetVideoTrack ( RtspProtocol pFrom, StreamCapabilities pCapabilities ) : string
pFrom RtspProtocol
pCapabilities StreamCapabilities
return string
        private string GetVideoTrack(RtspProtocol pFrom, StreamCapabilities pCapabilities)
        {
            pFrom.CustomParameters["videoTrackId"] = "2"; //md5(format("V%u%s",pFrom->GetId(), STR(generateRandomString(4))), true);
            var sw = new StringBuilder();
            
            if (pCapabilities.VideoCodecId == VideoCodec.H264)
            {
                sw.AppendLine("m=video 0 RTP/AVP 97");
                sw.AppendLine("a=recvonly");
                sw.Append("a=control:trackID=");
                sw.AppendLine(pFrom.CustomParameters["videoTrackId"]);
                sw.AppendLine("a=rtpmap:97 H264/90000");
                sw.Append("a=fmtp:97 profile-level-id=");
                sw.Append($"{pCapabilities.Avc.SPS[1]:X2}{pCapabilities.Avc.SPS[2]:X2}{pCapabilities.Avc.SPS[3]:X2}");
                sw.Append("; packetization-mode=1; sprop-parameter-sets=");
                sw.Append(Convert.ToBase64String(pCapabilities.Avc.SPS) + ",");
                sw.AppendLine(Convert.ToBase64String(pCapabilities.Avc.PPS));
            }
            else
            {

                WARN("Unsupported video codec: %s", pCapabilities.VideoCodecId);
            }
            return sw.ToString();
        }