vf_scale: Detecting changes of incoming frame properties and dinamically evaluate...
authorBela Bodecs <bodecsb@vivanet.hu>
Mon, 18 Jan 2016 17:44:09 +0000 (18:44 +0100)
committerMichael Niedermayer <michael@niedermayer.cc>
Wed, 20 Jan 2016 12:32:00 +0000 (13:32 +0100)
commit868a2ed568414b80d8b083f41293c65b73bf6091
tree221dc8a1b843efb153d823758e66ea613de8999b
parentcc83177db4e08bb11908a8a8387859e2e8fcb162
vf_scale: Detecting changes of incoming frame properties and dinamically evaluate width and height expressions

Currently scale filter accepts expressions in its width and height
parameters but evaluates them only once at init and replaces them with
their actual values. Later on, if any parameter of incoming frames
changes - ie those were used in the original size expressions -  then
they new values will not have any affect for width and heigth values.
They remain the same. This patch makes possible that width and height
expressions be evaluated frame-by-frame basis if width/height/sar/format
properties of incoming frame would change. To retain the current
behaviour and not to break any earlier app, a new config parameter has
been introduced. Its name is "eval" and it has two distinct values:
"init" and "frame". The default value is "init".
This feature is very usefull in case of DVBT mpeg-ts streams where SAR
may change time-by-time from 4/3 to 16/9 and vica-versa and the size
remains the same and you want to create a variable sized output with 1/1
SAR.

Signed-off-by: Bela Bodecs <bodecsb@vivanet.hu>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavfilter/vf_scale.c