Browse Source

lavfi/vf_decimate: do not compare the first frame to itself.

This is a waste of computing power and will result to 0,
making it always dropped.
Use maximum difference values instead.
tags/n3.0
Nicolas George 10 years ago
parent
commit
962727acb4
1 changed files with 6 additions and 3 deletions
  1. +6
    -3
      libavfilter/vf_decimate.c

+ 6
- 3
libavfilter/vf_decimate.c View File

@@ -167,9 +167,12 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
if (in) {
/* update frame metrics */
prv = dm->fid ? dm->queue[dm->fid - 1].frame : dm->last;
if (!prv)
prv = in;
calc_diffs(dm, &dm->queue[dm->fid], prv, in);
if (!prv) {
dm->queue[dm->fid].maxbdiff = INT64_MAX;
dm->queue[dm->fid].totdiff = INT64_MAX;
} else {
calc_diffs(dm, &dm->queue[dm->fid], prv, in);
}
if (++dm->fid != dm->cycle)
return 0;
av_frame_free(&dm->last);


Loading…
Cancel
Save