Package ws.schild.jave.filters
Class Filter
- java.lang.Object
-
- ws.schild.jave.filters.Filter
-
- All Implemented Interfaces:
VideoFilter
- Direct Known Subclasses:
AssSubtitlesFilter,ColorFilter,ConcatFilter,CropFilter,DrawtextFilter,FadeFilter,MediaConcatFilter,MovieFilter,OverlayFilter,PadFilter,ScaleFilter,SetPtsFilter,TrimFilter,ZoomPanFilter
public class Filter extends java.lang.Object implements VideoFilter
A filter as described by FFMPEG Documentation.A filter has an ordered list of input labels, a name, arguments, and an ordered list of output labels. Arguments can be either ordered or named. If both are present, ordered must be emitted first.
Currently filtergraph escaping is not the responsibility of this class. All arguments must be pre-escaped by the time they get to this class.
It is intended that this class is not used directly. Instead, implementers will add a specific implementation of the filter they are implementing. A complete list can be found in FFMPEG Documentation. However, the class is not abstract to not prohibit direct use.
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<java.lang.String>inputLinkLabelsprivate java.lang.Stringnameprivate java.util.Map<java.lang.String,java.lang.String>namedArgumentsprivate java.util.List<java.lang.String>orderedArgumentsprivate java.util.List<java.lang.String>outputLinkLabelsprivate java.lang.StringquoteCharacter
-
Constructor Summary
Constructors Constructor Description Filter(java.lang.String name)Create a filter with the specified name with no input/output labels or arguments.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description FilteraddInputLabel(java.lang.String... label)Add an input label to the list of input labels for this filterFilteraddNamedArgument(java.lang.String name, java.lang.String value)Add a named argument to the set of named arguments for this filterFilteraddOrderedArgument(java.lang.String... arg)Add an ordered argument to the list of arguments for this filterFilteraddOutputLabel(java.lang.String... label)Add an output label to the list of output labels for this filterprotected java.lang.StringescapingPath(java.lang.String filePath)escaping special characters for file path.private java.lang.StringformatArguments()private static java.lang.StringformatLinkLabels(java.util.List<java.lang.String> labels)java.lang.StringgetExpression()The expression to be used in the video filter argument to ffmpegvoidsetQuoteCharacter(java.lang.String quoteCharacter)Set quoteCharacter of arguments for this filter, Default is double quote.
-
-
-
Field Detail
-
inputLinkLabels
private final java.util.List<java.lang.String> inputLinkLabels
-
name
private final java.lang.String name
-
orderedArguments
private final java.util.List<java.lang.String> orderedArguments
-
namedArguments
private final java.util.Map<java.lang.String,java.lang.String> namedArguments
-
outputLinkLabels
private final java.util.List<java.lang.String> outputLinkLabels
-
quoteCharacter
private java.lang.String quoteCharacter
-
-
Method Detail
-
addInputLabel
public Filter addInputLabel(java.lang.String... label)
Add an input label to the list of input labels for this filter- Parameters:
label- The name of the input label(s)- Returns:
- this Filter for builder pattern magic
-
addOrderedArgument
public Filter addOrderedArgument(java.lang.String... arg)
Add an ordered argument to the list of arguments for this filter- Parameters:
arg- Any number of ordered arguments- Returns:
- this Filter for builder pattern magic
-
addNamedArgument
public Filter addNamedArgument(java.lang.String name, java.lang.String value)
Add a named argument to the set of named arguments for this filter- Parameters:
name- The name of the argumentvalue- The value for the argument- Returns:
- this Filter for builder pattern magic
-
addOutputLabel
public Filter addOutputLabel(java.lang.String... label)
Add an output label to the list of output labels for this filter- Parameters:
label- The name of the input label- Returns:
- this Filter for builder pattern magic
-
getExpression
public java.lang.String getExpression()
Description copied from interface:VideoFilterThe expression to be used in the video filter argument to ffmpeg- Specified by:
getExpressionin interfaceVideoFilter- Returns:
- A string that will be placed in the -vf or -filter_complex option to ffmpeg.
-
setQuoteCharacter
public void setQuoteCharacter(java.lang.String quoteCharacter)
Set quoteCharacter of arguments for this filter, Default is double quote.- Parameters:
quoteCharacter- The quoteCharacter of arguments
-
formatLinkLabels
private static java.lang.String formatLinkLabels(java.util.List<java.lang.String> labels)
-
formatArguments
private java.lang.String formatArguments()
-
escapingPath
protected java.lang.String escapingPath(java.lang.String filePath)
escaping special characters for file path. Notes on file url escaping- Parameters:
filePath- unescaped file path- Returns:
- escaped file path
-
-