[FFmpeg-devel] [PATCH] vf_crop: add support for dar, sar, hsub, and vsub variables
Stefano Sabatini
stefano.sabatini-lala at poste.it
Tue Jul 5 18:34:39 CEST 2011
On date Monday 2011-07-04 13:30:31 +0200, Stefano Sabatini encoded:
> This is consistent with the pad/scale filters.
> ---
> doc/filters.texi | 10 ++++++++++
> libavfilter/vf_crop.c | 13 +++++++++++++
> 2 files changed, 23 insertions(+), 0 deletions(-)
>
> diff --git a/doc/filters.texi b/doc/filters.texi
> index 9fde89c..7a7cd3b 100644
> --- a/doc/filters.texi
> +++ b/doc/filters.texi
> @@ -215,6 +215,16 @@ the output (cropped) width and heigth
> @item ow, oh
> same as @var{out_w} and @var{out_h}
>
> + at item dar, a
> +input display aspect ratio, same as @var{iw} / @var{ih}
> +
> + at item sar
> +input sample aspect ratio
> +
> + at item hsub, vsub
> +horizontal and vertical chroma subsample values. For example for the
> +pixel format "yuv422p" @var{hsub} is 2 and @var{vsub} is 1.
> +
> @item n
> the number of input frame, starting from 0
>
> diff --git a/libavfilter/vf_crop.c b/libavfilter/vf_crop.c
> index b9c60cb..baab7dc 100644
> --- a/libavfilter/vf_crop.c
> +++ b/libavfilter/vf_crop.c
> @@ -40,6 +40,10 @@ static const char *var_names[] = {
> "in_h", "ih", ///< height of the input video
> "out_w", "ow", ///< width of the cropped video
> "out_h", "oh", ///< height of the cropped video
> + "dar", "a",
> + "sar",
> + "hsub",
> + "vsub",
> "x",
> "y",
> "n", ///< number of frame
> @@ -56,6 +60,10 @@ enum var_name {
> VAR_IN_H, VAR_IH,
> VAR_OUT_W, VAR_OW,
> VAR_OUT_H, VAR_OH,
> + VAR_DAR, VAR_A,
> + VAR_SAR,
> + VAR_HSUB,
> + VAR_VSUB,
> VAR_X,
> VAR_Y,
> VAR_N,
> @@ -162,6 +170,11 @@ static int config_input(AVFilterLink *link)
> crop->var_values[VAR_PI] = M_PI;
> crop->var_values[VAR_IN_W] = crop->var_values[VAR_IW] = ctx->inputs[0]->w;
> crop->var_values[VAR_IN_H] = crop->var_values[VAR_IH] = ctx->inputs[0]->h;
> + crop->var_values[VAR_DAR] = crop->var_values[VAR_A] = (float) link->w / link->h;
And I realized this is not right, DAR is SAR * W/H.
So what do you think it is better:
1) change the meaning of the "a" var in scale/pad to match the
implementation (a = inw/inh)
2) or change its meaning to match the documentation (a = dar)
?
--
FFmpeg = Fast Fostering Mysterious Peaceless Educated Gadget
More information about the ffmpeg-devel
mailing list