From patchwork Mon May 6 14:49:25 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Thompson X-Patchwork-Id: 13011 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id F30FF4488D2 for ; Mon, 6 May 2019 17:55:07 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D4B5E68AC07; Mon, 6 May 2019 17:55:07 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f66.google.com (mail-wm1-f66.google.com [209.85.128.66]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1A41C68A965 for ; Mon, 6 May 2019 17:55:02 +0300 (EEST) Received: by mail-wm1-f66.google.com with SMTP id y197so15546551wmd.0 for ; Mon, 06 May 2019 07:55:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jkqxz-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=TPoTXqPp9dz1mCNupe+0qJLvy7/TxZcJaxWGmf5sPWQ=; b=uXvF0/9oAqMGip7yxmfS5eYh7A62AqqEma3VBe9o4vJk1zGvr1rU5LnN2djO1bjbnv QCqwnVIb5SGvYfT3Yq1u4poicSC0GiS+mJ+qThNxRwv4chMO+3cAmDanjoFTkWeLujq1 85/K6V2gFM/Hv44VscTDRHZEcwNCCzKuYZHrRCqGsFoNd34vu6ni6yV9QlAdW1M9sN4H 6OmlNFxywtuHmH8YootD7h1H0reIjb+/aag4FVFrZb80ow+sNIJMenY1OYbyrtZRZYiI C4jA16J5f5n/5lDmjnFDkv+yWfIwLSqAkP0UuCkjNgec6XTwXEueT7q3skdywGaxyccg 7TKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=TPoTXqPp9dz1mCNupe+0qJLvy7/TxZcJaxWGmf5sPWQ=; b=g0Cg/V5YG8aksQ9+15Ca0bv86XDMMUtiJz6ncj3PtthLzRMdTJxoQIpbWKOfxnTh0d X0pSL0bFCtJ2VQR2pOMr0Mo4Qy8Mxr40yPIt4HUiNAazjJyiGIyOAc8KAjATA7+Zxa8m TxKqFEG8g7aDj0aAvH+gAdy671qHGw5/CwP24c/x5aMr8ygj3zXJNqKWmzTJ6zyw94P0 4L3dzCcSD+I15c4DBAhhRGaEVCmytNc1Gs6UnNXfxt1WFru4+UA+UuY2oi+Mhuc9hjg9 YdtioZVcInWHzGaJ2Ut+NM4kXrByPg1uLV3GPJiLUG8BZGYMRwOiN484+cicnRgWCmYj us4Q== X-Gm-Message-State: APjAAAU0PX75O++M7BKBYQf7qrUhykFo/GdC3Ry6BPOC2vvzbzA6nCZG t/XdhfLxAhMwgUKF5+qagq7NKoN5o8k= X-Google-Smtp-Source: APXvYqzRckbsrDyExm7oKrU9zgeP78E2GafmXbMnZP8HYn9qbOfBxVdVagyGAiwG4RpuX33RKaAndw== X-Received: by 2002:a1c:1f92:: with SMTP id f140mr14260267wmf.132.1557154175610; Mon, 06 May 2019 07:49:35 -0700 (PDT) Received: from rywe.jkqxz.net (cpc91242-cmbg18-2-0-cust650.5-4.cable.virginm.net. [82.8.130.139]) by smtp.gmail.com with ESMTPSA id l19sm14691742wrg.29.2019.05.06.07.49.34 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 06 May 2019 07:49:34 -0700 (PDT) From: Mark Thompson To: ffmpeg-devel@ffmpeg.org Date: Mon, 6 May 2019 15:49:25 +0100 Message-Id: <20190506144928.28501-5-sw@jkqxz.net> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190506144928.28501-1-sw@jkqxz.net> References: <20190506144928.28501-1-sw@jkqxz.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 5/7] hwcontext_vaapi: Add option to set driver name 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" For example: -init_hw_device vaapi:/dev/dri/renderD128,driver=foo This may be more convenient that using the environment variable, and allows loading different drivers for different devices in the same process. --- libavutil/hwcontext_vaapi.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/libavutil/hwcontext_vaapi.c b/libavutil/hwcontext_vaapi.c index c151f8da93..35883d7855 100644 --- a/libavutil/hwcontext_vaapi.c +++ b/libavutil/hwcontext_vaapi.c @@ -1598,6 +1598,25 @@ static int vaapi_device_create(AVHWDeviceContext *ctx, const char *device, return AVERROR(EINVAL); } + ent = av_dict_get(opts, "driver", NULL, 0); + if (ent) { +#if VA_CHECK_VERSION(0, 38, 0) + VAStatus vas; + vas = vaSetDriverName(display, ent->value); + if (vas != VA_STATUS_SUCCESS) { + av_log(ctx, AV_LOG_ERROR, "Failed to set driver name to " + "%s: %d (%s).\n", ent->value, vas, vaErrorStr(vas)); + vaTerminate(display); + return AVERROR_EXTERNAL; + } +#else + av_log(ctx, AV_LOG_WARNING, "Driver name setting is not " + "supported with this VAAPI version.\n"); + vaTerminate(display); + return AVERROR(ENOSYS); +#endif + } + return vaapi_device_connect(ctx, display); }