PVR API changes (add-on authors: read this!) - Printable Version
+- Kodi Community Forum (http://forum.kodi.tv)
+-- Forum: Development (/forumdisplay.php?fid=32)
+--- Forum: Add-ons (/forumdisplay.php?fid=26)
+---- Forum: PVR (/forumdisplay.php?fid=136)
+---- Thread: PVR API changes (add-on authors: read this!) (/showthread.php?tid=97764)
- opdenkamp - 2012-02-08 00:25
if you encounter any (more) bugs in lib/platform, let me know and I'll get it fixed.
RE: PVR API changes (add-on authors: read this!) - opdenkamp - 2012-08-10 09:04
iClientId has been removed from PVR_PROPERTIES. more changes will follow soon.
RE: PVR API changes (add-on authors: read this!) - opdenkamp - 2012-08-13 12:29
removed bSupportsChannelSettings and bSupportsTimeshift from PVR_ADDON_CAPABILITIES
RE: PVR API changes (add-on authors: read this!) - opdenkamp - 2012-08-19 00:40
moved and renamed PVR_HANDLE from xbmc_pvr_types.h to ADDON_HANDLE in xbmc_addon_types.h
RE: PVR API changes (add-on authors: read this!) - opdenkamp - 2012-08-19 11:06
epg related types have been extracted from xbmc_pvr_types.h and been moved to xbmc_epg_types.h
RE: PVR API changes (add-on authors: read this!) - opdenkamp - 2012-08-20 01:10
added XBMC_PVR_API_VERSION to xbmc_pvr_types.h.
Every add-on must implement the method const char* GetPVRAPIVersion(), that returns the value of XBMC_PVR_API_VERSION that was used to compile the add-on
https://github.com/opdenkamp/xbmc/commit/1c5ca99ec4bc76cda08efa63716a934bd03e9839 (there's a typo in the method name in the commit note)
RE: PVR API changes (add-on authors: read this!) - opdenkamp - 2012-08-22 11:46
not directly an interface change, but related: https://github.com/opdenkamp/xbmc/pull/622
i'm going to remove all add-ons from the pvr tree soon.
RE: PVR API changes (add-on authors: read this!) - opdenkamp - 2012-08-23 02:50
PVR_ERROR_NOT_SYNC has been removed
PVR_ERROR_NOT_DELETED and PVR_ERROR_NOT_SAVED have been replaced by PVR_ERROR_FAILED
PVR_ERROR_NOT_POSSIBLE has been replaced by PVR_ERROR_REJECTED
PVR_ERROR_INVALID_PARAMETERS has been added
enum values were changed
all PVR add-ons have now been removed from the tree. you can find an explanation in https://github.com/opdenkamp/xbmc/blob/master/docs/README.pvr
RE: PVR API changes (add-on authors: read this!) - opdenkamp - 2012-09-03 00:21
forgot to post about the latest interface changes here.
each add-on must implement "unsigned int GetChannelSwitchDelay()". Delay to use when using switching channels for add-ons not providing an input stream.
changed some PVR_STREAM_PROPERTIES to int instead of unsigned, to match the field types in XBMC
each add-on must implement "const char* GetMininumPVRAPIVersion(void)" and return the value of XBMC_PVR_MIN_API_VERSION that was used to compile the add-on
PVR API version has been bumped to 1.2.0
RE: PVR API changes (add-on authors: read this!) - opdenkamp - 2012-09-18 13:06
the following PR exposes CFile methods to PVR add-ons: https://github.com/xbmc/xbmc/pull/1432
PVR add-ons cannot use external libs like curl or smbclient (or any other lib, unless it's linked into the add-on). I've updated most of the add-on code to use these new methods: https://github.com/opdenkamp/xbmc-pvr-addons/pull/35. That PR will be merged in after 1432 has been merged.
RE: PVR API changes (add-on authors: read this!) - Nirvana - 2012-10-07 18:36
Shouldn't timeshift be rather a funtionality in xbmc instead of the backend? In my opinion that is a generic challenge which needs to be solved also for Livestreams / other video addons.
RE: PVR API changes (add-on authors: read this!) - dteirney - 2012-10-07 21:25
(2012-10-07 18:36)Nirvana Wrote: Shouldn't timeshift be rather a funtionality in xbmc instead of the backend? In my opinion that is a generic challenge which needs to be solved also for Livestreams / other video addons.
Some PVR backends already support time-shifting, e.g. MythTV, which streams LiveTV to disk on the backend and it is streamed from there.
The generic challenge also comes with generic problems, e.g. how many minutes get buffered before too much memory is consumed and it has to be spooled to disk. How much disk should be used? When should that content be deleted if the stream is closed? Should it be available to watch again? How would the user access that? What if the XBMC installation is on a lightweight front end client that doesn't have access to writable storage to cope with the 6-8Gb per hour that is need for HD Live TV streams.
If a PVR backend already addresses a number of these questions then it seems reasonable to expose that functionality rather than not having time-shifting. For PVR backends that don't support time-shifting perhaps someone will create a generic solution that can be used by those.
RE: PVR API changes (add-on authors: read this!) - opdenkamp - 2012-10-10 02:20
Forgot to post about the API changes again, sorry.
callback sigs were changed (v1.3.0):
the following strings were added to PVR_RECORDING: strIconPath, strThumbnailPath and strFanartPath (v1.4.0):
every add-on must implement the (stubs for) methods CanPauseStream, CanSeekStream and PauseStream (v1.5.0):
following PVR_TIMER_STATE's were added: PVR_TIMER_STATE_CONFLICT_OK, PVR_TIMER_STATE_CONFLICT_NOK, PVR_TIMER_STATE_ERROR (v1.5.0)
add-ons must return ADDON_STATUS_PERMANENT_FAILURE when a call to RegisterMe() in ADDON_Create() fails (v1.5.0):
RE: PVR API changes (add-on authors: read this!) - opdenkamp - 2012-10-12 11:03
as jdembski already noticed, i forgot to mention 1 new callback method:
TriggerEpgUpdate() can be used in the add-on to request XBMC to update the EPG for a channel:
RE: PVR API changes (add-on authors: read this!) - opdenkamp - 2012-11-10 03:45
iStreamIndex has been removed from PVR_PROPERTIES
menu hooks got a new field: category, of type PVR_MENUHOOK_CAT
the following methods have been added for pvr add-ons that use the demux code:
UnknownToUTF8(), GetLocalizedString() and GetDVDMenuLanguage() now return char*, that must be freed by calling a new API method: FreeString()
full set of changes: https://github.com/opdenkamp/xbmc-pvr-addons/commit/4e24ae699004e7bcf4e3beafa2e2bc13456c2e0c