-
Notifications
You must be signed in to change notification settings - Fork 194
876: Fixes to allow building on macOS #949
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This fixes rvbootstrap failing to compile and build on macos (and perhaps other OS) It fails building OIIO because it finds my homebrew installed ffmpeg 8 (recently supported in RV) and hits the issue that avcodec_close has been removed in favor of avcodec_free_context. This was fixed in OIIO 2.5.19.1 https://github.com/AcademySoftwareFoundation/OpenImageIO/releases/tag/v2.5.19.1 An upgrade to OIIO subsequently requires upgrades to Imath to 3.2.2 and OpenEXR 3.4.2 As for the openexr patch file, I am currently unclear on the logic and if it is required with 3.4. I have left a stub file in place for future use and to keep the cmake logic intact. OIIO 2.5 is EoL and we should be moving to OIIO 3.1 however I have a feeling that could be a bigger upgrade so have left that for another commit. Signed-off-by: Michael Oliver <[email protected]>
version bump for performance improvements https://github.com/videolan/dav1d/releases/tag/1.5.1 Signed-off-by: Michael Oliver <[email protected]>
|
Hello @mcoliver, Thank you for taking time to contribute to OpenRV! By default, OpenRV still builds with FFmpeg 6.x. If you want to build for another version, you need to add About the build issueI think it due to the latest changes in If we revert the change to The above (passing RV_FFMPEG=8 and after OIIO.cmake is reverted) will be your best way forward to use FFmpeg 8. About OpenEXRUnfortunately, we can not upgrade the version of OpenEXR for Based on https://vfxplatform.com, OpenEXR can only be updated to |
|
yeah thought it was weird that rvcfg was reporting 6 but then during the oiio build process it was referencing my homebrew ffmpeg 8. Didn't dig deeper into it. Really just trying to unblock people that want a player. I'll admit I like to live on the bleeding edge :D and understand the use of the reference platform to the industry. I started a 2026 branch in my fork. Has a lot of updates to dependencies with performance improvments and bug fixes. Would it be worthwhile to have a branch in the official openrv project as well? I know it hasn't been finalized yet but happy to put some time and effort to get ahead of things |
…mpeg (#950) ### Revert latest changes to OIIO.cmake - Make sure OIIO uses OpenRV's FFmpeg ### Linked issues Issue discoverted in PR #949 ### Summarize your change. Revert the latest changes to OIIO.cmake to make sure that OIIO finds OpenRV's FFmpeg. ### Describe the reason for the change. A recent change in OIIO.cmake prevent OIIO to find the right FFmpeg for OpenRV. For visibility: @mcoliver Signed-off-by: Cédrik Fuoco <[email protected]>
|
I am not that familiar with how OpenRV uses OIIO, but I don't think OpenRV is using FFmpeg through OIIO. Therefore, I think the CMake option About your changes for CY2026, if they are dependencies changes, you could open PRs and add the version changes under CY2026 with the And if you have changes in the C++ code, you can put them under a preprocessor like this (if they are specific to CY2026): Just note that we haven't done anything for CY2025 yet. @mcoliver |
Did you see that somewhere or is it based on tests? Based on slack messages on the ASWF channels, it seems like even OIIO 3.1.x support OpenEXR 3.1+, but I haven't tested it. Also, I haven't looked at Imath though. @mcoliver |
…mpeg (AcademySoftwareFoundation#950) ### Revert latest changes to OIIO.cmake - Make sure OIIO uses OpenRV's FFmpeg ### Linked issues Issue discoverted in PR AcademySoftwareFoundation#949 ### Summarize your change. Revert the latest changes to OIIO.cmake to make sure that OIIO finds OpenRV's FFmpeg. ### Describe the reason for the change. A recent change in OIIO.cmake prevent OIIO to find the right FFmpeg for OpenRV. For visibility: @mcoliver Signed-off-by: Cédrik Fuoco <[email protected]>
…mpeg (AcademySoftwareFoundation#950) ### Revert latest changes to OIIO.cmake - Make sure OIIO uses OpenRV's FFmpeg ### Linked issues Issue discoverted in PR AcademySoftwareFoundation#949 ### Summarize your change. Revert the latest changes to OIIO.cmake to make sure that OIIO finds OpenRV's FFmpeg. ### Describe the reason for the change. A recent change in OIIO.cmake prevent OIIO to find the right FFmpeg for OpenRV. For visibility: @mcoliver Signed-off-by: Cédrik Fuoco <[email protected]>
…mpeg (AcademySoftwareFoundation#950) ### Revert latest changes to OIIO.cmake - Make sure OIIO uses OpenRV's FFmpeg ### Linked issues Issue discoverted in PR AcademySoftwareFoundation#949 ### Summarize your change. Revert the latest changes to OIIO.cmake to make sure that OIIO finds OpenRV's FFmpeg. ### Describe the reason for the change. A recent change in OIIO.cmake prevent OIIO to find the right FFmpeg for OpenRV. For visibility: @mcoliver Signed-off-by: Cédrik Fuoco <[email protected]>
|
Thanks for all of this @cedrik-fuoco-adsk . My main focus was getting the repo to a place where someone could following the instructions and build the app. That is not the case. The revert still does not allow a clean build. OpenRV config wants to build with ffmpeg 6.1.2 but the build process fails at OIIO and when it does it references my homebrew install of ffmpeg 8 (see below). There are a few avenues we could pursue to get the repo to a state where it will build properly for users. Which direction do you advise me to pursue? I understand the need for CY2023/2024/2025, but also think we should have a version where people who don't care about the reference platform and just want a framecycler can clone/build in one easy step. I'm hesitant to put the effort into CY2024/2025 when 2026 is 2 months away and would also like to have a branch that is a bit more forward leaning for those not constrained by the VFX reference platform limitations. Another thing I thought about was adding a cli shell script to the repo to build the project with all the various options and updating the build instructions to reference it accordingly. Thanks for any input/advice on where to put my time here. |
Unclear. Perhaps you can with flags. I was brute forcing it from the OpenRV build logs. When I updated the OpenRV oiio.cmake to 2.5.19.1 and subsequently attempted a clean build, it reported the following which leads me to believe the default looks for Imath 3.2 and OpenExr 3.4. So I updated those and subsequently was able to cleanly build OpenRV. That led to this PR request. I was attempting minimal changes without digging deep into alternative solutions modifying build flags. |
|
Hi @mcoliver, Are you on the latest commit? Recently, we realized that OIIO was compiling with FFmpeg (which is causing your issue), but OpenRV is not using FFMpeg through OIIO. Therefore, we added a param when building OIIO to disable the usage of FFMpeg. Your errors about FFmpeg and OIIO should be gone (after a clean build). I'll get back to you about the rest. |
Correct. @cedrik-fuoco-adsk Latest commit. Clean build attempt. Build log attached from clone to error. |
|
I'm closing this pull request since it requires an upgrade to openexr 3.4 which does not conform to CY2024 as noted above. I'll open a new one with a CY2026 option, and also attempt to fix the current macOS compilation issues with CY2024 by ensuring cmake does not attempt to link thing in /opt/homebrew |
Linked issues
Fixes #876
Summarize your change.
Tried a vanilla clone and build using rvbootstrap on a m4 macbook. It fails building OIIO because it finds my homebrew installed ffmpeg 8 (recently supported in RV) and hits the issue that avcodec_close has been removed in favor of avcodec_free_context. This was fixed in OIIO 2.5.19.1 https://github.com/AcademySoftwareFoundation/OpenImageIO/releases/tag/v2.5.19.1
An upgrade to OIIO subsequently requires upgrades to Imath to 3.2.2 and OpenEXR 3.4.2
As for the openexr patch file, I am currently unclear on the logic and if it is required with 3.4. I have left a stub file in place for future use and to keep the cmake logic intact.
OIIO 2.5 is EoL and we should be moving to OIIO 3.1 as noted in #893 however I have a feeling that could be a bigger upgrade so have left that for another commit.
Describe the reason for the change.
Tried a vanilla clone and build using rvbootstrap on a m4 macbook and it fails.
Describe what you have tested and on which operating system.
only tested on macos 26.0.1
Add a list of changes, and note any that might need special attention during the review.
oiio, imath, and openexr version bumps. I was unclear on the logic for the openexr patch file and if it is still necessary for 3.4 so I left an empty stub file.
Also opportunistically updated dav1d though it is not necessary for proper compilation.