Use .ec3 as the extension for Dolby Digital Plus (E-AC3) files (#534)

Used this chance to finally rework file dialog filter string creation : the names of the extension groups are now clearly split so they appear separate in translation files.

Also fixed a bug in demux code - the AC3 would have an .ac3 extension regardless of the actual format due to the if for A_AC3 occurring twice.

Fixes #533 .
master
Daniel Kamil Kozar 2022-01-03 00:18:51 +01:00 committed by GitHub
parent 6ec39bc5aa
commit 72509eba6a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 682 additions and 283 deletions

View File

@ -39,36 +39,41 @@ void SingleFileMuxer::intAddStream(const std::string& streamName, const std::str
const map<string, string>& params, AbstractStreamReader* codecReader) const map<string, string>& params, AbstractStreamReader* codecReader)
{ {
codecReader->setDemuxMode(true); codecReader->setDemuxMode(true);
uint8_t descrBuffer[188];
int descriptorLen = codecReader->getTSDescriptor(descrBuffer, true, true);
string fileExt = "track"; string fileExt = "track";
if (codecName == "A_AC3")
fileExt = ".ac3"; // this call seemingly does nothing, but it actually makes some
else if (codecName == "A_AAC") // StreamReaders refresh/set their private variables, enabling proper
// codec->extension mapping in here. don't remove it.
uint8_t descrBuffer[188];
codecReader->getTSDescriptor(descrBuffer, true, true);
if (codecName == "A_AAC")
{
fileExt = ".aac"; fileExt = ".aac";
}
else if (codecName == "A_MP3") else if (codecName == "A_MP3")
{ {
MpegAudioStreamReader* mp3Reader = (MpegAudioStreamReader*)codecReader; const auto mp3Reader = static_cast<MpegAudioStreamReader*>(codecReader);
if (mp3Reader->getLayer() == 3) if (mp3Reader->getLayer() == 3)
fileExt = ".mp3"; fileExt = ".mp3";
else else
fileExt = ".mpa"; fileExt = ".mpa";
} }
else if (codecName == "A_DTS") else if (codecName == "A_DTS")
{
fileExt = ".dts"; fileExt = ".dts";
}
else if (codecName == "A_LPCM") else if (codecName == "A_LPCM")
{ {
fileExt = ".wav"; fileExt = ".wav";
LPCMStreamReader* lpcmReader = (LPCMStreamReader*)codecReader;
// lpcmReader->setDemuxMode(true);
} }
else if (codecName == "A_AC3") else if (codecName == "A_AC3")
{ {
AC3StreamReader* ac3Reader = (AC3StreamReader*)codecReader; const auto ac3Reader = static_cast<AC3StreamReader*>(codecReader);
if (ac3Reader->isTrueHD() && !ac3Reader->getDownconvertToAC3()) if (ac3Reader->isTrueHD() && !ac3Reader->getDownconvertToAC3())
fileExt = ".trueHD"; fileExt = ".trueHD";
else if (ac3Reader->isEAC3()) else if (ac3Reader->isEAC3())
fileExt = ".ddp"; fileExt = ".ec3";
else else
fileExt = ".ac3"; fileExt = ".ac3";
} }
@ -79,14 +84,10 @@ void SingleFileMuxer::intAddStream(const std::string& streamName, const std::str
else if (codecName == "S_HDMV/PGS") else if (codecName == "S_HDMV/PGS")
{ {
fileExt = ".sup"; fileExt = ".sup";
PGSStreamReader* pgsReader = (PGSStreamReader*)codecReader;
// pgsReader->setDemuxMode(true);
} }
else if (codecName == "S_TEXT/UTF8") else if (codecName == "S_TEXT/UTF8")
{ {
fileExt = ".sup"; fileExt = ".sup";
SRTStreamReader* srtReader = (SRTStreamReader*)codecReader;
// srtReader->setDemuxMode(true);
} }
else if (codecName[0] == 'V') else if (codecName[0] == 'V')
{ {
@ -116,13 +117,6 @@ void SingleFileMuxer::intAddStream(const std::string& streamName, const std::str
} }
} }
/*
if (codecName[0] == 'A') {
// Used for "more correct" switching between the boundaries of Blu-Ray disc files
((SimplePacketizerReader*) codecReader)->setMPLSInfo(m_mplsParser.m_playItems);
}
*/
vector<string> fileList = extractFileList(streamName); vector<string> fileList = extractFileList(streamName);
string fileName; string fileName;
if (fileList.size() < 3) if (fileList.size() < 3)

View File

@ -4,22 +4,22 @@
<context> <context>
<name>FontSettingsTableModel</name> <name>FontSettingsTableModel</name>
<message> <message>
<location filename="../fontsettingstablemodel.cpp" line="132"/> <location filename="../fontsettingstablemodel.cpp" line="134"/>
<source>Name:</source> <source>Name:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../fontsettingstablemodel.cpp" line="132"/> <location filename="../fontsettingstablemodel.cpp" line="134"/>
<source>Size:</source> <source>Size:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../fontsettingstablemodel.cpp" line="132"/> <location filename="../fontsettingstablemodel.cpp" line="134"/>
<source>Color:</source> <source>Color:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../fontsettingstablemodel.cpp" line="133"/> <location filename="../fontsettingstablemodel.cpp" line="135"/>
<source>Options:</source> <source>Options:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -129,7 +129,7 @@
<location filename="../tsmuxerwindow.ui" line="325"/> <location filename="../tsmuxerwindow.ui" line="325"/>
<location filename="../tsmuxerwindow.ui" line="629"/> <location filename="../tsmuxerwindow.ui" line="629"/>
<location filename="../tsmuxerwindow.ui" line="810"/> <location filename="../tsmuxerwindow.ui" line="810"/>
<location filename="../tsmuxerwindow.cpp" line="53"/> <location filename="../tsmuxerwindow.cpp" line="93"/>
<source>General track options</source> <source>General track options</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -195,7 +195,7 @@
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.ui" line="693"/> <location filename="../tsmuxerwindow.ui" line="693"/>
<location filename="../tsmuxerwindow.cpp" line="1010"/> <location filename="../tsmuxerwindow.cpp" line="1055"/>
<source>Downconvert HD audio</source> <source>Downconvert HD audio</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -221,7 +221,7 @@
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.ui" line="767"/> <location filename="../tsmuxerwindow.ui" line="767"/>
<location filename="../tsmuxerwindow.cpp" line="55"/> <location filename="../tsmuxerwindow.cpp" line="95"/>
<source>Demux options</source> <source>Demux options</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -734,7 +734,7 @@
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.ui" line="2628"/> <location filename="../tsmuxerwindow.ui" line="2628"/>
<location filename="../tsmuxerwindow.cpp" line="1393"/> <location filename="../tsmuxerwindow.cpp" line="1440"/>
<source>Demux</source> <source>Demux</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -745,7 +745,7 @@
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.ui" line="2662"/> <location filename="../tsmuxerwindow.ui" line="2662"/>
<location filename="../tsmuxerwindow.cpp" line="2282"/> <location filename="../tsmuxerwindow.cpp" line="2327"/>
<source>File name</source> <source>File name</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -761,7 +761,7 @@
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.ui" line="2781"/> <location filename="../tsmuxerwindow.ui" line="2781"/>
<location filename="../tsmuxerwindow.cpp" line="2266"/> <location filename="../tsmuxerwindow.cpp" line="2311"/>
<source>Sta&amp;rt muxing</source> <source>Sta&amp;rt muxing</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -771,196 +771,288 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="29"/> <location filename="../tsmuxerwindow.cpp" line="53"/>
<source>All supported media files (*.aac *.mpv *.mpa *.avc *.mvc *.264 *.h264 *.ac3 *.dts *.dtshd *.ts *.m2ts *.mts *.ssif *.mpg *.mpeg *.vob *.evo *.mkv *.mka *.mks *.mp4 *.m4a *.m4v *.mov *.sup *.wav *.w64 *.pcm *.m1v *.m2v *.vc1 *.hevc *.hvc *.265 *.h265 *.mpls *.mpl *.srt);;AC3/E-AC3 (*.ac3 *.ddp);;AAC (advanced audio coding) (*.aac);;AVC/MVC/H.264 elementary stream (*.avc *.mvc *.264 *.h264);;HEVC (High Efficiency Video Codec) (*.hevc *.hvc *.265 *.h265);;Digital Theater System (*.dts);;DTS-HD Master Audio (*.dtshd);;Mpeg video elementary stream (*.mpv *.m1v *.m2v);;Mpeg audio elementary stream (*.mpa);;Transport Stream (*.ts);;BDAV Transport Stream (*.m2ts *.mts *.ssif);;Program Stream (*.mpg *.mpeg *.vob *.evo);;Matroska audio/video files (*.mkv *.mka *.mks);;MP4 audio/video files (*.mp4 *.m4a *.m4v);;Quick time audio/video files (*.mov);;Blu-ray play list (*.mpls *.mpl);;Blu-ray PGS subtitles (*.sup);;Text subtitles (*.srt);;WAVE - Uncompressed PCM audio (*.wav *.w64);;RAW LPCM Stream (*.pcm);;All files (*.*)</source> <source>All files</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="57"/> <location filename="../tsmuxerwindow.cpp" line="60"/>
<source>Transport stream (*.ts);;all files (*.*)</source> <source>AC3/E-AC3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="59"/>
<source>BDAV Transport Stream (*.m2ts);;all files (*.*)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="61"/> <location filename="../tsmuxerwindow.cpp" line="61"/>
<source>Disk image (*.iso);;all files (*.*)</source> <source>AAC (advanced audio coding)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="551"/> <location filename="../tsmuxerwindow.cpp" line="62"/>
<source>AVC/MVC/H.264 elementary stream</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="63"/>
<source>HEVC (High Efficiency Video Codec)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="64"/>
<source>Digital Theater System</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="65"/>
<source>DTS-HD Master Audio</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="66"/>
<source>Mpeg video elementary stream</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="67"/>
<source>Mpeg audio elementary stream</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="68"/>
<location filename="../tsmuxerwindow.cpp" line="97"/>
<source>Transport Stream</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="69"/>
<location filename="../tsmuxerwindow.cpp" line="101"/>
<source>BDAV Transport Stream</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="70"/>
<source>Program Stream</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="71"/>
<source>Matroska audio/video files</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="72"/>
<source>MP4 audio/video files</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="73"/>
<source>QuickTime audio/video files</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="74"/>
<source>Blu-ray play list</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="75"/>
<source>Blu-ray PGS subtitles</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="76"/>
<source>Text subtitles</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="77"/>
<source>WAVE - Uncompressed PCM audio</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="78"/>
<source>RAW LPCM Stream</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="89"/>
<source>All supported media files</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="104"/>
<source>Disk image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="596"/>
<source>Not supported</source> <source>Not supported</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="617"/> <location filename="../tsmuxerwindow.cpp" line="662"/>
<location filename="../tsmuxerwindow.cpp" line="1135"/> <location filename="../tsmuxerwindow.cpp" line="1180"/>
<source>Unsupported format</source> <source>Unsupported format</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="618"/> <location filename="../tsmuxerwindow.cpp" line="663"/>
<source>Can&apos;t detect stream type. File name: &quot;%1&quot;</source> <source>Can&apos;t detect stream type. File name: &quot;%1&quot;</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="911"/> <location filename="../tsmuxerwindow.cpp" line="956"/>
<source>Add media files</source> <source>Add media files</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="926"/> <location filename="../tsmuxerwindow.cpp" line="971"/>
<source>File already exists</source> <source>File already exists</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="927"/> <location filename="../tsmuxerwindow.cpp" line="972"/>
<source>File &quot;%1&quot; already exists</source> <source>File &quot;%1&quot; already exists</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="1004"/> <location filename="../tsmuxerwindow.cpp" line="1049"/>
<source>Downconvert DTS-HD to DTS</source> <source>Downconvert DTS-HD to DTS</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="1006"/> <location filename="../tsmuxerwindow.cpp" line="1051"/>
<source>Downconvert TRUE-HD to AC3</source> <source>Downconvert TRUE-HD to AC3</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="1008"/> <location filename="../tsmuxerwindow.cpp" line="1053"/>
<source>Downconvert E-AC3 to AC3</source> <source>Downconvert E-AC3 to AC3</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="1141"/> <location filename="../tsmuxerwindow.cpp" line="1186"/>
<source>Unsupported format or all tracks are not recognized. File name: &quot;%1&quot;</source> <source>Unsupported format or all tracks are not recognized. File name: &quot;%1&quot;</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="1151"/> <location filename="../tsmuxerwindow.cpp" line="1196"/>
<source>Track %1 was not recognized and ignored. File name: &quot;%2&quot;</source> <source>Track %1 was not recognized and ignored. File name: &quot;%2&quot;</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="1393"/> <location filename="../tsmuxerwindow.cpp" line="1440"/>
<source>Mux</source> <source>Mux</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="1412"/> <location filename="../tsmuxerwindow.cpp" line="1459"/>
<source>tsMuxeR error</source> <source>tsMuxeR error</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="1416"/> <location filename="../tsmuxerwindow.cpp" line="1463"/>
<source>tsMuxeR not found!</source> <source>tsMuxeR not found!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="1434"/> <location filename="../tsmuxerwindow.cpp" line="1481"/>
<source>Can&apos;t execute tsMuxeR!</source> <source>Can&apos;t execute tsMuxeR!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2142"/> <location filename="../tsmuxerwindow.cpp" line="2187"/>
<location filename="../tsmuxerwindow.cpp" line="2143"/> <location filename="../tsmuxerwindow.cpp" line="2188"/>
<source>No track selected</source> <source>No track selected</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2149"/> <location filename="../tsmuxerwindow.cpp" line="2194"/>
<source>Append media files</source> <source>Append media files</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2165"/> <location filename="../tsmuxerwindow.cpp" line="2210"/>
<source>Invalid file extension</source> <source>Invalid file extension</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2166"/> <location filename="../tsmuxerwindow.cpp" line="2211"/>
<source>Appended file must have same file extension.</source> <source>Appended file must have same file extension.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2264"/> <location filename="../tsmuxerwindow.cpp" line="2309"/>
<source>Sta&amp;rt demuxing</source> <source>Sta&amp;rt demuxing</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2278"/> <location filename="../tsmuxerwindow.cpp" line="2323"/>
<source>Folder</source> <source>Folder</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2364"/> <location filename="../tsmuxerwindow.cpp" line="2409"/>
<source>Select file for muxing</source> <source>Select file for muxing</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2386"/> <location filename="../tsmuxerwindow.cpp" line="2431"/>
<location filename="../tsmuxerwindow.cpp" line="2402"/> <location filename="../tsmuxerwindow.cpp" line="2447"/>
<source>Invalid file name</source> <source>Invalid file name</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2387"/> <location filename="../tsmuxerwindow.cpp" line="2432"/>
<source>The output file &quot;%1&quot; has invalid extension. Please, change file extension to &quot;.m2ts&quot;</source> <source>The output file &quot;%1&quot; has invalid extension. Please, change file extension to &quot;.m2ts&quot;</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2403"/> <location filename="../tsmuxerwindow.cpp" line="2448"/>
<source>The output file &quot;%1&quot; has invalid extension. Please, change file extension to &quot;.iso&quot;</source> <source>The output file &quot;%1&quot; has invalid extension. Please, change file extension to &quot;.iso&quot;</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2417"/> <location filename="../tsmuxerwindow.cpp" line="2462"/>
<source>file</source> <source>file</source>
<extracomment>Used in expressions &quot;Overwrite existing %1&quot; and &quot;The output %1 already exists&quot;.</extracomment> <extracomment>Used in expressions &quot;Overwrite existing %1&quot; and &quot;The output %1 already exists&quot;.</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2417"/> <location filename="../tsmuxerwindow.cpp" line="2462"/>
<source>directory</source> <source>directory</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2419"/> <location filename="../tsmuxerwindow.cpp" line="2464"/>
<source>Overwrite existing %1?</source> <source>Overwrite existing %1?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2420"/> <location filename="../tsmuxerwindow.cpp" line="2465"/>
<source>The output %1 &quot;%2&quot; already exists. Do you want to overwrite it?</source> <source>The output %1 &quot;%2&quot; already exists. Do you want to overwrite it?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2437"/> <location filename="../tsmuxerwindow.cpp" line="2482"/>
<source>Muxing in progress</source> <source>Muxing in progress</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2437"/> <location filename="../tsmuxerwindow.cpp" line="2482"/>
<source>Demuxing in progress</source> <source>Demuxing in progress</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2451"/> <location filename="../tsmuxerwindow.cpp" line="2496"/>
<source>tsMuxeR project file (*.meta);;All files (*.*)</source> <source>tsMuxeR project file (*.meta);;All files (*.*)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2466"/> <location filename="../tsmuxerwindow.cpp" line="2511"/>
<source>Can&apos;t create temporary meta file</source> <source>Can&apos;t create temporary meta file</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2467"/> <location filename="../tsmuxerwindow.cpp" line="2512"/>
<source>Can&apos;t create temporary meta file &quot;%1&quot;</source> <source>Can&apos;t create temporary meta file &quot;%1&quot;</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

@ -4,22 +4,22 @@
<context> <context>
<name>FontSettingsTableModel</name> <name>FontSettingsTableModel</name>
<message> <message>
<location filename="../fontsettingstablemodel.cpp" line="132"/> <location filename="../fontsettingstablemodel.cpp" line="134"/>
<source>Name:</source> <source>Name:</source>
<translation>Nom :</translation> <translation>Nom :</translation>
</message> </message>
<message> <message>
<location filename="../fontsettingstablemodel.cpp" line="132"/> <location filename="../fontsettingstablemodel.cpp" line="134"/>
<source>Size:</source> <source>Size:</source>
<translation>Taille :</translation> <translation>Taille :</translation>
</message> </message>
<message> <message>
<location filename="../fontsettingstablemodel.cpp" line="132"/> <location filename="../fontsettingstablemodel.cpp" line="134"/>
<source>Color:</source> <source>Color:</source>
<translation>Couleur :</translation> <translation>Couleur :</translation>
</message> </message>
<message> <message>
<location filename="../fontsettingstablemodel.cpp" line="133"/> <location filename="../fontsettingstablemodel.cpp" line="135"/>
<source>Options:</source> <source>Options:</source>
<translation>Options :</translation> <translation>Options :</translation>
</message> </message>
@ -129,7 +129,7 @@
<location filename="../tsmuxerwindow.ui" line="325"/> <location filename="../tsmuxerwindow.ui" line="325"/>
<location filename="../tsmuxerwindow.ui" line="629"/> <location filename="../tsmuxerwindow.ui" line="629"/>
<location filename="../tsmuxerwindow.ui" line="810"/> <location filename="../tsmuxerwindow.ui" line="810"/>
<location filename="../tsmuxerwindow.cpp" line="53"/> <location filename="../tsmuxerwindow.cpp" line="93"/>
<source>General track options</source> <source>General track options</source>
<translation>Options générales de la piste</translation> <translation>Options générales de la piste</translation>
</message> </message>
@ -195,7 +195,7 @@
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.ui" line="693"/> <location filename="../tsmuxerwindow.ui" line="693"/>
<location filename="../tsmuxerwindow.cpp" line="1010"/> <location filename="../tsmuxerwindow.cpp" line="1055"/>
<source>Downconvert HD audio</source> <source>Downconvert HD audio</source>
<translation>Supprimer les données HD de l&apos;audio</translation> <translation>Supprimer les données HD de l&apos;audio</translation>
</message> </message>
@ -221,7 +221,7 @@
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.ui" line="767"/> <location filename="../tsmuxerwindow.ui" line="767"/>
<location filename="../tsmuxerwindow.cpp" line="55"/> <location filename="../tsmuxerwindow.cpp" line="95"/>
<source>Demux options</source> <source>Demux options</source>
<translation>Options de démuxage</translation> <translation>Options de démuxage</translation>
</message> </message>
@ -734,7 +734,7 @@
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.ui" line="2628"/> <location filename="../tsmuxerwindow.ui" line="2628"/>
<location filename="../tsmuxerwindow.cpp" line="1393"/> <location filename="../tsmuxerwindow.cpp" line="1440"/>
<source>Demux</source> <source>Demux</source>
<translation>Démuxer</translation> <translation>Démuxer</translation>
</message> </message>
@ -745,7 +745,7 @@
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.ui" line="2662"/> <location filename="../tsmuxerwindow.ui" line="2662"/>
<location filename="../tsmuxerwindow.cpp" line="2282"/> <location filename="../tsmuxerwindow.cpp" line="2327"/>
<source>File name</source> <source>File name</source>
<translation>Nom du fichier</translation> <translation>Nom du fichier</translation>
</message> </message>
@ -761,7 +761,7 @@
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.ui" line="2781"/> <location filename="../tsmuxerwindow.ui" line="2781"/>
<location filename="../tsmuxerwindow.cpp" line="2266"/> <location filename="../tsmuxerwindow.cpp" line="2311"/>
<source>Sta&amp;rt muxing</source> <source>Sta&amp;rt muxing</source>
<translation>&amp;Démarrer le muxage</translation> <translation>&amp;Démarrer le muxage</translation>
</message> </message>
@ -771,196 +771,288 @@
<translation>Sauvegarder le fichier Meta</translation> <translation>Sauvegarder le fichier Meta</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="29"/> <location filename="../tsmuxerwindow.cpp" line="53"/>
<source>All supported media files (*.aac *.mpv *.mpa *.avc *.mvc *.264 *.h264 *.ac3 *.dts *.dtshd *.ts *.m2ts *.mts *.ssif *.mpg *.mpeg *.vob *.evo *.mkv *.mka *.mks *.mp4 *.m4a *.m4v *.mov *.sup *.wav *.w64 *.pcm *.m1v *.m2v *.vc1 *.hevc *.hvc *.265 *.h265 *.mpls *.mpl *.srt);;AC3/E-AC3 (*.ac3 *.ddp);;AAC (advanced audio coding) (*.aac);;AVC/MVC/H.264 elementary stream (*.avc *.mvc *.264 *.h264);;HEVC (High Efficiency Video Codec) (*.hevc *.hvc *.265 *.h265);;Digital Theater System (*.dts);;DTS-HD Master Audio (*.dtshd);;Mpeg video elementary stream (*.mpv *.m1v *.m2v);;Mpeg audio elementary stream (*.mpa);;Transport Stream (*.ts);;BDAV Transport Stream (*.m2ts *.mts *.ssif);;Program Stream (*.mpg *.mpeg *.vob *.evo);;Matroska audio/video files (*.mkv *.mka *.mks);;MP4 audio/video files (*.mp4 *.m4a *.m4v);;Quick time audio/video files (*.mov);;Blu-ray play list (*.mpls *.mpl);;Blu-ray PGS subtitles (*.sup);;Text subtitles (*.srt);;WAVE - Uncompressed PCM audio (*.wav *.w64);;RAW LPCM Stream (*.pcm);;All files (*.*)</source> <source>All files</source>
<translation>Tous les fichiers média pris en charge (*.aac *.mpv *.mpa *.avc *.mvc *.264 *.h264 *.ac3 *.dts *.dtshd *.ts *.m2ts *.mts *.ssif *.mpg *.mpeg *.vob *.evo *.mkv *.mka *.mks *.mp4 *.m4a *.m4v *.mov *.sup *.wav *.w64 *.pcm *.m1v *.m2v *.vc1 *.hevc *.hvc *.265 *.h265 *.mpls *.mpl *.srt);;AC3/E-AC3 (*.ac3 *.ddp);;AAC (advanced audio coding) (*.aac);;AVC/MVC/H.264 flux élémentaire (*.avc *.mvc *.264 *.h264);;HEVC (High Efficiency Video Codec) (*.hevc *.hvc *.265 *.h265);;Digital Theater System (*.dts);;DTS-HD Master Audio (*.dtshd);;Flux vidéo élémentaire Mpeg (*.mpv *.m1v *.m2v);;Flux audio élémentaire Mpeg (*.mpa);;Transport Stream (*.ts);;BDAV Transport Stream (*.m2ts *.mts *.ssif);;Program Stream (*.mpg *.mpeg *.vob *.evo);;Fichiers audio/vidéo Matroska (*.mkv *.mka *.mks);;Fichiers audio/vidéo MP4 (*.mp4 *.m4a *.m4v);;Fichiers audio/vidéo QuickTime (*.mov);;Liste de lecture Blu-Ray (*.mpls *.mpl);;Sous-titres PGS de Blu-ray (*.sup);;Sous-titres à base de texte (*.srt);;WAVE - Audio PCM non compressé (*.wav *.w64);;Flux LPCM RAW (*.pcm);;Tous les fichiers (*.*)</translation> <translation>Tous les fichiers</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="57"/> <location filename="../tsmuxerwindow.cpp" line="60"/>
<source>Transport stream (*.ts);;all files (*.*)</source> <source>AC3/E-AC3</source>
<translation>Transport stream (*.ts);;Tous les fichiers (*.*)</translation> <translation>AC3/E-AC3</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="59"/>
<source>BDAV Transport Stream (*.m2ts);;all files (*.*)</source>
<translation>BDAV Transport Stream (*.m2ts);;Tous les fichiers (*.*)</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="61"/> <location filename="../tsmuxerwindow.cpp" line="61"/>
<source>Disk image (*.iso);;all files (*.*)</source> <source>AAC (advanced audio coding)</source>
<translation>Image disque (*.iso);; Tous les fichiers (*.*)</translation> <translation>AAC (advanced audio coding)</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="551"/> <location filename="../tsmuxerwindow.cpp" line="62"/>
<source>AVC/MVC/H.264 elementary stream</source>
<translation>AVC/MVC/H.264 flux élémentaire</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="63"/>
<source>HEVC (High Efficiency Video Codec)</source>
<translation>HEVC (High Efficiency Video Codec)</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="64"/>
<source>Digital Theater System</source>
<translation>Digital Theater System</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="65"/>
<source>DTS-HD Master Audio</source>
<translation>DTS-HD Master Audio</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="66"/>
<source>Mpeg video elementary stream</source>
<translation>Flux vidéo élémentaire Mpeg</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="67"/>
<source>Mpeg audio elementary stream</source>
<translation>Flux audio élémentaire Mpeg</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="68"/>
<location filename="../tsmuxerwindow.cpp" line="97"/>
<source>Transport Stream</source>
<translation>Transport Stream</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="69"/>
<location filename="../tsmuxerwindow.cpp" line="101"/>
<source>BDAV Transport Stream</source>
<translation>BDAV Transport Stream</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="70"/>
<source>Program Stream</source>
<translation>Program Stream</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="71"/>
<source>Matroska audio/video files</source>
<translation>Fichiers audio/vidéo Matroska</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="72"/>
<source>MP4 audio/video files</source>
<translation>Fichiers audio/vidéo MP4</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="73"/>
<source>QuickTime audio/video files</source>
<translation>Fichiers audio/vidéo QuickTime</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="74"/>
<source>Blu-ray play list</source>
<translation>Liste de lecture Blu-Ray</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="75"/>
<source>Blu-ray PGS subtitles</source>
<translation>Sous-titres PGS de Blu-ray</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="76"/>
<source>Text subtitles</source>
<translation>Sous-titres à base de texte</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="77"/>
<source>WAVE - Uncompressed PCM audio</source>
<translation>WAVE - Audio PCM non compressé</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="78"/>
<source>RAW LPCM Stream</source>
<translation>Flux LPCM RAW</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="89"/>
<source>All supported media files</source>
<translation>Tous les fichiers média pris en charge</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="104"/>
<source>Disk image</source>
<translation>Image disque</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="596"/>
<source>Not supported</source> <source>Not supported</source>
<translation>Non pris en charge</translation> <translation>Non pris en charge</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="617"/> <location filename="../tsmuxerwindow.cpp" line="662"/>
<location filename="../tsmuxerwindow.cpp" line="1135"/> <location filename="../tsmuxerwindow.cpp" line="1180"/>
<source>Unsupported format</source> <source>Unsupported format</source>
<translation>Format non pris en charge</translation> <translation>Format non pris en charge</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="618"/> <location filename="../tsmuxerwindow.cpp" line="663"/>
<source>Can&apos;t detect stream type. File name: &quot;%1&quot;</source> <source>Can&apos;t detect stream type. File name: &quot;%1&quot;</source>
<translation>Impossible de déterminer le type de flux pour le fichier : &quot;%1&quot;</translation> <translation>Impossible de déterminer le type de flux pour le fichier : &quot;%1&quot;</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="911"/> <location filename="../tsmuxerwindow.cpp" line="956"/>
<source>Add media files</source> <source>Add media files</source>
<translation>Ajouter un fichiers médias</translation> <translation>Ajouter un fichiers médias</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="926"/> <location filename="../tsmuxerwindow.cpp" line="971"/>
<source>File already exists</source> <source>File already exists</source>
<translation>Le fichier existe déjà</translation> <translation>Le fichier existe déjà</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="927"/> <location filename="../tsmuxerwindow.cpp" line="972"/>
<source>File &quot;%1&quot; already exists</source> <source>File &quot;%1&quot; already exists</source>
<translation>Le fichier &quot;%1&quot; existe déjà</translation> <translation>Le fichier &quot;%1&quot; existe déjà</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="1004"/> <location filename="../tsmuxerwindow.cpp" line="1049"/>
<source>Downconvert DTS-HD to DTS</source> <source>Downconvert DTS-HD to DTS</source>
<translation>Réduire le DTS-HD en DTS</translation> <translation>Réduire le DTS-HD en DTS</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="1006"/> <location filename="../tsmuxerwindow.cpp" line="1051"/>
<source>Downconvert TRUE-HD to AC3</source> <source>Downconvert TRUE-HD to AC3</source>
<translation>Réduire le TRUE-HD en AC3</translation> <translation>Réduire le TRUE-HD en AC3</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="1008"/> <location filename="../tsmuxerwindow.cpp" line="1053"/>
<source>Downconvert E-AC3 to AC3</source> <source>Downconvert E-AC3 to AC3</source>
<translation>Réduire le E-AC3 en AC3</translation> <translation>Réduire le E-AC3 en AC3</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="1141"/> <location filename="../tsmuxerwindow.cpp" line="1186"/>
<source>Unsupported format or all tracks are not recognized. File name: &quot;%1&quot;</source> <source>Unsupported format or all tracks are not recognized. File name: &quot;%1&quot;</source>
<translation>Format non pris en charge ou aucune piste n&apos;a été reconnue pour le fichier &quot;%1&quot;</translation> <translation>Format non pris en charge ou aucune piste n&apos;a été reconnue pour le fichier &quot;%1&quot;</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="1151"/> <location filename="../tsmuxerwindow.cpp" line="1196"/>
<source>Track %1 was not recognized and ignored. File name: &quot;%2&quot;</source> <source>Track %1 was not recognized and ignored. File name: &quot;%2&quot;</source>
<translation>La piste %1 n&apos;a pas été reconnue et a été ignorée pour le fichier &quot;%2&quot;</translation> <translation>La piste %1 n&apos;a pas été reconnue et a été ignorée pour le fichier &quot;%2&quot;</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="1393"/> <location filename="../tsmuxerwindow.cpp" line="1440"/>
<source>Mux</source> <source>Mux</source>
<translation>Muxer</translation> <translation>Muxer</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="1412"/> <location filename="../tsmuxerwindow.cpp" line="1459"/>
<source>tsMuxeR error</source> <source>tsMuxeR error</source>
<translation>Erreur de tsMuxeR</translation> <translation>Erreur de tsMuxeR</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="1416"/> <location filename="../tsmuxerwindow.cpp" line="1463"/>
<source>tsMuxeR not found!</source> <source>tsMuxeR not found!</source>
<translation>tsMuxer introuvable !</translation> <translation>tsMuxer introuvable !</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="1434"/> <location filename="../tsmuxerwindow.cpp" line="1481"/>
<source>Can&apos;t execute tsMuxeR!</source> <source>Can&apos;t execute tsMuxeR!</source>
<translation>Impossible d&apos;exécuter tsMuxer !</translation> <translation>Impossible d&apos;exécuter tsMuxer !</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2142"/> <location filename="../tsmuxerwindow.cpp" line="2187"/>
<location filename="../tsmuxerwindow.cpp" line="2143"/> <location filename="../tsmuxerwindow.cpp" line="2188"/>
<source>No track selected</source> <source>No track selected</source>
<translation>Aucune piste sélectionnée</translation> <translation>Aucune piste sélectionnée</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2149"/> <location filename="../tsmuxerwindow.cpp" line="2194"/>
<source>Append media files</source> <source>Append media files</source>
<translation>Concaténer un fichiers médias</translation> <translation>Concaténer un fichiers médias</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2165"/> <location filename="../tsmuxerwindow.cpp" line="2210"/>
<source>Invalid file extension</source> <source>Invalid file extension</source>
<translation>Extension de fichier non valide</translation> <translation>Extension de fichier non valide</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2166"/> <location filename="../tsmuxerwindow.cpp" line="2211"/>
<source>Appended file must have same file extension.</source> <source>Appended file must have same file extension.</source>
<translation>Le fichier concaténé doit avoir la même extension de fichier.</translation> <translation>Le fichier concaténé doit avoir la même extension de fichier.</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2264"/> <location filename="../tsmuxerwindow.cpp" line="2309"/>
<source>Sta&amp;rt demuxing</source> <source>Sta&amp;rt demuxing</source>
<translation>Déma&amp;rrer le démuxage</translation> <translation>Déma&amp;rrer le démuxage</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2278"/> <location filename="../tsmuxerwindow.cpp" line="2323"/>
<source>Folder</source> <source>Folder</source>
<translation>Dossier</translation> <translation>Dossier</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2364"/> <location filename="../tsmuxerwindow.cpp" line="2409"/>
<source>Select file for muxing</source> <source>Select file for muxing</source>
<translation>Sélectionner un fichier pour le muxage</translation> <translation>Sélectionner un fichier pour le muxage</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2386"/> <location filename="../tsmuxerwindow.cpp" line="2431"/>
<location filename="../tsmuxerwindow.cpp" line="2402"/> <location filename="../tsmuxerwindow.cpp" line="2447"/>
<source>Invalid file name</source> <source>Invalid file name</source>
<translation>Nom de fichier non valide</translation> <translation>Nom de fichier non valide</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2387"/> <location filename="../tsmuxerwindow.cpp" line="2432"/>
<source>The output file &quot;%1&quot; has invalid extension. Please, change file extension to &quot;.m2ts&quot;</source> <source>The output file &quot;%1&quot; has invalid extension. Please, change file extension to &quot;.m2ts&quot;</source>
<translation>Le fichier de sortie &quot;%1&quot;&apos; n&apos;a pas une extension valide. Veuillez changer l&apos;extension du fichier en &quot;.m2ts&quot;</translation> <translation>Le fichier de sortie &quot;%1&quot;&apos; n&apos;a pas une extension valide. Veuillez changer l&apos;extension du fichier en &quot;.m2ts&quot;</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2403"/> <location filename="../tsmuxerwindow.cpp" line="2448"/>
<source>The output file &quot;%1&quot; has invalid extension. Please, change file extension to &quot;.iso&quot;</source> <source>The output file &quot;%1&quot; has invalid extension. Please, change file extension to &quot;.iso&quot;</source>
<translation>Le fichier de sortie &quot;%1&quot;&apos; n&apos;a pas une extension valide. Veuillez changer l&apos;extension du fichier en &quot;.iso&quot;</translation> <translation>Le fichier de sortie &quot;%1&quot;&apos; n&apos;a pas une extension valide. Veuillez changer l&apos;extension du fichier en &quot;.iso&quot;</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2417"/> <location filename="../tsmuxerwindow.cpp" line="2462"/>
<source>file</source> <source>file</source>
<extracomment>Used in expressions &quot;Overwrite existing %1&quot; and &quot;The output %1 already exists&quot;.</extracomment> <extracomment>Used in expressions &quot;Overwrite existing %1&quot; and &quot;The output %1 already exists&quot;.</extracomment>
<translation>fichier</translation> <translation>fichier</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2417"/> <location filename="../tsmuxerwindow.cpp" line="2462"/>
<source>directory</source> <source>directory</source>
<translation>dossier</translation> <translation>dossier</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2419"/> <location filename="../tsmuxerwindow.cpp" line="2464"/>
<source>Overwrite existing %1?</source> <source>Overwrite existing %1?</source>
<translation>Écraser %1 qui existe déjà ?</translation> <translation>Écraser %1 qui existe déjà ?</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2420"/> <location filename="../tsmuxerwindow.cpp" line="2465"/>
<source>The output %1 &quot;%2&quot; already exists. Do you want to overwrite it?</source> <source>The output %1 &quot;%2&quot; already exists. Do you want to overwrite it?</source>
<translation>La sortie %1 &quot;%2&quot; existe déjà. Souhaitez-vous l&apos;écraser ?</translation> <translation>La sortie %1 &quot;%2&quot; existe déjà. Souhaitez-vous l&apos;écraser ?</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2437"/> <location filename="../tsmuxerwindow.cpp" line="2482"/>
<source>Muxing in progress</source> <source>Muxing in progress</source>
<translation>Muxage en cours</translation> <translation>Muxage en cours</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2437"/> <location filename="../tsmuxerwindow.cpp" line="2482"/>
<source>Demuxing in progress</source> <source>Demuxing in progress</source>
<translation>Démuxage en cours</translation> <translation>Démuxage en cours</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2451"/> <location filename="../tsmuxerwindow.cpp" line="2496"/>
<source>tsMuxeR project file (*.meta);;All files (*.*)</source> <source>tsMuxeR project file (*.meta);;All files (*.*)</source>
<translation>Fichier de projet tsMuxeR (*.meta);;Tous les fichiers (*.*)</translation> <translation>Fichier de projet tsMuxeR (*.meta);;Tous les fichiers (*.*)</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2466"/> <location filename="../tsmuxerwindow.cpp" line="2511"/>
<source>Can&apos;t create temporary meta file</source> <source>Can&apos;t create temporary meta file</source>
<translation>Impossible de créer le fichier Meta temporaire</translation> <translation>Impossible de créer le fichier Meta temporaire</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2467"/> <location filename="../tsmuxerwindow.cpp" line="2512"/>
<source>Can&apos;t create temporary meta file &quot;%1&quot;</source> <source>Can&apos;t create temporary meta file &quot;%1&quot;</source>
<translation>Impossible de créer le fichier Meta temporaire &quot;%1&quot;</translation> <translation>Impossible de créer le fichier Meta temporaire &quot;%1&quot;</translation>
</message> </message>

View File

@ -4,22 +4,22 @@
<context> <context>
<name>FontSettingsTableModel</name> <name>FontSettingsTableModel</name>
<message> <message>
<location filename="../fontsettingstablemodel.cpp" line="132"/> <location filename="../fontsettingstablemodel.cpp" line="134"/>
<source>Name:</source> <source>Name:</source>
<translation>Имя:</translation> <translation>Имя:</translation>
</message> </message>
<message> <message>
<location filename="../fontsettingstablemodel.cpp" line="132"/> <location filename="../fontsettingstablemodel.cpp" line="134"/>
<source>Size:</source> <source>Size:</source>
<translation>Размер:</translation> <translation>Размер:</translation>
</message> </message>
<message> <message>
<location filename="../fontsettingstablemodel.cpp" line="132"/> <location filename="../fontsettingstablemodel.cpp" line="134"/>
<source>Color:</source> <source>Color:</source>
<translation>Цвет:</translation> <translation>Цвет:</translation>
</message> </message>
<message> <message>
<location filename="../fontsettingstablemodel.cpp" line="133"/> <location filename="../fontsettingstablemodel.cpp" line="135"/>
<source>Options:</source> <source>Options:</source>
<translation>Параметры:</translation> <translation>Параметры:</translation>
</message> </message>
@ -129,7 +129,7 @@
<location filename="../tsmuxerwindow.ui" line="325"/> <location filename="../tsmuxerwindow.ui" line="325"/>
<location filename="../tsmuxerwindow.ui" line="629"/> <location filename="../tsmuxerwindow.ui" line="629"/>
<location filename="../tsmuxerwindow.ui" line="810"/> <location filename="../tsmuxerwindow.ui" line="810"/>
<location filename="../tsmuxerwindow.cpp" line="53"/> <location filename="../tsmuxerwindow.cpp" line="93"/>
<source>General track options</source> <source>General track options</source>
<translation>Общие параметры дорожки</translation> <translation>Общие параметры дорожки</translation>
</message> </message>
@ -195,7 +195,7 @@
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.ui" line="693"/> <location filename="../tsmuxerwindow.ui" line="693"/>
<location filename="../tsmuxerwindow.cpp" line="1010"/> <location filename="../tsmuxerwindow.cpp" line="1055"/>
<source>Downconvert HD audio</source> <source>Downconvert HD audio</source>
<translation>Упростить HD звук</translation> <translation>Упростить HD звук</translation>
</message> </message>
@ -221,7 +221,7 @@
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.ui" line="767"/> <location filename="../tsmuxerwindow.ui" line="767"/>
<location filename="../tsmuxerwindow.cpp" line="55"/> <location filename="../tsmuxerwindow.cpp" line="95"/>
<source>Demux options</source> <source>Demux options</source>
<translation>Параметры записи дорожек</translation> <translation>Параметры записи дорожек</translation>
</message> </message>
@ -734,7 +734,7 @@
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.ui" line="2628"/> <location filename="../tsmuxerwindow.ui" line="2628"/>
<location filename="../tsmuxerwindow.cpp" line="1393"/> <location filename="../tsmuxerwindow.cpp" line="1440"/>
<source>Demux</source> <source>Demux</source>
<translation>Демукс</translation> <translation>Демукс</translation>
</message> </message>
@ -745,7 +745,7 @@
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.ui" line="2662"/> <location filename="../tsmuxerwindow.ui" line="2662"/>
<location filename="../tsmuxerwindow.cpp" line="2282"/> <location filename="../tsmuxerwindow.cpp" line="2327"/>
<source>File name</source> <source>File name</source>
<translation>Имя Файла</translation> <translation>Имя Файла</translation>
</message> </message>
@ -761,7 +761,7 @@
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.ui" line="2781"/> <location filename="../tsmuxerwindow.ui" line="2781"/>
<location filename="../tsmuxerwindow.cpp" line="2266"/> <location filename="../tsmuxerwindow.cpp" line="2311"/>
<source>Sta&amp;rt muxing</source> <source>Sta&amp;rt muxing</source>
<translation>Ста&amp;рт муксинга</translation> <translation>Ста&amp;рт муксинга</translation>
</message> </message>
@ -771,197 +771,289 @@
<translation>Сохранить проект</translation> <translation>Сохранить проект</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="29"/> <location filename="../tsmuxerwindow.cpp" line="53"/>
<source>All supported media files (*.aac *.mpv *.mpa *.avc *.mvc *.264 *.h264 *.ac3 *.dts *.dtshd *.ts *.m2ts *.mts *.ssif *.mpg *.mpeg *.vob *.evo *.mkv *.mka *.mks *.mp4 *.m4a *.m4v *.mov *.sup *.wav *.w64 *.pcm *.m1v *.m2v *.vc1 *.hevc *.hvc *.265 *.h265 *.mpls *.mpl *.srt);;AC3/E-AC3 (*.ac3 *.ddp);;AAC (advanced audio coding) (*.aac);;AVC/MVC/H.264 elementary stream (*.avc *.mvc *.264 *.h264);;HEVC (High Efficiency Video Codec) (*.hevc *.hvc *.265 *.h265);;Digital Theater System (*.dts);;DTS-HD Master Audio (*.dtshd);;Mpeg video elementary stream (*.mpv *.m1v *.m2v);;Mpeg audio elementary stream (*.mpa);;Transport Stream (*.ts);;BDAV Transport Stream (*.m2ts *.mts *.ssif);;Program Stream (*.mpg *.mpeg *.vob *.evo);;Matroska audio/video files (*.mkv *.mka *.mks);;MP4 audio/video files (*.mp4 *.m4a *.m4v);;Quick time audio/video files (*.mov);;Blu-ray play list (*.mpls *.mpl);;Blu-ray PGS subtitles (*.sup);;Text subtitles (*.srt);;WAVE - Uncompressed PCM audio (*.wav *.w64);;RAW LPCM Stream (*.pcm);;All files (*.*)</source> <source>All files</source>
<translation>Все поддерживаемые медиафайлы (*.aac *.mpv *.mpa *.avc *.mvc *.264 *.h264 *.ac3 *.dts *.dtshd *.ts *.m2ts *.mts *.ssif *.mpg *.mpeg *.vob *.evo *.mkv *.mka *.mks *.mp4 *.m4a *.m4v *.mov *.sup *.wav *.w64 *.pcm *.m1v *.m2v *.vc1 *.hevc *.hvc *.265 *.h265 *.mpls *.mpl *.srt);;AC3/E-AC3 (*.ac3 *.ddp);;AAC (advanced audio coding) (*.aac);;Элементарный поток AVC/MVC/H.264 (*.avc *.mvc *.264 *.h264);;HEVC (High Efficiency Video Codec) (*.hevc *.hvc *.265 *.h265);;Digital Theater System (*.dts);;DTS-HD Master Audio (*.dtshd);;Элеменарный поток MPEG видео (*.mpv *.m1v *.m2v);;Элеменарный поток MPEG аудио (*.mpa);;Транспортный поток (*.ts);;Транспортный поток BDAV (*.m2ts *.mts *.ssif);;Программный поток (*.mpg *.mpeg *.vob *.evo);;Аудио/видео файлы матрёшки (*.mkv *.mka *.mks);;Аудио/видео файлы MP4 (*.mp4 *.m4a *.m4v);;Аудио/видео файлы Quick time (*.mov);;Плейлист блюрея (*.mpls *.mpl);;PGS субтитры блюрея (*.sup);;Текстовые субтитры (*.srt);;WAVE - Несжатый звук PCM (*.wav *.w64);;RAW LPCM поток (*.pcm);;Все файлы (*.*)</translation> <translation>Все файлы</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="57"/> <location filename="../tsmuxerwindow.cpp" line="60"/>
<source>Transport stream (*.ts);;all files (*.*)</source> <source>AC3/E-AC3</source>
<translation>Транспортный поток (*.ts);;все файлы (*.*)</translation> <translation>AC3/E-AC3</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="59"/>
<source>BDAV Transport Stream (*.m2ts);;all files (*.*)</source>
<translation>Транспортный поток BDAV (*.m2ts);;все файлы (*.*)</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="61"/> <location filename="../tsmuxerwindow.cpp" line="61"/>
<source>Disk image (*.iso);;all files (*.*)</source> <source>AAC (advanced audio coding)</source>
<translation>Образ диска (*.iso);;все файлы (*.*)</translation> <translation>AAC (advanced audio coding)</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="551"/> <location filename="../tsmuxerwindow.cpp" line="62"/>
<source>AVC/MVC/H.264 elementary stream</source>
<translation>Элементарный поток AVC/MVC/H.264</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="63"/>
<source>HEVC (High Efficiency Video Codec)</source>
<translation>HEVC (High Efficiency Video Codec)</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="64"/>
<source>Digital Theater System</source>
<translation>Digital Theater System</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="65"/>
<source>DTS-HD Master Audio</source>
<translation>DTS-HD Master Audio</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="66"/>
<source>Mpeg video elementary stream</source>
<translation>Элеменарный поток MPEG видео</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="67"/>
<source>Mpeg audio elementary stream</source>
<translation>Элеменарный поток MPEG аудио</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="68"/>
<location filename="../tsmuxerwindow.cpp" line="97"/>
<source>Transport Stream</source>
<translation>Транспортный поток</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="69"/>
<location filename="../tsmuxerwindow.cpp" line="101"/>
<source>BDAV Transport Stream</source>
<translation>Транспортный поток BDAV</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="70"/>
<source>Program Stream</source>
<translation>Программный поток</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="71"/>
<source>Matroska audio/video files</source>
<translation>Аудио/видео файлы матрёшки</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="72"/>
<source>MP4 audio/video files</source>
<translation>Аудио/видео файлы MP4</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="73"/>
<source>QuickTime audio/video files</source>
<translation>Аудио/видео файлы QuickTime</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="74"/>
<source>Blu-ray play list</source>
<translation>Плейлист блюрея</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="75"/>
<source>Blu-ray PGS subtitles</source>
<translation>PGS субтитры блюрея</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="76"/>
<source>Text subtitles</source>
<translation>Текстовые субтитры</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="77"/>
<source>WAVE - Uncompressed PCM audio</source>
<translation>WAVE - Несжатый звук PCM</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="78"/>
<source>RAW LPCM Stream</source>
<translation>RAW LPCM поток</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="89"/>
<source>All supported media files</source>
<translation>Все поддерживаемые медиафайлы</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="104"/>
<source>Disk image</source>
<translation>Образ диска</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="596"/>
<source>Not supported</source> <source>Not supported</source>
<translation>Не поддерживается</translation> <translation>Не поддерживается</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="617"/> <location filename="../tsmuxerwindow.cpp" line="662"/>
<location filename="../tsmuxerwindow.cpp" line="1135"/> <location filename="../tsmuxerwindow.cpp" line="1180"/>
<source>Unsupported format</source> <source>Unsupported format</source>
<translation>Неподдерживаемый формат</translation> <translation>Неподдерживаемый формат</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="618"/> <location filename="../tsmuxerwindow.cpp" line="663"/>
<source>Can&apos;t detect stream type. File name: &quot;%1&quot;</source> <source>Can&apos;t detect stream type. File name: &quot;%1&quot;</source>
<translation>Не определён тип потока. Имя файла: &quot;%1&quot;</translation> <translation>Не определён тип потока. Имя файла: &quot;%1&quot;</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="911"/> <location filename="../tsmuxerwindow.cpp" line="956"/>
<source>Add media files</source> <source>Add media files</source>
<translation>Добавить медиафайлы</translation> <translation>Добавить медиафайлы</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="926"/> <location filename="../tsmuxerwindow.cpp" line="971"/>
<source>File already exists</source> <source>File already exists</source>
<translation>Файл уже есть</translation> <translation>Файл уже есть</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="927"/> <location filename="../tsmuxerwindow.cpp" line="972"/>
<source>File &quot;%1&quot; already exists</source> <source>File &quot;%1&quot; already exists</source>
<translation>Файл &quot;%1&quot; уже есть</translation> <translation>Файл &quot;%1&quot; уже есть</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="1004"/> <location filename="../tsmuxerwindow.cpp" line="1049"/>
<source>Downconvert DTS-HD to DTS</source> <source>Downconvert DTS-HD to DTS</source>
<translation>Преобразовать из DTS-HD в DTS</translation> <translation>Преобразовать из DTS-HD в DTS</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="1006"/> <location filename="../tsmuxerwindow.cpp" line="1051"/>
<source>Downconvert TRUE-HD to AC3</source> <source>Downconvert TRUE-HD to AC3</source>
<translation>Преобразовать из TRUE-HD в AC3</translation> <translation>Преобразовать из TRUE-HD в AC3</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="1008"/> <location filename="../tsmuxerwindow.cpp" line="1053"/>
<source>Downconvert E-AC3 to AC3</source> <source>Downconvert E-AC3 to AC3</source>
<translation>Преобразовать из E-AC3 в AC3</translation> <translation>Преобразовать из E-AC3 в AC3</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="1141"/> <location filename="../tsmuxerwindow.cpp" line="1186"/>
<source>Unsupported format or all tracks are not recognized. File name: &quot;%1&quot;</source> <source>Unsupported format or all tracks are not recognized. File name: &quot;%1&quot;</source>
<translation>Неподдерживаемый формат или все дорожки не распознаны. Имя файла: &quot;%1&quot;</translation> <translation>Неподдерживаемый формат или все дорожки не распознаны. Имя файла: &quot;%1&quot;</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="1151"/> <location filename="../tsmuxerwindow.cpp" line="1196"/>
<source>Track %1 was not recognized and ignored. File name: &quot;%2&quot;</source> <source>Track %1 was not recognized and ignored. File name: &quot;%2&quot;</source>
<translation>Дорожка %1 не распознана и проигнорирована. Имя файла: &quot;%2&quot;</translation> <translation>Дорожка %1 не распознана и проигнорирована. Имя файла: &quot;%2&quot;</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="1393"/> <location filename="../tsmuxerwindow.cpp" line="1440"/>
<source>Mux</source> <source>Mux</source>
<translation>Создать</translation> <translation>Создать</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="1412"/> <location filename="../tsmuxerwindow.cpp" line="1459"/>
<source>tsMuxeR error</source> <source>tsMuxeR error</source>
<translation>Ошибка tsMuxeR</translation> <translation>Ошибка tsMuxeR</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="1416"/> <location filename="../tsmuxerwindow.cpp" line="1463"/>
<source>tsMuxeR not found!</source> <source>tsMuxeR not found!</source>
<translation>tsMuxeR не найден!</translation> <translation>tsMuxeR не найден!</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="1434"/> <location filename="../tsmuxerwindow.cpp" line="1481"/>
<source>Can&apos;t execute tsMuxeR!</source> <source>Can&apos;t execute tsMuxeR!</source>
<translation>Не возможно запустить tsMuxeR!</translation> <translation>Не возможно запустить tsMuxeR!</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2142"/> <location filename="../tsmuxerwindow.cpp" line="2187"/>
<location filename="../tsmuxerwindow.cpp" line="2143"/> <location filename="../tsmuxerwindow.cpp" line="2188"/>
<source>No track selected</source> <source>No track selected</source>
<translation>Не выбрана дорожка</translation> <translation>Не выбрана дорожка</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2149"/> <location filename="../tsmuxerwindow.cpp" line="2194"/>
<source>Append media files</source> <source>Append media files</source>
<translation>Присоединить медиафайлы</translation> <translation>Присоединить медиафайлы</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2165"/> <location filename="../tsmuxerwindow.cpp" line="2210"/>
<source>Invalid file extension</source> <source>Invalid file extension</source>
<translation>Неверное расширение файла</translation> <translation>Неверное расширение файла</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2166"/> <location filename="../tsmuxerwindow.cpp" line="2211"/>
<source>Appended file must have same file extension.</source> <source>Appended file must have same file extension.</source>
<translation>Присоединяемый файл должен иметь тоже самое расширение файла.</translation> <translation>Присоединяемый файл должен иметь тоже самое расширение файла.</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2264"/> <location filename="../tsmuxerwindow.cpp" line="2309"/>
<source>Sta&amp;rt demuxing</source> <source>Sta&amp;rt demuxing</source>
<translation>Ста&amp;rт демуксинга</translation> <translation>Ста&amp;rт демуксинга</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2278"/> <location filename="../tsmuxerwindow.cpp" line="2323"/>
<source>Folder</source> <source>Folder</source>
<translation>Папка</translation> <translation>Папка</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2364"/> <location filename="../tsmuxerwindow.cpp" line="2409"/>
<source>Select file for muxing</source> <source>Select file for muxing</source>
<translation>Выберите файл для муксинга</translation> <translation>Выберите файл для муксинга</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2386"/> <location filename="../tsmuxerwindow.cpp" line="2431"/>
<location filename="../tsmuxerwindow.cpp" line="2402"/> <location filename="../tsmuxerwindow.cpp" line="2447"/>
<source>Invalid file name</source> <source>Invalid file name</source>
<translation>Неверное имя файла</translation> <translation>Неверное имя файла</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2387"/> <location filename="../tsmuxerwindow.cpp" line="2432"/>
<source>The output file &quot;%1&quot; has invalid extension. Please, change file extension to &quot;.m2ts&quot;</source> <source>The output file &quot;%1&quot; has invalid extension. Please, change file extension to &quot;.m2ts&quot;</source>
<translation>Выходной файл &quot;%1&quot; имеет недопустимое расширение. Пожалуйста, измените расширение файла на &quot;.m2ts&quot;</translation> <translation>Выходной файл &quot;%1&quot; имеет недопустимое расширение. Пожалуйста, измените расширение файла на &quot;.m2ts&quot;</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2403"/> <location filename="../tsmuxerwindow.cpp" line="2448"/>
<source>The output file &quot;%1&quot; has invalid extension. Please, change file extension to &quot;.iso&quot;</source> <source>The output file &quot;%1&quot; has invalid extension. Please, change file extension to &quot;.iso&quot;</source>
<translation>Выходной файл &quot;%1&quot; имеет недопустимое расширение. Пожалуйста, измените расширение файла на &quot;.iso&quot;</translation> <translation>Выходной файл &quot;%1&quot; имеет недопустимое расширение. Пожалуйста, измените расширение файла на &quot;.iso&quot;</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2417"/> <location filename="../tsmuxerwindow.cpp" line="2462"/>
<source>file</source> <source>file</source>
<extracomment>Used in expressions &quot;Overwrite existing %1&quot; and &quot;The output %1 already exists&quot;.</extracomment> <extracomment>Used in expressions &quot;Overwrite existing %1&quot; and &quot;The output %1 already exists&quot;.</extracomment>
<translatorcomment>Используется в фразах &quot;Переписать существующий %1&quot; и &quot;Файл %1 уже существует&quot;.</translatorcomment> <translatorcomment>Используется в фразах &quot;Переписать существующий %1&quot; и &quot;Файл %1 уже существует&quot;.</translatorcomment>
<translation>файл</translation> <translation>файл</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2417"/> <location filename="../tsmuxerwindow.cpp" line="2462"/>
<source>directory</source> <source>directory</source>
<translation>каталог</translation> <translation>каталог</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2419"/> <location filename="../tsmuxerwindow.cpp" line="2464"/>
<source>Overwrite existing %1?</source> <source>Overwrite existing %1?</source>
<translation>Переписать существующий %1?</translation> <translation>Переписать существующий %1?</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2420"/> <location filename="../tsmuxerwindow.cpp" line="2465"/>
<source>The output %1 &quot;%2&quot; already exists. Do you want to overwrite it?</source> <source>The output %1 &quot;%2&quot; already exists. Do you want to overwrite it?</source>
<translation>Результат %1 &quot;%2&quot; уже есть. Хотите его перезаписать?</translation> <translation>Результат %1 &quot;%2&quot; уже есть. Хотите его перезаписать?</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2437"/> <location filename="../tsmuxerwindow.cpp" line="2482"/>
<source>Muxing in progress</source> <source>Muxing in progress</source>
<translation>Выполняется муксинг</translation> <translation>Выполняется муксинг</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2437"/> <location filename="../tsmuxerwindow.cpp" line="2482"/>
<source>Demuxing in progress</source> <source>Demuxing in progress</source>
<translation>Выполняется демуксинг</translation> <translation>Выполняется демуксинг</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2451"/> <location filename="../tsmuxerwindow.cpp" line="2496"/>
<source>tsMuxeR project file (*.meta);;All files (*.*)</source> <source>tsMuxeR project file (*.meta);;All files (*.*)</source>
<translation>Файл проекта tsMuxeR (*.meta);;все файлы (*.*)</translation> <translation>Файл проекта tsMuxeR (*.meta);;все файлы (*.*)</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2466"/> <location filename="../tsmuxerwindow.cpp" line="2511"/>
<source>Can&apos;t create temporary meta file</source> <source>Can&apos;t create temporary meta file</source>
<translation>Не возможно создать временный файл проекта</translation> <translation>Не возможно создать временный файл проекта</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2467"/> <location filename="../tsmuxerwindow.cpp" line="2512"/>
<source>Can&apos;t create temporary meta file &quot;%1&quot;</source> <source>Can&apos;t create temporary meta file &quot;%1&quot;</source>
<translation>Не возможно создать временный файл проекта &quot;%1&quot;</translation> <translation>Не возможно создать временный файл проекта &quot;%1&quot;</translation>
</message> </message>

View File

@ -4,22 +4,22 @@
<context> <context>
<name>FontSettingsTableModel</name> <name>FontSettingsTableModel</name>
<message> <message>
<location filename="../fontsettingstablemodel.cpp" line="132"/> <location filename="../fontsettingstablemodel.cpp" line="134"/>
<source>Name:</source> <source>Name:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../fontsettingstablemodel.cpp" line="132"/> <location filename="../fontsettingstablemodel.cpp" line="134"/>
<source>Size:</source> <source>Size:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../fontsettingstablemodel.cpp" line="132"/> <location filename="../fontsettingstablemodel.cpp" line="134"/>
<source>Color:</source> <source>Color:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../fontsettingstablemodel.cpp" line="133"/> <location filename="../fontsettingstablemodel.cpp" line="135"/>
<source>Options:</source> <source>Options:</source>
<translation></translation> <translation></translation>
</message> </message>
@ -129,7 +129,7 @@
<location filename="../tsmuxerwindow.ui" line="325"/> <location filename="../tsmuxerwindow.ui" line="325"/>
<location filename="../tsmuxerwindow.ui" line="629"/> <location filename="../tsmuxerwindow.ui" line="629"/>
<location filename="../tsmuxerwindow.ui" line="810"/> <location filename="../tsmuxerwindow.ui" line="810"/>
<location filename="../tsmuxerwindow.cpp" line="53"/> <location filename="../tsmuxerwindow.cpp" line="93"/>
<source>General track options</source> <source>General track options</source>
<translation></translation> <translation></translation>
</message> </message>
@ -195,7 +195,7 @@
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.ui" line="693"/> <location filename="../tsmuxerwindow.ui" line="693"/>
<location filename="../tsmuxerwindow.cpp" line="1010"/> <location filename="../tsmuxerwindow.cpp" line="1055"/>
<source>Downconvert HD audio</source> <source>Downconvert HD audio</source>
<translation></translation> <translation></translation>
</message> </message>
@ -221,7 +221,7 @@
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.ui" line="767"/> <location filename="../tsmuxerwindow.ui" line="767"/>
<location filename="../tsmuxerwindow.cpp" line="55"/> <location filename="../tsmuxerwindow.cpp" line="95"/>
<source>Demux options</source> <source>Demux options</source>
<translation>Demux</translation> <translation>Demux</translation>
</message> </message>
@ -734,7 +734,7 @@
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.ui" line="2628"/> <location filename="../tsmuxerwindow.ui" line="2628"/>
<location filename="../tsmuxerwindow.cpp" line="1393"/> <location filename="../tsmuxerwindow.cpp" line="1440"/>
<source>Demux</source> <source>Demux</source>
<translation></translation> <translation></translation>
</message> </message>
@ -745,7 +745,7 @@
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.ui" line="2662"/> <location filename="../tsmuxerwindow.ui" line="2662"/>
<location filename="../tsmuxerwindow.cpp" line="2282"/> <location filename="../tsmuxerwindow.cpp" line="2327"/>
<source>File name</source> <source>File name</source>
<translation></translation> <translation></translation>
</message> </message>
@ -761,7 +761,7 @@
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.ui" line="2781"/> <location filename="../tsmuxerwindow.ui" line="2781"/>
<location filename="../tsmuxerwindow.cpp" line="2266"/> <location filename="../tsmuxerwindow.cpp" line="2311"/>
<source>Sta&amp;rt muxing</source> <source>Sta&amp;rt muxing</source>
<translation>muxing</translation> <translation>muxing</translation>
</message> </message>
@ -771,196 +771,288 @@
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="29"/> <location filename="../tsmuxerwindow.cpp" line="53"/>
<source>All supported media files (*.aac *.mpv *.mpa *.avc *.mvc *.264 *.h264 *.ac3 *.dts *.dtshd *.ts *.m2ts *.mts *.ssif *.mpg *.mpeg *.vob *.evo *.mkv *.mka *.mks *.mp4 *.m4a *.m4v *.mov *.sup *.wav *.w64 *.pcm *.m1v *.m2v *.vc1 *.hevc *.hvc *.265 *.h265 *.mpls *.mpl *.srt);;AC3/E-AC3 (*.ac3 *.ddp);;AAC (advanced audio coding) (*.aac);;AVC/MVC/H.264 elementary stream (*.avc *.mvc *.264 *.h264);;HEVC (High Efficiency Video Codec) (*.hevc *.hvc *.265 *.h265);;Digital Theater System (*.dts);;DTS-HD Master Audio (*.dtshd);;Mpeg video elementary stream (*.mpv *.m1v *.m2v);;Mpeg audio elementary stream (*.mpa);;Transport Stream (*.ts);;BDAV Transport Stream (*.m2ts *.mts *.ssif);;Program Stream (*.mpg *.mpeg *.vob *.evo);;Matroska audio/video files (*.mkv *.mka *.mks);;MP4 audio/video files (*.mp4 *.m4a *.m4v);;Quick time audio/video files (*.mov);;Blu-ray play list (*.mpls *.mpl);;Blu-ray PGS subtitles (*.sup);;Text subtitles (*.srt);;WAVE - Uncompressed PCM audio (*.wav *.w64);;RAW LPCM Stream (*.pcm);;All files (*.*)</source> <source>All files</source>
<translation> (*.aac *.mpv *.mpa *.avc *.mvc *.264 *.h264 *.ac3 *.dts *.dtshd *.ts *.m2ts *.mts *.ssif *.mpg *.mpeg *.vob *.evo *.mkv *.mka *.mks *.mp4 *.m4a *.m4v *.mov *.sup *.wav *.w64 *.pcm *.m1v *.m2v *.vc1 *.hevc *.hvc *.265 *.h265 *.mpls *.mpl *.srt);;AC3/E-AC3 (*.ac3 *.ddp);;AAC ()) (*.aac);;AVC/MVC/H.264 (*.avc *.mvc *.264 *.h264);;HEVC () (*.hevc *.hvc *.265 *.h265);; (*.dts);;DTS-HD Master Audio (*.dtshd);;Mpeg (*.mpv *.m1v *.m2v);;MPEG (*.mpa);; (*.ts);;BDAV (*.m2ts *.mts *.ssif);; (*.mpg *.mpeg *.vob *.evo);;Matroska / (*.mkv *.mka *.mks);;MP4 / (*.mp4 *.m4a *.m4v);;Quick / (*.mov);; (*.mpls *.mpl);;PGS (*.sup);; (*.srt);;WAVE-PCM (*.wav *.w64);;RAW LPCM (*.pcm);; (*.*)</translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="57"/> <location filename="../tsmuxerwindow.cpp" line="60"/>
<source>Transport stream (*.ts);;all files (*.*)</source> <source>AC3/E-AC3</source>
<translation> (*.ts);; (*.*)</translation> <translation>AC3/E-AC3</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="59"/>
<source>BDAV Transport Stream (*.m2ts);;all files (*.*)</source>
<translation>BDAV (*.m2ts);; (*.*)</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="61"/> <location filename="../tsmuxerwindow.cpp" line="61"/>
<source>Disk image (*.iso);;all files (*.*)</source> <source>AAC (advanced audio coding)</source>
<translation> (*.iso);; (*.*)</translation> <translation>AAC ()</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="551"/> <location filename="../tsmuxerwindow.cpp" line="62"/>
<source>AVC/MVC/H.264 elementary stream</source>
<translation>AVC/MVC/H.264 </translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="63"/>
<source>HEVC (High Efficiency Video Codec)</source>
<translation>HEVC ()</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="64"/>
<source>Digital Theater System</source>
<translation></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="65"/>
<source>DTS-HD Master Audio</source>
<translation>DTS-HD Master Audio</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="66"/>
<source>Mpeg video elementary stream</source>
<translation>Mpeg</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="67"/>
<source>Mpeg audio elementary stream</source>
<translation>MPEG </translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="68"/>
<location filename="../tsmuxerwindow.cpp" line="97"/>
<source>Transport Stream</source>
<translation></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="69"/>
<location filename="../tsmuxerwindow.cpp" line="101"/>
<source>BDAV Transport Stream</source>
<translation>BDAV </translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="70"/>
<source>Program Stream</source>
<translation></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="71"/>
<source>Matroska audio/video files</source>
<translation>Matroska / </translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="72"/>
<source>MP4 audio/video files</source>
<translation>MP4 / </translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="73"/>
<source>QuickTime audio/video files</source>
<translation>QuickTime / </translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="74"/>
<source>Blu-ray play list</source>
<translation></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="75"/>
<source>Blu-ray PGS subtitles</source>
<translation>PGS</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="76"/>
<source>Text subtitles</source>
<translation></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="77"/>
<source>WAVE - Uncompressed PCM audio</source>
<translation>WAVE-PCM</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="78"/>
<source>RAW LPCM Stream</source>
<translation>RAW LPCM</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="89"/>
<source>All supported media files</source>
<translation></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="104"/>
<source>Disk image</source>
<translation></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="596"/>
<source>Not supported</source> <source>Not supported</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="617"/> <location filename="../tsmuxerwindow.cpp" line="662"/>
<location filename="../tsmuxerwindow.cpp" line="1135"/> <location filename="../tsmuxerwindow.cpp" line="1180"/>
<source>Unsupported format</source> <source>Unsupported format</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="618"/> <location filename="../tsmuxerwindow.cpp" line="663"/>
<source>Can&apos;t detect stream type. File name: &quot;%1&quot;</source> <source>Can&apos;t detect stream type. File name: &quot;%1&quot;</source>
<translation> &quot;%1&quot;</translation> <translation> &quot;%1&quot;</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="911"/> <location filename="../tsmuxerwindow.cpp" line="956"/>
<source>Add media files</source> <source>Add media files</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="926"/> <location filename="../tsmuxerwindow.cpp" line="971"/>
<source>File already exists</source> <source>File already exists</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="927"/> <location filename="../tsmuxerwindow.cpp" line="972"/>
<source>File &quot;%1&quot; already exists</source> <source>File &quot;%1&quot; already exists</source>
<translation> &quot;%1&quot; </translation> <translation> &quot;%1&quot; </translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="1004"/> <location filename="../tsmuxerwindow.cpp" line="1049"/>
<source>Downconvert DTS-HD to DTS</source> <source>Downconvert DTS-HD to DTS</source>
<translation>DTS-HDDTS</translation> <translation>DTS-HDDTS</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="1006"/> <location filename="../tsmuxerwindow.cpp" line="1051"/>
<source>Downconvert TRUE-HD to AC3</source> <source>Downconvert TRUE-HD to AC3</source>
<translation>TRUE-HDAC3</translation> <translation>TRUE-HDAC3</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="1008"/> <location filename="../tsmuxerwindow.cpp" line="1053"/>
<source>Downconvert E-AC3 to AC3</source> <source>Downconvert E-AC3 to AC3</source>
<translation>E-AC3AC3</translation> <translation>E-AC3AC3</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="1141"/> <location filename="../tsmuxerwindow.cpp" line="1186"/>
<source>Unsupported format or all tracks are not recognized. File name: &quot;%1&quot;</source> <source>Unsupported format or all tracks are not recognized. File name: &quot;%1&quot;</source>
<translation> &quot;%1&quot;</translation> <translation> &quot;%1&quot;</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="1151"/> <location filename="../tsmuxerwindow.cpp" line="1196"/>
<source>Track %1 was not recognized and ignored. File name: &quot;%2&quot;</source> <source>Track %1 was not recognized and ignored. File name: &quot;%2&quot;</source>
<translation> %1 &quot;%2&quot;</translation> <translation> %1 &quot;%2&quot;</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="1393"/> <location filename="../tsmuxerwindow.cpp" line="1440"/>
<source>Mux</source> <source>Mux</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="1412"/> <location filename="../tsmuxerwindow.cpp" line="1459"/>
<source>tsMuxeR error</source> <source>tsMuxeR error</source>
<translation>tsMuxeR </translation> <translation>tsMuxeR </translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="1416"/> <location filename="../tsmuxerwindow.cpp" line="1463"/>
<source>tsMuxeR not found!</source> <source>tsMuxeR not found!</source>
<translation>tsMuxeR </translation> <translation>tsMuxeR </translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="1434"/> <location filename="../tsmuxerwindow.cpp" line="1481"/>
<source>Can&apos;t execute tsMuxeR!</source> <source>Can&apos;t execute tsMuxeR!</source>
<translation>tsMuxeR</translation> <translation>tsMuxeR</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2142"/> <location filename="../tsmuxerwindow.cpp" line="2187"/>
<location filename="../tsmuxerwindow.cpp" line="2143"/> <location filename="../tsmuxerwindow.cpp" line="2188"/>
<source>No track selected</source> <source>No track selected</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2149"/> <location filename="../tsmuxerwindow.cpp" line="2194"/>
<source>Append media files</source> <source>Append media files</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2165"/> <location filename="../tsmuxerwindow.cpp" line="2210"/>
<source>Invalid file extension</source> <source>Invalid file extension</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2166"/> <location filename="../tsmuxerwindow.cpp" line="2211"/>
<source>Appended file must have same file extension.</source> <source>Appended file must have same file extension.</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2264"/> <location filename="../tsmuxerwindow.cpp" line="2309"/>
<source>Sta&amp;rt demuxing</source> <source>Sta&amp;rt demuxing</source>
<translation>demuxing</translation> <translation>demuxing</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2278"/> <location filename="../tsmuxerwindow.cpp" line="2323"/>
<source>Folder</source> <source>Folder</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2364"/> <location filename="../tsmuxerwindow.cpp" line="2409"/>
<source>Select file for muxing</source> <source>Select file for muxing</source>
<translation>muxing</translation> <translation>muxing</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2386"/> <location filename="../tsmuxerwindow.cpp" line="2431"/>
<location filename="../tsmuxerwindow.cpp" line="2402"/> <location filename="../tsmuxerwindow.cpp" line="2447"/>
<source>Invalid file name</source> <source>Invalid file name</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2387"/> <location filename="../tsmuxerwindow.cpp" line="2432"/>
<source>The output file &quot;%1&quot; has invalid extension. Please, change file extension to &quot;.m2ts&quot;</source> <source>The output file &quot;%1&quot; has invalid extension. Please, change file extension to &quot;.m2ts&quot;</source>
<translation> &quot;%1&quot; &quot;.m2ts&quot;</translation> <translation> &quot;%1&quot; &quot;.m2ts&quot;</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2403"/> <location filename="../tsmuxerwindow.cpp" line="2448"/>
<source>The output file &quot;%1&quot; has invalid extension. Please, change file extension to &quot;.iso&quot;</source> <source>The output file &quot;%1&quot; has invalid extension. Please, change file extension to &quot;.iso&quot;</source>
<translation> &quot;%1&quot; &quot;.iso&quot;</translation> <translation> &quot;%1&quot; &quot;.iso&quot;</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2417"/> <location filename="../tsmuxerwindow.cpp" line="2462"/>
<source>file</source> <source>file</source>
<extracomment>Used in expressions &quot;Overwrite existing %1&quot; and &quot;The output %1 already exists&quot;.</extracomment> <extracomment>Used in expressions &quot;Overwrite existing %1&quot; and &quot;The output %1 already exists&quot;.</extracomment>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2417"/> <location filename="../tsmuxerwindow.cpp" line="2462"/>
<source>directory</source> <source>directory</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2419"/> <location filename="../tsmuxerwindow.cpp" line="2464"/>
<source>Overwrite existing %1?</source> <source>Overwrite existing %1?</source>
<translation> %1</translation> <translation> %1</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2420"/> <location filename="../tsmuxerwindow.cpp" line="2465"/>
<source>The output %1 &quot;%2&quot; already exists. Do you want to overwrite it?</source> <source>The output %1 &quot;%2&quot; already exists. Do you want to overwrite it?</source>
<translation> %1 &quot;%2&quot; </translation> <translation> %1 &quot;%2&quot; </translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2437"/> <location filename="../tsmuxerwindow.cpp" line="2482"/>
<source>Muxing in progress</source> <source>Muxing in progress</source>
<translation>Muxing</translation> <translation>Muxing</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2437"/> <location filename="../tsmuxerwindow.cpp" line="2482"/>
<source>Demuxing in progress</source> <source>Demuxing in progress</source>
<translation>Demuxing</translation> <translation>Demuxing</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2451"/> <location filename="../tsmuxerwindow.cpp" line="2496"/>
<source>tsMuxeR project file (*.meta);;All files (*.*)</source> <source>tsMuxeR project file (*.meta);;All files (*.*)</source>
<translation>tsMuxeR (*.meta);; (*.*)</translation> <translation>tsMuxeR (*.meta);; (*.*)</translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2466"/> <location filename="../tsmuxerwindow.cpp" line="2511"/>
<source>Can&apos;t create temporary meta file</source> <source>Can&apos;t create temporary meta file</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../tsmuxerwindow.cpp" line="2467"/> <location filename="../tsmuxerwindow.cpp" line="2512"/>
<source>Can&apos;t create temporary meta file &quot;%1&quot;</source> <source>Can&apos;t create temporary meta file &quot;%1&quot;</source>
<translation> &quot;%1&quot;</translation> <translation> &quot;%1&quot;</translation>
</message> </message>

View File

@ -15,6 +15,8 @@
#include <QTemporaryFile> #include <QTemporaryFile>
#include <QTime> #include <QTime>
#include <unordered_set>
#include "checkboxedheaderview.h" #include "checkboxedheaderview.h"
#include "codecinfo.h" #include "codecinfo.h"
#include "fontsettingstablemodel.h" #include "fontsettingstablemodel.h"
@ -29,41 +31,76 @@
namespace namespace
{ {
using FileFilterVec = std::vector<std::pair<QString, std::vector<const char *>>>;
QString makeFileFilter(const FileFilterVec &filters)
{
QString rv;
QTextStream s(&rv);
for (auto &f : filters)
{
s << f.first << " (";
for (auto &e : f.second)
{
s << "*." << e;
if (&e != &f.second.back())
{
s << ' ';
}
}
s << ");;";
}
rv.append(QString("%1 (*.*)").arg(TsMuxerWindow::tr("All files")));
return rv;
}
QString fileDialogFilter() QString fileDialogFilter()
{ {
return TsMuxerWindow::tr( FileFilterVec filters = {{TsMuxerWindow::tr("AC3/E-AC3"), {"ac3", "ddp", "ec3"}},
"All supported media files (*.aac *.mpv *.mpa *.avc *.mvc *.264 *.h264 *.ac3 *.dts *.dtshd *.ts *.m2ts *.mts *.ssif *.mpg *.mpeg *.vob *.evo *.mkv *.mka *.mks *.mp4 *.m4a *.m4v *.mov *.sup *.wav *.w64 *.pcm *.m1v *.m2v *.vc1 *.hevc *.hvc *.265 *.h265 *.mpls *.mpl *.srt);;\ {TsMuxerWindow::tr("AAC (advanced audio coding)"), {"aac"}},
AC3/E-AC3 (*.ac3 *.ddp);;\ {TsMuxerWindow::tr("AVC/MVC/H.264 elementary stream"), {"avc", "mvc", "264", "h264"}},
AAC (advanced audio coding) (*.aac);;\ {TsMuxerWindow::tr("HEVC (High Efficiency Video Codec)"), {"hevc", "hvc", "265", "h265"}},
AVC/MVC/H.264 elementary stream (*.avc *.mvc *.264 *.h264);;\ {TsMuxerWindow::tr("Digital Theater System"), {"dts"}},
HEVC (High Efficiency Video Codec) (*.hevc *.hvc *.265 *.h265);;\ {TsMuxerWindow::tr("DTS-HD Master Audio"), {"dtshd"}},
Digital Theater System (*.dts);;\ {TsMuxerWindow::tr("Mpeg video elementary stream"), {"mpv", "m1v", "m2v"}},
DTS-HD Master Audio (*.dtshd);;\ {TsMuxerWindow::tr("Mpeg audio elementary stream"), {"mpa"}},
Mpeg video elementary stream (*.mpv *.m1v *.m2v);;\ {TsMuxerWindow::tr("Transport Stream"), {"ts"}},
Mpeg audio elementary stream (*.mpa);;\ {TsMuxerWindow::tr("BDAV Transport Stream"), {"m2ts", "mts", "ssif"}},
Transport Stream (*.ts);;\ {TsMuxerWindow::tr("Program Stream"), {"mpg", "mpeg", "vob", "evo"}},
BDAV Transport Stream (*.m2ts *.mts *.ssif);;\ {TsMuxerWindow::tr("Matroska audio/video files"), {"mkv", "mka", "mks"}},
Program Stream (*.mpg *.mpeg *.vob *.evo);;\ {TsMuxerWindow::tr("MP4 audio/video files"), {"mp4", "m4a", "m4v"}},
Matroska audio/video files (*.mkv *.mka *.mks);;\ {TsMuxerWindow::tr("QuickTime audio/video files"), {"mov"}},
MP4 audio/video files (*.mp4 *.m4a *.m4v);;\ {TsMuxerWindow::tr("Blu-ray play list"), {"mpls", "mpl"}},
Quick time audio/video files (*.mov);;\ {TsMuxerWindow::tr("Blu-ray PGS subtitles"), {"sup"}},
Blu-ray play list (*.mpls *.mpl);;\ {TsMuxerWindow::tr("Text subtitles"), {"srt"}},
Blu-ray PGS subtitles (*.sup);;\ {TsMuxerWindow::tr("WAVE - Uncompressed PCM audio"), {"wav", "w64"}},
Text subtitles (*.srt);;\ {TsMuxerWindow::tr("RAW LPCM Stream"), {"pcm"}}};
WAVE - Uncompressed PCM audio (*.wav *.w64);;\ std::unordered_set<std::string> uniqueExts;
RAW LPCM Stream (*.pcm);;\ for (auto &f : filters)
All files (*.*)"); {
uniqueExts.insert(std::begin(f.second), std::end(f.second));
}
std::vector<const char *> allSupportedExts;
for (auto &s : uniqueExts)
{
allSupportedExts.push_back(s.c_str());
}
filters.insert(std::begin(filters), {TsMuxerWindow::tr("All supported media files"), allSupportedExts});
return makeFileFilter(filters);
} }
QString TI_DEFAULT_TAB_NAME() { return TsMuxerWindow::tr("General track options"); } QString TI_DEFAULT_TAB_NAME() { return TsMuxerWindow::tr("General track options"); }
QString TI_DEMUX_TAB_NAME() { return TsMuxerWindow::tr("Demux options"); } QString TI_DEMUX_TAB_NAME() { return TsMuxerWindow::tr("Demux options"); }
QString TS_SAVE_DIALOG_FILTER() { return TsMuxerWindow::tr("Transport stream (*.ts);;all files (*.*)"); } QString TS_SAVE_DIALOG_FILTER() { return makeFileFilter({{TsMuxerWindow::tr("Transport Stream"), {"ts"}}}); }
QString M2TS_SAVE_DIALOG_FILTER() { return TsMuxerWindow::tr("BDAV Transport Stream (*.m2ts);;all files (*.*)"); } QString M2TS_SAVE_DIALOG_FILTER()
{
return makeFileFilter({{TsMuxerWindow::tr("BDAV Transport Stream"), {"m2ts", "mts", "ssif"}}});
}
QString ISO_SAVE_DIALOG_FILTER() { return TsMuxerWindow::tr("Disk image (*.iso);;all files (*.*)"); } QString ISO_SAVE_DIALOG_FILTER() { return makeFileFilter({{TsMuxerWindow::tr("Disk image"), {"iso"}}}); }
QSettings *settings = nullptr; QSettings *settings = nullptr;