[mythtv-users] Zap2It multiple sources same cable?

R. G. Newbury newbury at mandamus.org
Thu Jan 5 19:32:06 UTC 2006


Steve Adeff wrote:

>On Thursday 05 January 2006 10:26, R. G. Newbury wrote:
>  
>
>>Byron Poland wrote:
>>    
>>
>>>On 1/3/06, Steve Adeff <adeffs at gmail.com> wrote:
>>>      
>>>
>>>>So I've got three sources from the same cable company, am I doomed to
>>>>have to have 3 logins?
>>>>
>>>>1: HD Digital Cablebox via Firewire
>>>>2: SD Digital Cablebox via PVR-150
>>>>3: pcHDTV HD3000 cia QAM
>>>>
>>>>all from Comcast. Now, each source requires its own specific channel
>>>>lineup and all three require a "Digital Cable" lineup to be selected.
>>>>
>>>>The easiest would be to setup 1 zap2it source for all three and somehow
>>>>tell Myth which tuner gets what channels. But I don't think this is
>>>>possible.
>>>>        
>>>>
>>>See if you can pick a neighboring zip code that has the same services.
>>>I seem to remember doing this to try and circumvent some multiple
>>>lineup issues, I don't remember my exact issues they could of been
>>>related to OTA stuff.
>>>      
>>>
>>I think you only need 2 different lineups at zap2it.
>>I have ONE logon at zap2it and TWO different lineups. One lineup is
>>just  'Cable'. The other is 'Digital'.
>>Your PVR150 card will use the 'Cable' source.
>>Your Digital channels should be handled by the Myth database.
>>You may be able to use the 'other zip-code' trick, but I think that that
>>will fail unless you set up a different login. (I haven't tested but I
>>thought that Myth could handle a different login for an alternate
>>source. The problem is the zap2it end: one login allows only one lineup
>>of each type, cable, digital, or broadcast.)
>>
>>You should be able to get all of the digital channels working properly
>>from the one digital lineup.
>>To get QAM working you have to set up the dtv_mulitplex table and then
>>enter the channel PID (as the serviceid) in the channel database.
>>Search gossamer threads for a topic heading starting with  "Sweet! PC
>>HD..." for links on how to get that done.
>>
>>When you select a show, Myth uses the database and searchs to find the
>>channel, and parses out the hardware source (and serviceid to give to
>>the hardware) and the frequency in order to tune the proper piece of
>>hardware.
>>In this case the source will be either #1 or #3, and it will always
>>internally 'tune' to the fixed channel while outputting an IR
>>change-channel signal to the cablebox for any channel mapped to #1. At
>>least that's how it appears it should work. And people have reported
>>here that the two parts of this do work separately. In fact, I'm doing
>>the 'source #3' part of that now with my PVR500 and HD3000. Your setup
>>is different only in using the 'same' digital source for different
>>tuners depending on the channel, but it should work.
>>
>>You have an advantage in that you can use the cablebox to discover the
>>PIDs for all of the digital channels, so it will be a little easier for
>>you to set up the HD3000 card's database entries. You may want to get
>>phpMyAdmin running on your box, as this requires some mysql database
>>bit-bashing which is a lot easier to do with a hand holding gui.
>>
>>Geoff
>>    
>>
>
>except that my hdtv cable box gets a different set of channels than my 
>non-hdtv digital cable box which is a different set of channels that my DVB 
>card can receive. If I could, I would have one lineup and tell MythTV which 
>channels from the lineup each input is actually able to receive, but from 
>what I understand there is no way to do this as the visible setting will 
>still let Myth try and record a channel a source might not have.
>
>  
>
Yes, in this case, each tuner uses a different subset of all of the 
channels which are sent down your cable. Your cableco (and zap2it) 
differentiate between the analog and digital parts of the spectrum but 
Myth handles them indiscriminately except as it is told how to handle 
them by the database.

I think that there is a way to make myth select a particular channel out 
of a single datadirect lineup. It involves faking myth into thinking 
that there are 2 different lineups for hardware tuning purposes while 
having the same lineup for mythfilldatabase purposes.

To do this it helps to understand how myth goes about tuning a channel.

At 
http://www.cuymedia.com/doxygen-dev-docs/html/group__db__schema.html    
there is a discussion of the mysql database schema used by myth.

Quote:


    Digital Television Multiplex Table (dtv_multiplex)

This table contains the information needed to tune to a particular 
frequency on a particular input.

The primary key, 'mplexid', is automatically generated by the database. 
The most important field is the 'frequency' field which contains the 
transmission frequency in Hertz. The 'sourceid' which tells us which 
card and on what input of that card this multiplex applies to according 
to the Video Source Table (videosource) 
<http://www.cuymedia.com/doxygen-dev-docs/html/group__db__schema.html#videosource_table>. 
Along with a channel number 'sourceid' also uniquely identifies a 
channel in the Channel Table (channel) 
<http://www.cuymedia.com/doxygen-dev-docs/html/group__db__schema.html#channel_table>. 
The 'modulation' field tells us whether the modulation mode is "qpsk", 
"qam_16", "qam_32", "qam_64", "qam_128", "qam_256", "8vsb", "16vsb", or 
"auto". Finally, the 'sistandard' field is the last field which applies 
to both DVB and ATSC, it contains on of two strings, "dvb" or "atsc".

When describing a DVB Multiplex, the networkid, and transportid are used 
along with the serviceid in the Channel Table (channel) 
<http://www.cuymedia.com/doxygen-dev-docs/html/group__db__schema.html#channel_table> 
to tune to a particular MPEG stream in DVBChannel 
<http://www.cuymedia.com/doxygen-dev-docs/html/classDVBChannel.html>.

When descrining an ATSC Multiplex, the Channel Table (channel) 
<http://www.cuymedia.com/doxygen-dev-docs/html/group__db__schema.html#channel_table> 
contains the major and minor channels used to tune to a particular stream.

Video Source Table (videosource) This table tells us about a particular 
input on a video capture card.

The primary key, 'sourceid', is automatically generated by the database. 
The 'name' field gives the input name as passed to the video capture 
card driver. The 'xmltvgrabber' field tells us where we get our listings 
from. The 'userid' and 'password' fields are optionally used to log in 
to a listings service, with the 'lineupid' being used to select a 
particular lineup available from the listings service. Finally, the 
'freqtable' tells us which channel number to frequency mapping to use 
with analog channels, us, us-cable, pal, etc.


    Channel Table (channel)

The primary key, 'chanid' is generated by combining the source id with a 
unique number from 0 to 99.

The 'channum' field contains the channel number to be input to jump to a 
channel. With HDTV using video4linux drivers this field has a special 
meaning. If the field contains only numeric characters then the digits 
up to the last digit are used as the major channel number and the last 
digit is used as the minor channel number. If it contains an underscore 
(_), the default, then the digits before the underscore are used as the 
major channel, and the ones after it as the minor channel. If it 
contains a minus sign (-), then the digits after the minus sign are used 
as the program number.

The 'sourceid' field contains the Video Source Table (videosource) 
<http://www.cuymedia.com/doxygen-dev-docs/html/group__db__schema.html#videosource_table> 
key, which specifies which listings service to use and which input on 
which video capture card to find this channel.

Unquote
**********************************************************

The key here is that each "chanid" (channel number/sourceid combination) 
can be uniquely defined as a particular set of card, card input, 
frequency and modulation and that combination points to a particular 
channum in the program guide. 'Tuning' consists of mapping through from, 
for example, the program guide using the  channum, to select the source 
and parameters for that source.

So if you want to try a little pioneering, then maybe you can try this, 
which I think will allow you to do what you want to do:

Do a dvbscan (or atscscan) to find some active channels so you can parse 
out a QAM modulated feed and an HD feed which preferably should be on 
the same frequency but differ in their vid, aid and pid numbers. You 
want a chunk of your channels.conf like this:
CKND:771000000:QAM_256:16:17:16
CHMI:771000000:QAM_256:20:21:20
CFCN:771000000:QAM_256:28:29:28
CICT:771000000:QAM_256:30:31:30
CBRT:771000000:QAM_256:32:33:32
CHEK:771000000:QAM_256:34:35:34
CJON:771000000:QAM_256:36:37:36

I have substituted the callsigns for the [000a] style names produced by 
atscscan. None these happen to be HD streams, but those show up the same 
as SD digitial streams. Assume that CKND is SD and CHMI is an HD stream.

Make up a new Comcast Digital lineup consisting of  only those two 
channels , say 117, and 118.

Run mythtv-setup and create three cards, PVR150, HD3000 and Firewire 
Cable Box) , create the sources (Comcast and Comcast Digital), attach 
each to the proper source. making sure to set the starting channel 
correctly, 117 and either 118 or 3 whichever you do for a Firwire input 
(3 I think). Then run mythfilldatabase. Exit all and stop the backend.

At this point, myth thinks that the latter 2 inputs/cards are 
substitutes for each other and can each tune all of the channels in the 
Comcast Digital source. Now we have to attempt to 'fix' that so that 
myth knows it must use a particular card for a particular channel as if 
the sources were entirely different.

Note that I have not DONE this...I do not have a cable box for the HD 
sources on my cable. I could use my HD3000 card for HD OTA, but then I 
would select a broadcast lineup, not a cable lineup. So this is not 
guaranteed to work, but I have spent a fair bit of time messing with the 
mythconverg database tables in getting my HD card working and I think I 
can see how this can be done. Then again this may cause your dog to hump 
your leg and make your hair fall out....

Following the procedures pointed to in the gossamerthreads reference for 
how to get an HD3000 card working off digital QAM256,  get into mysql 
and create 2 rows in dtv_multiplex, so that there are 2 mplexid's with 
the same frequency. The sourceid's will 2 and 3 (if you entered the PVR 
as the first card or 1 and 3 if you followed your setup description) and 
the modulation field should be different: one will be QAM_256, I'm not 
sure for the HD stream 8VSB? and sisstandard should probably be set to 
atsc for the HD stream.
Mysql may barf at this as the frequency will be same as the first entry 
for the second entry, unless you also set the modulation value at the 
same time...I'm not sure how much internal error-checking mysql does in 
determining unique key entries. I presume it would choke only if the new 
row exactly matches an existing row....(Must check that out myself... 
Yup! It does!). So make the modulation different.

Now create a new row in videosource so that there are 3 sourceid's, 2 of 
which in fact point to the same Comcast Digital lineup as the ultimate 
source. You can almost duplicate the existing 'Comcast Digital' row. I 
added a hyphen so it is 'Comcast-Digital'. This was enough to bypass the 
mysql checking. I do not think that this will cause a problem with 
Datadirect... least I hope not.

Now in the channel table, adjust the channel entries. I think that 
mythfilldatebase will have made both channels as if they were only 
linked to the first listed input. That has to be changed. If 'CKND' is 
117 and 'CHMI-HD' is 118, then the chanid's should be, for this test 
setup, 3117 and 1118 and you will need to change the sourceid's to 3 and 
1, the tvformat to ATSC (probably) and enter as the serviceid the last 
number in the dvbscan line ( '16' and '20' respectively, above). Note 
that the channum is what the guide uses. I know nothing about how a 
firewire setup is actually set up in myth.

Accordingly there are probably a couple of other little things which 
need to be poked because you are running the cable box through firewire 
and with an ir-blaster, but this will, at least as far as the QAM side 
of things goes, get you a working mythtv setup through the HD300 card on 
channel 117. The entries for 118 need to be set up for your blaster. I 
suspect that this is most easily done in mythfrontend.

Set the cable box to the correct channel manually so that no channel 
changing in needed to get the HD on channel 118.
Start mythbackend and mythfrontend. Probably best to enter Setup, set 
things so Live Tv starts with the Program Guide and finish setup on 
channel 118 setup.
Try Live TV. The Guide should come up and you should see a picture of 
the tuned channel. Myth seems to choose the lowest priority tuner for 
live tv, thus reserving the higher priorities for recording. This could 
be a problem which might need someSetup poking..
If the Guide does not come up, then the setup is probably wrong for 
channel 117. That must be correct or things fail. I presume the same 
will apply to 118.
If you get the Guide, then see what happens when you select from channel 
61 or whatever to 117...That should at least give you an SD stream on 
117. You should get the OSD and a small picture, top right. Select and 
see if that gives up a full screen picture.
Cross you fingers and 'channel up' to 118, and select.

Possible gotchas. I have no idea whether mythfilldatabase will try to 
run itself 3 times because there are 3 rows in videosource. I have no 
idea if it will run properly for the third row. It may run and duplicate 
every channel in the database, once for 'Sourceid=2' and once for 
'Sourceid=3'. It may just fail because of the extra hyphen in the name. 
Hopefully it will just fail gracefully, without duplications, and 
without wailing, crying and gnashing to teeth. Otherwise, it may require 
a little mysql script to delete and re-insert the fake row before/after 
every mythfilldatabase run. This will actually depend on datadirect not 
myth!

If this works, then you can modify to get a full lineup for which you 
will have to adjust each channel. I have 27 usuable QAM channels on my 
feed and about 300 total feeds (lots of music channels which are also 
tunable). I ended up parsing out the data and putting it into a script 
to run against the mysql database, since there were lots of similar and 
repetitive entries.

Good luck!    And report back here!

Geoff

Update.  Out of curiousity, I just ran mythfilldatabase from my desktop 
(which has no tunre cards, but does have a compiled mythtv set of 
programs). Mythfilldatabase ran to completion against all three 
videosource entries. No glitches. But it appears that the third entry 
has captured data for EVERY digital channel into the Program Guide, 
probably because there is no actual 'Rogers-Digital' lineup. So it 
appears that mythfilldatabase should be run inside a script which will 
delete and later re-insert the third videosource table row....

G.









More information about the mythtv-users mailing list