MPEG-1 Stream Splitter Filter
[The feature associated with this page, DirectShow, is a legacy feature. It has been superseded by MediaPlayer, IMFMediaEngine, and Audio/Video Capture in Media Foundation. Those features have been optimized for Windows 10 and Windows 11. Microsoft strongly recommends that new code use MediaPlayer, IMFMediaEngine and Audio/Video Capture in Media Foundation instead of DirectShow, when possible. Microsoft suggests that existing code that uses the legacy APIs be rewritten to use the new APIs if possible.]
This filter splits an MPEG-1 system stream into its component audio and video streams.
Label | Value |
---|---|
Filter Interfaces | IAMMediaContent, IAMStreamSelect, IBaseFilter |
Input Pin Media Types | Major type: MEDIATYPE_Stream Subtypes:
|
Input Pin Interfaces | IMemInputPin, IPin, IQualityControl |
Output Pin Media Types | Major type: MEDIATYPE_Audio or MEDIATYPE_Video Subtype: MEDIASUBTYPE_MPEG1Payload or MEDIASUBTYPE_MPEG1Packet See MPEG-1 Media Types |
Output Pin Interfaces | IPin, IMediaSeeking |
Filter CLSID | CLSID_MPEG1Splitter |
Property Page CLSID | No property page |
Executable | quartz.dll |
Merit | MERIT_NORMAL |
Filter Category | CLSID_LegacyAmFilterCategory |
Remarks
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.
Related topics