Aleksoid1978 / VideoRenderer

Внешний видео-рендерер
GNU General Public License v3.0
983 stars 108 forks source link

How do I use the MPC Video Renderer with xySubFilter #124

Closed bLightZP closed 5 months ago

bLightZP commented 5 months ago

Hi Team, I am trying to integrate the MPC video renderer into Zoom Player, I was able to create the graph and everything is playing, but no subtitles are showing.

MadVR automatically connects with xySubFilter without requiring special code, is there a specific function I should call to enable the connection between xySubFilter and MPC-VR?

v0lt commented 5 months ago

madVR can work in D3D9 mode or in mixed D3D9+D3D11 mode. Mixed mode solves compatibility issues, but has performance issues in some scenarios.

v0lt commented 5 months ago

MPC Video Renderer can work in 2 independent modes D3D9 and D3D11. To render in D3D9 mode, MPC-BE uses the ISubRender interface and the CDX9SubPic class. To render in D3D11 mode, MPC-BE uses the ISubRender11 interface and the CDX11SubPic class.

v0lt commented 5 months ago

You can also look at the CXySubPicProvider and CXySubPicQueueNoThread classes. But I don't remember their purpose.

clsid2 commented 5 months ago

Implement consumer in the player: https://github.com/Masaiki/xy-VSFilter/blob/xysubfilter_libass/include/SubRenderIntf.h Then forward data to ISubRender interfaces of MPCVR. That is how MPC-HC/BE do it.

Madvr can act as a consumer directly.

bLightZP commented 5 months ago

Any chance that MPC-VR can be modified to act as a complete standalone component like MadVR? I don't have enough low-level experience to implement this interface.

Aleksoid1978 commented 5 months ago

Any chance that MPC-VR can be modified to act as a complete standalone component like MadVR? I don't have enough low-level experience to implement this interface.

Сочувствую))

v0lt commented 5 months ago

Any chance that MPC-VR can be modified to act as a complete standalone component like MadVR?

There are no such plans. What does "complete standalone component" even mean for a video renderer?

bLightZP commented 5 months ago

It means that it can be used without having to write special code on the player side (like MadVR). My expertise is in UI/UX, I would gladly give you lifetime licenses to Zoom Player (not related to the video renderer integration), I would love to get your feedback in general.

v0lt commented 5 months ago

It means that it can be used without having to write special code on the player side (like MadVR).

You can also use MPC Video Renderer without an additional special code using only the interfaces that Microsoft developed. But you cannot use the D3D11 decoder. You cannot correctly convert colors for DolbyVision. You can’t connect the shaders. Part of the functionality is implemented in a decoder or in the player. The subtitles about the same situation. If you think that you can do better, then we will see your patch. But I warn you right away, we will not mix D3D9 and D3D11.

Aleksoid1978 commented 5 months ago

It means that it can be used without having to write special code on the player side (like MadVR). My expertise is in UI/UX, I would gladly give you lifetime licenses to Zoom Player (not related to the video renderer integration), I would love to get your feedback in general.

We will be happy to receive a license for your product - it will be interesting to see what the “competitors” have :)

bLightZP commented 5 months ago

v0lt: Madshi released headers that allow me to easily do everything on the player side and the subtitles are completely self contained in the renderer (other than my code adding xySubFilter to the graph). I believe I can use the headers you linked to for the shaders, but I don't understand the player side subtitle code. A user who wants dolby vision in Zoom Player who is also a game developer said he'll look into it so perhaps we'll be able to find a solution together.

I am not trying to mix D3D9/11, I just want to get similar access to what I have with MadVR. You don't have your email listed on GitHub, so I don't know where to send the license to.

Aleksoid1978: I have emailed you a Zoom Player lifetime license. I am not competing with you, I am doing my own thing, creating the most customizable media player UI/UX experience for Windows.

bLightZP commented 5 months ago

v0lt: I mailed you an activation serial, I'll be happy to read your opinion.

v0lt commented 5 months ago

Thank you. The letter has arrived, I will check the activation serial when I have free time.

andyxo-xo commented 4 months ago

Maybe you guys could convince bLight to make a Zoom Player 64-bit version because as it stands right now it's useless for many due to it not having RTX Super Resolution and RTX Video HDR support. Both of these require the player to be 64bit and ZP is only 32...

Chetan-Ullal commented 2 months ago

I've made progress on this request: https://github.com/Aleksoid1978/MPC-BE/pull/437