Commit Message
Hi
1. cChannel::PluginParam() need for iptv plugin.
sorry, i was attached bad version for native vdr.
See attach for this message.
2. You right of cause, the triplet SID/NID/TID is supposed to be unique
within one satellite, but in really we have incorrect pid tables on many
satellites, and in local iptv networks. Example, see
http://www.lyngsat.com/eam2.html, some channels have equal pids:
11650V, 11190H, and 11044H too.
This is fault of sat providers, but we have it as is. And be a fine, if
vdr can works correct with such channels, without editing channel.conf
manually.
On Sat, 23/02/2008 18:03 +0100, Klaus Schmidinger wrote:
> On 02/22/08 04:29, ua0lnj wrote:
> > Hi.
> > Some satellites have many channels with same sid, nid, tid on different
> > transponders. This is incorrect pid table, and vdr works with it not
> > good, need scan channels and change rid manually, but if you select
> > "transponder update" all you settings will be rewrite and channels
> > deleted as duplicate.
> > I have this trouble on ABS1 75.0 E and Express AM2 80.0 E, and I have
> > very many channels with same pids on my iptv stream.
> > After this patch, vdr parsing duplicate pids, and if transponders is
> > not equal, channel not deleted, but rid wil be increased. If pids and
> > transponders are equal, channel will be deleted as duplicate.
> > Patch was made for vdr-1.5.12, but works with 1.5.15 too.
> > Attached 3 patches, for native vdr and vdr + iptv plugin patched and for
> > native reelchannelscan-0.4.1 plugin (include patch for 1.5.xx).
>
> First of all, there is no cChannel::PluginParam() in plain vanilla VDR 1.5.15.
>
> Secondly, as far as I understand this, the triplet SID/NID/TID is supposed
> to be unique within one satellite.
> Can you point me to a standard document that would indicate otherwise?
>
> Klaus
>
> _______________________________________________
> vdr mailing list
> vdr@linuxtv.org
> http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
Comments
On 02/24/08 07:20, ua0lnj wrote:
> Hi
> 1. cChannel::PluginParam() need for iptv plugin.
> sorry, i was attached bad version for native vdr.
> See attach for this message.
>
> 2. You right of cause, the triplet SID/NID/TID is supposed to be unique
> within one satellite, but in really we have incorrect pid tables on many
> satellites, and in local iptv networks. Example, see
> http://www.lyngsat.com/eam2.html, some channels have equal pids:
> 11650V, 11190H, and 11044H too.
> This is fault of sat providers, but we have it as is. And be a fine, if
> vdr can works correct with such channels, without editing channel.conf
> manually.
Have you ever tried complaining to those providers, telling them about
their non-standard behavior?
If we always just work around the provider's faults, we're never going
to get standard behavior...
Klaus
> On Sat, 23/02/2008 18:03 +0100, Klaus Schmidinger wrote:
>> On 02/22/08 04:29, ua0lnj wrote:
>>> Hi.
>>> Some satellites have many channels with same sid, nid, tid on different
>>> transponders. This is incorrect pid table, and vdr works with it not
>>> good, need scan channels and change rid manually, but if you select
>>> "transponder update" all you settings will be rewrite and channels
>>> deleted as duplicate.
>>> I have this trouble on ABS1 75.0 E and Express AM2 80.0 E, and I have
>>> very many channels with same pids on my iptv stream.
>>> After this patch, vdr parsing duplicate pids, and if transponders is
>>> not equal, channel not deleted, but rid wil be increased. If pids and
>>> transponders are equal, channel will be deleted as duplicate.
>>> Patch was made for vdr-1.5.12, but works with 1.5.15 too.
>>> Attached 3 patches, for native vdr and vdr + iptv plugin patched and for
>>> native reelchannelscan-0.4.1 plugin (include patch for 1.5.xx).
>> First of all, there is no cChannel::PluginParam() in plain vanilla VDR 1.5.15.
>>
>> Secondly, as far as I understand this, the triplet SID/NID/TID is supposed
>> to be unique within one satellite.
>> Can you point me to a standard document that would indicate otherwise?
>>
>> Klaus
> Have you ever tried complaining to those providers, telling them about
> their non-standard behavior?
I have tried. Several times. No results. I can confirm that only VDR has this problem. Other receivers (dreambox for example) don't have this problem.
Igor
On 02/24/08 12:35, Igor wrote:
>> Have you ever tried complaining to those providers, telling them about
>> their non-standard behavior?
>
> I have tried. Several times. No results.
I wonder why these people think that the DVB standards don't apply to them...
> I can confirm that only VDR has this problem. Other receivers (dreambox for example) don't have this problem.
Does this mean that the dreambox doesn't identify channels using NID/TID/SID?
VDR itself doesn't use the RID, and I don't like starting to use it
just to iron out the inability of some providers to adhere to the standard.
I'd rather like to get rid of the RID altogether.
Klaus
I think, may be not need use rid, but add new parameter for channel
identify, such as transponder example, or add some variants of identify
and select it in settings...
Nid/Tid/Sid or Transponder/Channel Name or Transponder/Sid/Tid...
Because wanted use "transponder update" and don't want edit channel.conf
manually...
? ???, 24/02/2008 ? 15:00 +0100, Klaus Schmidinger ?????:
> On 02/24/08 12:35, Igor wrote:
> >> Have you ever tried complaining to those providers, telling them about
> >> their non-standard behavior?
> >
> > I have tried. Several times. No results.
>
> I wonder why these people think that the DVB standards don't apply to them...
>
> > I can confirm that only VDR has this problem. Other receivers (dreambox for example) don't have this problem.
>
> Does this mean that the dreambox doesn't identify channels using NID/TID/SID?
>
> VDR itself doesn't use the RID, and I don't like starting to use it
> just to iron out the inability of some providers to adhere to the standard.
> I'd rather like to get rid of the RID altogether.
>
> Klaus
>
>
> _______________________________________________
> vdr mailing list
> vdr@linuxtv.org
> http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
>
Trying working with NA sats. At least in Europe you have standards. Here the
only standard is that there is no standard.
For example, on 97w after using a custome scanner, if I allow VDR to auto
update channel names, then surf through the channels with a fresh conf, some
channels dissapear, others get renamed to wrong names, etc.. Using yaepg
while fliping through I can see some channels get shuffled and renamed.
----- Original Message -----
From: "Klaus Schmidinger" <Klaus.Schmidinger@cadsoft.de>
To: <vdr@linuxtv.org>
Sent: Sunday, February 24, 2008 7:00 AM
Subject: Re: [vdr] [patch] channels with same pids
> On 02/24/08 12:35, Igor wrote:
> >> Have you ever tried complaining to those providers, telling them about
> >> their non-standard behavior?
> >
> > I have tried. Several times. No results.
>
> I wonder why these people think that the DVB standards don't apply to
them...
>
> > I can confirm that only VDR has this problem. Other receivers (dreambox
for example) don't have this problem.
>
> Does this mean that the dreambox doesn't identify channels using
NID/TID/SID?
>
> VDR itself doesn't use the RID, and I don't like starting to use it
> just to iron out the inability of some providers to adhere to the
standard.
> I'd rather like to get rid of the RID altogether.
>
> Klaus
>
>
> _______________________________________________
> vdr mailing list
> vdr@linuxtv.org
> http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
On Sun, 2008-02-24 at 10:34 +0100, Klaus Schmidinger wrote:
> On 02/24/08 07:20, ua0lnj wrote:
> > Hi
> > 1. cChannel::PluginParam() need for iptv plugin.
> > sorry, i was attached bad version for native vdr.
> > See attach for this message.
> >
> > 2. You right of cause, the triplet SID/NID/TID is supposed to be unique
> > within one satellite, but in really we have incorrect pid tables on many
> > satellites, and in local iptv networks. Example, see
> > http://www.lyngsat.com/eam2.html, some channels have equal pids:
> > 11650V, 11190H, and 11044H too.
> > This is fault of sat providers, but we have it as is. And be a fine, if
> > vdr can works correct with such channels, without editing channel.conf
> > manually.
>
> Have you ever tried complaining to those providers, telling them about
> their non-standard behavior?
>
> If we always just work around the provider's faults, we're never going
> to get standard behavior...
Satellites are a multi-million dollar business. Do we really think that
a few VDR users complaining that they cannot use their particular choice
of receiver (VDR) is going to make a difference?
> Klaus
>
> > On Sat, 23/02/2008 18:03 +0100, Klaus Schmidinger wrote:
> >> On 02/22/08 04:29, ua0lnj wrote:
> >>> Hi.
> >>> Some satellites have many channels with same sid, nid, tid on different
> >>> transponders. This is incorrect pid table, and vdr works with it not
> >>> good, need scan channels and change rid manually, but if you select
> >>> "transponder update" all you settings will be rewrite and channels
> >>> deleted as duplicate.
> >>> I have this trouble on ABS1 75.0 E and Express AM2 80.0 E, and I have
> >>> very many channels with same pids on my iptv stream.
> >>> After this patch, vdr parsing duplicate pids, and if transponders is
> >>> not equal, channel not deleted, but rid wil be increased. If pids and
> >>> transponders are equal, channel will be deleted as duplicate.
> >>> Patch was made for vdr-1.5.12, but works with 1.5.15 too.
> >>> Attached 3 patches, for native vdr and vdr + iptv plugin patched and for
> >>> native reelchannelscan-0.4.1 plugin (include patch for 1.5.xx).
> >> First of all, there is no cChannel::PluginParam() in plain vanilla VDR 1.5.15.
> >>
> >> Secondly, as far as I understand this, the triplet SID/NID/TID is supposed
> >> to be unique within one satellite.
> >> Can you point me to a standard document that would indicate otherwise?
> >>
> >> Klaus
>
> _______________________________________________
> vdr mailing list
> vdr@linuxtv.org
> http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
>
@@ -876,6 +876,7 @@ cChannels::cChannels(void)
modified = CHANNELSMOD_NONE;
}
+
void cChannels::DeleteDuplicateChannels(void)
{
cList<cChannelSorter> ChannelSorter;
@@ -887,12 +888,21 @@ void cChannels::DeleteDuplicateChannels(
cChannelSorter *cs = ChannelSorter.First();
while (cs) {
cChannelSorter *next = ChannelSorter.Next(cs);
- if (next && cs->channelID == next->channelID) {
+ if (next && cs->channelID == next->channelID && cs->channel->Transponder() == next->channel->Transponder()) {
dsyslog("deleting duplicate channel %s", *next->channel->ToText());
Del(next->channel);
}
- cs = next;
- }
+ else if (next && cs->channelID == next->channelID) {
+ dsyslog("deleting duplicate id %s", *next->channel->ToText());
+ int sid = cs->channel->Sid();
+ int nid = cs->channel->Nid();
+ int tid = cs->channel->Tid();
+ int rid = cs->channel->Rid();
+ next->channel->SetId(nid, tid, sid, rid+1);
+ }
+ cs = next;
+ }
+ Channels.Save();
}
bool cChannels::Load(const char *FileName, bool AllowComments, bool MustExist)
@@ -143,7 +143,7 @@ void cNitFilter::Process(u_short Pid, u_
if (Setup.UpdateChannels >= 5) {
bool found = false;
for (cChannel *Channel = Channels.First(); Channel; Channel = Channels.Next(Channel)) {
- if (!Channel->GroupSep() && Channel->Source() == Source && Channel->Nid() == ts.getOriginalNetworkId() && Channel->Tid() == ts.getTransportStreamId()) {
+ if (!Channel->GroupSep() && Channel->Source() == Source && Channel->Transponder() == Transponder() && Channel->Nid() == ts.getOriginalNetworkId() && Channel->Tid() == ts.getTransportStreamId()) {
int transponder = Channel->Transponder();
if (!ISTRANSPONDER(cChannel::Transponder(Frequency, Polarization), transponder)) {
for (int n = 0; n < NumFrequencies; n++) {
@@ -78,7 +78,7 @@ void cSdtFilter::Process(u_short Pid, u_
char *pp = compactspace(ProviderNameBuf);
if (channel) {
channel->SetId(sdt.getOriginalNetworkId(), sdt.getTransportStreamId(), SiSdtService.getServiceId());
- if (Setup.UpdateChannels == 1 || Setup.UpdateChannels >= 3)
+ if ((Setup.UpdateChannels == 1 || Setup.UpdateChannels >= 3) && channel->Transponder() == Transponder())
channel->SetName(pn, ps, pp);
// Using SiSdtService.getFreeCaMode() is no good, because some
// tv stations set this flag even for non-encrypted channels :-(