aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJ. Dekker <jdek@itanimul.li>2024-02-13 08:34:26 +0100
committerJ. Dekker <jdek@itanimul.li>2024-02-28 10:28:49 +0100
commit2b17a74df5fbbc87cdf7a0a784e2e088ab4afd3c (patch)
tree28f7581e5f4a1681f02cc86e7301ed16509db758
parente4c0cdf8df96047ee195cc594a2a93443e2aa25d (diff)
downloadffmpeg-2b17a74df5fbbc87cdf7a0a784e2e088ab4afd3c.tar.gz
avdevice: deprecate sdl outdev
Signed-off-by: J. Dekker <jdek@itanimul.li>
-rw-r--r--doc/outdevs.texi8
-rw-r--r--libavdevice/sdl2.c10
-rw-r--r--libavdevice/version_major.h2
3 files changed, 19 insertions, 1 deletions
diff --git a/doc/outdevs.texi b/doc/outdevs.texi
index 941429a8c8..9ee857528e 100644
--- a/doc/outdevs.texi
+++ b/doc/outdevs.texi
@@ -408,7 +408,13 @@ ffmpeg -i INPUT -f pulse "stream name"
@section sdl
-SDL (Simple DirectMedia Layer) output device.
+SDL (Simple DirectMedia Layer) output device. Deprecated and will be removed.
+
+For monitoring purposes in FFmpeg, pipes and a video player such as ffplay can be used:
+
+@example
+ffmpeg -i INPUT -f nut -c:v rawvideo - | ffplay -
+@end example
"sdl2" can be used as alias for "sdl".
diff --git a/libavdevice/sdl2.c b/libavdevice/sdl2.c
index 342a253dc0..ec3c3d19b5 100644
--- a/libavdevice/sdl2.c
+++ b/libavdevice/sdl2.c
@@ -51,6 +51,7 @@ typedef struct {
SDL_Rect texture_rect;
int inited;
+ int warned;
} SDLContext;
static const struct sdl_texture_format_entry {
@@ -165,6 +166,15 @@ static int sdl2_write_header(AVFormatContext *s)
int i, ret = 0;
int flags = 0;
+ if (!sdl->warned) {
+ av_log(sdl, AV_LOG_WARNING,
+ "The sdl 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"
+ );
+ sdl->warned = 1;
+ }
+
if (!sdl->window_title)
sdl->window_title = av_strdup(s->url);
diff --git a/libavdevice/version_major.h b/libavdevice/version_major.h
index da5854ed4c..6e04e0939d 100644
--- a/libavdevice/version_major.h
+++ b/libavdevice/version_major.h
@@ -37,5 +37,7 @@
#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)
+// reminder to remove the sdl2 device on next major bump
+#define FF_API_SDL2_DEVICE (LIBAVDEVICE_VERSION_MAJOR < 62)
#endif /* AVDEVICE_VERSION_MAJOR_H */