1 /*############################################################################
2   # Copyright (C) 2017-2020 Intel Corporation
3   #
4   # SPDX-License-Identifier: MIT
5   ############################################################################*/
6 
7 //
8 // WARNING:
9 // this file doesn't contain an include guard by design.
10 // The file may be included into a source file many times.
11 // That is why this header doesn't contain any include directive.
12 // Please, do no try to fix it.
13 //
14 // NOLINT(build/header_guard)
15 
16 // Use define API_VERSION to set the API of functions listed further
17 // When new functions are added new section with functions declarations must be started with updated define
18 
19 //
20 // API version 1.0 functions
21 //
22 
23 // API version where a function is added. Minor value should precedes the major value
24 #define API_VERSION \
25     {               \
26         { 0, 1 }    \
27     }
28 
29 FUNCTION(mfxStatus, MFXQueryIMPL, (mfxSession session, mfxIMPL *impl), (session, impl))
30 FUNCTION(mfxStatus, MFXQueryVersion, (mfxSession session, mfxVersion *version), (session, version))
31 
32 // CORE interface functions
33 FUNCTION(mfxStatus,
34          MFXVideoCORE_SetFrameAllocator,
35          (mfxSession session, mfxFrameAllocator *allocator),
36          (session, allocator))
37 FUNCTION(mfxStatus,
38          MFXVideoCORE_SetHandle,
39          (mfxSession session, mfxHandleType type, mfxHDL hdl),
40          (session, type, hdl))
41 FUNCTION(mfxStatus,
42          MFXVideoCORE_GetHandle,
43          (mfxSession session, mfxHandleType type, mfxHDL *hdl),
44          (session, type, hdl))
45 
46 FUNCTION(mfxStatus,
47          MFXVideoCORE_SyncOperation,
48          (mfxSession session, mfxSyncPoint syncp, mfxU32 wait),
49          (session, syncp, wait))
50 
51 // ENCODE interface functions
52 FUNCTION(mfxStatus,
53          MFXVideoENCODE_Query,
54          (mfxSession session, mfxVideoParam *in, mfxVideoParam *out),
55          (session, in, out))
56 FUNCTION(mfxStatus,
57          MFXVideoENCODE_QueryIOSurf,
58          (mfxSession session, mfxVideoParam *par, mfxFrameAllocRequest *request),
59          (session, par, request))
60 FUNCTION(mfxStatus, MFXVideoENCODE_Init, (mfxSession session, mfxVideoParam *par), (session, par))
61 FUNCTION(mfxStatus, MFXVideoENCODE_Reset, (mfxSession session, mfxVideoParam *par), (session, par))
62 FUNCTION(mfxStatus, MFXVideoENCODE_Close, (mfxSession session), (session))
63 
64 FUNCTION(mfxStatus,
65          MFXVideoENCODE_GetVideoParam,
66          (mfxSession session, mfxVideoParam *par),
67          (session, par))
68 FUNCTION(mfxStatus,
69          MFXVideoENCODE_GetEncodeStat,
70          (mfxSession session, mfxEncodeStat *stat),
71          (session, stat))
72 FUNCTION(mfxStatus,
73          MFXVideoENCODE_EncodeFrameAsync,
74          (mfxSession session,
75           mfxEncodeCtrl *ctrl,
76           mfxFrameSurface1 *surface,
77           mfxBitstream *bs,
78           mfxSyncPoint *syncp),
79          (session, ctrl, surface, bs, syncp))
80 
81 // DECODE interface functions
82 FUNCTION(mfxStatus,
83          MFXVideoDECODE_Query,
84          (mfxSession session, mfxVideoParam *in, mfxVideoParam *out),
85          (session, in, out))
86 FUNCTION(mfxStatus,
87          MFXVideoDECODE_DecodeHeader,
88          (mfxSession session, mfxBitstream *bs, mfxVideoParam *par),
89          (session, bs, par))
90 FUNCTION(mfxStatus,
91          MFXVideoDECODE_QueryIOSurf,
92          (mfxSession session, mfxVideoParam *par, mfxFrameAllocRequest *request),
93          (session, par, request))
94 FUNCTION(mfxStatus, MFXVideoDECODE_Init, (mfxSession session, mfxVideoParam *par), (session, par))
95 FUNCTION(mfxStatus, MFXVideoDECODE_Reset, (mfxSession session, mfxVideoParam *par), (session, par))
96 FUNCTION(mfxStatus, MFXVideoDECODE_Close, (mfxSession session), (session))
97 
98 FUNCTION(mfxStatus,
99          MFXVideoDECODE_GetVideoParam,
100          (mfxSession session, mfxVideoParam *par),
101          (session, par))
102 FUNCTION(mfxStatus,
103          MFXVideoDECODE_GetDecodeStat,
104          (mfxSession session, mfxDecodeStat *stat),
105          (session, stat))
106 FUNCTION(mfxStatus,
107          MFXVideoDECODE_SetSkipMode,
108          (mfxSession session, mfxSkipMode mode),
109          (session, mode))
110 FUNCTION(mfxStatus,
111          MFXVideoDECODE_GetPayload,
112          (mfxSession session, mfxU64 *ts, mfxPayload *payload),
113          (session, ts, payload))
114 FUNCTION(mfxStatus,
115          MFXVideoDECODE_DecodeFrameAsync,
116          (mfxSession session,
117           mfxBitstream *bs,
118           mfxFrameSurface1 *surface_work,
119           mfxFrameSurface1 **surface_out,
120           mfxSyncPoint *syncp),
121          (session, bs, surface_work, surface_out, syncp))
122 
123 // VPP interface functions
124 FUNCTION(mfxStatus,
125          MFXVideoVPP_Query,
126          (mfxSession session, mfxVideoParam *in, mfxVideoParam *out),
127          (session, in, out))
128 FUNCTION(mfxStatus,
129          MFXVideoVPP_QueryIOSurf,
130          (mfxSession session, mfxVideoParam *par, mfxFrameAllocRequest *request),
131          (session, par, request))
132 FUNCTION(mfxStatus, MFXVideoVPP_Init, (mfxSession session, mfxVideoParam *par), (session, par))
133 FUNCTION(mfxStatus, MFXVideoVPP_Reset, (mfxSession session, mfxVideoParam *par), (session, par))
134 FUNCTION(mfxStatus, MFXVideoVPP_Close, (mfxSession session), (session))
135 
136 FUNCTION(mfxStatus,
137          MFXVideoVPP_GetVideoParam,
138          (mfxSession session, mfxVideoParam *par),
139          (session, par))
140 FUNCTION(mfxStatus, MFXVideoVPP_GetVPPStat, (mfxSession session, mfxVPPStat *stat), (session, stat))
141 FUNCTION(mfxStatus,
142          MFXVideoVPP_RunFrameVPPAsync,
143          (mfxSession session,
144           mfxFrameSurface1 *in,
145           mfxFrameSurface1 *out,
146           mfxExtVppAuxData *aux,
147           mfxSyncPoint *syncp),
148          (session, in, out, aux, syncp))
149 
150 #undef API_VERSION
151 
152 //
153 // API version 1.1 functions
154 //
155 
156 #define API_VERSION \
157     {               \
158         { 1, 1 }    \
159     }
160 
161 FUNCTION(mfxStatus, MFXDisjoinSession, (mfxSession session), (session))
162 FUNCTION(mfxStatus, MFXSetPriority, (mfxSession session, mfxPriority priority), (session, priority))
163 FUNCTION(mfxStatus,
164          MFXGetPriority,
165          (mfxSession session, mfxPriority *priority),
166          (session, priority))
167 
168 #undef API_VERSION
169 
170 #define API_VERSION \
171     {               \
172         { 19, 1 }   \
173     }
174 
175 FUNCTION(mfxStatus,
176          MFXVideoCORE_QueryPlatform,
177          (mfxSession session, mfxPlatform *platform),
178          (session, platform))
179 
180 #undef API_VERSION
181