forked from j62/ctbrec
Add settings for FFmpeg
This commit is contained in:
parent
855604aab5
commit
208aa16c80
|
@ -77,6 +77,8 @@ public class SettingsTab extends Tab implements TabSelectionListener {
|
||||||
private TextField onlineCheckIntervalInSecs;
|
private TextField onlineCheckIntervalInSecs;
|
||||||
private TextField leaveSpaceOnDevice;
|
private TextField leaveSpaceOnDevice;
|
||||||
private TextField minimumLengthInSecs;
|
private TextField minimumLengthInSecs;
|
||||||
|
private TextField ffmpegParameters;
|
||||||
|
private TextField fileExtension;
|
||||||
private CheckBox useAuthentication = new CheckBox();
|
private CheckBox useAuthentication = new CheckBox();
|
||||||
private CheckBox useTLS = new CheckBox();
|
private CheckBox useTLS = new CheckBox();
|
||||||
private CheckBox chooseStreamQuality = new CheckBox();
|
private CheckBox chooseStreamQuality = new CheckBox();
|
||||||
|
@ -447,7 +449,39 @@ public class SettingsTab extends Tab implements TabSelectionListener {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
GridPane.setMargin(minimumLengthInSecs, new Insets(0, 0, 0, CHECKBOX_MARGIN));
|
GridPane.setMargin(minimumLengthInSecs, new Insets(0, 0, 0, CHECKBOX_MARGIN));
|
||||||
layout.add(minimumLengthInSecs, 1, row);
|
layout.add(minimumLengthInSecs, 1, row++);
|
||||||
|
|
||||||
|
tt = new Tooltip("FFmpeg parameters to use when merging stream segments");
|
||||||
|
l = new Label("FFmpeg parameters");
|
||||||
|
l.setTooltip(tt);
|
||||||
|
layout.add(l, 0, row);
|
||||||
|
String ffmpegParams = Config.getInstance().getSettings().ffmpegMergedDownloadArgs;
|
||||||
|
ffmpegParameters = new TextField(ffmpegParams);
|
||||||
|
ffmpegParameters.setTooltip(tt);
|
||||||
|
ffmpegParameters.textProperty().addListener((observable, oldValue, newValue) -> {
|
||||||
|
if(!ffmpegParameters.getText().isEmpty()) {
|
||||||
|
Config.getInstance().getSettings().ffmpegMergedDownloadArgs = ffmpegParameters.getText();
|
||||||
|
saveConfig();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
GridPane.setMargin(ffmpegParameters, new Insets(0, 0, 0, CHECKBOX_MARGIN));
|
||||||
|
layout.add(ffmpegParameters, 1, row++);
|
||||||
|
|
||||||
|
tt = new Tooltip("File extension to use for recordings");
|
||||||
|
l = new Label("File Extension");
|
||||||
|
l.setTooltip(tt);
|
||||||
|
layout.add(l, 0, row);
|
||||||
|
String fileSuffix = Config.getInstance().getSettings().ffmpegFileSuffix;
|
||||||
|
fileExtension = new TextField(fileSuffix);
|
||||||
|
fileExtension.setTooltip(tt);
|
||||||
|
fileExtension.textProperty().addListener((observable, oldValue, newValue) -> {
|
||||||
|
if(!fileExtension.getText().isEmpty()) {
|
||||||
|
Config.getInstance().getSettings().ffmpegFileSuffix = fileExtension.getText();
|
||||||
|
saveConfig();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
GridPane.setMargin(fileExtension, new Insets(0, 0, 0, CHECKBOX_MARGIN));
|
||||||
|
layout.add(fileExtension, 1, row);
|
||||||
|
|
||||||
TitledPane locations = new TitledPane("Recorder", layout);
|
TitledPane locations = new TitledPane("Recorder", layout);
|
||||||
locations.setCollapsible(false);
|
locations.setCollapsible(false);
|
||||||
|
@ -534,6 +568,7 @@ public class SettingsTab extends Tab implements TabSelectionListener {
|
||||||
GridPane.setFillWidth(mediaPlayer, true);
|
GridPane.setFillWidth(mediaPlayer, true);
|
||||||
GridPane.setHgrow(mediaPlayer, Priority.ALWAYS);
|
GridPane.setHgrow(mediaPlayer, Priority.ALWAYS);
|
||||||
GridPane.setMargin(mediaPlayer, new Insets(0, 0, 0, CHECKBOX_MARGIN));
|
GridPane.setMargin(mediaPlayer, new Insets(0, 0, 0, CHECKBOX_MARGIN));
|
||||||
|
GridPane.setColumnSpan(mediaPlayer, 3);
|
||||||
layout.add(mediaPlayer, 1, row++);
|
layout.add(mediaPlayer, 1, row++);
|
||||||
|
|
||||||
Label l = new Label("Allow multiple players");
|
Label l = new Label("Allow multiple players");
|
||||||
|
@ -545,10 +580,10 @@ public class SettingsTab extends Tab implements TabSelectionListener {
|
||||||
});
|
});
|
||||||
GridPane.setMargin(l, new Insets(3, 0, 0, 0));
|
GridPane.setMargin(l, new Insets(3, 0, 0, 0));
|
||||||
GridPane.setMargin(multiplePlayers, new Insets(CHECKBOX_MARGIN, 0, 0, CHECKBOX_MARGIN));
|
GridPane.setMargin(multiplePlayers, new Insets(CHECKBOX_MARGIN, 0, 0, CHECKBOX_MARGIN));
|
||||||
layout.add(multiplePlayers, 1, row++);
|
layout.add(multiplePlayers, 1, row);
|
||||||
|
|
||||||
l = new Label("Show \"Player Starting\" Message");
|
l = new Label("Show \"Player Starting\" Message");
|
||||||
layout.add(l, 0, row);
|
layout.add(l, 2, row);
|
||||||
showPlayerStarting.setSelected(Config.getInstance().getSettings().showPlayerStarting);
|
showPlayerStarting.setSelected(Config.getInstance().getSettings().showPlayerStarting);
|
||||||
showPlayerStarting.setOnAction(e -> {
|
showPlayerStarting.setOnAction(e -> {
|
||||||
Config.getInstance().getSettings().showPlayerStarting = showPlayerStarting.isSelected();
|
Config.getInstance().getSettings().showPlayerStarting = showPlayerStarting.isSelected();
|
||||||
|
@ -556,7 +591,7 @@ public class SettingsTab extends Tab implements TabSelectionListener {
|
||||||
});
|
});
|
||||||
GridPane.setMargin(l, new Insets(3, 0, 0, 0));
|
GridPane.setMargin(l, new Insets(3, 0, 0, 0));
|
||||||
GridPane.setMargin(showPlayerStarting, new Insets(CHECKBOX_MARGIN, 0, 0, CHECKBOX_MARGIN));
|
GridPane.setMargin(showPlayerStarting, new Insets(CHECKBOX_MARGIN, 0, 0, CHECKBOX_MARGIN));
|
||||||
layout.add(showPlayerStarting, 1, row++);
|
layout.add(showPlayerStarting, 3, row++);
|
||||||
|
|
||||||
l = new Label("Display stream resolution in overview");
|
l = new Label("Display stream resolution in overview");
|
||||||
layout.add(l, 0, row);
|
layout.add(l, 0, row);
|
||||||
|
@ -568,10 +603,10 @@ public class SettingsTab extends Tab implements TabSelectionListener {
|
||||||
});
|
});
|
||||||
GridPane.setMargin(l, new Insets(3, 0, 0, 0));
|
GridPane.setMargin(l, new Insets(3, 0, 0, 0));
|
||||||
GridPane.setMargin(loadResolution, new Insets(CHECKBOX_MARGIN, 0, 0, CHECKBOX_MARGIN));
|
GridPane.setMargin(loadResolution, new Insets(CHECKBOX_MARGIN, 0, 0, CHECKBOX_MARGIN));
|
||||||
layout.add(loadResolution, 1, row++);
|
layout.add(loadResolution, 1, row);
|
||||||
|
|
||||||
l = new Label("Manually select stream quality");
|
l = new Label("Manually select stream quality");
|
||||||
layout.add(l, 0, row);
|
layout.add(l, 2, row);
|
||||||
chooseStreamQuality.setSelected(Config.getInstance().getSettings().chooseStreamQuality);
|
chooseStreamQuality.setSelected(Config.getInstance().getSettings().chooseStreamQuality);
|
||||||
chooseStreamQuality.setOnAction(e -> {
|
chooseStreamQuality.setOnAction(e -> {
|
||||||
Config.getInstance().getSettings().chooseStreamQuality = chooseStreamQuality.isSelected();
|
Config.getInstance().getSettings().chooseStreamQuality = chooseStreamQuality.isSelected();
|
||||||
|
@ -579,7 +614,7 @@ public class SettingsTab extends Tab implements TabSelectionListener {
|
||||||
});
|
});
|
||||||
GridPane.setMargin(l, new Insets(3, 0, 0, 0));
|
GridPane.setMargin(l, new Insets(3, 0, 0, 0));
|
||||||
GridPane.setMargin(chooseStreamQuality, new Insets(CHECKBOX_MARGIN, 0, 0, CHECKBOX_MARGIN));
|
GridPane.setMargin(chooseStreamQuality, new Insets(CHECKBOX_MARGIN, 0, 0, CHECKBOX_MARGIN));
|
||||||
layout.add(chooseStreamQuality, 1, row++);
|
layout.add(chooseStreamQuality, 3, row++);
|
||||||
|
|
||||||
l = new Label("Enable live previews (experimental)");
|
l = new Label("Enable live previews (experimental)");
|
||||||
layout.add(l, 0, row);
|
layout.add(l, 0, row);
|
||||||
|
@ -591,12 +626,12 @@ public class SettingsTab extends Tab implements TabSelectionListener {
|
||||||
});
|
});
|
||||||
GridPane.setMargin(l, new Insets(3, 0, 0, 0));
|
GridPane.setMargin(l, new Insets(3, 0, 0, 0));
|
||||||
GridPane.setMargin(livePreviews, new Insets(CHECKBOX_MARGIN, 0, 0, CHECKBOX_MARGIN));
|
GridPane.setMargin(livePreviews, new Insets(CHECKBOX_MARGIN, 0, 0, CHECKBOX_MARGIN));
|
||||||
layout.add(livePreviews, 1, row++);
|
layout.add(livePreviews, 1, row);
|
||||||
|
|
||||||
Tooltip tt = new Tooltip("The overviews will still be updated, but the thumbnails won't be changed. This is useful for less powerful systems.");
|
Tooltip tt = new Tooltip("The overviews will still be updated, but the thumbnails won't be changed. This is useful for less powerful systems.");
|
||||||
l = new Label("Update thumbnails");
|
l = new Label("Update thumbnails");
|
||||||
l.setTooltip(tt);
|
l.setTooltip(tt);
|
||||||
layout.add(l, 0, row);
|
layout.add(l, 2, row);
|
||||||
updateThumbnails.setTooltip(tt);
|
updateThumbnails.setTooltip(tt);
|
||||||
updateThumbnails.setSelected(Config.getInstance().getSettings().updateThumbnails);
|
updateThumbnails.setSelected(Config.getInstance().getSettings().updateThumbnails);
|
||||||
updateThumbnails.setOnAction(e -> {
|
updateThumbnails.setOnAction(e -> {
|
||||||
|
@ -605,7 +640,7 @@ public class SettingsTab extends Tab implements TabSelectionListener {
|
||||||
});
|
});
|
||||||
GridPane.setMargin(l, new Insets(3, 0, 0, 0));
|
GridPane.setMargin(l, new Insets(3, 0, 0, 0));
|
||||||
GridPane.setMargin(updateThumbnails, new Insets(CHECKBOX_MARGIN, 0, 0, CHECKBOX_MARGIN));
|
GridPane.setMargin(updateThumbnails, new Insets(CHECKBOX_MARGIN, 0, 0, CHECKBOX_MARGIN));
|
||||||
layout.add(updateThumbnails, 1, row++);
|
layout.add(updateThumbnails, 3, row++);
|
||||||
|
|
||||||
tt = new Tooltip("Update the thumbnail overviews every x seconds");
|
tt = new Tooltip("Update the thumbnail overviews every x seconds");
|
||||||
l = new Label("Update overview interval (seconds)");
|
l = new Label("Update overview interval (seconds)");
|
||||||
|
|
Loading…
Reference in New Issue