1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
/*############################################################################
# Copyright (C) 2005 Intel Corporation
#
# SPDX-License-Identifier: MIT
############################################################################*/
#ifndef __PIPELINE_USER_H__
#define __PIPELINE_USER_H__
#include "pipeline_encode.h"
#include "rotate_plugin_api.h"
#include "vm/so_defs.h"
#ifndef MFX_VERSION
#error MFX_VERSION not defined
#endif
/* This class implements the following pipeline: user plugin (frame rotation) -> mfxENCODE */
class CUserPipeline : public CEncodingPipeline {
public:
CUserPipeline();
virtual ~CUserPipeline();
virtual mfxStatus Init(sInputParams* pParams);
virtual mfxStatus Run();
virtual void Close();
virtual mfxStatus ResetMFXComponents(sInputParams* pParams);
virtual void PrintStreamInfo();
virtual mfxStatus FillBuffers();
protected:
msdk_so_handle m_PluginModule;
mfxFrameSurface1* m_pPluginSurfaces; // frames array for rotate input
mfxFrameAllocResponse m_PluginResponse; // memory allocation response for rotate plugin
mfxVideoParam m_pluginVideoParams;
RotateParam m_RotateParams;
mfxU32 m_nSyncOpTimeout; // SyncOperation timeout in msec
virtual mfxStatus InitRotateParam(sInputParams* pParams);
virtual mfxStatus AllocFrames();
virtual void DeleteFrames();
};
#endif // __PIPELINE_USER_H__
|