iFilter(T/B)関数で複数のフィルタを使用する方法
2ちゃんねるのAviSynthスレッドで、少し話題にあがっていたので、補足の意味もこめて説明しておきます。
なお、これは、iFilter(T/B)関数だけでなく、FilterRange関数のように、関数の引数にフィルタを指定するタイプのものに使えます。
1.関数1.関数2.関数3...
MetaFunction("foo().bar()")
一番シンプルなのは、これでしょう。
MetaFunction("""foo("").bar()""")
中の関数が引用符を含む場合は、このように引用符を3つ重ねます。
2.サブ関数の中でフィルタ指定(116さんの方法)
MetaFunction("subfunction()")
function SubFunction(clip c)
{
c
foo()
bar()
return last
}
3.引用符を使ったテクニック
filter_chain = """\
foo("")
bar()
\"""
MetaFunction(filter_chain)
中の関数が引用符を含まない場合は、引用符は1つでもOKです。
これは、stickboyさんが、三項演算子を使った式において複数の条件を指定する方法として紹介されているものです。ほかに、複数行のコメントアウトとしても使えます。
# 例
AviSource("hoge.avi")
"""\
foo()
bar()
\"""
return last
この場合、foo関数とbar関数は適用されません。
なお、3の方法については、いずれWikiの中でも紹介しようと思っています。
参考
- Using AviSynth's ternary operator with multiple statements
- Doom9's Forum - did you know: string containing quotes
- Doom9's Forum - Facility to skip portions of script
スポンサード リンク
Recent entries from same category
[ No TrackBack ]
[ No Comment ]
writeback message: There was a problem posting your writeback.
Preview here...
- [Preview]ボタンをクリックすると、コメント内容をプレビューすることができます(JavaScript使用)。
- スパム対策としてリファラチェックを行っています。セキュリティソフトの設定でリファラを無効にしていると投稿できません。
- エントリの内容と無関係と思われるコメントやトラックバックは削除されます。
- 当ブログへの言及リンクがないトラックバックはブロックされます。



