Log in

View Full Version : Why don't Direct Show codecs appear in XP Device Manager?


alexh110
27th November 2011, 12:23
I've been puzzled by this question for years, so it's about time I ask the experts!

Looking under the audio codec list in Windows XP Device Manager, I cannot see the Direct Show or FFD Show audio codecs. Does this mean they are not fully integrated into the system?
I notice that Windows Media Player can make use of Direct/FFD Show; but some of my other software media players cannot (e.g. the KM Player).

I would like to use AAC across all of my media players; but at present it only works in WM Player. I wondered whether the above issue is the source of the problem? If I had AAC listed in Device Manager's audio codecs, would it allow AAC to work on all of my players?

If so, where can I find a suitable install package for the AAC codec?
I've already tried one called CoreAAC; but not only did it not appear in Device Manager, it didn't even appear in the FFD Show codec setup manager! So I don't know how you're supposed to configure it as the default codec?

I'm pretty confused in general about how the system decides which codecs to use, and how to assign defaults where there is a choice of codecs?

LoRd_MuldeR
27th November 2011, 14:42
The question is, why should they show up?

AFAIK the "Codecs" that show up in the Windows Device Manager are VFW (Video for Windows) and ACM (Audio Compression Manager) Codecs. That's a completely different technology, compared to DirectShow.

If you want to list the DirectShow filters installed on your system, I would recommend to use a tool like DirectShow Filter Manager (http://www.softella.com/dsfm/index.en.htm) or GraphStudio (http://blog.monogram.sk/janos/tools/monogram-graphstudio/).

Needless to say that VFW- or ACM-based applications won't be able to utilize DirectShow filters! DirectShow-based applications can use VFW/ACM Codecs though, as DirectShow has a wrapper-filter for VFW/ACM Codecs.

would like to use AAC across all of my media players

Forget about that idea. While DirectShow-based media players, such as Media Player Classic, are able to use "external" DirectShow filters for decoding, they often prefer their own "built-in" decoder filters (by default).

Also many media players, such as VLC Media Player or MPlayer, do not use/need any DirectShow filterers (or VFW/ACM Codecs) at all, because they are not based on DirectShow and thus exclusively use their own decoders.

Last but not least, media players like Winamp or Foobar, ship with decoder plug-in's for all common audio formats (including AAC). If at all, they only fall back to DirectShow as the very last solution...

hello_hello
27th November 2011, 15:35
As mentioned most players use their own "internal" codecs and don't require DirectShow filters. Some let you deselect individual internal filters in which case they'll then use the appropriate DirectShow filter, assuming you have one installed. Some players (such as VLC last time I checked) have a setting to disable internal filters which they completely ignore and continue using them anyway.

Maybe it'd be an idea to list which players you use and which ones won't play AAC.

alexh110
27th November 2011, 16:02
Thanks, that's cleared up some of my confusion.
I use: WM Player, KM Player, VLC, WinAmp, Media Player Classic, FLV Player and SM Player.

The only ones that will play videos from my iPad are WM Player and KM Player; but the latter does not produce any audio.
Since the audio is AAC encoded, WM Player is using the Direct Show AAC codec to reproduce sound; however KM Player can't seem to find an audio filter. I've looked through all it's audio menus, and tried unchecking the internal AAC filters; but it makes no difference.
I think I've set KM Player's external AAC filter to point at the same Direct Show filter that WM Player uses; but it's still not working!

I need to use KM Player, as it allows me to rotate and mirror videos shot in portrait on the iPad, as well as those accidentally shot upside down! But I can't seem to figure out how to get sound.

LoRd_MuldeR
27th November 2011, 16:35
Quite possible the Windows Media Player is actually using a Media Foundation (http://en.wikipedia.org/wiki/Media_Foundation) filter rather than a DirectShow filter ;)

Since Windows 7, the Windows Media Player supports much more audio and video formats "out of the box", but most (all?) of these are implemented as Media Foundation filters.

Media Foundation is yet another technology, intended to replace DirectShow and other "legacy" API's. But, besides WMP, I'm not aware of any player that is based on Media Foundation yet.

Also VLC Media Player and SMPlayer, the latter is a GUI for MPlayer, are "cross-platform" and therefore do not use or need DirectShow filters. Nor VFW or ACM Codecs.

(DirectShow as well as VFW and ACM are Windows-only technologies, that don't exist in the Linux/Unix world)

alexh110
27th November 2011, 17:37
Windows Media Player is definitely using a Direct Show codec for AAC. When I play the iPad video files I can see a blue Direct Show icon appear in the system tray, and when I hover my mouse over it I can see that it's processing the AAC audio stream.

Don't get any blue icon when using KM Player: so for some reason it doesn't seem able to use the Direct Show filters. It ought to be able to, as the KM Player audio menus allow you to select Direct Show filters to be used if the internal ones fail (or are manually deselected). Either KM Player has a bug; or I'm not setting the options correctly.

LoRd_MuldeR
27th November 2011, 17:50
There is no such thing as a "DirectShow" icon. You are probably referring to ffdhsow's icon ;)

Ffdshow is only one DirectShow filter out of many! And, as opposed to ffdshow, most DirectShow filters do not add an icon to the task-bar when they are loaded.

So KMPlayer obviously is not using ffdshow as the audio decoder (because the ffdshow icon doesn't appear), but this doesn't mean that it isn't using some other DirectShow decoder filter!

As said before, it may be using one of its own "internal" decoder filters. Or it may simply pick some other DirectShow audio decoder filter installed/registered on your system.

It's in the nature of DirectShow that there may be several filters installed/registered on the system, which potentially can do the same job. In that case the filter's Merit value decides.

In addition to that, one application may give preference to a certain filter, while another one does not. Last but not least, some DirectShow filters reject to be loaded by specific applications :eek:

Actually ffdshow has a "black list" for applications to reject. It also has a "white list" for applications to accept. These lists are used to exclude "problematic" applications.

alexh110
27th November 2011, 18:12
Now we're getting somewhere! Yes you're quite right it's the ffdshow icon.
I'd assumed that all the Direct Show filters were controlled by ffdshow; but clearly that's not the case.

Pretty sure KM Player is not using an internal filter. It has a "Filters" tab on the menu-bar, and when I click on that it lists the filters being used for the loaded video file. For the iPad videos it indicates the AVC video filter; but under audio filters it says "no filter" suggesting it can't find a suitable decompressor. It also lists the file properties underneath, which show that the audio-stream is AAC. So it definitely recognises the stream-type.

In the KM Player options menu I have set "system default" as the external AAC audio filter, and when you click on the extended options it takes you to the ffdshow audio codec setup menu. This lists all the ffdshow audio codecs and allows you to disable or enable them individually. So I selected the standard AAC codec (the same one WMP was using), and clicked "OK".
However it still doesn't produce audio.

Is there any way to edit the black-list, just in case KM Player is on it?

LoRd_MuldeR
27th November 2011, 18:16
Pretty sure KM Player is not using an internal filter. It has a "Filters" tab on the menu-bar, and when I click on that it lists the filters being used for the loaded video file. For the iPad videos it indicates the AVC video filter; but under audio filters it says "no filter" suggesting it can't find a suitable decompressor.

Either that. Or the "demuxer" filter it uses to read the MP4 file didn't find the audio stream, to begin with.

It also lists the file properties underneath, which show that the audio-stream is AAC. So it definitely recognises the stream-type.

That info might originate from a different component (such as the MediaInfo library), which is not necessarily a part of the playback chain.

Is there any way to edit the black-list, just in case KM Player is on it?

It's in the ffdshow configuration menu on the "DirectShow control" page ;)

Of course in this case you are interested in the configuration menu of the ffdshow audio decoder.

alexh110
27th November 2011, 19:27
Thanks for all your advice, it's good to know how all of this works!

Will try tweaking ffdshow, and if that doesn't work I'll see if there are any options in KM Player to use an external splitter.

alexh110
27th November 2011, 20:06
Problem solved: thanks to you!

It was the splitter as you thought.
I changed the demuxer setting for mov from "KMP MP4/MOV Splitter" to "system default", and that did the trick!