Chris Pinkham wrote:
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.
I made this change but did not see any change. Kevin _______________________________________________ mythtv-users mailing list [email protected] http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-users
