void V4L::init(const CameraProps & props) { dev_name = "/dev/" + props.device; if (openDevice()) { getDeviceCapabilities(); getVideoProperty(0); getBufferSize(); } else LOG(LERROR) << "function: V4L\n"; }
/** * * @param avctx * @return */ static bool probeCuda() { ADM_info( "Probing cuda\n"); if(!loadCuda()) { ADM_warning("Cannot load cuda\n"); return false; } ADM_warning("Cuda loaded, probing..\n"); if(!cudaCall(init(0))) return false; int deviceCount=0; if(!cudaCall(getDeviceCount(&deviceCount))) return false; if (!deviceCount) { ADM_warning( "No Cuda device available\n"); return false; } ADM_info( "found %d CUDA devices \n", deviceCount); for (int i = 0; i < deviceCount; ++i) { CUdevice dev; char chipName[128]; int major,minor,ver; cudaAbortOnFail(getDevice(&dev,i)); cudaAbortOnFail(getDeviceName(chipName,sizeof(chipName),dev)); cudaAbortOnFail(getDeviceCapabilities(&major,&minor,dev)); ver = (major << 4) | minor; ADM_info("Found chip, GPU %s, SM %d.d",chipName,major,minor); if(ver>=0x30) { ADM_info(" this chip has nvenc"); if(!nvEncAvailable) { nvEncAvailable=true; selectedDevice=dev; } } } return nvEncAvailable; abortCudaProbe: return false; }