DVR Output Components (Windows Embedded CE 6.0)
1/5/2010
The following illustration shows the output side of the digital video recording (DVR) DirectShow graph.
In addition to the DVR source module, which is described in DVR Input Components, the output components are comprised of the following:
- MPEG-2 program stream de-multiplexer filter
- MPEG-2 audio and video decoder
- Vertical blinking interval (VBI) renderer
- Video renderer
- Audio renderer
- Audio lip sync filter
- Playback and buffers
MPEG-2 Program Stream De-Multiplexer Filter
This module de-multiplexes the program stream into separate audio and video streams.
For more information about the MPEG-2 program stream de-multiplexer filter, see the reference documentation for the MPEG-2 Program Stream Demultiplex Filter.
MPEG-2 Audio and Video Decoder
You provide these decoders. The MEPG-2 audio and video decoder that you use must support the Rate Change Property Set.
VBI Renderer
The vertical blanking interval (VBI) of a television video signal has historically been used to transmit alternative forms of information such as text and closed captioning. In digital streams, the VBI data is encoded together with the content stream, and must reach the last component of the pipeline, the TV encoder chip, which adds it back in the National Television Standard Committee (NTSC) signal or the Phase Alternating Line (PAL) signal. Support for VBI is provided by the VBI Renderer Filter.
Video Renderer
The existing DirectShow Video Renderer Filter has been updated in this release to render interlaced video formats.
If you plan to implement your own customized video renderer, it must be able to support the IKsPropertySet Interface. Override the IKsProperty::Get method to support the following properties:
If (SetguidPropSet == AM_KSPROPSETID_DVR_DecoderLocation && dwPropID == AM_RATE_DecoderPosition)
Return the time-stamp for the sample that is currently displayed.
If (guidPropSet == DVRENG_PROPSETID_DVR_SupplementalInfo && dwPropID == DVRENG_PROPID_DVR_FirstSamplePosition)
Return the time-stamp for the first sample after a flush has happened.
Audio Renderer
This is the existing Audio Renderer (WaveOut) Filter, with related QFE updates, that is shipped in Windows CE 5.0.
Audio Lip Sync Filter
The Audio Lip Sync Filter is responsible for synchronizing the rate of audio playback to the rate of the incoming A/V stream. It does this by adjusting the time drift between the sink graph clock and the source graph clock.
Playback and Buffers
Recorded content can be permanent or temporary. Temporary recordings are distinguished from permanent recordings by the former's limited buffer size (the maximum size is 30 seconds) and the limited lifespan (which ends when the status of the filter graph changes to STOP).
Source filters can be used to seek and to stream at arbitrary positions within the buffered samples, regardless of recording type.
The source filter will be forced to remain within the bounds of the buffer size. If you search for a position prior to the beginning of the buffer or past the end of the buffer, buffer start and end seeks, respectively.
The rate of replay of the source will be adjusted to match the rate of buffer growth at the end, or, in the case of temporary recordings, the rate of buffer shrinkage at the beginning (in the case of temporary recordings).
Recording buffers are always continuous, that is, you can seek to every position between the minimum seek position and the maximum seek position.