exavi_vfr 0.3.9-1
■exavi_vfrの更新 なんか最近、ブログでばっかり更新してる気がする。 更新履歴が溜まってきて整理するのが大変になってきてるし、早くなんとかしなければ! ver.0.3.8-9b3からの主な更新内容(思い出せる範囲で記述) 1)exavi.auoの0.3.9の内容を反映 この修正で、AVI2.0ファイルで、AVI1.0互換インデックスがRIFFチャンクの外に 出ちゃってるだけど本当にこれで良いのか気に掛かるところ。 ちなみにVirtualDubでAVI2.0出力では、これはRIFFチャンクの中に入ってる。 2)AVI1.0出力時、ファイルの最後にゴミがくっ付き、ごく稀にmmg(mkvmerge)でエラーになる ことがあるのを対処。 (なおこの場合でもVirtualDub, AviUtl, WMP, AVI_Muxではエラーにならない) これは、VFWのAVIStream関数群でファイルを作成すると、最後のindex部分が余分に 獲得されていてその余計なデータが場合により不正なRIFFと認識されているようです。 対処方法は、ファイルクローズ後にRIFFチャンクのサイズにまで縮めています。 (VirtualDubのHex Editorでの表示、上記invalid chunk部分を削除するよう修正) 3)AVI2.0出力で、LISTチャンクでAVIXを作成しているのをRIFFチャンクに変更 それに合わせて、先頭のRIFFチャンクのサイズを修正 (AVIX(LISTチャンクヘッダ)までが含まれるようになってたのを含まないようにした) (純正exavi 0.3.9だとこのようになっているのを以下のように修正) 4)強制キーフレーム指定有効/無効で、今まで分かれていた0.3.8-8と0.3.8-9b(0.3.8-7)を統合 設定プロパティで選択できるようにしたが、そのため設定ファイル(cfg)の互換性が 失われて、再作成しないといけない。 (リザーブ領域を作ったので今後はある程度は設定項目が増えても互換性は保たれるかも) (とは言っても、XviD(shibuya7/15版)とかに入れ替えるとそこでcfg作り直しなんだが) ・XviDだとNULLありなしで一応正常みたい。(DivXは後述のバグのためNULLなしだけ正常) 5)DivX ver6.x系でもAVI独自のピクチャタイプのシーケンス制御するように修正 0,0,0,1,2,3,4,...というように先頭フレームが重複して(その分ずれて)出力されていた 【制限】 ただそれだけでは、ver.5.x系までとは異なりNULLありの場合おかしなことになる。 0,n,n,n,n,1,2,n,n,n,n,3,n,n,n,n,...というように1フレーム目にNULLフレームが 付加されない。 >>茂木氏が修正されるのを待ちましょう!! 6)B-VOP使用時ごくたまに最後に1フレーム余分に出力されていたのを削除 0.3.8-2で、対処してたがその後のverで再び出力されるように戻してた (タイムコード出力をその分増やす)のを再び削除するようにした。 7)ちらつくので、statusウィンドウのリドローをしないようにした 8)タイムコードの四捨五入をprintfの書式文字列("%.0f")で行わせるように変更exavi_vfr.auo v0.3.9-1(v0.3.8-9b3までとは、定義ファイル(cfg)に互換性がありませんので再度作成してください)