blob: a95d90574553679c99840c36871ff09d74b44fc3 (
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
/*
* Copyright (c) 2010 The WebM 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.
*/
#ifndef VPXBLIT_H_INCL
#define VPXBLIT_H_INCL
/*==============================================================================
Includes
==============================================================================*/
/*==============================================================================
Defines
==============================================================================*/
#ifdef VPX_BIG_ENDIAN
#define BYTE_ZERO(X) ((X & 0xFF000000) >> (24 - 2) )
#define BYTE_ONE(X) ((X & 0x00FF0000) >> (16 - 2) )
#define BYTE_TWO(X) ((X & 0x0000FF00) >> (8 - 2) )
#define BYTE_THREE(X) ((X & 0x000000FF) << (0 + 2) )
#define BYTE_ZERO_UV(X) ((X & 0x0000FF00) >> (8 - 2) )
#define BYTE_ONE_UV(X) ((X & 0x000000FF) << (0 + 2) )
#define REREFERENCE(X) (*((int *) &(X)))
#else
#define BYTE_THREE(X) ((X & 0xFF000000) >> (24 - 2) )
#define BYTE_TWO(X) ((X & 0x00FF0000) >> (16 - 2) )
#define BYTE_ONE(X) ((X & 0x0000FF00) >> (8 - 2) )
#define BYTE_ZERO(X) ((X & 0x000000FF) << (0 + 2) )
#define BYTE_ONE_UV(X) ((X & 0x0000FF00) >> (8 - 2) )
#define BYTE_ZERO_UV(X) ((X & 0x000000FF) << (0 + 2) )
#define REREFERENCE(X) (*((int *) &(X)))
#endif
/*==============================================================================
Type Definitions
==============================================================================*/
typedef struct // YUV buffer configuration structure
{
int y_width;
int y_height;
int y_stride;
int uv_width;
int uv_height;
int uv_stride;
char *y_buffer;
char *u_buffer;
char *v_buffer;
char *uv_start;
int uv_dst_area;
int uv_used_area;
} VPX_BLIT_CONFIG;
typedef struct tx86_params
{
unsigned int pushed_registers[6];
unsigned int return_address;
unsigned int dst;
unsigned int scrn_pitch;
VPX_BLIT_CONFIG *buff_config;
} x86_params;
/*=============================================================================
Enums
==============================================================================*/
/*==============================================================================
Structures
==============================================================================*/
/*==============================================================================
Constants
==============================================================================*/
/*==============================================================================
Variables
==============================================================================*/
/*==============================================================================
Function Protoypes/MICROS
==============================================================================*/
int vpx_get_size_of_pixel(unsigned int bd);
void *vpx_get_blitter(unsigned int bd);
void vpx_set_blit(void);
void vpx_destroy_blit(void);
#endif //VPXBLIT_H_INCL
|