29 class MFXFrameAllocator;
30 class BaseFrameAllocator;
31 class MFXBufferAllocator;
32 struct mfxAllocatorParams;
51 virtual mfxStatus Close() = 0;
54 virtual mfxStatus AllocFrames(mfxFrameAllocRequest *request, mfxFrameAllocResponse *response) = 0;
55 virtual mfxStatus LockFrame(mfxMemId mid, mfxFrameData *ptr) = 0;
56 virtual mfxStatus UnlockFrame(mfxMemId mid, mfxFrameData *ptr) = 0;
57 virtual mfxStatus GetFrameHDL(mfxMemId mid, mfxHDL *handle) = 0;
58 virtual mfxStatus FreeFrames(mfxFrameAllocResponse *response) = 0;
61 static mfxStatus MFX_CDECL Alloc_(mfxHDL pthis, mfxFrameAllocRequest *request, mfxFrameAllocResponse *response);
62 static mfxStatus MFX_CDECL Lock_(mfxHDL pthis, mfxMemId mid, mfxFrameData *ptr);
63 static mfxStatus MFX_CDECL Unlock_(mfxHDL pthis, mfxMemId mid, mfxFrameData *ptr);
64 static mfxStatus MFX_CDECL GetHDL_(mfxHDL pthis, mfxMemId mid, mfxHDL *handle);
65 static mfxStatus MFX_CDECL Free_(mfxHDL pthis, mfxFrameAllocResponse *response);
83 virtual mfxStatus Close();
86 virtual mfxStatus AllocFrames(mfxFrameAllocRequest *request, mfxFrameAllocResponse *response);
87 virtual mfxStatus FreeFrames(mfxFrameAllocResponse *response);
89 typedef std::list<mfxFrameAllocResponse>::iterator
Iter;
90 static const mfxU32 MEMTYPE_FROM_MASK = MFX_MEMTYPE_FROM_ENCODE | MFX_MEMTYPE_FROM_DECODE | MFX_MEMTYPE_FROM_VPPIN | MFX_MEMTYPE_FROM_VPPOUT;
99 void Reset() { memset(
this, 0,
sizeof(*
this)); }
106 virtual bool IsSame(
const mfxFrameAllocResponse& l,
const mfxFrameAllocResponse& r);
109 virtual mfxStatus CheckRequestType(mfxFrameAllocRequest *request);
113 virtual mfxStatus LockFrame(mfxMemId mid, mfxFrameData *ptr) = 0;
114 virtual mfxStatus UnlockFrame(mfxMemId mid, mfxFrameData *ptr) = 0;
115 virtual mfxStatus GetFrameHDL(mfxMemId mid, mfxHDL *handle) = 0;
118 virtual mfxStatus ReleaseResponse(mfxFrameAllocResponse *response) = 0;
120 virtual mfxStatus AllocImpl(mfxFrameAllocRequest *request, mfxFrameAllocResponse *response) = 0;
163 virtual mfxStatus AllocBuffer(mfxU32 nbytes, mfxU16 type, mfxMemId *mid) = 0;
164 virtual mfxStatus LockBuffer(mfxMemId mid, mfxU8 **ptr) = 0;
165 virtual mfxStatus UnlockBuffer(mfxMemId mid) = 0;
166 virtual mfxStatus FreeBuffer(mfxMemId mid) = 0;
169 static mfxStatus MFX_CDECL Alloc_(mfxHDL pthis, mfxU32 nbytes, mfxU16 type, mfxMemId *mid);
170 static mfxStatus MFX_CDECL Lock_(mfxHDL pthis, mfxMemId mid, mfxU8 **ptr);
171 static mfxStatus MFX_CDECL Unlock_(mfxHDL pthis, mfxMemId mid);
172 static mfxStatus MFX_CDECL Free_(mfxHDL pthis, mfxMemId mid);
mfxU16 m_type
Definition: intelbaseallocator.h:96
Definition: intelbaseallocator.h:36
std::list< mfxFrameAllocResponse > m_responses
Definition: intelbaseallocator.h:102
safe_array(T *ptr=0)
Definition: intelbaseallocator.h:126
void Reset()
Definition: intelbaseallocator.h:99
Definition: intelbaseallocator.h:43
Definition: intelbaseallocator.h:123
std::list< mfxFrameAllocResponse >::iterator Iter
Definition: intelbaseallocator.h:89
JSON (JavaScript Object Notation).
Definition: adsapi.h:16
mfxFrameAllocResponse m_response
Definition: intelbaseallocator.h:95
Definition: intelbaseallocator.h:92
~safe_array()
Definition: intelbaseallocator.h:129
Definition: intelbaseallocator.h:156
virtual ~mfxAllocatorParams()
Definition: intelbaseallocator.h:38
void reset(T *ptr)
Definition: intelbaseallocator.h:143
UniqueResponse m_externalDecoderResponse
Definition: intelbaseallocator.h:103
T * release()
Definition: intelbaseallocator.h:137
Definition: intelbaseallocator.h:76
mfxU32 m_refCount
Definition: intelbaseallocator.h:94
T * m_ptr
Definition: intelbaseallocator.h:152
UniqueResponse()
Definition: intelbaseallocator.h:98