LinuxMCE Forums

Archive => Archive => MythTV Plugin Users => Topic started by: archived on March 25, 2005, 07:43:57 pm

Title: Pluto with existing Mythtv installation
Post by: archived on March 25, 2005, 07:43:57 pm
Well, I'm new here.  Just wondered over from the knoppmyth and mythtv lists.  Pluto has peaked my intrests.  Here are some questions.

Sorry for the unrelated questions....maybe a newbie forum would be appropriate.

Title: Pluto with existing Mythtv installation
Post by: archived on March 25, 2005, 09:48:58 pm

1. Will a Pluto installation on a new computer be able to access/integrate with my existing Mythtv box (Knoppmyth / Debian)?

If you install Pluto on a new computer (which will by your Core or Hybrid), then it will expose a network boot service for your existing Mythtv box (Knoppmyth).  On the remote control (ie Orbiter) you'll be able to choose if you want this existing box (Knoppmyth) it to boot off the hard drive as it currently does, or do a network boot as a media director.  Of course, that's not really "accessing/integrating"--more like co-existing--but it's the simplest.  And the real advantage of network boot is if you want Windows on the hard drive, since it gives you a Windows PC and a Linux PC that acts like an appliance.  If both the network boot and the hard drive boot run Linux/Myth, there's not much point.  So to the question...  There a million ways to access/integrate depending on what you want to do.  However, they all will require some technical skills and a bit of work.  A) You could just copy your existing tv shows over from your current Myth box to the Core.  On the Pluto core they go in /home/public/data/videos.  B) You could also migrate some Myth settings over to the Core, and to the network boot image stored on the Core (it'll be in /usr/pluto/diskless/IP).  Once you did that, the hard drive in your existing Myth box would no longer be needed and you could use the hard drive for the PC boot, and then use the network boot when you want a media set top box.  C) If you want to keep your existing hard drive installation and 'merge' Pluto, that's okay too.  You would still want to setup a Core/Hybrid.  And then on your existing Myth box install the pluto-bootscripts package, the pluto-orbiter package (Orbiter is our front end UI), pluto-xine (for the Xine media player), pluto-mythtvplayer (Pluto's Myth interface that talks to your Myth system).  There may be some tweaking of the scripts and settings to get it to work, but then you would have both systems working together.  D)  You could also try to add the Core software to your existing Knoppmyth box.  It's tricky, though, because Pluto does a whole lot of stuff and 'touches' a lot of places.  And sometimes there are conflicts with packages and other issues.  That's why it's easiest, and recommended, to just download the kick-start cd and start clean.  Then you get a configuration that is known to work, and it points against our own Debian Sarge mirror which is quite current, but tested to be sure it works.  

My recommendation would be to go the Kick-Start CD + network boot route since it's easy, and thjen invest the time to merge Pluto into an existing installation only if it makes sense.

2.  Are there any network/component picture that help describe the interactions between components?

Yes, our quick start guide:

3.  What is the tablet hardware that is pictured running the Orbitor software?  -- It's the DT375.

4.  Can I start out with a simple system (existing myth / X10 ) and expand later?

When you complete the installation wizard it asks you what components you want.  You just check them off.  Later if you want to add more, just go to your Pluto Admin web site and check off the ones you want.  They're all installed automatically.

5.  When is the 'testing' version due?

I think last week.  :)  We were hoping to have it out this month, however it looks like we're a couple months behind schedule.  May perhaps.  We're going as fast as we can, but we're not going to release it until we're sure it's really ready.
Title: Pluto with existing Mythtv installation
Post by: archived on December 02, 2005, 10:26:55 pm
I too found my way to pluto from myth, and i wanted to test pluto's myth integration before trashing my already stable myth backend. my solution was to install a hybrid on a new box and set it up as a slave backend to my current myth backend.

this works perfectly when i control myth on the hybrid using the keyboard, but i'm having some problems controlling myth from an orbiter that i installed on a windows laptop. some buttons work, like seek forward and back, but the only way i can change the channel is with the number pad.

it seems like this is caused by the plugin being incomplete, but i just want to make sure that its not because the hybrid is only a slave backend with no capture cards of its own.

thank you.
Title: Pluto with existing Mythtv installation
Post by: archived on December 02, 2005, 10:39:06 pm
Yes, it's because Myth doesn't have a way for us to provide low-level control, so all we do is keyboard stuffing, which is a really nasty hack.  In other words, when you press pause on the orbiter, it just stuffs a 'p' or something into Myth's keyboard buffer, meaning if an input box is on the screen you will see a 'p'.

We recently made a job offering where we'll pay one of the Myth developers who understands the Myth front end internals to develop some sort of remote control api for Myth, so we can make the integration better.  Hopefully a Myth developer will take us up on our offer, and then the control of Myth using the Orbiter will be seamless.
Title: Pluto with existing Mythtv installation
Post by: archived on December 03, 2005, 07:55:33 am
thank you for the quick reply

i figured from the start that the myth integration was just a matter of keyboard simulation, but that just makes my issue more confusing. is there a place in the database or pluto admin site that lists which keyboard commands are bound to the buttons in the orbiter?

I'm finding that some of the buttons on the orbiter work for myth, but several of them do not, such as the up and down buttons. i'll start hacking my way through the settings and database, but a hint would really help.

Title: Pluto with existing Mythtv installation
Post by: archived on December 03, 2005, 10:46:22 am
Internally we use the same commands for all media players; xine, myth, and regular i/r controlled devices like VCR's.  If you're a Linux user, ssh into the console and type which will tail the log file /var/log/pluto/DCERouter.newlog grepping for commands only.  You will see entries like:

08      12/01/05 14:03:49.833           Received Message from 0 (unknown / ) to 37165 (Orbiter Plug-in / main), type 1 id 266 Command:Regen Orbiter, parameters:
08      12/01/05 14:03:49.833             Parameter 2(PK_Device): 37231

That means a message went to device 37165, the type of message is a command, the id is 266 "Regen Orbiter", and the command took 1 parameter, id #2 PK_Device.  In your pluto admin website, choose Advanced, DCE, Commands to see all the commands the system knows.

Now as you control Myth (or any media player) note the commands that are of interest, and look in the source code src/MythTV_Player.cpp.

You will see code blocks like this for every command that the Myth TV device implements:


   /** @brief COMMAND: #41 - Change Playback Speed */
   /** Will make the playback to FF with a configurable amount of speed. */
      /** @param #41 StreamID */
         /** The media needing the playback speed change. */
      /** @param #43 MediaPlaybackSpeed */
         /** The requested media playback speed * 1000.  -1000 = rev, 4000 = 4x fwd, -500 = rev 1/2.  Less than 10 = relative.  +2 = double, -1 = reverse.   See Media_Plugin::ReceivedMessage */

void MythTV_Player::CMD_Change_Playback_Speed(int iStreamID,int iMediaPlaybackSpeed,string &sCMD_Result,Message *pMessage)
   // We send left/right for this
   if( iMediaPlaybackSpeed==2 )

Our DCE library/framework will automatically call that function whenever the device receives the command.  In the device template for mythtv player you can add more commands, and then re-run our code generator DCEGen which merges in more function stubs into the .cpp file.  You will see that all of the functions now do nothing but send a keystroke.

If we had a bi-directional control with myth player, the above code should instead check the state of the front-end, and if tv is playing, specifically tell the player to change the playback speed, rather than just stuffing a 'right' arrow into the keyboard buffer.