Today when I saw the stuttering/low frame rate issue instead of doing a quick reload I decided to take another look at the system. What I found was the Xine_Player process was using ~37% of the cpu and had used 184+ CPU minutes. I killed that process (ssh in from another computer) and as expected the currently playing movie stopped and it took me back to the main menu. I restarted the same movie and this time it played fine and Xine_Player cpu use is bouncing between 1% and 6%.
I'm not sure if Xine_Player is supposed to exit after each movie and isn't, or of there is some other issue but the problem is definitely with Xine_Player. I'm not really sure where to go from here. Xine_Player is a binary not a wrapper script so it's not something I can look into, and I'm not sure if the intended use is to exit after each movie or stay running. I'm also beginning to wonder if it's related to how I/we exit movies and go back to the main menu.
My goodness, skeptic, you're right, I hadn't noticed it before - just noticed the stuttering starting to come back, so a fired up top and noted that xine_player's CPU was pretty stablised at around 41% and mem at 4.4%.
I reloaded the router, and this immediately dropped to about 15% and 2.1%, again pretty stable... and the stuttering is gone. I'm still unable to determine whether it is pure elapsed system/process uptime or if it is related to the amount of time that xine_player is actually doing work... This happened about 27 hours after rebooting.
Continuing trying to see if I can stimulate the behaviour in any way. I have tried: play/pause, fast-forward/rewind from remote buttons, ff/rw absolute and relative slider, track forward/backward and stopping the video file part way through and starting again extensively without making any lasting difference to either xine_player's CPU or memory.
Going to try some other stuff (like different files in case it is related to the codec) and will post back...