From 02aeacbb5e77f1c760031dc6426a46671c6d220a Mon Sep 17 00:00:00 2001 From: Nicolas George Date: Wed, 12 Jul 2023 14:57:39 +0200 Subject: [PATCH] lavd/opengl: select the GL context before drawing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since “2d924b3a63 fftools/ffmpeg: move each muxer to a separate thread”, opengl_write_packet() is called from a different thread than opengl_write_header() and would nothing for lack of a selected context. --- libavdevice/opengl_enc.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libavdevice/opengl_enc.c b/libavdevice/opengl_enc.c index 88c413ee63..8d059343fb 100644 --- a/libavdevice/opengl_enc.c +++ b/libavdevice/opengl_enc.c @@ -1200,6 +1200,10 @@ static int opengl_draw(AVFormatContext *h, void *input, int repaint, int is_pkt) const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pix_fmt); int ret; + /* At this point, opengl->glcontext implies opengl->glcontext */ + if (opengl->glcontext) + SDL_GL_MakeCurrent(opengl->window, opengl->glcontext); + #if CONFIG_SDL2 if (!opengl->no_window && (ret = opengl_sdl_process_events(h)) < 0) goto fail;