| Microsoft DirectX 8.1 (C++) |

The CMediaSample class defines a media sample that supports the IMediaSample2 interface. The media sample contains a pointer to a memory buffer, and various properties stored as protected member variables.
Media samples are created by allocators, which are derived from the CBaseAllocator class. The CMediaSample constructor receives a pointer to an allocated buffer, along with the size of the buffer. Other properties are typically set and retrieved through IMediaSample interface methods.
The life cycle of a media sample differs from that of most COM objects:
Requirements
Header: Declared in Amfilter.h; include Streams.h.
Library: Use Strmbase.lib (retail builds) or Strmbasd.lib (debug builds).
| Protected Member Variables | |
| m_dwFlags | Sample property flags. |
| m_dwTypeSpecificFlags | Type-specific flags. |
| m_pBuffer | Pointer to the memory buffer that contains the media data. |
| m_lActual | Length of the valid data in the buffer, in bytes. |
| m_cbBuffer | Size of the buffer, in bytes. |
| m_pAllocator | Pointer to the allocator that created this sample. |
| m_pNext | Pointer to the next sample in the allocator's list of samples. |
| m_Start | Sample start time. |
| m_End | Sample end time. |
| m_MediaStart | Media start time. |
| m_MediaEnd | Media stop time. |
| m_pMediaType | Pointer to the media type, if the type has changed from the previous sample in the data stream. |
| m_dwStreamId | Stream identifier. |
| Public Member Variables | |
| m_cRef | Reference count. |
| Public Methods | |
| CMediaSample | Constructor method. |
| ~CMediaSample | Destructor method. Virtual. |
| SetPointer | Sets the pointer to the memory buffer. |
| IMediaSample Methods | |
| GetPointer | Retrieves a read/write pointer to the buffer. |
| GetSize | Retrieves the size of the buffer. |
| GetTime | Retrieves the stream times at which this sample should begin and finish. |
| SetTime | Sets the stream times at which this sample should start and finish. |
| IsSyncPoint | Determines if the beginning of the sample is a synchronization point. |
| SetSyncPoint | Specifies whether the beginning of this sample is a synchronization point. |
| IsPreroll | Determines if this sample is a preroll sample. |
| SetPreroll | Specifies whether this sample is a preroll sample. |
| GetActualDataLength | Retrieves the length of the valid data in the buffer. |
| SetActualDataLength | Sets the length of the valid data in the buffer. |
| GetMediaType | Retrieves the media type, if the media type differs from the previous sample. |
| SetMediaType | Sets the media type for the sample. |
| IsDiscontinuity | Determines if this sample represents a break in the data stream. |
| SetDiscontinuity | Specifies whether this sample represents a break in the data stream. |
| GetMediaTime | Retrieves the media times for this sample. |
| SetMediaTime | Sets the media times for this sample. |
| IMediaSample2 Methods | |
| GetProperties | Retrieves the properties of the sample. |
| SetProperties | Sets the properties of the sample. |