1 /*############################################################################
2   # Copyright (C) 2020 Intel Corporation
3   #
4   # SPDX-License-Identifier: MIT
5   ############################################################################*/
6 
7 #ifndef __MFXDEPRECATED_H__
8 #define __MFXDEPRECATED_H__
9 
10 #include "vpl/mfxcommon.h"
11 #include "vpl/mfxsession.h"
12 #include "vpl/mfxstructures.h"
13 
14 #if defined(MFX_ONEVPL)
15 
16     #ifdef __cplusplus
17 extern "C" {
18     #endif /* __cplusplus */
19 
20 enum {
21     MFX_ERR_INCOMPATIBLE_AUDIO_PARAM = -19, /* incompatible audio parameters */
22     MFX_ERR_INVALID_AUDIO_PARAM      = -20, /* invalid audio parameters */
23 
24     MFX_WRN_INCOMPATIBLE_AUDIO_PARAM = 11, /* incompatible audio parameters */
25 };
26 
27 mfxStatus MFX_CDECL MFXVideoVPP_RunFrameVPPAsyncEx(mfxSession session,
28                                                    mfxFrameSurface1* in,
29                                                    mfxFrameSurface1* surface_work,
30                                                    mfxFrameSurface1** surface_out,
31                                                    mfxSyncPoint* syncp);
32 
33 MFX_PACK_BEGIN_STRUCT_W_PTR()
34 typedef struct {
35     mfxU32 reserved[4];
36     mfxHDL pthis;
37     mfxStatus(MFX_CDECL* Alloc)(mfxHDL pthis, mfxU32 nbytes, mfxU16 type, mfxMemId* mid);
38     mfxStatus(MFX_CDECL* Lock)(mfxHDL pthis, mfxMemId mid, mfxU8** ptr);
39     mfxStatus(MFX_CDECL* Unlock)(mfxHDL pthis, mfxMemId mid);
40     mfxStatus(MFX_CDECL* Free)(mfxHDL pthis, mfxMemId mid);
41 } mfxBufferAllocator;
42 MFX_PACK_END()
43 
44 mfxStatus MFX_CDECL MFXVideoCORE_SetBufferAllocator(mfxSession session,
45                                                     mfxBufferAllocator* allocator);
46 
47     #if defined(MFX_ENABLE_OPAQUE_MEMORY)
48         //Sanity check
49         #error MFX_ENABLE_OPAQUE_MEMORY should not be defined when 'mfxdeprecated.h' is included
50     #endif //MFX_ENABLE_OPAQUE_MEMORY
51 
52 /* IOPattern */
53 enum { MFX_IOPATTERN_IN_OPAQUE_MEMORY = 0x04, MFX_IOPATTERN_OUT_OPAQUE_MEMORY = 0x40 };
54 
55 enum { MFX_MEMTYPE_OPAQUE_FRAME = 0x0004 };
56 
57 /* Extended Buffer Ids */
58 enum { MFX_EXTBUFF_OPAQUE_SURFACE_ALLOCATION = MFX_MAKEFOURCC('O', 'P', 'Q', 'S') };
59 
60 MFX_PACK_BEGIN_STRUCT_W_PTR()
61 typedef struct {
62     mfxExtBuffer Header;
63     mfxU32 reserved1[2];
64     struct {
65         mfxFrameSurface1** Surfaces;
66         mfxU32 reserved2[5];
67         mfxU16 Type;
68         mfxU16 NumSurface;
69     } In, Out;
70 } mfxExtOpaqueSurfaceAlloc;
71 MFX_PACK_END()
72 
73 mfxStatus MFX_CDECL MFXDoWork(mfxSession session);
74 
75 mfxStatus MFX_CDECL MFXVideoENC_Query(mfxSession session, mfxVideoParam* in, mfxVideoParam* out);
76 mfxStatus MFX_CDECL MFXVideoENC_QueryIOSurf(mfxSession session,
77                                             mfxVideoParam* par,
78                                             mfxFrameAllocRequest* request);
79 mfxStatus MFX_CDECL MFXVideoENC_Init(mfxSession session, mfxVideoParam* par);
80 mfxStatus MFX_CDECL MFXVideoENC_Reset(mfxSession session, mfxVideoParam* par);
81 mfxStatus MFX_CDECL MFXVideoENC_Close(mfxSession session);
82 
83 typedef struct _mfxENCInput {
84 } mfxENCInput;
85 typedef struct _mfxENCOutput {
86 } mfxENCOutput;
87 mfxStatus MFX_CDECL MFXVideoENC_ProcessFrameAsync(mfxSession session,
88                                                   mfxENCInput* in,
89                                                   mfxENCOutput* out,
90                                                   mfxSyncPoint* syncp);
91 
92 mfxStatus MFX_CDECL MFXVideoENC_GetVideoParam(mfxSession session, mfxVideoParam* par);
93 
94 MFX_PACK_BEGIN_STRUCT_W_PTR()
95 typedef struct {
96 } mfxPAKInput;
97 MFX_PACK_END()
98 
99 MFX_PACK_BEGIN_STRUCT_W_PTR()
100 typedef struct {
101 } mfxPAKOutput;
102 MFX_PACK_END()
103 
104 mfxStatus MFX_CDECL MFXVideoPAK_Query(mfxSession session, mfxVideoParam* in, mfxVideoParam* out);
105 mfxStatus MFX_CDECL MFXVideoPAK_QueryIOSurf(mfxSession session,
106                                             mfxVideoParam* par,
107                                             mfxFrameAllocRequest request[2]);
108 mfxStatus MFX_CDECL MFXVideoPAK_Init(mfxSession session, mfxVideoParam* par);
109 mfxStatus MFX_CDECL MFXVideoPAK_Reset(mfxSession session, mfxVideoParam* par);
110 mfxStatus MFX_CDECL MFXVideoPAK_Close(mfxSession session);
111 
112 mfxStatus MFX_CDECL MFXVideoPAK_ProcessFrameAsync(mfxSession session,
113                                                   mfxPAKInput* in,
114                                                   mfxPAKOutput* out,
115                                                   mfxSyncPoint* syncp);
116 
117 mfxStatus MFX_CDECL MFXVideoPAK_GetVideoParam(mfxSession session, mfxVideoParam* par);
118 
119 enum {
120     /*!
121        This extended buffer allow to specify multi-frame submission parameters.
122     */
123     MFX_EXTBUFF_MULTI_FRAME_PARAM = MFX_MAKEFOURCC('M', 'F', 'R', 'P'),
124     /*!
125        This extended buffer allow to manage multi-frame submission in runtime.
126     */
127     MFX_EXTBUFF_MULTI_FRAME_CONTROL = MFX_MAKEFOURCC('M', 'F', 'R', 'C'),
128 };
129 
130 /* Multi-Frame Mode */
131 enum { MFX_MF_DEFAULT = 0, MFX_MF_DISABLED = 1, MFX_MF_AUTO = 2, MFX_MF_MANUAL = 3 };
132 
133 /* Multi-Frame Initialization parameters */
134 MFX_PACK_BEGIN_USUAL_STRUCT()
135 typedef struct {
136     mfxExtBuffer Header;
137 
138     mfxU16 MFMode;
139     mfxU16 MaxNumFrames;
140 
141     mfxU16 reserved[58];
142 } mfxExtMultiFrameParam;
143 MFX_PACK_END()
144 
145 /* Multi-Frame Run-time controls */
146 MFX_PACK_BEGIN_USUAL_STRUCT()
147 typedef struct {
148     mfxExtBuffer Header;
149 
150     mfxU32 Timeout; /* timeout in millisecond */
151     mfxU16 Flush; /* Flush internal frame buffer, e.g. submit all collected frames. */
152 
153     mfxU16 reserved[57];
154 } mfxExtMultiFrameControl;
155 MFX_PACK_END()
156 
157 /* RateControlMethod */
158 enum {
159     MFX_RATECONTROL_LA_EXT = 12,
160     MFX_RATECONTROL_VME    = 15,
161 };
162     #ifdef __cplusplus
163 }
164     #endif /* __cplusplus */
165 
166 #endif //MFX_ONEVPL
167 #endif //__MFXDEPRECATED_H__
168