~thopiekar/arm-mali/libvdpau-sunxi

« back to all changes in this revision

Viewing changes to ve.h

  • Committer: Jens Kuske
  • Date: 2016-02-16 13:12:22 UTC
  • Revision ID: git-v1:685769372a8281bf67046a958883323aaf14d232
Use libcedrus

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * Copyright (c) 2013 Jens Kuske <jenskuske@gmail.com>
3
 
 *
4
 
 * This library is free software; you can redistribute it and/or
5
 
 * modify it under the terms of the GNU Lesser General Public
6
 
 * License as published by the Free Software Foundation; either
7
 
 * version 2.1 of the License, or (at your option) any later version.
8
 
 *
9
 
 * This library is distributed in the hope that it will be useful,
10
 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12
 
 * Lesser General Public License for more details.
13
 
 *
14
 
 * You should have received a copy of the GNU Lesser General Public
15
 
 * License along with this library; if not, write to the Free Software
16
 
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
17
 
 *
18
 
 */
19
 
 
20
 
#ifndef __VE_H__
21
 
#define __VE_H__
22
 
 
23
 
#include <stdint.h>
24
 
 
25
 
int ve_open(void);
26
 
void ve_close(void);
27
 
int ve_get_version(void);
28
 
int ve_wait(int timeout);
29
 
void *ve_get(int engine, uint32_t flags);
30
 
void ve_put(void);
31
 
 
32
 
struct ve_mem
33
 
{
34
 
        void *virt;
35
 
        uint32_t phys;
36
 
        int size;
37
 
};
38
 
 
39
 
struct ve_mem *ve_malloc(int size);
40
 
void ve_free(struct ve_mem *mem);
41
 
void ve_flush_cache(struct ve_mem *mem);
42
 
 
43
 
static inline void writel(uint32_t val, void *addr)
44
 
{
45
 
        *((volatile uint32_t *)addr) = val;
46
 
}
47
 
 
48
 
static inline uint32_t readl(void *addr)
49
 
{
50
 
        return *((volatile uint32_t *) addr);
51
 
}
52
 
 
53
 
#define VE_ENGINE_MPEG                  0x0
54
 
#define VE_ENGINE_H264                  0x1
55
 
#define VE_ENGINE_HEVC                  0x4
56
 
 
57
 
#define VE_CTRL                         0x000
58
 
#define VE_EXTRA_OUT_FMT_OFFSET         0x0e8
59
 
#define VE_VERSION                      0x0f0
60
 
 
61
 
#define VE_MPEG_PIC_HDR                 0x100
62
 
#define VE_MPEG_VOP_HDR                 0x104
63
 
#define VE_MPEG_SIZE                    0x108
64
 
#define VE_MPEG_FRAME_SIZE              0x10c
65
 
#define VE_MPEG_MBA                     0x110
66
 
#define VE_MPEG_CTRL                    0x114
67
 
#define VE_MPEG_TRIGGER                 0x118
68
 
#define VE_MPEG_STATUS                  0x11c
69
 
#define VE_MPEG_TRBTRD_FIELD            0x120
70
 
#define VE_MPEG_TRBTRD_FRAME            0x124
71
 
#define VE_MPEG_VLD_ADDR                0x128
72
 
#define VE_MPEG_VLD_OFFSET              0x12c
73
 
#define VE_MPEG_VLD_LEN                 0x130
74
 
#define VE_MPEG_VLD_END                 0x134
75
 
#define VE_MPEG_MBH_ADDR                0x138
76
 
#define VE_MPEG_DCAC_ADDR               0x13c
77
 
#define VE_MPEG_NCF_ADDR                0x144
78
 
#define VE_MPEG_REC_LUMA                0x148
79
 
#define VE_MPEG_REC_CHROMA              0x14c
80
 
#define VE_MPEG_FWD_LUMA                0x150
81
 
#define VE_MPEG_FWD_CHROMA              0x154
82
 
#define VE_MPEG_BACK_LUMA               0x158
83
 
#define VE_MPEG_BACK_CHROMA             0x15c
84
 
#define VE_MPEG_IQ_MIN_INPUT            0x180
85
 
#define VE_MPEG_QP_INPUT                0x184
86
 
 
87
 
#define VE_MPEG_ROT_LUMA                0x1cc
88
 
#define VE_MPEG_ROT_CHROMA              0x1d0
89
 
#define VE_MPEG_SDROT_CTRL              0x1d4
90
 
 
91
 
#define VE_H264_FRAME_SIZE              0x200
92
 
#define VE_H264_PIC_HDR                 0x204
93
 
#define VE_H264_SLICE_HDR               0x208
94
 
#define VE_H264_SLICE_HDR2              0x20c
95
 
#define VE_H264_PRED_WEIGHT             0x210
96
 
#define VE_H264_QP_PARAM                0x21c
97
 
#define VE_H264_CTRL                    0x220
98
 
#define VE_H264_TRIGGER                 0x224
99
 
#define VE_H264_STATUS                  0x228
100
 
#define VE_H264_CUR_MB_NUM              0x22c
101
 
#define VE_H264_VLD_ADDR                0x230
102
 
#define VE_H264_VLD_OFFSET              0x234
103
 
#define VE_H264_VLD_LEN                 0x238
104
 
#define VE_H264_VLD_END                 0x23c
105
 
#define VE_H264_SDROT_CTRL              0x240
106
 
#define VE_H264_SDROT_LUMA              0x244
107
 
#define VE_H264_SDROT_CHROMA            0x248
108
 
#define VE_H264_OUTPUT_FRAME_IDX        0x24c
109
 
#define VE_H264_EXTRA_BUFFER1           0x250
110
 
#define VE_H264_EXTRA_BUFFER2           0x254
111
 
#define VE_H264_BASIC_BITS              0x2dc
112
 
#define VE_H264_RAM_WRITE_PTR           0x2e0
113
 
#define VE_H264_RAM_WRITE_DATA          0x2e4
114
 
 
115
 
#define VE_SRAM_H264_PRED_WEIGHT_TABLE  0x000
116
 
#define VE_SRAM_H264_FRAMEBUFFER_LIST   0x400
117
 
#define VE_SRAM_H264_REF_LIST0          0x640
118
 
#define VE_SRAM_H264_REF_LIST1          0x664
119
 
#define VE_SRAM_H264_SCALING_LISTS      0x800
120
 
 
121
 
#define VE_HEVC_NAL_HDR                 0x500
122
 
#define VE_HEVC_SPS                     0x504
123
 
#define VE_HEVC_PIC_SIZE                0x508
124
 
#define VE_HEVC_PCM_HDR                 0x50c
125
 
#define VE_HEVC_PPS0                    0x510
126
 
#define VE_HEVC_PPS1                    0x514
127
 
#define VE_HEVC_SCALING_LIST_CTRL       0x518
128
 
#define VE_HEVC_SLICE_HDR0              0x520
129
 
#define VE_HEVC_SLICE_HDR1              0x524
130
 
#define VE_HEVC_SLICE_HDR2              0x528
131
 
#define VE_HEVC_CTB_ADDR                0x52c
132
 
#define VE_HEVC_CTRL                    0x530
133
 
#define VE_HEVC_TRIG                    0x534
134
 
#define VE_HEVC_STATUS                  0x538
135
 
#define VE_HEVC_CTU_NUM                 0x53c
136
 
#define VE_HEVC_BITS_ADDR               0x540
137
 
#define VE_HEVC_BITS_OFFSET             0x544
138
 
#define VE_HEVC_BITS_LEN                0x548
139
 
#define VE_HEVC_BITS_END_ADDR           0x54c
140
 
#define VE_HEVC_REC_BUF_IDX             0x55c
141
 
#define VE_HEVC_NEIGHBOR_INFO_ADDR      0x560
142
 
#define VE_HEVC_TILE_LIST_ADDR          0x564
143
 
#define VE_HEVC_TILE_START_CTB          0x568
144
 
#define VE_HEVC_TILE_END_CTB            0x56c
145
 
#define VE_HEVC_SCALING_LIST_DC_COEF0   0x578
146
 
#define VE_HEVC_SCALING_LIST_DC_COEF1   0x57c
147
 
#define VE_HEVC_BITS_DATA               0x5dc
148
 
#define VE_HEVC_SRAM_ADDR               0x5e0
149
 
#define VE_HEVC_SRAM_DATA               0x5e4
150
 
 
151
 
#define VE_SRAM_HEVC_PRED_WEIGHT_LUMA_L0        0x000
152
 
#define VE_SRAM_HEVC_PRED_WEIGHT_CHROMA_L0      0x020
153
 
#define VE_SRAM_HEVC_PRED_WEIGHT_LUMA_L1        0x060
154
 
#define VE_SRAM_HEVC_PRED_WEIGHT_CHROMA_L1      0x080
155
 
#define VE_SRAM_HEVC_PIC_LIST                   0x400
156
 
#define VE_SRAM_HEVC_SCALING_LISTS              0x800
157
 
#define VE_SRAM_HEVC_REF_PIC_LIST0              0xc00
158
 
#define VE_SRAM_HEVC_REF_PIC_LIST1              0xc10
159
 
 
160
 
#endif