+if (in[i]->linesize[0] != out->linesize[0]) {
+AVFrame *aligned = ff_default_get_video_buffer2(outlink, outlink->w,
outlink->h, 1);
+ret = av_frame_copy(aligned, in[i]);
+copies |= 1 << i;
+in[i] = aligned;
+goto end;
+}
The filter test exercises the timeline editing and uses a filter
which depends on the time parameter.
Signed-off-by: Stefan Breunig
---
tests/fate/filter-video.mak | 9 +
tests/ref/fate/filter-frei0r-filter | 10 ++
tests/ref/fate/filter-frei0r-source | 10 ++
3
Using dynamic inputs to support the additional plugins seemed
preferable over seperate filters. For backwards compatibility, all
frame properties are copied from the first input, adjusting only
the necessary ones for multiple inputs.
Signed-off-by: Stefan Breunig
---
doc/filters.texi
av_frame_copy doesn't copy the input's PTS property, which resulted
in the frei0r filter always receiving the same (non-sensical) time.
For example, this results in a static distortion, when it should be
changing over time:
ffmpeg -filter_complex "testsrc2=s=342x142:d=5,frei0r=distort0r" out.mp4
The frei0r API expects the time in seconds, but was given it in
milliseconds. The bug might exist since 41f1d3a (~14 years ago),
but plugins depending on the time are unwatchable without this
patch. For example:
ffmpeg -filter_complex "testsrc2=d=5,frei0r=distort0r" out.mp4
Signed-off-by: Stefan