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

Lena lena at nihil.gay
Mon Dec 11 00:10:41 EET 2023


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);
      } 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;
      }
-- 
2.43.0



More information about the ffmpeg-devel mailing list