Posts: 17
Joined: Jan 2014
Reputation:
0
2014-01-31, 11:37
(This post was last modified: 2014-01-31, 12:10 by joaomfds.)
Hi, first post... I'm using a cheap android tv stick (mk808b with rk3066 cpu) and I noticed that xbmc makes it crash when I pause any movie for more than 20-30 minutes. If I press O I can see that during playback the CPU is at 50-60% on 1080p h264 10mbps playback. But on pause it rises to 100% and draws the screen at whatever maximum it can - 60-70 or even 80fps. This causes the CPU to run at maximum MHZ until it overheats and crashes...
First thing to admit is that the hardware should have temperature control and scale back the CPU to protect it from overheating...
But I was wondering if there's no way to put a limit on XBMC on this?
Example - a settings menu where we could select the fps for the interface to be drawn at 30fps and no more...
Advantages - protect the hardware, lower the energy bill/consumption... Thanks for the excellent work so far... Testing latest nightlies and very happy with it..
Posts: 31,445
Joined: Jan 2011
Have you tried a
nightly build (wiki)? It could be some kind of "leak"ish type thing that has since been fixed.
Posts: 17
Joined: Jan 2014
Reputation:
0
Hi, I kept updating to latest nightlies and indeed the hardware has been behaving better, more stable... Still the frame rate goes up to 50fps when I pause the video or in the system info menu. Is it not possible to add a selectable maximum frame rate for the xbmc interface? 24fps, 30, 50, 60fps... This would have several advantages:
1. Able to sync the interface fps to the monitor refresh rate (50/60hz).
2. Able to lower cpu/gpu demands on slower hardware...
This would be an advantage now for weak hardware running XBMC, specially because with Android 4.4 probably more hardware will come out with weak processors... It would also be an advantage for the future as Screen resolutions are increasing quickly on android hardware, and 4k tvs are coming soon as well to mass market...
Posts: 31,445
Joined: Jan 2011
Since Android itself is typically set at 60hz on most installs, there's not much XBMC can do. However, you can play around with
Dirty regions (wiki), but it doesn't always work so great on Android. Nothing serious, just some graphical glitches in the GUI. It can also depend on the skin being used, or any service add-ons that might be running in the background of XBMC.
Posts: 17
Joined: Jan 2014
Reputation:
0
Yes I'm playing around with "Dirty Regions". My interface fps is usually at 30-36fps and it can stay above 80fps with these settings... But my objective would be to set a limit to the fps. If I pause a 24fps video the fps goes up to 40-50 and CPU stays at 100%... I would like to just set maximum fps at 24fps or 30fps so this wouldn't happen... But I guess it's technically difficult to implement?
Posts: 31,445
Joined: Jan 2011
2014-02-08, 17:08
(This post was last modified: 2014-02-08, 17:08 by Ned Scott.)
From what I am told, yeah, it's a bit of a technical hurdle. I guess it's a leftover from the way things worked in the old xbox days, due to how the GUI was rendered then (as fast as possible). Eventually it will be taken care of as code is improved and replaced, and one of the things driving those improvements is improving performance on Android/ARM devices.
Posts: 11,582
Joined: Feb 2008
Reputation:
84
davilla
Retired-Team-XBMC Developer
Posts: 11,582
Most android tv sticks implement faulty CPU clock settings to make their 'spec' scores look good. But when you run something that does real work for a long period of time, the SoC overheats and you freeze or spurious reboot.
I saw this with the Geniatech HDMI MX stick. The firmware put the max CPU clock at 1GHz but the heat dissipation design could not handle sustained operation at 1GHz without a spurious reboot in about 1-3 mins of operation. So we changed this to run the max CPU clock at 800MHz and then it was fine.