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 channels.conf. 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 vdr@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr