Share via


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

MERIT_DO_NOT_USE

Filter Category

 

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.

See Also

Concepts

Supported DirectShow Filters
DirectShow Registry Settings