|
|
|
@ -62,7 +62,7 @@ static const AVOption vidstabtransform_options[]= { |
|
|
|
|
AV_OPT_TYPE_CONST, {.i64 = VSCropBorder }, 0, 0, FLAGS, "crop"}, |
|
|
|
|
{"invert", "1: invert transforms (def: 0)", OFFSETC(invert), |
|
|
|
|
AV_OPT_TYPE_INT, {.i64 = 0}, 0, 1, FLAGS}, |
|
|
|
|
{"relative", "consider transforms as 0: abslute, 1: relative (def)", OFFSETC(relative), |
|
|
|
|
{"relative", "consider transforms as 0: absolute, 1: relative (def)", OFFSETC(relative), |
|
|
|
|
AV_OPT_TYPE_INT, {.i64 = 1}, 0, 1, FLAGS}, |
|
|
|
|
{"zoom", "percentage to zoom >0: zoom in, <0 zoom out (def: 0)", OFFSETC(zoom), |
|
|
|
|
AV_OPT_TYPE_DOUBLE, {.dbl = 0}, 0, 100, FLAGS}, |
|
|
|
@ -80,7 +80,7 @@ static const AVOption vidstabtransform_options[]= { |
|
|
|
|
AV_OPT_TYPE_CONST, {.i64 = VS_BiCubic },0, 0, FLAGS, "interpol"}, |
|
|
|
|
{"tripod", "if 1: virtual tripod mode (equiv. to relative=0:smoothing=0)", OFFSET(tripod), |
|
|
|
|
AV_OPT_TYPE_INT, {.i64 = 0}, 0, 1, FLAGS}, |
|
|
|
|
{NULL}, |
|
|
|
|
{NULL} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
AVFILTER_DEFINE_CLASS(vidstabtransform); |
|
|
|
@ -239,7 +239,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) |
|
|
|
|
} |
|
|
|
|
if (out == in) { // inplace
|
|
|
|
|
vsTransformPrepare(td, &inframe, &inframe); |
|
|
|
|
}else{ // seperate frames
|
|
|
|
|
} else { // separate frames
|
|
|
|
|
VSFrame outframe; |
|
|
|
|
for (plane = 0; plane < vsTransformGetDestFrameInfo(td)->planes; plane++) { |
|
|
|
|
outframe.data[plane] = out->data[plane]; |
|
|
|
@ -289,6 +289,4 @@ AVFilter avfilter_vf_vidstabtransform = { |
|
|
|
|
.inputs = avfilter_vf_vidstabtransform_inputs, |
|
|
|
|
.outputs = avfilter_vf_vidstabtransform_outputs, |
|
|
|
|
.priv_class = &vidstabtransform_class, |
|
|
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|