From patchwork Fri Mar 18 22:19:05 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 34845 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6838:3486:0:0:0:0 with SMTP id ek6csp2158060nkb; Fri, 18 Mar 2022 15:19:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxdRgnV4O/CRQo0U/TgBVcgln9EwegJzthSjwVMVSvAl5xw8ciexcrS92hFdMDcq6N+6hOV X-Received: by 2002:aa7:c30f:0:b0:419:2af:4845 with SMTP id l15-20020aa7c30f000000b0041902af4845mr7971812edq.296.1647641976204; Fri, 18 Mar 2022 15:19:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647641976; cv=none; d=google.com; s=arc-20160816; b=iJqRXVYuoJTZ8stUhYRU3y9V31OvNDfh8Rn6nZLfgPtdO2dvW709HHBTJU5BJszINq NKElkfOxismGGVzVDTUDkNU48103262XFYYuWbsb1vp63hkdr1+drIjp79lNLfFDqWaT jZQxdzoWCfDJeR8kxfo+aV/BVHzYTbFNL4b1CiTfhWkRVNFQO/9IezsXQSyeznTEZWtB OPyO9gLlXu7IDbQDco9gdj15OWMDCMRCnfAgyt2OiIb1mVBXLA6W2u8X8cjzP67BpLSz oZAHdNrl9Xk/n7FoEQ64+LPSYwGS3u95Z+mkjeo7EOicl7SYXLRrpEV8Cm77W7wDUoxy 2Tgg== 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=p0HFw6HzEqIrYp/yRzG0DLkwXH9vWnUzkAgTPH/Pu1M=; b=oXqubHbvb2C9WTbrOukMpG0il/LUV7H/iQjrdoNcFz2I2tQS+oG5rVywOLfmR9+WDg a5HfAwC8iusyFVS5aloTcYMRYSMvKCRq0e42T0nXKiadvEDVaTYNdWXdpIJCB/a7KLnt Iq9lC16XHn5f38mfQ6DsCBU6zmi/e+lNHiRSri1odf4VabEfxAXoXAIBCwW9QJS+JovZ bqxWhS7Aa01UHlKB7FZjLrxZ+rO0ibIdpDjolotdecwUuj2h8d2ExYRn4W7SIw7RhnYJ iZUjZtVbBEhYl0OytyxRcVbfV50tsFnVae0e445jOKvPbCs0fb5LfMUOA6hudXVu1f7s 9Slw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=HzcdevjL; 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 3-20020a170906208300b006df79b1a09bsi2115745ejq.334.2022.03.18.15.19.35; Fri, 18 Mar 2022 15:19: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=20210112 header.b=HzcdevjL; 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 C317468A7A1; Sat, 19 Mar 2022 00:19:32 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oi1-f180.google.com (mail-oi1-f180.google.com [209.85.167.180]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B6F0868A7A1 for ; Sat, 19 Mar 2022 00:19:25 +0200 (EET) Received: by mail-oi1-f180.google.com with SMTP id s207so10237235oie.11 for ; Fri, 18 Mar 2022 15:19:25 -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=nvmgEBQjhSG9imJbpEjwJ8Bt8a8kBCO4QZiORzvLYx8=; b=HzcdevjLQiqZ2wftcTDTg6NZwYCj+/YI8mdTGkOZn4jIsLPDDjgrPKYYY+0A+TmTa5 U++5wlZeQUmOPU7JBaOZZJx4TGy1e6kC4yQiQ3fhba0tI53yyz5N8zODNfgdMyO8pc/Q PS+wh0aVFlab+LzEXyuRuu+sPmOB0AwqHvpKPJAURMQN/JAYarRTjxs687NkvVkDStET 2aAg/XXOhsI+R5ym1w2U4GZ4AZ83JRytyv+G5lsqI2TQM732BnyfiWK8LTGw+8yXUxzu w1PBOUY6bgJaZjJsxPRbSo1mv6GNAlltzJlIu8IuIaM9W1VuLncOLeh8YWi2Eihh2EOZ EDtw== 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=nvmgEBQjhSG9imJbpEjwJ8Bt8a8kBCO4QZiORzvLYx8=; b=DUd083ETOoHUqYfyCUV10xcT0G7apnVcYf+6yA9I86fWIHe2Ng49bFJ18n9B/KIYlX Sf8x+bHRu0C9dQAsabUgASKbD18QddTeRxxIfbcceP+gE3biUo2KlRn9ouA24aSf2Uu3 aXm6GJUsXtFnrzQj6MGG4+h7nHN0iYjF51pg4VXZ/DaGXAKrdUQAdOg02c8YiaAR/8RJ J8OOl2j9ZzInMfLaLRAodHuVbt/cN8Q8uncexEiaR8JeQZ1fVaxs8Lj/jr47Qm8YF/B/ noW3iHYGkY6ABL/bs2muHKN7dvD8kDrQZA82zJYWjChI5BCOlkhi9867Fk2EhjHz4mte 9JxQ== X-Gm-Message-State: AOAM53163Fs9NWW4CGBFXcZfmNyAgXKLj1RFZArkuv9EB5VMuyMdJ85v ctAzEw+ahe8ksqQOpboUHDiUjPgMM55Vtg== X-Received: by 2002:a05:6808:1a29:b0:2da:4dd3:a024 with SMTP id bk41-20020a0568081a2900b002da4dd3a024mr5169278oib.35.1647641963524; Fri, 18 Mar 2022 15:19:23 -0700 (PDT) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u2-20020a056870304200b000ddb1828e3csm3499831oau.19.2022.03.18.15.19.22 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Mar 2022 15:19:22 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Fri, 18 Mar 2022 19:19:05 -0300 Message-Id: <20220318221907.44594-1-jamrial@gmail.com> X-Mailer: git-send-email 2.35.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/3] avformat/slndec: 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: eRI5+27vhXLk Signed-off-by: James Almer --- libavformat/pcmdec.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavformat/pcmdec.c b/libavformat/pcmdec.c index dcd13787d5..a2bcfc2814 100644 --- a/libavformat/pcmdec.c +++ b/libavformat/pcmdec.c @@ -170,7 +170,8 @@ 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 }, + { "channels", "", offsetof(PCMAudioDemuxerContext, channels), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, AV_OPT_FLAG_DECODING_PARAM }, + { "ch_layout", "", offsetof(PCMAudioDemuxerContext, ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str = "mono"}, 0, 0, AV_OPT_FLAG_DECODING_PARAM }, { NULL }, }; From patchwork Fri Mar 18 22:19:06 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 34846 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6838:3486:0:0:0:0 with SMTP id ek6csp2158130nkb; Fri, 18 Mar 2022 15:19:45 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyBL6+6mIpAyX83QH13YO5Y07cQuv9u6mKoYdz/8clnmoge8Tza9yFX4M9FmbgVl3POzvMg X-Received: by 2002:a17:907:6d0d:b0:6db:f0f8:654d with SMTP id sa13-20020a1709076d0d00b006dbf0f8654dmr10989973ejc.304.1647641984867; Fri, 18 Mar 2022 15:19:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647641984; cv=none; d=google.com; s=arc-20160816; b=PVu7GvU9yMygghsr56lnVhFjOkPmvzbla28FmXRc9Y5C2/J3zKEQ8dlubdEQoHgN4z 5kD5nhy9xraBfxIZLopV5B9p3v9bkEi/0zmyMZ3SWPSGMOkhG+AVbqNQpLAl55duTwg0 lWUeByrdVz5Jf8jbRlyRtnXh2o3re+8SQ2j2O9alD1P+EGWrzz+n8vlhccE6B+TSFDrO k7Mz/rAwKV3QY8dA3LjRM8hfB60f5o3gCmFjxK7yo+T7PdM8sn4Do4X+HXMb231IpIro Fqy7Yjg09WY8CkeRRpalo6E5w0+RRFN/Auj/AxX1yDYZIsOsUd2a8eK++CsRHtmgpcgF U5HQ== 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=WqrJAAuwefcmu1Tw2yq00wJmSbhulKyZo60tTowcnZI=; b=NJUcsNd3hOj3ZbcfUj1o2sDyHE1UhXFCQOPMKkEfbnRgZZva2Q9fnwNN9ZiO1c7F5C N96JwQTQSeGll/2NxKUQ1RQTFhyd9z7UojRK33QVRC/RjlThJ7q4r/dyg4TICYNgJ/6G LBvCuxDp59DJ2izG1xm+cRDoGFnnbdxkHnRqNfMWGCwzgT4ZoHJiHnRgRhWW4dBPeYNK 9TIu3pseq5UDAIUGrNGNaxdV/QyAvscHx3QD5W0TgXicMN38i4XpJOfa6bf5A7eVxqil 0/UqyuAxr245UHsL8pxtbvM+PA7/r/eYtqL0Oj1NQrqd7G9jyVpbnumSMz7stu9SWhnd sGDg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=SfYGTFa8; 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 l2-20020a50d6c2000000b00418f168126bsi4383009edj.134.2022.03.18.15.19.44; Fri, 18 Mar 2022 15:19:44 -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=SfYGTFa8; 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 D3CD668B177; Sat, 19 Mar 2022 00:19:33 +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 2F4F768AF91 for ; Sat, 19 Mar 2022 00:19:27 +0200 (EET) Received: by mail-ot1-f41.google.com with SMTP id z9-20020a05683020c900b005b22bf41872so6451421otq.13 for ; Fri, 18 Mar 2022 15:19:27 -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=iMKgxpVxdy60Y34HfiQtFQpgBSz+77ZHp8jcLZbe4PY=; b=SfYGTFa8PTJt6NIubcVTMFwCuvQnlNDlJ4Y4pub8G8SOPASXK6EoJ2M4ASHX7Tl0jP /NnJaImIF9l3NtT5b94cMFT1TKUH1Tt/kkk0vCH0PlMwGWYtwyyfI8qkbsSsqQZl1Bf3 4UxQKo/kbBAsj3yZwLYTHp6Qq53eORq2Fp044yMR6swkEjZbWHhFD4quct+5LPDTOezJ 1QYqhPIuEklskxyx6N312gxfTUwWtsq5RmjZyUuRJykjwRcBm2uZBHpPO3//2B3CEn1Q iF22XpSjXZHPzlfCuDTWi7/qJ7gKsc1eSXuRZVy/v05ae+mElXvE8yuGZD5iIx+RZqjc rbeQ== 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=iMKgxpVxdy60Y34HfiQtFQpgBSz+77ZHp8jcLZbe4PY=; b=tFLGcX7HyinwF525OpGPawbQdB84ISnnkFmIx76N0nvsnK5cuGa6dVc5mLrByw4a/V LwlKYFye+Hr5VFfLYNqJ93Fa7Ihq0QJFCsMa4HXZA+yzXsZd3X4fShRhstkYrao6lGG3 AvZi8QTx+EPOl6eqLzfoEcO7bHgKPnFVcJRm5uFNlMR7de6+mzn74ps5AUwmoPPbikxZ CMTafOBYFsABAoG/LkMeYBl/XrBlXKTvUzTP9z7qebumzmNXpw/5RQwYOk0Q91PuPCJ8 q8fpZPsCdhCX+XMKsWurmpIUmfrEwZX+pMDiaxgmtwXDDME0LNXxVWvBwT32aQaSjL+D UxXA== X-Gm-Message-State: AOAM531T7xBM8AfOXplX13LJsNuKuHxw43wShPp6vStJS+JEweGSCesC GPy9bi+Cb7a06LLeeqKybMIML/qxH2EXtg== X-Received: by 2002:a9d:67c7:0:b0:5b2:55ac:d789 with SMTP id c7-20020a9d67c7000000b005b255acd789mr3999273otn.382.1647641964948; Fri, 18 Mar 2022 15:19:24 -0700 (PDT) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u2-20020a056870304200b000ddb1828e3csm3499831oau.19.2022.03.18.15.19.23 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Mar 2022 15:19:24 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Fri, 18 Mar 2022 19:19:06 -0300 Message-Id: <20220318221907.44594-2-jamrial@gmail.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220318221907.44594-1-jamrial@gmail.com> References: <20220318221907.44594-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/3] 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: n2omPPqhicu1 Signed-off-by: James Almer --- libavformat/dfpwmdec.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/libavformat/dfpwmdec.c b/libavformat/dfpwmdec.c index 9f935a422a..3bd8bc0e41 100644 --- a/libavformat/dfpwmdec.c +++ b/libavformat/dfpwmdec.c @@ -32,6 +32,7 @@ typedef struct DFPWMAudioDemuxerContext { AVClass *class; int sample_rate; int channels; + AVChannelLayout ch_layout; } DFPWMAudioDemuxerContext; static int dfpwm_read_header(AVFormatContext *s) @@ -48,7 +49,13 @@ 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 (s1->channels) + par->ch_layout.nb_channels = s1->channels; + else { + int ret = av_channel_layout_copy(&par->ch_layout, &s1->ch_layout); + if (ret < 0) + return ret; + } par->bits_per_coded_sample = 1; par->block_align = 1; @@ -58,7 +65,8 @@ 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 }, + { "channels", "", offsetof(DFPWMAudioDemuxerContext, channels), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, AV_OPT_FLAG_DECODING_PARAM }, + { "ch_layout", "", offsetof(DFPWMAudioDemuxerContext, ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str = "mono"}, 0, 0, AV_OPT_FLAG_DECODING_PARAM }, { NULL }, }; static const AVClass dfpwm_demuxer_class = { From patchwork Fri Mar 18 22:19:07 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 34847 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6838:3486:0:0:0:0 with SMTP id ek6csp2158207nkb; Fri, 18 Mar 2022 15:19:53 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw6MeD3ojNMjIsU6P0nFuihiW7b5QRdU1RS0KN0X4g+9h1H66U/lZXtto3xOLDPpXefB0aZ X-Received: by 2002:a05:6402:3590:b0:415:c162:f3d6 with SMTP id y16-20020a056402359000b00415c162f3d6mr11883418edc.124.1647641993084; Fri, 18 Mar 2022 15:19:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647641993; cv=none; d=google.com; s=arc-20160816; b=O4XiElU4eB642cXUp1OhR2YBrPQDUOmlnydXXGxeJb1gM/CYAOlw+/PcF+jUMAr1zn T/NtzE7j+zf3caCdKoisKLKIKEu+dzYwedqFx4fWAm96z6imr+OaE7mcUvm8EaPlg7JP LfukSfj5BP2CP/vqpI5i/eg3pijy2ENPn4Pv8D7d2zj1rdBl+V16ZaVqwLpFx0LLn5YV 2K16o0Cq2W99u8+LmdgxkdIzkMU8vWU+EM02ycFWBofbIxRYYulVXrvF/4M8+m1iAPoA eHMDa69ciO9We9QwqlCa8E8esd0QA1r/fhOGzXecyjpw+HbB3ePgvNgYP/76W+ZGN6cU 6sRg== 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=3JhHUX4oyz/R8paUtNGSVUX3VaNdmxj+gh9zNnWR5/8=; b=YLxPiaEKIn38TsSGVMWYoflBfhpAT9fdJASSabiCYxwadXdxI09SZXbyS4E8Sd5sX9 2hpJq+8uiNBZRfpN0xQmOut3gircrICUg+PPlgbmioJeIsTvca3Lk2i40ARwLcdksbzM AJlp3Z6intPj13hEnkm0RshDQVXozfMEcNjZoKYsuIs5fjsh/H/Qzg/y56ye0OznTh0E /QbUL/pIcE6jq67sdCwqsymmaxCDmgmnCTKAoC+XTalOjt+3qjNRSEUAUfzLpuEtOWH4 Iu/BPW0xxuouoLOpxU1fRHAAELtG9DP8mROHnyHBGN/MDrqB1rk1ntkdxEuYH8GCRIGF 7ITg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=Xj9S1Jkt; 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 gn1-20020a1709070d0100b006dfc33bb090si1714832ejc.45.2022.03.18.15.19.52; Fri, 18 Mar 2022 15:19:53 -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=Xj9S1Jkt; 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 ECBD268B180; Sat, 19 Mar 2022 00:19:34 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oo1-f52.google.com (mail-oo1-f52.google.com [209.85.161.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5029D68AEAE for ; Sat, 19 Mar 2022 00:19:28 +0200 (EET) Received: by mail-oo1-f52.google.com with SMTP id n5-20020a4a9545000000b0031d45a442feso11836084ooi.3 for ; Fri, 18 Mar 2022 15:19:28 -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=M4qlqxRSFQEtVoSUVMGQK870aBgeaK4jkHBsbU+zjTM=; b=Xj9S1Jkt0CyPS2SQlHYiEkwyxnDWdGT+luqXGW5k/kaCi0IlBWi40CDZ9MWaFttvgT oXGC2xEkQunqSGBiQzXKhQdFt1qQjWO2nqsFEdhzVXWlHBGM6oyB497sG+56UYJVDpQF iEjZAdigO4/HGUrTKTtAq0MDqHYDxe54jeFfZehhukVLnOHU3t32LodTRGvW8GXuDq+H 1i1loWP3yNQe/mEB9+lqtP1pFRZztJRRb8+fATaEzO1uplOz5bNhE4D0RJKZmdctOcP6 Ix7+01Zm1mtNa6CzBjFGEPsA5EKIAk0syM3pXp5g5i0MEwUmSxTiS9Z1GbTUGDYi2nCE ceRg== 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=M4qlqxRSFQEtVoSUVMGQK870aBgeaK4jkHBsbU+zjTM=; b=B7l7x2KKmQwGqeJ+k75GgvNxyC9WDNsTo5zYQGR28FHbb5LdtXYXte+IbDernyu8GE +nOIE4BOpHcMmdkL4jgFO9GRdfRHnfLCxDPoE93Ur/cy7FOUwpBlJKPXV+pVdCB6TslL I+NCADiloYJGAXoYfwe9wrEzfPeTsvrBq9fTNIgMeGRFxpZRofmsY7HGIeeb6e3Oa5PQ XR9PNHd7L+viIK9OKfVyOhIZAMyFLD23HeP+ucecWmGYlB9ULcZqWHxlYjXSu4uoTKGf KciTNcYQ55WzYM/Itd0NVvtCvJoZgW2I5V2cEew1Xz9yyhzpcDcNpLzNOASrXdi3K/wC 3QBw== X-Gm-Message-State: AOAM533xrwkSiaCs8CZVO0KOzMLUnyv4umXA5mT75FlCflzhDecsWJnd 1fTPPvkyKMX+nwCLHi9toisRV3rm9wIf7Q== X-Received: by 2002:a05:6870:42cc:b0:dd:a03f:195e with SMTP id z12-20020a05687042cc00b000dda03f195emr6491244oah.234.1647641966360; Fri, 18 Mar 2022 15:19:26 -0700 (PDT) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u2-20020a056870304200b000ddb1828e3csm3499831oau.19.2022.03.18.15.19.25 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Mar 2022 15:19:25 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Fri, 18 Mar 2022 19:19:07 -0300 Message-Id: <20220318221907.44594-3-jamrial@gmail.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220318221907.44594-1-jamrial@gmail.com> References: <20220318221907.44594-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/3] 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: Z+9geq6m2URW Signed-off-by: James Almer --- 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 Fri Mar 18 22:47:48 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 34848 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6838:3486:0:0:0:0 with SMTP id ek6csp2173581nkb; Fri, 18 Mar 2022 15:48:10 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxEn8WATWJHi7FIniKMweVKPI/ieDwyXUKh9ytkiMin3akiSq0LbdU2EKRnOLopmDj5QWXx X-Received: by 2002:a05:6402:5243:b0:418:e5f7:7b1 with SMTP id t3-20020a056402524300b00418e5f707b1mr11904573edd.153.1647643690546; Fri, 18 Mar 2022 15:48:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647643690; cv=none; d=google.com; s=arc-20160816; b=zqXjuINfxEtGQMYxzd/gCPz4fOU95/fjxeXex6f67Y7BR7Su9oykrH6j0jBC8ONR83 oRDIQt3OTh07YCaoarS7htC6UleStdPyPPjeKTYTsPCDvocMoo6X4lp0LDmI5iN6UiRA KJ2GN77HyZETMiw+54HrLuRthDj/FlJDYdggFnwBNwvWDa6dki8vgeiFxpG9D+42rfVf SjSqGSuMh1iyI36u/Bvvsjxxl6RZWH/8kovU9NdHSwEyOKaBEQ8rI6iIkd1GSGJI6B55 dpjifEpIvhngJ86Yy3+Za0hwkMyITfjD0CVMxeWqCS4lEV9G+bHKExCMPJ/ShXXdz+Py 8EoA== 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=IJNuualDE46k1X7b6t30qZWjNqWikEeuTArtZuNxRbU=; b=A7Pht0nzS2zScfIZtna2x4qZTvFnS4MJvfoURq1IyOQ10CfrfEzfvU7FlNVIJysBga 2aeQetToxCPvn+HG2xMg0+yoBVIk6+KMozCEbpRlyT8SoXG2+3OjGCNEMj9hhi+yNaRd 4rYQboZ8uNJrALF1K5tVvvGjn4MaesLGLP/j5HNU8itft7AiZsrl9A+9zzDfPT79xV1k gupARbKzrxPkY1dMLEMl+HbM4o44Kt89wqXABpyTVNiZ/8Qipy68BIjg2IYRei4M4IVU m3LNSUOr+YQb1X8kv2vVAL78i7XAefiRzwlGrll3drbH4qpVKZLdx05hMNJuDtJc3yTD EQhA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=VeZoTlL0; 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 1-20020a170906100100b006df76385d6dsi2242678ejm.525.2022.03.18.15.48.10; Fri, 18 Mar 2022 15:48:10 -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=VeZoTlL0; 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 76E3C68B13C; Sat, 19 Mar 2022 00:48:08 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ot1-f43.google.com (mail-ot1-f43.google.com [209.85.210.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 431E168AF4C for ; Sat, 19 Mar 2022 00:48:02 +0200 (EET) Received: by mail-ot1-f43.google.com with SMTP id a7-20020a9d5c87000000b005ad1467cb59so6515786oti.5 for ; Fri, 18 Mar 2022 15:48:02 -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=cFZG8ghhwT7YzitE1878UncTlYqnjj+wrkR+XZt5cms=; b=VeZoTlL09n3g5/8NaoQn+UTi2O/B+O+b8uPGn8BQ+fZvM/sXw8YLIDTMEWL0B03XB0 0yAcyhJtLuB94HF16NgycH7WJAvyrJmEOokbA4Kmh1BLduq/56bmB7zqz3Uob/kSSD6G Kn3FirSrt9f6TsbxxXJowzFJbgokQ+oTH8ddHnZsRpOGNy2YS/MGInUwJwLRRkueA+70 Md5KtqPcmgCVDXB67/DgT0Wo3sAwRzd0GdpWyRKnRcMl9e0cCiGPUyurMpvDsSN3woa6 xhg/Cp/wnAGO/KsXzI3T6yhElufOV3hAaLcqSpErLSpJQ3Al72VpHY4IGdR8dB8jtLsw 1Jyw== 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=cFZG8ghhwT7YzitE1878UncTlYqnjj+wrkR+XZt5cms=; b=prOeo4bbId4jDfSAhMRdOFO1Ai760V+tUoyRot+DNG+qZjbns9dc1nbFXw7/b2w0ym uXHo87V60/sCia48k35SOmPQwfJosMcZLwcOZKzxxiRy6lqBtsjZpdLouz7dDMC2A9XG 7IGay7kx3EMrQ8iKLgUgtPYYhSbUMsbNJ+1H/nsvXEYxSQVWhRzjeawmzQVGflS2GjWQ 62SUIu1ffvxNB9FGsH+D3wIqBbLudjGCOKC3ZZatg1l9iQ/Wu7pgaAjajcgu+V3vVzY1 vrOBpKd1JKS0oYrZ5qRbAmydqMPHJpVVFTwnqNi5DNQlBdaiTdaN2bbxwjZKSPWTqE4a 3oWA== X-Gm-Message-State: AOAM533DZMuYS1u/3lfYRyrVNU+YkCm4/INNsps3s1SIVCT0mBCz8/7w 6tfsfixf6GAOVb4E7hcpTp8GfVqOnAIT4Q== X-Received: by 2002:a9d:6b0a:0:b0:5b2:3355:5ec8 with SMTP id g10-20020a9d6b0a000000b005b233555ec8mr4044418otp.51.1647643680497; Fri, 18 Mar 2022 15:48:00 -0700 (PDT) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id x22-20020a056830115600b005ad1076095csm4431678otq.21.2022.03.18.15.47.59 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Mar 2022 15:48:00 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Fri, 18 Mar 2022 19:47:48 -0300 Message-Id: <20220318224748.44929-1-jamrial@gmail.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220318221907.44594-1-jamrial@gmail.com> References: <20220318221907.44594-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 4/4] 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: vXI4qFIncb6L This is cleaner and allows fine tuning which stream the option is applied to. Signed-off-by: James Almer --- 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" },