lavfi: split frame_count between input and output.

AVFilterLink.frame_count is supposed to count the number of frames
that were passed on the link, but with min_samples, that number is
not always the same for the source and destination filters.
With the addition of a FIFO on the link, the difference will become
more significant.

Split the variable in two: frame_count_in counts the number of
frames that entered the link, frame_count_out counts the number
of frames that were sent to the destination filter.
This commit is contained in:
Nicolas George
2016-08-30 15:28:41 +02:00
parent 22aa649c13
commit 183ce55b0d
35 changed files with 55 additions and 54 deletions

View File

@@ -393,7 +393,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf)
}
vol->var_values[VAR_PTS] = TS2D(buf->pts);
vol->var_values[VAR_T ] = TS2T(buf->pts, inlink->time_base);
vol->var_values[VAR_N ] = inlink->frame_count;
vol->var_values[VAR_N ] = inlink->frame_count_out;
pos = av_frame_get_pkt_pos(buf);
vol->var_values[VAR_POS] = pos == -1 ? NAN : pos;