On Friday 01 April 2005 12:21 pm, Isaac Richards wrote: > On Thursday 31 March 2005 05:21 pm, Daniel Kristjansson wrote: > > What happens is that MPEG has a series of frames, say: IBBBPBBBI > > The I frames don't depend on any other frames, but the B frames depend > > on an I and a P, and the P frame depends on the previous I. But once > > MythTV displays a frame, it puts it on the list of frames ready to be > > recycled. With Lo-Fi TV this is works most of the time; this is only > > because by the time a frame is displayed all the frames depending > > on it have usually already been rendered. > > Yeah, also made worse due to the limited # of buffers with xvmc. Could > possible look into tying it into the release_buffer mechanism better, as a > way of hopefully knowing when it's completely done with a frame. Or, your > approach below could work too.
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.. Isaac _______________________________________________ mythtv-dev mailing list mythtv-dev@mythtv.org http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev