[FFmpeg-devel] [PATCH 1/2] avdevice: deprecate opengl outdev

J. Dekker jdek at itanimul.li
Tue Feb 13 09:34:25 EET 2024


Signed-off-by: J. Dekker <jdek at itanimul.li>
---

These devices are fundamentally broken and usecases should be switched
away from output devices in general. Discussion in the thread tended towards
deprecation rather than immediate removal to give time for users to figure out
the best alternatives for their usecase.

 libavdevice/opengl_enc.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/libavdevice/opengl_enc.c b/libavdevice/opengl_enc.c
index b2ac6eb16a..0c81ccc1c4 100644
--- a/libavdevice/opengl_enc.c
+++ b/libavdevice/opengl_enc.c
@@ -224,6 +224,8 @@ typedef struct OpenGLContext {
     int picture_height;                ///< Rendered height
     int window_width;
     int window_height;
+
+    int warned;
 } OpenGLContext;
 
 static const struct OpenGLFormatDesc {
@@ -1060,6 +1062,14 @@ static av_cold int opengl_write_header(AVFormatContext *h)
     AVStream *st;
     int ret;
 
+    if (!opengl->warned) {
+        av_log(opengl, AV_LOG_WARNING,
+            "The opengl output device is deprecated. For monitoring purposes in ffmpeg you can output to a file or use pipes and a video player.\n"
+            "Example: ffmpeg -i input.mkv -f nut - | ffplay \n"
+        );
+        opengl->warned = 1;
+    }
+
     if (h->nb_streams != 1 ||
         par->codec_type != AVMEDIA_TYPE_VIDEO ||
         (par->codec_id != AV_CODEC_ID_WRAPPED_AVFRAME && par->codec_id != AV_CODEC_ID_RAWVIDEO)) {
-- 
2.43.0



More information about the ffmpeg-devel mailing list