All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.spikeify.ffmpeg.builder.elements.VideoObject Maven / Gradle / Ivy

package com.spikeify.ffmpeg.builder.elements;

import java.util.ArrayList;
import java.util.List;

public class VideoObject {

	private String path; //video path
	private double start = -1; //video start time
	private double end = -1; //video end time
	private double duration;
	private double videoStartOffset; //used for video overlays.

	private double overlayX = 0;
	private double overlayY = 0;

	private FadeIn fadeIn;
	private FadeOut fadeOut;

	private List captions;
	private Caption caption;

	private List overlayVideoList;

	private int resolutionX;
	private int resolutionY;


	private VideoObject(String path, double start, double end, double duration, double videoStartOffset, double overlayX, double overlayY, FadeIn fadeIn, FadeOut fadeOut, List captions, Caption caption, List overlayVideoList, int resolutionX, int resolutionY) {
		this.path = path;
		this.start = start;
		this.end = end;
		this.duration = duration;
		this.videoStartOffset = videoStartOffset;
		this.overlayX = overlayX;
		this.overlayY = overlayY;
		this.fadeIn = fadeIn;
		this.fadeOut = fadeOut;
		this.captions = captions;
		this.caption = caption;
		this.overlayVideoList = overlayVideoList;
		this.resolutionX = resolutionX;
		this.resolutionY = resolutionY;
	}

	public String getPath() {
		return path;
	}

	public void setPath(String path) {
		this.path = path;
	}

	public double getStart() {
		return start;
	}

	public void setStart(double start) {
		this.start = start;
	}

	public double getEnd() {
		return end;
	}

	public void setEnd(double end) {
		this.end = end;
	}

	public FadeIn getFadeIn() {
		return fadeIn;
	}

	public void setFadeIn(FadeIn fadeInBuilder) {
		this.fadeIn = fadeInBuilder;
	}

	public FadeOut getFadeOut() {
		return fadeOut;
	}

	public void setFadeOut(FadeOut fadeOut) {
		this.fadeOut = fadeOut;
	}

	public List getCaptions() {
		return captions;
	}

	public void setCaptions(List captions) {
		this.captions = captions;
	}

	public Caption getCaption() {
		return caption;
	}

	public void setCaption(Caption caption) {
		this.caption = caption;
	}

	public double getOverlayX() {
		return overlayX;
	}

	public double getOverlayY() {
		return overlayY;
	}

	public double getDuration() {
		return duration;
	}

	public List getOverlayVideoList() {
		return overlayVideoList;
	}

	public double getVideoStartOffset() {
		return videoStartOffset;
	}

	public int getResolutionX() {
		return resolutionX;
	}

	public int getResolutionY() {
		return resolutionY;
	}

	public static class VideoObjectBuilder {
		private String path;
		private double start = -1;
		private double end = -1;
		private double duration = -1;
		private double overlayX;
		private double overlayY;
		private FadeIn fadeIn;
		private FadeOut fadeOut;
		private List captions;
		private Caption caption;
		private List overlayVideoList;
		private double videoStartOffset; //used for video overlays.
		private int resolutionX;
		private int resolutionY;

		public VideoObjectBuilder(String path) {
			this.path = path;
		}

		public VideoObjectBuilder setStart(double start) {
			this.start = start;
			return this;
		}

		public VideoObjectBuilder setEnd(double end) {
			this.end = end;
			return this;
		}

		public VideoObjectBuilder setFadeIn(FadeIn fadeIn) {
			this.fadeIn = fadeIn;
			return this;
		}

		public VideoObjectBuilder setFadeOut(FadeOut fadeOut) {
			this.fadeOut = fadeOut;
			return this;
		}

		public VideoObjectBuilder setCaptions(List captions) {
			this.captions = captions;
			return this;
		}

		public VideoObjectBuilder setCaption(Caption caption) {
			this.caption = caption;
			return this;
		}

		public VideoObjectBuilder setOverlayVideo(VideoObject overlayVideo) {
			if(overlayVideo != null){
				List videoObjectList = new ArrayList<>();
				videoObjectList.add(overlayVideo);
				this.overlayVideoList = videoObjectList;
			}
			return this;
		}

		public VideoObjectBuilder setOverlayX(double overlayX) {
			this.overlayX = overlayX;
			return this;
		}

		public VideoObjectBuilder setOverlayY(double overlayY) {
			this.overlayY = overlayY;
			return this;
		}

		public VideoObjectBuilder setDuration(double duration) {
			this.duration = duration;
			return this;
		}

		/* this operation is not supported yet */
//		public VideoObjectBuilder setOverlayVideoList(List overlayVideoList) {
//			this.overlayVideoList = overlayVideoList;
//			return this;
//		}

		public VideoObjectBuilder setVideoStartOffset(double videoStartOffset) {
			this.videoStartOffset = videoStartOffset;
			return this;
		}

		public VideoObjectBuilder setResolutionX(int resolutionX) {
			this.resolutionX = resolutionX;
			return this;
		}

		public VideoObjectBuilder setResolutionY(int resolutionY) {
			this.resolutionY = resolutionY;
			return this;
		}

		public VideoObject createVideoObject() {
			return new VideoObject(path, start, end, duration, videoStartOffset, overlayX, overlayY, fadeIn, fadeOut, captions, caption, overlayVideoList, resolutionX, resolutionY);
		}


	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy