Mailing List archive

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

[vdr] Re: stopping...due to higher priority -- bug or feature?



Dirk Wiebel wrote:
> 
> Hello list,
> 
> background: 3 cards system (dvb-s), vdr-1.2.0 (still, until bank holiday
> tomorrow ;-)), current cvs drivers. Primary limit is set to "1", default
> priority is "50".
> 
> Today I had an instant recording (FTA) running when my Simpsons timer
> started. I once gave this timer the priority value of 99. When this
> timer started, it stopped the other recording, attached to device 1 and
> shifted the other recording to device 2:
> 
> Jun 18 18:53:00 apollon vdr[3230]: stopping recording on DVB device 1
> due to higher priority
> 
> As I don't see the sense in such a behaviour, I'm not sure wether it's a
> bug or a feature. I remember a change for non-FTA recordings behaviour.
> But as all 3 cards should be able to receive both programs, IMHO no
> recording thread should be shifted to another card. Any other opinions
> or comments?

That's certainly a bug. I've also encountered this once, but since that
area of the code is pretty sensitive I didn't touch it for the final
1.2.0 any more.

Bernd Schweikert <bernd.schweikert@dit-gmbh.de> sent me this modification
to cDevice *cDevice::GetDevice() (see device.c) a while ago:

  for (int i = 0; i < numDevices; i++) {
      bool ndr;
      if (device[i]->ProvidesChannel(Channel, Priority, &ndr) // this
         && (!d // we don't have a device yet, or...
            || (device[i]->Receiving() && !ndr) // ...this one is already
            || !d->Receiving() // ...the one we have is not receiving...
               && (device[i]->Priority() < d->Priority() // ...this one
                  || device[i]->Priority() == d->Priority() // ...same
                     && device[i]->ProvidesCa(Channel->Ca()) <
                            d->ProvidesCa(Channel->Ca()) // ...but this
                  )
            || !device[i]->Receiving() // ERGAENZUNG !!!!!!!!!
            )
         ) {
         d = device[i];
         if (NeedsDetachReceivers)
            *NeedsDetachReceivers = ndr;
         }
      }

which adds the line marked "// ERGAENZUNG !!!!!!!!!". However, this might
not solve the problem completely since it may prevent several recordings
from the same transponder to use the same card.

Maybe you want to try this anyway, though.

Klaus
-- 
_______________________________________________________________

Klaus Schmidinger                       Phone: +49-8635-6989-10
CadSoft Computer GmbH                   Fax:   +49-8635-6989-40
Hofmark 2                               Email:   kls@cadsoft.de
D-84568 Pleiskirchen, Germany           URL:     www.cadsoft.de
_______________________________________________________________


-- 
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe vdr" as subject.



Home | Main Index | Thread Index