* Every unique video frame and audio sample that the TASed system outputs to the user must be present in the video and audio streams, even if it requires variable framerate. * Video dumping must not affect emulation in any way. * It must be possible to dump all video frames and audio samples to a file without information loss. ** There must be a way to accurately dump pixel-perfect video without resizing, in the way it's originally provided by the system. If the output is meant to be filtered before being delivered, intended filtering is a part of required accuracy. ** Uncompressed encoding is preferred for audio, and lossless compression is preferred for video. ** Encoding techniques used for video dumping must provide maximum compatibility to guarantee that it would be easy to further encode the dump. * It must be possible to have a guaranteed way to sustain perfect sync between video and audio for infinite time and infinite number of segments. * It must be possible to dump in segments: ** It must be possible to start a new video segment every time resolution or framerate changes. ** If dumping method is WinAPI/Video-for-Windows based, it must be possible to start a new segment before the video file is 2GB in size. * It's desirable to be able to add informational overlay to the dump, for example Lua drawings.