Pause/Resume processing

Users should be able to pause processing and close the app.
The next time they open the app, they should be able to resume processing from were they left off.
Users should also be able to resume processing the batch/video if the app crashes.

this would be be very usefull

1 Like

In my experience, I can close the processing and VEAI gives the option to continue when I next run it.

this would be very helpful.

As written abovem, it also is related to crash management… I am not quite sure how to implement it, but maybe open the output file / encoding / writing / closing it in small chunks instead of “leave open all the time, in case of crash its all lost” could be realised…

Yes please. I had to deny playing a game with a friend because my GPU was busy. Could have played with him if I could pause VEIA and re-continue it later.

Oh god yes, thanks Devs for bringing this idea as a forum topic, this will be a much-loved/needed addition!

I would prioritize this over all other features.

Excellent idea and now join it with other requests that we have made for a long time to suspend and / or turn off the pc after finishing the task.

Yes, this would be very useful.

I like this feature.

Only viable way crash recovery would work, IMHO, is when people use multiple files output (png, tiff). Then VEA can simply take last file -1 (in the case the last one is corrupted), and proceed from there,

Yes, thats the way to go for the moment, I was refering to something else:

If a larger file is written - the corresponding part of the program doing it can either:

  1. “leave the file open for writing all the time”

or

  1. “write out small chunks of data as they are ready, then close the file”

Thats not a user behaviour but something on the developers side… In case 1 - if somehting gies wrong, the whole file most likely is scrambled and corrupt… In case 2 - all that is lost is the last few chunks - at least the chance of the file surviving is greater…

I understood what you meant, but I think it can never be implemented in a practical sense, as it’s way too file system dependent. NTFS, for instance, uses journaling to allow for transactions (like in databases), but is still also reliant on disk caches being flushed regularly. Some data could be retrieved, for sure. If it were to happen to me, I’d write a small VS script to play the output file, display the frame number, and basically see how far I got before a corrupted frame is detected. Then pick up from the last GOP or something. Only way to be sure, but not exactly elegant.

Also, what kind of crashes are we talking about here? Only type where disk-cached data would be lost, is when people were to experience a full reset (like a spontaneous reboot). In other cases, the disk cache would still be flushed, even if VEAI crashed (but likely the output file will be corrupted somwhere in the last GOP).

I’d settle for one of these things (in this order);

  1. Pause. A simple pause option, where VEAI flushes its buffers, and simply stops processing further frames, effectively freeing up the GPU.

  2. Recovery after having quit the program (like Pause, but with controlled exit).

  3. Crash recovery. Considerably harder, I think (especially after a system reset); and maybe unrealistic.

The difficulty in some situations is, that the video files are often not even recoverable up to the point where the last correct GOP is fine, because the crash left the file open while writing… Of course, having advanced options for file recovery, almost anything can be done, but for novice users, a simpel: “load it up somewhere and just throw out the last few broken frames” is not possible… Even a brute force ffmpeg remux won´t help in that case.

Anyway, it would be up to TOPAZ to check whether they could modify the output parser / Write module in order to deal with that - we are just brainstorming :slight_smile:

Just to make things clear and help with the discussion.
The pause/resume feature will be built the same way as crash recovery. The video output from VEAI by default will use fragmented stream(frag_keyframe+empty_moov) it will also force a key frame every second or 2. The will allow users to view the output while VEAI is processing. It will allow video playback if VEAI crashes or the user pauses processing.

4 Likes

+1 for Pause/Resume. Would be incredibly useful.

1 Like

Even if we have to keep the application open or we’ll loose progress, pausing would be awesome.
Outputting to MKV container, might also make pausing and resuming easier.