- UID
- 468
- UCC
-
- 声望
-
- 好评
-
- 贡献
-
- 最后登录
- 1970-1-1
|
发表于 2007-12-4 02:37:29
|
显示全部楼层
安装DShow View .9 (12-22-05)
然后运行,选X3目录,点"Load The Graph",看右边有没有红的.
具体操作见下[http://forum.egosoft.com/viewtopic.php?t=113628]:
3-16-06
Alas, the tool has done what it set out to do, fix peoples codec issues and bring to the forefront what was going on with the codecs.
The X3 1.4 patch now automatically properly sets the prefferred codecs.
The only point in using the tool from here on out is to test your directshow install, where the tool will just confirm if a bad directshow configuration is really a culprit, or also if you want to see what other files are still attaching to X3 (you never should be seeing other codecs anymore, if you do there is a problem).
All good things must come to an end.
Glad it helped some of you along the way.
Major Revision: 1-5-06
This information may seem like a lot to read, but it is all here to help you get the big picture, which is required to eliminate confusion in this area. The part that is not really required is at the bottom and is noted with the blue line.
What is this and why do I need it? :
X3 is tempermental with many different codec’s. Certain codec’s combined together can lead to problems ranging from overall performance issues (cutting it in half or more) to stability issues in this game. The problem is magnified because there is also no way in Windows to see which codec’s are actually used by X3 and there is no way to adjust them (this is not referencing the audio codec encoders which can be adjusted with a Windows GUI). So to rule out this common problem that X3 has with the multitude of different codec’s, the DShow Viewer tool was made to see what codec’s X3 is using and how to straighten these problems out. This tool helps you to make sure that X3 uses the default Microsoft DirectShow codec’s and filters. These default codec’s are on everyone’s computer, and is what X3 uses on a new Windows install before additional codec’s are installed by various means. It is a good idea to rule out codec’s for crashes, sound looping, garbled sound and general performance.
Background:
A lot of applications install codec’s that you do not ever know about, more than you think. Furthermore the codec’s are set to be used in the priority that the developer of the codec thinks they should be set with. In essence, if they think they have the best codec for the job, they will set it with the highest priority to override those previously installed on your computer. This priority is called merit. A higher merit indicates a higher priority. So when an application initializes a sound or video file, the codec that handles that media type, that has the highest merit, will be used. Since X3 does not work well with many 3rd party codec’s this presents a real problem, but now there is a workaround. Prior to this tool people installed codec packs as a brute force method hoping it would install codec’s at higher priority and fix their problems and not make them worse. Sometimes it helped, sometimes it made things worse, but one thing for sure, you never knew what was really going to happen and their was no way to tell what else it would effect. If Russian roulette is your game, and this is too much work, then a codec pack may be for you. If it doesn’t work you will be back and will have more to undo. If you take a bit of time to work through this, it will produce an expected result and may pay off in the long run.
Game issues that some have experienced prior to rearranging their codec’s:
Some experienced crashes or other freezes and startup errors. (Codec’s are not the only cause of these, but a big part)
Music, speech and sound playback issues including skipping speech, garbled sound which is many times due to these codec’s and filters and can be rectified by changing their merit.
Many have seen large performance increase, myself included.
How X3 Handles Audio:
The audio in X3 is made up of 4 major aspects: Music, speech, movies and sound effects. Each of these have an underlying set of filters that plays that individual aspect. That is why a gamer can have a problem with just that one audio aspect. Furthermore, they may have a problem with performance with no audible or visible indication that they actually have a codec problem until they run this tool. The codec’s are loaded into memory and are used throughout the game and sometimes almost constantly, so they have quite an effect on the game. Performance boosts can be expected when using the proper splitters and codec’s which may be anywhere from negligible to doubling performance which has been witnessed in busy sectors depending on the codec’s being used.
Here is how it works: :
The "DShow Filter Viewer" connects directly to your game files and programmatically initiates a DirectShow graph. This way you can see exactly which filters are configured on your PC to be used by DirectShow.
You press the “Load the Graph” button and it connects to each of the necessary music, sound, speech, movie files and:
On the right side is an actual "live" graph just made from your X3 installation and it highlights all the "not preferred" or potentially troublesome filters in red.
The “InterVideo Audio Decoder” shows up in the graph (in red) because it has a higher merit setting than the "Mpeg Layer-3 Decoder" that should be here.
On the left side is the entire list of direct show filters on your computer which I color coded, and the preferred Microsoft filters that are not being used, that should be, are highlighted in green. In the graph on the right side, you also see the descriptions column which shows the different functions that you hear or see in the game and the associated filters used for that category to the right of it. This can help you recognize that if the “background music” isn’t sounding right then it’s most likely due to the “InterVideo Audio Decoder” highlighted in red. This descriptions column information is very helpful if you have a lot of red codec’s from installed codec packs and don’t want to change them all back to the default Microsoft filters, but only want to change the section you are having trouble with. In the above picture there is a link that says "Show me what I should be seeing here". It is a cheat sheet to show you what preferred filters and codec’s you should be seeing in the graph.
Example of how to fix this issue highlighted in red:
Currently the tool is only a viewer and you can’t make changes with it. You need to get another companion tool called Direct Show Filter Manager (linked below).
So to fix the above problem with the “InterVideo Audio Decoder” that was highlighted in red, I open up Direct Show Filter Manager (DSFMgr for short). Remember the two filters were highlighted in the DShow Viewer Red=bad, Green = good. So now we find them in the DSFMgr either by actual codec name or filename.
In the picture below you will see the bad one at the top, and the good one at the bottom.
This is where we adjust the merit of the filters. In this picture from DSFMgr at the top you see the “InterVideo Audio Decoder”, and its merit is set real high.
It is set much higher than the “MPEG Layer- 3 Decoder” at the bottom. Remember that a codec installer decides what priority they are installed with. So just by lowering that merit of the “InterVideo Audio Decoder” down below the "MPEG Layer-3 Decoder" on the bottom - It fixes our problem.
It is changed by double clicking on the codec, and a new window appears with a slider to set the merit, so it is easy to change you don’t have to type numbers.
A log out or reboot is necessary for windows to accept merit changes, do not forget that, because your changes won’t really take effect until you reboot.
After a reboot I restart the DShow Viewer, press the "Load the Graph" button, which then reinitializes the DirectShow graph from the game files again, and the red filter is gone and the MPEG Layer-3 Decoder has taken its rightful place because now there are no other codecs that have a higher merit for playing back MP3 than the "MPEG Layer-3 Decoder".
We need to attach to X3, we are almost done:
There is a button called "Attach to X3" that is a required to use in order to get the most out of this tool. Because for reasons unknown to me, X3 doesn't always follow the default DirectShow graph. Meaning your graph can be all ok with no red but there are most likely still problems to resolve. We have to double check if X3 is using other filters, which most times it is even though your default DirectShow graph is ok. There is no known way to anticipate which codec’s X3 will actually use for sure, without attaching to it. After clicking the "Attach to X3" button there is some short directions to start X3 in windowed mode and then you finally click the "Get Files" button:
Two codecs are found that are unexpected (comdlg32.dll is a file opened by one of the codec’s and will disappear when we remedy the problem). You can right click on the files listed here and get properties on them to better find out what they are.
The first picture of DShow Viewer showed that in our graph the “MPEG I Stream Splitter” is what it is supposed to be being used for all our media. Instead, when we attach to X3 we see it is actually using a “RealMedia Splitter”.
Now we go back into DSFMgr to check priorities and see if we can figure out why this is happening and how to fix it. Remember it's usually just a matter of higher or lower merit, unless something else is wrong, which is rare and someone in this thread can help you with that if it comes up.
Here we see what I found in Directshow Manager
In DSFMgr we see that the two splitters, the one X3 is using and the "MPEG I Stream Splitter" are the same merit, why X3 is choosing to use the other one, when the graph is using the correct one? I don't really know. But we just raise or correct splitter to fix our issue. Just double click the “MPEG I Stream Splitter” and change the slider to ‘preferred’ and after a reboot that fixes our problem with this wrong splitter being used by X3. In a future version of the application it is planned to take a snapshot so you can undue your changes but for now it is wise that you write down the changes that you make incase you make a mistake. The other “Wave Parser” that showed up in red when Attaching to X3, is fixed the same way. I then rebooted and started the DShow Viewer again, attached to X3, and everything is clean as a whistle, no red anymore. No codec problems!
Does red really mean bad?
Sometimes other files, other than codec’s, will show up as red when attaching to X3. Not everything that is highlighted in red in the 'Attach to X3' screen is bad, it's just unexpected. It shows files that are unexpected compared to a base windows system install. The effect of certain files like security software hooks and such are still unknown as to whether they impact stability. Eventually an exclusion list will color code files differently that are known not to be codec’s.
Checking your Files:
There is one last thing for now. In the tools menu there is a file checker. It double checks your system files against a database of original version of XP SP2, MP10 and DX9C files. Because what good is adjusting DirectShow filters and codec’s if their are issues with your core Media Player files or your DX9C files. Anyway, this part is in its infancy and has a lot more room to grow, but it will show you any outdated files, and then you can try re-installing the proper Module.
Summary of Instructions:
Use the Load the Graph button. Any filters in red can be replaced by the green highlighted in the list on the left. Use the cheat sheet for help.
Use DSFMgr to adjust merit, just double click the filter. Higher merit is higher priority. Just raise the merit of the green ones unless the red ones are really high like our example above, then the red should be lowered below the green.
Make sure that when you double click a filter in DSFMgr that it actually brings up the codec you clicked, sometimes it brings up a different one shown at the top of it's window.
Reboot your computer for changes to take effect.
If your graph is fine which it is for many then we now take the next required step of Attaching to X3.
Minimize the program then start X3 in windowed mode as an Aspiring Explorer, fire the weapons to initialize the WAVE sound system.
Alt/Tab to the DShow Viewer.
Press the Attach to X3 button and see what X3 is using.
Goto DFSMgr to lower the merits on those filters.
Remember about the little blue links on every page to help you along the way.
When you need help just use http://imageshack.us/ to post screen shots of what you are seeing on your screens and individual setups. I am really interested to see all the different issues and I will help walk some folks through some of the issues here, especially the stickier ones.
Basic Pre-Requisites(Be sure these are handled before proceeding):
It is imperative that you rule out all other possible issues before proceeding to assume codec’s to be your only issue.
Use Driver Cleaner and get latest drivers for your video card and sound card.
Reinstall DirectX9c from the game CD/DVD and Media Player 10 from Microsoft.
Download latest motherboard drivers this can be very crucial especially with onboard sound cards.
If you have built-in onboard sound, just know that latency issues may affect performance at the very least.
Requirements for the program:
-Windows XP
-Windows 2000 (untested) but may work for codec’s, but will not with the file checker tool.
-For File Checker tool to show valid results, requires: XP SP2, Media Player 10, DX9c
-Support and feedback will be handled in this thread.
Requires XP
Download Here: DShow View .9 (12-22-05)
{link modified by CBJ}
Here is the DirectShow Filter Manager to actually adjust the merits:
http://www.softella.com/dsfm/index.en.htm
Below is additional background and features because some folks may want to know more.
_________________________________________________________________________________
If you are concerned that changing priority here may have a bad effect, here is something to think about. Just realize the bad effect is already present because every time you install a program that has new DirectShow codec’s (creative sound software, burning software, DVD players, list goes on and on, even programs you wouldn't expect) they add new priorities that may supersede the ones before that are handling a certain function, everybody wants to be on top, I guess.
What are these Splitters?
Splitters and Parsers sit between the file and the codec. They are always used. In the case of MP3 playback, which is always in use, a poor splitter that is handling MPEG3 will definitely hurt overall performance or worse.
Testing Performance of your Codecs (This feature is planned to grow)
There is a way to check the performance of your current filters. You can initialize the the actual music, sound effects, movies with the exact filters you see in your graph like to view this:
Here you see the cpu useage for the actual movie, sound, etc. based on the exact filters you see in the graph that are currently loaded on your PC. When a file is playing you can right click on individual filters and see errors they have (Some may report alot of errors and dropped frames) and also you can look at video decoder details liked dropped frames and other goodies depending on your current direct show filter configuration.
* Some asked how I got the preferred list of filters? It's simple, those are the default Microsoft Directshow filters that should be handling those sound and audio tasks. Every PC properly configured has them, infact it's mostly one file as you can see called Quartz.dll (Installed with DX9C), the other, wmspdmod.dll is part of Media Player. That is the jist of it.
All of this comes from well over 100 hours of research and testing, not including tool development.
* When looking at the WMSpeech Decoder (wmspdmod.dll for speech) in dfsmgr you will see unknown module if you have Media Player 10, like this:
This is normal, the application doesn't know how to interpret the latest media player data. No current tool can raise it's merit, nor should it need to be. If you don't see it in the list at all, well that does point to a problem.
* I mentioned it , but is worth repeating, you have to log out or reboot for the merit adjustments to actually take effect.
* Their is another tool that can help you diagnose any errors with your filters if they are not registered properly, etc, which definitely causes issues and can come up at times. It also does merit/priority adjustments. Infact, sometimes you will see entries in this tool that you do not see in DSFMgr and vice versa. For most people though, just keep it simple with two tools, you probably won't need this unless you are getting a lot of red show up, or you want to be more thorough.
Filmerit - http://www.free-codecs.com/download/Filmerit.htm
* Make sure you use the attach to X3 function, many times the real problems show up there.
Features not mentioned or explained:
* You can double a click on a cell to copy contents to the clipboard for pasting.
* In the grid on the right, right clicking in column 1 allows you to play the actual media, with a loop function as well. It 100% uses the exact codec’s listed right next to it whether they are preferred or not preferred. While the media is actually playing you can right click in column 2 and view the actual properties of the filters in realtime (only the names of the ones in use will provide a "view properties"). Here you can see dropped frames and such. Default Windows codec’s perform excellently here. If you have onboard sound you may see an impact to your fps.
* In the filename column on both the grid page and the attach to X3 page, you can right click on the filename to see file properties quickly.
* Something that isn't currently featured in the application is the ability to see the current Default DirectSound Device in the live graph. Certain codecs can and do override the "Default DirectSound Device". Just as an example ReClock may be a great codec for video playback but it's effect in this game wasn't beneficial as it becomes the Default DirectSound Device. This would impact every aspect of sound and video in the game and overall performance as well. As a work around to identify them, these codecs still will show up in red when using the attach to X3 function, although their function as the Default DirectSound Device won't be obviously recognized. Other codecs like DivXG400 and FFDshow, as well as others, have this ability to become the Default DirectSound Device (I haven't tested either of those two). One individual has mentioned the DivxG400 caused him issues in the game until he removed it, which is understandable because it' impact is global. |
|