FFmpeg
scale_eval.h
Go to the documentation of this file.
1 /*
2  * This file is part of FFmpeg.
3  *
4  * FFmpeg is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * FFmpeg is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with FFmpeg; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17  */
18 
19 #ifndef AVFILTER_SCALE_EVAL_H
20 #define AVFILTER_SCALE_EVAL_H
21 
22 #include "avfilter.h"
23 
24 /**
25  * Parse and evaluate string expressions for width and height. Upon success,
26  * ff_scale_adjust_dimensions must be called with evaluated width and height
27  * to obtain actual target dimensions.
28  *
29  * Returns 0 upon success, negative value if one of the expressions could
30  * not be parsed or if NaN was the result of their evaluation.
31  */
33  const char *w_expr, const char *h_expr,
34  AVFilterLink *inlink, AVFilterLink *outlink,
35  int *ret_w, int *ret_h);
36 
37 /**
38  * Transform evaluated width and height obtained from ff_scale_eval_dimensions
39  * into actual target width and height for scaling. Adjustment can occur if one
40  * or both of the evaluated values are of the form '-n' or if
41  * force_original_aspect_ratio is set. force_divisible_by is used only when
42  * force_original_aspect_ratio is set and must be at least 1.
43  *
44  * Returns negative error code on error or non negative on success
45  */
47  int *ret_w, int *ret_h,
48  int force_original_aspect_ratio, int force_divisible_by);
49 #endif
ff_scale_eval_dimensions
int ff_scale_eval_dimensions(void *ctx, const char *w_expr, const char *h_expr, AVFilterLink *inlink, AVFilterLink *outlink, int *ret_w, int *ret_h)
Parse and evaluate string expressions for width and height.
Definition: scale_eval.c:57
inlink
The exact code depends on how similar the blocks are and how related they are to the and needs to apply these operations to the correct inlink or outlink if there are several Macros are available to factor that when no extra processing is inlink
Definition: filter_design.txt:212
ctx
AVFormatContext * ctx
Definition: movenc.c:48
avfilter.h
ff_scale_adjust_dimensions
int ff_scale_adjust_dimensions(AVFilterLink *inlink, int *ret_w, int *ret_h, int force_original_aspect_ratio, int force_divisible_by)
Transform evaluated width and height obtained from ff_scale_eval_dimensions into actual target width ...
Definition: scale_eval.c:113