Talk:MythTV PVR: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
>Dteirney
No edit summary
>Dteirney
No edit summary
Line 6: Line 6:
# '''Identify what does not exist in any of the myth:// code''' - after 1 is done it should be more obvious what XBMC doesn't already have a solution to based on the existing myth:// functionality. Missing functions may already be available in libcmyth and just need to be exposed. From there we can identify what methods need to be added to libcmyth to get the additional information / actions needed by the PVR interface, or use the MythXML interface if that is easier. If really necessary via MySQL. With the list of missing areas available, people can choose to help implementing parts. This will hopefully be straight forward if the [http://www.mythtv.org/wiki/Myth_Protocol Myth Protocol] already supports the query or action. '''tafypz''' is looking at the Program Guide / Recording Schedule Areas already.
# '''Identify what does not exist in any of the myth:// code''' - after 1 is done it should be more obvious what XBMC doesn't already have a solution to based on the existing myth:// functionality. Missing functions may already be available in libcmyth and just need to be exposed. From there we can identify what methods need to be added to libcmyth to get the additional information / actions needed by the PVR interface, or use the MythXML interface if that is easier. If really necessary via MySQL. With the list of missing areas available, people can choose to help implementing parts. This will hopefully be straight forward if the [http://www.mythtv.org/wiki/Myth_Protocol Myth Protocol] already supports the query or action. '''tafypz''' is looking at the Program Guide / Recording Schedule Areas already.
# '''Start copying across existing myth:// code''' - where possible, start copying the existing MythSession.cpp, MythFile.cpp and MythDirectory.cpp code to the appropriate places in MythTV PVR Addon to get back the list of recordings and provide the functionality that myth:// already supports. If it helps, we can start with using the existing myth:// functionality in XBMC to play the content until it's clearer how libcmyth can be bundled as part of an Addon rather than relying on that being in the XBMC lib area. '''dteirney can spend some time once the classes are stubbed out. Other volunteers very welcome'''
# '''Start copying across existing myth:// code''' - where possible, start copying the existing MythSession.cpp, MythFile.cpp and MythDirectory.cpp code to the appropriate places in MythTV PVR Addon to get back the list of recordings and provide the functionality that myth:// already supports. If it helps, we can start with using the existing myth:// functionality in XBMC to play the content until it's clearer how libcmyth can be bundled as part of an Addon rather than relying on that being in the XBMC lib area. '''dteirney can spend some time once the classes are stubbed out. Other volunteers very welcome'''
# '''Changes to libcmyth to support the Myth 0.24 protocol''' - Myth 0.24 will be released in the near future. There has been a number of changes to the ProgramInfo structure passed back so these need to be reviewed and appropriate changes made in libcmyth. XBMC will also need to pass through the appropriate token each time a connection is made to the backend. Having the MythTV trunk codebase handy will probably make this easier - start from mythtv/programs/mythbackend/mainserver.cpp as that is where the Myth Protocol handling ends up. [http://www.mythtv.org/wiki/Myth_Protocol Myth Protocol] lists all the protocol changes with links to the SVN checkins. The mythtv checkin that altered the ProgramInfo object is freaking gargantuan. '''Volunteer needed, or at least people willing to test patches against a Myth 0.24 backend'''
# '''Changes to libcmyth to support the Myth 0.24 protocol''' - Myth 0.24 will be released in the near future. There has been a number of changes to the ProgramInfo structure passed back so these need to be reviewed and appropriate changes made in libcmyth. XBMC will also need to pass through the appropriate token each time a connection is made to the backend. Having the MythTV trunk codebase handy will probably make this easier - start from mythtv/programs/mythbackend/mainserver.cpp as that is where the Myth Protocol handling ends up. [http://www.mythtv.org/wiki/Myth_Protocol Myth Protocol] lists all the protocol changes with links to the SVN checkins. The mythtv checkin that altered the ProgramInfo object is freaking gargantuan. The checkin that relates to the new token for each protocol version was in http://svn.mythtv.org/trac/changeset/26280. '''Volunteer needed, or at least people willing to test patches against a Myth 0.24 backend'''
# '''Bundle libcmyth in the Addon''' - not sure how this will work. Perhaps find another Add-On that is using a 3rd party C library. So we know how to move libcmyth out of XBMC and into the PVR Addon all proper like. libcmyth functions are current exposed to XBMC via DllLibCMyth. Is there an equivlent DLL type model in Addon land? '''Volunteer needed'''
# '''Bundle libcmyth in the Addon''' - not sure how this will work. Perhaps find another Add-On that is using a 3rd party C library. So we know how to move libcmyth out of XBMC and into the PVR Addon all proper like. libcmyth functions are current exposed to XBMC via DllLibCMyth. Is there an equivlent DLL type model in Addon land? '''Volunteer needed'''
# '''Integrate Addon EDL functionality''' - suggest how the existing EDL commercial break retrieval can be changed so the Edl.cpp class in XBMC queries the MythTV Addon implementation rather than the internal myth:// related classes. Can leave that up to the existing myth:// playback for the moment. '''dteirney'''
# '''Integrate Addon EDL functionality''' - suggest how the existing EDL commercial break retrieval can be changed so the Edl.cpp class in XBMC queries the MythTV Addon implementation rather than the internal myth:// related classes. Can leave that up to the existing myth:// playback for the moment. '''dteirney'''

Revision as of 08:51, 3 October 2010

In a very ad hoc way, below is a series of tasks that need to be done to get the MythTV PVR Addon implemented.

MythTV PVR Addon Tasks

  1. Stub out the MythTV PVR Addon classes copy and paste of the VDR Addon. Remove the VDR specific parts and relabel as MythTV etc. Ensure compiles. If anyone has done some / part of this please create a trac ticket and attach a patch for the pvr branch and then assign it to me. tafypz - can you do this since you are starting to look at parts of this? markhoney - mentioned he could possibly help with this.
  2. Identify what does not exist in any of the myth:// code - after 1 is done it should be more obvious what XBMC doesn't already have a solution to based on the existing myth:// functionality. Missing functions may already be available in libcmyth and just need to be exposed. From there we can identify what methods need to be added to libcmyth to get the additional information / actions needed by the PVR interface, or use the MythXML interface if that is easier. If really necessary via MySQL. With the list of missing areas available, people can choose to help implementing parts. This will hopefully be straight forward if the Myth Protocol already supports the query or action. tafypz is looking at the Program Guide / Recording Schedule Areas already.
  3. Start copying across existing myth:// code - where possible, start copying the existing MythSession.cpp, MythFile.cpp and MythDirectory.cpp code to the appropriate places in MythTV PVR Addon to get back the list of recordings and provide the functionality that myth:// already supports. If it helps, we can start with using the existing myth:// functionality in XBMC to play the content until it's clearer how libcmyth can be bundled as part of an Addon rather than relying on that being in the XBMC lib area. dteirney can spend some time once the classes are stubbed out. Other volunteers very welcome
  4. Changes to libcmyth to support the Myth 0.24 protocol - Myth 0.24 will be released in the near future. There has been a number of changes to the ProgramInfo structure passed back so these need to be reviewed and appropriate changes made in libcmyth. XBMC will also need to pass through the appropriate token each time a connection is made to the backend. Having the MythTV trunk codebase handy will probably make this easier - start from mythtv/programs/mythbackend/mainserver.cpp as that is where the Myth Protocol handling ends up. Myth Protocol lists all the protocol changes with links to the SVN checkins. The mythtv checkin that altered the ProgramInfo object is freaking gargantuan. The checkin that relates to the new token for each protocol version was in http://svn.mythtv.org/trac/changeset/26280. Volunteer needed, or at least people willing to test patches against a Myth 0.24 backend
  5. Bundle libcmyth in the Addon - not sure how this will work. Perhaps find another Add-On that is using a 3rd party C library. So we know how to move libcmyth out of XBMC and into the PVR Addon all proper like. libcmyth functions are current exposed to XBMC via DllLibCMyth. Is there an equivlent DLL type model in Addon land? Volunteer needed
  6. Integrate Addon EDL functionality - suggest how the existing EDL commercial break retrieval can be changed so the Edl.cpp class in XBMC queries the MythTV Addon implementation rather than the internal myth:// related classes. Can leave that up to the existing myth:// playback for the moment. dteirney

MythTV PVR Addon Agnostic Tasks

  • Review the mythtv trunk codebase to see what events get fired to client and compare with what libcmyth currently understands and what XBMC does something with. The list of events that libcmyth deals with is in xbmc/lib/cmyth/libcmyth/event.c. The list of what XBMC does with them is in xbmc/FileSystem/CMythSession.cpp in the Process() method. Missing event handling is probably what is causing some issues with LiveTV playback. Volunteer needed
  • Figure out how to parse out the season and episode number from the program ID. Someone using Schedules Direct can probably do this. Here in NZ our EPG data is a bit sparse. Happy to include code to parse out the season and episode ID if the program ID can be identified as a Schedules Direct one. dteirney - partially done
  • Suggest how the XBMC TV Show Library can show recorded TV Shows from MythTV. This will start with the existing myth:// model and then the PVR extension point might need to be changed to support a similar way of integrating. PhracturedBlue
  • Bug fix so all the tuners are enumerated when looking for LiveTV. Involves checking to see if the GET_FREE_RECORDER_LIST Myth Protocol query has been implemented in libcmyth or not. The folk developing mythroku may have already done. See trac ticket for detail. http://trac.xbmc.org/ticket/4771. Volunteer needed
  • Update libcmyth to log the UNKNOWN events are that are passed from the backend. dteirney - done