Editor: Supports video rendering termination #28475
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
fix: #28454
With this PR, users can now terminate video rendering by closing the popup window
Details:
Checks popup window
.closed
before each FS (writefile) APIs, short-circuit if value istrue
(suggested by @aardgoose), in this case no further processing.Calls
ffmpeg.exit()
on popup windowunload
, in order to terminate ongoing.run()
(tested by @Mugen87), in this case no further processing.NOTE: Calling
ffmpeg.exit()
won't stop queued FS (writeFile) calls, instead this is guarded by checking popup window.closed
)NOTE: There will be some errors logged in the console after calling
ffmpeg.exit()
, these errors can't be caught insidebar.project.video.js
because they were raised from a worker spawned fromffmpeg.js
:screenshot
Unlinks
out.mp4
from ffmpeg.FS when teardownEnsures that
player.dispose()
will be called no matterffmpeg.exit()
-ed or notHandles setProgress with 2 special cases:
ratio
sometimes be Infinity when multi videos are being rendered at the same time