1 // Copyright (c) 2018-2020 Intel Corporation
2 //
3 // Permission is hereby granted, free of charge, to any person obtaining a copy
4 // of this software and associated documentation files (the "Software"), to deal
5 // in the Software without restriction, including without limitation the rights
6 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 // copies of the Software, and to permit persons to whom the Software is
8 // furnished to do so, subject to the following conditions:
9 //
10 // The above copyright notice and this permission notice shall be included in all
11 // copies or substantial portions of the Software.
12 //
13 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19 // SOFTWARE.
20 
21 #ifndef _MFX_CONFIG_H_
22 #define _MFX_CONFIG_H_
23 
24 #include "mfxdefs.h"
25 
26 #ifndef MFX_DEPRECATED_OFF
27 #define MFX_DEPRECATED_OFF
28 #endif
29 
30 #ifdef MFX_VA
31     #if defined(LINUX32) || defined(LINUX64)
32         #include <va/va_version.h>
33         #undef  MFX_VA_LINUX
34         #define MFX_VA_LINUX
35     #endif
36 #endif
37 
38 #if defined(ANDROID)
39     // we don't support config auto-generation on Android and have hardcoded
40     // definition instead
41     #include "mfx_android_defs.h"
42 #else
43     // mfxconfig.h is auto-generated file containing mediasdk per-component
44     // enable defines
45     #include "mfxconfig.h"
46 
47     #if defined(AS_H264LA_PLUGIN)
48         #define MFX_ENABLE_LA_H264_VIDEO_HW
49         #undef MFX_ENABLE_H264_VIDEO_FEI_ENCODE
50     #else
51         #if MFX_VERSION >= 1025
52             #define MFX_ENABLE_MFE
53         #endif
54         #define MFX_ENABLE_VPP
55     #endif
56 #endif // #if defined(ANDROID)
57 
58 // Here follows per-codec feature enable options which as of now we don't
59 // want to expose on build system level since they are too detailed.
60 #if defined(MFX_ENABLE_H264_VIDEO_ENCODE)
61     #define MFX_ENABLE_H264_VIDEO_ENCODE_HW
62     #if MFX_VERSION >= 1023
63         #define MFX_ENABLE_H264_REPARTITION_CHECK
64     #endif
65     #if MFX_VERSION >= 1027
66         #define MFX_ENABLE_H264_ROUNDING_OFFSET
67     #endif
68     #if defined(MFX_ENABLE_H264_VIDEO_FEI_ENCODE)
69         #define MFX_ENABLE_H264_VIDEO_FEI_ENCPAK
70         #define MFX_ENABLE_H264_VIDEO_FEI_PREENC
71         #define MFX_ENABLE_H264_VIDEO_FEI_ENC
72         #define MFX_ENABLE_H264_VIDEO_FEI_PAK
73     #endif
74     #if defined(MFX_ENABLE_MCTF)
75         #define MFX_ENABLE_MCTF_IN_AVC
76     #endif
77 #endif
78 
79 #if defined(MFX_ENABLE_H265_VIDEO_ENCODE)
80     #define MFX_ENABLE_HEVCE_INTERLACE
81     #define MFX_ENABLE_HEVCE_ROI
82     #define MFX_ENABLE_HEVCE_HDR_SEI
83     #define MFX_ENABLE_HEVCE_WEIGHTED_PREDICTION
84     #define MFX_ENABLE_HEVCE_FADE_DETECTION
85     //#define MFX_ENABLE_HEVCE_DIRTY_RECT
86 #endif
87 
88 #if defined(MFX_ENABLE_VP9_VIDEO_ENCODE)
89     #define MFX_ENABLE_VP9_VIDEO_ENCODE_HW
90 #endif
91 
92 #if defined(MFX_ENABLE_VP9_VIDEO_DECODE)
93 #define MFX_ENABLE_VP9_VIDEO_DECODE_HW
94 #endif
95 
96 #if defined(MFX_ENABLE_VP8_VIDEO_DECODE)
97 #define MFX_ENABLE_VP8_VIDEO_DECODE_HW
98 #endif
99 
100 #if defined(MFX_ENABLE_VPP)
101     #define MFX_ENABLE_VPP_COMPOSITION
102     #define MFX_ENABLE_VPP_ROTATION
103     #define MFX_ENABLE_VPP_VIDEO_SIGNAL
104     #if MFX_VERSION >= MFX_VERSION_NEXT
105         #define MFX_ENABLE_VPP_RUNTIME_HSBC
106     #endif
107     //#define MFX_ENABLE_VPP_FRC
108 #endif
109 
110 #if defined(MFX_ENABLE_ASC)
111     #define MFX_ENABLE_SCENE_CHANGE_DETECTION_VPP
112 #endif
113 
114 #if (MFX_VERSION >= MFX_VERSION_NEXT) && defined(MFX_ENABLE_MCTF)
115     #define MFX_ENABLE_MCTF_EXT // extended MCTF interface
116 #endif
117 
118 #if MFX_VERSION >= 1028
119     #define MFX_ENABLE_RGBP
120     #define MFX_ENABLE_FOURCC_RGB565
121 #endif
122 
123 #if MFX_VERSION >= 1031
124     #define MFX_ENABLE_PARTIAL_BITSTREAM_OUTPUT
125 #endif
126 
127 #if defined(MFX_VA_LINUX)
128     #if VA_CHECK_VERSION(1,3,0)
129         #define MFX_ENABLE_QVBR
130     #endif
131 #endif
132 
133 #define CMAPIUPDATE
134 
135 #endif // _MFX_CONFIG_H_
136