Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[vdr] VDR-1.3.x and a rotorized dish
Hi Klaus,
I have a setup where 2 DVB-s pointing to 19,2°E and 1 DVB-s is connected to a
rotorized dish.
There are a few obstacles in this environment:
1.) Until 1.3.x I used a special CA value to bind all non-Astra channels to
the DVB-s where the rotor is connected.
Unfortunately this won't work in vdr-1.3.x anymore. Reading "man 5 vdr" lead
me to the solution to use a special value within the range 0x10 .. 0xff for
this purpose, but I got always "channel not available" errors. Here is dirty
fix for this:
<snip>
diff -Naur vdr-1.3.1/device.h vdr-1.3.1_provides_ca_patch/device.h
--- vdr-1.3.1/device.h 2004-01-10 15:15:10.000000000 +0100
+++ vdr-1.3.1_provides_ca_patch/device.h 2004-01-17 21:15:03.000000000 +0100
@@ -106,6 +106,7 @@
private:
static int nextCardIndex;
int cardIndex;
+protected:
int caCaps[MAXCACAPS];
protected:
cDevice(void);
diff -Naur vdr-1.3.1/dvbdevice.c vdr-1.3.1_provides_ca_patch/dvbdevice.c
--- vdr-1.3.1/dvbdevice.c 2004-01-10 13:21:41.000000000 +0100
+++ vdr-1.3.1_provides_ca_patch/dvbdevice.c 2004-01-17 21:15:51.000000000
+0100
@@ -435,6 +435,11 @@
int cDvbDevice::ProvidesCa(const cChannel *Channel) const
{
+ if (Channel->Ca() >= 0x0010 && Channel->Ca() < 0x0100) {
+ for(int i = 0; i < MAXCACAPS; i++)
+ if(Channel->Ca() == caCaps[i])
+ return true;
+ }
if (Channel->Ca() >= 0x0100 && ciHandler) {
unsigned short ids[MAXCAIDS + 1];
for (int i = 0; i <= MAXCAIDS; i++) // '<=' copies the terminating 0!
<snap>
But this doesn't seem to be the right way, because wouldn't the new CA
handling get undermined by such special CA values? I don't see a (clean) way
to use a CAM on the rotorized dish. For example ":11,1702:" as CA value,
suggesting that a channel is only available from the rotorized dish and
encrypted in BetaCrypt, gets overwritten with ":11:" after tuning to this
channel.
The solution for this might be to have a "SourceCaps" setup option similar the
the "CaCaps", which would look in my particular case like this:
<snip>
SourceCaps = 1 S19.2E
SourceCaps = 2 S19.2E
SourceCaps = 3 S28.5E S16.0E S13.0E ...... S43.0W
<snap>
2.) On most orbital positions besides Astra and Hotbird (may be Sirius, Thor,
Hispa, too) the quality of the broadcasted SI-data is rather low. So
SID,TID,NID values are not within the specs or totally misleading. This makes
the default behaviour of VDR: "bool tChannelID::Valid(void) { return (tid &&
sid); }" a real showstopper for these satellites. Besides that, the idea of a
unique channel-id won't work, too. So VDR needs a second method of uniqueness
for channel-ids. I would suggest using a special value of a SID:NID:TID
triplet and hash value of the channel's name for the RID.
This would enable VDR to be used for feed hunting and other cool DXing
stuff :-))
--
Viele Grüße
Christian
--
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe vdr" as subject.
Home |
Main Index |
Thread Index