valadaptive / ntsc-rs

Free, open-source analog TV + VHS effect. Standalone application + plugin (After Effects, Premiere, and OpenFX).
Other
237 stars 4 forks source link

Linux version does not launch properly #109

Open 0x5066 opened 1 month ago

0x5066 commented 1 month ago

The Linux version of ntsc-rs does not launch properly, all I'm getting is a blank grey window that's bigger than both of my screens combined, on the other hand, the Windows version through Wine launches with no issues whatsoever.

There are no logs provided when launched through the terminal, I'm running EndeavourOS. I'm not sure what else is needed for Linux reports

valadaptive commented 1 month ago

Do you have GStreamer installed?

0x5066 commented 1 month ago

I have GStreamer installed, not any of the other variants

valadaptive commented 1 month ago

What do you mean "variants"? The additional GStreamer packages contain codecs and other plugins for GStreamer that are necessary to load various video formats.

If you resize the window to fit your screen, is there a loading spinner or anything that could be hidden by the window's size, or is it completely blank? (A screenshot may be helpful)

0x5066 commented 1 month ago

With variants I mean things like gstreamer0.10-good and so on.

There's nothing, and trying to close it just calls the "This window might be busy and is not responding" window image

valadaptive commented 1 month ago

Yeah, those are the actual plugins for GStreamer.

Is there a gstreamer1-* set of packages? The 0.10 series may be too old for ntsc-rs to function properly.

0x5066 commented 1 month ago

None in the Arch repos or AUR The gstreamer package that is installed is version 1.24.3-1

valadaptive commented 1 month ago

Try installing gst-plugins-base, gst-plugins-good, gst-plugins-bad, and gst-plugins-ugly.

If that doesn't work, perhaps try building it from source with rustup? It should be a lot easier on Linux than on Windows.

0x5066 commented 1 month ago

I've had gst-plugins-base, gst-plugins-good, gst-plugins-bad, and gst-plugins-ugly installed already and reinstalling them didn't do anything different

I'm probably missing something but trying to compile the project with cargo build --release got it to complain about openfx:

   Compiling arboard v3.3.2
   Compiling ashpd v0.8.1
   Compiling egui_glow v0.27.0
   Compiling ntscrs-c-api v0.1.0 (/home/erisl/ntsc-rs/crates/c-api)
   Compiling openfx-plugin v0.1.2 (/home/erisl/ntsc-rs/crates/openfx-plugin)
error: failed to run custom build command for `openfx-plugin v0.1.2 (/home/erisl/ntsc-rs/crates/openfx-plugin)`

Caused by:
  process didn't exit successfully: `/home/erisl/ntsc-rs/target/release/build/openfx-plugin-df26b24b3454e0df/build-script-build` (exit status: 101)
  --- stdout
  cargo:rerun-if-changed=wrapper.h
  cargo:rustc-env=TARGET=x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=TARGET
  cargo:rerun-if-env-changed=BINDGEN_EXTRA_CLANG_ARGS_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=BINDGEN_EXTRA_CLANG_ARGS_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=BINDGEN_EXTRA_CLANG_ARGS
  cargo:rerun-if-changed=wrapper.h

  --- stderr
  wrapper.h:3:10: fatal error: 'vendor/openfx/include/ofxCore.h' file not found
  thread 'main' panicked at crates/openfx-plugin/build.rs:29:10:
  Unable to generate bindings: ClangDiagnostic("wrapper.h:3:10: fatal error: 'vendor/openfx/include/ofxCore.h' file not found\n")
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...

There are no build instructions as far as I can see

valadaptive commented 1 month ago

I should probably include build instructions. It's a footgun with Git submodules--you need to run git submodule update --init --recursive explicitly to fetch the submodules before it'll build. Honestly I should probably change it to a regular folder.

0x5066 commented 1 month ago

I ran the git command, recompiled and I'm at the same grey window that's unresponsive

Degamisu commented 1 month ago

Hey! have you tried this script yet?

$ sudo apt-get install libgstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-alsa

What version of linux are you using? ubuntu?

0x5066 commented 1 month ago

EndeavourOS, a flavor of Arch Linux

valadaptive commented 1 month ago

I ran the git command, recompiled and I'm at the same grey window that's unresponsive

Hm. It at least seems to be the same shade of grey that egui uses, but it should be displaying at least a loading screen.

Try running some egui examples? (cd into the examples directory then cargo run -p hello_world --release)

I'm trying to narrow down if this is an issue with egui or gstreamer or ntsc-rs.

valadaptive commented 1 month ago

Hey! have you tried this script yet?

$ sudo apt-get install libgstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-alsa

What version of linux are you using? ubuntu?

They stated in the very top post that they are using EndeavourOS, which does not use the APT package manager, and responded earlier that they have installed all GStreamer plugins. I appreciate your enthusiasm to help, but don't feel obligated to respond to every issue or solve everyone's problems--it seems like you've been taking on more of a "backseat repository manager" role as of late.

0x5066 commented 1 month ago

image Hello World launches just fine

Edit: I mean I can use the Windows version through Wine just fine, though am curious as to why the Linux version just hangs

valadaptive commented 1 month ago

Since I don't have your system and can't reproduce it on my own, I'm not really sure what's going on. If you're adventurous, you could try manually commenting out bits of code in the standalone app (crates/gui/src/app/main.rs; the run function at line 140 and update function at line 2845 are good places to start) and trying to determine the cause of the hang that way.