From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 3C85A487DB for ; Mon, 18 Dec 2023 08:54:37 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C6C5568D1C1; Mon, 18 Dec 2023 10:54:34 +0200 (EET) Received: from mail-lj1-f171.google.com (mail-lj1-f171.google.com [209.85.208.171]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5F01568D164 for ; Mon, 18 Dec 2023 10:54:28 +0200 (EET) Received: by mail-lj1-f171.google.com with SMTP id 38308e7fff4ca-2c9f7fe6623so27943871fa.3 for ; Mon, 18 Dec 2023 00:54:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=martin-st.20230601.gappssmtp.com; s=20230601; t=1702889667; x=1703494467; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=jeHn+XMs8d5rj0j0XT5I9VsuXOi1MRuZsig3riz+vaw=; b=HGEacC5RLFUQCT6GvUnSk1qnmOn6O1prJtAuSwB7eW2gRwwO3ndHkGZ5G4Ju/+y+eq 8l8lHNXclPe5uyfvf1Q8ScOZ6CosznCu2Zv7UuJbn0XJ9bzx8e+04RmsCRZTTP8Tx8wh 61i/QRhTTiuEIGehxaVbPceRvZucgHtQ0B4hpchOkNIBWj4U5tT1C0YGqt9NKcwX6d25 fk9ZHvDAbCmlPSluTt4Ga3isJwN7By8UhINJ5mir9GFVfLyq+heieL/IEOwRN3AosBJW hu1RUTrO5fGkjmWX+HIb+oiAH6o134Wk670M1VrAaAtG/D6R7MXRgQL5RiSPvTci+gYA X2NQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702889667; x=1703494467; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=jeHn+XMs8d5rj0j0XT5I9VsuXOi1MRuZsig3riz+vaw=; b=VNYM6+ihWr8aj8AROMerqlm5FeDVLRJIE09HakNQF+X/PHJHQcnArk2Un5ZnqW3FZY X41PIndfwlx8WKTgxcSTuWtVEjJSjXg91je+419Es9pH+S0doTZPK9uOBoT8eIe6bLWq TjvglNekvDGZYKQzm/nCYRTs0BHDyzNr8WQerKiRyHnwsIIC6zGg2yARqBpcbMCyiHXd ysBcVwtkg4fRZDVfjydMDLMfJe0yGnDX3xk/PkgR5R41uDlOhZicI0du8n7gIX0unmt1 mwkz5xiP4QJNergResPBKB9fSni7soRBdr8E06eeLMKyYMXpvFNhGvzFzWt6PJHGGhTH H7aQ== X-Gm-Message-State: AOJu0Yzc8Ph71e34fVSfGl6KgkPZfn3mnpXwCkyf/6QkMH75YiyQGybL 2zg7ZCikS3h70t4xvnPHmDPq8xqq4IkvdEoYv4pdMQ== X-Google-Smtp-Source: AGHT+IFvNHZyfME4EdpU3/CV6ZjtBDjoKltlFFLvWYvWoXLAA2otl38kpb7Oy5tH0ZtDF9ReWmLreQ== X-Received: by 2002:a05:6512:11c4:b0:50b:fc8f:457e with SMTP id h4-20020a05651211c400b0050bfc8f457emr3871160lfr.155.1702889667407; Mon, 18 Dec 2023 00:54:27 -0800 (PST) Received: from localhost (dsl-tkubng21-58c01c-243.dhcp.inet.fi. [88.192.28.243]) by smtp.gmail.com with ESMTPSA id fb8-20020a056512124800b0050be3a86d6dsm2839640lfb.90.2023.12.18.00.54.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 Dec 2023 00:54:27 -0800 (PST) From: =?UTF-8?q?Martin=20Storsj=C3=B6?= To: ffmpeg-devel@ffmpeg.org Date: Mon, 18 Dec 2023 10:54:26 +0200 Message-Id: <20231218085426.3955262-1-martin@martin.st> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] gdigrab: Fix hwnd parameter issues X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Lena Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Converting from an integer to HWND (which is a pointer) requires an explicit cast, otherwise Clang errors out like this: src/libavdevice/gdigrab.c:280:14: error: incompatible integer to pointer conversion assigning to 'HWND' (aka 'struct HWND__ *') from 'long' [-Wint-conversion] 280 | hwnd = strtol(name, &p, 0); | ^ ~~~~~~~~~~~~~~~~~~~ (With GCC and MSVC, this was a mere warning, but with recent Clang, this is an error.) After adding a cast, all compilers also warn something like this: src/libavdevice/gdigrab.c:280:16: warning: cast to 'HWND' (aka 'struct HWND__ *') from smaller integer type 'long' [-Wint-to-pointer-cast] 280 | hwnd = (HWND) strtol(name, &p, 0); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ On Windows, long types are 32 bit, so to get a usable pointer, we need to use long long. And interpret it as unsigned long long while at it - i.e. using strtoull. Finally, right above it, the code triggered the following warning: src/libavdevice/gdigrab.c:278:15: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement] 278 | char *p; | ^ --- libavdevice/gdigrab.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavdevice/gdigrab.c b/libavdevice/gdigrab.c index 41ef370f2b..b2858ecd89 100644 --- a/libavdevice/gdigrab.c +++ b/libavdevice/gdigrab.c @@ -274,10 +274,10 @@ gdigrab_read_header(AVFormatContext *s1) } else if (!strcmp(filename, "desktop")) { hwnd = NULL; } else if (!strncmp(filename, "hwnd=", 5)) { - name = filename + 5; char *p; + name = filename + 5; - hwnd = strtol(name, &p, 0); + hwnd = (HWND) strtoull(name, &p, 0); if (p == NULL || p == name || p[0] == '\0') { -- 2.34.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-request@ffmpeg.org with subject "unsubscribe".