From: Robin K. <kom...@ge...> - 2003-10-21 18:43:24
|
I was benchmarking video_out_pgx64 last night and noticed that while multi-buffering had fewer frame drops than double-buffering for MPEG2 streams, it can reduce performance for other types of media. The culprit was the code in video_out.c that calls the copy function if the decoder does not do it itself (as libmpeg2 does). The unnecessary overhead of copying the frame in 16 line slices rather than doing it in one go caused on average an additional 100 dropped and skipped frames over the course of the 90 second DivX sample I tested. Attached is a patch that fixes this by replacing the copy member with copy_slice and copy_frame. video_out.c will now use copy_frame if it is available or fall back to repeatedly calling copy_slice if not. The video_out plugin API version is increased to 18. Any objections to committing this? Or rather, let me know if you don't have any objections so I know if there's a consensus to commit it ^_^'. -- Wishing you good fortune, --Robin Kay-- (komadori) |