
Originally Posted by
bridgman
That sounds about right - I wouldn't expect the multi-threaded decoder to use less CPU (in fact I would expect it to use a tiny bit more for the same workload) - the big deal is that it doesn't hit a wall at 100% and fail to keep up with the video. It hits a wall at 200% on a dual-core, of course, but most high def videos seem to need "a bit more than one core" - couple that with single thread decoders and that's how software decoding got a bad name.
My point was that Xv is not a decode API and was never intended to be one. Its job is to handle the render/present part of the video pipe, ie everything *after* the decoder. The profiles I have seen for software decode still suggest that motion comp is the biggest single CPU hog after the render/present tasks, although it also seems to be most amenable to clever use of CPU SIMD instructions so it may have been optimized to the point where it is no longer the biggest task. Mo-comp still seems like a pretty good fit for running on GPU shaders, and even IDCT seems to fit better than I first expected.
Yeah, that's one of the things I want to find out as well once we get more Zacates into developer hands (Alex's big wobbly prototype board seems to have given up the ghost recently). You would definitely need a dual-core CPU and a multi-threaded decoder but most of the Zacates out there are dual-core and ffmpeg-mt is tantalizingly close to getting into the ffmpeg mainline.
Yeah, time is always a challenge. There isn't much assembler in the drivers though, and C is one of the simpler languages out there, so it's really just a question of holding your nose and jumping in. There are lots of people who will help you get started.