From: Brian C. <B.C...@po...> - 2004-03-31 17:43:16
|
On Wed, Mar 31, 2004 at 05:59:12PM +0200, Michael Roitzsch wrote: > Sounds like a scheduling problem to me. To confirm this, run xine with > > xine --verbose=1 dvd:/ > > Does it print something like: > > video_out: throwing away image with pts 1041675 because it's too old (diff : > 13424). Bingo! ... video_out: throwing away image with pts 542308 because it's too old (diff : 6134). video_out: throwing away image with pts 585494 because it's too old (diff : 8556). video_out: throwing away image with pts 589093 because it's too old (diff : 4957). audio_out: inserting 8028 0-frames to fill a gap of 15057 pts video_out: throwing away image with pts 628682 because it's too old (diff : 7667). video_out: throwing away image with pts 632281 because it's too old (diff : 4068). video_out: throwing away image with pts 671870 because it's too old (diff : 5840). audio_out: inserting 8174 0-frames to fill a gap of 15331 pts video_out: throwing away image with pts 711469 because it's too old (diff : 6823). ... > If so, it is a scheduling problem, the video out thread is not woken up by the > kernel in time. Killing background processes might help. Hmm. The box is pretty unloaded; load avg 0.00 when sitting around. However my window manager is KDE and I have in the past noticed it polling directories a lot (see attached ktrace from one 'kdeinit' process, it does seem to be doing a hell of a lot of lstats every half second) But I've just killed that busy-looking kdeinit process, and a couple of others (the toolbar just vanished!) but the jerkiness is still there. Next: I have reniced the X server and the xine process to -10. Still no good. There was only one 'niced' process (artsd, -36) so I killed that too, and ran xine with '-A none' Perhaps it might help if I describe what I see a bit more clearly. The picture seems to move for about a quarter of a second, freeze for a quarter of a second, jump and start moving again, freeze, move, freeze, etc I've just reniced xine and XFree96 to -20, and now if anything this is even more obvious. It's almost as if xine is playing out frames too fast, then stopping because it has nothing better to do - and then jumping when it realises it's behind time. Is there any way to get xine to write out a timestamped line for each frame it sends to X? Cheers, Brian. |