diff --git a/src/App.jsx b/src/App.jsx index 3c1b6c08..c5814df3 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -58,7 +58,7 @@ import { getDuration, getTimecodeFromStreams, createChaptersFromSegments, extractSubtitleTrack, getFfmpegPath, RefuseOverwriteError, } from './ffmpeg'; -import { shouldCopyStreamByDefault, getAudioStreams, getRealVideoStreams, defaultProcessedCodecTypes, isAudioDefinitelyNotSupported, doesPlayerSupportFile } from './util/streams'; +import { shouldCopyStreamByDefault, getAudioStreams, getRealVideoStreams, isAudioDefinitelyNotSupported, doesPlayerSupportFile } from './util/streams'; import { exportEdlFile, readEdlFile, saveLlcProject, loadLlcProject, askForEdlImport } from './edlStore'; import { formatYouTube, getFrameCountRaw } from './edlFormats'; import { @@ -785,7 +785,7 @@ const App = memo(() => { // Streams that are not copy enabled by default const extraStreams = useMemo(() => mainStreams - .filter((stream) => !defaultProcessedCodecTypes.includes(stream.codec_type)), [mainStreams]); + .filter((stream) => !shouldCopyStreamByDefault(stream)), [mainStreams]); // Extra streams that the user has not selected for copy const nonCopiedExtraStreams = useMemo(() => extraStreams diff --git a/src/util/streams.js b/src/util/streams.js index 87e7aa33..c4272e3b 100644 --- a/src/util/streams.js +++ b/src/util/streams.js @@ -1,11 +1,15 @@ // https://www.ffmpeg.org/doxygen/3.2/libavutil_2utils_8c_source.html#l00079 -export const defaultProcessedCodecTypes = [ +const defaultProcessedCodecTypes = [ 'video', 'audio', 'subtitle', 'attachment', ]; +const unprocessableCodecs = [ + 'dvb_teletext', // ffmpeg doesn't seem to support this https://github.com/mifi/lossless-cut/issues/1343 +]; + // taken from `ffmpeg -codecs` export const pcmAudioCodecs = [ 'adpcm_4xm', @@ -189,6 +193,7 @@ export function getMapStreamsArgs({ startIndex = 0, outFormat, allFilesMeta, cop export function shouldCopyStreamByDefault(stream) { if (!defaultProcessedCodecTypes.includes(stream.codec_type)) return false; + if (unprocessableCodecs.includes(stream.codec_name)) return false; return true; }