diff vp56.h @ 11665:85ee3d14b906 libavcodec

VP56: move vp56_edge_filter to new VP56DSPContext Using macro templates allows the vp[56]_adjust functions to be inlined instead of called through function pointers. The new function pointers enable optimised implementations of the filters. 4% faster VP6 decoding on Cortex-A8.
author mru
date Fri, 30 Apr 2010 21:30:22 +0000
parents 7dd2a45249a9
children 7d04a6cec75f
line wrap: on
line diff
--- a/vp56.h	Wed Apr 28 20:00:23 2010 +0000
+++ b/vp56.h	Fri Apr 30 21:30:22 2010 +0000
@@ -28,14 +28,13 @@
 #include "dsputil.h"
 #include "get_bits.h"
 #include "bytestream.h"
-
+#include "vp56dsp.h"
 
 typedef struct vp56_context VP56Context;
 typedef struct vp56_mv VP56mv;
 
 typedef void (*VP56ParseVectorAdjustment)(VP56Context *s,
                                           VP56mv *vect);
-typedef int  (*VP56Adjust)(int v, int t);
 typedef void (*VP56Filter)(VP56Context *s, uint8_t *dst, uint8_t *src,
                            int offset1, int offset2, int stride,
                            VP56mv mv, int mask, int select, int luma);
@@ -90,6 +89,7 @@
 struct vp56_context {
     AVCodecContext *avctx;
     DSPContext dsp;
+    VP56DSPContext vp56dsp;
     ScanTable scantable;
     AVFrame frames[4];
     AVFrame *framep[6];
@@ -149,7 +149,6 @@
 
     const uint8_t *vp56_coord_div;
     VP56ParseVectorAdjustment parse_vector_adjustment;
-    VP56Adjust adjust;
     VP56Filter filter;
     VP56ParseCoeff parse_coeff;
     VP56DefaultModelsInit default_models_init;