From 7e7956b4801b1f0276229b4f65886911beaa96af Mon Sep 17 00:00:00 2001 From: Erik Kundiman Date: Mon, 29 Jul 2024 12:31:22 +0800 Subject: Get VLC streaming to work again on macOS Somehow it wouldn't work when the libvlc dylibs linked by media_plugin_libvlc were far in Frameworks, even with all the linkages and VLC_PLUGIN_PATH set correctly. Because of this, I had to make the libvlc files redundantly copied (they're under 1 MB so we'll live with it) in llplugin just like upstream for media_plugin_libvlc to link to instead, though it seems the directory name can be anything, so I just let it be "plugins" for installation convenience using CMake. Also now the builder is assumed to not necessarily want VLC.app to be installed in /Applications, though they would need to keep the downloaded VLC disc image open. --- indra/cmake/LibVLCPlugin.cmake | 4 ++-- indra/media_plugins/libvlc/CMakeLists.txt | 4 ++-- indra/media_plugins/libvlc/media_plugin_libvlc.cpp | 2 +- indra/newview/ViewerInstall.cmake | 12 ++++++++++-- 4 files changed, 15 insertions(+), 7 deletions(-) (limited to 'indra') diff --git a/indra/cmake/LibVLCPlugin.cmake b/indra/cmake/LibVLCPlugin.cmake index 66dc13d126..9f0419c5e6 100644 --- a/indra/cmake/LibVLCPlugin.cmake +++ b/indra/cmake/LibVLCPlugin.cmake @@ -11,8 +11,8 @@ set(LIBVLCPLUGIN ON CACHE BOOL "LIBVLCPLUGIN support for the llplugin/llmedia test apps.") else () if (DARWIN) - target_include_directories( ll::libvlc SYSTEM INTERFACE /Applications/VLC.app/Contents/MacOS/include) - target_link_directories( ll::libvlc INTERFACE /Applications/VLC.app/Contents/MacOS/lib) + target_include_directories( ll::libvlc SYSTEM INTERFACE /Volumes/VLC\ media\ player/VLC.app/Contents/MacOS/include) + target_link_directories( ll::libvlc INTERFACE /Volumes/VLC\ media\ player/VLC.app/Contents/MacOS/lib) target_link_libraries( ll::libvlc INTERFACE vlc vlccore ) else () include(FindPkgConfig) diff --git a/indra/media_plugins/libvlc/CMakeLists.txt b/indra/media_plugins/libvlc/CMakeLists.txt index 6fa3fdcaac..dd2cbff903 100644 --- a/indra/media_plugins/libvlc/CMakeLists.txt +++ b/indra/media_plugins/libvlc/CMakeLists.txt @@ -63,8 +63,8 @@ if (DARWIN) -change "/opt/local/lib/liburiparser.1.dylib" "@loader_path/../../Frameworks/liburiparser.1.dylib" -change "/opt/local/lib/libnghttp2.14.dylib" "@loader_path/../../Frameworks/libnghttp2.14.dylib" -change "/usr/local/lib/libxmlrpc-epi.0.dylib" "@loader_path/../../Frameworks/libxmlrpc-epi.0.dylib" - -change "@rpath/libvlc.dylib" "@loader_path/../../Frameworks/libvlc.dylib" - -change "@rpath/libvlccore.dylib" "@loader_path/../../Frameworks/libvlccore.dylib" + -change "@rpath/libvlc.dylib" "@loader_path/plugins/libvlc.dylib" + -change "@rpath/libvlccore.dylib" "@loader_path/plugins/libvlccore.dylib" "$" VERBATIM COMMENT "Fixing paths to LibVLC media plugin dependencies" diff --git a/indra/media_plugins/libvlc/media_plugin_libvlc.cpp b/indra/media_plugins/libvlc/media_plugin_libvlc.cpp index 4828befb6b..a5d8f885fd 100644 --- a/indra/media_plugins/libvlc/media_plugin_libvlc.cpp +++ b/indra/media_plugins/libvlc/media_plugin_libvlc.cpp @@ -174,7 +174,7 @@ void MediaPluginLibVLC::initVLC() }; #if LL_DARWIN - setenv("VLC_PLUGIN_PATH", "plugins", 1); + setenv("VLC_PLUGIN_PATH", ".", 1); #endif int vlc_argc = sizeof(vlc_argv) / sizeof(*vlc_argv); diff --git a/indra/newview/ViewerInstall.cmake b/indra/newview/ViewerInstall.cmake index 079af78dcb..b468f1af99 100644 --- a/indra/newview/ViewerInstall.cmake +++ b/indra/newview/ViewerInstall.cmake @@ -114,8 +114,16 @@ if (DARWIN) ) install(DIRECTORY - /Applications/VLC.app/Contents/MacOS/plugins - DESTINATION ../Frameworks + /Volumes/VLC\ media\ player/VLC.app/Contents/MacOS/plugins + DESTINATION llplugin + ) + + install(FILES + /Volumes/VLC\ media\ player/VLC.app/Contents/MacOS/lib/libvlc.5.dylib + /Volumes/VLC\ media\ player/VLC.app/Contents/MacOS/lib/libvlc.dylib + /Volumes/VLC\ media\ player/VLC.app/Contents/MacOS/lib/libvlccore.9.dylib + /Volumes/VLC\ media\ player/VLC.app/Contents/MacOS/lib/libvlccore.dylib + DESTINATION llplugin/plugins ) install(DIRECTORY -- cgit v1.2.3