<html><head></head><body>No there should not be one API. We already went through this a few months ago. They have too different callback sets.<br><br><div class="gmail_quote">Le 7 mai 2019 09:43:47 GMT+03:00, Steve Lhomme <robux4@ycbcr.xyz> a écrit :<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<pre class="k9mail">On 2019-05-06 16:33, Rémi Denis-Courmont wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;">Le maanantaina 6. toukokuuta 2019, 16.01.31 EEST Steve Lhomme a écrit :<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #ad7fa8; padding-left: 1ex;"><hr>  include/vlc/libvlc_media_player.h | 144 ++++++++++++++++++++++++++++++<br>  include/vlc_vout_display.h        |   8 +-<br>  lib/libvlc.sym                    |   1 +<br>  lib/media_player.c                |  54 +++++++++++<br>  4 files changed, 203 insertions(+), 4 deletions(-)<br></blockquote>This is heavily coupled to DX. Identifiers should not be generic.<br></blockquote><br>It's on purpose, because in the end there should be one API covering <br>OpenGL, D3D, Vulkan, Metal, etc. I mimicked the OpenGL callbacks on <br>purpose because they are pretty much doing the same thing at the same <br>time. Only the OpenGL "GetProcAddress" is specific to OpenGL.<br><br>In the end they should be merged. The HDR10 Metadata should be passed to <br>the host app duringOpenGL MakeCurrent(true) for example, so the host can <br>pass it down/use it for tone mapping.<br><br>I can rename the callbacks for now (the colorimetry structure should be <br>shared already). But I think in the end it should be merged. And it <br>should be done before the 4.0 libvlc is finalized because we want it to <br>be stable in the future.<br><br>Aside from that, I also think this architecture of rendering could also <br>become a module type in VLC. Right now the D3D display modules are <br>actually made of a part that renders to a texture (I'd call rendering <br>engine) either a plain texture or a swapchain target, and a part that <br>actually display the rendered texture on the screen (which is really <br>what a display module should do). I think that's the same for OpenGL. <br>This splitting could be reused for rendering using the GPU to do <br>blending, colorimetry conversion, 360 projection, chroma conversion, <br>resizing, etc. This can be used by the transcoder (especially when <br>encoding in the GPU). That may be done in 5.0 it's not urgent.<hr>vlc-devel mailing list<br>To unsubscribe or modify your subscription options:<br><a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a></pre></blockquote></div><br>-- <br>Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.</body></html>