From patchwork Thu Jan 13 01:50:24 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33345 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp20141iog; Wed, 12 Jan 2022 18:04:59 -0800 (PST) X-Google-Smtp-Source: ABdhPJwQbQXl1te5jlAMZwozB+n6IzbFiobM7CgpqhZOta2wMM1Px+8FXcVSY5mBGBIn6lWGVyrd X-Received: by 2002:a17:906:e249:: with SMTP id gq9mr288781ejb.258.1642039498872; Wed, 12 Jan 2022 18:04:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039498; cv=none; d=google.com; s=arc-20160816; b=GrmyDVs1FPThB+uh4ob+/jL26uiBo6h/H6hjsH38Nga0FNFPRplqxkRzjMaY54thbI +tSXFmw8Z8RGo8BEoG3YfKKySYl1jgdyUSz15ik1GK/RdviJwVLwOXSQWkXL+o0LmsC1 Hsqhq7M3Ujvi+G1ooCjGZOD7I6ymRZuvB8gqm6sdk6kwCuCdyY+tz9ZVMr4+/WTQe6U/ YEGqSqHpeIbyD7Ez2iiiesKSyIIwlIHbwXs7QoV2D5GF5uhqFnzHVmw81hnC8u1M2RqB 5JUdZuqfYBC+jfGvIdWtR6Ed8DwJ4IuEcIHn8SXzF5IsAp+K/+mTo4NpxgjFMIVSY2Ry blQg== 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=mJgZMI6LKtRU3NOfdXDp333JHYr1nVSeX3ZYazt+2CQ=; b=eej3GLiJMd57NTEc9Xmf6mT9U2DxNmgKjkmTj1te+JPBKXGSBJKe1efDZTo6ABQ7ih XL3aDplrf91WiM6nL1tWYn3Ph2Qx2pAIoQWUY+60WOqoa1tkLWAXZgNv5i2HiebGKzCI t4Fk1QoEDIn027QVcToFr0nF1ToCtLgW3dXg/SIZGPHTIhQb2Nt8dO5EBttprovFh0oj 7IEWUl51Fw91bqCgHWeUWxB+JKTVporzULgRJdQ0Ldncf3Ts7YUlZ/dKJC8Z6x20h15U PjPQX9KGCuLrtjkIlHOMYBl6LH5jOqbayljIUkqhd80QTQsGQqYxrhwe9JcNkxxX/BSN yNZw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=RIMVjQGN; 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 ga19si771524ejc.973.2022.01.12.18.04.57; Wed, 12 Jan 2022 18:04:58 -0800 (PST) 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=RIMVjQGN; 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 CDD6D68B175; Thu, 13 Jan 2022 03:53:18 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f172.google.com (mail-qk1-f172.google.com [209.85.222.172]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9BE6768B083 for ; Thu, 13 Jan 2022 03:53:16 +0200 (EET) Received: by mail-qk1-f172.google.com with SMTP id g2so5599955qkp.1 for ; Wed, 12 Jan 2022 17:53:16 -0800 (PST) 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=9Ic6yPcchbq8y1c1TofLI9Ljo4VVCfhx5aRecBqX8jM=; b=RIMVjQGNUZtirgH1EboXLFWHGMhij6yq6JdshXpo1HwbSxR4Jz6B1frak9/xYuzXIk Zk+ZcZQFkI3690ZkmBaMvNwMG2AUouyIru8JQhcBTrPcBjiZUDEPKPGFvBdgDosP7gKA XN7Du9KcB9cdlyHZgcpe2RU2scEmqNkh8P597tfE5RCFkwloQ17z35CF2aPojY3BT0xG 1QqNBL15jP7Oev1ddhdNe7wii644i8TeahQ3uHl28X+pH27wPYkPFzUD1Zwd9ZX5vOzn sVl2Du8INeY0GSZ6y35mKrW/8YGe621gHxvnJ/LmBZv/ovEei49NIv6InRdypAHpXjQn Tv4Q== 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=9Ic6yPcchbq8y1c1TofLI9Ljo4VVCfhx5aRecBqX8jM=; b=PKkg5rSSrTEOJIPDit7Bib1vQ+xMQNmKwRFGCVxI1ZOHsb6bQBbUoknLcYiQ/B6REp 6q+F9oU0ySnUXReYXfpyH3o3sxDjOSjBKNtc3vU8TNZfUL+mtnHCWnEVPlPghTGRfqJe OM/1nRabN5JOcedT2RhqFY2w8dxMKL8JYIwiXOyufplF3cqM7Lwa96Bn++rOY3uREl20 559cPJrWCWRxm3aqljdUHAOgj+EALsReP+9MQrModRiJRvDaGpqwxe1lS4yVcxycnggF Oi1hk1x2GQaql2JEf+oB6/HRbVf8Jsz5W4KrMCvrFuS3sWxFLoo3Ndbtqupr5y1ywt5d rv/Q== X-Gm-Message-State: AOAM533HvNYgs+E/eZJP4thszCFr/NfOtya3jLKhzrWHISS/TLyEp2QE 9hMM7gmHY5spirPJ16XPsaDkMzgr5Ew= X-Received: by 2002:a05:620a:1663:: with SMTP id d3mr1812085qko.199.1642038795169; Wed, 12 Jan 2022 17:53:15 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.14 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:14 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:24 -0300 Message-Id: <20220113015101.4-63-jamrial@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220113015101.4-1-jamrial@gmail.com> References: <20220113015101.4-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 062/281] fsb: convert to new channel layout API 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: To+lpeoOxEZq From: Anton Khirnov Signed-off-by: James Almer --- libavformat/fsb.c | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/libavformat/fsb.c b/libavformat/fsb.c index 9e8b9ca6b1..3faae6974b 100644 --- a/libavformat/fsb.c +++ b/libavformat/fsb.c @@ -68,30 +68,31 @@ static int fsb_read_header(AVFormatContext *s) if (par->sample_rate <= 0) return AVERROR_INVALIDDATA; avio_skip(pb, 6); - par->channels = avio_rl16(pb); - if (!par->channels) + par->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + par->ch_layout.nb_channels = avio_rl16(pb); + if (!par->ch_layout.nb_channels) return AVERROR_INVALIDDATA; if (format & 0x00000100) { par->codec_id = AV_CODEC_ID_PCM_S16LE; - par->block_align = 4096 * par->channels; + par->block_align = 4096 * par->ch_layout.nb_channels; } else if (format & 0x00400000) { par->bits_per_coded_sample = 4; par->codec_id = AV_CODEC_ID_ADPCM_IMA_WAV; - par->block_align = 36 * par->channels; + par->block_align = 36 * par->ch_layout.nb_channels; } else if (format & 0x00800000) { par->codec_id = AV_CODEC_ID_ADPCM_PSX; - par->block_align = 16 * par->channels; + par->block_align = 16 * par->ch_layout.nb_channels; } else if (format & 0x02000000) { par->codec_id = AV_CODEC_ID_ADPCM_THP; - par->block_align = 8 * par->channels; - if (par->channels > INT_MAX / 32) + par->block_align = 8 * par->ch_layout.nb_channels; + if (par->ch_layout.nb_channels > INT_MAX / 32) return AVERROR_INVALIDDATA; - ret = ff_alloc_extradata(par, 32 * par->channels); + ret = ff_alloc_extradata(par, 32 * par->ch_layout.nb_channels); if (ret < 0) return ret; avio_seek(pb, 0x68, SEEK_SET); - for (c = 0; c < par->channels; c++) { + for (c = 0; c < par->ch_layout.nb_channels; c++) { avio_read(pb, par->extradata + 32 * c, 32); avio_skip(pb, 14); } @@ -125,8 +126,9 @@ static int fsb_read_header(AVFormatContext *s) return AVERROR_INVALIDDATA; avio_skip(pb, 6); - par->channels = avio_rl16(pb); - if (!par->channels) + par->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + par->ch_layout.nb_channels = avio_rl16(pb); + if (!par->ch_layout.nb_channels) return AVERROR_INVALIDDATA; switch (par->codec_id) { @@ -138,17 +140,17 @@ static int fsb_read_header(AVFormatContext *s) par->block_align = 2048; break; case AV_CODEC_ID_ADPCM_THP: - if (par->channels > INT_MAX / 32) + if (par->ch_layout.nb_channels > INT_MAX / 32) return AVERROR_INVALIDDATA; - ret = ff_alloc_extradata(par, 32 * par->channels); + ret = ff_alloc_extradata(par, 32 * par->ch_layout.nb_channels); if (ret < 0) return ret; avio_seek(pb, 0x80, SEEK_SET); - for (c = 0; c < par->channels; c++) { + for (c = 0; c < par->ch_layout.nb_channels; c++) { avio_read(pb, par->extradata + 32 * c, 32); avio_skip(pb, 14); } - par->block_align = 8 * par->channels; + par->block_align = 8 * par->ch_layout.nb_channels; break; } } else { @@ -174,14 +176,14 @@ static int fsb_read_packet(AVFormatContext *s, AVPacket *pkt) pos = avio_tell(s->pb); if (par->codec_id == AV_CODEC_ID_ADPCM_THP && - par->channels > 1) { + par->ch_layout.nb_channels > 1) { int i, ch; ret = av_new_packet(pkt, par->block_align); if (ret < 0) return ret; for (i = 0; i < 4; i++) { - for (ch = 0; ch < par->channels; ch++) { + for (ch = 0; ch < par->ch_layout.nb_channels; ch++) { pkt->data[ch * 8 + i * 2 + 0] = avio_r8(s->pb); pkt->data[ch * 8 + i * 2 + 1] = avio_r8(s->pb); }