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.
|
- Fixed the cable only device detection.
|
||||||
- Added support for blacklisted sources.
|
- Added support for blacklisted sources.
|
||||||
- Fixed server reuse for active transponders.
|
- 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;
|
quirkM |= eSatipQuirkSessionId;
|
||||||
// These devices contain a play (add/delpids) parameter bug:
|
// These devices contain a play (add/delpids) parameter bug:
|
||||||
if (strstr(*descriptionM, "fritzdvbc")) // Fritz!WLAN Repeater DVB-C
|
if (strstr(*descriptionM, "fritzdvbc")) // Fritz!WLAN Repeater DVB-C
|
||||||
quirkM |= eSatipQuirkPlayPids;
|
quirkM |= eSatipQuirkPlayPids | eSatipQuirkForceLock;
|
||||||
}
|
}
|
||||||
char *s, *p = strdup(*modelM);
|
char *s, *p = strdup(*modelM);
|
||||||
char *r = strtok_r(p, ",", &s);
|
char *r = strtok_r(p, ",", &s);
|
||||||
|
1
server.h
1
server.h
@ -35,6 +35,7 @@ public:
|
|||||||
eSatipQuirkNone = 0x00,
|
eSatipQuirkNone = 0x00,
|
||||||
eSatipQuirkSessionId = 0x01,
|
eSatipQuirkSessionId = 0x01,
|
||||||
eSatipQuirkPlayPids = 0x02,
|
eSatipQuirkPlayPids = 0x02,
|
||||||
|
eSatipQuirkForceLock = 0x04,
|
||||||
eSatipQuirkMask = 0x0F
|
eSatipQuirkMask = 0x0F
|
||||||
};
|
};
|
||||||
enum eSatipModelType {
|
enum eSatipModelType {
|
||||||
|
8
tuner.c
8
tuner.c
@ -119,6 +119,12 @@ void cSatipTuner::Action(void)
|
|||||||
timeout.Set(eReConnectTimeoutMs);
|
timeout.Set(eReConnectTimeoutMs);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Quirk for devices without valid reception data
|
||||||
|
if (currentServerM && currentServerM->Quirk(cSatipServer::eSatipQuirkForceLock)) {
|
||||||
|
hasLockM = true;
|
||||||
|
signalStrengthM = eDefaultSignalStrength;
|
||||||
|
signalQualityM = eDefaultSignalQuality;
|
||||||
|
}
|
||||||
// Read data
|
// Read data
|
||||||
if (rtpSocketM && rtpSocketM->IsOpen())
|
if (rtpSocketM && rtpSocketM->IsOpen())
|
||||||
length = rtpSocketM->ReadVideo(packetBufferM, size);
|
length = rtpSocketM->ReadVideo(packetBufferM, size);
|
||||||
@ -464,6 +470,8 @@ bool cSatipTuner::UpdatePids(bool forceP)
|
|||||||
uri = cString::sprintf("%s?pids=", *uri);
|
uri = cString::sprintf("%s?pids=", *uri);
|
||||||
for (int i = 0; i < pidsM.Size(); ++i)
|
for (int i = 0; i < pidsM.Size(); ++i)
|
||||||
uri = cString::sprintf("%s%d%s", *uri, pidsM[i], (i == (pidsM.Size() - 1)) ? "" : ",");
|
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 {
|
else {
|
||||||
|
3
tuner.h
3
tuner.h
@ -26,6 +26,9 @@
|
|||||||
class cSatipTuner : public cThread, public cSatipTunerStatistics {
|
class cSatipTuner : public cThread, public cSatipTunerStatistics {
|
||||||
private:
|
private:
|
||||||
enum {
|
enum {
|
||||||
|
eDummyPid = 100,
|
||||||
|
eDefaultSignalStrength = 15,
|
||||||
|
eDefaultSignalQuality = 224,
|
||||||
eConnectTimeoutMs = 1500, // in milliseconds
|
eConnectTimeoutMs = 1500, // in milliseconds
|
||||||
ePidUpdateIntervalMs = 250, // in milliseconds
|
ePidUpdateIntervalMs = 250, // in milliseconds
|
||||||
eReConnectTimeoutMs = 5000, // in milliseconds
|
eReConnectTimeoutMs = 5000, // in milliseconds
|
||||||
|
Loading…
Reference in New Issue
Block a user