1
0
mirror of https://github.com/rofafor/vdr-plugin-satip.git synced 2023-10-10 13:37:42 +02:00

Add a new ForcePilot quirk.

This commit is contained in:
Rolf Ahrenberg 2016-11-10 16:47:30 +02:00
parent 0fc044a316
commit 6ed729c153
4 changed files with 14 additions and 1 deletions

View File

@ -134,7 +134,7 @@ cString cSatipDevice::GetGeneralInformation(void)
{ {
debug16("%s [device %u]", __PRETTY_FUNCTION__, deviceIndexM); debug16("%s [device %u]", __PRETTY_FUNCTION__, deviceIndexM);
LOCK_CHANNELS_READ; LOCK_CHANNELS_READ;
return cString::sprintf("SAT>IP device: %d\nCardIndex: %d\nStream: %s\nSignal: %s\nStream bitrate: %s\n%sChannel: %s", return cString::sprintf("SAT>IP device: %d\nCardIndex: %d\nStream: %s\nSignal: %s\nStream bitrate: %s\n%sChannel: %s\n",
deviceIndexM, CardIndex(), deviceIndexM, CardIndex(),
pTunerM ? *pTunerM->GetInformation() : "", pTunerM ? *pTunerM->GetInformation() : "",
pTunerM ? *pTunerM->GetSignalStatus() : "", pTunerM ? *pTunerM->GetSignalStatus() : "",

View File

@ -147,6 +147,13 @@ cSatipServer::cSatipServer(const char *addressP, const int portP, const char *mo
if (strstr(*descriptionM, "DVBViewer") // DVBViewer Media Server if (strstr(*descriptionM, "DVBViewer") // DVBViewer Media Server
) )
quirkM |= eSatipQuirkCiTnr; quirkM |= eSatipQuirkCiTnr;
// These devices don't support auto-detection of pilot tones
if (strstr(*descriptionM, "GSSBOX") || // Grundig Sat Systems GSS.box DSI 400
strstr(*descriptionM, "DIGIBIT") || // Telestar Digibit R1
strstr(*descriptionM, "Triax SatIP Converter") // Triax TSS 400
// Kathrein ExIP 414/E
)
quirkM |= eSatipQuirkForcePilot;
} }
if ((quirkM & eSatipQuirkMask) & eSatipQuirkSessionId) if ((quirkM & eSatipQuirkMask) & eSatipQuirkSessionId)
quirksM = cString::sprintf("%s%sSessionId", *quirksM, isempty(*quirksM) ? "" : ","); quirksM = cString::sprintf("%s%sSessionId", *quirksM, isempty(*quirksM) ? "" : ",");
@ -160,6 +167,8 @@ cSatipServer::cSatipServer(const char *addressP, const int portP, const char *mo
quirksM = cString::sprintf("%s%sCiXpmt", *quirksM, isempty(*quirksM) ? "" : ","); quirksM = cString::sprintf("%s%sCiXpmt", *quirksM, isempty(*quirksM) ? "" : ",");
if ((quirkM & eSatipQuirkMask) & eSatipQuirkCiTnr) if ((quirkM & eSatipQuirkMask) & eSatipQuirkCiTnr)
quirksM = cString::sprintf("%s%sCiTnr", *quirksM, isempty(*quirksM) ? "" : ","); quirksM = cString::sprintf("%s%sCiTnr", *quirksM, isempty(*quirksM) ? "" : ",");
if ((quirkM & eSatipQuirkMask) & eSatipQuirkForcePilot)
quirksM = cString::sprintf("%s%sForcePilot", *quirksM, isempty(*quirksM) ? "" : ",");
debug3("%s description=%s quirks=%s", __PRETTY_FUNCTION__, *descriptionM, *quirksM); debug3("%s description=%s quirks=%s", __PRETTY_FUNCTION__, *descriptionM, *quirksM);
// These devices support external CI // These devices support external CI
if (strstr(*descriptionM, "OctopusNet") || // Digital Devices OctopusNet if (strstr(*descriptionM, "OctopusNet") || // Digital Devices OctopusNet

View File

@ -81,6 +81,7 @@ public:
eSatipQuirkRtpOverTcp = 0x08, eSatipQuirkRtpOverTcp = 0x08,
eSatipQuirkCiXpmt = 0x10, eSatipQuirkCiXpmt = 0x10,
eSatipQuirkCiTnr = 0x20, eSatipQuirkCiTnr = 0x20,
eSatipQuirkForcePilot = 0x40,
eSatipQuirkMask = 0xFF eSatipQuirkMask = 0xFF
}; };
cSatipServer(const char *addressP, const int portP, const char *modelP, const char *filtersP, const char *descriptionP, const int quirkP); cSatipServer(const char *addressP, const int portP, const char *modelP, const char *filtersP, const char *descriptionP, const int quirkP);

View File

@ -393,6 +393,9 @@ bool cSatipTuner::SetSource(cSatipServer *serverP, const int transponderP, const
streamAddrM = rtspM.RtspUnescapeString(*nextServerM.GetAddress()); streamAddrM = rtspM.RtspUnescapeString(*nextServerM.GetAddress());
streamParamM = rtspM.RtspUnescapeString(parameterP); streamParamM = rtspM.RtspUnescapeString(parameterP);
streamPortM = nextServerM.GetPort(); streamPortM = nextServerM.GetPort();
// Modify parameter if required
if (nextServerM.IsQuirk(cSatipServer::eSatipQuirkForcePilot) && strstr(parameterP, "msys=dvbs2") && !strstr(parameterP, "plts="))
streamParamM = rtspM.RtspUnescapeString(*cString::sprintf("%s&plts=on", parameterP));
// Reconnect // Reconnect
RequestState(tsSet, smExternal); RequestState(tsSet, smExternal);
} }