1
0
mirror of https://github.com/mpv-player/mpv synced 2025-03-30 15:29:56 +00:00
mpv/video
wm4 fb855b8659 client API: expose OpenGL renderer
This adds API to libmpv that lets host applications use the mpv opengl
renderer. This is a more flexible (and possibly more portable) option to
foreign window embedding (via --wid).

This assumes that methods like context sharing and multithreaded OpenGL
rendering are infeasible, and that a way is needed to integrate it with
an application that uses a single thread to render everything.

Add an example that does this with QtQuick/qml. The example is
relatively lazy, but still shows how relatively simple the integration
is. The FBO indirection could probably be avoided, but would require
more work (and would probably lead to worse QtQuick integration, because
it would have to ignore transformations like rotation).

Because this makes mpv directly use the host application's OpenGL
context, there is no platform specific code involved in mpv, except
for hw decoding interop.

main.qml is derived from some Qt example.

The following things are still missing:
- a way to do better video timing
- expose GL renderer options, allow changing them at runtime
- support for color equalizer controls
- support for screenshots
2014-12-09 17:59:04 +01:00
..
decode vd_lavc: use avcodec_is_open() 2014-12-02 20:36:55 +01:00
filter video: remove internal QP passing 2014-12-03 23:01:20 +01:00
out client API: expose OpenGL renderer 2014-12-09 17:59:04 +01:00
csputils.c video: adjust some Matroska 3D formats 2014-08-31 14:48:58 +02:00
csputils.h vo_opengl: Linearize non-RGB sRGB files correctly (eg. JPEG) 2014-11-26 21:44:36 +01:00
fmt-conversion.c video: remove swapped-endian image format aliases 2014-11-05 01:52:20 +01:00
fmt-conversion.h Take care of some libavutil deprecations, drop support for FFmpeg 1.0 2013-11-29 17:39:57 +01:00
hwdec.h video: move display and timing to a separate thread 2014-08-12 23:24:08 +02:00
image_writer.c video: remove swapped-endian image format aliases 2014-11-05 01:52:20 +01:00
image_writer.h image_writer: mp_msg conversions 2013-12-21 20:50:10 +01:00
img_format.c video: remove swapped-endian image format aliases 2014-11-05 01:52:20 +01:00
img_format.h video: remove swapped-endian image format aliases 2014-11-05 01:52:20 +01:00
img_fourcc.h build: deal with endian mess 2014-07-10 00:58:56 +02:00
memcpy_pic.h
mp_image_pool.c video: introduce failure path for image allocations 2014-06-17 22:43:43 +02:00
mp_image_pool.h video: introduce failure path for image allocations 2014-06-17 22:43:43 +02:00
mp_image.c video: remove things forgotten in previous commit 2014-12-03 23:12:22 +01:00
mp_image.h video: remove things forgotten in previous commit 2014-12-03 23:12:22 +01:00
sws_utils.c video: correct spelling: mp_image_params_equals -> mp_image_params_equal 2014-06-17 23:30:27 +02:00
sws_utils.h options: remove global variables for swscale options; rename them 2014-06-11 00:39:13 +02:00
vaapi.c vaapi: try dealing with Intel's braindamaged shit drivers 2014-08-21 22:45:58 +02:00
vaapi.h vaapi: try dealing with Intel's braindamaged shit drivers 2014-08-21 22:45:58 +02:00
vdpau_functions.inc video: warn if an emulated hwdec API is used 2014-05-28 02:08:45 +02:00
vdpau_mixer.c vdpau: correctly mark invalid mixer as such on vdp_video_mixer_create() failure 2014-08-13 17:57:19 +02:00
vdpau_mixer.h vdpau_mixer: allow overriding frame opts 2014-05-02 01:08:04 +02:00
vdpau.c vdpau/GLX: don't access VO backend 2014-12-03 21:13:59 +01:00
vdpau.h vdpau/GLX: don't access VO backend 2014-12-03 21:13:59 +01:00
vfcap.h video: remove --flip 2013-12-05 22:58:54 +01:00