Added support for Opus Audio Codec, based on Opus-Tools v0.1.3 (2012-07-10) by Xiph.org/Mozilla
This commit is contained in:
parent
a49c58a96a
commit
fcceeeaaac
@ -399,6 +399,7 @@ del "$(TargetDir)imageformats\q???d4.dll"
|
||||
<ClCompile Include="src\Decoder_MAC.cpp" />
|
||||
<ClCompile Include="src\Decoder_MP3.cpp" />
|
||||
<ClCompile Include="src\Decoder_Musepack.cpp" />
|
||||
<ClCompile Include="src\Decoder_Opus.cpp" />
|
||||
<ClCompile Include="src\Decoder_Shorten.cpp" />
|
||||
<ClCompile Include="src\Decoder_Speex.cpp" />
|
||||
<ClCompile Include="src\Decoder_TTA.cpp" />
|
||||
@ -424,6 +425,7 @@ del "$(TargetDir)imageformats\q???d4.dll"
|
||||
<ClCompile Include="src\Encoder_DCA.cpp" />
|
||||
<ClCompile Include="src\Encoder_FLAC.cpp" />
|
||||
<ClCompile Include="src\Encoder_MP3.cpp" />
|
||||
<ClCompile Include="src\Encoder_Opus.cpp" />
|
||||
<ClCompile Include="src\Encoder_Vorbis.cpp" />
|
||||
<ClCompile Include="src\Encoder_Wave.cpp" />
|
||||
<ClCompile Include="src\Filter_Abstract.cpp" />
|
||||
@ -479,6 +481,7 @@ del "$(TargetDir)imageformats\q???d4.dll"
|
||||
<ClCompile Include="tmp\MOC_Encoder_DCA.cpp" />
|
||||
<ClCompile Include="tmp\MOC_Encoder_FLAC.cpp" />
|
||||
<ClCompile Include="tmp\MOC_Encoder_MP3.cpp" />
|
||||
<ClCompile Include="tmp\MOC_Encoder_Opus.cpp" />
|
||||
<ClCompile Include="tmp\MOC_Encoder_Vorbis.cpp" />
|
||||
<ClCompile Include="tmp\MOC_Encoder_Wave.cpp" />
|
||||
<ClCompile Include="tmp\MOC_Filter_Abstract.cpp" />
|
||||
@ -519,9 +522,9 @@ del "$(TargetDir)imageformats\q???d4.dll"
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">"$(QTDIR5)\qtbase\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static_Qt5|Win32'">"$(QTDIR5)\qtbase\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static_Qt5|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
@ -585,9 +588,9 @@ del "$(TargetDir)imageformats\q???d4.dll"
|
||||
<ClInclude Include="src\Decoder_Avisynth.h" />
|
||||
<CustomBuild Include="src\Encoder_AAC_FHG.h">
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">"$(QTDIR5)\qtbase\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static_Qt5|Win32'">"$(QTDIR5)\qtbase\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static_Qt5|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
@ -647,15 +650,15 @@ del "$(TargetDir)imageformats\q???d4.dll"
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Static_Qt5|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">"$(QTDIR5)\qtbase\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static_Qt5|Win32'">"$(QTDIR5)\qtbase\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static_Qt5|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="src\Encoder_DCA.h">
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">"$(QTDIR5)\qtbase\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static_Qt5|Win32'">"$(QTDIR5)\qtbase\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static_Qt5|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
@ -702,6 +705,24 @@ del "$(TargetDir)imageformats\q???d4.dll"
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="src\Encoder_Opus.h">
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static_Qt5|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Static_Qt5|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Static_Qt5|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<ClInclude Include="src\Decoder_Opus.h" />
|
||||
<ClInclude Include="src\Tools.h" />
|
||||
<CustomBuild Include="src\Tool_WaveProperties.h">
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
@ -948,121 +969,103 @@ del "$(TargetDir)imageformats\q???d4.dll"
|
||||
<CustomBuild Include="src\Encoder_AAC.h">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"
|
||||
</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">"$(QTDIR5)\qtbase\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Static_Qt5|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"
|
||||
</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static_Qt5|Win32'">"$(QTDIR5)\qtbase\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static_Qt5|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Static_Qt5|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"
|
||||
</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="src\Encoder_Abstract.h">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"
|
||||
</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">"$(QTDIR5)\qtbase\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Static_Qt5|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"
|
||||
</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static_Qt5|Win32'">"$(QTDIR5)\qtbase\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static_Qt5|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Static_Qt5|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"
|
||||
</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="src\Encoder_FLAC.h">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"
|
||||
</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">"$(QTDIR5)\qtbase\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Static_Qt5|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"
|
||||
</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static_Qt5|Win32'">"$(QTDIR5)\qtbase\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static_Qt5|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Static_Qt5|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"
|
||||
</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="src\Encoder_MP3.h">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"
|
||||
</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">"$(QTDIR5)\qtbase\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Static_Qt5|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"
|
||||
</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static_Qt5|Win32'">"$(QTDIR5)\qtbase\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static_Qt5|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Static_Qt5|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"
|
||||
</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="src\Encoder_Vorbis.h">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"
|
||||
</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">"$(QTDIR5)\qtbase\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Static_Qt5|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"
|
||||
</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static_Qt5|Win32'">"$(QTDIR5)\qtbase\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static_Qt5|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Static_Qt5|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"
|
||||
</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="src\Encoder_Wave.h">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"
|
||||
</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">"$(QTDIR5)\qtbase\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug_Qt5|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Static_Qt5|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"
|
||||
</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static_Qt5|Win32'">"$(QTDIR5)\qtbase\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static_Qt5|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Static_Qt5|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"
|
||||
</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="src\Filter_Abstract.h">
|
||||
|
@ -364,6 +364,15 @@
|
||||
<ClCompile Include="tmp\MOC_Thread_FileAnalyzer_ST.cpp">
|
||||
<Filter>Generated Files\MOC</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\Encoder_Opus.cpp">
|
||||
<Filter>Source Files\Encoders</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="tmp\MOC_Encoder_Opus.cpp">
|
||||
<Filter>Generated Files\MOC</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\Decoder_Opus.cpp">
|
||||
<Filter>Source Files\Decoders</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="src\Config.h">
|
||||
@ -489,6 +498,9 @@
|
||||
<ClInclude Include="src\Tools.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\Decoder_Opus.h">
|
||||
<Filter>Header Files\Decoders</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="LameXP.rc" />
|
||||
@ -671,6 +683,9 @@
|
||||
<CustomBuild Include="src\Thread_FileAnalyzer_ST.h">
|
||||
<Filter>Header Files\Threads</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="src\Encoder_Opus.h">
|
||||
<Filter>Header Files\Encoders</Filter>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="res\MainIcon.ico" />
|
||||
|
@ -17,8 +17,9 @@ a:visited { color: #0000EE; }
|
||||
<h3>LameXP - Version History</h3><br>
|
||||
|
||||
<a name="4.05"></a>Changes between v4.04 and v4.05 [<font color="darkred">unreleased</font>]:<br><ul>
|
||||
<li>Added support for Opus Audio Codec, based on Opus-Tools v0.1.3 (2012-07-10) by Xiph.org/Mozilla
|
||||
<li>Added Swedish translation, thanks to Åke Engelbrektson <eson57@gmail.com>
|
||||
<li>Updated Qt runtime libraries to v4.8.2 (2012-04-26), compiled with MSVC 10.0
|
||||
<li>Updated Qt runtime libraries to v4.8.2 (2012-05-22), compiled with MSVC 10.0
|
||||
<li>Updated mpg123 decoder to v1.14.3 (2012-07-01), compiled with GCC 4.6.1
|
||||
<li>Updated MediaInfo to v0.7.58 (2012-05-28), compiled with ICL 12.1.7 and MSVC 10.0
|
||||
<li>Implemented multi-threading in file analyzer for faster file import (about 2.5x to 6.0x faster!)
|
||||
|
@ -123,6 +123,7 @@ Currently the following output formats are supported by LameXP:<br><ul>
|
||||
<li>ATSC A/52 (aka "AC-3"), using the <a href="http://aften.sourceforge.net/" target="_blank">Aften</a> encoder [built-in]
|
||||
<li>DCA, using the <a href="https://gitorious.org/dtsenc" target="_blank">DCA Enc</a> encoder (still experimental) [built-in]
|
||||
<li>Free Lossless Audio Codec (<a href="http://flac.sourceforge.net/" target="_blank">FLAC</a>) [built-in]
|
||||
<li>Opus Audio Codec, using the <a href="http://www.opus-codec.org/" target="_blank">Opus-Tools</a> by Xiph.org/Mozilla [built-in]
|
||||
<li>Uncompressed PCM / Waveform Audio File (WAV/RIFF)</ul>
|
||||
|
||||
<br><br>
|
||||
@ -143,6 +144,7 @@ Currently the following input formats are supported by LameXP:<br><ul>
|
||||
<li>MPEG Audio-Layer II (MP2), using mpg123 decoder [built-in]
|
||||
<li>MPEG Audio-Layer III (MP3), using mpg123 decoder [built-in]
|
||||
<li>Musepack
|
||||
<li>Opus Audio Codec
|
||||
<li>Shorten
|
||||
<li>Speex
|
||||
<li>Sun/NeXT Au
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -682,18 +682,6 @@
|
||||
<source> Encoder / Format </source>
|
||||
<translation> Kodierer / Format </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lame MP3</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ogg Vorbis</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wave (PCM)</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>FLAC</source>
|
||||
<translation></translation>
|
||||
@ -1458,10 +1446,6 @@
|
||||
<source>LameXP will <i>not</i> check for Beta (pre-release) updates from now on.</source>
|
||||
<translation>LameXP wird fortan <i>nicht</i> nach Beta (Entwickler) Updates suchen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Aften A/52</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lame MP3:</source>
|
||||
<translation></translation>
|
||||
@ -1686,10 +1670,6 @@
|
||||
<source>Bookmark Current Output Folder</source>
|
||||
<translation>Lesezeichen für aktuelles Verzeichnis hinzufügen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>MPEG-4 AAC</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>AAC Encoder-Options</source>
|
||||
<translation>AAC-Kodierer Optionen</translation>
|
||||
@ -1754,10 +1734,6 @@
|
||||
<source>Skipping update check this time, please be patient...</source>
|
||||
<translation>Update-Überprüfung wird übersprungen, bitte warten...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DCA Enc</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export Meta Tags to CSV File</source>
|
||||
<translation>Metatags als CSV-Datei exportieren</translation>
|
||||
@ -1858,6 +1834,34 @@
|
||||
<source>Refresh Directory Outline</source>
|
||||
<translation>Verzeichnisbaum aktualisieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>MP3</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ogg/Vorbis</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>AAC/MP4</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>PCM/Wave</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>A/52</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DCA</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Opus</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MetaInfo</name>
|
||||
|
@ -681,18 +681,6 @@
|
||||
<source> Encoder / Format </source>
|
||||
<translation>Codificador / Formato </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lame MP3</source>
|
||||
<translation>Lame MP3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ogg Vorbis</source>
|
||||
<translation>Ogg Vorbis</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wave (PCM)</source>
|
||||
<translation>Wav (PCM)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>FLAC</source>
|
||||
<translation>FLAC</translation>
|
||||
@ -1457,10 +1445,6 @@
|
||||
<source>LameXP will <i>not</i> check for Beta (pre-release) updates from now on.</source>
|
||||
<translation>LameXP <i>no</i>comprobará en busca de versiones Beta (pre-release).</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Aften A/52</source>
|
||||
<translation>Aften A/52</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lame MP3:</source>
|
||||
<translation>Lame MP3:</translation>
|
||||
@ -1685,10 +1669,6 @@
|
||||
<source>Bookmark Current Output Folder</source>
|
||||
<translation>Marcar la carpeta de salida actual</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>MPEG-4 AAC</source>
|
||||
<translation>MPEG-4 AAC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>AAC Encoder-Options</source>
|
||||
<translation>Opciones AAC</translation>
|
||||
@ -1753,10 +1733,6 @@
|
||||
<source>Skipping update check this time, please be patient...</source>
|
||||
<translation>Saltando la comprobación de actualizaciones, por favor espere...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DCA Enc</source>
|
||||
<translation>DCA Enc</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export Meta Tags to CSV File</source>
|
||||
<translation>Exportar Meta-Etiquetas a un archivo CSV</translation>
|
||||
@ -1857,6 +1833,34 @@
|
||||
<source>Refresh Directory Outline</source>
|
||||
<translation>Actualizar esquema de directorios</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>MP3</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ogg/Vorbis</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>AAC/MP4</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>PCM/Wave</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>A/52</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DCA</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Opus</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MetaInfo</name>
|
||||
|
@ -686,18 +686,6 @@
|
||||
<source> Encoder / Format </source>
|
||||
<translation>Encodeur/Format</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lame MP3</source>
|
||||
<translation>Lame MP3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ogg Vorbis</source>
|
||||
<translation>Ogg Vorbis</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wave (PCM)</source>
|
||||
<translation>Wave (PCM)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>FLAC</source>
|
||||
<translation>FLAC</translation>
|
||||
@ -1467,10 +1455,6 @@ Ouvrir le dossier récursivement...</translation>
|
||||
<source>LameXP will <i>not</i> check for Beta (pre-release) updates from now on.</source>
|
||||
<translation>Désormais LameXP ne vérifiera <i>pas</i> les mises à jour Beta.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Aften A/52</source>
|
||||
<translation>Aften A/52</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lame MP3:</source>
|
||||
<translation>Lame MP3 :</translation>
|
||||
@ -1695,10 +1679,6 @@ Ouvrir le dossier récursivement...</translation>
|
||||
<source>Bookmark Current Output Folder</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>MPEG-4 AAC</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>AAC Encoder-Options</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@ -1763,10 +1743,6 @@ Ouvrir le dossier récursivement...</translation>
|
||||
<source>Skipping update check this time, please be patient...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DCA Enc</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export Meta Tags to CSV File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@ -1867,6 +1843,34 @@ Ouvrir le dossier récursivement...</translation>
|
||||
<source>Refresh Directory Outline</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>MP3</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ogg/Vorbis</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>AAC/MP4</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>PCM/Wave</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>A/52</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DCA</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Opus</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MetaInfo</name>
|
||||
|
@ -682,18 +682,6 @@
|
||||
<source> Encoder / Format </source>
|
||||
<translation>Encoder / Formato</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lame MP3</source>
|
||||
<translation>Lame MP3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ogg Vorbis</source>
|
||||
<translation>Ogg Vorbis</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wave (PCM)</source>
|
||||
<translation>Wave (PCM)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>FLAC</source>
|
||||
<translation>FLAC</translation>
|
||||
@ -1458,10 +1446,6 @@
|
||||
<source>LameXP will <i>not</i> check for Beta (pre-release) updates from now on.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Aften A/52</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lame MP3:</source>
|
||||
<translation type="unfinished">Lame MP3:</translation>
|
||||
@ -1686,10 +1670,6 @@
|
||||
<source>Bookmark Current Output Folder</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>MPEG-4 AAC</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>AAC Encoder-Options</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@ -1754,10 +1734,6 @@
|
||||
<source>Skipping update check this time, please be patient...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DCA Enc</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export Meta Tags to CSV File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@ -1858,6 +1834,34 @@
|
||||
<source>Refresh Directory Outline</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>MP3</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ogg/Vorbis</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>AAC/MP4</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>PCM/Wave</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>A/52</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DCA</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Opus</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MetaInfo</name>
|
||||
|
@ -681,18 +681,6 @@
|
||||
<source> Encoder / Format </source>
|
||||
<translation type="unfinished"> 인코더 / 형식 </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lame MP3</source>
|
||||
<translation type="unfinished">Lame MP3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ogg Vorbis</source>
|
||||
<translation type="unfinished">Ogg Vorbis</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wave (PCM)</source>
|
||||
<translation type="unfinished">Wave (PCM)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>FLAC</source>
|
||||
<translation type="unfinished">FLAC</translation>
|
||||
@ -1457,10 +1445,6 @@
|
||||
<source>LameXP will <i>not</i> check for Beta (pre-release) updates from now on.</source>
|
||||
<translation type="unfinished">지금부터 LameXP가 베타 버전(pre-release) 업데이트를 <i>확인하지 않습니다</i>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Aften A/52</source>
|
||||
<translation type="unfinished">Aften A/52</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lame MP3:</source>
|
||||
<translation type="unfinished">Lame MP3:</translation>
|
||||
@ -1685,10 +1669,6 @@
|
||||
<source>Bookmark Current Output Folder</source>
|
||||
<translation type="unfinished">현재 출력 폴더 북마트</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>MPEG-4 AAC</source>
|
||||
<translation type="unfinished">MPEG-4 AAC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>AAC Encoder-Options</source>
|
||||
<translation type="unfinished">AAC Encoder-옵션</translation>
|
||||
@ -1753,10 +1733,6 @@
|
||||
<source>Skipping update check this time, please be patient...</source>
|
||||
<translation type="unfinished">이 번에 업데이트 확인 건너뛰는 중, 잠시만 기다려 주십시오...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DCA Enc</source>
|
||||
<translation type="unfinished">DCA Enc</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export Meta Tags to CSV File</source>
|
||||
<translation type="unfinished">CSV 파일로 메타 태그 내보내기</translation>
|
||||
@ -1857,6 +1833,34 @@
|
||||
<source>Refresh Directory Outline</source>
|
||||
<translation type="unfinished">디렉토리 목록 새로 고침</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>MP3</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ogg/Vorbis</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>AAC/MP4</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>PCM/Wave</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>A/52</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DCA</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Opus</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MetaInfo</name>
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -684,18 +684,6 @@
|
||||
<source> Encoder / Format </source>
|
||||
<translation type="unfinished">Кодер / Формат</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lame MP3</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ogg Vorbis</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wave (PCM)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>FLAC</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@ -1462,10 +1450,6 @@
|
||||
<source>LameXP will <i>not</i> check for Beta (pre-release) updates from now on.</source>
|
||||
<translation type="unfinished">LameXP не бует <i>проверять</i> наличие БЕТА (пред-релизных) обновлений.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Aften A/52</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lame MP3:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@ -1691,10 +1675,6 @@
|
||||
<source>Bookmark Current Output Folder</source>
|
||||
<translation type="unfinished">Запомнить текущую выходную папку</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>MPEG-4 AAC</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>AAC Encoder-Options</source>
|
||||
<translation type="unfinished">Параметры кодера AAC</translation>
|
||||
@ -1759,10 +1739,6 @@
|
||||
<source>Skipping update check this time, please be patient...</source>
|
||||
<translation type="unfinished">Пропуск проверки обновлений, пожалуйста подождите...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DCA Enc</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export Meta Tags to CSV File</source>
|
||||
<translation type="unfinished">Экспорт Meta-тегов в файл CSV</translation>
|
||||
@ -1863,6 +1839,34 @@
|
||||
<source>Refresh Directory Outline</source>
|
||||
<translation>Обновить</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>MP3</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ogg/Vorbis</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>AAC/MP4</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>PCM/Wave</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>A/52</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DCA</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Opus</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MetaInfo</name>
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -681,18 +681,6 @@
|
||||
<source> Encoder / Format </source>
|
||||
<translation>編碼器/格式</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lame MP3</source>
|
||||
<translation>Lame MP3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ogg Vorbis</source>
|
||||
<translation>Ogg Vorbis</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wave (PCM)</source>
|
||||
<translation>Wav (PCM)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>FLAC</source>
|
||||
<translation>FLAC</translation>
|
||||
@ -1457,10 +1445,6 @@
|
||||
<source>LameXP will <i>not</i> check for Beta (pre-release) updates from now on.</source>
|
||||
<translation>LameXP 將 <i> 從今以后 </i> 不檢查測試版更新.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Aften A/52</source>
|
||||
<translation>Aften A/52</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lame MP3:</source>
|
||||
<translation>Lame MP3:</translation>
|
||||
@ -1685,10 +1669,6 @@
|
||||
<source>Bookmark Current Output Folder</source>
|
||||
<translation>收藏當前輸出文件夾</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>MPEG-4 AAC</source>
|
||||
<translation>MPEG-4 AAC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>AAC Encoder-Options</source>
|
||||
<translation>AAC 編碼器-選項</translation>
|
||||
@ -1753,10 +1733,6 @@
|
||||
<source>Skipping update check this time, please be patient...</source>
|
||||
<translation>跳過檢查更新的時間,請耐心等待...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DCA Enc</source>
|
||||
<translation>DCA Enc</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export Meta Tags to CSV File</source>
|
||||
<translation>Meta標簽導出到CSV文件</translation>
|
||||
@ -1857,6 +1833,34 @@
|
||||
<source>Refresh Directory Outline</source>
|
||||
<translation>刷新輸出目錄列表</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>MP3</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ogg/Vorbis</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>AAC/MP4</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>PCM/Wave</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>A/52</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DCA</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Opus</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MetaInfo</name>
|
||||
|
@ -682,18 +682,6 @@
|
||||
<source> Encoder / Format </source>
|
||||
<translation> Кодер / Формат </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lame MP3</source>
|
||||
<translation>Lame MP3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ogg Vorbis</source>
|
||||
<translation>Ogg Vorbis</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wave (PCM)</source>
|
||||
<translation>Wave (PCM)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>FLAC</source>
|
||||
<translation>FLAC</translation>
|
||||
@ -1430,10 +1418,6 @@
|
||||
<source>Cannot write to the selected directory. Please choose another directory!</source>
|
||||
<translation>Не можливо вести запис до обраної теки. Будь ласка, оберіть іншу!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Aften A/52</source>
|
||||
<translation>Aften A/52</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lame MP3:</source>
|
||||
<translation>Lame MP3:</translation>
|
||||
@ -1686,10 +1670,6 @@
|
||||
<source>Bookmark Current Output Folder</source>
|
||||
<translation>Додати поточну теку до закладок</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>MPEG-4 AAC</source>
|
||||
<translation>MPEG-4 AAC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>AAC Encoder-Options</source>
|
||||
<translation>Налаштування кодера AAC</translation>
|
||||
@ -1754,10 +1734,6 @@
|
||||
<source>Skipping update check this time, please be patient...</source>
|
||||
<translation>Наразі йде переривання перевірки оновлень, будь ласка, зачекайте...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DCA Enc</source>
|
||||
<translation>DCA Enc</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export Meta Tags to CSV File</source>
|
||||
<translation>Експортувати метадані до файлу CSV</translation>
|
||||
@ -1858,6 +1834,34 @@
|
||||
<source>Refresh Directory Outline</source>
|
||||
<translation>Поновити структуру тек</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>MP3</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ogg/Vorbis</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>AAC/MP4</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>PCM/Wave</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>A/52</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DCA</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Opus</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MetaInfo</name>
|
||||
|
@ -681,18 +681,6 @@
|
||||
<source> Encoder / Format </source>
|
||||
<translation>编码器/格式</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lame MP3</source>
|
||||
<translation>Lame MP3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ogg Vorbis</source>
|
||||
<translation>Ogg Vorbis</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wave (PCM)</source>
|
||||
<translation>Wav (PCM)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>FLAC</source>
|
||||
<translation>FLAC</translation>
|
||||
@ -1457,10 +1445,6 @@
|
||||
<source>LameXP will <i>not</i> check for Beta (pre-release) updates from now on.</source>
|
||||
<translation>LameXP 将 <i> 从今以后 </i> 不检查测试版更新.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Aften A/52</source>
|
||||
<translation>Aften A/52</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lame MP3:</source>
|
||||
<translation>Lame MP3:</translation>
|
||||
@ -1685,10 +1669,6 @@
|
||||
<source>Bookmark Current Output Folder</source>
|
||||
<translation>收藏当前输出文件夹</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>MPEG-4 AAC</source>
|
||||
<translation>MPEG-4 AAC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>AAC Encoder-Options</source>
|
||||
<translation>AAC 编码器-选项</translation>
|
||||
@ -1753,10 +1733,6 @@
|
||||
<source>Skipping update check this time, please be patient...</source>
|
||||
<translation>跳过检查更新的时间,请耐心等待...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DCA Enc</source>
|
||||
<translation>DCA Enc</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export Meta Tags to CSV File</source>
|
||||
<translation>Meta标签导出到CSV文件</translation>
|
||||
@ -1857,6 +1833,34 @@
|
||||
<source>Refresh Directory Outline</source>
|
||||
<translation>刷新输出目录列表</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>MP3</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ogg/Vorbis</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>AAC/MP4</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>PCM/Wave</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>A/52</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DCA</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Opus</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MetaInfo</name>
|
||||
|
@ -787,7 +787,7 @@
|
||||
<item row="0" column="1">
|
||||
<widget class="QRadioButton" name="radioButtonEncoderMP3">
|
||||
<property name="text">
|
||||
<string>Lame MP3</string>
|
||||
<string>MP3</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
@ -797,21 +797,21 @@
|
||||
<item row="0" column="3">
|
||||
<widget class="QRadioButton" name="radioButtonEncoderVorbis">
|
||||
<property name="text">
|
||||
<string>Ogg Vorbis</string>
|
||||
<string>Ogg/Vorbis</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="5">
|
||||
<widget class="QRadioButton" name="radioButtonEncoderAAC">
|
||||
<property name="text">
|
||||
<string>MPEG-4 AAC</string>
|
||||
<string>AAC/MP4</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="15">
|
||||
<item row="0" column="17">
|
||||
<widget class="QRadioButton" name="radioButtonEncoderPCM">
|
||||
<property name="text">
|
||||
<string>Wave (PCM)</string>
|
||||
<string>PCM/Wave</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -831,17 +831,17 @@
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="9">
|
||||
<item row="0" column="11">
|
||||
<widget class="QRadioButton" name="radioButtonEncoderAC3">
|
||||
<property name="text">
|
||||
<string>Aften A/52</string>
|
||||
<string>A/52</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="13">
|
||||
<item row="0" column="15">
|
||||
<widget class="QRadioButton" name="radioButtonEncoderDCA">
|
||||
<property name="text">
|
||||
<string>DCA Enc</string>
|
||||
<string>DCA</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -884,7 +884,7 @@
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="12">
|
||||
<item row="0" column="14">
|
||||
<spacer name="horizontalSpacer_49">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
@ -897,7 +897,7 @@
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="14">
|
||||
<item row="0" column="16">
|
||||
<spacer name="horizontalSpacer_50">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
@ -910,7 +910,7 @@
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="16">
|
||||
<item row="0" column="18">
|
||||
<spacer name="horizontalSpacer_51">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
@ -943,6 +943,26 @@
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="9">
|
||||
<widget class="QRadioButton" name="radioButtonEncoderOpus">
|
||||
<property name="text">
|
||||
<string>Opus</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="10">
|
||||
<spacer name="horizontalSpacer_55">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>1</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
@ -1303,8 +1323,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>602</width>
|
||||
<height>1515</height>
|
||||
<width>604</width>
|
||||
<height>1524</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_22">
|
||||
@ -4102,6 +4122,8 @@
|
||||
<include location="../res/Icons.qrc"/>
|
||||
<include location="../res/Icons.qrc"/>
|
||||
<include location="../res/Icons.qrc"/>
|
||||
<include location="../res/Icons.qrc"/>
|
||||
<include location="../res/Icons.qrc"/>
|
||||
</resources>
|
||||
<connections>
|
||||
<connection>
|
||||
|
@ -8,6 +8,7 @@
|
||||
<file>tools/mpcdec.exe</file>
|
||||
<file>tools/mpg123.exe</file>
|
||||
<file>tools/oggdec.exe</file>
|
||||
<file>tools/opusdec.exe</file>
|
||||
<file>tools/shorten.exe</file>
|
||||
<file>tools/speexdec.exe</file>
|
||||
<file>tools/tta.exe</file>
|
||||
|
@ -11,5 +11,6 @@
|
||||
<file>tools/oggenc2.i386.exe</file>
|
||||
<file>tools/oggenc2.sse2.exe</file>
|
||||
<file>tools/oggenc2.x64.exe</file>
|
||||
<file>tools/opusenc.exe</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
res/tools/opusdec.exe
Normal file
BIN
res/tools/opusdec.exe
Normal file
Binary file not shown.
BIN
res/tools/opusenc.exe
Normal file
BIN
res/tools/opusenc.exe
Normal file
Binary file not shown.
@ -29,8 +29,8 @@
|
||||
#define VER_LAMEXP_MINOR_HI 0
|
||||
#define VER_LAMEXP_MINOR_LO 5
|
||||
#define VER_LAMEXP_TYPE Alpha
|
||||
#define VER_LAMEXP_PATCH 7
|
||||
#define VER_LAMEXP_BUILD 1050
|
||||
#define VER_LAMEXP_PATCH 8
|
||||
#define VER_LAMEXP_BUILD 1052
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Tool versions (minimum expected versions!)
|
||||
|
@ -59,7 +59,7 @@ bool ALACDecoder::decode(const QString &sourceFile, const QString &outputFile, v
|
||||
bool bAborted = false;
|
||||
|
||||
//The ALAC Decoder doesn't actually send any status updates :-[
|
||||
emit statusUpdated(20 + (QUuid::createUuid().data1 % 80));
|
||||
emit statusUpdated(20 + (QUuid::createUuid().data1 % 60));
|
||||
|
||||
while(process.state() != QProcess::NotRunning)
|
||||
{
|
||||
|
154
src/Decoder_Opus.cpp
Normal file
154
src/Decoder_Opus.cpp
Normal file
@ -0,0 +1,154 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// LameXP - Audio Encoder Front-End
|
||||
// Copyright (C) 2004-2012 LoRd_MuldeR <MuldeR2@GMX.de>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation; either version 2 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
//
|
||||
// http://www.gnu.org/licenses/gpl-2.0.txt
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "Decoder_Opus.h"
|
||||
|
||||
#include "Global.h"
|
||||
|
||||
#include <QDir>
|
||||
#include <QProcess>
|
||||
#include <QRegExp>
|
||||
#include <QUuid>
|
||||
|
||||
OpusDecoder::OpusDecoder(void)
|
||||
:
|
||||
m_binary(lamexp_lookup_tool("opusdec.exe"))
|
||||
{
|
||||
if(m_binary.isEmpty())
|
||||
{
|
||||
throw "Error initializing Opus decoder. Tool 'opusdec.exe' is not registred!";
|
||||
}
|
||||
}
|
||||
|
||||
OpusDecoder::~OpusDecoder(void)
|
||||
{
|
||||
}
|
||||
|
||||
bool OpusDecoder::decode(const QString &sourceFile, const QString &outputFile, volatile bool *abortFlag)
|
||||
{
|
||||
QProcess process;
|
||||
QStringList args;
|
||||
|
||||
args << QDir::toNativeSeparators(sourceFile);
|
||||
args << QDir::toNativeSeparators(outputFile);
|
||||
|
||||
if(!startProcess(process, m_binary, args))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool bTimeout = false;
|
||||
bool bAborted = false;
|
||||
int prevProgress = -1;
|
||||
|
||||
//QRegExp regExp("\\s+Time:\\s+(\\d+):(\\d+)\\.(\\d+)\\s+\\[(\\d+):(\\d+)\\.(\\d+)\\],");
|
||||
|
||||
//The ALAC Decoder doesn't actually send any status updates :-[
|
||||
emit statusUpdated(20 + (QUuid::createUuid().data1 % 60));
|
||||
|
||||
while(process.state() != QProcess::NotRunning)
|
||||
{
|
||||
if(*abortFlag)
|
||||
{
|
||||
process.kill();
|
||||
bAborted = true;
|
||||
emit messageLogged("\nABORTED BY USER !!!");
|
||||
break;
|
||||
}
|
||||
process.waitForReadyRead(m_processTimeoutInterval);
|
||||
if(!process.bytesAvailable() && process.state() == QProcess::Running)
|
||||
{
|
||||
process.kill();
|
||||
qWarning("opusdec process timed out <-- killing!");
|
||||
emit messageLogged("\nPROCESS TIMEOUT !!!");
|
||||
bTimeout = true;
|
||||
break;
|
||||
}
|
||||
while(process.bytesAvailable() > 0)
|
||||
{
|
||||
QByteArray line = process.readLine();
|
||||
QString text = QString::fromUtf8(line.constData()).simplified();
|
||||
/* if(regExp.lastIndexIn(text) >= 0)
|
||||
{
|
||||
int values[6];
|
||||
for(int i = 0; i < 6; i++)
|
||||
{
|
||||
bool ok = false;
|
||||
int temp = regExp.cap(i+1).toInt(&ok);
|
||||
values[i] = (ok ? temp : 0);
|
||||
}
|
||||
int timeDone = (60 * values[0]) + values[1];
|
||||
int timeLeft = (60 * values[3]) + values[4];
|
||||
if(timeDone > 0 || timeLeft > 0)
|
||||
{
|
||||
int newProgress = qRound((static_cast<double>(timeDone) / static_cast<double>(timeDone + timeLeft)) * 100.0);
|
||||
if(newProgress > prevProgress)
|
||||
{
|
||||
emit statusUpdated(newProgress);
|
||||
prevProgress = qMin(newProgress + 2, 99);
|
||||
}
|
||||
}
|
||||
} */
|
||||
if(!text.isEmpty())
|
||||
{
|
||||
emit messageLogged(text);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
process.waitForFinished();
|
||||
if(process.state() != QProcess::NotRunning)
|
||||
{
|
||||
process.kill();
|
||||
process.waitForFinished(-1);
|
||||
}
|
||||
|
||||
emit statusUpdated(100);
|
||||
emit messageLogged(QString().sprintf("\nExited with code: 0x%04X", process.exitCode()));
|
||||
|
||||
if(bTimeout || bAborted || process.exitCode() != EXIT_SUCCESS)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OpusDecoder::isFormatSupported(const QString &containerType, const QString &containerProfile, const QString &formatType, const QString &formatProfile, const QString &formatVersion)
|
||||
{
|
||||
if(containerType.compare("OGG", Qt::CaseInsensitive) == 0)
|
||||
{
|
||||
if(formatType.compare("Opus", Qt::CaseInsensitive) == 0)
|
||||
{
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
QStringList OpusDecoder::supportedTypes(void)
|
||||
{
|
||||
return QStringList() << "Opus Audio Codec (*.opus *.ogg)";
|
||||
}
|
||||
|
38
src/Decoder_Opus.h
Normal file
38
src/Decoder_Opus.h
Normal file
@ -0,0 +1,38 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// LameXP - Audio Encoder Front-End
|
||||
// Copyright (C) 2004-2012 LoRd_MuldeR <MuldeR2@GMX.de>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation; either version 2 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
//
|
||||
// http://www.gnu.org/licenses/gpl-2.0.txt
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "Decoder_Abstract.h"
|
||||
|
||||
class OpusDecoder : public AbstractDecoder
|
||||
{
|
||||
public:
|
||||
OpusDecoder(void);
|
||||
~OpusDecoder(void);
|
||||
|
||||
virtual bool decode(const QString &sourceFile, const QString &outputFile, volatile bool *abortFlag);
|
||||
static bool isFormatSupported(const QString &containerType, const QString &containerProfile, const QString &formatType, const QString &formatProfile, const QString &formatVersion);
|
||||
static QStringList supportedTypes(void);
|
||||
|
||||
private:
|
||||
const QString m_binary;
|
||||
};
|
@ -226,6 +226,7 @@ MainWindow::MainWindow(FileListModel *fileListModel, AudioFileModel *metaInfo, S
|
||||
m_encoderButtonGroup->addButton(radioButtonEncoderAAC, SettingsModel::AACEncoder);
|
||||
m_encoderButtonGroup->addButton(radioButtonEncoderAC3, SettingsModel::AC3Encoder);
|
||||
m_encoderButtonGroup->addButton(radioButtonEncoderFLAC, SettingsModel::FLACEncoder);
|
||||
m_encoderButtonGroup->addButton(radioButtonEncoderOpus, SettingsModel::OpusEncoder);
|
||||
m_encoderButtonGroup->addButton(radioButtonEncoderDCA, SettingsModel::DCAEncoder);
|
||||
m_encoderButtonGroup->addButton(radioButtonEncoderPCM, SettingsModel::PCMEncoder);
|
||||
m_modeButtonGroup = new QButtonGroup(this);
|
||||
@ -238,6 +239,7 @@ MainWindow::MainWindow(FileListModel *fileListModel, AudioFileModel *metaInfo, S
|
||||
radioButtonEncoderAAC->setChecked((m_settings->compressionEncoder() == SettingsModel::AACEncoder) && (m_neroEncoderAvailable || m_fhgEncoderAvailable || m_qaacEncoderAvailable));
|
||||
radioButtonEncoderAC3->setChecked(m_settings->compressionEncoder() == SettingsModel::AC3Encoder);
|
||||
radioButtonEncoderFLAC->setChecked(m_settings->compressionEncoder() == SettingsModel::FLACEncoder);
|
||||
radioButtonEncoderOpus->setChecked(m_settings->compressionEncoder() == SettingsModel::OpusEncoder);
|
||||
radioButtonEncoderDCA->setChecked(m_settings->compressionEncoder() == SettingsModel::DCAEncoder);
|
||||
radioButtonEncoderPCM->setChecked(m_settings->compressionEncoder() == SettingsModel::PCMEncoder);
|
||||
radioButtonModeQuality->setChecked(m_settings->compressionRCMode() == SettingsModel::VBRMode);
|
||||
@ -1455,6 +1457,7 @@ void MainWindow::encodeButtonClicked(void)
|
||||
case SettingsModel::AACEncoder:
|
||||
case SettingsModel::AC3Encoder:
|
||||
case SettingsModel::FLACEncoder:
|
||||
case SettingsModel::OpusEncoder:
|
||||
case SettingsModel::DCAEncoder:
|
||||
case SettingsModel::PCMEncoder:
|
||||
break;
|
||||
@ -3149,6 +3152,10 @@ void MainWindow::updateRCMode(int id)
|
||||
sliderBitrate->setMinimum(0);
|
||||
sliderBitrate->setMaximum(8);
|
||||
break;
|
||||
case SettingsModel::OpusEncoder:
|
||||
sliderBitrate->setMinimum(1);
|
||||
sliderBitrate->setMaximum(32);
|
||||
break;
|
||||
case SettingsModel::DCAEncoder:
|
||||
sliderBitrate->setMinimum(1);
|
||||
sliderBitrate->setMaximum(128);
|
||||
@ -3191,6 +3198,9 @@ void MainWindow::updateBitrate(int value)
|
||||
case SettingsModel::FLACEncoder:
|
||||
labelBitrate->setText(tr("Compression %1").arg(value));
|
||||
break;
|
||||
case SettingsModel::OpusEncoder:
|
||||
labelBitrate->setText(QString("≈ %1 kbps").arg(qMin(500, value * 8)));
|
||||
break;
|
||||
case SettingsModel::AC3Encoder:
|
||||
labelBitrate->setText(tr("Quality Level %1").arg(qMin(1024, qMax(0, value * 64))));
|
||||
break;
|
||||
|
@ -39,6 +39,7 @@
|
||||
#include "Encoder_FLAC.h"
|
||||
#include "Encoder_MP3.h"
|
||||
#include "Encoder_Vorbis.h"
|
||||
#include "Encoder_Opus.h"
|
||||
#include "Encoder_Wave.h"
|
||||
#include "Filter_Downmix.h"
|
||||
#include "Filter_Normalize.h"
|
||||
@ -835,7 +836,15 @@ AbstractEncoder *ProcessingDialog::makeEncoder(bool *nativeResampling)
|
||||
encoder = flacEncoder;
|
||||
}
|
||||
break;
|
||||
case SettingsModel::DCAEncoder:
|
||||
case SettingsModel::OpusEncoder:
|
||||
{
|
||||
OpusEncoder *opusEncoder = new OpusEncoder();
|
||||
opusEncoder->setBitrate(m_settings->compressionBitrate());
|
||||
opusEncoder->setRCMode(m_settings->compressionRCMode());
|
||||
//TODO: opusEncoder->setCustomParams(m_settings->customParametersOpus());
|
||||
encoder = opusEncoder;
|
||||
}
|
||||
break; case SettingsModel::DCAEncoder:
|
||||
{
|
||||
DCAEncoder *dcaEncoder = new DCAEncoder();
|
||||
dcaEncoder->setBitrate(m_settings->compressionBitrate());
|
||||
|
180
src/Encoder_Opus.cpp
Normal file
180
src/Encoder_Opus.cpp
Normal file
@ -0,0 +1,180 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// LameXP - Audio Encoder Front-End
|
||||
// Copyright (C) 2004-2012 LoRd_MuldeR <MuldeR2@GMX.de>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation; either version 2 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
//
|
||||
// http://www.gnu.org/licenses/gpl-2.0.txt
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "Encoder_Opus.h"
|
||||
|
||||
#include "Global.h"
|
||||
#include "Model_Settings.h"
|
||||
|
||||
#include <QProcess>
|
||||
#include <QDir>
|
||||
#include <QUUid>
|
||||
|
||||
OpusEncoder::OpusEncoder(void)
|
||||
:
|
||||
m_binary(lamexp_lookup_tool("opusenc.exe"))
|
||||
{
|
||||
if(m_binary.isEmpty())
|
||||
{
|
||||
throw "Error initializing Opus encoder. Tool 'opusenc.exe' is not registred!";
|
||||
}
|
||||
}
|
||||
|
||||
OpusEncoder::~OpusEncoder(void)
|
||||
{
|
||||
}
|
||||
|
||||
bool OpusEncoder::encode(const QString &sourceFile, const AudioFileModel &metaInfo, const QString &outputFile, volatile bool *abortFlag)
|
||||
{
|
||||
QProcess process;
|
||||
QStringList args;
|
||||
|
||||
args << "--music"; //TODO: Make other optimizations available!
|
||||
|
||||
switch(m_configRCMode)
|
||||
{
|
||||
case SettingsModel::VBRMode:
|
||||
args << "--vbr";
|
||||
break;
|
||||
case SettingsModel::ABRMode:
|
||||
args << "-cvbr";
|
||||
break;
|
||||
case SettingsModel::CBRMode:
|
||||
args << "--hard-cbr";
|
||||
break;
|
||||
default:
|
||||
throw "Bad rate-control mode!";
|
||||
break;
|
||||
}
|
||||
|
||||
args << QString("--bitrate") << QString::number(qMax(0, qMin(500, m_configBitrate * 8)));
|
||||
|
||||
if(!metaInfo.fileName().isEmpty()) args << "--title" << metaInfo.fileName();
|
||||
if(!metaInfo.fileArtist().isEmpty()) args << "--artist" << metaInfo.fileArtist();
|
||||
if(!metaInfo.fileAlbum().isEmpty()) args << "--comment" << QString("album=%1").arg(metaInfo.fileAlbum());
|
||||
if(!metaInfo.fileGenre().isEmpty()) args << "--comment" << QString("genre=%1").arg(metaInfo.fileGenre());
|
||||
if(!metaInfo.fileComment().isEmpty()) args << "--comment" << QString("comment=%1").arg(metaInfo.fileComment());
|
||||
if(metaInfo.fileYear()) args << "--comment" << QString("date=%1").arg(QString::number(metaInfo.fileYear()));
|
||||
if(metaInfo.filePosition()) args << "--comment" << QString("track=%1").arg(QString::number(metaInfo.filePosition()));
|
||||
|
||||
if(!m_configCustomParams.isEmpty()) args << m_configCustomParams.split(" ", QString::SkipEmptyParts);
|
||||
|
||||
args << QDir::toNativeSeparators(sourceFile);
|
||||
args << QDir::toNativeSeparators(outputFile);
|
||||
|
||||
if(!startProcess(process, m_binary, args))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool bTimeout = false;
|
||||
bool bAborted = false;
|
||||
int prevProgress = -1;
|
||||
|
||||
QRegExp regExp("\\[(-|\\\\|/|\\|)\\]");
|
||||
|
||||
//The Opus encoder doesn't flus it's status updates :-[
|
||||
emit statusUpdated(20 + (QUuid::createUuid().data1 % 60));
|
||||
|
||||
while(process.state() != QProcess::NotRunning)
|
||||
{
|
||||
if(*abortFlag)
|
||||
{
|
||||
process.kill();
|
||||
bAborted = true;
|
||||
emit messageLogged("\nABORTED BY USER !!!");
|
||||
break;
|
||||
}
|
||||
process.waitForReadyRead(m_processTimeoutInterval);
|
||||
if(!process.bytesAvailable() && process.state() == QProcess::Running)
|
||||
{
|
||||
process.kill();
|
||||
qWarning("Opus process timed out <-- killing!");
|
||||
emit messageLogged("\nPROCESS TIMEOUT !!!");
|
||||
bTimeout = true;
|
||||
break;
|
||||
}
|
||||
while(process.bytesAvailable() > 0)
|
||||
{
|
||||
QByteArray line = process.readLine();
|
||||
QString text = QString::fromUtf8(line.constData()).simplified();
|
||||
if(regExp.lastIndexIn(text) >= 0)
|
||||
{
|
||||
bool ok = false;
|
||||
int progress = regExp.cap(1).toInt(&ok);
|
||||
if(ok && (progress > prevProgress))
|
||||
{
|
||||
emit statusUpdated(progress);
|
||||
prevProgress = qMin(progress + 2, 99);
|
||||
}
|
||||
}
|
||||
else if(!text.isEmpty())
|
||||
{
|
||||
emit messageLogged(text);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
process.waitForFinished();
|
||||
if(process.state() != QProcess::NotRunning)
|
||||
{
|
||||
process.kill();
|
||||
process.waitForFinished(-1);
|
||||
}
|
||||
|
||||
emit statusUpdated(100);
|
||||
emit messageLogged(QString().sprintf("\nExited with code: 0x%04X", process.exitCode()));
|
||||
|
||||
if(bTimeout || bAborted || process.exitCode() != EXIT_SUCCESS)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
QString OpusEncoder::extension(void)
|
||||
{
|
||||
return "opus";
|
||||
}
|
||||
|
||||
bool OpusEncoder::isFormatSupported(const QString &containerType, const QString &containerProfile, const QString &formatType, const QString &formatProfile, const QString &formatVersion)
|
||||
{
|
||||
if(containerType.compare("Wave", Qt::CaseInsensitive) == 0)
|
||||
{
|
||||
if(formatType.compare("PCM", Qt::CaseInsensitive) == 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
const unsigned int *OpusEncoder::supportedChannelCount(void)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
const unsigned int *OpusEncoder::supportedBitdepths(void)
|
||||
{
|
||||
return NULL;
|
||||
}
|
44
src/Encoder_Opus.h
Normal file
44
src/Encoder_Opus.h
Normal file
@ -0,0 +1,44 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// LameXP - Audio Encoder Front-End
|
||||
// Copyright (C) 2004-2012 LoRd_MuldeR <MuldeR2@GMX.de>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation; either version 2 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
//
|
||||
// http://www.gnu.org/licenses/gpl-2.0.txt
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "Encoder_Abstract.h"
|
||||
|
||||
#include <QObject>
|
||||
|
||||
class OpusEncoder : public AbstractEncoder
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
OpusEncoder(void);
|
||||
~OpusEncoder(void);
|
||||
|
||||
virtual bool encode(const QString &sourceFile, const AudioFileModel &metaInfo, const QString &outputFile, volatile bool *abortFlag);
|
||||
virtual bool isFormatSupported(const QString &containerType, const QString &containerProfile, const QString &formatType, const QString &formatProfile, const QString &formatVersion);
|
||||
virtual QString extension(void);
|
||||
virtual const unsigned int *supportedChannelCount(void);
|
||||
virtual const unsigned int *supportedBitdepths(void);
|
||||
|
||||
private:
|
||||
const QString m_binary;
|
||||
};
|
@ -62,8 +62,9 @@ public:
|
||||
AACEncoder = 2,
|
||||
AC3Encoder = 3,
|
||||
FLACEncoder = 4,
|
||||
DCAEncoder = 5,
|
||||
PCMEncoder = 6
|
||||
OpusEncoder = 5,
|
||||
DCAEncoder = 6,
|
||||
PCMEncoder = 7
|
||||
};
|
||||
enum RCMode
|
||||
{
|
||||
|
@ -36,6 +36,7 @@
|
||||
#include "Decoder_Vorbis.h"
|
||||
#include "Decoder_Wave.h"
|
||||
#include "Decoder_WavPack.h"
|
||||
#include "Decoder_Opus.h"
|
||||
#include "Decoder_WMA.h"
|
||||
#include "PlaylistImporter.h"
|
||||
|
||||
@ -63,6 +64,7 @@ AbstractDecoder *DecoderRegistry::lookup(const QString &containerType, const QSt
|
||||
PROBE_DECODER(WMADecoder);
|
||||
PROBE_DECODER(ADPCMDecoder);
|
||||
PROBE_DECODER(WaveDecoder);
|
||||
PROBE_DECODER(OpusDecoder);
|
||||
PROBE_DECODER(AvisynthDecoder);
|
||||
|
||||
return NULL;
|
||||
@ -87,6 +89,7 @@ QStringList DecoderRegistry::getSupportedTypes(void)
|
||||
types << GET_FILETYPES(ALACDecoder);
|
||||
types << GET_FILETYPES(WMADecoder);
|
||||
types << GET_FILETYPES(ADPCMDecoder);
|
||||
types << GET_FILETYPES(OpusDecoder);
|
||||
types << GET_FILETYPES(AvisynthDecoder);
|
||||
|
||||
QStringList extensions;
|
||||
|
@ -108,8 +108,6 @@ const char *FileAnalyzer::g_tags_aud[] =
|
||||
|
||||
void FileAnalyzer::run()
|
||||
{
|
||||
qWarning("--- FileAnalyzer::run() ---");
|
||||
|
||||
m_abortFlag = false;
|
||||
|
||||
m_bAborted = false;
|
||||
|
@ -173,6 +173,27 @@ void AnalyzeTask::run_ex(void)
|
||||
qWarning("Cue Sheet file detected, skipping!");
|
||||
s_filesCueSheet++;
|
||||
}
|
||||
else if((!QFileInfo(currentFile).suffix().compare("opus", Qt::CaseInsensitive)) || (!QFileInfo(currentFile).suffix().compare("ogg", Qt::CaseInsensitive)))
|
||||
{
|
||||
qDebug("Found a potential Opus audio file, investigating...");
|
||||
QFile opusTest(currentFile);
|
||||
if(analyzeOpusFile(currentFile, file))
|
||||
{
|
||||
qDebug("Accepted Opus file: %s", file.filePath().toUtf8().constData());
|
||||
QWriteLocker lock(&s_lock);
|
||||
s_filesAccepted++;
|
||||
s_recentlyAdded.insert(file.filePath().toLower());
|
||||
lock.unlock();
|
||||
waitForPreviousThreads();
|
||||
emit fileAnalyzed(file);
|
||||
}
|
||||
else
|
||||
{
|
||||
QWriteLocker lock(&s_lock);
|
||||
qDebug("Rejected Opus file: %s", file.filePath().toUtf8().constData());
|
||||
s_filesRejected++;
|
||||
}
|
||||
}
|
||||
else if(!QFileInfo(currentFile).suffix().compare("avs", Qt::CaseInsensitive))
|
||||
{
|
||||
qDebug("Found a potential Avisynth script, investigating...");
|
||||
@ -571,6 +592,28 @@ void AnalyzeTask::retrieveCover(AudioFileModel &audioFile, cover_t coverType, co
|
||||
}
|
||||
}
|
||||
|
||||
bool AnalyzeTask::analyzeOpusFile(const QString &filePath, AudioFileModel &info)
|
||||
{
|
||||
QFile opusFile(filePath);
|
||||
if(opusFile.open(QIODevice::ReadOnly))
|
||||
{
|
||||
QByteArray data = opusFile.peek(1024);
|
||||
int idx1 = data.indexOf(QString::fromAscii("OggS"));
|
||||
int idx2 = data.indexOf(QString::fromAscii("OpusHead"));
|
||||
if((idx1 >= 0) && (idx2 > idx1))
|
||||
{
|
||||
info.setFormatContainerType("OGG");
|
||||
info.setFormatAudioType("Opus");
|
||||
opusFile.close();
|
||||
return true;
|
||||
}
|
||||
opusFile.close();
|
||||
return false;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool AnalyzeTask::analyzeAvisynthFile(const QString &filePath, AudioFileModel &info)
|
||||
{
|
||||
QProcess process;
|
||||
|
@ -90,6 +90,7 @@ private:
|
||||
bool checkFile_CDDA(QFile &file);
|
||||
void retrieveCover(AudioFileModel &audioFile, cover_t coverType, const QByteArray &coverData);
|
||||
bool analyzeAvisynthFile(const QString &filePath, AudioFileModel &info);
|
||||
bool analyzeOpusFile(const QString &filePath, AudioFileModel &info);
|
||||
void waitForPreviousThreads(void);
|
||||
|
||||
const unsigned __int64 m_threadIdx;
|
||||
|
@ -73,6 +73,8 @@ g_lamexp_tools[] =
|
||||
{"0c019e13450dc664987e21f4e5489d182be7d6d0d81efbbaaf1c78693dfe3e38e0355b93", CPU_TYPE_X86_GEN, "oggenc2.i386.exe", 287603},
|
||||
{"693dd6f779df70a047c15c2c79350855db38d5b0cd7e529b6877b7c821cfe6addfdd50a4", CPU_TYPE_X86_SSE, "oggenc2.sse2.exe", 287603},
|
||||
{"291cedb6a1b213330a9cb508f975ee7132a25aa26770ab91cade50109b4ffb81c9bdd09a", CPU_TYPE_X64_ALL, "oggenc2.x64.exe", 287603},
|
||||
{"003b59fedf9f68a4b63402ee60031d878a323d9406dc535e612151170199490878142d85", CPU_TYPE_ALL_ALL, "opusdec.exe", 914},
|
||||
{"187deb9e43bfd96a6510e1f27c0894f0e8c8fa00285976039d22364ebe633251a1dbd1f7", CPU_TYPE_ALL_ALL, "opusenc.exe", 914},
|
||||
{"58c2b8bcff8f27bfa8fab8172b80f5da731221d072c7dba4dd3a3d7d6423490a25dc6760", CPU_TYPE_ALL_ALL, "shorten.exe", 361},
|
||||
{"017a0f613a962af0620618019b015d5c54bb3c07cf1023e5fdb9502b652367ebbfaaebbc", CPU_TYPE_ALL_ALL, "sox.exe", 1440},
|
||||
{"48e7f81c024cd17dac0eaeab253aad6b223e72dc80688f7576276b0563209514ff0bb9c8", CPU_TYPE_ALL_ALL, "speexdec.exe", 12},
|
||||
|
Loading…
Reference in New Issue
Block a user