彻底改版2.0
This commit is contained in:
55
video/playffmpeg/ffmpeg/ffmpeg3/include/mfx/mfxplugin++.h
Normal file
55
video/playffmpeg/ffmpeg/ffmpeg3/include/mfx/mfxplugin++.h
Normal file
@@ -0,0 +1,55 @@
|
||||
/* ****************************************************************************** *\
|
||||
|
||||
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) 2011 Intel Corporation. All Rights Reserved.
|
||||
|
||||
|
||||
File Name: mfxplugin++.h
|
||||
|
||||
\* ****************************************************************************** */
|
||||
|
||||
#ifndef __MFXPLUGINPLUSPLUS_H
|
||||
#define __MFXPLUGINPLUSPLUS_H
|
||||
|
||||
#include "mfxvideo.h"
|
||||
#include "mfxplugin.h"
|
||||
|
||||
class MFXPlugin
|
||||
{
|
||||
public:
|
||||
virtual mfxStatus mfxPluginInit(mfxCoreInterface *core) = 0;
|
||||
virtual mfxStatus mfxPluginClose() = 0;
|
||||
virtual mfxStatus mfxGetPluginParam(mfxPluginParam *par) = 0;
|
||||
virtual mfxStatus mfxSubmit(const mfxHDL *in, mfxU32 in_num, const mfxHDL *out, mfxU32 out_num, mfxThreadTask *task) = 0;
|
||||
virtual mfxStatus mfxExecute(mfxThreadTask task, mfxU32 uid_p, mfxU32 uid_a) = 0;
|
||||
virtual mfxStatus mfxFreeResources(mfxThreadTask task, mfxStatus sts) = 0;
|
||||
};
|
||||
|
||||
/* Class adapter between "C" structure mfxPlugin and C++ interface MFXPlugin */
|
||||
class MFXPluginAdapter : public mfxPlugin
|
||||
{
|
||||
public:
|
||||
MFXPluginAdapter(MFXPlugin *pPlugin)
|
||||
{
|
||||
pthis = pPlugin;
|
||||
PluginInit = MFXPluginAdapter::_PluginInit;
|
||||
PluginClose = MFXPluginAdapter::_PluginClose;
|
||||
GetPluginParam = MFXPluginAdapter::_GetPluginParam;
|
||||
Submit = MFXPluginAdapter::_Submit;
|
||||
Execute = MFXPluginAdapter::_Execute;
|
||||
FreeResources = MFXPluginAdapter::_FreeResources;
|
||||
}
|
||||
|
||||
private:
|
||||
static mfxStatus _PluginInit(mfxHDL pthis, mfxCoreInterface *core) { return ((MFXPlugin*)pthis)->mfxPluginInit(core); }
|
||||
static mfxStatus _PluginClose(mfxHDL pthis) { return ((MFXPlugin*)pthis)->mfxPluginClose(); }
|
||||
static mfxStatus _GetPluginParam(mfxHDL pthis, mfxPluginParam *par) { return ((MFXPlugin*)pthis)->mfxGetPluginParam(par); }
|
||||
static mfxStatus _Submit(mfxHDL pthis, const mfxHDL *in, mfxU32 in_num, const mfxHDL *out, mfxU32 out_num, mfxThreadTask *task) { return ((MFXPlugin*)pthis)->mfxSubmit(in, in_num, out, out_num, task); }
|
||||
static mfxStatus _Execute(mfxHDL pthis, mfxThreadTask task, mfxU32 thread_id, mfxU32 call_count) { return ((MFXPlugin*)pthis)->mfxExecute(task, thread_id, call_count); }
|
||||
static mfxStatus _FreeResources(mfxHDL pthis, mfxThreadTask task, mfxStatus sts) { return ((MFXPlugin*)pthis)->mfxFreeResources(task, sts); }
|
||||
};
|
||||
|
||||
#endif // __MFXPLUGINPLUSPLUS_H
|
||||
Reference in New Issue
Block a user