DVBViewer Filter Manual

The manual as CHM help file (50 KB): Download

General Instructions | DVBViewer Filter Property Page | Adjusting the DVBViewer Filter Settings

General Instructions

This manual refers to DVBViewer Filter version 3.5 (or later).

The DVBViewer Filter (DVB Source) is a DirectShow source filter / demultiplexer and one of the DVBViewer key components. Its task is to feed data into the DirectShow filter graph (the chain of playback components), to separate video and audio data that is multiplexed into a single stream and to pass it to the decoders, to translate DVB time stamps into DirectShow time stamps, to inform the application about certain events like format changes, and many things more.

DVBViewer always uses the DVBViewer Filter for live (TV/Radio) playback. It is not possible to select another source filter / demultiplexer for this purpose. The same applies to playback of ongoing recordings and timeshift. However, the DVBViewer options allow to disable the DVBViewer Filter for file playback (selectively per file type), which means, some other suitable DirectShow source filter / demultiplexer that is installed in your system will take over. Please keep in mind that it is not tailored for DVBViewer like the DVBViewer Filter, which means, some things will work differently or not at all, like detection of aspect ratio changes within a file.

The DVBViewer installer automatically installs the DVBViewer Filter. However, there may be updates available in the plugins section of the members area as separate download. For installing an update store the files PushSource.ax, Register_DVBSource.exe and Unregister_DVBSource.exe in the DVBViewer\Filters folder.

If there is more than one DVBViewer installation on your hard disk (e.g. DVBViewer Pro and DVBViewer GE), it is recommendable to register a new DVBViewer Filter version by double-clicking the file Register_DVBSource.exe, in order to make sure that it is used. Please note: Registering / unregistering filters requires administrator rights!

DVBViewer Filter Property Page

For diagnosis and debugging purpose the DVBViewer Filter displays its current state and information about the received video/audio streams on its property page. It may shed a light on what's going wrong if playback is not working as it should.and can be opened in the following way:

The property page allows to open this manual by pressing F1 if it is stored as CHM help file in the DVBViewer installation folder (where DVBViewer.exe is).

This section explains the meaning of various information displayed on the property page and how potential problems are indicated. Please note: If you want to report playback problems in the DVBViewer Forum, it may be helpful to describe what you see on the DVBViewer Filter property page or to attach a screen shot.

Video/Audio Format Information:

If the property page displays no format information, there is no data coming in, or it is encrypted, or there are no PES headers (which means, it isn't a video/audio stream), or (only in case of audio) the format cannot be detected. If the property page displays "???" as video format information, it can't find the expected video headers because the received video type is not the expected type or the headers are not located at the expected position (see "MPEG2 In-Depth Format Detection" option below).

State Information:

Error Handling / Counting:

Usually the host applications responds to these error messages by stopping and re-starting playback in order to re-establish proper conditions, thus letting playback freeze for a moment.

Memory Usage:

Clocks and Time Stamps:

There are two different views of the Video/Audio PTS: If the "Graph" radio button is ticked, the property page displays the DirectShow time stamps as they are passed to the decoders. If the "DVB" radio button is ticked, the property page displays the broadcasted DVB time stamps after a potential wrap-around or discontinuity correction and before they are converted to DirectShow time stamps. Thus the displayed PTS will increase monotonically even if a wrap-around to zero or a time stamp discontinuity (auto-corrected on file playback) occurs.

The Graph PTS are stream time relative. The stream time is derived from the DirectShow reference clock and always starts with 0 after a stop -> run transition. The DVB PTS are PCR relative (see above).

Adjusting the DVBViewer Filter Settings

The property page allows to adjust the DVBViewer Filter settings. The default settings are chosen quite conservatively to fit almost all circumstances. However, in some cases it is possible to solve problems or to achieve more speed and less memory usage by adjusting the settings to special requirements or circumstances.

Please note: Changes that have been confirmed by clicking „Apply“ take effect after channel switching, stop/play or rebuilding the filter graph (except "Use DVB Clock", which requires performing "Playback/ Rebuild Playback" in DVBViewer anyway - see below).

So if the TV/Radio value is too low, you will experience an ongoing or occasional stop-and-go, due to assumed over-buffering. If the value is too high, over-buffering may not be recognized as sensitive as desired. Please note: The value 0 switches the control function completely off!

Over-buffering typically occurs if the filter graph (the chain of playback components) becomes late in relation to the live stream, so the data is not fetched in time, e.g. if playback gets locked for a moment when another video-playing instance starts or stops. If this happens repeatedly, without the control function some seconds of video/audio would gradually queue up in the filter, yielding a kind of unwanted "timeshift from memory".

The default value 0 ms takes into account that additional buffering performed by the audio renderer is sufficient to avoid playback gaps. You may increase the value e.g. to 200 ms in case of jerky / stuttering playback. However, an unnecessary high value lets the DVBViewer Filter occupy memory uselessly, and track bar navigation in the host application becomes less precise.

Decreasing the default value (350 ms) lets playback start faster (particularly noticeable on channel changes). 200 ms will also be ok in most cases. If the value is too low, jerky playback may occur, due to the renderers dropping data with timestamps indicating presentation in the past. Increasing the value leads to more buffering and may trigger the over-buffering control function for TV/Radio playback (see above).The Max Queued Audio values must be increased as well in this case.

This option increases the CPU load, since analyzing H.264 video headers is expensive. Only use it for receiving channels with H.264 video and on-the-fly aspect ratio changes. It is not recommended for HDTV (usually 16:9 throughout), particularly if your CPU is running at its limit.

This option increases the CPU load. Only use it if you have to deal with (rare) MPEG2 streams or files containing headers that are not aligned to the beginning of data packets, but hidden somewhere else in the video data. If the flat search (checkbox unticked) is not sufficient, the DVBViewer Filter displays "???" as video format on its property page, and DVBViewer may display the wrong aspect ratio.

The disadvantage of using the sound card clock is the lack of synchronization with the broadcaster's clock. Even a highly accurate sound card clock may cause playback issues after a very long time of continuous playback. If the sound card clock runs a bit faster, short (mostly inaudible) audio gaps will occur, and later stuttering playback due to a buffer underrun. If the sound card clock runs too slow, data will gradually queue up in the DVBViewer Filter or some other DirectShow component, until a buffer overflow occurs or the DVBViewer Filter's buffering control triggers stop/play in order to reset playback, thus letting it "freeze" for a moment.

If „Use DVB Clock“ is ticked, the timing of TV/Radio playback is based on a clock that is derived from the system clock, but constantly synchronized with the broadcasted Program Clock Reference (PCR). The value displayed as "Clock Drift" on the property page indicates the clock adjustment performed by the DVBViewer Filter. It shows how many milliseconds the broadcaster's clock (PCR) would run ahead of the system clock (positive value) or fall behind (negative value) without adjustment.

If playback is based on a DVB clock the audio renderer resp. sound card must adjust to it, and now things depend on how well and accurately it is done. Cheap sound cards or onboard sound will rather perform a rough adjustment, resulting in slight (mostly inaudible) pitch changes from time to time. High-end sound cards will probably show a more sophisticated behavior. However, if the sound card does a bad job, even clicking noises may occur.

So it is impossible to say which setting is better in general (otherwise there wouldn't be a checkbox). You will have to try...