問題タブ [qbuffer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - void ポインタからの QBuffer とメモリ サイズ
void * data
とから C++ Qt5.6 で QBuffer を作成する最もシンプルでエレガントな方法を探していますlong data_size
。
void を char ポインターにキャストし、 をQByteArray::fromRawData()
使用QDataStream
してQByteArray
. どちらの場合も、私は成功しませんでした。
c++ - RAWオーディオを再生するQtバッファアンダーラン
void * data
保存されている長さのオーディオを再生しようとしましdata_size
たが、「バッファ アンダーフローが発生しました!」というメッセージが表示されます。
c++ - QtAV とバッファーのクリーニング
バイト配列からのビデオ ストリーミングを許可するアプリケーションを Qt で作成しています。ビデオ出力コンポーネントとして、QtAV ( http://www.qtav.org/ ) を使用しています。私の場合、このコンポーネントの入力は、私のデータを持つ QByteArray を持つ QIODevice (QBuffer) です。QByteArray 内のデータをストリーミング中に入れますが、まだ読み取ったデータを削除する方法がわかりません。私の問題は、しばらくすると QByteArray の次元が非常に大きくなり、割り当てられたメモリを減らす方法がわからないことです。
ありがとうございました
アンジェロ
qt - QBuffer は QByteArray の末尾ではなく先頭にバイトを書き込みます
次のコードがあります。
バイト配列の内容をコンソールに出力すると:
コンソールに次のように出力されます。
上に見られるように、2
タイプquint32
の は、 のリトル エンディアン 16 進値で正しく表現されますが、バイト配列の末尾ではなく先頭0x02000000
に追加されます。バイト配列の末尾に値を追加するにはどうすればよいですか?
c++ - QTextStream を介して QBuffer との間で繰り返し書き込みと読み取りを行う
QBuffer
を介してオブジェクトとの間で繰り返し書き込みと読み取りを試みていますQTextStream
。まず、両方のオブジェクトを構築します。
次に、情報の 3 つの異なる部分を書き、それらを読み返します。
もちろん、直前に書いたデータ部分は取得しませんが、累積されたデータは次のとおりです。
正しいデータを取得するためにアダプティブ シーク コールを実行できますが、無限に拡大することは望ましくありません。QBuffer
s.reset()
書き込みの間に呼び出しを試みましたが、結果は同じです。reset()
バッファに対してoropen()/close()
を直接呼び出すと、不自由な結果が得られます (ストリームがバイパスされるため、これは予想されます)。
おそらくサイクルごとに新しいバッファを作成し、それを開いてストリームにアタッチすることはできますが、それは遅いです。
このユースケースに適した迅速な解決策はありますか?