vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Thu Jan 31 18:46:01 2019 +0200| [42ec469657e527e82d7f9ef1ae0ef4149ad91833] | committer: Rémi Denis-Courmont
gl: use vlc_module_(un)load() > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=42ec469657e527e82d7f9ef1ae0ef4149ad91833 --- src/video_output/opengl.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/video_output/opengl.c b/src/video_output/opengl.c index 5057b2b458..c8c43e6c7f 100644 --- a/src/video_output/opengl.c +++ b/src/video_output/opengl.c @@ -37,6 +37,22 @@ struct vlc_gl_priv_t vlc_atomic_rc_t rc; }; +static int vlc_gl_start(void *func, va_list ap) +{ + int (*activate)(vlc_object_t *) = func; + vlc_object_t *gl = va_arg(ap, vlc_object_t *); + + return activate(gl); +} + +static void vlc_gl_stop(void *func, va_list ap) +{ + void (*deactivate)(vlc_object_t *) = func; + vlc_object_t *gl = va_arg(ap, vlc_object_t *); + + deactivate(gl); +} + /** * Creates an OpenGL context (and its underlying surface). * @@ -72,7 +88,8 @@ vlc_gl_t *vlc_gl_Create(struct vout_window_t *wnd, unsigned flags, vlc_gl_t *gl = &glpriv->gl; gl->surface = wnd; - gl->module = module_need(gl, type, name, true); + gl->module = vlc_module_load(gl, type, name, true, vlc_gl_start, + VLC_OBJECT(gl)); if (gl->module == NULL) { vlc_object_release(gl); @@ -96,7 +113,8 @@ void vlc_gl_Release(vlc_gl_t *gl) struct vlc_gl_priv_t *glpriv = (struct vlc_gl_priv_t *)gl; if (!vlc_atomic_rc_dec(&glpriv->rc)) return; - module_unneed(gl, gl->module); + + vlc_module_unload(gl, gl->module, vlc_gl_stop, VLC_OBJECT(gl)); vlc_object_release(gl); } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
