MPEG-1 Stream Splitter Filter
This filter splits an MPEG-1 system stream into its component audio and video streams.
|Filter Interfaces||IAMMediaContent, IAMStreamSelect, IBaseFilter|
|Input Pin Media Types||
Major type: MEDIATYPE_Stream
|Input Pin Interfaces||IMemInputPin, IPin, IQualityControl|
|Output Pin Media Types||
Major type: MEDIATYPE_Audio or MEDIATYPE_Video
Subtype: MEDIASUBTYPE_MPEG1Payload or MEDIASUBTYPE_MPEG1Packet
|Output Pin Interfaces||IPin, IMediaSeeking|
|Property Page CLSID||No property page|
This file supports pull mode via IAsyncReader only; it does not support push mode.
Because MPEG-1 content is not indexed, seeking can be very approximate. It is usually good for a fixed bitrate MPEG-1 system stream (which is usually hardware generated for video CD).
The filter supports the IAMMediaContent interface for retrieving ID3 metadata.
Not all MPEG samples have time stamps. The lack of a time stamp on an MPEG sample is not an error. For filter developers, this means that you should not return an error code from your input pin's Receive method if IMediaSample::GetTime fails. If Receive returns any value other than S_OK, it will cause the splitter to stop sending samples.
If the file contains a video stream, the MPEG-1 Stream Splitter supports seeking by frame number. To enable frame-based seeking, call IMediaSeeking::SetTimeFormat on the Filter Graph Manager with the value TIME_FORMAT_FRAME.