#include "avfilter.h"
#include "libavutil/avstring.h"
#include "libavutil/eval.h"
+#include "libavutil/mathematics.h"
#include "libavutil/pixdesc.h"
#include "libavutil/avassert.h"
#include "libswscale/swscale.h"
"out_w", "ow",
"out_h", "oh",
"a",
+ "sar",
+ "dar",
"hsub",
"vsub",
NULL
VAR_OUT_W, VAR_OW,
VAR_OUT_H, VAR_OH,
VAR_A,
+ VAR_SAR,
+ VAR_DAR,
VAR_HSUB,
VAR_VSUB,
VARS_NB
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_SAR] = inlink->sample_aspect_ratio.num ?
+ (float) inlink->sample_aspect_ratio.num / inlink->sample_aspect_ratio.den : 1;
+ var_values[VAR_DAR] = var_values[VAR_A] * var_values[VAR_SAR];
var_values[VAR_HSUB] = 1<<av_pix_fmt_descriptors[inlink->format].log2_chroma_w;
var_values[VAR_VSUB] = 1<<av_pix_fmt_descriptors[inlink->format].log2_chroma_h;
ScaleContext *scale = link->dst->priv;
AVFilterBufferRef *cur_pic = link->cur_buf;
AVFilterBufferRef *out_buf = link->dst->outputs[0]->out_buf;
- const uint8_t *in[4], *out[4];
+ const uint8_t *in[4];
+ uint8_t *out[4];
int in_stride[4],out_stride[4];
int i;