From patchwork Thu Jan 13 01:59:58 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33428 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp33093iog; Wed, 12 Jan 2022 18:25:27 -0800 (PST) X-Google-Smtp-Source: ABdhPJzOr8e/+FHRC13v18L0AgwLcn3NeYcIGlLZtO1P5jEQTGOgUXJYWKLKF9f/k/ccH8rtIwTk X-Received: by 2002:a05:6402:204d:: with SMTP id bc13mr2284975edb.56.1642040727746; Wed, 12 Jan 2022 18:25:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040727; cv=none; d=google.com; s=arc-20160816; b=CC4GxbwUbqjEn1FKpB7qF1iBn8/Dl3/Jj+sXRHp6FA8bqbp5lQex4k9p8u72OUfUcX +7uPyJ8J2DdvUzLMY7UPnn+ErrPcMj7G2YoTxP71nw6+DrDHEEdvXDASdjeqM3zLInwW GCnuvmWGtJOuCUlzR7gjeEbDVwnPBMRS4otflsJF6l8FlYkgsTdfKCGDIhzAn0raaEHv sxjfm0F0D6hLDX0sFBo6lvu5rZjh9yatq2xksCKZhKhD5x7V9LzBR56y2i2lAmtP4Ldp liGmV81bmEmHJWQEl0ji4/aGflFH9vuC85nJQsxdhq68NuHVZUKpSrzmrHh6zI2p+u97 0rLg== 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=k1w1xQ6daI2H2Iqsa5ucNMJ6Ebf2cxyIq3W0T+SNP+c=; b=Fl19CevbXCkyV4PEvrRJ9/23O0x3MSQuCZA5dsGJb6f3GheY019kRsgRrBKMNQpPLr rqHAZymZytCkHMrI6VKIkaPLwcyt//DhfWI3WdfoV4unRCtYja8lFuAwzOTyRaAvxtsB qTQ9ZAWGWxbsp2tcJJqYx7+srXH/eneS9Oo3i8VEJNri/TKIloYgf+WVDDHQOw6GO0cl zlxvMEO+tpjBg9hX+e5TMOrKGwf6A6O1lKkVnVazIOVVdK91Zctz+1Nynv+PFgDh16pS KSShp5J57XmjWc21I2zA0LejKAfGG/KQzPnOCPTD80GtQiOg+6QheRD4kmO2JYMjSbgL uhIA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=WSHtqEtB; 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 ec14si775094ejb.715.2022.01.12.18.25.27; Wed, 12 Jan 2022 18:25:27 -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=WSHtqEtB; 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 5E53C68B453; Thu, 13 Jan 2022 04:01:09 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f174.google.com (mail-qk1-f174.google.com [209.85.222.174]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B467468B43B for ; Thu, 13 Jan 2022 04:01:07 +0200 (EET) Received: by mail-qk1-f174.google.com with SMTP id bl18so5579626qkb.5 for ; Wed, 12 Jan 2022 18:01:07 -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=gJA2wyB4Ol23joLSwSHigkE3ehj8LNmYWOCOzcWcv3s=; b=WSHtqEtBfwhlC1OlhSQveRMePcp4hOfDL4fleP1/HpTiknR/01Do8A/qUOlXIzz1kW XUfSthpCYiGajd6SHhOS3opkgv1EphyMOb1mjB61ZwCIFriHITeyiX6gWOH7r7kPWA9E oEutUJmxhJl9BZQvKm8dTDuIIPk3S2Vv+9b5RtUvtorCp4mUnJozcAfu3q8ZKzKXbl7+ o7xzXUXXEExAqYsyAyfA1L1cNASchu8dlo9mmLLDSH8D7tddJhINXz1uGwTgSdGB7rY/ 5cfzOPYtK883AdWrct5rhfyBQM8xo+dTdtczUBWbU59UrapppdvJSMRvUkRPfMUEM288 NK0w== 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=gJA2wyB4Ol23joLSwSHigkE3ehj8LNmYWOCOzcWcv3s=; b=jFq8G8h7J4Ne3DrYy/Q+WcqfmlUCYmbZizrv6sloWeDIbRrXO5h5FSSXubnKZGTUbN 9yssS077LcC1J/ES+8DoPGh7AOrL5Dn3C2X+K8roed2OoEkbIo0MrheizPXKdPoNtecl vD6Wvh3G5+fkWlvM6bEKEXfbnSSY3XdT2WPdI4CPQdjITMs6Jj6RdwNUPY7VQgYdIcZm zindNiv35WMoCmnW7s1aUQlv2mcz5Z3RfZCUMMamEpdaLGZQ7/KOUqLEoQJtHTXcQB/m EJqRq7JJfJUySa/wdJyFbUo9mKnG4yQfBqbzn2g5iqbgUcDbd9F/N8+qm5uD6RAxjYhq /KWg== X-Gm-Message-State: AOAM531TOgrANOTPH8sQSsx+bUogoK6/d2AkZaoIjf3b7TdM2FIL1FaT dcIyz6T1+/tV0se1FdEXA6stFIV2nfA= X-Received: by 2002:a05:620a:bc7:: with SMTP id s7mr1840024qki.20.1642039266313; Wed, 12 Jan 2022 18:01:06 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id y17sm1182232qtj.75.2022.01.12.18.01.05 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:01:05 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:59:58 -0300 Message-Id: <20220113020026.590-3-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 151/281] sox: 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: 5wiWow+tRRW3 From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/soxdec.c | 14 +++++++++----- libavformat/soxenc.c | 4 ++-- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/libavformat/soxdec.c b/libavformat/soxdec.c index 83fb5e3758..c747cdb9eb 100644 --- a/libavformat/soxdec.c +++ b/libavformat/soxdec.c @@ -49,6 +49,7 @@ static int sox_read_header(AVFormatContext *s) AVIOContext *pb = s->pb; unsigned header_size, comment_size; double sample_rate, sample_rate_frac; + int channels; AVStream *st; st = avformat_new_stream(s, NULL); @@ -62,17 +63,20 @@ static int sox_read_header(AVFormatContext *s) header_size = avio_rl32(pb); avio_skip(pb, 8); /* sample count */ sample_rate = av_int2double(avio_rl64(pb)); - st->codecpar->channels = avio_rl32(pb); + channels = avio_rl32(pb); comment_size = avio_rl32(pb); } else { st->codecpar->codec_id = AV_CODEC_ID_PCM_S32BE; header_size = avio_rb32(pb); avio_skip(pb, 8); /* sample count */ sample_rate = av_int2double(avio_rb64(pb)); - st->codecpar->channels = avio_rb32(pb); + channels = avio_rb32(pb); comment_size = avio_rb32(pb); } + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = channels; + if (comment_size > 0xFFFFFFFFU - SOX_FIXED_HDR - 4U) { av_log(s, AV_LOG_ERROR, "invalid comment size (%u)\n", comment_size); return AVERROR_INVALIDDATA; @@ -90,7 +94,7 @@ static int sox_read_header(AVFormatContext *s) sample_rate_frac); if ((header_size + 4) & 7 || header_size < SOX_FIXED_HDR + comment_size - || st->codecpar->channels > 65535 || st->codecpar->channels <= 0) /* Reserve top 16 bits */ { + || channels > 65535 || channels <= 0) /* Reserve top 16 bits */ { av_log(s, AV_LOG_ERROR, "invalid header\n"); return AVERROR_INVALIDDATA; } @@ -115,9 +119,9 @@ static int sox_read_header(AVFormatContext *s) st->codecpar->bits_per_coded_sample = 32; st->codecpar->bit_rate = (int64_t)st->codecpar->sample_rate * st->codecpar->bits_per_coded_sample * - st->codecpar->channels; + channels; st->codecpar->block_align = st->codecpar->bits_per_coded_sample * - st->codecpar->channels / 8; + channels / 8; avpriv_set_pts_info(st, 64, 1, st->codecpar->sample_rate); diff --git a/libavformat/soxenc.c b/libavformat/soxenc.c index e24501bacd..ac01f97df5 100644 --- a/libavformat/soxenc.c +++ b/libavformat/soxenc.c @@ -61,14 +61,14 @@ static int sox_write_header(AVFormatContext *s) avio_wl32(pb, sox->header_size); avio_wl64(pb, 0); /* number of samples */ avio_wl64(pb, av_double2int(par->sample_rate)); - avio_wl32(pb, par->channels); + avio_wl32(pb, par->ch_layout.nb_channels); avio_wl32(pb, comment_size); } else if (par->codec_id == AV_CODEC_ID_PCM_S32BE) { ffio_wfourcc(pb, "XoS."); avio_wb32(pb, sox->header_size); avio_wb64(pb, 0); /* number of samples */ avio_wb64(pb, av_double2int(par->sample_rate)); - avio_wb32(pb, par->channels); + avio_wb32(pb, par->ch_layout.nb_channels); avio_wb32(pb, comment_size); } else { av_log(s, AV_LOG_ERROR, "invalid codec; use pcm_s32le or pcm_s32be\n");