[mythtv-commits] Re: Ticket #868: [8350] breaks mpeg2 decoding
during frame advance
MythTV
mythtv at cvs.mythtv.org
Sun Dec 25 12:14:05 EST 2005
#868: [8350] breaks mpeg2 decoding during frame advance
--------------------------------+-------------------------------------------
Reporter: bjm <bjm at lvcm.com> | Owner: danielk
Type: defect | Status: assigned
Priority: major | Milestone: 0.19
Component: mythtv | Version: head
Severity: medium | Resolution:
--------------------------------+-------------------------------------------
Changes (by danielk):
* priority: minor => major
Comment:
Ok, so the problem is that we are placing frames that avlib has not yet
released on the available queue. This has always been a problem, but
somehow was less problematic before my changes in [8350]. This is done in
the SeekReset() and in ClearAfterSeek(). ClearAfterSeek() does have a big
fat warning in it about being unsafe. It works when we seek past the next
keyframe or backward because we don't need past frames when we do that,
but if we seek forward within the GOP the only thing making things work
before was that buffers are fetched from VideoBuffers is in FIFO fashion.
When on occasion this didn't work we got glitches even before these latest
changes; By placing the buffers on the available queue in a slightly
different order [8350] has made this occur 90% of the time rather than 10%
of the time.
The solution is to track whether avlib is done with the frame, and not
place it on the available queue until avlib really is done with it. I'll
start working on the fix on Tuesday...
--
Ticket URL: <http://svn.mythtv.org/trac/ticket/868>
MythTV <http://www.mythtv.org/>
MythTV
More information about the mythtv-commits
mailing list