Re: [vdr] French DVB-T Channel IDs vs. EIT Channel IDs

2018-02-26 Thread Patrick Boettcher
Hi Klaus,

thank you for your reply.

On Mon, 26 Feb 2018 16:58:20 +0100
Klaus Schmidinger  wrote:
> > How should this be fixed correctly?
> > 
> > Is this a regression introduced somewhere?
> > 
> > Can it be solved by configuration?  
>
> where did the channel with ID T-0-506-517 come from in the first
> place?

I ran dvbv5-scan with -O vdr and it gave me the line. I manually
copied it to channels.conf. Upon vdr start I saw that VDR was updating
the PIDs. 

Here's what came out of it:

France 2:586000:B8C23G32M64S0T8Y0:T:0:120=27:0; \
   130=fra@122,131=qad@122,132=qaa@122:0;140=fra,142=fra :0:257:0:0:0

(\ and line break added by me)


> What happens if you delete that channel from VDR's channel list and
> tune to the transponder? Does it create the channel with the correct
> ID?

Good idea. 

I deleted the channel and switched to another channel on the same
transponder.

Nothing happens. VDR does not re-"find" the channel. VDR is set up to
"Add New Transponders".

Running scan -c (current transponder) gives:

0x 0x0101: pmt_pid 0x006e GR1 B -- France 2 (running)
0x 0x0104: pmt_pid 0x0136 GR1 B -- France 4 (running)
0x 0x0105: pmt_pid 0x01fe GR1 B -- France Ô (running)
0x 0x0106: pmt_pid 0x0262 GR1 B -- franceinfo: (running)
0x 0x0111: pmt_pid 0x00d2 GR1 -- F3 Paris Ile-de-France (running)
0x 0x0170: pmt_pid 0x02c6 R1 TFL -- BFM Paris (running)
dumping lists (6 services)
France 2 (0x0101) 01: PCR == V   V 0x0078 SUB 0x008e
France 4 (0x0104) 01: PCR == V   V 0x0140 SUB 0x0156
France Ô(0x0105) 01: PCR == V   V 0x0208 SUB 0x021c
franceinfo   (0x0106) 01: PCR == V   V 0x026c SUB 0x0280
F3 Paris Ile-de-France   (0x0111) 01: PCR == V   V 0x00dc A 0x00e6 (fre) 0x00e7 
(qad) 0x00e8 (qaa) SUB0x00f2
BFM Paris(0x0170) 01: PCR == V   V 0x02d0

(attached is the complete output with -vvv.)

Any idea?

--
Patrick.
pmp@vdr:/var/lib/vdr$ scan -c -vv
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
PAT
PMT 0x0262 for service 0x0106
  VIDEO : PID 0x026c
  OTHER : PID 0x0276 TYPE 0x06
  SUBTITLING: PID 0x0280
PMT 0x0136 for service 0x0104
  VIDEO : PID 0x0140
  OTHER : PID 0x014a TYPE 0x06
  OTHER : PID 0x014b TYPE 0x06
  OTHER : PID 0x014c TYPE 0x06
  SUBTITLING: PID 0x0154
  SUBTITLING: PID 0x0156
PMT 0x02c6 for service 0x0170
  VIDEO : PID 0x02d0
  OTHER : PID 0x02da TYPE 0x06
PMT 0x00d2 for service 0x0111
  VIDEO : PID 0x00dc
  AUDIO : PID 0x00e6
  AUDIO : PID 0x00e7
  SUBTITLING: PID 0x00f0
  AUDIO : PID 0x00e8
  SUBTITLING: PID 0x00f2
PMT 0x01fe for service 0x0105
  VIDEO : PID 0x0208
  OTHER : PID 0x0212 TYPE 0x06
  OTHER : PID 0x0213 TYPE 0x06
  SUBTITLING: PID 0x021c
PMT 0x006e for service 0x0101
  VIDEO : PID 0x0078
  OTHER : PID 0x0082 TYPE 0x06
  OTHER : PID 0x0083 TYPE 0x06
  OTHER : PID 0x0084 TYPE 0x06
  SUBTITLING: PID 0x008c
  SUBTITLING: PID 0x008e
SDT (actual TS)
0x 0x0101: pmt_pid 0x006e GR1 B -- France 2 (running)
0x 0x0104: pmt_pid 0x0136 GR1 B -- France 4 (running)
0x 0x0105: pmt_pid 0x01fe GR1 B -- France Ô (running)
0x 0x0106: pmt_pid 0x0262 GR1 B -- franceinfo: (running)
0x 0x0111: pmt_pid 0x00d2 GR1 -- F3 Paris Ile-de-France (running)
0x 0x0170: pmt_pid 0x02c6 R1 TFL -- BFM Paris (running)
dumping lists (6 services)
France 2 (0x0101) 01: PCR == V   V 0x0078 SUB 0x008e
France 4 (0x0104) 01: PCR == V   V 0x0140 SUB 0x0156
France Ô(0x0105) 01: PCR == V   V 0x0208 SUB 0x021c
franceinfo   (0x0106) 01: PCR == V   V 0x026c SUB 0x0280
F3 Paris Ile-de-France   (0x0111) 01: PCR == V   V 0x00dc A 0x00e6 (fre) 0x00e7 
(qad) 0x00e8 (qaa) SUB 0x00f2
BFM Paris(0x0170) 01: PCR == V   V 0x02d0
Done.
pmp@vdr:/var/lib/vdr$ scan -c -vvv
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
parse_section:1574: pid 0x00 tid 0x00 table_id_ext 0x0001, 0/0 (version 4)
PAT
parse_section:1574: pid 0x262 tid 0x02 table_id_ext 0x0106, 0/0 (version 1)
PMT 0x0262 for service 0x0106
  VIDEO : PID 0x026c
  OTHER : PID 0x0276 TYPE 0x06
  SUBTITLING: PID 0x0280
parse_pmt:1235: 0x 0x0106: (null) -- (null), pmt_pid 0x0262, vpid 0x026c, 
apid 0x ()
parse_section:1574: pid 0x136 tid 0x02 table_id_ext 0x0104, 0/0 (version 0)
PMT 0x0136 for service 0x0104
  VIDEO : PID 0x0140
  OTHER : PID 0x014a TYPE 0x06
  OTHER : PID 0x014b TYPE 0x06
  OTHER : PID 0x014c TYPE 0x06
  SUBTITLING: PID 0x0154
  SUBTITLING: PID 0x0156
parse_pmt:1235: 0x 0x0104: (null) -- (null), pmt_pid 0x0136, vpid 0x0140, 
apid 0x ()
parse_section:1574: pid 0x2c6 tid 0x02 table_id_ext 0x0170, 0/0 (version 1)
PMT 0x02c6 for service 0x0170
  VIDEO : PID 0x02d0
  OTHER : PID 0x02da TYPE 0x06
parse_pmt:1235: 0x 0x0170: (null) -- (null), pmt_pid 0x02c6, vpid 0x02d0, 
apid 0x ()

Re: [vdr] French DVB-T Channel IDs vs. EIT Channel IDs

2018-02-26 Thread Klaus Schmidinger

On 25.02.2018 15:26, Patrick Boettcher wrote:

Hi list,

since some time (1-2 years) I noticed that the DVB-T channels do not
show EPG anymore. I'm not sure what is the root-cause: either it
was the migration of French DVB-T to HD (in 2016) or an update of VDR.

Anyway, this morning I took the time to figure out what is wrong and
here is what I found.

In short, the channel-ID generated from the one received in the EIT
does not correspond to a known channel-ID from the channel list, and
VDR drops the whole section:

In cEIT::cEIT (from eit.c) we see

   tChannelID channelID(Source, getOriginalNetworkId(), getTransportStreamId(), 
getServiceId());
   cChannel *Channel = Channels->GetByChannelID(channelID, true);

and channel is NULL in my case.

I added some debug prints to GetByChannelID() in the search loop:

   printf("sid: %d == %d, %s, %s %d\n",
  Channel->Sid(),
  sid,
  (const char *)ChannelID.ToString(),
  (const char *)Channel->GetChannelID().ToString(),
  Channel->GetChannelID() == ChannelID);

And here is an example of what I get:

   sid: 517 == 517, T-8442-2-517, T-0-506-517 0

The internal channel ID of vdr reads T-0-506-517. 517 is the SID, 506
is the radio-channel frequency in MHz. This is the right internal
channel for this EIT-section.

The EIT-channel-ID is telling me that 8442 is the original network ID
and 2 might be the radio-channel ID.

I tweaked the operator==() of ChannelID to make it work, but not in a
contributable manner.

How should this be fixed correctly?

Is this a regression introduced somewhere?

Can it be solved by configuration?


Hello Patrick,

where did the channel with ID T-0-506-517 come from in the first place?

What happens if you delete that channel from VDR's channel list and tune
to the transponder? Does it create the channel with the correct ID?

Klaus

___
vdr mailing list
vdr@linuxtv.org
https://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr