Getting the EVR to work solutions

Apr 4, 2011 at 9:26 PM

Had a bit of trouble getting the EVR to work. Had success with some issues though. Thought I might share...

First of all, setting the VideoRenderingType to EnhancedVideoRenderer in the code or in Xaml and nothing appearing is a sign that the EVRPresenter.dll was not found. There is no error, or even a message in the output window to indicate this. The code quietly just hits an exception and skips the creation of the filtergraph.

The EVRPresenter is a second project in the kit. It seems you have to use the microsoft sdk 7.1 to get it to build otherwise you will get a few undefined externals even though you have loaded all the correct lib's. EVR presenter is a modified version of the EVRPresenter sample in the sdk. So they ARE NOT the same.

The EVRPresenter.dll either has to be registered with regsvr32, or you need to make sure it is in the same place as the project your have built. The DLL is not loaded in the usual manor as the other filters. If your using VisualStudio 2010 you might have a bit of work to get the includes and libs to play nice.

You also need to set the VideoRenderType to "EhancedVideoRender" either in code or as a attribute in the Xaml. There is no fallback to vmr9 so be sure to deal with.

It now works, but seems to be a mem leak detected after closing the app. Also Screen resolution seems to be a little pulled in on the sides when using EVR vrs the VRM9

Hope that helps anybody...

 

May 19, 2011 at 1:19 PM

Hi,

tnx for your post. I could actually understand that evtpresenter is a com dll.I am trying to use EVR but have problem using it in windows XP sp3.I got an exception that Dll is not found, evethough it is located under the executing directory.regsvr32 couldn't register the file, saying that some procedure is missing.Looking with depndency viewer i see that MF.dll and MSVCR90.dll are missing. MSVCR90.dll was missing quite often in other dlls that i used, but MF.dll is new guy...After googling i found that this sll is some Microsoft media dll in Windows 7.
Any idea?
Tnx,Salomon

May 10, 2013 at 8:35 PM
Pasting my response to this from another thread for anybody who is having trouble figuring this one out:
... missing DirectX March 2009 runtimes. If you check out depends.exe, (Dependency Walker), it will tell you what dependency you're missing. For me, d3dx9_41.dll was missing, so I could not register Evr.dll, or use it in the project directory. Once I installed the Mar 2009 D3D9 redistributables I had no problem registering Evr.dll. In production applications, if it is within your rights to do so, you can install DXSetup programmatically with Process.Start() using dxsetup.exe with the argument /silent. Further more, you can silently register a DLL with the command regsvr32 /s <path>. I am not sure if you can bundle just the required dx3d9_41.dll.