diff --git a/ReadMe.txt b/ReadMe.txt index c10cc72..ff225cb 100644 --- a/ReadMe.txt +++ b/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. -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: diff --git a/src/global.cpp b/src/global.cpp index e350af9..e854723 100644 --- a/src/global.cpp +++ b/src/global.cpp @@ -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 diff --git a/src/thread_encode.cpp b/src/thread_encode.cpp index e04a90f..820dc0d 100644 --- a/src/thread_encode.cpp +++ b/src/thread_encode.cpp @@ -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;; } diff --git a/src/version.h b/src/version.h index 2d359df..dc99e7d 100644 --- a/src/version.h +++ b/src/version.h @@ -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) diff --git a/src/win_main.cpp b/src/win_main.cpp index 4fb26e0..e2aca3d 100644 --- a/src/win_main.cpp +++ b/src/win_main.cpp @@ -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); } diff --git a/x264_launcher_MSVC2012.vcxproj b/x264_launcher_MSVC2012.vcxproj index a5494e4..c4f29a1 100644 --- a/x264_launcher_MSVC2012.vcxproj +++ b/x264_launcher_MSVC2012.vcxproj @@ -69,9 +69,13 @@ 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)" 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)" diff --git a/x264_launcher_MSVC2012.vcxproj.filters b/x264_launcher_MSVC2012.vcxproj.filters index 78d48ff..f52c306 100644 --- a/x264_launcher_MSVC2012.vcxproj.filters +++ b/x264_launcher_MSVC2012.vcxproj.filters @@ -48,9 +48,6 @@ Header Files - - Header Files - @@ -178,6 +175,9 @@ Header Files + + Header Files +