From 0bf02fb1ea57962b97fb3ffc7c827d4b12e439f3 Mon Sep 17 00:00:00 2001 From: Stefano Sabatini Date: Sat, 2 Jul 2011 17:31:18 +0200 Subject: [PATCH] vf_pad: add support for a "sar" variable Also add a "dar" alias for "a", for avoiding confusion with sar/dar. --- doc/filters.texi | 5 ++++- libavfilter/avfilter.h | 2 +- libavfilter/vf_pad.c | 10 +++++++--- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/doc/filters.texi b/doc/filters.texi index 6707683982..b3e4681885 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -1129,9 +1129,12 @@ same as @var{out_w} and @var{out_h} x and y offsets as specified by the @var{x} and @var{y} expressions, or NAN if not yet specified -@item a +@item dar, a input display aspect ratio, same as @var{iw} / @var{ih} +@item sar +input sample aspect ratio + @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. diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h index a6869cc53a..704b77d3e4 100644 --- a/libavfilter/avfilter.h +++ b/libavfilter/avfilter.h @@ -30,7 +30,7 @@ #define LIBAVFILTER_VERSION_MAJOR 2 #define LIBAVFILTER_VERSION_MINOR 24 -#define LIBAVFILTER_VERSION_MICRO 2 +#define LIBAVFILTER_VERSION_MICRO 3 #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \ LIBAVFILTER_VERSION_MINOR, \ diff --git a/libavfilter/vf_pad.c b/libavfilter/vf_pad.c index 809e458b9f..879a0b5fe8 100644 --- a/libavfilter/vf_pad.c +++ b/libavfilter/vf_pad.c @@ -45,7 +45,8 @@ static const char *var_names[] = { "out_h", "oh", "x", "y", - "a", + "a", "dar", + "sar", "hsub", "vsub", NULL @@ -61,7 +62,8 @@ enum var_name { VAR_OUT_H, VAR_OH, VAR_X, VAR_Y, - VAR_A, + VAR_A, VAR_DAR, + VAR_SAR, VAR_HSUB, VAR_VSUB, VARS_NB @@ -156,7 +158,9 @@ static int config_input(AVFilterLink *inlink) var_values[VAR_IN_H] = var_values[VAR_IH] = inlink->h; var_values[VAR_OUT_W] = var_values[VAR_OW] = NAN; var_values[VAR_OUT_H] = var_values[VAR_OH] = NAN; - var_values[VAR_A] = (float) inlink->w / inlink->h; + var_values[VAR_DAR] = var_values[VAR_A] = (float) inlink->w / inlink->h; + var_values[VAR_SAR] = inlink->sample_aspect_ratio.num ? + (float) inlink->sample_aspect_ratio.num / inlink->sample_aspect_ratio.den : 1; var_values[VAR_HSUB] = 1<hsub; var_values[VAR_VSUB] = 2<vsub;