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
Subtypes:
  • MEDIASUBTYPE_MPEG1System
  • MEDIASUBTYPE_MPEG1VideoCD
  • MEDIASUBTYPE_Audio
  • MEDIASUBTYPE_Video
See MPEG-1 Media Types
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.

DirectShow Filters