• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 VPXBLIT_H_INCL
13 #define VPXBLIT_H_INCL
14 /*==============================================================================
15                               Includes
16 ==============================================================================*/
17 
18 /*==============================================================================
19                               Defines
20 ==============================================================================*/
21 
22 
23 #ifdef VPX_BIG_ENDIAN
24 #define BYTE_ZERO(X)    ((X & 0xFF000000) >> (24 - 2)   )
25 #define BYTE_ONE(X)     ((X & 0x00FF0000) >> (16 - 2)   )
26 #define BYTE_TWO(X)     ((X & 0x0000FF00) >> (8 - 2)    )
27 #define BYTE_THREE(X)   ((X & 0x000000FF) << (0 + 2)    )
28 
29 #define BYTE_ZERO_UV(X) ((X & 0x0000FF00) >> (8 - 2)    )
30 #define BYTE_ONE_UV(X)  ((X & 0x000000FF) << (0 + 2)    )
31 
32 #define REREFERENCE(X) (*((int *) &(X)))
33 
34 #else
35 
36 #define BYTE_THREE(X)   ((X & 0xFF000000) >> (24 - 2)   )
37 #define BYTE_TWO(X)     ((X & 0x00FF0000) >> (16 - 2)   )
38 #define BYTE_ONE(X)     ((X & 0x0000FF00) >> (8 - 2)    )
39 #define BYTE_ZERO(X)    ((X & 0x000000FF) << (0 + 2)    )
40 
41 #define BYTE_ONE_UV(X) ((X & 0x0000FF00) >> (8 - 2) )
42 #define BYTE_ZERO_UV(X)     ((X & 0x000000FF) << (0 + 2)    )
43 
44 #define REREFERENCE(X) (*((int *) &(X)))
45 
46 #endif
47 
48 
49 /*==============================================================================
50                             Type Definitions
51 ==============================================================================*/
52 typedef struct  // YUV buffer configuration structure
53 {
54     int   y_width;
55     int   y_height;
56     int   y_stride;
57 
58     int   uv_width;
59     int   uv_height;
60     int   uv_stride;
61 
62     char *y_buffer;
63     char *u_buffer;
64     char *v_buffer;
65 
66     char *uv_start;
67     int   uv_dst_area;
68     int   uv_used_area;
69 
70 } VPX_BLIT_CONFIG;
71 
72 typedef struct tx86_params
73 {
74     unsigned int pushed_registers[6];
75     unsigned int return_address;
76     unsigned int dst;
77     unsigned int scrn_pitch;
78     VPX_BLIT_CONFIG *buff_config;
79 } x86_params;
80 
81 /*=============================================================================
82                                 Enums
83 ==============================================================================*/
84 
85 
86 /*==============================================================================
87                               Structures
88 ==============================================================================*/
89 
90 /*==============================================================================
91                              Constants
92 ==============================================================================*/
93 
94 
95 /*==============================================================================
96                                Variables
97 ==============================================================================*/
98 
99 
100 
101 
102 /*==============================================================================
103                             Function Protoypes/MICROS
104 ==============================================================================*/
105 int vpx_get_size_of_pixel(unsigned int bd);
106 void *vpx_get_blitter(unsigned int bd);
107 void vpx_set_blit(void);
108 void vpx_destroy_blit(void);
109 
110 
111 
112 #endif //VPXBLIT_H_INCL
113