namespace StreamShorts.Library.Media;
///
/// Represents a service for processing video files.
///
internal interface IVideoService
{
///
/// Extracts audio from a video stream and writes it to an audio stream.
///
/// The input video stream.
/// The output audio stream.
/// A task that represents the asynchronous operation. The task result indicates whether the extraction was successful.
Task ExtractAudioFromVideoAsync(Stream video, Stream audio);
///
/// Creates a clip from a video file based on the specified start and end times.
///
/// The path to the source video file.
/// The path where the created clip will be saved.
/// The start time of the clip.
/// The end time of the clip.
/// An optional buffer time to include before and after the clip segment.
/// A task that represents the asynchronous operation.
Task CreateClipFromVideoAsync(
string sourcePath,
string destinationPath,
TimeSpan startTime,
TimeSpan endTime,
TimeSpan? buffer = null
);
}