Better support for new x264 builds with OpenCL Lookahead.
This commit is contained in:
parent
dd7a18abbb
commit
b2b751035d
25
ReadMe.txt
25
ReadMe.txt
@ -195,7 +195,25 @@ if you want to encode audio from an Avisynth script, you must pass the
|
|||||||
For convenience, the string "--audiofile $(INPUT)" may be used.
|
For convenience, the string "--audiofile $(INPUT)" may be used.
|
||||||
|
|
||||||
|
|
||||||
11. Command-line Syntax
|
11. OpenCL Support
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
Newer builds of x264 now support OpenCL Lookahead, which can be enabled
|
||||||
|
with the "--opencl" parameter. However, even if you do NOT want to use
|
||||||
|
this feature, x264 will still depend on the OpenCL library (OpenCL.DLL)
|
||||||
|
and it will NOT even start, if the OpenCL DLL is missing! For this
|
||||||
|
reason, the Simple x264 Launcher ships with a "dummy" OpenCL library to
|
||||||
|
make x264 start on systems that do NOT support OpenCL. As a side effect
|
||||||
|
of this workaround, any OpenCL functions in x264 will not work at all!
|
||||||
|
|
||||||
|
If your video hardware supports OpenCL *and* if you have an up-to-date
|
||||||
|
video driver with OpenCL support installed *and* if you which to use
|
||||||
|
the OpenCL Lookahead function, then please remove the dummy OpenCL.DLL
|
||||||
|
from the Simple x264 Launcher directory, so x264 can load the system's
|
||||||
|
OpenCL.DLL (from system directory), provided by the video driver.
|
||||||
|
|
||||||
|
|
||||||
|
12. Command-line Syntax
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
The following command-line switches are available:
|
The following command-line switches are available:
|
||||||
@ -207,8 +225,11 @@ The following command-line switches are available:
|
|||||||
--skip-avisynth-check ... Skip Avisynth check (not recommended!)
|
--skip-avisynth-check ... Skip Avisynth check (not recommended!)
|
||||||
--force-cpu-no-64bit .... Forcefully disable 64-Bit support
|
--force-cpu-no-64bit .... Forcefully disable 64-Bit support
|
||||||
|
|
||||||
|
These are parameters you can pass to Simple x264 Launcher, they can NOT
|
||||||
|
be passed to x264 itself as "custom" parameters!
|
||||||
|
|
||||||
12. Help & Support
|
|
||||||
|
13. Help & Support
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
For help and support, please join the discussion at:
|
For help and support, please join the discussion at:
|
||||||
|
@ -91,7 +91,7 @@ g_x264_version =
|
|||||||
};
|
};
|
||||||
|
|
||||||
//Compiler detection
|
//Compiler detection
|
||||||
//The following code was (partially) borrowed from MPC-HC project: http://mpc-hc.sf.net/
|
//The following code was borrowed from MPC-HC project: http://mpc-hc.sf.net/
|
||||||
#if defined(__INTEL_COMPILER)
|
#if defined(__INTEL_COMPILER)
|
||||||
#if (__INTEL_COMPILER >= 1300)
|
#if (__INTEL_COMPILER >= 1300)
|
||||||
static const char *g_x264_version_compiler = "ICL 13." LAMEXP_MAKE_STR(__INTEL_COMPILER_BUILD_DATE);
|
static const char *g_x264_version_compiler = "ICL 13." LAMEXP_MAKE_STR(__INTEL_COMPILER_BUILD_DATE);
|
||||||
@ -112,8 +112,10 @@ g_x264_version =
|
|||||||
static const char *g_x264_version_compiler = "MSVC 2012-RTM";
|
static const char *g_x264_version_compiler = "MSVC 2012-RTM";
|
||||||
#elif (_MSC_FULL_VER < 170051106)
|
#elif (_MSC_FULL_VER < 170051106)
|
||||||
static const char *g_x264_version_compiler = "MSVC 2012-U1 CTP";
|
static const char *g_x264_version_compiler = "MSVC 2012-U1 CTP";
|
||||||
#elif (_MSC_FULL_VER == 170051106)
|
#elif (_MSC_FULL_VER < 170060315)
|
||||||
static const char *g_x264_version_compiler = "MSVC 2012-U1";
|
static const char *g_x264_version_compiler = "MSVC 2012-U1";
|
||||||
|
#elif (_MSC_FULL_VER == 170060315)
|
||||||
|
static const char *g_x264_version_compiler = "MSVC 2012-U2";
|
||||||
#else
|
#else
|
||||||
#error Compiler version is not supported yet!
|
#error Compiler version is not supported yet!
|
||||||
#endif
|
#endif
|
||||||
|
@ -91,7 +91,8 @@ while(0)
|
|||||||
} \
|
} \
|
||||||
while(0)
|
while(0)
|
||||||
|
|
||||||
#define X264_BINARY(BIN_DIR, IS_10BIT, IS_X64) QString("%1/x264_%2_%3.exe").arg((BIN_DIR), ((IS_10BIT) ? "10bit" : "8bit"), ((IS_X64) ? "x64" : "x86"))
|
#define AVS2_BINARY(BIN_DIR, IS_X64) QString("%1/%2/avs2yuv_%2.exe").arg((BIN_DIR), ((IS_X64) ? "x64" : "x86"))
|
||||||
|
#define X264_BINARY(BIN_DIR, IS_10BIT, IS_X64) QString("%1/%2/x264_%3_%2.exe").arg((BIN_DIR), ((IS_X64) ? "x64" : "x86"), ((IS_10BIT) ? "10bit" : "8bit"))
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Static vars
|
* Static vars
|
||||||
@ -320,7 +321,7 @@ bool EncodeThread::runEncodingPass(bool x264_x64, bool x264_10bit, bool avs2yuv_
|
|||||||
processAvisynth.setStandardOutputProcess(&processEncode);
|
processAvisynth.setStandardOutputProcess(&processEncode);
|
||||||
|
|
||||||
log("Creating Avisynth process:");
|
log("Creating Avisynth process:");
|
||||||
if(!startProcess(processAvisynth, QString("%1/%2.exe").arg(m_binDir, avs2yuv_x64 ? "avs2yuv_x64" : "avs2yuv_x86"), cmdLine_Avisynth, false))
|
if(!startProcess(processAvisynth, AVS2_BINARY(m_binDir, avs2yuv_x64), cmdLine_Avisynth, false))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -726,7 +727,7 @@ unsigned int EncodeThread::checkVersionAvs2yuv(bool x64)
|
|||||||
QProcess process;
|
QProcess process;
|
||||||
|
|
||||||
log("\nCreating process:");
|
log("\nCreating process:");
|
||||||
if(!startProcess(process, QString("%1/%2.exe").arg(m_binDir, x64 ? "avs2yuv_x64" : "avs2yuv_x86"), QStringList()))
|
if(!startProcess(process, AVS2_BINARY(m_binDir, x64), QStringList()))
|
||||||
{
|
{
|
||||||
return false;;
|
return false;;
|
||||||
}
|
}
|
||||||
@ -835,7 +836,7 @@ bool EncodeThread::checkProperties(bool x64, unsigned int &frames)
|
|||||||
cmdLine << pathToLocal(QDir::toNativeSeparators(m_sourceFileName)) << "NUL";
|
cmdLine << pathToLocal(QDir::toNativeSeparators(m_sourceFileName)) << "NUL";
|
||||||
|
|
||||||
log("Creating process:");
|
log("Creating process:");
|
||||||
if(!startProcess(process, QString("%1/%2.exe").arg(m_binDir, x64 ? "avs2yuv_x64" : "avs2yuv_x86"), cmdLine))
|
if(!startProcess(process, AVS2_BINARY(m_binDir, x64), cmdLine))
|
||||||
{
|
{
|
||||||
return false;;
|
return false;;
|
||||||
}
|
}
|
||||||
|
@ -22,10 +22,10 @@
|
|||||||
#define VER_X264_MAJOR 2
|
#define VER_X264_MAJOR 2
|
||||||
#define VER_X264_MINOR 1
|
#define VER_X264_MINOR 1
|
||||||
#define VER_X264_PATCH 0
|
#define VER_X264_PATCH 0
|
||||||
#define VER_X264_BUILD 419
|
#define VER_X264_BUILD 422
|
||||||
|
|
||||||
#define VER_X264_MINIMUM_REV 2250
|
#define VER_X264_MINIMUM_REV 2282
|
||||||
#define VER_X264_CURRENT_API 130
|
#define VER_X264_CURRENT_API 132
|
||||||
#define VER_X264_AVS2YUV_VER 242
|
#define VER_X264_AVS2YUV_VER 242
|
||||||
|
|
||||||
#define VER_X264_PRE_RELEASE (0)
|
#define VER_X264_PRE_RELEASE (0)
|
||||||
|
@ -667,7 +667,7 @@ void MainWindow::shutdownComputer(void)
|
|||||||
*/
|
*/
|
||||||
void MainWindow::init(void)
|
void MainWindow::init(void)
|
||||||
{
|
{
|
||||||
static const char *binFiles = "x264_8bit_x86.exe:x264_8bit_x64.exe:x264_10bit_x86.exe:x264_10bit_x64.exe:avs2yuv_x86.exe:avs2yuv_x64.exe";
|
static const char *binFiles = "x86/x264_8bit_x86.exe:x64/x264_8bit_x64.exe:x86/x264_10bit_x86.exe:x64/x264_10bit_x64.exe:x86/avs2yuv_x86.exe:x64/avs2yuv_x64.exe";
|
||||||
QStringList binaries = QString::fromLatin1(binFiles).split(":", QString::SkipEmptyParts);
|
QStringList binaries = QString::fromLatin1(binFiles).split(":", QString::SkipEmptyParts);
|
||||||
|
|
||||||
updateLabelPos();
|
updateLabelPos();
|
||||||
@ -699,7 +699,7 @@ void MainWindow::init(void)
|
|||||||
{
|
{
|
||||||
bool binaryTypeOkay = false;
|
bool binaryTypeOkay = false;
|
||||||
DWORD binaryType;
|
DWORD binaryType;
|
||||||
if(GetBinaryType(QWCHAR(file->fileName()), &binaryType))
|
if(GetBinaryType(QWCHAR(QDir::toNativeSeparators(file->fileName())), &binaryType))
|
||||||
{
|
{
|
||||||
binaryTypeOkay = (binaryType == SCS_32BIT_BINARY || binaryType == SCS_64BIT_BINARY);
|
binaryTypeOkay = (binaryType == SCS_32BIT_BINARY || binaryType == SCS_64BIT_BINARY);
|
||||||
}
|
}
|
||||||
|
@ -69,9 +69,13 @@
|
|||||||
<Command>del /S /Q "$(TargetDir)\*.dll"
|
<Command>del /S /Q "$(TargetDir)\*.dll"
|
||||||
rmdir /S /Q "$(TargetDir)\toolset"
|
rmdir /S /Q "$(TargetDir)\toolset"
|
||||||
rmdir /S /Q "$(TargetDir)\imageformats"
|
rmdir /S /Q "$(TargetDir)\imageformats"
|
||||||
mkdir "$(TargetDir)\toolset"
|
mkdir "$(TargetDir)\toolset\x86"
|
||||||
|
mkdir "$(TargetDir)\toolset\x64"
|
||||||
mkdir "$(TargetDir)\imageformats"
|
mkdir "$(TargetDir)\imageformats"
|
||||||
copy /Y "$(SolutionDir)res\toolset\*.exe" "$(TargetDir)\toolset\"
|
copy /Y "$(SolutionDir)res\toolset\x86\*.exe" "$(TargetDir)\toolset\x86\"
|
||||||
|
copy /Y "$(SolutionDir)res\toolset\x86\*.dll" "$(TargetDir)\toolset\x86\"
|
||||||
|
copy /Y "$(SolutionDir)res\toolset\x64\*.exe" "$(TargetDir)\toolset\x64\"
|
||||||
|
copy /Y "$(SolutionDir)res\toolset\x64\*.dll" "$(TargetDir)\toolset\x64\"
|
||||||
copy /Y "$(QTDIR)\bin\QtCored4.dll" "$(TargetDir)"
|
copy /Y "$(QTDIR)\bin\QtCored4.dll" "$(TargetDir)"
|
||||||
copy /Y "$(QTDIR)\bin\QtGuid4.dll" "$(TargetDir)"
|
copy /Y "$(QTDIR)\bin\QtGuid4.dll" "$(TargetDir)"
|
||||||
copy /Y "$(QTDIR)\bin\QtSvgd4.dll" "$(TargetDir)"
|
copy /Y "$(QTDIR)\bin\QtSvgd4.dll" "$(TargetDir)"
|
||||||
@ -142,9 +146,13 @@ copy /Y "$(SolutionDir)etc\vld\bin\Win32\*.manifest" "$(TargetDir)"
|
|||||||
<Command>del /S /Q "$(TargetDir)\*.dll"
|
<Command>del /S /Q "$(TargetDir)\*.dll"
|
||||||
rmdir /S /Q "$(TargetDir)\toolset"
|
rmdir /S /Q "$(TargetDir)\toolset"
|
||||||
rmdir /S /Q "$(TargetDir)\imageformats"
|
rmdir /S /Q "$(TargetDir)\imageformats"
|
||||||
mkdir "$(TargetDir)\toolset"
|
mkdir "$(TargetDir)\toolset\x86"
|
||||||
|
mkdir "$(TargetDir)\toolset\x64"
|
||||||
mkdir "$(TargetDir)\imageformats"
|
mkdir "$(TargetDir)\imageformats"
|
||||||
copy /Y "$(SolutionDir)res\toolset\*.exe" "$(TargetDir)\toolset\"
|
copy /Y "$(SolutionDir)res\toolset\x86\*.exe" "$(TargetDir)\toolset\x86\"
|
||||||
|
copy /Y "$(SolutionDir)res\toolset\x86\*.dll" "$(TargetDir)\toolset\x86\"
|
||||||
|
copy /Y "$(SolutionDir)res\toolset\x64\*.exe" "$(TargetDir)\toolset\x64\"
|
||||||
|
copy /Y "$(SolutionDir)res\toolset\x64\*.dll" "$(TargetDir)\toolset\x64\"
|
||||||
copy /Y "$(QTDIR)\bin\QtCore4.dll" "$(TargetDir)"
|
copy /Y "$(QTDIR)\bin\QtCore4.dll" "$(TargetDir)"
|
||||||
copy /Y "$(QTDIR)\bin\QtGui4.dll" "$(TargetDir)"
|
copy /Y "$(QTDIR)\bin\QtGui4.dll" "$(TargetDir)"
|
||||||
copy /Y "$(QTDIR)\bin\QtSvg4.dll" "$(TargetDir)"
|
copy /Y "$(QTDIR)\bin\QtSvg4.dll" "$(TargetDir)"
|
||||||
|
@ -48,9 +48,6 @@
|
|||||||
<ClInclude Include="src\taskbar7.h">
|
<ClInclude Include="src\taskbar7.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="src\thread_avisynth.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="src\main.cpp">
|
<ClCompile Include="src\main.cpp">
|
||||||
@ -178,6 +175,9 @@
|
|||||||
<CustomBuild Include="src\thread_ipc.h">
|
<CustomBuild Include="src\thread_ipc.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</CustomBuild>
|
</CustomBuild>
|
||||||
|
<CustomBuild Include="src\thread_avisynth.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</CustomBuild>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ResourceCompile Include="x264_launcher.rc">
|
<ResourceCompile Include="x264_launcher.rc">
|
||||||
|
Loading…
Reference in New Issue
Block a user