IMFSample::GetBufferByIndex Method

Gets a buffer from the sample, by index.

Note

In most cases, it is safer to use the IMFSample::ConvertToContiguousBuffer method. If the sample contains more than one buffer, the ConvertToContiguousBuffer method replaces them with a single buffer, copies the original data into that buffer, and returns the new buffer to the caller. The copy operation occurs at most once. On subsequent calls, no data is copied.

Syntax

public:
HRESULT GetBufferByIndex(
         DWORD dwIndex,
         IMFMediaBuffer **ppBuffer
)  

Parameters

dwIndex
Type: DWORD 

Index of the buffer. To find the number of buffers in the sample, call IMFSample::GetBufferCount. Buffers are indexed from zero.

ppBuffer
Type: IMFMediaBuffer **

[out] Receives a pointer to the IMFMediaBuffer interface. The caller must release the interface.

Return value

Type: HRESULT 

The method returns an HRESULT. Possible values include, but are not limited to, those in the following table.

Return codes
Return code Description
S_OK The method succeeded.
E_INVALIDARG NULL pointer argument, or the index is out of range.

Refer to Media Foundation return codes.

Remarks

A sample might contain more than one buffer. Use the GetBufferByIndex method to enumerate the individual buffers.

Requirements

Header: Declared in mfobjects.h (include mfidl.h).

Library: Use mfuuid.lib.