Operating System Info
Other
Other OS
Gentoo Linux (amd64 musl libc, LLVM/libc++ profile)
OBS Studio Version
Git
OBS Studio Version (Other)
27ac23e
OBS Studio Log URL
N/A
OBS Studio Crash Log URL
No response
Expected Behavior
OBS Studio compiles fine adding the functional header (see https://en.cppreference.com/cpp/utility/functional/function)
--- a/frontend/utility/BasicOutputHandler.hpp
+++ b/frontend/utility/BasicOutputHandler.hpp
@@ -7,6 +7,7 @@
#include <util/dstr.hpp>
#include <future>
+#include <functional>
#define RTMP_PROTOCOL "rtmp"
#define SRT_PROTOCOL "srt"
Current Behavior
[369/445] /usr/lib/llvm/23/bin/clang++ -DDL_D3D11=\"\" -DDL_METAL=\"\" -DDL_OPENGL=\"libobs-opengl.so.30\" -DENABLE_HEVC -DOBS_INSTALL_PREFIX=\"/usr\" -DQT_CORE_LIB -DQT_DBUS_LIB -DQT_ENABLE_STRICT_MODE_UP_TO=0xFF0000 -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DQT_SVG_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -DSAFE_MODULES="\"frontend-tools|image-source|linux-alsa|linux-capture|linux-pipewire|obs-ffmpeg|obs-filters|obs-outputs|obs-transitions|obs-vst|obs-x264|rtmp-services\"" -DSIMDE_ENABLE_OPENMP -I/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999_build/frontend -I/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/frontend -I/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999_build/config -I/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/libobs -I/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/frontend/api -I/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/deps/json11 -I/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/shared/bpm -I/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/deps/libcaption -I/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/shared/qt/slider-ignorewheel -I/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/shared/qt/idian/include -I/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/shared/properties-view -I/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/shared/qt/wrappers -I/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/shared/qt/plain-text-edit -I/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/shared/qt/vertical-scroll-area -I/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/shared/qt/icon-label -isystem /var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999_build/frontend/obs-studio_autogen/include -isystem /usr/include/qt6/QtCore -isystem /usr/include/qt6 -isystem /usr/lib/qt6/mkspecs/linux-clang -isystem /usr/include/qt6/QtWidgets -isystem /usr/include/qt6/QtGui -isystem /usr/include/qt6/QtSvg -isystem /usr/include/qt6/QtXml -isystem /usr/include/qt6/QtNetwork -isystem /usr/include/qt6/QtDBus -isystem /usr/include/pci -Werror=odr -Werror=conditional-type-mismatch -Werror=pointer-type-mismatch -Werror=selector-type-mismatch -Werror=strict-aliasing -march=native -O3 -g0 -D_FORTIFY_SOURCE=3 -DNDEBUG -stdlib=libc++ -std=c++17 -fvisibility=hidden -fvisibility-inlines-hidden -fopenmp-simd -fno-strict-aliasing -Wno-trigraphs -Wno-missing-field-initializers -Wno-missing-prototypes -Werror=return-type -Wunreachable-code -Wquoted-include-in-framework-header -Wno-missing-braces -Wparentheses -Wswitch -Wno-unused-function -Wno-unused-label -Wunused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wuninitialized -Wno-unknown-pragmas -Wfour-char-constants -Wconstant-conversion -Wno-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wnon-literal-null-conversion -Wsign-compare -Wshorten-64-to-32 -Wpointer-sign -Wnewline-eof -Wno-implicit-fallthrough -Wdeprecated-declarations -Wno-sign-conversion -Winfinite-recursion -Wcomma -Wno-strict-prototypes -Wno-semicolon-before-method-body -Wformat-security -Wvla -Wno-error=shorten-64-to-32 -Wno-non-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wno-shadow -Winvalid-offsetof -Wmove -Werror=block-capture-autoreleasing -Wrange-loop-analysis -Wno-unqualified-std-cast-call -fno-direct-access-external-data -MD -MT frontend/CMakeFiles/obs-studio.dir/utility/SimpleOutput.cpp.o -MF frontend/CMakeFiles/obs-studio.dir/utility/SimpleOutput.cpp.o.d -o frontend/CMakeFiles/obs-studio.dir/utility/SimpleOutput.cpp.o -c /var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/frontend/utility/SimpleOutput.cpp
FAILED: [code=1] frontend/CMakeFiles/obs-studio.dir/utility/SimpleOutput.cpp.o
/usr/lib/llvm/23/bin/clang++ -DDL_D3D11=\"\" -DDL_METAL=\"\" -DDL_OPENGL=\"libobs-opengl.so.30\" -DENABLE_HEVC -DOBS_INSTALL_PREFIX=\"/usr\" -DQT_CORE_LIB -DQT_DBUS_LIB -DQT_ENABLE_STRICT_MODE_UP_TO=0xFF0000 -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DQT_SVG_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -DSAFE_MODULES="\"frontend-tools|image-source|linux-alsa|linux-capture|linux-pipewire|obs-ffmpeg|obs-filters|obs-outputs|obs-transitions|obs-vst|obs-x264|rtmp-services\"" -DSIMDE_ENABLE_OPENMP -I/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999_build/frontend -I/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/frontend -I/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999_build/config -I/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/libobs -I/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/frontend/api -I/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/deps/json11 -I/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/shared/bpm -I/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/deps/libcaption -I/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/shared/qt/slider-ignorewheel -I/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/shared/qt/idian/include -I/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/shared/properties-view -I/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/shared/qt/wrappers -I/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/shared/qt/plain-text-edit -I/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/shared/qt/vertical-scroll-area -I/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/shared/qt/icon-label -isystem /var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999_build/frontend/obs-studio_autogen/include -isystem /usr/include/qt6/QtCore -isystem /usr/include/qt6 -isystem /usr/lib/qt6/mkspecs/linux-clang -isystem /usr/include/qt6/QtWidgets -isystem /usr/include/qt6/QtGui -isystem /usr/include/qt6/QtSvg -isystem /usr/include/qt6/QtXml -isystem /usr/include/qt6/QtNetwork -isystem /usr/include/qt6/QtDBus -isystem /usr/include/pci -Werror=odr -Werror=conditional-type-mismatch -Werror=pointer-type-mismatch -Werror=selector-type-mismatch -Werror=strict-aliasing -march=native -O3 -g0 -D_FORTIFY_SOURCE=3 -DNDEBUG -stdlib=libc++ -std=c++17 -fvisibility=hidden -fvisibility-inlines-hidden -fopenmp-simd -fno-strict-aliasing -Wno-trigraphs -Wno-missing-field-initializers -Wno-missing-prototypes -Werror=return-type -Wunreachable-code -Wquoted-include-in-framework-header -Wno-missing-braces -Wparentheses -Wswitch -Wno-unused-function -Wno-unused-label -Wunused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wuninitialized -Wno-unknown-pragmas -Wfour-char-constants -Wconstant-conversion -Wno-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wnon-literal-null-conversion -Wsign-compare -Wshorten-64-to-32 -Wpointer-sign -Wnewline-eof -Wno-implicit-fallthrough -Wdeprecated-declarations -Wno-sign-conversion -Winfinite-recursion -Wcomma -Wno-strict-prototypes -Wno-semicolon-before-method-body -Wformat-security -Wvla -Wno-error=shorten-64-to-32 -Wno-non-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wno-shadow -Winvalid-offsetof -Wmove -Werror=block-capture-autoreleasing -Wrange-loop-analysis -Wno-unqualified-std-cast-call -fno-direct-access-external-data -MD -MT frontend/CMakeFiles/obs-studio.dir/utility/SimpleOutput.cpp.o -MF frontend/CMakeFiles/obs-studio.dir/utility/SimpleOutput.cpp.o.d -o frontend/CMakeFiles/obs-studio.dir/utility/SimpleOutput.cpp.o -c /var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/frontend/utility/SimpleOutput.cpp
In file included from /var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/frontend/utility/SimpleOutput.cpp:1:
In file included from /var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/frontend/utility/SimpleOutput.hpp:3:
/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/frontend/utility/BasicOutputHandler.hpp:17:43: error: no template named 'function' in namespace 'std'
17 | using SetupStreamingContinuation_t = std::function<void(bool)>;
| ~~~~~^
/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/frontend/utility/BasicOutputHandler.hpp:74:8: error: unknown type name 'SetupStreamingContinuation_t'
74 | SetupStreamingContinuation_t continuation) = 0;
| ^
/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/frontend/utility/BasicOutputHandler.hpp:108:18: error: no template named 'function' in namespace 'std'
108 | std::function<void(std::optional<bool>)> continuation);
| ~~~~~^
In file included from /var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/frontend/utility/SimpleOutput.cpp:1:
/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/frontend/utility/SimpleOutput.hpp:53:8: error: unknown type name 'SetupStreamingContinuation_t'
53 | SetupStreamingContinuation_t continuation) override;
| ^
/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/frontend/utility/SimpleOutput.cpp:84:12: warning: implicit conversion loses integer precision: 'int64_t' (aka 'long') to 'int' [-Wshorten-64-to-32]
83 | whipSimulcastEncoders->Create(encoderId, config_get_int(main->Config(), "AdvOut", "RescaleFilter"),
| ~~~~~~
84 | config_get_int(main->Config(), "Stream1", "WHIPSimulcastTotalLayers"),
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/frontend/utility/SimpleOutput.cpp:83:44: warning: implicit conversion loses integer precision: 'int64_t' (aka 'long') to 'int' [-Wshorten-64-to-32]
83 | whipSimulcastEncoders->Create(encoderId, config_get_int(main->Config(), "AdvOut", "RescaleFilter"),
| ~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/frontend/utility/SimpleOutput.cpp:285:21: warning: implicit conversion loses integer precision: 'uint64_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
285 | int videoBitrate = config_get_uint(main->Config(), "SimpleOutput", "VBitrate");
| ~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/frontend/utility/SimpleOutput.cpp:398:15: warning: implicit conversion loses integer precision: 'int64_t' (aka 'long') to 'int' [-Wshorten-64-to-32]
398 | int tracks = config_get_int(main->Config(), "SimpleOutput", "RecTracks");
| ~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/frontend/utility/SimpleOutput.cpp:418:11: warning: implicit conversion loses integer precision: 'uint64_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
418 | int cx = config_get_uint(main->Config(), "Video", "OutputCX");
| ~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/frontend/utility/SimpleOutput.cpp:419:11: warning: implicit conversion loses integer precision: 'uint64_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
419 | int cy = config_get_uint(main->Config(), "Video", "OutputCY");
| ~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/frontend/utility/SimpleOutput.cpp:586:15: warning: implicit conversion loses integer precision: 'int64_t' (aka 'long') to 'int' [-Wshorten-64-to-32]
586 | int tracks = config_get_int(main->Config(), "SimpleOutput", "RecTracks");
| ~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/frontend/utility/SimpleOutput.cpp:610:79: error: unknown type name 'SetupStreamingContinuation_t'
610 | std::shared_future<void> SimpleOutput::SetupStreaming(obs_service_t *service, SetupStreamingContinuation_t continuation)
| ^
/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/frontend/utility/SimpleOutput.cpp:708:19: warning: implicit conversion loses integer precision: 'uint64_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
708 | int retryDelay = config_get_uint(main->Config(), "Output", "RetryDelay");
| ~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/frontend/utility/SimpleOutput.cpp:709:19: warning: implicit conversion loses integer precision: 'uint64_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
709 | int maxRetries = config_get_uint(main->Config(), "Output", "MaxRetries");
| ~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/frontend/utility/SimpleOutput.cpp:711:17: warning: implicit conversion loses integer precision: 'int64_t' (aka 'long') to 'int' [-Wshorten-64-to-32]
711 | int delaySec = config_get_int(main->Config(), "Output", "DelaySec");
| ~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/frontend/utility/SimpleOutput.cpp:775:15: warning: implicit conversion loses integer precision: 'int64_t' (aka 'long') to 'int' [-Wshorten-64-to-32]
775 | int tracks = config_get_int(main->Config(), "SimpleOutput", "RecTracks");
| ~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/frontend/utility/SimpleOutput.cpp:834:15: warning: implicit conversion loses integer precision: 'int64_t' (aka 'long') to 'int' [-Wshorten-64-to-32]
834 | int rbTime = config_get_int(main->Config(), "SimpleOutput", "RecRBTime");
| ~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/frontend/utility/SimpleOutput.cpp:835:15: warning: implicit conversion loses integer precision: 'int64_t' (aka 'long') to 'int' [-Wshorten-64-to-32]
835 | int rbSize = config_get_int(main->Config(), "SimpleOutput", "RecRBSize");
| ~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/tmp/portage/media-video/obs-studio-9999/work/obs-studio-9999/frontend/utility/SimpleOutput.cpp:836:15: warning: implicit conversion loses integer precision: 'int64_t' (aka 'long') to 'int' [-Wshorten-64-to-32]
836 | int tracks = config_get_int(main->Config(), "SimpleOutput", "RecTracks");
| ~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
14 warnings and 5 errors generated.
Steps to Reproduce
-
add keyword for obs-studio-9999.ebuild
echo 'media-video/obs-studio **' >> /etc/portage/package.accept_keywords/obs-studio
-
compile OBS Studio
emerge =media-video/obs-studio-9999
Anything else we should know?
No response
Operating System Info
Other
Other OS
Gentoo Linux (amd64 musl libc, LLVM/libc++ profile)
OBS Studio Version
Git
OBS Studio Version (Other)
27ac23e
OBS Studio Log URL
N/A
OBS Studio Crash Log URL
No response
Expected Behavior
OBS Studio compiles fine adding the functional header (see https://en.cppreference.com/cpp/utility/functional/function)
Current Behavior
Steps to Reproduce
add keyword for
obs-studio-9999.ebuildecho 'media-video/obs-studio **' >> /etc/portage/package.accept_keywords/obs-studiocompile OBS Studio
emerge =media-video/obs-studio-9999Anything else we should know?
No response