Merge pull request #355 from stefansaraev/patch-1

some nice-to-have updates
This commit is contained in:
Stephan Raue 2012-03-22 09:08:24 -07:00
commit 941ddefc23
15 changed files with 118 additions and 97 deletions

View File

@ -19,7 +19,7 @@
################################################################################ ################################################################################
PKG_NAME="vdr-dynamite" PKG_NAME="vdr-dynamite"
PKG_VERSION="27d7bed" PKG_VERSION="cdf48a8"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -0,0 +1,29 @@
commit 67d5e792aa30100b111490c3c9e1c01f9def3c86
Author: Stefan Saraev <stefan@saraev.ca>
Date: Thu Mar 15 00:02:50 2012 +0200
vdr-iptv: skip header processing
diff --git a/protocolhttp.c b/protocolhttp.c
index 2d5277a..9b305aa 100644
--- a/protocolhttp.c
+++ b/protocolhttp.c
@@ -154,17 +154,7 @@ bool cIptvProtocolHttp::ProcessHeaders(void)
memset(buf, '\0', sizeof(buf));
if (!GetHeaderLine(buf, sizeof(buf), lineLength))
return false;
- if (!responseFound && sscanf(buf, "HTTP/1.%*i %i ", &response) != 1) {
- 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;
}

View File

@ -19,7 +19,7 @@
################################################################################ ################################################################################
PKG_NAME="vdr-plugin-streamdev" PKG_NAME="vdr-plugin-streamdev"
PKG_VERSION="a63f724" PKG_VERSION="a179771"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -19,7 +19,7 @@
################################################################################ ################################################################################
PKG_NAME="vdr-sc" PKG_NAME="vdr-sc"
PKG_VERSION="603" PKG_VERSION="605"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -119,7 +119,7 @@ diff -r 442eee2f550d device-tmpl.c
+#ifdef __DYNAMIC_DEVICE_PROBE +#ifdef __DYNAMIC_DEVICE_PROBE
+ cDevice *cidev = parentDevice ? parentDevice : this; + cDevice *cidev = parentDevice ? parentDevice : this;
+#else +#else
+// cDevice *cidev = this; + cDevice *cidev = this;
+#endif +#endif
+ if(fd_ca2>=0) hwciadapter=cDvbCiAdapter::CreateCiAdapter(cidev,fd_ca2); + if(fd_ca2>=0) hwciadapter=cDvbCiAdapter::CreateCiAdapter(cidev,fd_ca2);
+ if (cidev != this) + if (cidev != this)

View File

@ -20,7 +20,7 @@
################################################################################ ################################################################################
PKG_NAME="vdr" PKG_NAME="vdr"
PKG_VERSION="1.7.25" PKG_VERSION="1.7.26"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -1,9 +1,3 @@
commit 0e0b199ea828148d82b08e0702eb3dc1b49fc5f4
Author: Stefan Saraev <stefan@saraev.ca>
Date: Sun Mar 4 15:55:17 2012 +0200
vdr-dynamite: adjust to 1.7.25
diff --git a/ci.c b/ci.c diff --git a/ci.c b/ci.c
index 0135d07..cf21952 100644 index 0135d07..cf21952 100644
--- a/ci.c --- a/ci.c
@ -31,12 +25,12 @@ index 74e0270..d38e2dd 100644
class cTPDU; class cTPDU;
diff --git a/device.c b/device.c diff --git a/device.c b/device.c
index 663f91a..c0810fa 100644 index 8c527aa..8b0a7e2 100644
--- a/device.c --- a/device.c
+++ b/device.c +++ b/device.c
@@ -70,12 +70,22 @@ cDevice *cDevice::device[MAXDEVICES] = { NULL }; @@ -69,12 +69,22 @@ int cDevice::currentChannel = 1;
cDevice *cDevice::device[MAXDEVICES] = { NULL };
cDevice *cDevice::primaryDevice = NULL; cDevice *cDevice::primaryDevice = NULL;
cDevice *cDevice::avoidDevice = NULL;
cList<cDeviceHook> cDevice::deviceHooks; cList<cDeviceHook> cDevice::deviceHooks;
- -
-cDevice::cDevice(void) -cDevice::cDevice(void)
@ -62,7 +56,7 @@ index 663f91a..c0810fa 100644
SetDescription("receiver on device %d", CardIndex() + 1); SetDescription("receiver on device %d", CardIndex() + 1);
@@ -106,10 +116,14 @@ cDevice::cDevice(void) @@ -105,10 +115,14 @@ cDevice::cDevice(void)
for (int i = 0; i < MAXRECEIVERS; i++) for (int i = 0; i < MAXRECEIVERS; i++)
receiver[i] = NULL; receiver[i] = NULL;
@ -80,7 +74,7 @@ index 663f91a..c0810fa 100644
} }
cDevice::~cDevice() cDevice::~cDevice()
@@ -118,6 +132,29 @@ cDevice::~cDevice() @@ -117,6 +131,29 @@ cDevice::~cDevice()
DetachAllReceivers(); DetachAllReceivers();
delete liveSubtitle; delete liveSubtitle;
delete dvbSubtitleConverter; delete dvbSubtitleConverter;
@ -110,7 +104,7 @@ index 663f91a..c0810fa 100644
} }
bool cDevice::WaitForAllDevicesReady(int Timeout) bool cDevice::WaitForAllDevicesReady(int Timeout)
@@ -156,6 +193,8 @@ int cDevice::NextCardIndex(int n) @@ -155,6 +192,8 @@ int cDevice::NextCardIndex(int n)
int cDevice::DeviceNumber(void) const int cDevice::DeviceNumber(void) const
{ {
@ -119,7 +113,7 @@ index 663f91a..c0810fa 100644
for (int i = 0; i < numDevices; i++) { for (int i = 0; i < numDevices; i++) {
if (device[i] == this) if (device[i] == this)
return i; return i;
@@ -326,6 +365,8 @@ bool cDevice::HasCi(void) @@ -341,6 +380,8 @@ bool cDevice::HasCi(void)
void cDevice::SetCamSlot(cCamSlot *CamSlot) void cDevice::SetCamSlot(cCamSlot *CamSlot)
{ {
@ -128,7 +122,7 @@ index 663f91a..c0810fa 100644
camSlot = CamSlot; camSlot = CamSlot;
} }
@@ -538,6 +579,10 @@ void cDevice::DelLivePids(void) @@ -553,6 +594,10 @@ void cDevice::DelLivePids(void)
void cDevice::StartSectionHandler(void) void cDevice::StartSectionHandler(void)
{ {
@ -139,7 +133,7 @@ index 663f91a..c0810fa 100644
if (!sectionHandler) { if (!sectionHandler) {
sectionHandler = new cSectionHandler(this); sectionHandler = new cSectionHandler(this);
AttachFilter(eitFilter = new cEitFilter); AttachFilter(eitFilter = new cEitFilter);
@@ -549,6 +594,10 @@ void cDevice::StartSectionHandler(void) @@ -564,6 +609,10 @@ void cDevice::StartSectionHandler(void)
void cDevice::StopSectionHandler(void) void cDevice::StopSectionHandler(void)
{ {
@ -150,7 +144,7 @@ index 663f91a..c0810fa 100644
if (sectionHandler) { if (sectionHandler) {
delete nitFilter; delete nitFilter;
delete sdtFilter; delete sdtFilter;
@@ -575,12 +624,17 @@ void cDevice::CloseFilter(int Handle) @@ -590,12 +639,17 @@ void cDevice::CloseFilter(int Handle)
void cDevice::AttachFilter(cFilter *Filter) void cDevice::AttachFilter(cFilter *Filter)
{ {
@ -168,7 +162,7 @@ index 663f91a..c0810fa 100644
if (sectionHandler) if (sectionHandler)
sectionHandler->Detach(Filter); sectionHandler->Detach(Filter);
} }
@@ -742,6 +796,7 @@ eSetChannelResult cDevice::SetChannel(const cChannel *Channel, bool LiveView) @@ -757,6 +811,7 @@ eSetChannelResult cDevice::SetChannel(const cChannel *Channel, bool LiveView)
sectionHandler->SetStatus(false); sectionHandler->SetStatus(false);
sectionHandler->SetChannel(NULL); sectionHandler->SetChannel(NULL);
} }
@ -176,7 +170,7 @@ index 663f91a..c0810fa 100644
// Tell the camSlot about the channel switch and add all PIDs of this // Tell the camSlot about the channel switch and add all PIDs of this
// channel to it, for possible later decryption: // channel to it, for possible later decryption:
if (camSlot) if (camSlot)
@@ -788,19 +843,27 @@ void cDevice::ForceTransferMode(void) @@ -803,19 +858,27 @@ void cDevice::ForceTransferMode(void)
{ {
if (!cTransferControl::ReceiverDevice()) { if (!cTransferControl::ReceiverDevice()) {
cChannel *Channel = Channels.GetByNumber(CurrentChannel()); cChannel *Channel = Channels.GetByNumber(CurrentChannel());
@ -205,7 +199,7 @@ index 663f91a..c0810fa 100644
if (Seconds >= 0) if (Seconds >= 0)
occupiedTimeout = time(NULL) + min(Seconds, MAXOCCUPIEDTIMEOUT); occupiedTimeout = time(NULL) + min(Seconds, MAXOCCUPIEDTIMEOUT);
} }
@@ -1173,7 +1236,10 @@ bool cDevice::Transferring(void) const @@ -1188,7 +1251,10 @@ bool cDevice::Transferring(void) const
bool cDevice::AttachPlayer(cPlayer *Player) bool cDevice::AttachPlayer(cPlayer *Player)
{ {
@ -216,7 +210,7 @@ index 663f91a..c0810fa 100644
if (player) if (player)
Detach(player); Detach(player);
DELETENULL(liveSubtitle); DELETENULL(liveSubtitle);
@@ -1192,6 +1258,8 @@ bool cDevice::AttachPlayer(cPlayer *Player) @@ -1207,6 +1273,8 @@ bool cDevice::AttachPlayer(cPlayer *Player)
void cDevice::Detach(cPlayer *Player) void cDevice::Detach(cPlayer *Player)
{ {
@ -225,7 +219,7 @@ index 663f91a..c0810fa 100644
if (Player && player == Player) { if (Player && player == Player) {
cPlayer *p = player; cPlayer *p = player;
player = NULL; // avoids recursive calls to Detach() player = NULL; // avoids recursive calls to Detach()
@@ -1211,6 +1279,8 @@ void cDevice::Detach(cPlayer *Player) @@ -1226,6 +1294,8 @@ void cDevice::Detach(cPlayer *Player)
void cDevice::StopReplay(void) void cDevice::StopReplay(void)
{ {
@ -234,7 +228,7 @@ index 663f91a..c0810fa 100644
if (player) { if (player) {
Detach(player); Detach(player);
if (IsPrimaryDevice()) if (IsPrimaryDevice())
@@ -1493,6 +1563,8 @@ int cDevice::PlayTs(const uchar *Data, int Length, bool VideoOnly) @@ -1508,6 +1578,8 @@ int cDevice::PlayTs(const uchar *Data, int Length, bool VideoOnly)
int cDevice::Priority(void) const int cDevice::Priority(void) const
{ {
@ -243,7 +237,7 @@ index 663f91a..c0810fa 100644
int priority = IDLEPRIORITY; int priority = IDLEPRIORITY;
if (IsPrimaryDevice() && !Replaying() && ActualDevice() == PrimaryDevice()) 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 priority = TRANSFERPRIORITY; // we use the same value here, no matter whether it's actual Transfer Mode or real live viewing
@@ -1511,6 +1583,8 @@ bool cDevice::Ready(void) @@ -1526,6 +1598,8 @@ bool cDevice::Ready(void)
bool cDevice::Receiving(bool Dummy) const bool cDevice::Receiving(bool Dummy) const
{ {
@ -252,7 +246,7 @@ index 663f91a..c0810fa 100644
cMutexLock MutexLock(&mutexReceiver); cMutexLock MutexLock(&mutexReceiver);
for (int i = 0; i < MAXRECEIVERS; i++) { for (int i = 0; i < MAXRECEIVERS; i++) {
if (receiver[i]) if (receiver[i])
@@ -1591,10 +1665,13 @@ bool cDevice::GetTSPacket(uchar *&Data) @@ -1606,10 +1680,13 @@ bool cDevice::GetTSPacket(uchar *&Data)
bool cDevice::AttachReceiver(cReceiver *Receiver) bool cDevice::AttachReceiver(cReceiver *Receiver)
{ {
@ -266,7 +260,7 @@ index 663f91a..c0810fa 100644
// activate the following line if you need it - actually the driver should be fixed! // activate the following line if you need it - actually the driver should be fixed!
//#define WAIT_FOR_TUNER_LOCK //#define WAIT_FOR_TUNER_LOCK
#ifdef WAIT_FOR_TUNER_LOCK #ifdef WAIT_FOR_TUNER_LOCK
@@ -1633,6 +1710,8 @@ bool cDevice::AttachReceiver(cReceiver *Receiver) @@ -1648,6 +1725,8 @@ bool cDevice::AttachReceiver(cReceiver *Receiver)
void cDevice::Detach(cReceiver *Receiver) void cDevice::Detach(cReceiver *Receiver)
{ {
@ -275,7 +269,7 @@ index 663f91a..c0810fa 100644
if (!Receiver || Receiver->device != this) if (!Receiver || Receiver->device != this)
return; return;
bool receiversLeft = false; bool receiversLeft = false;
@@ -1658,6 +1737,8 @@ void cDevice::Detach(cReceiver *Receiver) @@ -1673,6 +1752,8 @@ void cDevice::Detach(cReceiver *Receiver)
void cDevice::DetachAll(int Pid) void cDevice::DetachAll(int Pid)
{ {
@ -284,7 +278,7 @@ index 663f91a..c0810fa 100644
if (Pid) { if (Pid) {
cMutexLock MutexLock(&mutexReceiver); cMutexLock MutexLock(&mutexReceiver);
for (int i = 0; i < MAXRECEIVERS; i++) { for (int i = 0; i < MAXRECEIVERS; i++) {
@@ -1670,6 +1751,8 @@ void cDevice::DetachAll(int Pid) @@ -1685,6 +1766,8 @@ void cDevice::DetachAll(int Pid)
void cDevice::DetachAllReceivers(void) void cDevice::DetachAllReceivers(void)
{ {
@ -293,7 +287,7 @@ index 663f91a..c0810fa 100644
cMutexLock MutexLock(&mutexReceiver); cMutexLock MutexLock(&mutexReceiver);
for (int i = 0; i < MAXRECEIVERS; i++) for (int i = 0; i < MAXRECEIVERS; i++)
Detach(receiver[i]); Detach(receiver[i]);
@@ -1741,3 +1824,25 @@ uchar *cTSBuffer::Get(void) @@ -1756,3 +1839,25 @@ uchar *cTSBuffer::Get(void)
} }
return NULL; return NULL;
} }
@ -320,10 +314,10 @@ index 663f91a..c0810fa 100644
+ DynamicDeviceProbes.Del(this, false); + DynamicDeviceProbes.Del(this, false);
+} +}
diff --git a/device.h b/device.h diff --git a/device.h b/device.h
index 23aea97..d4968cc 100644 index 0d9ac3a..5cb5645 100644
--- a/device.h --- a/device.h
+++ b/device.h +++ b/device.h
@@ -168,7 +168,6 @@ private: @@ -169,7 +169,6 @@ private:
static int nextCardIndex; static int nextCardIndex;
int cardIndex; int cardIndex;
protected: protected:
@ -331,7 +325,7 @@ index 23aea97..d4968cc 100644
virtual ~cDevice(); virtual ~cDevice();
virtual bool Ready(void); virtual bool Ready(void);
///< Returns true if this device is ready. Devices with conditional ///< Returns true if this device is ready. Devices with conditional
@@ -195,9 +194,6 @@ protected: @@ -196,9 +195,6 @@ protected:
///< A derived class must call the MakePrimaryDevice() function of its ///< A derived class must call the MakePrimaryDevice() function of its
///< base class. ///< base class.
public: public:
@ -341,7 +335,7 @@ index 23aea97..d4968cc 100644
int DeviceNumber(void) const; int DeviceNumber(void) const;
///< Returns the number of this device (0 ... numDevices). ///< Returns the number of this device (0 ... numDevices).
virtual bool HasDecoder(void) const; virtual bool HasDecoder(void) const;
@@ -403,9 +399,6 @@ public: @@ -404,9 +400,6 @@ public:
///< Returns true if this device has a Common Interface. ///< Returns true if this device has a Common Interface.
void SetCamSlot(cCamSlot *CamSlot); void SetCamSlot(cCamSlot *CamSlot);
///< Sets the given CamSlot to be used with this device. ///< Sets the given CamSlot to be used with this device.
@ -351,7 +345,7 @@ index 23aea97..d4968cc 100644
// Image Grab facilities // Image Grab facilities
@@ -561,9 +554,6 @@ private: @@ -562,9 +555,6 @@ private:
cTsToPes tsToPesSubtitle; cTsToPes tsToPesSubtitle;
bool isPlayingVideo; bool isPlayingVideo;
protected: protected:
@ -361,7 +355,7 @@ index 23aea97..d4968cc 100644
virtual bool CanReplay(void) const; virtual bool CanReplay(void) const;
///< Returns true if this device can currently start a replay session. ///< Returns true if this device can currently start a replay session.
virtual bool SetPlayMode(ePlayMode PlayMode); virtual bool SetPlayMode(ePlayMode PlayMode);
@@ -748,6 +738,38 @@ public: @@ -749,6 +739,38 @@ public:
///< Detaches all receivers from this device for this pid. ///< Detaches all receivers from this device for this pid.
virtual void DetachAllReceivers(void); virtual void DetachAllReceivers(void);
///< Detaches all receivers from this device. ///< Detaches all receivers from this device.
@ -400,7 +394,7 @@ index 23aea97..d4968cc 100644
}; };
/// Derived cDevice classes that can receive channels will have to provide /// Derived cDevice classes that can receive channels will have to provide
@@ -771,4 +793,47 @@ public: @@ -772,4 +794,47 @@ public:
uchar *Get(void); uchar *Get(void);
}; };
@ -590,36 +584,42 @@ index adbe40d..6d117b2 100644
#endif //__DVBCI_H #endif //__DVBCI_H
diff --git a/dvbdevice.c b/dvbdevice.c diff --git a/dvbdevice.c b/dvbdevice.c
index 1987223..6795dca 100644 index 4c9268f..e2944e3 100644
--- a/dvbdevice.c --- a/dvbdevice.c
+++ b/dvbdevice.c +++ b/dvbdevice.c
@@ -305,12 +305,16 @@ private: @@ -286,7 +286,7 @@ private:
bool bondedMasterFailed; static cMutex bondMutex;
bool SetFrontendType(const cChannel *Channel); enum eTunerStatus { tsIdle, tsSet, tsTuned, tsLocked };
cString GetBondingParams(const cChannel *Channel = NULL) const; const cDvbDevice *device;
- void ClearEventQueue(void) const; - int fd_frontend;
- bool GetFrontendStatus(fe_status_t &Status) const; + mutable int fd_frontend;
+ void ClearEventQueue(void); int adapter, frontend;
+ bool GetFrontendStatus(fe_status_t &Status); uint32_t subsystemId;
void ExecuteDiseqc(const cDiseqc *Diseqc, unsigned int *Frequency); int tuneTimeout;
@@ -297,7 +297,7 @@ private:
const cScr *scr;
bool lnbPowerTurnedOn;
eTunerStatus tunerStatus;
- cMutex mutex;
+ mutable cMutex mutex;
cCondVar locked;
cCondVar newSet;
cDvbTuner *bondedTuner;
@@ -311,6 +311,10 @@ private:
void ResetToneAndVoltage(void); void ResetToneAndVoltage(void);
bool SetFrontend(void); bool SetFrontend(void);
virtual void Action(void); virtual void Action(void);
+ +
+ bool isIdle; + mutable bool isIdle;
+ bool OpenFrontend(void); + bool OpenFrontend(void) const;
+ bool CloseFrontend(void); + bool CloseFrontend(void);
public: public:
cDvbTuner(const cDvbDevice *Device, int Fd_Frontend, int Adapter, int Frontend); cDvbTuner(const cDvbDevice *Device, int Fd_Frontend, int Adapter, int Frontend);
virtual ~cDvbTuner(); virtual ~cDvbTuner();
@@ -323,8 +327,11 @@ public: @@ -325,6 +329,9 @@ public:
bool IsTunedTo(const cChannel *Channel) const;
void SetChannel(const cChannel *Channel);
bool Locked(int TimeoutMs = 0); bool Locked(int TimeoutMs = 0);
- int GetSignalStrength(void) const; int GetSignalStrength(void) const;
- int GetSignalQuality(void) const; int GetSignalQuality(void) const;
+ int GetSignalStrength(void);
+ int GetSignalQuality(void);
+ +
+ bool SetIdle(bool Idle); + bool SetIdle(bool Idle);
+ bool IsIdle(void) const { return isIdle; } + bool IsIdle(void) const { return isIdle; }
@ -643,45 +643,15 @@ index 1987223..6795dca 100644
} }
bool cDvbTuner::Bond(cDvbTuner *Tuner) bool cDvbTuner::Bond(cDvbTuner *Tuner)
@@ -518,8 +528,10 @@ bool cDvbTuner::Locked(int TimeoutMs) @@ -520,6 +530,8 @@ bool cDvbTuner::Locked(int TimeoutMs)
return tunerStatus >= tsLocked;
}
-void cDvbTuner::ClearEventQueue(void) const void cDvbTuner::ClearEventQueue(void) const
+void cDvbTuner::ClearEventQueue(void)
{ {
+ if (!OpenFrontend()) + if (!OpenFrontend())
+ return; + return;
cPoller Poller(fd_frontend); cPoller Poller(fd_frontend);
if (Poller.Poll(TUNER_POLL_TIMEOUT)) { if (Poller.Poll(TUNER_POLL_TIMEOUT)) {
dvb_frontend_event Event; dvb_frontend_event Event;
@@ -528,7 +540,7 @@ void cDvbTuner::ClearEventQueue(void) const
}
}
-bool cDvbTuner::GetFrontendStatus(fe_status_t &Status) const
+bool cDvbTuner::GetFrontendStatus(fe_status_t &Status)
{
ClearEventQueue();
while (1) {
@@ -543,7 +555,7 @@ bool cDvbTuner::GetFrontendStatus(fe_status_t &Status) const
//#define DEBUG_SIGNALSTRENGTH
//#define DEBUG_SIGNALQUALITY
-int cDvbTuner::GetSignalStrength(void) const
+int cDvbTuner::GetSignalStrength(void)
{
ClearEventQueue();
uint16_t Signal;
@@ -570,7 +582,7 @@ int cDvbTuner::GetSignalStrength(void) const
#define LOCK_THRESHOLD 5 // indicates that all 5 FE_HAS_* flags are set
-int cDvbTuner::GetSignalQuality(void) const
+int cDvbTuner::GetSignalQuality(void)
{
fe_status_t Status;
if (GetFrontendStatus(Status)) {
@@ -710,6 +722,8 @@ static int GetRequiredDeliverySystem(const cChannel *Channel, const cDvbTranspon @@ -710,6 +722,8 @@ static int GetRequiredDeliverySystem(const cChannel *Channel, const cDvbTranspon
bool cDvbTuner::SetFrontend(void) bool cDvbTuner::SetFrontend(void)
@ -720,7 +690,7 @@ index 1987223..6795dca 100644
+ return OpenFrontend(); + return OpenFrontend();
+} +}
+ +
+bool cDvbTuner::OpenFrontend(void) +bool cDvbTuner::OpenFrontend(void) const
+{ +{
+ if (fd_frontend >= 0) + if (fd_frontend >= 0)
+ return true; + return true;

View File

@ -0,0 +1,24 @@
commit 73e7b152ac8a5c83d93c2ae9ae9e0e90a506d37d
Author: Stefan Saraev <stefan@saraev.ca>
Date: Thu Mar 22 13:13:22 2012 +0200
fix ca descr parsing for caid 4AEE
- bulsatcom on hellas 39e, bulcrypt, NOT drecrypt
diff --git a/src/psi.c b/src/psi.c
index 130678d..116e001 100644
--- a/src/psi.c
+++ b/src/psi.c
@@ -307,8 +307,10 @@ psi_desc_ca(service_t *t, const uint8_t *buffer, int size)
}
break;
case 0x4a00://DRECrypt
- provid = size < 4 ? 0 : buffer[4];
- break;
+ if (caid != 0x4aee) { // Bulcrypt
+ provid = size < 4 ? 0 : buffer[4];
+ break;
+ }
default:
provid = 0;
break;

View File

@ -94,7 +94,6 @@ if [ ! "$(pidof vdr.bin)" ];then
# use ". " because of variable export # use ". " because of variable export
. $driver_dvb . $driver_dvb
done done
if [ -f "$LOCKDIR/$LOCKFILE" ] ; then if [ -f "$LOCKDIR/$LOCKFILE" ] ; then
rm -rf "$LOCKDIR/$LOCKFILE" rm -rf "$LOCKDIR/$LOCKFILE"
fi fi
@ -103,6 +102,5 @@ if [ ! "$(pidof vdr.bin)" ];then
break break
fi fi
LANG=en_US.UTF-8 LD_LIBRARY_PATH="$ADDON_DIR/lib:$LD_LIBRARY_PATH" vdr.bin $VDR_ARG &>$LOG_FILE LANG=en_US.UTF-8 LD_LIBRARY_PATH="$ADDON_DIR/lib:$LD_LIBRARY_PATH" vdr.bin $VDR_ARG &>$LOG_FILE
sleep 1
done & done &
fi fi

View File

@ -29,6 +29,6 @@ mkdir -p "$LOCKDIR"
touch "$LOCKDIR/$LOCKFILE" touch "$LOCKDIR/$LOCKFILE"
if [ "$(pidof vdr.bin)" ];then if [ "$(pidof vdr.bin)" ];then
killall vdr.bin killall -9 vdr.bin
fi fi

View File

@ -20,7 +20,7 @@
################################################################################ ################################################################################
PKG_NAME="oscam" PKG_NAME="oscam"
PKG_VERSION="6472" PKG_VERSION="6566"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -19,7 +19,7 @@
################################################################################ ################################################################################
PKG_NAME="xbmc-addon-xvdr" PKG_NAME="xbmc-addon-xvdr"
PKG_VERSION="7370efc" PKG_VERSION="8d57661"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"