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;
|
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 x;
|
||||||
int ret=0;
|
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++){
|
for(x=0; x<w; x++){
|
||||||
int v = (*a++ + *c++) - 2 * *b++;
|
int v = (*a16++ + *c16++) - 2 * *b16++;
|
||||||
ret += FFABS(v);
|
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)
|
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
|
#if ARCH_X86
|
||||||
ff_idet_dsp_init_x86(dsp, depth);
|
ff_idet_dsp_init_x86(dsp, depth);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -33,6 +33,6 @@ void ff_idet_dsp_init_x86(IDETDSPContext *idet, int depth);
|
|||||||
|
|
||||||
/* main fall-back for left-over */
|
/* 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(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 */
|
#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) \
|
#define FUNC_MAIN_DECL_16bit(KIND, SPAN) \
|
||||||
int ff_idet_filter_line_16bit_##KIND(const uint16_t *a, const uint16_t *b, \
|
int ff_idet_filter_line_16bit_##KIND(const uint8_t *a, const uint8_t *b, \
|
||||||
const uint16_t *c, int w); \
|
const uint8_t *c, int w); \
|
||||||
static int idet_filter_line_16bit_##KIND(const uint16_t *a, const uint16_t *b, \
|
static int idet_filter_line_16bit_##KIND(const uint8_t *a, const uint8_t *b, \
|
||||||
const uint16_t *c, int w) { \
|
const uint8_t *c, int w) { \
|
||||||
int sum = 0; \
|
int sum = 0; \
|
||||||
const int left_over = w & (SPAN - 1); \
|
const int left_over = w & (SPAN - 1); \
|
||||||
w -= left_over; \
|
const int w_main = w - left_over; \
|
||||||
if (w > 0) \
|
const int offset = w_main << 1; \
|
||||||
sum += ff_idet_filter_line_16bit_##KIND(a, b, c, w); \
|
if (w_main > 0) \
|
||||||
if (left_over > 0) \
|
sum += ff_idet_filter_line_16bit_##KIND(a, b, c, w_main); \
|
||||||
sum += ff_idet_filter_line_c_16bit(a + w, b + w, c + w, left_over); \
|
if (left_over > 0) { \
|
||||||
|
sum += ff_idet_filter_line_c_16bit(a + offset, b + offset, c + offset, \
|
||||||
|
left_over); \
|
||||||
|
} \
|
||||||
return sum; \
|
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();
|
const int cpu_flags = av_get_cpu_flags();
|
||||||
|
|
||||||
if (EXTERNAL_SSE2(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
|
#endif // HAVE_X86ASM
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user