avdevice: deprecate sdl outdev

Signed-off-by: J. Dekker <jdek@itanimul.li>
This commit is contained in:
J. Dekker 2024-02-13 08:34:26 +01:00
parent e4c0cdf8df
commit 2b17a74df5
3 changed files with 19 additions and 1 deletions

View File

@ -408,7 +408,13 @@ ffmpeg -i INPUT -f pulse "stream name"
@section sdl @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". "sdl2" can be used as alias for "sdl".

View File

@ -51,6 +51,7 @@ typedef struct {
SDL_Rect texture_rect; SDL_Rect texture_rect;
int inited; int inited;
int warned;
} SDLContext; } SDLContext;
static const struct sdl_texture_format_entry { static const struct sdl_texture_format_entry {
@ -165,6 +166,15 @@ static int sdl2_write_header(AVFormatContext *s)
int i, ret = 0; int i, ret = 0;
int flags = 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) if (!sdl->window_title)
sdl->window_title = av_strdup(s->url); sdl->window_title = av_strdup(s->url);

View File

@ -37,5 +37,7 @@
#define FF_API_BKTR_DEVICE (LIBAVDEVICE_VERSION_MAJOR < 62) #define FF_API_BKTR_DEVICE (LIBAVDEVICE_VERSION_MAJOR < 62)
// reminder to remove the opengl device on next major bump // reminder to remove the opengl device on next major bump
#define FF_API_OPENGL_DEVICE (LIBAVDEVICE_VERSION_MAJOR < 62) #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 */ #endif /* AVDEVICE_VERSION_MAJOR_H */