Well I decided to get my arse in gear and write my own slideshow app to precisely meet my needs. I'm using SDL, and have got the app to the point where it can scan a directory, randomly select an image, scale it to the correct resolution, centre it and display it, then start again.
I'm having a problem where after a while the app quits with either "Segmentation fault" or "Killed". I changed the app to display the images always in the same order and got it to log to the console which files it has displayed. Each time I ran it, it always died on the same file. I then deleted five images which were displayed before the one where it died, and the next time it got five images further on. So it seems to be that after it has displayed a certain number of files it can't carry on.
I'm guessing therefore that this is a memory problem. My main loop basically loads the image to an SDL_Surface, uses SDL_gfx's rotozoomSurface() to scale the image, clears the screen, applies the surface to the screen, flips, then waits a few seconds before looping. Do I need to free the surface before looping?