これは前に出てきたかもしれませんが、以下のコードは私が修正しているMSDNの例から取ったものです。私はビットマップに関するデータを含むバッファの内容をどのように反復処理し、色を印刷することができるかを知りたい。各ピクセルは4バイトのデータですので、R G Bの値がこれらのバイトの3つを占めていると仮定しています。可能であればAは4番目のバイトです。メディアバッファからの読み込み - ポインタの算術C++の構文
反復処理中に指し示されている値を私が使用できるローカル変数に格納するために必要なポインタ算術演算(理想的にはループ内)の正しいC++構文は何ですか?コンソールに印刷します。
ありがとうございました
PSです。これは安全ですか?または、IMFMediaBufferの内容を読むより安全な方法がありますか?私は代わりを見つけることができませんでした。ここで
コードです:
hr = pSample->ConvertToContiguousBuffer(&pBuffer); // this is the BitmapData
// Converts a sample with multiple buffers into a sample with a single IMFMediaBuffer which we Lock in memory next...
// IMFMediaBuffer represents a block of memory that contains media data
hr = pBuffer->Lock(&pBitmapData, NULL, &cbBitmapData); // pBuffer is IMFMediaBuffer
/* Lock method gives the caller access to the memory in the buffer, for reading or writing:
pBitmapData - receives a pointer to start of buffer
NULL - receives the maximum amount of data that can be written to the buffer. This parameter can be NULL.
cbBitmapData - receives the length of the valid data in the buffer, in bytes. This parameter can be NULL.
*/
私はIMFMediaBufferに精通していませんが、[MSDN](http://msdn.microsoft.com/en-us/library/ms696261 \(v = vs.85 \).aspx)はこう言っています。バッファに2次元の画像データ(圧縮されていないビデオフレームなど)が含まれている場合は、バッファにIMF2DBufferインタフェースを問い合わせる必要があります。 – user786653
お返事いただきありがとうございます。あなたが私自身が投稿した答えによってわかるように、私は期待していた種類のポインタ算術を使って問題を解決しました。そのため、メディアバッファはメモリ内の他の配列と同様に扱うことができます – ComethTheNerd