[mythtv-users] Commercial skips about 5-15 seconds early

Chris Pinkham cpinkham at bc2va.org
Fri Oct 14 18:12:52 EDT 2005


> Chris, this problem has existed for a long time with software encoding
> but I hadn't ever wanted to bother you with it. If a file is damaged
> by a pegged CPU, temporary loss of signal or any other reason that
> might cause a significant number of dropped frames, the commercial
> markers will be off by the same amount for the remainder of the show.
> I assume that this is because the frame numbers are sequential and
> don't count the dropped frames while something else is assuming the
> frame number should be time * framerate.

mythcommflag is using the frame number from the video frame itself
in this:

        VideoFrame* currentFrame = nvp->GetRawVideoFrame();
        currentFrameNumber = currentFrame->frameNumber;

I think I used to use my own frame counter that just did currentFrameNumber++
a long time ago but it also was off in some cases of corrupt files I believe.
NVP updates its frame counter from the decoder's framesPlayed.  I think the
issue may be with different ways that framesPlayed is handled in the decoders
or a difference when you just play frame-by-frame vs. when you use
DoFastForward/DoRewind which reset framesPlayed based on the seek.

Kevin, If you are using software encoding, can you try a couple changes
in ClassicCommDetector.cpp?  Change the declaration of currentFrameNumber
to inialize it to 0.  Then change the above
"currentFrameNumber = currentFrame->frameNumber;" to just currentFrameNumber++;
Then rerun mythcommflag for one of these recordings and see if that helps or
fixes things for these software-encoded recordings.

-- 
Chris



More information about the mythtv-users mailing list