IMFSample interface (mfobjects.h)

Represents a media sample, which is a container object for media data. For video, a sample typically contains one video frame. For audio data, a sample typically contains multiple audio samples, rather than a single sample of audio.

A media sample contains zero or more buffers. Each buffer manages a block of memory, and is represented by the IMFMediaBuffer interface. A sample can have multiple buffers. The buffers are kept in an ordered list and accessed by index value. It is also valid to have an empty sample with no buffers.

Inheritance

The IMFSample interface inherits from IMFAttributes. IMFSample also has these types of members:

Methods

The IMFSample interface has these methods.

 
IMFSample::AddBuffer

Adds a buffer to the end of the list of buffers in the sample.
IMFSample::ConvertToContiguousBuffer

Converts a sample with multiple buffers into a sample with a single buffer.
IMFSample::CopyToBuffer

Copies the sample data to a buffer. This method concatenates the valid data from all of the buffers of the sample, in order.
IMFSample::GetBufferByIndex

Gets a buffer from the sample, by index.
IMFSample::GetBufferCount

Retrieves the number of buffers in the sample.
IMFSample::GetSampleDuration

Retrieves the duration of the sample.
IMFSample::GetSampleFlags

Retrieves flags associated with the sample.Currently no flags are defined.
IMFSample::GetSampleTime

Retrieves the presentation time of the sample.
IMFSample::GetTotalLength

Retrieves the total length of the valid data in all of the buffers in the sample. The length is calculated as the sum of the values retrieved by the IMFMediaBuffer::GetCurrentLength method.
IMFSample::RemoveAllBuffers

Removes all of the buffers from the sample.
IMFSample::RemoveBufferByIndex

Removes a buffer at a specified index from the sample.
IMFSample::SetSampleDuration

Sets the duration of the sample.
IMFSample::SetSampleFlags

Sets flags associated with the sample.Currently no flags are defined.
IMFSample::SetSampleTime

Sets the presentation time of the sample.

Remarks

To create a new media sample, call MFCreateSample.

Note  

When you call CopyAllItems, inherited from the IMFAttributes interface, on an IMFSample, the sample time, duration, and flags are not copied to the destination sample. You must copy these values to the new sample manually.

 
This interface is available on the following platforms if the Windows Media Format 11 SDK redistributable components are installed:
  • Windows XP with Service Pack 2 (SP2) and later.
  • Windows XP Media Center Edition 2005 with KB900325 (Windows XP Media Center Edition 2005) and KB925766 (October 2006 Update Rollup for Windows XP Media Center Edition) installed.

Requirements

Requirement Value
Minimum supported client Windows Vista [desktop apps | UWP apps]
Minimum supported server Windows Server 2008 [desktop apps | UWP apps]
Target Platform Windows
Header mfobjects.h (include Mfidl.h)

See also

IMFAttributes

Media Foundation Interfaces

Media Samples

Sample Attributes