mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Fixed detection of Premiere NVOD channel links
This commit is contained in:
parent
593013c94c
commit
a1663a3612
1
HISTORY
1
HISTORY
@ -5293,3 +5293,4 @@ Video Disk Recorder Revision History
|
|||||||
- Made skipspace() an inline function (suggested by Tobias Bratfisch) and changed
|
- Made skipspace() an inline function (suggested by Tobias Bratfisch) and changed
|
||||||
it to handle the most common case of 'no leading space' very fast, and avoid
|
it to handle the most common case of 'no leading space' very fast, and avoid
|
||||||
calling isspace(), which made the whole function a lot faster.
|
calling isspace(), which made the whole function a lot faster.
|
||||||
|
- Fixed detection of Premiere NVOD channel links (thanks to anonymous).
|
||||||
|
13
channels.c
13
channels.c
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: channels.c 1.53 2006/05/28 15:03:40 kls Exp $
|
* $Id: channels.c 1.54 2007/07/21 14:55:01 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "channels.h"
|
#include "channels.h"
|
||||||
@ -1007,6 +1007,17 @@ cChannel *cChannels::GetByChannelID(tChannelID ChannelID, bool TryWithoutRid, bo
|
|||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
cChannel *cChannels::GetByTransponderID(tChannelID ChannelID)
|
||||||
|
{
|
||||||
|
int source = ChannelID.Source();
|
||||||
|
int nid = ChannelID.Nid();
|
||||||
|
int tid = ChannelID.Tid();
|
||||||
|
for (cChannel *channel = First(); channel; channel = Next(channel)) {
|
||||||
|
if (channel->Tid() == tid && channel->Nid() == nid && channel->Source() == source)
|
||||||
|
return channel;
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
bool cChannels::HasUniqueChannelID(cChannel *NewChannel, cChannel *OldChannel)
|
bool cChannels::HasUniqueChannelID(cChannel *NewChannel, cChannel *OldChannel)
|
||||||
{
|
{
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: channels.h 1.43 2007/01/07 14:37:35 kls Exp $
|
* $Id: channels.h 1.44 2007/07/21 14:58:36 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __CHANNELS_H
|
#ifndef __CHANNELS_H
|
||||||
@ -239,6 +239,7 @@ public:
|
|||||||
cChannel *GetByNumber(int Number, int SkipGap = 0);
|
cChannel *GetByNumber(int Number, int SkipGap = 0);
|
||||||
cChannel *GetByServiceID(int Source, int Transponder, unsigned short ServiceID);
|
cChannel *GetByServiceID(int Source, int Transponder, unsigned short ServiceID);
|
||||||
cChannel *GetByChannelID(tChannelID ChannelID, bool TryWithoutRid = false, bool TryWithoutPolarization = false);
|
cChannel *GetByChannelID(tChannelID ChannelID, bool TryWithoutRid = false, bool TryWithoutPolarization = false);
|
||||||
|
cChannel *GetByTransponderID(tChannelID ChannelID);
|
||||||
int BeingEdited(void) { return beingEdited; }
|
int BeingEdited(void) { return beingEdited; }
|
||||||
void IncBeingEdited(void) { beingEdited++; }
|
void IncBeingEdited(void) { beingEdited++; }
|
||||||
void DecBeingEdited(void) { beingEdited--; }
|
void DecBeingEdited(void) { beingEdited--; }
|
||||||
|
7
eit.c
7
eit.c
@ -8,7 +8,7 @@
|
|||||||
* Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>.
|
* Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>.
|
||||||
* Adapted to 'libsi' for VDR 1.3.0 by Marcel Wiesweg <marcel.wiesweg@gmx.de>.
|
* Adapted to 'libsi' for VDR 1.3.0 by Marcel Wiesweg <marcel.wiesweg@gmx.de>.
|
||||||
*
|
*
|
||||||
* $Id: eit.c 1.123 2007/06/10 12:51:05 kls Exp $
|
* $Id: eit.c 1.124 2007/07/21 14:58:04 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "eit.h"
|
#include "eit.h"
|
||||||
@ -197,7 +197,10 @@ cEIT::cEIT(cSchedules *Schedules, int Source, u_char Tid, const u_char *Data, bo
|
|||||||
link->SetName(linkName, "", "");
|
link->SetName(linkName, "", "");
|
||||||
}
|
}
|
||||||
else if (Setup.UpdateChannels >= 4) {
|
else if (Setup.UpdateChannels >= 4) {
|
||||||
link = Channels.NewChannel(channel, linkName, "", "", ld->getOriginalNetworkId(), ld->getTransportStreamId(), ld->getServiceId());
|
cChannel *transponder = channel;
|
||||||
|
if (channel->Tid() != ld->getTransportStreamId())
|
||||||
|
channel = Channels.GetByTransponderID(linkID);
|
||||||
|
link = Channels.NewChannel(transponder, linkName, "", "", ld->getOriginalNetworkId(), ld->getTransportStreamId(), ld->getServiceId());
|
||||||
//XXX patFilter->Trigger();
|
//XXX patFilter->Trigger();
|
||||||
}
|
}
|
||||||
if (link) {
|
if (link) {
|
||||||
|
Loading…
Reference in New Issue
Block a user