diff options
author | Erik Kundiman <erik@megapahit.org> | 2024-07-29 12:31:22 +0800 |
---|---|---|
committer | Erik Kundiman <erik@megapahit.org> | 2024-07-29 12:46:08 +0800 |
commit | 7e7956b4801b1f0276229b4f65886911beaa96af (patch) | |
tree | c8b2772b3bc6cbd5309c308e26bfcef08129566a /indra | |
parent | 1afd491d154627d69c9dfefb314a17d5605b01d4 (diff) |
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.
Diffstat (limited to 'indra')
-rw-r--r-- | indra/cmake/LibVLCPlugin.cmake | 4 | ||||
-rw-r--r-- | indra/media_plugins/libvlc/CMakeLists.txt | 4 | ||||
-rw-r--r-- | indra/media_plugins/libvlc/media_plugin_libvlc.cpp | 2 | ||||
-rw-r--r-- | indra/newview/ViewerInstall.cmake | 12 |
4 files changed, 15 insertions, 7 deletions
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" "$<TARGET_FILE:media_plugin_libvlc>" 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 |