mirror of
https://projects.vdr-developer.org/git/vdr-plugin-streamdev.git
synced 2023-10-10 19:16:51 +02:00
Fixed channel switch issues with priority > 0
This commit is contained in:
parent
69b654d539
commit
458a21a62a
@ -221,3 +221,6 @@ thomasjfox
|
||||
hivdr
|
||||
for adding the pos= parameter for replaying recordings from a certain position
|
||||
for suggesting to add the HTTP "Server" header
|
||||
|
||||
hummel99
|
||||
for helping to debug channel switch issues with priority > 0
|
||||
|
1
HISTORY
1
HISTORY
@ -1,6 +1,7 @@
|
||||
VDR Plugin 'streamdev' Revision History
|
||||
---------------------------------------
|
||||
|
||||
- Fixed channel switch issues with priority > 0
|
||||
- Removed noisy debug messages
|
||||
- Fixed HTTP menu destruction
|
||||
- API change of VDR 2.1.2
|
||||
|
@ -90,14 +90,6 @@ bool cStreamdevDevice::IsTunedToTransponder(const cChannel *Channel)
|
||||
|
||||
bool cStreamdevDevice::ProvidesChannel(const cChannel *Channel, int Priority,
|
||||
bool *NeedsDetachReceivers) const {
|
||||
#if APIVERSNUM >= 10725
|
||||
bool prio = Priority == IDLEPRIORITY || Priority >= m_ClientSocket->Priority();
|
||||
#else
|
||||
bool prio = Priority < 0 || Priority > m_ClientSocket->Priority();
|
||||
#endif
|
||||
bool res = prio;
|
||||
bool ndr = false;
|
||||
|
||||
if (m_Disabled || Channel == m_DenyChannel)
|
||||
return false;
|
||||
|
||||
@ -116,6 +108,20 @@ bool cStreamdevDevice::ProvidesChannel(const cChannel *Channel, int Priority,
|
||||
return false;
|
||||
}
|
||||
|
||||
int newPrio = Priority;
|
||||
if (Priority == LIVEPRIORITY) {
|
||||
if (m_ClientSocket->ServerVersion() >= 100 || StreamdevClientSetup.LivePriority >= 0)
|
||||
newPrio = StreamdevClientSetup.LivePriority;
|
||||
}
|
||||
|
||||
#if APIVERSNUM >= 10725
|
||||
bool prio = Priority == IDLEPRIORITY || newPrio >= m_ClientSocket->Priority();
|
||||
#else
|
||||
bool prio = Priority < 0 || newPrio > m_ClientSocket->Priority();
|
||||
#endif
|
||||
bool res = prio;
|
||||
bool ndr = false;
|
||||
|
||||
#if APIVERSNUM >= 10722
|
||||
if (IsTunedToTransponder(Channel)) {
|
||||
#else
|
||||
@ -129,18 +135,10 @@ bool cStreamdevDevice::ProvidesChannel(const cChannel *Channel, int Priority,
|
||||
ndr = true;
|
||||
}
|
||||
else if (prio) {
|
||||
if (Priority == LIVEPRIORITY) {
|
||||
if (m_ClientSocket->ServerVersion() >= 100) {
|
||||
Priority = StreamdevClientSetup.LivePriority;
|
||||
UpdatePriority(true);
|
||||
}
|
||||
else {
|
||||
if (StreamdevClientSetup.LivePriority >= 0)
|
||||
Priority = StreamdevClientSetup.LivePriority;
|
||||
}
|
||||
}
|
||||
if (Priority == LIVEPRIORITY && m_ClientSocket->ServerVersion() >= 100)
|
||||
UpdatePriority(true);
|
||||
|
||||
res = m_ClientSocket->ProvidesChannel(Channel, Priority);
|
||||
res = m_ClientSocket->ProvidesChannel(Channel, newPrio);
|
||||
ndr = Receiving();
|
||||
|
||||
if (m_ClientSocket->ServerVersion() >= 100)
|
||||
|
@ -40,10 +40,9 @@ cClientSocket::~cClientSocket()
|
||||
|
||||
void cClientSocket::Reset(void)
|
||||
{
|
||||
for (int it = 0; it < si_Count; ++it) {
|
||||
if (m_DataSockets[it] != NULL)
|
||||
DELETENULL(m_DataSockets[it]);
|
||||
}
|
||||
for (int it = 0; it < si_Count; ++it)
|
||||
DELETENULL(m_DataSockets[it]);
|
||||
m_Priority = -100;
|
||||
}
|
||||
|
||||
cTBSocket *cClientSocket::DataSocket(eSocketId Id) const {
|
||||
|
Loading…
Reference in New Issue
Block a user