バイト配列からのビデオストリーミングを可能にするアプリケーションをQtに書いています。 ビデオ出力コンポーネントとしてQtAV(http://www.qtav.org/)を使用しています。 私の場合、このコンポーネントの入力はQIODevice(QBuffer)で、QByteArrayにはデータが入っています。 ストリーミング中にQByteArray内にデータを挿入しますが、まだ読んでいるデータを削除する方法はわかりません。 私の問題は、少し時間がたってから、QByteArrayのディメンションが非常に大きく、割り当てられたメモリをどのように減らすことができないのか分かりません。QtAVとバッファーのクリーニング
はあなたが単に方法
QByteArray &QBuffer::buffer()
を使用して、バッファからバイト配列オブジェクトへの参照を取得し、それを消去することができますあなたの
アンジェロ
:したがって、私は
void QByteArray::reserve(int size)
方法を使用することをお勧めします。問題は、AvPlayerが1時間に32kバイトを読み込むため、すべてのバイトを削除できないことです。ご回答どうもありがとうございました。 –