Home | History | Annotate | Download | only in encoder
      1 /*
      2  *  Copyright (c) 2010 The WebM project authors. All Rights Reserved.
      3  *
      4  *  Use of this source code is governed by a BSD-style license
      5  *  that can be found in the LICENSE file in the root of the source
      6  *  tree. An additional intellectual property rights grant can be found
      7  *  in the file PATENTS.  All contributing project authors may
      8  *  be found in the AUTHORS file in the root of the source tree.
      9  */
     10 
     11 
     12 #ifndef __INC_VP8_TEMPORAL_FILTER_H
     13 #define __INC_VP8_TEMPORAL_FILTER_H
     14 
     15 #define prototype_apply(sym)\
     16     void (sym) \
     17     ( \
     18      unsigned char *frame1, \
     19      unsigned int stride, \
     20      unsigned char *frame2, \
     21      unsigned int block_size, \
     22      int strength, \
     23      int filter_weight, \
     24      unsigned int *accumulator, \
     25      unsigned short *count \
     26     )
     27 
     28 #if ARCH_X86 || ARCH_X86_64
     29 #include "x86/temporal_filter_x86.h"
     30 #endif
     31 
     32 #ifndef vp8_temporal_filter_apply
     33 #define vp8_temporal_filter_apply vp8_temporal_filter_apply_c
     34 #endif
     35 extern prototype_apply(vp8_temporal_filter_apply);
     36 
     37 typedef struct
     38 {
     39     prototype_apply(*apply);
     40 } vp8_temporal_rtcd_vtable_t;
     41 
     42 #if CONFIG_RUNTIME_CPU_DETECT
     43 #define TEMPORAL_INVOKE(ctx,fn) (ctx)->fn
     44 #else
     45 #define TEMPORAL_INVOKE(ctx,fn) vp8_temporal_filter_##fn
     46 #endif
     47 
     48 #endif // __INC_VP8_TEMPORAL_FILTER_H
     49