[FFmpeg-devel] [PATCH] gdigrab: Allow capturing a window by its handle

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Mon Dec 11 02:34:08 EET 2023


Lena via ffmpeg-devel:
> x11grab can capture windows by their ID, but gdigrab can only capture
> windows by their names, internally calling FindWindowW to lookup its
> handle.
> 
> This patch simply allows the user to specify a window handle directly.
> Signed-off-by: Lena <lena at nihil.gay>
> ---
>  libavdevice/gdigrab.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/libavdevice/gdigrab.c b/libavdevice/gdigrab.c
> index c069232472..05d3c0c929 100644
> --- a/libavdevice/gdigrab.c
> +++ b/libavdevice/gdigrab.c
> @@ -273,9 +273,13 @@ gdigrab_read_header(AVFormatContext *s1)
>          }
>      } else if (!strcmp(filename, "desktop")) {
>          hwnd = NULL;
> +    } else if (!strncmp(filename, "hwnd=", 5)) {
> +        name = filename + 5;
> +        +        hwnd = strtol(name, NULL, 0);

This won't even compile due to the extra '+'.

>      } else {
>          av_log(s1, AV_LOG_ERROR,
> -               "Please use \"desktop\" or \"title=<windowname>\" to
> specify your target.\n");
> +               "Please use \"desktop\", \"title=<windowname>\" or
> \"hwnd=<hwnd>\" to specify your target.\n");
>          ret = AVERROR(EIO);
>          goto error;
>      }



More information about the ffmpeg-devel mailing list