Skip to content

feat: UTV init - #1

Merged
makaisystems merged 85 commits into
mainfrom
utv-init
Apr 30, 2026
Merged

makaisystems merged 85 commits into
mainfrom
utv-init

Conversation

@makaisystems

Copy link
Copy Markdown
Contributor

Linked issues

Summarize your change.

Intitial implementation of UTV. All dependencies moved to brew installs, build script cleaned up, cmake cleaned up, Upgrades for QT 6.11, python 3.14, boost, and a few others. Github action and versioning workflow set.

Describe the reason for the change.

OpenRV is beholden to studio pipelines, VFX reference platform, and Autodesk for community contributions. It moves slow due to lack of funding and is burdened by supporting older versions. This is meant to be a lightweight, easily installable, and quickly buildable video player for the masses. The focus on abstracting out the player from the underlying dependencies should result in faster iteration, more community involvement, and a better user experience. Additionally since we aim to stay on the latest versions of software we can take advantage of the latest developments in the underlying dependencies as quickly as they come out.

Additionally OpenRV refuses to provide native pre-compiled binaries which prevents many people from using it. This project aims to solve that by providing those binaries with the licenses for the underlying players and codecs being delegated to the users who must install the dependencies alongside UTV.

Describe what you have tested and on which operating system.

Currently macOS latest on arm. Support for native windows

Add a list of changes, and note any that might need special attention during the review.

If possible, provide screenshots.

mcoliver added 30 commits April 28, 2026 22:22
- Build System: Introduced RV_USE_SYSTEM_DEPS to link against system/brew libraries.
- VFX Platform: Removed legacy year-based branching to target latest versions.
- Python: Upgraded to Python 3.14.4 stable and integrated 'uv' for ultra-fast environments.
- Dependencies: Decoupled FFmpeg, OpenEXR, OCIO, OIIO, Boost, and others to use find_package/pkg-config.
- TIFF: Refactored IOtiff to use public libtiff APIs instead of internal structure members.
- UI: Migrated ImGui and ImPlot to official upstream repositories.
- CI/CD: Modernized macOS actions to use Homebrew and removed fork restrictions.

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
- Added Visto modification notice and Makai Systems copyright to all modified files (as per Apache 2.0 Section 4b).
- Updated Notice.txt with Visto attribution and Makai Systems copyright.
- Updated LICENSE project name to Visto while retaining original terms.

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
- Updated all user-facing strings from 'OpenRV' and 'Open RV' to 'Visto'.
- Renamed binary executables: rv -> visto, rvio -> vistoio, rvpkg -> vistopkg, rvls -> vistols, rvpush -> vistopush.
- Updated macOS app bundle name to Visto.app.
- Rebranded internal application and organization names in CMakeLists.txt.
- Updated about box generation script and related C++ variables.
- Renamed project directories and packages for consistency with the new brand.
- Modernized documentation and CI workflows to reflect the Visto project identity.

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
- Removed legacy rvcmds.sh and its 20+ aliases.
- Created standard build.sh executable that mirrors the CI/CD pipeline.
- Automatically handles uv environment setup and Qt discovery.
- Updated documentation to reflect the new build orchestration.

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Signed-off-by: Michael Oliver <mcoliver@gmail.com>
- Added --install option to build.sh to perform standard CMake installation.
- Modified pre_install_darwin.cmake to skip RPATH cleanup when RV_USE_SYSTEM_DEPS is ON.
- This ensures Visto remains linked to system/brew libraries instead of trying to create a portable bundle.
- This layout is optimized for Homebrew Cask distribution.

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
- Created sanitize_homebrew_links.py to re-map versioned 'Cellar' paths to stable 'opt' symlinks.
- Integrated sanitization into build.sh for both staged and installed binaries.
- This ensures Visto remains functional after library updates (e.g., openexr 3.4.10 -> 3.4.11).

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
- Fixed -Wnontrivial-memcall by replacing memset/memcpy with proper C++ initializers and defaulted copy constructors for Mu::Value.
- Fixed -Wparentheses in StructType.cpp by adding explicit parentheses to conditional assignments.
- This ensures modern C++ compliance and maintains a clean build log.

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
- Applied consistent formatting to ocio, openjph, raw, and spdlog cmake modules.
- Wrapped long SET_PROPERTY, TARGET_LINK_LIBRARIES, and TARGET_INCLUDE_DIRECTORIES calls for better readability.
- Consolidated Makai Systems copyright notices into a single line.

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
- Core: Fixed -Wnontrivial-memcall in Mu::Value and IPBaseNodes by using C++ initializers/assignments.
- Parser: Fixed -Wparentheses in MuLang engine (Lexer, Context, Types) by adding explicit parentheses.
- UI: Fixed ImGui build failure by removing non-existent stacklayout files from official upstream source.
- Qt6: Fixed 'moc' generation failure by explicitly finding the moc executable in libexec/bin.
- Build: Corrected various CMake target visibility issues to ensure global symbol resolution.

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Signed-off-by: Michael Oliver <mcoliver@gmail.com>
…ckend

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Signed-off-by: Michael Oliver <mcoliver@gmail.com>
…xceptions, and fix Python 3.14 syntax warnings

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
- Implemented manual signal routing in SignalSpy bypassing QSignalSpy which was removed in Qt6.
- Used QMetaObject::connect with out-of-bounds methodCount() index to force dynamic slot resolution.
- Replaced QMetaType argument inspection with direct pointer casting for qt_metacall intercept payload extraction.
- Suppressed noisy Qt debug warnings related to garbage collection of temporary menus.
- Disabled unsupported setWindowModality call in annotate_mode.mu that crashed the app during media ingestion.
- Restored full functionality of ddProgressiveDrop.

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
…d::string during tag reading

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Signed-off-by: Michael Oliver <mcoliver@gmail.com>
…codec errors for formats like ProRes

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
…g build

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
…ng in MovieFFMpeg while updating build metadata

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Signed-off-by: Michael Oliver <mcoliver@gmail.com>
mcoliver added 28 commits April 30, 2026 01:06
This commit adds a fast-failing lint job, moves version calculation before the build, passes the version to CMake via build.sh, ad-hoc codesigns the macOS application bundle, uploads the packaged artifact for PR reviews, and delegates tagging entirely to the GH Release action.

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Signed-off-by: Michael Oliver <mcoliver@gmail.com>
…encies

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
…and-release workflow

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
This update restructures the repository front page to highlight the new distributable nature of UTV, adds GitHub badges, and simplifies the build instructions. It also introduces a native Homebrew Cask formula in Casks/utv.rb that is dynamically updated with the latest version and sha256 checksum during the CI/CD release process.

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Signed-off-by: Michael Oliver <mcoliver@gmail.com>
…pdates

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
…n warnings

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
…w runs

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Signed-off-by: Michael Oliver <mcoliver@gmail.com>
…ions

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
…A SDK build

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Signed-off-by: Michael Oliver <mcoliver@gmail.com>
…esign

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants