The manual as CHM help file (50 KB): Download
General Instructions | DVBViewer Filter Property Page | Adjusting the DVBViewer Filter Settings
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!
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:
DVBViewer Pro/GE: Select the „Settings/ Filters/ DVB Source“ menu item. It is only available if the DVBViewer Filter is used.
TSPlayer: Right-click the Player Tab and select the DVB Source menu item.
TransEdit: Right-click the Preview Window.
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:
The first line of the property page informs about the Video Format, as read from the video headers: Video type, aspect ratio, resolution, frame rate, current bit rate (calculated as sliding average).
The second line informs about the Audio Format, as read from the headers: Audio type, number of channels, sample rate, bit rate.
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).
Video/Audio State informs about the current state of video/audio processing:
No data: No video/audio data is received, or the data is encrypted. When the DVBViewer Filter receives an encrypted TV/Radio stream (e.g. because the CAM is not working), it updates the Clock (PCR, see below) continuously, but displays no PTS.
Enabled/Disabled: Video/Audio data is coming in, and passing it to the decoder is enabled/disabled by the host application (DVBViewer).
Connected/Unconnected: The DVBViewer Filter's video/audio output pin is connected / not connected to a decoder.
Reconnected: Connecting to the decoder has been repeated due to a format change (while the DVBViewer Filter is connecting to decoders it informs them about the format). Reconnection may occur if one of the „Options/ DirectX/ TV/Radio Pre-Format detection" checkboxes is ticked.in DVBViewer and important parameters of the actual format differ from the previous format, e.g. the video resolution or the number of audio channels. Format detection before TV/Radio playback starts is configurable, because it delays channel switching a bit, but is only necessary for decoders that are not able to auto-detect format changes.
Filter State informs about the current playback state (stopped, paused, running).
Error Handling / Counting:
Last Error informs about the last error message that has been sent to the host application:
Buffer overflow: There are no more buffers available for storing incoming data. Usually triggered if a decoder/renderer works too slow or doesn't fetch data at all.
PCR/PTS Gap (TV/Radio only): A time stamp discontinuity (an unreasonable gap between two subsequent time stamps) has been detected, that usually spoils playback.
Graph too late (TV/Radio only): The filter graph (the chain of playback components) is behindhand with processing data. Triggered by the configurable over-buffering control. See "Max Queued Audio for TV/Radio" below.
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.
Discontinuities (TV/Radio and TS files only): Counts the number of gaps in the transport stream since the last stop -> run transition by examining the continuity counter in the TS headers. A continuously increasing number of discontinuities is a sign of reception / hardware / driver problems and usually causes heavy playback disturbances.
Queued Video/Audio Buffers: The number of buffers (8 KByte each, not necessarily filled completely) that are waiting to be fetched by the decoder.
Allocated Buffers: The total number of buffers (8 KByte each) that are occupying memory, or with other words, the maximum number of buffers required so far. Usually some of them are empty "stand-by" buffers.
Clocks and Time Stamps:
Clock Drift (TV/Radio only): Displays the deviation between the system clock and the broadcaster's clock since the last stop -> run transition in "Use DVB Clock" mode (more about in the following section).
Clock (PCR): The original Program Clock Reference, displayed as broadcasted (without any correction) and updated every second. Allows a receiver to synchronize its own clock resp. the playback speed with the rate of incoming data (see "Use DVB Clock" option below). This 27 MHz clock is not meant for human use, because it wraps around to zero after approx. 26:30 hours.
Video/Audio PTS: The Presentation Time Stamps embedded in the video/audio data packets specify the time of presentation (playback) and ensure video/audio sync. It is up to the renderers to (dis)play the data in time.
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).
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).
Max. Queued Audio: TV/Radio applies to live streams. The value specifies how many milliseconds of audio are allowed to queue up in the DVBViewer Filter. If it becomes more, the DVBViewer Filter assumes over-buffering and sends an „Graph Too Late“ error message to the host application, which in return tries to clear the situation by stopping an re-starting playback (see „Last Error“ in the preceding section).
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".
Max. Queued Audio: File applies to file playback. The value specifies how many milliseconds of audio are allowed to queue up in the DVBViewer Filter. If it becomes more, reading from file is stopped until the decoder has fetched the surplus data. In this way the DVBViewer Filter adjusts the read data rate to the playback data rate.
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.
Latency applies to TV/Radio and File playback. The value specifies how many milliseconds the DVBViewer Filter shifts the presentation time stamps of the data packets to the future when passing them to the decoders, thus considering the time that is required for processing (= decoding and rendering).
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.
Keep Track of H.264 Aspect Ratio lets the DVBViewer Filter read all H.264 video headers and report aspect ratio changes to DVBViewer, if ticked. If this option is switched off (default) the DVBViewer Filter only reads the first video header after stop/play and does not detect subsequent dynamic aspect ratio changes.
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.
MPEG2 In-Depth Format Detection extends the search for MPEG2 sequence headers (containing resolution, aspect ratio etc.) to the full buffer size.
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.
Check Timestamp Continuity (TV/Radio only). This option lets the DVBViewer Filter send an error message to the host application in case of time stamp discontinuities of more than 5 seconds (which usually spoils playback). DVBViewer responds with stopping and immediately restarting playback, thus resetting the filter graph timing.
Use DVBClock (TV/Radio only) specifies whether the playback timing shall be based on the sound card clock (unticked) or a PCR-adjusted system clock (ticked). The PCR ist the broadcasted Program Clock Reference, or with other words, the broadcaster's clock. Please note: A change (after clicking Apply) takes effect when DVBViewer rebuilds the filter graph (chain of playback components). Use View -> Rebuild Graph in DVBViewer.
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...