- sws_scale(s->sws, (const uint8_t *const *)&input, in->linesize, 0, h, out->data, out->linesize);
+static int filter_frame(AVFilterLink *inlink, AVFrame *in)
+{
+ AVFilterContext *ctx = inlink->dst;
+ AVFilterLink *outlink = ctx->outputs[0];
+ ZPContext *s = ctx->priv;
+ double nb_frames;
+ int ret;
+
+ av_assert0(s->in == NULL);
+
+ s->finished = 0;
+ s->var_values[VAR_IN_W] = s->var_values[VAR_IW] = in->width;
+ s->var_values[VAR_IN_H] = s->var_values[VAR_IH] = in->height;
+ s->var_values[VAR_OUT_W] = s->var_values[VAR_OW] = s->w;
+ s->var_values[VAR_OUT_H] = s->var_values[VAR_OH] = s->h;
+ s->var_values[VAR_IN] = inlink->frame_count + 1;
+ s->var_values[VAR_ON] = outlink->frame_count + 1;
+ s->var_values[VAR_PX] = s->x;
+ s->var_values[VAR_PY] = s->y;
+ s->var_values[VAR_X] = 0;
+ s->var_values[VAR_Y] = 0;
+ s->var_values[VAR_PZOOM] = s->prev_zoom;
+ s->var_values[VAR_ZOOM] = 1;
+ s->var_values[VAR_PDURATION] = s->prev_nb_frames;
+ s->var_values[VAR_A] = (double) in->width / in->height;
+ s->var_values[VAR_SAR] = inlink->sample_aspect_ratio.num ?
+ (double) inlink->sample_aspect_ratio.num / inlink->sample_aspect_ratio.den : 1;
+ s->var_values[VAR_DAR] = s->var_values[VAR_A] * s->var_values[VAR_SAR];
+ s->var_values[VAR_HSUB] = 1 << s->desc->log2_chroma_w;
+ s->var_values[VAR_VSUB] = 1 << s->desc->log2_chroma_h;