Re: [vdr] [1.7.16] problem with GetClippedNumProvidedSystems

2011-01-24 Thread L. Hanisch

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 == 1b
=> 1b - 1 == b == 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:

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


Re: [vdr] [1.7.16] problem with GetClippedNumProvidedSystems

2011-01-24 Thread 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.

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 :
> 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] [1.7.16] problem with GetClippedNumProvidedSystems

2011-01-19 Thread L. Hanisch

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