diff --git a/openbr/plugins/cuda/MatManager.cu b/openbr/plugins/cuda/MatManager.cu index 1e80cd8..41d1137 100644 --- a/openbr/plugins/cuda/MatManager.cu +++ b/openbr/plugins/cuda/MatManager.cu @@ -41,7 +41,7 @@ namespace br { namespace cuda { sem_init(_matSemaphore, 0, _numMats); } - int MatManager::reserve(Mat *mat) { + MatManager::matindex MatManager::reserve(Mat *mat) { int reservedMatIndex = 0; //std::cout << "Reserving" << std::endl << std::flush; @@ -82,7 +82,7 @@ namespace br { namespace cuda { return reservedMatIndex; } - void MatManager::upload(int reservedMatIndex, Mat& mat) { + void MatManager::upload(MatManager::matindex reservedMatIndex, Mat& mat) { // upload the image /* pthread_mutex_lock(_matsDimensionLock); @@ -95,7 +95,7 @@ namespace br { namespace cuda { cudaMemcpy(reservedMat, mat.ptr(), mat.rows * mat.cols, cudaMemcpyHostToDevice); } - void MatManager::download(int reservedMatIndex, Mat& dstMat) { + void MatManager::download(MatManager::matindex reservedMatIndex, Mat& dstMat) { /* pthread_mutex_lock(_matsDimensionLock); reservedMat->download(dstMat); @@ -108,7 +108,7 @@ namespace br { namespace cuda { cudaMemcpy(dstMat.ptr(), reservedMat, dimension, cudaMemcpyDeviceToHost); } - void MatManager::release(int reservedMatIndex) { + void MatManager::release(MatManager::matindex reservedMatIndex) { uint8_t* reservedMat = _mats[reservedMatIndex]; pthread_mutex_lock(_matTakenLock); bool foundMatch = false; @@ -185,7 +185,7 @@ namespace br { namespace cuda { std::cout << "can't release mat at address: " << gpuMat << std::endl << std::flush; } */ - uint8_t* MatManager::get_mat_pointer_from_index(int matIndex) { + uint8_t* MatManager::get_mat_pointer_from_index(MatManager::matindex matIndex) { return _mats[matIndex]; } diff --git a/openbr/plugins/cuda/MatManager.hpp b/openbr/plugins/cuda/MatManager.hpp index 2da9741..b7713eb 100644 --- a/openbr/plugins/cuda/MatManager.hpp +++ b/openbr/plugins/cuda/MatManager.hpp @@ -25,13 +25,14 @@ namespace br { namespace cuda { sem_t* _matSemaphore; public: + typedef int matindex; MatManager(int num); int reserve(Mat *mat); - void upload(int reservedMatIndex, Mat& mat); - void download(int reservedMatIndex, Mat& dstMat); - void release(int matIndex); - uint8_t* get_mat_pointer_from_index(int matIndex); + void upload(matindex reservedMatIndex, Mat& mat); + void download(matindex reservedMatIndex, Mat& dstMat); + void release(matindex matIndex); + uint8_t* get_mat_pointer_from_index(matindex matIndex); ~MatManager(); //void printMats(); diff --git a/openbr/plugins/cuda/cudalbp.cpp b/openbr/plugins/cuda/cudalbp.cpp index dccd90c..d7756a8 100644 --- a/openbr/plugins/cuda/cudalbp.cpp +++ b/openbr/plugins/cuda/cudalbp.cpp @@ -154,8 +154,8 @@ class CUDALBPTransform : public UntrainableTransform void project(const Template &src, Template &dst) const { Mat& m = (Mat&)src.m(); - int a; - int b; + cuda::MatManager::matindex a; + cuda::MatManager::matindex b; a = matManager->reserve(&m); // std::cout << "m: " << m.size() << ", " << m.type() << std::endl << std::flush; // std::cout << "a: " << a->size() << ", " << a->type() << std::endl << std::flush;