LinuxMCE Forums

Archive => Archive => MythTV Player Users => Topic started by: archived on August 07, 2005, 08:14:43 pm

Title: complete mythv integration
Post by: archived on August 07, 2005, 08:14:43 pm
I've just discovered Pluto and I'm finding it very interesting, but I would like some clarification on the status of Mythtv.

Title: complete mythv integration
Post by: archived on August 08, 2005, 10:17:29 am
> what mythtv version is in your current iso?

> are there any plans to integrate the complete mythtv package?
The integration with Myth is really 'light' at the moment.  When you hit 'watch tv', all it does is launch the Myth frontend and make it topmost.  When you hit the various buttons on the mobile phone, pda, or web pad, it just sends simulated keypress events to Myth through X.  So we have not made any changes to Myth, and Myth's functionality is unchanged.

Therefore whatever you can do with Myth on a non-Pluto is exactly the same as what you can do within Pluto.  In the future we would like to have a tighter integration with some low-level hooks because then we can make it even more comfortable.  For example in our media code we keep track of 'dual' output paths and bi-directional feedback with a/v equipment.  This means that if you have a cable/sat box, you can hook one output to the PC, which hooks to the tv on, say Video 1, and the other output directly to the tv on, say Video 2.  If we had a lower level communication with Myth, then we would be able to switch the TV to Video 2 when you're watching live tv.  That way channel surfing is instant (rather than the 2 second time lag when it goes through an encoder card), and the quality is much better, plus you can watch high-definition.  Only when you pause or rewind (ie go into time lapse) would we switch the tv back to video 1.  We did some field tests with this already and found users agreed it makes the PVR much better--it appears faster, more responsive, and the picture quality is significantly better.  But to get to that point then we will need some low-level hooks into Myth.

> does pluto support multiple pvr cards?
> does pluto support the Hauppauge Media MVP as a mythtv frontend?
Since for now we haven't changed Myth at all, anything you can do with a vanilla myth install you can do with a pluto myth.  Just edit the configuration files like you normally would.
Title: complete mythv integration
Post by: archived on August 08, 2005, 03:30:02 pm
thanks for your reply.

just to make sure i'm understanding this correctly...

Title: complete mythv integration
Post by: archived on August 08, 2005, 03:56:23 pm
Correct.  All we do is send keystrokes to Myth, just like LIRC does.  Myth knows nothing at all about Pluto--it's a vanilla 18.1 Myth.  Our PVR UI in the .27 release includes the basic Myth controls.  We recently created some more screens for our Orbiters (web pads, pda's, and mobile phones) that list all the myth commands, like 'change inputs', and that sends the correct keystroke to Myth.

We hope this makes things easier.  If you use a generic i/r remote control chances are it won't have buttons for all Myth functions, and if you map them in an odd way, it can be hard to remember.  For example, you can map a "Change Disc" button to send a C (ie Change Input) but you're likely to forget.  With this new UI you'll see all the Myth commands, and each one sends Myth the right keystroke.

It's true for all parts of Myth.  Our DCE Device, called MythTV_Player, does nothing but spawn myth front end and then feed it keystrokes.
Title: complete mythv integration
Post by: archived on August 08, 2005, 04:28:04 pm
thanks, now i'm really looking forward to try out pluto :mrgreen:

Title: Low Level Hooks . . . .
Post by: archived on October 27, 2005, 03:21:00 am
aaron.b -

One suggestion would be just to monitor the command port traffic between the (Myth) backend and frontend.   The backend listens to port 6543 I believe.  Of course this will require that Pluto learn to speak "MythTV" protocol which has been highly evolutionary from version to version. . . . . .
Title: complete mythv integration
Post by: archived on October 27, 2005, 09:09:26 am
Do you know how the myth protocol works?  Here's how our stuff works:

In every house there is one instance of the Pluto device 'myth tv plugin' (child of dcerouter).  This registers with media plugin to say that it knows how to control and coordinate myth players.  It's job is to handle house-wide logic related to myth, and is always given the chance to preprocess messages that will go to the myth player.  For example, it could be the one to say "user wants to watch myth tv in the bedroom.  the bedroom doesn't have a pvr card.  but there's a media director in the den which does, and which isn't being used now.  so i'll send the bedroom a 'play media' command and tell it to use the myth backend in the den with ip X".

The plugin also has the responsibility for providing datagrids (like EPG, etc.) that appear on the orbiters (phones, pda's, etc.), and would likely be the place to handle recording commands, although it is debatable how much of this logic goes in the myth plugin vs. myth player device.

unlike the mythtv plugin which runs only 1 time on the core, the mythtv player is a device which exists on every media director where myth is running, and this is the 'myth wrapper' that receives commands in pluto's dce format (skip forward, pause, channel 50, etc.) and forwards them to myth.   It should also fire events based on the state of myth.  For example, if the user starts watching time lapse it needs to fire a live tv=0 event so the pluto plugin that manages setting inputs on a/v equipment can switch the inputs on the tv/receiver to display the output from the pc rather than the direct output from the sat/cable box.  It would also monitor the state of the myth front end and fire appropriate 'set screen type' and 'goto screen' messages.  For example, when you're watching live tv the remote on the pda/webpad and mobile phone would show the current show information, and the navigation buttons, such as the jog dial on the phone, would probably change channels.  But if the user hits the 'menu' button and goes into myth setup, or maybe the epg guide, then the remote control on the orbiters should change.  Instead of the jog dial on the phone changing channels, it should now scroll the program guide, and instead of showing current broadcast info on the pda, maybe another menu is more appropriate.

This, however, isn't implemented with myth since we don't have the low level comunication.  All we do is simulate keystrokes.  We don't know what the state of the front end is, and we cannot adjust the UI on the phones accordingly, nor change inputs with live vs recorded tv.  All we do is when the user hits 'up' on the phone we simulate an up keystroke.

This key stuffing approach means our current myth code is super simple and we made absolutely no changes to myth--it's just a vanilla myth release.  However it does limit the user experience.
Title: complete mythv integration
Post by: archived on October 27, 2005, 09:33:27 am
Quote from: "aaron.b"
Do you know how the myth protocol works?

Check these out
Title: complete mythv integration
Post by: archived on October 27, 2005, 09:46:11 am
I didn't work on it, but I *think* we have a device 'myth backend' or something that uses that protocol you referenced to get some basic info (read-only as i recall).  However the programmer who wrote that isn't here anymore and nobody else knows anything about it.  If I remember correctly, though, he said the protocol wasn't too much help because it didn't allow us to directly control the front end (like say user hit right button on phone so 'fast forward at 4x speed', 'pause', etc.) or to get state information (video is now paused, tv is live, user is viewing guide data, user is in myth setup).  That is the kind of interaction we wanted so that we could display an intuitive, logical UI on the webpads/phones, etc. that corresponded to what the user was currently doing, and adjust the inputs on the a/v equipment depending on whether the user is watching live vs recorded tv, so you can watch your broadcasts in high-def digital when live, and only switch to the pc's input and analog capture when you go to time lapse or want to bring up, say the epg.

I looked over the protocol pages you referenced briefly.  And they kind of confirmed what I remembered being told earlier.  I see commands to do things like 'lock tuner'.  But I don't see any commands there to control the front end (ie fast forward), or to get the current state of the front end.  My knowledge of this is very limited, so sorry if I'm missing something....  Is there a way to do this with the Myth protocol that I didn't catch?