2011年5月21日土曜日

RawSource.dll その2

ここ最近、avs2pipemodを色々いじったおかげで、C/C++及びYUV4MPEG2/RAWデータ、そしてAviSynthの内部処理への理解が自分としては結構進んだように思います。
なんだかようやく初心者といっても良いレベルになれたかも。

さて、今年の1月にやったRawSource.dllの改造は、実は結構まずいものでした(YUV422なY4Mに対応したようでいて、実はUとVがswapしてしまったりとか)。
どーしたもんかとずっと気にはなっていたけど悲しいことに実力不足で手が付けられなかったわけですが…昨日改めてコードを読みなおしてみたらあらびっくり、理解できるようになっていました。
てなわけで早速修正版リリース。
あとついでに、YV411の対応とか、Y4Mのインタレ周りの処理(これは元々WarpEnterprises氏のころから変だった)の修正とかもやりました。

バイナリ
更新したので削除しました

RawSource_25_dll_20060728(WarpEnterprises最終版)からの変更点
*64文字以上のYUV4MPEG2ヘッダーに対応(最大128文字)
*I422(YUV422planar)に対応
*I411(YUV411planar)、YV411(YVU411planar)に対応(出力は色差補間なしのYUY2)
*ARGBに対応
*pixel_type指定にYUY2とIYUVを追加(これまではYUYV/I420しか指定できなかった)
*I420以外の色空間のYUV4MPEG2に対応(ただし、YUV444/YUV444alphaを除く)
*YUV4MPEG2ヘッダーのIタグによるフィールドオーダー指定を修正(これまではなぜかItやIbだとフィールドベースになるという謎仕様だった。なお、Imには未対応のまま)
*msvcr100.dllが必要(どーやったらstatic linkに出来るんでしょうね?)

ソースコードはこちら
https://github.com/chikuzen/RawSource_2.5x

0 件のコメント:

コメントを投稿