News:

Rule #1 - Be Patient - Rule #2 - Don't ask when, if you don't contribute - Rule #3 - You have coding skills - LinuxMCE's small brother is available: http://www.agocontrol.com

Main Menu

MythTV version

Started by kyfalcon, November 08, 2011, 12:44:28 AM

Previous topic - Next topic

kyfalcon

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 :)

merkur2k

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.

kyfalcon

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

merkur2k

mostly its just the network control protocol. if youre lucky, nothing changed and all you have to do is make the version check match.

kyfalcon

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

tschak909

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();

mkbrown69

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

tschak909

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

mkbrown69

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

kyfalcon

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.

tschak909

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

kyfalcon

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

tschak909

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

kyfalcon


kyfalcon

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