Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[vdr] LNB-sharing and DVB-T




Hello

i'm running curently a mixed system containing DVB-S and DVB-T.
As i have only one "wire" i have to use the "LNBshare" patch
(lnb_sharing_vdr-1.2.5.patch)
The DVB-T card would relax the situation a lot.
"DVB-T only" would be no option OTOH.


But for my great disappointment the "LNB sharing" locks
DVB-T too, only because a "horizontal" recording is running
syslog says: "ERROR: durch LNB blockiert!"
But if "vertical" it recorded, the DVB-T is selectable!


It seems to have to with these functions in device.c, according
to Matthias.

#define DVB_T1 3
#define DVB_T2 4

//ML
cDevice *cDevice::GetBadDevice(char Polarization, int Frequency)
{
  char lock;
  if (Frequency >= Setup.LnbSLOF) {
    lock = 1 ;
  } else {
    lock = 0;
  }
  if (Polarization == 'v' || Polarization == 'V') lock += 2;

  //lock bit 0 = LowFreq
  //lock bit 1 = Vert pol

  for (int i = 0; i < numDevices; i++) {
    if (this != device[i] && device[i]->GetLNBconf() != lock) {
      return device[i];
    }
  }
  return NULL;
}


int cDevice::GetMaxBadPriority(char Polarization, int Frequency)
{
  char lock;
  int d = -1;

  if (Frequency >= Setup.LnbSLOF) {
    lock = 1 ;
  } else {
    lock = 0;
  }
  if (Polarization == 'v' || Polarization == 'V') lock += 2;

  //lock bit 0 = LowFreq
  //lock bit 1 = Vert pol

  for (int i = 0; i < numDevices; i++) {
    if (device[i]->GetLNBconf() != lock && device[i]->Receiving()) {
      if (device[i]->Priority() > d) d = device[i]->Priority();
      }
  }

  //isyslog("GetMaxBadPriority i %d ", d);
  return d;
}
//ML-Ende


My question:

What are those functions expected to do? ;-)
For my big sursprise those functions are called 
thousand of times and not only if a channel change is
in progress.
Is that CPU load done by intention? If, why?


How can i determine that a "DVB-T" is going to be selected,
so the locking algorithm can be skipped?
An "if (this==device[DVB_T1])" seems not to work.
Or, at least, if "/dev/video2" is going to be selected,
that DVB-T is on that device and no locking is required.

One irretating:
If i run "scan" DVB-T is "-a 3" (but the box has 4 cards: 2 FF-s, 1B-s, 1B-t)
If i see "dmesg" the DVB-T is available on /dev/video2
...?




Currently i'm using 1.2.2 as base.
It works flawlessly and stable.
1.2.6 would be OK too. But because of the UDP problem 
i hesitated to upgrade.

Rainer





Home | Main Index | Thread Index