/* * Copyright (C) 2015-2017 Intel Corporation * Copyright (c) 2017, Fuzhou Rockchip Electronics Co., Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _CAMERA3_RKISP2FecUnit_H_ #define _CAMERA3_RKISP2FecUnit_H_ #include #include using __createGLClass = void *(*)(); using __distortionByGpuInit = int (*)(void *p, int sw, int sh, int mapw, int maph); using __distortionByGpuDeinit = int (*)(void *p); using __distortionByGpuProcess = void *(*)(void *p, int inputfd, int inWidth, int inHeight, int infmt, int outputfd, int outWidth, int outHeigh, int outfmt, int op); using __createFenceFd = void *(*)(void *p); using __waitFence = int (*)(void *p, void *fence, int value); using __distortionByGpuSyncFenceFd = int (*)(void *p); class RKISP2FecUnit { private: void loadDistortionGlLibray(); void *glClass; void *dso; int done_init; int width_; int height_; mutable std::mutex mtx; // static RKISP2FecUnit *mInstance; __createGLClass createGLClass; __createFenceFd createFenceFd; __waitFence waitFencfd; __distortionByGpuInit distortionByGpuInit; __distortionByGpuDeinit distortionByGpuDeinit; __distortionByGpuSyncFenceFd distortionSyncFenceFd; __distortionByGpuProcess distortionByGpuProcess; public: RKISP2FecUnit(); ~RKISP2FecUnit(); void calculateMeshGridSize(int width, int height, int &meshW, int &meshH); int doFecProcess(int inW, int inH, int inFd, int inFormat, int outW, int outH, int outFd, int outFormat, int &fenceFd); int distortionInit(int width, int height); int distortionDeinit(); // static RKISP2FecUnit *getInstance(); }; #endif