Microsoft DirectX 9.0 |
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. |