[FFmpeg-cvslog] lavd/opengl: select the GL context before drawing

Nicolas George git at videolan.org
Wed Jul 12 16:10:25 EEST 2023


ffmpeg | branch: master | Nicolas George <george at nsup.org> | Wed Jul 12 14:57:39 2023 +0200| [02aeacbb5e77f1c760031dc6426a46671c6d220a] | committer: Nicolas George

lavd/opengl: select the GL context before drawing

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.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=02aeacbb5e77f1c760031dc6426a46671c6d220a
---

 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;



More information about the ffmpeg-cvslog mailing list