Signed-off-by: James Almer <jamrial@gmail.com>tags/n3.3
@@ -25,7 +25,7 @@ | |||||
#define pb_7f (~0UL / 255 * 0x7f) | #define pb_7f (~0UL / 255 * 0x7f) | ||||
#define pb_80 (~0UL / 255 * 0x80) | #define pb_80 (~0UL / 255 * 0x80) | ||||
static void add_bytes_c(uint8_t *dst, uint8_t *src, intptr_t w) | |||||
static void add_bytes_c(uint8_t *dst, uint8_t *src, ptrdiff_t w) | |||||
{ | { | ||||
long i; | long i; | ||||
@@ -39,7 +39,7 @@ static void add_bytes_c(uint8_t *dst, uint8_t *src, intptr_t w) | |||||
} | } | ||||
static void add_median_pred_c(uint8_t *dst, const uint8_t *src1, | static void add_median_pred_c(uint8_t *dst, const uint8_t *src1, | ||||
const uint8_t *diff, intptr_t w, | |||||
const uint8_t *diff, ptrdiff_t w, | |||||
int *left, int *left_top) | int *left, int *left_top) | ||||
{ | { | ||||
int i; | int i; | ||||
@@ -58,7 +58,7 @@ static void add_median_pred_c(uint8_t *dst, const uint8_t *src1, | |||||
*left_top = lt; | *left_top = lt; | ||||
} | } | ||||
static int add_left_pred_c(uint8_t *dst, const uint8_t *src, intptr_t w, | |||||
static int add_left_pred_c(uint8_t *dst, const uint8_t *src, ptrdiff_t w, | |||||
int acc) | int acc) | ||||
{ | { | ||||
int i; | int i; | ||||
@@ -79,7 +79,7 @@ static int add_left_pred_c(uint8_t *dst, const uint8_t *src, intptr_t w, | |||||
return acc; | return acc; | ||||
} | } | ||||
static int add_left_pred_int16_c(uint16_t *dst, const uint16_t *src, unsigned mask, int w, unsigned acc){ | |||||
static int add_left_pred_int16_c(uint16_t *dst, const uint16_t *src, unsigned mask, ptrdiff_t w, unsigned acc){ | |||||
int i; | int i; | ||||
for(i=0; i<w-1; i++){ | for(i=0; i<w-1; i++){ | ||||
@@ -22,20 +22,23 @@ | |||||
#ifndef AVCODEC_LOSSLESS_VIDEODSP_H | #ifndef AVCODEC_LOSSLESS_VIDEODSP_H | ||||
#define AVCODEC_LOSSLESS_VIDEODSP_H | #define AVCODEC_LOSSLESS_VIDEODSP_H | ||||
#include <stdint.h> | |||||
#include <stddef.h> | |||||
#include "avcodec.h" | #include "avcodec.h" | ||||
#include "libavutil/cpu.h" | #include "libavutil/cpu.h" | ||||
typedef struct LLVidDSPContext { | typedef struct LLVidDSPContext { | ||||
void (*add_bytes)(uint8_t *dst /* align 16 */, uint8_t *src /* align 16 */, | void (*add_bytes)(uint8_t *dst /* align 16 */, uint8_t *src /* align 16 */, | ||||
intptr_t w); | |||||
ptrdiff_t w); | |||||
void (*add_median_pred)(uint8_t *dst, const uint8_t *top, | void (*add_median_pred)(uint8_t *dst, const uint8_t *top, | ||||
const uint8_t *diff, intptr_t w, | |||||
const uint8_t *diff, ptrdiff_t w, | |||||
int *left, int *left_top); | int *left, int *left_top); | ||||
int (*add_left_pred)(uint8_t *dst, const uint8_t *src, | int (*add_left_pred)(uint8_t *dst, const uint8_t *src, | ||||
intptr_t w, int left); | |||||
ptrdiff_t w, int left); | |||||
int (*add_left_pred_int16)(uint16_t *dst, const uint16_t *src, | int (*add_left_pred_int16)(uint16_t *dst, const uint16_t *src, | ||||
unsigned mask, int w, unsigned left); | |||||
unsigned mask, ptrdiff_t w, unsigned left); | |||||
} LLVidDSPContext; | } LLVidDSPContext; | ||||
void ff_llviddsp_init(LLVidDSPContext *llviddsp); | void ff_llviddsp_init(LLVidDSPContext *llviddsp); | ||||
@@ -33,7 +33,7 @@ | |||||
#include "libavcodec/lossless_videodsp.h" | #include "libavcodec/lossless_videodsp.h" | ||||
#if HAVE_ALTIVEC | #if HAVE_ALTIVEC | ||||
static void add_bytes_altivec(uint8_t *dst, uint8_t *src, intptr_t w) | |||||
static void add_bytes_altivec(uint8_t *dst, uint8_t *src, ptrdiff_t w) | |||||
{ | { | ||||
register int i; | register int i; | ||||
register vector unsigned char vdst, vsrc; | register vector unsigned char vdst, vsrc; | ||||
@@ -23,27 +23,27 @@ | |||||
#include "../lossless_videodsp.h" | #include "../lossless_videodsp.h" | ||||
#include "libavutil/x86/cpu.h" | #include "libavutil/x86/cpu.h" | ||||
void ff_add_bytes_mmx(uint8_t *dst, uint8_t *src, intptr_t w); | |||||
void ff_add_bytes_sse2(uint8_t *dst, uint8_t *src, intptr_t w); | |||||
void ff_add_bytes_mmx(uint8_t *dst, uint8_t *src, ptrdiff_t w); | |||||
void ff_add_bytes_sse2(uint8_t *dst, uint8_t *src, ptrdiff_t w); | |||||
void ff_add_median_pred_mmxext(uint8_t *dst, const uint8_t *top, | void ff_add_median_pred_mmxext(uint8_t *dst, const uint8_t *top, | ||||
const uint8_t *diff, intptr_t w, | |||||
const uint8_t *diff, ptrdiff_t w, | |||||
int *left, int *left_top); | int *left, int *left_top); | ||||
void ff_add_median_pred_sse2(uint8_t *dst, const uint8_t *top, | void ff_add_median_pred_sse2(uint8_t *dst, const uint8_t *top, | ||||
const uint8_t *diff, intptr_t w, | |||||
const uint8_t *diff, ptrdiff_t w, | |||||
int *left, int *left_top); | int *left, int *left_top); | ||||
int ff_add_left_pred_ssse3(uint8_t *dst, const uint8_t *src, | int ff_add_left_pred_ssse3(uint8_t *dst, const uint8_t *src, | ||||
intptr_t w, int left); | |||||
ptrdiff_t w, int left); | |||||
int ff_add_left_pred_unaligned_ssse3(uint8_t *dst, const uint8_t *src, | int ff_add_left_pred_unaligned_ssse3(uint8_t *dst, const uint8_t *src, | ||||
intptr_t w, int left); | |||||
ptrdiff_t w, int left); | |||||
int ff_add_left_pred_int16_ssse3(uint16_t *dst, const uint16_t *src, unsigned mask, int w, unsigned acc); | |||||
int ff_add_left_pred_int16_sse4(uint16_t *dst, const uint16_t *src, unsigned mask, int w, unsigned acc); | |||||
int ff_add_left_pred_int16_ssse3(uint16_t *dst, const uint16_t *src, unsigned mask, ptrdiff_t w, unsigned acc); | |||||
int ff_add_left_pred_int16_sse4(uint16_t *dst, const uint16_t *src, unsigned mask, ptrdiff_t w, unsigned acc); | |||||
#if HAVE_INLINE_ASM && HAVE_7REGS && ARCH_X86_32 | #if HAVE_INLINE_ASM && HAVE_7REGS && ARCH_X86_32 | ||||
static void add_median_pred_cmov(uint8_t *dst, const uint8_t *top, | static void add_median_pred_cmov(uint8_t *dst, const uint8_t *top, | ||||
const uint8_t *diff, intptr_t w, | |||||
const uint8_t *diff, ptrdiff_t w, | |||||
int *left, int *left_top) | int *left, int *left_top) | ||||
{ | { | ||||
x86_reg w2 = -w; | x86_reg w2 = -w; | ||||
@@ -41,7 +41,7 @@ static void check_add_bytes(LLVidDSPContext c, int width) | |||||
uint8_t *src1 = av_mallocz(width); | uint8_t *src1 = av_mallocz(width); | ||||
uint8_t *dst0 = av_mallocz(width); | uint8_t *dst0 = av_mallocz(width); | ||||
uint8_t *dst1 = av_mallocz(width); | uint8_t *dst1 = av_mallocz(width); | ||||
declare_func_emms(AV_CPU_FLAG_MMX, void, uint8_t *dst, uint8_t *src, int w); | |||||
declare_func_emms(AV_CPU_FLAG_MMX, void, uint8_t *dst, uint8_t *src, ptrdiff_t w); | |||||
if (!src0 || !src1 || !dst0 || !dst1) | if (!src0 || !src1 || !dst0 || !dst1) | ||||
fail(); | fail(); | ||||