[FFmpeg-devel] [PATCH] vf_crop: add support for dar, sar, hsub, and vsub variables

Michael Niedermayer michaelni at gmx.at
Wed Aug 3 09:45:33 CEST 2011


On Tue, Jul 05, 2011 at 06:34:39PM +0200, Stefano Sabatini wrote:
> 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)
> ?

Iam fine wth either but it should be consistent between filters

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Freedom in capitalist society always remains about the same as it was in
ancient Greek republics: Freedom for slave owners. -- Vladimir Lenin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20110803/e6dac241/attachment.asc>


More information about the ffmpeg-devel mailing list