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);
}