Small Filter Guide
Even under perfect reception conditions the DVBViewer may not show the desired results. This is mostly due to the fact that important components for audio and video playback are missing. Also other programs can interfere with the DVBViewer because they altered some registry-settings or installed certain DirectShow-components with a higher merit (a description follows down below). You should study this chapter quite thoroughly in case of having problems. But you might consider the information provided useful, if you're just interested.
What Are DirectShow Filters?
With DirectShow (part of DirectX) Microsoft introduced a very flexible multimedia interface, which is used by almost every modern media player under windows. DirectShow components are often named as filters (although it doesn't apply in each case) and are registered in the system and are so accessible by other programs. In most cases their file-type is .ax, but sometimes also .dll.
Processing audio and video data streams a long chain of such filters can be involved - each one is responsible for a certain function. The DVBViewer and media-players in general only manage those filters or decoders. They are only indirectly concerned with the processing of the data streams.
A compilation of the necessary filters is sent to the DirectShow filter-manager. If you want to play a video-file for example the manager is told to trace the necessary filters for creating the filter graph. Sometimes the automatic building process leads to unwanted results; therefore certain DirectShow based programs can manually adjust the building process, for example determining the use of a certain filter. Usually the manager uses the “best” filter available. “Best” is not to be understood as quality. “Best” is determined by the merit value of a filter. The filter with the highest merit will always be used. The merit value is set by the filter's author. Therefore the results may not be optimal. Fortunately you can modify the merit value.
Which Filters Are Involved?
The first or “main” filter is the source-filter, which provides the data stream received via satellite (consisting of audio, video and if necessary also teletext and EPG).
The DVBViewer features a proprietary source-filter:
- DVBViewer filter (DVBSource): This filter sports an integrated demultiplexer and is used for both live-tv and media playback, there are none of the weaknesses of the Microsoft demultiplexer. A demultiplexer separates the audio and video streams and is responsible for fast seeking in a file, in short it is a parser. .It can also be used for playback of separate .mp2 and .ac3 files.
The next filters in the chain are responsible for decompressing the audio and video data. These filters are the decoders. The decoding is the most difficult and time-consuming step in the whole process. The playback quality depends highly on the decoders.
Reminder: The selected filters have to be installed since the DVBViewer does not bring its own filters.
The end of the chain are the audio- and video-renderers, which send the data via drivers to the graphic- and sound-card. The video renderer can be chosen at Options/Enhanced/Render Output. You'll find a description in this paragraph in chapter 7. You can also set different audio-renderers, but those are only different interfaces to the sound-card (see Settings/Options/DirectShow/Dedynamic Filter).
Experiments With GraphEdit
Before you do any changes to the filter graph you should inform yourself about the filters actually being in use. The first place to look is within the DVBViewer at View/Filters - all used filters are listed there. Unfortunately some of them are not labeled with a meaningful name. Left-clicking one of them opens its property page if available.
For a comprehensive overview of all registered filters in the system you should try GraphEdit from Microsoft. Since it is part of the DirectX SDK, which is a very large file, it is better to search for a download site providing a stand-alone version; you may try http://doom9.org/ (rar-compressed) or http://www.stokebloke.com/video/wmv2avi.php.
GraphEdit shows a filter graph as a diagram and provides an easy way to build an own graph. Here is an overview of the features offered by GraphEdit:
- After selecting Graph/Insert filters a hierarchically arranged list with all available filters appears. In the “Directshow Filters” section you will find - among others - the available MPEG decoders listed with filename and path; this information is needed in order to un-register filters that cause problems (more about it later). Look for names such as ATI, Cyberlink, DVD Express, Elecard, MainConcept, InterVideo, Ligos, nVidia, Sonic, Ulead.
- File/Render Media File lets GraphEdit respectively the filter manager automatically build the graph that is necessary for playing a file. As file you may select any media file. The individual filters are connected like the components of an audio system by their output and input pins. The automatic media file rendering shows, what is used as standard in the system. Clicking on the Play button lets GraphEdit respectively the filter chain play the file.
- File/Connect to Remote Graph connects to the running graph of the DVBViewer and displays it.
- By selecting File/Render URL you may let GraphEdit build a filter graph for TV reception via the SkyStar2 card and to function as a TV set! Proceed as follows:
- Launch DVBViewer and tune the desired channel.
- Open the channel-list, go to the Edit tabsheet and note the Video- and AudioPID displayed there.
- Terminate DVBViewer, launch GraphEdit and select File/Render URL
- Input the following address: b2c2src://VideoPid-AudioPID.mpg (VideoPID and AudioPID stand for the values you have noted). Now a corresponding graph will be build and can be used for playback.
- Graph/Insert Filter lets you insert other filters into the graph. After disconnecting the filters with Edit / Disconnect all, you may re-connect the filters manually pin by pin and build in a different decoder, for example - just drag the mouse pointer from an output pin to the desired input pin. In this way you can find out, how different components affect the playback.
Unfortunately some filters are indicated in GraphEdit by meaningless numbers. In this case it helps to store the entire graph via File/Save as XML and to open the file, which contains additional information, with a text editor. For further details please refer to the GraphEdit help file.
Interventions in the System
If the adjustments offered by the DVBViewer are not sufficient to achieve playback with a desired filter combination, only tweaking the system registry helps. Please note: Never ever simply just remove unwanted filters, since they are registered in the system. The according entries can be found in the Windows registry under HKEY_CLASSES_ROOT. Changes in the registry should only be applied, however, if you know exactly what you do. Otherwise you could permanently compromise your system. There are better and much simpler ways to disable unwanted filters.
If you do not want to remove a filter completely, but achieve that the filter manager does not prefer it, you have to lower its Merit value. This value is located in the registry, but usually encoded and hard to find. Therefore Radlight® provided a small tool, the Radlight® Filter Manager. You can download it in the members' area at www.dvbviewer.com/members.
The register/unregister buttons speak for themselves.
Copy CLSID copies the value into the Windows clipboard so that you can insert it into the corresponding box in the DVBViewer's directshow options.
Navigate jumps to or rather shows you the files belonging to the selected entry, for the Cyberlink Video/SP Decoder those are CLLine21.ax and CLVSD.ax for example.
The dropdown box lets you set predefined standard values for the merit.
The box below the Set Value button allows to enter individual values for the merit (just type in and press Set Value). Have a look at the About tab for further information.