AVI を再生しようとした時に Huffyuv と UtVideo とで挙動(というか、出てくる media type の形態)が違う点について調べていたのですが、 avidemux element が FourCC に応じて自分で設定している、つまり「コンテナを処理するコードがコーデックごとに処理を変えている」ようだ、ということが分かりました。 FourCC が HFYU の場合は「知っている」ので video/x-huffyuv になり、 ULRG の場合は「知らない」ので video/x-avi-unknown; fourcc=(int)0x47524C55 になります。

ここまでなら問題なさそうに思えるかもしれませんが、UtVideo は BITMAPINFOHEADER の後ろにくっついているデータがデコードに必要なので、それが付いてこないとデコードできません。Huffyuv に限らず「知っている」フォーマットの場合は codec_data としてそれがくっついてきます。

これつまり再生できるようにするには GStreamer 側を修正する必要があるということです。FourCC を追加したらその都度修正が必要なわけで、こちらのポリシー的にありえません。その都度修正しなくて済むような構造になったらまた考えますけど。

てかなんでこんなことになってんの。

Trackback

no comment untill now

Add your comment now