From patchwork Sun Mar 20 19:36:13 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 34861 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6838:ed11:0:0:0:0 with SMTP id hi17csp1114853nkc; Sun, 20 Mar 2022 12:37:30 -0700 (PDT) X-Google-Smtp-Source: ABdhPJweA72/C4l62ePizIs4Q/Fx6Q862x7aV0rx70qOHrg3+XyqLf+fJdyauCZmmaCs6SH331Xp X-Received: by 2002:a17:907:7b9e:b0:6db:2b7f:3024 with SMTP id ne30-20020a1709077b9e00b006db2b7f3024mr17511217ejc.29.1647805050478; Sun, 20 Mar 2022 12:37:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647805050; cv=none; d=google.com; s=arc-20160816; b=sNf0d+n7OvxCeIcZSzSmbtxQRfeF17bovRNsAP7913SmPumPCpMvPSV2wj+GTHigXm vtnsazDInS+FW2jZQQOhjy6wMVfJiRrMBLbhonGyizbRHUeddtrHMf31+RlsQpjgSGYH f90P2fTgroeUA678gNOnikVqmtpGNLgAF+NEhntxfOjNO8jd3WZMeAY6aNMouocuUJZV 96LEgahaqJeVmRug88f7Xq/iYdd9ccFHg1bqDVgsecCOLkwJ0TKATbznjvq5E7MDmql4 aX8FHPLK3BYhdSUkgfUhrrswm7OoWlTDZ+TTZXNIoDp8JJAVOUSixTZ3CUNcDaRdEBuY OjLg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=XL7TXxUHJ944FCqvW5b0nipuUNqyZh6ZNLMnbm8l9/c=; b=DVcFXoseil9pnLnQfzsbB+N2leAHByWt1Nq2PCUfe6SHXHtb3+JujWv9y3yhGOgQym 8WNZ2lfa+XxRKImFn4RnD95jcUPBG5auROqE/raOBOsZUb5++56pGoN52sZrLXiBDeJg vC9uxgV7UnZdFa6YR6YeFtS4CUk74ugm27CtedCtig/OHDxBTb87jmrvW3DrkAPXnL2r PbF2vbNy9Nvy5+Bq3ZmTMZU3HIBdh82YBtHhcM5zq9bAEVDlNNyQIRHiPHnwN02wIL/o rO7RPabLL56JN6sqt2TTviX1faoZyskkZt7yGxYtSCcskUgBBFp2Qs8aBizKY1PxmBn3 5Rng== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=e47wGqnr; 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 n24-20020a17090673d800b006df76385be7si5436668ejl.135.2022.03.20.12.37.28; Sun, 20 Mar 2022 12:37:30 -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=20210112 header.b=e47wGqnr; 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 B630068B0A2; Sun, 20 Mar 2022 21:37:24 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ot1-f49.google.com (mail-ot1-f49.google.com [209.85.210.49]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 22F9D6802AC for ; Sun, 20 Mar 2022 21:37:18 +0200 (EET) Received: by mail-ot1-f49.google.com with SMTP id t8-20020a0568301e2800b005b235a56f2dso9266007otr.9 for ; Sun, 20 Mar 2022 12:37:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=qZQBzQhXcoMi8bQIDutwMF/kkh5c6MsMc671Sj+vmq4=; b=e47wGqnrHcb58WDYAZ+KmakUZdTU7VmV+3d6oVL40NV8GF02dh8dyQwOB6ZC6+6HwW yBGLqb0A5b6mhrn2VplRPc7ugohNBP3lkCtGkqZ6tn/Az18Xez96cfMx20Lr6GOqdRRG nO6AP6Rdeo9rjeNz1ne+0xi2uXJEH8LZdMvi2sAiqrQP7vC5Qyi+isuNhP1PJfV1sASv k6fYIxRH3ZwRWkRpIZ3pqt5yZAGR8Z2GEXYhF4bPCz7zA2a/AK4LCdwxwZrzyyxG7+71 ilas78apezqfuJMVDjQkvyVWgeoeKriqVF89/d12bm/D+reh0uzhDxqWqtKX99kE/M5f /Bhg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=qZQBzQhXcoMi8bQIDutwMF/kkh5c6MsMc671Sj+vmq4=; b=lCiATw0KbEomtK7/4ZpfixHMljlOzkMTWsf+XikPft02PFy1znVb21V8ZYJEGiIZxV LQeFZ8RSSKuP7lcii3zqopRRkcRTml8/Cpi3Th/unI3I5Ib3nJzdXqXbdBBo7KIeDTj9 GyN8ra0TtsXzLUVpDz1UJvFh1dSGrZU2/cyE13a2xL8/q+3BZ79zS1OvzuFHBWf2pMRC eBPtDmuuEJ4PQFZh/PIaXfUA3JhZVduHS9bKgDOG/HtWdrIp2DTqYhI3Q5wgoRvoE6xU pH6LQXv3BbIAlCYIwe6yuLf7vXc+wp/r7fmi7xOlePEtinjVQslzHzGl3aN9TXiXeS0d jzWA== X-Gm-Message-State: AOAM531cTHh7V/M7Vv0PUx0cta0KcuprEgWU+XmN9fF9MyOwu0/8LyLE M6iTi+jtBT6zLwtljLBo6sF6itZH7R97Yw== X-Received: by 2002:a05:6830:543:b0:5b2:5cac:6ce6 with SMTP id l3-20020a056830054300b005b25cac6ce6mr6878552otb.115.1647805036148; Sun, 20 Mar 2022 12:37:16 -0700 (PDT) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id y15-20020a056870b00f00b000d75f1d9b81sm5418483oae.46.2022.03.20.12.37.14 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 20 Mar 2022 12:37:15 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sun, 20 Mar 2022 16:36:13 -0300 Message-Id: <20220320193619.51185-1-jamrial@gmail.com> X-Mailer: git-send-email 2.35.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/7] avformat/pcmdec: deprecate channels option 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: LXtN1c/pVlkH And ensure ch_layout has priority if set over channels, until the latter is gone. Signed-off-by: James Almer --- libavformat/pcmdec.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/libavformat/pcmdec.c b/libavformat/pcmdec.c index dcd13787d5..962faad4a7 100644 --- a/libavformat/pcmdec.c +++ b/libavformat/pcmdec.c @@ -33,7 +33,9 @@ typedef struct PCMAudioDemuxerContext { AVClass *class; int sample_rate; +#if FF_API_OLD_CHANNEL_LAYOUT int channels; +#endif AVChannelLayout ch_layout; } PCMAudioDemuxerContext; @@ -43,6 +45,7 @@ static int pcm_read_header(AVFormatContext *s) AVCodecParameters *par; AVStream *st; uint8_t *mime_type = NULL; + int ret; st = avformat_new_stream(s, NULL); if (!st) @@ -52,13 +55,16 @@ static int pcm_read_header(AVFormatContext *s) par->codec_type = AVMEDIA_TYPE_AUDIO; par->codec_id = s->iformat->raw_codec_id; par->sample_rate = s1->sample_rate; - if (s1->channels) - par->ch_layout.nb_channels = s1->channels; - else { - int ret = av_channel_layout_copy(&par->ch_layout, &s1->ch_layout); +#if FF_API_OLD_CHANNEL_LAYOUT + if (s1->ch_layout.nb_channels) { +#endif + ret = av_channel_layout_copy(&par->ch_layout, &s1->ch_layout); if (ret < 0) return ret; - } +#if FF_API_OLD_CHANNEL_LAYOUT + } else + par->ch_layout.nb_channels = s1->channels; +#endif av_opt_get(s->pb, "mime_type", AV_OPT_SEARCH_CHILDREN, &mime_type); if (mime_type && s->iformat->mime_type) { @@ -108,8 +114,12 @@ static int pcm_read_header(AVFormatContext *s) static const AVOption pcm_options[] = { { "sample_rate", "", offsetof(PCMAudioDemuxerContext, sample_rate), AV_OPT_TYPE_INT, {.i64 = 44100}, 0, INT_MAX, AV_OPT_FLAG_DECODING_PARAM }, - { "channels", "", offsetof(PCMAudioDemuxerContext, channels), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, AV_OPT_FLAG_DECODING_PARAM }, +#if FF_API_OLD_CHANNEL_LAYOUT + { "channels", "", offsetof(PCMAudioDemuxerContext, channels), AV_OPT_TYPE_INT, {.i64 = 1}, 0, INT_MAX, AV_OPT_FLAG_DECODING_PARAM | AV_OPT_FLAG_DEPRECATED }, + { "ch_layout", "", offsetof(PCMAudioDemuxerContext, ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str = NULL}, 0, 0, AV_OPT_FLAG_DECODING_PARAM }, +#else { "ch_layout", "", offsetof(PCMAudioDemuxerContext, ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str = "mono"}, 0, 0, AV_OPT_FLAG_DECODING_PARAM }, +#endif { NULL }, }; static const AVClass pcm_demuxer_class = { From patchwork Sun Mar 20 19:36:14 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 34862 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6838:ed11:0:0:0:0 with SMTP id hi17csp1114914nkc; Sun, 20 Mar 2022 12:37:38 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy6GlN3OWfzJ+9y/FrdI/EzHmZYuFFZieS+PzWZlMjaM+tn8omtewNxQvbhaP12V2nVAo5b X-Received: by 2002:a17:906:be1:b0:6ce:c3c8:b4b6 with SMTP id z1-20020a1709060be100b006cec3c8b4b6mr17681038ejg.617.1647805058651; Sun, 20 Mar 2022 12:37:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647805058; cv=none; d=google.com; s=arc-20160816; b=iD+E7thHb/qXRpjQFq/FywuqrbRuX6W+Ev2cYI4PmXPqOjy1OrRicNKpiX4/OB87M/ fDlSHKwXdTZ6SOOaje3s5ERzuMqIP+U20vJS4d+bbIOh37Nm9Vscm09m0bOOZy+WVzI4 pJJmCvEN5cGx0H51vOPBBa7DWwihgHWs3myRYn32cvv+GpBtJ951TFgSe3qgduRzkuRL CX3sSUCY2nFnYVLHUfXYADPmp+j8txN9DU9M8DpiEybK4nFfpF7cHKLMDe9Gh0w8J2qy C19stbFkoYmOzlIAyBjrn9MVa+nHsP8CL52mCSnWcnc+V45lHDw6+5sGNKQR3sefIdQE 4xow== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding: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=PV5+LtxWayNR2/dmB1QsoBqQn7es3mK3fH5nvfLqPgY=; b=kzPOrocnMZLiVxt225v9oE2g47ZMQsOVeotxEhRKXKbjXDvk50GBStImAbYyAYkYu4 NYEu93/c1afhEacz0stNDr5CweKhFlOeaJOKQd/tyeiBXUaOfRXw46lmUr4+406eJSge Cylt13UYDoCJRqLTmxZt+xK5F5a0Ec2pLVbo7z9T+knYipj4ZCiUrxOeE6/tc14vFMri YdOhU7z2FnqVjG1XLT/GnOCKm6C6IjFnLQxr93/UcDMMouZwR8+Y4W7zMd3zXJrqegPr NrXH29nJpa5n62/bRXxPURr76R7dMY4m3VsV0iK01IFwiTy/Zr6tC1Mwk+dKUh6534pn fopw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=asbtCjg7; 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 jg27-20020a170907971b00b006df76385f25si7182130ejc.965.2022.03.20.12.37.38; Sun, 20 Mar 2022 12:37:38 -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=20210112 header.b=asbtCjg7; 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 CA75E68B0E0; Sun, 20 Mar 2022 21:37:26 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ot1-f41.google.com (mail-ot1-f41.google.com [209.85.210.41]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9413568B0A2 for ; Sun, 20 Mar 2022 21:37:19 +0200 (EET) Received: by mail-ot1-f41.google.com with SMTP id x8-20020a9d6288000000b005b22c373759so9273720otk.8 for ; Sun, 20 Mar 2022 12:37:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=NXhviNEWF4Jh5ciSSTfBV8PJ2tYQPCQUJ+8XI7kji44=; b=asbtCjg7HeZOr21BJLjRUfPuiHviuZt3gu51lrFGNSvodGNlKKZGmnEUtrDv3TZk9w d53feFxiwlpU3L2aqowxo6h53nnchcTZRMQ9ZZDVk7ngH1rjYGPIyAEtwgD4ucIvafkC fbehuqifA4qkj4hdiT519PnNVDM17SNveiIs2yjcSOSTm/epNFxDt1ajKMiHI68mE4Gk zyDRjGS484qX3GKUe/eHufwgcYSyhli0AaKlAEqul9f/Ofkj49hwU89vYao0UM3dyetb QALew2wQ/x0pr4extU9/tPlFBNoJOBVEiG/pBoLdDIosJY6la0SC9Gw0qlPgIqamLPok mybg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=NXhviNEWF4Jh5ciSSTfBV8PJ2tYQPCQUJ+8XI7kji44=; b=UYQwFKPo5zWbEEs5OWpBIULEJFPhlAHMruv9e3pyw98m5d/R5XgNgVaHz42ygu+qox va6nM28K8xoxcqsPH4ENLJegK1uueD56XO1knf2SY4IlGdo06Emb53vIkgiRlWYFODwf gaSl+T+9dqcJggKIGJs5zIBQjcJqHMgu9LT5n1BYVIVq+IGI3ohT4ClPCljjCE79zv17 GCN4PRGGvJLck/dL/7lWhVDiwDWsiAFCNcSAjmad31MhXfR7+zkMOY19JLXcxtOaRdr6 oyh4QCf/DnxvjT4gd6OByjI/0Y0S+ErE+mB+MlpDwC0aJG79L77aute7LhOqpC/Qb88Y yJ3w== X-Gm-Message-State: AOAM531efZxRoT0eIrQN9jdSmhDG0PNJzy3ii2jQT1hSucz1koQ0+fiS aemZz3l4V7dLyE1TC1JwJpTU8keJFuJubA== X-Received: by 2002:a9d:7156:0:b0:5b2:359b:c907 with SMTP id y22-20020a9d7156000000b005b2359bc907mr6904594otj.116.1647805037549; Sun, 20 Mar 2022 12:37:17 -0700 (PDT) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id y15-20020a056870b00f00b000d75f1d9b81sm5418483oae.46.2022.03.20.12.37.16 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 20 Mar 2022 12:37:17 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sun, 20 Mar 2022 16:36:14 -0300 Message-Id: <20220320193619.51185-2-jamrial@gmail.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220320193619.51185-1-jamrial@gmail.com> References: <20220320193619.51185-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/7 v2] avformat/pcmdec: add support to set channel layout in sln demuxer 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: RhGNXDzrTTPX Deprecate the channels option, and ensure ch_layout has priority if set over channels, until the latter is gone. Signed-off-by: James Almer --- libavformat/pcmdec.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libavformat/pcmdec.c b/libavformat/pcmdec.c index 962faad4a7..be45188999 100644 --- a/libavformat/pcmdec.c +++ b/libavformat/pcmdec.c @@ -180,7 +180,12 @@ PCMDEF(vidc, "PCM Archimedes VIDC", NULL, VIDC) #if CONFIG_SLN_DEMUXER static const AVOption sln_options[] = { { "sample_rate", "", offsetof(PCMAudioDemuxerContext, sample_rate), AV_OPT_TYPE_INT, {.i64 = 8000}, 0, INT_MAX, AV_OPT_FLAG_DECODING_PARAM }, - { "channels", "", offsetof(PCMAudioDemuxerContext, channels), AV_OPT_TYPE_INT, {.i64 = 1}, 0, INT_MAX, AV_OPT_FLAG_DECODING_PARAM }, +#if FF_API_OLD_CHANNEL_LAYOUT + { "channels", "", offsetof(PCMAudioDemuxerContext, channels), AV_OPT_TYPE_INT, {.i64 = 1}, 0, INT_MAX, AV_OPT_FLAG_DECODING_PARAM | AV_OPT_FLAG_DEPRECATED }, + { "ch_layout", "", offsetof(PCMAudioDemuxerContext, ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str = NULL}, 0, 0, AV_OPT_FLAG_DECODING_PARAM }, +#else + { "ch_layout", "", offsetof(PCMAudioDemuxerContext, ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str = "mono"}, 0, 0, AV_OPT_FLAG_DECODING_PARAM }, +#endif { NULL }, }; From patchwork Sun Mar 20 19:36:15 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 34863 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6838:ed11:0:0:0:0 with SMTP id hi17csp1114990nkc; Sun, 20 Mar 2022 12:37:47 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyt7TO+nLQPQmOv0qpWZsibHQUCEzKDxT3aLxVgHh32JvjuU7wJ6jSHx/R1GpWCdbYCtyDD X-Received: by 2002:a17:907:8a06:b0:6df:e099:536 with SMTP id sc6-20020a1709078a0600b006dfe0990536mr6611034ejc.351.1647805067379; Sun, 20 Mar 2022 12:37:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647805067; cv=none; d=google.com; s=arc-20160816; b=QdRs+YbTWYtnfEhFwmTH3bzry05gSqZEdXg5sieTOXJ5NVrFGRGoYu9YxfAbz/dQp9 BIOEYPTCz97ey7vnyWqGhU9XPb0UYufSMmWtUC1kd3hLhqwoQnc0Q75caMGwlQ9sBTsa KOlKUENfe0jJzTJpl0/JL15d0HF4JlgTVKLXpJk94adCMEdgYrCHyjOVM8CtgEDvHiAc geXgCn/gn/XoyMLyzMHxSSQ7S9yjxnKQTmMLKHtEBzdZLckso7RL8wrJi3CDypGo2npv 31aumI5hiwM+8jQXWhUi8wA3yoiaPFkYMTx8BLfzcKIdAY2qsmsmTNNBsc1RiKJfPWbm 2wTQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding: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=R3DKCgTUe9AK69OVrdYS/Q3HNdsWunF/crXO3LgFsjc=; b=OaJURFhEAsg2qNeDI68Po8T+irKOudLQMYmWOeouqs5VswweZTcHw0LPGYxMSt3IUx K/azSHNoeCuYm8eWmlWdMhdHSrdko7MHBMGreQfT6Y6uJwwjmtrTCN+FwaXalnB/ZjjC cgNhNp41iIwzYcAnDr6gv5dINjzHKSTu/34Kzd1oS+raTARMFjS+qw5YE+11xNHsKz7Z 7EETSpxVdac3dbU+uwMWFjYPD/g48JhOfE0X084Wyn3TPKPms5hAmIdlQjdNtXKM0PIq rQYkvdWspe32dkbCtIik1oWADgnmfMhqB5tuSry8aZcSe0xdmw/aBzgvu8Nhy/He98GL vfrw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=LUrNS1M8; 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 g27-20020a50d5db000000b00418c2b5bd64si8622924edj.70.2022.03.20.12.37.47; Sun, 20 Mar 2022 12:37:47 -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=20210112 header.b=LUrNS1M8; 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 DBA7568B151; Sun, 20 Mar 2022 21:37:27 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oo1-f42.google.com (mail-oo1-f42.google.com [209.85.161.42]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E0E4F68B058 for ; Sun, 20 Mar 2022 21:37:20 +0200 (EET) Received: by mail-oo1-f42.google.com with SMTP id q1-20020a4a7d41000000b003211b63eb7bso16856630ooe.6 for ; Sun, 20 Mar 2022 12:37:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=qCQ6CCKjvING2gYwt1lLZBgCzE5HfOLGN19s5DpyFHM=; b=LUrNS1M8WVqdkwRIFPJW/I/OQeYg4UTa4rZkqv2wNAngKuecisO5c3iOZa/kdO4yXs 0HEuAGmAeDvtd7IjOreDsUj2pViO9FFRohGp1j1Vbim0Xkm90vraelHR6Li5HfGQg13h fF8zCVhTzqsWpEm4H/m5p93zptUEJP4hllw9+VJmRnwWr5nyL4eWwcpmr+30EBm9elyv xPAQHvbDeyKIJ6chM1+uDLevewc4bFlnUb307Kqv/x7he9Ebo8HmG46wcVscY93PEPhR FKqQWA7x4c2q+U0er7rkCs4I2oMYafl7QciG7GhNjCwFyo+mdmIzcjbAx15ub7fMNJap U0qQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=qCQ6CCKjvING2gYwt1lLZBgCzE5HfOLGN19s5DpyFHM=; b=2Nf3XT9OD2pr61K++VmtrsG527XjMR0QLN8fE0gJAQvFXCdL0tnaPFBEGn14JFwwih seR03ll1eMhY5/Ha55Wbz0iVVAWjy9W439u4F19TlWEVSLYxAp9jkXdVqojNCEMxR+2D J9+CaekWIPAzpvoawy8dxWFeLlBIaD23K3brFqJs0G8BKMH1O4G95kNh0U6RBqVj4z7m /OyC10xPuSEmfrAtg+1w/FX/sAp6/PlYR/EI4PGIRHb5mo4RQe7w0rqyw2jPFvgI6V25 mo8bDS1sjw+rbkEbQrAPE4t45J7T4TVvmxejWXUv9H/X6UBGCI31o4oqZJtidlUUcIAt 6hDQ== X-Gm-Message-State: AOAM532/NAKI6oZo+KBy5hxCuXwJq/O5bu9x1j3IL1Ph8zOZCH4r6wI7 WzoCsRyHhxbmcTaGTeM1XxZ7+d+RZtT+SQ== X-Received: by 2002:a05:6870:5627:b0:dd:d3ad:c573 with SMTP id m39-20020a056870562700b000ddd3adc573mr4356546oao.46.1647805038915; Sun, 20 Mar 2022 12:37:18 -0700 (PDT) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id y15-20020a056870b00f00b000d75f1d9b81sm5418483oae.46.2022.03.20.12.37.17 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 20 Mar 2022 12:37:18 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sun, 20 Mar 2022 16:36:15 -0300 Message-Id: <20220320193619.51185-3-jamrial@gmail.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220320193619.51185-1-jamrial@gmail.com> References: <20220320193619.51185-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/7 v2] avformat/dfpwmdec: add support to set channel layout 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: jpp4S7SZh0Qt Deprecate the channels option, and ensure ch_layout has priority if set over channels, until the latter is gone. Signed-off-by: James Almer --- libavformat/dfpwmdec.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/libavformat/dfpwmdec.c b/libavformat/dfpwmdec.c index 9f935a422a..685b95148c 100644 --- a/libavformat/dfpwmdec.c +++ b/libavformat/dfpwmdec.c @@ -31,7 +31,10 @@ typedef struct DFPWMAudioDemuxerContext { AVClass *class; int sample_rate; +#if FF_API_OLD_CHANNEL_LAYOUT int channels; +#endif + AVChannelLayout ch_layout; } DFPWMAudioDemuxerContext; static int dfpwm_read_header(AVFormatContext *s) @@ -39,6 +42,7 @@ static int dfpwm_read_header(AVFormatContext *s) DFPWMAudioDemuxerContext *s1 = s->priv_data; AVCodecParameters *par; AVStream *st; + int ret; st = avformat_new_stream(s, NULL); if (!st) @@ -48,7 +52,16 @@ static int dfpwm_read_header(AVFormatContext *s) par->codec_type = AVMEDIA_TYPE_AUDIO; par->codec_id = s->iformat->raw_codec_id; par->sample_rate = s1->sample_rate; - par->ch_layout.nb_channels = s1->channels; +#if FF_API_OLD_CHANNEL_LAYOUT + if (s1->ch_layout.nb_channels) { +#endif + ret = av_channel_layout_copy(&par->ch_layout, &s1->ch_layout); + if (ret < 0) + return ret; +#if FF_API_OLD_CHANNEL_LAYOUT + } else + par->ch_layout.nb_channels = s1->channels; +#endif par->bits_per_coded_sample = 1; par->block_align = 1; @@ -58,7 +71,12 @@ static int dfpwm_read_header(AVFormatContext *s) static const AVOption dfpwm_options[] = { { "sample_rate", "", offsetof(DFPWMAudioDemuxerContext, sample_rate), AV_OPT_TYPE_INT, {.i64 = 48000}, 0, INT_MAX, AV_OPT_FLAG_DECODING_PARAM }, - { "channels", "", offsetof(DFPWMAudioDemuxerContext, channels), AV_OPT_TYPE_INT, {.i64 = 1}, 0, INT_MAX, AV_OPT_FLAG_DECODING_PARAM }, +#if FF_API_OLD_CHANNEL_LAYOUT + { "channels", "", offsetof(DFPWMAudioDemuxerContext, channels), AV_OPT_TYPE_INT, {.i64 = 1}, 0, INT_MAX, AV_OPT_FLAG_DECODING_PARAM | AV_OPT_FLAG_DEPRECATED }, + { "ch_layout", "", offsetof(DFPWMAudioDemuxerContext, ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str = NULL}, 0, 0, AV_OPT_FLAG_DECODING_PARAM }, +#else + { "ch_layout", "", offsetof(DFPWMAudioDemuxerContext, ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str = "mono"}, 0, 0, AV_OPT_FLAG_DECODING_PARAM }, +#endif { NULL }, }; static const AVClass dfpwm_demuxer_class = { From patchwork Sun Mar 20 19:36:16 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 34864 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6838:ed11:0:0:0:0 with SMTP id hi17csp1115059nkc; Sun, 20 Mar 2022 12:37:57 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyTuKjoSddyDSntIYXZMNeABDZhQEVTUMP4kmd1JoAusdRerYVE4opRo+IEc+DYn1bdqqje X-Received: by 2002:a17:906:bb01:b0:6a7:df9:d67c with SMTP id jz1-20020a170906bb0100b006a70df9d67cmr17423297ejb.733.1647805076930; Sun, 20 Mar 2022 12:37:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647805076; cv=none; d=google.com; s=arc-20160816; b=Nl3L0iV1qoI4cuPvlpreE8o7A+sW49Ah/fMBXILwNQetAGJkUJXbX4glIf2s8Tvvv8 xMB87iNj/iDgaSq5ViPl7jDS5m44RVC3Ao09wpCD0oJY5DpMzVvgf9LpADD1MSoZETGx VtIeTOZP1E3kLZtqeLJqUszKfEnAzoAqJxxsr6PMOUaoIHlojC8xFLx9zoHhnMX2dDZH Ua9nhqXeQcsy26P8IdcPgMb9h992bNXKjhxO9gvWKKisLcEoVKBlUtLX7tPUEZvF7Mm0 CYZhZwdf8FpNL5kMvYUbPLnQQWrSzTdfQ/JiPIdAjI3vcntouUiztYCTXiphwjjDL4/Q BTlg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding: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=hQq0r7zUtWNOdRF0ii5KZyl96XcjVeQF8hrDLFSAUug=; b=pv44MLEcmoQpXYup0mKHOHISI6KQmck5FWM6Czs8zz111Mrs7mADErfqes4zKmVkw0 udo1kR5DT5xHaYpT+l0pp+a8AMAvgifNpqTcT3WNiA+ADPxIWoWYhewdlUFsgh/jepwI yM65xVKnetDGYOXQvpMxbbgdwjVlu8vjT5rkFul87D7MIg8pQjhe5Muz1MIb0JW4zKSE R7W+3k9EocjCpzFPOqgN29Jph1tHBmGL8dNdR3alrNU3GXlJw8+9lDlKDynEQuUl7fsf ygmTOyGncLh7epaktPHwuehR+MWjM/CZrXCgMV1yk2RX0KJ/au7sHQ952nnwtp+nZn0c qTMw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=YmsUm7FU; 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 me3-20020a170906aec300b006df863421a1si2605230ejb.39.2022.03.20.12.37.56; Sun, 20 Mar 2022 12:37:56 -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=20210112 header.b=YmsUm7FU; 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 E77F368B143; Sun, 20 Mar 2022 21:37:28 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ot1-f48.google.com (mail-ot1-f48.google.com [209.85.210.48]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1948968B10B for ; Sun, 20 Mar 2022 21:37:22 +0200 (EET) Received: by mail-ot1-f48.google.com with SMTP id a7-20020a9d5c87000000b005ad1467cb59so9281010oti.5 for ; Sun, 20 Mar 2022 12:37:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=6p3Ouvc2McrTXdjVLiwLePsbQbF/XdjZik4GK258eYE=; b=YmsUm7FUoY5a/Pm3TlPUxIp9aKsiobWPlkdooW24O+JNyZ6N/O9NQr3HD7N3+tPpVP n7WLjEc1ffm3BLQc0Zcdr9AcQj3gQp8dwjO1RIDhynGljVwoU+yE8X9Qdd1lwe6RFy5V RJLuqxFju3AfIb5+M9sW9e9a1mmTw5d2eavqU9eg83HVUl0L4fosS6l+wTlBULf+ioev xh5JCFVCH0ZxT0oqqIh0gfZkD/o1CQLDtKn/QdX1x3M10sn7H61YjAWSRxEe/vkZ3nV4 HbfeC7vlvMUa3Ctj/zedag9tAA9UnDg16MSBb/YpCOWlV4FQDDe4QCKyNgXlVa6YsNrb iTaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=6p3Ouvc2McrTXdjVLiwLePsbQbF/XdjZik4GK258eYE=; b=p/4tImrZUKvCQwOysOu5odsFWwJVnjAfmCP4GbXID9WxDZc+OawKnM5Qjr+GDvoZ6H YYcyOjoOypoHdpVsEWJwnAFPwAxX3kuLI0JOujR5oXrr4TEL8PWo+KhY6lDv86KibSWJ W7gsUpFxzdXLVqHi4FQDS112n1L72aVG83VKfLoT/L2tTBEoFKiCaHasBb3BWWm6Rtmv UKAQFyPb9/7dK8qp96oYdMYySueqvhOigXUU54XRN8eDnysoEjvJ+i27KqcOFBr2ALhX NO8zrk2aX40qo3RUgFihvrdBg2z/TQew0t8etrBqokk/anrLbSl5lfnr2DOLfNS1GkWW UE9w== X-Gm-Message-State: AOAM530FF1emBvcMRcRZaB/glzZgCDa3Ig22gY4V/pfGavdw7layk7LI B+VgUWCpa9VP0+VAY5Rb9udRBGmg+ImO7g== X-Received: by 2002:a05:6830:1056:b0:5af:4690:c644 with SMTP id b22-20020a056830105600b005af4690c644mr7020215otp.245.1647805040426; Sun, 20 Mar 2022 12:37:20 -0700 (PDT) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id y15-20020a056870b00f00b000d75f1d9b81sm5418483oae.46.2022.03.20.12.37.19 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 20 Mar 2022 12:37:19 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sun, 20 Mar 2022 16:36:16 -0300 Message-Id: <20220320193619.51185-4-jamrial@gmail.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220320193619.51185-1-jamrial@gmail.com> References: <20220320193619.51185-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 4/7 v2] avformat/test/seek: set ch_layout instead of channels 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: s/rvqkJLILJ/ Signed-off-by: James Almer --- No changes since last version. libavformat/tests/seek.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/tests/seek.c b/libavformat/tests/seek.c index e0067a64fc..94a72d9422 100644 --- a/libavformat/tests/seek.c +++ b/libavformat/tests/seek.c @@ -88,7 +88,7 @@ int main(int argc, char **argv) } } - av_dict_set(&format_opts, "channels", "1", 0); + av_dict_set(&format_opts, "ch_layout", "mono", 0); av_dict_set(&format_opts, "sample_rate", "22050", 0); if (argc < 2) { From patchwork Sun Mar 20 19:36:17 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 34865 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6838:ed11:0:0:0:0 with SMTP id hi17csp1115120nkc; Sun, 20 Mar 2022 12:38:06 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxYw0Ubq1nriAOgGgdJ8xG8yQMaG4otd7ugHQDVfhFEN6bakqvb7/BZaKCigmDx9OBUbOIL X-Received: by 2002:a17:907:2d0a:b0:6df:8bc8:236f with SMTP id gs10-20020a1709072d0a00b006df8bc8236fmr17055535ejc.527.1647805086308; Sun, 20 Mar 2022 12:38:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647805086; cv=none; d=google.com; s=arc-20160816; b=ENYxnjQvzIFFOK37ZjlJfqDkvqwH3i9w/jtDLuoQmF1QuNxlyhrVMguXYiT9mwqn8H VmRE+6Eg65wDdoQ80t7dCp+S7STHgGD09+jvgf/3rddSnzZJQcM6YvlKsi70AH1OCRxA Hbuqa65bkmGcg+Dqs/FAEg1/hxhwHT46A5QR5s6VWzTCTd14NdZzxXURekEHSxM6OpeN Gv8DWclU2xbpWkAlG1GC40DcHT+Y+GaoFsTyU0ZNPbfs7ZO6WE2AfpI6xY6WuubkxPG7 YWd3Hw5Ct7FjxG9O46erldr7gl4Pr43BxGTlwlVYV1krIrwiV3kHDXWz/hgDjyCjVBKq d1Yw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding: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=NyxmYm3Jry461GeCi5EkTR/r06pfeifllBBZVi6IAKo=; b=t+FV5NDDfyw4mFMpdLbnbvUfb+7Kz2qUsQOsI3NjHujuek6mzi1FoiQEupnvUg893/ uFDW9WTsXenSySgcfw/JY1BP8RizcdjsQse106lw14E4TXhZ6isML4B1Vbf1MZvoO80o Jt14f8p84EIbKbsdGn4U1ygT5Q+xASBMxP3rArRMtc2E8BeQMmpkPqpLvwrdwLd1fU5y kleTQTGjAujbbkXJ3a/g/osMsGWv+pbxpTMt4AIQNSaVLxVSy33NNBby+irQdXOwzzez AmFpZ8HWrV/boo45AT2kwOUzBGSq2wp/7PCoYD/awkWMOOZ23oXJzpAP/oViBChfB9CF yi3w== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=IqDwPyEr; 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 hb42-20020a170907162a00b006df76385bd5si6145502ejc.117.2022.03.20.12.38.06; Sun, 20 Mar 2022 12:38:06 -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=20210112 header.b=IqDwPyEr; 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 009FA68B181; Sun, 20 Mar 2022 21:37:30 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oo1-f49.google.com (mail-oo1-f49.google.com [209.85.161.49]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AB14568B143 for ; Sun, 20 Mar 2022 21:37:23 +0200 (EET) Received: by mail-oo1-f49.google.com with SMTP id u30-20020a4a6c5e000000b00320d8dc2438so16844556oof.12 for ; Sun, 20 Mar 2022 12:37:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=AHyhiFIH8SX0iJ5kyIdiyZkkPxWPaC/e2YMhYF42Oto=; b=IqDwPyEr/nUt0AE+VF/vsGO0AbxRqKhwOPfEtoXe91DB9BjNS/2KGg6k8yBiXatp2M mk92goT1trCKlXyDtzKpz7Qa9woCqQViGIRf5dkhTQEl6cCT7B5DGagsc43/kwetXZls 02mXepkdMkW+LTIY7dfSGVxHXvEbyGTpo14o/7TiJA5s9re3TeDYACdjxOY/Ln3LpVwE bSYE/q9e+24s8JgeuNRxl/jNgVO9Q2JTZYV0Kthy1ZNJB6GiWAty/i1NQwUxWxJg8hVN QJyrdaVYlnPIK7kl9EGP4Ho9M2fhLFDn3XlSrRB9eFQcDXcYq7kQh7vONE32WGbqJk7F 2Azw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=AHyhiFIH8SX0iJ5kyIdiyZkkPxWPaC/e2YMhYF42Oto=; b=tg66JUF2ttjxDv4/tBedLwNmlL+1iswZjMuP+S0f1KNVzwewwM49LiNuuC1bra7scl 3AdqNkZuq1Km9cI5JElX1HuPY5gFaafQRV/aKRFnUodjbBR+rOWClWSTy9P9eikaexEv OVJR3Yo/mHLtzoyysx2yXiW/gdFjZHlEUV4U1y132cDgLdROFyWqCMfDtc9YVSABKgV6 jUL5GWLBorcW0waikctZKwpjjSMCAzoxCg6a6wVe2WlVIxtLhjZk1Nmep51BrlcxV6Vr +0/ih5J+I98TjbvzNic9KZGerC/fAuAsXS5hxSLeIxhNt62xsvrd5ijG5y6MRKgvRQoR AYNw== X-Gm-Message-State: AOAM532COXINwLpxVUrgjvAd69HcjPCkLE63VT6Tf/PdGcUgbOFogXtf W+gdKrusX/w8fGF9cyhv9Og2Z1nII2086w== X-Received: by 2002:a05:6870:9126:b0:de:ef8:8a16 with SMTP id o38-20020a056870912600b000de0ef88a16mr1123977oae.95.1647805041830; Sun, 20 Mar 2022 12:37:21 -0700 (PDT) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id y15-20020a056870b00f00b000d75f1d9b81sm5418483oae.46.2022.03.20.12.37.20 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 20 Mar 2022 12:37:21 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sun, 20 Mar 2022 16:36:17 -0300 Message-Id: <20220320193619.51185-5-jamrial@gmail.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220320193619.51185-1-jamrial@gmail.com> References: <20220320193619.51185-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 5/7 v2] ffmpeg: replace custom channel_layout code with an SpecifierOpt based one 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: xok7IHJWSngB This is cleaner and allows fine tuning which stream the option is applied to. Signed-off-by: James Almer --- No changes since last version. fftools/ffmpeg.h | 2 ++ fftools/ffmpeg_opt.c | 84 ++++++++++++++++++-------------------------- 2 files changed, 36 insertions(+), 50 deletions(-) diff --git a/fftools/ffmpeg.h b/fftools/ffmpeg.h index 6a19dc9c7c..1e14bf9fa9 100644 --- a/fftools/ffmpeg.h +++ b/fftools/ffmpeg.h @@ -96,6 +96,8 @@ typedef struct OptionsContext { SpecifierOpt *codec_names; int nb_codec_names; + SpecifierOpt *audio_ch_layouts; + int nb_audio_ch_layouts; SpecifierOpt *audio_channels; int nb_audio_channels; SpecifierOpt *audio_sample_rate; diff --git a/fftools/ffmpeg_opt.c b/fftools/ffmpeg_opt.c index 70e6502f22..f5c759c6d1 100644 --- a/fftools/ffmpeg_opt.c +++ b/fftools/ffmpeg_opt.c @@ -55,6 +55,7 @@ static const char *const opt_name_codec_names[] = {"c", "codec", "acodec", "vcodec", "scodec", "dcodec", NULL}; static const char *const opt_name_audio_channels[] = {"ac", NULL}; +static const char *const opt_name_audio_ch_layouts[] = {"channel_layout", NULL}; static const char *const opt_name_audio_sample_rate[] = {"ar", NULL}; static const char *const opt_name_frame_rates[] = {"r", NULL}; static const char *const opt_name_max_frame_rates[] = {"fpsmax", NULL}; @@ -1124,6 +1125,15 @@ static int open_input_file(OptionsContext *o, const char *filename) av_dict_set_int(&o->g->format_opts, "channels", o->audio_channels[o->nb_audio_channels - 1].u.i, 0); } } + if (o->nb_audio_ch_layouts) { + const AVClass *priv_class; + if (file_iformat && (priv_class = file_iformat->priv_class) && + av_opt_find(&priv_class, "ch_layout", NULL, 0, + AV_OPT_SEARCH_FAKE_OBJ)) { + av_dict_set(&o->g->format_opts, "ch_layout", o->audio_ch_layouts[o->nb_audio_ch_layouts - 1].u.str, 0); + } + + } if (o->nb_frame_rates) { const AVClass *priv_class; /* set the format-level framerate option; @@ -1946,6 +1956,7 @@ static OutputStream *new_audio_stream(OptionsContext *o, AVFormatContext *oc, in if (!ost->stream_copy) { int channels = 0; + char *layout = NULL; char *sample_fmt = NULL; MATCH_PER_STREAM_OPT(audio_channels, i, channels, oc, st); @@ -1954,6 +1965,27 @@ static OutputStream *new_audio_stream(OptionsContext *o, AVFormatContext *oc, in audio_enc->ch_layout.nb_channels = channels; } + MATCH_PER_STREAM_OPT(audio_ch_layouts, str, layout, oc, st); + if (layout) { + if (av_channel_layout_from_string(&audio_enc->ch_layout, layout) < 0) { +#if FF_API_OLD_CHANNEL_LAYOUT + uint64_t mask; + AV_NOWARN_DEPRECATED({ + mask = av_get_channel_layout(layout); + }) + if (!mask) { +#endif + av_log(NULL, AV_LOG_FATAL, "Unknown channel layout: %s\n", layout); + exit_program(1); +#if FF_API_OLD_CHANNEL_LAYOUT + } + av_log(NULL, AV_LOG_WARNING, "Channel layout '%s' uses a deprecated syntax.\n", + layout); + av_channel_layout_from_mask(&audio_enc->ch_layout, mask); +#endif + } + } + MATCH_PER_STREAM_OPT(sample_fmts, str, sample_fmt, oc, st); if (sample_fmt && (audio_enc->sample_fmt = av_get_sample_fmt(sample_fmt)) == AV_SAMPLE_FMT_NONE) { @@ -3235,54 +3267,6 @@ static int opt_timecode(void *optctx, const char *opt, const char *arg) return ret; } -static int opt_channel_layout(void *optctx, const char *opt, const char *arg) -{ - OptionsContext *o = optctx; - char layout_str[32]; - char *stream_str; - char *ac_str; - int ret, ac_str_size; - AVChannelLayout layout = { 0 }; - - ret = av_channel_layout_from_string(&layout, arg); - if (ret < 0) { -#if FF_API_OLD_CHANNEL_LAYOUT - uint64_t mask; - AV_NOWARN_DEPRECATED({ - mask = av_get_channel_layout(arg); - }) - if (!mask) { -#endif - av_log(NULL, AV_LOG_ERROR, "Unknown channel layout: %s\n", arg); - return AVERROR(EINVAL); -#if FF_API_OLD_CHANNEL_LAYOUT - } - av_log(NULL, AV_LOG_WARNING, "Channel layout '%s' uses a deprecated syntax.\n", - arg); - av_channel_layout_from_mask(&layout, mask); -#endif - } - - ret = opt_default_new(o, opt, arg); - if (ret < 0) - return ret; - - /* set 'ac' option based on channel layout */ - snprintf(layout_str, sizeof(layout_str), "%d", layout.nb_channels); - stream_str = strchr(opt, ':'); - ac_str_size = 3 + (stream_str ? strlen(stream_str) : 0); - ac_str = av_mallocz(ac_str_size); - if (!ac_str) - return AVERROR(ENOMEM); - av_strlcpy(ac_str, "ac", 3); - if (stream_str) - av_strlcat(ac_str, stream_str, ac_str_size); - ret = parse_option(o, ac_str, layout_str, options); - av_free(ac_str); - - return ret; -} - static int opt_audio_qscale(void *optctx, const char *opt, const char *arg) { OptionsContext *o = optctx; @@ -3827,8 +3811,8 @@ const OptionDef options[] = { { "sample_fmt", OPT_AUDIO | HAS_ARG | OPT_EXPERT | OPT_SPEC | OPT_STRING | OPT_INPUT | OPT_OUTPUT, { .off = OFFSET(sample_fmts) }, "set sample format", "format" }, - { "channel_layout", OPT_AUDIO | HAS_ARG | OPT_EXPERT | OPT_PERFILE | - OPT_INPUT | OPT_OUTPUT, { .func_arg = opt_channel_layout }, + { "channel_layout", OPT_AUDIO | HAS_ARG | OPT_EXPERT | OPT_SPEC | + OPT_STRING | OPT_INPUT | OPT_OUTPUT, { .off = OFFSET(audio_ch_layouts) }, "set channel layout", "layout" }, { "af", OPT_AUDIO | HAS_ARG | OPT_PERFILE | OPT_OUTPUT, { .func_arg = opt_audio_filters }, "set audio filters", "filter_graph" }, From patchwork Sun Mar 20 19:36:18 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 34866 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6838:ed11:0:0:0:0 with SMTP id hi17csp1115179nkc; Sun, 20 Mar 2022 12:38:16 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxoQ0UxcMFgHEQh6HRGuh7C16mw0JWQ75A/SIhs44woECw9r5+PXncwN7lYvTf394mRLUoH X-Received: by 2002:a17:906:4ccd:b0:6b7:75ca:3eac with SMTP id q13-20020a1709064ccd00b006b775ca3eacmr17438208ejt.167.1647805096629; Sun, 20 Mar 2022 12:38:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647805096; cv=none; d=google.com; s=arc-20160816; b=OKFC4uymuv0JVATpdJvhogcMOzffL92lNl+K4JfR8HLMC1N3caBCqRCU9J7r95vMhA BKkgOcDzKSn4WtewT46HY7IVBVUM/YLicNgBbjo2U/gH7aWrDspzmNbCb5EmS+frfbDV Q7hILRBKr94FaDQaUIygVDOqa5egag6pmxR/fIOq2/xbg348VBmixf8WMAYWjeWtsN/0 hn17tL4W9pK9YNACvl7hjbMpqNuQtfUjdFdX8E/GIQoKEmdeJBJ4gRPc8F0WdppxjyfO 8dcIFj0a53z8aRTRdo81eEHFBf3vfk6pW8YgCf2sESm8QXokZTF+rcKKMohmvYD8Ne9C uAIQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding: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=a7AjSTuSZAzAQ/ZIrFqw30D7KIRkgBMrJaB8i3yCE0o=; b=UlRgVS6w9ryIKZ1a3jMb2644KmJAGW6MvcpRUuAsdjsDPwzuTxaPyF/S6y/as+OrRx 9+pFyvPOsbxg9YohMnhnBeaBVfIe23uKVr0Fuqx/Fgdue0rCE9O5NEhSH2WQ2icFFybf QiqoY5tJ3CtevYXXm3hSogKI1Y9jAb4J9Lre2wM0NakXsqNGi6J9ALXbYnd8f1M7OLyj HS1xPnvXMJBmXh1lOXcf6Fc6NPVn/tf4RiFJoHGsOCLPHRNVJmowLgEYJX5WJCrFGvSF /bTy9yvyZxfEqmlquWkPvZ4HHPb9EGyVmaUHh6r8HR6iR6/On39bJXpoP0xMmNoz/ozz 8Umw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=fDAK5GVs; 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 f11-20020a170906738b00b006df76385c8fsi5301079ejl.303.2022.03.20.12.38.15; Sun, 20 Mar 2022 12:38:16 -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=20210112 header.b=fDAK5GVs; 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 EA5D168B18A; Sun, 20 Mar 2022 21:37:31 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oo1-f51.google.com (mail-oo1-f51.google.com [209.85.161.51]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C341468B104 for ; Sun, 20 Mar 2022 21:37:24 +0200 (EET) Received: by mail-oo1-f51.google.com with SMTP id j7-20020a4ad6c7000000b0031c690e4123so16916485oot.11 for ; Sun, 20 Mar 2022 12:37:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=9Deon5LczpImdavzlF/SiHvEi9nD3wkCOR3ytWKNC4c=; b=fDAK5GVsK7ZILO+OXFrpbTOmMMM+rVuPIChJtkBPaWPKZblpsSYIRtpmTsIQeX0Fuf iIXlkJuxOYN4DcZlw/E4BEdjJvh7cOGev6rHezZ3hTvTPF5qVHqsWChwLUiCgLueqqL2 D/M3be0dbEHS8yWmhsGy1iq3tgUFpwFWYWlTYsrVnPZmYlc5WahMElG/a2/GD3//39E5 VRMIeUSiLuFvDNc4jThK9MysmwWd4PAMzeYlaS8WDMHMxovdwMdUXXDI4cf98nIHAe/t i48Fvo9xZQ6H8jspfMRAZLPf2OluehVVC2WQ3Ilj2CT8b2Ca/LiSzz1U/k3C7YTMcnA+ GJwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=9Deon5LczpImdavzlF/SiHvEi9nD3wkCOR3ytWKNC4c=; b=OCNsWIfS7QDTkPRel5Pez4Egt+8q8n2TZQouzVdodz6+ReOBR48Ns6WvYrzFLBm/kR sT2mGUPRpMiD94HjvIIi/YzOb74tJiswLxJR+Dzlj+8me8l6ddxUFZzUp0FnNmogcoAD K53bm5C+X99JJtUe29tioZzvSxYxx7eONaacqAG74hZCFN1CsKKfFVJ0WZOq83evchit NlPr7jsw7uywPXKwSGkViiwZ/bUM9JRtB6RoRZ3ESZB3N5TO0q2qWeoPAtgnAZEWma7c Aa5YMkd3+Tcf7Ge0SnPWxjRJfkMMBLP0YPkwPQ8GBfQkTxTEVSTEyEKQ1sQM3rkZDsn/ 0hUw== X-Gm-Message-State: AOAM532MII8bJLb2x3CM2k7hQ/K+2G3HJ0Ar+xPCJfUN8ZGnIaX7LGJN KUBeLz7VX71OHuquGu2OxRbHWm9P+p2BrA== X-Received: by 2002:a05:6870:511:b0:d4:52f2:9bf7 with SMTP id j17-20020a056870051100b000d452f29bf7mr6929058oao.17.1647805043152; Sun, 20 Mar 2022 12:37:23 -0700 (PDT) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id y15-20020a056870b00f00b000d75f1d9b81sm5418483oae.46.2022.03.20.12.37.22 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 20 Mar 2022 12:37:22 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sun, 20 Mar 2022 16:36:18 -0300 Message-Id: <20220320193619.51185-6-jamrial@gmail.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220320193619.51185-1-jamrial@gmail.com> References: <20220320193619.51185-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 6/7] ffmpeg: add a ch_layout option as an alias to channel_layout 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 1Al4NMlfEQN/ This ensures it's parsed as a CLI option instead of the AVCodecContext AVOption. Signed-off-by: James Almer --- fftools/ffmpeg_opt.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fftools/ffmpeg_opt.c b/fftools/ffmpeg_opt.c index f5c759c6d1..720a3cc46a 100644 --- a/fftools/ffmpeg_opt.c +++ b/fftools/ffmpeg_opt.c @@ -55,7 +55,7 @@ static const char *const opt_name_codec_names[] = {"c", "codec", "acodec", "vcodec", "scodec", "dcodec", NULL}; static const char *const opt_name_audio_channels[] = {"ac", NULL}; -static const char *const opt_name_audio_ch_layouts[] = {"channel_layout", NULL}; +static const char *const opt_name_audio_ch_layouts[] = {"channel_layout", "ch_layout", NULL}; static const char *const opt_name_audio_sample_rate[] = {"ar", NULL}; static const char *const opt_name_frame_rates[] = {"r", NULL}; static const char *const opt_name_max_frame_rates[] = {"fpsmax", NULL}; @@ -3814,6 +3814,9 @@ const OptionDef options[] = { { "channel_layout", OPT_AUDIO | HAS_ARG | OPT_EXPERT | OPT_SPEC | OPT_STRING | OPT_INPUT | OPT_OUTPUT, { .off = OFFSET(audio_ch_layouts) }, "set channel layout", "layout" }, + { "ch_layout", OPT_AUDIO | HAS_ARG | OPT_EXPERT | OPT_SPEC | + OPT_STRING | OPT_INPUT | OPT_OUTPUT, { .off = OFFSET(audio_ch_layouts) }, + "set channel layout", "layout" }, { "af", OPT_AUDIO | HAS_ARG | OPT_PERFILE | OPT_OUTPUT, { .func_arg = opt_audio_filters }, "set audio filters", "filter_graph" }, { "guess_layout_max", OPT_AUDIO | HAS_ARG | OPT_INT | OPT_SPEC | OPT_EXPERT | OPT_INPUT, { .off = OFFSET(guess_layout_max) }, From patchwork Sun Mar 20 19:36:19 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 34867 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6838:ed11:0:0:0:0 with SMTP id hi17csp1115234nkc; Sun, 20 Mar 2022 12:38:26 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy9lLchmFOJzNEmnhZhkgTuonrMEgOcW81O/SqmC0UsnoZcFnyRzA1a5CxR2bu7W09OUUb4 X-Received: by 2002:a05:6402:458:b0:418:78a4:ac3f with SMTP id p24-20020a056402045800b0041878a4ac3fmr19604571edw.196.1647805106419; Sun, 20 Mar 2022 12:38:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647805106; cv=none; d=google.com; s=arc-20160816; b=0Tcjypyb3POrjum/DNWAaLVR9Bzd3F/7bjh1gNLuuLbrkCbj4hc9bwl0e1nFZ5S1WJ FWi7Ba/eXefvsVPTszrDoFT7aR+Kg9KBgOClRRvtTl+qeNoYgxFebcty+sJ8CnYKEnPf DOQgp7SdnAJa0jerDWVNYFPXg0OupHitNo1aU9A7Q/xj2JbmijiAZyx0QEiBAfTD1L+Z zPNKywua9dXvuZ30Mt33Fbwn8wLSqrK9O5a/6ygf4zyDm7/pFTFAPQR8zexVQ1j8DK/n v0Mx0ExcFbknxJmS+Cp5o94wGDtRxhMu4tunhJz/nSXTn4SAPhIdyqGVdKG10cZQPSg2 Asqg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding: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=RXA9lFRW5bCEHP9Zj0wwUANrehXHmOcqwJBkOdkLoP8=; b=Uzl1xP9STdgZwymu1NUqz64YpCZO6UgXYZBCqI6Xg65D72KU54ufPUK0rbgseSobcH 0aoLaWAq8CB4328CbXqHCMFmfiT8ZV6bBPz3/V3qjUjNTh+b7QS67mWnVCc/b+ZNl7QB U7CVmZ2G/VPo0ohPZQrCiiaCIL+Z+aXpIEA2BxTxSvZ5Y7XF7i6i+srmotrDkFr+FnuP kBdiR5f3U+PtmWD7qEBHpNalNvlbdMy+pb5TxrwOrMdvkk2/GAWtvV1dZDJuDJStFygO HzZOiuTfrQrxtyP56BiZjNIbDUDrMT1nrtTTp8M4Qb+RezK76OC3zv26PobMnT93cTP8 BQNg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=QPy9N67k; 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 n18-20020a50c212000000b0041945e1fb47si154154edf.614.2022.03.20.12.38.26; Sun, 20 Mar 2022 12:38:26 -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=20210112 header.b=QPy9N67k; 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 D88C568B195; Sun, 20 Mar 2022 21:37:32 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oo1-f54.google.com (mail-oo1-f54.google.com [209.85.161.54]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 20D0A68AF5D for ; Sun, 20 Mar 2022 21:37:26 +0200 (EET) Received: by mail-oo1-f54.google.com with SMTP id y27-20020a4a9c1b000000b0032129651bb0so16888045ooj.2 for ; Sun, 20 Mar 2022 12:37:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=f8pQIm59VEOYXoCaqwbXhuL7IW1XJU7OTodeb+Z9CPU=; b=QPy9N67kynnOFUMw6dWJ+oPIEDUwAp27ajxa2BkrgjCGJVZLzDH7d717GotBJRYbtg 688vYAs+Occ5QZG0v9ZvPVoLzxqzrfttow5xzo7i3pLYqwjNwvfIvcv2qz3MrSeU9F3x VvuTx2nO3FqJTAKIpkuioyx72gUudaDB1wLyDHPAI0kETUESX9cDkiJytTFJ9RFNtDJn pbjgfSoGbfJvkXUOQND/eIUT9G03xMgNH/PqvvAFqcwnQbnpSMBMBHCObhR36Iz/dHLf StCog+V+GfUm2VS0BMiiCruXk8Dxh7AjrbcmkEq4fKWFVxhjA4zAnIXolZtPUPBDFwdJ qGfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=f8pQIm59VEOYXoCaqwbXhuL7IW1XJU7OTodeb+Z9CPU=; b=GFsnE8fnkIXoBeA/lxstDh9Ck+oFkPEgy0suwgrORcc/GZqv76pVHWgEtA9oTaEFiF rQiry0CTJRSe6jbEs6wC5LrFptojCHl6CHOmgeY+3WHpBGspzgIS6xZcq04Tx4roK+vB hubWNh3CJsGwEsYfjpLM3bYUhr0DSBq7AwvSqh3RObYUrAmO33hVzT8kKbozJ2USobK8 i/tC6RkfrNS9fy1gXU8HC5RSvxvjpfGGo2N63MY4GO2EEUORd7bj4XtjZhCHh7hU0iwV J5RKmuk+bl+FQnGSrjPzX9T62ZZvDNqpO//z12vVoSztNvlLJgjWGCbHjniqTztDG/9h paqw== X-Gm-Message-State: AOAM533OeswovZspGdnvdlItwa4aApKSMsDj7owoatFQqBmgRYCt24XU TDcn2W/VggxOjhNPDy88G/teCnpFHjZqbg== X-Received: by 2002:a05:6870:4691:b0:dd:f2ca:f5d8 with SMTP id a17-20020a056870469100b000ddf2caf5d8mr2775693oap.57.1647805044541; Sun, 20 Mar 2022 12:37:24 -0700 (PDT) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id y15-20020a056870b00f00b000d75f1d9b81sm5418483oae.46.2022.03.20.12.37.23 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 20 Mar 2022 12:37:24 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sun, 20 Mar 2022 16:36:19 -0300 Message-Id: <20220320193619.51185-7-jamrial@gmail.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220320193619.51185-1-jamrial@gmail.com> References: <20220320193619.51185-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 7/7] ffmpeg: deprecate the ac option 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: Gte1cCADsdSl Same as the AVCodecContext option. Signed-off-by: James Almer --- fftools/ffmpeg.h | 2 ++ fftools/ffmpeg_opt.c | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/fftools/ffmpeg.h b/fftools/ffmpeg.h index 1e14bf9fa9..d0bc4b6afb 100644 --- a/fftools/ffmpeg.h +++ b/fftools/ffmpeg.h @@ -98,8 +98,10 @@ typedef struct OptionsContext { int nb_codec_names; SpecifierOpt *audio_ch_layouts; int nb_audio_ch_layouts; +#if FF_API_OLD_CHANNEL_LAYOUT SpecifierOpt *audio_channels; int nb_audio_channels; +#endfi SpecifierOpt *audio_sample_rate; int nb_audio_sample_rate; SpecifierOpt *frame_rates; diff --git a/fftools/ffmpeg_opt.c b/fftools/ffmpeg_opt.c index 720a3cc46a..4b8de9f2c3 100644 --- a/fftools/ffmpeg_opt.c +++ b/fftools/ffmpeg_opt.c @@ -54,7 +54,9 @@ #define SPECIFIER_OPT_FMT_dbl "%lf" static const char *const opt_name_codec_names[] = {"c", "codec", "acodec", "vcodec", "scodec", "dcodec", NULL}; +#if FF_API_OLD_CHANNEL_LAYOUT static const char *const opt_name_audio_channels[] = {"ac", NULL}; +#endif static const char *const opt_name_audio_ch_layouts[] = {"channel_layout", "ch_layout", NULL}; static const char *const opt_name_audio_sample_rate[] = {"ar", NULL}; static const char *const opt_name_frame_rates[] = {"r", NULL}; @@ -1114,6 +1116,7 @@ static int open_input_file(OptionsContext *o, const char *filename) if (o->nb_audio_sample_rate) { av_dict_set_int(&o->g->format_opts, "sample_rate", o->audio_sample_rate[o->nb_audio_sample_rate - 1].u.i, 0); } +#if FF_API_OLD_CHANNEL_LAYOUT if (o->nb_audio_channels) { const AVClass *priv_class; /* because we set audio_channels based on both the "ac" and @@ -1125,6 +1128,7 @@ static int open_input_file(OptionsContext *o, const char *filename) av_dict_set_int(&o->g->format_opts, "channels", o->audio_channels[o->nb_audio_channels - 1].u.i, 0); } } +#endif if (o->nb_audio_ch_layouts) { const AVClass *priv_class; if (file_iformat && (priv_class = file_iformat->priv_class) && @@ -1959,11 +1963,13 @@ static OutputStream *new_audio_stream(OptionsContext *o, AVFormatContext *oc, in char *layout = NULL; char *sample_fmt = NULL; +#if FF_API_OLD_CHANNEL_LAYOUT MATCH_PER_STREAM_OPT(audio_channels, i, channels, oc, st); if (channels) { audio_enc->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; audio_enc->ch_layout.nb_channels = channels; } +#endif MATCH_PER_STREAM_OPT(audio_ch_layouts, str, layout, oc, st); if (layout) { @@ -3795,9 +3801,11 @@ const OptionDef options[] = { { "ar", OPT_AUDIO | HAS_ARG | OPT_INT | OPT_SPEC | OPT_INPUT | OPT_OUTPUT, { .off = OFFSET(audio_sample_rate) }, "set audio sampling rate (in Hz)", "rate" }, +#if FF_API_OLD_CHANNEL_LAYOUT { "ac", OPT_AUDIO | HAS_ARG | OPT_INT | OPT_SPEC | OPT_INPUT | OPT_OUTPUT, { .off = OFFSET(audio_channels) }, "set number of audio channels", "channels" }, +#endfi { "an", OPT_AUDIO | OPT_BOOL | OPT_OFFSET | OPT_INPUT | OPT_OUTPUT,{ .off = OFFSET(audio_disable) }, "disable audio" }, { "acodec", OPT_AUDIO | HAS_ARG | OPT_PERFILE |