>> I'm actually surprised not to see a MySQL query right before the >> channel change request that looks up the tuner number. How does the >> mvpmc know what the proper tuner is to which to direct the request? > >I would assume it is getting that information via the MythTV protocol.
It's getting it from a MySQL query. Below is a synopsis of an entire mvpmc session to the point of tuner failure. I see myth address gathered from cardid by mvpmc any time it's interested in that card; I assume LiveTV defaults to tuner 1 unless it's busy. --> (to backend) 23 GET_FREE_RECORDER_COUNT <--(answered) 1 2 --> 27 GET_RECORDER_FROM_NUM[]:[]1 <-- 20 10.0.10.103[]:[]6543 # <announce_playback and myth protocol handshake noise>, then... --> 33 QUERY_RECORDER 1[]:[]IS_RECORDING <-- 1 0 # Begin LiveTV session --> 78 QUERY_RECORDER 1[]:[]SPAWN_LIVETV[]:[]live-mediamvp1-2008-11-11T10:22:28[]:[]0 # about 5s later, <-- 2 ok Then a bunch more myth protocol traffic to get basic info on the recording, protocol handshaking occasionally, data transfer, etc. # What am I playing? --> 42 QUERY_RECORDER 1[]:[]GET_CURRENT_RECORDING # Lots of data about the show including file path/name, channum and chanid <-- 509 The Bonnie Hunt Show[]<snip>:[]1022[]:[]22[]:[]WSBT[]<snip>:[]0 # ???? <-- 51 BACKEND_MESSAGE[]:[]RECORDING_LIST_CHANGE[]:[]empty # ???? <-- 84 BACKEND_MESSAGE[]:[]LIVETV_CHAIN UPDATE live-mediamvp1-2008-11-11T10:22:28[]:[]empty # bring it! --> 81 ANN FileTransfer mediamvp1[]:[]/var/lib/mythtv/recordings/1022_20081111102232.mpg <-- 25 OK[]:[]21[]:[]0[]:[]71680 # Am I recording? --> 33 QUERY_RECORDER 1[]:[]IS_RECORDING <-- 1 1 # repeat that exchange (omitted) # What's this recording like? --> 34 QUERY_RECORDER 1[]:[]GET_FRAMERATE <-- 5 29.97 --> 42 QUERY_RECORDER 1[]:[]GET_CURRENT_RECORDING <-- 509 The Bonnie Hunt Show[]<snip>:[]1022[]:[]22[]:[]WSBT[]<snip>:[]0 # Next hunk, please <-- 49 QUERY_FILETRANSFER 21[]:[]REQUEST_BLOCK[]:[]98304 # bunch o' data passed from backend, then (I think) a "done" --> 2 -1 Then I hit the Guide button on the mvpmc remote which generates a bunch of MySQL traffic: # a greeting and login (omitted), then, "gimme all your channel info" <-- SELECT chanid,channum,channum+0 as channumi,cardid, callsign,name FROM cardinput, channel WHERE cardinput.sourceid=channel.sourceid AND visible=1 ORDER BY channumi ASC, callsign ASC # much snippage from the response, but note the accurate information about ch17 including tuner number (and channum as a string) --> def.mythconverg.channel.channel.chanid.chanid.?. def.mythconverg.channel.channel.channum.channum... def....channumi.channumi. def.mythconverg.cardinput.cardinput.cardid.cardid. def.mythconverg.channel.channel.callsign.callsign def.mythconverg.channel.channel.name.name 1016.16.16.1.WNDU.WNDU 10946.16-1.16.2.WNDUDT.WNDUDT 1017.17.17.2.WNDUDT2.WNDUDT2 # What are the myth addresses of the recorders? <-- 27 GET_RECORDER_FROM_NUM[]:[]1 --> 20 10.0.10.103[]:[]6543 <-- 33 QUERY_RECORDER 1[]:[]IS_RECORDING --> 1 1 <-- 27 GET_RECORDER_FROM_NUM[]:[]2 --> 20 10.0.10.103[]:[]6543 <-- 33 QUERY_RECORDER 2[]:[]IS_RECORDING --> 1 0 <-- 27 GET_RECORDER_FROM_NUM[]:[]3 --> 13 nohost[]:[]-1 # I guess, don't have a recorder 4 if there is no 3, eh? # MySQL query to make the tv guide which displays channumi (the "integerized" channum) but uses chanid to look up programs for channels in the tv guide's current view. <-- SELECT chanid,channum,channum+0 as channumi,cardid, callsign,name FROM cardinput, channel WHERE cardinput.sourceid=channel.sourceid AND visible=1 ORDER BY channumi ASC, callsign ASC # A bunch more traffic like that and all the responses you can eat # I request a channel change to 17 (with the remote) <-- 26 QUERY_RECORDER 1[]:[]PAUSE --> 2 ok <-- 39 QUERY_RECORDER 1[]:[]SET_CHANNEL[]:[]17 WTF! Why ask tuner 1 for channel 17 if you already know it's on tuner 2? I haven't generated a trace from just pressing 17 on the remote without going through the guide. That's the whole dialog (minus some noise and all the video data/requests); so, if the mvpmc is using tuner-to-channel relationships, it's getting them from MySQL. >But it wouldn't surprise me to learn that the live TV code assumes that >the back-end consists of one or more tuners that all receive the same >set of channels. Thus tuner switching and channel switching are handled >by two independent operations (with a menu for each). It wouldn't surprise me either...but it's intriguing that the MySQL query requests cardid. >That would clearly break in a scenario like yours where certain channels >are available only on specific tuners. I.e., only work in scenarios where all tuners carry the same lineup...even then, I'd think the backend would be confused by the request always being directed at tuner 1. Any thought? I repeat Tom's request for feedback from anyone successfully using LiveTV on more than one tune. DISCLAIMER: Nothing in this email shall bind Schaffer & Layher, PLLC in any contract or obligation. This e-mail is for the intended addressee only. If you have received it in error then please delete it and notify the sender by return e-mail. In case of doubt about correctness or completeness of this e-mail please contact the sender. Schaffer & Layher, PLLC makes every effort to virus check the files available for downloading on the site or send as attachment with an email. Schaffer & Layher, PLLC cannot accept responsibility for any loss or damage that may happen from the use of downloaded material. We recommend that users re-check all downloaded material with their own anti-virus software. Pursuant to requirements related to practice before the Internal Revenue Service, this document, including any attachments, was not intended or written to be used for, and cannot be used by the taxpayer, for the purpose of avoiding U.S. Federal, State or local tax penalties. ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Mvpmc-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mvpmc-users mvpmc wiki: http://mvpmc.wikispaces.com/
