mirror of
https://github.com/rofafor/vdr-plugin-satip.git
synced 2023-10-10 13:37:42 +02:00
Added a preliminary support for Fritz!WLAN Repeater DVB-C (Thanks to Christian Wick).
This commit is contained in:
parent
92b2c63f0d
commit
0de0be5ae4
2
HISTORY
2
HISTORY
@ -70,3 +70,5 @@ VDR Plugin 'satip' Revision History
|
||||
- Fixed the cable only device detection.
|
||||
- Added support for blacklisted sources.
|
||||
- Fixed server reuse for active transponders.
|
||||
- Added a preliminary support for Fritz!WLAN Repeater DVB-C
|
||||
(Thanks to Christian Wick).
|
||||
|
2
server.c
2
server.c
@ -37,7 +37,7 @@ cSatipServer::cSatipServer(const char *addressP, const char *descriptionP, const
|
||||
quirkM |= eSatipQuirkSessionId;
|
||||
// These devices contain a play (add/delpids) parameter bug:
|
||||
if (strstr(*descriptionM, "fritzdvbc")) // Fritz!WLAN Repeater DVB-C
|
||||
quirkM |= eSatipQuirkPlayPids;
|
||||
quirkM |= eSatipQuirkPlayPids | eSatipQuirkForceLock;
|
||||
}
|
||||
char *s, *p = strdup(*modelM);
|
||||
char *r = strtok_r(p, ",", &s);
|
||||
|
1
server.h
1
server.h
@ -35,6 +35,7 @@ public:
|
||||
eSatipQuirkNone = 0x00,
|
||||
eSatipQuirkSessionId = 0x01,
|
||||
eSatipQuirkPlayPids = 0x02,
|
||||
eSatipQuirkForceLock = 0x04,
|
||||
eSatipQuirkMask = 0x0F
|
||||
};
|
||||
enum eSatipModelType {
|
||||
|
8
tuner.c
8
tuner.c
@ -119,6 +119,12 @@ void cSatipTuner::Action(void)
|
||||
timeout.Set(eReConnectTimeoutMs);
|
||||
}
|
||||
}
|
||||
// Quirk for devices without valid reception data
|
||||
if (currentServerM && currentServerM->Quirk(cSatipServer::eSatipQuirkForceLock)) {
|
||||
hasLockM = true;
|
||||
signalStrengthM = eDefaultSignalStrength;
|
||||
signalQualityM = eDefaultSignalQuality;
|
||||
}
|
||||
// Read data
|
||||
if (rtpSocketM && rtpSocketM->IsOpen())
|
||||
length = rtpSocketM->ReadVideo(packetBufferM, size);
|
||||
@ -464,6 +470,8 @@ bool cSatipTuner::UpdatePids(bool forceP)
|
||||
uri = cString::sprintf("%s?pids=", *uri);
|
||||
for (int i = 0; i < pidsM.Size(); ++i)
|
||||
uri = cString::sprintf("%s%d%s", *uri, pidsM[i], (i == (pidsM.Size() - 1)) ? "" : ",");
|
||||
if (currentServerM && currentServerM->Quirk(cSatipServer::eSatipQuirkPlayPids))
|
||||
uri = cString::sprintf("%s,%d", *uri, eDummyPid);
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
3
tuner.h
3
tuner.h
@ -26,6 +26,9 @@
|
||||
class cSatipTuner : public cThread, public cSatipTunerStatistics {
|
||||
private:
|
||||
enum {
|
||||
eDummyPid = 100,
|
||||
eDefaultSignalStrength = 15,
|
||||
eDefaultSignalQuality = 224,
|
||||
eConnectTimeoutMs = 1500, // in milliseconds
|
||||
ePidUpdateIntervalMs = 250, // in milliseconds
|
||||
eReConnectTimeoutMs = 5000, // in milliseconds
|
||||
|
Loading…
Reference in New Issue
Block a user