MPEG-2 Program Stream Multiplexer Filter for DVR (Windows Embedded CE 6.0)
1/6/2010
The multiplexer filter transforms the incoming Audio and Video Elementary Streams into a single DVR engine-compliant program stream.
The main requirements for a DVR Engine-compliant MPEG-2 Program Stream are:
- Fixed 2Kb Pack size
- Each I-frame must fit into a single DirectShow media sample, to enable indexing for trick modes. The coded I-frame should be the only video data in the sample. Audio content is OK.
If you provide a MPEG-2 program stream that is already compliant with the DVR engine, then you do not need to use this filter. You will be responsible for providing a necessary solution to convert the signal into a MPEG-2 Program Stream and directly connect it to the DVR Engine Core.
The filter has two input pins, one for the video stream and one for the audio stream. Both pins expose IPin and IMemInputPin interfaces.
Filter Property | Description |
---|---|
Filter Interfaces |
|
Input Pin Media Types |
MEDIATYPE_Video MEDIASUBTYPE_MPEG2_VIDEO MEDIATYPE Audio MEDIASUBTYPE_DOLBY_AC3, MEDIASUBTYPE_MPEG2_AUDIO. |
Input Pin Interfaces |
IMemInputPin, IPin. See remarks below. |
Output Pin Media Types |
MEDIATYPE_STREAM MEDIASUBTYPE_MPEG2_PROGRAM |
Output Pin Interfaces |
None |
Filter CLSID |
CLSID_DVRProgramStreamMux |
Property Page CLSID |
None |
Executable |
Dvrpsmux.dll |
MERIT_DO_NOT_USE |
|
|
Remarks
The input and output pins inherit from the CBasePin class and support no added interfaces. The Filter inherits from the CBaseFilter class and also exposes an IPropertyBag.
This filter supports a number of properties:
- rate_bound
- program_mux_rate
- Video P-STD_buffer_scale
- Video P-STD_buffer_size
- Video P-STD_buffer_bound_scale
- Video P-STD_buffer_size_bound
- Audio P-STD_buffer_scale
- Audio P-STD_buffer_size
- Audio P-STD_buffer_bound_scale
- Audio P-STD_buffer_size_bound
The IPropertyBag properties correspond precisely to fields of the same name in the resulting MPEG-2 Program Stream pack and PES headers. Users can look in the MPEG-2 Systems-level spec (ISO/IEC 13818-1) for descriptions of these properties. The DVR Engine does not use these properties, but they are needed to generate a valid MPEG-2 Program Stream.
Whether or not you actually need to set these fields depends on:
- Do you need the filter to generate a strictly valid program stream
- Does the playback decoder in your solution require these values.