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

Reply via email to