What version of Mythtv does 10.04 use? If it is not .24, is there anything keeping me from building my own version of .24 and using that? I need .24 for the support of the Ceton infinity capture card.
Any help is appreciated.
Please Thom don't be a hater :)
10.04 comes with .23. you certainly could build your own, provided you pay attention to compatibility with lmce packages, in particular the mythtv plugin.
How involved is the Myth Plugin for LMCE? If it isn't too involved I can try and get .24 working and moved to the repo. It all depends on how much time I can find to work on this.
Thanks,
Kevin
mostly its just the network control protocol. if youre lucky, nothing changed and all you have to do is make the version check match.
My ceton card gets delivered today so the next couple of days I will give it a go. Hopefully it is not a big undertaking.
Please keep an eye on this topic if I have some questions I need answered.
Thanks,
Kevin
The MythTV backend protocol has changed.
Due to brain dead changes in MythTV's backend protocol by truly idiotic developers, You will need to change the code that sends the MYTH_PROTO command, to also output the appropriate version token. This is a random hex number that changes with each official released version. This was a deliberate attempt to keep unofficial clients from just randomly connecting to the backend.
http://www.mythtv.org/wiki/MYTH_PROTO_VERSION_(Myth_Protocol) it is explained here.
I have here a patch file for doing it for 0.24. No this will not be folded in until the official mythTV packages upstream change to 0.24, as this completely breaks 0.23 compatibility.
Index: MythBackEnd_Socket.cpp
===================================================================
--- MythBackEnd_Socket.cpp (revision 25010)
+++ MythBackEnd_Socket.cpp (working copy)
@@ -17,7 +17,7 @@
using namespace std;
using namespace DCE;
-#define MYTH_PROTOCOL 56
+#define MYTH_PROTOCOL 63
#include "Gen_Devices/AllCommandsRequests.h"
MythBackEnd_Socket::MythBackEnd_Socket(MythTV_PlugIn *pMythTV_PlugIn,string sIPAddress)
@@ -157,7 +157,7 @@
m_bConnected=true;
string sResponse;
- if( !InternalSendMythString("MYTH_PROTO_VERSION " TOSTRING(MYTH_PROTOCOL),&sResponse,"ACCEPT") )
+ if( !InternalSendMythString("MYTH_PROTO_VERSION " TOSTRING(MYTH_PROTOCOL) " 3875641D",&sResponse,"ACCEPT") )
{
LoggerWrapper::GetInstance()->Write(LV_CRITICAL,"MythBackEnd_Socket::Connect couldn't send MYTH_PROTO_VERSION m_bConnected=false");
DeleteSocket();
Quote from: tschak909 on November 08, 2011, 09:49:03 PM
The MythTV backend protocol has changed.
Due to brain dead changes in MythTV's backend protocol by truly idiotic developers, You will need to change the code that sends the MYTH_PROTO command, to also output the appropriate version token. This is a random hex number that changes with each official released version. This was a deliberate attempt to keep unofficial clients from just randomly connecting to the backend.
http://www.mythtv.org/wiki/MYTH_PROTO_VERSION_(Myth_Protocol) it is explained here.
I have here a patch file for doing it for 0.24. No this will not be folded in until the official mythTV packages upstream change to 0.24, as this completely breaks 0.23 compatibility.
Index: MythBackEnd_Socket.cpp
===================================================================
--- MythBackEnd_Socket.cpp (revision 25010)
+++ MythBackEnd_Socket.cpp (working copy)
@@ -17,7 +17,7 @@
using namespace std;
using namespace DCE;
-#define MYTH_PROTOCOL 56
+#define MYTH_PROTOCOL 63
#include "Gen_Devices/AllCommandsRequests.h"
MythBackEnd_Socket::MythBackEnd_Socket(MythTV_PlugIn *pMythTV_PlugIn,string sIPAddress)
@@ -157,7 +157,7 @@
m_bConnected=true;
string sResponse;
- if( !InternalSendMythString("MYTH_PROTO_VERSION " TOSTRING(MYTH_PROTOCOL),&sResponse,"ACCEPT") )
+ if( !InternalSendMythString("MYTH_PROTO_VERSION " TOSTRING(MYTH_PROTOCOL) " 3875641D",&sResponse,"ACCEPT") )
{
LoggerWrapper::GetInstance()->Write(LV_CRITICAL,"MythBackEnd_Socket::Connect couldn't send MYTH_PROTO_VERSION m_bConnected=false");
DeleteSocket();
Thom,
Could the MythTV Player be extended to read in MYTH_PROTO_VERSION from a configuration file in /etc/pluto? That way people who need to run a newer version of Myth could simply change the Protocol number. Obviously, they couldn't leverage newer MythTV features that aren't supported in the Player, but they'd have the basic functionality.
Something for your consideration...
/Mike
using device data was considered, and it will be tested at some point. Unfortunately, I do not have time to implement and test this idea, as I am swamped by paying work.
If you want to try, read up on Device Data, and see how it's being used by DCE devices, and make the appropriate modifications to the MythTV PlugIn device.
-Thom
Thom,
Thanks for the info. Ticket 1329 has been created in Trac for tracking purposes, and referenced this thread.
I'm not a C programmer, so someone more talented in that department with a vested interest will likely get something done before I can figure out the basics.
Thanks for the pointers on DCE and Device Data. I'll read up on that for some plumbing I'm looking into.
/Mike
Thom,
I have downloaded and built MythTV .24 on my 10.04 box, the ceton card is working great. My question is do I just rebuild the LinuxMCE myth code with your patch and install that? Since i am in building this shit I will also try and take a look at adding the device data.
applying the patch to mythTV PlugIn and building it with make so should be sufficient. (You need to make sure that any build dependencies are installed. The quickest way is literally to go into Ubuntu_Helpers_NoHardCode, look in conf-files for your distribution, and installing the packages in the build-packages file (you can back tick it in).
-Thom
Can you repeat that last part in English? ???
I looked at that repository. Are you saying I need to do an apt-get install of all of those libraries?
Thanks,
Kevin
yes.
The back tick, `` means "take the output of whatever command you put in there and put it in line".. so
apt-get -y install `cat build-packages`
-Thom
Thx
OK, I'm getting close. I have built myth .24 and the backend, frontend and setup all work from command prompt. The ceton card is truly awesome. I have downloaded the linuxmce myth plugin, player and backend proxy and built them all. I copied all the .so, sh and .pl files to /usr/pluto/bin. I don't see the mythbackend starting through linuxmce and myth_player device #35 is failing to start. For Myth_Player I just did a mkae so. Do I need to do more? I noticed a bunch of scripts in that directory. Do I need to run those first?
Thanks,
Kevin
MythTV_PlugIn is a plugin, which must be built with make so
MythTV_Player is a player, which must be built with make bin
-Thom
Thanks Thom.
It has been a long time since I worked in C and so much has changed. Does the Myth_Player trigger the backend startup?
Kevin
No. mythBackend always runs, and is started at system startup by upstart.
-Thom
Thanks Thom, much appreciated!
Hey as far as the device data part for the client, would that be anything like getting a user name /password for a device much like is done in the shoutcast plugin?
kevin
Yeah. Device data however has the quirk that it is cached if read from the router, so if you use standard DCE methods of getting to it, you'll get the same answer even if it has changed, until the router reloads.
-Thom
That did it! Everything is working awesome! I had to move the myth executables from /usr/local/bin to usr/bin also. Once I did that everything is working great. Now I am will run the MD setup script and see how thing go with my MD's. That ceton card is the shit!
Thanks for your help Thom.
You're wecome, it's just a shame that the vast # of people who COULD make use of such tuners...can't.
-Thom
Any idea why my master Mythbackend is being shutdown every minute?
No.
-Thom