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

Anton Khirnov anton at khirnov.net
Thu Feb 15 18:20:01 EET 2024


Quoting J. Dekker (2024-02-13 08:34:25)
> 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"

Besides Marton's comment, this could also elaborate a little on why it
is deprecated, e.g. "...due to being fundamentally incompatible with
libavformat API".

Also, could add a removal remind to version_major.h, similar to
FF_CODEC_CRYSTAL_HD.

Other than those, looks good to me.

-- 
Anton Khirnov


More information about the ffmpeg-devel mailing list