PyQt4でビデオアプリケーションを作成しようとしていますが、Pythonctypesを使用して古いレガシービデオデコーダーライブラリにフックしました。ライブラリは32ビットのARGBデータを提供し、それをQImageに変換する必要があります。私はそれを次のように機能させています:
# Copy the rgb image data from the pointer into the buffer
memmove(self.rgb_buffer, self.rgb_buffer_ptr, self.buffer_size)
# Copy the buffer to a python string
imgdata = ""
for a in self.rgb_buffer:
imgdata = imgdata + a
# Create a QImage from the string data
img = QImage(imgdata, 720, 288, QImage.Format_ARGB32)
問題は、ctypesがデータをタイプ " ctypes.c_char_Array_829440
"として出力することです。QImageを作成できるように、データをPython文字列に変換する必要があります。私のコピーメカニズムは現在、画像ごとにほぼ300ミリ秒かかるため、非常に遅くなります。プロセスのデコードと表示の部分は、約50ミリ秒しかかかりません。
このプロセスをスピードアップし、現在行っているようにバッファを2回コピーする必要をなくすために、私が取ることができる狡猾なショートカットを誰かが思いつくことができますか?