91 lines
3.2 KiB
C
91 lines
3.2 KiB
C
/******************************************************************************* *\
|
|
|
|
INTEL CORPORATION PROPRIETARY INFORMATION
|
|
This software is supplied under the terms of a license agreement or nondisclosure
|
|
agreement with Intel Corporation and may not be copied or disclosed except in
|
|
accordance with the terms of that agreement
|
|
Copyright(c) 2007-2011 Intel Corporation. All Rights Reserved.
|
|
|
|
File Name: mfxplugin.h
|
|
|
|
*******************************************************************************/
|
|
#ifndef __MFXPLUGIN_H__
|
|
#define __MFXPLUGIN_H__
|
|
#include "mfxvideo.h"
|
|
|
|
#pragma warning(disable: 4201)
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
{
|
|
#endif /* __cplusplus */
|
|
|
|
typedef enum {
|
|
MFX_THREADPOLICY_SERIAL = 0,
|
|
MFX_THREADPOLICY_PARALLEL = 1
|
|
} mfxThreadPolicy;
|
|
|
|
typedef struct mfxPluginParam {
|
|
mfxU32 reserved[14];
|
|
mfxThreadPolicy ThreadPolicy;
|
|
mfxU32 MaxThreadNum;
|
|
} mfxPluginParam;
|
|
|
|
typedef struct mfxCoreParam{
|
|
mfxU32 reserved[13];
|
|
mfxIMPL Impl;
|
|
mfxVersion Version;
|
|
mfxU32 NumWorkingThread;
|
|
} mfxCoreParam;
|
|
|
|
typedef struct mfxCoreInterface {
|
|
mfxHDL pthis;
|
|
|
|
mfxHDL reserved1[2];
|
|
mfxFrameAllocator FrameAllocator;
|
|
mfxBufferAllocator reserved3;
|
|
|
|
mfxStatus (MFX_CDECL *GetCoreParam)(mfxHDL pthis, mfxCoreParam *par);
|
|
mfxStatus (MFX_CDECL *GetHandle) (mfxHDL pthis, mfxHandleType type, mfxHDL *handle);
|
|
mfxStatus (MFX_CDECL *IncreaseReference) (mfxHDL pthis, mfxFrameData *fd);
|
|
mfxStatus (MFX_CDECL *DecreaseReference) (mfxHDL pthis, mfxFrameData *fd);
|
|
mfxStatus (MFX_CDECL *CopyFrame) (mfxHDL pthis, mfxFrameSurface1 *dst, mfxFrameSurface1 *src);
|
|
mfxStatus (MFX_CDECL *CopyBuffer)(mfxHDL pthis, mfxU8 *dst, mfxU32 size, mfxFrameSurface1 *src);
|
|
|
|
mfxStatus (MFX_CDECL *MapOpaqueSurface)(mfxHDL pthis, mfxU32 num, mfxU32 type, mfxFrameSurface1 **op_surf);
|
|
mfxStatus (MFX_CDECL *UnmapOpaqueSurface)(mfxHDL pthis, mfxU32 num, mfxU32 type, mfxFrameSurface1 **op_surf);
|
|
|
|
mfxStatus (MFX_CDECL *GetRealSurface)(mfxHDL pthis, mfxFrameSurface1 *op_surf, mfxFrameSurface1 **surf);
|
|
mfxStatus (MFX_CDECL *GetOpaqueSurface)(mfxHDL pthis, mfxFrameSurface1 *surf, mfxFrameSurface1 **op_surf);
|
|
|
|
mfxHDL reserved4[4];
|
|
} mfxCoreInterface;
|
|
|
|
typedef struct mfxPlugin{
|
|
mfxHDL pthis;
|
|
|
|
mfxStatus (MFX_CDECL *PluginInit) (mfxHDL pthis, mfxCoreInterface *core);
|
|
mfxStatus (MFX_CDECL *PluginClose) (mfxHDL pthis);
|
|
|
|
mfxStatus (MFX_CDECL *GetPluginParam)(mfxHDL pthis, mfxPluginParam *par);
|
|
|
|
mfxStatus (MFX_CDECL *Submit)(mfxHDL pthis, const mfxHDL *in, mfxU32 in_num, const mfxHDL *out, mfxU32 out_num, mfxThreadTask *task);
|
|
mfxStatus (MFX_CDECL *Execute)(mfxHDL pthis, mfxThreadTask task, mfxU32 uid_p, mfxU32 uid_a);
|
|
mfxStatus (MFX_CDECL *FreeResources)(mfxHDL pthis, mfxThreadTask task, mfxStatus sts);
|
|
|
|
mfxHDL reserved[9];
|
|
} mfxPlugin;
|
|
|
|
|
|
|
|
mfxStatus MFX_CDECL MFXVideoUSER_Register(mfxSession session, mfxU32 type, const mfxPlugin *par);
|
|
mfxStatus MFX_CDECL MFXVideoUSER_Unregister(mfxSession session, mfxU32 type);
|
|
|
|
mfxStatus MFX_CDECL MFXVideoUSER_ProcessFrameAsync(mfxSession session, const mfxHDL *in, mfxU32 in_num, const mfxHDL *out, mfxU32 out_num, mfxSyncPoint *syncp);
|
|
|
|
#ifdef __cplusplus
|
|
} // extern "C"
|
|
#endif /* __cplusplus */
|
|
|
|
#endif /* __MFXPLUGIN_H__ */
|