diff --git a/InputPipeMain/InputPipeMain.cpp b/InputPipeMain/InputPipeMain.cpp index 6d7d5e2..2e462e6 100644 --- a/InputPipeMain/InputPipeMain.cpp +++ b/InputPipeMain/InputPipeMain.cpp @@ -157,6 +157,8 @@ int APIENTRY wWinMain(_In_ HINSTANCE hInstance, return 0; } + BOOL b = Plugin_func_init(); + // for Debug CallFunc lastCallFunc; bool activeLoop = true; @@ -337,6 +339,9 @@ int APIENTRY wWinMain(_In_ HINSTANCE hInstance, } }; + + b = Plugin_func_exit(); + ::FreeLibrary(g_hWinputDll); g_hWinputDll = NULL; diff --git a/InputPipeMain/InputPipeMain.vcxproj b/InputPipeMain/InputPipeMain.vcxproj index cbc2a09..d2a70d7 100644 --- a/InputPipeMain/InputPipeMain.vcxproj +++ b/InputPipeMain/InputPipeMain.vcxproj @@ -29,26 +29,26 @@ Application true - v142 + v143 Unicode Application false - v142 + v143 true Unicode Application true - v142 + v143 Unicode Application false - v142 + v143 true Unicode @@ -73,6 +73,8 @@ true $(SolutionDir)$(Configuration)\plugins\ + C:\Programing\#lib\boost_1_73_0\lib\include\boost-1_73;C:\Programing\#lib\WTL10_10320_Release\Include;$(IncludePath) + C:\Programing\#lib\boost_1_73_0\lib\lib;$(LibraryPath) true @@ -80,6 +82,8 @@ false $(SolutionDir)$(Configuration)\ + C:\Programing\#lib\boost_1_73_0\lib\include\boost-1_73;C:\Programing\#lib\WTL10_10320_Release\Include;$(IncludePath) + C:\Programing\#lib\boost_1_73_0\lib\lib;$(LibraryPath) false diff --git a/InputPipePlugin/InputPipePlugin.vcxproj b/InputPipePlugin/InputPipePlugin.vcxproj index 0b9edd8..df6a44e 100644 --- a/InputPipePlugin/InputPipePlugin.vcxproj +++ b/InputPipePlugin/InputPipePlugin.vcxproj @@ -30,25 +30,25 @@ DynamicLibrary true Unicode - v142 + v143 DynamicLibrary false - v142 + v143 true Unicode DynamicLibrary true - v142 + v143 Unicode DynamicLibrary false - v142 + v143 true Unicode @@ -74,6 +74,8 @@ true .aui $(SolutionDir)$(Configuration)\plugins\ + C:\Programing\#lib\boost_1_73_0\lib\include\boost-1_73;C:\Programing\#lib\WTL10_10320_Release\Include;$(IncludePath) + C:\Programing\#lib\boost_1_73_0\lib\lib;$(LibraryPath) true @@ -81,6 +83,8 @@ false .aui + C:\Programing\#lib\boost_1_73_0\lib\include\boost-1_73;C:\Programing\#lib\WTL10_10320_Release\Include;$(IncludePath) + C:\Programing\#lib\boost_1_73_0\lib\lib;$(LibraryPath) false diff --git a/InputPipePlugin/input.cpp b/InputPipePlugin/input.cpp index bd7f18b..e2849e1 100644 --- a/InputPipePlugin/input.cpp +++ b/InputPipePlugin/input.cpp @@ -201,8 +201,12 @@ BOOL func_init( void ) m_config.bEnableIPC = false; return TRUE; } + return TRUE; + + } else { + BOOL b = Plugin_func_init(); + return b; } - return TRUE; } @@ -222,8 +226,12 @@ BOOL func_exit( void ) g_audioSharedMemory.CloseHandle(); DisconnectPipeAndStopProcess(); + + return TRUE; + } else { + BOOL b = Plugin_func_exit(); + return b; } - return TRUE; } bool IsAlternativeFileName(const std::string& filePath) diff --git a/Readme.md b/Readme.md index c0fcd46..4341274 100644 --- a/Readme.md +++ b/Readme.md @@ -10,6 +10,7 @@ aviutlのメモリ使用量削減を目論む、aviutlの入力プラグイン ・拡張編集 0.92 ※ 拡張編集 0.93rc1 はシーン周りに不具合があるので推奨しません ・L-SMASH Works r935 release2 +・L-SMASH-Works_rev1096_Mr-Ojii_Mr-Ojii_AviUtl 上記の環境で動作を確認しています XPではたぶん動きません(コンパイラが対応していないため) @@ -90,7 +91,7 @@ InputPipePluginConfig.ini を削除してください https://ws.formzu.net/fgen/S37403840/ ## ■著作権表示 -Copyright (C) 2019-2020 amate +Copyright (C) 2019-2022 amate 私が書いた部分のソースコードは、MIT License とします。 @@ -123,7 +124,7 @@ AvidemuxのVideo OutputとAudio OutputをCopyに、Output FormatをMkv Muxerに コンテナを変更するだけでなぜ直るのかは謎 ## ■ビルドについて -Visual Studio 2019 が必要です +Visual Studio 2022 が必要です ビルドには boost(1.70~)とWTL(10_9163) が必要なのでそれぞれ用意してください。 Boost::Logを使用しているので、事前にライブラリのビルドが必要になります @@ -143,6 +144,12 @@ http://sourceforge.net/projects/wtl/ ## ■更新履歴
 
+v1.9
+・[update] 開発環境を Visual Studio 2022 に更新
+・[fix] lwinput.auiに func_init、func_exitが実装されていれば、それぞれ呼ぶようにした (オリジナルはnullptrだったので呼んでいなかった)
+・[change] 内部データ交換方式は、"共有メモリ"をデフォルトにした
+・[fix] InputPipePlugin.aui から InputPipeMain.exe 実行時に、カレントディレクトリを設定するようにした (lsmash.iniを読み込めるようになったはず)
+
 v1.8
 ・[add] 同一フレーム同一ファイル問題に対処、Altを押しながらのファイルドロップで、新規ファイルとして開く処理を追加
 
diff --git a/Share/Common.cpp b/Share/Common.cpp
index 4d97a44..843e8f3 100644
--- a/Share/Common.cpp
+++ b/Share/Common.cpp
@@ -90,7 +90,7 @@ bool Config::LoadConfig()
 	auto ptree = ptreeWrapper::LoadIniPtree(kConfigFileName);
 	bEnableHandleCache = ptree.get(L"Config.bEnableHandleCache", true);
 	bEnableIPC = ptree.get(L"Config.bEnableIPC", true);
-	bUseSharedMemory = ptree.get(L"Config.bUseSharedMemory", false);
+	bUseSharedMemory = ptree.get(L"Config.bUseSharedMemory", true);
 
 	return true;
 }
diff --git a/Share/Common.h b/Share/Common.h
index bab092f..72630cb 100644
--- a/Share/Common.h
+++ b/Share/Common.h
@@ -24,7 +24,7 @@ BOOL func_config(HWND hwnd, HINSTANCE dll_hinst);
 
 ////////////////////////////////////////////////////////////////
 
-#define		PLUGIN_VERSION	"1.8"
+#define		PLUGIN_VERSION	"1.9"
 
 
 constexpr	int kVideoBufferSurplusBytes = 0x3FF;
diff --git a/Share/IPC.cpp b/Share/IPC.cpp
index da31e30..9ab2063 100644
--- a/Share/IPC.cpp
+++ b/Share/IPC.cpp
@@ -32,7 +32,7 @@ bool BindProcess::StartProcess(const std::wstring& exePath, const std::wstring&
 		securityAttributes.bInheritHandle = TRUE;
 		std::wstring cmdLine = L" " + std::to_wstring((uint64_t)m_hEventKillSwitch) + L" " + commandLine;
 		BOOL bRet = ::CreateProcess(exePath.c_str(), (LPWSTR)cmdLine.data(),
-			nullptr, nullptr, TRUE, 0, nullptr, nullptr, &startUpInfo, &processInfo);
+			nullptr, nullptr, TRUE, 0, nullptr, GetExeDirectory().c_str(), &startUpInfo, &processInfo);
 		ATLASSERT(bRet);
 		::CloseHandle(processInfo.hThread);
 		::CloseHandle(processInfo.hProcess);
diff --git a/Share/PluginWrapper.cpp b/Share/PluginWrapper.cpp
index 439e013..534a38c 100644
--- a/Share/PluginWrapper.cpp
+++ b/Share/PluginWrapper.cpp
@@ -9,6 +9,28 @@
 
 extern INPUT_PLUGIN_TABLE* g_winputPluginTable;
 
+BOOL Plugin_func_init()
+{
+	if (g_winputPluginTable->func_init) {
+		BOOL b = g_winputPluginTable->func_init();
+		return b;
+
+	} else {
+		return TRUE;
+	}
+}
+
+BOOL Plugin_func_exit()
+{
+	if (g_winputPluginTable->func_exit) {
+		BOOL b = g_winputPluginTable->func_exit();
+		return b;
+
+	} else {
+		return TRUE;
+	}
+}
+
 
 INPUT_HANDLE Plugin_func_open(LPSTR file)
 {
diff --git a/Share/PluginWrapper.h b/Share/PluginWrapper.h
index 33700eb..119b9d7 100644
--- a/Share/PluginWrapper.h
+++ b/Share/PluginWrapper.h
@@ -6,6 +6,8 @@
 
 #include "..\InputPipePlugin\input.h"
 
+BOOL Plugin_func_init();
+BOOL Plugin_func_exit();
 INPUT_HANDLE Plugin_func_open(LPSTR file);
 BOOL Plugin_func_close(INPUT_HANDLE ih);
 BOOL Plugin_func_info_get(INPUT_HANDLE ih, INPUT_INFO* iip);