Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[vdr] How is cDvbDevice::ProvidesTransponder supposed to work?
Hi,
I have tried to get this working for quite some time. I have found a
solution but I'm not sure this will be working for all users. For an
obvious reason cDvbDevice::ProvidesTransponder is always returning "false".
Can someone please enlighten me and explain the "why" of the bit mask
operations to me?
As far as I could see cSource::st_Mask and cSource::stSat are constants
and the Diseqcs.Get() method returns always NULL.
The fact is that the only variable in this line is Channel->Source() and
on my system it is always staying between 32768 and 65535...
Or can it possibly have higher values if you have a two-card-system?
The main reason I would like this method to work correctly is a possible
audio pid change during a recording. If a recording has started with
only one Apid and during the recording a second one is coming in, then
it won't retune because in vdr.c there is a check implemeted to see
whether the current DVB card has to be retuned or not. That's where the
problems with cDvbDevice::ProvidesTransponder starts.
This is the line:
if (cDevice::ActualDevice()->ProvidesTransponder(Channel)) { // avoids
retune on devices that don't really access the transponder
I changed it to:
if
(cDevice::ActualDevice()->ProvidesTransponder(Channel)||cDevice::NumDevices()==1)
{ // avoids retune on devices that don't really access the transponder
and on a one-card-system this is working quite well. (Maybe this is
actually the solution, but I doubt it...)
Can this retune mechanism please be overlooked?
Me and some other people would really appreciate it.
Thank you a lot in advance.
André.
Home |
Main Index |
Thread Index