|
#1
|
||||
|
||||
|
TheaterTek 2.3.1 adds two methods of building custom graphs, the first using the Microsoft GraphEdit application, and the second using an .xml file format for easy legibility. The important consideration here is that both formats are aimed at advanced users. If you're not familiar with Graphedit or using xml, leave it to those that are and take advantage of their work.
What is the point of this? DirectShow, which is the underlying technology from Microsoft linked to DirectX, handles all the codecs that TheaterTek either provides with the product, or makes use of from either Microsoft or other third parties. Although TheaterTek can play many file formats (DVD, Transport Streams, WMV and many others) without any problems, there is becoming an increasing need to use more exotic file formats which sometimes don't 'magically' work and need a little extra help. This is especially so when codec packs are installed on the PC. These have the habit of getting in the way when trying to construct playback and have a detrimental effect. So, in a nutshell, custom graphs allow you to specify EXACTLY which codecs should be used for certain file formats to avoid undesirable side effects, or to specify a 'map' for file types that TheaterTek can't automatically use. Understand .grf files An introduction to GraphEdit is beyond the scope of this FAQ, but it is Microsoft's tool for constructing the sequence and connection order of the codecs that are needed to play a certain file type. In simple terms, a DVD for example needs a DVD Navigator, an audio codec, a video codec, an audio renderer and a video renderer. Graphedit lets you add these components graphically and connect them together. You can then test playback. Saving the graph from Graphedit creates a .grf file which can be used by TheaterTek for that specified file. Understand the xml format New in 2.3.1 is a xml format for specifying the codecs and their connections for a specific file type. It is more manual than using Graphedit, but has the advantage that files can be shared and there is more control over the connections. The format is compatible with the old xml export feature of Graphedit, but also contains some extensions. It is best illustrated with an example: <GRAPH version="1.0"> <FILTER ID="Default DirectSound Device" clsid="{79376820-07D0-11CF-A24D-0020AFD79767}" setclock="yes"> </FILTER> <FILTER ID="Video Mixing Renderer 9" clsid="{51B4ABF3-748F-4E3B-A276-C828330E926A}"> </FILTER> <FILTER ID="NVIDIA Video Decoder" clsid="{71E4616A-DB5E-452B-8CA5-71D9CC7805E9}"> </FILTER> <FILTER ID="NVIDIA Audio Decoder" clsid="{6C0BDF86-C36A-4D83-8BDB-312D2EAF409E}"> </FILTER> <FILTER ID="NVIDIA Transport Demux" clsid="{735823C1-ACC4-11D3-85AC-006008376FB8}"> </FILTER> <FILTER ID="NVIDIA MultiSource Filter" clsid="{C41557C1-256A-481C-AA81-501FFA7D6701}"> </FILTER> <connect direct="yes" src="NVIDIA MultiSource Filter" srcpinnum="1" dest="NVIDIA Transport Demux" destpinnum="1"/> <connect direct="yes" src="NVIDIA Transport Demux" srcpinnum="1" dest="NVIDIA Video Decoder" destpinnum="1"/> <connect direct="yes" src="NVIDIA Transport Demux" srcpinnum="2" dest="NVIDIA Audio Decoder" destpinnum="1"/> <connect direct="yes" src="NVIDIA Audio Decoder" srcpinnum="1" dest="Default DirectSound Device" destpinnum="1"/> <connect direct="yes" src="NVIDIA Video Decoder" srcpinnum="1" dest="Video Mixing Renderer 9" destpinnum="1"/> </GRAPH> This is a sample for playing back Transport streams. The file is divided into two sections, a FILTER list section and a connect section. In the first, all the filters needed for the playback graph are added. There are two compulsory attributes, the ID, which is the name for the filter in the graph, and the clsid, which is the internal guid for the filter as recognized by Graphedit. Optional attributes are setclock, which is usually used on the audio renderer to state that this is the master clock filter, and src which idetifies the source filter. An example: <FILTER ID="MKV Source 0" clsid="{55DA30FC-F16B-49FC-BAA5-AE59FC65F82D}"> <PARAM name="src" value="C:\mewmew-vorbis-ssa.mkv"/> </FILTER> The second section lists the connections between the various pins on the filters and their connection order. Pins can be specified by name, or by number. The distinction is to use srcpin for the name, or srcpinnum for the number. The connectdirect option is used to specify whether the pins should be directly connected, or allow the possibility of intermediary filters to be inserted. Alternatively, you can specify that a particular pin is rendered by using: <render src="MKV Source 0" srcpinnum="1"/> <render src="MKV Source 0" srcpinnum="2"/> This would allow you to avoid connecting each pin explicitly, but let the system build the graph by using the filters that have been added. The only downside of this method is that it is possible for intermediate filters to be automagically added when you don't want them to be. How to name files, and where to place them .grf and .xml files should be placed in the TheaterTek Data folder. In the example above for transport streams, the file should be named ts.xml. In addition, there is flexibility for having a unique graph for a unique file. In this instance, the naming convention is filename.xml and the file should be placed in th same folder as the media file. Technical stuff, and not for the inexperienced, but it adds an additional level of flexibility for those that need it. The addition of the xml format will allow those who are not experienced enough to create the files, to reap the benefits of those that are. Andrew Last edited by TheaterTek; 05-05-2006 at 11:59 AM. |
|
#2
|
||||
|
||||
|
The guid of all components should be static, that includes the video decoder.
Andrew |
|
#3
|
|||
|
|||
|
< removed inappropriate text >
Last edited by PeterSt; 05-01-2006 at 05:12 AM. |
|
#4
|
||||
|
||||
|
No, they haven't changed guid since we started using the nVidia decoders. This is complicated enough, don't confuse people Peter
![]() Andrew |
|
#5
|
|||
|
|||
|
__________________
Mitshubishi HC-3000, HTPC with TT |
|
#6
|
|||
|
|||
|
I notice there is no Data folder with version 2.5. Do you just create the directory DATA and place the graph in there, or should they be placed somewhere else with the new version?
|
|
#7
|
|||
|
|||
|
__________________
GraphEdit support |
![]() |
| Thread Tools | |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Choppy HD-Playback using custom graph | Rathbone | Advanced Configuration | 0 | 11-11-2007 04:57 PM |
| Custom Graphs and the Media Explorer Feature | Gee | Technical Support | 2 | 03-11-2007 10:27 AM |
| Zoomplayer-like custom media graphs | Max Leung | Feature Requests | 0 | 04-19-2006 09:10 PM |
| PC crashes when using custom res and TT 2.1.1 | Jonathan DA | Technical Support | 1 | 08-31-2005 01:41 PM |
| Custom Resolution Guide for TheaterTek HDTV users | Karnis | Hints & Tips | 2 | 01-17-2003 12:48 PM |