OpenShot Library | libopenshot 0.2.7
OpenMPUtilities.h
Go to the documentation of this file.
1/**
2 * @file
3 * @brief Header file for OpenMPUtilities (set some common macros)
4 * @author Jonathan Thomas <jonathan@openshot.org>
5 *
6 * @ref License
7 */
8
9/* LICENSE
10 *
11 * Copyright (c) 2008-2019 OpenShot Studios, LLC
12 * <http://www.openshotstudios.com/>. This file is part of
13 * OpenShot Library (libopenshot), an open-source project dedicated to
14 * delivering high quality video editing and animation solutions to the
15 * world. For more information visit <http://www.openshot.org/>.
16 *
17 * OpenShot Library (libopenshot) is free software: you can redistribute it
18 * and/or modify it under the terms of the GNU Lesser General Public License
19 * as published by the Free Software Foundation, either version 3 of the
20 * License, or (at your option) any later version.
21 *
22 * OpenShot Library (libopenshot) is distributed in the hope that it will be
23 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
24 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25 * GNU Lesser General Public License for more details.
26 *
27 * You should have received a copy of the GNU Lesser General Public License
28 * along with OpenShot Library. If not, see <http://www.gnu.org/licenses/>.
29 */
30
31#ifndef OPENSHOT_OPENMP_UTILITIES_H
32#define OPENSHOT_OPENMP_UTILITIES_H
33
34#include <omp.h>
35#include <algorithm>
36#include <string>
37
38#include "Settings.h"
39
40// Calculate the # of OpenMP Threads to allow
41#define OPEN_MP_NUM_PROCESSORS (std::min(omp_get_num_procs(), std::max(2, openshot::Settings::Instance()->OMP_THREADS) ))
42#define FF_NUM_PROCESSORS (std::min(omp_get_num_procs(), std::max(2, openshot::Settings::Instance()->FF_THREADS) ))
43
44// Set max-active-levels to the max supported, if possible
45// (supported_active_levels is OpenMP 5.0 (November 2018) or later, only.)
46#if (_OPENMP >= 201811)
47 #define OPEN_MP_MAX_ACTIVE omp_get_supported_active_levels()
48#else
49 #define OPEN_MP_MAX_ACTIVE OPEN_MP_NUM_PROCESSORS
50#endif
51
52#endif
Header file for global Settings class.