From 953d3f2b7b6a62c42f49ac761f8e587b8ae6759b Mon Sep 17 00:00:00 2001 From: Bernd Geiser Date: Mon, 18 Mar 2024 18:24:14 +0100 Subject: [PATCH 1/5] fix path to ffmpeg example --- .../ffmpeg/jvxApplications/ffoutput/CMakeLists.txt | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/sources/jvxPackages/ffmpeg/jvxApplications/ffoutput/CMakeLists.txt b/sources/jvxPackages/ffmpeg/jvxApplications/ffoutput/CMakeLists.txt index 91182288..1398fc53 100644 --- a/sources/jvxPackages/ffmpeg/jvxApplications/ffoutput/CMakeLists.txt +++ b/sources/jvxPackages/ffmpeg/jvxApplications/ffoutput/CMakeLists.txt @@ -12,7 +12,7 @@ set(LOCAL_C_STANDARD 99) set(LOCAL_SOURCES - ${JVX_FFMPEG_SOURCE_DIR}/share/ffmpeg/examples/mux.c + ${JVX_FFMPEG_SOURCE_DIR}/doc/examples/mux.c ) # set_source_files_properties(${LOCAL_SOURCES} PROPERTIES LANGUAGE CXX ) @@ -29,11 +29,11 @@ else(JVX_OS MATCHES "macosx") set(CONFIGURE_LOCAL_START_SCRIPT TRUE) endif(JVX_OS MATCHES "macosx") -set(LOCAL_LIBS +set(LOCAL_LIBS ${JVX_FFMPEG_LIBS} ${JVX_SOCKET_LIBRARIES} ${JVX_FFMPEG_SYS_LIBS} - ${SDL_LIBRARY} + ${SDL_LIBRARY} ) force_console_app() @@ -44,4 +44,3 @@ include(${JVX_CMAKE_DIR}/common_local_exe_foot.cmake) # Command: $(TargetPath) # Command Argument: "E:\jvxrt\audio\release\runtime\wavs\music_stereo_48000Hz.wav" # Working Directory: ""..\..\..\..\..\..\release\runtime\bin"" - From 4b7258c1066a6cef29cda04c471a26fd28b051fb Mon Sep 17 00:00:00 2001 From: Bernd Geiser Date: Tue, 19 Mar 2024 14:49:26 +0100 Subject: [PATCH 2/5] sdl2: switch back to pkgconfig --- .../third_party/web/libsdl/CMakeLists.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/sources/jvxPackages/ffmpeg/jvxLibraries/third_party/web/libsdl/CMakeLists.txt b/sources/jvxPackages/ffmpeg/jvxLibraries/third_party/web/libsdl/CMakeLists.txt index e8073703..7e6b9bf8 100644 --- a/sources/jvxPackages/ffmpeg/jvxLibraries/third_party/web/libsdl/CMakeLists.txt +++ b/sources/jvxPackages/ffmpeg/jvxLibraries/third_party/web/libsdl/CMakeLists.txt @@ -4,11 +4,11 @@ include(${JVX_CMAKE_DIR}/common_local_lib_head.cmake) if(${JVX_OS} MATCHES "windows") if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/libsdl) - message("libsdl sub project not available. Starting script to download it.") + message("libsdl sub project not available. Starting script to download it.") execute_process(COMMAND ${mysh} -c "cd ${CMAKE_CURRENT_SOURCE_DIR} ; ./prepareModules-win.sh; exit") message("libsdl installation complete.") endif() - + set(SDL_LIBRARY_PATH "${CMAKE_CURRENT_SOURCE_DIR}/libsdl/SDL2-2.26.3" CACHE INTERNAL "libsdl lib path (windows)") set(SDL_INCLUDE_PATH "${SDL_LIBRARY_PATH}/include" CACHE INTERNAL "libsdl lib path (windows)") if(JVX_PLATFORM MATCHES "32bit") @@ -16,12 +16,12 @@ if(${JVX_OS} MATCHES "windows") else() set(SDL_LIBRARY "${CMAKE_CURRENT_SOURCE_DIR}/libsdl/SDL2-2.26.3/lib/x64/SDL2.lib" CACHE INTERNAL "libsdl lib (windows)") endif() - + elseif(${JVX_OS} MATCHES "linux") - - find_package(SDL2 REQUIRED) + + pkg_search_module(SDL2 REQUIRED sdl2) +# find_package(SDL2 REQUIRED) set(SDL_INCLUDE_PATH "${SDL2_INCLUDE_DIRS}" CACHE INTERNAL "libsdl lib path (linux)") set(SDL_LIBRARY "${SDL2_LIBRARIES}" CACHE INTERNAL "libsdl lib (linux)") - # message(FATAL_ERROR "SDL_LIBRARY_PATH = ${SDL_LIBRARY_PATH}") endif() From b764a9ab875d3dff5974a0df3239d1b020566f7f Mon Sep 17 00:00:00 2001 From: Bernd Geiser Date: Tue, 19 Mar 2024 15:23:21 +0100 Subject: [PATCH 3/5] ffmpeg: mathops patch for glnx --- .../git/ffmpeg/ffmpeg-glnx-mathops.patch | 60 +++++++++++++++++++ .../git/ffmpeg/prepareModules-glnx.sh | 28 +++++---- 2 files changed, 76 insertions(+), 12 deletions(-) create mode 100644 sources/jvxPackages/ffmpeg/jvxLibraries/third_party/git/ffmpeg/ffmpeg-glnx-mathops.patch diff --git a/sources/jvxPackages/ffmpeg/jvxLibraries/third_party/git/ffmpeg/ffmpeg-glnx-mathops.patch b/sources/jvxPackages/ffmpeg/jvxLibraries/third_party/git/ffmpeg/ffmpeg-glnx-mathops.patch new file mode 100644 index 00000000..23ab33ef --- /dev/null +++ b/sources/jvxPackages/ffmpeg/jvxLibraries/third_party/git/ffmpeg/ffmpeg-glnx-mathops.patch @@ -0,0 +1,60 @@ +--- a/libavcodec/x86/mathops.h ++++ b/libavcodec/x86/mathops.h +@@ -35,12 +35,20 @@ + static av_always_inline av_const int MULL(int a, int b, unsigned shift) + { + int rt, dummy; ++ if (__builtin_constant_p(shift)) + __asm__ ( + "imull %3 \n\t" + "shrdl %4, %%edx, %%eax \n\t" + :"=a"(rt), "=d"(dummy) +- :"a"(a), "rm"(b), "ci"((uint8_t)shift) ++ :"a"(a), "rm"(b), "i"(shift & 0x1F) + ); ++ else ++ __asm__ ( ++ "imull %3 \n\t" ++ "shrdl %4, %%edx, %%eax \n\t" ++ :"=a"(rt), "=d"(dummy) ++ :"a"(a), "rm"(b), "c"((uint8_t)shift) ++ ); + return rt; + } + +@@ -113,19 +121,31 @@ __asm__ volatile(\ + // avoid +32 for shift optimization (gcc should do that ...) + #define NEG_SSR32 NEG_SSR32 + static inline int32_t NEG_SSR32( int32_t a, int8_t s){ ++ if (__builtin_constant_p(s)) + __asm__ ("sarl %1, %0\n\t" + : "+r" (a) +- : "ic" ((uint8_t)(-s)) ++ : "i" (-s & 0x1F) + ); ++ else ++ __asm__ ("sarl %1, %0\n\t" ++ : "+r" (a) ++ : "c" ((uint8_t)(-s)) ++ ); + return a; + } + + #define NEG_USR32 NEG_USR32 + static inline uint32_t NEG_USR32(uint32_t a, int8_t s){ ++ if (__builtin_constant_p(s)) + __asm__ ("shrl %1, %0\n\t" + : "+r" (a) +- : "ic" ((uint8_t)(-s)) ++ : "i" (-s & 0x1F) + ); ++ else ++ __asm__ ("shrl %1, %0\n\t" ++ : "+r" (a) ++ : "c" ((uint8_t)(-s)) ++ ); + return a; + } + +-- +2.25.1 diff --git a/sources/jvxPackages/ffmpeg/jvxLibraries/third_party/git/ffmpeg/prepareModules-glnx.sh b/sources/jvxPackages/ffmpeg/jvxLibraries/third_party/git/ffmpeg/prepareModules-glnx.sh index e9b35dea..402b9631 100755 --- a/sources/jvxPackages/ffmpeg/jvxLibraries/third_party/git/ffmpeg/prepareModules-glnx.sh +++ b/sources/jvxPackages/ffmpeg/jvxLibraries/third_party/git/ffmpeg/prepareModules-glnx.sh @@ -1,10 +1,10 @@ -#!/bin/bash +#!/bin/bash # Rn this script as follows: # msys2_shell.cmd -use-full-path -c "cd ${CMAKE_CURRENT_SOURCE_DIR} ; ./prepareModules-win.sh" #postfix="x64" -#if [ $# -ge 1 ]; then +#if [ $# -ge 1 ]; then postfix=$1 # fi @@ -12,35 +12,39 @@ folder="ffmpeg-$postfix" echo "Checking for existence of folder $folder" if [ ! -d $folder ]; then - + # Commit id = 05438db02437e241a418e266a354bf4e7be7ac59 echo git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg cd ffmpeg git checkout 05438db02437e241a418e266a354bf4e7be7ac59 + + echo "PATCHING" + echo "patch -p1 < ../ffmpeg-glnx-mathops.patch" + patch -p1 < ../ffmpeg-glnx-mathops.patch cd .. - + mv ffmpeg $folder else echo "Folder $folder already exists" fi if [ -d $folder ]; then - + echo cd $folder cd $folder - + echo "Checking for existence of subfolder lib" if [ ! -d "lib" ]; then - + echo ./configure --enable-pic --prefix=./ ./configure --enable-pic --prefix=./ - + #echo ./configure --target-os=win64 --arch=x86_64 --enable-debug=3 --toolchain=msvc --prefix=./ #./configure --target-os=win64 --arch=x86_64 --enable-debug=3 --toolchain=msvc --prefix=./ - + # - # Options other than the standard (as delivered with ffmpeg) are not really supported in Windows. If you + # Options other than the standard (as delivered with ffmpeg) are not really supported in Windows. If you # want to build the lib in another way, you can modify ffbuild/config.mak between configure and make. # For example, if you want to generate debug information and disable optimization, you can set the entry # @@ -48,7 +52,7 @@ if [ -d $folder ]; then # # and remove the -02 flag!! # - # Also, I need to introduce some dirty hacks to compile in Windows to prevent undefined references which are + # Also, I need to introduce some dirty hacks to compile in Windows to prevent undefined references which are # not reported in Release mode # # Patches: @@ -57,7 +61,7 @@ if [ -d $folder ]; then echo make make - + echo make install make install else From 0f68f4f48a690cc9e1c32032dc5b560af64b4e80 Mon Sep 17 00:00:00 2001 From: Bernd Geiser Date: Tue, 19 Mar 2024 17:31:23 +0100 Subject: [PATCH 4/5] vst: patch to include cstdint --- patches/vst/0001-include-cstdint.patch | 24 ++++++++++++++++++++++++ patches/vst/prepareModules-3.7.7.sh | 16 ++++++++-------- 2 files changed, 32 insertions(+), 8 deletions(-) create mode 100644 patches/vst/0001-include-cstdint.patch diff --git a/patches/vst/0001-include-cstdint.patch b/patches/vst/0001-include-cstdint.patch new file mode 100644 index 00000000..29477949 --- /dev/null +++ b/patches/vst/0001-include-cstdint.patch @@ -0,0 +1,24 @@ +From 3e258378e3d1a9c10d71319a8f0ef31c372b3c64 Mon Sep 17 00:00:00 2001 +From: Bernd Geiser +Date: Tue, 19 Mar 2024 17:20:46 +0100 +Subject: [PATCH] include cstdint + +--- + source/vst/moduleinfo/moduleinfo.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/source/vst/moduleinfo/moduleinfo.h b/source/vst/moduleinfo/moduleinfo.h +index e5cd584..fab376a 100644 +--- a/vst3sdk/public.sdk/source/vst/moduleinfo/moduleinfo.h ++++ b/vst3sdk/public.sdk/source/vst/moduleinfo/moduleinfo.h +@@ -40,6 +40,7 @@ + + #include + #include ++#include + + //------------------------------------------------------------------------ + namespace Steinberg { +-- +2.40.1 + diff --git a/patches/vst/prepareModules-3.7.7.sh b/patches/vst/prepareModules-3.7.7.sh index 88c5df99..170ec11d 100755 --- a/patches/vst/prepareModules-3.7.7.sh +++ b/patches/vst/prepareModules-3.7.7.sh @@ -1,21 +1,21 @@ -#!/bin/bash +#!/bin/bash if [ ! -d "vst3sdk" ]; then echo git clone --recursive --branch v3.7.7_build_19 https://github.com/steinbergmedia/vst3sdk.git git clone --recursive --branch v3.7.7_build_19 https://github.com/steinbergmedia/vst3sdk.git - + echo patch -R -p0 --binary < ../../patches/vst/patch.vstsdk-v3.7.7-cml.patch patch -R -p0 --binary < ../../patches/vst/patch.vstsdk-v3.7.7-cml.patch - + echo patch -R -p0 --binary < ../../patches/vst/patch.vstsdk-v3.7.7-cma.patch patch -R -p0 --binary < ../../patches/vst/patch.vstsdk-v3.7.7-cma.patch - + echo patch -R -p0 --binary < ../../patches/vst/patch.vstsdk-v3.7.7-modutil-cml.patch patch -R -p0 --binary < ../../patches/vst/patch.vstsdk-v3.7.7-modutil-cml.patch - + echo patch -p0 --binary < ../../patches/vst/patch.vstsdk-v3.7.7-modinfo.patch patch -p0 --binary < ../../patches/vst/patch.vstsdk-v3.7.7-modinfo.patch -fi - - + echo patch -p1 < ../../patches/vst/0001-include-cstdint.patch + patch -p1 < ../../patches/vst/0001-include-cstdint.patch || exit 1 +fi From acae25d118460ac5139ecd0df42e35acf54fb273 Mon Sep 17 00:00:00 2001 From: Bernd Geiser Date: Tue, 19 Mar 2024 17:44:03 +0100 Subject: [PATCH 5/5] ffmpeg: disable bzlib --- .../third_party/git/ffmpeg/prepareModules-glnx.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/jvxPackages/ffmpeg/jvxLibraries/third_party/git/ffmpeg/prepareModules-glnx.sh b/sources/jvxPackages/ffmpeg/jvxLibraries/third_party/git/ffmpeg/prepareModules-glnx.sh index 402b9631..0a1ca70d 100755 --- a/sources/jvxPackages/ffmpeg/jvxLibraries/third_party/git/ffmpeg/prepareModules-glnx.sh +++ b/sources/jvxPackages/ffmpeg/jvxLibraries/third_party/git/ffmpeg/prepareModules-glnx.sh @@ -37,8 +37,8 @@ if [ -d $folder ]; then echo "Checking for existence of subfolder lib" if [ ! -d "lib" ]; then - echo ./configure --enable-pic --prefix=./ - ./configure --enable-pic --prefix=./ + echo ./configure --disable-bzlib --enable-pic --prefix=./ + ./configure --disable-bzlib --enable-pic --prefix=./ #echo ./configure --target-os=win64 --arch=x86_64 --enable-debug=3 --toolchain=msvc --prefix=./ #./configure --target-os=win64 --arch=x86_64 --enable-debug=3 --toolchain=msvc --prefix=./