diff options
author | Stefano Sabatini <stefano.sabatini-lala@poste.it> | 2011-07-04 13:28:37 +0200 |
---|---|---|
committer | Stefano Sabatini <stefano.sabatini-lala@poste.it> | 2011-07-30 18:30:07 +0200 |
commit | 45f9e053d8bf15ed0417155e57d16d1fdce0446e (patch) | |
tree | 2ce24d3b68de1e07dc3c1f654ac3ce0377870432 | |
parent | 61d55fda2b513caf18e37b27aba680a87840904a (diff) | |
download | ffmpeg-45f9e053d8bf15ed0417155e57d16d1fdce0446e.tar.gz |
vf_crop: add support for a, dar, sar, hsub, and vsub variables
Consistent with the pad and scale filters.
-rw-r--r-- | doc/filters.texi | 13 | ||||
-rw-r--r-- | libavfilter/avfilter.h | 2 | ||||
-rw-r--r-- | libavfilter/vf_crop.c | 15 |
3 files changed, 29 insertions, 1 deletions
diff --git a/doc/filters.texi b/doc/filters.texi index 2e419a8edf..68a82b79e8 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -275,6 +275,19 @@ the output (cropped) width and heigth @item ow, oh same as @var{out_w} and @var{out_h} +@item a +same as @var{iw} / @var{ih} + +@item sar +input sample aspect ratio + +@item dar +input display aspect ratio, it is the same as (@var{iw} / @var{ih}) * @var{sar} + +@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/avfilter.h b/libavfilter/avfilter.h index 6746176c0d..1f26654559 100644 --- a/libavfilter/avfilter.h +++ b/libavfilter/avfilter.h @@ -30,7 +30,7 @@ #define LIBAVFILTER_VERSION_MAJOR 2 #define LIBAVFILTER_VERSION_MINOR 27 -#define LIBAVFILTER_VERSION_MICRO 4 +#define LIBAVFILTER_VERSION_MICRO 5 #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \ LIBAVFILTER_VERSION_MINOR, \ diff --git a/libavfilter/vf_crop.c b/libavfilter/vf_crop.c index b9c60cb65b..fb084041ab 100644 --- a/libavfilter/vf_crop.c +++ b/libavfilter/vf_crop.c @@ -40,6 +40,11 @@ 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 + "a", + "sar", + "dar", + "hsub", + "vsub", "x", "y", "n", ///< number of frame @@ -56,6 +61,11 @@ enum var_name { VAR_IN_H, VAR_IH, VAR_OUT_W, VAR_OW, VAR_OUT_H, VAR_OH, + VAR_A, + VAR_SAR, + VAR_DAR, + VAR_HSUB, + VAR_VSUB, VAR_X, VAR_Y, VAR_N, @@ -162,6 +172,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_A] = (float) link->w / link->h; + crop->var_values[VAR_SAR] = link->sample_aspect_ratio.num ? av_q2d(link->sample_aspect_ratio) : 1; + crop->var_values[VAR_DAR] = crop->var_values[VAR_A] * crop->var_values[VAR_SAR]; + crop->var_values[VAR_HSUB] = 1<<pix_desc->log2_chroma_w; + crop->var_values[VAR_VSUB] = 1<<pix_desc->log2_chroma_h; crop->var_values[VAR_X] = NAN; crop->var_values[VAR_Y] = NAN; crop->var_values[VAR_OUT_W] = crop->var_values[VAR_OW] = NAN; |