Enhanced Video Renderer

0 views
Skip to first unread message

Regenia Junke

unread,
Aug 4, 2024, 6:02:22 PM8/4/24
to zahgidemas
The component described on this page, Enhanced Video Renderer, is a legacy feature. It has been superseded by the Simple Video Renderer (SVR) exposed through the MediaPlayer and IMFMediaEngine components. To play video content you should send data into one of these components and allow them to instantiate the new video renderer. These components have been optimized for Windows 10 and Windows 11. Microsoft strongly recommends that new code use MediaPlayer or the lower level IMFMediaEngine APIs to play video media in Windows instead of the EVR, when possible. Microsoft suggests that existing code that uses the legacy APIs be rewritten to use the new APIs if possible.]

The EVR can mix up to 16 video streams. The first input stream is called the reference stream. The reference stream always appears first in the z-order. Any additional streams are called substreams, and are mixed on top of the reference stream. The application can change the z-order of the substreams, but no substream can be first in the z-order.


Internally, the EVR uses an object called the mixer to composite the frames from the input streams onto one surface for rendering. The mixer also performs deinterlacing and color correction. The output from the mixer is the final composited video frame. A second object called the presenter renders the video frame to the display. The presenter schedules when the frames are rendered and manages the Direct3D device. An application can provide a custom implementation of either the mixer or the presenter.


The output frame rate is locked to the reference stream. Whenever the substreams receive new frames, the mixer holds onto them. When the reference stream receives a new frame, the mixer composites that frame with the substream frames. (If the reference stream is interlaced, a complete reference frame may require more than one media sample.) It is possible for a substream to receive more than one frame while the mixer is waiting for a reference frame. In that case, the mixer simply discards the previous substream frame.


Because the presenter creates the Direct3D device, it is also responsible for sharing the device with other pipeline objects that need to access DirectX Video Acceleration (DXVA) services. In particular, the EVR mixer uses the DXVA video processing services to deinterlace and mix the video. External to the EVR, software decoders may use DXVA for accelerated video decoding. The presenter shares the Direct3D device by means of the Direct3D Device Manager. The following diagram shows the internal architecture of the EVR. (The software decoder, shaded in gray, is not part of the EVR.)


In this environment, when I use some of our product's applications, which uses Microsoft's EVR(Enhance Video Renderer) for video rendering, then they are not working properly. I have a doubt on intel graphics driver because if I rollback this driver and move to Microsoft basic display adapter then these apps starts working fine.


I am suspecting that raw video format required for rendering is not supported by EVR due to intel graphics driver. I also upgraded the intel Graphics driver manually with latest version (gfx_win_101.4311) but issue still persist.


1. One of app in our product use EVR as default renderer. So on this PC, when I initialize it using EVR it fails. So, to identify whether issue is in our app or in EVR, I checked with a simple File Source filter in GraphStudio & GraphEdit tool and play any media file using EVR. It failed there too. So I concluded that EVR is not working on this PC.


Just to confirm, the apps you mentioned that also have issues with EVR are GraphStudio & GraphEdit? We need the name of the app or apps that you detected the issue in the first instance to investigate this issue properly.


We understand that you need to use an older version and build for Windows 10 Enterprise LTSC, however, as part of the troubleshooting and for us to replicate this issue, we will use the latest OS version build (19044.29.65) and version (21H2).


As I am not aware of whose responsibility is to support DXVA on pc, whether it is OS or intel GPU hardware or intel graphics driver, so can you clarify this? Since same OS is working fine with other intel CPU/GPU hardware so I don't have doubt on OS.


Thank you for the information provided, but we still need to try the latest OS version and build as part of the normal troubleshooting (updating everything to the latest version), DXVA is actually a Microsoft API.


It started working fine for one case (playing any local media file using EVR, refer image 1), but still not working for another case (playing local camera stream using EVR, refer image 2). It works with Video Renderer only (refer image 3).


I understand that you want to know this information, however, we need to know and inform our team since they require the codec pack to try to reproduce this issue properly, so they can give us all the details after all the information is gathered to them.


We really appreciate your help in getting the codec pack, if it is too private information, we can send an email linked to the e-mail address associated with your community profile or you can send it to me via DM in the Community Messages so you can more comfortable.


Intel does not verify all solutions, including but not limited to any file transfers that may appear in this community. Accordingly, Intel disclaims all express and implied warranties, including without limitation, the implied warranties of merchantability, fitness for a particular purpose, and non-infringement, as well as any warranty arising from course of performance, course of dealing, or usage in trade.


Oh man, it is infuriating at times. The Ehanced Speech feature is great when it works. However, every single time I move, cut or literaly do anything to my project at all it has to render the entire audio file. Sometimes the rendering takes hours. Also, if I close the project and open it back up, even if I rendered the audio before I closed the project, it has to render all of the audio again. Another INCREDIBLY annoying thing that seems to be happening if I use Enhanced Speech (no idea how this is related but it only started happening after using the new tool), any graphics - lower thirds, titles etc. seem to lose their dynamic link and then when I try to relink them either it get's stuck trying or straight up crashes Premiere Pro entirely. So every single time I open my project back up I have to literally re-do all of the graphics and lower thirds. Get your sh*t together Adobe!


I am having the same issue, I applied enhanced speech throughout all my clips and anytime either I make a cut or even if I extend the clip (by one frame!!), it starts doing renders of minimum 20 minutes up to four hours. I would love to know if there is any temporary fix, I do appreciate the enhanced speech feature I think it's a wonderful audio editing tool, but it needs to be integrated without this bug (I simply can't edit the whole thing when the clips are temporally gridlocked. Also please, if anybody has any solutions to bypass this at the moment, please let me know ?? I'm not sure if maybe changing the bitrate or codec to the timelines format??? I believe that's the reason exports were having this same issue but it's probably not the same and I don't even know how to do that online without exporting. I am honestly more than a little bit frustrated and confused on what the solutions could be, I'm going to try disabling enhance speech when I make an edit, but I'm not even sure if that will work anyways, if anybody has any ideas, please respond to me I would love to hear your feedback


I'm facing a similar problem a month later. When I cut my project the old audio still remains in the background, too. I tried to remove 20 seconds of audio from the beginning of my video, but when I play back, the unenhanced audio from the first 20 seconds play at the same time as the enhanced audio from 21 seconds onward. This is worse than having to wait for renders for me.


So I have been using a kind of workaround. I wait until my project is pretty much complete and leave the audio until last, making cuts to the audio but not enhancing it until the very end. Once everything is cut together I then nest all of the audio clips and then apply Enhanced Speech to the nested clip. That way I don't have to deal with the painfully annoying "rendering audio" loading screen anytime I change the smallest thing. It's not ideal and Adobe definitely needs to work on improving this issue, however, the Enhanced Speech feature is honestly pretty incredible and still saves me a ton of time especially on poor audio that I typically enhance in Audition. It's a game changer in terms of the quality vs speed balance that us video editors are always fighting, but dammit Adobe get this on your list!


Yea - this is a nightmare. I have tried a few of the solutions suggested and still get no improvement. Working with a 50 min interview - and enhancing the speech is now cue'd to take 3 - 4 hours! (see below) My solution is to export the audio, then uploading to the Adobe Podcast / Speech Enhance tool - let that do the enhancing (in a matter of minutes) then bring it back into my project.


I'm experiencing this annoying bug as well.



On a related note, Why doesn't the "Global FX Mute" button disable all audio effects too? It should be labeled "Video FX Mute" instead and there should be another button for "Audio FX Mute".


I've run into this same issue as well...I tried finishing my edit and then nesting all the audio on the track and then applying the Speech Enhance but it won't let me apply the effect to nested audio. The only workaround I found was to apply the Speech Enhance to the full audio clip before applying any cuts, then nesting that audio clip, then it would let me edit without trying to render every time I make a cut. Really enjoy the enhance feature built in, hope this is an easy fix.!

3a8082e126
Reply all
Reply to author
Forward
0 new messages