[mythtv] [PATCH] Realtime scheduling of video output thread
John Patrick Poet
john at BlueSkyTours.com
Wed Sep 1 21:53:35 EDT 2004
Doug Larrick wrote:
> The attached patch implements POSIX realtime scheduling of the video
> output thread. This scheduling should allow smoother video output
> under higher loads / less heavyweight systems than is possible with
> the current (default) scheduling.
> The patch implements a mechanism whereby mythfrontend (and also the
> 'mythtv' program), if installed SUID root, first spawn a priveleged
> thread and then drop priveleges to continue on as normal. This
> priveleged thread then hangs around to service requests to alter the
> scheduling priority of other threads when requested; it is the only
> part of MythTV that runs with elevated priveleges.
> When NuppelVideoPlayer starts up the video output thread, it then
> requests realtime scheduling for it via this new mechanism. If not
> installed SUID root, this operation will fail (with a message) and
> operation will proceed as it always has.
> The mechanism is flexible enough to allow performing other priveleged
> operations in future if required. For example, IIRC there's a video
> decoder card (via?) that requires running as root. Instead, this
> priveleged thread could kick off the decoder thread only as root,
> leaving the rest of MythTV running as a normal user.
I have tried this. Sure does not hurt. I can't really tell if it helps.
I actually have a 3.2GHz HT P4 now, so the impact is probably small for me.
However, the work that you and Bruce have done lately has made a huge
difference. HD video plays nice and smooth -- even troublesome close-up
pans. Thank you both!
Lately I have noticed a non-reproducable hick-up every 5 to 10 minutes.
It is just a quick micro-pause, and then it continues on fine. If I
rewind and play that part of the video again, it does not happen. My
impression is that the frontend is starved for data. I need to check
the log file to see if there are any clues there.
More information about the mythtv-dev