diff --git a/libobs/CMakeLists.txt b/libobs/CMakeLists.txt index 16f82dcee..e0cbb4dce 100644 --- a/libobs/CMakeLists.txt +++ b/libobs/CMakeLists.txt @@ -180,6 +180,7 @@ set(libobs_mediaio_HEADERS media-io/media-io-defs.h media-io/video-io.h media-io/audio-io.h + media-io/audio-math.h media-io/video-frame.h media-io/format-conversion.h media-io/audio-resampler.h diff --git a/libobs/media-io/audio-math.h b/libobs/media-io/audio-math.h new file mode 100644 index 000000000..8a23d898d --- /dev/null +++ b/libobs/media-io/audio-math.h @@ -0,0 +1,43 @@ +/****************************************************************************** + Copyright (C) 2015 by Hugh Bailey + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +******************************************************************************/ + +#pragma once + +#include "../util/c99defs.h" +#include + +#ifdef _MSC_VER +#include + +#pragma warning(push) +#pragma warning(disable : 4056) +#pragma warning(disable : 4756) +#endif + +static inline float mul_to_db(const float mul) +{ + return (mul == 0.0f) ? -INFINITY : (20.0f * log10f(mul)); +} + +static inline float db_to_mul(const float db) +{ + return isfinite((double)db) ? powf(10.0f, db / 20.0f) : 0.0f; +} + +#ifdef _MSC_VER +#pragma warning(pop) +#endif