Home
Loading
Community
 
Blog
Forums
Showcase
Newsletter
 
 
 


Create a Custom Channel Order in Beyond TV with XMLTV

 

Article
Create a Custom Channel Order in Beyond TV with XMLTV
Posted:
September 24, 2003
By:
Niel Markwick

 

Intro

A common feature of TVs and Videos (at least in Europe!) is the ability to re-order the TV channels to the user's favourite. For example, the user's 9 favourite channels could be defined to channels 1-9, or grouped by language, etc.


A typical layout for the UK would be:

  1. BBC1
  2. BBC2
  3. ITV
  4. Channel4
  5. Channel5

SnapStream Beyond TV cannot do this (yet). The channel numbers are the frequency indexes used by DirectX, so I have figured out a workaround.

DISCLAIMERS:
This involves hacking the registry to change the channel number/tuner frequency assignments that are hard-coded into DirectX.
Do not do it if you are not familiar with regedit.
This may also affect SnapStream.Net subscriptions as channel numbers will changed.
As this may render your system inoperable, I disclaim all responsability for any such damage. Windows XP users should take system checkpoints before starting, other Windows users should do backups.
This will affect all TV viewing programs that use DirectX's tuner.

I have tested this on SnapStream Beyond TV 3.2 with a Hauppauge PVR-250 under Windows 2000 SP4.


First, go to Microsoft's DirectX page on TV Tuning and have a read about what we are trying to do in the "Frequency Tables" and "Frequency Overrides" sections.

Basically, we are going to re-map the entire frequency-to-channel number layout using the registry.

Next, go to the "Tables and Assignments" page and select the frequency tables and channel number assignments for your region and input type (Antenna/Cable).
Copy the frequency indexes to a text file (for Western European Cable, they look like the following:)


code:

--------------------------------------------------------------------------
48250000L, // 1 E2
49750000L, // 2 E2A
55250000L, // 3 E3
62250000L, // 4 E4
69250000L, // 5 S01
76250000L, // 6 S02
83250000L, // 7 S03
90250000L, // 8 S04
97250000L, // 9 S05
105250000L, // 10 S1
--------------------------------------------------------------------------


Use the "Frequency to Registry" script to convert the frequency tables in to regedit format:

Copy from the MSDN web page the required frequency index table into the first text area (replacing any text that is already there,) and press "Convert Now." The resulting regedit-formatted data appears in the second text area. This should be copy/pasted into a Notepad and saved as "frequencies_reg.txt."

Write down the channel order that you require, and the Beyond TV channel numbers that these channels currently use.
If you have already labeled them in Beyond TV, the file LineupCollection.xml in "\Documents and Settings\All Users\Application Data\SnapStream\Beyond TV" will contain the current channel names/numbers and their mapping. (View it in IE)
Edit the frequencies_reg.txt file, and enter the new channel number in the empty quotes, thus re-numbering the frequencies to match the required layout for current layout.

For example, if BBC-1 is on original channel 29, and you want it on channel 1:


code:

--------------------------------------------------------------------------
;; 238250000 // 29 S12 BBC1
"1"=dword:e336810
--------------------------------------------------------------------------


Leave the unused frequencies blank for the moment.

Once you have done all of this, you can optionally go through and number all the unused frequencies to high range numbers. I have channels 1-54 used; channels 70-123 are unused (you never know then you might need them), but you can just delete the unused lines.


Add the following lines to the top of the file to make it a regedit import file.


code:

--------------------------------------------------------------------------
Windows Registry Editor Version 5.00


[HKEY_LOCAL_MACHINE\Software\Microsoft\TV System Services\TVAutoTune\TS0-1]
--------------------------------------------------------------------------


Note: At the end of the registry key name, the TS0-1 is for cable; if you have used broadcast TV mode, use TS0-0.
(Note: I have only tested TS0-1)

Save the file as, for example, "customchannels.reg"

Top of Example file follows:


code:

--------------------------------------------------------------------------
Windows Registry Editor Version 5.00


[HKEY_LOCAL_MACHINE\Software\Microsoft\TV System Services\TVAutoTune\TS0-1]
;; 48250000 // 1 E2 NED1
"16"=dword:2e03c90
;; 49750000 // 2 E2A Unused
"70"=dword:2f71ff0
;; 55250000 // 3 E3 Canvas
"22"=dword:34b0c50
;; 62250000 // 4 E4 RTBF-1
"21"=dword:3b5dc10
;; 69250000 // 5 S01 Unused
"71"=dword:420abd0
;; 76250000 // 6 S02 KA2
"21"=dword:48b7b90
--------------------------------------------------------------------------


Run regedit, and go to


code:

--------------------------------------------------------------------------
HKEY_LOCAL_MACHINE\Software\Microsoft\TV System Services\TVAutoTune
--------------------------------------------------------------------------

and then Registry->Export the branch to another .reg file to back it up.

Finally, enter the new channel lineup in the registry, by double-clicking the file you created: customchannels.reg -> Yes -> OK

Re-start Beyond TV, and you have re-ordered channels. Check the layout (note that the old channel names are still active, so some confusion may occur).

If it has all gone horribly wrong, delete the registry key:


code:

--------------------------------------------------------------------------
HKEY_LOCAL_MACHINE\Software\Microsoft\TV
System Services\TVAutoTune
--------------------------------------------------------------------------

and restore the backed up reg file (if you had one).

You now need to rename all the channels to your new order through the Beyond TV web Admin, or by manually edit the LineupCollection.xml file (location above) file while Beyond TV is shut down in the same way mentioned previously. You can back up this same file to keep the old channel layout somewhere safe.

Also, if you use the XMLTV Importer, then you need to clear the DB of the old shows/mappings using Config->ClearDB. After this, you must then either edit the chanlineup.txt file to renumber the channels yet again, or delete this file; when you next import the XML data, let XMLTV re-prompt you for the new channel lineup. Again, backup this file to keep the old settings somewhere safe.

Restart Beyond TV and you now have a custom channel layout.

Talk about this article on our fourms.

Like this article? Want to see more?

Discuss it in our forums.

 

Back to Community Page