mpv-player / mpv-player/mpv

d3d11 backend for the Render API

Open
#5,979 27 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

core:libmpv vo:gpu:d3d11
Dominant language
C
Stars
37k
Forks
3.5k
Avg merge
1d 10h
Merged PRs (30d)
22

Description

It would be very nice to have d3d11 interface accessible within libmpv/render.h for external applications.

It could be a solution which allows to get directx 2D texture/shader resource view handles which can be used in a user application with its own dx11 device/context (i.e. shared immutable or dynamic texture). The final video frames are to be rendered into that texture (app tells needed resolution to mpv)

The alternative solution is to pass a d3d11 device from host app to mpv and then either
(a) again, create a texture inside mpv and pass back to an app or
(b) do it similar to how GL render API works now, i.e. render to a user-provided render target (which I don't like that much though, since having a texture is more convenient to me, though it still serves its needs)

I started do implement this feature on my own some time ago, but I'm a bit lost inside mpv's internal rendering structures, and debugging is quite tricky under windows (although I have a pdb file which I can use for debugging under Visual Studio, but it's not ideal).

Just wondering if someone can guide me a bit?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at libmpv/render.h and trace the existing Render API into mpv’s internal rendering structures. Use the Windows Visual Studio debugging setup described in the issue as needed; done means defining a d3d11 interface that supports the requested external texture or device flow and renders final frames at the application’s requested resolution.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
api, computer-graphics
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.