[mythtv] Is AvFormatDecoder::GetFrame(-1) broken?
Boleslaw Ciesielski
bolek-mythtv at curl.com
Tue Jan 10 02:43:24 UTC 2006
Boleslaw Ciesielski wrote:
> It seems that AvFormatDecoder::GetFrame(-1) is not returning after the
> next frame but only after the entire file is read. This isn't the right
> behavior, is it? This affects for example
> NuppelVideoPlayer::RebuildSeekTable which does not display any progress
> messages because of it.
>
> Assuming that this is wrong, I tried the following patch:
>
> --- libs/libmythtv/avformatdecoder.cpp (revision 8519)
> +++ libs/libmythtv/avformatdecoder.cpp (working copy)
> @@ -2483,6 +2483,7 @@
> }
> if (onlyvideo < 0)
> {
> + gotvideo = 1;
> framesPlayed++;
> ptr += pkt->size;
> len -= pkt->size;
>
> This fixes the problem, but I am not sure if it's right.
Does any one have comments about this? I do think this is a real bug.
AFAICT, it affects two things:
1. "mythcommflag --rebuild" does not show progress (and it does with the
patch above). Ironically, NuppelVideoPlayer::RebuildSeekTable still
works because all it has to do is read the entire file (which the first
call to GetFrame(-1) does).
2. FF beyond the end of the position map seems to be affected but I am
not sure how to provoke it. It seems that it may not work because of the
early return:
if (ateof)
{
// Re-enable rawframe state if it was enabled before FF
getrawframes = oldrawstate;
return false;
}
ateof would be true because GetFrame(-1) read the whole file.
I could create a ticket for this but it's just a one liner and more
importantly I am still not sure if the proposed patch is the right fix.
Should I do it anyway?
Bolek
More information about the mythtv-dev
mailing list