package com.github.gtache.autosubtitle; import com.github.gtache.autosubtitle.subtitle.ExportOptions; import com.github.gtache.autosubtitle.subtitle.SubtitleCollection; import java.io.IOException; import java.nio.file.Path; import java.util.Collection; /** * Operates on videos */ public interface VideoConverter { /** * Adds soft subtitles to the given video * * @param video The video * @param subtitles The subtitles collections to add * @param options The export options for the subtitles * @return The modified video * @throws IOException If an I/O error occurs */ Video addSoftSubtitles(final Video video, final Collection> subtitles, final ExportOptions options) throws IOException; /** * Adds soft subtitles to the given video * * @param video The video * @param subtitles The subtitles collections to add * @param options The export options for the subtitles * @param path The output path * @throws IOException If an I/O error occurs */ void addSoftSubtitles(final Video video, final Collection> subtitles, final ExportOptions options, final Path path) throws IOException; /** * Adds hard subtitles to the given video * * @param video The video * @param subtitles The subtitle collection to add * @param options The export options for the subtitles * @return The modified video * @throws IOException If an I/O error occurs */ Video addHardSubtitles(final Video video, final SubtitleCollection subtitles, final ExportOptions options) throws IOException; /** * Adds hard subtitles to the given video * * @param video The video * @param subtitles The subtitle collection to add * @param options The export options for the subtitles * @param path The output path * @throws IOException If an I/O error occurs */ void addHardSubtitles(final Video video, final SubtitleCollection subtitles, final ExportOptions options, final Path path) throws IOException; /** * Extracts the audio from the given video * * @param video The video * @return The audio * @throws IOException If an I/O error occurs */ Audio getAudio(final Video video) throws IOException; }