private void CheckCapabilities(string capabilities)
        {
            var dvbtTunerCount  = 0;
            var dvbt2TunerCount = 0;
            var dvbcTunerCount  = 0;
            var dvbc2TunerCount = 0;
            var dvbs2TunerCount = 0;

            if (!string.IsNullOrEmpty(capabilities))
            {
                // If SatIp support's multible Broadcast Types as Exsample DVBS2-2,DVBT2-1,DVBC2-8
                // must the capabilities Property splitted by , Char so become we a Array with avaible Broadcasts and Tuner Counts
                // the result must be split with the - Char
                if (capabilities.Contains(','))
                {
                    var capsections = capabilities.Split(',');
                    foreach (var capsection in capsections)
                    {
                        var info = capsection.Split('-');
                        switch (info[0])
                        {
                        case "DVBS":
                        case "DVBS2":
                            dvbs2TunerCount = int.Parse(info[1]);
                            break;

                        case "DVBT":
                            dvbtTunerCount = int.Parse(info[1]);
                            break;

                        case "DVBT2":
                            dvbt2TunerCount = int.Parse(info[1]);
                            break;

                        case "DVBC":
                            dvbcTunerCount = int.Parse(info[1]);
                            break;

                        case "DVBC2":
                            dvbc2TunerCount = int.Parse(info[1]);
                            break;
                        }
                    }
                }
                // the SatIp Server Supports only one Broadcast Type so let us check wich one it is and how many tuner it has
                // so must we only split the Capabilities Property with - Char
                else
                {
                    var info = capabilities.Split('-');
                    switch (info[0])
                    {
                    case "DVBS":
                    case "DVBS2":
                        dvbs2TunerCount = int.Parse(info[1]);
                        break;

                    case "DVBT":
                        dvbtTunerCount = int.Parse(info[1]);
                        break;

                    case "DVBT2":
                        dvbt2TunerCount = int.Parse(info[1]);
                        break;

                    case "DVBC":
                        dvbcTunerCount = int.Parse(info[1]);
                        break;

                    case "DVBC2":
                        dvbc2TunerCount = int.Parse(info[1]);
                        break;
                    }
                }
            }
            // the Desciption.Capabilities Property is null or empty so can we check it over the Rtsp Describe
            // but is not Rtsp Session avaible becomes you a RtspResponse with StatusCode 404
            // and read there the SDP Infos the count is stored in the SessionName (s)
            // and the Broadcast Type is stored Media Attribute (a)
            // alternativ add one Dummy SatIpTuner
            else
            {
                RtspResponse response = null;
                var          request  = new RtspRequest(RtspMethod.Describe, string.Format("rtsp://{0}/", _baseUrl), 1, 0);
                request.Headers.Add("Accept", "application/sdp");
                request.Headers.Add("Connection", "close");
                var client = new RtspClient(_baseUrl);
                client.SendRequest(request, out response);
                if (response != null)
                {
                    if (response.StatusCode.Equals(RtspStatusCode.Ok))
                    {
                        Match m = Regex.Match(response.Body, @"s=SatIPServer:1\s+([^\s]+)\s+", RegexOptions.Singleline | RegexOptions.IgnoreCase);
                        if (m.Success)
                        {
                            string   frontEndInfo   = m.Groups[1].Captures[0].Value;
                            string[] frontEndCounts = frontEndInfo.Split(',');
                            dvbs2TunerCount = int.Parse(frontEndCounts[0]);
                            if (frontEndCounts.Length >= 2)
                            {
                                dvbtTunerCount = int.Parse(frontEndCounts[1]);
                                if (frontEndCounts.Length > 2)
                                {
                                    dvbcTunerCount = int.Parse(frontEndCounts[2]);
                                    if (frontEndCounts.Length > 3)
                                    {
                                    }
                                }
                            }
                        }
                    }
                    else if (response.StatusCode.Equals(RtspStatusCode.NotFound))
                    {
                        // the Sat>Ip server has no active Stream
                    }

                    else
                    {
                    }
                }
                if (dvbcTunerCount == 0 && dvbc2TunerCount == 0 && dvbtTunerCount == 0 && dvbt2TunerCount == 0 && dvbs2TunerCount == 0)
                {
                    dvbs2TunerCount = 1;
                    _hasSatelliteBroadcastSupport   = true;
                    _hasTerrestrialBroadcastSupport = false;
                    _hasCableBroadcastSupport       = false;
                }
                var i = 1;
                var j = 0;
                for (; i <= dvbcTunerCount; i++)
                {
                    _hasCableBroadcastSupport = true;
                    //retvalSatIpTuners.Add(new SatIpCableTuner(description, i));
                }
                j += dvbcTunerCount;
                for (; i <= dvbc2TunerCount + j; i++)
                {
                    _hasCableBroadcastSupport = true;
                    //retvalSatIpTuners.Add(new SatIpCableTuner(description, i));
                }
                j += dvbc2TunerCount;

                // Currently the Digital Devices Octopus Net is the only SAT>IP product
                // to support DVB-T/T2. The DVB-T/T2 tuners also support DVB-C/C2. In
                // general we'll assume that if the DVB-C/C2 and DVB-T/T2 counts are
                // equal the tuners are hybrid.
                if (dvbcTunerCount + dvbc2TunerCount > 0 && (dvbcTunerCount + dvbc2TunerCount) == (dvbtTunerCount + dvbt2TunerCount))
                {
                    i = 1;
                    j = 0;
                }

                for (; i <= dvbtTunerCount + j; i++)
                {
                    _hasTerrestrialBroadcastSupport = true;
                    //retvalSatIpTuners.Add(new SatIpTerrestrialTuner(description, i));
                }
                j += dvbtTunerCount;
                ////for (; i <= dvbt2TunerCount + j; i++)
                {
                    _hasTerrestrialBroadcastSupport = true;
                    //retvalSatIpTuners.Add(new SatIpTerrestrialTuner(description, i));
                }
                j += dvbs2TunerCount;

                for (; i <= dvbs2TunerCount + j; i++)
                {
                    _hasSatelliteBroadcastSupport = true;
                    //retvalSatIpTuners.Add(new SatIpSatelliteTuner(description, i));
                }
            }
            //return retvalSatIpTuners;
        }