The goal of OpenViewer is to provide a lightweight and optimized C++ library to load, modify and display medias along with an application to show how the library can be used. It comes with Python bindings to allow everyone to make its own media viewer.
Disclaimer : it is currently a work in progress, so do not expect everything to be stable and working perfectly. I (Romain Augier) learned to code on my own , so any suggestion on how to improve the code, the design of the library/application or anything else is welcome!
To manage its dependencies, OpenViewer uses Conan 1.57.
You can install it in a virtual python environment directly in this directory
python -m venv conan_env
source conan_env/bin/activate
pip install conan==1.57You'll need to first build the recipes for OpenColorIO and OpenImageIO (OpenImageIO will soon be removed as it is a huge dependency with too much stuff we do not need).
source conan_env/bin/activate
cd conan/recipes/opencolorio
conan create . opencolorio/2.1.0@openviewer/1.0 --build missingsource conan_env/bin/activate
cd conan/recipes/openimageio
conan create . openimageio/2.4@openviewer/1.0 -o with_ffmpeg=False -o boost*:shared=True -o openexr*:shared=True -o openjpeg*:shared=True --build missingIf you encounter any error during the recipes building, mentionning the libstdcxx is not the good version, you can update your conan profile :
source conan_env/bin/activate
conan profile update settings.compiler.libcxx=libstdc++11 defaultOnce you've built the custom recipes, you can install the conanfile that is in the root directory
source conan_env/bin/activate
conan install . --build missingThen, to build the project, there are utility script :
--debugturn on debug build--testsbuild the tests for all the libraries and run them--cleanremove the previous build folder, if existing--export-compile-commandsexport the json file containing compile commands for each file (useful for clangd, not working on windows though)--sanitizeenables instrumentation of the code (in debug only) to sanitize memory addresses and leaks
source conan_env/bin/activate
./build.sh --debug --tests --clean --export-compile-commands --sanitizeOpenViewer is based on the work of many good libraries :