• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/iserver/libav-0.8.8/libavfilter/

Lines Matching defs:crop

23  * video crop filter
115 CropContext *crop = ctx->priv;
117 av_strlcpy(crop->ow_expr, "iw", sizeof(crop->ow_expr));
118 av_strlcpy(crop->oh_expr, "ih", sizeof(crop->oh_expr));
119 av_strlcpy(crop->x_expr, "(in_w-out_w)/2", sizeof(crop->x_expr));
120 av_strlcpy(crop->y_expr, "(in_h-out_h)/2", sizeof(crop->y_expr));
123 sscanf(args, "%255[^:]:%255[^:]:%255[^:]:%255[^:]", crop->ow_expr, crop->oh_expr, crop->x_expr, crop->y_expr);
130 CropContext *crop = ctx->priv;
132 av_expr_free(crop->x_pexpr); crop->x_pexpr = NULL;
133 av_expr_free(crop->y_pexpr); crop->y_pexpr = NULL;
154 CropContext *crop = ctx->priv;
160 crop->var_values[VAR_E] = M_E;
161 crop->var_values[VAR_PHI] = M_PHI;
162 crop->var_values[VAR_PI] = M_PI;
163 crop->var_values[VAR_IN_W] = crop->var_values[VAR_IW] = ctx->inputs[0]->w;
164 crop->var_values[VAR_IN_H] = crop->var_values[VAR_IH] = ctx->inputs[0]->h;
165 crop->var_values[VAR_X] = NAN;
166 crop->var_values[VAR_Y] = NAN;
167 crop->var_values[VAR_OUT_W] = crop->var_values[VAR_OW] = NAN;
168 crop->var_values[VAR_OUT_H] = crop->var_values[VAR_OH] = NAN;
169 crop->var_values[VAR_N] = 0;
170 crop->var_values[VAR_T] = NAN;
171 crop->var_values[VAR_POS] = NAN;
173 av_image_fill_max_pixsteps(crop->max_step, NULL, pix_desc);
174 crop->hsub = av_pix_fmt_descriptors[link->format].log2_chroma_w;
175 crop->vsub = av_pix_fmt_descriptors[link->format].log2_chroma_h;
177 if ((ret = av_expr_parse_and_eval(&res, (expr = crop->ow_expr),
178 var_names, crop->var_values,
180 crop->var_values[VAR_OUT_W] = crop->var_values[VAR_OW] = res;
181 if ((ret = av_expr_parse_and_eval(&res, (expr = crop->oh_expr),
182 var_names, crop->var_values,
184 crop->var_values[VAR_OUT_H] = crop->var_values[VAR_OH] = res;
186 if ((ret = av_expr_parse_and_eval(&res, (expr = crop->ow_expr),
187 var_names, crop->var_values,
189 crop->var_values[VAR_OUT_W] = crop->var_values[VAR_OW] = res;
190 if (normalize_double(&crop->w, crop->var_values[VAR_OUT_W]) < 0 ||
191 normalize_double(&crop->h, crop->var_values[VAR_OUT_H]) < 0) {
195 crop->ow_expr, crop->oh_expr);
198 crop->w &= ~((1 << crop->hsub) - 1);
199 crop->h &= ~((1 << crop->vsub) - 1);
201 if ((ret = av_expr_parse(&crop->x_pexpr, crop->x_expr, var_names,
203 (ret = av_expr_parse(&crop->y_pexpr, crop->y_expr, var_names,
208 link->w, link->h, crop->w, crop->h);
210 if (crop->w <= 0 || crop->h <= 0 ||
211 crop->w > link->w || crop->h > link->h) {
214 crop->w, crop->h);
219 crop->x = (link->w - crop->w) / 2;
220 crop->y = (link->h - crop->h) / 2;
221 crop->x &= ~((1 << crop->hsub) - 1);
222 crop->y &= ~((1 << crop->vsub) - 1);
232 CropContext *crop = link->src->priv;
234 link->w = crop->w;
235 link->h = crop->h;
243 CropContext *crop = ctx->priv;
248 ref2->video->w = crop->w;
249 ref2->video->h = crop->h;
251 crop->var_values[VAR_T] = picref->pts == AV_NOPTS_VALUE ?
253 crop->var_values[VAR_POS] = picref->pos == -1 ? NAN : picref->pos;
254 crop->var_values[VAR_X] = av_expr_eval(crop->x_pexpr, crop->var_values, NULL);
255 crop->var_values[VAR_Y] = av_expr_eval(crop->y_pexpr, crop->var_values, NULL);
256 crop->var_values[VAR_X] = av_expr_eval(crop->x_pexpr, crop->var_values, NULL);
258 normalize_double(&crop->x, crop->var_values[VAR_X]);
259 normalize_double(&crop->y, crop->var_values[VAR_Y]);
261 if (crop->x < 0) crop->x = 0;
262 if (crop->y < 0) crop->y = 0;
263 if ((unsigned)crop->x + (unsigned)crop->w > link->w) crop->x = link->w - crop->w;
264 if ((unsigned)crop->y + (unsigned)crop->h > link->h) crop->y = link->h - crop->h;
265 crop->x &= ~((1 << crop->hsub) - 1);
266 crop->y &= ~((1 << crop->vsub) - 1);
269 (int)crop->var_values[VAR_N], crop->var_values[VAR_T], crop->x,
270 crop->y, crop->x+crop->w, crop->y+crop->h);
272 ref2->data[0] += crop->y * ref2->linesize[0];
273 ref2->data[0] += crop->x * crop->max_step[0];
278 ref2->data[i] += (crop->y >> crop->vsub) * ref2->linesize[i];
279 ref2->data[i] += (crop->x * crop->max_step[i]) >> crop->hsub;
286 ref2->data[3] += crop->y * ref2->linesize[3];
287 ref2->data[3] += crop->x * crop->max_step[3];
296 CropContext *crop = ctx->priv;
298 if (y >= crop->y + crop->h || y + h <= crop->y)
301 if (y < crop->y) {
302 h -= crop->y - y;
303 y = crop->y;
305 if (y + h > crop->y + crop->h)
306 h = crop->y + crop->h - y;
308 avfilter_draw_slice(ctx->outputs[0], y - crop->y, h, slice_dir);
313 CropContext *crop = link->dst->priv;
315 crop->var_values[VAR_N] += 1.0;
321 .name = "crop",