Hi list,
I recently lost access to all vertically polarised channels and after quite a bit of floundering about I discovered the reason for this is due to the case of the polarisation character in channels.conf.
According to the vdr changelog it has been possible to specify this in either upper or lower case since version 0.6 but it seems this is not correct - at least in 1.7.31. I generate my channels.conf with w_scan and it produces lower case "h" and "v" for polarisation. It seemed to work OK for the horizontal channels but not the vertical. Perhaps it works for horizontal because this is the default position...
Anyway I have resolved my issue by manually changing the case of these characters in channels.conf but wondered if this is really a bug or just a misunderstanding on my part.
Regards,
Mike
On 07.11.2012 15:36, Mike Hay wrote:
Hi list,
I recently lost access to all vertically polarised channels and after quite a bit of floundering about I discovered the reason for this is due to the case of the polarisation character in channels.conf.
According to the vdr changelog it has been possible to specify this in either upper or lower case since version 0.6 but it seems this is not correct - at least in 1.7.31. I generate my channels.conf with w_scan and it produces lower case "h" and "v" for polarisation. It seemed to work OK for the horizontal channels but not the vertical. Perhaps it works for horizontal because this is the default position...
Anyway I have resolved my issue by manually changing the case of these characters in channels.conf but wondered if this is really a bug or just a misunderstanding on my part.
Well, there is a toupper() in cDvbTransponderParameters::Parse(), so I would expect that all characters can be given in either upper- or lowercase.
Are you sure the case was the problem?
Klaus
Well, there is a toupper() in cDvbTransponderParameters::Parse(), so I would expect that all characters can be given in either upper- or lowercase.
Are you sure the case was the problem?
Klaus
I'm pretty sure it is the case as I have tested the following two strings with no other changes and get different results.
ITV1 London;BSkyB:10758:VC56M2O0S0:S28.2E:22000:3328=2:3329=eng@4,3330=NAR@4:2326;2327=eng:0:10060:2:2044:0 # This works ITV1 London;BSkyB:10758:vC56M2O0S0:S28.2E:22000:3328=2:3329=eng@4,3330=NAR@4:2326;2327=eng:0:10060:2:2044:0 # This doesn't
Mike
I have used upper and lower case to denote for different sources in the past in diseqc.conf and it worked. Case needs to, or needed to in the past, match.
On 11/7/2012 9:12 AM, Mike Hay wrote:
Well, there is a toupper() in cDvbTransponderParameters::Parse(), so I would expect that all characters can be given in either upper- or lowercase.
Are you sure the case was the problem?
Klaus
I'm pretty sure it is the case as I have tested the following two strings with no other changes and get different results.
ITV1 London;BSkyB:10758:VC56M2O0S0:S28.2E:22000:3328=2:3329=eng@4,3330=NAR@4:2326;2327=eng:0:10060:2:2044:0 # This works ITV1 London;BSkyB:10758:vC56M2O0S0:S28.2E:22000:3328=2:3329=eng@4,3330=NAR@4:2326;2327=eng:0:10060:2:2044:0 # This doesn't
Mike
vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
On 07.11.2012 17:12, Mike Hay wrote:
Well, there is a toupper() in cDvbTransponderParameters::Parse(), so I would expect that all characters can be given in either upper- or lowercase.
Are you sure the case was the problem?
Klaus
I'm pretty sure it is the case as I have tested the following two strings with no other changes and get different results.
ITV1 London;BSkyB:10758:VC56M2O0S0:S28.2E:22000:3328=2:3329=eng@4,3330=NAR@4:2326;2327=eng:0:10060:2:2044:0 # This works ITV1 London;BSkyB:10758:vC56M2O0S0:S28.2E:22000:3328=2:3329=eng@4,3330=NAR@4:2326;2327=eng:0:10060:2:2044:0 # This doesn't
I tried this one and it works just fine here. Case apparently doesn't matter.
Are you using plain vanilla VDR 1.7.31, or have you applied any patches?
Klaus
Hi,
I can confirm this problem, at least in 1.7.27 (which I'm using at the moment). I use the attached patch to resolve it.
Am 08.11.2012 10:19, schrieb Klaus Schmidinger:
Well, there is a toupper() in cDvbTransponderParameters::Parse(), so I would expect that all characters can be given in either upper- or lowercase.
Right, but the toupper() is only in the comparision, but it passes the original (lowercase) value. And later during tuning the comparision fails.
Regards.
On 08.11.2012, at 20:43, Stefan Huelswitt s.huelswitt@gmx.de wrote:
Hi,
I can confirm this problem, at least in 1.7.27 (which I'm using at the moment). I use the attached patch to resolve it.
Am 08.11.2012 10:19, schrieb Klaus Schmidinger:
Well, there is a toupper() in cDvbTransponderParameters::Parse(), so I would expect that all characters can be given in either upper- or lowercase.
Right, but the toupper() is only in the comparision, but it passes the original (lowercase) value. And later during tuning the comparision fails.
Ah, now I see why it works here - I'm using DiSEqC. Like apparently almost everybody else, otherwise this problem should have surfaced much earlier ;-)
Klaus
On 08.11.2012 21:14, Klaus Schmidinger wrote:
On 08.11.2012, at 20:43, Stefan Huelswitt s.huelswitt@gmx.de wrote:
Hi,
I can confirm this problem, at least in 1.7.27 (which I'm using at the moment). I use the attached patch to resolve it.
Am 08.11.2012 10:19, schrieb Klaus Schmidinger:
Well, there is a toupper() in cDvbTransponderParameters::Parse(), so I would expect that all characters can be given in either upper- or lowercase.
Right, but the toupper() is only in the comparision, but it passes the original (lowercase) value. And later during tuning the comparision fails.
Ah, now I see why it works here - I'm using DiSEqC. Like apparently almost everybody else, otherwise this problem should have surfaced much earlier ;-)
Since there are also other places where cDvbTransponderParameters::Polarization() is used, I'm going to fix the case right where the original string is parsed:
--- dvbdevice.c 2012/10/07 11:11:30 2.74 +++ dvbdevice.c 2012/12/03 14:07:01 @@ -261,16 +261,16 @@ case 'C': s = ParseParameter(s, coderateH, CoderateValues); break; case 'D': s = ParseParameter(s, coderateL, CoderateValues); break; case 'G': s = ParseParameter(s, guard, GuardValues); break; - case 'H': polarization = *s++; break; + case 'H': polarization = 'H'; s++; break; case 'I': s = ParseParameter(s, inversion, InversionValues); break; - case 'L': polarization = *s++; break; + case 'L': polarization = 'L'; s++; break; case 'M': s = ParseParameter(s, modulation, ModulationValues); break; case 'O': s = ParseParameter(s, rollOff, RollOffValues); break; case 'P': s = ParseParameter(s, plpId); break; - case 'R': polarization = *s++; break; + case 'R': polarization = 'R'; s++; break; case 'S': s = ParseParameter(s, system, SystemValuesSat); break; // we only need the numerical value, so Sat or Terr doesn't matter case 'T': s = ParseParameter(s, transmission, TransmissionValues); break; - case 'V': polarization = *s++; break; + case 'V': polarization = 'V'; s++; break; case 'Y': s = ParseParameter(s, hierarchy, HierarchyValues); break; default: esyslog("ERROR: unknown parameter key '%c'", *s); return false;
Klaus
Well, there is a toupper() in cDvbTransponderParameters::Parse(), so I would expect that all characters can be given in either upper- or lowercase.
Are you sure the case was the problem?
Klaus
I'm pretty sure it is the case as I have tested the following two strings with no other changes and get different results.
ITV1 London;BSkyB:10758:VC56M2O0S0:S28.2E:22000:3328=2:3329=eng at 4,3330=NAR at 4:2326;2327=eng:0:10060:2:2044:0 # This works ITV1 London;BSkyB:10758:vC56M2O0S0:S28.2E:22000:3328=2:3329=eng at 4,3330=NAR at 4:2326;2327=eng:0:10060:2:2044:0 # This doesn't
I tried this one and it works just fine here. Case apparently doesn't matter.
Are you using plain vanilla VDR 1.7.31, or have you applied any patches?
Klaus
I'm using packages from yaVDR repo's - I'm not sure what patches they apply.
Mike