using System.Diagnostics; using System.IO; namespace ytLive.Services; /// /// TASK 21: seam around the media decoder's subprocess (ffmpeg rawvideo). /// Exposes the raw binary stdout (frames) and exit control, so /// never touches System.Diagnostics.Process /// directly and tests can fake the whole decode. Mirrors the encoder's /// IEncoderProcess but with a binary . /// public interface IDecodeProcess : IDisposable { void Start(ProcessStartInfo startInfo); /// Raw binary stdout — the rawvideo BGRA frame bytes. Stream StandardOutput { get; } bool HasExited { get; } int ExitCode { get; } void Kill(); Task WaitForExitAsync(CancellationToken cancellationToken = default); }