Home | History | Annotate | Download | only in common
      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 /****************************************************************************
     13 *
     14 *   Module Title :     preproc_if.h
     15 *
     16 *   Description  :     Pre-processor interface header file.
     17 *
     18 ****************************************************************************/
     19 
     20 #ifndef __PREPROC_IF_H
     21 #define __PREPROC_IF_H
     22 
     23 /****************************************************************************
     24 *  Header Files
     25 ****************************************************************************/
     26 #include "type_aliases.h"
     27 
     28 /****************************************************************************
     29 *  Types
     30 ****************************************************************************/
     31 
     32 typedef struct
     33 {
     34     UINT8 *Yuv0ptr;
     35     UINT8 *Yuv1ptr;
     36 
     37     UINT8   *frag_info;              // blocks coded : passed in
     38     UINT32   frag_info_element_size;   // size of each element
     39     UINT32   frag_info_coded_mask;     // mask to get at whether fragment is coded
     40 
     41     UINT32 *region_index;            // Gives pixel index for top left of each block
     42     UINT32 video_frame_height;
     43     UINT32 video_frame_width;
     44     UINT8 hfrag_pixels;
     45     UINT8 vfrag_pixels;
     46 
     47 } SCAN_CONFIG_DATA;
     48 
     49 typedef enum
     50 {
     51     SCP_FILTER_ON_OFF,
     52     SCP_SET_SRF_OFFSET,
     53     SCP_SET_EBO_ON_OFF,
     54     SCP_SET_VCAP_LEVEL_OFFSET,
     55     SCP_SET_SHOW_LOCAL
     56 
     57 } SCP_SETTINGS;
     58 
     59 typedef struct PP_INSTANCE *x_pp_inst;
     60 
     61 /****************************************************************************
     62 *  Module statics
     63 ****************************************************************************/
     64 /* Controls whether Early break out is on or off in default case */
     65 #define EARLY_BREAKOUT_DEFAULT  TRUE
     66 
     67 /****************************************************************************
     68 *  Functions
     69 ****************************************************************************/
     70 extern  void set_scan_param(x_pp_inst ppi, UINT32 param_id, INT32 param_value);
     71 extern  UINT32 yuvanalyse_frame(x_pp_inst ppi, UINT32 *KFIndicator);
     72 extern  x_pp_inst create_pp_instance(void);
     73 extern  void delete_pp_instance(x_pp_inst *);
     74 extern  BOOL scan_yuvinit(x_pp_inst,  SCAN_CONFIG_DATA *scan_config_ptr);
     75 
     76 #endif
     77