0.15.0-3 Misc Fixes
This commit is contained in:
@@ -1243,6 +1243,66 @@ function computeAudioTrackActions(track, selectedIndex, selector) {
|
||||
};
|
||||
}
|
||||
|
||||
function refreshAudioTrackActionsForPlanTitles(titles, settings = {}, presetProfile = null) {
|
||||
const sourceTitles = Array.isArray(titles) ? titles : [];
|
||||
if (sourceTitles.length === 0) {
|
||||
return sourceTitles;
|
||||
}
|
||||
|
||||
const selectors = buildTrackSelectors(settings || {}, presetProfile || null);
|
||||
const audioSelector = selectors?.audio && typeof selectors.audio === 'object'
|
||||
? selectors.audio
|
||||
: {};
|
||||
|
||||
return sourceTitles.map((title) => {
|
||||
const audioTracks = Array.isArray(title?.audioTracks) ? title.audioTracks : [];
|
||||
if (audioTracks.length === 0) {
|
||||
return title;
|
||||
}
|
||||
|
||||
const selectedTracks = audioTracks.filter((track) => Boolean(track?.selectedForEncode));
|
||||
const selectedIndexById = new Map(
|
||||
selectedTracks
|
||||
.map((track, index) => {
|
||||
const trackId = Number(track?.id);
|
||||
if (!Number.isFinite(trackId)) {
|
||||
return null;
|
||||
}
|
||||
return [Math.trunc(trackId), index];
|
||||
})
|
||||
.filter(Boolean)
|
||||
);
|
||||
|
||||
const nextAudioTracks = audioTracks.map((track) => {
|
||||
if (!track?.selectedForEncode) {
|
||||
return {
|
||||
...track,
|
||||
encodeActions: [],
|
||||
encodeActionSummary: 'Nicht übernommen'
|
||||
};
|
||||
}
|
||||
const numericTrackId = Number(track?.id);
|
||||
const normalizedTrackId = Number.isFinite(numericTrackId) ? Math.trunc(numericTrackId) : null;
|
||||
const selectedIndex = (normalizedTrackId !== null && selectedIndexById.has(normalizedTrackId))
|
||||
? selectedIndexById.get(normalizedTrackId)
|
||||
: 0;
|
||||
const actions = computeAudioTrackActions(track, selectedIndex, audioSelector);
|
||||
return {
|
||||
...track,
|
||||
encodePreviewActions: actions.actions,
|
||||
encodePreviewSummary: actions.summary,
|
||||
encodeActions: actions.actions,
|
||||
encodeActionSummary: actions.summary
|
||||
};
|
||||
});
|
||||
|
||||
return {
|
||||
...title,
|
||||
audioTracks: nextAudioTracks
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
function computeSubtitleFlags(trackId, selectedTrackIds, selector) {
|
||||
const selected = selectedTrackIds.includes(trackId);
|
||||
if (!selected) {
|
||||
@@ -1526,5 +1586,6 @@ function buildMediainfoReview({
|
||||
|
||||
module.exports = {
|
||||
parseDurationSeconds,
|
||||
buildMediainfoReview
|
||||
buildMediainfoReview,
|
||||
refreshAudioTrackActionsForPlanTitles
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user