vlc | branch: master | Thomas Guillem <[email protected]> | Sun Feb 24 15:12:53 2019 +0100| [c7a8caf725d9df84651dba1a9d19685b47da6d4d] | committer: Thomas Guillem
opengl: pass decoder_device to glconv modules > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=c7a8caf725d9df84651dba1a9d19685b47da6d4d --- modules/video_output/opengl/converter.h | 4 ++++ modules/video_output/opengl/vout_helper.c | 10 ++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/modules/video_output/opengl/converter.h b/modules/video_output/opengl/converter.h index a1dd68c767..ce8846d52d 100644 --- a/modules/video_output/opengl/converter.h +++ b/modules/video_output/opengl/converter.h @@ -23,6 +23,7 @@ #include <vlc_plugin.h> #include <vlc_common.h> +#include <vlc_codec.h> #include <vlc_picture_pool.h> #include <vlc_opengl.h> @@ -258,6 +259,9 @@ struct opengl_tex_converter_t /* Pointer to object gl, set by the caller */ vlc_gl_t *gl; + /* Pointer to decoder device, set by the caller (can be NULL) */ + vlc_decoder_device *dec_device; + /* libplacebo context, created by the caller (optional) */ struct pl_context *pl_ctx; diff --git a/modules/video_output/opengl/vout_helper.c b/modules/video_output/opengl/vout_helper.c index 21e9a57cfe..30283419a3 100644 --- a/modules/video_output/opengl/vout_helper.c +++ b/modules/video_output/opengl/vout_helper.c @@ -580,8 +580,9 @@ opengl_deinit_program(vout_display_opengl_t *vgl, struct prgm *prgm) } static int -opengl_init_program(vout_display_opengl_t *vgl, struct prgm *prgm, - const char *glexts, const video_format_t *fmt, bool subpics, +opengl_init_program(vout_display_opengl_t *vgl, vlc_video_context *context, + struct prgm *prgm, const char *glexts, + const video_format_t *fmt, bool subpics, bool b_dump_shaders) { opengl_tex_converter_t *tc = @@ -646,6 +647,7 @@ opengl_init_program(vout_display_opengl_t *vgl, struct prgm *prgm, if (desc->plane_count == 0) { /* Opaque chroma: load a module to handle it */ + tc->dec_device = context ? context->device : NULL; tc->p_module = module_need_var(tc, "glconv", "glconv"); } @@ -869,7 +871,7 @@ vout_display_opengl_t *vout_display_opengl_New(video_format_t *fmt, GL_ASSERT_NOERROR(); int ret; - ret = opengl_init_program(vgl, vgl->prgm, extensions, fmt, false, + ret = opengl_init_program(vgl, context, vgl->prgm, extensions, fmt, false, b_dump_shaders); if (ret != VLC_SUCCESS) { @@ -880,7 +882,7 @@ vout_display_opengl_t *vout_display_opengl_New(video_format_t *fmt, } GL_ASSERT_NOERROR(); - ret = opengl_init_program(vgl, vgl->sub_prgm, extensions, fmt, true, + ret = opengl_init_program(vgl, context, vgl->sub_prgm, extensions, fmt, true, b_dump_shaders); if (ret != VLC_SUCCESS) { _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
