Kodi Community Forum
MythTV PVR client Addon Developers Wanted - Developers Only! - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Development (https://forum.kodi.tv/forumdisplay.php?fid=32)
+--- Forum: Add-ons (https://forum.kodi.tv/forumdisplay.php?fid=26)
+---- Forum: PVR (https://forum.kodi.tv/forumdisplay.php?fid=136)
+---- Thread: MythTV PVR client Addon Developers Wanted - Developers Only! (/showthread.php?tid=82015)

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35


- karatekickz - 2010-10-15

wagnerrp Wrote:What karatekickz is suggesting is that MythTV, and any other PVR backend you may want to use, expose itself as a UPnP RUI (remote user interface). The backend would present a web application, which would be displayed on the client (XBMC) and used to set up recording and live playback. New backends would be supported almost effortlessly, but in exchange, you are limited to whatever the capabilities of the web application exposed by the backend. There is no extensibility for capability beyond the backend. There is no ability to provide a unified interface across multiple backends.

First outleradam, Thanks for the link to the python bindings I wasn't aware the myth guys did so much work in that area.


wagnerpp,

Thank you for your well thought out post.

This is not exactly what I was thinking but certainly is close. In the example with mythtv, it would require the addition of viewing livetv via upnp MediaServer in myth. This has been talked about for years by the myth guys but never seemed to get done. After looking at the myth source, it appears that they wrote their UPNP stack from scratch rather than use all excellent available options. It makes sense to me to perhaps use Coherence and rewrite the UPNP server as a standalone application. After looking at the python bindings it seems like this may not be that difficult to someone with experience.

After the live tv was finished, the ScheduledRecordings schema would need to be implemented. Adding the ability to add recordings and query via UPNP.

Lastly, the XBMC PVR Addon UPNP plugin would communicate by invoking these newly working UPNP fuctions thus "blackboxing" how mythtv itself actually, "Adds a scheduled recording" etc.

If this method caught on, more backend devs would hopefully follow the UPNP spec and therefore work out of the box with XBMC PVR.

Hopefully, I'm being clear. I look forward to your replies.


- tafypz - 2010-10-15

New patch in ticket 10445,
you only need to apply mythxml.4.patch

This patch contains a refactoring of the mythxml interface.

Feature in the patch

EPG
Access and playback of pre-recorded shows
Status data (total/used disk space)


- outleradam - 2010-10-16

Is that proposed web application something like a java based mythweb then?


- dteirney - 2010-10-16

tafypz Wrote:New patch in ticket 10445,
you only need to apply mythxml.4.patch

This patch contains a refactoring of the mythxml interface.

Feature in the patch

EPG
Access and playback of pre-recorded shows
Status data (total/used disk space)

Great work tafypz. I'll look at this in more detail tomorrow morning (New Zealand time) and start putting the patches in.

I might also suggest another refactoring so there doesn't end up being so many classes. Not sure how at the moment, but it might make sense just to have an XYZCommand class that has all the methods on it, e.g. condense the XYZParameters and XYZResponse classes into the XYZCommand class.


- dteirney - 2010-10-16

Some changes from the google code style guide so the code more closely resembles other patterns in XBMC.

  1. Member variables in classes should start with m_
  2. All method names should start with a capital.



- tafypz - 2010-10-17

I think that we have every method that can use mythxml implemented. The rest will have to be done via libcmyth or straight SQL (I would rather use libcmyth).
Let me know what I can do to help on the libcmyth side.


- outleradam - 2010-10-17

I check this thread daily for updates. What is left and would it be bad procedure to use python?

I'm sure the devs at mythtv would recommend using python because it abstracts the mysql calls which WILL change very soon and break just about anything which relies on it.

They have put A LOT of work into the python bindings. It is basically an API.


- dteirney - 2010-10-17

outleradam Wrote:I check this thread daily for updates. What is left and would it be bad procedure to use python?

I'm sure the devs at mythtv would recommend using python because it abstracts the mysql calls which WILL change very soon and break just about anything which relies on it.

They have put A LOT of work into the python bindings. It is basically an API.

It is not possible to build the PVR Addon using Python. It has to be built using C++. Given what tafypz has implemented already using MythXML none of the SQL code in libcmyth is needed so the remaining functionality will be done using the Myth Protocol. And I'm sure the myth devs are fine with that since it's a supported API.


Additional help - analogue - 2010-10-17

I'll throw my hat in the ring since the pvr add-on is starting to see lots of activity now. It has been quite a while since I've done c/c++ but it should be interesting. First things first...need to get setup under Eclipse to edit/compile/test. Anyone using eclipse?


- karatekickz - 2010-10-17

outleradam Wrote:Is that proposed web application something like a java based mythweb then?


A web application was never proposed it was a bit of a misunderstanding. My suggestion was to implement the mythtv PVR addon using UPNP as an intermediary.

Quote:I think that we have every method that can use mythxml implemented. The rest will have to be done via libcmyth or straight SQL (I would rather use libcmyth). Let me know what I can do to help on the libcmyth side.


It appears that the mythtv guys are not at all fans of the libcmyth as per their wiki. Mainly due to how it implements the MythTV protocol.

http://www.mythtv.org/wiki/Category:Myth_Protocol#Third_Party_Code_that_implements_the_Myth_Protocol_..._badly

It seems as if the libcmyth should be avoided if at all possible.

Here is a link to a player that supposedly implements the MythTv protocol properly. http://sudu.dk/mythtvplayer/

Thanks for all the great work.


- wagnerrp - 2010-10-17

karatekickz Wrote:It appears that the mythtv guys are not at all fans of the libcmyth as per their wiki. Mainly due to how it implements the MythTV protocol.

The only complaint we have with libcmyth is its handling of the protocol check. It doesn't limit connection to a single protocol version, or even a range of versions. Rather, it blindly repeats back the version the backend says it is in order to force a connection. This is very dangerous behavior, and so the additional token check in trunk was added to ensure 3rd party libraries have actually been updated to speak what they claim to.

In contrast, the connection classes used by the MythBox plugin are an example of how to do things properly. It has multiple classes for different ranges of protocol versions, in order to properly handle differing ProgramInfo sizes and command arguments.


- tafypz - 2010-10-18

analogue Wrote:I'll throw my hat in the ring since the pvr add-on is starting to see lots of activity now. It has been quite a while since I've done c/c++ but it should be interesting. First things first...need to get setup under Eclipse to edit/compile/test. Anyone using eclipse?

I tried eclipse at first (Helios) but It would crash miserably when launching a debug session. I have been using kdevelop since and it works perfectly.


- outleradam - 2010-10-18

Eclipse is great for simple java, and used for that purpose in the business sector as well. I find that it is lacking in many areas. It is pretty basic. I ditch it for something a bit more graphically oriented when I start working with forms. I cant imagine trying to use it for a project like xbmc. There are a ton of IDEs out there for free.


- waldo22 - 2010-10-18

dteirney Wrote:It is not possible to build the PVR Addon using Python. It has to be built using C++.

Have you been following what jfcarroll has been doing with addons in multiple programming languages here:

http://forum.xbmc.org/showthread.php?tid=80984

Does that change the situation any?

-Wes


- PhracturedBlue - 2010-10-18

I have added support for MythTV 0.24 (well assuming they don't change the protocol in svn between now and then)

The ticket is:
http://trac.xbmc.org/ticket/10535

The 2 big changes were:
57: significant changes to proginfo structure
62: add token system.

FYI, a reasonably correct list of protocol changes can be found here:
http://www.mythtv.org/wiki/Category:Myth_Protocol

I didn't verify all of libcmyth's capabilities to be compliant, but at least the ones used to read from proginfo and to fetch recordings are now working.