[FFmpeg-devel] 回复: [PATCH v1] libavdevice/gdigrab: change hwnd tail check fail logic to !=null
Cai Eaphone
cyfdel at hotmail.com
Wed Aug 7 19:57:17 EEST 2024
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)
________________________________
发件人: cyfdel at hotmail.com <cyfdel at hotmail.com>
发送时间: 2024年8月7日 15:58
收件人: ffmpeg-devel at ffmpeg.org <ffmpeg-devel at ffmpeg.org>
抄送: eaphone <cyfdel at hotmail.com>
主题: [PATCH v1] libavdevice/gdigrab: change hwnd tail check fail logic to !=null
From: eaphone <cyfdel at 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
More information about the ffmpeg-devel
mailing list