2013-12-05, 14:08
Hi,
So I implemented the SignalStatus calls into our PVR addon (pvr.wmc) the last couple of days and what I found was that XBMC is asking for signal status every 1 second (when watching a live channel, and when the "Include Signal Quality" option is set in System->PVR).
Infact there appear to actually be 2 places in code that are calling this in a Loop with only 1000ms sleep at the end of the loop (one in PVRClients.cpp:rocess() and one in PVRGUIInfo.cpp Process()). As far as I can tell, the only place where the resulting m_QualityInfo information is used, is when the "O" diagnostic/OSD is being displayed to show the values on screen. I haven't seen anywhere else where this information is used such as popping up a toast notification to user if signal is low or whatever.
Given that it is only used by the diagnostic OSD, it seems surprising that XBMC would be calling this twice every second, when the OSD isnt even displaying. I have seen some of the other addons actually have implemented throttling where they only send every X'th call, to the backend. We could do something similar of course but I was also thinking, ideally XBMC should only ask for it this frequently when it actually wants to do something with the data.
Is it just a simple oversight on the XBMC side, or am I missing something?
Would a pull request be helpful in getting it fixed? I could make XBMC only ask the PVR plugin for SignalStatus when the diagnostic OSD is actually being displayed (of course in addition to all the existing conditions being met as well)
So I implemented the SignalStatus calls into our PVR addon (pvr.wmc) the last couple of days and what I found was that XBMC is asking for signal status every 1 second (when watching a live channel, and when the "Include Signal Quality" option is set in System->PVR).
Infact there appear to actually be 2 places in code that are calling this in a Loop with only 1000ms sleep at the end of the loop (one in PVRClients.cpp:rocess() and one in PVRGUIInfo.cpp Process()). As far as I can tell, the only place where the resulting m_QualityInfo information is used, is when the "O" diagnostic/OSD is being displayed to show the values on screen. I haven't seen anywhere else where this information is used such as popping up a toast notification to user if signal is low or whatever.
Given that it is only used by the diagnostic OSD, it seems surprising that XBMC would be calling this twice every second, when the OSD isnt even displaying. I have seen some of the other addons actually have implemented throttling where they only send every X'th call, to the backend. We could do something similar of course but I was also thinking, ideally XBMC should only ask for it this frequently when it actually wants to do something with the data.
Is it just a simple oversight on the XBMC side, or am I missing something?
Would a pull request be helpful in getting it fixed? I could make XBMC only ask the PVR plugin for SignalStatus when the diagnostic OSD is actually being displayed (of course in addition to all the existing conditions being met as well)