From 353558e0bd5b2ef86d5f76024accffc1384ac37c Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Tue, 9 Apr 2013 20:47:55 +0300 Subject: [PATCH 01/29] vdr: update to vdr-2.0.0 --- packages/3rdparty/multimedia/vdr/build | 2 +- packages/3rdparty/multimedia/vdr/meta | 4 +- ....patch => vdr-01_disable_ca_updates.patch} | 0 ...can.patch => vdr-02_disable_eitscan.patch} | 0 .../vdr-1.7.33-10_hannels.conf.terr-fix.patch | 16 - ....7.33-20_dynamite+externalci+rotorng.patch | 1079 ----------------- .../multimedia/vdr/patches/vdr-44_rotor.patch | 133 ++ 7 files changed, 136 insertions(+), 1098 deletions(-) rename packages/3rdparty/multimedia/vdr/patches/{vdr-1.7.33-01_disable_ca_updates.patch => vdr-01_disable_ca_updates.patch} (100%) rename packages/3rdparty/multimedia/vdr/patches/{vdr-1.7.33-02_disable_eitscan.patch => vdr-02_disable_eitscan.patch} (100%) delete mode 100644 packages/3rdparty/multimedia/vdr/patches/vdr-1.7.33-10_hannels.conf.terr-fix.patch delete mode 100644 packages/3rdparty/multimedia/vdr/patches/vdr-1.7.33-20_dynamite+externalci+rotorng.patch create mode 100644 packages/3rdparty/multimedia/vdr/patches/vdr-44_rotor.patch diff --git a/packages/3rdparty/multimedia/vdr/build b/packages/3rdparty/multimedia/vdr/build index ff78a42264..6faa1aab3b 100755 --- a/packages/3rdparty/multimedia/vdr/build +++ b/packages/3rdparty/multimedia/vdr/build @@ -32,7 +32,7 @@ PLUGINLIBDIR = /usr/lib/vdr VIDEODIR = /storage/videos CONFDIR = /storage/.config/vdr LOCDIR = /usr/share/locale -LIBS += -lz -lexpat -lbz2 -lfontconfig -lfreetype -lxml2 +#LIBS += -lz -lexpat -lbz2 -lfontconfig -lfreetype -lxml2 NO_KBD=yes VDR_USER=root diff --git a/packages/3rdparty/multimedia/vdr/meta b/packages/3rdparty/multimedia/vdr/meta index 5734d817f5..e163a3bf3d 100644 --- a/packages/3rdparty/multimedia/vdr/meta +++ b/packages/3rdparty/multimedia/vdr/meta @@ -20,12 +20,12 @@ ################################################################################ PKG_NAME="vdr" -PKG_VERSION="1.7.33" +PKG_VERSION="2.0.0" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" PKG_SITE="http://www.tvdr.de" -PKG_URL="ftp://ftp.tvdr.de/vdr/Developer/$PKG_NAME-$PKG_VERSION.tar.bz2" +PKG_URL="ftp://ftp.tvdr.de/vdr/$PKG_NAME-$PKG_VERSION.tar.bz2" PKG_DEPENDS="fontconfig freetype libcap" PKG_BUILD_DEPENDS="toolchain fontconfig freetype libcap libjpeg-turbo bzip2" PKG_PRIORITY="optional" diff --git a/packages/3rdparty/multimedia/vdr/patches/vdr-1.7.33-01_disable_ca_updates.patch b/packages/3rdparty/multimedia/vdr/patches/vdr-01_disable_ca_updates.patch similarity index 100% rename from packages/3rdparty/multimedia/vdr/patches/vdr-1.7.33-01_disable_ca_updates.patch rename to packages/3rdparty/multimedia/vdr/patches/vdr-01_disable_ca_updates.patch diff --git a/packages/3rdparty/multimedia/vdr/patches/vdr-1.7.33-02_disable_eitscan.patch b/packages/3rdparty/multimedia/vdr/patches/vdr-02_disable_eitscan.patch similarity index 100% rename from packages/3rdparty/multimedia/vdr/patches/vdr-1.7.33-02_disable_eitscan.patch rename to packages/3rdparty/multimedia/vdr/patches/vdr-02_disable_eitscan.patch diff --git a/packages/3rdparty/multimedia/vdr/patches/vdr-1.7.33-10_hannels.conf.terr-fix.patch b/packages/3rdparty/multimedia/vdr/patches/vdr-1.7.33-10_hannels.conf.terr-fix.patch deleted file mode 100644 index 36cd42d096..0000000000 --- a/packages/3rdparty/multimedia/vdr/patches/vdr-1.7.33-10_hannels.conf.terr-fix.patch +++ /dev/null @@ -1,16 +0,0 @@ -Description: Removes Ch 14 fom example channels.conf.terr, because the entry is - invalid (reported as Ubuntu Bug #45721) -Author: Thomas Schmidt - -Index: vdr/channels.conf.terr -=================================================================== ---- vdr.orig/channels.conf.terr 2011-12-10 22:22:04.000000000 +0100 -+++ vdr/channels.conf.terr 2011-12-11 01:49:01.000000000 +0100 -@@ -9,7 +9,6 @@ - bid-up.tv (TV):561833:I0C23D0M64B8T2G32Y0:T:27500:6273:6274:0:0:14272:0:0:0 - CBBC (TV):505833:I0C34D0M16B8T2G32Y0:T:27500:620:621,622:0:0:4671:0:0:0 - Cbeebies (TV):529833:I0C34D0M16B8T2G32Y0:T:27500:201:401,402:0:0:16960:0:0:0 --Ch 14 (TV):481833:I0C23D0M64B8T2G32Y0:T:27500:2840:2841:2843:0:0:8800:0:0 - Ch 32 (TV):537833:I0C34D0M16B8T2G32Y0:T:27500:501:502,504:0:0:25984:0:0:0 - Ch 44 (TV):537833:I0C34D0M16B8T2G32Y0:T:27500:501:502,504:0:0:26048:0:0:0 - Channel 4 (TV):481833:I0C23D0M64B8T2G32Y0:T:27500:2827:2828,2830:0:0:8384:0:0:0 diff --git a/packages/3rdparty/multimedia/vdr/patches/vdr-1.7.33-20_dynamite+externalci+rotorng.patch b/packages/3rdparty/multimedia/vdr/patches/vdr-1.7.33-20_dynamite+externalci+rotorng.patch deleted file mode 100644 index 079e38dfca..0000000000 --- a/packages/3rdparty/multimedia/vdr/patches/vdr-1.7.33-20_dynamite+externalci+rotorng.patch +++ /dev/null @@ -1,1079 +0,0 @@ -diff --git a/ci.c b/ci.c -index 904697e..1e95313 100644 ---- a/ci.c -+++ b/ci.c -@@ -1571,6 +1571,8 @@ cCamSlot::cCamSlot(cCiAdapter *CiAdapter) - - cCamSlot::~cCamSlot() - { -+ if (ciAdapter && ciAdapter->assignedDevice) -+ ciAdapter->assignedDevice->SetCamSlot(NULL); - CamSlots.Del(this, false); - DeleteAllConnections(); - } -diff --git a/ci.h b/ci.h -index 74e0270..818ea29 100644 ---- a/ci.h -+++ b/ci.h -@@ -72,6 +72,7 @@ public: - }; - - class cDevice; -+class cTSBufferBase; - class cCamSlot; - - enum eModuleStatus { msNone, msReset, msPresent, msReady }; -@@ -115,6 +116,13 @@ public: - ///< The derived class must call Cancel(3) in its destructor. - virtual bool Ready(void); - ///< Returns 'true' if all present CAMs in this adapter are ready. -+#define EXTERNALCI_PATCH -+ virtual cTSBufferBase *GetTSBuffer(int FdDvr) { return NULL; } -+ ///< Derived classes can return a special TS buffer with features -+ ///< like rerouting the stream through an external ci. -+ ///< The caller must delete the buffer. -+ virtual bool SetIdle(bool Idle, bool TestOnly) { return false; } -+ virtual bool IsIdle(void) const { return false; } - }; - - class cTPDU; -diff --git a/device.c b/device.c -index 2678d68..56c2b9c 100644 ---- a/device.c -+++ b/device.c -@@ -69,12 +69,22 @@ int cDevice::currentChannel = 1; - cDevice *cDevice::device[MAXDEVICES] = { NULL }; - cDevice *cDevice::primaryDevice = NULL; - cList cDevice::deviceHooks; -- --cDevice::cDevice(void) -+cDevice *cDevice::nextParentDevice = NULL; -+ -+cDevice::cDevice(cDevice *ParentDevice) - :patPmtParser(true) --{ -- cardIndex = nextCardIndex++; -- dsyslog("new device number %d", CardIndex() + 1); -+,isIdle(false) -+,parentDevice(ParentDevice) -+,subDevice(NULL) -+{ -+ if (!ParentDevice) -+ parentDevice = nextParentDevice; -+ cDevice::nextParentDevice = NULL; -+ if (parentDevice) -+ cardIndex = parentDevice->cardIndex; -+ else -+ cardIndex = nextCardIndex++; -+ dsyslog("new %sdevice number %d", parentDevice ? "sub-" : "", CardIndex() + 1); - - SetDescription("receiver on device %d", CardIndex() + 1); - -@@ -105,10 +115,14 @@ cDevice::cDevice(void) - for (int i = 0; i < MAXRECEIVERS; i++) - receiver[i] = NULL; - -- if (numDevices < MAXDEVICES) -- device[numDevices++] = this; -+ if (!parentDevice) { -+ if (numDevices < MAXDEVICES) -+ device[numDevices++] = this; -+ else -+ esyslog("ERROR: too many devices or \"dynamite\"-unpatched device creator!"); -+ } - else -- esyslog("ERROR: too many devices!"); -+ parentDevice->subDevice = this; - } - - cDevice::~cDevice() -@@ -117,6 +131,29 @@ cDevice::~cDevice() - DetachAllReceivers(); - delete liveSubtitle; - delete dvbSubtitleConverter; -+ if (parentDevice && (parentDevice->subDevice == this)) -+ parentDevice->subDevice = NULL; -+} -+ -+bool cDevice::SetIdle(bool Idle) -+{ -+ if (parentDevice) -+ return parentDevice->SetIdle(Idle); -+ if (isIdle == Idle) -+ return true; -+ if (Receiving(false)) -+ return false; -+ if (Idle) { -+ Detach(player); -+ DetachAllReceivers(); -+ } -+ if (!SetIdleDevice(Idle, true)) -+ return false; -+ isIdle = Idle; -+ if (SetIdleDevice(Idle, false)) -+ return true; -+ isIdle = !Idle; -+ return false; - } - - bool cDevice::WaitForAllDevicesReady(int Timeout) -@@ -155,6 +192,8 @@ int cDevice::NextCardIndex(int n) - - int cDevice::DeviceNumber(void) const - { -+ if (parentDevice) -+ return parentDevice->DeviceNumber(); - for (int i = 0; i < numDevices; i++) { - if (device[i] == this) - return i; -@@ -355,6 +394,8 @@ bool cDevice::HasCi(void) - - void cDevice::SetCamSlot(cCamSlot *CamSlot) - { -+ if (parentDevice) -+ return parentDevice->SetCamSlot(CamSlot); - camSlot = CamSlot; - } - -@@ -567,6 +608,10 @@ void cDevice::DelLivePids(void) - - void cDevice::StartSectionHandler(void) - { -+ if (parentDevice) { -+ parentDevice->StartSectionHandler(); -+ return; -+ } - if (!sectionHandler) { - sectionHandler = new cSectionHandler(this); - AttachFilter(eitFilter = new cEitFilter); -@@ -578,6 +623,10 @@ void cDevice::StartSectionHandler(void) - - void cDevice::StopSectionHandler(void) - { -+ if (parentDevice) { -+ parentDevice->StopSectionHandler(); -+ return; -+ } - if (sectionHandler) { - delete nitFilter; - delete sdtFilter; -@@ -609,12 +658,17 @@ void cDevice::CloseFilter(int Handle) - - void cDevice::AttachFilter(cFilter *Filter) - { -+ if (parentDevice) -+ return parentDevice->AttachFilter(Filter); -+ SetIdle(false); - if (sectionHandler) - sectionHandler->Attach(Filter); - } - - void cDevice::Detach(cFilter *Filter) - { -+ if (parentDevice) -+ return parentDevice->Detach(Filter); - if (sectionHandler) - sectionHandler->Detach(Filter); - } -@@ -776,6 +830,7 @@ eSetChannelResult cDevice::SetChannel(const cChannel *Channel, bool LiveView) - sectionHandler->SetStatus(false); - sectionHandler->SetChannel(NULL); - } -+ SetIdle(false); - // Tell the camSlot about the channel switch and add all PIDs of this - // channel to it, for possible later decryption: - if (camSlot) -@@ -822,19 +877,27 @@ void cDevice::ForceTransferMode(void) - { - if (!cTransferControl::ReceiverDevice()) { - cChannel *Channel = Channels.GetByNumber(CurrentChannel()); -- if (Channel) -+ if (Channel) { -+ SetIdle(false); - SetChannelDevice(Channel, false); // this implicitly starts Transfer Mode -+ } - } - } - - int cDevice::Occupied(void) const - { -+ if (parentDevice) -+ return parentDevice->Occupied(); - int Seconds = occupiedTimeout - time(NULL); - return Seconds > 0 ? Seconds : 0; - } - - void cDevice::SetOccupied(int Seconds) - { -+ if (parentDevice) { -+ parentDevice->SetOccupied(Seconds); -+ return; -+ } - if (Seconds >= 0) - occupiedTimeout = time(NULL) + min(Seconds, MAXOCCUPIEDTIMEOUT); - } -@@ -1209,7 +1272,10 @@ bool cDevice::Transferring(void) const - - bool cDevice::AttachPlayer(cPlayer *Player) - { -+ if (parentDevice) -+ return parentDevice->AttachPlayer(Player); - if (CanReplay()) { -+ SetIdle(false); - if (player) - Detach(player); - DELETENULL(liveSubtitle); -@@ -1228,6 +1294,8 @@ bool cDevice::AttachPlayer(cPlayer *Player) - - void cDevice::Detach(cPlayer *Player) - { -+ if (parentDevice) -+ return parentDevice->Detach(Player); - if (Player && player == Player) { - cPlayer *p = player; - player = NULL; // avoids recursive calls to Detach() -@@ -1247,6 +1315,8 @@ void cDevice::Detach(cPlayer *Player) - - void cDevice::StopReplay(void) - { -+ if (parentDevice) -+ return parentDevice->StopReplay(); - if (player) { - Detach(player); - if (IsPrimaryDevice()) -@@ -1529,6 +1599,8 @@ int cDevice::PlayTs(const uchar *Data, int Length, bool VideoOnly) - - int cDevice::Priority(void) const - { -+ if (parentDevice) -+ return parentDevice->Priority(); - 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 -@@ -1547,6 +1619,8 @@ bool cDevice::Ready(void) - - bool cDevice::Receiving(bool Dummy) const - { -+ if (parentDevice) -+ return parentDevice->Receiving(Dummy); - cMutexLock MutexLock(&mutexReceiver); - for (int i = 0; i < MAXRECEIVERS; i++) { - if (receiver[i]) -@@ -1627,10 +1701,13 @@ bool cDevice::GetTSPacket(uchar *&Data) - - bool cDevice::AttachReceiver(cReceiver *Receiver) - { -+ if (parentDevice) -+ return parentDevice->AttachReceiver(Receiver); - if (!Receiver) - return false; - if (Receiver->device == this) - return true; -+ SetIdle(false); - // activate the following line if you need it - actually the driver should be fixed! - //#define WAIT_FOR_TUNER_LOCK - #ifdef WAIT_FOR_TUNER_LOCK -@@ -1669,6 +1746,8 @@ bool cDevice::AttachReceiver(cReceiver *Receiver) - - void cDevice::Detach(cReceiver *Receiver) - { -+ if (parentDevice) -+ return parentDevice->Detach(Receiver); - if (!Receiver || Receiver->device != this) - return; - bool receiversLeft = false; -@@ -1694,6 +1773,8 @@ void cDevice::Detach(cReceiver *Receiver) - - void cDevice::DetachAll(int Pid) - { -+ if (parentDevice) -+ return parentDevice->DetachAll(Pid); - if (Pid) { - cMutexLock MutexLock(&mutexReceiver); - for (int i = 0; i < MAXRECEIVERS; i++) { -@@ -1706,6 +1787,8 @@ void cDevice::DetachAll(int Pid) - - void cDevice::DetachAllReceivers(void) - { -+ if (parentDevice) -+ return parentDevice->DetachAllReceivers(); - cMutexLock MutexLock(&mutexReceiver); - for (int i = 0; i < MAXRECEIVERS; i++) - Detach(receiver[i]); -@@ -1778,3 +1861,25 @@ uchar *cTSBuffer::Get(void) - } - return NULL; - } -+ -+// --- cDynamicDeviceProbe ------------------------------------------------------- -+ -+cList DynamicDeviceProbes; -+ -+cList cDynamicDeviceProbe::commandQueue; -+ -+void cDynamicDeviceProbe::QueueDynamicDeviceCommand(eDynamicDeviceProbeCommand Cmd, const char *DevPath) -+{ -+ if (DevPath) -+ commandQueue.Add(new cDynamicDeviceProbeItem(Cmd, new cString(DevPath))); -+} -+ -+cDynamicDeviceProbe::cDynamicDeviceProbe(void) -+{ -+ DynamicDeviceProbes.Add(this); -+} -+ -+cDynamicDeviceProbe::~cDynamicDeviceProbe() -+{ -+ DynamicDeviceProbes.Del(this, false); -+} -diff --git a/device.h b/device.h -index e2847d8..3a8aa01 100644 ---- a/device.h -+++ b/device.h -@@ -24,6 +24,7 @@ - #include "spu.h" - #include "thread.h" - #include "tools.h" -+#include - - #define MAXDEVICES 16 // the maximum number of devices in the system - #define MAXPIDHANDLES 64 // the maximum number of different PIDs per device -@@ -169,7 +170,6 @@ private: - static int nextCardIndex; - int cardIndex; - protected: -- cDevice(void); - virtual ~cDevice(); - virtual bool Ready(void); - ///< Returns true if this device is ready. Devices with conditional -@@ -196,9 +196,6 @@ protected: - ///< A derived class must call the MakePrimaryDevice() function of its - ///< base class. - public: -- bool IsPrimaryDevice(void) const { return this == primaryDevice; } -- int CardIndex(void) const { return cardIndex; } -- ///< Returns the card index of this device (0 ... MAXDEVICES - 1). - int DeviceNumber(void) const; - ///< Returns the number of this device (0 ... numDevices). - virtual cString DeviceType(void) const; -@@ -338,6 +335,7 @@ public: - ///< Returns true if the device is currently showing any programme to - ///< the user, either through replaying or live. - -+ virtual bool SendDiseqcCmd(dvb_diseqc_master_cmd cmd) {return false;} - // PID handle facilities - - private: -@@ -423,9 +421,6 @@ public: - ///< shall check whether the channel can be decrypted. - void SetCamSlot(cCamSlot *CamSlot); - ///< Sets the given CamSlot to be used with this device. -- cCamSlot *CamSlot(void) const { return camSlot; } -- ///< Returns the CAM slot that is currently used with this device, -- ///< or NULL if no CAM slot is in use. - - // Image Grab facilities - -@@ -581,9 +576,6 @@ private: - cTsToPes tsToPesSubtitle; - bool isPlayingVideo; - protected: -- const cPatPmtParser *PatPmtParser(void) const { return &patPmtParser; } -- ///< Returns a pointer to the patPmtParser, so that a derived device -- ///< can use the stream information from it. - virtual bool CanReplay(void) const; - ///< Returns true if this device can currently start a replay session. - virtual bool SetPlayMode(ePlayMode PlayMode); -@@ -795,6 +787,38 @@ public: - ///< Detaches all receivers from this device for this pid. - virtual void DetachAllReceivers(void); - ///< Detaches all receivers from this device. -+ -+// --- dynamite subdevice patch start --- -+ friend class cDynamicDevice; -+private: -+ static cDevice *nextParentDevice; -+ ///< Holds the parent device for the next subdevice -+ ///< so the dynamite-plugin can work with unpatched plugins -+ bool isIdle; -+protected: -+ cDevice *parentDevice; -+ cDevice *subDevice; -+ cDevice(cDevice *ParentDevice = NULL); -+ const cPatPmtParser *PatPmtParser(void) const { if (parentDevice) return parentDevice->PatPmtParser(); return &patPmtParser; } -+ ///< Returns a pointer to the patPmtParser, so that a derived device -+ ///< can use the stream information from it. -+public: -+ bool IsPrimaryDevice(void) const { if (parentDevice) return parentDevice->IsPrimaryDevice(); return this == primaryDevice; } -+ int CardIndex(void) const { if (parentDevice) return parentDevice->cardIndex; return cardIndex; } -+ ///< Returns the card index of this device (0 ... MAXDEVICES - 1). -+ cCamSlot *CamSlot(void) const { if (parentDevice) return parentDevice->CamSlot(); return camSlot; } -+ ///< Returns the CAM slot that is currently used with this device, -+ ///< or NULL if no CAM slot is in use. -+ bool IsSubDevice(void) const { return (parentDevice != NULL); } -+ bool HasSubDevice(void) const { return (subDevice != NULL); } -+ cDevice *SubDevice(void) const { return subDevice; } -+ bool IsIdle(void) const { if (parentDevice) return parentDevice->IsIdle(); return isIdle; } -+ bool SetIdle(bool Idle); -+ virtual bool SetIdleDevice(bool Idle, bool TestOnly) { return false; } -+ ///< Called by SetIdle -+ ///< if TestOnly, don't do anything, just return, if the device -+ ///< can be set to the new idle state -+ // --- dynamite subdevice patch end --- - }; - - /// Derived cDevice classes that can receive channels will have to provide -@@ -805,7 +829,14 @@ public: - /// sure the returned data points to a TS packet and automatically - /// re-synchronizes after broken packets. - --class cTSBuffer : public cThread { -+class cTSBufferBase { -+public: -+ cTSBufferBase() {} -+ virtual ~cTSBufferBase() {} -+ virtual uchar *Get(void) = 0; -+ }; -+ -+class cTSBuffer : public cTSBufferBase, public cThread { - private: - int f; - int cardIndex; -@@ -814,8 +845,51 @@ private: - virtual void Action(void); - public: - cTSBuffer(int File, int Size, int CardIndex); -- ~cTSBuffer(); -- uchar *Get(void); -+ virtual ~cTSBuffer(); -+ virtual uchar *Get(void); -+ }; -+ -+/// A plugin that want to create devices handled by the dynamite-plugin needs to create -+/// a cDynamicDeviceProbe derived object on the heap in order to have its Probe() -+/// function called, where it can actually create the appropriate device. -+/// The cDynamicDeviceProbe object must be created in the plugin's constructor, -+/// and deleted in its destructor. -+/// The "DevPath" hasn't to be a physical device or a path in the filesystem. -+/// It can be any string a plugin may react on. -+ -+#define __DYNAMIC_DEVICE_PROBE -+ -+enum eDynamicDeviceProbeCommand { ddpcAttach, ddpcDetach, ddpcService }; -+ -+class cDynamicDeviceProbe : public cListObject { -+ friend class cDynamicDevice; -+private: -+ class cDynamicDeviceProbeItem : public cListObject { -+ public: -+ eDynamicDeviceProbeCommand cmd; -+ cString *devpath; -+ cDynamicDeviceProbeItem(eDynamicDeviceProbeCommand Cmd, cString *DevPath):cmd(Cmd),devpath(DevPath) {} -+ virtual ~cDynamicDeviceProbeItem() { if (devpath) delete devpath; } -+ }; -+ static cList commandQueue; -+ ///< A list where all attach/detach commands are queued -+ ///< so they can be processed in the MainThreadHook of -+ ///< the dynamite plugin. -+public: -+ static void QueueDynamicDeviceCommand(eDynamicDeviceProbeCommand Cmd, const char *DevPath); -+ ///< Plugins which support cDynamicDeviceProbe must use this function -+ ///< to queue the devices they normally create in their Initialize method. -+ ///< These devices are created as subdevices in the Start-method of the dynamite-plugin. -+ cDynamicDeviceProbe(void); -+ virtual ~cDynamicDeviceProbe(); -+ virtual cDevice *Attach(cDevice *ParentDevice, const char *DevPath) = 0; -+ ///< Probes for a device at the given device-path like /dev/dvb/adapter0/frontend0 -+ ///< or /dev/video0 etc. and creates the appropriate -+ ///< object derived from cDevice if applicable. -+ ///< Returns the device that has been created or NULL if not. -+ ///< The dynamite-plugin will delete the device if it is detached. - }; - -+extern cList DynamicDeviceProbes; -+ - #endif //__DEVICE_H -diff --git a/dvbci.c b/dvbci.c -index 5289bbd..baa70bc 100644 ---- a/dvbci.c -+++ b/dvbci.c -@@ -10,41 +10,70 @@ - #include "dvbci.h" - #include - #include --#include "device.h" -+#include "dvbdevice.h" - - // --- cDvbCiAdapter --------------------------------------------------------- - --cDvbCiAdapter::cDvbCiAdapter(cDevice *Device, int Fd) -+cDvbCiAdapter::cDvbCiAdapter(cDevice *Device, int Fd, int Adapter, int Frontend) - { - device = Device; - SetDescription("CI adapter on device %d", device->DeviceNumber()); - fd = Fd; -- ca_caps_t Caps; -- if (ioctl(fd, CA_GET_CAP, &Caps) == 0) { -- if ((Caps.slot_type & CA_CI_LINK) != 0) { -- int NumSlots = Caps.slot_num; -- if (NumSlots > 0) { -- for (int i = 0; i < NumSlots; i++) -- new cCamSlot(this); -- Start(); -- } -- else -- esyslog("ERROR: no CAM slots found on device %d", device->DeviceNumber()); -- } -- else -- isyslog("device %d doesn't support CI link layer interface", device->DeviceNumber()); -- } -- else -- esyslog("ERROR: can't get CA capabilities on device %d", device->DeviceNumber()); -+ adapter = Adapter; -+ frontend = Frontend; -+ idle = false; -+ GetNumCamSlots(Device, Fd, this); -+ Start(); - } - - cDvbCiAdapter::~cDvbCiAdapter() - { - Cancel(3); -+ if (device->IsSubDevice() || device->HasSubDevice()) -+ CloseCa(); -+} -+ -+bool cDvbCiAdapter::OpenCa(void) -+{ -+ if (fd >= 0) -+ return true; -+ fd = cDvbDevice::DvbOpen(DEV_DVB_CA, adapter, frontend, O_RDWR); -+ return (fd >= 0); -+} -+ -+void cDvbCiAdapter::CloseCa(void) -+{ -+ if (fd < 0) -+ return; -+ close(fd); -+ fd = -1; -+} -+ -+bool cDvbCiAdapter::SetIdle(bool Idle, bool TestOnly) -+{ -+ if ((adapter < 0) || (frontend < 0)) -+ return false; -+ if (TestOnly || (idle == Idle)) -+ return true; -+ if (Idle) -+ CloseCa(); -+ else -+ OpenCa(); -+ idle = Idle; -+ return true; -+} -+ -+cTSBufferBase *cDvbCiAdapter::GetTSBuffer(int FdDvr) -+{ -+ if (device) -+ return new cTSBuffer(FdDvr, MEGABYTE(5), device->CardIndex() + 1); -+ return NULL; - } - - int cDvbCiAdapter::Read(uint8_t *Buffer, int MaxLength) - { -+ if (idle || (fd < 0)) -+ return 0; - if (Buffer && MaxLength > 0) { - struct pollfd pfd[1]; - pfd[0].fd = fd; -@@ -61,6 +90,8 @@ int cDvbCiAdapter::Read(uint8_t *Buffer, int MaxLength) - - void cDvbCiAdapter::Write(const uint8_t *Buffer, int Length) - { -+ if (idle || (fd < 0)) -+ return; - if (Buffer && Length > 0) { - if (safe_write(fd, Buffer, Length) != Length) - esyslog("ERROR: can't write to CI adapter on device %d: %m", device->DeviceNumber()); -@@ -69,6 +100,8 @@ void cDvbCiAdapter::Write(const uint8_t *Buffer, int Length) - - bool cDvbCiAdapter::Reset(int Slot) - { -+ if (idle || (fd < 0)) -+ return false; - if (ioctl(fd, CA_RESET, 1 << Slot) != -1) - return true; - else -@@ -78,6 +111,8 @@ bool cDvbCiAdapter::Reset(int Slot) - - eModuleStatus cDvbCiAdapter::ModuleStatus(int Slot) - { -+ if (idle || (fd < 0)) -+ return msNone; - ca_slot_info_t sinfo; - sinfo.num = Slot; - if (ioctl(fd, CA_GET_SLOT_INFO, &sinfo) != -1) { -@@ -99,10 +134,60 @@ bool cDvbCiAdapter::Assign(cDevice *Device, bool Query) - return true; - } - --cDvbCiAdapter *cDvbCiAdapter::CreateCiAdapter(cDevice *Device, int Fd) -+int cDvbCiAdapter::GetNumCamSlots(cDevice *Device, int Fd, cCiAdapter *CiAdapter) - { -- // TODO check whether a CI is actually present? -- if (Device) -- return new cDvbCiAdapter(Device, Fd); -- return NULL; -+ int NumSlots = -1; -+ if (Fd >= 0) { -+ ca_caps_t Caps; -+ if (ioctl(Fd, CA_GET_CAP, &Caps) == 0) { -+ if ((Caps.slot_type & CA_CI_LINK) != 0) { -+ NumSlots = Caps.slot_num; -+ if (NumSlots == 0) -+ esyslog("ERROR: no CAM slots found on device %d", Device->DeviceNumber()); -+ else if (CiAdapter != NULL) { -+ for (int i = 0; i < NumSlots; i++) -+ new cCamSlot(CiAdapter); -+ } -+ else -+ return NumSlots; -+ } -+ else -+ isyslog("device %d doesn't support CI link layer interface", Device->DeviceNumber()); -+ } -+ else -+ esyslog("ERROR: can't get CA capabilities on device %d", Device->DeviceNumber()); -+ } -+ return -1; -+} -+ -+cDvbCiAdapter *cDvbCiAdapter::CreateCiAdapter(cDevice *Device, int Fd, int Adapter, int Frontend) -+{ -+ // don't create a ci-adapter if it's not useable -+ if (Device && (Fd >= 0) && (GetNumCamSlots(Device, Fd, NULL) > 0)) -+ return new cDvbCiAdapter(Device, Fd, Adapter, Frontend); -+ -+ if (Fd >= 0) -+ close(Fd); -+ -+ // try to find an external ci-adapter -+ for (cDvbCiAdapterProbe *cp = DvbCiAdapterProbes.First(); cp; cp = DvbCiAdapterProbes.Next(cp)) { -+ cDvbCiAdapter *ca = cp->Probe(Device); -+ if (ca) -+ return ca; -+ } -+ return NULL; -+} -+ -+// --- cDvbCiAdapterProbe ------------------------------------------------------- -+ -+cList DvbCiAdapterProbes; -+ -+cDvbCiAdapterProbe::cDvbCiAdapterProbe(void) -+{ -+ DvbCiAdapterProbes.Add(this); -+} -+ -+cDvbCiAdapterProbe::~cDvbCiAdapterProbe() -+{ -+ DvbCiAdapterProbes.Del(this, false); - } -diff --git a/dvbci.h b/dvbci.h -index adbe40d..d908b2f 100644 ---- a/dvbci.h -+++ b/dvbci.h -@@ -16,16 +16,48 @@ class cDvbCiAdapter : public cCiAdapter { - private: - cDevice *device; - int fd; -+ int adapter; -+ int frontend; -+ bool idle; -+ -+ bool OpenCa(void); -+ void CloseCa(void); - protected: - virtual int Read(uint8_t *Buffer, int MaxLength); - virtual void Write(const uint8_t *Buffer, int Length); - virtual bool Reset(int Slot); - virtual eModuleStatus ModuleStatus(int Slot); - virtual bool Assign(cDevice *Device, bool Query = false); -- cDvbCiAdapter(cDevice *Device, int Fd); -+ cDvbCiAdapter(cDevice *Device, int Fd, int Adapter = -1, int Frontend = -1); - public: - virtual ~cDvbCiAdapter(); -- static cDvbCiAdapter *CreateCiAdapter(cDevice *Device, int Fd); -+ virtual cTSBufferBase *GetTSBuffer(int FdDvr); -+ static int GetNumCamSlots(cDevice *Device, int Fd, cCiAdapter *CiAdapter); -+ ///< Tests if the CA device is usable for vdr. -+ ///< If CiAdapter is not NULL it will create the CamSlots for the given ci-adapter. -+ virtual bool SetIdle(bool Idle, bool TestOnly); -+ virtual bool IsIdle(void) const { return idle; } -+ static cDvbCiAdapter *CreateCiAdapter(cDevice *Device, int Fd, int Adapter = -1, int Frontend = -1); -+ }; -+ -+// A plugin that implements an external DVB ci-adapter derived from cDvbCiAdapter needs to create -+// a cDvbCiAdapterProbe derived object on the heap in order to have its Probe() -+// function called, where it can actually create the appropriate ci-adapter. -+// The cDvbCiAdapterProbe object must be created in the plugin's constructor, -+// and deleted in its destructor. -+// Every plugin has to track its own list of already used device nodes. -+// The Probes are always called if the base cDvbCiAdapter can't create a ci-adapter on its own. -+ -+class cDvbCiAdapterProbe : public cListObject { -+public: -+ cDvbCiAdapterProbe(void); -+ virtual ~cDvbCiAdapterProbe(); -+ virtual cDvbCiAdapter *Probe(cDevice *Device) = 0; -+ ///< Probes for a DVB ci-adapter for the given Device and creates the appropriate -+ ///< object derived from cDvbCiAdapter if applicable. -+ ///< Returns NULL if no adapter has been created. - }; - -+extern cList DvbCiAdapterProbes; -+ - #endif //__DVBCI_H -diff --git a/dvbdevice.c b/dvbdevice.c -index 43e8544..49b5f61 100644 ---- a/dvbdevice.c -+++ b/dvbdevice.c -@@ -287,9 +287,10 @@ class cDvbTuner : public cThread { - private: - static cMutex bondMutex; - enum eTunerStatus { tsIdle, tsSet, tsTuned, tsLocked }; -+ bool SendDiseqc; - int frontendType; - const cDvbDevice *device; -- int fd_frontend; -+ mutable int fd_frontend; - int adapter, frontend; - uint32_t subsystemId; - int tuneTimeout; -@@ -300,7 +301,7 @@ private: - const cScr *scr; - bool lnbPowerTurnedOn; - eTunerStatus tunerStatus; -- cMutex mutex; -+ mutable cMutex mutex; - cCondVar locked; - cCondVar newSet; - cDvbTuner *bondedTuner; -@@ -308,11 +309,16 @@ private: - bool SetFrontendType(const cChannel *Channel); - cString GetBondingParams(const cChannel *Channel = NULL) const; - void ClearEventQueue(void) const; -+ dvb_diseqc_master_cmd diseqc_cmd; - bool GetFrontendStatus(fe_status_t &Status) const; - void ExecuteDiseqc(const cDiseqc *Diseqc, unsigned int *Frequency); - void ResetToneAndVoltage(void); - bool SetFrontend(void); - virtual void Action(void); -+ -+ mutable bool isIdle; -+ bool OpenFrontend(void) const; -+ bool CloseFrontend(void); - public: - cDvbTuner(const cDvbDevice *Device, int Fd_Frontend, int Adapter, int Frontend); - virtual ~cDvbTuner(); -@@ -325,9 +331,13 @@ public: - uint32_t SubsystemId(void) const { return subsystemId; } - bool IsTunedTo(const cChannel *Channel) const; - void SetChannel(const cChannel *Channel); -+ bool SendDiseqcCmd(dvb_diseqc_master_cmd cmd); - bool Locked(int TimeoutMs = 0); - int GetSignalStrength(void) const; - int GetSignalQuality(void) const; -+ -+ bool SetIdle(bool Idle); -+ bool IsIdle(void) const { return isIdle; } - }; - - cMutex cDvbTuner::bondMutex; -@@ -337,6 +347,7 @@ cDvbTuner::cDvbTuner(const cDvbDevice *Device, int Fd_Frontend, int Adapter, int - frontendType = SYS_UNDEFINED; - device = Device; - fd_frontend = Fd_Frontend; -+ SendDiseqc=false; - adapter = Adapter; - frontend = Frontend; - subsystemId = cDvbDeviceProbe::GetSubsystemId(adapter, frontend); -@@ -349,6 +360,7 @@ cDvbTuner::cDvbTuner(const cDvbDevice *Device, int Fd_Frontend, int Adapter, int - tunerStatus = tsIdle; - bondedTuner = NULL; - bondedMaster = false; -+ isIdle = false; - SetDescription("tuner on frontend %d/%d", adapter, frontend); - Start(); - } -@@ -366,6 +378,8 @@ cDvbTuner::~cDvbTuner() - ExecuteDiseqc(lastDiseqc, &Frequency); - } - */ -+ if (device && device->IsSubDevice()) -+ CloseFrontend(); - } - - bool cDvbTuner::Bond(cDvbTuner *Tuner) -@@ -510,6 +524,8 @@ bool cDvbTuner::Locked(int TimeoutMs) - - void cDvbTuner::ClearEventQueue(void) const - { -+ if (!OpenFrontend()) -+ return; - cPoller Poller(fd_frontend); - if (Poller.Poll(TUNER_POLL_TIMEOUT)) { - dvb_frontend_event Event; -@@ -710,8 +726,28 @@ static int GetRequiredDeliverySystem(const cChannel *Channel, const cDvbTranspon - return ds; - } - -+bool cDvbTuner::SendDiseqcCmd(dvb_diseqc_master_cmd cmd) -+{ -+ cMutexLock MutexLock(&mutex); -+ cDvbTransponderParameters dtp(channel.Parameters()); -+ -+ // Determine the required frontend type: -+ int frontendType = GetRequiredDeliverySystem(&channel, &dtp); -+ -+ if ((frontendType!=SYS_DVBS2 && frontendType!=SYS_DVBS) || SendDiseqc) -+ return false; -+ if (!OpenFrontend()) -+ return false; -+ diseqc_cmd=cmd; -+ SendDiseqc=true; -+ newSet.Broadcast(); -+ return true; -+} -+ - bool cDvbTuner::SetFrontend(void) - { -+ if (!OpenFrontend()) -+ return false; - #define MAXFRONTENDCMDS 16 - #define SETCMD(c, d) { Frontend[CmdSeq.num].cmd = (c);\ - Frontend[CmdSeq.num].u.data = (d);\ -@@ -857,10 +893,16 @@ void cDvbTuner::Action(void) - bool LostLock = false; - fe_status_t Status = (fe_status_t)0; - while (Running()) { -- fe_status_t NewStatus; -- if (GetFrontendStatus(NewStatus)) -- Status = NewStatus; -+ if (!isIdle) { -+ fe_status_t NewStatus; -+ if (GetFrontendStatus(NewStatus)) -+ Status = NewStatus; -+ } - cMutexLock MutexLock(&mutex); -+ if (SendDiseqc) { -+ CHECK(ioctl(fd_frontend, FE_DISEQC_SEND_MASTER_CMD, &diseqc_cmd)); -+ SendDiseqc=false; -+ } - int WaitTime = 1000; - switch (tunerStatus) { - case tsIdle: -@@ -912,6 +954,40 @@ void cDvbTuner::Action(void) - } - } - -+bool cDvbTuner::SetIdle(bool Idle) -+{ -+ if (isIdle == Idle) -+ return true; -+ isIdle = Idle; -+ if (Idle) -+ return CloseFrontend(); -+ return OpenFrontend(); -+} -+ -+bool cDvbTuner::OpenFrontend(void) const -+{ -+ if (fd_frontend >= 0) -+ return true; -+ cMutexLock MutexLock(&mutex); -+ fd_frontend = cDvbDevice::DvbOpen(DEV_DVB_FRONTEND, adapter, frontend, O_RDWR | O_NONBLOCK); -+ if (fd_frontend < 0) -+ return false; -+ isIdle = false; -+ return true; -+} -+ -+bool cDvbTuner::CloseFrontend(void) -+{ -+ if (fd_frontend < 0) -+ return true; -+ cMutexLock MutexLock(&mutex); -+ tunerStatus = tsIdle; -+ newSet.Broadcast(); -+ close(fd_frontend); -+ fd_frontend = -1; -+ return true; -+} -+ - // --- cDvbSourceParam ------------------------------------------------------- - - class cDvbSourceParam : public cSourceParam { -@@ -997,7 +1073,8 @@ const char *DeliverySystemNames[] = { - NULL - }; - --cDvbDevice::cDvbDevice(int Adapter, int Frontend) -+cDvbDevice::cDvbDevice(int Adapter, int Frontend, cDevice *ParentDevice) -+:cDevice(ParentDevice) - { - adapter = Adapter; - frontend = Frontend; -@@ -1015,9 +1092,8 @@ cDvbDevice::cDvbDevice(int Adapter, int Frontend) - - // Common Interface: - -- fd_ca = DvbOpen(DEV_DVB_CA, adapter, frontend, O_RDWR); -- if (fd_ca >= 0) -- ciAdapter = cDvbCiAdapter::CreateCiAdapter(this, fd_ca); -+ int fd_ca = DvbOpen(DEV_DVB_CA, adapter, frontend, O_RDWR); -+ ciAdapter = cDvbCiAdapter::CreateCiAdapter(parentDevice ? parentDevice : this, fd_ca, adapter, frontend); - - // The DVR device (will be opened and closed as needed): - -@@ -1245,7 +1321,11 @@ bool cDvbDevice::BondDevices(const char *Bondings) - if (d >= 0) { - int ErrorDevice = 0; - if (cDevice *Device1 = cDevice::GetDevice(i)) { -+ if (Device1->HasSubDevice()) -+ Device1 = Device1->SubDevice(); - if (cDevice *Device2 = cDevice::GetDevice(d)) { -+ if (Device2->HasSubDevice()) -+ Device2 = Device2->SubDevice(); - if (cDvbDevice *DvbDevice1 = dynamic_cast(Device1)) { - if (cDvbDevice *DvbDevice2 = dynamic_cast(Device2)) { - if (!DvbDevice1->Bond(DvbDevice2)) -@@ -1279,7 +1359,10 @@ bool cDvbDevice::BondDevices(const char *Bondings) - void cDvbDevice::UnBondDevices(void) - { - for (int i = 0; i < cDevice::NumDevices(); i++) { -- if (cDvbDevice *d = dynamic_cast(cDevice::GetDevice(i))) -+ cDevice *dev = cDevice::GetDevice(i); -+ if (dev && dev->HasSubDevice()) -+ dev = dev->SubDevice(); -+ if (cDvbDevice *d = dynamic_cast(dev)) - d->UnBond(); - } - } -@@ -1333,6 +1416,26 @@ bool cDvbDevice::BondingOk(const cChannel *Channel, bool ConsiderOccupied) const - return true; - } - -+bool cDvbDevice::SetIdleDevice(bool Idle, bool TestOnly) -+{ -+ if (TestOnly) { -+ if (ciAdapter) -+ return ciAdapter->SetIdle(Idle, true); -+ return true; -+ } -+ if (!dvbTuner->SetIdle(Idle)) -+ return false; -+ if (ciAdapter && !ciAdapter->SetIdle(Idle, false)) { -+ dvbTuner->SetIdle(!Idle); -+ return false; -+ } -+ if (Idle) -+ StopSectionHandler(); -+ else -+ StartSectionHandler(); -+ return true; -+} -+ - bool cDvbDevice::HasCi(void) - { - return ciAdapter; -@@ -1499,7 +1602,7 @@ bool cDvbDevice::ProvidesChannel(const cChannel *Channel, int Priority, bool *Ne - - bool cDvbDevice::ProvidesEIT(void) const - { -- return dvbTuner != NULL; -+ return !IsIdle() && (dvbTuner != NULL) && !dvbTuner->IsIdle() && ((ciAdapter == NULL) || !ciAdapter->IsIdle()); - } - - int cDvbDevice::NumProvidedSystems(void) const -@@ -1544,6 +1647,11 @@ bool cDvbDevice::HasLock(int TimeoutMs) - return dvbTuner ? dvbTuner->Locked(TimeoutMs) : false; - } - -+bool cDvbDevice::SendDiseqcCmd(dvb_diseqc_master_cmd cmd) -+{ -+ return dvbTuner->SendDiseqcCmd(cmd); -+} -+ - void cDvbDevice::SetTransferModeForDolbyDigital(int Mode) - { - setTransferModeForDolbyDigital = Mode; -@@ -1553,8 +1661,12 @@ bool cDvbDevice::OpenDvr(void) - { - CloseDvr(); - fd_dvr = DvbOpen(DEV_DVB_DVR, adapter, frontend, O_RDONLY | O_NONBLOCK, true); -- if (fd_dvr >= 0) -- tsBuffer = new cTSBuffer(fd_dvr, MEGABYTE(5), CardIndex() + 1); -+ if (fd_dvr >= 0) { -+ if (ciAdapter) -+ tsBuffer = ciAdapter->GetTSBuffer(fd_dvr); -+ if (tsBuffer == NULL) -+ tsBuffer = new cTSBuffer(fd_dvr, MEGABYTE(5), CardIndex() + 1); -+ } - return fd_dvr >= 0; - } - -diff --git a/dvbdevice.h b/dvbdevice.h -index 7da9c56..6cd4abf 100644 ---- a/dvbdevice.h -+++ b/dvbdevice.h -@@ -107,7 +107,7 @@ class cDvbTuner; - /// The cDvbDevice implements a DVB device which can be accessed through the Linux DVB driver API. - - class cDvbDevice : public cDevice { --protected: -+public: - 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: -@@ -127,19 +127,20 @@ private: - int deliverySystems[MAXDELIVERYSYSTEMS]; - int numDeliverySystems; - int numModulations; -- int fd_dvr, fd_ca; -+ int fd_dvr; - static cMutex bondMutex; - cDvbDevice *bondedDevice; - mutable bool needsDetachBondedReceivers; - bool QueryDeliverySystems(int fd_frontend); - public: -- cDvbDevice(int Adapter, int Frontend); -+ cDvbDevice(int Adapter, int Frontend, cDevice *ParentDevice = NULL); - virtual ~cDvbDevice(); - int Adapter(void) const { return adapter; } - int Frontend(void) const { return frontend; } - virtual bool Ready(void); - virtual cString DeviceType(void) const; - 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), -@@ -193,6 +194,7 @@ protected: - virtual bool SetChannelDevice(const cChannel *Channel, bool LiveView); - public: - virtual bool HasLock(int TimeoutMs = 0); -+ virtual bool SendDiseqcCmd(dvb_diseqc_master_cmd cmd); - - // PID handle facilities - -@@ -225,7 +227,7 @@ public: - // Receiver facilities - - private: -- cTSBuffer *tsBuffer; -+ cTSBufferBase *tsBuffer; - protected: - virtual bool OpenDvr(void); - virtual void CloseDvr(void); diff --git a/packages/3rdparty/multimedia/vdr/patches/vdr-44_rotor.patch b/packages/3rdparty/multimedia/vdr/patches/vdr-44_rotor.patch new file mode 100644 index 0000000000..4e7031dc21 --- /dev/null +++ b/packages/3rdparty/multimedia/vdr/patches/vdr-44_rotor.patch @@ -0,0 +1,133 @@ +Description: This patch is needed for the rotor plugin. +Author: Thomas Bergwinkl +Origin: extracted from the rotor plugin 0.1.4-vdr1.5 + +Index: b/device.h +=================================================================== +--- a/device.h ++++ b/device.h +@@ -24,6 +24,8 @@ + #include "spu.h" + #include "thread.h" + #include "tools.h" ++#include ++#include + + #define MAXDEVICES 16 // the maximum number of devices in the system + #define MAXPIDHANDLES 64 // the maximum number of different PIDs per device +@@ -337,6 +339,7 @@ + virtual bool HasProgramme(void) const; + ///< Returns true if the device is currently showing any programme to + ///< the user, either through replaying or live. ++ virtual bool SendDiseqcCmd(dvb_diseqc_master_cmd cmd) {return false;} + + // PID handle facilities + +Index: b/dvbdevice.c +=================================================================== +--- a/dvbdevice.c ++++ b/dvbdevice.c +@@ -283,6 +283,7 @@ + private: + static cMutex bondMutex; + enum eTunerStatus { tsIdle, tsSet, tsTuned, tsLocked }; ++ bool SendDiseqc; + int frontendType; + const cDvbDevice *device; + int fd_frontend; +@@ -299,6 +300,7 @@ + cMutex mutex; + cCondVar locked; + cCondVar newSet; ++ dvb_diseqc_master_cmd diseqc_cmd; + cDvbTuner *bondedTuner; + bool bondedMaster; + bool SetFrontendType(const cChannel *Channel); +@@ -325,12 +327,16 @@ + bool Locked(int TimeoutMs = 0); + int GetSignalStrength(void) const; + int GetSignalQuality(void) const; ++ bool SendDiseqcCmd(dvb_diseqc_master_cmd cmd); ++private: ++ int GetCurrentDeliverySystem(void); + }; + + cMutex cDvbTuner::bondMutex; + + cDvbTuner::cDvbTuner(const cDvbDevice *Device, int Fd_Frontend, int Adapter, int Frontend) + { ++ SendDiseqc = false; + frontendType = SYS_UNDEFINED; + device = Device; + fd_frontend = Fd_Frontend; +@@ -653,6 +659,35 @@ + return -1; + } + ++int cDvbTuner::GetCurrentDeliverySystem() ++{ ++ dtv_property Frontend[1]; ++ memset(&Frontend, 0, sizeof(Frontend)); ++ dtv_properties CmdSeq; ++ memset(&CmdSeq, 0, sizeof(CmdSeq)); ++ CmdSeq.props = Frontend; ++ Frontend[0].cmd = DTV_DELIVERY_SYSTEM; ++ Frontend[0].u.data = 0; ++ if (ioctl(fd_frontend, FE_GET_PROPERTY, &CmdSeq) < 0) { ++ esyslog("ERROR: frontend %d/%d: %m", adapter, frontend); ++ return SYS_UNDEFINED; ++ } ++ return Frontend[0].u.data; ++} ++ ++bool cDvbTuner::SendDiseqcCmd(dvb_diseqc_master_cmd cmd) ++{ ++ cMutexLock MutexLock(&mutex); ++ int frontendType = GetCurrentDeliverySystem(); ++ if ((frontendType != SYS_DVBS && frontendType != SYS_DVBS2) || SendDiseqc) ++ return false; ++ diseqc_cmd=cmd; ++ SendDiseqc=true; ++ newSet.Broadcast(); ++ return true; ++} ++ ++ + static unsigned int FrequencyToHz(unsigned int f) + { + while (f && f < 1000000) +@@ -874,6 +909,10 @@ + if (GetFrontendStatus(NewStatus)) + Status = NewStatus; + cMutexLock MutexLock(&mutex); ++ if (SendDiseqc) { ++ CHECK(ioctl(fd_frontend, FE_DISEQC_SEND_MASTER_CMD, &diseqc_cmd)); ++ SendDiseqc=false; ++ } + int WaitTime = 1000; + switch (tunerStatus) { + case tsIdle: +@@ -1571,6 +1610,11 @@ + return dvbTuner ? dvbTuner->Locked(TimeoutMs) : false; + } + ++bool cDvbDevice::SendDiseqcCmd(dvb_diseqc_master_cmd cmd) ++{ ++ return dvbTuner->SendDiseqcCmd(cmd); ++} ++ + void cDvbDevice::SetTransferModeForDolbyDigital(int Mode) + { + setTransferModeForDolbyDigital = Mode; +Index: b/dvbdevice.h +=================================================================== +--- a/dvbdevice.h ++++ b/dvbdevice.h +@@ -196,6 +196,7 @@ + virtual bool SetChannelDevice(const cChannel *Channel, bool LiveView); + public: + virtual bool HasLock(int TimeoutMs = 0) const; ++ virtual bool SendDiseqcCmd(dvb_diseqc_master_cmd cmd); + + // PID handle facilities + From bf91fbf29e09467da3b0e7152ee15424931d9c17 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Tue, 9 Apr 2013 20:56:20 +0300 Subject: [PATCH 02/29] remove package 'vdr-dynamite' - dynamite never worked as should. especialy with vdr-sc and dvbapi --- .../3rdparty/multimedia/vdr-dynamite/build | 32 -------------- .../3rdparty/multimedia/vdr-dynamite/meta | 37 ---------------- tools/mkpkg/mkpkg_vdr-dynamite | 43 ------------------- 3 files changed, 112 deletions(-) delete mode 100755 packages/3rdparty/multimedia/vdr-dynamite/build delete mode 100644 packages/3rdparty/multimedia/vdr-dynamite/meta delete mode 100755 tools/mkpkg/mkpkg_vdr-dynamite diff --git a/packages/3rdparty/multimedia/vdr-dynamite/build b/packages/3rdparty/multimedia/vdr-dynamite/build deleted file mode 100755 index eabef2a6a8..0000000000 --- a/packages/3rdparty/multimedia/vdr-dynamite/build +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/sh - -################################################################################ -# This file is part of OpenELEC - http://www.openelec.tv -# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) -# -# This Program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This Program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenELEC.tv; see the file COPYING. If not, write to -# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. -# http://www.gnu.org/copyleft/gpl.html -################################################################################ - -. config/options $1 - -VDR_DIR=`basename $BUILD/vdr-[0-9]*` - -# dont build parallel - MAKEFLAGS=-j1 - -cd $PKG_BUILD - make VDRDIR="../$VDR_DIR" LIBDIR="." LOCALEDIR="./locale" - diff --git a/packages/3rdparty/multimedia/vdr-dynamite/meta b/packages/3rdparty/multimedia/vdr-dynamite/meta deleted file mode 100644 index 113d821255..0000000000 --- a/packages/3rdparty/multimedia/vdr-dynamite/meta +++ /dev/null @@ -1,37 +0,0 @@ -################################################################################ -# This file is part of OpenELEC - http://www.openelec.tv -# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) -# -# This Program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This Program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenELEC.tv; see the file COPYING. If not, write to -# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. -# http://www.gnu.org/copyleft/gpl.html -################################################################################ - -PKG_NAME="vdr-dynamite" -PKG_VERSION="914af24" -PKG_REV="1" -PKG_ARCH="any" -PKG_LICENSE="GPL" -PKG_SITE="http://projects.vdr-developer.org/projects/plg-dynamite" -PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz" -PKG_DEPENDS="vdr systemd" -PKG_BUILD_DEPENDS="toolchain vdr systemd" -PKG_PRIORITY="optional" -PKG_SECTION="multimedia" -PKG_SHORTDESC="vdr-dynamite turns the dvbdevices into hotpluggable devices. They can be dynamically attached and detached while vdr is running." -PKG_LONGDESC="This plugin turns the dvbdevices into hotpluggable devices. They can be dynamically attached and detached while vdr is running." - -PKG_IS_ADDON="no" - -PKG_AUTORECONF="no" diff --git a/tools/mkpkg/mkpkg_vdr-dynamite b/tools/mkpkg/mkpkg_vdr-dynamite deleted file mode 100755 index c3d493f9ef..0000000000 --- a/tools/mkpkg/mkpkg_vdr-dynamite +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/sh -################################################################################ -# This file is part of OpenELEC - http://www.openelec.tv -# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) -# -# This Program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This Program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenELEC.tv; see the file COPYING. If not, write to -# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. -# http://www.gnu.org/copyleft/gpl.html -################################################################################ - -echo "getting sources..." - if [ ! -d vdr-dynamite.git ]; then - git clone git://projects.vdr-developer.org/vdr-plugin-dynamite.git vdr-dynamite.git - fi - - cd vdr-dynamite.git - git pull - GIT_REV=`git log -n1 --format=%h` - cd .. - -echo "copying sources..." - rm -rf vdr-dynamite-$GIT_REV - cp -R vdr-dynamite.git vdr-dynamite-$GIT_REV - -echo "cleaning sources..." - rm -rf vdr-dynamite-$GIT_REV/.git - -echo "packing sources..." - tar cvJf vdr-dynamite-$GIT_REV.tar.xz vdr-dynamite-$GIT_REV - -echo "remove temporary sourcedir..." - rm -rf vdr-dynamite-$GIT_REV From bd27bd9fcd7bfccf7a88e2c07a15d3e7fd542df5 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Tue, 9 Apr 2013 20:57:24 +0300 Subject: [PATCH 03/29] vdr-sc: remove -dybamite patch --- .../vdr-sc/patches/vdr-sc-620-dynamite.patch | 282 ------------------ 1 file changed, 282 deletions(-) delete mode 100644 packages/3rdparty/multimedia/vdr-sc/patches/vdr-sc-620-dynamite.patch diff --git a/packages/3rdparty/multimedia/vdr-sc/patches/vdr-sc-620-dynamite.patch b/packages/3rdparty/multimedia/vdr-sc/patches/vdr-sc-620-dynamite.patch deleted file mode 100644 index 5da3d278f1..0000000000 --- a/packages/3rdparty/multimedia/vdr-sc/patches/vdr-sc-620-dynamite.patch +++ /dev/null @@ -1,282 +0,0 @@ -diff -r 442eee2f550d device-hd.c ---- a/device-hd.c Sun Oct 02 21:09:13 2011 +0200 -+++ b/device-hd.c Thu Oct 13 00:15:52 2011 +0200 -@@ -50,12 +50,18 @@ - { - if(!initial) cCondWait::SleepMs(150); - cMutexLock lock(&cafdMutex); -+// BEGIN vdr-plugin-dynamite -+ if(fd_ca < 0) return false; -+// END vdr-plugin-dynamite - return ioctl(fd_ca,CA_SET_DESCR,ca_descr)>=0; - } - - bool cScDvbHdFfDevice::SetCaPid(ca_pid_t *ca_pid) - { - cMutexLock lock(&cafdMutex); -+// BEGIN vdr-plugin-dynamite -+ if(fd_ca < 0) return false; -+// END vdr-plugin-dynamite - return ioctl(fd_ca,CA_SET_PID,ca_pid)>=0; - } - -diff -r 442eee2f550d device-sd.c ---- a/device-sd.c Sun Oct 02 21:09:13 2011 +0200 -+++ b/device-sd.c Thu Oct 13 00:15:52 2011 +0200 -@@ -59,12 +59,18 @@ - bool cScDvbSdFfDevice::SetCaDescr(ca_descr_t *ca_descr, bool initial) - { - cMutexLock lock(&cafdMutex); -+// BEGIN vdr-plugin-dynamite -+ if(fd_ca < 0) return false; -+// END vdr-plugin-dynamite - return ioctl(fd_ca,CA_SET_DESCR,ca_descr)>=0; - } - - bool cScDvbSdFfDevice::SetCaPid(ca_pid_t *ca_pid) - { - cMutexLock lock(&cafdMutex); -+// BEGIN vdr-plugin-dynamite -+ if(fd_ca < 0) return false; -+// END vdr-plugin-dynamite - return ioctl(fd_ca,CA_SET_PID,ca_pid)>=0; - } - -@@ -88,6 +94,9 @@ - - void cScDvbSdFfDevice::DumpAV(void) - { -+// BEGIN vdr-plugin-dynamite -+ if(fd_ca < 0) return; -+// END vdr-plugin-dynamite - if(LOG(L_CORE_AV7110)) { - #define CODEBASE (0x2e000404+0x1ce00) - cMutexLock lock(&cafdMutex); -diff -r 442eee2f550d device-tmpl.c ---- a/device-tmpl.c Sun Oct 02 21:09:13 2011 +0200 -+++ b/device-tmpl.c Thu Oct 13 00:15:52 2011 +0200 -@@ -62,6 +62,14 @@ - #else - cCam *Cam(void) { return cam; } - #endif //!SASC -+// BEGIN vdr-plugin-dynamite -+private: -+ bool lateInit; -+public: -+#ifdef __DYNAMIC_DEVICE_PROBE -+ virtual bool SetIdleDevice(bool Idle, bool TestOnly); -+#endif -+// END vdr-plugin-dynamite - }; - - SCDEVICE::SCDEVICE(cScDevicePlugin *DevPlugin, int Adapter, int Frontend, int cafd) -@@ -75,6 +83,9 @@ - :DVBDEVICE(Adapter) - #endif //APIVERSNUM >= 10711 - { -+// BEGIN vdr-plugin-dynamite -+ lateInit = false; -+// END vdr-plugin-dynamite - #ifndef SASC - tsBuffer=0; hwciadapter=0; - #endif -@@ -88,10 +99,18 @@ - #ifdef SASC - cam=new cCam(this,Adapter,0,devId,devplugin,softcsa,fullts); - #endif // !SASC -+// BEGIN vdr-plugin-dynamite -+ cScDevices::AddScDevice(this); -+ if (cScDevices::AutoLateInit()) -+ LateInit(); -+// END vdr-plugin-dynamite - } - - SCDEVICE::~SCDEVICE() - { -+// BEGIN vdr-plugin-dynamite -+ cScDevices::DelScDevice(this); -+// END vdr-plugin-dynamite - #ifndef SASC - DetachAllReceivers(); - Cancel(3); -@@ -139,6 +158,9 @@ - - void SCDEVICE::LateInit(void) - { -+ if (lateInit) -+ return; -+ lateInit = true; - int n=CardIndex(); - if(DeviceNumber()!=n) - PRINTF(L_GEN_ERROR,"CardIndex - DeviceNumber mismatch! Put SC plugin first on VDR commandline!"); -@@ -155,8 +177,17 @@ - if(fullts) PRINTF(L_GEN_INFO,"Enabling hybrid full-ts mode on card %s",devId); - else PRINTF(L_GEN_INFO,"Using software decryption on card %s",devId); - } -- if(fd_ca2>=0) hwciadapter=cDvbCiAdapter::CreateCiAdapter(this,fd_ca2); -- cam=new cCam(this,DVB_DEV_SPEC,devId,devplugin,softcsa,fullts); -+// BEGIN vdr-plugin-dynamite -+#ifdef __DYNAMIC_DEVICE_PROBE -+ cDevice *cidev = parentDevice ? parentDevice : this; -+#else -+ cDevice *cidev = this; -+#endif -+ if(fd_ca2>=0) hwciadapter=cDvbCiAdapter::CreateCiAdapter(cidev,fd_ca2); -+ if (cidev != this) -+ fd_ca2 = -1; // will be closed by patched cDvbCiAdapter -+ cam=new cCam(cidev,DVB_DEV_SPEC,devId,devplugin,softcsa,fullts); -+// END vdr-plugin-dynamite - } - - bool SCDEVICE::HasCi(void) -@@ -225,6 +256,36 @@ - return false; - } - -+// BEGIN vdr-plugin-dynamite -+#ifdef __DYNAMIC_DEVICE_PROBE -+bool SCDEVICE::SetIdleDevice(bool Idle, bool TestOnly) -+{ -+ if (TestOnly) { -+ if (hwciadapter) -+ return hwciadapter->SetIdle(Idle, true); -+ return DVBDEVICE::SetIdleDevice(Idle, true); -+ } -+ if (hwciadapter && !hwciadapter->SetIdle(Idle, false)) -+ return false; -+ if (!DVBDEVICE::SetIdleDevice(Idle, false)) { -+ if (hwciadapter) -+ hwciadapter->SetIdle(!Idle, false); -+ return false; -+ } -+ if (Idle) { -+ if (fd_ca >= 0) -+ close(fd_ca); -+ fd_ca = -1; -+ } -+ else { -+ if (fd_ca < 0) -+ fd_ca = cScDevices::DvbOpen(DEV_DVB_CA,adapter,frontend,O_RDWR); -+ } -+ return true; -+} -+#endif -+// END vdr-plugin-dynamite -+ - #endif // !SASC - - #undef SCDEVICE -diff -r 442eee2f550d device.c ---- a/device.c Sun Oct 02 21:09:13 2011 +0200 -+++ b/device.c Thu Oct 13 00:15:52 2011 +0200 -@@ -285,6 +285,58 @@ - - int cScDevices::budget=0; - -+// BEGIN vdr-plugin-dynamite -+// dynamite fills the vdr::cDevice::device array with vdr::plugin::dynamite::cDynamicDevice -+// we have to maintain our own list of sc-devices -+int cScDevices::numScDevices = 0; -+cDevice *cScDevices::scdevice[MAXDEVICES] = { NULL }; -+bool cScDevices::autoLateInit = false; -+ -+int cScDevices::NumScDevices(void) -+{ -+ return numScDevices; -+} -+ -+cDevice *cScDevices::GetScDevice(int CardIndex) -+{ -+ for (int n = 0; n < numScDevices; n++) { -+ if (scdevice[n] && (scdevice[n]->CardIndex() == CardIndex)) -+ return scdevice[n]; -+ } -+ return NULL; -+} -+ -+void cScDevices::AddScDevice(cDevice *Device) -+{ -+ if (Device == NULL) -+ return; -+ int i = 0; -+ while ((i < numScDevices) && (i < MAXDEVICES) && (scdevice[i] != Device)) -+ i++; -+ if (i < MAXDEVICES) { -+ scdevice[i] = Device; -+ if (i == numScDevices) -+ numScDevices++; -+ } -+ else -+ esyslog("too many sc-devices!"); -+} -+ -+void cScDevices::DelScDevice(cDevice *Device) -+{ -+ if (Device == NULL) -+ return; -+ int i = 0; -+ while ((i < numScDevices) && (i < MAXDEVICES)) { -+ if (scdevice[i] == Device) { -+ scdevice[i] = NULL; -+ break; -+ } -+ i++; -+ } -+} -+// END vdr-plugin-dynamite -+ - void cScDevices::DvbName(const char *Name, int a, int f, char *buffer, int len) - { - snprintf(buffer,len,"%s%d/%s%d",DEV_DVB_ADAPTER,a,Name,f); -@@ -393,17 +445,22 @@ - { - if(ScSetup.ForceTransfer) - SetTransferModeForDolbyDigital(2); -- for(int n=cDevice::NumDevices(); --n>=0;) { -- cDevice *dev=cDevice::GetDevice(n); -+// BEGIN vdr-plugin-dynamite -+ for(int n=NumScDevices(); --n>=0;) { -+ cDevice *dev=GetScDevice(n); - for(cScDevicePlugin *dp=devplugins.First(); dp; dp=devplugins.Next(dp)) - if(dp->LateInit(dev)) break; - } -+ autoLateInit = true; -+// END vdr-plugin-dynamite - } - - void cScDevices::Shutdown(void) - { -- for(int n=cDevice::NumDevices(); --n>=0;) { -- cDevice *dev=cDevice::GetDevice(n); -+// BEGIN vdr-plugin-dynamite -+ for(int n=NumScDevices(); --n>=0;) { -+ cDevice *dev=GetScDevice(n); -+// END vdr-plugin-dynamite - for(cScDevicePlugin *dp=devplugins.First(); dp; dp=devplugins.Next(dp)) - if(dp->EarlyShutdown(dev)) break; - } -diff -r 442eee2f550d device.h ---- a/device.h Sun Oct 02 21:09:13 2011 +0200 -+++ b/device.h Thu Oct 13 00:15:52 2011 +0200 -@@ -84,6 +84,21 @@ - static bool ForceBudget(int n); - static void DvbName(const char *Name, int a, int f, char *buffer, int len); - static int DvbOpen(const char *Name, int a, int f, int Mode, bool ReportError=false); -+ -+// BEGIN vdr-plugin-dynamite -+// dynamite fills the vdr::cDevice::device array with vdr::plugin::dynamite::cDynamicDevice -+// we have to maintain our own list of sc-devices -+private: -+ static int numScDevices; -+ static cDevice *scdevice[MAXDEVICES]; -+ static bool autoLateInit; -+public: -+ static int NumScDevices(void); -+ static cDevice *GetScDevice(int CardIndex); -+ static void AddScDevice(cDevice *Device); -+ static void DelScDevice(cDevice *Device); -+ static bool AutoLateInit() { return autoLateInit; }; -+// END vdr-plugin-dynamite - }; - - // ---------------------------------------------------------------- From 280053214a8675dc8d6eb809b1d9c95362fc8423 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Tue, 9 Apr 2013 21:02:12 +0300 Subject: [PATCH 04/29] vdr-iptv: update to vdr-iptv-2.0.0 --- packages/3rdparty/multimedia/vdr-iptv/build | 1 - packages/3rdparty/multimedia/vdr-iptv/meta | 2 +- ...dr-iptv-0.5.2-skip_header_processing.patch | 35 ------------ .../vdr-iptv-0.5.2-use-our-strip.patch | 14 ----- .../patches/vdr-iptv-01_makefile.patch | 56 +++++++++++++++++++ 5 files changed, 57 insertions(+), 51 deletions(-) delete mode 100644 packages/3rdparty/multimedia/vdr-iptv/patches/vdr-iptv-0.5.2-skip_header_processing.patch delete mode 100644 packages/3rdparty/multimedia/vdr-iptv/patches/vdr-iptv-0.5.2-use-our-strip.patch create mode 100644 packages/3rdparty/multimedia/vdr-iptv/patches/vdr-iptv-01_makefile.patch diff --git a/packages/3rdparty/multimedia/vdr-iptv/build b/packages/3rdparty/multimedia/vdr-iptv/build index 470986dae0..deb8d5474d 100755 --- a/packages/3rdparty/multimedia/vdr-iptv/build +++ b/packages/3rdparty/multimedia/vdr-iptv/build @@ -30,4 +30,3 @@ LDFLAGS="$LDFLAGS -fPIC" cd $PKG_BUILD make VDRDIR="../$VDR_DIR" LIBDIR="." LOCALEDIR="./locale" - diff --git a/packages/3rdparty/multimedia/vdr-iptv/meta b/packages/3rdparty/multimedia/vdr-iptv/meta index 2ecb3620f5..62829331ef 100644 --- a/packages/3rdparty/multimedia/vdr-iptv/meta +++ b/packages/3rdparty/multimedia/vdr-iptv/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="vdr-iptv" -PKG_VERSION="0.5.2" +PKG_VERSION="2.0.0" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/3rdparty/multimedia/vdr-iptv/patches/vdr-iptv-0.5.2-skip_header_processing.patch b/packages/3rdparty/multimedia/vdr-iptv/patches/vdr-iptv-0.5.2-skip_header_processing.patch deleted file mode 100644 index 38d0e738ff..0000000000 --- a/packages/3rdparty/multimedia/vdr-iptv/patches/vdr-iptv-0.5.2-skip_header_processing.patch +++ /dev/null @@ -1,35 +0,0 @@ -From c7cd9b614762103a95f3da27783e03ce115d43fb Mon Sep 17 00:00:00 2001 -From: Stefan Saraev -Date: Sun, 20 May 2012 16:05:51 +0300 -Subject: [PATCH] vdr-iptv: skip header processing - ---- - protocolhttp.c | 12 +----------- - 1 files changed, 1 insertions(+), 11 deletions(-) - -diff --git a/protocolhttp.c b/protocolhttp.c -index de50f64..45c5425 100644 ---- a/protocolhttp.c -+++ b/protocolhttp.c -@@ -140,17 +140,7 @@ bool cIptvProtocolHttp::ProcessHeaders(void) - memset(buf, '\0', sizeof(buf)); - if (!GetHeaderLine(buf, sizeof(buf), lineLength)) - return false; -- if (!responseFound && sscanf(buf, fmt, &version, &response) != 2) { -- error("Expected HTTP header not found\n"); -- continue; -- } -- else -- responseFound = true; -- // Allow only 'OK' and 'Partial Content' -- if ((response != 200) && (response != 206)) { -- error("Invalid HTTP response (%d): %s\n", response, buf); -- return false; -- } -+ responseFound = true; - } - return true; - } --- -1.7.2.5 - diff --git a/packages/3rdparty/multimedia/vdr-iptv/patches/vdr-iptv-0.5.2-use-our-strip.patch b/packages/3rdparty/multimedia/vdr-iptv/patches/vdr-iptv-0.5.2-use-our-strip.patch deleted file mode 100644 index 0f6f059b45..0000000000 --- a/packages/3rdparty/multimedia/vdr-iptv/patches/vdr-iptv-0.5.2-use-our-strip.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/Makefile b/Makefile -index d41acd1..58faab1 100644 ---- a/Makefile -+++ b/Makefile -@@ -5,9 +5,6 @@ - # Debugging on/off - #IPTV_DEBUG = 1 - --# Strip debug symbols? Set eg. to /bin/true if not --STRIP = strip -- - # The official name of this plugin. - # This name will be used in the '-P...' option of VDR to load the plugin. - # By default the main source file also carries this name. diff --git a/packages/3rdparty/multimedia/vdr-iptv/patches/vdr-iptv-01_makefile.patch b/packages/3rdparty/multimedia/vdr-iptv/patches/vdr-iptv-01_makefile.patch new file mode 100644 index 0000000000..43517c085f --- /dev/null +++ b/packages/3rdparty/multimedia/vdr-iptv/patches/vdr-iptv-01_makefile.patch @@ -0,0 +1,56 @@ +diff --git a/Makefile b/Makefile +index 7f147b8..db294fc 100644 +--- a/Makefile ++++ b/Makefile +@@ -12,8 +12,6 @@ + + # Strip debug symbols? Set eg. to /bin/true if not + +-STRIP = strip +- + # The official name of this plugin. + # This name will be used in the '-P...' option of VDR to load the plugin. + # By default the main source file also carries this name. +@@ -27,23 +25,15 @@ GITTAG = $(shell git describe --always 2>/dev/null) + + ### The directory environment: + +-# Use package data if installed...otherwise assume we're under the VDR source directory: +-PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc)) +-LIBDIR = $(call PKGCFG,libdir) +-LOCDIR = $(call PKGCFG,locdir) +-PLGCFG = $(call PKGCFG,plgcfg) +-CFGDIR = $(call PKGCFG,configdir) +-# + TMPDIR ?= /tmp + + ### The compiler options: + +-export CFLAGS = $(call PKGCFG,cflags) +-export CXXFLAGS = $(call PKGCFG,cxxflags) ++include $(VDRDIR)/Make.global + + ### The version number of VDR's plugin API: + +-APIVERSION = $(call PKGCFG,apiversion) ++APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h) + + ### Allow user defined options to overwrite defaults: + +@@ -64,7 +54,7 @@ LIBS = $(shell curl-config --libs) + + ### Includes and Defines (add further entries here): + +-INCLUDES += ++INCLUDES += -I$(VDRDIR)/include + + DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"' + +@@ -138,6 +128,7 @@ install-i18n: $(I18Nmsgs) + + $(SOFILE): $(OBJS) + $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) $(LIBS) -o $@ ++ @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION) + ifndef IPTV_DEBUG + @$(STRIP) $@ + endif From 1d744433d14f1a381798b3122556f4d2a812a6ed Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Tue, 9 Apr 2013 21:05:58 +0300 Subject: [PATCH 05/29] vdr-plugin-streamdev: update to vdr-plugin-streamdev-329129d --- .../multimedia/vdr-plugin-streamdev/build | 4 ++ .../multimedia/vdr-plugin-streamdev/meta | 2 +- .../vdr-plugin-streamdev-01_makefile.patch | 53 +++++++++++++++++++ ...dr-plugin-streamdev-f58086a-makefile.patch | 19 ------- 4 files changed, 58 insertions(+), 20 deletions(-) create mode 100644 packages/3rdparty/multimedia/vdr-plugin-streamdev/patches/vdr-plugin-streamdev-01_makefile.patch delete mode 100644 packages/3rdparty/multimedia/vdr-plugin-streamdev/patches/vdr-plugin-streamdev-f58086a-makefile.patch diff --git a/packages/3rdparty/multimedia/vdr-plugin-streamdev/build b/packages/3rdparty/multimedia/vdr-plugin-streamdev/build index fefe2cad64..b31436f613 100755 --- a/packages/3rdparty/multimedia/vdr-plugin-streamdev/build +++ b/packages/3rdparty/multimedia/vdr-plugin-streamdev/build @@ -24,6 +24,10 @@ VDR_DIR=`basename $BUILD/vdr-[0-9]*` +CFLAGS="$CFLAGS -fPIC" +CXXFLAGS="$CXXFLAGS -fPIC" +LDFLAGS="$LDFLAGS -fPIC" + cd $PKG_BUILD PWD=`pwd` make VDRDIR="$PWD/../$VDR_DIR" LIBDIR="." LOCALEDIR="./locale" diff --git a/packages/3rdparty/multimedia/vdr-plugin-streamdev/meta b/packages/3rdparty/multimedia/vdr-plugin-streamdev/meta index 0d510c3c8a..8aff611637 100644 --- a/packages/3rdparty/multimedia/vdr-plugin-streamdev/meta +++ b/packages/3rdparty/multimedia/vdr-plugin-streamdev/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="vdr-plugin-streamdev" -PKG_VERSION="f58086a" +PKG_VERSION="329129d" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/3rdparty/multimedia/vdr-plugin-streamdev/patches/vdr-plugin-streamdev-01_makefile.patch b/packages/3rdparty/multimedia/vdr-plugin-streamdev/patches/vdr-plugin-streamdev-01_makefile.patch new file mode 100644 index 0000000000..b931d7bf2d --- /dev/null +++ b/packages/3rdparty/multimedia/vdr-plugin-streamdev/patches/vdr-plugin-streamdev-01_makefile.patch @@ -0,0 +1,53 @@ +diff --git a/Makefile b/Makefile +index 90f3261..d80e15d 100644 +--- a/Makefile ++++ b/Makefile +@@ -15,22 +15,15 @@ VERSION = $(shell grep 'const char \*VERSION *=' common.c | awk '{ print $$5 }' + + ### The directory environment: + +-# Use package data if installed...otherwise assume we're under the VDR source directory: +-PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc)) +-LIBDIR = $(call PKGCFG,libdir) +-LOCDIR = $(call PKGCFG,locdir) +-PLGCFG = $(call PKGCFG,plgcfg) +-# + TMPDIR ?= /tmp + + ### The compiler options: + +-export CFLAGS = $(call PKGCFG,cflags) +-export CXXFLAGS = $(call PKGCFG,cxxflags) ++include $(VDRDIR)/Make.global + + ### The version number of VDR's plugin API: + +-APIVERSION = $(call PKGCFG,apiversion) ++APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h) + + ### Allow user defined options to overwrite defaults: + +diff --git a/client/Makefile b/client/Makefile +index ea9dc45..6fac485 100644 +--- a/client/Makefile ++++ b/client/Makefile +@@ -72,6 +72,7 @@ install-i18n: $(I18Nmsgs) + + $(SOFILE): $(CLIENTOBJS) $(COMMONOBJS) ../tools/sockettools.a + $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $^ -o $@ ++ @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION) + + install-lib: $(SOFILE) + install -D $^ $(DESTDIR)$(LIBDIR)/$^.$(APIVERSION) +diff --git a/server/Makefile b/server/Makefile +index 37cd4bb..8d2f49f 100644 +--- a/server/Makefile ++++ b/server/Makefile +@@ -78,6 +78,7 @@ install-i18n: $(I18Nmsgs) + $(SOFILE): $(SERVEROBJS) $(COMMONOBJS) \ + ../tools/sockettools.a ../remux/remux.a ../libdvbmpeg/libdvbmpegtools.a + $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $^ -o $@ ++ @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION) + + install-lib: $(SOFILE) + install -D $^ $(DESTDIR)$(LIBDIR)/$^.$(APIVERSION) diff --git a/packages/3rdparty/multimedia/vdr-plugin-streamdev/patches/vdr-plugin-streamdev-f58086a-makefile.patch b/packages/3rdparty/multimedia/vdr-plugin-streamdev/patches/vdr-plugin-streamdev-f58086a-makefile.patch deleted file mode 100644 index 12987a2d40..0000000000 --- a/packages/3rdparty/multimedia/vdr-plugin-streamdev/patches/vdr-plugin-streamdev-f58086a-makefile.patch +++ /dev/null @@ -1,19 +0,0 @@ -commit 949a46ec2ea06d97a7fcd47adc33153215399ac5 -Author: Stefan Saraev -Date: Sun Mar 4 16:39:58 2012 +0200 - - vdr-streamdev: adjust makefile for openelec - -diff --git a/Makefile b/Makefile -index b375844..231041f 100644 ---- a/Makefile -+++ b/Makefile -@@ -21,8 +21,6 @@ VERSION = $(shell grep 'const char \*VERSION *=' common.c | awk '{ print $$5 }' - - ### The directory environment: - --VDRDIR = ../../.. --LIBDIR = ../../lib - TMPDIR = /tmp - - ### The version number of VDR (taken from VDR's "config.h"): From acc7a58b463321ff4869000cab74471fa2376268 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Tue, 9 Apr 2013 21:07:53 +0300 Subject: [PATCH 06/29] vdr-live: update to vdr-live- 0.3.0 --- packages/3rdparty/multimedia/vdr-live/meta | 2 +- .../patches/vdr-live-0.2.0-01_ipv6.patch | 39 ----------- .../vdr-live-0.2.0-02_timers_colon.patch | 18 ----- .../vdr-live-0.2.0-03_fix-INCLUDES.patch | 70 ------------------- ...t-use-the-direct-access-to-crecoding.patch | 50 ------------- ...0.2.0-06_compile-fix-for-vdr.1.7.28+.patch | 40 ----------- 6 files changed, 1 insertion(+), 218 deletions(-) delete mode 100644 packages/3rdparty/multimedia/vdr-live/patches/vdr-live-0.2.0-01_ipv6.patch delete mode 100644 packages/3rdparty/multimedia/vdr-live/patches/vdr-live-0.2.0-02_timers_colon.patch delete mode 100644 packages/3rdparty/multimedia/vdr-live/patches/vdr-live-0.2.0-03_fix-INCLUDES.patch delete mode 100644 packages/3rdparty/multimedia/vdr-live/patches/vdr-live-0.2.0-05_do-not-use-the-direct-access-to-crecoding.patch delete mode 100644 packages/3rdparty/multimedia/vdr-live/patches/vdr-live-0.2.0-06_compile-fix-for-vdr.1.7.28+.patch diff --git a/packages/3rdparty/multimedia/vdr-live/meta b/packages/3rdparty/multimedia/vdr-live/meta index 769fd60a65..8a3fcc8a91 100644 --- a/packages/3rdparty/multimedia/vdr-live/meta +++ b/packages/3rdparty/multimedia/vdr-live/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="vdr-live" -PKG_VERSION="0.2.0" +PKG_VERSION="0.3.0" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/3rdparty/multimedia/vdr-live/patches/vdr-live-0.2.0-01_ipv6.patch b/packages/3rdparty/multimedia/vdr-live/patches/vdr-live-0.2.0-01_ipv6.patch deleted file mode 100644 index 827b6b5d84..0000000000 --- a/packages/3rdparty/multimedia/vdr-live/patches/vdr-live-0.2.0-01_ipv6.patch +++ /dev/null @@ -1,39 +0,0 @@ -Description: Allows to use IPV6 addresses -Forwarded: not-needed -Origin: vendor, http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=630627#10 -Bug-Debian: http://bugs.debian.org/630627 -Author: Luboš Doležel - ---- live-0.2.0/setup.cpp.orig 2008-04-23 01:01:53.000000000 +0200 -+++ live-0.2.0/setup.cpp 2011-06-15 20:22:36.577961061 +0200 -@@ -151,13 +151,28 @@ - - bool Setup::CheckServerIps() - { -+ bool v6supported = false; -+ int s = socket(AF_INET6, SOCK_STREAM, 0); -+ -+ if (s != -1) { -+ close(s); -+ v6supported = true; -+ } -+ - if ( m_serverIps.empty() ) { -- m_serverIps.push_back( "0.0.0.0" ); -+ if (v6supported) -+ m_serverIps.push_back( "::" ); -+ else -+ m_serverIps.push_back( "0.0.0.0" ); - return true; - } - -+ union { -+ in_addr in4; -+ in6_addr in6; -+ }; - for ( IpList::const_iterator ip = m_serverIps.begin(); ip != m_serverIps.end(); ++ip ) { -- if ( inet_addr( ip->c_str() ) == static_cast< in_addr_t >( -1 ) ) { -+ if ( !inet_pton(AF_INET, ip->c_str(), &in4) && !inet_pton(AF_INET6, ip->c_str(), &in6) ) { - esyslog( "ERROR: live server ip %s is not a valid ip address", ip->c_str() ); - cerr << "ERROR: live server ip " << *ip << " is not a valid ip address" << endl; - return false; diff --git a/packages/3rdparty/multimedia/vdr-live/patches/vdr-live-0.2.0-02_timers_colon.patch b/packages/3rdparty/multimedia/vdr-live/patches/vdr-live-0.2.0-02_timers_colon.patch deleted file mode 100644 index f84d00dcb9..0000000000 --- a/packages/3rdparty/multimedia/vdr-live/patches/vdr-live-0.2.0-02_timers_colon.patch +++ /dev/null @@ -1,18 +0,0 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 02_timers_colon.dpatch by Timo Weingärtner -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: colons have to be replaced by pipes in timer titles. - -@DPATCH@ ---- vdr-plugin-live-0.2.0/timers.cpp 2008-04-10 22:06:05.000000000 +0200 -+++ vdr-plugin-live-0.2.0.new/timers.cpp 2009-07-25 23:39:02.000000000 +0200 -@@ -138,7 +138,7 @@ - ostringstream builder; - builder << flags << ":" << channel << ":" << ( weekdays != "-------" ? weekdays : "" ) - << ( weekdays == "-------" || day.empty() ? "" : "@" ) << day << ":" << start << ":" << stop << ":" -- << priority << ":" << lifetime << ":" << title << ":" << aux; -+ << priority << ":" << lifetime << ":" << StringReplace(title, ":", "|") << ":" << aux; - // dsyslog("%s", builder.str().c_str()); - - TimerPair timerData( timer, builder.str() ); diff --git a/packages/3rdparty/multimedia/vdr-live/patches/vdr-live-0.2.0-03_fix-INCLUDES.patch b/packages/3rdparty/multimedia/vdr-live/patches/vdr-live-0.2.0-03_fix-INCLUDES.patch deleted file mode 100644 index 1b8760f953..0000000000 --- a/packages/3rdparty/multimedia/vdr-live/patches/vdr-live-0.2.0-03_fix-INCLUDES.patch +++ /dev/null @@ -1,70 +0,0 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 03_live-0.2.0-fix-INCLUDES.dpatch by Thomas Günther -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Fixes compilation with VDR >= 1.7.13. - -@DPATCH@ ---- live-0.2.0/Makefile -+++ live-0.2.0/Makefile -@@ -38,6 +38,7 @@ - ### Allow user defined options to overwrite defaults: - - -include $(VDRDIR)/Make.config -+EXTRA_INCLUDES = $(INCLUDES) - - ### The version number of VDR's plugin API (taken from VDR's "config.h"): - -@@ -139,10 +140,10 @@ - subdirs: $(SUBDIRS) - - $(SUBDIRS): -- $(MAKE) -C $@ CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS)" $(MAKECMDGOALS) -+ $(MAKE) -C $@ CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS)" EXTRA_INCLUDES="$(EXTRA_INCLUDES)" $(MAKECMDGOALS) - - PAGES: -- $(MAKE) -C pages CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS)" .dependencies -+ $(MAKE) -C pages CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS)" EXTRA_INCLUDES="$(EXTRA_INCLUDES)" .dependencies - - $(VERSIONSUFFIX): FORCE - ./buildutil/version-util $(VERSIONSUFFIX) || ./buildutil/version-util -F $(VERSIONSUFFIX) ---- live-0.2.0/css/Makefile -+++ live-0.2.0/css/Makefile -@@ -7,6 +7,7 @@ - CXXFLAGS += `tntnet-config --cxxflags` - LDFLAGS += `tntnet-config --libs` - -+INCLUDES += $(EXTRA_INCLUDES) - INCLUDES += -I.. - - ### The directory environment: ---- live-0.2.0/httpd/Makefile -+++ live-0.2.0/httpd/Makefile -@@ -7,6 +7,7 @@ - - ### Includes and Defines (add further entries here): - -+INCLUDES += $(EXTRA_INCLUDES) - INCLUDES += -I. - - ### The object files (add further files here): ---- live-0.2.0/javascript/Makefile -+++ live-0.2.0/javascript/Makefile -@@ -7,6 +7,7 @@ - CXXFLAGS += `tntnet-config --cxxflags` - LDFLAGS += `tntnet-config --libs` - -+INCLUDES += $(EXTRA_INCLUDES) - INCLUDES += -I.. -I$(VDRDIR)/include - - ### The directory environment: ---- live-0.2.0/pages/Makefile -+++ live-0.2.0/pages/Makefile -@@ -2,6 +2,7 @@ - AR ?= ar - ECPPC ?= ecppc - -+INCLUDES += $(EXTRA_INCLUDES) - INCLUDES += -I.. -I$(VDRDIR)/include - - ### The directory environment: diff --git a/packages/3rdparty/multimedia/vdr-live/patches/vdr-live-0.2.0-05_do-not-use-the-direct-access-to-crecoding.patch b/packages/3rdparty/multimedia/vdr-live/patches/vdr-live-0.2.0-05_do-not-use-the-direct-access-to-crecoding.patch deleted file mode 100644 index a7c143e7e2..0000000000 --- a/packages/3rdparty/multimedia/vdr-live/patches/vdr-live-0.2.0-05_do-not-use-the-direct-access-to-crecoding.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 94a0a210a485ce1fc95c47a6bc67c4c16c89a0f9 Mon Sep 17 00:00:00 2001 -From: Dieter Hametner -Date: Sun, 25 Mar 2012 14:42:12 +0000 -Subject: Updated LIVE to latest changes in vdr 1.7.27 - -- Do not use the direct access to cRecoding members any more. ---- -diff --git a/epg_events.cpp b/epg_events.cpp -index a514769..cd4996e 100644 ---- a/epg_events.cpp -+++ b/epg_events.cpp -@@ -182,12 +182,20 @@ namespace vdrlive - - time_t EpgRecording::GetStartTime() const - { -+#if VDRVERSNUM < 10726 - return m_recording ? m_recording->start : 0; -+#else -+ return m_recording ? m_recording->Start() : 0; -+#endif - } - - time_t EpgRecording::GetEndTime() const - { -+#if VDRVERSNUM < 10726 - return m_recording ? m_recording->start : 0; -+#else -+ return m_recording ? m_recording->Start() : 0; -+#endif - } - - const string EpgRecording::Name() const -diff --git a/recman.cpp b/recman.cpp -index fb315d2..6a2fc00 100644 ---- a/recman.cpp -+++ b/recman.cpp -@@ -383,7 +383,11 @@ namespace vdrlive { - - time_t RecordingsItemRec::StartTime() const - { -+#if VDRVERSNUM < 10726 - return m_recording->start; -+#else -+ return m_recording->Start(); -+#endif - } - - long RecordingsItemRec::Duration() const --- -cgit v0.9.0.2-40-g7c79 diff --git a/packages/3rdparty/multimedia/vdr-live/patches/vdr-live-0.2.0-06_compile-fix-for-vdr.1.7.28+.patch b/packages/3rdparty/multimedia/vdr-live/patches/vdr-live-0.2.0-06_compile-fix-for-vdr.1.7.28+.patch deleted file mode 100644 index 38dc1a5f81..0000000000 --- a/packages/3rdparty/multimedia/vdr-live/patches/vdr-live-0.2.0-06_compile-fix-for-vdr.1.7.28+.patch +++ /dev/null @@ -1,40 +0,0 @@ -From c3ecf9fabb674bc154f5a08cdd62e74e2b5d0e36 Mon Sep 17 00:00:00 2001 -From: Christian Ruppert -Date: Sun, 03 Jun 2012 23:42:31 +0000 -Subject: Compile fix for >=vdr-1.7.28 - ---- -diff --git a/tasks.cpp b/tasks.cpp -index 9f20190..2a2b8d5 100644 ---- a/tasks.cpp -+++ b/tasks.cpp -@@ -60,9 +60,15 @@ void PlayRecordingTask::Action() - - const char *current = NowReplaying(); - if (!current || (0 != strcmp(current, recording->FileName()))) { -+#if VDRVERSNUM >= 10728 -+ cReplayControl::SetRecording( 0 ); -+ cControl::Shutdown(); -+ cReplayControl::SetRecording( recording->FileName() ); -+#else - cReplayControl::SetRecording( 0, 0 ); - cControl::Shutdown(); - cReplayControl::SetRecording( recording->FileName(), recording->Title() ); -+#endif - cControl::Launch( new cReplayControl ); - cControl::Attach(); - } -@@ -122,7 +128,11 @@ void StopRecordingTask::Action() - return; - } - -+#if VDRVERSNUM >= 10728 -+ cReplayControl::SetRecording( 0 ); -+#else - cReplayControl::SetRecording( 0, 0 ); -+#endif - cControl::Shutdown(); - } - --- -cgit v0.9.0.2-40-g7c79 From 88898521d1ba686b9c81fdcda9950d8473e53367 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Tue, 9 Apr 2013 21:12:05 +0300 Subject: [PATCH 07/29] vdr-plugin-dvbapi: update to vdr-plugin-dvbapi-555272d --- .../multimedia/vdr-plugin-dvbapi/meta | 2 +- ...vdr-plugin-dvbapi-01_crosscompiling.patch} | 0 .../vdr-plugin-dvbapi-02_makefile.patch | 77 +++++++++++++++++++ ...tch => vdr-plugin-dvbapi-03_ffdecsa.patch} | 0 ... vdr-plugin-dvbapi-04_force-softcsa.patch} | 0 5 files changed, 78 insertions(+), 1 deletion(-) rename packages/3rdparty/multimedia/vdr-plugin-dvbapi/patches/{vdr-plugin-dvbapi-cd93752-crosscompiling.patch => vdr-plugin-dvbapi-01_crosscompiling.patch} (100%) create mode 100644 packages/3rdparty/multimedia/vdr-plugin-dvbapi/patches/vdr-plugin-dvbapi-02_makefile.patch rename packages/3rdparty/multimedia/vdr-plugin-dvbapi/patches/{vdr-plugin-dvbapi-cd93752-ffdecsa.patch => vdr-plugin-dvbapi-03_ffdecsa.patch} (100%) rename packages/3rdparty/multimedia/vdr-plugin-dvbapi/patches/{vdr-plugin-dvbapi-cd93752-force-softcsa.patch => vdr-plugin-dvbapi-04_force-softcsa.patch} (100%) diff --git a/packages/3rdparty/multimedia/vdr-plugin-dvbapi/meta b/packages/3rdparty/multimedia/vdr-plugin-dvbapi/meta index 663200826c..a78b12de11 100644 --- a/packages/3rdparty/multimedia/vdr-plugin-dvbapi/meta +++ b/packages/3rdparty/multimedia/vdr-plugin-dvbapi/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="vdr-plugin-dvbapi" -PKG_VERSION="cd93752" +PKG_VERSION="555272d" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/3rdparty/multimedia/vdr-plugin-dvbapi/patches/vdr-plugin-dvbapi-cd93752-crosscompiling.patch b/packages/3rdparty/multimedia/vdr-plugin-dvbapi/patches/vdr-plugin-dvbapi-01_crosscompiling.patch similarity index 100% rename from packages/3rdparty/multimedia/vdr-plugin-dvbapi/patches/vdr-plugin-dvbapi-cd93752-crosscompiling.patch rename to packages/3rdparty/multimedia/vdr-plugin-dvbapi/patches/vdr-plugin-dvbapi-01_crosscompiling.patch diff --git a/packages/3rdparty/multimedia/vdr-plugin-dvbapi/patches/vdr-plugin-dvbapi-02_makefile.patch b/packages/3rdparty/multimedia/vdr-plugin-dvbapi/patches/vdr-plugin-dvbapi-02_makefile.patch new file mode 100644 index 0000000000..bab32c78b8 --- /dev/null +++ b/packages/3rdparty/multimedia/vdr-plugin-dvbapi/patches/vdr-plugin-dvbapi-02_makefile.patch @@ -0,0 +1,77 @@ +diff --git a/Makefile b/Makefile +index ebe9d76..ef2d2e5 100644 +--- a/Makefile ++++ b/Makefile +@@ -15,18 +15,11 @@ VERSION = $(shell grep 'static const char \*VERSION *=' DVBAPI.h | awk '{ print + + ### The directory environment: + +-# Use package data if installed...otherwise assume we're under the VDR source directory: +-PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc)) +-LIBDIR = $(call PKGCFG,libdir) +-LOCDIR = $(call PKGCFG,locdir) +-PLGCFG = $(call PKGCFG,plgcfg) +-# + TMPDIR ?= /tmp + + ### The compiler options: + +-export CFLAGS = $(call PKGCFG,cflags) +-export CXXFLAGS = $(call PKGCFG,cxxflags) ++include $(VDRDIR)/Make.global + + ### Allow user defined options to overwrite defaults: + +@@ -34,33 +27,7 @@ export CXXFLAGS = $(call PKGCFG,cxxflags) + + ### The version number of VDR's plugin API: + +-APIVERSION = $(call PKGCFG,apiversion) +-ifeq ($(strip $(APIVERSION)),) +-APIVERSION = $(shell grep 'define APIVERSION ' $(VDRDIR)/config.h | awk '{ print $$3 }' | sed -e 's/"//g') +-NOCONFIG := 1 +-endif +- +-# backward compatibility with VDR version < 1.7.34 +-API1733 := $(shell if [ "$(APIVERSION)" \< "1.7.34" ]; then echo true; fi; ) +- +-ifdef API1733 +- +-VDRSRC = $(VDRDIR) +-ifeq ($(strip $(VDRSRC)),) +-VDRSRC := ../../.. +-endif +-LIBDIR = $(VDRSRC)/PLUGINS/lib +- +-ifndef NOCONFIG +-CXXFLAGS = $(call PKGCFG,cflags) +-CXXFLAGS += -fPIC +-else +--include $(VDRSRC)/Make.global +--include $(VDRSRC)/Make.config +-endif +- +-export CXXFLAGS +-endif ++APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h) + + ### The name of the distribution archive: + +@@ -73,9 +40,7 @@ SOFILE = libvdr-$(PLUGIN).so + + ### Includes and Defines (add further entries here): + +-ifdef API1733 + INCLUDES += -I$(VDRSRC)/include +-endif + + DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"' + +@@ -145,6 +110,7 @@ $(DEPFILE): Makefile + + $(SOFILE): $(OBJS) $(FFDECSA) + $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) $(DECSALIB) -o $@ ++ @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION) + + libdvbapi-dvbsddevice.so: device-sd.o + $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $< -o $@ diff --git a/packages/3rdparty/multimedia/vdr-plugin-dvbapi/patches/vdr-plugin-dvbapi-cd93752-ffdecsa.patch b/packages/3rdparty/multimedia/vdr-plugin-dvbapi/patches/vdr-plugin-dvbapi-03_ffdecsa.patch similarity index 100% rename from packages/3rdparty/multimedia/vdr-plugin-dvbapi/patches/vdr-plugin-dvbapi-cd93752-ffdecsa.patch rename to packages/3rdparty/multimedia/vdr-plugin-dvbapi/patches/vdr-plugin-dvbapi-03_ffdecsa.patch diff --git a/packages/3rdparty/multimedia/vdr-plugin-dvbapi/patches/vdr-plugin-dvbapi-cd93752-force-softcsa.patch b/packages/3rdparty/multimedia/vdr-plugin-dvbapi/patches/vdr-plugin-dvbapi-04_force-softcsa.patch similarity index 100% rename from packages/3rdparty/multimedia/vdr-plugin-dvbapi/patches/vdr-plugin-dvbapi-cd93752-force-softcsa.patch rename to packages/3rdparty/multimedia/vdr-plugin-dvbapi/patches/vdr-plugin-dvbapi-04_force-softcsa.patch From 4f2fdcad8325323df27aba44fe2f7e8809ad52fa Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Tue, 9 Apr 2013 21:17:32 +0300 Subject: [PATCH 08/29] vdr-epgsearch: update to vdr-epgsearch-e2de927 --- .../3rdparty/multimedia/vdr-epgsearch/build | 5 ++ .../3rdparty/multimedia/vdr-epgsearch/meta | 2 +- .../patches/vdr-epgsearch-01_makefile.patch | 68 +++++++++++++++++++ 3 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 packages/3rdparty/multimedia/vdr-epgsearch/patches/vdr-epgsearch-01_makefile.patch diff --git a/packages/3rdparty/multimedia/vdr-epgsearch/build b/packages/3rdparty/multimedia/vdr-epgsearch/build index e3e469789a..b31436f613 100755 --- a/packages/3rdparty/multimedia/vdr-epgsearch/build +++ b/packages/3rdparty/multimedia/vdr-epgsearch/build @@ -23,6 +23,11 @@ . config/options $1 VDR_DIR=`basename $BUILD/vdr-[0-9]*` + +CFLAGS="$CFLAGS -fPIC" +CXXFLAGS="$CXXFLAGS -fPIC" +LDFLAGS="$LDFLAGS -fPIC" + cd $PKG_BUILD PWD=`pwd` make VDRDIR="$PWD/../$VDR_DIR" LIBDIR="." LOCALEDIR="./locale" diff --git a/packages/3rdparty/multimedia/vdr-epgsearch/meta b/packages/3rdparty/multimedia/vdr-epgsearch/meta index 6df7ca695f..19190b9af7 100644 --- a/packages/3rdparty/multimedia/vdr-epgsearch/meta +++ b/packages/3rdparty/multimedia/vdr-epgsearch/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="vdr-epgsearch" -PKG_VERSION="0fc4817" +PKG_VERSION="e2de927" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/3rdparty/multimedia/vdr-epgsearch/patches/vdr-epgsearch-01_makefile.patch b/packages/3rdparty/multimedia/vdr-epgsearch/patches/vdr-epgsearch-01_makefile.patch new file mode 100644 index 0000000000..0a7bb44e85 --- /dev/null +++ b/packages/3rdparty/multimedia/vdr-epgsearch/patches/vdr-epgsearch-01_makefile.patch @@ -0,0 +1,68 @@ +diff --git a/Makefile b/Makefile +index 6bb1b96..118e379 100644 +--- a/Makefile ++++ b/Makefile +@@ -62,21 +62,10 @@ VERSION = $(shell grep 'static const char VERSION\[\] *=' $(PLUGIN).c | awk '{ p + + ### The directory environment: + +-# Use package data if installed...otherwise assume we're under the VDR source directory: +-PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc)) +-LIBDIR = $(call PKGCFG,libdir) +-LOCDIR = $(call PKGCFG,locdir) +-MANDIR = $(call PKGCFG,mandir) +-CONFDIR = $(call PKGCFG,configdir) +-BINDIR = $(call PKGCFG,bindir) +-# + TMPDIR ?= /tmp + + ### The compiler options: + +-export CFLAGS = $(call PKGCFG,cflags) +-export CXXFLAGS = $(call PKGCFG,cxxflags) +- + ### configuring modules + ifeq ($(AUTOCONFIG),1) + ifeq (exists, $(shell pkg-config libpcre && echo exists)) +@@ -92,9 +81,11 @@ ifeq ($(AUTOCONFIG),1) + endif + endif + ++include $(VDRDIR)/Make.global ++ + ### The version number of VDR's plugin API: + +-APIVERSION = $(call PKGCFG,apiversion) ++APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h) + + ### The name of the distribution archive: + +@@ -103,7 +94,7 @@ PACKAGE = vdr-$(ARCHIVE) + + ### Includes and Defines (add further entries here): + +-INCLUDES += ++INCLUDES += -I$(VDRDIR)/include + + DEFINES += + +@@ -231,15 +222,19 @@ install-i18n: $(I18Nmsgs) + + libvdr-$(PLUGIN).so: $(OBJS) + $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) $(LIBS) -o $@ ++ @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION) + + libvdr-$(PLUGIN2).so: $(OBJS2) + $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS2) $(LIBS2) -o $@ ++ @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION) + + libvdr-$(PLUGIN3).so: $(OBJS3) + $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS3) $(LIBS3) -o $@ ++ @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION) + + libvdr-$(PLUGIN4).so: $(OBJS4) + $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS4) $(LIBS4) -o $@ ++ @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION) + + createcats: createcats.o Makefile + $(CXX) $(CXXFLAGS) $(LDFLAGS) createcats.o -o $@ From af4c63d1a1765bf85db368c16edc8b5c20f8b799 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Tue, 9 Apr 2013 21:22:25 +0300 Subject: [PATCH 09/29] vdr-plugin-xmltv2vdr: update to vdr-plugin-xmltv2vdr-41b998d --- packages/3rdparty/multimedia/vdr-plugin-xmltv2vdr/build | 5 +++++ packages/3rdparty/multimedia/vdr-plugin-xmltv2vdr/meta | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/3rdparty/multimedia/vdr-plugin-xmltv2vdr/build b/packages/3rdparty/multimedia/vdr-plugin-xmltv2vdr/build index 48ce67dd04..c44b374a1f 100755 --- a/packages/3rdparty/multimedia/vdr-plugin-xmltv2vdr/build +++ b/packages/3rdparty/multimedia/vdr-plugin-xmltv2vdr/build @@ -23,6 +23,11 @@ . config/options $1 VDR_DIR=`basename $BUILD/vdr-[0-9]*` + +CFLAGS="$CFLAGS -fPIC" +CXXFLAGS="$CXXFLAGS -fPIC" +LDFLAGS="$LDFLAGS -fPIC" + cd $PKG_BUILD PWD=`pwd` make VDRDIR="$PWD/../$VDR_DIR" LIBDIR="." LOCALEDIR="./locale" diff --git a/packages/3rdparty/multimedia/vdr-plugin-xmltv2vdr/meta b/packages/3rdparty/multimedia/vdr-plugin-xmltv2vdr/meta index 72ec50c41d..99e692544b 100644 --- a/packages/3rdparty/multimedia/vdr-plugin-xmltv2vdr/meta +++ b/packages/3rdparty/multimedia/vdr-plugin-xmltv2vdr/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="vdr-plugin-xmltv2vdr" -PKG_VERSION="8be374e781e734b44edbd6bc03cfdc1694f6617e" +PKG_VERSION="41b998d" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" From d35a8cac93ea82574e4be4abfa480b304001531f Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Tue, 9 Apr 2013 22:11:43 +0300 Subject: [PATCH 10/29] rotorng: update to rotorng-0.3.1 --- packages/3rdparty/multimedia/rotorng/build | 5 ++- packages/3rdparty/multimedia/rotorng/meta | 4 +-- .../rotorng/patches/rotorng-0.1.0-vdr.patch | 30 ----------------- .../rotorng/patches/rotorng-makefile.patch | 32 +++++++++++++++++++ 4 files changed, 38 insertions(+), 33 deletions(-) delete mode 100644 packages/3rdparty/multimedia/rotorng/patches/rotorng-0.1.0-vdr.patch create mode 100644 packages/3rdparty/multimedia/rotorng/patches/rotorng-makefile.patch diff --git a/packages/3rdparty/multimedia/rotorng/build b/packages/3rdparty/multimedia/rotorng/build index 8d036dbdac..3f344636d8 100755 --- a/packages/3rdparty/multimedia/rotorng/build +++ b/packages/3rdparty/multimedia/rotorng/build @@ -24,7 +24,10 @@ VDR_DIR=`basename $BUILD/vdr-[0-9]*` +CFLAGS="$CFLAGS -fPIC" +CXXFLAGS="$CXXFLAGS -fPIC" +LDFLAGS="$LDFLAGS -fPIC" + cd $PKG_BUILD make VDRDIR="../$VDR_DIR" LIBDIR="." LOCALEDIR="./locale" - diff --git a/packages/3rdparty/multimedia/rotorng/meta b/packages/3rdparty/multimedia/rotorng/meta index 7cdb881169..3321fb6451 100644 --- a/packages/3rdparty/multimedia/rotorng/meta +++ b/packages/3rdparty/multimedia/rotorng/meta @@ -19,15 +19,15 @@ ################################################################################ PKG_NAME="rotorng" -PKG_VERSION="0.1.0" +PKG_VERSION="0.3.1" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" PKG_SITE="http://projects.vdr-developer.org/projects/plg-rotor-ng" -PKG_URL="http://projects.vdr-developer.org/attachments/download/631/rotorng-${PKG_VERSION}.tar.gz" PKG_DEPENDS="vdr" PKG_BUILD_DEPENDS="toolchain vdr" PKG_PRIORITY="optional" +PKG_URL="http://projects.vdr-developer.org/attachments/download/1088/rotorng-${PKG_VERSION}.tar.gz" PKG_SECTION="multimedia" PKG_SHORTDESC="Next generation of a VDR plugin design to drive a diseqc rotor" PKG_LONGDESC="Next generation of a VDR plugin design to drive a diseqc rotor" diff --git a/packages/3rdparty/multimedia/rotorng/patches/rotorng-0.1.0-vdr.patch b/packages/3rdparty/multimedia/rotorng/patches/rotorng-0.1.0-vdr.patch deleted file mode 100644 index c42ebe944d..0000000000 --- a/packages/3rdparty/multimedia/rotorng/patches/rotorng-0.1.0-vdr.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff -uNr rotorng-0.1.0-orig/rotorng.c rotorng-0.1.0/rotorng.c ---- rotorng-0.1.0-orig/rotorng.c 2012-05-06 16:14:06.000000000 +0200 -+++ rotorng-0.1.0/rotorng.c 2012-05-07 10:52:18.000000000 +0200 -@@ -338,7 +338,7 @@ - int last_position_shown; - bool transfer; - protected: -- virtual void ChannelSwitch(const cDevice *Device, int ChannelNumber); -+ virtual void ChannelSwitch(const cDevice *Device, int ChannelNumber,bool LiveView); - public: - cStatusMonitor(); - }; -@@ -348,7 +348,7 @@ - transfer=false; - } - --void cStatusMonitor::ChannelSwitch(const cDevice *Device, int ChannelNumber) -+void cStatusMonitor::ChannelSwitch(const cDevice *Device, int ChannelNumber,bool LiveView) - { - //actuator_status status; - if (ChannelNumber) { -@@ -1494,7 +1494,7 @@ - snprintf(buf, sizeof(buf),"%s %d", tr(menucaption[itemindex]), menuvalue[itemindex]); - break; - case MI_SYSTEM: -- snprintf(buf, sizeof(buf),"%s %s", tr(menucaption[itemindex]), MapToUserString(menuvalue[itemindex], SystemValues)); -+ snprintf(buf, sizeof(buf),"%s %s", tr(menucaption[itemindex]), MapToUserString(menuvalue[itemindex], SystemValuesSat)); - break; - case MI_MODULATION: - snprintf(buf, sizeof(buf),"%s %s ", tr(menucaption[itemindex]), MapToUserString(menuvalue[itemindex], ModulationValues)); diff --git a/packages/3rdparty/multimedia/rotorng/patches/rotorng-makefile.patch b/packages/3rdparty/multimedia/rotorng/patches/rotorng-makefile.patch new file mode 100644 index 0000000000..c420b026af --- /dev/null +++ b/packages/3rdparty/multimedia/rotorng/patches/rotorng-makefile.patch @@ -0,0 +1,32 @@ +diff --git a/Makefile b/Makefile +index 9d62d04..5519a07 100644 +--- a/Makefile ++++ b/Makefile +@@ -17,7 +17,6 @@ VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ pri + + ### The C++ compiler and options: + +-CXX ?= g++ + CXXFLAGS ?= -O2 -Wall -Woverloaded-virtual -Wno-parentheses -fpermissive + + ### Make sure that the necessary options are included +@@ -27,7 +26,6 @@ CXXFLAGS ?= -O2 -Wall -Woverloaded-virtual -Wno-parentheses -fpermissive + ### The directory environment: + + DVBDIR = ../../../../DVB +-VDRDIR = ../../.. + LIBDIR = ../../lib + TMPDIR = /tmp + +@@ -37,11 +35,7 @@ TMPDIR = /tmp + + ### The version number of VDR (taken from VDR's "config.h"): + +-VDRVERSION = $(shell grep 'define VDRVERSION ' $(VDRDIR)/config.h | awk '{ print $$3 }' | sed -e 's/"//g') + APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h) +-ifeq ($(strip $(APIVERSION)),) +- APIVERSION = $(VDRVERSION) +-endif + + ### The name of the distribution archive: + From 7a66490f3a71c978f93626a6a00f457eecab3ccb Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Tue, 9 Apr 2013 22:19:46 +0300 Subject: [PATCH 11/29] vdr-plugin-vnsiserver: build with -fPIC --- packages/3rdparty/multimedia/vdr-plugin-vnsiserver/build | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/3rdparty/multimedia/vdr-plugin-vnsiserver/build b/packages/3rdparty/multimedia/vdr-plugin-vnsiserver/build index 7519ca69b0..4b0a4d920a 100755 --- a/packages/3rdparty/multimedia/vdr-plugin-vnsiserver/build +++ b/packages/3rdparty/multimedia/vdr-plugin-vnsiserver/build @@ -24,6 +24,10 @@ VDR_DIR=`basename $BUILD/vdr-[0-9]*` +CFLAGS="$CFLAGS -fPIC" +CXXFLAGS="$CXXFLAGS -fPIC" +LDFLAGS="$LDFLAGS -fPIC" + cd $PKG_BUILD make VDRDIR="../$VDR_DIR" LIBDIR="." LOCALEDIR="./locale" From ab937f7cbd9c29a00f4335b3a9ab95a8cbce009b Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Tue, 9 Apr 2013 22:26:29 +0300 Subject: [PATCH 12/29] vdr: remove 'API version 5.3 or higher' error.. --- .../multimedia/vdr/patches/vdr-90-dvbapi.patch | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 packages/3rdparty/multimedia/vdr/patches/vdr-90-dvbapi.patch diff --git a/packages/3rdparty/multimedia/vdr/patches/vdr-90-dvbapi.patch b/packages/3rdparty/multimedia/vdr/patches/vdr-90-dvbapi.patch new file mode 100644 index 0000000000..278eb56dd0 --- /dev/null +++ b/packages/3rdparty/multimedia/vdr/patches/vdr-90-dvbapi.patch @@ -0,0 +1,15 @@ +diff --git a/dvbdevice.h b/dvbdevice.h +index 6a1a11e..a02c3bc 100644 +--- a/dvbdevice.h ++++ b/dvbdevice.h +@@ -14,10 +14,6 @@ + #include + #include "device.h" + +-#if (DVB_API_VERSION << 8 | DVB_API_VERSION_MINOR) < 0x0503 +-#error VDR requires Linux DVB driver API version 5.3 or higher! +-#endif +- + #define MAXDVBDEVICES 8 + #define MAXDELIVERYSYSTEMS 8 + From aef6a035a7d39bc1352aaab1aaf8da24d3192e2b Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Tue, 9 Apr 2013 22:38:37 +0300 Subject: [PATCH 13/29] vdr-addon: cleanup & bump --- packages/addons/service/multimedia/vdr-addon/addon | 1 - .../addons/service/multimedia/vdr-addon/changelog.txt | 11 +++++++++++ .../service/multimedia/vdr-addon/config/settings.xml | 1 - packages/addons/service/multimedia/vdr-addon/meta | 4 ++-- .../service/multimedia/vdr-addon/source/bin/vdr.start | 4 ---- .../source/resources/language/English/strings.xml | 1 - .../vdr-addon/source/resources/settings.xml | 1 - 7 files changed, 13 insertions(+), 10 deletions(-) diff --git a/packages/addons/service/multimedia/vdr-addon/addon b/packages/addons/service/multimedia/vdr-addon/addon index d29f6b09f7..1c181ccff5 100755 --- a/packages/addons/service/multimedia/vdr-addon/addon +++ b/packages/addons/service/multimedia/vdr-addon/addon @@ -47,7 +47,6 @@ mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/config/epgsources/epgdata2xmltv mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/plugin cp -PR $BUILD/vdr-plugin-xvdr-*/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin cp -PR $BUILD/vdr-plugin-vnsiserver-*/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin - cp -PR $BUILD/vdr-dynamite-*/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin cp -PR $BUILD/vdr-iptv-*/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin cp -PR $BUILD/vdr-wirbelscan-*/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin cp -PR $BUILD/vdr-wirbelscancontrol-*/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin diff --git a/packages/addons/service/multimedia/vdr-addon/changelog.txt b/packages/addons/service/multimedia/vdr-addon/changelog.txt index 82ba64f4bb..24e8619c32 100644 --- a/packages/addons/service/multimedia/vdr-addon/changelog.txt +++ b/packages/addons/service/multimedia/vdr-addon/changelog.txt @@ -1,3 +1,14 @@ +3.0.5 +- updated to vdr-2.0.0 +- remove dynamite plugin +- update to vdr-epgsearch-e2de927 +- update to vdr-iptv-2.0.0 +- update to vdr-plugin-streamdev-329129d +- update to vdr-live-0.3.0 +- update to vdr-plugin-dvbapi-555272d +- update to vdr-plugin-xmltv2vdr-41b998d +- update to rotorng-0.3.1 + 3.0.4 - update to vdr-1.1.33 - update to vdr-plugin-dvbapi-cd93752 diff --git a/packages/addons/service/multimedia/vdr-addon/config/settings.xml b/packages/addons/service/multimedia/vdr-addon/config/settings.xml index 008c270992..bf4b7cbc5f 100644 --- a/packages/addons/service/multimedia/vdr-addon/config/settings.xml +++ b/packages/addons/service/multimedia/vdr-addon/config/settings.xml @@ -4,7 +4,6 @@ - diff --git a/packages/addons/service/multimedia/vdr-addon/meta b/packages/addons/service/multimedia/vdr-addon/meta index ec477698d9..f067aeb503 100644 --- a/packages/addons/service/multimedia/vdr-addon/meta +++ b/packages/addons/service/multimedia/vdr-addon/meta @@ -21,13 +21,13 @@ PKG_NAME="vdr-addon" PKG_VERSION="3.0" -PKG_REV="4" +PKG_REV="5" PKG_ARCH="any" PKG_LICENSE="GPL" PKG_SITE="http://www.openelec.tv" PKG_URL="" PKG_DEPENDS="" -PKG_BUILD_DEPENDS="toolchain attr libcap vdr vdr-plugin-xvdr vdr-plugin-vnsiserver vdr-iptv vdr-wirbelscan vdr-wirbelscancontrol vdr-sc vdr-plugin-dvbapi vdr-dynamite vdr-plugin-streamdev vdr-live rotorng vdr-control vdr-epgsearch vdr-plugin-xmltv2vdr" +PKG_BUILD_DEPENDS="toolchain attr libcap vdr vdr-plugin-xvdr vdr-plugin-vnsiserver vdr-iptv vdr-wirbelscan vdr-wirbelscancontrol vdr-sc vdr-plugin-dvbapi vdr-plugin-streamdev vdr-live rotorng vdr-control vdr-epgsearch vdr-plugin-xmltv2vdr" PKG_PRIORITY="optional" PKG_SECTION="service.multimedia" PKG_SHORTDESC="vdr: A powerful DVB TV application" diff --git a/packages/addons/service/multimedia/vdr-addon/source/bin/vdr.start b/packages/addons/service/multimedia/vdr-addon/source/bin/vdr.start index 13ab9acfb2..38f2e276ab 100755 --- a/packages/addons/service/multimedia/vdr-addon/source/bin/vdr.start +++ b/packages/addons/service/multimedia/vdr-addon/source/bin/vdr.start @@ -83,10 +83,6 @@ fi if [ "$ENABLE_XMLTV2VDR" == "true" ] ; then VDR_ARG="$VDR_ARG -P xmltv2vdr" fi -# dynamite must be LAST loaded plugin -if [ "$ENABLE_DYNAMITE" == "true" ] ; then - VDR_ARG="$VDR_ARG -P dynamite" -fi ( cd $ADDON_DIR/config diff --git a/packages/addons/service/multimedia/vdr-addon/source/resources/language/English/strings.xml b/packages/addons/service/multimedia/vdr-addon/source/resources/language/English/strings.xml index afbdee613c..b3eebe183b 100644 --- a/packages/addons/service/multimedia/vdr-addon/source/resources/language/English/strings.xml +++ b/packages/addons/service/multimedia/vdr-addon/source/resources/language/English/strings.xml @@ -12,7 +12,6 @@ Enable plugin: streamdev-client Enable plugin: streamdev-server Enable plugin: wirbelscan - Enable plugin: dynamite Enable softcam softcam plugin Enable plugin: live diff --git a/packages/addons/service/multimedia/vdr-addon/source/resources/settings.xml b/packages/addons/service/multimedia/vdr-addon/source/resources/settings.xml index 95da60fe09..e8d684dd6c 100644 --- a/packages/addons/service/multimedia/vdr-addon/source/resources/settings.xml +++ b/packages/addons/service/multimedia/vdr-addon/source/resources/settings.xml @@ -30,7 +30,6 @@ - From 72e764d1db1e3f81b93adfd116578ac90de7187b Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Sun, 14 Apr 2013 12:33:57 +0300 Subject: [PATCH 14/29] vdr: add -ncurses.patch --- .../vdr/patches/vdr-98-ncurses.patch | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 packages/3rdparty/multimedia/vdr/patches/vdr-98-ncurses.patch diff --git a/packages/3rdparty/multimedia/vdr/patches/vdr-98-ncurses.patch b/packages/3rdparty/multimedia/vdr/patches/vdr-98-ncurses.patch new file mode 100644 index 0000000000..9a9a897d96 --- /dev/null +++ b/packages/3rdparty/multimedia/vdr/patches/vdr-98-ncurses.patch @@ -0,0 +1,26 @@ +diff --git a/PLUGINS/src/skincurses/Makefile b/PLUGINS/src/skincurses/Makefile +index fa0ce41..5c71bcf 100644 +--- a/PLUGINS/src/skincurses/Makefile ++++ b/PLUGINS/src/skincurses/Makefile +@@ -102,7 +102,7 @@ install-i18n: $(I18Nmsgs) + ### Targets: + + $(SOFILE): $(OBJS) +- $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -lncursesw -o $@ ++ $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -lncurses -o $@ + + install-lib: $(SOFILE) + install -D $^ $(DESTDIR)$(LIBDIR)/$^.$(APIVERSION) +diff --git a/PLUGINS/src/skincurses/skincurses.c b/PLUGINS/src/skincurses/skincurses.c +index 8a4da96..4c2eeed 100644 +--- a/PLUGINS/src/skincurses/skincurses.c ++++ b/PLUGINS/src/skincurses/skincurses.c +@@ -6,7 +6,7 @@ + * $Id: skincurses.c 2.13 2013/03/31 09:30:18 kls Exp $ + */ + +-#include ++#include + #include + #include + #include From 2fb095e88fa247a407ddec5589cb05f41dd7ec75 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Sun, 14 Apr 2013 12:39:07 +0300 Subject: [PATCH 15/29] vdr: build & install plugins --- packages/3rdparty/multimedia/vdr/build | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/3rdparty/multimedia/vdr/build b/packages/3rdparty/multimedia/vdr/build index 6faa1aab3b..16c7bbca5d 100755 --- a/packages/3rdparty/multimedia/vdr/build +++ b/packages/3rdparty/multimedia/vdr/build @@ -29,6 +29,7 @@ cd $PKG_BUILD cat > Make.config < Date: Sun, 14 Apr 2013 13:03:28 +0300 Subject: [PATCH 16/29] vdr-addon: add dvbsddevice / dvbhddevice plugins --- packages/addons/service/multimedia/vdr-addon/addon | 2 ++ packages/addons/service/multimedia/vdr-addon/changelog.txt | 2 ++ .../addons/service/multimedia/vdr-addon/config/settings.xml | 2 ++ .../addons/service/multimedia/vdr-addon/source/bin/vdr.start | 5 +++++ .../vdr-addon/source/resources/language/English/strings.xml | 2 ++ .../multimedia/vdr-addon/source/resources/settings.xml | 3 +++ 6 files changed, 16 insertions(+) diff --git a/packages/addons/service/multimedia/vdr-addon/addon b/packages/addons/service/multimedia/vdr-addon/addon index 1c181ccff5..60d3dee96b 100755 --- a/packages/addons/service/multimedia/vdr-addon/addon +++ b/packages/addons/service/multimedia/vdr-addon/addon @@ -45,6 +45,8 @@ mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/config/epgsources/epgdata2xmltv cp $BUILD/vdr-plugin-xmltv2vdr*/dist/epgdata2xmltv/epgdata2xmltv.dist $ADDON_BUILD/$PKG_ADDON_ID/config/epgsources/epgdata2xmltv/ mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/plugin + cp -PR $BUILD/vdr-[0-9]*/.install/usr/lib/vdr/libvdr-dvbhddevice.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin + cp -PR $BUILD/vdr-[0-9]*/.install/usr/lib/vdr/libvdr-dvbsddevice.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin cp -PR $BUILD/vdr-plugin-xvdr-*/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin cp -PR $BUILD/vdr-plugin-vnsiserver-*/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin cp -PR $BUILD/vdr-iptv-*/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin diff --git a/packages/addons/service/multimedia/vdr-addon/changelog.txt b/packages/addons/service/multimedia/vdr-addon/changelog.txt index 24e8619c32..47e67bc0cb 100644 --- a/packages/addons/service/multimedia/vdr-addon/changelog.txt +++ b/packages/addons/service/multimedia/vdr-addon/changelog.txt @@ -8,6 +8,8 @@ - update to vdr-plugin-dvbapi-555272d - update to vdr-plugin-xmltv2vdr-41b998d - update to rotorng-0.3.1 +- added dvbsddevice plugin +- added dvbhddevice plugin 3.0.4 - update to vdr-1.1.33 diff --git a/packages/addons/service/multimedia/vdr-addon/config/settings.xml b/packages/addons/service/multimedia/vdr-addon/config/settings.xml index bf4b7cbc5f..ab73e25564 100644 --- a/packages/addons/service/multimedia/vdr-addon/config/settings.xml +++ b/packages/addons/service/multimedia/vdr-addon/config/settings.xml @@ -17,4 +17,6 @@ + + diff --git a/packages/addons/service/multimedia/vdr-addon/source/bin/vdr.start b/packages/addons/service/multimedia/vdr-addon/source/bin/vdr.start index 38f2e276ab..d47c3b4b68 100755 --- a/packages/addons/service/multimedia/vdr-addon/source/bin/vdr.start +++ b/packages/addons/service/multimedia/vdr-addon/source/bin/vdr.start @@ -51,6 +51,11 @@ VDR_ARG="-g /tmp --no-kbd --log=3 --port=0" VDR_ARG="$VDR_ARG --config=$ADDON_CONFIG_DIR" VDR_ARG="$VDR_ARG --lib=$ADDON_PLUGIN_DIR" VDR_ARG="$VDR_ARG --video=\"$VDR_VIDEO_DIR\"" + +if [ "$ENABLE_DVB_PLUGIN" == "true" ] ; then + VDR_ARG="$VDR_ARG -P $DVB_PLUGIN" +fi + VDR_ARG="$VDR_ARG -P $PVR_PLUGIN" if [ "$ENABLE_SOFTCAM" == "true" ] ; then diff --git a/packages/addons/service/multimedia/vdr-addon/source/resources/language/English/strings.xml b/packages/addons/service/multimedia/vdr-addon/source/resources/language/English/strings.xml index b3eebe183b..7a7c321b5d 100644 --- a/packages/addons/service/multimedia/vdr-addon/source/resources/language/English/strings.xml +++ b/packages/addons/service/multimedia/vdr-addon/source/resources/language/English/strings.xml @@ -27,4 +27,6 @@ VDR Configuration VDR Video Dir PVR plugin + Enable dvb(sd|hd)device plugin + plugin diff --git a/packages/addons/service/multimedia/vdr-addon/source/resources/settings.xml b/packages/addons/service/multimedia/vdr-addon/source/resources/settings.xml index e8d684dd6c..047698eab4 100644 --- a/packages/addons/service/multimedia/vdr-addon/source/resources/settings.xml +++ b/packages/addons/service/multimedia/vdr-addon/source/resources/settings.xml @@ -33,5 +33,8 @@ + + + From 39a7a00d3b5d24b3b18128a6611cd63d3479600d Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Sun, 14 Apr 2013 13:18:31 +0300 Subject: [PATCH 17/29] vdr-plugin-xvdr: update to vdr-plugin-xvdr-935a294 --- .../3rdparty/multimedia/vdr-plugin-xvdr/meta | 2 +- .../patches/vdr-plugin-xvdr-makefile.patch | 79 +++++++++++++++++++ .../multimedia/vdr-addon/changelog.txt | 1 + 3 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 packages/3rdparty/multimedia/vdr-plugin-xvdr/patches/vdr-plugin-xvdr-makefile.patch diff --git a/packages/3rdparty/multimedia/vdr-plugin-xvdr/meta b/packages/3rdparty/multimedia/vdr-plugin-xvdr/meta index 1b8f1ef53b..c2ccd295b5 100644 --- a/packages/3rdparty/multimedia/vdr-plugin-xvdr/meta +++ b/packages/3rdparty/multimedia/vdr-plugin-xvdr/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="vdr-plugin-xvdr" -PKG_VERSION="c43033c" +PKG_VERSION="935a294" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/3rdparty/multimedia/vdr-plugin-xvdr/patches/vdr-plugin-xvdr-makefile.patch b/packages/3rdparty/multimedia/vdr-plugin-xvdr/patches/vdr-plugin-xvdr-makefile.patch new file mode 100644 index 0000000000..53daf9794a --- /dev/null +++ b/packages/3rdparty/multimedia/vdr-plugin-xvdr/patches/vdr-plugin-xvdr-makefile.patch @@ -0,0 +1,79 @@ +diff --git a/Makefile b/Makefile +index 06a49a2..ab037bd 100644 +--- a/Makefile ++++ b/Makefile +@@ -16,45 +16,46 @@ VERSION = $(shell grep 'static const char \*VERSION *=' src/xvdr/xvdr.h | awk '{ + ### The directory environment: + + # Use package data if installed...otherwise assume we're under the VDR source directory: +-PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc)) +-LIBDIR = $(call PKGCFG,libdir) +-LOCDIR = $(call PKGCFG,locdir) +-PLGCFG = $(call PKGCFG,plgcfg) +-CFGDIR = $(call PKGCFG,configdir)/plugins/$(PLUGIN) + # + TMPDIR ?= /tmp + + ### The compiler options: + +-export CFLAGS = $(call PKGCFG,cflags) +-export CXXFLAGS = $(call PKGCFG,cxxflags) ++OPTLEVEL ?= 2 ++CXXFLAGS = -O$(OPTLEVEL) -g -Wall -Woverloaded-virtual -fPIC -DPIC + + ### The version number of VDR's plugin API: + +-APIVERSION = $(call PKGCFG,apiversion) ++#DVBDIR = ../../../../DVB ++#VDRDIR = ../../.. ++#LIBDIR = ../../lib ++#TMPDIR = /tmp + + ### Allow user defined options to overwrite defaults: + +--include $(PLGCFG) ++-include $(VDRDIR)/Make.config ++-include $(VDRDIR)/Make.global + + ### The name of the distribution archive: + + ARCHIVE = $(PLUGIN)-$(VERSION) + PACKAGE = vdr-$(ARCHIVE) + ++APIVERSION = $(shell grep 'define APIVERSION ' $(VDRDIR)/config.h | awk '{ print $$3 }' | sed -e 's/"//g') ++ + ### The name of the shared object file: + + SOFILE = libvdr-$(PLUGIN).so + + ### Includes and Defines (add further entries here): + +-INCLUDES += -I./src ++INCLUDES += -I$(VDRDIR)/include -I$(DVBDIR)/include -I$(VDRDIR) -I./src -I. + + ifdef DEBUG + INCLUDES += -DDEBUG + endif + +-DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"' -DXVDR_VERSION='"$(VERSION)"' ++DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"' -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DXVDR_VERSION='"$(VERSION)"' + + ### The object files (add further files here): + +@@ -103,7 +104,7 @@ all: $(SOFILE) i18n + MAKEDEP = $(CXX) -MM -MG + DEPFILE = .dependencies + $(DEPFILE): Makefile +- @$(MAKEDEP) $(CXXFLAGS) $(DEFINES) $(INCLUDES) $(OBJS:%.o=%.c) > $@ ++ @$(MAKEDEP) $(DEFINES) $(INCLUDES) $(OBJS:%.o=%.c) > $@ + + -include $(DEPFILE) + +@@ -137,6 +138,7 @@ install-i18n: $(I18Nmsgs) + + $(SOFILE): $(OBJS) + $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@ ++ @cp $@ $(LIBDIR)/$@.$(APIVERSION) + + install-lib: $(SOFILE) + install -D $^ $(DESTDIR)$(LIBDIR)/$^.$(APIVERSION) diff --git a/packages/addons/service/multimedia/vdr-addon/changelog.txt b/packages/addons/service/multimedia/vdr-addon/changelog.txt index 47e67bc0cb..af9f6930b8 100644 --- a/packages/addons/service/multimedia/vdr-addon/changelog.txt +++ b/packages/addons/service/multimedia/vdr-addon/changelog.txt @@ -7,6 +7,7 @@ - update to vdr-live-0.3.0 - update to vdr-plugin-dvbapi-555272d - update to vdr-plugin-xmltv2vdr-41b998d +- update to vdr-plugin-xvdr-935a294 - update to rotorng-0.3.1 - added dvbsddevice plugin - added dvbhddevice plugin From a9ae350a4952caa1072f4de514b33f11ca44d06b Mon Sep 17 00:00:00 2001 From: Henk Wiedig Date: Fri, 12 Apr 2013 20:33:52 +0200 Subject: [PATCH 18/29] xbmc-addon-xvdr: add support for xbmc-addon-xvdr-master closes #2186 --- packages/mediacenter/xbmc-addon-xvdr/meta | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/mediacenter/xbmc-addon-xvdr/meta b/packages/mediacenter/xbmc-addon-xvdr/meta index a25bd44993..28b42a065a 100644 --- a/packages/mediacenter/xbmc-addon-xvdr/meta +++ b/packages/mediacenter/xbmc-addon-xvdr/meta @@ -20,6 +20,9 @@ PKG_NAME="xbmc-addon-xvdr" PKG_VERSION="34070b5" +if [ "$XBMC" = "master" ]; then + PKG_VERSION="48ea839" +fi PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" From 590179d91dc77d005cc2b5de5ae6f2d7922cd5dc Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Sun, 14 Apr 2013 14:31:19 +0300 Subject: [PATCH 19/29] vdr: update to vdr-2.0.1 --- packages/3rdparty/multimedia/vdr/meta | 2 +- .../3rdparty/multimedia/vdr/patches/vdr-90-dvbapi.patch | 8 ++++---- .../addons/service/multimedia/vdr-addon/changelog.txt | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/3rdparty/multimedia/vdr/meta b/packages/3rdparty/multimedia/vdr/meta index e163a3bf3d..b0bd9d2102 100644 --- a/packages/3rdparty/multimedia/vdr/meta +++ b/packages/3rdparty/multimedia/vdr/meta @@ -20,7 +20,7 @@ ################################################################################ PKG_NAME="vdr" -PKG_VERSION="2.0.0" +PKG_VERSION="2.0.1" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/3rdparty/multimedia/vdr/patches/vdr-90-dvbapi.patch b/packages/3rdparty/multimedia/vdr/patches/vdr-90-dvbapi.patch index 278eb56dd0..af37eda9d6 100644 --- a/packages/3rdparty/multimedia/vdr/patches/vdr-90-dvbapi.patch +++ b/packages/3rdparty/multimedia/vdr/patches/vdr-90-dvbapi.patch @@ -1,10 +1,10 @@ diff --git a/dvbdevice.h b/dvbdevice.h -index 6a1a11e..a02c3bc 100644 +index 2a34806..dc95443 100644 --- a/dvbdevice.h +++ b/dvbdevice.h -@@ -14,10 +14,6 @@ - #include - #include "device.h" +@@ -67,10 +67,6 @@ enum { + + // --- End of definitions for older DVB API versions ------------------------- -#if (DVB_API_VERSION << 8 | DVB_API_VERSION_MINOR) < 0x0503 -#error VDR requires Linux DVB driver API version 5.3 or higher! diff --git a/packages/addons/service/multimedia/vdr-addon/changelog.txt b/packages/addons/service/multimedia/vdr-addon/changelog.txt index af9f6930b8..408115e406 100644 --- a/packages/addons/service/multimedia/vdr-addon/changelog.txt +++ b/packages/addons/service/multimedia/vdr-addon/changelog.txt @@ -1,5 +1,5 @@ 3.0.5 -- updated to vdr-2.0.0 +- updated to vdr-2.0.1 - remove dynamite plugin - update to vdr-epgsearch-e2de927 - update to vdr-iptv-2.0.0 From 8c7fa0f0bf57d8d8c5b85e5072afa03c1195dcf5 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Sun, 14 Apr 2013 14:35:37 +0300 Subject: [PATCH 20/29] vdr: ups. bad patch. not needed anymore --- .../multimedia/vdr/patches/vdr-90-dvbapi.patch | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100644 packages/3rdparty/multimedia/vdr/patches/vdr-90-dvbapi.patch diff --git a/packages/3rdparty/multimedia/vdr/patches/vdr-90-dvbapi.patch b/packages/3rdparty/multimedia/vdr/patches/vdr-90-dvbapi.patch deleted file mode 100644 index af37eda9d6..0000000000 --- a/packages/3rdparty/multimedia/vdr/patches/vdr-90-dvbapi.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/dvbdevice.h b/dvbdevice.h -index 2a34806..dc95443 100644 ---- a/dvbdevice.h -+++ b/dvbdevice.h -@@ -67,10 +67,6 @@ enum { - - // --- End of definitions for older DVB API versions ------------------------- - --#if (DVB_API_VERSION << 8 | DVB_API_VERSION_MINOR) < 0x0503 --#error VDR requires Linux DVB driver API version 5.3 or higher! --#endif -- - #define MAXDVBDEVICES 8 - #define MAXDELIVERYSYSTEMS 8 - From 03e7fa78840832a699e33438280b94823c63db55 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Sun, 14 Apr 2013 14:37:18 +0300 Subject: [PATCH 21/29] vdr-iptv: build depends on curl --- packages/3rdparty/multimedia/vdr-iptv/meta | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/3rdparty/multimedia/vdr-iptv/meta b/packages/3rdparty/multimedia/vdr-iptv/meta index 62829331ef..9ba25f6bd3 100644 --- a/packages/3rdparty/multimedia/vdr-iptv/meta +++ b/packages/3rdparty/multimedia/vdr-iptv/meta @@ -26,7 +26,7 @@ PKG_LICENSE="GPL" PKG_SITE="http://www.saunalahti.fi/~rahrenbe/vdr/iptv/" PKG_URL="http://www.saunalahti.fi/~rahrenbe/vdr/iptv/files/$PKG_NAME-$PKG_VERSION.tgz" PKG_DEPENDS="vdr" -PKG_BUILD_DEPENDS="toolchain vdr" +PKG_BUILD_DEPENDS="toolchain vdr curl" PKG_PRIORITY="optional" PKG_SECTION="multimedia" PKG_SHORTDESC="vdr-iptv: an IPTV plugin for the Video Disk Recorder (VDR)" From 79c04afd1ecdc5a07f805975f877b020c894efe4 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Sun, 14 Apr 2013 16:32:32 +0300 Subject: [PATCH 22/29] CouchPotatoServer: update to CouchPotatoServer-f1dde5c --- packages/3rdparty/download/CouchPotatoServer/meta | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/3rdparty/download/CouchPotatoServer/meta b/packages/3rdparty/download/CouchPotatoServer/meta index a9d9592d43..d65df4ca8a 100644 --- a/packages/3rdparty/download/CouchPotatoServer/meta +++ b/packages/3rdparty/download/CouchPotatoServer/meta @@ -20,7 +20,7 @@ ################################################################################ PKG_NAME="CouchPotatoServer" -PKG_VERSION="5a23be2" +PKG_VERSION="f1dde5c" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="OSS" From d70ffcfcf9ac64f8ce9b887053a60443c4700c50 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Sun, 14 Apr 2013 16:32:55 +0300 Subject: [PATCH 23/29] Headphones: update to Headphones-ebbe908 --- packages/3rdparty/download/Headphones/meta | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/3rdparty/download/Headphones/meta b/packages/3rdparty/download/Headphones/meta index 7937ca571a..5779073189 100644 --- a/packages/3rdparty/download/Headphones/meta +++ b/packages/3rdparty/download/Headphones/meta @@ -20,7 +20,7 @@ ################################################################################ PKG_NAME="Headphones" -PKG_VERSION="263272c" +PKG_VERSION="ebbe908" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="OSS" From 55bde6d83268296d96a69e7fcb512c2588c72951 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Sun, 14 Apr 2013 16:33:23 +0300 Subject: [PATCH 24/29] SickBeard: update to SickBeard-fb37d33 --- packages/3rdparty/download/SickBeard/meta | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/3rdparty/download/SickBeard/meta b/packages/3rdparty/download/SickBeard/meta index 793ae956dc..da89b19021 100644 --- a/packages/3rdparty/download/SickBeard/meta +++ b/packages/3rdparty/download/SickBeard/meta @@ -20,7 +20,7 @@ ################################################################################ PKG_NAME="SickBeard" -PKG_VERSION="ebec1de" +PKG_VERSION="fb37d33" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="OSS" From 53a458d122c7a099e3e6ff9b4825c55e8be606e0 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Sun, 14 Apr 2013 16:33:57 +0300 Subject: [PATCH 25/29] SABnzbd-Suite: bump version --- .../service/downloadmanager/SABnzbd-Suite/changelog.txt | 5 +++++ packages/addons/service/downloadmanager/SABnzbd-Suite/meta | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/addons/service/downloadmanager/SABnzbd-Suite/changelog.txt b/packages/addons/service/downloadmanager/SABnzbd-Suite/changelog.txt index 7a59c52b57..b60de5a6ff 100644 --- a/packages/addons/service/downloadmanager/SABnzbd-Suite/changelog.txt +++ b/packages/addons/service/downloadmanager/SABnzbd-Suite/changelog.txt @@ -1,3 +1,8 @@ +3.0.8 +- update to CouchPotatoServe-f1dde5c +- update to Headphones-ebbe908 +- update to SickBeard-fb37d33 + 3.0.7 - update to CouchPotatoServe-5a23be2 - update to SickBeard-ebec1de diff --git a/packages/addons/service/downloadmanager/SABnzbd-Suite/meta b/packages/addons/service/downloadmanager/SABnzbd-Suite/meta index f77890af0d..e3d8068f86 100644 --- a/packages/addons/service/downloadmanager/SABnzbd-Suite/meta +++ b/packages/addons/service/downloadmanager/SABnzbd-Suite/meta @@ -20,7 +20,7 @@ PKG_NAME="SABnzbd-Suite" PKG_VERSION="3.0" -PKG_REV="7" +PKG_REV="8" PKG_ARCH="any" PKG_LICENSE="OSS" PKG_SITE="http://www.openelec.tv" From 688bf691fe7c9139b757ffaf1f352e9f6078acfc Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Sun, 14 Apr 2013 16:39:46 +0300 Subject: [PATCH 26/29] vdr-plugin-xmltv2vdr: build depend on pcre --- packages/3rdparty/multimedia/vdr-plugin-xmltv2vdr/meta | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/3rdparty/multimedia/vdr-plugin-xmltv2vdr/meta b/packages/3rdparty/multimedia/vdr-plugin-xmltv2vdr/meta index 99e692544b..45015e8250 100644 --- a/packages/3rdparty/multimedia/vdr-plugin-xmltv2vdr/meta +++ b/packages/3rdparty/multimedia/vdr-plugin-xmltv2vdr/meta @@ -26,7 +26,7 @@ PKG_LICENSE="GPL" PKG_SITE="http://projects.vdr-developer.org/projects/plg-xmltv2vdr" PKG_URL="http://projects.vdr-developer.org/git/vdr-plugin-xmltv2vdr.git/snapshot/${PKG_NAME}-${PKG_VERSION}.tar.gz" PKG_DEPENDS="vdr sqlite curl libzip libxml libxslt" -PKG_BUILD_DEPENDS="toolchain vdr sqlite curl libzip libxml libxslt enca" +PKG_BUILD_DEPENDS="toolchain vdr sqlite curl libzip libxml libxslt enca pcre" PKG_PRIORITY="optional" PKG_SECTION="multimedia" PKG_SHORTDESC="vdr-xmltv2vdr" From 476136f7de1f1176e97f134990abfcb612bce2cd Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Sun, 14 Apr 2013 16:40:34 +0300 Subject: [PATCH 27/29] vdr: build depend on ncurses --- packages/3rdparty/multimedia/vdr/meta | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/3rdparty/multimedia/vdr/meta b/packages/3rdparty/multimedia/vdr/meta index b0bd9d2102..166773e3d9 100644 --- a/packages/3rdparty/multimedia/vdr/meta +++ b/packages/3rdparty/multimedia/vdr/meta @@ -27,7 +27,7 @@ PKG_LICENSE="GPL" PKG_SITE="http://www.tvdr.de" PKG_URL="ftp://ftp.tvdr.de/vdr/$PKG_NAME-$PKG_VERSION.tar.bz2" PKG_DEPENDS="fontconfig freetype libcap" -PKG_BUILD_DEPENDS="toolchain fontconfig freetype libcap libjpeg-turbo bzip2" +PKG_BUILD_DEPENDS="toolchain fontconfig freetype libcap libjpeg-turbo bzip2 ncurses" PKG_PRIORITY="optional" PKG_SECTION="multimedia" PKG_SHORTDESC="vdr: A powerful DVB TV application" From 0c47a7af58a9b01cb2d994b7bb7227f44c2ee243 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Sun, 14 Apr 2013 19:52:08 +0300 Subject: [PATCH 28/29] vdr-control: honor vdr APIVERSION --- ...ontrol-0.0.2a-96_makefile_apiversion.patch | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 packages/3rdparty/multimedia/vdr-control/patches/vdr-control-0.0.2a-96_makefile_apiversion.patch diff --git a/packages/3rdparty/multimedia/vdr-control/patches/vdr-control-0.0.2a-96_makefile_apiversion.patch b/packages/3rdparty/multimedia/vdr-control/patches/vdr-control-0.0.2a-96_makefile_apiversion.patch new file mode 100644 index 0000000000..09873e52a6 --- /dev/null +++ b/packages/3rdparty/multimedia/vdr-control/patches/vdr-control-0.0.2a-96_makefile_apiversion.patch @@ -0,0 +1,22 @@ +diff --git a/Makefile b/Makefile +index 65a7674..1a5976e 100644 +--- a/Makefile ++++ b/Makefile +@@ -31,7 +31,7 @@ TMPDIR = /tmp + + ### The version number of VDR (taken from VDR's "config.h"): + +-VDRVERSION = $(shell grep 'define VDRVERSION ' $(VDRDIR)/config.h | awk '{ print $$3 }' | sed -e 's/"//g') ++APIVERSION = $(shell grep 'define APIVERSION ' $(VDRDIR)/config.h | awk '{ print $$3 }' | sed -e 's/"//g') + + ### The name of the distribution archive: + +@@ -54,7 +54,7 @@ all: libvdr-$(PLUGIN).so + + libvdr-$(PLUGIN).so: $(OBJS) + $(CXX) $(CXXFLAGS) -shared $(OBJS) -o $@ +- @cp $@ $(LIBDIR)/$@.$(VDRVERSION) ++ @cp $@ $(LIBDIR)/$@.$(APIVERSION) + + dist: clean + @-rm -rf $(TMPDIR)/$(ARCHIVE) From e846cb5bada290f30776306dea21c85c897b591d Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Sun, 14 Apr 2013 20:11:00 +0300 Subject: [PATCH 29/29] vdr-addon: fix live/resdir. thanks @henkwiedig --- packages/addons/service/multimedia/vdr-addon/addon | 5 +++-- .../addons/service/multimedia/vdr-addon/source/bin/vdr.start | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/addons/service/multimedia/vdr-addon/addon b/packages/addons/service/multimedia/vdr-addon/addon index 60d3dee96b..f2fb5bcd65 100755 --- a/packages/addons/service/multimedia/vdr-addon/addon +++ b/packages/addons/service/multimedia/vdr-addon/addon @@ -33,11 +33,12 @@ mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/config cp $BUILD/vdr-[0-9]*/sources.conf $ADDON_BUILD/$PKG_ADDON_ID/config cp $BUILD/vdr-[0-9]*/svdrphosts.conf $ADDON_BUILD/$PKG_ADDON_ID/config echo '0.0.0.0/0' >> $ADDON_BUILD/$PKG_ADDON_ID/config/svdrphosts.conf - mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/config/plugins/live - cp -PR $BUILD/vdr-live-*/live/* $ADDON_BUILD/$PKG_ADDON_ID/config/plugins/live cp $PKG_DIR/config.plugins/remote.conf $ADDON_BUILD/$PKG_ADDON_ID/config mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/config/plugins/epgsearch +mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/res/plugins/live + cp -PR $BUILD/vdr-live-*/live/* $ADDON_BUILD/$PKG_ADDON_ID/res/plugins/live + mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/config/plugins cp $BUILD/rotorng-[0-9]*/examples/rotorng.conf $ADDON_BUILD/$PKG_ADDON_ID/config/plugins diff --git a/packages/addons/service/multimedia/vdr-addon/source/bin/vdr.start b/packages/addons/service/multimedia/vdr-addon/source/bin/vdr.start index d47c3b4b68..a4d798e006 100755 --- a/packages/addons/service/multimedia/vdr-addon/source/bin/vdr.start +++ b/packages/addons/service/multimedia/vdr-addon/source/bin/vdr.start @@ -49,6 +49,7 @@ cp $ADDON_DIR/config/epgsources/epgdata2xmltv/epgdata2xmltv.dist /var/lib/epgsou VDR_ARG="-g /tmp --no-kbd --log=3 --port=0" VDR_ARG="$VDR_ARG --config=$ADDON_CONFIG_DIR" +VDR_ARG="$VDR_ARG --resdir=$ADDON_DIR/res" VDR_ARG="$VDR_ARG --lib=$ADDON_PLUGIN_DIR" VDR_ARG="$VDR_ARG --video=\"$VDR_VIDEO_DIR\""