summaryrefslogtreecommitdiff
path: root/indra/media_plugins/libvlc
AgeCommit message (Collapse)Author
2024-09-01Merge remote-tracking branch 'secondlife/release/2024.08-DeltaFPS' into ↵Erik Kundiman
2024.08-DeltaFPS
2024-08-26Don't create links to non-existent dependenciesErik Kundiman
JsonCpp isn't used any more and Boost is linked statically now, so SLPlugin doesn't need to link to any Boost dynamic libraries upwards (which are of an older version and are there because they're still needed by Collada DOM). I suspect links to non-existent files have been the cause of why Gatekeeper just wouldn't identify the developer despite the fact that Apple notarisation service would still accept the bundle and various Apple's integrity (command-line) tools would still validate the bundle too. This commit also removes unnecessary linkage changes for the media plugins.
2024-08-25Put media plugins install commands correspondinglyErik Kundiman
2024-08-23Stream notification header uses title metadataErik Kundiman
2024-08-22Stream notificationErik Kundiman
https://megapahit.com/show_bug.cgi?id=56 I could make such metadata setting triggered by an event only on the media plugin's side, not on the viewer's side. I had tried adding a MEDIA_EVENT_NOWPLAYING_CHANGED and hoped that mediactrl, viewerparcelmedia, or viewermedia would react to it, but no, so this is the best I could come up with for now, to keep checking if what's now playing has been updated or not. I intentionally didn't clear mNowPlaying the way mURL is, so that it wouldn't notify one last double after the player stops streaming. mNowPlaying and mMediaNowPlaying need to be kept in their last states so that the comparison is correct. I also intentionally didn't put the notification inside the MEDIA_PLAYING scope, cause the flow somehow never got into that scope.
2024-08-12Update zlib-ng libxml2 libpng freetype minizip-ng boost collada-dom tinygltf ↵Rye Mutt
packages (#2250) Rebuild expat, apr, meshoptimizer, ogg_vorbis, libjpeg-turbo for symbol fixes
2024-08-10No Meshoptimizer macOS install name change or linkErik Kundiman
since the app links to Meshoptimizer statically now on macOS.
2024-08-03Revert "Build process' set up to link to Boost statically"Erik Kundiman
This reverts commit 9268fdd5b99bb8e426e7c1232916dfd909039f96.
2024-07-29Get VLC streaming to work again on macOSErik Kundiman
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.
2024-07-28Install plugins somewhere close to libvlc on macOSErik Kundiman
and without having to rename the containing folder. VLC streaming still hasn't worked (it used to) since using fixup_bundle, since switching to FMOD, since switching from SDL to Cocoa, since merging Maintenance B, so still no idea which of these is causing it.
2024-07-28Build process' set up to link to Boost staticallyErik Kundiman
on macOS and at least the one directly. Collada DOM's Boost dependency is still 1.76 in MacPorts' case, and that's why we still have Boost filesystem and system dylibs in Frameworks. On the other hand, the viewer codebase now really depends on newer Boost, in my case I can use MacPorts' 1.81. I had to switch to static because Boost 1.81 filesystem crashed for not finding the implementation of something declared using BOOST_FORCEINLINE in boost/filesystem/path.hpp. I think I know why, now. Cause the filesystem dylib that eventually got installed was the 1.76 one depended on by Collada DOM, so there was a conflict, there. For now the temporary MacPorts solution for this is to install boost181 with -no_static variant (notice the "-" there, so the static libraries are built and installed too). The rest is so hack-ish, I had to manually recreate Boost links pointing to 1.81 ones, only the ones needed, and for the libraries, only the static ones.
2024-07-10Merge branch 'main' into maint-bErik Kundiman
2024-07-10`cpack -G Bundle` instead of `make install` on MacErik Kundiman
Root project finally renamed to Megapahit, which has a nice effect of CPack: - Run preinstall target for: Megapahit CPack: - Install project: Megapahit [] but it's really because CPack Bundle file couldn't be renamed via CPACK_PACKAGE_NAME like on DEB, RPM, and FREEBSD. CPack determines its own destination root folder, which is Resources (I didn't find a way to set it to Contents). fixup_bundle is now run on the .app deep inside CPack staging folders so that the dependency copies will be included in the DMG.
2024-07-09Merge branch 'main' into maint-bErik Kundiman
2024-07-08Re-enable compiler warnings C4244 and C4396 except for lltracerecording.h ↵Ansariel
and llunittype.h for now
2024-07-07macOS install DESTINATIONs are relative paths nowErik Kundiman
but set CMAKE_INSTALL_PREFIX to newview/Megapahit.app/Contents.
2024-07-07Fix paths to LibVLC files, they're in FrameworksErik Kundiman
Must have been residues before, they really were in llplugin/lib when I was doing the media plugin before.
2024-07-06Fix paths to LibVLC media plugin dependenciesErik Kundiman
Somehow fixup_bundle misses fixing the plugins. These fixes are in effect when MacPorts is used, though it wouldn't hurt if you're using HomeBrew, it's just you'd need to add the references to the HomeBrew libraries just like the MacPorts ones.
2024-07-06Merge branch 'main' into maint-bErik Kundiman
2024-07-05`make install` on macOS copies resources to bundleErik Kundiman
Except for SLPlugin since there's already a custom command for it.
2024-06-20Merge remote-tracking branch 'secondlife/release/maint-b' into maint-bErik Kundiman
2024-05-16Merge tag '7.1.7-release'Erik Kundiman
source for viewer 7.1.7.8974243247
2024-05-15Merge branch 'main' into marchcat/x-b-mergeAndrey Lihatskiy
# Conflicts: # autobuild.xml # indra/cmake/ConfigurePkgConfig.cmake # indra/cmake/ICU4C.cmake # indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.cpp # indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.h # indra/media_plugins/gstreamer010/llmediaimplgstreamertriviallogging.h # indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.cpp # indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.h # indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp # indra/newview/llappviewerlinux_api.h # indra/newview/llappviewerlinux_api_dbus.cpp # indra/newview/llappviewerlinux_api_dbus.h # indra/newview/llfloateremojipicker.cpp # indra/newview/lloutfitslist.cpp
2024-04-29#824 Process source files in bulk: replace tabs with spaces, convert CRLF to ↵Andrey Lihatskiy
LF, and trim trailing whitespaces as needed
2024-04-09Update Linux media handling (#1146)Nicky Dasmijn
* Enable CEF browser for Linux * Disable the update for Linux, we don't have that one right now * Update build_linux.yaml We need libpulse-dev for volume_catcher Linux * Add linux_volum_catcher* files * Enable OpenAL for Linux-ReleaseOS * Linux: Update OpenAL * Update SDL2 * Add libsndio-dev to the dependencies. * Update CEF to an official LL version * Remove dupe of emoji_shortcodes * Reording autobuild does because it can and wants to * Linux: Disable NDOF for the time being. After updating the ndof 3P needs to be rebuilt and we do not have a fresh one from LL yet. Forcefully undefine LIB_NDOF, it gets defined in the build variables no matter if it is safe to define. * Remove wrestling with mutliarch and LIBGL_DRIVERS_PATH * Remove tcmalloc snippet, tcmalloc is a very faint bad dream of the past * Putting out a warning this viewer ran on a x64 arch and then suggesting to install 32 bit compat packages makes no sense at all * CEF resources need to be in lib * It;'s okay to warn about missing plugins * Linux: CEF keyboard handling * Remove old gstreamer 0.10 implementation * Linux DSO loading always had been very peculiar due to macro magic. At least now it is peculiar shared magic with only one implementation. * Remove -fPIC. We get that one from LL_BUILD * /proc/cpuinfo is not reliable to detrmine the max CPU clock. Try to determine this by reading "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq". Only if this fails go back to /proc/cpuinfo * Cleanup * Cleanup common linker and compiler flags, make it more obvious which flags are for which OS/compiler * Switch to correct plugin file * Install libpulse-dev for volume catcher. * And the runner needs libsndio-dev as well. * check for runner.os=='linux'. matrix.os is the full name of the image (limux-large).
2024-01-18GNU/Linux internal web browserErik Kundiman
The lllibs need to be built as static libs now, otherwise SLPlugin would lose reference to gSavedSettings. The media plugins still need to be built as dynamic libs however, so they can't rely on the condition in LibraryInstall.cmake any more. Since the Megapahit viewer, when built using GCC, is using the default value for _GLIBCXX_USE_CXX11_ABI (which is 1 for the newer C++11 ABI as opposed to 0 for the older C++03 ABI), the Dullahan dependency needs to be built with the very same _GLIBCXX_USE_CXX11_ABI setting too, otherwise apr_dso would fail at loading libmedia_plugin_cef.so because of the failure to refer to the setOnConsoleMessageCallback function with strictly the same (not differing between std::__cxx11::basic_string vs. std::basic_string) parameter types. The CEF build is Spotify's, so no live streaming support, while the Dullahan package used by the viewer was built using Kokua's dullahan fork. After rebuilding it with _GLIBCXX_USE_CXX11_ABI kept at default by not overriding it in variables (from the build-variables repo), the order of the target link libraries in CEFPlugin.cmake doesn't seem to matter any more (it did before!). Now EXTERNAL_TOS can be safely omitted from GNU/Linux added compile definitions (but still used on FreeBSD).
2023-12-18Unix install sets plugin dir to system library dirErik Kundiman
because (at least) the vlc/plugins dirs are inside it in the same way it's been inside llplugin. This is so the app can find system VLC plugins. And for this, BUILD_SHARED_LIBS set on must work first on Linux (has already been working on FreeBSD), since libmedia_plugin_libvlc is a shared library (which now gets installed to system library dir too, on both OSes).
2023-08-26CPack for packaging (when PACKAGE set to on)Erik Kundiman
Since we could use the dynamic versioning from the configuration phase of CMake, the inclusion is put in BuildVersion.cmake. Other CPACK variables are usually static so can be set when running cmake. CPack somehow doesn't pick up the DESTINATION values in ViewerInstall (slplugin & libvlc too) from UnixInstall, so they're they're partially hardcoded again there.
2023-07-30libmedia_plugin_libvlc is installed to system tooErik Kundiman
libmedia_plugin_base is now explicitly set as static, since it could be set as shared when BUILD_SHARED_LIBS is on and it's just easier to have it compiled into with every media plugin cause it's small and would only be shared by 2 dynamic libraries anyway. Trying to put a dynamic version where the media plugin can find it so the reference is not broken, seems like a hassle.
2022-09-16Merge remote-tracking branch 'origin/DRTVWR-543-maint_cmake' into ↵Nicky Dasmijn
DRTVWR-568_cmake
2022-04-13Rework cmake, the original plan was to maybe be able to use conan targets ↵Nicky
with the same name (that's why 3ps had names like apr::apr), but it's safer and saner to put the LL 3ps under the ll:: prefix. This also allows means it is possible to get rid of that bad "if( TRAGET ...) return() endif()" pattern and rather use include_guard().
2022-04-06Move CMake files to modernized cmake syntax, step 1.Nicky
Change projects to cmake targetsto get rid of havig to hardcore include directories and link libraries in consumer projects.
2022-02-09SL-16827 Play doesn't start audio if audio reached endAndrey Kleshchev
2022-02-09SL-16827 Time slider not working for some musicAndrey Kleshchev
2022-02-09SL-13470 Media on a prim loops when it should notAndrey Kleshchev
2021-12-14SL-16510 fix vlc not restoring position after a resizeAndrey Kleshchev
2021-12-14SL-16510 VLC time slider sometimes does not workAndrey Kleshchev
2021-11-09SL-16333 VLC 3 doesn't support -1 == infinity for input-repeatAndrey Lihatskiy
by Callum
2021-10-28SL-16247 Post-d520 libvlc plugin fixesAndrey Lihatskiy
by Callum
2020-10-01SL-14044 Windows build fixAndrey Lihatskiy
2019-07-01SL-3704 Plugin exit issuesandreykproductengine
2018-09-07remove only-partially-successful attempt to put teamcity blocks around targetsOz Linden
2018-09-05add more block structure to TeamCity log output for componentsOz Linden
2018-01-05Fix for MAINT-8119 - this bug morphed from a packaging issue to being all ↵callum_linden
about audio not playing when a media stream started. There is some as yet, unknown interaction between the volume catcher code in the CEF plugin and the VLC volume controls. The fix for now is to add a Windows call to the VLC code that sets the process volume explicitly. Later we will address the volume catcher code, move it to a common spot so both CEF and LibVLC can use the same bytes
2017-03-09Second part of fix for SL-646 Fix 'LINK : warning LNK4075: ignoring ↵Callum Prentice
/INCREMENTAL due to '/LTCG' specification' in LibVLC, JPEGLIB etc.
2017-02-03Automated merge with ssh://bitbucket.org/lindenlab/viewer64Nat Goodspeed
2017-02-03Automated merge with ssh://bitbucket.org/lindenlab/viewer-releaseNat Goodspeed
2017-01-27First batch of changes to add LibVLC media plugin to macOS viewer. Plugin ↵Callum Linden
fails to start because of an as-yet undiagnosed issue with VLC plugin files related to their extyended attributes
2016-12-06DRTVWR-418: Try to clean up numerous CMake CMP0046 warnings.Nat Goodspeed
2016-12-01DRTVWR-418: Until we figure out how to say FIXED:NO to linker, don't.Nat Goodspeed
The present CMake logic wants to pass FIXED:NO to the linker for 64-bit builds, which on the face of it seems like a Good Thing: it permits code to be relocated in memory, preventing collisions if two libraries happen to want to load into overlapping address ranges. However the way it's being specified is wrong and harmful. Passing /FIXED:NO to the compiler command line engages /FI (Forced Include!) of a nonexistent file XED:NO -- producing lots of baffling fatal compile errors. Thanks Callum for diagnosing this!