-
Notifications
You must be signed in to change notification settings - Fork 23
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
Adds support for reading OTIOZ #85
Conversation
Signed-off-by: Joshua Minor <[email protected]>
Signed-off-by: Joshua Minor <[email protected]>
Signed-off-by: Joshua Minor <[email protected]>
Signed-off-by: Joshua Minor <[email protected]>
Hmmm... it looks like I'll need some assistance getting CMake to build/find universal builds of some dependencies. Or do we need those at all? I'm guessing libssl and libcrypto are for decrypting password protected ZIP files (which OTIOZ doesn't support), so we might be able to just disable those two. I'm not sure about liblzma or libzstd.
|
and Windows is unhappy about this:
|
Signed-off-by: Joshua Minor <[email protected]>
I'm also getting issues buiding on Windows with various
|
I would disable all of the options, leaving just ZIP compression + file parsing. Which is hopefully enough for supporting .otioz? If so we should probably mention that in the docs: https://opentimelineio.readthedocs.io/en/latest/tutorials/otio-filebundles.html
|
…cies Signed-off-by: Joshua Minor <[email protected]>
Okay great. By turning off all those options, now the macOS build works, but Windows is still having trouble linking... |
A small bit of progress, if I add the line
but that does imply the library is at least working. I don't know why that worked or if that is a sensible thing to do but if nothing else it might indicate the problem? I'm not at all good with CMake. I also noticed the drag and drop code only excepts |
With a bit of fiddling I've managed to get this all working on Windows. In CMakeLists.txt I had to set:
and remove your changes from the last commit (I'm not sure if that step is essential or not). I also found a bug in the effects drawing code,
|
Also it's possible these two issues are relevant for the Windows build issues: Apologies if I'm posting too much |
Oh, this is great progress - all of this is 100% welcome and encouraged :) Is the linking issue a static vs dynamic link issue? I've attempted to keep everything statically linked into Raven for ease of installation. On macOS I checked the result with Could you make a separate PR for the InvisibleButton fix? |
Signed-off-by: Joshua Minor <[email protected]>
Signed-off-by: Joshua Minor <[email protected]>
Thanks @ThomasWilshaw - I think that works. Can you verify that this actually runs and reads an OTIOZ on Windows? I also addressed your note about checking for |
Haha almost, I had to set
Which looks correct I think. Do OTIOZ files only ever use |
Signed-off-by: Joshua Minor <[email protected]>
Thanks for checking that. I added those two more settings just now. Would you mind also checking if the pre-compiled build result for Windows runs? https://github.com/OpenTimelineIO/raven/actions/runs/11840470183 @ThomasWilshaw thanks so much for helping with this! |
CMakeLists.txt
Outdated
set(MZ_LZMA OFF) | ||
set(MZ_ZSTD OFF) | ||
set(MZ_LIBCOMP OFF) | ||
set(MZ_FETCH_LIBS OFF) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this line needs to be removed as you set it to ON
earlier
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Removing this line fixes the build locally for me and you can see in the GH Acions build log ZLIB is disabled so I suspect it's the same issue there.
Signed-off-by: Joshua Minor <[email protected]>
Works like a charm :) |
This PR adds support for reading the embedded
content.otio
within an OTIOZ file.The file type is inferred from the filename extension.
To accomplish this, Raven now depends on the minizip-ng submodule. If I'm understanding the minizip-ng API correctly, Raven seeks into the OTIOZ and decompresses only the
content.otio
into memory without attempting to do anything with the media in the OTIOZ.