On 04/11/10 09:36, Laz wrote:
One thing that can be a pain is having to manually reorder the channel
list when new channels are added or they change what their assigned
channel number is. Or new channels appear right at the end of the channel
list (which still includes out-dated channels!).

It would be nice if vdr had an option to set channel numbers based on the
values that are encoded into the streams. I don't know enough about DVB
standards to know where to find those numbers (LCN, Logical Channel
Numbers, I think) but I do seem to remember someone on here a couple of
years back mentioning a script which would reorder the channel listing to
the "correct" numbering.

That may have been me.

Actually, I think that "scan" has an option to add the LCNs to a generated
channels.conf. A bit of digging finds:

Yes, it can get the LCNs and generate a VDR-compatible channels.conf. I
used to use that as and when needed but I had problems because although
VDR recognised the format it didn't always recognise when a channel it
had scanned was the same as one already in the file generated by scan
and generate duplicates. Something to do with frequency rounding I
think. And for some reason I couldn't get VDR to not try to update

I've written my own scanningtool, which handles Freesat LCNs too, which
are supplied in the BAT instead of the NIT. This needs a bit of kludging
because I don't understand how the regions are handled by STBs so I have
to use manual overrides ("BBC 1 South" = 101 etc) and a bit of
shuffling. Then I've got another script which combines my Freesat and
Freeview listings, making sure the LCNs don't clash. It also merges the
new data with an existing channels.conf so it can deal with channels
like BBC THREE/FOUR time sharing with CBeebies/CBBC etc. Really VDR
shouldn't scan and store PIDs, but get them when tuning. The PMT and PAT
are repeated very frequently so the extra time looking up PIDs is
negligible. But this seems a failing of every DVB application I've seen
:-(. Is this time sharing relatively rare outside the UK? I'd be
surprised if Klaus and other developers had faced this problem at home
and decided to basically ignore it as they have done.

"The channel numbers can be found in the NIT table as the user-defined
descriptor 0x83 and each channel number has a corresponding Service ID
which is included in the descriptor"

Now...would it be as simple as extracting the LCN and then calling
cChannel->SetNumber() for the relevant channel? Does a new channels.conf
then get written (at some point) including the relevant :@number entries
so that it all works?

The trouble is there isn't a single standard for providing LCNs (eg
BSkyB has its own scheme too), and Klaus etc may be reluctant to
incorporate code specific to certain services in one country, so at best
this would be a 3rd party patch and VDR already has too many of them.

I might have a go to see if I can get this working but it won't be for a
while due to other commitments.

I realise that a lot of people don't worry about channel numbers but it
sort of makes sense to me, at least for DVB-T where there are
significantly fewer channels than on DVB-S, for example. It's also the way
that "proper" STBs do it and most people (at least in the UK) would expect
their normal channel numbers.

Yes, and they can be useful for DVB-S too, because you generally only
regularly watch a small subset and remember the numbers of most of them.
I also find it easier to use a printed TV guide than the EPG to plan my
viewing, and they publish the numbers.

TBH this is one of the only reasons I stick with VDR instead of mythtv,
because I know a way to make the former use LCNs, but I don't know how
with the latter.

TH * http://www.realh.co.uk

vdr mailing list

Reply via email to