私のコードがビデオを生の YCbCr フレームにデコードするビデオ プレーヤーを作成しています。Qt フレームワークを介してこれらを出力する最速の方法は何でしょうか? 画像は HD 形式であるため、データをコピーしすぎないようにしたいと考えています。
QImage へのソフトウェアの色変換が遅くなり、後で GUI に描画するときに QImage が再びコピーされるのではないかと心配しています。
私は QAbstractVideoSurface を見て、コードを実行していますが、VideoWidget の例 ( http://idlebox.net/2010/apidocs/qt-everywhere-opensource-4.7.0. zip/multimedia-videowidget.html )、レンダリングは、RGB でなければならない QImage で QPainter::drawImage を呼び出すことによって行われます。
好ましい解決策は、ハードウェア サーフェスに直接アクセスして、YCbCr をデコードするか、少なくとも RGB 変換 (libswscale を使用) を直接実行できるように思われます。しかし、これを行う方法がわかりません (ただし、OpenGL を使用しないと、無料のスケーリングも可能になります)。