2020/05/01

DGIndexのフィールド判定

ってなんかおかしくね?
mediainfoでTFFと出るものをBFFと判定してくる。
そして途中でfield transittionがあるからといってfix_d2vを設定しておくと混合、というのは直してくれるけどなぜかフレーム数が違う認識になるという罠
・・・fix_d2vって昔からなんかバグってますよね

というわけでソースを眺め始めた今年のGW。
これが意味のあることなのかどうかは知らない・・・というかmediainfoの出力によってTFF/BFF切り替えればよいんじゃね?という気もする

ソースを見てもよくわからなかったので、とりあえず減少から追うことに。
d2vでなんかProgressiveフラグが立っているときはd2vのTFFフラグが誤判定していそうな気がする・・・

何作品かd2vの先頭フレームの認識を見たところ下のような感じ
D2Vflags D2V_Prgr D2V_IPB D2V_TFF 認識 正常な設定
48 0 3 0 BFF TFF
50 0 3 2 TFF TFF
113 1 3 1 BFF BFF
上のD2V_TFFフラグにはRFFがd0bitに入ってるので、d1bitのみ見てください
というか、実際にBFFになるソースがあまり見つからなくて(1つしか見つけれてない)サンプルが足りない・・・

が、プログレッシブフラグが立ってない場合、実際はBFFにならないと考えてよいのだろうか・・・
(DGDecodeのソースを見る限り、TFFフラグはTSのフィールド情報をそのまま入れてそうな気がするのですが、なんでそれがGOPによって変わるのか理解できてません・・・)

とりあえず、d2vの先頭フレームがプログレッシブになっていたらちゃんとフィールドオーダーを拾って、それ以外はAssumeTFFにしてみるようにスクリプトで対応。
これでいいのかどうかわかりませんが・・・


201212追記
実はTFMでmode=1にしてるのがいかんのじゃね?と思い始めた・・・

0 件のコメント:

コメントを投稿