avfilter/vf_pullup: use ptrdiff_t as stride argument for dsp functions

This should avoid issues on x86_64

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
pull/76/merge
Michael Niedermayer 11 years ago
parent 1ace0ca60f
commit 6dffc8f5aa
  1. 8
      libavfilter/vf_pullup.c
  2. 6
      libavfilter/vf_pullup.h
  3. 6
      libavfilter/x86/vf_pullup_init.c

@ -69,7 +69,7 @@ static int query_formats(AVFilterContext *ctx)
#define ABS(a) (((a) ^ ((a) >> 31)) - ((a) >> 31)) #define ABS(a) (((a) ^ ((a) >> 31)) - ((a) >> 31))
static int diff_c(const uint8_t *a, const uint8_t *b, int s) static int diff_c(const uint8_t *a, const uint8_t *b, ptrdiff_t s)
{ {
int i, j, diff = 0; int i, j, diff = 0;
@ -83,7 +83,7 @@ static int diff_c(const uint8_t *a, const uint8_t *b, int s)
return diff; return diff;
} }
static int comb_c(const uint8_t *a, const uint8_t *b, int s) static int comb_c(const uint8_t *a, const uint8_t *b, ptrdiff_t s)
{ {
int i, j, comb = 0; int i, j, comb = 0;
@ -98,7 +98,7 @@ static int comb_c(const uint8_t *a, const uint8_t *b, int s)
return comb; return comb;
} }
static int var_c(const uint8_t *a, const uint8_t *b, int s) static int var_c(const uint8_t *a, const uint8_t *b, ptrdiff_t s)
{ {
int i, j, var = 0; int i, j, var = 0;
@ -531,7 +531,7 @@ static void pullup_release_frame(PullupFrame *f)
static void compute_metric(PullupContext *s, int *dest, static void compute_metric(PullupContext *s, int *dest,
PullupField *fa, int pa, PullupField *fb, int pb, PullupField *fa, int pa, PullupField *fb, int pb,
int (*func)(const uint8_t *, const uint8_t *, int)) int (*func)(const uint8_t *, const uint8_t *, ptrdiff_t))
{ {
int mp = s->metric_plane; int mp = s->metric_plane;
int xstep = 8; int xstep = 8;

@ -61,9 +61,9 @@ typedef struct PullupContext {
PullupBuffer buffers[10]; PullupBuffer buffers[10];
PullupFrame frame; PullupFrame frame;
int (*diff)(const uint8_t *a, const uint8_t *b, int s); int (*diff)(const uint8_t *a, const uint8_t *b, ptrdiff_t s);
int (*comb)(const uint8_t *a, const uint8_t *b, int s); int (*comb)(const uint8_t *a, const uint8_t *b, ptrdiff_t s);
int (*var )(const uint8_t *a, const uint8_t *b, int s); int (*var )(const uint8_t *a, const uint8_t *b, ptrdiff_t s);
} PullupContext; } PullupContext;
void ff_pullup_init_x86(PullupContext *s); void ff_pullup_init_x86(PullupContext *s);

@ -23,9 +23,9 @@
#include "libavutil/x86/cpu.h" #include "libavutil/x86/cpu.h"
#include "libavfilter/vf_pullup.h" #include "libavfilter/vf_pullup.h"
int ff_pullup_filter_diff_mmx(const uint8_t *a, const uint8_t *b, int s); int ff_pullup_filter_diff_mmx(const uint8_t *a, const uint8_t *b, ptrdiff_t s);
int ff_pullup_filter_comb_mmx(const uint8_t *a, const uint8_t *b, int s); int ff_pullup_filter_comb_mmx(const uint8_t *a, const uint8_t *b, ptrdiff_t s);
int ff_pullup_filter_var_mmx (const uint8_t *a, const uint8_t *b, int s); int ff_pullup_filter_var_mmx (const uint8_t *a, const uint8_t *b, ptrdiff_t s);
av_cold void ff_pullup_init_x86(PullupContext *s) av_cold void ff_pullup_init_x86(PullupContext *s)
{ {

Loading…
Cancel
Save