Giter Club home page Giter Club logo

desmodder-video-creator's Introduction

desmodder-video-creator's People

Contributors

jared-hughes avatar slimrunner avatar

Watchers

 avatar  avatar  avatar

Forkers

slimrunner

desmodder-video-creator's Issues

Memory issues on export

Reported by Idealistic-Introvert in the discord. SBOX_FATAL_MEMORY_EXCEEDED.

Of course, we don't want a full crash of the tab because that loses all captured frames. If we can't avoid the crash, might want to

  • warn of high memory usage
  • or put all frames into local storage in case of crash.

image

Needs more testing:

  • does this only happen for MP4s?
  • does it only happen for some minimum number/size of frames?

Choose a custom view size in pixels

Still default to the screen width, but provide this as an option for high- or low-res to be selected without resizing the window.

It would be great to scale the canvas as well, to get instant feedback/preview.

Cross-origin isolation

Warning message: "SharedArrayBuffer will require cross-origin isolation as of M91, around May 2021."

Different possible fixes:

Regarding the headers option:

It looks like extension can use onHeadersReceived to enable it
"This event is intended to allow extensions to add, modify, and delete response headers"

However, it looks like there's some exceptions:

Starting from Chrome 79, request header modifications affect Cross-Origin Resource Sharing (CORS) checks. If modified headers for cross-origin requests do not meet the criteria, it will result in sending a CORS preflight to ask the server if such headers can be accepted. If you really need to modify headers in a way to violate the CORS protocol, you need to specify 'extraHeaders' in opt_extraInfoSpec. On the other hand, response header modifications do not work to deceive CORS checks. If you need to deceive the CORS protocol, you also need to specify 'extraHeaders' for the response modifications.

Starting from Chrome 79, the webRequest API does not intercept CORS preflight requests and responses by default. A CORS preflight for a request URL is visible to an extension if there is a listener with 'extraHeaders' specified in opt_extraInfoSpec for the request URL. onBeforeRequest can also take 'extraHeaders' from Chrome 79.

I took this screenshot a while back, maybe it was from a Chrome dev blog post:

image

Split Controller.ts

It's way too long. At minimum, utilize the following files:

  • View.ts
  • capture.ts with utility functions for the capture
  • something for model/state in prep for future serialization of capture settings

Allow non-simulated variables to be a conditional in a simulation capture

Edit: don't waste time reading this. See the last comment

My reasoning here is that many of my simulated graphs have a master switch (a non-simulated variable) that kicks off the simulation when set to 1, and I noticed that the conditional for sim-capture is a Desmos "boolean" expression wrapped in a piecewise which is then evaluated in a HelperExpression.

However, when I try to reference my non-simulated variable DesModder prevents me from capturing video. Is the following warning the reason why you disallowed this behavior?

// WARNING: helper.numericValue is evaluated asynchronously,
// so the stop condition may be missed in rare situations.
// But it should be evaluated faster than the captureFrame in practice

Allow video-creator to export captured sequence as APNG

FFMPEG can natively, and easily, manage animated PNGs with the following command:

ffmpeg -r 60 -i INPUT.png -f apng OUTPUT.png

Note the format flag is used to avoid the rather niche .apng extension.

Additionally, the extra flag of -plays can be included followed by a number to determine the number of times the animation should loop. The following example hard-codes unlimited loops:

ffmpeg -r 60 -i INPUT.png -plays 0 -f apng OUTPUT.png

If you like the idea, feel free to assign this to me.

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.