You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-11-23 21:54:53 +02:00
avfilter/vf_idetdsp: use consistent uint8_t pointer type
Even for 16-bit DSP functions. Instead, cast the pointer inside the function.
This commit is contained in:
@@ -36,13 +36,17 @@ int ff_idet_filter_line_c(const uint8_t *a, const uint8_t *b, const uint8_t *c,
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ff_idet_filter_line_c_16bit(const uint16_t *a, const uint16_t *b, const uint16_t *c, int w)
|
||||
int ff_idet_filter_line_c_16bit(const uint8_t *a, const uint8_t *b, const uint8_t *c, int w)
|
||||
{
|
||||
int x;
|
||||
int ret=0;
|
||||
|
||||
const uint16_t *a16 = (const uint16_t *) a;
|
||||
const uint16_t *b16 = (const uint16_t *) b;
|
||||
const uint16_t *c16 = (const uint16_t *) c;
|
||||
|
||||
for(x=0; x<w; x++){
|
||||
int v = (*a++ + *c++) - 2 * *b++;
|
||||
int v = (*a16++ + *c16++) - 2 * *b16++;
|
||||
ret += FFABS(v);
|
||||
}
|
||||
|
||||
@@ -51,7 +55,7 @@ int ff_idet_filter_line_c_16bit(const uint16_t *a, const uint16_t *b, const uint
|
||||
|
||||
void av_cold ff_idet_dsp_init(IDETDSPContext *dsp, int depth)
|
||||
{
|
||||
dsp->filter_line = depth > 8 ? (ff_idet_filter_func)ff_idet_filter_line_c_16bit : ff_idet_filter_line_c;
|
||||
dsp->filter_line = depth > 8 ? ff_idet_filter_line_c_16bit : ff_idet_filter_line_c;
|
||||
#if ARCH_X86
|
||||
ff_idet_dsp_init_x86(dsp, depth);
|
||||
#endif
|
||||
|
||||
@@ -33,6 +33,6 @@ void ff_idet_dsp_init_x86(IDETDSPContext *idet, int depth);
|
||||
|
||||
/* main fall-back for left-over */
|
||||
int ff_idet_filter_line_c(const uint8_t *a, const uint8_t *b, const uint8_t *c, int w);
|
||||
int ff_idet_filter_line_c_16bit(const uint16_t *a, const uint16_t *b, const uint16_t *c, int w);
|
||||
int ff_idet_filter_line_c_16bit(const uint8_t *a, const uint8_t *b, const uint8_t *c, int w);
|
||||
|
||||
#endif /* AVFILTER_IDETDSP_H */
|
||||
|
||||
@@ -42,17 +42,20 @@ static int idet_filter_line_##KIND(const uint8_t *a, const uint8_t *b, \
|
||||
|
||||
|
||||
#define FUNC_MAIN_DECL_16bit(KIND, SPAN) \
|
||||
int ff_idet_filter_line_16bit_##KIND(const uint16_t *a, const uint16_t *b, \
|
||||
const uint16_t *c, int w); \
|
||||
static int idet_filter_line_16bit_##KIND(const uint16_t *a, const uint16_t *b, \
|
||||
const uint16_t *c, int w) { \
|
||||
int ff_idet_filter_line_16bit_##KIND(const uint8_t *a, const uint8_t *b, \
|
||||
const uint8_t *c, int w); \
|
||||
static int idet_filter_line_16bit_##KIND(const uint8_t *a, const uint8_t *b, \
|
||||
const uint8_t *c, int w) { \
|
||||
int sum = 0; \
|
||||
const int left_over = w & (SPAN - 1); \
|
||||
w -= left_over; \
|
||||
if (w > 0) \
|
||||
sum += ff_idet_filter_line_16bit_##KIND(a, b, c, w); \
|
||||
if (left_over > 0) \
|
||||
sum += ff_idet_filter_line_c_16bit(a + w, b + w, c + w, left_over); \
|
||||
const int w_main = w - left_over; \
|
||||
const int offset = w_main << 1; \
|
||||
if (w_main > 0) \
|
||||
sum += ff_idet_filter_line_16bit_##KIND(a, b, c, w_main); \
|
||||
if (left_over > 0) { \
|
||||
sum += ff_idet_filter_line_c_16bit(a + offset, b + offset, c + offset, \
|
||||
left_over); \
|
||||
} \
|
||||
return sum; \
|
||||
}
|
||||
|
||||
@@ -66,7 +69,7 @@ av_cold void ff_idet_dsp_init_x86(IDETDSPContext *dsp, int depth)
|
||||
const int cpu_flags = av_get_cpu_flags();
|
||||
|
||||
if (EXTERNAL_SSE2(cpu_flags)) {
|
||||
dsp->filter_line = depth > 8 ? (ff_idet_filter_func)idet_filter_line_16bit_sse2 : idet_filter_line_sse2;
|
||||
dsp->filter_line = depth > 8 ? idet_filter_line_16bit_sse2 : idet_filter_line_sse2;
|
||||
}
|
||||
#endif // HAVE_X86ASM
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user