oov / aviutl_psdtoolkit

PSDToolKit
https://www.nicovideo.jp/series/436
MIT License
114 stars 11 forks source link

InputPipePlugin と口パクの相性問題 #102

Closed oov closed 10 months ago

oov commented 1 year ago

プラグイン優先度を変更して InputPipePlugin で wav ファイルを読み込むようにしていると、口パク用に音量レベルを取得する処理が激しく走ったときにランダムな位置でクラッシュする。 多分同一フレームに対する波形アクセスを繰り返し行ったときに挙動がおかしくなると思われるので、結果をキャッシュして使い回すようにするだけで症状が改善しそうな気がする。

oov commented 1 year ago

以下きちんと調べながらじゃなくて記憶で書いているので間違っている部分もあるかも。

PSDToolKit は口パクのために avi_file_open を呼んで独自にファイルを開いていて、現状では多分口パク処理が必要な場合は再描画の度に avi_file_read_audio_sample を呼んでいるはず。 また、開いたファイルは長時間保持せずに閉じるような処理になっているので、少し待ってから再描画する場合は avi_file_open からやり直しになると思われる。

ユーザーが何らかの操作を行う度に、もしファイルが閉じられていれば avi_file_open が呼ばれることになるが、その操作の中で Alt キーが押されていると InputPipePlugin 側の Alt + ドロップが誤発動して何らかの問題が起こるのではないか、と推測している。

なので結果をキャッシュしておくと avi_file_open が呼ばれる可能性が低くなり、結果として症状の発生確率が下がるのではないかという感じ。