opentimelineio / raven Goto Github PK
View Code? Open in Web Editor NEWRaven - OpenTimelineIO Viewer Application
License: Apache License 2.0
Raven - OpenTimelineIO Viewer Application
License: Apache License 2.0
omakazu@omakazunoMacBook-Pro build % cmake --build . -j
[ 1%] Building CXX object libs/opentimelineio/src/deps/Imath/src/Imath/CMakeFiles/Imath.dir/ImathColorAlgo.cpp.o
[ 2%] Building C object libs/CMakeFiles/nativefiledialog.dir/nativefiledialog/src/nfd_common.c.o
[ 3%] Building CXX object libs/opentimelineio/src/opentime/CMakeFiles/opentime.dir/errorStatus.cpp.o
[ 4%] Building CXX object libs/opentimelineio/src/deps/Imath/src/Imath/CMakeFiles/Imath.dir/ImathMatrixAlgo.cpp.o
[ 5%] Building CXX object libs/CMakeFiles/binary_to_compressed_c.dir/imgui/misc/fonts/binary_to_compressed_c.cpp.o
[ 6%] Building CXX object libs/opentimelineio/src/deps/Imath/src/Imath/CMakeFiles/Imath.dir/ImathFun.cpp.o
[ 7%] Building CXX object libs/opentimelineio/src/opentime/CMakeFiles/opentime.dir/rationalTime.cpp.o
[ 7%] Building C object libs/CMakeFiles/nativefiledialog.dir/nativefiledialog/src/nfd_cocoa.m.o
[ 8%] Building C object libs/glfw/src/CMakeFiles/glfw.dir/context.c.o
[ 9%] Building C object libs/glfw/src/CMakeFiles/glfw.dir/init.c.o
[ 10%] Building CXX object libs/opentimelineio/src/deps/Imath/src/Imath/CMakeFiles/Imath.dir/half.cpp.o
[ 11%] Building C object libs/glfw/src/CMakeFiles/glfw.dir/monitor.c.o
[ 12%] Building CXX object libs/CMakeFiles/IMGUI.dir/imgui/imgui.cpp.o
[ 13%] Building C object libs/glfw/src/CMakeFiles/glfw.dir/vulkan.c.o
[ 14%] Building CXX object libs/CMakeFiles/IMGUI.dir/imgui/backends/imgui_impl_glfw.cpp.o
[ 15%] Building CXX object libs/CMakeFiles/IMGUI.dir/imgui/imgui_widgets.cpp.o
[ 15%] Building C object libs/glfw/src/CMakeFiles/glfw.dir/window.c.o
[ 16%] Building C object libs/glfw/src/CMakeFiles/glfw.dir/null_window.c.o
[ 17%] Building CXX object libs/CMakeFiles/IMGUI.dir/imgui/imgui_tables.cpp.o
[ 18%] Building CXX object libs/CMakeFiles/IMGUI.dir/implot/implot_demo.cpp.o
[ 19%] Building CXX object libs/CMakeFiles/IMGUI.dir/imgui/backends/imgui_impl_metal.mm.o
[ 20%] Building C object libs/glfw/src/CMakeFiles/glfw.dir/cocoa_window.m.o
[ 21%] Building C object libs/glfw/src/CMakeFiles/glfw.dir/cocoa_init.m.o
[ 22%] Building CXX object libs/CMakeFiles/IMGUI.dir/implot/implot_items.cpp.o
[ 23%] Building C object libs/glfw/src/CMakeFiles/glfw.dir/null_joystick.c.o
[ 24%] Building C object libs/glfw/src/CMakeFiles/glfw.dir/input.c.o
[ 24%] Building C object libs/glfw/src/CMakeFiles/glfw.dir/posix_module.c.o
[ 25%] Building C object libs/glfw/src/CMakeFiles/glfw.dir/posix_thread.c.o
[ 26%] Building C object libs/glfw/src/CMakeFiles/glfw.dir/null_init.c.o
[ 27%] Building C object libs/glfw/src/CMakeFiles/glfw.dir/cocoa_monitor.m.o
[ 28%] Building C object libs/glfw/src/CMakeFiles/glfw.dir/cocoa_time.c.o
[ 29%] Building C object libs/glfw/src/CMakeFiles/glfw.dir/null_monitor.c.o
[ 30%] Building CXX object libs/opentimelineio/src/deps/Imath/src/Imath/CMakeFiles/Imath.dir/ImathRandom.cpp.o
[ 31%] Building C object libs/glfw/src/CMakeFiles/glfw.dir/osmesa_context.c.o
[ 32%] Building C object libs/glfw/src/CMakeFiles/glfw.dir/cocoa_joystick.m.o
[ 33%] Building CXX object libs/CMakeFiles/IMGUI.dir/imgui/imgui_draw.cpp.o
[ 34%] Building CXX object libs/CMakeFiles/IMGUI.dir/implot/implot.cpp.o
[ 34%] Building CXX object libs/CMakeFiles/IMGUI.dir/imgui/imgui_demo.cpp.o
[ 34%] Building CXX object libs/CMakeFiles/IMGUI.dir/ImGuiColorTextEdit/TextEditor.cpp.o
[ 35%] Building C object libs/glfw/src/CMakeFiles/glfw.dir/nsgl_context.m.o
[ 36%] Building C object libs/glfw/src/CMakeFiles/glfw.dir/platform.c.o
[ 37%] Building C object libs/glfw/src/CMakeFiles/glfw.dir/egl_context.c.o
[ 38%] Linking CXX executable binary_to_compressed_c
[ 38%] Built target binary_to_compressed_c
/Users/omakazu/program/01_multi_project/0001_DaVinci_Resolve_Conform_Tool/zzz_test_project/raven/libs/nativefiledialog/src/nfd_cocoa.m:56:17: warning: 'setAllowedFileTypes:' is deprecated: first deprecated in macOS 12.0 - Use -allowedContentTypes instead [-Wdeprecated-declarations]
[dialog setAllowedFileTypes:allowedFileTypes];
^
/Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSSavePanel.h:215:49: note: property 'allowedFileTypes' is declared deprecated here
@property (nullable, copy) NSArray<NSString *> *allowedFileTypes API_DEPRECATED("Use -allowedContentTypes instead", macos(10.3,12.0));
^
/Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSSavePanel.h:215:49: note: 'setAllowedFileTypes:' has been explicitly marked deprecated here
1 warning generated.
/Users/omakazu/program/01_multi_project/0001_DaVinci_Resolve_Conform_Tool/zzz_test_project/raven/libs/ImGuiColorTextEdit/TextEditor.cpp:932:85: error: cannot initialize a parameter of type 'ImGuiKey' with an rvalue of type 'char'
else if (!IsReadOnly() && !alt && ctrl && !shift && !super && ImGui::IsKeyPressed('['))
^~~
/Users/omakazu/program/01_multi_project/0001_DaVinci_Resolve_Conform_Tool/zzz_test_project/raven/libs/imgui/imgui.h:924:51: note: passing argument to parameter 'key' here
IMGUI_API bool IsKeyPressed(ImGuiKey key, bool repeat = true); // was key pressed (went from !Down to Down)? if repeat=true, uses io.KeyRepeatDelay / KeyRepeatRate
^
/Users/omakazu/program/01_multi_project/0001_DaVinci_Resolve_Conform_Tool/zzz_test_project/raven/libs/ImGuiColorTextEdit/TextEditor.cpp:934:85: error: cannot initialize a parameter of type 'ImGuiKey' with an rvalue of type 'char'
else if (!IsReadOnly() && !alt && ctrl && !shift && !super && ImGui::IsKeyPressed(']'))
^~~
/Users/omakazu/program/01_multi_project/0001_DaVinci_Resolve_Conform_Tool/zzz_test_project/raven/libs/imgui/imgui.h:924:51: note: passing argument to parameter 'key' here
IMGUI_API bool IsKeyPressed(ImGuiKey key, bool repeat = true); // was key pressed (went from !Down to Down)? if repeat=true, uses io.KeyRepeatDelay / KeyRepeatRate
^
/Users/omakazu/program/01_multi_project/0001_DaVinci_Resolve_Conform_Tool/zzz_test_project/raven/libs/ImGuiColorTextEdit/TextEditor.cpp:952:165: error: use of undeclared identifier 'ImGuiKey_KeyPadEnter'; did you mean 'ImGuiKey_KeypadEnter'?
else if (!IsReadOnly() && !alt && !ctrl && !shift && !super && (ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_Enter)) || ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_KeyPadEnter))))
^~~~~~~~~~~~~~~~~~~~
ImGuiKey_KeypadEnter
/Users/omakazu/program/01_multi_project/0001_DaVinci_Resolve_Conform_Tool/zzz_test_project/raven/libs/imgui/imgui.h:1366:5: note: 'ImGuiKey_KeypadEnter' declared here
ImGuiKey_KeypadEnter,
^
3 errors generated.
make[2]: *** [libs/CMakeFiles/IMGUI.dir/ImGuiColorTextEdit/TextEditor.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
[ 39%] Linking CXX static library libopentime.a
[ 39%] Built target opentime
/Users/omakazu/program/01_multi_project/0001_DaVinci_Resolve_Conform_Tool/zzz_test_project/raven/libs/nativefiledialog/src/nfd_cocoa.m:56:17: warning: 'setAllowedFileTypes:' is deprecated: first deprecated in macOS 12.0 - Use -allowedContentTypes instead [-Wdeprecated-declarations]
[dialog setAllowedFileTypes:allowedFileTypes];
^
/Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSSavePanel.h:215:49: note: property 'allowedFileTypes' is declared deprecated here
@property (nullable, copy) NSArray<NSString *> *allowedFileTypes API_DEPRECATED("Use -allowedContentTypes instead", macos(10.3,12.0));
^
/Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSSavePanel.h:215:49: note: 'setAllowedFileTypes:' has been explicitly marked deprecated here
[ 40%] Building CXX object libs/opentimelineio/tests/CMakeFiles/test_opentime.dir/utils.cpp.o
[ 41%] Building CXX object libs/opentimelineio/tests/CMakeFiles/test_opentime.dir/test_opentime.cpp.o
1 warning generated.
[ 42%] Linking C static library libnativefiledialog.a
[ 42%] Built target nativefiledialog
[ 43%] Linking C static library libglfw3.a
[ 43%] Built target glfw
[ 43%] Linking CXX static library libImath-3_2.a
[ 43%] Built target Imath
[ 44%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/composable.cpp.o
[ 45%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/clip.cpp.o
[ 46%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/composition.cpp.o
[ 47%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/deserialization.cpp.o
[ 48%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/effect.cpp.o
[ 48%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/algo/editAlgorithm.cpp.o
[ 49%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/errorStatus.cpp.o
[ 50%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/externalReference.cpp.o
[ 51%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/gap.cpp.o
[ 52%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/freezeFrame.cpp.o
[ 54%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/mediaReference.cpp.o
[ 54%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/marker.cpp.o
[ 54%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/item.cpp.o
[ 55%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/imageSequenceReference.cpp.o
[ 56%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/generatorReference.cpp.o
[ 57%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/missingReference.cpp.o
[ 58%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/linearTimeWarp.cpp.o
[ 59%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/stack.cpp.o
[ 60%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/stringUtils.cpp.o
[ 61%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/serializableObjectWithMetadata.cpp.o
[ 62%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/serializableObject.cpp.o
[ 63%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/safely_typed_any.cpp.o
[ 64%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/serializableCollection.cpp.o
[ 65%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/stackAlgorithm.cpp.o
[ 66%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/transition.cpp.o
[ 67%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/track.cpp.o
[ 68%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/timeEffect.cpp.o
[ 69%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/CORE_VERSION_MAP.cpp.o
[ 69%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/typeRegistry.cpp.o
[ 70%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/timeline.cpp.o
[ 70%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/serialization.cpp.o
[ 71%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/unknownSchema.cpp.o
[ 72%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/trackAlgorithm.cpp.o
[ 73%] Linking CXX executable test_opentime
[ 73%] Built target test_opentime
[ 74%] Linking CXX static library libopentimelineio.a
[ 74%] Built target opentimelineio
[ 75%] Building CXX object libs/opentimelineio/tests/CMakeFiles/test_track.dir/utils.cpp.o
[ 76%] Building CXX object libs/opentimelineio/tests/CMakeFiles/test_serializableCollection.dir/test_serializableCollection.cpp.o
[ 77%] Building CXX object libs/opentimelineio/tests/CMakeFiles/test_editAlgorithm.dir/utils.cpp.o
[ 77%] Building CXX object libs/opentimelineio/tests/CMakeFiles/test_serialization.dir/test_serialization.cpp.o
[ 78%] Building CXX object libs/opentimelineio/tests/CMakeFiles/test_serializableCollection.dir/utils.cpp.o
[ 78%] Building CXX object libs/opentimelineio/tests/CMakeFiles/test_editAlgorithm.dir/test_editAlgorithm.cpp.o
[ 79%] Building CXX object libs/opentimelineio/tests/CMakeFiles/test_timeline.dir/test_timeline.cpp.o
[ 80%] Building CXX object libs/opentimelineio/tests/CMakeFiles/test_timeline.dir/utils.cpp.o
[ 81%] Building CXX object libs/opentimelineio/tests/CMakeFiles/test_track.dir/test_track.cpp.o
[ 82%] Building CXX object libs/opentimelineio/tests/CMakeFiles/test_clip.dir/test_clip.cpp.o
[ 83%] Building CXX object libs/opentimelineio/tests/CMakeFiles/test_clip.dir/utils.cpp.o
[ 84%] Building CXX object libs/opentimelineio/tests/CMakeFiles/test_serialization.dir/utils.cpp.o
[ 85%] Linking CXX executable test_serialization
[ 85%] Built target test_serialization
[ 86%] Linking CXX executable test_timeline
[ 87%] Linking CXX executable test_track
[ 88%] Linking CXX executable test_serializableCollection
[ 88%] Built target test_timeline
[ 88%] Built target test_track
[ 88%] Built target test_serializableCollection
[ 89%] Linking CXX executable test_clip
[ 89%] Built target test_clip
[ 90%] Linking CXX executable test_editAlgorithm
[ 90%] Built target test_editAlgorithm
make[1]: *** [libs/CMakeFiles/IMGUI.dir/all] Error 2
make: *** [all] Error 2
what error does it happen?
Current Raven doesn't render non audio / video tracks. We need to add support for arbitrary track types to be able to fully inspect an OTIO timeline
Raven naively uses Dear ImGui in a way that re-renders the window even when not needed. The application's performance & power consumption could be improved by fixing this oversight.
When I initially wrote Raven, this continuous rendering was problematic, and I attempted to use a branches of ImGui with support for ImGuiConfigFlags_EnablePowerSavingMode
(see POWER_SAVING
in the code). If I recall correctly Raven's WASM/Emscripten build suffered from this issue quite badly, and I was disappointed to see that the power saving mode didn't work in the browser environment due to specifics of how Emscripten works.
At the time, I set that aside for "later" figuring that Dear ImGui would improve and Raven's energy usage would improve by virtue of that change. As of this writing, that feature has not landed in ImGui.
Today (Feb 2024) I was curious to measure Raven's performance on macOS. A quick look at Raven in Activity Monitor shows that this is not a problem. The app consumes 0% CPU when it is not active, or when the user's cursor is not moving, and only about 10% when the user actively zooms/pans. I'm not entirely sure why or how that changed, so some investigation should be done. Also we should compare on other platforms (Windows, Linux) to see if those have also improved.
I also found that ocornut, Dear ImGui's author, has written this advice on the subject which looks pretty straight forward to implement, and which proposes a solution for the Emscripten scenario: https://github.com/ocornut/imgui/wiki/Implementing-Power-Save,-aka-Idling-outside-of-ImGui
So this issue is here to ask for help with the following:
At this time Raven doesn't display underlying key / values of UnknownSchema
objects in an items metadata. The tree can't be expanded further than the schema root.
To implement this feature, we need a new C++ API to retrieve the data dictionary from the object. See AcademySoftwareFoundation/OpenTimelineIO#1234
If Raven is given an OTIO file with a top-level object that isn't a Timeline, it crashes. The most common case of this is an OTIO file with a SerializableCollection containing multiple timelines.
At the very least, it should give the user a helpful error message instead of crashing.
Even better it could present each different type of OTIO object in a reasonable manner. For SerializableCollection, maybe tabs for each item. For other types like MediaReference, Clip, etc. it could just show the JSON and Inspector without the timeline view.
Background:
enabled
flag which toggles whether they are enabled or disabled. For audio clips, this is a mute/unmute toggle. For video clips, a hide/show toggle.Problem:
Feature Request:
Stretch goal:
Estimated Difficulty:
HIDPI in imgui is still a mess, if you have a monitors with different DPI's on mac, this happens when you move a window to the higher DPI display.
The easiest work around is to just disable retina framebuffers in glfw
glfwWindowHint(GLFW_COCOA_RETINA_FRAMEBUFFER, GL_FALSE);
I've gotten hidpi working somewhat smoothly on Windows in one of my branches. It's still a mess.
glfw enables DPI awareness by default on Windows. I wish glfw had an equivalent hint for windows.
Hello folks, I'm facing some issues when trying to install it on fedora. Let me share some info.
Initially, I got this
(otio-p37) [wpinheir@ironman build]$ cmake ..
-- Checking for module 'gtk+-3.0'
-- Package 'gtk+-3.0', required by 'virtual:world', not found
CMake Error at /usr/share/cmake/Modules/FindPkgConfig.cmake:607 (message):
A required package was not found
Call Stack (most recent call first):
/usr/share/cmake/Modules/FindPkgConfig.cmake:829 (_pkg_check_modules_internal)
libs/CMakeLists.txt:6 (pkg_check_modules)
-- Configuring incomplete, errors occurred!
See also "/home/wpinheir/code/raven/build/CMakeFiles/CMakeOutput.log".
Then after some time, I returned and once I was very excited to see this working, I tried all the steps below, in order to see this working on linux.
Checking the default path for include
# gcc -xc -E -v -
Using built-in specs.
COLLECT_GCC=gcc
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,objc,obj-c++,ada,go,d,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --enable-libstdcxx-backtrace --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl=/builddir/build/BUILD/gcc-12.2.1-20221121/obj-x86_64-redhat-linux/isl-install --enable-offload-targets=nvptx-none --without-cuda-driver --enable-offload-defaulted --enable-gnu-indirect-function --enable-cet --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux --with-build-config=bootstrap-lto --enable-link-serialization=1
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 12.2.1 20221121 (Red Hat 12.2.1-4) (GCC)
COLLECT_GCC_OPTIONS='-E' '-v' '-mtune=generic' '-march=x86-64'
/usr/libexec/gcc/x86_64-redhat-linux/12/cc1 -E -quiet -v - -mtune=generic -march=x86-64 -dumpbase -
ignoring nonexistent directory "/usr/lib/gcc/x86_64-redhat-linux/12/include-fixed"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-redhat-linux/12/../../../../x86_64-redhat-linux/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/lib/gcc/x86_64-redhat-linux/12/include
/usr/local/include
/usr/include
End of search list.
Edit "libs/CMakeLists.txt"
From
if(UNIX AND NOT APPLE AND NOT EMSCRIPTEN)
find_package(PkgConfig REQUIRED)
pkg_check_modules(GTK3 REQUIRED gtk+-3.0)
endif()
To
if(UNIX AND NOT APPLE AND NOT EMSCRIPTEN)
find_package(PkgConfig REQUIRED)
# pkg_check_modules(GTK3 REQUIRED gtk+-3.0)
endif()
Note. This was complaining about gtk package, but as you can see below, I have already.
# rpm -qa | grep ^gtk
gtk-update-icon-cache-3.24.36-1.fc37.x86_64
gtk4-4.8.3-1.fc37.x86_64
gtkmm3.0-3.24.7-2.fc37.x86_64
gtk-vnc2-1.3.0-5.fc37.x86_64
gtksourceview4-4.8.3-3.fc37.x86_64
gtkspell3-3.0.10-15.fc37.x86_64
gtksourceview5-5.6.1-2.fc37.x86_64
gtk2-2.24.33-10.fc37.x86_64
gtkmm2.4-2.24.5-15.fc37.x86_64
gtksourceview3-3.24.11-8.fc37.x86_64
gtk3-3.24.37-1.fc37.x86_64
gtk3-devel-3.24.37-1.fc37.x86_64
install gtk3-devel
created some symlinks
# ln -s /usr/include/gtk-3.0/gtk /usr/include/gtk
# ln -s /usr/include/gtk-3.0/gdk /usr/include/gdk
# ln -s /usr/include/glib-2.0/glib.h /usr/include/
# ln -s /usr/include/glib-2.0/glib/ /usr/include/glib
# ln -s /usr/lib64/glib-2.0/include/glibconfig.h /usr/include/glibconfig.h
# ln -s /usr/include/glib-2.0/gio/ /usr/include/gio
# ln -s /usr/include/glib-2.0/glib-object.h /usr/include/
# ln -s /usr/include/glib-2.0/gobject /usr/include/gobject
# ln -s /usr/include/glib-2.0/gmodule.h /usr/include
# ln -s /usr/include/pango-1.0/pango /usr/include/pango
# for b in $(ls /usr/include/harfbuzz/hb-*); do echo - $b; ln -s $b /usr/include; done
# for b in $(ls /usr/include/cairo/*.h); do echo - $b; ln -s $b /usr/include; done
# ln -s /usr/include/gdk-pixbuf-2.0/gdk-pixbuf/ /usr/include/gdk-pixbuf
# ln -s /usr/include/atk-1.0/atk/ /usr/include/atk
the cmake passed a lot of dependencies issues and now, I'm stuck here.
$ cmake --build .
[ 22%] Built target glfw
[ 23%] Building C object libs/CMakeFiles/nativefiledialog.dir/nativefiledialog/src/nfd_gtk.c.o
[ 24%] Linking C static library libnativefiledialog.a
[ 25%] Built target nativefiledialog
[ 25%] Building CXX object libs/CMakeFiles/IMGUI.dir/imgui/imgui_demo.cpp.o
[ 26%] Building CXX object libs/CMakeFiles/IMGUI.dir/imgui/imgui_draw.cpp.o
[ 27%] Building CXX object libs/CMakeFiles/IMGUI.dir/imgui/imgui_tables.cpp.o
[ 28%] Building CXX object libs/CMakeFiles/IMGUI.dir/imgui/imgui_widgets.cpp.o
[ 29%] Building CXX object libs/CMakeFiles/IMGUI.dir/imgui/imgui.cpp.o
[ 30%] Building CXX object libs/CMakeFiles/IMGUI.dir/implot/implot.cpp.o
[ 31%] Building CXX object libs/CMakeFiles/IMGUI.dir/implot/implot_demo.cpp.o
[ 32%] Building CXX object libs/CMakeFiles/IMGUI.dir/implot/implot_items.cpp.o
[ 33%] Building CXX object libs/CMakeFiles/IMGUI.dir/ImGuiColorTextEdit/TextEditor.cpp.o
[ 34%] Building CXX object libs/CMakeFiles/IMGUI.dir/imgui/backends/imgui_impl_glfw.cpp.o
[ 35%] Building CXX object libs/CMakeFiles/IMGUI.dir/imgui/backends/imgui_impl_opengl3.cpp.o
[ 36%] Building C object libs/CMakeFiles/IMGUI.dir/gl3w/GL/gl3w.c.o
[ 37%] Linking CXX static library libIMGUI.a
[ 37%] Built target IMGUI
[ 38%] Building CXX object libs/CMakeFiles/binary_to_compressed_c.dir/imgui/misc/fonts/binary_to_compressed_c.cpp.o
[ 39%] Linking CXX executable binary_to_compressed_c
[ 39%] Built target binary_to_compressed_c
[ 39%] Building CXX object libs/opentimelineio/src/deps/Imath/src/Imath/CMakeFiles/Imath.dir/half.cpp.o
[ 40%] Building CXX object libs/opentimelineio/src/deps/Imath/src/Imath/CMakeFiles/Imath.dir/ImathColorAlgo.cpp.o
[ 41%] Building CXX object libs/opentimelineio/src/deps/Imath/src/Imath/CMakeFiles/Imath.dir/ImathFun.cpp.o
[ 42%] Building CXX object libs/opentimelineio/src/deps/Imath/src/Imath/CMakeFiles/Imath.dir/ImathMatrixAlgo.cpp.o
[ 43%] Building CXX object libs/opentimelineio/src/deps/Imath/src/Imath/CMakeFiles/Imath.dir/ImathRandom.cpp.o
[ 44%] Linking CXX static library libImath-3_2.a
[ 44%] Built target Imath
[ 45%] Building CXX object libs/opentimelineio/src/opentime/CMakeFiles/opentime.dir/errorStatus.cpp.o
[ 46%] Building CXX object libs/opentimelineio/src/opentime/CMakeFiles/opentime.dir/rationalTime.cpp.o
[ 47%] Linking CXX static library libopentime.a
[ 47%] Built target opentime
[ 48%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/clip.cpp.o
[ 49%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/composable.cpp.o
[ 50%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/composition.cpp.o
[ 50%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/deserialization.cpp.o
[ 51%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/effect.cpp.o
[ 52%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/errorStatus.cpp.o
[ 53%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/externalReference.cpp.o
[ 54%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/freezeFrame.cpp.o
[ 55%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/gap.cpp.o
[ 56%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/generatorReference.cpp.o
[ 57%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/imageSequenceReference.cpp.o
[ 58%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/item.cpp.o
[ 59%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/linearTimeWarp.cpp.o
[ 60%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/marker.cpp.o
[ 61%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/mediaReference.cpp.o
[ 62%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/missingReference.cpp.o
[ 62%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/safely_typed_any.cpp.o
[ 63%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/serializableCollection.cpp.o
[ 64%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/serializableObject.cpp.o
[ 65%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/serializableObjectWithMetadata.cpp.o
[ 66%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/serialization.cpp.o
[ 67%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/stack.cpp.o
[ 68%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/stackAlgorithm.cpp.o
[ 69%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/stringUtils.cpp.o
[ 70%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/timeEffect.cpp.o
[ 71%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/timeline.cpp.o
[ 72%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/track.cpp.o
[ 73%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/trackAlgorithm.cpp.o
[ 74%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/transition.cpp.o
[ 75%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/typeRegistry.cpp.o
[ 75%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/unknownSchema.cpp.o
[ 76%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/CORE_VERSION_MAP.cpp.o
[ 77%] Linking CXX static library libopentimelineio.a
[ 77%] Built target opentimelineio
[ 78%] Embedding font...
[ 79%] Building CXX object CMakeFiles/raven.dir/app.cpp.o
[ 80%] Building CXX object CMakeFiles/raven.dir/editing.cpp.o
[ 81%] Building CXX object CMakeFiles/raven.dir/inspector.cpp.o
[ 82%] Building CXX object CMakeFiles/raven.dir/timeline.cpp.o
[ 83%] Building CXX object CMakeFiles/raven.dir/widgets.cpp.o
[ 84%] Building CXX object CMakeFiles/raven.dir/main_glfw.cpp.o
[ 85%] Linking CXX executable raven
/usr/bin/ld: libs/libnativefiledialog.a(nfd_gtk.c.o): in function `AddFiltersToDialog':
nfd_gtk.c:(.text+0x129): undefined reference to `gtk_file_filter_new'
/usr/bin/ld: nfd_gtk.c:(.text+0x152): undefined reference to `gtk_file_filter_set_name'
/usr/bin/ld: nfd_gtk.c:(.text+0x157): undefined reference to `gtk_file_chooser_get_type'
/usr/bin/ld: nfd_gtk.c:(.text+0x165): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x170): undefined reference to `gtk_file_chooser_add_filter'
/usr/bin/ld: nfd_gtk.c:(.text+0x186): undefined reference to `gtk_file_filter_new'
/usr/bin/ld: nfd_gtk.c:(.text+0x218): undefined reference to `gtk_file_filter_add_pattern'
/usr/bin/ld: nfd_gtk.c:(.text+0x251): undefined reference to `gtk_file_filter_new'
/usr/bin/ld: nfd_gtk.c:(.text+0x261): undefined reference to `gtk_file_filter_set_name'
/usr/bin/ld: nfd_gtk.c:(.text+0x26e): undefined reference to `gtk_file_filter_add_pattern'
/usr/bin/ld: nfd_gtk.c:(.text+0x279): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x284): undefined reference to `gtk_file_chooser_add_filter'
/usr/bin/ld: libs/libnativefiledialog.a(nfd_gtk.c.o): in function `NFD_OpenDialog':
nfd_gtk.c:(.text+0x2a8): undefined reference to `gtk_init_check'
/usr/bin/ld: nfd_gtk.c:(.text+0x2d5): undefined reference to `gtk_file_chooser_dialog_new'
/usr/bin/ld: nfd_gtk.c:(.text+0x2f4): undefined reference to `gtk_dialog_get_type'
/usr/bin/ld: nfd_gtk.c:(.text+0x304): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x30c): undefined reference to `gtk_dialog_run'
/usr/bin/ld: nfd_gtk.c:(.text+0x321): undefined reference to `gtk_main_iteration'
/usr/bin/ld: nfd_gtk.c:(.text+0x326): undefined reference to `gtk_events_pending'
/usr/bin/ld: nfd_gtk.c:(.text+0x332): undefined reference to `gtk_widget_destroy'
/usr/bin/ld: nfd_gtk.c:(.text+0x341): undefined reference to `gtk_main_iteration'
/usr/bin/ld: nfd_gtk.c:(.text+0x346): undefined reference to `gtk_events_pending'
/usr/bin/ld: nfd_gtk.c:(.text+0x361): undefined reference to `gtk_file_chooser_get_type'
/usr/bin/ld: nfd_gtk.c:(.text+0x36c): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x377): undefined reference to `gtk_file_chooser_set_current_folder'
/usr/bin/ld: nfd_gtk.c:(.text+0x391): undefined reference to `gtk_file_chooser_get_type'
/usr/bin/ld: nfd_gtk.c:(.text+0x39c): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x3a4): undefined reference to `gtk_file_chooser_get_filename'
/usr/bin/ld: nfd_gtk.c:(.text+0x3dc): undefined reference to `g_free'
/usr/bin/ld: nfd_gtk.c:(.text+0x3eb): undefined reference to `g_free'
/usr/bin/ld: nfd_gtk.c:(.text+0x3f5): undefined reference to `gtk_widget_destroy'
/usr/bin/ld: libs/libnativefiledialog.a(nfd_gtk.c.o): in function `NFD_OpenDialogMultiple':
nfd_gtk.c:(.text+0x41c): undefined reference to `gtk_init_check'
/usr/bin/ld: nfd_gtk.c:(.text+0x449): undefined reference to `gtk_file_chooser_dialog_new'
/usr/bin/ld: nfd_gtk.c:(.text+0x451): undefined reference to `gtk_file_chooser_get_type'
/usr/bin/ld: nfd_gtk.c:(.text+0x45f): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x46c): undefined reference to `gtk_file_chooser_set_select_multiple'
/usr/bin/ld: nfd_gtk.c:(.text+0x48a): undefined reference to `gtk_dialog_get_type'
/usr/bin/ld: nfd_gtk.c:(.text+0x49b): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x4a3): undefined reference to `gtk_dialog_run'
/usr/bin/ld: nfd_gtk.c:(.text+0x4b1): undefined reference to `gtk_main_iteration'
/usr/bin/ld: nfd_gtk.c:(.text+0x4b6): undefined reference to `gtk_events_pending'
/usr/bin/ld: nfd_gtk.c:(.text+0x4c2): undefined reference to `gtk_widget_destroy'
/usr/bin/ld: nfd_gtk.c:(.text+0x4d1): undefined reference to `gtk_main_iteration'
/usr/bin/ld: nfd_gtk.c:(.text+0x4d6): undefined reference to `gtk_events_pending'
/usr/bin/ld: nfd_gtk.c:(.text+0x4f7): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x502): undefined reference to `gtk_file_chooser_set_current_folder'
/usr/bin/ld: nfd_gtk.c:(.text+0x527): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x52f): undefined reference to `gtk_file_chooser_get_filenames'
/usr/bin/ld: nfd_gtk.c:(.text+0x53f): undefined reference to `g_slist_length'
/usr/bin/ld: nfd_gtk.c:(.text+0x5d8): undefined reference to `g_free'
/usr/bin/ld: nfd_gtk.c:(.text+0x607): undefined reference to `g_slist_free'
/usr/bin/ld: nfd_gtk.c:(.text+0x614): undefined reference to `gtk_widget_destroy'
/usr/bin/ld: libs/libnativefiledialog.a(nfd_gtk.c.o): in function `NFD_SaveDialog':
nfd_gtk.c:(.text+0x646): undefined reference to `gtk_init_check'
/usr/bin/ld: nfd_gtk.c:(.text+0x676): undefined reference to `gtk_file_chooser_dialog_new'
/usr/bin/ld: nfd_gtk.c:(.text+0x67e): undefined reference to `gtk_file_chooser_get_type'
/usr/bin/ld: nfd_gtk.c:(.text+0x68c): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x699): undefined reference to `gtk_file_chooser_set_do_overwrite_confirmation'
/usr/bin/ld: nfd_gtk.c:(.text+0x6b6): undefined reference to `gtk_dialog_get_type'
/usr/bin/ld: nfd_gtk.c:(.text+0x6c6): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x6ce): undefined reference to `gtk_dialog_run'
/usr/bin/ld: nfd_gtk.c:(.text+0x6e1): undefined reference to `gtk_main_iteration'
/usr/bin/ld: nfd_gtk.c:(.text+0x6e6): undefined reference to `gtk_events_pending'
/usr/bin/ld: nfd_gtk.c:(.text+0x6f2): undefined reference to `gtk_widget_destroy'
/usr/bin/ld: nfd_gtk.c:(.text+0x701): undefined reference to `gtk_main_iteration'
/usr/bin/ld: nfd_gtk.c:(.text+0x706): undefined reference to `gtk_events_pending'
/usr/bin/ld: nfd_gtk.c:(.text+0x727): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x732): undefined reference to `gtk_file_chooser_set_current_folder'
/usr/bin/ld: nfd_gtk.c:(.text+0x757): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x75f): undefined reference to `gtk_file_chooser_get_filename'
/usr/bin/ld: nfd_gtk.c:(.text+0x797): undefined reference to `g_free'
/usr/bin/ld: nfd_gtk.c:(.text+0x7a6): undefined reference to `g_free'
/usr/bin/ld: nfd_gtk.c:(.text+0x7b0): undefined reference to `gtk_widget_destroy'
/usr/bin/ld: libs/libnativefiledialog.a(nfd_gtk.c.o): in function `NFD_PickFolder':
nfd_gtk.c:(.text+0x7d5): undefined reference to `gtk_init_check'
/usr/bin/ld: nfd_gtk.c:(.text+0x805): undefined reference to `gtk_file_chooser_dialog_new'
/usr/bin/ld: nfd_gtk.c:(.text+0x80d): undefined reference to `gtk_file_chooser_get_type'
/usr/bin/ld: nfd_gtk.c:(.text+0x81b): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x828): undefined reference to `gtk_file_chooser_set_do_overwrite_confirmation'
/usr/bin/ld: nfd_gtk.c:(.text+0x839): undefined reference to `gtk_dialog_get_type'
/usr/bin/ld: nfd_gtk.c:(.text+0x849): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x851): undefined reference to `gtk_dialog_run'
/usr/bin/ld: nfd_gtk.c:(.text+0x861): undefined reference to `gtk_main_iteration'
/usr/bin/ld: nfd_gtk.c:(.text+0x866): undefined reference to `gtk_events_pending'
/usr/bin/ld: nfd_gtk.c:(.text+0x872): undefined reference to `gtk_widget_destroy'
/usr/bin/ld: nfd_gtk.c:(.text+0x881): undefined reference to `gtk_main_iteration'
/usr/bin/ld: nfd_gtk.c:(.text+0x886): undefined reference to `gtk_events_pending'
/usr/bin/ld: nfd_gtk.c:(.text+0x8a7): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x8b2): undefined reference to `gtk_file_chooser_set_current_folder'
/usr/bin/ld: nfd_gtk.c:(.text+0x8d7): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x8df): undefined reference to `gtk_file_chooser_get_filename'
/usr/bin/ld: nfd_gtk.c:(.text+0x917): undefined reference to `g_free'
/usr/bin/ld: nfd_gtk.c:(.text+0x926): undefined reference to `g_free'
/usr/bin/ld: nfd_gtk.c:(.text+0x930): undefined reference to `gtk_widget_destroy'
collect2: error: ld returned 1 exit status
gmake[2]: *** [CMakeFiles/raven.dir/build.make:191: raven] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:316: CMakeFiles/raven.dir/all] Error 2
gmake: *** [Makefile:136: all] Error 2
Ps.: I was trying to add the path in some files, better than creating a lot of symlinks, but none of them worked.
Any help will be very welcome.
Thank you
Waldirio
Most NLEs show audio waveform shapes in audio clips on the timeline. Raven would be greatly improved if it had this feature also.
Here's a mockup of what that could look like
Adding such a feature, however, opens many questions about media file formats, loading of media reference target_urls, and other specifics which might be problematic. By design Raven doesn't show video, or play video or audio, so showing waveforms invites the question if the tool should go in that direction or not, which is... complicated.
In an attempt to build raven on MacOS Ventura 13.4 on M1 Max, I see the following errors"
`
build % cmake ..
-- The C compiler identification is AppleClang 14.0.3.14030022
-- The CXX compiler identification is AppleClang 14.0.3.14030022
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error at CMakeLists.txt:54 (add_subdirectory):
The source directory
/usr/local/bin/raven-main/libs/opentimelineio
does not contain a CMakeLists.txt file.
CMake Error at CMakeLists.txt:66 (add_subdirectory):
The source directory
/usr/local/bin/raven-main/libs/glfw
does not contain a CMakeLists.txt file.
`
I figured I'd ask here first, thanks.
Bug:
When a clip is selected, it is highlighted in white, which is the same color as some of the text on the clip, making the text unreadable. Furthermore, when adjusting a clip's color in the inspector, the clip color is not visible until you deselect the clip.
Suggested Fix:
It would be great to have the ability to color code clips and/or tracks in Raven.
For starters, colors could be set in OTIO metadata, but once that is working, we could explore adding that as an official schema feature in OTIO.
Note: I'm not a C++ developer, nor do I have a lot of experience with WASM! Maybe I'm misunderstanding parts of this.
Today I was able to successfully deploy a built WASM version of raven onto one of our web servers. Exciting!
Following the instructions in the README got me a running version of raven, but I spent quite a bit of time trying to figure out how to actually read a file, since the "Open" menu item doesn't do anything in the browser, and I couldn't figure out any way to use javascript to interact with the main window!
I followed a few guides on how to create "files" (in-memory) in emscripten, and these all caused raven to crash completely.
BUT!
What I finally ended up doing was replacing from_json_file(...)
with from_json_string(...)
in app.cpp
. This allowed me to pass in raw json as an argument to the emscripten app, and get the timeline loaded in the browser!
Anyway, after all of that I had two thoughts:
from_json_string()
to javascript? This way people can write their own javascript code to handle finding and reading OTIO files.A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.