Hi Rainer,

Am 24.01.2011 11:36, schrieb Rainer Blickle:
Hi Lars,

from my point of view this is not a problem and no fault of gcc 4.4.3.

Why ?: When selecting a device for receiving (cDevice::GetDevice as
far i know) there are 3 bits for the count of modulation systems. Is
is the impact variable.

The method isn't used anywhere else.

I know that there's no real problem with selecting the device. But vdr 1.7.16 uses 4 bits for this piece of the impact computation.

cDevice::GetDevice:
  imp <<= 4; imp |= GetClippedNumProvidedSystems(4, device[i]) - 1;

GetClippedNumProvidedSystems:
  int MaxNumProvidedSystems = (1 << AvailableBits) - 1;
  int NumProvidedSystems = Device->NumProvidedSystems();
  if (NumProvidedSystems > MaxNumProvidedSystems) {

   AvailableBits == 4
=> 1 << 4 == 10000b
=> 10000b - 1 == 1111b == 15d
 Device->NumProvidedSystems() returns 7
 7 < 15
=> there should be no error message

 If I place a isyslog right before the comparison like
isyslog("AvailableBits = %d, MaxNumProvidedSystems = %d, NumProvidedSystems = 
%d",
         AvailableBits, MaxNumProvidedSystems, NumProvidedSystems);
 The expected values are printed at the syslog and there's no error message.
 If I remove the syslog call, the error message comes again.

 That's why I think, that the compiler is "optimizing" something, which leads 
to an error.
 And if the compiler is doing something wrong here - how can I be sure that 
there are no errors in other parts?

 What am I missing? I would like to be wrong - but I would like to 
understand... :-)

Lars.


The impact is smaller (numberic value) if a device has less modulation
systems. Perhaps (and only perhaps) in some situations another device
would be taken to receive a specific channel.

Regards Rainer

2011/1/19 L. Hanisch<d...@flensrocker.de>:
Hi,

  I get log messages like:
ERROR: device 1 supports 7 modulation systems but cDevice::GetDevice()
currently only supports 4 delivery systems which should be fixed

  It's a Satelco EasyWatch (DVB-C):
  frontend 0/0 provides DVB-C with QPSK,QAM16,QAM32,QAM64,QAM128,QAM256
("Philips TDA10023 DVB-C")

  But AvailableBits is 4, MaxNumProvidedSystems computes to 15 and
NumProvidedSystems is 7 if I write them with isyslog to the log.
  Is it a fault of gcc 4.4.3?
  Has anyone any idea? I just don't know what to do with this...

Regards,
Lars.

_______________________________________________
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


_______________________________________________
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


_______________________________________________
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr

Reply via email to