From patchwork Tue Jul 6 09:19:54 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Diederick C. Niehorster" X-Patchwork-Id: 28791 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a5d:965a:0:0:0:0:0 with SMTP id d26csp4920126ios; Tue, 6 Jul 2021 02:22:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyqGYvQ3SU6njsxblINGn1to45vVuycSMCzFXGNi57Hp2kahMcYvOOs9Gfbt3idAJd1znjn X-Received: by 2002:aa7:d9cc:: with SMTP id v12mr21473823eds.224.1625563356485; Tue, 06 Jul 2021 02:22:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625563356; cv=none; d=google.com; s=arc-20160816; b=uQFmI7VGGBxebXRPzwV3GePoX6aQ3J8RczR4G1jHHyYpCDMZSQJSQUMUjAAyemUzEo ltXfR3FfZcyKA0j9DbqJFme3883010ht8hukwquf1/yiUHvdsJ8iAOVXCVD0FSrPHpVv 6frXYYi41mZW/2abDeCuEaQ99zkKIsxOEBucXxvQG6jvCgKbFPzyVXJbflRBT4H3oiDb ODUZuZbMHiXQCSWiVo6LO1OJtQjsLLg8vPnoH93acCjFOZxoEWgKZVQ5Q9FOpHhPnS3I fAG+O+9se7pWcga29jEtz75ekStazsNuMsDuibBfWXGswzk0iYQwFT8X00owPHgRhSON FJzg== 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:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=XTcUtUDazvrxnQ1U/B+ZA4MUuvoZ9f5eNe084JO+cnk=; b=v2i/Xsppj8akvnHwiXl+e03dP28Fh+OkcYQ5zw5whnvJJ4sHnRrQYc0QKAOnmw96dI +vo2xDcVqQ+HJbACcy5JHZSMhPG2eJo0war7XfpX04zySjVAOWzkL/DVUssg8A2byTH4 XmzPg5bClIJKipvUTUZvr1dsQDm3TAIqDxYNhknAn3qKVJnNcVex8ruW10wtI5nehiqI B3MeQdZsCSlhtJfrUckYXRYQvAG2t9UD++O6kFQ5qxhfvWJ8fvbBaW7x+timFZzCvLdO qoSSN25hu/HYOo9fqMHt4u0SJ9SUG45g6VIKZTLl/SvPc4F1uUy1CINXURbnLyKTrne5 cG1w== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=bpU3v0Qk; 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=QUARANTINE 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 qa37si9230015ejc.683.2021.07.06.02.22.36; Tue, 06 Jul 2021 02:22:36 -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.s=20161025 header.b=bpU3v0Qk; 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=QUARANTINE 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 775EB68A758; Tue, 6 Jul 2021 12:22:29 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lf1-f43.google.com (mail-lf1-f43.google.com [209.85.167.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5A64568A700 for ; Tue, 6 Jul 2021 12:22:27 +0300 (EEST) Received: by mail-lf1-f43.google.com with SMTP id v14so11599881lfb.4 for ; Tue, 06 Jul 2021 02:22:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=jkH7//Ug1KRjrqJO2w+IvuSqaoye+0tWmmd3ktLeHBM=; b=bpU3v0Qk3fLT4BrvQ2oKm6p0FVE5MTjr9l8/wxyIcbwrBd/McXLxsvN/LQP5ORFOm1 B+glu+MzZ27SVz6lO+twsc7G1/dq1yZEgvJ23tsOxFmxZo7myobRA8esI5AM7ZRUEGlh 46HPy3lh8fV2trYi4VuOQEchUrIiRFE4PKUaOuqvPGTI/6gKndhGNygq4t30FIwu27/E YRIRgu8zRtRRP0mThHsS+uzo2R6e8Ktr6bQKfZ14MlSBjxwoslOH8KKsfzoeN7s5OcZN YId3uzKCR9IdPg+3/N5IpsFAGqCqIJpqKJj4QEGM+iq1bgV2wRRf20CCer5IB4ywq+QH JT0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=jkH7//Ug1KRjrqJO2w+IvuSqaoye+0tWmmd3ktLeHBM=; b=Z05F+WUlchG77SNRXsyKuxYfRHbtrA6x+QrC2HUgdj7WYOPVdWLGAeO9pFvsC3uwmq 4ybOsS6Dtwqv8awJcoDDxQXz6Ee7qpTzS7fgHiZCfXqOE2N3qvY+PLlsjIil4u/ki/u/ 5jQdoWRicrbHchklCQKp9t1/KUQcGADPgxMAr5cfg/r5moEf8Ksaibm9v2iDTwJsa+za dxr/Hl1+6AMy665Nf3dOIx0KnS83Bn20O7feZl83mxCSMcI1xrzI/idrix2YFtBKa0ad 7jSv9tx+ZgjTGMkt5m+XcLR6xygxLbU7dC7X8QTGfx45Q8hDHUEBlWD4JuH5dEnPXfDS TMqw== X-Gm-Message-State: AOAM533gs+VD5rkrKT6X077yoEa4BpS+0T4JxCd9Gzp3XAism1l5FPEa pRE6U9q7jRwKhBwHeBy+QSVpqsmr0IU= X-Received: by 2002:a05:6512:3b21:: with SMTP id f33mr14313739lfv.185.1625563346486; Tue, 06 Jul 2021 02:22:26 -0700 (PDT) Received: from localhost.localdomain (deedock.humlab.lu.se. [130.235.135.183]) by smtp.gmail.com with ESMTPSA id g22sm1338606lfr.227.2021.07.06.02.22.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Jul 2021 02:22:26 -0700 (PDT) From: Diederick Niehorster To: ffmpeg-devel@ffmpeg.org Date: Tue, 6 Jul 2021 11:19:54 +0200 Message-Id: <20210706092020.1057-9-dcnieho@gmail.com> X-Mailer: git-send-email 2.28.0.windows.1 In-Reply-To: <20210706092020.1057-1-dcnieho@gmail.com> References: <20210706092020.1057-1-dcnieho@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 08/34] avdevice: add info about media types(s) to AVDeviceInfo 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: Diederick Niehorster Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: xi1ZTkGqK6Zj An avdevice, regardless of whether its category says its an audio or video device, may provide access to devices providing different media types, or even single devices providing multiple media types. Also, some devices may provide no media types. dshow is an example encompassing all of these cases. Users should be provided with this information, so AVDeviceInfo is extended to provide it. Bump avdevice version Signed-off-by: Diederick Niehorster --- libavdevice/avdevice.c | 2 ++ libavdevice/avdevice.h | 2 ++ libavdevice/version.h | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/libavdevice/avdevice.c b/libavdevice/avdevice.c index 22b7595ab1..4a40929007 100644 --- a/libavdevice/avdevice.c +++ b/libavdevice/avdevice.c @@ -158,6 +158,8 @@ void avdevice_free_list_devices(AVDeviceInfoList **device_list) if (dev) { av_freep(&dev->device_name); av_freep(&dev->device_description); + if (dev->media_types) + av_freep(&dev->media_types); av_free(dev); } } diff --git a/libavdevice/avdevice.h b/libavdevice/avdevice.h index 8370bbc7f2..6f24976dcc 100644 --- a/libavdevice/avdevice.h +++ b/libavdevice/avdevice.h @@ -457,6 +457,8 @@ void avdevice_capabilities_free(AVDeviceCapabilitiesQuery **caps, AVFormatContex typedef struct AVDeviceInfo { char *device_name; /**< device name, format depends on device */ char *device_description; /**< human friendly name */ + enum AVMediaType *media_types; /**< array indicating what media types(s), if any, a device can provide. If null, cannot provide any */ + int nb_media_types; /**< length of media_types array, 0 if device cannot provide any media types */ } AVDeviceInfo; /** diff --git a/libavdevice/version.h b/libavdevice/version.h index 6021a0dd65..6e593ba00e 100644 --- a/libavdevice/version.h +++ b/libavdevice/version.h @@ -28,7 +28,7 @@ #include "libavutil/version.h" #define LIBAVDEVICE_VERSION_MAJOR 59 -#define LIBAVDEVICE_VERSION_MINOR 0 +#define LIBAVDEVICE_VERSION_MINOR 1 #define LIBAVDEVICE_VERSION_MICRO 100 #define LIBAVDEVICE_VERSION_INT AV_VERSION_INT(LIBAVDEVICE_VERSION_MAJOR, \