001package net.bramp.ffmpeg.builder; 002 003import com.google.common.collect.ImmutableList; 004import net.bramp.ffmpeg.probe.FFmpegProbeResult; 005 006/** Builder for FFmpeg file-based input arguments. */ 007public class FFmpegFileInputBuilder extends AbstractFFmpegInputBuilder<FFmpegFileInputBuilder> { 008 /** Constructs a file input builder with the given filename. */ 009 public FFmpegFileInputBuilder(FFmpegBuilder parent, String filename) { 010 super(parent, filename); 011 } 012 013 /** Constructs a file input builder with the given filename and probe result. */ 014 public FFmpegFileInputBuilder(FFmpegBuilder parent, String filename, FFmpegProbeResult result) { 015 super(parent, result, filename); 016 } 017 018 @Override 019 protected void addSourceTarget(int pass, ImmutableList.Builder<String> args) { 020 if (filename != null && uri != null) { 021 throw new IllegalStateException("Only one of filename and uri can be set"); 022 } 023 024 // Input 025 if (filename != null) { 026 args.add("-i", filename); 027 } else if (uri != null) { 028 args.add("-i", uri.toString()); 029 } else { 030 assert false; 031 } 032 } 033}