DVR Output Components (Windows CE 5.0)
The following illustration shows the output side of the DVR DirectShow graph.
In addition to the DVR Source module, which is described in DVR Input Components, the output components include the following:
MPEG-2 Program Stream De-Multiplexer Filter
This module de-multiplexes the Program Stream into Video and Audio. See the reference documentation for the MPEG-2 Program Stream Demultiplex Filter.
MPEG-2 Audio & Video Decoder
These decoders are provided by you. The MEPG-2 decoder that you use is required to support the Rate Change Property Set.
VBI Renderer
The vertical blanking interval (VBI) of a television video signal has been historically used to transmit alternative forms of information such as text and closed captioning. For digital streams, the VBI data comes encoded together with the content stream, and has to reach the last component of the pipeline, the TV encoder chip, which adds it back in the NTSC/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, the renderer is required 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 Lip Sync Filter
The Audio Lip Sync Filter is responsible for synchronizing the rate of audio playback to the rate of the incoming AV stream. It does this by adjusting the time drift between the sink graph clock and the source graph clock.
The DVR application needs to put the audio sync filter in manually.
Audio Renderer
This is the existing Audio Renderer (WaveOut) Filter shipped in Windows CE 5.0 with related QFE updates.
Playback and Buffers
Recorded content can be permanent or temporary. Temporary recordings are distinguished from permanent ones by the limited buffer size (max size is 30 seconds) and the limited life time (ended when the status of the filter graph changes to STOP).
Source filters can be used to seek and stream at arbitrary positions within the buffered samples, regardless of recording type.
The source filter will be forced to remain within the buffer bounds: seeking to positions prior to buffer's beginning or past the buffers end will lead to 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 buffer shrinkage at the beginning (in the case of temporary recordings) when these are encountered.
Recording buffers are always continuous, that is, every position between the minimum seek position and the maximum seek position is valid and can be sought to.
See Also
Digital Video Recorder Architecture
Send Feedback on this topic to the authors