forked from ~ljy/RK356X_SDK_RELEASE

hc
2023-02-13 e440ec23c5a540cdd3f7464e8779219be6fd3d95
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
148
149
150
151
152
153
154
155
156
157
/*------------------------------------------------------------------------------
--                                                                            --
--       This software is confidential and proprietary and may be used        --
--        only as expressly authorized by a licensing agreement from          --
--                                                                            --
--                            Rockchip Products .                             --
--                                                                            --
--                   (C) COPYRIGHT 2012 ROCKCHIP PRODUCTS                     --
--                            ALL RIGHTS RESERVED                             --
--                                                                            --
--                 The entire notice above must be reproduced                 --
--                  on all copies and should not be removed.                  --
--                                                                            --
--------------------------------------------------------------------------------
--
--  Description : Common Decoder API definitions
--
--------------------------------------------------------------------------------
--
--
--
------------------------------------------------------------------------------*/
#ifndef __DECAPICOMMON_H__
#define __DECAPICOMMON_H__
 
#include "vpu_type.h"
 
#define MPEG4_NOT_SUPPORTED             (RK_U32)(0x00)
#define MPEG4_SIMPLE_PROFILE            (RK_U32)(0x01)
#define MPEG4_ADVANCED_SIMPLE_PROFILE   (RK_U32)(0x02)
#define MPEG4_CUSTOM_NOT_SUPPORTED      (RK_U32)(0x00)
#define MPEG4_CUSTOM_FEATURE_1          (RK_U32)(0x01)
#define H264_NOT_SUPPORTED              (RK_U32)(0x00)
#define H264_BASELINE_PROFILE           (RK_U32)(0x01)
#define H264_MAIN_PROFILE               (RK_U32)(0x02)
#define H264_HIGH_PROFILE               (RK_U32)(0x03)
#define VC1_NOT_SUPPORTED               (RK_U32)(0x00)
#define VC1_SIMPLE_PROFILE              (RK_U32)(0x01)
#define VC1_MAIN_PROFILE                (RK_U32)(0x02)
#define VC1_ADVANCED_PROFILE            (RK_U32)(0x03)
#define MPEG2_NOT_SUPPORTED             (RK_U32)(0x00)
#define MPEG2_MAIN_PROFILE              (RK_U32)(0x01)
#define JPEG_NOT_SUPPORTED              (RK_U32)(0x00)
#define JPEG_BASELINE                   (RK_U32)(0x01)
#define JPEG_PROGRESSIVE                (RK_U32)(0x02)
#define PP_NOT_SUPPORTED                (RK_U32)(0x00)
#define PP_SUPPORTED                    (RK_U32)(0x01)
#define PP_DITHERING                    (RK_U32)(0x10000000)
#define PP_SCALING                      (RK_U32)(0x0C000000)
#define PP_DEINTERLACING                (RK_U32)(0x02000000)
#define PP_ALPHA_BLENDING               (RK_U32)(0x01000000)
#define SORENSON_SPARK_NOT_SUPPORTED    (RK_U32)(0x00)
#define SORENSON_SPARK_SUPPORTED        (RK_U32)(0x01)
#define VP6_NOT_SUPPORTED               (RK_U32)(0x00)
#define VP6_SUPPORTED                   (RK_U32)(0x01)
#define VP7_NOT_SUPPORTED               (RK_U32)(0x00)
#define VP7_SUPPORTED                   (RK_U32)(0x01)
#define VP8_NOT_SUPPORTED               (RK_U32)(0x00)
#define VP8_SUPPORTED                   (RK_U32)(0x01)
#define REF_BUF_NOT_SUPPORTED           (RK_U32)(0x00)
#define REF_BUF_SUPPORTED               (RK_U32)(0x01)
#define REF_BUF_INTERLACED              (RK_U32)(0x02)
#define REF_BUF_DOUBLE                  (RK_U32)(0x04)
#define AVS_NOT_SUPPORTED               (RK_U32)(0x00)
#define AVS_SUPPORTED                   (RK_U32)(0x01)
#define JPEG_EXT_NOT_SUPPORTED          (RK_U32)(0x00)
#define JPEG_EXT_SUPPORTED              (RK_U32)(0x01)
#define RV_NOT_SUPPORTED                (RK_U32)(0x00)
#define RV_SUPPORTED                    (RK_U32)(0x01)
#define MVC_NOT_SUPPORTED               (RK_U32)(0x00)
#define MVC_SUPPORTED                   (RK_U32)(0x01)
 
#define H264_NOT_SUPPORTED_FUSE                  (RK_U32)(0x00)
#define H264_FUSE_ENABLED                        (RK_U32)(0x01)
#define MPEG4_NOT_SUPPORTED_FUSE                 (RK_U32)(0x00)
#define MPEG4_FUSE_ENABLED                       (RK_U32)(0x01)
#define MPEG2_NOT_SUPPORTED_FUSE                 (RK_U32)(0x00)
#define MPEG2_FUSE_ENABLED                       (RK_U32)(0x01)
#define SORENSON_SPARK_NOT_SUPPORTED_FUSE        (RK_U32)(0x00)
#define SORENSON_SPARK_ENABLED                   (RK_U32)(0x01)
#define JPEG_NOT_SUPPORTED_FUSE                  (RK_U32)(0x00)
#define JPEG_FUSE_ENABLED                        (RK_U32)(0x01)
#define VP6_NOT_SUPPORTED_FUSE                   (RK_U32)(0x00)
#define VP6_FUSE_ENABLED                         (RK_U32)(0x01)
#define VP7_NOT_SUPPORTED_FUSE                   (RK_U32)(0x00)
#define VP7_FUSE_ENABLED                         (RK_U32)(0x01)
#define VP8_NOT_SUPPORTED_FUSE                   (RK_U32)(0x00)
#define VP8_FUSE_ENABLED                         (RK_U32)(0x01)
#define VC1_NOT_SUPPORTED_FUSE                   (RK_U32)(0x00)
#define VC1_FUSE_ENABLED                         (RK_U32)(0x01)
#define JPEG_PROGRESSIVE_NOT_SUPPORTED_FUSE      (RK_U32)(0x00)
#define JPEG_PROGRESSIVE_FUSE_ENABLED            (RK_U32)(0x01)
#define REF_BUF_NOT_SUPPORTED_FUSE               (RK_U32)(0x00)
#define REF_BUF_FUSE_ENABLED                     (RK_U32)(0x01)
#define AVS_NOT_SUPPORTED_FUSE                   (RK_U32)(0x00)
#define AVS_FUSE_ENABLED                         (RK_U32)(0x01)
#define RV_NOT_SUPPORTED_FUSE                    (RK_U32)(0x00)
#define RV_FUSE_ENABLED                          (RK_U32)(0x01)
#define MVC_NOT_SUPPORTED_FUSE                   (RK_U32)(0x00)
#define MVC_FUSE_ENABLED                         (RK_U32)(0x01)
 
#define PP_NOT_SUPPORTED_FUSE                    (RK_U32)(0x00)
#define PP_FUSE_ENABLED                          (RK_U32)(0x01)
#define PP_FUSE_DEINTERLACING_ENABLED            (RK_U32)(0x40000000)
#define PP_FUSE_ALPHA_BLENDING_ENABLED           (RK_U32)(0x20000000)
#define MAX_PP_OUT_WIDHT_1920_FUSE_ENABLED       (RK_U32)(0x00008000)
#define MAX_PP_OUT_WIDHT_1280_FUSE_ENABLED       (RK_U32)(0x00004000)
#define MAX_PP_OUT_WIDHT_720_FUSE_ENABLED        (RK_U32)(0x00002000)
#define MAX_PP_OUT_WIDHT_352_FUSE_ENABLED        (RK_U32)(0x00001000)
 
/* Macro to copy support flags and picture max width from DWL HW config
 * to Decoder HW config */
#define SET_DEC_BUILD_SUPPORT(decHwCfg, dwlHwCfg) \
    decHwCfg.maxDecPicWidth = dwlHwCfg.maxDecPicWidth; \
    decHwCfg.maxPpOutPicWidth = dwlHwCfg.maxPpOutPicWidth; \
    decHwCfg.h264Support = dwlHwCfg.h264Support; \
    decHwCfg.jpegSupport = dwlHwCfg.jpegSupport; \
    decHwCfg.jpegESupport = dwlHwCfg.jpegESupport; \
    decHwCfg.mpeg2Support = dwlHwCfg.mpeg2Support; \
    decHwCfg.mpeg4Support = dwlHwCfg.mpeg4Support; \
    decHwCfg.vc1Support = dwlHwCfg.vc1Support; \
    decHwCfg.ppSupport = dwlHwCfg.ppSupport; \
    decHwCfg.ppConfig = dwlHwCfg.ppConfig; \
    decHwCfg.sorensonSparkSupport = dwlHwCfg.sorensonSparkSupport; \
    decHwCfg.vp6Support = dwlHwCfg.vp6Support; \
    decHwCfg.vp7Support = dwlHwCfg.vp7Support; \
    decHwCfg.vp8Support = dwlHwCfg.vp8Support; \
    decHwCfg.refBufSupport = dwlHwCfg.refBufSupport; \
    decHwCfg.avsSupport = dwlHwCfg.avsSupport; \
    decHwCfg.rvSupport = dwlHwCfg.rvSupport; \
    decHwCfg.customMpeg4Support = dwlHwCfg.customMpeg4Support; \
    decHwCfg.mvcSupport = dwlHwCfg.mvcSupport;
 
typedef struct DecHwConfig_ {
    RK_U32 mpeg4Support;        /* one of the MPEG4 values defined above */
    RK_U32 customMpeg4Support;  /* one of the MPEG4 custom values defined above */
    RK_U32 h264Support;         /* one of the H264 values defined above */
    RK_U32 vc1Support;          /* one of the VC1 values defined above */
    RK_U32 mpeg2Support;        /* one of the MPEG2 values defined above */
    RK_U32 jpegSupport;         /* one of the JPEG values defined above */
    RK_U32 jpegProgSupport;     /* one of the Progressive JPEG values defined above */
    RK_U32 maxDecPicWidth;      /* maximum picture width in decoder */
    RK_U32 ppSupport;           /* PP_SUPPORTED or PP_NOT_SUPPORTED */
    RK_U32 ppConfig;            /* Bitwise list of PP function */
    RK_U32 maxPpOutPicWidth;    /* maximum post-processor output picture width */
    RK_U32 sorensonSparkSupport;   /* one of the SORENSON_SPARK values defined above */
    RK_U32 refBufSupport;       /* one of the REF_BUF values defined above */
    RK_U32 vp6Support;          /* one of the VP6 values defined above */
    RK_U32 vp7Support;          /* one of the VP7 values defined above */
    RK_U32 vp8Support;          /* one of the VP8 values defined above */
    RK_U32 avsSupport;          /* one of the AVS values defined above */
    RK_U32 jpegESupport;        /* one of the JPEG EXT values defined above */
    RK_U32 rvSupport;           /* one of the HUKKA values defined above */
    RK_U32 mvcSupport;          /* one of the MVC values defined above */
} DecHwConfig;
 
#endif /* __DECAPICOMMON_H__ */