Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add av-metrics-gui-tool #290

Merged
merged 2 commits into from
Oct 15, 2021
Merged

Add av-metrics-gui-tool #290

merged 2 commits into from
Oct 15, 2021

Conversation

Luni-4
Copy link
Member

@Luni-4 Luni-4 commented Jul 9, 2021

This PR adds av-metrics-gui-tool, an iced GUI tool that computes video metrics.

Since the building is extremely slow due to the great amount of dependencies, for now the tool is not a workspace member, but I'm planning to add a deploy action in a following PR.

The tool also runs on web too thanks to the WebAssembly support provided by iced, but it needs more in depth tests.

Thanks in advance for your review!

@vibhoothi
Copy link
Contributor

Can you please add some screenshots for quick view^^

Copy link
Contributor

@vibhoothi vibhoothi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This might require a rebase to master

@Luni-4
Copy link
Member Author

Luni-4 commented Aug 12, 2021

@vibhoothi

Yep, I need to fix some stuff and clean up the code a bit, I'm going to work on it as soon as I can

@Luni-4 Luni-4 force-pushed the iced-metrics branch 3 times, most recently from 2bb152d to 2f961f4 Compare August 25, 2021 09:10
@Luni-4 Luni-4 force-pushed the iced-metrics branch 7 times, most recently from fa9446b to 8f3a976 Compare September 6, 2021 13:12
@Luni-4
Copy link
Member Author

Luni-4 commented Sep 7, 2021

@vibhoothi @shssoichiro

We can consider this PR ready. The GUI can compute video metrics on Linux and Windows through FFmpeg, and Y4m also, furthermore we have also added a script to automatically deploy the FFmpeg binaries.

What we were not able to achieve:

  • For now, we can create a wasm32 binary but unfortunately the metrics can't be computed since that platform is not supported yet. We need to add the wasm32 platform for the av-metrics crate.
  • We can build the macos binary, but we cannot run it because of this winit limitation with sync file dialogs: [MacOS] Dialogues freeze when used in winit event loop rust-windowing/winit#1779. Iced makes use of winit as dependency, so until that bug will not be fixed, we are stuck. Perhaps we could create the main loop ourselves, as done here, but that would complicate a lot the entire code

Here the artifacts produced by the script: https://github.com/Luni-4/av-metrics/actions/runs/1208712639
To run the wasm32 binary and JavaScript bindings, one can use the python3 -m http.server in the artifact's folder and see the result through a browser.

@Luni-4
Copy link
Member Author

Luni-4 commented Oct 6, 2021

@vibhoothi

I tidied up the code a bit, I think we can merge it. You can find the final release here. I will iterate over the MacOS target later.

Wasm-32 can't be run in an easy way because we have a problem with the parallelism provided by rayon, there is a workaround but it doesn't work on any browser as stated here

@Luni-4 Luni-4 requested a review from vibhoothi October 6, 2021 11:10
Copy link
Contributor

@vibhoothi vibhoothi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM to me, apart from one comment

@Luni-4 Luni-4 merged commit cddd0bc into rust-av:master Oct 15, 2021
@Luni-4 Luni-4 deleted the iced-metrics branch October 15, 2021 10:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants