summaryrefslogtreecommitdiff
path: root/vp8/common/preprocif.h
blob: f700f7688050fef1e49b7ae98160cd38048fc9c3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/*
 *  Copyright (c) 2010 The VP8 project authors. All Rights Reserved.
 *
 *  Use of this source code is governed by a BSD-style license 
 *  that can be found in the LICENSE file in the root of the source
 *  tree. An additional intellectual property rights grant can be found
 *  in the file PATENTS.  All contributing project authors may 
 *  be found in the AUTHORS file in the root of the source tree.
 */


/****************************************************************************
*
*   Module Title :     preproc_if.h
*
*   Description  :     Pre-processor interface header file.
*
****************************************************************************/

#ifndef __PREPROC_IF_H
#define __PREPROC_IF_H

/****************************************************************************
*  Header Files
****************************************************************************/
#include "type_aliases.h"

/****************************************************************************
*  Types
****************************************************************************/

typedef struct
{
    UINT8 *Yuv0ptr;
    UINT8 *Yuv1ptr;

    UINT8   *frag_info;              // blocks coded : passed in
    UINT32   frag_info_element_size;   // size of each element
    UINT32   frag_info_coded_mask;     // mask to get at whether fragment is coded

    UINT32 *region_index;            // Gives pixel index for top left of each block
    UINT32 video_frame_height;
    UINT32 video_frame_width;
    UINT8 hfrag_pixels;
    UINT8 vfrag_pixels;

} SCAN_CONFIG_DATA;

typedef enum
{
    SCP_FILTER_ON_OFF,
    SCP_SET_SRF_OFFSET,
    SCP_SET_EBO_ON_OFF,
    SCP_SET_VCAP_LEVEL_OFFSET,
    SCP_SET_SHOW_LOCAL

} SCP_SETTINGS;

typedef struct PP_INSTANCE *x_pp_inst;

/****************************************************************************
*  Module statics
****************************************************************************/
/* Controls whether Early break out is on or off in default case */
#define EARLY_BREAKOUT_DEFAULT  TRUE

/****************************************************************************
*  Functions
****************************************************************************/
extern  void set_scan_param(x_pp_inst ppi, UINT32 param_id, INT32 param_value);
extern  UINT32 yuvanalyse_frame(x_pp_inst ppi, UINT32 *KFIndicator);
extern  x_pp_inst create_pp_instance(void);
extern  void delete_pp_instance(x_pp_inst *);
extern  BOOL scan_yuvinit(x_pp_inst,  SCAN_CONFIG_DATA *scan_config_ptr);

#endif