From patchwork Mon Jun 7 23:03:47 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: 28155 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp3890899iof; Mon, 7 Jun 2021 16:12:15 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzb4iSc/j2MyQgfmMXr2V5uUhJmMUOkzi7o6Iz0ltbpKCFoe8o8JWjpiSlNkHPIr6gFzTxN X-Received: by 2002:a05:6402:8d4:: with SMTP id d20mr22306856edz.117.1623107535736; Mon, 07 Jun 2021 16:12:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1623107535; cv=none; d=google.com; s=arc-20160816; b=qOGi31SK6cEj2B1IyK7zp9PqmCe1Supr41HnaJvpW/Qqh1WUZMRPp0xBHiqQsUu98B DOkMnyk0aj4bBTg5slycPZPEYSnMj/QR7JBsBLoRKVb6RxH6eAQhxI3a2BINq7BpZf8m i549+GUibt5xGJOWvr1xjnM6ZG6hXrhZ8KtizMAEQrTTdPz2v5Cr4OWsiZax5D/9DlZf ebRCXrzF/LHpx0JZfZUK2dFZfld4ygMU1jum+a9jw1+Z60PEk87TZHwgI2n9PCfNj2XO 80ht1xlkQdDuiZmbB+XZbY2wOBpDoGzaBdjwyBsJqkjeBek3Ji08K6gflKgcP/oHLo0S NYFw== 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=QmR6ausPzZLOFdZdVgL1O9hDcnhn+K73UV7C+LjgvtU=; b=0lcxCF6PYBpG1CNqHrtl8/uNt4lpTPlaEWHabIkHH3/3tmxjPKoBc1vTy784Z0D3rZ /UzGDWep4JDs+bAMvTQcng4B1x90DZ+o13k52KS7IRSxE3AvUjkz0xhm877rtNV7oq8G Jbk+IMWZf5ZUKRc40SI5VZS0L85SXuA/iefHgwxcSLbsp59NJZWBGDM/pUbRzTLMSChw 03/k9wVpDT53l1OxB6Q32H4B6yJl+7wre6DCtKssXYd/vfK5l/4jqvgSIMtjphOxH36T v/Atf1VQfbAGcg+WsAtwvHAdAh1mJ6UvjOjw53SxQf9JqCHvtpTtbi/L+fYB6xbh+5jA tDpw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=MVzDJRe7; 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 z11si14049865edr.492.2021.06.07.16.12.15; Mon, 07 Jun 2021 16:12:15 -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=MVzDJRe7; 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 97AC6688369; Tue, 8 Jun 2021 02:12:12 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lj1-f174.google.com (mail-lj1-f174.google.com [209.85.208.174]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8591E68836F for ; Tue, 8 Jun 2021 02:12:05 +0300 (EEST) Received: by mail-lj1-f174.google.com with SMTP id o8so24464874ljp.0 for ; Mon, 07 Jun 2021 16:12:05 -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=kJ69sDqBxwWyHcTOhOmXVrmC/8Fh09oaEzgandQy/Gg=; b=MVzDJRe70Nf+lSi7sim3F3o73JLcAEqipxCUZsMPLar+CORxTB/OqjRAOldSxqUl6p mUWW0Z3TL3ZXPP3/8fHGwjemXlrrnTzdmPycKYmWuFkxTpj+j2Xg432k0jtNKDPwfLey 9lAEleXHon9nhqbwe/pS2zTOMFeXJo2c4OWI9USF7U23BGOg9I1+JC0VSwI8Hw6R0Hcl qzS+HdsCEnbH81U7EtaHhKvBOP+JwisVb66gnSHEF14HY9w4mgZDWeq+vDiqo7vdAGYG XXSTHbcPXxQhv4pbgXC9dcH92EwRJ0IfE1f9fKwHTbsV5XgMGPruiwRdfJbXgauf3SrE xhnA== 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=kJ69sDqBxwWyHcTOhOmXVrmC/8Fh09oaEzgandQy/Gg=; b=oq4wDodF9v7A0VJGb/ain83y2Xk8hGX7Zo5DUz76PbEXZL99GZZGiIDgV3LAn5GUJ7 VEVC6l61pKT2wEY3shXmv6FFqVjW22jE9zdwdWXAKoedF9Mp6SYZgGmQWwP4Kx2MOwm9 y+hbTML7NzMO/tc5WKx7vSycj2B+xosOzRQ0yt4qGQR8H99UXw5JgvMimRSwRVjoY9I6 uDlKRtwByPtb/B4JvB+OI7nCO7VKlu2FCRprPvUskekzCDHvgu5B/KmF0Atgx3mMoOCg kt9ajUCq3KpIz3LGqibYcFv9GwYFqn8pPOxiKVJP2MiQsDdpIPv5RZ9JaWT/ZRzoo7gp iNgA== X-Gm-Message-State: AOAM5305hEcCnx9hTDGJWuxltcwrQcyyMxQIr5XtUbYxljfOPVlbYOyY fK3JT6zvJ9bwirSmZE87iHLnBcASGPPS5w== X-Received: by 2002:a05:651c:484:: with SMTP id s4mr2025420ljc.260.1623107074518; Mon, 07 Jun 2021 16:04:34 -0700 (PDT) Received: from localhost.localdomain (84-217-56-54.customers.ownit.se. [84.217.56.54]) by smtp.gmail.com with ESMTPSA id v9sm1999563ljv.131.2021.06.07.16.04.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Jun 2021 16:04:34 -0700 (PDT) From: Diederick Niehorster To: ffmpeg-devel@ffmpeg.org Date: Tue, 8 Jun 2021 01:03:47 +0200 Message-Id: <20210607230414.612-9-dcnieho@gmail.com> X-Mailer: git-send-email 2.28.0.windows.1 In-Reply-To: <20210607230414.612-1-dcnieho@gmail.com> References: <20210607230414.612-1-dcnieho@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 08/35] 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: ErSL3sIK2F0a 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, \