Log in

View Full Version : how to make AvsPmod use specific decoder for the frame-by-frame preview


Marin85
30th August 2011, 00:39
I have been lately testing various software codecs on my system for the purposes of optimal playback, and at some point I somehow managed to mess up my setup of AvsPmod+Avisynth+ffdshow+Haali in such a way that AvsPmod no more uses ffdshow and its very much needed OSD for the built-in frame-by-frame preview.

I have played only with combinations of the codecs FFDshow, LAV filters (audio, video, splitter), LAV CUVID, CoreAVC, DivX+ and the players MPC-HC, Potplayer. Right now, I have only MPC-HC, ffdshow, LAV audio and LAV CUVID installed. I have checked multiple times that the ffdshow is installed with the support for Avisynth as well as that the Avisynth and OSD options in the ffdshow configuration utility are enabled, but AvsPmod still keeps using some "undefined" decoder for the frame-by-frame preview. Things I have tried so far without result:

1) Uninstalling everything and installing only AvsPmod+Avisynth+ffdshow+Haali;
2) Fixing broken directshow filters with the CodecTweakTool;
3) Setting preferred decoders with the Win7DSFilterTweaker utility.

Before I uninstalled CoreAVC, AvsPmod was already using it instead of ffdshow for the preview. I thought that uninstalling CoreAVC would fix the problem, but I was wrong. Right now, AvsPmod is using ffdshow audio decoder, Haali and some unidentified video decoder. I am doing this on Windows 7 x64 and I am using DirectShowSource(...) to open some .mkv files.

I appreciate if someone could help out with this problem. If possible, I would like to keep both ffdshow for the purposes of AvsPmod and LAV CUVID for playback purposes since the latter gives me gpu-assisted VC-1/AVC decoding (via CUDA) compatible with the MadVR renderer.

Thanks in advance,
Marin

Gavino
30th August 2011, 09:43
I somehow managed to mess up my setup of AvsPmod+Avisynth+ffdshow+Haali in such a way that AvsPmod no more uses ffdshow and its very much needed OSD for the built-in frame-by-frame preview.
...
I am using DirectShowSource(...) to open some .mkv files.
AvsP[mod] doesn't use any decoder at all - it just displays whatever Avisynth provides. The problem therefore resides in your DirectShow setup.

What decoder is used when you play the .mkv file in WMP?
GraphEdit is a useful tool for investigating codec problems.

Marin85
31st August 2011, 01:15
AvsP[mod] doesn't use any decoder at all - it just displays whatever Avisynth provides. The problem therefore resides in your DirectShow setup.
This makes things much clearer now. Thank you for this clarification!

FYI, applying Win7DSTweakerTool and rebooting Windows again appear to have fixed the problem.

I have WMP disabled from Windows features because there are certain other components I am not very much fond of. However, with the help of GraphEdit it appears that Avisynth used to use Microsoft DTV-DVD Video Decoder. This brings me to the related question: assuming there are different DS video decoders capable of H.264 installed, then what determines which decoder will be called when using DirectShowSource(...) in Avisynth?

Gavino
31st August 2011, 09:04
what determines which decoder will be called when using DirectShowSource(...) in Avisynth?
That's largely determined by the priority assigned (by the user or by default) to the various DirectShow filters, but may also be influenced by the pixel_type parameter of DirectShowSource.
(For details of this, see http://avisynth.org/mediawiki/DirectShowSource.)

Marin85
12th September 2011, 17:37
That's largely determined by the priority assigned (by the user or by default) to the various DirectShow filters, but may also be influenced by the pixel_type parameter of DirectShowSource.
(For details of this, see http://avisynth.org/mediawiki/DirectShowSource.)
I see now how things work. Part of my confusion was caused by the fact that I had overseen to specify the preferred decoder for VC-1 streams that I mistakenly thought of as AVC due to bad naming... Thanks again for taking the time to clarify things!