this message seems not attach to the mail successfully, manually loop it: what the patch does: fix gdigrab capture a window with hwnd shows "Invalid window handle x, must be a vlid integer", althought a valid integer is input
why: line 284 of libavdevice/gdigrab.c, one of the condition leads to check failed is p[0]='\0'. if a integer only string is process, the p[0] after strtoull process will be null which equal to '\0', otherwise, a non-integer string will make p[0] not null to pass the check how: change p[0]=='\0' to p[0]!='\0' will works. no any side effect reproduce and verify: a simple command: ffmpeg -f gdigrab -i hwnd=12345 * althought a workaround command will work currently: * ffmpeg -f gdigrab -i hwnd=12345x. (x could be any char) ________________________________ 发件人: cyf...@hotmail.com <cyf...@hotmail.com> 发送时间: 2024年8月7日 15:58 收件人: ffmpeg-devel@ffmpeg.org <ffmpeg-devel@ffmpeg.org> 抄送: eaphone <cyf...@hotmail.com> 主题: [PATCH v1] libavdevice/gdigrab: change hwnd tail check fail logic to !=null From: eaphone <cyf...@hotmail.com> --- libavdevice/gdigrab.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavdevice/gdigrab.c b/libavdevice/gdigrab.c index c91661c556..08a41c304b 100644 --- a/libavdevice/gdigrab.c +++ b/libavdevice/gdigrab.c @@ -281,7 +281,7 @@ gdigrab_read_header(AVFormatContext *s1) hwnd = (HWND) strtoull(name, &p, 0); - if (p == NULL || p == name || p[0] == '\0') + if (p == NULL || p == name || p[0] != '\0') { av_log(s1, AV_LOG_ERROR, "Invalid window handle '%s', must be a valid integer.\n", name); -- 2.45.2.windows.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".