Jump to content

MPC Video Renderer support


fenir

Recommended Posts

Posted

LE: I understand that the cause for RTX Video enhancement nor working is the 32-bit nature of DVBViewer.

  • Like 1
  • 4 weeks later...
Posted

I also noticed that, tested with MPC-HC in the klite codec pack. It is somewhat annoying.

  • 1 month later...
Posted (edited)
Am 14.8.2023 um 17:29 schrieb Griga:

 

I see no reson for not supporting MPC VR in DVBViewer. "Support" doesn't mean that you are forced to use it.

 

I am using it everywhere and it is running great. One thing I am missing though is the ability to use the shortcut ctrl+j for statistics. With that I can easily see if a stream has 50 FPS and is interlaced, something I can not see in the bar below the video.

Edited by Bob.Dig
Posted
2 hours ago, Bob.Dig said:

One thing I am missing though is the ability to use the shortcut ctrl+j for statistics.

 

In the following way you can make it work for the Custom EVR and MPC VR in DVBViewer 7.3.0 via Options -> Input:

 

Zwischenablage01.png

 

 

  • Thanks 1
Posted
vor einer Stunde schrieb Griga:

 

In the following way you can make it work for the Custom EVR and MPC VR in DVBViewer 7.3.0 via Options -> Input:

 

Thank you, works like a charm.

  • 4 weeks later...
Posted
vor 1 Stunde schrieb bccrew:

Any idea why the fonts look so blurry when using a scaled window of DVBViewer?

 

Any idea why you didn't read previous posts dealing with this matter?

 

Posted

My apologies, I didn't read this topic that far back because I assumed it was a recent issue since the last update of DVBViewer. Thanks

  • 7 months later...
Posted (edited)

I am evaluating this renderer for a while now and the latest version 0.9.1.2353 from last week looks very promising for me.
I am using it on my development PC with two DELL 2560x1440 monitors (120Hz) and Intel UHD Graphics and in the living room on my HTPC with nVidia Graphic and a Sony 4K TV

 

Upscaling from (e.g.) 1920x1080 to 3840x2160 has a better "quality" (details/sharpness) than with madVR

I am using

  • Chroma upsampling: Catmull-Rom
  • Upscaling: Jinc2m
  • Downscaling: Lanczos

Important is that you uncheck the option "Use for resizing", otherwise the configured shaders will NOT be used and Direct3D will do this job with a noticably more worse quality.

 

4K + HDR videos playback seemless here only (on HTPC with 4K TV), if I use "DXVA2 (copy-back)" as hardware decoder in LAV, otherwise nearly half of the frames will be skipped by the renderer.

The DVBViewer OSD does not look blurred anymore. The only disadvantage that I have with the OSD (but ONLY on the HTPC with nVidia) is that it skips a lot of frames when I open OSD menus that overlap the video (e.g. a popup menu). On my development PC this does not happen.

Another interesting change is

Zitat

Added support for the ISubRenderConsumer2 interface, which allows connecting XySubFilter.


Currently, I don't have success using the XySubFilter on both PCs with DVBViewer. If I build a filter chain manually in GraphStudioNext, it shows that XySubFilter uses the MPC video renderer (see attached picture) but with DVBViewer this does seem to work at the moment. Or maybe, the MPC renderer still has problems here (?)

I checked in the Tweaker.exe that loading the XySubFilter is enabled. I also tried using a filter preset where I add the XySubFilter as a video post processor but this also doesn't seem to work and XySubFilter is not a post processor.

But overall MPC video renderer looks good for me now.

 

Edit: another advantage is that the source code for this renderer is available.

 

MPC.jpg

Edited by SnoopyDog
Corrected the quote formatting
Posted

Thanks ter9999 for bringing this to our attention. I have been trying out the MPC-HC timeshift file workaround for a few days now, and the image quality when watching german SD tv channels on 2k screens is simply amazing. Crisp picture without any sharpening artifacts, because NVidia did a great job with RTX Super Resolution.

 

Thank you Griga for checking out the possibilities to include this renderer with DVBViewer. I would love to try out the beta version and give some feedback (and no, I won't complain about the OSD font quality hehe).

Posted

As I wrote: The OSD font doesn't look blurred anymore...

Posted
vor 4 Stunden schrieb SnoopyDog:

The OSD font doesn't look blurred anymore...

 

Here it still looks terrible with the latest version and "Use Direct3D 11" checked (more about it here). However, this highly depends on the graphics card.

 

The most valuable point of MPC VR integration is that it makes DVBViewer usable under Linux/Wine (see here and here). I hope MPC VR will remain compatible with it.

 

Posted
Am 26.1.2025 um 20:00 schrieb Griga:

Here it still looks terrible with the latest version

 

Ok, I see. This seems to happen only when the renderer is downscaling. For my environment, it does only upscaling or 1:1

  • 4 months later...
Posted

Griga,

 

With the help of one of my users, there's now a bridge filter that exposes MPC-VR interfaces to support xySubFilter integration without a copy-back operation:

https://github.com/Chetan-Ullal/MPC-BE-SubtitleHelper/releases

 

My solution for the OSD since I support multiple video engines and not just DirectShow in Zoom Player was to use an on-top layered window with GDI+ to render the OSD with transparencies (Zoom Player is also developed in Delphi 7). And yes, it's very hacky, requiring lots of window re-ordering logic and you lose on-top support for the main window.

Posted
vor 21 Stunden schrieb Yaron Gur:

Griga,

 

Why do you address it to me? Is there something you think I should do? If yes, what is it?

 

vor 21 Stunden schrieb Yaron Gur:

With the help of one of my users, there's now a bridge filter that exposes MPC-VR interfaces to support xySubFilter integration without a copy-back operation:

 

Sorry, that doesn't tell me much. Looks like it's about adding subtitles to video without losing DXVA2.  Maybe you can explain in more detail...

 

Posted

Griga

You don't have to do anything, I'm just providing some of my personal observations on the issue since we share a similar development environment.

 

With regards to the bridge filter,

The MPC-VR video renderer doesn't expose the interface used by xySubFilter to communicate directly with the video renderer, which is required to allow the video to be hardware decoded in the GPU and then the subtitles are overlaid in hardware by the video renderer.

 

Without this interface connection, the decoded video image is sent back over the system bus to CPU memory, subtitles are drawn and then sent back to the GPU over the system bus. This copy-back mechanism can slow decoding down and cause stuttering/dropped frame issues.

 

The "Subtitle Helper" filter I linked to extracted the relevant interface from the MPC-BE player code into a separate filter which can then be used in any player to bridge the connection between MPC-VR and xySubfilter.

 

Hope this helps.

  • 4 months later...
Posted

In GraphStudioNext it works without any additional filter. Maybe, DVBViewer loads the xySubFilter only (tweak enabled), if it detects the presence of madVR (?)

Posted
vor 10 Stunden schrieb SnoopyDog:

Maybe, DVBViewer loads the xySubFilter only (tweak enabled), if it detects the presence of madVR (?)

 

Yes. Shall this tweak also apply to MPC-VR in future?

 

Posted

This would be great 🙂 

Posted

If possible, yes please 🙂

Posted (edited)

Thank you 🙂 I can confirm that subtitles are now also displayed with xySubFilter combined with MPC video renderer.

The only problem is that when I start a movie from the harddisk or Blu-Ray and the MPC video renderer is used, then playback of the movie starts and I can hear the sound but the screen remains black. If I rebuild the filter graph or open an OSD page where the small video window is present, then the video also gets displayed. This has nothing to do with this special test build, it starts from beta version 7.3.0.1 on. With version 7.2.4.2 that I was using for a long time, it still works correct. I attached log files for versions 7.2.4.2 / 7.3.0.1 / 7.3.1.10

The only thing that the older version 7.2.4.2 is doing on playback start and what is missing in the two newer log files is this (last five lines of the files):

29.10.25 00:36:38.596 TVideoRenderer       SetTargetHandle  000803EC

This is missing only for file playback, for DVB (some lines above) all three versions are calling this.

 

 

MPCxy.png

DVBViewer_logs.zip

Edited by SnoopyDog
Posted
vor 9 Stunden schrieb SnoopyDog:

The only problem is that when I start a movie from the harddisk or Blu-Ray and the MPC video renderer is used, then playback of the movie starts and I can hear the sound but the screen remains black.

 

Confirmed. It requires some video resizing (aspect ratio / window size change etc.) to make the video visible, because this entails a IBasicVideo.SetDestinationPosition call. MPC VR doesn't work without it. The issue does not depend on the presence of the xySubFilter.

 

Most likely it was caused by optimisations to avoid unnecessary resize calls in 7.3.1.9 (can't repoduce it in previous releases like 7.3.1.0). Hard to detect, because it only happens under special circumstances, particularly when playing a video after a video with the same aspect ratio has been played before with aspect ratio setting = Auto, because in this case no resize call was triggered after building the filter graph. However the issue does not occur on  first playback after DVBViewer start, not on TV, not after Rebuild Playback, not if the DVBViewer Filter (DVBSource) is used etc.

 

I have re-uploaded a fixed version to the PM. Please download again and try...

Posted

Thank you Griga, now it works with the updated test version. 🙂
Yes, this was only an issue with the MPC video renderer. With other renderers like EVR custom or madVR it did not happen.

So I confirm that the video gets displayed now also with MPC after playback start of a video file.

Posted

This is how the filtergraph looks like for an MKV file:

 

Zwischenablage00.png

 

Obviously the XySubFilter has no output pin that is connected to something, which means, it is using an MPC Video Renderer interface for passing subtitles to it, not a usual DirectShow output pin -> input pin connection. As far as it concerns MPC VR, this requires copy-back, as @Yaron Gur stated, presumably performed in MPC VR.

 

Copy-back means, hardware-decoded pictures do not remain in the graphics card memory until they are displayed, but are passed back to a video decoder or renderer, so they can be changed before they are displayed, e.g. for overlaying subtitles. This forth and back and forth causes quite some traffic between system memory and the graphics card, though.

 

Copy-back also has advantages. It enables hardware decoding with video renderers that otherwise are not able to handle DXVA2, even with the ancient Overlay Mixer. If it is performed by the video decoder, subtitles can be added in the usual way by subtitle filters without losing hardware decoding. That's why the LAV video decoder offers copy-back as option (as alternative to native DXVA2). For unknown reasons it additionally enables hardware-decoding of some H.264 internet streams here, that can't be decoded with native DXVA2, that yields nothing but a black screen in this case. That's why I'm using copy-back as standard setting. The CPU load is a bit higher, but I didn't encounter serious drawbacks up to now.

 

Now, @Yaron Gur claims that it is also possible to add subtitles to video without copy-back, but directly in the graphics card memory, and that the XySubFilter is able to handle it, provided the video render exposes an interface for it. But MPC VR doesn't (only for the copy-back method). This constraint can be circumvented by using an additional "Subtitle Helper" bridge filter that contains code used by MPC BE for the same purpose. It was just meant as hint for us.

 

That's how I understand it now after having looked deeper into this matter...

 

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...