Commit fd9a5285 authored by Michael Niedermayer's avatar Michael Niedermayer

avfilter/vf_blend: Fix argument types, fix segfault in asm

Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
parent d8982000
...@@ -63,7 +63,7 @@ typedef struct FilterParams { ...@@ -63,7 +63,7 @@ typedef struct FilterParams {
void (*blend)(const uint8_t *top, ptrdiff_t top_linesize, void (*blend)(const uint8_t *top, ptrdiff_t top_linesize,
const uint8_t *bottom, ptrdiff_t bottom_linesize, const uint8_t *bottom, ptrdiff_t bottom_linesize,
uint8_t *dst, ptrdiff_t dst_linesize, uint8_t *dst, ptrdiff_t dst_linesize,
int width, int start, int end, ptrdiff_t width, ptrdiff_t start, ptrdiff_t end,
struct FilterParams *param, double *values); struct FilterParams *param, double *values);
} FilterParams; } FilterParams;
......
...@@ -120,7 +120,7 @@ AVFILTER_DEFINE_CLASS(blend); ...@@ -120,7 +120,7 @@ AVFILTER_DEFINE_CLASS(blend);
static void blend_normal(const uint8_t *top, ptrdiff_t top_linesize, static void blend_normal(const uint8_t *top, ptrdiff_t top_linesize,
const uint8_t *bottom, ptrdiff_t bottom_linesize, const uint8_t *bottom, ptrdiff_t bottom_linesize,
uint8_t *dst, ptrdiff_t dst_linesize, uint8_t *dst, ptrdiff_t dst_linesize,
int width, int start, int end, ptrdiff_t width, ptrdiff_t start, ptrdiff_t end,
FilterParams *param, double *values) FilterParams *param, double *values)
{ {
av_image_copy_plane(dst, dst_linesize, top, top_linesize, width, end - start); av_image_copy_plane(dst, dst_linesize, top, top_linesize, width, end - start);
...@@ -130,7 +130,7 @@ static void blend_normal(const uint8_t *top, ptrdiff_t top_linesize, ...@@ -130,7 +130,7 @@ static void blend_normal(const uint8_t *top, ptrdiff_t top_linesize,
static void blend_## name##_8bit(const uint8_t *top, ptrdiff_t top_linesize, \ static void blend_## name##_8bit(const uint8_t *top, ptrdiff_t top_linesize, \
const uint8_t *bottom, ptrdiff_t bottom_linesize, \ const uint8_t *bottom, ptrdiff_t bottom_linesize, \
uint8_t *dst, ptrdiff_t dst_linesize, \ uint8_t *dst, ptrdiff_t dst_linesize, \
int width, int start, int end, \ ptrdiff_t width, ptrdiff_t start, ptrdiff_t end, \
FilterParams *param, double *values) \ FilterParams *param, double *values) \
{ \ { \
double opacity = param->opacity; \ double opacity = param->opacity; \
...@@ -150,7 +150,7 @@ static void blend_## name##_8bit(const uint8_t *top, ptrdiff_t top_linesize, ...@@ -150,7 +150,7 @@ static void blend_## name##_8bit(const uint8_t *top, ptrdiff_t top_linesize,
static void blend_## name##_16bit(const uint8_t *_top, ptrdiff_t top_linesize, \ static void blend_## name##_16bit(const uint8_t *_top, ptrdiff_t top_linesize, \
const uint8_t *_bottom, ptrdiff_t bottom_linesize, \ const uint8_t *_bottom, ptrdiff_t bottom_linesize, \
uint8_t *_dst, ptrdiff_t dst_linesize, \ uint8_t *_dst, ptrdiff_t dst_linesize, \
int width, int start, int end, \ ptrdiff_t width, ptrdiff_t start, ptrdiff_t end, \
FilterParams *param, double *values) \ FilterParams *param, double *values) \
{ \ { \
const uint16_t *top = (uint16_t*)_top; \ const uint16_t *top = (uint16_t*)_top; \
...@@ -252,7 +252,7 @@ DEFINE_BLEND16(linearlight,av_clip_uint16((B < 32768) ? B + 2 * A - 65535 : B + ...@@ -252,7 +252,7 @@ DEFINE_BLEND16(linearlight,av_clip_uint16((B < 32768) ? B + 2 * A - 65535 : B +
static void blend_expr_## name(const uint8_t *_top, ptrdiff_t top_linesize, \ static void blend_expr_## name(const uint8_t *_top, ptrdiff_t top_linesize, \
const uint8_t *_bottom, ptrdiff_t bottom_linesize, \ const uint8_t *_bottom, ptrdiff_t bottom_linesize, \
uint8_t *_dst, ptrdiff_t dst_linesize, \ uint8_t *_dst, ptrdiff_t dst_linesize, \
int width, int start, int end, \ ptrdiff_t width, ptrdiff_t start, ptrdiff_t end, \
FilterParams *param, double *values) \ FilterParams *param, double *values) \
{ \ { \
const type *top = (type*)_top; \ const type *top = (type*)_top; \
......
...@@ -26,73 +26,73 @@ ...@@ -26,73 +26,73 @@
void ff_blend_addition_sse2(const uint8_t *top, ptrdiff_t top_linesize, void ff_blend_addition_sse2(const uint8_t *top, ptrdiff_t top_linesize,
const uint8_t *bottom, ptrdiff_t bottom_linesize, const uint8_t *bottom, ptrdiff_t bottom_linesize,
uint8_t *dst, ptrdiff_t dst_linesize, uint8_t *dst, ptrdiff_t dst_linesize,
int width, int start, int end, ptrdiff_t width, ptrdiff_t start, ptrdiff_t end,
struct FilterParams *param, double *values); struct FilterParams *param, double *values);
void ff_blend_addition128_sse2(const uint8_t *top, ptrdiff_t top_linesize, void ff_blend_addition128_sse2(const uint8_t *top, ptrdiff_t top_linesize,
const uint8_t *bottom, ptrdiff_t bottom_linesize, const uint8_t *bottom, ptrdiff_t bottom_linesize,
uint8_t *dst, ptrdiff_t dst_linesize, uint8_t *dst, ptrdiff_t dst_linesize,
int width, int start, int end, ptrdiff_t width, ptrdiff_t start, ptrdiff_t end,
struct FilterParams *param, double *values); struct FilterParams *param, double *values);
void ff_blend_average_sse2(const uint8_t *top, ptrdiff_t top_linesize, void ff_blend_average_sse2(const uint8_t *top, ptrdiff_t top_linesize,
const uint8_t *bottom, ptrdiff_t bottom_linesize, const uint8_t *bottom, ptrdiff_t bottom_linesize,
uint8_t *dst, ptrdiff_t dst_linesize, uint8_t *dst, ptrdiff_t dst_linesize,
int width, int start, int end, ptrdiff_t width, ptrdiff_t start, ptrdiff_t end,
struct FilterParams *param, double *values); struct FilterParams *param, double *values);
void ff_blend_and_sse2(const uint8_t *top, ptrdiff_t top_linesize, void ff_blend_and_sse2(const uint8_t *top, ptrdiff_t top_linesize,
const uint8_t *bottom, ptrdiff_t bottom_linesize, const uint8_t *bottom, ptrdiff_t bottom_linesize,
uint8_t *dst, ptrdiff_t dst_linesize, uint8_t *dst, ptrdiff_t dst_linesize,
int width, int start, int end, ptrdiff_t width, ptrdiff_t start, ptrdiff_t end,
struct FilterParams *param, double *values); struct FilterParams *param, double *values);
void ff_blend_darken_sse2(const uint8_t *top, ptrdiff_t top_linesize, void ff_blend_darken_sse2(const uint8_t *top, ptrdiff_t top_linesize,
const uint8_t *bottom, ptrdiff_t bottom_linesize, const uint8_t *bottom, ptrdiff_t bottom_linesize,
uint8_t *dst, ptrdiff_t dst_linesize, uint8_t *dst, ptrdiff_t dst_linesize,
int width, int start, int end, ptrdiff_t width, ptrdiff_t start, ptrdiff_t end,
struct FilterParams *param, double *values); struct FilterParams *param, double *values);
void ff_blend_difference128_sse2(const uint8_t *top, ptrdiff_t top_linesize, void ff_blend_difference128_sse2(const uint8_t *top, ptrdiff_t top_linesize,
const uint8_t *bottom, ptrdiff_t bottom_linesize, const uint8_t *bottom, ptrdiff_t bottom_linesize,
uint8_t *dst, ptrdiff_t dst_linesize, uint8_t *dst, ptrdiff_t dst_linesize,
int width, int start, int end, ptrdiff_t width, ptrdiff_t start, ptrdiff_t end,
struct FilterParams *param, double *values); struct FilterParams *param, double *values);
void ff_blend_lighten_sse2(const uint8_t *top, ptrdiff_t top_linesize, void ff_blend_lighten_sse2(const uint8_t *top, ptrdiff_t top_linesize,
const uint8_t *bottom, ptrdiff_t bottom_linesize, const uint8_t *bottom, ptrdiff_t bottom_linesize,
uint8_t *dst, ptrdiff_t dst_linesize, uint8_t *dst, ptrdiff_t dst_linesize,
int width, int start, int end, ptrdiff_t width, ptrdiff_t start, ptrdiff_t end,
struct FilterParams *param, double *values); struct FilterParams *param, double *values);
void ff_blend_or_sse2(const uint8_t *top, ptrdiff_t top_linesize, void ff_blend_or_sse2(const uint8_t *top, ptrdiff_t top_linesize,
const uint8_t *bottom, ptrdiff_t bottom_linesize, const uint8_t *bottom, ptrdiff_t bottom_linesize,
uint8_t *dst, ptrdiff_t dst_linesize, uint8_t *dst, ptrdiff_t dst_linesize,
int width, int start, int end, ptrdiff_t width, ptrdiff_t start, ptrdiff_t end,
struct FilterParams *param, double *values); struct FilterParams *param, double *values);
void ff_blend_subtract_sse2(const uint8_t *top, ptrdiff_t top_linesize, void ff_blend_subtract_sse2(const uint8_t *top, ptrdiff_t top_linesize,
const uint8_t *bottom, ptrdiff_t bottom_linesize, const uint8_t *bottom, ptrdiff_t bottom_linesize,
uint8_t *dst, ptrdiff_t dst_linesize, uint8_t *dst, ptrdiff_t dst_linesize,
int width, int start, int end, ptrdiff_t width, ptrdiff_t start, ptrdiff_t end,
struct FilterParams *param, double *values); struct FilterParams *param, double *values);
void ff_blend_xor_sse2(const uint8_t *top, ptrdiff_t top_linesize, void ff_blend_xor_sse2(const uint8_t *top, ptrdiff_t top_linesize,
const uint8_t *bottom, ptrdiff_t bottom_linesize, const uint8_t *bottom, ptrdiff_t bottom_linesize,
uint8_t *dst, ptrdiff_t dst_linesize, uint8_t *dst, ptrdiff_t dst_linesize,
int width, int start, int end, ptrdiff_t width, ptrdiff_t start, ptrdiff_t end,
struct FilterParams *param, double *values); struct FilterParams *param, double *values);
void ff_blend_difference_ssse3(const uint8_t *top, ptrdiff_t top_linesize, void ff_blend_difference_ssse3(const uint8_t *top, ptrdiff_t top_linesize,
const uint8_t *bottom, ptrdiff_t bottom_linesize, const uint8_t *bottom, ptrdiff_t bottom_linesize,
uint8_t *dst, ptrdiff_t dst_linesize, uint8_t *dst, ptrdiff_t dst_linesize,
int width, int start, int end, ptrdiff_t width, ptrdiff_t start, ptrdiff_t end,
struct FilterParams *param, double *values); struct FilterParams *param, double *values);
void ff_blend_negation_ssse3(const uint8_t *top, ptrdiff_t top_linesize, void ff_blend_negation_ssse3(const uint8_t *top, ptrdiff_t top_linesize,
const uint8_t *bottom, ptrdiff_t bottom_linesize, const uint8_t *bottom, ptrdiff_t bottom_linesize,
uint8_t *dst, ptrdiff_t dst_linesize, uint8_t *dst, ptrdiff_t dst_linesize,
int width, int start, int end, ptrdiff_t width, ptrdiff_t start, ptrdiff_t end,
struct FilterParams *param, double *values); struct FilterParams *param, double *values);
av_cold void ff_blend_init_x86(FilterParams *param, int is_16bit) av_cold void ff_blend_init_x86(FilterParams *param, int is_16bit)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment