On 08.03.2010 04:22, ????????? ?????? wrote:
> Hi
>
>> IPTV doesn't need patches anymore.
> Fine :)
>
> But I have another trouble.
>
> create channel
> RENTV;IPTV:10:S=1|P=1|F=UDP|U=239.4.0.1|A=2020:I:27500:300=2:301:0:0:1:0:0:0
>
>
> Start vdr and select it, works fine.
> Change to sat channel, and select iptv again
>
> The channel can't selected, in log:
>
> Mar 8 12:57:57 ua0lnjvdr vdr: [6823] ERROR: Invalid channel parameters:
> S=1
> Mar 8 12:57:57 ua0lnjvdr vdr: [6823] ERROR: Unrecognized IPTV address: S=1
> Mar 8 12:57:57 ua0lnjvdr vdr: [6823] ERROR: Can't start Transfer Mode!
>
> After this, in channels.conf have:
>
> RENTV;IPTV:10:S=1:I:27500:300=2:301:0:0:1:0:0:0
>
> I found also http://www.vdr-portal.de/board/thread.php?threadid=94442
>
> Any suggestions?
Not sure if this applies here, but there was a bug in VDR 1.7.13's
channel editing in cDvbSourceParam.
The attached patch fixes this.
Klaus
--- dvbdevice.c 2010/03/06 11:07:05 2.30
+++ dvbdevice.c 2010/03/07 11:45:43 2.31
@@ -576,7 +576,7 @@
class cDvbSourceParam : public cSourceParam {
private:
int param;
- cChannel data;
+ int srate;
cDvbTransponderParameters dtp;
public:
cDvbSourceParam(char Source, const char *Description);
@@ -589,19 +589,19 @@
:cSourceParam(Source, Description)
{
param = 0;
+ srate = 0;
}
void cDvbSourceParam::SetData(cChannel *Channel)
{
- data = *Channel;
- dtp.Parse(data.Parameters());
+ srate = Channel->Srate();
+ dtp.Parse(Channel->Parameters());
param = 0;
}
void cDvbSourceParam::GetData(cChannel *Channel)
{
- data.SetTransponderData(Channel->Source(), Channel->Frequency(), data.Srate(), dtp.ToString(Source()), true);
- *Channel = data;
+ Channel->SetTransponderData(Channel->Source(), Channel->Frequency(), srate, dtp.ToString(Source()), true);
}
cOsdItem *cDvbSourceParam::GetOsdItem(void)
@@ -612,7 +612,7 @@
switch (param++) {
case 0: ST(" S ") return new cMenuEditChrItem( tr("Polarization"), &dtp.polarization, "hvlr"); else return GetOsdItem();
case 1: ST(" S ") return new cMenuEditMapItem( tr("System"), &dtp.system, SystemValues); else return GetOsdItem();
- case 2: ST(" CS ") return new cMenuEditIntItem( tr("Srate"), &data.srate); else return GetOsdItem();
+ case 2: ST(" CS ") return new cMenuEditIntItem( tr("Srate"), &srate); else return GetOsdItem();
case 3: ST("ACST") return new cMenuEditMapItem( tr("Inversion"), &dtp.inversion, InversionValues); else return GetOsdItem();
case 4: ST(" CST") return new cMenuEditMapItem( tr("CoderateH"), &dtp.coderateH, CoderateValues); else return GetOsdItem();
case 5: ST(" T") return new cMenuEditMapItem( tr("CoderateL"), &dtp.coderateL, CoderateValues); else return GetOsdItem();
_______________________________________________
vdr mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr