diff --git a/packages/3rdparty/multimedia/vdr/meta b/packages/3rdparty/multimedia/vdr/meta index 7de8b44ec4..c218135d28 100644 --- a/packages/3rdparty/multimedia/vdr/meta +++ b/packages/3rdparty/multimedia/vdr/meta @@ -20,7 +20,7 @@ ################################################################################ PKG_NAME="vdr" -PKG_VERSION="1.7.26" +PKG_VERSION="1.7.27" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/3rdparty/multimedia/vdr/patches/vdr-1.7.26-01_disable_ca_updates.patch b/packages/3rdparty/multimedia/vdr/patches/vdr-1.7.27-01_disable_ca_updates.patch similarity index 100% rename from packages/3rdparty/multimedia/vdr/patches/vdr-1.7.26-01_disable_ca_updates.patch rename to packages/3rdparty/multimedia/vdr/patches/vdr-1.7.27-01_disable_ca_updates.patch diff --git a/packages/3rdparty/multimedia/vdr/patches/vdr-1.7.26-02_disable_eitscan.patch b/packages/3rdparty/multimedia/vdr/patches/vdr-1.7.27-02_disable_eitscan.patch similarity index 100% rename from packages/3rdparty/multimedia/vdr/patches/vdr-1.7.26-02_disable_eitscan.patch rename to packages/3rdparty/multimedia/vdr/patches/vdr-1.7.27-02_disable_eitscan.patch diff --git a/packages/3rdparty/multimedia/vdr/patches/vdr-1.7.26-61_dynamite-subdevice.patch b/packages/3rdparty/multimedia/vdr/patches/vdr-1.7.27-61_dynamite-subdevice.patch similarity index 94% rename from packages/3rdparty/multimedia/vdr/patches/vdr-1.7.26-61_dynamite-subdevice.patch rename to packages/3rdparty/multimedia/vdr/patches/vdr-1.7.27-61_dynamite-subdevice.patch index 9729ee2664..299bc4fa43 100644 --- a/packages/3rdparty/multimedia/vdr/patches/vdr-1.7.26-61_dynamite-subdevice.patch +++ b/packages/3rdparty/multimedia/vdr/patches/vdr-1.7.27-61_dynamite-subdevice.patch @@ -25,7 +25,7 @@ index 74e0270..d38e2dd 100644 class cTPDU; diff --git a/device.c b/device.c -index 8c527aa..8b0a7e2 100644 +index 00645cf..fc4c93d 100644 --- a/device.c +++ b/device.c @@ -69,12 +69,22 @@ int cDevice::currentChannel = 1; @@ -113,7 +113,7 @@ index 8c527aa..8b0a7e2 100644 for (int i = 0; i < numDevices; i++) { if (device[i] == this) return i; -@@ -341,6 +380,8 @@ bool cDevice::HasCi(void) +@@ -346,6 +385,8 @@ bool cDevice::HasCi(void) void cDevice::SetCamSlot(cCamSlot *CamSlot) { @@ -122,7 +122,7 @@ index 8c527aa..8b0a7e2 100644 camSlot = CamSlot; } -@@ -553,6 +594,10 @@ void cDevice::DelLivePids(void) +@@ -558,6 +599,10 @@ void cDevice::DelLivePids(void) void cDevice::StartSectionHandler(void) { @@ -133,7 +133,7 @@ index 8c527aa..8b0a7e2 100644 if (!sectionHandler) { sectionHandler = new cSectionHandler(this); AttachFilter(eitFilter = new cEitFilter); -@@ -564,6 +609,10 @@ void cDevice::StartSectionHandler(void) +@@ -569,6 +614,10 @@ void cDevice::StartSectionHandler(void) void cDevice::StopSectionHandler(void) { @@ -144,7 +144,7 @@ index 8c527aa..8b0a7e2 100644 if (sectionHandler) { delete nitFilter; delete sdtFilter; -@@ -590,12 +639,17 @@ void cDevice::CloseFilter(int Handle) +@@ -595,12 +644,17 @@ void cDevice::CloseFilter(int Handle) void cDevice::AttachFilter(cFilter *Filter) { @@ -162,7 +162,7 @@ index 8c527aa..8b0a7e2 100644 if (sectionHandler) sectionHandler->Detach(Filter); } -@@ -757,6 +811,7 @@ eSetChannelResult cDevice::SetChannel(const cChannel *Channel, bool LiveView) +@@ -762,6 +816,7 @@ eSetChannelResult cDevice::SetChannel(const cChannel *Channel, bool LiveView) sectionHandler->SetStatus(false); sectionHandler->SetChannel(NULL); } @@ -170,7 +170,7 @@ index 8c527aa..8b0a7e2 100644 // Tell the camSlot about the channel switch and add all PIDs of this // channel to it, for possible later decryption: if (camSlot) -@@ -803,19 +858,27 @@ void cDevice::ForceTransferMode(void) +@@ -808,19 +863,27 @@ void cDevice::ForceTransferMode(void) { if (!cTransferControl::ReceiverDevice()) { cChannel *Channel = Channels.GetByNumber(CurrentChannel()); @@ -199,7 +199,7 @@ index 8c527aa..8b0a7e2 100644 if (Seconds >= 0) occupiedTimeout = time(NULL) + min(Seconds, MAXOCCUPIEDTIMEOUT); } -@@ -1188,7 +1251,10 @@ bool cDevice::Transferring(void) const +@@ -1193,7 +1256,10 @@ bool cDevice::Transferring(void) const bool cDevice::AttachPlayer(cPlayer *Player) { @@ -210,7 +210,7 @@ index 8c527aa..8b0a7e2 100644 if (player) Detach(player); DELETENULL(liveSubtitle); -@@ -1207,6 +1273,8 @@ bool cDevice::AttachPlayer(cPlayer *Player) +@@ -1212,6 +1278,8 @@ bool cDevice::AttachPlayer(cPlayer *Player) void cDevice::Detach(cPlayer *Player) { @@ -219,7 +219,7 @@ index 8c527aa..8b0a7e2 100644 if (Player && player == Player) { cPlayer *p = player; player = NULL; // avoids recursive calls to Detach() -@@ -1226,6 +1294,8 @@ void cDevice::Detach(cPlayer *Player) +@@ -1231,6 +1299,8 @@ void cDevice::Detach(cPlayer *Player) void cDevice::StopReplay(void) { @@ -228,7 +228,7 @@ index 8c527aa..8b0a7e2 100644 if (player) { Detach(player); if (IsPrimaryDevice()) -@@ -1508,6 +1578,8 @@ int cDevice::PlayTs(const uchar *Data, int Length, bool VideoOnly) +@@ -1513,6 +1583,8 @@ int cDevice::PlayTs(const uchar *Data, int Length, bool VideoOnly) int cDevice::Priority(void) const { @@ -237,7 +237,7 @@ index 8c527aa..8b0a7e2 100644 int priority = IDLEPRIORITY; if (IsPrimaryDevice() && !Replaying() && ActualDevice() == PrimaryDevice()) priority = TRANSFERPRIORITY; // we use the same value here, no matter whether it's actual Transfer Mode or real live viewing -@@ -1526,6 +1598,8 @@ bool cDevice::Ready(void) +@@ -1531,6 +1603,8 @@ bool cDevice::Ready(void) bool cDevice::Receiving(bool Dummy) const { @@ -246,7 +246,7 @@ index 8c527aa..8b0a7e2 100644 cMutexLock MutexLock(&mutexReceiver); for (int i = 0; i < MAXRECEIVERS; i++) { if (receiver[i]) -@@ -1606,10 +1680,13 @@ bool cDevice::GetTSPacket(uchar *&Data) +@@ -1611,10 +1685,13 @@ bool cDevice::GetTSPacket(uchar *&Data) bool cDevice::AttachReceiver(cReceiver *Receiver) { @@ -260,7 +260,7 @@ index 8c527aa..8b0a7e2 100644 // activate the following line if you need it - actually the driver should be fixed! //#define WAIT_FOR_TUNER_LOCK #ifdef WAIT_FOR_TUNER_LOCK -@@ -1648,6 +1725,8 @@ bool cDevice::AttachReceiver(cReceiver *Receiver) +@@ -1653,6 +1730,8 @@ bool cDevice::AttachReceiver(cReceiver *Receiver) void cDevice::Detach(cReceiver *Receiver) { @@ -269,7 +269,7 @@ index 8c527aa..8b0a7e2 100644 if (!Receiver || Receiver->device != this) return; bool receiversLeft = false; -@@ -1673,6 +1752,8 @@ void cDevice::Detach(cReceiver *Receiver) +@@ -1678,6 +1757,8 @@ void cDevice::Detach(cReceiver *Receiver) void cDevice::DetachAll(int Pid) { @@ -278,7 +278,7 @@ index 8c527aa..8b0a7e2 100644 if (Pid) { cMutexLock MutexLock(&mutexReceiver); for (int i = 0; i < MAXRECEIVERS; i++) { -@@ -1685,6 +1766,8 @@ void cDevice::DetachAll(int Pid) +@@ -1690,6 +1771,8 @@ void cDevice::DetachAll(int Pid) void cDevice::DetachAllReceivers(void) { @@ -287,7 +287,7 @@ index 8c527aa..8b0a7e2 100644 cMutexLock MutexLock(&mutexReceiver); for (int i = 0; i < MAXRECEIVERS; i++) Detach(receiver[i]); -@@ -1756,3 +1839,25 @@ uchar *cTSBuffer::Get(void) +@@ -1761,3 +1844,25 @@ uchar *cTSBuffer::Get(void) } return NULL; } @@ -314,7 +314,7 @@ index 8c527aa..8b0a7e2 100644 + DynamicDeviceProbes.Del(this, false); +} diff --git a/device.h b/device.h -index 0d9ac3a..5cb5645 100644 +index 987dfd2..1ad06ae 100644 --- a/device.h +++ b/device.h @@ -169,7 +169,6 @@ private: @@ -334,8 +334,8 @@ index 0d9ac3a..5cb5645 100644 - ///< Returns the card index of this device (0 ... MAXDEVICES - 1). int DeviceNumber(void) const; ///< Returns the number of this device (0 ... numDevices). - virtual bool HasDecoder(void) const; -@@ -404,9 +400,6 @@ public: + virtual cString DeviceName(void) const; +@@ -407,9 +403,6 @@ public: ///< Returns true if this device has a Common Interface. void SetCamSlot(cCamSlot *CamSlot); ///< Sets the given CamSlot to be used with this device. @@ -345,7 +345,7 @@ index 0d9ac3a..5cb5645 100644 // Image Grab facilities -@@ -562,9 +555,6 @@ private: +@@ -565,9 +558,6 @@ private: cTsToPes tsToPesSubtitle; bool isPlayingVideo; protected: @@ -355,7 +355,7 @@ index 0d9ac3a..5cb5645 100644 virtual bool CanReplay(void) const; ///< Returns true if this device can currently start a replay session. virtual bool SetPlayMode(ePlayMode PlayMode); -@@ -749,6 +739,38 @@ public: +@@ -752,6 +742,38 @@ public: ///< Detaches all receivers from this device for this pid. virtual void DetachAllReceivers(void); ///< Detaches all receivers from this device. @@ -394,7 +394,7 @@ index 0d9ac3a..5cb5645 100644 }; /// Derived cDevice classes that can receive channels will have to provide -@@ -772,4 +794,47 @@ public: +@@ -775,4 +797,47 @@ public: uchar *Get(void); }; @@ -584,7 +584,7 @@ index adbe40d..6d117b2 100644 #endif //__DVBCI_H diff --git a/dvbdevice.c b/dvbdevice.c -index 4c9268f..e2944e3 100644 +index 65e9a4b..4bc42ab 100644 --- a/dvbdevice.c +++ b/dvbdevice.c @@ -286,7 +286,7 @@ private: @@ -736,7 +736,7 @@ index 4c9268f..e2944e3 100644 // The DVR device (will be opened and closed as needed): -@@ -1230,7 +1281,11 @@ bool cDvbDevice::BondDevices(const char *Bondings) +@@ -1235,7 +1286,11 @@ bool cDvbDevice::BondDevices(const char *Bondings) if (d >= 0) { int ErrorDevice = 0; if (cDevice *Device1 = cDevice::GetDevice(i)) { @@ -748,7 +748,7 @@ index 4c9268f..e2944e3 100644 if (cDvbDevice *DvbDevice1 = dynamic_cast(Device1)) { if (cDvbDevice *DvbDevice2 = dynamic_cast(Device2)) { if (!DvbDevice1->Bond(DvbDevice2)) -@@ -1264,7 +1319,10 @@ bool cDvbDevice::BondDevices(const char *Bondings) +@@ -1269,7 +1324,10 @@ bool cDvbDevice::BondDevices(const char *Bondings) void cDvbDevice::UnBondDevices(void) { for (int i = 0; i < cDevice::NumDevices(); i++) { @@ -760,7 +760,7 @@ index 4c9268f..e2944e3 100644 d->UnBond(); } } -@@ -1318,6 +1376,26 @@ bool cDvbDevice::BondingOk(const cChannel *Channel, bool ConsiderOccupied) const +@@ -1323,6 +1381,26 @@ bool cDvbDevice::BondingOk(const cChannel *Channel, bool ConsiderOccupied) const return true; } @@ -787,7 +787,7 @@ index 4c9268f..e2944e3 100644 bool cDvbDevice::HasCi(void) { return ciAdapter; -@@ -1484,7 +1562,7 @@ bool cDvbDevice::ProvidesChannel(const cChannel *Channel, int Priority, bool *Ne +@@ -1489,7 +1567,7 @@ bool cDvbDevice::ProvidesChannel(const cChannel *Channel, int Priority, bool *Ne bool cDvbDevice::ProvidesEIT(void) const { @@ -797,7 +797,7 @@ index 4c9268f..e2944e3 100644 int cDvbDevice::NumProvidedSystems(void) const diff --git a/dvbdevice.h b/dvbdevice.h -index 85b0d9c..2dcb319 100644 +index c53a208..b016669 --- a/dvbdevice.h +++ b/dvbdevice.h @@ -107,7 +107,7 @@ class cDvbTuner; @@ -809,7 +809,7 @@ index 85b0d9c..2dcb319 100644 static cString DvbName(const char *Name, int Adapter, int Frontend); static int DvbOpen(const char *Name, int Adapter, int Frontend, int Mode, bool ReportError = false); private: -@@ -133,11 +133,13 @@ private: +@@ -133,12 +133,13 @@ private: mutable bool needsDetachBondedReceivers; bool QueryDeliverySystems(int fd_frontend); public: @@ -819,8 +819,8 @@ index 85b0d9c..2dcb319 100644 int Adapter(void) const { return adapter; } int Frontend(void) const { return frontend; } virtual bool Ready(void); + virtual cString DeviceName(void) const; + virtual bool SetIdleDevice(bool Idle, bool TestOnly); -+ static bool BondDevices(const char *Bondings); ///< Bonds the devices as defined in the given Bondings string. ///< A bonding is a sequence of device numbers (starting at 1),