2009-05-27 9 views
0

libdc1394を使用してFireWireカメラ用のフレームグラバーをコーディングしようとしました。カメラの初期化が正常に行われ、ビデオモードがサポートされているDC1394_VIDEO_MODE_640x480_YUV422に設定され、フレームがエラーなしで取り込まれます。libdc1394でキャプチャされたフレームの問題

ただし、返されるフレームは640x480x1.5バイトで構成されていますが、これは実際にはYUV411パッケージです。ビデオフレーム構造体は、使用されるビデオモードがYUV411であったことも示している。

しかし、データは実際にYUV411でデコードされません。その代わりに、YUV422デコードでは有効な画像が生成されますが、画像の下側の領域は欠落しています。最後のバイトが欠落しているためです(YUV422は16ビット/ピクセル、YUV411は12ビット/ピクセル)。

カメラはIIDC v1.30に準拠しており、libdc1394はこれをサポートしています。サポートされているビデオモード(libdc1394の記述どおり)は使用されており、これはカメラのマニュアルでカメラが使用していることを示しています。

私はグーグルでこの問題を回避する方法を見つけていません。すべての手がかりは?

答えて

0

問題は、デバイスのファームウェアがビデオモードの正しい値を返せないことです。 libdc1394にパッチを適用して目的の値を返すことで解決できます。

関連する問題