diff --git a/src/misc/EncodingSelect.js b/src/misc/EncodingSelect.js
index 0ef6838..6434cbf 100644
--- a/src/misc/EncodingSelect.js
+++ b/src/misc/EncodingSelect.js
@@ -16,6 +16,15 @@ export default function EncodingSelect(props) {
const { i18n } = useLingui();
const profile = props.profile;
+ let availableEncoders = [];
+ let availableDecoders = [];
+
+ if (props.type === 'video') {
+ availableEncoders = props.skills.encoders.video;
+ availableDecoders = props.skills.decoders.video;
+ } else if (props.type === 'audio') {
+ availableEncoders = props.skills.encoders.audio;
+ }
const handleDecoderChange = (event) => {
const decoder = profile.decoder;
@@ -30,7 +39,7 @@ export default function EncodingSelect(props) {
}
if (c !== null) {
- const defaults = c.defaults();
+ const defaults = c.defaults(props.skills);
decoder.settings = defaults.settings;
decoder.mapping = defaults.mapping;
}
@@ -60,7 +69,7 @@ export default function EncodingSelect(props) {
}
if (c !== null) {
- const defaults = c.defaults({});
+ const defaults = c.defaults(props.skills);
encoder.settings = defaults.settings;
encoder.mapping = defaults.mapping;
}
@@ -116,10 +125,10 @@ export default function EncodingSelect(props) {
let encoderSettingsHelp = null;
let coder = encoderRegistry.Get(profile.encoder.coder);
- if (coder !== null && props.availableEncoders.includes(coder.coder)) {
+ if (coder !== null && availableEncoders.includes(coder.coder)) {
const Settings = coder.component;
- encoderSettings = ;
+ encoderSettings = ;
if (props.type === 'video' && !['copy', 'none', 'rawvideo'].includes(coder.coder)) {
encoderSettingsHelp = handleEncoderHelp(coder.coder);
@@ -130,7 +139,7 @@ export default function EncodingSelect(props) {
for (let c of encoderRegistry.List()) {
// Does ffmpeg support the coder?
- if (!props.availableEncoders.includes(c.coder)) {
+ if (!availableEncoders.includes(c.coder)) {
continue;
}
@@ -173,14 +182,14 @@ export default function EncodingSelect(props) {
if (coder.coder !== 'copy' && coder.coder !== 'none') {
let c = decoderRegistry.Get(profile.decoder.coder);
- if (c !== null && props.availableDecoders.includes(c.coder)) {
+ if (c !== null && availableDecoders.includes(c.coder)) {
const Settings = c.component;
- decoderSettings = ;
+ decoderSettings = ;
}
// List all decoders for the codec of the stream
- for (let c of decoderRegistry.GetCodersForCodec(stream.codec, props.availableDecoders, 'any')) {
+ for (let c of decoderRegistry.GetCodersForCodec(stream.codec, availableDecoders, 'any')) {
decoderList.push(