From patchwork Sat Jul 1 13:18:25 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matt Oliver X-Patchwork-Id: 4175 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.1.76 with SMTP id 73csp6980082vsb; Sat, 1 Jul 2017 06:26:45 -0700 (PDT) X-Received: by 10.28.69.201 with SMTP id l70mr9814923wmi.53.1498915605520; Sat, 01 Jul 2017 06:26:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1498915605; cv=none; d=google.com; s=arc-20160816; b=HzRKcPIG6sgsiUWWKoM64boK/bRGE5Di0A5yh2MgFrI9D6Bc4dxQvDJRvh0dTHCv7o pvbEen3FBLNb5sD3pdzdsEvs1vEyHOPB5UYRqAQgXRtBPSKH2EeMhdk7U9Cu9O5QwBXm OcQXqYTc/cs6Zc4VTdLzubHPOLjg99UrZJ6JkRI5aC35BWMdHQ+iOlPh5qIcSwk2Axep y81OwlgPkRgoNnJA9fQngFKGJ3z5/ZkQbQBuALg+2TToFoDt0enELGC/jQPQrssmeh8N EzvDBWFSIS0Y07jawzxk3810PIRUrDECbwn6zTo2iLr1QV2EyxyfjZnBQPLWwHKDcy3N 5Rgw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:subject:to :message-id:date:from:mime-version:dkim-signature:delivered-to :arc-authentication-results; bh=E9/t/iXfBucb2okbaBhY0gkdB0E9RePMwZh+BVpcIL0=; b=cSGgKYvywSAdk6GLNmHDXcBGsRDr2pQEhZqR2QsFDmBUuyieLlWvfpu2iuwNORk4IP cQ4cwJhWSvNL3smVBwIVfhCRMDTmeScpKgKuR61qW+feSWanLTNUIUCgeREx2+CNzwBt JGm/mp+cOWkKNHsP/MkkKprEyCYLvG7GEs+evG0+yQUYyuTGtFcMKE8reDDekggHjs4s Mkf4923sMnVf5q1ZslEj3c+z1Odf5hZw7WzGMngUUzam1sZpDvDH2PcbUHp0Keu3bxAJ fwdY525HGQvz4TSCuzVy5pk3PkArU4spLznJFGXvoU9J4DzGaGXFNDaSmucgFhqflujS 4b+w== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.b=CDQzxCwU; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 55si8471784wrw.341.2017.07.01.06.26.44; Sat, 01 Jul 2017 06:26:45 -0700 (PDT) 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=@gmail.com header.b=CDQzxCwU; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 663D9680D52; Sat, 1 Jul 2017 16:26:41 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk0-f196.google.com (mail-qk0-f196.google.com [209.85.220.196]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A86E5680AB5 for ; Sat, 1 Jul 2017 16:26:34 +0300 (EEST) Received: by mail-qk0-f196.google.com with SMTP id 16so18739677qkg.2 for ; Sat, 01 Jul 2017 06:26:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=FOXoJ2JwpjxiC6qENthM56kOSFcoioemEZxz7Kz2V64=; b=CDQzxCwUNSyNsg2px6ACYFjB5bTqwts3jJEP72lrwqN+VCa7t6e9TxcwfjK5exmeLA 4xlNKQqRojDxpBw0f5TP7oNrXdfdUO7fZOJjrTVyRMVWuQTdHKryNA+0fyKj+ZT+FPlr nPQTdrrQYroHTRXUjbIrNfanaRNb4vLbQll92RRTgJuKSRREZ/Iqve24l9fPMXv7+XJO G5kS94UDwV//uyMeJcZr0YzWnHR/dpnOp9I4DGZnKbVUXYxIwZx8EyJGBo8+A3VFK0/u IeLQDZ3v+BnTputYABmBqVkRbv4K2q+zk5/MdoNp9Owk5Wcyj+BjIdm5M3HorlZsF72/ jcGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=FOXoJ2JwpjxiC6qENthM56kOSFcoioemEZxz7Kz2V64=; b=r/3dYiLQb2yjopE1yuB1sbDfC+khwbHLu+eoLB+QPF6vzS0t18+tSnEzEddPNKYpea MOjLiMI0uhoHbhGAxB6A6BxtRY23bE/0lbnSPw4e/o2VW9JBle0zNn6x9MK1w7KW2Gv+ Zmj1/DCQTqZF2yJqWBLW9eH1D2Q81G6D1+l5trv3jshAU9D0aNyDGyWdHZbTjmb3DJTW +9w6qD/YRlJ3LM8BqsmKC10idkdgxZVUGe/E5vpaPEcoYdIHpMAqcTHY5DRQGsS3JFpZ lWvFs284dUi6BnYriDBP7pyrC0mONgfj2qzSaWxL/Zq6U/Vydg4S2ComFni/OOuL9UoD gJzA== X-Gm-Message-State: AKS2vOyDtvombFu6DylTKa9vXbWAcBtMtReI7jd/JzWLW0vdZz/a8giM oJ0HM2/tPeIr8SdRBoapTf0UOaUObk2ehko= X-Received: by 10.55.176.133 with SMTP id z127mr32090012qke.233.1498915106496; Sat, 01 Jul 2017 06:18:26 -0700 (PDT) MIME-Version: 1.0 Received: by 10.140.40.41 with HTTP; Sat, 1 Jul 2017 06:18:25 -0700 (PDT) From: Matt Oliver Date: Sat, 1 Jul 2017 23:18:25 +1000 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.20 Subject: [FFmpeg-devel] [PATCH] win32_dlfcn: Support WinRT/UWP. X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" This only enables dlls that are packaged with the application to be loaded. Due to the limitations of WinRT/UWP it is not allowed to load external/system dlls so this cannot be used as a complete replacement for normal win32 dll loading. --- compat/w32dlfcn.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) #define dlclose FreeLibrary -- diff --git a/compat/w32dlfcn.h b/compat/w32dlfcn.h index bc9bb8c9f5..eeabfe4ee0 100644 --- a/compat/w32dlfcn.h +++ b/compat/w32dlfcn.h @@ -21,7 +21,7 @@ #ifdef _WIN32 #include -#if _WIN32_WINNT < 0x0602 +#if (_WIN32_WINNT < 0x0602) || HAVE_WINRT #include "libavutil/wchar_filename.h" #endif /** @@ -71,7 +71,14 @@ exit: #ifndef LOAD_LIBRARY_SEARCH_SYSTEM32 # define LOAD_LIBRARY_SEARCH_SYSTEM32 0x00000800 #endif +#if !HAVE_WINRT return LoadLibraryExA(name, NULL, LOAD_LIBRARY_SEARCH_APPLICATION_DIR | LOAD_LIBRARY_SEARCH_SYSTEM32); +#else + wchar_t *name_w = NULL; + if (utf8towchar(name, &name_w)) + return NULL; + return LoadPackagedLibrary(name_w, 0); +#endif } #define dlopen(name, flags) win32_dlopen(name)