summaryrefslogtreecommitdiff
path: root/libavfilter/vf_idet.h
diff options
context:
space:
mode:
authorPascal Massimino <pascal.massimino@gmail.com>2014-09-09 14:38:58 +0200
committerMichael Niedermayer <michaelni@gmx.at>2014-09-09 16:47:22 +0200
commite3fd6a3a4e3d28d8a50bb6ec3e19449bc4e0d3db (patch)
tree4706c3e78a5046f13e80142b1f12cbbc0756e2b6 /libavfilter/vf_idet.h
parent881f96c4c2ef0c0162f63a370cbfff3c1e1feb2a (diff)
av_filter/x86/idet: MMX/SSE2 implementation of 16bits filter_line()
tested on http://ps-auxw.de/10bit-h264-sample/10bit-eldorado.mkv MMX: ~30% faster decoding overall SSE2:~40% faster Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavfilter/vf_idet.h')
-rw-r--r--libavfilter/vf_idet.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/libavfilter/vf_idet.h b/libavfilter/vf_idet.h
index 05506901f2..c5799fb67d 100644
--- a/libavfilter/vf_idet.h
+++ b/libavfilter/vf_idet.h
@@ -24,6 +24,8 @@
#define HIST_SIZE 4
+typedef int (*ff_idet_filter_func)(const uint8_t *a, const uint8_t *b, const uint8_t *c, int w);
+
typedef enum {
TFF,
BFF,
@@ -45,14 +47,15 @@ typedef struct {
AVFrame *cur;
AVFrame *next;
AVFrame *prev;
- int (*filter_line)(const uint8_t *prev, const uint8_t *cur, const uint8_t *next, int w);
+ ff_idet_filter_func filter_line;
const AVPixFmtDescriptor *csp;
} IDETContext;
-void ff_idet_init_x86(IDETContext *idet);
+void ff_idet_init_x86(IDETContext *idet, int for_16b);
/* 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);
#endif