From patchwork Tue Jul 6 09:20:10 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: 28812 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a5d:965a:0:0:0:0:0 with SMTP id d26csp4922074ios; Tue, 6 Jul 2021 02:25:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzIofVarglcQiFvvpaWQPfRhcgltKorB9KaFZrOxR/9Kk/Ht9dKfMnSGhCpC5fk5ba+RhZc X-Received: by 2002:a05:6402:278a:: with SMTP id b10mr22379804ede.54.1625563543728; Tue, 06 Jul 2021 02:25:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625563543; cv=none; d=google.com; s=arc-20160816; b=kxjkoxLeMO3WLwchTHbmpRl04AeD2LVSBZU15oKFAuHrTMLxzU7gZp49/gMZrKkvlS yP9E0jU5oFdIAF3g/Sd+QsTAMNiKyH7G2tABR7t0lltdmSJy1XtegeiOY8rRgJZmHI/t hOhEDUvq8VMcwXIDJb9qZZF0i6ntH1vv/bSkkPFSn54cWr8tKjk3aRVleQ/dKu/qKbb8 JCwZtXs7hS4WtE+0sbNcpcuqaIyE6RVPVTSCXnebN6WP1GyTfc6xsMlRtCpIWBezgLjs R5fPN6pq2WtDF4y0BhyXj+fEYp6eCq86GMAQ+1BW8ZxsRfEJAX9TeAEHDKtb4DOnl6zK cftA== 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=6UnIcPSIaDwUfWeh4nsimsVYLoiaXB+nQRshmdWNCBc=; b=jLB81iMSjtt3vT5e2h9V3b4lptyzxjjEKrrFJVQEWsKlp2C1HInO4JG3isjChIHs6j 9gBclHuSg2nwBsz5MRywB9psaWSGlamd7fGZmKZeDwe9P3JA8OAgfogqLJH5tXOrT/vZ RWtmmSkTEqCjpCyw9g9oUusQKZYD8qOXCqMBNTqU0wHAWgl+A3eNnmVUR9FEMyChxFq6 efC4UQMV1A8+9H2/TRVdBMOr8/KUDn+WSkbud5VoodoSLFgHTCBDjAzGddab7CprCufM 1VG6Tirf87LddOSm48F50v/knaL6UWz0Uz91gK5OPk7ueBfke2dcktbsSGoUF6/l9BGU pNlQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=Xa7EbCzM; 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 q18si14205505edd.415.2021.07.06.02.25.43; Tue, 06 Jul 2021 02:25:43 -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=Xa7EbCzM; 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 6B58268A86F; Tue, 6 Jul 2021 12:25:34 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lj1-f178.google.com (mail-lj1-f178.google.com [209.85.208.178]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6F51968A878 for ; Tue, 6 Jul 2021 12:25:31 +0300 (EEST) Received: by mail-lj1-f178.google.com with SMTP id r16so28212182ljk.9 for ; Tue, 06 Jul 2021 02:25:31 -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=Z/wuRieFwaG4Afab+wM472uURtrxTfrYxw/0ds6LNdk=; b=Xa7EbCzM8BZzEH+X+PLZUbSsVUe6nzgG8Xpci7lQBGwyy7+z3LxN4wHUZWvVDTn/CF lBG3FrD2GXZmM4hLBx/B0jqb/TiA+rMXMD2PGNdapneWEzfAqNKnLz75JkpTbqgItSjZ 4ETAGN1HiIGeGIHvkHw+FlLsFn+lzgAmKlCP6LbMuIKxIYjP0GCpss/Rz0v7mAZpwKuI HL3DO+cPQ+WrwhlmDS2R0BiegAPspDc2TbD0c7AOnYsycIvuda2YOdZpwZ2hRCjR/Wt2 opCjiURThNPQ0JK1xYzrPpLX2hlfwIRBRjtn4HHJJtZkDfzObBn6zObW4qvLbVUkz+DK MFhQ== 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=Z/wuRieFwaG4Afab+wM472uURtrxTfrYxw/0ds6LNdk=; b=OUUZmAgnR+Q6sE4mD5AqD6WC8/0OiuWYJXUUYY/ey4ql81dtwn1IOXfW/8PKtmvSb5 9mQ8kr78FFk7uokcB131eY0PDiCvGkC1I/OHnFd8cChgOpXXO4YTQZWvxDk7N/XmpRjb 7Mub/Ai+UgcTUrIJNjPV5/g1fnykZf04TC5zTDxm6LTfVP4LLn4ZHKUUN7wDzZvXj8kn VPHHjdUX2qM7RfYVUH2ZCxZrkJlTuCL/KclwFlhwoj6bim+GbHnLhxg4YjQp5HbKl138 hp7mxsER/ztnfHQ14DkKmNzKWtdjjL9mX0m9P7jvMgE5rPDvDWn92L7j4vNbP2+NJTQE tYdw== X-Gm-Message-State: AOAM533/h6fxED7C6+2zsgAuKqL2AAY6CCowLuWoCAzTGRt62Xza5oeS pIQfV0SRLR0M9lqfmeUHOEJja3m7gAk= X-Received: by 2002:a05:651c:211d:: with SMTP id a29mr14748289ljq.115.1625563530790; Tue, 06 Jul 2021 02:25:30 -0700 (PDT) Received: from localhost.localdomain (deedock.humlab.lu.se. [130.235.135.183]) by smtp.gmail.com with ESMTPSA id k12sm784667lfv.14.2021.07.06.02.25.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Jul 2021 02:25:30 -0700 (PDT) From: Diederick Niehorster To: ffmpeg-devel@ffmpeg.org Date: Tue, 6 Jul 2021 11:20:10 +0200 Message-Id: <20210706092020.1057-25-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 24/34] avdevice: change device capabilities option type 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: +ZDY2E3g2PZg Changes fps option from AVRational to double. This since any device capability query results are returned in AVOptionRanges, which hold the value as doubles, which can't contain AVRationals. Also updated documentation of other capabilities, some had the wrong option type listed. micro version bump as this capabilities API is unused for now. Signed-off-by: Diederick Niehorster --- libavdevice/avdevice.c | 4 ++-- libavdevice/avdevice.h | 6 +++--- libavdevice/internal.h | 4 +++- libavdevice/version.h | 2 +- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/libavdevice/avdevice.c b/libavdevice/avdevice.c index cb139e6d4a..73c6738383 100644 --- a/libavdevice/avdevice.c +++ b/libavdevice/avdevice.c @@ -50,8 +50,8 @@ const AVOption ff_device_capabilities[] = { {.str = NULL}, -1, INT_MAX, E|D|V }, { "frame_size", "frame size", OFFSET(frame_width), AV_OPT_TYPE_IMAGE_SIZE, {.str = NULL}, -1, INT_MAX, E|D|V }, - { "fps", "fps", OFFSET(fps), AV_OPT_TYPE_RATIONAL, - {.dbl = -1}, -1, INT_MAX, E|D|V }, + { "fps", "fps", OFFSET(fps), AV_OPT_TYPE_DOUBLE, + {.dbl = NAN}, 0, INT_MAX, E|D|V }, { NULL } }; diff --git a/libavdevice/avdevice.h b/libavdevice/avdevice.h index 44c4f185a2..758c650636 100644 --- a/libavdevice/avdevice.h +++ b/libavdevice/avdevice.h @@ -344,7 +344,7 @@ int avdevice_dev_to_app_control_message(struct AVFormatContext *s, * type: AV_OPT_TYPE_INT (AVCodecID value) * - Capabilities valid for audio devices: * - sample_format: supported sample formats. - * type: AV_OPT_TYPE_INT (AVSampleFormat value) + * type: AV_OPT_TYPE_SAMPLE_FMT * - sample_rate: supported sample rates. * type: AV_OPT_TYPE_INT * - channels: supported number of channels. @@ -353,13 +353,13 @@ int avdevice_dev_to_app_control_message(struct AVFormatContext *s, * type: AV_OPT_TYPE_INT64 * - Capabilities valid for video devices: * - pixel_format: supported pixel formats. - * type: AV_OPT_TYPE_INT (AVPixelFormat value) + * type: AV_OPT_TYPE_PIXEL_FMT * - window_size: supported window sizes (describes size of the window size presented to the user). * type: AV_OPT_TYPE_IMAGE_SIZE * - frame_size: supported frame sizes (describes size of provided video frames). * type: AV_OPT_TYPE_IMAGE_SIZE * - fps: supported fps values - * type: AV_OPT_TYPE_RATIONAL + * type: AV_OPT_TYPE_DOUBLE * * Value of the capability may be set by user using av_opt_set() function * and AVDeviceCapabilitiesQuery object. Following queries will diff --git a/libavdevice/internal.h b/libavdevice/internal.h index eee493a4c7..5f0bd403dd 100644 --- a/libavdevice/internal.h +++ b/libavdevice/internal.h @@ -50,7 +50,9 @@ struct AVDeviceCapabilitiesQuery { int window_height; int frame_width; int frame_height; - AVRational fps; + // NB: an AVRational cannot be represented in the AVOptionRange + // output of av_opt_query_ranges, so we store fps as double instead + double fps; }; /** diff --git a/libavdevice/version.h b/libavdevice/version.h index e0361aebc1..0df40ef4c7 100644 --- a/libavdevice/version.h +++ b/libavdevice/version.h @@ -29,7 +29,7 @@ #define LIBAVDEVICE_VERSION_MAJOR 59 #define LIBAVDEVICE_VERSION_MINOR 3 -#define LIBAVDEVICE_VERSION_MICRO 101 +#define LIBAVDEVICE_VERSION_MICRO 102 #define LIBAVDEVICE_VERSION_INT AV_VERSION_INT(LIBAVDEVICE_VERSION_MAJOR, \ LIBAVDEVICE_VERSION_MINOR, \