2016-04-09, 23:01
I believe I have run into this problem on both 16.0 and 16.1 RC2. At first I thought it was a file corruption issue because some of my image folders worked and some did not. In an attempt to limit the number of unknowns, I banged out a quick little python script for use in a bash loop to generate an arbitrary number of files. This is a very simple way to reproduce this issue without having to gather up a ton of images from somewhere.
Change height and width to whatever you want, or if you want a random size, use randint with a range.
Generating the actual images is straight forward with a for loop in bash.
example:
Using this method I was able to determine that the issue appears to be related to the number of files rather than the type or size. On my system, I was able to get these images to load without issue with < 10k images, but with 12k images or more, you are guaranteed to crash.
Sadly, the kodi log seems to be all over the place. It's pretty inconsistent in what information it displays. Sometimes it complains about being unable to resize buffers and throws an E_OUTOFMEMORY, other times I see "exception in CApplication::FrameMove()" along with a slew of messages that say my files are the wrong format (which is completely untrue).
For what it's worth, I've uploaded one of my debug logs here: http://xbmclogs.com/pngwzrwgw
System info:
Gigabyte BRIX GB-BXA8-5545
AMD Richland Processor A8-5545M 1.7G/ 2.7GHz
8GB DDR 3 1.3v memory
Freshly installed Windows 8.1 with all the latest windows updates performed (Although the win10 update has been banned)
Hopefully this is helpful. If a fix for this is unlikely to make it into 16.1, I will go ahead and revert back to 15.2 (hopefully the database is backward compatible).
Code:
#!/usr/bin/env python
import cairo
import math
from random import random, randint
import sys
import getopt
def main(argv):
Width, Height = 7680, 4320
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, Width, Height)
ctx = cairo.Context(surface)
solidpattern = ctx.get_source()
pat = cairo.LinearGradient (0.0, 0.0, 0, Height * random())
pat.add_color_stop_rgba (1, 0, 0, 0, 1)
pat.add_color_stop_rgba (0, randint(0,1), randint(0,1),
randint(0,1), randint(0,0))
ctx.rectangle (0,0,Width,Height)
ctx.set_source (pat)
ctx.fill ()
try:
opts, args = getopt.getopt(argv, "o:")
except getopt.GetoptError:
sys.exit(2)
for opt, arg in opts:
if opt == '-o':
filename = str(arg)
surface.write_to_png(filename)
if __name__ == "__main__":
main(sys.argv[1:])
Change height and width to whatever you want, or if you want a random size, use randint with a range.
Generating the actual images is straight forward with a for loop in bash.
example:
Code:
for n in {1..16000}; do sudo python genimage.py -o nanoka/test/testimage_$n.png; done
Using this method I was able to determine that the issue appears to be related to the number of files rather than the type or size. On my system, I was able to get these images to load without issue with < 10k images, but with 12k images or more, you are guaranteed to crash.
Sadly, the kodi log seems to be all over the place. It's pretty inconsistent in what information it displays. Sometimes it complains about being unable to resize buffers and throws an E_OUTOFMEMORY, other times I see "exception in CApplication::FrameMove()" along with a slew of messages that say my files are the wrong format (which is completely untrue).
For what it's worth, I've uploaded one of my debug logs here: http://xbmclogs.com/pngwzrwgw
System info:
Gigabyte BRIX GB-BXA8-5545
AMD Richland Processor A8-5545M 1.7G/ 2.7GHz
8GB DDR 3 1.3v memory
Freshly installed Windows 8.1 with all the latest windows updates performed (Although the win10 update has been banned)
Hopefully this is helpful. If a fix for this is unlikely to make it into 16.1, I will go ahead and revert back to 15.2 (hopefully the database is backward compatible).