Adds width and height to video streams and subtitle file to subtitle streams

This commit is contained in:
Kristian Knarvik 2020-05-08 19:09:20 +02:00
parent 1090a61f2e
commit 29437f1256
4 changed files with 68 additions and 15 deletions

View File

@ -4,18 +4,19 @@ package net.knarcraft.ffmpegconverter.streams;
* This class represents an ffmpeg audio stream * This class represents an ffmpeg audio stream
*/ */
public class AudioStream extends StreamObject { public class AudioStream extends StreamObject {
private String language; private final String language;
private int channels; private final int channels;
private String title; private final String title;
/** /**
* Instantiates a new audio stream * Instantiates a new audio stream
* @param codecName <p>The codec of the audio stream.</p> *
* @param codecName <p>The codec of the audio stream.</p>
* @param absoluteIndex <p>The index of the audio stream.</p> * @param absoluteIndex <p>The index of the audio stream.</p>
* @param relativeIndex <p>The index of the audio stream relative to other audio streams.</p> * @param relativeIndex <p>The index of the audio stream relative to other audio streams.</p>
* @param language <p>The language of the audio stream.</p> * @param language <p>The language of the audio stream.</p>
* @param title <p>The title of the audio stream.</p> * @param title <p>The title of the audio stream.</p>
* @param channels <p>The number of channels for the audio stream.</p> * @param channels <p>The number of channels for the audio stream.</p>
*/ */
public AudioStream(String codecName, int absoluteIndex, int relativeIndex, String language, String title, int channels) { public AudioStream(String codecName, int absoluteIndex, int relativeIndex, String language, String title, int channels) {
this.codecType = "audio"; this.codecType = "audio";
@ -29,6 +30,7 @@ public class AudioStream extends StreamObject {
/** /**
* Gets the language of the audio stream * Gets the language of the audio stream
*
* @return <p>The language of the audio stream.</p> * @return <p>The language of the audio stream.</p>
*/ */
public String getLanguage() { public String getLanguage() {
@ -37,6 +39,7 @@ public class AudioStream extends StreamObject {
/** /**
* Gets the number of channels for the audio stream * Gets the number of channels for the audio stream
*
* @return <p>The number of channels for the audio stream.</p> * @return <p>The number of channels for the audio stream.</p>
*/ */
public int getChannels() { public int getChannels() {
@ -45,6 +48,7 @@ public class AudioStream extends StreamObject {
/** /**
* Gets the title of the audio stream * Gets the title of the audio stream
*
* @return <p>The title of the audio stream.</p> * @return <p>The title of the audio stream.</p>
*/ */
public String getTitle() { public String getTitle() {

View File

@ -11,6 +11,7 @@ public abstract class StreamObject {
/** /**
* Gets the type of the stream codec (video/audio/subtitle) * Gets the type of the stream codec (video/audio/subtitle)
*
* @return <p>Codec type.</p> * @return <p>Codec type.</p>
*/ */
public String getCodecType() { public String getCodecType() {
@ -19,14 +20,16 @@ public abstract class StreamObject {
/** /**
* Gets the name of the stream codec * Gets the name of the stream codec
*
* @return <p>Codec name.</p> * @return <p>Codec name.</p>
*/ */
public String getCodecName() { String getCodecName() {
return this.codecName; return this.codecName;
} }
/** /**
* Gets the absolute index of a stream object * Gets the absolute index of a stream object
*
* @return <p>Absolute index.</p> * @return <p>Absolute index.</p>
*/ */
public int getAbsoluteIndex() { public int getAbsoluteIndex() {
@ -35,6 +38,7 @@ public abstract class StreamObject {
/** /**
* Gets the relative index of a stream object (kth element of codec type) * Gets the relative index of a stream object (kth element of codec type)
*
* @return <p>Relative index.</p> * @return <p>Relative index.</p>
*/ */
public int getRelativeIndex() { public int getRelativeIndex() {

View File

@ -6,18 +6,22 @@ package net.knarcraft.ffmpegconverter.streams;
public class SubtitleStream extends StreamObject { public class SubtitleStream extends StreamObject {
final private String language; final private String language;
final private String title; final private String title;
final private String file;
final private boolean isFullSubtitle; final private boolean isFullSubtitle;
final private boolean isImageSubtitle; final private boolean isImageSubtitle;
/** /**
* Instantiates a new subtitle stream * Instantiates a new subtitle stream
* @param codecName <p>The name of the codec for the subtitle stream.</p> *
* @param codecName <p>The name of the codec for the subtitle stream.</p>
* @param absoluteIndex <p>The index of the subtitle stream.</p> * @param absoluteIndex <p>The index of the subtitle stream.</p>
* @param relativeIndex <p>The index of the subtitle stream relative to other subtitle streams.</p> * @param relativeIndex <p>The index of the subtitle stream relative to other subtitle streams.</p>
* @param language <p>The language of the subtitle stream.</p> * @param language <p>The language of the subtitle stream.</p>
* @param title <p>The title of the subtitle stream.</p> * @param title <p>The title of the subtitle stream.</p>
* @param file <p>The file containing the subtitle.</p>
*/ */
public SubtitleStream(String codecName, int absoluteIndex, int relativeIndex, String language, String title) { public SubtitleStream(String codecName, int absoluteIndex, int relativeIndex, String language, String title,
String file) {
this.codecType = "subtitle"; this.codecType = "subtitle";
this.codecName = codecName; this.codecName = codecName;
this.absoluteIndex = absoluteIndex; this.absoluteIndex = absoluteIndex;
@ -26,10 +30,12 @@ public class SubtitleStream extends StreamObject {
this.isFullSubtitle = isFullSubtitle(); this.isFullSubtitle = isFullSubtitle();
this.relativeIndex = relativeIndex; this.relativeIndex = relativeIndex;
this.isImageSubtitle = isImageSubtitle(); this.isImageSubtitle = isImageSubtitle();
this.file = file;
} }
/** /**
* Gets the language of the subtitle stream * Gets the language of the subtitle stream
*
* @return <p>The language of the subtitle stream.</p> * @return <p>The language of the subtitle stream.</p>
*/ */
public String getLanguage() { public String getLanguage() {
@ -38,14 +44,25 @@ public class SubtitleStream extends StreamObject {
/** /**
* Gets the title of the subtitle stream * Gets the title of the subtitle stream
*
* @return <p>The title of the subtitle stream.</p> * @return <p>The title of the subtitle stream.</p>
*/ */
public String getTitle() { private String getTitle() {
return this.title; return this.title;
} }
/**
* Gets the file name of the file containing this subtitle
*
* @return <p>The file name containing the subtitle stream.</p>
*/
public String getFile() {
return this.file;
}
/** /**
* Gets whether the subtitle is an image subtitle * Gets whether the subtitle is an image subtitle
*
* @return <p>Whether the subtitles is an image subtitle.</p> * @return <p>Whether the subtitles is an image subtitle.</p>
*/ */
public boolean getIsImageSubtitle() { public boolean getIsImageSubtitle() {
@ -54,6 +71,7 @@ public class SubtitleStream extends StreamObject {
/** /**
* Gets whether the subtitle is a full subtitle * Gets whether the subtitle is a full subtitle
*
* @return <p>Whether the subtitle is a full subtitle.</p> * @return <p>Whether the subtitle is a full subtitle.</p>
*/ */
public boolean getIsFullSubtitle() { public boolean getIsFullSubtitle() {
@ -62,6 +80,7 @@ public class SubtitleStream extends StreamObject {
/** /**
* Checks whether a subtitle is image based (as opposed to text based) * Checks whether a subtitle is image based (as opposed to text based)
*
* @return <p>True if the subtitle is image based.</p> * @return <p>True if the subtitle is image based.</p>
*/ */
private boolean isImageSubtitle() { private boolean isImageSubtitle() {
@ -70,6 +89,7 @@ public class SubtitleStream extends StreamObject {
/** /**
* Checks whether the subtitle translates everything (as opposed to just songs and signs) * Checks whether the subtitle translates everything (as opposed to just songs and signs)
*
* @return <p>True if the subtitle translates everything.</p> * @return <p>True if the subtitle translates everything.</p>
*/ */
private boolean isFullSubtitle() { private boolean isFullSubtitle() {

View File

@ -4,17 +4,42 @@ package net.knarcraft.ffmpegconverter.streams;
* An object representation of a video stream in a media file * An object representation of a video stream in a media file
*/ */
public class VideoStream extends StreamObject { public class VideoStream extends StreamObject {
private final int width;
private final int height;
/** /**
* Instantiates a new video stream * Instantiates a new video stream
* @param codec <p>The name of the codec for the video stream.</p> *
* @param codec <p>The name of the codec for the video stream.</p>
* @param absoluteIndex <p>The index of the video stream.</p> * @param absoluteIndex <p>The index of the video stream.</p>
* @param relativeIndex <p>The index of the video stream relative to other video streams.</p> * @param relativeIndex <p>The index of the video stream relative to other video streams.</p>
* @param width <p>The width of the video stream.</p>
* @param height <p>The height of the video stream.</p>
*/ */
public VideoStream(String codec, int absoluteIndex, int relativeIndex) { public VideoStream(String codec, int absoluteIndex, int relativeIndex, int width, int height) {
this.codecType = "video"; this.codecType = "video";
this.codecName = codec; this.codecName = codec;
this.absoluteIndex = absoluteIndex; this.absoluteIndex = absoluteIndex;
this.relativeIndex = relativeIndex; this.relativeIndex = relativeIndex;
this.width = width;
this.height = height;
}
/**
* Gets the width of the video stream
*
* @return <p>The width of the video steam in pixels.</p>
*/
public int getWidth() {
return this.width;
}
/**
* Gets the height of the video stream
*
* @return <p>The height of the video stream in pixels.</p>
*/
public int getHeight() {
return this.height;
} }
} }