mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-05-25 00:42:22 -04:00
plugins: Add ARM64 support to obs-ffmpeg, obs-filters, and obs-outputs
This commit is contained in:
@@ -26,8 +26,6 @@ target_sources(
|
||||
$<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>:obs-ffmpeg-vaapi.c>
|
||||
$<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>:vaapi-utils.c>
|
||||
$<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>:vaapi-utils.h>
|
||||
$<$<PLATFORM_ID:Windows>:texture-amf-opts.hpp>
|
||||
$<$<PLATFORM_ID:Windows>:texture-amf.cpp>
|
||||
obs-ffmpeg-audio-encoders.c
|
||||
obs-ffmpeg-av1.c
|
||||
obs-ffmpeg-compat.h
|
||||
@@ -65,7 +63,6 @@ target_link_libraries(
|
||||
FFmpeg::swscale
|
||||
FFmpeg::swresample
|
||||
$<$<PLATFORM_ID:Windows>:OBS::w32-pthreads>
|
||||
$<$<PLATFORM_ID:Windows>:AMF::AMF>
|
||||
$<$<PLATFORM_ID:Windows>:ws2_32>
|
||||
$<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>:Libva::va>
|
||||
$<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>:Libva::drm>
|
||||
@@ -76,6 +73,11 @@ target_link_libraries(
|
||||
)
|
||||
|
||||
if(OS_WINDOWS)
|
||||
if(CMAKE_VS_PLATFORM_NAME STREQUAL x64)
|
||||
target_sources(obs-ffmpeg PRIVATE texture-amf-opts.hpp texture-amf.cpp)
|
||||
target_link_libraries(obs-ffmpeg PRIVATE AMF::AMF)
|
||||
endif()
|
||||
|
||||
configure_file(cmake/windows/obs-module.rc.in obs-ffmpeg.rc)
|
||||
target_sources(obs-ffmpeg PRIVATE obs-ffmpeg.rc)
|
||||
endif()
|
||||
|
||||
@@ -12,7 +12,7 @@ if(NOT TARGET OBS::opts-parser)
|
||||
add_subdirectory("${CMAKE_SOURCE_DIR}/shared/opts-parser" "${CMAKE_BINARY_DIR}/shared/opts-parser")
|
||||
endif()
|
||||
|
||||
if(OS_WINDOWS)
|
||||
if(OS_WINDOWS AND CMAKE_VS_PLATFORM_NAME STREQUAL x64)
|
||||
find_package(AMF 1.4.29 REQUIRED)
|
||||
add_subdirectory(obs-amf-test)
|
||||
elseif(OS_LINUX OR OS_FREEBSD OR OS_OPENBSD)
|
||||
|
||||
@@ -322,7 +322,7 @@ static bool hevc_vaapi_supported(void)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32
|
||||
#if defined(_WIN32) && !defined(_M_ARM64)
|
||||
extern void amf_load(void);
|
||||
extern void amf_unload(void);
|
||||
#endif
|
||||
@@ -372,7 +372,7 @@ bool obs_module_load(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32
|
||||
#if defined(_WIN32) && !defined(_M_ARM64)
|
||||
amf_load();
|
||||
#endif
|
||||
|
||||
@@ -421,7 +421,7 @@ void obs_module_unload(void)
|
||||
obs_ffmpeg_unload_logging();
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32
|
||||
#if defined(_WIN32) && !defined(_M_ARM64)
|
||||
amf_unload();
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
|
||||
/* clang-format off */
|
||||
|
||||
#define S_RATIO "ratio"
|
||||
#define S_FILTER_RATIO "ratio"
|
||||
#define S_FILTER_THRESHOLD "threshold"
|
||||
#define S_ATTACK_TIME "attack_time"
|
||||
#define S_RELEASE_TIME "release_time"
|
||||
@@ -189,7 +189,7 @@ static void compressor_update(void *data, obs_data_t *s)
|
||||
const float output_gain_db = (float)obs_data_get_double(s, S_OUTPUT_GAIN);
|
||||
const char *sidechain_name = obs_data_get_string(s, S_SIDECHAIN_SOURCE);
|
||||
|
||||
cd->ratio = (float)obs_data_get_double(s, S_RATIO);
|
||||
cd->ratio = (float)obs_data_get_double(s, S_FILTER_RATIO);
|
||||
cd->threshold = (float)obs_data_get_double(s, S_FILTER_THRESHOLD);
|
||||
cd->attack_gain = gain_coefficient(sample_rate, attack_time_ms / MS_IN_S_F);
|
||||
cd->release_gain = gain_coefficient(sample_rate, release_time_ms / MS_IN_S_F);
|
||||
@@ -437,7 +437,7 @@ static struct obs_audio_data *compressor_filter_audio(void *data, struct obs_aud
|
||||
|
||||
static void compressor_defaults(obs_data_t *s)
|
||||
{
|
||||
obs_data_set_default_double(s, S_RATIO, 10.0f);
|
||||
obs_data_set_default_double(s, S_FILTER_RATIO, 10.0f);
|
||||
obs_data_set_default_double(s, S_FILTER_THRESHOLD, -18.0f);
|
||||
obs_data_set_default_int(s, S_ATTACK_TIME, 6);
|
||||
obs_data_set_default_int(s, S_RELEASE_TIME, 60);
|
||||
@@ -475,7 +475,7 @@ static obs_properties_t *compressor_properties(void *data)
|
||||
if (cd)
|
||||
parent = obs_filter_get_parent(cd->context);
|
||||
|
||||
p = obs_properties_add_float_slider(props, S_RATIO, TEXT_RATIO, MIN_RATIO, MAX_RATIO, 0.5);
|
||||
p = obs_properties_add_float_slider(props, S_FILTER_RATIO, TEXT_RATIO, MIN_RATIO, MAX_RATIO, 0.5);
|
||||
obs_property_float_set_suffix(p, ":1");
|
||||
p = obs_properties_add_float_slider(props, S_FILTER_THRESHOLD, TEXT_THRESHOLD, MIN_THRESHOLD_DB,
|
||||
MAX_THRESHOLD_DB, 0.1);
|
||||
|
||||
Reference in New Issue
Block a user