Jump to content

Enhanced Video Renderer for XP


Griga

Recommended Posts

People who are still using Windows XP (like me) can use the Vista Enhanced Video Renderer (EVR), as I've just found out. It is installed with .NET Framework 3.0.

 

If you want to try, download the .NET Framework 3.0 Redistributable (easy to find, ask Google) - about 2.8 MB. However, installing it takes some time and comprises an additional 55 MB download from Microsoft. :rolleyes: After this lengthy procedure the EVR can be selected in DVBViewer GE under Settings -> Options -> DirectShow. DVBViewer Pro doesn't support the EVR yet.

 

A short test showed a good picture quality, but different zoom, resizing and aspect ratio issues, depending on the selected decoder. Maybe caused by my antique graphics card (GeForce MX 440, DX 7) and the old NVidia driver (some version from 2004), don't know.

 

That's why I would like to read some reports here about the DVBViewer GE / EVR behaviour under different conditions. Let me know... and don't forget to check if the EVR is really used (see View -> Filters). If the selected decoder doesn't connect to it, DVBViewer GE will fall back to the system default renderer.

  • Like 1
Link to comment

Do you know if Pro is going to support EVR? How big changes are needed?

 

I'm still waiting for a renderer (other than overlay) being able to sync when

OSD is used. GE is fine but not useful with crypted channels. Medial player

for instance uses VMR so that sync is possible. OSD is implemented in a different

way and is not visible in the graph as a separate pin.

Link to comment
evr wont change anything with the osd.

and whats about "Enhanced Video Renderer"-Support?

 

@Griga: works perfectly here with SP2, 8800 GTS, Nvidia Decoder

Edited by spAik
Link to comment
evr wont change anything with the osd. very low on priority list, cause problems are cause by graphics driver not DVBViewer...

 

Do you mean that sync problems are caused by graphics drivers?

Well, both nvidia and ati cards have exactly the same problem.

Link to comment

@spAik: Neither Lars, nor me plan to integrate the EVR filter. The reason is that i think it might be smarter to deal with an own renderer which does not behave different on multiple graphic adapters. We plan to use for the next bigger version of the DVBViewer our own renderer which will use direct3d. I already collected some experience in the last weeks and i'm really looking forward. Especially the way you can manipulate the texture without using any kind of cpu power is damn cool. Sure a lot of the new features will require newer graphic adapters (i have dx9 - dx10 compatible adapters in mind), but it will also works on older cards.

 

Christian

Link to comment
@spAik: Neither Lars, nor me plan to integrate the EVR filter. The reason is that i think it might be smarter to deal with an own renderer which does not behave different on multiple graphic adapters. We plan to use for the next bigger version of the DVBViewer our own renderer which will use direct3d. I already collected some experience in the last weeks and i'm really looking forward. Especially the way you can manipulate the texture without using any kind of cpu power is damn cool. Sure a lot of the new features will require newer graphic adapters (i have dx9 - dx10 compatible adapters in mind), but it will also works on older cards.

 

Christian

 

 

This is an excellent approach cause I want to avoid .NET ....that's why I use omega driver for an ati videocard which has no big problems with OSD. A DVBViewer renderer based on Direct3d is indeed good move.

Link to comment

hm, the EVR wont use any dxva here. does it only support dxva 2.0?

 

@hackbart: i just tried ur direct3d-techdemo... i dont know if there was used dxva? i do lots of multitasking on pc, so i want to keep my DVBViewer-cpu usage low.

Is the picture quality of a direct3d-render better than overlay (or vmr)? or is it just better for osd's and bling-bling-stuff?

Link to comment

You can get rid of any additional post processor - since you can easily improve the image quality by using the pixel shaders instead. This does not cost any additional cpu power since the gpu is doing the job. You also wont have the problem with the messed up display with some nvidia drivers and we do no longer have to keep in mind that a user might seletected the wrong output mode. Especially since vista has a weird behaviour with overlay and honestly i am sick and tired of those stupid vista problem emails which are mostly caused by a selected ovelay mixer.

Oh and yes we can also do more bling-bling stuff in the OSD ;)

 

Christian

Link to comment
...vista has a weird behaviour with overlay...

Vista has a weird behaviour with many things ;) Got a new devel PC on my job and i'm trying to use vista now for a while... Anyway.

 

I appreciate that you will develop an own mixing renderer.

Link to comment

I have been struggling to get calibrated colors to DVBViewer.

 

Would be really nice to get color profiles implemented to the new renderer. I don't know the implementation details of the profiles but seems that the color correction is done in the gpu and not in the cpu. I hope it would not be too much extra work.

 

Another problem is that the calibration is done for full color scale but the video decoders (except CoreAVC) are using so called TV scale (16-235) which should also be corrected. Again the only really working place for the correction would be the new renderer. Ffdshow can convert video to RGB32 which also correct the color scale but the conversion need too much CPU.

Link to comment

Latest Direct3D Renderer TechDemo does not support DXVA. Probably it never will as too little information about accessing the GPU's video acceleration engine is available. VMR and Overlay Mixer provide a higher level API which MPEG-2 decoders use to access DXVA.

 

I do not really know whether DXVA makes sense nowadays when looking at current systems. The big disadvantage is that as soon as you make use of it, there is no chance to post process video anymore outside the GPU. Like Christian said there is now the chance of using pixelshaders. MPC also features an own renderer which is accessed via VMR's Renderless mode. It is possible to make use of DXVA and use pixelshaders to post process video, transferring a big part of the video processing pipeline to the GPU. However, currently available pixelshaders can't make up for what ffdshow is offering.

 

For the time being I still prefer everything being done within software when it comes to MPEG-2.

 

 

DXVA 2.0 (and also nVIDIA's and ATi's proprietary API's for H.264 acceleration under XP) is a different story. It is accessed independent from the video renderer and it should also be possible to get hold of video data after each processing step.

Link to comment
Would be really nice to get color profiles implemented to the new renderer.

 

With the new renderer, it could be possible to use a ProcAmp pixelshader. However, with latest Direct3D Renderer TechDemo, this pixelshader does not work.

 

sampler s0 : register(s0);
float4 p0 : register(c0);
float4 p1 : register(c1);

#define width (p0[0])
#define height (p0[1])
#define counter (p0[2])
#define clock (p0[3])
#define one_over_width (p1[0])
#define one_over_height (p1[1])

#define PI acos(-1)

static float4x4 r2y =
{
0.299, 0.587, 0.114, 0,
-0.147, -0.289, 0.437, 0,
0.615, -0.515, -0.100, 0,
0, 0, 0, 0
};

static float4x4 y2r =
{
1.0, 0.0, 1.140, 0, 
1.0, -0.394, -0.581, 0,
1.0, 2.028, 0.0, 0, 
0, 0, 0, 0
};

#define ymin (16.0/255)
#define ymax (235.0/255)

// Brightness: -1.0 to 1.0, default 0.0
// Contrast: 0.0 to 10.0, default 1.0
// Hue: -180.0 to +180.0, default 0.0
// Saturation: 0.0 to 10.0, default 1.0

#define Brightness 0.0
#define Contrast 1.0
#define Hue 0.0
#define Saturation 1.0

// tv -> pc scale
#define Brightness (-ymin)
#define Contrast (1.0/(ymax-ymin))

static float2x2 HueMatrix =
{
cos(Hue * PI / 180), sin(Hue * PI / 180),
-sin(Hue * PI / 180), cos(Hue * PI / 180)
};

float4 main(float2 tex : TEXCOORD0) : COLOR
{
float4 c0 = tex2D(s0, tex);
c0 = mul(r2y, c0);
c0.r = Contrast * (c0.r - ymin) + ymin + Brightness;
c0.gb = mul(HueMatrix, c0.gb) * Saturation;
c0 = mul(y2r, c0);
return c0; 
}

 

The parameters chosen in the above pixelshader perferm a TV (16..235) -> PC (0..255) scale conversion. In order to get profiles the pixelshader can simply be copied with different parameters applied (brightness, contrast, ..).

Edited by CiNcH
Link to comment
@spAik: Neither Lars, nor me plan to integrate the EVR filter. The reason is that i think it might be smarter to deal with an own renderer which does not behave different on multiple graphic adapters. We plan to use for the next bigger version of the DVBViewer our own renderer which will use direct3d. I already collected some experience in the last weeks and i'm really looking forward. Especially the way you can manipulate the texture without using any kind of cpu power is damn cool. Sure a lot of the new features will require newer graphic adapters (i have dx9 - dx10 compatible adapters in mind), but it will also works on older cards.

 

Christian

Does this rendering technique also supports synchronization of Audio and Video Data as the EVR does?

Link to comment

Think we should come back to the topic. There is another topic dedicated to Christian's rendering approach.

 

As for EVR and XP, my first post was a little bit premature. I have tested it some time ago, but with a Mobility Radeon 9700. All I remember is that there was some tearing. I just gave it another try. When there is movement the lower third of the picture drifts apart here (=tearing).

Link to comment

Now is't it a bit stupid to install .NET3 in the first place just to het EVR running which is part of Vista,

a OS that is still not as stable as Microsoft intended. I love .NETless systems simply cause .NET

has impact on boot time knowing that S1 and S3 is causing still major problems with certain DVB cards.

Link to comment

Thanks for feedback!

 

Now is't it a bit stupid to install .NET3 in the first place just to get EVR running

Well, what can a poor developer do if he doesn't like Vista, but wants to keep an eye on the EVR? I'll tell you: Actually it takes only two files, evr.dll (must be registered) and dxva2.dll, both in windows\system32. Thanks to hdv for proving it :bye:. Of course, everybody should respect the licence agreement with MS :rolleyes:

 

With my ol' GeForce MX 440, the picture quality is quite good, no tearing at all. However, there are other issues. Cropping in DVBViewer GE (see Settings -> Zoom -> Crop Border) doesn't work - somehow the EVR doesn't process the source rectangle coordinates as expected - and every resizing action, like switching to full screen and back, stops the whole filter graph for about half a second, causing a data jam in the DVBViewer Filter on live playback, causing an error message sent to the host application, causing auto-stop/run in order to readjust the DirectShow timing...

 

Additionally, brightness / contrast etc. adjustment didn't work here, but I found a fix for it. Will be available in the next GE version.

Link to comment

I have now tested it on a fresh XP installation with GF 8600 graphics (ForceWare v158.19):

 

- cropping works for me

- graph isn't rebuilt when switching between fullscreen and "docked" mode

 

However:

 

- still tearing

- wrong aspect ratio, at least for 4:3 transmissions (see attached screenshot)

- picture errors after switching between fullscreen and "docked" mode (seems as if the picture from fullscreen does not disappear... see left side of the attached screenshot)

 

 

 

This time I did not install .NET 3.0 but only copied evr.dll and dxva2.dll to System32 folder and registered evr.dll.

Edited by CiNcH
Link to comment
- wrong aspect ratio, at least for 4:3 transmissions (see attached screenshot)

I had some aspect ratio issues here, particularly with the NVidia Decoder (horizontally squeezed picture on 16:9), but after playing a bit with the according decoder settings it was ok. "Content Default" did the trick.

Link to comment

VMR never fill up all the screen but 1080 sources (my tv is Full HD). It's like no upscaling method is present.

 

Is this part of VMR windowed issue?

 

Is a non DXVA renderer a good option for HD films...? In this situation, CPU should be powerfull enough...

Link to comment

Actually, with the Mainconcept H.264 codec is better not to use Hardware acceleration (not working fine), and quality is superior to any other codec in the market today with or without HW acceleration. And yes, you do need a powerful CPU for that: I've a Core2Duo E6400 overclocked to 2.6GHz, and with that the Mainconcept H.264 takes 75-90% of CPU on 1080i HD channels, but no stuttering whatsoever (as long as you don't use VMR9 wiith a Nvidia card, that is. I talk about using Overlay or VMR7 as video renderer), 100% fluid.

Edited by Zyknyp
Link to comment
  • 4 weeks later...
Actually, with the Mainconcept H.264 codec is better not to use Hardware acceleration (not working fine), and quality is superior to any other codec in the market today with or without HW acceleration. And yes, you do need a powerful CPU for that: I've a Core2Duo E6400 overclocked to 2.6GHz, and with that the Mainconcept H.264 takes 75-90% of CPU on 1080i HD channels, but no stuttering whatsoever (as long as you don't use VMR9 wiith a Nvidia card, that is. I talk about using Overlay or VMR7 as video renderer), 100% fluid.

 

I'm experiencing a bit with H.264. Should the Mainconcept H.264 Encoder v2 demo give me pictures with the H.264 decoder set to Mainconcept Demo H.264? I do not get pictures. I do have picture with the Mainconcept MPEG-2 demo decoder on MPEG-2 channels. Perhaps I need something more for the filters to connect?

 

Cyberlink is working for me by the way.

Edited by boborg
Link to comment
I'm experiencing a bit with H.264. Should the Mainconcept H.264 Encoder v2 demo give me pictures with the H.264 decoder set to Mainconcept Demo H.264? I do not get pictures. I do have picture with the Mainconcept MPEG-2 demo decoder on MPEG-2 channels. Perhaps I need something more for the filters to connect?

 

Cyberlink is working for me by the way.

 

Not the Mainconcept encoder (which has a H.264 codec, but doesn't work for DVB). You should go to the Elecard website and get one of their AVC products (for instance the AVC plugin for DVD player): the H.264 codec in those pack is the Mainconcept one, that works for DVB streams too.

Link to comment
Not the Mainconcept encoder (which has a H.264 codec, but doesn't work for DVB). You should go to the Elecard website and get one of their AVC products (for instance the AVC plugin for DVD player): the H.264 codec in those pack is the Mainconcept one, that works for DVB streams too.

Ok. Thanks for clearing that up.

Link to comment
  • 4 months later...
  • 2 months later...

I am using the EVR on VISTA64 with nvidia 8500 graphics.

 

It works great, dxva 2.0 working, 50 fps, 10-15% cpu

 

BUT

 

Once every 30-60 minutes the PC spontaniously reboots while viewing TV... (either SD ot HD no difference).

 

Anyone familiar with this?

Link to comment
  • 4 weeks later...
I am using the EVR on VISTA64 with nvidia 8500 graphics.

 

It works great, dxva 2.0 working, 50 fps, 10-15% cpu

 

BUT

 

Once every 30-60 minutes the PC spontaniously reboots while viewing TV... (either SD ot HD no difference).

 

Anyone familiar with this?

 

i have not had that problem but another when using evr and powerdvd ultra which by the way gives an amazing picture quality in HD, but the switching between channels when in evr mode is giving me bother. it tends to go to black screen most time when switching from h.264 to mpeg2 .then i have to rebuild the graph .close the graph and select the channel again to get a picture .

 

this is only in evr mode ...when in vmr9 it switches very well but of course the picture quality dont compare to evr

 

any suggestions CiNcH

Link to comment
disable the fast channel switch in option -> tv/radio. worth a try...

na no joy .just seems to happen to and from h.264 and mpeg2..

switching from h.264 to h.264 or mpeg2 to mpeg2 is ok

Link to comment
  • 2 weeks later...

Hi everybody,

 

i want to raise something stranger with EVR.

I install the dll pack EVR for XP to test. I was not satisfied so i came back to VRM9.

I record some DVB-T channels as usual that i watch later in ZoomPlayer.

But now when i open recorded files in ZP no image (just sound). I investigate and i find that renderer used is EVR! Incredible because it's not set up anymore.

ps: i can open files in DVBViewer with success

 

Any idea?

Link to comment
  • 2 months later...
Hi everybody,

 

i want to raise something stranger with EVR.

I install the dll pack EVR for XP to test. I was not satisfied so i came back to VRM9.

I record some DVB-T channels as usual that i watch later in ZoomPlayer.

But now when i open recorded files in ZP no image (just sound). I investigate and i find that renderer used is EVR! Incredible because it's not set up anymore.

ps: i can open files in DVBViewer with success

 

Any idea?

 

this is a DVBViewer forum.

Problems with Zoomplayer shoul be asked on a zoomplayer forum.

 

I personaly avoid applications that need .NET on the media pc.

Link to comment
  • 7 months later...
one note to the tearing observed by many of you:

did you try forcing vsync in the video driver?

Thanks for this- changing Catalyst Control Panel> 3D> All Settings> Wait for vertical refresh to "Off, unless application specifies" stopped the tearing using EVR in XP SP3. :)

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...