FFCuContextManager.h 695 Bytes

#include<map>
#include<string>

extern "C"
{
	#include <libavcodec/avcodec.h> 
	#include <libavdevice/avdevice.h> 
	#include <libavformat/avformat.h> 
	#include <libavfilter/avfilter.h> 
	#include <libavutil/avutil.h> 
    #include <libavutil/pixdesc.h> 
	#include <libswscale/swscale.h>
}

using namespace std;

class FFCuContextManager{
public:
    static FFCuContextManager* getInstance(){
		static FFCuContextManager* singleton = nullptr;
		if (singleton == nullptr){
			singleton = new FFCuContextManager();
		}
		return singleton;
	}

    AVBufferRef *getCuCtx(string gpuid);

private:
    FFCuContextManager(){}
	~FFCuContextManager();

private:
    map<string,AVBufferRef *> ctxMap;

};