[mythtv] mythcommflag: GetNextFreeFrame() unable to lock frame 100 times. Discarding Frames.

Daniel Kristjansson danielk at cuymedia.net
Thu Oct 13 15:58:55 UTC 2005


On Wed, 2005-10-12 at 22:41 -0600, John P Poet wrote:
> On 10/11/05, John P Poet <jppoet at gmail.com> wrote:
> Okay, the idea that these messages where coming from a recording which
> had been deleted out from under mythcommflag was wrong.  I do
> occasionally get these when it is working on perfectly valid
> recordings.
> 
> They don't seem to cause any problems, but I am willing to try and
> help track down the cause, with some direction...

So what I did in ClassicCommDetector.cpp was search for each
of these three strings: "GetFrame(", "GetRawVideoFrame(", and
"GetNextVideoFrame("

I only found the "GetRawVideoFrame(" version..

Anyway for each VideoFrame pointer returned by this call I added
a nvr->DiscardVideoFrame(videoframe).

But my guess this is now happening because something in
NuppelVideoPlayer or AvFormatDecoder is calling one of those
three functions above, and expecting the caller to call
something like NVP::GetCurrentFrame() and calling
either NVP::ReleaseVideoFrame() on the returned video frame.
Or calling VideoOutput::DoneDisplayingFrame() if internal to
NVP, though this call is probably not a good idea, since it
isn't as clear what is going on.

Basically, you just have to consider the Get[]Frame as a malloc,
and DiscardVideoFrame as a free. And you have a total of somewhere
between 6 and 32 frames. (6 w/nVidia XvMC, 14 w/via XvMC, 32 with
software decoding.)

-- Daniel



More information about the mythtv-dev mailing list