PVR API changes (add-on authors: read this!)

  Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Post Reply
Nirvana Offline
Junior Member
Posts: 11
Joined: Feb 2010
Reputation: 0
Post: #41
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.
find quote
dteirney Offline
Team-XBMC Developer
Posts: 820
Joined: Jul 2007
Reputation: 6
Location: New Zealand
Post: #42
(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.

Use MythTV for recording TV? Try the integrated MythTV support in XBMC Media Center. Now with commercial skip support built-in and integration with the Movie database!
find quote
opdenkamp Offline
Team-XBMC PVR Developer
Posts: 1,953
Joined: Feb 2009
Reputation: 25
Location: Heerlen, The Netherlands
Post: #43
Forgot to post about the API changes again, sorry.

callback sigs were changed (v1.3.0):
https://github.com/opdenkamp/xbmc-pvr-ad...fc0e5b0669

the following strings were added to PVR_RECORDING: strIconPath, strThumbnailPath and strFanartPath (v1.4.0):
https://github.com/opdenkamp/xbmc-pvr-ad...2dd2d2aa53

every add-on must implement the (stubs for) methods CanPauseStream, CanSeekStream and PauseStream (v1.5.0):
https://github.com/opdenkamp/xbmc-pvr-ad...24804e347b

following PVR_TIMER_STATE's were added: PVR_TIMER_STATE_CONFLICT_OK, PVR_TIMER_STATE_CONFLICT_NOK, PVR_TIMER_STATE_ERROR (v1.5.0)
https://github.com/opdenkamp/xbmc-pvr-ad...627fb13562

add-ons must return ADDON_STATUS_PERMANENT_FAILURE when a call to RegisterMe() in ADDON_Create() fails (v1.5.0):
https://github.com/opdenkamp/xbmc-pvr-ad...756544d4cc

opdenkamp / dushmaniac

xbmc-pvr [Eden-PVR builds] [now included in mainline XBMC, so no more source link here :)]
personal website: [link]

Found a problem with PVR? Report it on Trac, under "PVR - core components". Please attach the full debug log.

If you like my work, please consider donating to me and/or Team XBMC.
find quote
opdenkamp Offline
Team-XBMC PVR Developer
Posts: 1,953
Joined: Feb 2009
Reputation: 25
Location: Heerlen, The Netherlands
Post: #44
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:
https://github.com/opdenkamp/xbmc-pvr-ad...pvr.h#L255

opdenkamp / dushmaniac

xbmc-pvr [Eden-PVR builds] [now included in mainline XBMC, so no more source link here :)]
personal website: [link]

Found a problem with PVR? Report it on Trac, under "PVR - core components". Please attach the full debug log.

If you like my work, please consider donating to me and/or Team XBMC.
find quote
opdenkamp Offline
Team-XBMC PVR Developer
Posts: 1,953
Joined: Feb 2009
Reputation: 25
Location: Heerlen, The Netherlands
Post: #45
iStreamIndex has been removed from PVR_PROPERTIES

menu hooks got a new field: category, of type PVR_MENUHOOK_CAT
https://github.com/opdenkamp/xbmc-pvr-ad...pes.h#L117

the following methods have been added for pvr add-ons that use the demux code:
bool SeekTime(int,bool,double*)
https://github.com/opdenkamp/xbmc-pvr-ad...dll.h#L534

void SetSpeed(int)
https://github.com/opdenkamp/xbmc-pvr-ad...dll.h#L544

UnknownToUTF8(), GetLocalizedString() and GetDVDMenuLanguage() now return char*, that must be freed by calling a new API method: FreeString()
https://github.com/opdenkamp/xbmc-pvr-ad...don.h#L298

full set of changes: https://github.com/opdenkamp/xbmc-pvr-ad...13456c2e0c

opdenkamp / dushmaniac

xbmc-pvr [Eden-PVR builds] [now included in mainline XBMC, so no more source link here :)]
personal website: [link]

Found a problem with PVR? Report it on Trac, under "PVR - core components". Please attach the full debug log.

If you like my work, please consider donating to me and/or Team XBMC.
find quote
x-cimo Offline
Member
Posts: 98
Joined: Oct 2012
Reputation: 0
Post: #46
Not sure if this is the right place, but I`m working on a plugin that use the XBMC GetInfoBooleans, and the
Pvr.IsPlayingTv is working properly however the Pvr.IsPlayingRecording always return false.

Thanks
find quote
opdenkamp Offline
Team-XBMC PVR Developer
Posts: 1,953
Joined: Feb 2009
Reputation: 25
Location: Heerlen, The Netherlands
Post: #47
no, this is not the right place for questions or bugs

opdenkamp / dushmaniac

xbmc-pvr [Eden-PVR builds] [now included in mainline XBMC, so no more source link here :)]
personal website: [link]

Found a problem with PVR? Report it on Trac, under "PVR - core components". Please attach the full debug log.

If you like my work, please consider donating to me and/or Team XBMC.
find quote
opdenkamp Offline
Team-XBMC PVR Developer
Posts: 1,953
Joined: Feb 2009
Reputation: 25
Location: Heerlen, The Netherlands
Post: #48
minor change: in the add-on xml, a line must be present to check API compatibility, so add-ons can be installed from a repository properly:
PHP Code:
<requires>
  <
import addon="xbmc.pvr" version="1.6.0"/>
</
requires

opdenkamp / dushmaniac

xbmc-pvr [Eden-PVR builds] [now included in mainline XBMC, so no more source link here :)]
personal website: [link]

Found a problem with PVR? Report it on Trac, under "PVR - core components". Please attach the full debug log.

If you like my work, please consider donating to me and/or Team XBMC.
find quote
piotrasd Offline
Junior Member
Posts: 28
Joined: Aug 2009
Reputation: 0
Post: #49
Hi
There is any chance extend functionality ?

actual API i very limited.

now special we this feel when we somethig want create, some changes in skin, widget etc. and in actual API we connot find for this special Call
and we must create some extra service, script etc :/

what i mean:
[Image: _pvr_infobar.jpg]

On this info bar for show TP freq, FEC, pol. we need create extra service wich will be extract this data from channels list becuase API dont delivery this Sad

second Example:
If we have 1 tuner DVB-S2 and watch some channel - tuner is LOCKED to one TP - and we can watch other programs from this same TP (example when recoding is active) but now there is no possibility LIST/show wich channels we can play in this same time .. because also info about TP is not delivery - so now we can only try One by One for cheking wich working :/
If this info API will delivery then easy we can sort channels - or list channels wich actual will be work (when recording is active, or if second client watch something)
find quote
opdenkamp Offline
Team-XBMC PVR Developer
Posts: 1,953
Joined: Feb 2009
Reputation: 25
Location: Heerlen, The Netherlands
Post: #50
please create a topic with your proposition(s) for changes, don't post them here. this topic is about actual changes that have been implemented.

opdenkamp / dushmaniac

xbmc-pvr [Eden-PVR builds] [now included in mainline XBMC, so no more source link here :)]
personal website: [link]

Found a problem with PVR? Report it on Trac, under "PVR - core components". Please attach the full debug log.

If you like my work, please consider donating to me and/or Team XBMC.
find quote
Post Reply