[FFmpeg-devel] [PATCH]lavf/decimate: Fix total difference for the first frame
Carl Eugen Hoyos
cehoyos at ag.or.at
Tue Jan 5 11:15:48 CET 2016
Carl Eugen Hoyos <cehoyos <at> ag.or.at> writes:
> Clément Bœsch <u <at> pkh.me> writes:
>
> > + if (cyclestart == 0) {
> > + vdm->vmi[0].maxbdiff = vdm->vmi[1].maxbdiff;
> > + vdm->vmi[0].totdiff = vdm->scthresh + 1;
> > + }
> > +
>
> > I suggest to "cherry-pick" this if it works.
>
> Nicolas has already found a very similar solution
> that only differs in rare cases (although the change
> should be ported) and not for the file in question.
This should not be ported because Nicolas' approach
is better:
The difference of above approach is that if the first
five frames contain a scene change, the first frame
after the scene change would be dropped if no
duplicate was found. This is a rare case and it is
not obvious why it's better to drop the first frame
after the scene change instead of the very first
frame (as currently with Nicolas' patch).
But the important and imo more typical case is when
the first frame of the original telecined video was
an interlaced frame that could not be matched by
fieldmatch (because the missing field is not
available): In this case, the first frame should be
dropped if no duplicate was found (there will be no
duplicate for the first five frames if the input
stream was a clean telecined stream starting with an
interlaced frame) and this is what currently happens
in FFmpeg.
This does not explain the issue in ticket #4990:
I will not test with Avisynth / whatever, if nobody
can test, the ticket will stay open.
The OP there claims that the original filter drops
the correct frame, this does not happen with FFmpeg
and the default options which are - afaict -
identical for the original filter.
Carl Eugen
More information about the ffmpeg-devel
mailing list