>> 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/

Reply via email to