Git Product home page Git Product logo

raven's People

Contributors

darbyjohnston avatar dependabot[bot] avatar jminor avatar markreidvfx avatar meshula avatar opal-m avatar timlehr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

raven's Issues

[error] cmake filed

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?

  • macOS Ventura 13.4
  • M1 Max
  • cmake version 3.28.2

Does not render non-AV tracks

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

Performance + power consumption issue

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:

  • Measure Raven's CPU usage when active vs inactive on these platforms:
    • Windows
    • Linux
    • Emscripten
  • If those are problematic, then attempt to implement the strategy outlined in the linked wiki page above.

Crashes when reading OTIO file with SerializableCollection

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.

Enable/disable clips

Background:

  • Clips (and other Items) have an 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:

  • Currently Raven's display shows no indication whether a clip is enabled or disabled.

Feature Request:

  • Raven should draw disabled Clips in a muted grey color so the enabled/disabled state is clear at a glance.
  • In the Inspector tab, Raven should show an "Enabled" checkbox which can be toggled on/off to modify the currently selected Clip (or other Item).

Stretch goal:

  • Tracks are also Items, and can be disabled. Raven should draw whole Tracks with a ghosted/grey style.

Estimated Difficulty:

  • Easy
  • Some familiarity with C/C++
  • Only 2 source files need to be modified (timeline.cpp and inspector.cpp)
  • Data structure is already in place.
  • Test data is available.
  • Only user interface needs to be changed.
  • No difficult design or architecture choices.
  • This task is a good introduction to Dear ImGui

HIDPI on mac

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.

image

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.

Trying to install it on Fedora

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

Audio waveforms

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
image

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.

Attempt to build on MacOS Ventura 13.4 M1 Max

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.

Clip color obscures important text details

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:

  • The timecode text on each clip could flip from white to black depending on the clip's fill color (like the clip name text does already).
  • A better choice for the selection highlight color (perhaps a tint, brighten or darken) instead of pure white could work better.
  • Both of these problems would be avoided if the selection highlight was a border instead of coloring the entire clip.

Track & clip colors

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.

Improve WASM experience for loading an OTIO file

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:

  1. I don't know how emscripten works, but can we expose a function like from_json_string() to javascript? This way people can write their own javascript code to handle finding and reading OTIO files.
  2. Could we add an argument into the main CLI app to do handle passing in raw json, instead of a file path?
  3. Documenting the WASM stuff better would be lovely, especially for people like me who have no idea what they're doing!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.