From 4c0888d483b935977ca62755b5c30135a39e91e8 Mon Sep 17 00:00:00 2001 From: Frank Schmirler Date: Fri, 9 Sep 2011 23:26:45 +0200 Subject: [PATCH] adaption to VDR 1.7.12 cReceiver API change --- HISTORY | 1 + server/livestreamer.c | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/HISTORY b/HISTORY index 8b313d4..4a1019d 100644 --- a/HISTORY +++ b/HISTORY @@ -1,6 +1,7 @@ VDR Plugin 'streamdev' Revision History --------------------------------------- +- adaption to VDR 1.7.12 cReceiver API change - increased WRITERBUFSIZE. Has been reported to fix some ringbuffer overflows (thanks to Luboš Doležel) - check availability of channel if VTP command TUNE is called without diff --git a/server/livestreamer.c b/server/livestreamer.c index 144f353..b46c9c7 100644 --- a/server/livestreamer.c +++ b/server/livestreamer.c @@ -29,15 +29,24 @@ protected: virtual void Receive(uchar *Data, int Length); public: - cStreamdevLiveReceiver(cStreamdevStreamer *Streamer, tChannelID ChannelID, int Priority, const int *Pids); + cStreamdevLiveReceiver(cStreamdevStreamer *Streamer, const cChannel *Channel, int Priority, const int *Pids); virtual ~cStreamdevLiveReceiver(); }; -cStreamdevLiveReceiver::cStreamdevLiveReceiver(cStreamdevStreamer *Streamer, tChannelID ChannelID, +cStreamdevLiveReceiver::cStreamdevLiveReceiver(cStreamdevStreamer *Streamer, const cChannel *Channel, int Priority, const int *Pids): - cReceiver(ChannelID, Priority, 0, Pids), +#if APIVERSNUM >= 10712 + cReceiver(Channel, Priority), +#else + cReceiver(Channel->GetChannelID(), Priority, 0, Pids), +#endif m_Streamer(Streamer) { +#if APIVERSNUM >= 10712 + // clears all PIDs but channel remains set + SetPids(NULL); + AddPids(Pids); +#endif } cStreamdevLiveReceiver::~cStreamdevLiveReceiver() @@ -456,7 +465,7 @@ void cStreamdevLiveStreamer::StartReceiver(void) if (m_NumPids > 0) { Dprintf("Creating Receiver to respect changed pids\n"); cReceiver *current = m_Receiver; - m_Receiver = new cStreamdevLiveReceiver(this, m_Channel->GetChannelID(), m_Priority, m_Pids); + m_Receiver = new cStreamdevLiveReceiver(this, m_Channel, m_Priority, m_Pids); cThreadLock ThreadLock(m_Device); if (IsRunning()) Attach();