RVSwDecCustomize.h
5.27 KB
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#ifndef RV_SW_DEC_CONFIG_H
#define RV_SW_DEC_CONFIG_H
#ifdef __RM_DEC_SUPPORT__
#include "rvtypes.h"
#include "decdefs.h"
#if defined(__MTK_TARGET__)
#include "hal_custom_video_codec.h"
#include "sw_video_decode_custom.h"
#endif
#ifndef RV9_DEC_MAX_NORMAL_WIDTH
#define RV9_DEC_MAX_NORMAL_WIDTH 1920
#endif
#ifndef RV9_DEC_MAX_NORMAL_HEIGHT
#define RV9_DEC_MAX_NORMAL_HEIGHT 1088
#endif
#ifndef RV9_DEC_MAX_WIDTH
#define RV9_DEC_MAX_WIDTH 1920
#endif
#ifndef RV9_DEC_MAX_HEIGHT
#define RV9_DEC_MAX_HEIGHT 1088
#endif
#define SW_RM_SPEEDY_MODE_0 0x0 //standard decoder
#define SW_RM_SPEEDY_MODE_1 0x1 //speedy mode 1
#define SW_RM_SPEEDY_MODE_2 0x2 //speedy mode 2
#define SW_RM_SPEEDY_MODE_3 0x3 //speedy mode 3 , dynamic switch
#define SW_RM_SPEEDY_MODE_4 0x4 //speedy mode 4 , dynamic switch
#define SW_RM_SPEEDY_MODE_5 0xF //fast decoder
#define _RV_NO_SUPPORT 0xFF
// Max. resoultion of mode 0~4 adopt RV9_MAX_NORMAL_MODE_RESOLUTION which define in sw_video_decode_custom.h
// Max. resoultion of mode 5 adopt RV9_SUPPORT_RESOLUTION which define in sw_video_decode_custom.h
#define SW_RM_SPEEDY_BOUND_RES_5_DEFAULT (RV9_DEC_MAX_WIDTH*RV9_DEC_MAX_HEIGHT)
#ifndef SW_RM_SPEEDY_CUSTOM_ENABLE
#if defined(MT6236) || defined(MT6236B)
#define SW_RM_SPEEDY_BOUND_RES_0_DEFAULT 0
#define SW_RM_SPEEDY_BOUND_RES_1_DEFAULT (848*480)
#define SW_RM_SPEEDY_BOUND_RES_2_DEFAULT (RV9_DEC_MAX_NORMAL_WIDTH*RV9_DEC_MAX_NORMAL_HEIGHT)
#define SW_RM_SPEEDY_BOUND_RES_3_DEFAULT 0
#define SW_RM_SPEEDY_BOUND_RES_4_DEFAULT 0
#elif defined(MT6235) || defined(MT6235B) || defined(MT6255)
#define SW_RM_SPEEDY_BOUND_RES_0_DEFAULT 0
#define SW_RM_SPEEDY_BOUND_RES_1_DEFAULT 0
#define SW_RM_SPEEDY_BOUND_RES_2_DEFAULT (RV9_DEC_MAX_NORMAL_WIDTH*RV9_DEC_MAX_NORMAL_HEIGHT)
#define SW_RM_SPEEDY_BOUND_RES_3_DEFAULT 0
#define SW_RM_SPEEDY_BOUND_RES_4_DEFAULT 0
#elif (defined(MT6253T)||defined(MT6253)||defined(MT6253E)||defined(MT6253L)|| defined(MT6252H) || defined(MT6252))
#define SW_RM_SPEEDY_BOUND_RES_0_DEFAULT 0
#define SW_RM_SPEEDY_BOUND_RES_1_DEFAULT 0
#define SW_RM_SPEEDY_BOUND_RES_2_DEFAULT (RV9_DEC_MAX_NORMAL_WIDTH*RV9_DEC_MAX_NORMAL_HEIGHT)
#define SW_RM_SPEEDY_BOUND_RES_3_DEFAULT 0
#define SW_RM_SPEEDY_BOUND_RES_4_DEFAULT 0
#elif defined(MT6276) || defined(MT6256)
#define SW_RM_SPEEDY_BOUND_RES_0_DEFAULT (320*240)
#define SW_RM_SPEEDY_BOUND_RES_1_DEFAULT (848*480)
#define SW_RM_SPEEDY_BOUND_RES_2_DEFAULT (RV9_DEC_MAX_NORMAL_WIDTH*RV9_DEC_MAX_NORMAL_HEIGHT)
#define SW_RM_SPEEDY_BOUND_RES_3_DEFAULT 0
#define SW_RM_SPEEDY_BOUND_RES_4_DEFAULT 0
#elif defined(MT6575)
#define SW_RM_SPEEDY_BOUND_RES_0_DEFAULT (1280*720)
#define SW_RM_SPEEDY_BOUND_RES_1_DEFAULT 0
#define SW_RM_SPEEDY_BOUND_RES_2_DEFAULT (RV9_DEC_MAX_NORMAL_WIDTH*RV9_DEC_MAX_NORMAL_HEIGHT)
#define SW_RM_SPEEDY_BOUND_RES_3_DEFAULT 0
#define SW_RM_SPEEDY_BOUND_RES_4_DEFAULT 0
#else
#error not support chip!
#endif /*Support Chip */
#endif /*SW_RM_LOSSY_CUSTOM_ENABLE*/
#if defined(SW_RM_SPEEDY_BOUND_RES_0_CUSTOM)
#define SW_RM_SPEEDY_BOUND_RES_0 SW_RM_SPEEDY_BOUND_RES_0_CUSTOM
#else
#define SW_RM_SPEEDY_BOUND_RES_0 SW_RM_SPEEDY_BOUND_RES_0_DEFAULT
#endif/*SW_RM_SPEEDY_BOUND_RES_0_CUSTOM*/
#if defined(SW_RM_SPEEDY_BOUND_RES_1_CUSTOM)
#define SW_RM_SPEEDY_BOUND_RES_1 SW_RM_SPEEDY_BOUND_RES_1_CUSTOM
#else
#define SW_RM_SPEEDY_BOUND_RES_1 SW_RM_SPEEDY_BOUND_RES_1_DEFAULT
#endif/*SW_RM_SPEEDY_BOUND_RES_1_CUSTOM*/
#if defined(SW_RM_SPEEDY_BOUND_RES_2_CUSTOM)
#define SW_RM_SPEEDY_BOUND_RES_2 SW_RM_SPEEDY_BOUND_RES_2_CUSTOM
#else
#define SW_RM_SPEEDY_BOUND_RES_2 SW_RM_SPEEDY_BOUND_RES_2_DEFAULT
#endif/*SW_RM_SPEEDY_BOUND_RES_2_CUSTOM*/
#if defined(SW_RM_SPEEDY_BOUND_RES_3_CUSTOM)
#define SW_RM_SPEEDY_BOUND_RES_3 SW_RM_SPEEDY_BOUND_RES_3_CUSTOM
#else
#define SW_RM_SPEEDY_BOUND_RES_3 SW_RM_SPEEDY_BOUND_RES_3_DEFAULT
#endif/*SW_RM_SPEEDY_BOUND_RES_3_CUSTOM*/
#if defined(SW_RM_SPEEDY_BOUND_RES_4_CUSTOM)
#define SW_RM_SPEEDY_BOUND_RES_4 SW_RM_SPEEDY_BOUND_RES_4_CUSTOM
#else
#define SW_RM_SPEEDY_BOUND_RES_4 SW_RM_SPEEDY_BOUND_RES_4_DEFAULT
#endif/*SW_RM_SPEEDY_BOUND_RES_4_CUSTOM*/
#if (SW_RM_SPEEDY_BOUND_RES_0 > (RV9_DEC_MAX_NORMAL_WIDTH*RV9_DEC_MAX_NORMAL_HEIGHT))
#error "Invalid SW_RM_SPEEDY_BOUND_RES_0"
#endif
#if (SW_RM_SPEEDY_BOUND_RES_1 > (RV9_DEC_MAX_NORMAL_WIDTH*RV9_DEC_MAX_NORMAL_HEIGHT))
# error "Invalid SW_RM_SPEEDY_BOUND_RES_1"
#endif
#if (SW_RM_SPEEDY_BOUND_RES_2 > (RV9_DEC_MAX_NORMAL_WIDTH*RV9_DEC_MAX_NORMAL_HEIGHT))
#error "Invalid SW_RM_SPEEDY_BOUND_RES_2"
#endif
#if (SW_RM_SPEEDY_BOUND_RES_3 > (RV9_DEC_MAX_NORMAL_WIDTH*RV9_DEC_MAX_NORMAL_HEIGHT))
#error "Invalid SW_RM_SPEEDY_BOUND_RES_3"
#endif
#if (SW_RM_SPEEDY_BOUND_RES_4 > (RV9_DEC_MAX_NORMAL_WIDTH*RV9_DEC_MAX_NORMAL_HEIGHT))
#error "Invalid SW_RM_SPEEDY_BOUND_RES_4"
#endif
typedef enum
{
INTRA = 0,
INTER = 1,
TRUEB = 2,
}RV_FrameType;
extern U32 SWRMQuerySpeedyMode(U32 height,U32 width,U32 fps, U32 bitrate);
extern U32 SWRVQuerySkipScalability(void);
extern I32 SWRMSetBufferTimeLimit(void);
extern I32 SWRMSetDBKFilterBufferTH(RV_FrameType type);
extern I32 SWRMSetFDBKFilterBufferTH(RV_FrameType type);
extern const U32* SWRMGetSkipBSetting(U32 height,U32 width,U32 Total_Buffer_Size);
extern U32 SWRMSetDBKFilterArea(void);
extern U32 SWRMSetDBKFilterBitrate(U32 height,U32 width);
#endif/*__RM_DEC_SUPPORT__*/
#endif/*RV_SW_DEC_CONFIG_H*/