On Fri, 2005-04-01 at 12:53 -0500, Isaac Richards wrote: > Actually, if the release_buffer callback from libavcodec is accurate as to > when it's done with the frame, it could be as simple as just refcounting the > frames (2 to start, -1 when displayed, -1 when marked unused by > release_buffer), and have a function in the frame struct call back into the > videoout class to return it to the queue..
Great, I'll be sure to use the release_buffer callback, it will let me know for sure that all the frames depending on a specific I or P frame have arrived. The reference counting won't work unless we XvMC sync all the all the frames depending on that frame, so we may still need to keep those I and P frames around after DoneDisplayingFrame(), if rendering of the dependant frames isn't done, and then do a sync when a low buffer situation arises. Syncing in DrawSlices() or ReleaseFrame() absolutely kills performance. I'll make sure to not lose any frames. With XvMC it's pretty much essential. -- Daniel
_______________________________________________ mythtv-dev mailing list mythtv-dev@mythtv.org http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev