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
|
hivdr
|
||||||
for adding the pos= parameter for replaying recordings from a certain position
|
for adding the pos= parameter for replaying recordings from a certain position
|
||||||
for suggesting to add the HTTP "Server" header
|
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
|
VDR Plugin 'streamdev' Revision History
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|
||||||
|
- Fixed channel switch issues with priority > 0
|
||||||
- Removed noisy debug messages
|
- Removed noisy debug messages
|
||||||
- Fixed HTTP menu destruction
|
- Fixed HTTP menu destruction
|
||||||
- API change of VDR 2.1.2
|
- 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 cStreamdevDevice::ProvidesChannel(const cChannel *Channel, int Priority,
|
||||||
bool *NeedsDetachReceivers) const {
|
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)
|
if (m_Disabled || Channel == m_DenyChannel)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
@ -116,6 +108,20 @@ bool cStreamdevDevice::ProvidesChannel(const cChannel *Channel, int Priority,
|
|||||||
return false;
|
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 APIVERSNUM >= 10722
|
||||||
if (IsTunedToTransponder(Channel)) {
|
if (IsTunedToTransponder(Channel)) {
|
||||||
#else
|
#else
|
||||||
@ -129,18 +135,10 @@ bool cStreamdevDevice::ProvidesChannel(const cChannel *Channel, int Priority,
|
|||||||
ndr = true;
|
ndr = true;
|
||||||
}
|
}
|
||||||
else if (prio) {
|
else if (prio) {
|
||||||
if (Priority == LIVEPRIORITY) {
|
if (Priority == LIVEPRIORITY && m_ClientSocket->ServerVersion() >= 100)
|
||||||
if (m_ClientSocket->ServerVersion() >= 100) {
|
UpdatePriority(true);
|
||||||
Priority = StreamdevClientSetup.LivePriority;
|
|
||||||
UpdatePriority(true);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (StreamdevClientSetup.LivePriority >= 0)
|
|
||||||
Priority = StreamdevClientSetup.LivePriority;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
res = m_ClientSocket->ProvidesChannel(Channel, Priority);
|
res = m_ClientSocket->ProvidesChannel(Channel, newPrio);
|
||||||
ndr = Receiving();
|
ndr = Receiving();
|
||||||
|
|
||||||
if (m_ClientSocket->ServerVersion() >= 100)
|
if (m_ClientSocket->ServerVersion() >= 100)
|
||||||
|
@ -40,10 +40,9 @@ cClientSocket::~cClientSocket()
|
|||||||
|
|
||||||
void cClientSocket::Reset(void)
|
void cClientSocket::Reset(void)
|
||||||
{
|
{
|
||||||
for (int it = 0; it < si_Count; ++it) {
|
for (int it = 0; it < si_Count; ++it)
|
||||||
if (m_DataSockets[it] != NULL)
|
DELETENULL(m_DataSockets[it]);
|
||||||
DELETENULL(m_DataSockets[it]);
|
m_Priority = -100;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
cTBSocket *cClientSocket::DataSocket(eSocketId Id) const {
|
cTBSocket *cClientSocket::DataSocket(eSocketId Id) const {
|
||||||
|
Loading…
Reference in New Issue
Block a user