[mythtv-commits] Re: Ticket #827: XvMC and general FF-REW >3x
problem
MythTV
mythtv at cvs.mythtv.org
Thu Dec 22 09:33:29 EST 2005
#827: XvMC and general FF-REW >3x problem
----------------------------------+-----------------------------------------
Reporter: marco.coli at hi-cad.it | Owner: danielk
Type: defect | Status: closed
Priority: minor | Milestone: 0.19
Component: mythtv | Version: head
Severity: medium | Resolution: fixed
----------------------------------+-----------------------------------------
Changes (by danielk):
* resolution: => fixed
* status: new => closed
Comment:
(In [8350]) Fixes #827. This fixes two major problems with FF/REW > 3x,
and some minor problems.
The two major problems had to do with not throwing away some cached
data after a seek, and leaving frames in limbo.
The first resulted in ffmpeg/libmpeg2 decoding errors; which we generally
recovered from, but left a lot of junk in the debugging output and
slowed down the decoding. This was fixed by decoupling freeing bogus
data and freeing frames (the bogus data was being freed after a regular
seek.) Basically a new param 'discardFrames' has been added to
SeekReset().
The second major problem left a frame in limbo after each seek, this
caused major problems for XvMC and some less serious problems for XVideo
output. This was fixed by adding a new method to VideoBuffers,
DeLimboFrame() which is called when av_release_frame releases a frame,
which is now called after a SeekReset for partially decoded frame.
This frame leaves frames we've already put in 'U'sed alone, but moves
'L'imboed frames to 'A'vailable.
This fix does not fix libmpeg2 leaking frames, only ffmpeg; I don't quite
understand how libmpeg2 is supposed to be freeing frames. The lack of this
call in the proper place may be the reason why preview screen grabs don't
work with libmpeg2. libmpeg2 appears to still basically work with
FF/REW > 3x, but doesn't fully decode the frames and pauses whenever the
limbo frames add up too much, but they eventually get purged.
There were also some minor problems with non-exact seeking sometimes
jumping backward in FF mode, and with frame-by-frame seeking grabbing
frames and actually decoding the video when it didn't have to. These
are also fixed by this commit. And 'Normal' and 'FFREW' GetFrame has
been seperated in the NVP for better readability, and simpler logic.
--
Ticket URL: <http://cvs.mythtv.org/trac/ticket/827>
MythTV <http://www.mythtv.org/>
MythTV
More information about the mythtv-commits
mailing list