From patchwork Mon Dec 18 08:54:26 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Martin_Storsj=C3=B6?= X-Patchwork-Id: 45203 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:1225:b0:181:818d:5e7f with SMTP id v37csp7197544pzf; Mon, 18 Dec 2023 00:54:40 -0800 (PST) X-Google-Smtp-Source: AGHT+IELoRhLZgzQ64Qu/yCYuYTd493hWx1Jhu1Jp9tmvBOrsb42gnN58Txrnbkb09b9If0M0wlk X-Received: by 2002:a50:d71b:0:b0:553:75e0:9be7 with SMTP id t27-20020a50d71b000000b0055375e09be7mr32830edi.87.1702889679638; Mon, 18 Dec 2023 00:54:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702889679; cv=none; d=google.com; s=arc-20160816; b=D17jL/KD0yA0QJI/2lpF/tEIcUJNoGpERx0PyxOeREjQjXmmORPHAkdKhOBgmkgvof OrXbhGW6+LxJIcp/Q2/jfusoYSD5DaGYitBGt9fq5ZhUyDfbv1xkxVnal391ytrBO+wt P7IBE31wBvspzfSuSrwF3a1WwaeHs/nAEUyg6azzx3jvkp1kMoZ5Og54oVlZFhNleIBi sJ65vGHTOri065MeJeHxlkx/j7qD3DWesVR1PWL8v6eZNE9sHmuuredSlJ76LkAitqg5 yHiQ51B1rsU8E0FYBSPFGFvAjXx58+6ZukDDcrgOQhxzCwT50zhLiGZWSgAa/LgSKafm jNvQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=sxHcJIY0F52/kBnPSi3Ci1eKtcjdpWVHe2ts94uBgN0=; fh=FKNGpbEUIro8MdbmX7cj0rIetVWWJL2KvKqm4jjh9a8=; b=VzM3+gICdm6SsyWpkA2idlc30ptW53PUwsCY+VDKsPOlZd0lIbbuhTrflGtitvVHmj 9yhQsRoHklTTO6+ony/abXuE6NknqmeqanqgmzX62UdoQ5M44WLhdzvw4hypDd73L2Wu huMXhs8tmtut187uISAU+Y3V04Q2S4tUF8ooMN6NeizcZKK/2CiAZlUaauK9Lhh0MI1W Xd34+ceyQKQjx1UuXBkIX0Ul815kYWJCWkJbrKCI+JtMLj8mW6IeOwclePUbmtFUj24a P0conb4I0FLpSm6/NhLbx9lh2AJyIZDQk3Iq9Um6lf5RhI1XDcTcutXyMz1YbeHZlP5+ P8ew== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@martin-st.20230601.gappssmtp.com header.s=20230601 header.b=HGEacC5R; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id u30-20020a50951e000000b0054c7ca25423si9992189eda.514.2023.12.18.00.54.37; Mon, 18 Dec 2023 00:54:39 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@martin-st.20230601.gappssmtp.com header.s=20230601 header.b=HGEacC5R; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1CD9268D1C2; Mon, 18 Dec 2023 10:54:35 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org 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-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_Storsj=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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: jTuHguRWvJGW 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') {