Better support for new x264 builds with OpenCL Lookahead.

This commit is contained in:
LoRd_MuldeR 2013-05-05 14:11:34 +02:00
parent dd7a18abbb
commit b2b751035d
7 changed files with 52 additions and 20 deletions

View File

@ -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.
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:
@ -207,8 +225,11 @@ The following command-line switches are available:
--skip-avisynth-check ... Skip Avisynth check (not recommended!)
--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:

View File

@ -91,7 +91,7 @@ g_x264_version =
};
//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 (__INTEL_COMPILER >= 1300)
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";
#elif (_MSC_FULL_VER < 170051106)
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";
#elif (_MSC_FULL_VER == 170060315)
static const char *g_x264_version_compiler = "MSVC 2012-U2";
#else
#error Compiler version is not supported yet!
#endif

View File

@ -91,7 +91,8 @@ 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
@ -320,7 +321,7 @@ bool EncodeThread::runEncodingPass(bool x264_x64, bool x264_10bit, bool avs2yuv_
processAvisynth.setStandardOutputProcess(&processEncode);
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;
}
@ -726,7 +727,7 @@ unsigned int EncodeThread::checkVersionAvs2yuv(bool x64)
QProcess 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;;
}
@ -835,7 +836,7 @@ bool EncodeThread::checkProperties(bool x64, unsigned int &frames)
cmdLine << pathToLocal(QDir::toNativeSeparators(m_sourceFileName)) << "NUL";
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;;
}

View File

@ -22,10 +22,10 @@
#define VER_X264_MAJOR 2
#define VER_X264_MINOR 1
#define VER_X264_PATCH 0
#define VER_X264_BUILD 419
#define VER_X264_BUILD 422
#define VER_X264_MINIMUM_REV 2250
#define VER_X264_CURRENT_API 130
#define VER_X264_MINIMUM_REV 2282
#define VER_X264_CURRENT_API 132
#define VER_X264_AVS2YUV_VER 242
#define VER_X264_PRE_RELEASE (0)

View File

@ -667,7 +667,7 @@ void MainWindow::shutdownComputer(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);
updateLabelPos();
@ -699,7 +699,7 @@ void MainWindow::init(void)
{
bool binaryTypeOkay = false;
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);
}

View File

@ -69,9 +69,13 @@
<Command>del /S /Q "$(TargetDir)\*.dll"
rmdir /S /Q "$(TargetDir)\toolset"
rmdir /S /Q "$(TargetDir)\imageformats"
mkdir "$(TargetDir)\toolset"
mkdir "$(TargetDir)\toolset\x86"
mkdir "$(TargetDir)\toolset\x64"
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\QtGuid4.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"
rmdir /S /Q "$(TargetDir)\toolset"
rmdir /S /Q "$(TargetDir)\imageformats"
mkdir "$(TargetDir)\toolset"
mkdir "$(TargetDir)\toolset\x86"
mkdir "$(TargetDir)\toolset\x64"
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\QtGui4.dll" "$(TargetDir)"
copy /Y "$(QTDIR)\bin\QtSvg4.dll" "$(TargetDir)"

View File

@ -48,9 +48,6 @@
<ClInclude Include="src\taskbar7.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src\thread_avisynth.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="src\main.cpp">
@ -178,6 +175,9 @@
<CustomBuild Include="src\thread_ipc.h">
<Filter>Header Files</Filter>
</CustomBuild>
<CustomBuild Include="src\thread_avisynth.h">
<Filter>Header Files</Filter>
</CustomBuild>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="x264_launcher.rc">