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 = {