08/06/11 09:32:40 xjj7eA420
>>128
func_update()が呼ばれたときのコールスタック
get_ycp_filtering_cache()で取得しようとしているフレーム番号
この2つに注意して、もういちど挙動を見てみなよ。
2回連続で呼ばれるfunc_updateは、
あなたの作ってるフィルタに向けてのものではなく、
他のフィルタに向けてのものだと思う。
たとえば次のような感じになっていると思う。
49フレーム目はプロファイル1、50フレーム目はプロファイル2
AviUtl → あなたのfunc_proc(49フレーム目)をcall
AviUtlのget_ycp_filtering_cache(50フレーム目) ← あなたのfunc_proc内からcall
AviUtl → 全フィルタのfunc_update(プロファイル2)をcall
AviUtl → 上流のフィルタのfunc_proc(50フレーム目)をcall & return
AviUtl → 全フィルタのfunc_update(プロファイル1)をcall
AviUtlのget_ycp_filtering_cache(50フレーム目) → あなたのfunc_procへreturn
この挙動が気に入らない場合の対処としては、
func_proc()内にいるときにはfunc_updateが来ても無視する
あるいは、
get_ycp_filtering_cache()を呼んで帰ってくるまではfunc_updateが来ても無視する
ように、適当にフラグをセット・参照すればいい。