[FFmpeg-devel] [PATCH v2 1/2] avdevice: deprecate opengl outdev
J. Dekker
jdek at itanimul.li
Wed Feb 21 13:33:55 EET 2024
Signed-off-by: J. Dekker <jdek at itanimul.li>
---
doc/outdevs.texi | 2 +-
libavdevice/opengl_enc.c | 11 +++++++++++
libavdevice/version_major.h | 2 ++
3 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/doc/outdevs.texi b/doc/outdevs.texi
index f0484bbf8f..941429a8c8 100644
--- a/doc/outdevs.texi
+++ b/doc/outdevs.texi
@@ -302,7 +302,7 @@ ffmpeg -re -i INPUT -c:v rawvideo -pix_fmt bgra -f fbdev /dev/fb0
See also @url{http://linux-fbdev.sourceforge.net/}, and fbset(1).
@section opengl
-OpenGL output device.
+OpenGL output device. Deprecated and will be removed.
To enable this output device you need to configure FFmpeg with @code{--enable-opengl}.
diff --git a/libavdevice/opengl_enc.c b/libavdevice/opengl_enc.c
index b2ac6eb16a..69de6fad03 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,15 @@ 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 due to being fundamentally incompatible with libavformat API. "
+ "For monitoring purposes in ffmpeg you can output to a file or use pipes and a video player.\n"
+ "Example: ffmpeg -i INPUT -f nut -c:v rawvideo - | 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)) {
diff --git a/libavdevice/version_major.h b/libavdevice/version_major.h
index 9f7b79b2ee..da5854ed4c 100644
--- a/libavdevice/version_major.h
+++ b/libavdevice/version_major.h
@@ -35,5 +35,7 @@
// reminder to remove the bktr device on next major bump
#define FF_API_BKTR_DEVICE (LIBAVDEVICE_VERSION_MAJOR < 62)
+// reminder to remove the opengl device on next major bump
+#define FF_API_OPENGL_DEVICE (LIBAVDEVICE_VERSION_MAJOR < 62)
#endif /* AVDEVICE_VERSION_MAJOR_H */
--
2.43.2
More information about the ffmpeg-devel
mailing list