From patchwork Thu Jan 13 01:49:23 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33291 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp12375iog; Wed, 12 Jan 2022 17:52:27 -0800 (PST) X-Google-Smtp-Source: ABdhPJwPPch6nYWbqCrvKT2GvcP3WSTKdueU58w3/GsXxUrHQH6HSl8dbE5S2GnkQ4kE/Lvt09DD X-Received: by 2002:a17:906:da1b:: with SMTP id fi27mr1942027ejb.68.1642038747282; Wed, 12 Jan 2022 17:52:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642038747; cv=none; d=google.com; s=arc-20160816; b=hvH8QaXUYru1b1o0gepZfE9KPyrckBkZVZ8+DF/LMSu+ZJT9dEI0hmawVJ6i6z1LiI MGEvgH8gWc2KrU3QL0N7oHB7se+QqtNVTpN6Fd81FraJVMi8cn4ewFH4126KcWVb0qWh oIyxEqO3mLCFtsFYJb5IF65EsWpuBBTSN1pOgkRRBGPZE+bBga9UlspaGY4xJBxsG779 nrnbEiX3RL+/cteNhhz1RdelvCvdbM9WMS/AJDKOdCJ5m4NXWs7mNyKUhJacH5e0RuBE n941mJdj6d1rCFPysg979YvqXAS71LWsDQ60fFprfQgt9mdsTkrRDhx2hAN+/waaiHgs OPpg== 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=7xaxDuLva+dfHE9DQHA05fZx0LZws+hjvX3ceVenpd4=; b=DbAqbOlfzds440+d9CXXCXdXQe1AdwgNmkArHAbYp/ncjcReUu/j6OFgBy0RpFSGdj lik3nOvJmKdIJUFJt5TG3puCUwkASnU9atyOSQ4ZDuIbxdqnSdAXp5TT0wLOuJCg1xwQ lFWzu1V8ydydMYnHgmheO6Bt+9Ts4geQJt01HQPdivMiGw9uiz33xEKPeXnSsbZIusrh OgbKpx4SJMiANcWJZ2WsxMOwOZsRSYJQBblPZZiGFOZkZ4CzVjxvjyZYfv4lcRvEwfCn 7RP7NUjWgDpIo0QhWjlKhxO/alMoCZjCu/6azzRFeqIOtIMVF2ma9ZIHic++Ds85sY58 tW4w== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=GCUTmXTx; 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 jg4si895062ejc.966.2022.01.12.17.52.26; Wed, 12 Jan 2022 17:52: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=GCUTmXTx; 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 4CC9168AEBF; Thu, 13 Jan 2022 03:52:08 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f54.google.com (mail-qv1-f54.google.com [209.85.219.54]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 20D4C68AE5D for ; Thu, 13 Jan 2022 03:52:01 +0200 (EET) Received: by mail-qv1-f54.google.com with SMTP id 15so5044481qvp.12 for ; Wed, 12 Jan 2022 17:52:01 -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=dg74sznLD3yO5y8HCopDUFp4s2IyiD9lxUP9+7LbAU4=; b=GCUTmXTxUAcCCYycCWU7R3l8uMKA+62xp3ICHbgDHPshYFSNmvr/rB20Xr+I2ymiy/ 3NHRKwEbbXiQgYp559z85eShsfasbHUQBmrVj9SjWQYe6wKeXi8txJvt5X0MCDwrewH+ On+jKPpxGHhShM84V5V2KNLy89oWneQGdjIb7Tw/B2U/aPXL55JYvsyfVaJ/96524kEo 9DO6WtY5oaUvIGkQt0vNYPn8rPVLEzeL2mpSXdkNDQA9XvBEN8AAAdIZH3EXdd8JzL9t xFXKeMdx0t9gk5cj8GB+E2JZNcLpGSGw0e+SQTBtM6aJ22PaYaHjU3YZLOc4PpVIJ5ST F0ZA== 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=dg74sznLD3yO5y8HCopDUFp4s2IyiD9lxUP9+7LbAU4=; b=sVCtr3Roxit4Yzw1qhKb7tUcuBKWYnhajC3XOLBrLKsJqAf7GYSytgqtAb1VQD/jMo pHJpwi0auGZ79YwzqyDtChMPVJA/dlnT8Wj0uIQsI6LPufn0EOF35lwhE8vfDI2XY+JL QFTjUUB5SFpDYXQgaQWrnUq8lpRNuSn0SiD/s4nmt9RH0Lh9tXEc6H6x1NZw+ZyGeyqZ RIBkaIwtt3OwR7b1nY7OTlb8Fkx/JpJ1zfKXBSvlzgeTXWyCxZtE63W9T0tAouFlS7dZ HyuPi4RKbA8hzQ+EY4u5V4dqdjR3WKSQ2vxxmecWMqddE+0YmZJjhBBAdDyryxcxsXyn Dlhg== X-Gm-Message-State: AOAM533rjqL/BZb04aG1siyXo101ONv4Zm27IVoEwng2sYmg1S3LLoeD FCv+tvm7NJHHBDR1sTckoYXUBVZxjr0= X-Received: by 2002:a05:6214:1c45:: with SMTP id if5mr2360589qvb.100.1642038718710; Wed, 12 Jan 2022 17:51:58 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.51.57 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:51:58 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:23 -0300 Message-Id: <20220113015101.4-2-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 001/281] Add a 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: GOg86jKvE2l2 From: Anton Khirnov The new API is more extensible and allows for custom layouts. More accurate information is exported, eg for decoders that do not set a channel layout, lavc will not make one up for them. Deprecate the old API working with just uint64_t bitmasks. Expanded and completed by Vittorio Giovara and James Almer . Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavutil/channel_layout.c | 629 ++++++++++++++++++++++++++++++++----- libavutil/channel_layout.h | 542 ++++++++++++++++++++++++++++++-- libavutil/version.h | 1 + 3 files changed, 1069 insertions(+), 103 deletions(-) diff --git a/libavutil/channel_layout.c b/libavutil/channel_layout.c index ac773a9e63..68b40cc37c 100644 --- a/libavutil/channel_layout.c +++ b/libavutil/channel_layout.c @@ -37,81 +37,151 @@ struct channel_name { }; static const struct channel_name channel_names[] = { - [0] = { "FL", "front left" }, - [1] = { "FR", "front right" }, - [2] = { "FC", "front center" }, - [3] = { "LFE", "low frequency" }, - [4] = { "BL", "back left" }, - [5] = { "BR", "back right" }, - [6] = { "FLC", "front left-of-center" }, - [7] = { "FRC", "front right-of-center" }, - [8] = { "BC", "back center" }, - [9] = { "SL", "side left" }, - [10] = { "SR", "side right" }, - [11] = { "TC", "top center" }, - [12] = { "TFL", "top front left" }, - [13] = { "TFC", "top front center" }, - [14] = { "TFR", "top front right" }, - [15] = { "TBL", "top back left" }, - [16] = { "TBC", "top back center" }, - [17] = { "TBR", "top back right" }, - [29] = { "DL", "downmix left" }, - [30] = { "DR", "downmix right" }, - [31] = { "WL", "wide left" }, - [32] = { "WR", "wide right" }, - [33] = { "SDL", "surround direct left" }, - [34] = { "SDR", "surround direct right" }, - [35] = { "LFE2", "low frequency 2" }, - [36] = { "TSL", "top side left" }, - [37] = { "TSR", "top side right" }, - [38] = { "BFC", "bottom front center" }, - [39] = { "BFL", "bottom front left" }, - [40] = { "BFR", "bottom front right" }, + [AV_CHAN_FRONT_LEFT ] = { "FL", "front left" }, + [AV_CHAN_FRONT_RIGHT ] = { "FR", "front right" }, + [AV_CHAN_FRONT_CENTER ] = { "FC", "front center" }, + [AV_CHAN_LOW_FREQUENCY ] = { "LFE", "low frequency" }, + [AV_CHAN_BACK_LEFT ] = { "BL", "back left" }, + [AV_CHAN_BACK_RIGHT ] = { "BR", "back right" }, + [AV_CHAN_FRONT_LEFT_OF_CENTER ] = { "FLC", "front left-of-center" }, + [AV_CHAN_FRONT_RIGHT_OF_CENTER] = { "FRC", "front right-of-center" }, + [AV_CHAN_BACK_CENTER ] = { "BC", "back center" }, + [AV_CHAN_SIDE_LEFT ] = { "SL", "side left" }, + [AV_CHAN_SIDE_RIGHT ] = { "SR", "side right" }, + [AV_CHAN_TOP_CENTER ] = { "TC", "top center" }, + [AV_CHAN_TOP_FRONT_LEFT ] = { "TFL", "top front left" }, + [AV_CHAN_TOP_FRONT_CENTER ] = { "TFC", "top front center" }, + [AV_CHAN_TOP_FRONT_RIGHT ] = { "TFR", "top front right" }, + [AV_CHAN_TOP_BACK_LEFT ] = { "TBL", "top back left" }, + [AV_CHAN_TOP_BACK_CENTER ] = { "TBC", "top back center" }, + [AV_CHAN_TOP_BACK_RIGHT ] = { "TBR", "top back right" }, + [AV_CHAN_STEREO_LEFT ] = { "DL", "downmix left" }, + [AV_CHAN_STEREO_RIGHT ] = { "DR", "downmix right" }, + [AV_CHAN_WIDE_LEFT ] = { "WL", "wide left" }, + [AV_CHAN_WIDE_RIGHT ] = { "WR", "wide right" }, + [AV_CHAN_SURROUND_DIRECT_LEFT ] = { "SDL", "surround direct left" }, + [AV_CHAN_SURROUND_DIRECT_RIGHT] = { "SDR", "surround direct right" }, + [AV_CHAN_LOW_FREQUENCY_2 ] = { "LFE2", "low frequency 2" }, + [AV_CHAN_TOP_SIDE_LEFT ] = { "TSL", "top side left" }, + [AV_CHAN_TOP_SIDE_RIGHT ] = { "TSR", "top side right" }, + [AV_CHAN_BOTTOM_FRONT_CENTER ] = { "BFC", "bottom front center" }, + [AV_CHAN_BOTTOM_FRONT_LEFT ] = { "BFL", "bottom front left" }, + [AV_CHAN_BOTTOM_FRONT_RIGHT ] = { "BFR", "bottom front right" }, }; -static const char *get_channel_name(int channel_id) +static const char *get_channel_name(enum AVChannel channel_id) { - if (channel_id < 0 || channel_id >= FF_ARRAY_ELEMS(channel_names)) + if ((unsigned) channel_id >= FF_ARRAY_ELEMS(channel_names) || + !channel_names[channel_id].name) return NULL; return channel_names[channel_id].name; } -static const struct { +void av_channel_name_bprint(AVBPrint *bp, enum AVChannel channel_id) +{ + av_bprint_clear(bp); + + if ((unsigned)channel_id < FF_ARRAY_ELEMS(channel_names)) + av_bprintf(bp, "%s", channel_names[channel_id].name); + else + av_bprintf(bp, "USR%d", channel_id); +} + +int av_channel_name(char *buf, size_t buf_size, enum AVChannel channel_id) +{ + AVBPrint bp; + + if (!buf && buf_size) + return AVERROR(EINVAL); + + av_bprint_init_for_buffer(&bp, buf, buf_size); + av_channel_name_bprint(&bp, channel_id); + + return bp.len; +} + +void av_channel_description_bprint(AVBPrint *bp, enum AVChannel channel_id) +{ + av_bprint_clear(bp); + + if ((unsigned)channel_id < FF_ARRAY_ELEMS(channel_names)) + av_bprintf(bp, "%s", channel_names[channel_id].description); + else + av_bprintf(bp, "user %d", channel_id); +} + +int av_channel_description(char *buf, size_t buf_size, enum AVChannel channel_id) +{ + AVBPrint bp; + + if (!buf && buf_size) + return AVERROR(EINVAL); + + av_bprint_init_for_buffer(&bp, buf, buf_size); + av_channel_description_bprint(&bp, channel_id); + + return bp.len; +} + +enum AVChannel av_channel_from_string(const char *str) +{ + int i; + char *endptr = (char *)str; + enum AVChannel id = AV_CHAN_NONE; + for (i = 0; i < FF_ARRAY_ELEMS(channel_names); i++) { + if (channel_names[i].name && !strcmp(str, channel_names[i].name)) + return i; + } + if (!strncmp(str, "USR", 3)) { + const char *p = str + 3; + id = strtol(p, &endptr, 0); + } + if (id >= 0 && !*endptr) + return id; + + return AV_CHAN_NONE; +} + +struct channel_layout_name { const char *name; - int nb_channels; - uint64_t layout; -} channel_layout_map[] = { - { "mono", 1, AV_CH_LAYOUT_MONO }, - { "stereo", 2, AV_CH_LAYOUT_STEREO }, - { "2.1", 3, AV_CH_LAYOUT_2POINT1 }, - { "3.0", 3, AV_CH_LAYOUT_SURROUND }, - { "3.0(back)", 3, AV_CH_LAYOUT_2_1 }, - { "4.0", 4, AV_CH_LAYOUT_4POINT0 }, - { "quad", 4, AV_CH_LAYOUT_QUAD }, - { "quad(side)", 4, AV_CH_LAYOUT_2_2 }, - { "3.1", 4, AV_CH_LAYOUT_3POINT1 }, - { "5.0", 5, AV_CH_LAYOUT_5POINT0_BACK }, - { "5.0(side)", 5, AV_CH_LAYOUT_5POINT0 }, - { "4.1", 5, AV_CH_LAYOUT_4POINT1 }, - { "5.1", 6, AV_CH_LAYOUT_5POINT1_BACK }, - { "5.1(side)", 6, AV_CH_LAYOUT_5POINT1 }, - { "6.0", 6, AV_CH_LAYOUT_6POINT0 }, - { "6.0(front)", 6, AV_CH_LAYOUT_6POINT0_FRONT }, - { "hexagonal", 6, AV_CH_LAYOUT_HEXAGONAL }, - { "6.1", 7, AV_CH_LAYOUT_6POINT1 }, - { "6.1(back)", 7, AV_CH_LAYOUT_6POINT1_BACK }, - { "6.1(front)", 7, AV_CH_LAYOUT_6POINT1_FRONT }, - { "7.0", 7, AV_CH_LAYOUT_7POINT0 }, - { "7.0(front)", 7, AV_CH_LAYOUT_7POINT0_FRONT }, - { "7.1", 8, AV_CH_LAYOUT_7POINT1 }, - { "7.1(wide)", 8, AV_CH_LAYOUT_7POINT1_WIDE_BACK }, - { "7.1(wide-side)", 8, AV_CH_LAYOUT_7POINT1_WIDE }, - { "octagonal", 8, AV_CH_LAYOUT_OCTAGONAL }, - { "hexadecagonal", 16, AV_CH_LAYOUT_HEXADECAGONAL }, - { "downmix", 2, AV_CH_LAYOUT_STEREO_DOWNMIX, }, - { "22.2", 24, AV_CH_LAYOUT_22POINT2, }, + AVChannelLayout layout; +}; + +static const struct channel_layout_name channel_layout_map[] = { + { "mono", AV_CHANNEL_LAYOUT_MONO }, + { "stereo", AV_CHANNEL_LAYOUT_STEREO }, + { "stereo", AV_CHANNEL_LAYOUT_STEREO_DOWNMIX }, + { "2.1", AV_CHANNEL_LAYOUT_2POINT1 }, + { "3.0", AV_CHANNEL_LAYOUT_SURROUND }, + { "3.0(back)", AV_CHANNEL_LAYOUT_2_1 }, + { "4.0", AV_CHANNEL_LAYOUT_4POINT0 }, + { "quad", AV_CHANNEL_LAYOUT_QUAD }, + { "quad(side)", AV_CHANNEL_LAYOUT_2_2 }, + { "3.1", AV_CHANNEL_LAYOUT_3POINT1 }, + { "5.0", AV_CHANNEL_LAYOUT_5POINT0_BACK }, + { "5.0(side)", AV_CHANNEL_LAYOUT_5POINT0 }, + { "4.1", AV_CHANNEL_LAYOUT_4POINT1 }, + { "5.1", AV_CHANNEL_LAYOUT_5POINT1_BACK }, + { "5.1(side)", AV_CHANNEL_LAYOUT_5POINT1 }, + { "6.0", AV_CHANNEL_LAYOUT_6POINT0 }, + { "6.0(front)", AV_CHANNEL_LAYOUT_6POINT0_FRONT }, + { "hexagonal", AV_CHANNEL_LAYOUT_HEXAGONAL }, + { "6.1", AV_CHANNEL_LAYOUT_6POINT1 }, + { "6.1(back)", AV_CHANNEL_LAYOUT_6POINT1_BACK }, + { "6.1(front)", AV_CHANNEL_LAYOUT_6POINT1_FRONT }, + { "7.0", AV_CHANNEL_LAYOUT_7POINT0 }, + { "7.0(front)", AV_CHANNEL_LAYOUT_7POINT0_FRONT }, + { "7.1", AV_CHANNEL_LAYOUT_7POINT1 }, + { "7.1(wide)", AV_CHANNEL_LAYOUT_7POINT1_WIDE_BACK }, + { "7.1(wide-side)", AV_CHANNEL_LAYOUT_7POINT1_WIDE }, + { "octagonal", AV_CHANNEL_LAYOUT_OCTAGONAL }, + { "hexadecagonal", AV_CHANNEL_LAYOUT_HEXADECAGONAL }, + { "downmix", AV_CHANNEL_LAYOUT_STEREO_DOWNMIX, }, + { "22.2", AV_CHANNEL_LAYOUT_22POINT2, }, }; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS static uint64_t get_channel_layout_single(const char *name, int name_len) { int i; @@ -121,7 +191,7 @@ static uint64_t get_channel_layout_single(const char *name, int name_len) for (i = 0; i < FF_ARRAY_ELEMS(channel_layout_map); i++) { if (strlen(channel_layout_map[i].name) == name_len && !memcmp(channel_layout_map[i].name, name, name_len)) - return channel_layout_map[i].layout; + return channel_layout_map[i].layout.u.mask; } for (i = 0; i < FF_ARRAY_ELEMS(channel_names); i++) if (channel_names[i].name && @@ -189,8 +259,8 @@ void av_bprint_channel_layout(struct AVBPrint *bp, nb_channels = av_get_channel_layout_nb_channels(channel_layout); for (i = 0; i < FF_ARRAY_ELEMS(channel_layout_map); i++) - if (nb_channels == channel_layout_map[i].nb_channels && - channel_layout == channel_layout_map[i].layout) { + if (nb_channels == channel_layout_map[i].layout.nb_channels && + channel_layout == channel_layout_map[i].layout.u.mask) { av_bprintf(bp, "%s", channel_layout_map[i].name); return; } @@ -231,8 +301,8 @@ int av_get_channel_layout_nb_channels(uint64_t channel_layout) int64_t av_get_default_channel_layout(int nb_channels) { int i; for (i = 0; i < FF_ARRAY_ELEMS(channel_layout_map); i++) - if (nb_channels == channel_layout_map[i].nb_channels) - return channel_layout_map[i].layout; + if (nb_channels == channel_layout_map[i].layout.nb_channels) + return channel_layout_map[i].layout.u.mask; return 0; } @@ -287,7 +357,424 @@ int av_get_standard_channel_layout(unsigned index, uint64_t *layout, { if (index >= FF_ARRAY_ELEMS(channel_layout_map)) return AVERROR_EOF; - if (layout) *layout = channel_layout_map[index].layout; + if (layout) *layout = channel_layout_map[index].layout.u.mask; if (name) *name = channel_layout_map[index].name; return 0; } +FF_ENABLE_DEPRECATION_WARNINGS +#endif + +int av_channel_layout_from_mask(AVChannelLayout *channel_layout, + uint64_t mask) +{ + if (!mask) + return AVERROR(EINVAL); + + channel_layout->order = AV_CHANNEL_ORDER_NATIVE; + channel_layout->nb_channels = av_popcount64(mask); + channel_layout->u.mask = mask; + + return 0; +} + +int av_channel_layout_from_string(AVChannelLayout *channel_layout, + const char *str) +{ + int i; + int channels = 0, native = 1; + enum AVChannel highest_channel = AV_CHAN_NONE; + const char *dup = str; + char *end; + uint64_t mask = 0; + + /* channel layout names */ + for (i = 0; i < FF_ARRAY_ELEMS(channel_layout_map); i++) { + if (channel_layout_map[i].name && !strcmp(str, channel_layout_map[i].name)) { + *channel_layout = channel_layout_map[i].layout; + return 0; + } + } + + /* channel names */ + while (*dup) { + char *chname = av_get_token(&dup, "+"); + if (!chname) + return AVERROR(ENOMEM); + if (*dup) + dup++; // skip separator + for (i = 0; i < FF_ARRAY_ELEMS(channel_names); i++) { + if (channel_names[i].name && !strcmp(chname, channel_names[i].name)) { + if (i < highest_channel) + native = 0; // Not a native layout, use a custom one + highest_channel = i; + mask |= 1ULL << i; + break; + } + } + + if (i >= FF_ARRAY_ELEMS(channel_names)) { + char *endptr = chname; + enum AVChannel id = AV_CHAN_NONE; + + if (!strncmp(chname, "USR", 3)) { + const char *p = chname + 3; + id = strtol(p, &endptr, 0); + } + if (id < 0 || *endptr) { + native = 0; // Unknown channel name + channels = 0; + mask = 0; + av_free(chname); + break; + } + if (id > 63) + native = 0; // Not a native layout, use a custom one + else { + if (id < highest_channel) + native = 0; // Not a native layout, use a custom one + highest_channel = id; + mask |= 1ULL << id; + } + } + channels++; + av_free(chname); + } + if (mask && native) { + av_channel_layout_from_mask(channel_layout, mask); + return 0; + } + + /* custom layout of channel names */ + if (channels && !native) { + int idx = 0; + + channel_layout->u.map = av_calloc(channels, sizeof(*channel_layout->u.map)); + if (!channel_layout->u.map) + return AVERROR(ENOMEM); + + channel_layout->order = AV_CHANNEL_ORDER_CUSTOM; + channel_layout->nb_channels = channels; + + dup = str; + while (*dup) { + char *chname = av_get_token(&dup, "+"); + if (!chname) { + av_freep(&channel_layout->u.map); + return AVERROR(ENOMEM); + } + if (*dup) + dup++; // skip separator + for (i = 0; i < FF_ARRAY_ELEMS(channel_names); i++) { + if (channel_names[i].name && !strcmp(chname, channel_names[i].name)) { + channel_layout->u.map[idx++].id = i; + break; + } + } + if (i >= FF_ARRAY_ELEMS(channel_names)) { + const char *p = chname + 3; + channel_layout->u.map[idx++].id = strtol(p, NULL, 0); + } + av_free(chname); + } + + return 0; + } + + /* channel layout mask */ + if (!strncmp(str, "0x", 2) && sscanf(str + 2, "%"SCNx64, &mask) == 1) { + av_channel_layout_from_mask(channel_layout, mask); + return 0; + } + + errno = 0; + channels = strtol(str, &end, 10); + + /* number of channels */ + if (!errno && *end == 'c' && !*(end + 1) && channels >= 0) { + av_channel_layout_default(channel_layout, channels); + return 0; + } + + /* number of unordered channels */ + if (!errno && (!*end || (*end == 'C' && !*(end + 1)) || av_strnstr(str, "channels", strlen(str))) + && channels >= 0) { + channel_layout->order = AV_CHANNEL_ORDER_UNSPEC; + channel_layout->nb_channels = channels; + return 0; + } + + return AVERROR_INVALIDDATA; +} + +void av_channel_layout_uninit(AVChannelLayout *channel_layout) +{ + if (channel_layout->order == AV_CHANNEL_ORDER_CUSTOM) + av_freep(&channel_layout->u.map); + memset(channel_layout, 0, sizeof(*channel_layout)); +} + +int av_channel_layout_copy(AVChannelLayout *dst, const AVChannelLayout *src) +{ + av_channel_layout_uninit(dst); + *dst = *src; + if (src->order == AV_CHANNEL_ORDER_CUSTOM) { + dst->u.map = av_malloc_array(src->nb_channels, sizeof(*dst->u.map)); + if (!dst->u.map) + return AVERROR(ENOMEM); + memcpy(dst->u.map, src->u.map, src->nb_channels * sizeof(*src->u.map)); + } + return 0; +} + +int av_channel_layout_describe_bprint(const AVChannelLayout *channel_layout, + AVBPrint *bp) +{ + int i; + + av_bprint_clear(bp); + + switch (channel_layout->order) { + case AV_CHANNEL_ORDER_NATIVE: + for (i = 0; i < FF_ARRAY_ELEMS(channel_layout_map); i++) + if (channel_layout->u.mask == channel_layout_map[i].layout.u.mask) { + av_bprintf(bp, "%s", channel_layout_map[i].name); + return 0; + } + // fall-through + case AV_CHANNEL_ORDER_CUSTOM: + for (i = 0; i < channel_layout->nb_channels; i++) { + const char *ch_name = NULL; + enum AVChannel ch = AV_CHAN_NONE; + + if (channel_layout->order == AV_CHANNEL_ORDER_CUSTOM && + channel_layout->u.map[i].name[0]) + ch_name = channel_layout->u.map[i].name; + if (channel_layout->order == AV_CHANNEL_ORDER_NATIVE || !ch_name) { + ch = av_channel_layout_channel_from_index(channel_layout, i); + ch_name = get_channel_name(ch); + } + + if (i) + av_bprintf(bp, "+"); + if (ch_name) + av_bprintf(bp, "%s", ch_name); + else + av_bprintf(bp, "USR%d", ch); + } + if (channel_layout->nb_channels) + return 0; + // fall-through + case AV_CHANNEL_ORDER_UNSPEC: + av_bprintf(bp, "%d channels", channel_layout->nb_channels); + return 0; + default: + return AVERROR(EINVAL); + } +} + +int av_channel_layout_describe(const AVChannelLayout *channel_layout, + char *buf, size_t buf_size) +{ + AVBPrint bp; + int ret; + + if (!buf && buf_size) + return AVERROR(EINVAL); + + av_bprint_init_for_buffer(&bp, buf, buf_size); + ret = av_channel_layout_describe_bprint(channel_layout, &bp); + if (ret < 0) + return ret; + + return bp.len; +} + +enum AVChannel +av_channel_layout_channel_from_index(const AVChannelLayout *channel_layout, + unsigned int idx) +{ + int i; + + if (idx >= channel_layout->nb_channels) + return AV_CHAN_NONE; + + switch (channel_layout->order) { + case AV_CHANNEL_ORDER_CUSTOM: + return channel_layout->u.map[idx].id; + case AV_CHANNEL_ORDER_NATIVE: + for (i = 0; i < 64; i++) { + if ((1ULL << i) & channel_layout->u.mask && !idx--) + return i; + } + default: + return AV_CHAN_NONE; + } +} + +enum AVChannel +av_channel_layout_channel_from_string(const AVChannelLayout *channel_layout, + const char *name) +{ + int channel, ret; + + switch (channel_layout->order) { + case AV_CHANNEL_ORDER_CUSTOM: + for (int i = 0; i < channel_layout->nb_channels; i++) { + if (channel_layout->u.map[i].name[0] && !strcmp(name, channel_layout->u.map[i].name)) + return channel_layout->u.map[i].id; + } + // fall-through + case AV_CHANNEL_ORDER_NATIVE: + channel = av_channel_from_string(name); + if (channel == AV_CHAN_NONE) + return channel; + ret = av_channel_layout_index_from_channel(channel_layout, channel); + if (ret < 0) + return AV_CHAN_NONE; + return channel; + } + + return AV_CHAN_NONE; +} + +int av_channel_layout_index_from_channel(const AVChannelLayout *channel_layout, + enum AVChannel channel) +{ + int i; + + if (channel == AV_CHAN_NONE) + return AVERROR(EINVAL); + + switch (channel_layout->order) { + case AV_CHANNEL_ORDER_CUSTOM: + for (i = 0; i < channel_layout->nb_channels; i++) + if (channel_layout->u.map[i].id == channel) + return i; + return AVERROR(EINVAL); + case AV_CHANNEL_ORDER_NATIVE: { + uint64_t mask = channel_layout->u.mask; + if (!(mask & (1ULL << channel))) + return AVERROR(EINVAL); + mask &= (1ULL << channel) - 1; + return av_popcount64(mask); + } + default: + return AVERROR(EINVAL); + } +} + +int av_channel_layout_index_from_string(const AVChannelLayout *channel_layout, + const char *name) +{ + enum AVChannel ch; + + switch (channel_layout->order) { + case AV_CHANNEL_ORDER_CUSTOM: + for (int i = 0; i < channel_layout->nb_channels; i++) { + if (channel_layout->u.map[i].name[0] && !strcmp(name, channel_layout->u.map[i].name)) + return i; + } + // fall-through + case AV_CHANNEL_ORDER_NATIVE: + ch = av_channel_from_string(name); + if (ch == AV_CHAN_NONE) + return AVERROR(EINVAL); + return av_channel_layout_index_from_channel(channel_layout, ch); + } + + return AVERROR(EINVAL); +} + +int av_channel_layout_check(const AVChannelLayout *channel_layout) +{ + if (channel_layout->nb_channels <= 0) + return 0; + + switch (channel_layout->order) { + case AV_CHANNEL_ORDER_NATIVE: + return av_popcount64(channel_layout->u.mask) == channel_layout->nb_channels; + case AV_CHANNEL_ORDER_CUSTOM: + if (!channel_layout->u.map) + return 0; + for (int i = 0; i < channel_layout->nb_channels; i++) { + if (channel_layout->u.map[i].id == AV_CHAN_NONE) + return 0; + } + return 1; + case AV_CHANNEL_ORDER_UNSPEC: + return 1; + default: + return 0; + } +} + +int av_channel_layout_compare(const AVChannelLayout *chl, const AVChannelLayout *chl1) +{ + int i; + + /* different channel counts -> not equal */ + if (chl->nb_channels != chl1->nb_channels) + return 1; + + /* if only one is unspecified -> not equal */ + if ((chl->order == AV_CHANNEL_ORDER_UNSPEC) != + (chl1->order == AV_CHANNEL_ORDER_UNSPEC)) + return 1; + /* both are unspecified -> equal */ + else if (chl->order == AV_CHANNEL_ORDER_UNSPEC) + return 0; + + /* can compare masks directly */ + if (chl->order != AV_CHANNEL_ORDER_CUSTOM && + chl->order == chl1->order) + return chl->u.mask != chl1->u.mask; + + /* compare channel by channel */ + for (i = 0; i < chl->nb_channels; i++) + if (av_channel_layout_channel_from_index(chl, i) != + av_channel_layout_channel_from_index(chl1, i)) + return 1; + return 0; +} + +void av_channel_layout_default(AVChannelLayout *ch_layout, int nb_channels) +{ + int i; + for (i = 0; i < FF_ARRAY_ELEMS(channel_layout_map); i++) + if (nb_channels == channel_layout_map[i].layout.nb_channels) { + *ch_layout = channel_layout_map[i].layout; + return; + } + + ch_layout->order = AV_CHANNEL_ORDER_UNSPEC; + ch_layout->nb_channels = nb_channels; +} + +const AVChannelLayout *av_channel_layout_standard(void **opaque) +{ + uintptr_t i = (uintptr_t)*opaque; + const AVChannelLayout *ch_layout = NULL; + + if (i < FF_ARRAY_ELEMS(channel_layout_map)) { + ch_layout = &channel_layout_map[i].layout; + *opaque = (void*)(i + 1); + } + + return ch_layout; +} + +uint64_t av_channel_layout_subset(const AVChannelLayout *channel_layout, + uint64_t mask) +{ + uint64_t ret = 0; + int i; + + if (channel_layout->order == AV_CHANNEL_ORDER_NATIVE) + return channel_layout->u.mask & mask; + + for (i = 0; i < 64; i++) + if (mask & (1ULL << i) && av_channel_layout_index_from_channel(channel_layout, i) >= 0) + ret |= (1ULL << i); + + return ret; +} diff --git a/libavutil/channel_layout.h b/libavutil/channel_layout.h index d39ae1177a..6356a9a38a 100644 --- a/libavutil/channel_layout.h +++ b/libavutil/channel_layout.h @@ -23,6 +23,10 @@ #define AVUTIL_CHANNEL_LAYOUT_H #include +#include + +#include "version.h" +#include "attributes.h" /** * @file @@ -34,6 +38,71 @@ * @{ */ +enum AVChannel { + ///< Invalid channel index + AV_CHAN_NONE = -1, + AV_CHAN_FRONT_LEFT, + AV_CHAN_FRONT_RIGHT, + AV_CHAN_FRONT_CENTER, + AV_CHAN_LOW_FREQUENCY, + AV_CHAN_BACK_LEFT, + AV_CHAN_BACK_RIGHT, + AV_CHAN_FRONT_LEFT_OF_CENTER, + AV_CHAN_FRONT_RIGHT_OF_CENTER, + AV_CHAN_BACK_CENTER, + AV_CHAN_SIDE_LEFT, + AV_CHAN_SIDE_RIGHT, + AV_CHAN_TOP_CENTER, + AV_CHAN_TOP_FRONT_LEFT, + AV_CHAN_TOP_FRONT_CENTER, + AV_CHAN_TOP_FRONT_RIGHT, + AV_CHAN_TOP_BACK_LEFT, + AV_CHAN_TOP_BACK_CENTER, + AV_CHAN_TOP_BACK_RIGHT, + /** Stereo downmix. */ + AV_CHAN_STEREO_LEFT = 29, + /** See above. */ + AV_CHAN_STEREO_RIGHT, + AV_CHAN_WIDE_LEFT, + AV_CHAN_WIDE_RIGHT, + AV_CHAN_SURROUND_DIRECT_LEFT, + AV_CHAN_SURROUND_DIRECT_RIGHT, + AV_CHAN_LOW_FREQUENCY_2, + AV_CHAN_TOP_SIDE_LEFT, + AV_CHAN_TOP_SIDE_RIGHT, + AV_CHAN_BOTTOM_FRONT_CENTER, + AV_CHAN_BOTTOM_FRONT_LEFT, + AV_CHAN_BOTTOM_FRONT_RIGHT, + + /** Channel is empty can be safely skipped. */ + AV_CHAN_UNUSED = 64, + + /** Channel contains data, but its position is unknown. */ + AV_CHAN_UNKWNOWN = 128, +}; + +enum AVChannelOrder { + /** + * Only the channel count is specified, without any further information + * about the channel order. + */ + AV_CHANNEL_ORDER_UNSPEC, + /** + * The native channel order, i.e. the channels are in the same order in + * which they are defined in the AVChannel enum. This supports up to 63 + * different channels. + */ + AV_CHANNEL_ORDER_NATIVE, + /** + * The channel order does not correspond to any other predefined order and + * is stored as an explicit map. For example, this could be used to support + * layouts with 64 or more channels, or with empty/skipped (AV_CHAN_SILENCE) + * channels at arbitrary positions. + */ + AV_CHANNEL_ORDER_CUSTOM, +}; + + /** * @defgroup channel_masks Audio channel masks * @@ -46,41 +115,46 @@ * * @{ */ -#define AV_CH_FRONT_LEFT 0x00000001 -#define AV_CH_FRONT_RIGHT 0x00000002 -#define AV_CH_FRONT_CENTER 0x00000004 -#define AV_CH_LOW_FREQUENCY 0x00000008 -#define AV_CH_BACK_LEFT 0x00000010 -#define AV_CH_BACK_RIGHT 0x00000020 -#define AV_CH_FRONT_LEFT_OF_CENTER 0x00000040 -#define AV_CH_FRONT_RIGHT_OF_CENTER 0x00000080 -#define AV_CH_BACK_CENTER 0x00000100 -#define AV_CH_SIDE_LEFT 0x00000200 -#define AV_CH_SIDE_RIGHT 0x00000400 -#define AV_CH_TOP_CENTER 0x00000800 -#define AV_CH_TOP_FRONT_LEFT 0x00001000 -#define AV_CH_TOP_FRONT_CENTER 0x00002000 -#define AV_CH_TOP_FRONT_RIGHT 0x00004000 -#define AV_CH_TOP_BACK_LEFT 0x00008000 -#define AV_CH_TOP_BACK_CENTER 0x00010000 -#define AV_CH_TOP_BACK_RIGHT 0x00020000 -#define AV_CH_STEREO_LEFT 0x20000000 ///< Stereo downmix. -#define AV_CH_STEREO_RIGHT 0x40000000 ///< See AV_CH_STEREO_LEFT. -#define AV_CH_WIDE_LEFT 0x0000000080000000ULL -#define AV_CH_WIDE_RIGHT 0x0000000100000000ULL -#define AV_CH_SURROUND_DIRECT_LEFT 0x0000000200000000ULL -#define AV_CH_SURROUND_DIRECT_RIGHT 0x0000000400000000ULL -#define AV_CH_LOW_FREQUENCY_2 0x0000000800000000ULL -#define AV_CH_TOP_SIDE_LEFT 0x0000001000000000ULL -#define AV_CH_TOP_SIDE_RIGHT 0x0000002000000000ULL -#define AV_CH_BOTTOM_FRONT_CENTER 0x0000004000000000ULL -#define AV_CH_BOTTOM_FRONT_LEFT 0x0000008000000000ULL -#define AV_CH_BOTTOM_FRONT_RIGHT 0x0000010000000000ULL +#define AV_CH_FRONT_LEFT (1ULL << AV_CHAN_FRONT_LEFT ) +#define AV_CH_FRONT_RIGHT (1ULL << AV_CHAN_FRONT_RIGHT ) +#define AV_CH_FRONT_CENTER (1ULL << AV_CHAN_FRONT_CENTER ) +#define AV_CH_LOW_FREQUENCY (1ULL << AV_CHAN_LOW_FREQUENCY ) +#define AV_CH_BACK_LEFT (1ULL << AV_CHAN_BACK_LEFT ) +#define AV_CH_BACK_RIGHT (1ULL << AV_CHAN_BACK_RIGHT ) +#define AV_CH_FRONT_LEFT_OF_CENTER (1ULL << AV_CHAN_FRONT_LEFT_OF_CENTER ) +#define AV_CH_FRONT_RIGHT_OF_CENTER (1ULL << AV_CHAN_FRONT_RIGHT_OF_CENTER) +#define AV_CH_BACK_CENTER (1ULL << AV_CHAN_BACK_CENTER ) +#define AV_CH_SIDE_LEFT (1ULL << AV_CHAN_SIDE_LEFT ) +#define AV_CH_SIDE_RIGHT (1ULL << AV_CHAN_SIDE_RIGHT ) +#define AV_CH_TOP_CENTER (1ULL << AV_CHAN_TOP_CENTER ) +#define AV_CH_TOP_FRONT_LEFT (1ULL << AV_CHAN_TOP_FRONT_LEFT ) +#define AV_CH_TOP_FRONT_CENTER (1ULL << AV_CHAN_TOP_FRONT_CENTER ) +#define AV_CH_TOP_FRONT_RIGHT (1ULL << AV_CHAN_TOP_FRONT_RIGHT ) +#define AV_CH_TOP_BACK_LEFT (1ULL << AV_CHAN_TOP_BACK_LEFT ) +#define AV_CH_TOP_BACK_CENTER (1ULL << AV_CHAN_TOP_BACK_CENTER ) +#define AV_CH_TOP_BACK_RIGHT (1ULL << AV_CHAN_TOP_BACK_RIGHT ) +#define AV_CH_STEREO_LEFT (1ULL << AV_CHAN_STEREO_LEFT ) +#define AV_CH_STEREO_RIGHT (1ULL << AV_CHAN_STEREO_RIGHT ) +#define AV_CH_WIDE_LEFT (1ULL << AV_CHAN_WIDE_LEFT ) +#define AV_CH_WIDE_RIGHT (1ULL << AV_CHAN_WIDE_RIGHT ) +#define AV_CH_SURROUND_DIRECT_LEFT (1ULL << AV_CHAN_SURROUND_DIRECT_LEFT ) +#define AV_CH_SURROUND_DIRECT_RIGHT (1ULL << AV_CHAN_SURROUND_DIRECT_RIGHT) +#define AV_CH_LOW_FREQUENCY_2 (1ULL << AV_CHAN_LOW_FREQUENCY_2 ) +#define AV_CH_TOP_SIDE_LEFT (1ULL << AV_CHAN_TOP_SIDE_LEFT ) +#define AV_CH_TOP_SIDE_RIGHT (1ULL << AV_CHAN_TOP_SIDE_RIGHT ) +#define AV_CH_BOTTOM_FRONT_CENTER (1ULL << AV_CHAN_BOTTOM_FRONT_CENTER ) +#define AV_CH_BOTTOM_FRONT_LEFT (1ULL << AV_CHAN_BOTTOM_FRONT_LEFT ) +#define AV_CH_BOTTOM_FRONT_RIGHT (1ULL << AV_CHAN_BOTTOM_FRONT_RIGHT ) +#if FF_API_OLD_CHANNEL_LAYOUT /** Channel mask value used for AVCodecContext.request_channel_layout to indicate that the user requests the channel order of the decoder output - to be the native codec channel order. */ + to be the native codec channel order. + @deprecated channel order is now indicated in a special field in + AVChannelLayout + */ #define AV_CH_LAYOUT_NATIVE 0x8000000000000000ULL +#endif /** * @} @@ -128,6 +202,167 @@ enum AVMatrixEncoding { AV_MATRIX_ENCODING_NB }; +/** + * @} + */ + +/** + * An AVChannelCustom defines a single channel within a custom order layout + * + * Unlike most structures in FFmpeg, sizeof(AVChannelCustom) is a part of the + * public ABI. + * + * No new fields may be added to it without a major version bump. + */ +typedef struct AVChannelCustom { + enum AVChannel id; + char name[16]; + void *opaque; +} AVChannelCustom; + +/** + * An AVChannelLayout holds information about the channel layout of audio data. + * + * A channel layout here is defined as a set of channels ordered in a specific + * way (unless the channel order is AV_CHANNEL_ORDER_UNSPEC, in which case an + * AVChannelLayout carries only the channel count). + * + * Unlike most structures in Libav, sizeof(AVChannelLayout) is a part of the + * public ABI and may be used by the caller. E.g. it may be allocated on stack + * or embedded in caller-defined structs. + * + * AVChannelLayout can be initialized as follows: + * - default initialization with {0}, followed by by setting all used fields + * correctly; + * - by assigning one of the predefined AV_CHANNEL_LAYOUT_* initializers; + * - with a constructor function, such as av_channel_layout_default(), + * av_channel_layout_from_mask() or av_channel_layout_from_string(). + * + * The channel layout must be unitialized with av_channel_layout_uninit() + * + * Copying an AVChannelLayout via assigning is forbidden, + * av_channel_layout_copy() must be used. instead (and its return value should + * be checked) + * + * No new fields may be added to it without a major version bump, except for + * new elements of the union fitting in sizeof(uint64_t). + */ +typedef struct AVChannelLayout { + /** + * Channel order used in this layout. + * This is a mandatory field. + */ + enum AVChannelOrder order; + + /** + * Number of channels in this layout. Mandatory field. + */ + int nb_channels; + + /** + * Details about which channels are present in this layout. + * For AV_CHANNEL_ORDER_UNSPEC, this field is undefined and must not be + * used. + */ + union { + /** + * This member must be used for AV_CHANNEL_ORDER_NATIVE. + * It is a bitmask, where the position of each set bit means that the + * AVChannel with the corresponding value is present. + * + * I.e. when (mask & (1 << AV_CHAN_FOO)) is non-zero, then AV_CHAN_FOO + * is present in the layout. Otherwise it is not present. + * + * @note when a channel layout using a bitmask is constructed or + * modified manually (i.e. not using any of the av_channel_layout_* + * functions), the code doing it must ensure that the number of set bits + * is equal to nb_channels. + */ + uint64_t mask; + /** + * This member must be used when the channel order is + * AV_CHANNEL_ORDER_CUSTOM. It is a nb_channels-sized array, with each + * element signalling the presence of the AVChannel with the + * corresponding value in map[i].id. + * + * I.e. when map[i].id is equal to AV_CHAN_FOO, then AV_CH_FOO is the + * i-th channel in the audio data. + * + * map[i].name may be filled with a 0-terminated string, in which case + * it will be used for the purpose of identifying the channel with the + * convenience functions below. Otherise it must be zeroed. + */ + AVChannelCustom *map; + } u; + + /** + * For some private data of the user. + */ + void *opaque; +} AVChannelLayout; + +#define AV_CHANNEL_LAYOUT_MONO \ + { .order = AV_CHANNEL_ORDER_NATIVE, .nb_channels = 1, .u = { .mask = AV_CH_LAYOUT_MONO }} +#define AV_CHANNEL_LAYOUT_STEREO \ + { .order = AV_CHANNEL_ORDER_NATIVE, .nb_channels = 2, .u = { .mask = AV_CH_LAYOUT_STEREO }} +#define AV_CHANNEL_LAYOUT_2POINT1 \ + { .order = AV_CHANNEL_ORDER_NATIVE, .nb_channels = 3, .u = { .mask = AV_CH_LAYOUT_2POINT1 }} +#define AV_CHANNEL_LAYOUT_2_1 \ + { .order = AV_CHANNEL_ORDER_NATIVE, .nb_channels = 3, .u = { .mask = AV_CH_LAYOUT_2_1 }} +#define AV_CHANNEL_LAYOUT_SURROUND \ + { .order = AV_CHANNEL_ORDER_NATIVE, .nb_channels = 3, .u = { .mask = AV_CH_LAYOUT_SURROUND }} +#define AV_CHANNEL_LAYOUT_3POINT1 \ + { .order = AV_CHANNEL_ORDER_NATIVE, .nb_channels = 4, .u = { .mask = AV_CH_LAYOUT_3POINT1 }} +#define AV_CHANNEL_LAYOUT_4POINT0 \ + { .order = AV_CHANNEL_ORDER_NATIVE, .nb_channels = 4, .u = { .mask = AV_CH_LAYOUT_4POINT0 }} +#define AV_CHANNEL_LAYOUT_4POINT1 \ + { .order = AV_CHANNEL_ORDER_NATIVE, .nb_channels = 5, .u = { .mask = AV_CH_LAYOUT_4POINT1 }} +#define AV_CHANNEL_LAYOUT_2_2 \ + { .order = AV_CHANNEL_ORDER_NATIVE, .nb_channels = 4, .u = { .mask = AV_CH_LAYOUT_2_2 }} +#define AV_CHANNEL_LAYOUT_QUAD \ + { .order = AV_CHANNEL_ORDER_NATIVE, .nb_channels = 4, .u = { .mask = AV_CH_LAYOUT_QUAD }} +#define AV_CHANNEL_LAYOUT_5POINT0 \ + { .order = AV_CHANNEL_ORDER_NATIVE, .nb_channels = 5, .u = { .mask = AV_CH_LAYOUT_5POINT0 }} +#define AV_CHANNEL_LAYOUT_5POINT1 \ + { .order = AV_CHANNEL_ORDER_NATIVE, .nb_channels = 6, .u = { .mask = AV_CH_LAYOUT_5POINT1 }} +#define AV_CHANNEL_LAYOUT_5POINT0_BACK \ + { .order = AV_CHANNEL_ORDER_NATIVE, .nb_channels = 5, .u = { .mask = AV_CH_LAYOUT_5POINT0_BACK }} +#define AV_CHANNEL_LAYOUT_5POINT1_BACK \ + { .order = AV_CHANNEL_ORDER_NATIVE, .nb_channels = 6, .u = { .mask = AV_CH_LAYOUT_5POINT1_BACK }} +#define AV_CHANNEL_LAYOUT_6POINT0 \ + { .order = AV_CHANNEL_ORDER_NATIVE, .nb_channels = 6, .u = { .mask = AV_CH_LAYOUT_6POINT0 }} +#define AV_CHANNEL_LAYOUT_6POINT0_FRONT \ + { .order = AV_CHANNEL_ORDER_NATIVE, .nb_channels = 6, .u = { .mask = AV_CH_LAYOUT_6POINT0_FRONT }} +#define AV_CHANNEL_LAYOUT_HEXAGONAL \ + { .order = AV_CHANNEL_ORDER_NATIVE, .nb_channels = 6, .u = { .mask = AV_CH_LAYOUT_HEXAGONAL }} +#define AV_CHANNEL_LAYOUT_6POINT1 \ + { .order = AV_CHANNEL_ORDER_NATIVE, .nb_channels = 7, .u = { .mask = AV_CH_LAYOUT_6POINT1 }} +#define AV_CHANNEL_LAYOUT_6POINT1_BACK \ + { .order = AV_CHANNEL_ORDER_NATIVE, .nb_channels = 7, .u = { .mask = AV_CH_LAYOUT_6POINT1_BACK }} +#define AV_CHANNEL_LAYOUT_6POINT1_FRONT \ + { .order = AV_CHANNEL_ORDER_NATIVE, .nb_channels = 7, .u = { .mask = AV_CH_LAYOUT_6POINT1_FRONT }} +#define AV_CHANNEL_LAYOUT_7POINT0 \ + { .order = AV_CHANNEL_ORDER_NATIVE, .nb_channels = 7, .u = { .mask = AV_CH_LAYOUT_7POINT0 }} +#define AV_CHANNEL_LAYOUT_7POINT0_FRONT \ + { .order = AV_CHANNEL_ORDER_NATIVE, .nb_channels = 7, .u = { .mask = AV_CH_LAYOUT_7POINT0_FRONT }} +#define AV_CHANNEL_LAYOUT_7POINT1 \ + { .order = AV_CHANNEL_ORDER_NATIVE, .nb_channels = 8, .u = { .mask = AV_CH_LAYOUT_7POINT1 }} +#define AV_CHANNEL_LAYOUT_7POINT1_WIDE \ + { .order = AV_CHANNEL_ORDER_NATIVE, .nb_channels = 8, .u = { .mask = AV_CH_LAYOUT_7POINT1_WIDE }} +#define AV_CHANNEL_LAYOUT_7POINT1_WIDE_BACK \ + { .order = AV_CHANNEL_ORDER_NATIVE, .nb_channels = 8, .u = { .mask = AV_CH_LAYOUT_7POINT1_WIDE_BACK }} +#define AV_CHANNEL_LAYOUT_OCTAGONAL \ + { .order = AV_CHANNEL_ORDER_NATIVE, .nb_channels = 8, .u = { .mask = AV_CH_LAYOUT_OCTAGONAL }} +#define AV_CHANNEL_LAYOUT_HEXADECAGONAL \ + { .order = AV_CHANNEL_ORDER_NATIVE, .nb_channels = 16, .u = { .mask = AV_CH_LAYOUT_HEXAGONAL }} +#define AV_CHANNEL_LAYOUT_STEREO_DOWNMIX \ + { .order = AV_CHANNEL_ORDER_NATIVE, .nb_channels = 2, .u = { .mask = AV_CH_LAYOUT_STEREO_DOWNMIX }} +#define AV_CHANNEL_LAYOUT_22POINT2 \ + { .order = AV_CHANNEL_ORDER_NATIVE, .nb_channels = 24, .u = { .mask = AV_CH_LAYOUT_22POINT2 }} + +struct AVBPrint; + +#if FF_API_OLD_CHANNEL_LAYOUT /** * Return a channel layout id that matches name, or 0 if no match is found. * @@ -144,7 +379,10 @@ enum AVMatrixEncoding { * AV_CH_* macros). * * Example: "stereo+FC" = "2c+FC" = "2c+1c" = "0x7" + * + * @deprecated use av_channel_layout_from_string() */ +attribute_deprecated uint64_t av_get_channel_layout(const char *name); /** @@ -158,7 +396,9 @@ uint64_t av_get_channel_layout(const char *name); * @param[out] nb_channels number of channels * * @return 0 on success, AVERROR(EINVAL) if the parsing fails. + * @deprecated use av_channel_layout_from_string() */ +attribute_deprecated int av_get_extended_channel_layout(const char *name, uint64_t* channel_layout, int* nb_channels); /** @@ -167,23 +407,31 @@ int av_get_extended_channel_layout(const char *name, uint64_t* channel_layout, i * * @param buf put here the string containing the channel layout * @param buf_size size in bytes of the buffer + * @deprecated use av_channel_layout_describe() */ +attribute_deprecated void av_get_channel_layout_string(char *buf, int buf_size, int nb_channels, uint64_t channel_layout); -struct AVBPrint; /** * Append a description of a channel layout to a bprint buffer. + * @deprecated use av_channel_layout_describe() */ +attribute_deprecated void av_bprint_channel_layout(struct AVBPrint *bp, int nb_channels, uint64_t channel_layout); /** * Return the number of channels in the channel layout. + * @deprecated use AVChannelLayout.nb_channels */ +attribute_deprecated int av_get_channel_layout_nb_channels(uint64_t channel_layout); /** * Return default channel layout for a given number of channels. + * + * @deprecated use av_channel_layout_default() */ +attribute_deprecated int64_t av_get_default_channel_layout(int nb_channels); /** @@ -194,20 +442,28 @@ int64_t av_get_default_channel_layout(int nb_channels); * * @return index of channel in channel_layout on success, a negative AVERROR * on error. + * + * @deprecated use av_channel_layout_index_from_channel() */ +attribute_deprecated int av_get_channel_layout_channel_index(uint64_t channel_layout, uint64_t channel); /** * Get the channel with the given index in channel_layout. + * @deprecated use av_channel_layout_channel_from_index() */ +attribute_deprecated uint64_t av_channel_layout_extract_channel(uint64_t channel_layout, int index); /** * Get the name of a given channel. * * @return channel name on success, NULL on error. + * + * @deprecated use av_channel_name() */ +attribute_deprecated const char *av_get_channel_name(uint64_t channel); /** @@ -215,7 +471,9 @@ const char *av_get_channel_name(uint64_t channel); * * @param channel a channel layout with a single channel * @return channel description on success, NULL on error + * @deprecated use av_channel_description() */ +attribute_deprecated const char *av_get_channel_description(uint64_t channel); /** @@ -226,9 +484,229 @@ const char *av_get_channel_description(uint64_t channel); * @param[out] name name of the layout * @return 0 if the layout exists, * <0 if index is beyond the limits + * @deprecated use av_channel_layout_standard() */ +attribute_deprecated int av_get_standard_channel_layout(unsigned index, uint64_t *layout, const char **name); +#endif + +/** + * Get a human readable string in an abbreviated form describing a given channel, + * or "?" if not found. + * This is the inverse function of @ref av_channel_from_string(). + * + * @param buf pre-allocated buffer where to put the generated string + * @param buf_size size in bytes of the buffer. + * @return amount of bytes needed to hold the output string, or a negative AVERROR + * on failure. If the returned value is bigger than buf_size, then the + * string was truncated. + */ +int av_channel_name(char *buf, size_t buf_size, enum AVChannel channel); + +/** + * bprint variant of av_channel_name(). + */ +void av_channel_name_bprint(struct AVBPrint *bp, enum AVChannel channel_id); + +/** + * Get a human readable string describing a given channel, or "?" if not found. + * + * @param buf pre-allocated buffer where to put the generated string + * @param buf_size size in bytes of the buffer. + * @return amount of bytes needed to hold the output string, or a negative AVERROR + * on failure. If the returned value is bigger than buf_size, then the + * string was truncated. + */ +int av_channel_description(char *buf, size_t buf_size, enum AVChannel channel); + +/** + * bprint variant of av_channel_description(). + */ +void av_channel_description_bprint(struct AVBPrint *bp, enum AVChannel channel_id); + +/** + * This is the inverse function of @ref av_channel_name(). + * + * @return the channel with the given name + * AV_CHAN_NONE when name does not identify a known channel + */ +enum AVChannel av_channel_from_string(const char *name); + +/** + * Initialize a native channel layout from a bitmask indicating which channels + * are present. + * + * @param channel_layout the layout structure to be initialized + * @param mask bitmask describing the channel layout + * + * @return 0 on success + * AVERROR(EINVAL) for invalid mask values + */ +int av_channel_layout_from_mask(AVChannelLayout *channel_layout, uint64_t mask); + +/** + * Initialize a channel layout from a given string description. + * The input string can be represented by: + * - the formal channel layout name (returned by av_channel_layout_describe()) + * - single or multiple channel names (returned by av_channel_name() + * or concatenated with "+") + * - a hexadecimal value of a channel layout (eg. "0x4") + * - the number of channels with default layout (eg. "5c") + * - the number of unordered channels (eg. "4", "4C", or "4 channels") + * + * @param channel_layout input channel layout + * @param str string describing the channel layout + * @return 0 channel layout was detected, AVERROR_INVALIDATATA otherwise + */ +int av_channel_layout_from_string(AVChannelLayout *channel_layout, + const char *str); + +/** + * Get the default channel layout for a given number of channels. + * + * @param channel_layout the layout structure to be initialized + * @param nb_channels number of channels + */ +void av_channel_layout_default(AVChannelLayout *ch_layout, int nb_channels); + +/** + * Iterate over all standard channel layouts. + * + * @param opaque a pointer where libavutil will store the iteration state. Must + * point to NULL to start the iteration. + * + * @return the standard channel layout or NULL when the iteration is + * finished + */ +const AVChannelLayout *av_channel_layout_standard(void **opaque); + +/** + * Free any allocated data in the channel layout and reset the channel + * count to 0. + * + * @param channel_layout the layout structure to be uninitialized + */ +void av_channel_layout_uninit(AVChannelLayout *channel_layout); + +/** + * Make a copy of a channel layout. This differs from just assigning src to dst + * in that it allocates and copies the map for AV_CHANNEL_ORDER_CUSTOM. + * + * @note the destination channel_layout will be always uninitialized before copy. + * + * @param dst destination channel layout + * @param src source channel layout + * @return 0 on success, a negative AVERROR on error. + */ +int av_channel_layout_copy(AVChannelLayout *dst, const AVChannelLayout *src); + +/** + * Get a human-readable string describing the channel layout properties. + * The string will be in the same format that is accepted by + * @ref av_channel_layout_from_string(). + * + * @param channel_layout channel layout to be described + * @param buf pre-allocated buffer where to put the generated string + * @param buf_size size in bytes of the buffer. + * @return amount of bytes needed to hold the output string, or a negative AVERROR + * on failure. If the returned value is bigger than buf_size, then the + * string was truncated. + */ +int av_channel_layout_describe(const AVChannelLayout *channel_layout, + char *buf, size_t buf_size); + +/** + * bprint variant of av_channel_layout_describe(). + * + * @return 0 on success, or a negative AVERROR value on failure. + */ +int av_channel_layout_describe_bprint(const AVChannelLayout *channel_layout, + struct AVBPrint *bp); + +/** + * Get the channel with the given index in a channel layout. + * + * @param channel_layout input channel layout + * @return channel with the index idx in channel_layout on success or + * AV_CHAN_NONE on failure (if idx is not valid or the channel order is + * unspecified) + */ +enum AVChannel +av_channel_layout_channel_from_index(const AVChannelLayout *channel_layout, unsigned int idx); + +/** + * Get the index of a given channel in a channel layout. In case multiple + * channels are found, only the first match will be returned. + * + * @param channel_layout input channel layout + * @return index of channel in channel_layout on success or a negative number if + * channel is not present in channel_layout. + */ +int av_channel_layout_index_from_channel(const AVChannelLayout *channel_layout, + enum AVChannel channel); + +/** + * Get the index in a channel layout of a channel described by the given string. + * In case multiple channels are found, only the first match will be returned. + * + * This function accepts channel names in the same format as + * @ref av_channel_from_string(). + * + * @param channel_layout input channel layout + * @return a channel index described by the given string, or a negative AVERROR + * value. + */ +int av_channel_layout_index_from_string(const AVChannelLayout *channel_layout, + const char *name); + +/** + * Get a channel described by the given string. + * + * This function accepts channel names in the same format as + * @ref av_channel_from_string(). + * + * @param channel_layout input channel layout + * @return a channel described by the given string, or a negative AVERROR value. + */ +int av_channel_layout_channel_from_string(const AVChannelLayout *channel_layout, + const char *name); + +/** + * Find out what channels from a given set are present in a channel layout, + * without regard for their positions. + * + * @param channel_layout input channel layout + * @param mask a combination of AV_CH_* representing a set of channels + * @return a bitfield representing all the channels from mask that are present + * in channel_layout + */ +uint64_t av_channel_layout_subset(const AVChannelLayout *channel_layout, + uint64_t mask); + +/** + * Check whether a channel layout is valid, i.e. can possibly describe audio + * data. + * + * @param channel_layout input channel layout + * @return 1 if channel_layout is valid, 0 otherwise. + */ +int av_channel_layout_check(const AVChannelLayout *channel_layout); + +/** + * Check whether two channel layouts are semantically the same, i.e. the same + * channels are present on the same positions in both. + * + * If one of the channel layouts is AV_CHANNEL_ORDER_UNSPEC, while the other is + * not, they are considered to be unequal. If both are AV_CHANNEL_ORDER_UNSPEC, + * they are considered equal iff the channel counts are the same in both. + * + * @param chl input channel layout + * @param chl1 input channel layout + * @return 0 if chl and chl1 are equal, 1 if they are not equal. A negative + * AVERROR code if one or both are invalid. + */ +int av_channel_layout_compare(const AVChannelLayout *chl, const AVChannelLayout *chl1); /** * @} diff --git a/libavutil/version.h b/libavutil/version.h index 953aac9d94..4da667b923 100644 --- a/libavutil/version.h +++ b/libavutil/version.h @@ -110,6 +110,7 @@ #define FF_API_COLORSPACE_NAME (LIBAVUTIL_VERSION_MAJOR < 58) #define FF_API_AV_MALLOCZ_ARRAY (LIBAVUTIL_VERSION_MAJOR < 58) #define FF_API_FIFO_PEEK2 (LIBAVUTIL_VERSION_MAJOR < 58) +#define FF_API_OLD_CHANNEL_LAYOUT (LIBAVUTIL_VERSION_MAJOR < 58) /** * @} From patchwork Thu Jan 13 01:49: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: 33292 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp12515iog; Wed, 12 Jan 2022 17:52:40 -0800 (PST) X-Google-Smtp-Source: ABdhPJzAyL9+Mn+oyni93avGUeMAPBU7xXcOhSqFkXZDA6roeKhbVowZa94JV5+BW1bXY3Bk96ja X-Received: by 2002:a17:906:6a90:: with SMTP id p16mr1828576ejr.115.1642038760708; Wed, 12 Jan 2022 17:52:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642038760; cv=none; d=google.com; s=arc-20160816; b=t5/1Rf2B4zNmxpRRP4ADiXCNyOlDUlMBv7+fA7KDbNmu4ooLWmZaSiXK8DJm8T9oZK lrK6uNbqfTI8cgqB6ClU6JvHtj0OBQoFdHpFxqeQuMqUoAIWfKZXkq/t1dE95M1cxAgN gDfEVIad4K1NsOAQHXbIPjjAf7bOAQEj4wPWv/zlsWMj0ljkDmwjW+mWsCKapI3HDC2A lzND2lj7zngpwWE8ckDE5RomQrCiOt1Ph1UmEbciBcFyDNRzDM7PJ0B1v0w2dlC/eTmY feLv/5/gm4G5SPUfnwJsmojJKj3oEKsnyutN1QsDcAuvoOfLHBFTFYapFAuH79IqF/J0 nodg== 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=GcL1OdBsjdm/3XxAVHPk5iuP5MXH97FNKzfBWD8KaHk=; b=CHaK1mVX/AG5S6spaQ5YME/BwBbIggpadyIu1ydNXyWKADZwn2jAfZxcVB+MN/AR0C NM7WBRodQFmAT6DIfOClplIaJRw8VQ+1GewIratkAc5LbRybjTbGD2TUQwgKXyYzPwxH /oiOYyc+L9EaS+1ntt6e0sqJgyQzrdPQABJJr+hvuT5jyrIzyS/RfamzadOboFocqGb8 varM/yQ6A/m4E2x0IcS0pMlnIqktmrBhVFq/ovQk3ogVP8WgijjomELbCtIDylutBLxe xULGFupGJDrFQmNQAfhupuW/jeFZi5rCi+KcoFrKBVHcyAza90VSDd8cRDogeXWE5CO/ z0wA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=C5Q1lTMV; 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 n2si669853ejl.861.2022.01.12.17.52.40; Wed, 12 Jan 2022 17:52:40 -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=C5Q1lTMV; 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 53A6E68AEE7; Thu, 13 Jan 2022 03:52:09 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f172.google.com (mail-qt1-f172.google.com [209.85.160.172]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B242C68ADAB for ; Thu, 13 Jan 2022 03:52:02 +0200 (EET) Received: by mail-qt1-f172.google.com with SMTP id bp39so5296324qtb.6 for ; Wed, 12 Jan 2022 17:52:02 -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=1e3i76S6h/NizcgJUx0DqbqR29AGDgDpxlZRWsc34BA=; b=C5Q1lTMV4txA4sY4AqOEayjaBllwExdMaKotXpyS62/egRJsejMNY+3TagPtedJjdd BrBOnddhHcJqgtbnbYnZtGpuisCfji+FOt3vhs3eJ+G/pvJDr8D+x0pUtT8+5oWAOniN gnYtpdpGRcCW13191hSr+uQn2ixmr6Mfes92sWA0Xx2pyLDNDpz2fvsGthSzQ7200OTs TrF9UsK8KlWrZH0sFwABPJWFw0fBQNJJyoUYPGWFWyvQg4dx3VpIpFuvTldLLMtbR8nk jNTHqKVB0CQtL+wJTTcIZU8xDyCXzeYQAMDT67P4O3HXLTZze3oUg5rWpjSRzTwarMxM Pj1Q== 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=1e3i76S6h/NizcgJUx0DqbqR29AGDgDpxlZRWsc34BA=; b=b04/HiqY0UelEcKWE2zzKnex9cGuht95hBNEArVYgJWLiBTsJsMIHo44rF5KVkisxr qSxqA9slXm1H7ghsyw3m0JFtG9jvPsX/aVQ/CMe39/T6bgjV3T/DERyRj93gx1LAQqsq hdBb/3YOFsIsQ0M6j0CYDiViWjM0A3FWvyGeqUTw8ntXlknV3mLx7j1T2yj3KZ1tii0N CKuKr3cdFLMRC35w7a4vcR1n073lkMGPoBMoGeJwoN0u2lRXasFimJ38VqrsrlaAgefM 6z/I1m4qGYlVwtHM7oWV0/GaZT4xvVZlysE5U+W8C2oIY9JjGydnA8vR+MTiHTHfwHgt 09jQ== X-Gm-Message-State: AOAM533XHjIcIv0DrCKvFWhwPi/v2utLyKngCPSq9uoPYswcpsUZzZLL SNHxHXYrLYsVAGNk7cIwv7CQ71KfbUw= X-Received: by 2002:a05:622a:149:: with SMTP id v9mr1987955qtw.183.1642038720062; Wed, 12 Jan 2022 17:52:00 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.51.58 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:51:59 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:24 -0300 Message-Id: <20220113015101.4-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 002/281] fate: add a channel_layout API test 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: gfw9gxRhqFDA Signed-off-by: James Almer --- libavutil/Makefile | 1 + libavutil/tests/channel_layout.c | 233 +++++++++++++++++++++++++++++++ tests/fate/libavutil.mak | 4 + tests/ref/fate/channel_layout | 98 +++++++++++++ 4 files changed, 336 insertions(+) create mode 100644 libavutil/tests/channel_layout.c create mode 100644 tests/ref/fate/channel_layout diff --git a/libavutil/Makefile b/libavutil/Makefile index d17876df1a..8e14d4cf3d 100644 --- a/libavutil/Makefile +++ b/libavutil/Makefile @@ -220,6 +220,7 @@ TESTPROGS = adler32 \ bprint \ cast5 \ camellia \ + channel_layout \ color_utils \ cpu \ crc \ diff --git a/libavutil/tests/channel_layout.c b/libavutil/tests/channel_layout.c new file mode 100644 index 0000000000..7e6be0be17 --- /dev/null +++ b/libavutil/tests/channel_layout.c @@ -0,0 +1,233 @@ +/* + * Copyright (c) 2021 James Almer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "libavutil/channel_layout.c" + +#define CHANNEL_LAYOUT_FROM_MASK(layout, x) \ + av_channel_layout_uninit(&layout); \ + if (!av_channel_layout_from_mask(&layout, x)) \ + av_channel_layout_describe_bprint(&layout, &bp); + +#define CHANNEL_LAYOUT_FROM_STRING(layout, x) \ + av_channel_layout_uninit(&layout); \ + if (!av_channel_layout_from_string(&layout, x)) \ + av_channel_layout_describe_bprint(&layout, &bp); + +#define CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(layout, x) \ + ret = av_channel_layout_channel_from_index(&layout, x); \ + if (ret < 0) \ + ret = -1 + +#define CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(layout, x) \ + ret = av_channel_layout_index_from_channel(&layout, x); \ + if (ret < 0) \ + ret = -1 + +#define CHANNEL_LAYOUT_CHANNEL_FROM_STRING(layout, x) \ + ret = av_channel_layout_channel_from_string(&layout, x); \ + if (ret < 0) \ + ret = -1 + +#define CHANNEL_LAYOUT_INDEX_FROM_STRING(layout, x) \ + ret = av_channel_layout_index_from_string(&layout, x); \ + if (ret < 0) \ + ret = -1 + +int main(void) +{ + AVChannelLayout surround = { 0 }; + AVChannelLayout custom = { 0 }; + AVBPrint bp; + int ret; + + av_bprint_init(&bp, 64, AV_BPRINT_SIZE_AUTOMATIC); + + printf("Testing av_channel_name\n"); + av_channel_name_bprint(&bp, AV_CHAN_FRONT_LEFT); + printf("With AV_CHAN_FRONT_LEFT: %27s\n", bp.str); + av_channel_name_bprint(&bp, AV_CHAN_FRONT_RIGHT); + printf("With AV_CHAN_FRONT_RIGHT: %26s\n", bp.str); + av_channel_name_bprint(&bp, 63); + printf("With 63: %43s\n", bp.str); + + printf("Testing av_channel_description\n"); + av_channel_description_bprint(&bp, AV_CHAN_FRONT_LEFT); + printf("With AV_CHAN_FRONT_LEFT: %27s\n", bp.str); + av_channel_description_bprint(&bp, AV_CHAN_FRONT_RIGHT); + printf("With AV_CHAN_FRONT_RIGHT: %26s\n", bp.str); + av_channel_description_bprint(&bp, 63); + printf("With 63: %43s\n", bp.str); + + printf("\nTesting av_channel_from_string\n"); + printf("With \"FL\": %41d\n", av_channel_from_string("FL")); + printf("With \"FR\": %41d\n", av_channel_from_string("FR")); + printf("With \"USR63\": %38d\n", av_channel_from_string("USR63")); + + printf("\n==Native layouts==\n"); + + printf("\nTesting av_channel_layout_from_string\n"); + CHANNEL_LAYOUT_FROM_STRING(surround, "0x3f"); + printf("With \"0x3f\": %39s\n", bp.str); + CHANNEL_LAYOUT_FROM_STRING(surround, "6c"); + printf("With \"6c\": %41s\n", bp.str); + CHANNEL_LAYOUT_FROM_STRING(surround, "6C"); + printf("With \"6C\": %41s\n", bp.str); + CHANNEL_LAYOUT_FROM_STRING(surround, "6"); + printf("With \"6\": %42s\n", bp.str); + CHANNEL_LAYOUT_FROM_STRING(surround, "6 channels"); + printf("With \"6 channels\": %33s\n", bp.str); + CHANNEL_LAYOUT_FROM_STRING(surround, "FL+FR+FC+LFE+BL+BR"); + printf("With \"FL+FR+FC+LFE+BL+BR\": %25s\n", bp.str); + CHANNEL_LAYOUT_FROM_STRING(surround, "5.1"); + printf("With \"5.1\": %40s\n", bp.str); + CHANNEL_LAYOUT_FROM_STRING(surround, "FL+FR+USR63"); + printf("With \"FL+FR+USR63\": %32s\n", bp.str); + CHANNEL_LAYOUT_FROM_STRING(surround, "FL+FR+FC+LFE+SL+SR"); + printf("With \"FL+FR+FC+LFE+SL+SR\": %25s\n", bp.str); + CHANNEL_LAYOUT_FROM_STRING(surround, "5.1(side)"); + printf("With \"5.1(side)\": %34s\n", bp.str); + + printf("\nTesting av_channel_layout_from_mask\n"); + CHANNEL_LAYOUT_FROM_MASK(surround, AV_CH_LAYOUT_5POINT1); + printf("With AV_CH_LAYOUT_5POINT1: %25s\n", bp.str); + + printf("\nTesting av_channel_layout_channel_from_index\n"); + CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(surround, 0); + printf("On 5.1(side) layout with 0: %24d\n", ret); + CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(surround, 1); + printf("On 5.1(side) layout with 1: %24d\n", ret); + CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(surround, 2); + printf("On 5.1(side) layout with 2: %24d\n", ret); + CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(surround, 3); + printf("On 5.1(side) layout with 3: %24d\n", ret); + CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(surround, 4); + printf("On 5.1(side) layout with 4: %24d\n", ret); + CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(surround, 5); + printf("On 5.1(side) layout with 5: %24d\n", ret); + CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(surround, 6); + printf("On 5.1(side) layout with 6: %24d\n", ret); + + printf("\nTesting av_channel_layout_index_from_channel\n"); + CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(surround, AV_CHAN_FRONT_LEFT); + printf("On 5.1(side) layout with AV_CHAN_FRONT_LEFT: %7d\n", ret); + CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(surround, AV_CHAN_FRONT_RIGHT); + printf("On 5.1(side) layout with AV_CHAN_FRONT_RIGHT: %6d\n", ret); + CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(surround, AV_CHAN_FRONT_CENTER); + printf("On 5.1(side) layout with AV_CHAN_FRONT_CENTER: %5d\n", ret); + CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(surround, AV_CHAN_LOW_FREQUENCY); + printf("On 5.1(side) layout with AV_CHAN_LOW_FREQUENCY: %4d\n", ret); + CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(surround, AV_CHAN_SIDE_LEFT); + printf("On 5.1(side) layout with AV_CHAN_SIDE_LEFT: %8d\n", ret); + CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(surround, AV_CHAN_SIDE_RIGHT); + printf("On 5.1(side) layout with AV_CHAN_SIDE_RIGHT: %7d\n", ret); + CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(surround, AV_CHAN_BACK_CENTER); + printf("On 5.1(side) layout with AV_CHAN_BACK_CENTER: %6d\n", ret); + + printf("\nTesting av_channel_layout_channel_from_string\n"); + CHANNEL_LAYOUT_CHANNEL_FROM_STRING(surround, "FL"); + printf("On 5.1(side) layout with \"FL\": %21d\n", ret); + CHANNEL_LAYOUT_CHANNEL_FROM_STRING(surround, "FR"); + printf("On 5.1(side) layout with \"FR\": %21d\n", ret); + CHANNEL_LAYOUT_CHANNEL_FROM_STRING(surround, "FC"); + printf("On 5.1(side) layout with \"FC\": %21d\n", ret); + CHANNEL_LAYOUT_CHANNEL_FROM_STRING(surround, "LFE"); + printf("On 5.1(side) layout with \"LFE\": %20d\n", ret); + CHANNEL_LAYOUT_CHANNEL_FROM_STRING(surround, "SL"); + printf("On 5.1(side) layout with \"SL\": %21d\n", ret); + CHANNEL_LAYOUT_CHANNEL_FROM_STRING(surround, "SR"); + printf("On 5.1(side) layout with \"SR\": %21d\n", ret); + CHANNEL_LAYOUT_CHANNEL_FROM_STRING(surround, "BC"); + printf("On 5.1(side) layout with \"BC\": %21d\n", ret); + + printf("\nTesting av_channel_layout_index_from_string\n"); + CHANNEL_LAYOUT_INDEX_FROM_STRING(surround, "FL"); + printf("On 5.1(side) layout with \"FL\": %21d\n", ret); + CHANNEL_LAYOUT_INDEX_FROM_STRING(surround, "FR"); + printf("On 5.1(side) layout with \"FR\": %21d\n", ret); + CHANNEL_LAYOUT_INDEX_FROM_STRING(surround, "FC"); + printf("On 5.1(side) layout with \"FC\": %21d\n", ret); + CHANNEL_LAYOUT_INDEX_FROM_STRING(surround, "LFE"); + printf("On 5.1(side) layout with \"LFE\": %20d\n", ret); + CHANNEL_LAYOUT_INDEX_FROM_STRING(surround, "SL"); + printf("On 5.1(side) layout with \"SL\": %21d\n", ret); + CHANNEL_LAYOUT_INDEX_FROM_STRING(surround, "SR"); + printf("On 5.1(side) layout with \"SR\": %21d\n", ret); + CHANNEL_LAYOUT_INDEX_FROM_STRING(surround, "BC"); + printf("On 5.1(side) layout with \"BC\": %21d\n", ret); + + printf("\n==Custom layouts==\n"); + + printf("\nTesting av_channel_layout_from_string\n"); + CHANNEL_LAYOUT_FROM_STRING(custom, "FL+FR+FC+BL+BR+LFE"); + printf("With \"FL+FR+FC+BL+BR+LFE\": %25s\n", bp.str); + CHANNEL_LAYOUT_FROM_STRING(custom, "FR+FL+USR63"); + printf("With \"FR+FL+USR63\" layout: %25s\n", bp.str); + + av_strlcpy(custom.u.map[2].name, "CUS", sizeof(custom.u.map[2].name)); + printf("\nTesting av_channel_layout_index_from_string\n"); + CHANNEL_LAYOUT_INDEX_FROM_STRING(custom, "FR"); + printf("On \"FR+FL+USR63\" layout with \"FR\": %17d\n", ret); + CHANNEL_LAYOUT_INDEX_FROM_STRING(custom, "FL"); + printf("On \"FR+FL+USR63\" layout with \"FL\": %17d\n", ret); + CHANNEL_LAYOUT_INDEX_FROM_STRING(custom, "USR63"); + printf("On \"FR+FL+USR63\" layout with \"USR63\": %14d\n", ret); + CHANNEL_LAYOUT_INDEX_FROM_STRING(custom, "CUS"); + printf("On \"FR+FL+USR63\" layout with custom label \"CUS\": %3d\n", ret); + CHANNEL_LAYOUT_INDEX_FROM_STRING(custom, "BC"); + printf("On \"FR+FL+USR63\" layout with \"BC\": %17d\n", ret); + + printf("\nTesting av_channel_layout_channel_from_string\n"); + CHANNEL_LAYOUT_CHANNEL_FROM_STRING(custom, "FR"); + printf("On \"FR+FL+USR63\" layout with \"FR\": %17d\n", ret); + CHANNEL_LAYOUT_CHANNEL_FROM_STRING(custom, "FL"); + printf("On \"FR+FL+USR63\" layout with \"FL\": %17d\n", ret); + CHANNEL_LAYOUT_CHANNEL_FROM_STRING(custom, "USR63"); + printf("On \"FR+FL+USR63\" layout with \"USR63\": %14d\n", ret); + CHANNEL_LAYOUT_CHANNEL_FROM_STRING(custom, "CUS"); + printf("On \"FR+FL+USR63\" layout with custom label \"CUS\": %3d\n", ret); + CHANNEL_LAYOUT_CHANNEL_FROM_STRING(custom, "BC"); + printf("On \"FR+FL+USR63\" layout with \"BC\": %17d\n", ret); + + printf("\nTesting av_channel_layout_index_from_channel\n"); + CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(custom, AV_CHAN_FRONT_RIGHT); + printf("On \"FR+FL+USR63\" layout with AV_CHAN_FRONT_RIGHT: %2d\n", ret); + CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(custom, AV_CHAN_FRONT_LEFT); + printf("On \"FR+FL+USR63\" layout with AV_CHAN_FRONT_LEFT: %3d\n", ret); + CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(custom, 63); + printf("On \"FR+FL+USR63\" layout with 63: %19d\n", ret); + CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(custom, AV_CHAN_BACK_CENTER); + printf("On \"FR+FL+USR63\" layout with AV_CHAN_BACK_CENTER: %2d\n", ret); + + printf("\nTesting av_channel_layout_channel_from_index\n"); + CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(custom, 0); + printf("On \"FR+FL+USR63\" layout with 0: %20d\n", ret); + CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(custom, 1); + printf("On \"FR+FL+USR63\" layout with 1: %20d\n", ret); + CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(custom, 2); + printf("On \"FR+FL+USR63\" layout with 2: %20d\n", ret); + CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(custom, 3); + printf("On \"FR+FL+USR63\" layout with 3: %20d\n", ret); + + av_channel_layout_uninit(&surround); + av_channel_layout_uninit(&custom); + av_bprint_finalize(&bp, NULL); + + return 0; +} diff --git a/tests/fate/libavutil.mak b/tests/fate/libavutil.mak index 1ec9ed00ad..c32cf2e706 100644 --- a/tests/fate/libavutil.mak +++ b/tests/fate/libavutil.mak @@ -23,6 +23,10 @@ fate-cast5: libavutil/tests/cast5$(EXESUF) fate-cast5: CMD = run libavutil/tests/cast5$(EXESUF) fate-cast5: CMP = null +FATE_LIBAVUTIL += fate-channel_layout +fate-channel_layout: libavutil/tests/channel_layout$(EXESUF) +fate-channel_layout: CMD = run libavutil/tests/channel_layout$(EXESUF) + FATE_LIBAVUTIL += fate-audio_fifo fate-audio_fifo: libavutil/tests/audio_fifo$(EXESUF) fate-audio_fifo: CMD = run libavutil/tests/audio_fifo$(EXESUF) diff --git a/tests/ref/fate/channel_layout b/tests/ref/fate/channel_layout new file mode 100644 index 0000000000..bac00086d6 --- /dev/null +++ b/tests/ref/fate/channel_layout @@ -0,0 +1,98 @@ +Testing av_channel_name +With AV_CHAN_FRONT_LEFT: FL +With AV_CHAN_FRONT_RIGHT: FR +With 63: USR63 +Testing av_channel_description +With AV_CHAN_FRONT_LEFT: front left +With AV_CHAN_FRONT_RIGHT: front right +With 63: user 63 + +Testing av_channel_from_string +With "FL": 0 +With "FR": 1 +With "USR63": 63 + +==Native layouts== + +Testing av_channel_layout_from_string +With "0x3f": 5.1 +With "6c": 5.1 +With "6C": 6 channels +With "6": 6 channels +With "6 channels": 6 channels +With "FL+FR+FC+LFE+BL+BR": 5.1 +With "5.1": 5.1 +With "FL+FR+USR63": FL+FR+USR63 +With "FL+FR+FC+LFE+SL+SR": 5.1(side) +With "5.1(side)": 5.1(side) + +Testing av_channel_layout_from_mask +With AV_CH_LAYOUT_5POINT1: 5.1(side) + +Testing av_channel_layout_channel_from_index +On 5.1(side) layout with 0: 0 +On 5.1(side) layout with 1: 1 +On 5.1(side) layout with 2: 2 +On 5.1(side) layout with 3: 3 +On 5.1(side) layout with 4: 9 +On 5.1(side) layout with 5: 10 +On 5.1(side) layout with 6: -1 + +Testing av_channel_layout_index_from_channel +On 5.1(side) layout with AV_CHAN_FRONT_LEFT: 0 +On 5.1(side) layout with AV_CHAN_FRONT_RIGHT: 1 +On 5.1(side) layout with AV_CHAN_FRONT_CENTER: 2 +On 5.1(side) layout with AV_CHAN_LOW_FREQUENCY: 3 +On 5.1(side) layout with AV_CHAN_SIDE_LEFT: 4 +On 5.1(side) layout with AV_CHAN_SIDE_RIGHT: 5 +On 5.1(side) layout with AV_CHAN_BACK_CENTER: -1 + +Testing av_channel_layout_channel_from_string +On 5.1(side) layout with "FL": 0 +On 5.1(side) layout with "FR": 1 +On 5.1(side) layout with "FC": 2 +On 5.1(side) layout with "LFE": 3 +On 5.1(side) layout with "SL": 9 +On 5.1(side) layout with "SR": 10 +On 5.1(side) layout with "BC": -1 + +Testing av_channel_layout_index_from_string +On 5.1(side) layout with "FL": 0 +On 5.1(side) layout with "FR": 1 +On 5.1(side) layout with "FC": 2 +On 5.1(side) layout with "LFE": 3 +On 5.1(side) layout with "SL": 4 +On 5.1(side) layout with "SR": 5 +On 5.1(side) layout with "BC": -1 + +==Custom layouts== + +Testing av_channel_layout_from_string +With "FL+FR+FC+BL+BR+LFE": FL+FR+FC+BL+BR+LFE +With "FR+FL+USR63" layout: FR+FL+USR63 + +Testing av_channel_layout_index_from_string +On "FR+FL+USR63" layout with "FR": 0 +On "FR+FL+USR63" layout with "FL": 1 +On "FR+FL+USR63" layout with "USR63": 2 +On "FR+FL+USR63" layout with custom label "CUS": 2 +On "FR+FL+USR63" layout with "BC": -1 + +Testing av_channel_layout_channel_from_string +On "FR+FL+USR63" layout with "FR": 1 +On "FR+FL+USR63" layout with "FL": 0 +On "FR+FL+USR63" layout with "USR63": 63 +On "FR+FL+USR63" layout with custom label "CUS": 63 +On "FR+FL+USR63" layout with "BC": -1 + +Testing av_channel_layout_index_from_channel +On "FR+FL+USR63" layout with AV_CHAN_FRONT_RIGHT: 0 +On "FR+FL+USR63" layout with AV_CHAN_FRONT_LEFT: 1 +On "FR+FL+USR63" layout with 63: 2 +On "FR+FL+USR63" layout with AV_CHAN_BACK_CENTER: -1 + +Testing av_channel_layout_channel_from_index +On "FR+FL+USR63" layout with 0: 1 +On "FR+FL+USR63" layout with 1: 0 +On "FR+FL+USR63" layout with 2: 63 +On "FR+FL+USR63" layout with 3: -1 From patchwork Thu Jan 13 01:49:25 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33293 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp12627iog; Wed, 12 Jan 2022 17:52:52 -0800 (PST) X-Google-Smtp-Source: ABdhPJyWhpyaLvq0412BkU3S/fUmvpV5SNMRGsYrxj70i3HqAClt6l9saaVBYYKt9xC2EOp/UlGl X-Received: by 2002:aa7:cd99:: with SMTP id x25mr2195010edv.249.1642038772598; Wed, 12 Jan 2022 17:52:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642038772; cv=none; d=google.com; s=arc-20160816; b=uhVfaJQhOokxa6NsFzHoOkB6z7By0AnsRN+Uo6MWvXl+WESYEAi6TTa0g8Kv0b0Hbd t5/JmVzt+RtuXRWYhJnELCeGMNXvq5CcHO0guNJF49MEop58eVmOGMCwEvC1cbqne3Qk CEV1/2fzLvftU71Ak0KlmVD+J8GOC8A2SpiIAxax6t5Q6pMRDnBT98EzfS1UP/zUKeEx MA91EPLzpF3EIOR7h/w7uSSchsbUjQo8ej3cgE4VxzhHSpOtkfUcWmiq+hF/2+5zFqbp mN6u8Btij7IhJsC4mnCN4F+hQP8mnxxokLECf82G4aa5E3GaQVEzI3YuAw2k2kFTfXvu W8Kw== 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=hsQNSTCpmKuBmXheTYAlE7xyhuR1xdRX5oRfqCr4fN8=; b=fAIFBrLntkyiy/79DMGUkGQxgwZQq7fjZkG/Z8zLDEqR9dzXG9AkBfodumPfNymfQM T4QZAS2yAUJeJEJAWW1TDQTJo9Y1sj4YGox67d89BvsLjnLib9+K/zPDI2mcOGtl7dsF raQF5gOJXrFPUi0f7so7U24jy3u25nTm+FPdi/SgbM+DaH4ZZ8QwL2vSV0jG0d1bizku ZiRdb9UxclUDBHvk+4KwWareF54EiK6SF7AVWzFTmTE6l2OkY/bVcduO9omOrBoGjfJp TASVH3Xtfz8WhkhjNZeRtXtdI52SnUoXu+AgjUggzVbq/FFP+OrTN5/LatWdyW+M/Ckv ELxw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=pWChc16m; 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 ga19si755686ejc.973.2022.01.12.17.52.51; Wed, 12 Jan 2022 17:52:52 -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=pWChc16m; 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 51E2F68AECE; Thu, 13 Jan 2022 03:52:10 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f178.google.com (mail-qk1-f178.google.com [209.85.222.178]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 619D768AEC1 for ; Thu, 13 Jan 2022 03:52:03 +0200 (EET) Received: by mail-qk1-f178.google.com with SMTP id t66so5557749qkb.4 for ; Wed, 12 Jan 2022 17:52:03 -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=dupXl7+GRge650e0S3SPLreCoD/ml8eihAumdQFX6vk=; b=pWChc16mGlt9jNSL9ckeedXF1qhEIoWVtmvGyoGdeIjaDiMrg9ZkT0/ggqjj97GVqc CFfRTXRE7WS8vi+vOLUYiF6Ne21eunet5XqcDm//YKTrAWVZ7aoCx2bmh946+bMdQ9Qi O73fweoOV10CU4fvjXwca1goYqxoG8ge21LuRaHdeJiPxEi8HmgfZ5mmWT9qWrz33qgc 9wlNwtZtbmuZKbzW5Gxj8GSMRskMAq963N+DeQ03XZKLB6HTcCDgdjE+QAMBs/DMYzu0 +l5RFrxVwGiqH0yRCR26U0CZVTT4dUyDRjgmhSi/PutPCWrm7qftI4J5Cgk2FfAukoOu kU2g== 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=dupXl7+GRge650e0S3SPLreCoD/ml8eihAumdQFX6vk=; b=DiZUhu7wxyjBkNIXKyQDKZAaOHGHCQEuLGyrWO3KXp1/GNi3HXpjj+0a+9iB5eVf5/ 7DEfW/lOy+EHiYfRhPRgwO9TSEGJ8k0BMnOXYyNEUlJXXekacJlRb+o/8cq9+uvizQfr QnirY7rK9ewODtqXfTcBc6lVD7oii77/tFH5t6eCOroNGoCAtfcRH0LCW6gHncrRkd2U XN3lRYVUdmeHI68Y+CnX0vCtaus/MvdPsW70WUxgNl3eKRsXrsoGgdXeEIbGS1aahrlp btScLrkB1Kqs52Qwp2EcxvTrPfoRioj8Ld7Qs9bl/jcFBTjWKTuj2ITYmByn2U5OUH31 q7hg== X-Gm-Message-State: AOAM530DkkdcoXrhDUxpRWazT2Bcluonplb90XauECCDdTyR+gjhNt3W eSwaabRpUtraDcPOVdI9XJ1GTEZcq0g= X-Received: by 2002:a05:620a:d94:: with SMTP id q20mr1767155qkl.403.1642038721487; Wed, 12 Jan 2022 17:52:01 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.00 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:01 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:25 -0300 Message-Id: <20220113015101.4-4-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 003/281] lavu: support AVChannelLayout AVOptions 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: h/rPzJGTJyo3 From: Anton Khirnov Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavutil/opt.c | 126 +++++++++++++++++++++++++++++++++++++++++- libavutil/opt.h | 12 ++++ libavutil/tests/opt.c | 8 +-- tests/ref/fate/opt | 16 +++--- 4 files changed, 149 insertions(+), 13 deletions(-) diff --git a/libavutil/opt.c b/libavutil/opt.c index d951edca9d..445537fbad 100644 --- a/libavutil/opt.c +++ b/libavutil/opt.c @@ -39,6 +39,7 @@ #include "opt.h" #include "samplefmt.h" #include "bprint.h" +#include "version.h" #include @@ -71,7 +72,11 @@ static int read_number(const AVOption *o, const void *dst, double *num, int *den case AV_OPT_TYPE_INT: *intnum = *(int *)dst; return 0; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS case AV_OPT_TYPE_CHANNEL_LAYOUT: +FF_ENABLE_DEPRECATION_WARNINGS +#endif case AV_OPT_TYPE_DURATION: case AV_OPT_TYPE_INT64: case AV_OPT_TYPE_UINT64: @@ -126,7 +131,11 @@ static int write_number(void *obj, const AVOption *o, void *dst, double num, int *(int *)dst = llrint(num / den) * intnum; break; case AV_OPT_TYPE_DURATION: +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS case AV_OPT_TYPE_CHANNEL_LAYOUT: +FF_ENABLE_DEPRECATION_WARNINGS +#endif case AV_OPT_TYPE_INT64:{ double d = num / den; if (intnum == 1 && d == (double)INT64_MAX) { @@ -465,6 +474,16 @@ static int set_string_dict(void *obj, const AVOption *o, const char *val, uint8_ return 0; } +static int set_string_channel_layout(void *obj, const AVOption *o, + const char *val, void *dst) +{ + AVChannelLayout *channel_layout = dst; + av_channel_layout_uninit(channel_layout); + if (!val) + return 0; + return av_channel_layout_from_string(channel_layout, val); +} + int av_opt_set(void *obj, const char *name, const char *val, int search_flags) { int ret = 0; @@ -472,12 +491,17 @@ int av_opt_set(void *obj, const char *name, const char *val, int search_flags) const AVOption *o = av_opt_find2(obj, name, NULL, 0, search_flags, &target_obj); if (!o || !target_obj) return AVERROR_OPTION_NOT_FOUND; +FF_DISABLE_DEPRECATION_WARNINGS if (!val && (o->type != AV_OPT_TYPE_STRING && o->type != AV_OPT_TYPE_PIXEL_FMT && o->type != AV_OPT_TYPE_SAMPLE_FMT && o->type != AV_OPT_TYPE_IMAGE_SIZE && o->type != AV_OPT_TYPE_DURATION && o->type != AV_OPT_TYPE_COLOR && - o->type != AV_OPT_TYPE_CHANNEL_LAYOUT && o->type != AV_OPT_TYPE_BOOL)) +#if FF_API_OLD_CHANNEL_LAYOUT + o->type != AV_OPT_TYPE_CHANNEL_LAYOUT && +#endif + o->type != AV_OPT_TYPE_BOOL)) return AVERROR(EINVAL); +FF_ENABLE_DEPRECATION_WARNINGS if (o->flags & AV_OPT_FLAG_READONLY) return AVERROR(EINVAL); @@ -533,6 +557,8 @@ int av_opt_set(void *obj, const char *name, const char *val, int search_flags) } case AV_OPT_TYPE_COLOR: return set_string_color(obj, o, val, dst); +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS case AV_OPT_TYPE_CHANNEL_LAYOUT: if (!val || !strcmp(val, "none")) { *(int64_t *)dst = 0; @@ -546,6 +572,15 @@ int av_opt_set(void *obj, const char *name, const char *val, int search_flags) return ret; } break; +FF_ENABLE_DEPRECATION_WARNINGS +#endif + case AV_OPT_TYPE_CHLAYOUT: + ret = set_string_channel_layout(obj, o, val, dst); + if (ret < 0) { + av_log(obj, AV_LOG_ERROR, "Unable to parse option value \"%s\" as channel layout\n", val); + ret = AVERROR(EINVAL); + } + return ret; case AV_OPT_TYPE_DICT: return set_string_dict(obj, o, val, dst); } @@ -709,6 +744,8 @@ int av_opt_set_sample_fmt(void *obj, const char *name, enum AVSampleFormat fmt, return set_format(obj, name, fmt, search_flags, AV_OPT_TYPE_SAMPLE_FMT, "sample", AV_SAMPLE_FMT_NB); } +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS int av_opt_set_channel_layout(void *obj, const char *name, int64_t cl, int search_flags) { void *target_obj; @@ -724,6 +761,8 @@ int av_opt_set_channel_layout(void *obj, const char *name, int64_t cl, int searc *(int64_t *)(((uint8_t *)target_obj) + o->offset) = cl; return 0; } +FF_ENABLE_DEPRECATION_WARNINGS +#endif int av_opt_set_dict_val(void *obj, const char *name, const AVDictionary *val, int search_flags) @@ -744,6 +783,22 @@ int av_opt_set_dict_val(void *obj, const char *name, const AVDictionary *val, return 0; } +int av_opt_set_chlayout(void *obj, const char *name, + const AVChannelLayout *channel_layout, + int search_flags) +{ + void *target_obj; + const AVOption *o = av_opt_find2(obj, name, NULL, 0, search_flags, &target_obj); + AVChannelLayout *dst; + + if (!o || !target_obj) + return AVERROR_OPTION_NOT_FOUND; + + dst = (AVChannelLayout*)((uint8_t*)target_obj + o->offset); + + return av_channel_layout_copy(dst, channel_layout); +} + static void format_duration(char *buf, size_t size, int64_t d) { char *e; @@ -872,10 +927,18 @@ int av_opt_get(void *obj, const char *name, int search_flags, uint8_t **out_val) (int)((uint8_t *)dst)[0], (int)((uint8_t *)dst)[1], (int)((uint8_t *)dst)[2], (int)((uint8_t *)dst)[3]); break; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS case AV_OPT_TYPE_CHANNEL_LAYOUT: + i64 = *(int64_t *)dst; ret = snprintf(buf, sizeof(buf), "0x%"PRIx64, i64); break; +FF_ENABLE_DEPRECATION_WARNINGS +#endif + case AV_OPT_TYPE_CHLAYOUT: + ret = av_channel_layout_describe(dst, buf, sizeof(buf)); + break; case AV_OPT_TYPE_DICT: if (!*(AVDictionary **)dst && (search_flags & AV_OPT_ALLOW_NULL)) { *out_val = NULL; @@ -1017,6 +1080,8 @@ int av_opt_get_sample_fmt(void *obj, const char *name, int search_flags, enum AV return get_format(obj, name, search_flags, out_fmt, AV_OPT_TYPE_SAMPLE_FMT, "sample"); } +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS int av_opt_get_channel_layout(void *obj, const char *name, int search_flags, int64_t *cl) { void *dst, *target_obj; @@ -1033,6 +1098,24 @@ int av_opt_get_channel_layout(void *obj, const char *name, int search_flags, int *cl = *(int64_t *)dst; return 0; } +FF_ENABLE_DEPRECATION_WARNINGS +#endif + +int av_opt_get_chlayout(void *obj, const char *name, int search_flags, AVChannelLayout *cl) +{ + void *dst, *target_obj; + const AVOption *o = av_opt_find2(obj, name, NULL, 0, search_flags, &target_obj); + if (!o || !target_obj) + return AVERROR_OPTION_NOT_FOUND; + if (o->type != AV_OPT_TYPE_CHLAYOUT) { + av_log(obj, AV_LOG_ERROR, + "The value for option '%s' is not a channel layout.\n", name); + return AVERROR(EINVAL); + } + + dst = ((uint8_t*)target_obj) + o->offset; + return av_channel_layout_copy(cl, dst); +} int av_opt_get_dict_val(void *obj, const char *name, int search_flags, AVDictionary **out_val) { @@ -1225,7 +1308,12 @@ static void opt_list(void *obj, void *av_log_obj, const char *unit, case AV_OPT_TYPE_COLOR: av_log(av_log_obj, AV_LOG_INFO, "%-12s ", ""); break; + case AV_OPT_TYPE_CHLAYOUT: +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS case AV_OPT_TYPE_CHANNEL_LAYOUT: +FF_ENABLE_DEPRECATION_WARNINGS +#endif av_log(av_log_obj, AV_LOG_INFO, "%-12s ", ""); break; case AV_OPT_TYPE_BOOL: @@ -1282,6 +1370,7 @@ static void opt_list(void *obj, void *av_log_obj, const char *unit, opt->type == AV_OPT_TYPE_IMAGE_SIZE || opt->type == AV_OPT_TYPE_STRING || opt->type == AV_OPT_TYPE_DICT || + opt->type == AV_OPT_TYPE_CHLAYOUT || opt->type == AV_OPT_TYPE_VIDEO_RATE) && !opt->default_val.str)) { av_log(av_log_obj, AV_LOG_INFO, " (default "); @@ -1334,11 +1423,16 @@ static void opt_list(void *obj, void *av_log_obj, const char *unit, case AV_OPT_TYPE_STRING: case AV_OPT_TYPE_DICT: case AV_OPT_TYPE_VIDEO_RATE: + case AV_OPT_TYPE_CHLAYOUT: av_log(av_log_obj, AV_LOG_INFO, "\"%s\"", opt->default_val.str); break; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS case AV_OPT_TYPE_CHANNEL_LAYOUT: av_log(av_log_obj, AV_LOG_INFO, "0x%"PRIx64, opt->default_val.i64); break; +FF_ENABLE_DEPRECATION_WARNINGS +#endif } av_log(av_log_obj, AV_LOG_INFO, ")"); } @@ -1388,7 +1482,11 @@ void av_opt_set_defaults2(void *s, int mask, int flags) case AV_OPT_TYPE_INT64: case AV_OPT_TYPE_UINT64: case AV_OPT_TYPE_DURATION: +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS case AV_OPT_TYPE_CHANNEL_LAYOUT: +FF_ENABLE_DEPRECATION_WARNINGS +#endif case AV_OPT_TYPE_PIXEL_FMT: case AV_OPT_TYPE_SAMPLE_FMT: write_number(s, opt, dst, 1, 1, opt->default_val.i64); @@ -1421,6 +1519,9 @@ void av_opt_set_defaults2(void *s, int mask, int flags) case AV_OPT_TYPE_BINARY: set_string_binary(s, opt, opt->default_val.str, dst); break; + case AV_OPT_TYPE_CHLAYOUT: + set_string_channel_layout(s, opt, opt->default_val.str, dst); + break; case AV_OPT_TYPE_DICT: set_string_dict(s, opt, opt->default_val.str, dst); break; @@ -1745,7 +1846,11 @@ static int opt_size(enum AVOptionType type) case AV_OPT_TYPE_FLAGS: return sizeof(int); case AV_OPT_TYPE_DURATION: +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS case AV_OPT_TYPE_CHANNEL_LAYOUT: +FF_ENABLE_DEPRECATION_WARNINGS +#endif case AV_OPT_TYPE_INT64: case AV_OPT_TYPE_UINT64: return sizeof(int64_t); @@ -1819,6 +1924,9 @@ int av_opt_copy(void *dst, const void *src) ret2 = av_dict_copy(ddict, *sdict, 0); if (ret2 < 0) ret = ret2; + } else if (o->type == AV_OPT_TYPE_CHLAYOUT) { + if (field_dst != field_src) + ret = av_channel_layout_copy(field_dst, field_src); } else { int size = opt_size(o->type); if (size < 0) @@ -1882,7 +1990,11 @@ int av_opt_query_ranges_default(AVOptionRanges **ranges_arg, void *obj, const ch case AV_OPT_TYPE_DOUBLE: case AV_OPT_TYPE_DURATION: case AV_OPT_TYPE_COLOR: +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS case AV_OPT_TYPE_CHANNEL_LAYOUT: +FF_ENABLE_DEPRECATION_WARNINGS +#endif break; case AV_OPT_TYPE_STRING: range->component_min = 0; @@ -1962,12 +2074,24 @@ int av_opt_is_set_to_default(void *obj, const AVOption *o) case AV_OPT_TYPE_PIXEL_FMT: case AV_OPT_TYPE_SAMPLE_FMT: case AV_OPT_TYPE_INT: +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS case AV_OPT_TYPE_CHANNEL_LAYOUT: +FF_ENABLE_DEPRECATION_WARNINGS +#endif case AV_OPT_TYPE_DURATION: case AV_OPT_TYPE_INT64: case AV_OPT_TYPE_UINT64: read_number(o, dst, NULL, NULL, &i64); return o->default_val.i64 == i64; + case AV_OPT_TYPE_CHLAYOUT: { + AVChannelLayout ch_layout = { 0 }; + if (o->default_val.str) { + if ((ret = av_channel_layout_from_string(&ch_layout, o->default_val.str)) < 0) + return ret; + } + return !av_channel_layout_compare((AVChannelLayout *)dst, &ch_layout); + } case AV_OPT_TYPE_STRING: str = *(char **)dst; if (str == o->default_val.str) //2 NULLs diff --git a/libavutil/opt.h b/libavutil/opt.h index 2820435eec..461b5d3b6b 100644 --- a/libavutil/opt.h +++ b/libavutil/opt.h @@ -29,6 +29,7 @@ #include "rational.h" #include "avutil.h" +#include "channel_layout.h" #include "dict.h" #include "log.h" #include "pixfmt.h" @@ -237,8 +238,11 @@ enum AVOptionType{ AV_OPT_TYPE_VIDEO_RATE, ///< offset must point to AVRational AV_OPT_TYPE_DURATION, AV_OPT_TYPE_COLOR, +#if FF_API_OLD_CHANNEL_LAYOUT AV_OPT_TYPE_CHANNEL_LAYOUT, +#endif AV_OPT_TYPE_BOOL, + AV_OPT_TYPE_CHLAYOUT, }; /** @@ -693,7 +697,11 @@ int av_opt_set_image_size(void *obj, const char *name, int w, int h, int search_ int av_opt_set_pixel_fmt (void *obj, const char *name, enum AVPixelFormat fmt, int search_flags); int av_opt_set_sample_fmt(void *obj, const char *name, enum AVSampleFormat fmt, int search_flags); int av_opt_set_video_rate(void *obj, const char *name, AVRational val, int search_flags); +#if FF_API_OLD_CHANNEL_LAYOUT +attribute_deprecated int av_opt_set_channel_layout(void *obj, const char *name, int64_t ch_layout, int search_flags); +#endif +int av_opt_set_chlayout(void *obj, const char *name, const AVChannelLayout *layout, int search_flags); /** * @note Any old dictionary present is discarded and replaced with a copy of the new one. The * caller still owns val is and responsible for freeing it. @@ -748,7 +756,11 @@ int av_opt_get_image_size(void *obj, const char *name, int search_flags, int *w_ int av_opt_get_pixel_fmt (void *obj, const char *name, int search_flags, enum AVPixelFormat *out_fmt); int av_opt_get_sample_fmt(void *obj, const char *name, int search_flags, enum AVSampleFormat *out_fmt); int av_opt_get_video_rate(void *obj, const char *name, int search_flags, AVRational *out_val); +#if FF_API_OLD_CHANNEL_LAYOUT +attribute_deprecated int av_opt_get_channel_layout(void *obj, const char *name, int search_flags, int64_t *ch_layout); +#endif +int av_opt_get_chlayout(void *obj, const char *name, int search_flags, AVChannelLayout *layout); /** * @param[out] out_val The returned dictionary is a copy of the actual value and must * be freed with av_dict_free() by the caller diff --git a/libavutil/tests/opt.c b/libavutil/tests/opt.c index e6ea892373..5799e45c6a 100644 --- a/libavutil/tests/opt.c +++ b/libavutil/tests/opt.c @@ -41,7 +41,7 @@ typedef struct TestContext { enum AVSampleFormat sample_fmt; int64_t duration; uint8_t color[4]; - int64_t channel_layout; + AVChannelLayout channel_layout; void *binary; int binary_size; void *binary1; @@ -81,7 +81,7 @@ static const AVOption test_options[]= { {"video_rate", "set videorate", OFFSET(video_rate), AV_OPT_TYPE_VIDEO_RATE, { .str = "25" }, 0, INT_MAX, 1 }, {"duration", "set duration", OFFSET(duration), AV_OPT_TYPE_DURATION, { .i64 = 1000 }, 0, INT64_MAX, 1 }, {"color", "set color", OFFSET(color), AV_OPT_TYPE_COLOR, { .str = "pink" }, 0, 0, 1 }, - {"cl", "set channel layout", OFFSET(channel_layout), AV_OPT_TYPE_CHANNEL_LAYOUT, { .i64 = AV_CH_LAYOUT_HEXAGONAL }, 0, INT64_MAX, 1 }, + {"cl", "set channel layout", OFFSET(channel_layout), AV_OPT_TYPE_CHLAYOUT, { .str = "hexagonal" }, 0, 0, 1 }, {"bin", "set binary value", OFFSET(binary), AV_OPT_TYPE_BINARY, { .str="62696e00" }, 0, 0, 1 }, {"bin1", "set binary value", OFFSET(binary1), AV_OPT_TYPE_BINARY, { .str=NULL }, 0, 0, 1 }, {"bin2", "set binary value", OFFSET(binary2), AV_OPT_TYPE_BINARY, { .str="" }, 0, 0, 1 }, @@ -138,7 +138,7 @@ int main(void) printf("sample_fmt=%s\n", av_get_sample_fmt_name(test_ctx.sample_fmt)); printf("duration=%"PRId64"\n", test_ctx.duration); printf("color=%d %d %d %d\n", test_ctx.color[0], test_ctx.color[1], test_ctx.color[2], test_ctx.color[3]); - printf("channel_layout=%"PRId64"=%"PRId64"\n", test_ctx.channel_layout, (int64_t)AV_CH_LAYOUT_HEXAGONAL); + printf("channel_layout=%"PRId64"=%"PRId64"\n", test_ctx.channel_layout.u.mask, (int64_t)AV_CH_LAYOUT_HEXAGONAL); if (test_ctx.binary) printf("binary=%x %x %x %x\n", ((uint8_t*)test_ctx.binary)[0], ((uint8_t*)test_ctx.binary)[1], ((uint8_t*)test_ctx.binary)[2], ((uint8_t*)test_ctx.binary)[3]); printf("binary_size=%d\n", test_ctx.binary_size); @@ -280,7 +280,7 @@ int main(void) "color=blue", "color=0x223300", "color=0x42FF07AA", - "cl=stereo+downmix", + "cl=FL+FR", "cl=foo", "bin=boguss", "bin=111", diff --git a/tests/ref/fate/opt b/tests/ref/fate/opt index aac3fa0e7e..832f9cc8a9 100644 --- a/tests/ref/fate/opt +++ b/tests/ref/fate/opt @@ -33,7 +33,7 @@ TestContext AVOptions: -video_rate E.......... set videorate (default "25") -duration E.......... set duration (default 0.001) -color E.......... set color (default "pink") - -cl E.......... set channel layout (default 0x137) + -cl E.......... set channel layout (default "hexagonal") -bin E.......... set binary value -bin1 E.......... set binary value -bin2 E.......... set binary value @@ -115,7 +115,7 @@ name: sample_fmt get: s16 set: OK get: s16 name: video_rate get: 25/1 set: OK get: 25/1 OK name: duration get: 0.001 set: OK get: 0.001 OK name: color get: 0xffc0cbff set: OK get: 0xffc0cbff OK -name: cl get: 0x137 set: OK get: 0x137 OK +name: cl get: hexagonal set: OK get: hexagonal OK name: bin get: 62696E00 set: OK get: 62696E00 OK name: bin1 get: set: OK get: OK name: bin2 get: set: OK get: OK @@ -129,7 +129,7 @@ name: dict1 get: set: OK get: name: dict2 get: happy=\:-) set: OK get: happy=\:-) OK Test av_opt_serialize() -num=0,toggle=1,rational=1/1,string=default,escape=\\\=\,,flags=0x00000001,size=200x300,pix_fmt=0bgr,sample_fmt=s16,video_rate=25/1,duration=0.001,color=0xffc0cbff,cl=0x137,bin=62696E00,bin1=,bin2=,num64=1,flt=0.333333,dbl=0.333333,bool1=auto,bool2=true,bool3=false,dict1=,dict2=happy\=\\:-) +num=0,toggle=1,rational=1/1,string=default,escape=\\\=\,,flags=0x00000001,size=200x300,pix_fmt=0bgr,sample_fmt=s16,video_rate=25/1,duration=0.001,color=0xffc0cbff,cl=hexagonal,bin=62696E00,bin1=,bin2=,num64=1,flt=0.333333,dbl=0.333333,bool1=auto,bool2=true,bool3=false,dict1=,dict2=happy\=\\:-) Setting entry with key 'num' to value '0' Setting entry with key 'toggle' to value '1' Setting entry with key 'rational' to value '1/1' @@ -142,7 +142,7 @@ Setting entry with key 'sample_fmt' to value 's16' Setting entry with key 'video_rate' to value '25/1' Setting entry with key 'duration' to value '0.001' Setting entry with key 'color' to value '0xffc0cbff' -Setting entry with key 'cl' to value '0x137' +Setting entry with key 'cl' to value 'hexagonal' Setting entry with key 'bin' to value '62696E00' Setting entry with key 'bin1' to value '' Setting entry with key 'bin2' to value '' @@ -154,7 +154,7 @@ Setting entry with key 'bool2' to value 'true' Setting entry with key 'bool3' to value 'false' Setting entry with key 'dict1' to value '' Setting entry with key 'dict2' to value 'happy=\:-)' -num=0,toggle=1,rational=1/1,string=default,escape=\\\=\,,flags=0x00000001,size=200x300,pix_fmt=0bgr,sample_fmt=s16,video_rate=25/1,duration=0.001,color=0xffc0cbff,cl=0x137,bin=62696E00,bin1=,bin2=,num64=1,flt=0.333333,dbl=0.333333,bool1=auto,bool2=true,bool3=false,dict1=,dict2=happy\=\\:-) +num=0,toggle=1,rational=1/1,string=default,escape=\\\=\,,flags=0x00000001,size=200x300,pix_fmt=0bgr,sample_fmt=s16,video_rate=25/1,duration=0.001,color=0xffc0cbff,cl=hexagonal,bin=62696E00,bin1=,bin2=,num64=1,flt=0.333333,dbl=0.333333,bool1=auto,bool2=true,bool3=false,dict1=,dict2=happy\=\\:-) Testing av_set_options_string() Setting options string '' @@ -296,9 +296,9 @@ OK 'color=0x223300' Setting options string 'color=0x42FF07AA' Setting entry with key 'color' to value '0x42FF07AA' OK 'color=0x42FF07AA' -Setting options string 'cl=stereo+downmix' -Setting entry with key 'cl' to value 'stereo+downmix' -OK 'cl=stereo+downmix' +Setting options string 'cl=FL+FR' +Setting entry with key 'cl' to value 'FL+FR' +OK 'cl=FL+FR' Setting options string 'cl=foo' Setting entry with key 'cl' to value 'foo' Unable to parse option value "foo" as channel layout From patchwork Thu Jan 13 01:49:26 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33295 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp12811iog; Wed, 12 Jan 2022 17:53:13 -0800 (PST) X-Google-Smtp-Source: ABdhPJxOB/U012ShLHFqspKdwFRMo4yeU+0zBHlznvBlW//usE4bCBEs+aWenYqcz/PTimVhmszQ X-Received: by 2002:a17:906:abca:: with SMTP id kq10mr1127881ejb.563.1642038793515; Wed, 12 Jan 2022 17:53:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642038793; cv=none; d=google.com; s=arc-20160816; b=z7hlqaRy6PCcnMXjUhIuFIk9wyiWny50+zAQYgMK67ij1411Imk5yIQnyFBSi9pStj jx5fCXU2ME0p9S/QbEIRCs7B1JK4HftlsKqIUsLAmOS7oVLY6qLXBFDq2G9Cg9mfP0GP gIwA9MSMZHGnXsMEwT7tmwL01+GgXItmjkHr2Njd9AzEGG0E7kekMJQJvVH7LrmRPtW2 TaB94q9x0Jzes9YzIYCy342VefC9Skx7tUma6ZQonCgpPNTCnG7FbtrCu41e8MEh9Fv+ SH5N2JpH3TesWKph3WakUNIxfIo/GUipIxiQYzhfN22wJdXlnUlnT9T5m6ZDk3JC/uXl RPww== 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=fmaSjuOtESwhio7kVShkhLdVYOLHLuigkqQ3hz36Buc=; b=w3F+mA//vNsgne2oJ89SLqueOuA3MsoakI578fcGm6wbB/ulkM+YHicDgCW18IWTPb NrNzqhjrrKHnoqCx3n150vGSvY2eFwKRQHdecC8Kdpr/Zey6b1sJVJGW3qG4q684GJxr OzViOIJQdNL3qZqdEV+W+VJ3LPtsG8xR/pV5p4DFLdLN/h2L2Wk1Jnty3Nty/39YGLVt Y47e0f3Og4xFNVljUQ/rRYRhAhK+OwJZdLplgMJq5reT4Ios42md4e8ox21+gQ9jWMQX nLY8/q1hNUKHS588ZBJNw1FrMwKuaDSbCu9ACujuobPkqtaytZMMd25cp+7hM4+NSv1r SNVA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=pXvOtVnv; 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 sc11si837039ejc.65.2022.01.12.17.53.13; Wed, 12 Jan 2022 17:53:13 -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=pXvOtVnv; 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 47B8368AF37; Thu, 13 Jan 2022 03:52:12 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f175.google.com (mail-qk1-f175.google.com [209.85.222.175]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3B84C68AEE7 for ; Thu, 13 Jan 2022 03:52:04 +0200 (EET) Received: by mail-qk1-f175.google.com with SMTP id b127so5624075qkd.0 for ; Wed, 12 Jan 2022 17:52:04 -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=kr5PHjtrcLHXcSwj5WIaSL0lmUp4JjkzaAMBSBeoTXY=; b=pXvOtVnvEhQdwb+CZGH2paYN2SSwjVz5KE7dt+kCXjEpKZ0vJW4JQzSfNa+LRiDyM0 Lep4erqh4IQehONj0IeyBzC1uekmoth/ZhoxMzFm5ZV+HA328V6ZII8aFjLRlwF+Wuc4 vMNDFLaHNqQAbx2Y9qPh9q+ere45c7kaIoCbl7YQBjrSc2b0WaX5Y68NlIh2lYD8WEdo uGHkrbw3QMsUIz0Fwl6wUKzttgbhmaX4Wg15Pel7kwtWugCoYAmWwebkwMWkAKZSOPvJ tsQ/NuXYxeKQkSPAyMxM4zzujT9FCknIJ2iqTA7p1KiZwgq6Xtoj4uAaj9ruDMj1nHF2 r/YA== 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=kr5PHjtrcLHXcSwj5WIaSL0lmUp4JjkzaAMBSBeoTXY=; b=1CZzlPFgCOblEYpOYIg6Bvs8/tkiH2eN/aICXYgOS391hLFVeYR+voHf0RNBI3XU96 n4g7q513aWIm47wWy2XlNgtkAqqmK/wG0zXmtQyAE3ibxn1Q8iiYsS+Pcv6/2tmMD8M9 lG/YCIIteP1t9RghougrCI86x4lppFAbOj7TsZezT71Ettk0HDVAefzIC+/lj8ZLl6IZ D4L+CHZAA2zAPejHE4IEO8uzBX+htGGs8sJDfuTMsqbIRA9FpWHK/Ff/zmC0Sl59OLGd gkrlxPIGbyZW98+TJPMjb0+/lPo3QNNKV1V0u8CdBUFlJqJXMcn9hDltbGekLg3N6B1B PINg== X-Gm-Message-State: AOAM532qru4LMm40MVg5NSz8aUaG2znUngCt0iW3JC4LXF4ROgZOSp8A NK7coOb3qMNoWNhcH/Q7IclfaQiFyAk= X-Received: by 2002:a05:620a:2589:: with SMTP id x9mr1768746qko.325.1642038722751; Wed, 12 Jan 2022 17:52:02 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.01 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:02 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:26 -0300 Message-Id: <20220113015101.4-5-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 004/281] lavc: deprecate channel count/layout changing side data 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: bNcM4eL3x8+E From: Anton Khirnov They are incompatible with the new channel layout scheme and no decoder uses them. Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavcodec/decode.c | 4 ++++ libavcodec/packet.h | 5 +++++ libavformat/dump.c | 9 ++++++++- libavformat/nutenc.c | 2 ++ libavformat/utils.c | 9 +++++++++ 5 files changed, 28 insertions(+), 1 deletion(-) diff --git a/libavcodec/decode.c b/libavcodec/decode.c index 0912f86a14..60127e95fc 100644 --- a/libavcodec/decode.c +++ b/libavcodec/decode.c @@ -91,6 +91,8 @@ static int apply_param_change(AVCodecContext *avctx, const AVPacket *avpkt) flags = bytestream_get_le32(&data); size -= 4; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS if (flags & AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT) { if (size < 4) goto fail; @@ -109,6 +111,8 @@ static int apply_param_change(AVCodecContext *avctx, const AVPacket *avpkt) avctx->channel_layout = bytestream_get_le64(&data); size -= 8; } +FF_ENABLE_DEPRECATION_WARNINGS +#endif if (flags & AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE) { if (size < 4) goto fail; diff --git a/libavcodec/packet.h b/libavcodec/packet.h index 4a349fe051..0c3729f32c 100644 --- a/libavcodec/packet.h +++ b/libavcodec/packet.h @@ -447,8 +447,13 @@ typedef struct AVPacketList { #define AV_PKT_FLAG_DISPOSABLE 0x0010 enum AVSideDataParamChangeFlags { +#if FF_API_OLD_CHANNEL_LAYOUT + /** + * @deprecated those are not used by any decoder + */ AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT = 0x0001, AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT = 0x0002, +#endif AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE = 0x0004, AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS = 0x0008, }; diff --git a/libavformat/dump.c b/libavformat/dump.c index 4824965ee9..69b838fbc7 100644 --- a/libavformat/dump.c +++ b/libavformat/dump.c @@ -164,8 +164,11 @@ static void dump_paramchange(void *ctx, const AVPacketSideData *sd) { int size = sd->size; const uint8_t *data = sd->data; - uint32_t flags, channels, sample_rate, width, height; + uint32_t flags, sample_rate, width, height; +#if FF_API_OLD_CHANNEL_LAYOUT + uint32_t channels; uint64_t layout; +#endif if (!data || sd->size < 4) goto fail; @@ -174,6 +177,8 @@ static void dump_paramchange(void *ctx, const AVPacketSideData *sd) data += 4; size -= 4; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS if (flags & AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT) { if (size < 4) goto fail; @@ -191,6 +196,8 @@ static void dump_paramchange(void *ctx, const AVPacketSideData *sd) av_log(ctx, AV_LOG_INFO, "channel layout: %s, ", av_get_channel_name(layout)); } +FF_ENABLE_DEPRECATION_WARNINGS +#endif /* FF_API_OLD_CHANNEL_LAYOUT */ if (flags & AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE) { if (size < 4) goto fail; diff --git a/libavformat/nutenc.c b/libavformat/nutenc.c index 585ce953ca..9d5eb4ed99 100644 --- a/libavformat/nutenc.c +++ b/libavformat/nutenc.c @@ -894,6 +894,7 @@ static int write_sm_data(AVFormatContext *s, AVIOContext *bc, AVPacket *pkt, int break; case AV_PKT_DATA_PARAM_CHANGE: flags = bytestream_get_le32(&data); +#if FF_API_OLD_CHANNEL_LAYOUT if (flags & AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT) { put_str(dyn_bc, "Channels"); put_s(dyn_bc, bytestream_get_le32(&data)); @@ -907,6 +908,7 @@ static int write_sm_data(AVFormatContext *s, AVIOContext *bc, AVPacket *pkt, int avio_write(dyn_bc, data, 8); data+=8; sm_data_count++; } +#endif if (flags & AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE) { put_str(dyn_bc, "SampleRate"); put_s(dyn_bc, bytestream_get_le32(&data)); diff --git a/libavformat/utils.c b/libavformat/utils.c index e643821fc9..7468ec301d 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -1328,6 +1328,9 @@ int ff_add_param_change(AVPacket *pkt, int32_t channels, uint8_t *data; if (!pkt) return AVERROR(EINVAL); + +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS if (channels) { size += 4; flags |= AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT; @@ -1336,6 +1339,8 @@ int ff_add_param_change(AVPacket *pkt, int32_t channels, size += 8; flags |= AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT; } +FF_ENABLE_DEPRECATION_WARNINGS +#endif if (sample_rate) { size += 4; flags |= AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE; @@ -1348,10 +1353,14 @@ int ff_add_param_change(AVPacket *pkt, int32_t channels, if (!data) return AVERROR(ENOMEM); bytestream_put_le32(&data, flags); +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS if (channels) bytestream_put_le32(&data, channels); if (channel_layout) bytestream_put_le64(&data, channel_layout); +FF_ENABLE_DEPRECATION_WARNINGS +#endif if (sample_rate) bytestream_put_le32(&data, sample_rate); if (width || height) { From patchwork Thu Jan 13 01:49:27 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33297 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp13013iog; Wed, 12 Jan 2022 17:53:36 -0800 (PST) X-Google-Smtp-Source: ABdhPJzykHnJ7dimdMSw+rgbpZQoW5pYE8RaL5RyE7770XeaS9LCw3sMlq70GgoHLp+x17L/UyIT X-Received: by 2002:a17:906:74d2:: with SMTP id z18mr1881252ejl.528.1642038816357; Wed, 12 Jan 2022 17:53:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642038816; cv=none; d=google.com; s=arc-20160816; b=OnqfT59XrmWEzTJxOeSB5h/2EgbkfHfD1qrMOTBIUDAZPqbVLY89RVxEmTjgy0Tp+e JhqPrAcKUzmysxbYwcw7vz2TPgVeQp8nHqa1I3pvZGo4fpDH3VEkFQ+1ukQ/AaMOEV9j yHeH44WcRFE7pNaAYSvTBEB2DkPDlFUuakpaDo5AFWQ6t0AWEM6FCjykCAffUR2s2Qcp eOcqbm6+WEUn72UhLTiNfDaBT35+rg6VRoGHeO5uVCrFot23as5RvCyJVbrGODNj8xAc IjhQaUJv24X8rrcaKbCNCinI2l32S2Xku4KutSwWeDWty8KSIA5/QgomS0djiFc/ot02 u/FA== 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=L1meX3CvssDlIyDDXONLXswLrTWmIXCGQl3ElWLK4Kk=; b=AzFkepvJFOqBaeBdgDQjUqS7NiYPofwDTJZ+euhjaw692mFVba5Dt48P6qJW9+SYDv pghHscFo+VsSOZL88qKrbmQYnrYtOsoK77Yj0G+ZKwNOhmsWnSuzII3AXY037n/AH4k/ o88tMi9oF/cZZKNPpHT398yO7KRmpt/Sf3CFDrny2c9nLxgrmcg0Z5mqvwE5Yi/mcYm/ DD8ZSyhkTzXOtEGTFoUerIpTN4juIP7dEQhb6UfUf7FMt6/gEL82J4wZNZ9gNsBRNhjx 9n+HFHIzya+xsGUoH8KwXnrLo0OzjnQRgaHyxPOSCPMG2YJv9ygofh5+5zReMA5Xk0fo WJNQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=EXfaU7AT; 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 b4si869330edw.283.2022.01.12.17.53.36; Wed, 12 Jan 2022 17:53:36 -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=EXfaU7AT; 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 E8FC368AF54; Thu, 13 Jan 2022 03:52:13 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f171.google.com (mail-qk1-f171.google.com [209.85.222.171]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9821468ACAE for ; Thu, 13 Jan 2022 03:52:05 +0200 (EET) Received: by mail-qk1-f171.google.com with SMTP id c190so3901625qkg.9 for ; Wed, 12 Jan 2022 17:52:05 -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=G1ajNEdJ2HjeB+GqEtDbzt3KVUiAr7RVhwWKUyUL7nU=; b=EXfaU7AThcd76/IQLfAwQkwu+7Sh5Prd0FTXlwCwnwh5cXIMGZtFw4LihhBtoXGmPA 04qcBlmPfCBKY+/wmYooGD+j1GdMmESLsz2MrYbOhLV6iLtcCVQrvDJTZakHs880i4hb Cd8wyK/stqAXNbDzG9BdTCTifCOqzdydNTBovsnsZP543imEu5vnVx38Q/OryKDYajjt umUWjom/e5w0S1MB178LIRPOIEQVMfkXkQ/Lh64/hrl1oJiQVB+xIyjkqzlIaxixthMk orf1gG9bewkPi8JBQO981JT/Swjt8ltfIiFkDVRnBM4wgaItUhEjZTYqt1mcEIjQBA29 eDEA== 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=G1ajNEdJ2HjeB+GqEtDbzt3KVUiAr7RVhwWKUyUL7nU=; b=VizoOCYbN+61kHQUdiNKUjrWYXwxCflXSZNqXMAGfy3yJA1A2ShSDlWDvAOZ+9EUAf GIBo3p/hhuwlBTQx6g3cyq8+I5YftGjvZKf4XAQehSGtWJux7GIseWB3M1HOr0Yq+SoJ BRINWSp1kGFPL8JHGHpGeceNpldtq8FX77OVf0gSGT7jomwi3CsGk6W+v6+nCfn6fDNc +fzukClAGZK/UPMgswPzYuiuywwA7nTEQlY/eCEoKcSgrWKZXUKplVTCdqTYiTrVJAtb dZbDYMRupOHqBQrOH99vubcwsxj0nOxlp0IrD68HJ8bXAuHhtEJ8saFjKoBZFiPHsVq5 ZtIA== X-Gm-Message-State: AOAM533SgU2JonH+75ctVaoMu2z3IWybgHj1OoJNonjlPiT44XqVJqM5 WQN7PL/TajzPut6iG6uY6oZS8igvYW8= X-Received: by 2002:a05:620a:6:: with SMTP id j6mr1814974qki.294.1642038724009; Wed, 12 Jan 2022 17:52:04 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.02 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:03 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:27 -0300 Message-Id: <20220113015101.4-6-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 005/281] avframe: switch to the 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: ehznomXx/oH0 From: Anton Khirnov Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavutil/frame.c | 116 +++++++++++++++++++++++++++++++++++++--------- libavutil/frame.h | 16 ++++++- 2 files changed, 109 insertions(+), 23 deletions(-) diff --git a/libavutil/frame.c b/libavutil/frame.c index 8997c85e35..6bb72943d1 100644 --- a/libavutil/frame.c +++ b/libavutil/frame.c @@ -28,10 +28,12 @@ #include "samplefmt.h" #include "hwcontext.h" +#if FF_API_OLD_CHANNEL_LAYOUT #define CHECK_CHANNELS_CONSISTENCY(frame) \ av_assert2(!(frame)->channel_layout || \ (frame)->channels == \ av_get_channel_layout_nb_channels((frame)->channel_layout)) +#endif #if FF_API_COLORSPACE_NAME const char *av_get_colorspace_name(enum AVColorSpace val) @@ -186,18 +188,27 @@ fail: static int get_audio_buffer(AVFrame *frame, int align) { - int channels; int planar = av_sample_fmt_is_planar(frame->format); - int planes; + int channels, planes; int ret, i; - if (!frame->channels) - frame->channels = av_get_channel_layout_nb_channels(frame->channel_layout); - - channels = frame->channels; - planes = planar ? channels : 1; - - CHECK_CHANNELS_CONSISTENCY(frame); +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + if (!frame->ch_layout.nb_channels) { + if (frame->channel_layout) { + av_channel_layout_from_mask(&frame->ch_layout, frame->channel_layout); + } else { + frame->ch_layout.nb_channels = frame->channels; + frame->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + } + } + frame->channels = frame->ch_layout.nb_channels; + frame->channel_layout = frame->ch_layout.order == AV_CHANNEL_ORDER_NATIVE ? + frame->ch_layout.u.mask : 0; +FF_ENABLE_DEPRECATION_WARNINGS +#endif + channels = frame->ch_layout.nb_channels; + planes = planar ? channels : 1; if (!frame->linesize[0]) { ret = av_samples_get_buffer_size(&frame->linesize[0], channels, frame->nb_samples, frame->format, @@ -245,10 +256,17 @@ int av_frame_get_buffer(AVFrame *frame, int align) if (frame->format < 0) return AVERROR(EINVAL); +FF_DISABLE_DEPRECATION_WARNINGS if (frame->width > 0 && frame->height > 0) return get_video_buffer(frame, align); - else if (frame->nb_samples > 0 && (frame->channel_layout || frame->channels > 0)) + else if (frame->nb_samples > 0 && + (av_channel_layout_check(&frame->ch_layout) +#if FF_API_OLD_CHANNEL_LAYOUT + || frame->channel_layout || frame->channels > 0 +#endif + )) return get_audio_buffer(frame, align); +FF_ENABLE_DEPRECATION_WARNINGS return AVERROR(EINVAL); } @@ -332,14 +350,33 @@ int av_frame_ref(AVFrame *dst, const AVFrame *src) dst->format = src->format; dst->width = src->width; dst->height = src->height; + dst->nb_samples = src->nb_samples; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS dst->channels = src->channels; dst->channel_layout = src->channel_layout; - dst->nb_samples = src->nb_samples; + if (!av_channel_layout_check(&src->ch_layout)) { + if (src->channel_layout) + av_channel_layout_from_mask(&dst->ch_layout, src->channel_layout); + else { + dst->ch_layout.nb_channels = src->channels; + dst->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + } + } +FF_ENABLE_DEPRECATION_WARNINGS +#endif ret = frame_copy_props(dst, src, 0); if (ret < 0) goto fail; + // this check is needed only until FF_API_OLD_CHANNEL_LAYOUT is out + if (av_channel_layout_check(&src->ch_layout)) { + ret = av_channel_layout_copy(&dst->ch_layout, &src->ch_layout); + if (ret < 0) + goto fail; + } + /* duplicate the frame data if it's not refcounted */ if (!src->buf[0]) { ret = av_frame_get_buffer(dst, 0); @@ -392,13 +429,12 @@ int av_frame_ref(AVFrame *dst, const AVFrame *src) /* duplicate extended data */ if (src->extended_data != src->data) { - int ch = src->channels; + int ch = dst->ch_layout.nb_channels; if (!ch) { ret = AVERROR(EINVAL); goto fail; } - CHECK_CHANNELS_CONSISTENCY(src); dst->extended_data = av_malloc_array(sizeof(*dst->extended_data), ch); if (!dst->extended_data) { @@ -456,6 +492,8 @@ void av_frame_unref(AVFrame *frame) if (frame->extended_data != frame->data) av_freep(&frame->extended_data); + av_channel_layout_uninit(&frame->ch_layout); + get_frame_defaults(frame); } @@ -502,9 +540,18 @@ int av_frame_make_writable(AVFrame *frame) tmp.format = frame->format; tmp.width = frame->width; tmp.height = frame->height; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS tmp.channels = frame->channels; tmp.channel_layout = frame->channel_layout; +FF_ENABLE_DEPRECATION_WARNINGS +#endif tmp.nb_samples = frame->nb_samples; + ret = av_channel_layout_copy(&tmp.ch_layout, &frame->ch_layout); + if (ret < 0) { + av_frame_unref(&tmp); + return ret; + } if (frame->hw_frames_ctx) ret = av_hwframe_get_buffer(frame->hw_frames_ctx, &tmp, 0); @@ -545,10 +592,18 @@ AVBufferRef *av_frame_get_plane_buffer(AVFrame *frame, int plane) int planes, i; if (frame->nb_samples) { - int channels = frame->channels; + int channels = frame->ch_layout.nb_channels; + +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + if (!channels) { + channels = frame->channels; + CHECK_CHANNELS_CONSISTENCY(frame); + } +FF_ENABLE_DEPRECATION_WARNINGS +#endif if (!channels) return NULL; - CHECK_CHANNELS_CONSISTENCY(frame); planes = av_sample_fmt_is_planar(frame->format) ? channels : 1; } else planes = 4; @@ -654,16 +709,26 @@ static int frame_copy_video(AVFrame *dst, const AVFrame *src) static int frame_copy_audio(AVFrame *dst, const AVFrame *src) { int planar = av_sample_fmt_is_planar(dst->format); - int channels = dst->channels; + int channels = dst->ch_layout.nb_channels; int planes = planar ? channels : 1; int i; - if (dst->nb_samples != src->nb_samples || - dst->channels != src->channels || - dst->channel_layout != src->channel_layout) - return AVERROR(EINVAL); +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + if (!channels) { + if (dst->channels != src->channels || + dst->channel_layout != src->channel_layout) + return AVERROR(EINVAL); + channels = dst->channels; + planes = planar ? channels : 1; + CHECK_CHANNELS_CONSISTENCY(src); + } +FF_ENABLE_DEPRECATION_WARNINGS +#endif - CHECK_CHANNELS_CONSISTENCY(src); + if (dst->nb_samples != src->nb_samples || + av_channel_layout_compare(&dst->ch_layout, &src->ch_layout)) + return AVERROR(EINVAL); for (i = 0; i < planes; i++) if (!dst->extended_data[i] || !src->extended_data[i]) @@ -680,10 +745,17 @@ int av_frame_copy(AVFrame *dst, const AVFrame *src) if (dst->format != src->format || dst->format < 0) return AVERROR(EINVAL); +FF_DISABLE_DEPRECATION_WARNINGS if (dst->width > 0 && dst->height > 0) return frame_copy_video(dst, src); - else if (dst->nb_samples > 0 && dst->channels > 0) + else if (dst->nb_samples > 0 && + (av_channel_layout_check(&dst->ch_layout) +#if FF_API_OLD_CHANNEL_LAYOUT + || dst->channel_layout || dst->channels +#endif + )) return frame_copy_audio(dst, src); +FF_ENABLE_DEPRECATION_WARNINGS return AVERROR(EINVAL); } diff --git a/libavutil/frame.h b/libavutil/frame.h index 18e239f870..7443f1a9b1 100644 --- a/libavutil/frame.h +++ b/libavutil/frame.h @@ -30,6 +30,7 @@ #include "avutil.h" #include "buffer.h" +#include "channel_layout.h" #include "dict.h" #include "rational.h" #include "samplefmt.h" @@ -493,10 +494,14 @@ typedef struct AVFrame { */ int sample_rate; +#if FF_API_OLD_CHANNEL_LAYOUT /** * Channel layout of the audio data. + * @deprecated use ch_layout instead */ + attribute_deprecated uint64_t channel_layout; +#endif /** * AVBuffer references backing the data for this frame. All the pointers in @@ -620,12 +625,16 @@ typedef struct AVFrame { #define FF_DECODE_ERROR_CONCEALMENT_ACTIVE 4 #define FF_DECODE_ERROR_DECODE_SLICES 8 +#if FF_API_OLD_CHANNEL_LAYOUT /** * number of audio channels, only used for audio. * - encoding: unused * - decoding: Read by user. + * @deprecated use ch_layout instead */ + attribute_deprecated int channels; +#endif /** * size of the corresponding packet containing the compressed @@ -681,6 +690,11 @@ typedef struct AVFrame { * for the target frame's private_ref field. */ AVBufferRef *private_ref; + + /** + * Channel layout of the audio data. + */ + AVChannelLayout ch_layout; } AVFrame; @@ -760,7 +774,7 @@ void av_frame_move_ref(AVFrame *dst, AVFrame *src); * The following fields must be set on frame before calling this function: * - format (pixel format for video, sample format for audio) * - width and height for video - * - nb_samples and channel_layout for audio + * - nb_samples and ch_layout for audio * * This function will fill AVFrame.data and AVFrame.buf arrays and, if * necessary, allocate and fill AVFrame.extended_data and AVFrame.extended_buf. From patchwork Thu Jan 13 01:49:28 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33299 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp13223iog; Wed, 12 Jan 2022 17:54:02 -0800 (PST) X-Google-Smtp-Source: ABdhPJx4hOJGLtraysZHRZkNfhjjowmCTqhltNPumgWFw/4+31PoJeue4dqoNYbojdXi1qRJdBPg X-Received: by 2002:a17:906:cc84:: with SMTP id oq4mr1982464ejb.736.1642038841837; Wed, 12 Jan 2022 17:54:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642038841; cv=none; d=google.com; s=arc-20160816; b=a5PXOjvkZkmm3Y1EmJKcqx1ZGwnPb+R/DIdXdhOS40Cqrl/iOdhgi7oYnnla6RaY6l tvQ4bL8YcbeiLvpmqrz+DHoPd4cgu6g5MIz13JN4BTPhgoO/d7Z8SbAow2HVAuv+sxAS OGgbcv+T+SYuXVdlLeBuukmD6PScX1I/950qmWYZr2316OY01C9a876Axyca98Sqd739 KwATnb1fPqDlMdtFJb9/D9n3Pj4lKwrJnlXdpoiKG5o77qi4Dn4DqAFs24j9FqU8IjgE kQv5WnWJ9JiEUoqI7qkh7mzDfSh4KGUenzdecrpJivl6xv6pfsue0JT0nmXfqtsPi9Ip CRig== 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=78fI5cwr4JARHxNQEzl+T0TXwyV2YhLgitfO2obJXDI=; b=VUIUOT/rCaEYxp1Z0kv7IFRUguyGroUxDQAMQ7T8bzBnbQ2igTnjjGdEigwHAnTgCv nZCKHKSyMHsW5lzne8ooerNge+uYR9is9aq8aPxChkODPiox8oCj+OtEW8XVoa+rZw1j jDpt5UGsvRWn+gNL+QfYoUdHiAX8HgQCp8+B3rdi4wtFxzFSZAaf0oPV/FHiu5S/EsWu YtesqlldbfoQgwY/DYjfRf/cY0b57T/sWg4T9hq4bdNnS+Q4KdivQjEJoODhxiDLFvtk 8YBgzg6R10CtXB2Up4G54xG1aXvDA6DqOytkDoYJ9oS2uAA3fbTpWJo4oRwQVCK4x/1o YXlA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=RihRodnu; 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 j4si742525edr.142.2022.01.12.17.53.58; Wed, 12 Jan 2022 17:54:01 -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=RihRodnu; 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 DF79968AF36; Thu, 13 Jan 2022 03:52:15 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f177.google.com (mail-qt1-f177.google.com [209.85.160.177]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EC0EE68AF26 for ; Thu, 13 Jan 2022 03:52:06 +0200 (EET) Received: by mail-qt1-f177.google.com with SMTP id q14so5298476qtx.10 for ; Wed, 12 Jan 2022 17:52:06 -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=1D+2yorsQk47XQkOy4AF+TlYZGKwcNN+oDBMcqLL25Q=; b=RihRodnuHnU8Us6++7blpYI1Nuvk4+Ju/GtyDw4kJczkV1tFC7XGsDkV/dtnRbwIDv K2bVZbYLXce21LuKxLBnH5Q83NzboS6Z/iQWKBrEdaw3tIRVMq8O68+lV9Ir0g85kxXZ BSGmDIUA8kAAaiO4DnmkElLfMlE4iYNBXdQdCek4WVpzo3ll6T7fMcfJFhT6QHUZUQXP ZdYsWowgOgFjQJFHGrOp85sF5U3mrFK0uGBKW0txVtfeFkfBhsE4YFv0NKucU/eZUs7x oBZFGMcgdWroDF3QvzdXE3Zrh96mfPm3mIr7erJQSvzBq6KtKBzRv4+MJ1t2BUlTkzQn vVjw== 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=1D+2yorsQk47XQkOy4AF+TlYZGKwcNN+oDBMcqLL25Q=; b=EueFhHKLISbMBRuxfE3UpmtPvpBKJqL6t15707VKEELw/lYQpxHuUi8rtkKdwLdu3q RyyHWbM40mwc5ZlpomPgMMIMOfFkrmdjfUeFlYUZiCZW1tfP6YGl+WDwJkV+o5HsjhZJ IlnxbUaKANk8j+1V31V24YuJpU7LHOtPNdmbV8UPqbYeuTTKZaF7YLQnNut64rP3FGMq jed+MzWyClXs4aTaBQom3jQdsaSrf7eVBvtq5sux7dpPBs1aYgByn+e8yjPQUKFDz0py RuikKZf79zfeyaV5C81m75/kS3WMTi2/PpYFzoKg9rs60zn4Dujai4R9fsvfFyaPuiXE yRHw== X-Gm-Message-State: AOAM531p3mkFdhj6FrYScozFqt0dZdEPMzNldhBfUHuIKMgbbvNem6QO ++Irp3w8HWe+L2SINZz9Zf/3bA81IBs= X-Received: by 2002:ac8:5d94:: with SMTP id d20mr2065738qtx.214.1642038725216; Wed, 12 Jan 2022 17:52:05 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.04 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:04 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:28 -0300 Message-Id: <20220113015101.4-7-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 006/281] avcodecpar: switch to the 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: mdpnwYDFJKYa From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavcodec/codec_par.c | 37 +++++++++++++++++++++++++++++++++---- libavcodec/codec_par.h | 12 ++++++++++++ libavcodec/utils.c | 12 ++++++++++-- 3 files changed, 55 insertions(+), 6 deletions(-) diff --git a/libavcodec/codec_par.c b/libavcodec/codec_par.c index 1a5168a04b..9d43af1db4 100644 --- a/libavcodec/codec_par.c +++ b/libavcodec/codec_par.c @@ -31,6 +31,7 @@ static void codec_parameters_reset(AVCodecParameters *par) { av_freep(&par->extradata); + av_channel_layout_uninit(&par->ch_layout); memset(par, 0, sizeof(*par)); @@ -71,6 +72,8 @@ void avcodec_parameters_free(AVCodecParameters **ppar) int avcodec_parameters_copy(AVCodecParameters *dst, const AVCodecParameters *src) { + int ret; + codec_parameters_reset(dst); memcpy(dst, src, sizeof(*dst)); @@ -84,6 +87,10 @@ int avcodec_parameters_copy(AVCodecParameters *dst, const AVCodecParameters *src dst->extradata_size = src->extradata_size; } + ret = av_channel_layout_copy(&dst->ch_layout, &src->ch_layout); + if (ret < 0) + return ret; + return 0; } @@ -118,8 +125,19 @@ int avcodec_parameters_from_context(AVCodecParameters *par, break; case AVMEDIA_TYPE_AUDIO: par->format = codec->sample_fmt; - par->channel_layout = codec->channel_layout; - par->channels = codec->channels; + if (codec->channel_layout) + av_channel_layout_from_mask(&par->ch_layout, codec->channel_layout); + else { + par->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + par->ch_layout.nb_channels = codec->channels; + } +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + par->channel_layout = par->ch_layout.order == AV_CHANNEL_ORDER_NATIVE ? + par->ch_layout.u.mask : 0; + par->channels = par->ch_layout.nb_channels; +FF_ENABLE_DEPRECATION_WARNINGS +#endif par->sample_rate = codec->sample_rate; par->block_align = codec->block_align; par->frame_size = codec->frame_size; @@ -173,8 +191,19 @@ int avcodec_parameters_to_context(AVCodecContext *codec, break; case AVMEDIA_TYPE_AUDIO: codec->sample_fmt = par->format; - codec->channel_layout = par->channel_layout; - codec->channels = par->channels; + if (par->ch_layout.nb_channels) { + codec->channel_layout = par->ch_layout.order == AV_CHANNEL_ORDER_NATIVE ? + par->ch_layout.u.mask : 0; + codec->channels = par->ch_layout.nb_channels; + } +#if FF_API_OLD_CHANNEL_LAYOUT + else { +FF_DISABLE_DEPRECATION_WARNINGS + codec->channel_layout = par->channel_layout; + codec->channels = par->channels; +FF_ENABLE_DEPRECATION_WARNINGS + } +#endif codec->sample_rate = par->sample_rate; codec->block_align = par->block_align; codec->frame_size = par->frame_size; diff --git a/libavcodec/codec_par.h b/libavcodec/codec_par.h index 10cf79dff1..7660791a12 100644 --- a/libavcodec/codec_par.h +++ b/libavcodec/codec_par.h @@ -24,6 +24,7 @@ #include #include "libavutil/avutil.h" +#include "libavutil/channel_layout.h" #include "libavutil/rational.h" #include "libavutil/pixfmt.h" @@ -154,16 +155,22 @@ typedef struct AVCodecParameters { */ int video_delay; +#if FF_API_OLD_CHANNEL_LAYOUT /** * Audio only. The channel layout bitmask. May be 0 if the channel layout is * unknown or unspecified, otherwise the number of bits set must be equal to * the channels field. + * @deprecated use ch_layout */ + attribute_deprecated uint64_t channel_layout; /** * Audio only. The number of audio channels. + * @deprecated use ch_layout.nb_channels */ + attribute_deprecated int channels; +#endif /** * Audio only. The number of audio samples per second. */ @@ -198,6 +205,11 @@ typedef struct AVCodecParameters { * Audio only. Number of samples to skip after a discontinuity. */ int seek_preroll; + + /** + * Audio only. The channel layout and number of channels. + */ + AVChannelLayout ch_layout; } AVCodecParameters; /** diff --git a/libavcodec/utils.c b/libavcodec/utils.c index b19befef21..0505ea6ba2 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -815,8 +815,16 @@ int av_get_audio_frame_duration(AVCodecContext *avctx, int frame_bytes) int av_get_audio_frame_duration2(AVCodecParameters *par, int frame_bytes) { - int duration = get_audio_frame_duration(par->codec_id, par->sample_rate, - par->channels, par->block_align, + int channels = par->ch_layout.nb_channels; + int duration; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + if (!channels) + channels = par->channels; +FF_ENABLE_DEPRECATION_WARNINGS +#endif + duration = get_audio_frame_duration(par->codec_id, par->sample_rate, + channels, par->block_align, par->codec_tag, par->bits_per_coded_sample, par->bit_rate, par->extradata, par->frame_size, frame_bytes); From patchwork Thu Jan 13 01:49:29 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33294 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp12713iog; Wed, 12 Jan 2022 17:53:02 -0800 (PST) X-Google-Smtp-Source: ABdhPJwLKxcZrDaXajUIAj/0bIQkedgBViayqKeHcPdadp6vTIb82duD04nmUxXkOW+nx5EIcxa2 X-Received: by 2002:a05:6402:399:: with SMTP id o25mr2161484edv.70.1642038782754; Wed, 12 Jan 2022 17:53:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642038782; cv=none; d=google.com; s=arc-20160816; b=atUGx3RK7fP+VX2QnzEHPIt4NmboCfvmrSYpOENOJZ8SZCzm9L9HpoN9hp7aV58ZHt 9eIJaRhdBNf3AO/FwX0GgY4ewhBd4Vati3oniiQjLL4gNlzOK3kjT5hvFcfBUH619wLk 1TgnoIhTml04NdSD//y8ZWYm6CbNzYH6oQRMmt9af4ewBSpZtgD6CjYXzhu4Y/enyl98 KxEziye+GyQhvQ/oYCRPbITeqUheoDLpfbgyxlIcsaNiz3YsuW+I5fs3Jepmk0tsV3Eg L5xjplLANJd9wGF4pVXU7Ix5ke5bbecT46lpdbmhZkn6r1s0RG+btzbfOw96+anWtfbD pD4g== 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=syXH5FvXKznTC+9K3Ab2PB4SsB0xHWtWg13LGNeCo1w=; b=i/9WPFnrtSZnVAzbWqYhoEffpt8XsM25Kz6obePKFpls1K4cfzYUW/sxuX5EaTPJY/ ZTmTTfZiypZ/6baVI/MBzDd81D/OCpCJbteQAxkreaWvl/x3H9x6+MwuidXDZb0/zjE5 ZghiX7QrjG3H75jAtoABDN6Bz9BZVs9g4n2M7FmHDRPNhZo7DC3hX0DkLa2TlPzaItEL NOCKnws8/P0eIQZrxzstZv83RY/h9cUmthQCp1wC5jKNXg6KWHJwEOkPHUALwTwz7jAd OR950u7To48ORzfio6zTIjv5r1acjk5Oz96WeTzYiIERN3/iFK9ZObEhqyD+xBgJ/Z5Z fHHQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=SXBFFg2M; 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 j19si687658ejn.737.2022.01.12.17.53.02; Wed, 12 Jan 2022 17:53:02 -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=SXBFFg2M; 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 4F9EA68AEF7; Thu, 13 Jan 2022 03:52:11 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f41.google.com (mail-qv1-f41.google.com [209.85.219.41]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 717D568AEC5 for ; Thu, 13 Jan 2022 03:52:08 +0200 (EET) Received: by mail-qv1-f41.google.com with SMTP id iw1so5143557qvb.1 for ; Wed, 12 Jan 2022 17:52:08 -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=qDQGGh6rXAKlhttgE/bpMgCrH3+iOUDOS46BI9+kXTs=; b=SXBFFg2MQ6mLqR+w1xuSOYEbDDPrZ4SjcokMoc2/BHeiNTn7Uo0pV6mih9OxvGboNQ I6zX4Fr+xlH+xAroxlZV17uPuk5S6+s3jlUVA451D5BXkMK5feVPjscZK+vBwJWq3IKT /WrclYdZHca38urlQCmpNyfOwBpxCS9L60hfjHtGfHBZTH/cMVqNqJo5RRmsn6Z15+mv jRanlQaY8KF1MJ2dWot/lSNiJmjX9fXKQ54iUBA1rSpdkOqO3yfN2ZsjfDluxd+A/o/W orHirGb59cXKh5/3PmiSrRyqqon68SOk5b5RhUtTV53qw7tBms/5Q9s11uDD/Ky7oe8g Hd1Q== 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=qDQGGh6rXAKlhttgE/bpMgCrH3+iOUDOS46BI9+kXTs=; b=JSLfIMyCFL53n5dYQMdPg+LICY0QabtZSzAyehuLWQI8z34ON4fgfXxSmRg4qMy8N1 zO/xPkll5iB/paph2f2QYsRltjooRXLtmx0aDFa295D8uyGDpLlVBZtBvWi1I3fzqccX s4Evg8E1/YneUsh/iHSCdXe0D0/47tM5REc4pZfhs5pfPbYqWyNRYfW0tPBpbHQfntlk oEekAGNHLa1BoN7OYkaRSJMZCJnZEccOM2M4Xsxmr1f1vY6Gj7cwj3sL1E/p5v5uWE7+ K1+etRjH64Rc+yolKELpnLsS79s7igiJt3iuttt1wQB2TZwhgVlldnvYN9cH/LgYCum3 jIzg== X-Gm-Message-State: AOAM531pH7rKuuob2r6171YSycRqLlNbHvb0jcn0bi/659Y1X1+XWxZ1 F5RbK5mvPuo1EwfdlISGHZjBqcG5DaQ= X-Received: by 2002:a05:6214:27c6:: with SMTP id ge6mr2095114qvb.47.1642038726464; Wed, 12 Jan 2022 17:52:06 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.05 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:06 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:29 -0300 Message-Id: <20220113015101.4-8-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 007/281] lavf: add a temporary compat layer for the channel layout API change 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: i/ZCXEPMluFt From: Anton Khirnov Mediates between old-style (de)muxers and new-style callers. Will be removed once all the (de)muxers are converted to the new API. Signed-off-by: James Almer --- libavformat/demux.c | 12 ++++++++++++ libavformat/mux.c | 10 ++++++++++ 2 files changed, 22 insertions(+) diff --git a/libavformat/demux.c b/libavformat/demux.c index f895f0ba85..c78c6c16a2 100644 --- a/libavformat/demux.c +++ b/libavformat/demux.c @@ -194,6 +194,18 @@ static int update_stream_avctx(AVFormatContext *s) sti->parser = NULL; } + /* if the demuxer exports old channel layouts, convert it to new */ + if (!st->codecpar->ch_layout.nb_channels && + st->codecpar->channels) { + if (st->codecpar->channel_layout) { + av_channel_layout_from_mask(&st->codecpar->ch_layout, + st->codecpar->channel_layout); + } else { + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = st->codecpar->channels; + } + } + /* update internal codec context, for the parser */ ret = avcodec_parameters_to_context(sti->avctx, st->codecpar); if (ret < 0) diff --git a/libavformat/mux.c b/libavformat/mux.c index c387f8ec6e..775e3e0d76 100644 --- a/libavformat/mux.c +++ b/libavformat/mux.c @@ -272,6 +272,16 @@ static int init_muxer(AVFormatContext *s, AVDictionary **options) ret = AVERROR(EINVAL); goto fail; } + + /* if the new-style channel layout is set, convert it to old one + * for old-style muxers */ + if (par->ch_layout.nb_channels && + !par->channels) { + par->channels = par->ch_layout.nb_channels; + par->channel_layout = par->ch_layout.order == AV_CHANNEL_ORDER_NATIVE ? + par->ch_layout.u.mask : 0; + } + if (!par->block_align) par->block_align = par->channels * av_get_bits_per_sample(par->codec_id) >> 3; From patchwork Thu Jan 13 01:49:30 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33296 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp12921iog; Wed, 12 Jan 2022 17:53:25 -0800 (PST) X-Google-Smtp-Source: ABdhPJyFIRDtB47GKptrHTK+rASx/D+950uO9ybXaiQJtblNy+GAIQjesAvmD3rf6a8HbqUqbX45 X-Received: by 2002:a17:906:ca18:: with SMTP id jt24mr1935471ejb.23.1642038805207; Wed, 12 Jan 2022 17:53:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642038805; cv=none; d=google.com; s=arc-20160816; b=t9YuJKjHv6Xj1M9LAhGs8XoTWlnMbrdwZP0SbaBtVEsIJPws6lSAYZvKZ+Bfj9+53M HvqN1vvkvywpE6D1unMwFV9p7XWpv1t4K54gr3hQ/FXu/qiLA465AWkIxuX6JOk8T8dY CHHVWwuN9jJjo5gcO3Smr2KbVQVSdeAWrG0KKVMk2GxKKo3imM7yj7WY7qQ0RgAB2L5d Ps5nzNvkgMbeJzk6T35oz4LJBkJwKJsNJ5sR6Smc8mTFPeOxccsnyZM80rFjl1+4zYd7 3FlkyLGM2GCs0b4YegMg9U3so1XBLtkoOstOVpcVGB96/GD5byl2vQp+v8Dkz4mT2fpC QknQ== 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=TXdSxOJvzfTtojCL8WLGRzOMQRQgeyALMxMTlXehHDY=; b=ze0ly1LxPr2yE4nwHNMAIOZ9dSXJ+9kdsGid9saqDx/uppGh7Q/c4tuFnuVuQGbFMp hz4TC/JLdSAtL1+oe/PpdC6oC5YN1zRpARMywz+3WbSNKVcfD/bHZLzLGynPLVyE7J3P 8rwpy8XchaVbZBqUxYBR7R4ISQkjRl7ZJ1JElFeq/q8nYQlIq2gceNeiIczVDCT0SgVd FcyEZ4Xycwaem3NoZrT3VMSgvwYlBglXTgvuYT5EtwMPEOhs00GX6h56Iy572Jt1hkhY hPVysz3A1NohiPa3JYLKEsXEAJRDwrPHvFt2Uq24tl+SNCE7rMoPrnipWSdA72uoVdJ8 k/0A== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=ZB0Vnm1J; 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 hc10si842314ejc.385.2022.01.12.17.53.24; Wed, 12 Jan 2022 17:53:25 -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=ZB0Vnm1J; 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 1A6F168AF45; Thu, 13 Jan 2022 03:52:13 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f50.google.com (mail-qv1-f50.google.com [209.85.219.50]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 96F1B68AEEC for ; Thu, 13 Jan 2022 03:52:09 +0200 (EET) Received: by mail-qv1-f50.google.com with SMTP id a8so5143086qvx.2 for ; Wed, 12 Jan 2022 17:52:09 -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=1Y6rlVAAr4ZJE9SeNJo01tD1/841ETJx9mrXZWfxtlE=; b=ZB0Vnm1JKhhEK0PKQDuzIQofiEmhQenf8A2XvJ4Ty29s0eAUuNMb28PfuxcsBqVroK UtFt0r8L4ww7boo6ZMovg6tjMq2M73zyHRfF3ZoL0FkES8e2/8o8TKFmysz3YK26ePhX c8r8637WwEWMTqs/sWpx/hQXntuFMegeQwXkrRioRqs7JyoOt2snY/19gZXABKcBbZrj 6AHwsJP7dQdPDQnfOWA0dKb9sXVHDVkbl/kLLcSRl/lTOYcsQ3+WJrp+Ugian4o3872c CQdJIY5fwecTFEP3vQF0FQQHcjekicqZg5t2Z92K+gVRdYn5R67NZYcqMOcJ0ixm9Doy YmlA== 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=1Y6rlVAAr4ZJE9SeNJo01tD1/841ETJx9mrXZWfxtlE=; b=SqqrU6MzqUzHq5docj7AeMj1343pOEm4QT0jgSbjARZYY33vwWZKHd3Z9SUpH0Xmd9 cngxDd2mATqVtubdGb9ayW//og++/CWd9hjH2rpQ5R4oifWZ5CGj1NzqXM5+3PjOiDUg 0ETXfRlXQ83ex0Za/JlLyBddub5I1q9KVmwNSl4tBaSA6fRe+TfyjgUfZ+9Pj4ziPULH Y7q9WJZXgX2VMfu7S51Wws0dYd4uO6VdWcPe3mLUpNhf+TZ0D2hkNXFIdd888hKVbCWO s2WLu10eZJnfA1/YMUeNklqUZzxEarEjz1Q8S/jW6mv9HRqcExkCdNIjhfFOuV+zekdZ JroQ== X-Gm-Message-State: AOAM531ybO8ibsPZ/aC6Ace22c64VfWTV9Li36dQUxnTpMhxqJAf6k8l OhXvFt3mRsRwEa/JkfIn0XDhpYTjP3c= X-Received: by 2002:ad4:574f:: with SMTP id q15mr2333470qvx.94.1642038727774; Wed, 12 Jan 2022 17:52:07 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.06 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:07 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:30 -0300 Message-Id: <20220113015101.4-9-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 008/281] lavf: convert the generic layer to the new 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: lJ2YuUj4tuL+ From: Anton Khirnov Signed-off-by: James Almer --- libavformat/demux.c | 16 ++++++++++++++++ libavformat/mux.c | 18 +++++++++++++++++- libavformat/utils.c | 4 ++-- 3 files changed, 35 insertions(+), 3 deletions(-) diff --git a/libavformat/demux.c b/libavformat/demux.c index c78c6c16a2..29c5f7539c 100644 --- a/libavformat/demux.c +++ b/libavformat/demux.c @@ -206,6 +206,18 @@ static int update_stream_avctx(AVFormatContext *s) } } +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + if (st->codecpar->ch_layout.nb_channels && + !st->codecpar->channels) { + st->codecpar->channels = st->codecpar->ch_layout.nb_channels; + st->codecpar->channel_layout = st->codecpar->ch_layout.order == AV_CHANNEL_ORDER_NATIVE ? + st->codecpar->ch_layout.u.mask : 0; + + } +FF_ENABLE_DEPRECATION_WARNINGS +#endif + /* update internal codec context, for the parser */ ret = avcodec_parameters_to_context(sti->avctx, st->codecpar); if (ret < 0) @@ -1333,8 +1345,12 @@ static int read_frame_internal(AVFormatContext *s, AVPacket *pkt) return ret; st->codecpar->sample_rate = sti->avctx->sample_rate; st->codecpar->bit_rate = sti->avctx->bit_rate; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS st->codecpar->channels = sti->avctx->channels; st->codecpar->channel_layout = sti->avctx->channel_layout; +FF_ENABLE_DEPRECATION_WARNINGS +#endif st->codecpar->codec_id = sti->avctx->codec_id; } else { /* free packet */ diff --git a/libavformat/mux.c b/libavformat/mux.c index 775e3e0d76..68983c773f 100644 --- a/libavformat/mux.c +++ b/libavformat/mux.c @@ -282,8 +282,24 @@ static int init_muxer(AVFormatContext *s, AVDictionary **options) par->ch_layout.u.mask : 0; } +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + /* if the caller is using the deprecated channel layout API, + * convert it to the new style */ + if (!par->ch_layout.nb_channels && + par->channels) { + if (par->channel_layout) { + av_channel_layout_from_mask(&par->ch_layout, par->channel_layout); + } else { + par->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + par->ch_layout.nb_channels = par->channels; + } + } +FF_ENABLE_DEPRECATION_WARNINGS +#endif + if (!par->block_align) - par->block_align = par->channels * + par->block_align = par->ch_layout.nb_channels * av_get_bits_per_sample(par->codec_id) >> 3; break; case AVMEDIA_TYPE_VIDEO: diff --git a/libavformat/utils.c b/libavformat/utils.c index 7468ec301d..1667d6f6f5 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -525,7 +525,7 @@ int av_find_best_stream(AVFormatContext *ic, enum AVMediaType type, continue; if (wanted_stream_nb >= 0 && real_stream_index != wanted_stream_nb) continue; - if (type == AVMEDIA_TYPE_AUDIO && !(par->channels && par->sample_rate)) + if (type == AVMEDIA_TYPE_AUDIO && !(par->ch_layout.nb_channels && par->sample_rate)) continue; if (decoder_ret) { decoder = ff_find_decoder(ic, st, par->codec_id); @@ -1522,7 +1522,7 @@ static int match_stream_specifier(const AVFormatContext *s, const AVStream *st, int val; switch (par->codec_type) { case AVMEDIA_TYPE_AUDIO: - val = par->sample_rate && par->channels; + val = par->sample_rate && par->ch_layout.nb_channels; if (par->format == AV_SAMPLE_FMT_NONE) return 0; break; From patchwork Thu Jan 13 01:49:31 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33298 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp13176iog; Wed, 12 Jan 2022 17:53:54 -0800 (PST) X-Google-Smtp-Source: ABdhPJzJGbN+uea21/HR1rupIrvXWGrQwDU2JK+CzNnxHVMreDzmLxXSqvn7EUX2NHxdBAt1YUrk X-Received: by 2002:a05:6402:26c2:: with SMTP id x2mr2166527edd.6.1642038834720; Wed, 12 Jan 2022 17:53:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642038834; cv=none; d=google.com; s=arc-20160816; b=CBm40YGcHianTVaE1W8iNV8NlChcKkzQtWmdO+V4k/+tKtcsNxqNLGSmlPbo6PTUVo S34Tjymf8As3xZiiUxv3zruDyAs35LAAhczHrvaB7Y/vFrrDPc0O2I5BCBb0R0Y7fxn5 0yYFQ8X3H/eRBMNQEcuyabRQELosqhS/1PCw3ALoBGcmzy72gdnKqrKEVMfHSjNKo/VX 2tLnKx4NGvZx/saSLqNNKjMRBAJNaOXNrMvja4a/7CRHm6+en5vB48wPusaQZkdpkKOn f9aHKRnp/keOCjmQv8Sqqzo+nHxnnuCld3DjWikmHYFHCHsAvmSKKa0DWaia/urOi2Y6 K5eQ== 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=DTLE5eO9JE3G4LaVoaIDlrkk4cKx55kXEmom7r6D0Ho=; b=ZJLnxH6JR2uvvUEpgQjnn1vAptTj1hNRQxfQjjPKB/snsexHvlyt7pzFTSFO6S2DmZ 2SVy6yFTHIwFberS0MNos52Qu7u2WoYGwzxGMrafFmVlDxWPBtODHgaMwq0lZ08NIbao YxkmEaC3FvFNgLk9E+3LVn6ODvdahnCAOh6qJRwALVSsLDTllLGmALV0UwrdTYzmmWo3 sui91ebkaaMP0YoftPWYKoE7ltm7uag3P2xPZaM/0y03ggHMHgvvAwdm0NmAcpMMbK3M j5H5zBcUwB4lpL4PfI0dswM1llVeGwV83ltugoX7JTtDxt5DAG/gtiybMjHp4k/h69Zr NAgg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=DCJZIniV; 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 ne24si864865ejc.130.2022.01.12.17.53.47; Wed, 12 Jan 2022 17:53:54 -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=DCJZIniV; 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 D79AD68AF71; Thu, 13 Jan 2022 03:52:14 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f42.google.com (mail-qv1-f42.google.com [209.85.219.42]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id ADB4968AEE4 for ; Thu, 13 Jan 2022 03:52:10 +0200 (EET) Received: by mail-qv1-f42.google.com with SMTP id a8so5143154qvx.2 for ; Wed, 12 Jan 2022 17:52:10 -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=BVCK0GeOHyagtrPxYG/ArcICJBUIqMeOtgQVBcMRzRk=; b=DCJZIniVLb6T4Chke02fK7G8oqN7GLnK0qgC1LwDJ81kk5T5NvxA6eeOr+/b/Ycfod gxETcdwYC+w5wfsKn9vy+JV3+Bc0ckmc1h71Av2IM2jd+SOHSWTxKAtGycuEZ+UxeEYZ Uqfd8b78h0yg60FXmbGRSbLKa9KdlReAFN0yjvaBc0FExm0w4hhRWlXAwtfpKi4DftLg oZFH7DTcfnBz/h3kV6YLz66OHcLWC6slGdJ6Bwxc563t32buJ/TrVpEuhZTeqx0kcJGV c2wpuJUfEaDw1U5rPdjdcxqimvDYu9edb1F6LoUaRBdhAc/Hd3zOy061hFYj0m4Ffue4 PxMw== 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=BVCK0GeOHyagtrPxYG/ArcICJBUIqMeOtgQVBcMRzRk=; b=dO7ymYZujMh3fztFS8WPLdgEHi5jGxHFzY02zVcb2fl9+a0SkLM39SSQrPra9fTcDM upeNIuHQ4C0JKjiu20JPeDtpDaCXezO7RFQPy6sVV16uOxSzZFymZpepgnoicS/bbKvD 7uwP8siZEm9qAXY6c9YmVTchMBAF64Q8QcYotAPPt4wtetqn2WSd4JA3dm3SW0DkqYnh pInZv9gbl01wenYWxVYII5vP4e8gcxJc6o4uouIB91UnjGyQjXs1Qx2T5EaEZm+DqCUV 3EuXEyqcfd5UGNgOFP5e0vdEUUFy3KlDMbbcdam0koOnaonX4KQTkEjv8an8rubS4/AH 7ugw== X-Gm-Message-State: AOAM531NLPdJs4GcCXD/Bqeu+dQbsdQy+aJ2sf4V5wDWfWJvWgNx3cyX RjgAN3pazBG8D6iX79IJkaxhRDJA0Lg= X-Received: by 2002:a05:6214:29c3:: with SMTP id gh3mr2430369qvb.112.1642038729037; Wed, 12 Jan 2022 17:52:09 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.07 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:08 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:31 -0300 Message-Id: <20220113015101.4-10-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 009/281] 3dostr: 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: yxVH6Q+Y50SC From: Anton Khirnov Signed-off-by: James Almer --- libavformat/3dostr.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/libavformat/3dostr.c b/libavformat/3dostr.c index 0c136c9ea0..9b6a4d1d86 100644 --- a/libavformat/3dostr.c +++ b/libavformat/3dostr.c @@ -102,15 +102,16 @@ static int threedostr_read_header(AVFormatContext *s) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->sample_rate = avio_rb32(s->pb); - st->codecpar->channels = avio_rb32(s->pb); - if (st->codecpar->channels <= 0 || st->codecpar->sample_rate <= 0) + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = avio_rb32(s->pb); + if (st->codecpar->ch_layout.nb_channels <= 0 || st->codecpar->sample_rate <= 0) return AVERROR_INVALIDDATA; codec = avio_rl32(s->pb); avio_skip(s->pb, 4); if (ctrl_size == 20 || ctrl_size == 3 || ctrl_size == -1) - st->duration = (avio_rb32(s->pb) - 1) / st->codecpar->channels; + st->duration = (avio_rb32(s->pb) - 1) / st->codecpar->ch_layout.nb_channels; else - st->duration = avio_rb32(s->pb) * 16 / st->codecpar->channels; + st->duration = avio_rb32(s->pb) * 16 / st->codecpar->ch_layout.nb_channels; size -= 56; found_shdr = 1; break; @@ -135,7 +136,7 @@ static int threedostr_read_header(AVFormatContext *s) switch (codec) { case MKTAG('S','D','X','2'): st->codecpar->codec_id = AV_CODEC_ID_SDX2_DPCM; - st->codecpar->block_align = 1 * st->codecpar->channels; + st->codecpar->block_align = 1 * st->codecpar->ch_layout.nb_channels; break; default: avpriv_request_sample(s, "codec %X", codec); @@ -178,7 +179,7 @@ static int threedostr_read_packet(AVFormatContext *s, AVPacket *pkt) ret = av_get_packet(s->pb, pkt, size); pkt->pos = pos; pkt->stream_index = 0; - pkt->duration = size / st->codecpar->channels; + pkt->duration = size / st->codecpar->ch_layout.nb_channels; return ret; default: av_log(s, AV_LOG_DEBUG, "skipping unknown chunk: %X\n", chunk); From patchwork Thu Jan 13 01:49:32 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33300 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp13300iog; Wed, 12 Jan 2022 17:54:11 -0800 (PST) X-Google-Smtp-Source: ABdhPJzGfQOXvQofQPr2g0Xo2FTUKEej3nwRVOD+hgExokVKalt49n+9SmvK8YbsejHo8xhrDqgu X-Received: by 2002:a05:6402:888:: with SMTP id e8mr912920edy.9.1642038851380; Wed, 12 Jan 2022 17:54:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642038851; cv=none; d=google.com; s=arc-20160816; b=jofZCE4x6ZDHCO0eoOmBwWizW6M0i0ksCCs9V5fYX4ntETiE1i3F+8ux5jphG1PtL+ vNyn9cHrpGCYwCFTEMsIxKxx0eCYAI1V+bl0Qz0YJn7E8ay4Ofr345QHWadspim5vW05 dUAhy8pns6YdJD4Zw6GU243qcscLIWLvurHmiLdPLvVcDrttjCdzkcQep2hO6O5H3DuI vamaIf2dXWvSelXcutfZ76bGhW75GwaJxr/HJO5sfGM/Ed609ZmorFHEZVocQcDAAt1M TWlLL1VbO64956p+UfSMycO1L7smhLmZDo93cOzV9Wnj5ZpzZatBLws+oI3dgNViQTS8 v3rg== 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=utyMJz8e+MyDcr09zhwIuWPTBtVmbsDQtvR35kZmEbk=; b=QdH+W3k+w0Pdb8Pk/cTWSnCx+c2HGCHJW0pHyFqL7stRNSYmkaSsEP5SjvcY8rFjT8 WGU3BY+HXoMqk5TjRrGM68Zt6tiHsnT5umwPnwZ3YLfLTNzMQiRRVqXelZsVBNlIiDUG 9K47HS/p22/9+Mq1lnQHmjvfKJRFx7BuAZ0mWsNx78I6983rr8bt9EPwQHDB3xQ9A8hK 3PP+/8RzMVXLH1YbBkcYdHNHK51ik5PIz7KQmkDNJ4ppLdPdvdI2/IlwRC7iLyKf89Ao Vlim9DinnhgnNbHoQbJUJ7sF2XQUrzOSRR2WqO9d/DLoeMb5n6nuLGY4+qiuCo/i0iZi GJgA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=EQhnElEl; 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 k23si791832edx.444.2022.01.12.17.54.09; Wed, 12 Jan 2022 17:54:11 -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=EQhnElEl; 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 D10A368AF7F; Thu, 13 Jan 2022 03:52:16 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f47.google.com (mail-qv1-f47.google.com [209.85.219.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 358F168AF36 for ; Thu, 13 Jan 2022 03:52:11 +0200 (EET) Received: by mail-qv1-f47.google.com with SMTP id l13so3579493qvz.10 for ; Wed, 12 Jan 2022 17:52:11 -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=+T+KQlHQqQ385y+nuOA5g8BeBSQeVVGD5aSbcWZGY2Y=; b=EQhnElElkCFNTMq4MzY0SV1Xux9euULR1CkYQecotc+pSSig0TdlELu6fTF2CPEcCi DQR3WQ75iNhLJvvEyeYXYkz4NqRzlS8SF3OZLmtRkYXEgfmIVgllZ3ZN4UWMCFhbeUTH HV8ej4C2zj21pC1I2p6SEuwc2kr8sDdvx6hEzb/6+7MopDsRwIiwmuCnSSXSwjuYZodq +hXFPzrq522ogNPq6pdGbaiv/f+6dnndUUaOaHu/skaDHuviyyBntyGekjTiNlX8QLGB /LjGc83P+Rn9WUrk5xoH2LjTcwlRM0KbcbvPB2rXscwxLibu1/2NNOkvGLWnbJxo7OPS 9Whg== 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=+T+KQlHQqQ385y+nuOA5g8BeBSQeVVGD5aSbcWZGY2Y=; b=vzUehfWVSBTfm4E3Axj92YZB38IYbTjbM8KP00SIB2/Rz24ZphonBGudecdxyKZkpo VzxX3HtY+qh31fUyy29qBx7ufT/zEMfogiPbeYx8tmbEuWaZromQRuIYZZVEkKiHpkqZ eLcQrgSrYCxydxJyhmSNzh7jEhWnKIz75E0NSc6rqv5wl0XqWCZLeTf4QsWjQZYs7Z90 YcZHTHS26d3nS3NVY5Ru2k9rqXrecAdL3Eg9UqhbrQabW78rxfEw1mhv4JmVvhhia32u HWQHIjW7xyZzeVx5D+bh89ci7tr020V//5knZ8mtwYrdZcjooHxjxPeaAGHDo0iE9jU0 IXbg== X-Gm-Message-State: AOAM532m3CPLAFTjd1yhkm4sfU/kQ9lQhFo62YJggWvMKua7hNY4DrAz usAejdsVg0wyQR95ToMgLGd7ynEJCok= X-Received: by 2002:ad4:5964:: with SMTP id eq4mr2247849qvb.109.1642038730304; Wed, 12 Jan 2022 17:52:10 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.09 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:09 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:32 -0300 Message-Id: <20220113015101.4-11-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 010/281] 4xm: 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: Eo+NrH+cxy9V From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/4xm.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libavformat/4xm.c b/libavformat/4xm.c index e307560014..4d735a1a6f 100644 --- a/libavformat/4xm.c +++ b/libavformat/4xm.c @@ -190,13 +190,14 @@ static int parse_strk(AVFormatContext *s, st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_tag = 0; - st->codecpar->channels = fourxm->tracks[track].channels; + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = fourxm->tracks[track].channels; st->codecpar->sample_rate = fourxm->tracks[track].sample_rate; st->codecpar->bits_per_coded_sample = fourxm->tracks[track].bits; - st->codecpar->bit_rate = (int64_t)st->codecpar->channels * + st->codecpar->bit_rate = (int64_t)st->codecpar->ch_layout.nb_channels * st->codecpar->sample_rate * st->codecpar->bits_per_coded_sample; - st->codecpar->block_align = st->codecpar->channels * + st->codecpar->block_align = st->codecpar->ch_layout.nb_channels * st->codecpar->bits_per_coded_sample; if (fourxm->tracks[track].adpcm){ From patchwork Thu Jan 13 01:49:33 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33301 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp13387iog; Wed, 12 Jan 2022 17:54:20 -0800 (PST) X-Google-Smtp-Source: ABdhPJzbDBvf9xjoXs8iUMlF8SMheofm6dO8rMX8CecB+QMCYFVAfT1aQC+0RNuYbM9rqVC+xaRb X-Received: by 2002:a05:6402:2142:: with SMTP id bq2mr2142726edb.5.1642038860807; Wed, 12 Jan 2022 17:54:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642038860; cv=none; d=google.com; s=arc-20160816; b=JjlNFosDOg7Bh4ipldo3ADroH0a5iN9H7vsDewzTgGGJkb82kFd6SLhY6kg5c0PTXh jPr0Edquq1S8GAgYMC4ZaCZUOLthrSc1zgRd84HMXmr5JQ2B8pzSVzPTNvomWGee7jYI dZ9ES7X1GZMgi+sO510QV0E60/LYg55OrHipLBfXsKyPXpD+OJ5SgLrMjirIZVEV0+nb kutDZ0OsO4ORwU5w2K3r++7BPsOZw9kxo8/EQl5zSscUdj2sGltkDzurUsX6RzHCQKv7 Y6mP2GA+lmdoOaK4DMGJte9dpaJxwV638urldXhOG2RnQktKV1GGa3Jw7O4q1BnHp9GX jBrA== 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=Wx5RGDn4wfQY7dcW0T8WjOo3NTFvEskXHGYaDBFDAaQ=; b=XN02MsfYXImsMRkOS3eADpmKuSP+oZIx08aAP1Zfvg7xFeJ1n/9Cs7e4Rv/s9qCFa4 koAMLx3rkTLspVyCn/2C0teBfurFPB2RxnFTXC1x1M4uArISKuAH1xLIIAu1JSi4rb33 /ooYwtL/tB48XNhdBRZSC5z1vOLbC7psyloGQVxXIggcra47RIilhHiVnvH9VHYajQrQ 41JTKsJIYqbeB1OfA2zgw6LT0CH1r1HF8p5J9zxUwZtG+pVhTuhyJd4RPWHtQzQCfDm1 GKAw1A2OVl4nGzRqgHdIj9YC1iU4L0L3SO7okcwN3eLAF49kvXPq/aTGiKBPXGT46ssV 7Cww== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=SGxHNpao; 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 q6si770111edt.543.2022.01.12.17.54.20; Wed, 12 Jan 2022 17:54:20 -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=SGxHNpao; 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 C781C68AF6B; Thu, 13 Jan 2022 03:52:17 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f54.google.com (mail-qv1-f54.google.com [209.85.219.54]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0695368AF41 for ; Thu, 13 Jan 2022 03:52:12 +0200 (EET) Received: by mail-qv1-f54.google.com with SMTP id jr5so5050486qvb.11 for ; Wed, 12 Jan 2022 17:52:12 -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=Io/MtYUorAsGd+fFqZuX4KJ79PA5+5brnMAszQP7yXw=; b=SGxHNpaoKs4J6PBEcatzWPznf47sI1xUsc5SZ69DEX60xk+5hHcaXF5WfeZ7rN0zTB kZR8sYpziTGqEHg8jjiK3maNGhFh6llMrRryongDsQZEzLX3HR/0PT8uih2/vBFKvR5Y 3rRpYZJVTKLA7lvL+0YnUGmo/hXiPhQNLxcKbqtGit71zL6a0aqCauj0vhaNPei4II/i c/LwdjQMtRXeNtfRp6sOH9hc2G3ccoDDP6K1SwnUaR50OG3mC2JP+ym+x+56Ds6r5zTt HITH3lhC/Q8RAgG586AHP5m4TwW/xM1UqTzK73k8YHpPO3PZoXBFjhhZjep+vr5VGd9U hY+Q== 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=Io/MtYUorAsGd+fFqZuX4KJ79PA5+5brnMAszQP7yXw=; b=o34AmlEByP4c2oXAQRz1Mlt50p90LhZF4tPYeS6gWXQyHgd5vo9uX3fDVZTsDUAOXo MkQXQdV5aJgZj4eTaFX6rYsUQgxcf3GHh3Z2XnI6tWL9Q8MyvhF6M+BO0dGcJ/zrfRo0 f0KIXys2JFD6206o6j+LsaJvbstV0AwQOW0yBszDqTeSQNSxttSF9tfuN7QfyLk46Bo1 uEZS7zQCaJp9h6XjzJ1FmE66sV/vQZBt91Xcs3D7TRZZVzxFvcLFRVyoJsRlLWE/ppVw 2zI/ygNB8czY6Fv01wV0OATAXP+EMQfnaUTKJ4VlXPMuHTJZatyOF1eD2qeZM5xcvxDc lQJg== X-Gm-Message-State: AOAM533MdrIRkWPV1xgw2q6ys29gkN4swiBHiGjoCpnN/jMeLQe6N82r 1yZ3F/0QVBomg/FRTHq/G/KWrG2JaHE= X-Received: by 2002:a05:6214:d01:: with SMTP id 1mr2179868qvh.34.1642038731591; Wed, 12 Jan 2022 17:52:11 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.10 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:11 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:33 -0300 Message-Id: <20220113015101.4-12-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 011/281] aa: 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: zu9eHRV8NK9c From: Anton Khirnov Signed-off-by: James Almer --- libavformat/aadec.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libavformat/aadec.c b/libavformat/aadec.c index b8a5428f1f..cd275aa2f1 100644 --- a/libavformat/aadec.c +++ b/libavformat/aadec.c @@ -178,7 +178,8 @@ static int aa_read_header(AVFormatContext *s) } else if (!strcmp(codec_name, "acelp85")) { st->codecpar->codec_id = AV_CODEC_ID_SIPR; st->codecpar->block_align = 19; - st->codecpar->channels = 1; + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = 1; st->codecpar->sample_rate = 8500; st->codecpar->bit_rate = 8500; sti->need_parsing = AVSTREAM_PARSE_FULL_RAW; @@ -186,7 +187,8 @@ static int aa_read_header(AVFormatContext *s) } else if (!strcmp(codec_name, "acelp16")) { st->codecpar->codec_id = AV_CODEC_ID_SIPR; st->codecpar->block_align = 20; - st->codecpar->channels = 1; + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = 1; st->codecpar->sample_rate = 16000; st->codecpar->bit_rate = 16000; sti->need_parsing = AVSTREAM_PARSE_FULL_RAW; From patchwork Thu Jan 13 01:49:34 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33302 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp13491iog; Wed, 12 Jan 2022 17:54:32 -0800 (PST) X-Google-Smtp-Source: ABdhPJy9ggpx/m3FI2nFxNyrTf4prxwIXMcqX2y3b+PB7w5YZxqFcI3HVgrbESqsvP1+Atctrw1F X-Received: by 2002:a05:6402:1907:: with SMTP id e7mr2214378edz.44.1642038872290; Wed, 12 Jan 2022 17:54:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642038872; cv=none; d=google.com; s=arc-20160816; b=hfAhtNKfQr12qtB8JdSpJlGA8ZVsEVjqnYeZGBzM3r4kQiaNtAdFkDxAgvKEi8//nG vq6tvLmnyiYGhoi6NTljmqPujp1TAuwQEqeYfxiMo3PnSiabdVJUjZTB4jxMPYz881do 48DcU7KGCY/XdjrrQJiIMgI/uQUWixd1BjmMKqOP5/ZinOeuiPsSqCJe483m+LYOim+o XYoE9XL0kYcmNpiwHnOHJrC+JnS2SVkqnfABfb1IzbHPWmY5FZ9jPuUNZ1E8tmRavrZf yHQzaZWcPt/Jl8XZsFMBivSW5sRYNwRR1wGoTyVj+pLkO5wJQl8oxRfAYpFaYUgZtFnf pb/A== 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=pGxznPd1fEnY+uM/FUBnQHYs33yKLuYvJeoufTKGGeg=; b=tdfhLc3HXD1anVu1Rb8xNJ21aH0+7hLn4ik28HZOJyKdCpsThqWr2nKjx3bBH0s1qv ovaCi5zFxlTgUL//Vw3XraWwnq1QtY2nVC824SVztrFz4rEBvBC2IKP9j79j3iugAqll Ef6aAKrCKxdwAHn6o3LYRDre4mdT90+HC67mTE0tjHwGNzY9+7m3xNRnpGEJwTxiuCTh Q+oU2HnQ7ita3v2mstg33BwaT5gf9CbnZLe3J34Mxtk6rSGr/X8Sz0TCh5xScqQa+sWF E0cZCpdzITeIxsfxC3gRj2xhomF1PpJv4gQjLOfqaKql4WTEMGRrp+jlDICyUtJQvrPi McsA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=HqRXLftI; 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 z11si902339edd.567.2022.01.12.17.54.31; Wed, 12 Jan 2022 17:54:32 -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=HqRXLftI; 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 B6ABF68AF8D; Thu, 13 Jan 2022 03:52:18 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f47.google.com (mail-qv1-f47.google.com [209.85.219.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3699168AF5C for ; Thu, 13 Jan 2022 03:52:14 +0200 (EET) Received: by mail-qv1-f47.google.com with SMTP id r6so5031320qvr.13 for ; Wed, 12 Jan 2022 17:52:14 -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=512ft/qic8Yd87jhP0QsVsYGC7Jh9q5jFrMNMxW2fwU=; b=HqRXLftIPs03LygGXKqzCuJcjnrOUjYp0PdPkFxtAtMdLVgtM8Z4PzKUbH8ci5YEHX GrskM0odmKu6AT/mEVAtVfX/dI1yRpltp9tN2P51ifqk6wBePGRcjKjp9VKZzBfPCwXu UAkl8mZbx2XiY+swelRsSfnTd4tlxbrBNRLa/oKQvGwq29clofb+3611GEnBoM1Yhnwn RGUgP848yypLtDOMw2UVHPiUVdvOFeuM++XVdnMug8rd8dz1j1bEssXxQmaD8yjh+zGt AP8AERou9IDbBJrsBEnJkSrebzeC/RkPpY05DBnEAj4RTj45YzMcmRMmI47krW/ciAj4 yX/Q== 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=512ft/qic8Yd87jhP0QsVsYGC7Jh9q5jFrMNMxW2fwU=; b=eI7UyfyhJOgn2jbBFxwvGd/rGokAHDre5w16Yv10imEb9XbfT4c1SsqaawU8m1XaYf 6Lldsj5/sSZju++nQrs1sYHsOs0sTtlbYFOPp5SXo0Gf/XxBbDY9aPkCrR7lZUslVMhf f177jhPiUab3Mvld+OhpbIRJBk7wMvoLVfFl29dSR7833xKXC9vtYDn8D+PioC/FcoMs BHwQwy8RzKLkpU3BdDZKBr/f2/4/8UxTvTfDZhREMefPZLi5mdAo39gTrrcIO/RLndXJ /xQGEGKPi3vsGQWjotI99lxG3G2JoGpLE+8+q+/fA06YEstLyP5Yu6iPKgNr/78d+KXU bGrg== X-Gm-Message-State: AOAM532wqdyxKKGXNL3HTjh+OYksWW85jJFaTjqDjSHM4lnwg4BiQALn BIJLrkVPY7nl9Dw4xs1rIyWLRY2slcI= X-Received: by 2002:a05:6214:c24:: with SMTP id a4mr2060178qvd.127.1642038732810; Wed, 12 Jan 2022 17:52:12 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.11 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:12 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:34 -0300 Message-Id: <20220113015101.4-13-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 012/281] aax: 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: 5Z/TPZIqlyhn Signed-off-by: James Almer --- libavformat/aaxdec.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libavformat/aaxdec.c b/libavformat/aaxdec.c index b08ee036ed..8eb2540407 100644 --- a/libavformat/aaxdec.c +++ b/libavformat/aaxdec.c @@ -279,9 +279,10 @@ static int aax_read_header(AVFormatContext *s) ret = ff_get_extradata(s, par, pb, extradata_size); if (ret < 0) return ret; - par->channels = AV_RB8 (par->extradata + 7); + par->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + par->ch_layout.nb_channels = AV_RB8 (par->extradata + 7); par->sample_rate = AV_RB32(par->extradata + 8); - if (!par->channels || !par->sample_rate) + if (!par->ch_layout.nb_channels || !par->sample_rate) return AVERROR_INVALIDDATA; avpriv_set_pts_info(st, 64, 32, par->sample_rate); @@ -299,7 +300,7 @@ static int aax_read_packet(AVFormatContext *s, AVPacket *pkt) AAXContext *a = s->priv_data; AVCodecParameters *par = s->streams[0]->codecpar; AVIOContext *pb = s->pb; - const int size = 18 * par->channels; + const int size = 18 * par->ch_layout.nb_channels; int ret, extradata_size = 0; uint8_t *extradata = NULL; int skip = 0; From patchwork Thu Jan 13 01:49:35 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33303 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp13585iog; Wed, 12 Jan 2022 17:54:42 -0800 (PST) X-Google-Smtp-Source: ABdhPJw6QcOH69gUoEADNgm3JgnN3IvmnoQR+Ri7ykZmmC+JlZMMYIDbBWdlwU8Xd9nFSD0Bv8EX X-Received: by 2002:a50:9fe6:: with SMTP id c93mr2245755edf.170.1642038882198; Wed, 12 Jan 2022 17:54:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642038882; cv=none; d=google.com; s=arc-20160816; b=s+MVgqYR7d0sRaCWnnNyDgCkafaNdlJ0fMwWfW49GeZt69BttkwokqckTs/mIjClBp 8kKUOU0twbViPOWCXI6QogBx1lg6RD06EfBkZxMcvnMWcdIJ4m+u3nTWkR/gtXPxPF5A OiaTEOXIuBlTNibiQgQXJzK6VIUVCUtpix1lc5WrH2kKrj1HB7ZuElc0ry8/vVRrX8TV eC/V0GPp7bP5esdAspdFn1JFA8pfhJ+7clI4pQAPLYSPy/qYQlWVh4dag7wno+SbP5yq aPUJrzQe/kLWdshiF33IupmuyXoLONGqZ5W+uT4Ufr8FYSuYj/BxqwJLWFjN9u8LmDFj HH9Q== 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=jYnPIOvUwf5tJ9+LUVe5m0GOqyWyQB6gBTvzI/AB3wM=; b=HLN5lagK0gj1zicbA+udY386eSOiqYc2l3NaDGJEyBG0cE98vRMLxldX6jBAgqhSWS xgP+Ku1SikFoSnG0PpFT8zBOtvyH7kezID8WSLKiOx54r1mQURy8vX2xwIwtBzXSt6Ig X3HzTR21y3FUmMM6mTTOUVtkbgctcsEJQRUWx9gYj4K4ZC1OBCU3sNFjnEdhh5dWQyuY Tfv6bZRRt31EqdyKY8oxEgG/kGQncIwdDKIG0cYDsUAWtEfRDhJa838wVrKsycIhbl53 RQ2L/XB5ZyQGNg4pfoY6qDArWA4A6RIchMVvXQLQJ2ybQgpv+ivAyujrEEL+4IgQFMDh NeNw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=H07GV3KN; 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 hw19si275323ejc.656.2022.01.12.17.54.41; Wed, 12 Jan 2022 17:54:42 -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=H07GV3KN; 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 BCA4F68AF97; Thu, 13 Jan 2022 03:52:19 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f44.google.com (mail-qv1-f44.google.com [209.85.219.44]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BC16968AF36 for ; Thu, 13 Jan 2022 03:52:15 +0200 (EET) Received: by mail-qv1-f44.google.com with SMTP id 15so5045077qvp.12 for ; Wed, 12 Jan 2022 17:52:15 -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=nOevSgymdots+DtYaPcqX2wL+D2xwSHrMGGO5rjYl5A=; b=H07GV3KNsOrwnQIWT23jEU2/JLXatIm6Bb8AJKTfvPLdh6c4ZXW+BXDFHzGtT2J6Db dfhLpd2RH/drGbULWn/uEwHLttnjLBeDFvHrUmXnRNz7QCprZ+u+/42AfxAaEh7tdnN1 P8AFfwi3NEyUTJTjlqiL4aZMdMc3qvmPZPtZMqiDB4GUIWuzW0OQv78dmjc/IQ6pY6MO zQzupIGvW/P3JPvQK4CyvBuzV4hLI5lSueuCyy5bUlK+yw/tO71nBzi6aXtncJlIWdZa JzRoXUZD3sUO59VA93QkAv3pgkpli+HlB2tmm2KyWFLH65saR0W4Wp6qs825g783HCDK HDoQ== 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=nOevSgymdots+DtYaPcqX2wL+D2xwSHrMGGO5rjYl5A=; b=z4B3uH/tWS0ImcFcGsyDkz9pxVtX1joeyDA269pOUrpOAAWfE2gd0BNPnpnZtXwE9t 7H/y49I41ZyAsE6HaGP7FT1zhrEi0yq5SKlmg63GlwyUQ8JbWXWVsf/Mj1W8pTuY2ncj r6rCVvknZ9U7bNw75vhD4xOYF0PUVf1ndULPX5/sAp9MvDrQXfLaDAyQ+5MsGv///+ZT u2dFXb64Bp3VdOQnX0EidE1UggMfYOQZFGfiUZNBoMD+fCNtnTwpGdgK8WZi5Grmslgs J49fj+4OJh6qYQ3LM2BQdfFkN5Y/JOAmhAYVlAFrpoBw5oIFiK76voA2EKkmqYMacPU4 R11g== X-Gm-Message-State: AOAM533keDv/idJbOJ8kzPmlEiHVokssvkEVtWl1XPrmliJW8fItZmMN 6VOVsq2/MAqeNHH7F3SA0s+JGNyeOH0= X-Received: by 2002:a05:6214:2307:: with SMTP id gc7mr2206927qvb.77.1642038734060; Wed, 12 Jan 2022 17:52:14 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.13 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:13 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:35 -0300 Message-Id: <20220113015101.4-14-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 013/281] ace: 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: QEEUJQTpTtfZ Signed-off-by: James Almer --- libavformat/acedec.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libavformat/acedec.c b/libavformat/acedec.c index a52a0f0e54..74128e0a6a 100644 --- a/libavformat/acedec.c +++ b/libavformat/acedec.c @@ -74,7 +74,8 @@ static int ace_read_header(AVFormatContext *s) st->start_time = 0; par = st->codecpar; par->codec_type = AVMEDIA_TYPE_AUDIO; - par->channels = nb_channels; + par->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + par->ch_layout.nb_channels = nb_channels; par->sample_rate = rate; par->block_align = (codec == 4 ? 0x60 : codec == 5 ? 0x98 : 0xC0) * nb_channels; st->duration = (size / par->block_align) * 1024LL; @@ -85,7 +86,7 @@ static int ace_read_header(AVFormatContext *s) return ret; AV_WL16(st->codecpar->extradata, 1); - AV_WL16(st->codecpar->extradata+2, 2048 * par->channels); + AV_WL16(st->codecpar->extradata+2, 2048 * nb_channels); AV_WL16(st->codecpar->extradata+4, 0); AV_WL16(st->codecpar->extradata+6, codec == 4 ? 1 : 0); AV_WL16(st->codecpar->extradata+8, codec == 4 ? 1 : 0); From patchwork Thu Jan 13 01:49:36 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33304 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp13696iog; Wed, 12 Jan 2022 17:54:52 -0800 (PST) X-Google-Smtp-Source: ABdhPJzUV9VOPYxll9xPc2mjOtb6Pw+sFZiyTqOg9FGX1cVcFOyypggf1cfMhTYrBeaxo5yhuyRe X-Received: by 2002:a17:906:3e8a:: with SMTP id a10mr1824119ejj.612.1642038892525; Wed, 12 Jan 2022 17:54:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642038892; cv=none; d=google.com; s=arc-20160816; b=RQTYNJGIDx1xrtrpKTxJZbBPRRqTrvGSs8LEyBxQwSDWcDSVEkWEGZccIgvCIYwtd5 OMWEW5dyWSm31atBfBTeV3ZRl1+WNAn4F4pwOw0K9/HLbtALA6Ljnn/IG1Jk9Ya8hs1s sIrHhCJ7nXRqqskKd2yuGjfGAjiNKoGkxK26DvJwXXG6UU0lWxvci4NvXVWX5HXYpIn7 h3pacURurGjme5jARi3W5eoBvYDUB86CBJgUplZuwVqGpgfw1eKFxRYWf347pWfEQatp YYkkWVC9zHgCX42WLNWTnhaNeJZTbuwckLUXZJ+DLvSfWgZAi7NdHhvaPuDosNU6CHwP L9ow== 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=xreVnxjYwaIB3iDNMB7lvfIlyCI1JJimAbDA8WeV0s4=; b=M1B86iQrxhLNWfjd99QJUPLfeEytlQZyk2oKRMJ0q0cX8eu6DhqjuKN749FJcubHxh zkbb564y6iBWfLZKy6eN8+w+8JSKLEWR1hK3ZJC7vM2KWDxxdh5QjE27vmTPTm4mIWQy uYVcMTz/6jrxjjm3JPtuqIEomgPRwEZJSUWr4YEKyhbypltC70hdHhvOB1UzkWcnawL+ gPAps7kU4BXmWezGm0zIx8RmYnr8LOTVdJwnPMLUV1HGYFnwfD39VLUZuI1SWbN7f7CI JCLVEY/ELcaRJA0H1gqxQLolYE7444RlPf6MYd6OtWk5wgADnBc1zLtpPWMYWi2Inaim ET7Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=o32Ki6Ju; 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 cy12si802739edb.629.2022.01.12.17.54.52; Wed, 12 Jan 2022 17:54:52 -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=o32Ki6Ju; 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 BCE7B68AF91; Thu, 13 Jan 2022 03:52:20 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f42.google.com (mail-qv1-f42.google.com [209.85.219.42]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A6FD268AF7F for ; Thu, 13 Jan 2022 03:52:16 +0200 (EET) Received: by mail-qv1-f42.google.com with SMTP id l13so3579671qvz.10 for ; Wed, 12 Jan 2022 17:52: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=kSSC8FluUjNunPAt3fQv0sPy65m6paXqhNgDYLS6xVE=; b=o32Ki6JuMu9ZJmtPQYloHNHk2vFQlIZ6ITkhID/vVaRjfQybabEnrVfL4Q7mAnTPKr DBcMfpJ9QS2bYXvVzSshwCDp27WY6HuFzLCxlBDXL8mk9m+gvnSBtewoRrdz8CpofB4U LJ26MBxwRhT+Fh3A0hDHigdKCqNl5NsiPn/TWjfAcu9AC4JpbMfrvbODZzl3JSJJjIjn lgRev9ljKdf+Y9rFrO0eoTmXooqkPSVnbOS6r0ycU2eTE1c6q55e4JMei0EvbS/DmUR+ UkmUQEqO03d+fwNKf1LDG245bLYfJzDG3cB59zFzE7abJM+O8cK0Qu8UFV/KpcjWWpkW QtiQ== 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=kSSC8FluUjNunPAt3fQv0sPy65m6paXqhNgDYLS6xVE=; b=lHDifhf4w2bNMsz/XY48e33vmMrE1YxhQGbixP2KIlnQNrnBZlBFqUWRejaCSIWNqX JrAYY2Ohli8v7y5+pmQk1zdw0CYL4DhItWrspxWTK9CNDr81VbABF3nW1jfbLbgMdkPI iCiwalnTBOPmrGDUUosjfMyEEuoamFyeQLokxXqaX0jrCTVYV0sBg5CtFitn3Hk6dLe+ RMgwDS6u+uSEgM9pVMAY7+MPP/iQ/vRSiRUqQIZjfRxdOhQAw2ovKeCd5xTr6QdBhDow b2op8aRI7zwZt7JbSi83WU+U+bKMFBkv+KTli7L57Dat3P0jg1RBFrlfjfpTWk6h4E1u nVvA== X-Gm-Message-State: AOAM533/wmmJxeCp79PS2aLog80jt8DCiLdq92lO8HYau7foTgZQ/678 a/PClXan7TOfZ5Eh0I95EZJJFr1fBfc= X-Received: by 2002:a05:6214:2684:: with SMTP id gm4mr2165439qvb.131.1642038735319; Wed, 12 Jan 2022 17:52:15 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.14 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:14 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:36 -0300 Message-Id: <20220113015101.4-15-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 014/281] acm: 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: wMaLXWjVqJyd From: Anton Khirnov Signed-off-by: James Almer --- libavformat/acm.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libavformat/acm.c b/libavformat/acm.c index 0ee9114f70..a6da000130 100644 --- a/libavformat/acm.c +++ b/libavformat/acm.c @@ -48,12 +48,13 @@ static int acm_read_header(AVFormatContext *s) if (ret < 0) return ret; - st->codecpar->channels = AV_RL16(st->codecpar->extradata + 8); + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = AV_RL16(st->codecpar->extradata + 8); st->codecpar->sample_rate = AV_RL16(st->codecpar->extradata + 10); - if (st->codecpar->channels <= 0 || st->codecpar->sample_rate <= 0) + if (st->codecpar->ch_layout.nb_channels <= 0 || st->codecpar->sample_rate <= 0) return AVERROR_INVALIDDATA; st->start_time = 0; - st->duration = AV_RL32(st->codecpar->extradata + 4) / st->codecpar->channels; + st->duration = AV_RL32(st->codecpar->extradata + 4) / st->codecpar->ch_layout.nb_channels; ffstream(st)->need_parsing = AVSTREAM_PARSE_FULL_RAW; avpriv_set_pts_info(st, 64, 1, st->codecpar->sample_rate); From patchwork Thu Jan 13 01:49:37 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33305 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp13781iog; Wed, 12 Jan 2022 17:55:02 -0800 (PST) X-Google-Smtp-Source: ABdhPJz98982LZYy6zxy+deq+cjgpeG1GZjFovmMa9frMLRFYxm0ZQ7cNFqxaQFyj30yl/YQB3wv X-Received: by 2002:a50:d492:: with SMTP id s18mr2233577edi.145.1642038902708; Wed, 12 Jan 2022 17:55:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642038902; cv=none; d=google.com; s=arc-20160816; b=k5+jEuKYJGXG81okR9vH7zgEUX2FRkvKSYMMYe/QQGIOhQ31RCbBcudoCsnQo3UTzI 9nSEISsR6zLVH0YaiAM3t+VIX1UuedQ+ILGNFaTiwqbIx12yvhRfjwCbnDq/3HwJPCuu or7E4PY3371UIeXI0f2J1KKLLBSboj+dZnnxumVCpSSaRxYQZeUQYK66gVHUwSrsLkix Tauw3H8dM4hU4dgzfjyLsi2F5O7isMneuQEIYJZkdD8BRds2fDbW4LrtJTI5JVeyMIFD cK3TVlXOznST7GOmTr6Tmny8byDjCEEUzh0vDb4n81o5ilOJMc5qiMsHzX/ho3j9seDm ZenQ== 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=HwgyfdBvsLjjt9Rf01W6OTvtaB8z/VdgZi6hR1+tXKE=; b=BrMqBa8o1KjcH/b96u0Qd4NajKjcbP8dokEQ2+YneVg5kVoQk5oe7OZyIC2VvbuGCs NFV7Na4dBbvLkZArKPuUQiZ3IS0VlZry81R+GE0mUoWaxf5SNPQVQveqO2DxwI8EGkrT PWXlAyPjcWpmfIsp/j0MWhISGiwyK/nuVblyQGZmglYwj/0v4NOHi24M6xNk+2xyQ6KS wVUqCFuDtFBfj2wgQXeIiEsi/peX0l2RD9m8dMAMefmES8mYQ265mHO2uUd0TFlnoTd1 YqySze3ED5x7X541iiHEIEfhGsssFoXKXE5RBR6aYGDYo5SY4gUewvuWOWJF+ZEYaGf1 FKoA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=RQQaOQp5; 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 a3si679959ejd.117.2022.01.12.17.55.02; Wed, 12 Jan 2022 17:55:02 -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=RQQaOQp5; 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 C461A68AFAB; Thu, 13 Jan 2022 03:52:21 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f169.google.com (mail-qk1-f169.google.com [209.85.222.169]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 517AE68AEC8 for ; Thu, 13 Jan 2022 03:52:18 +0200 (EET) Received: by mail-qk1-f169.google.com with SMTP id e25so5525494qkl.12 for ; Wed, 12 Jan 2022 17:52:17 -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=Sp6R3jWRZ+GTCaUv2kvQgm4ICmaV9Pd59tyxYkAaqE4=; b=RQQaOQp5BHNUkVvPpuv8Ve320DmRFqKT5L6bWRhSCXtB72nQxbzgJ76l9dimGTw0Ww 5p60x0MEAVahAHE//F/9ysqlrcRHr4uL6U4jQ7WtW6FNiHa3NT8KIZg7yAGh9taDYAKm 6pjsRzZT6N0H+QudVX2NMTrguFWOJpaP8PgOJsjZUX0pTnTAr5AbP412pu8xrYikpBAG jJRkjBMxBDwpCXdynCSST0plnn8kvuMLXx8oRyA8T4OPTSpEWrA79wUU/1slJoACutoB SxeQV7DjVN7QhP3YvQJZPDKZM4vAK17uq5sdK6GgviAaSU4r+YNIe/3JjzXjnZRGk1wh Ercg== 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=Sp6R3jWRZ+GTCaUv2kvQgm4ICmaV9Pd59tyxYkAaqE4=; b=ZZB5nhpGST2507MFDjHqBL4vU+GMJYe0AfEIxAR0UPV32ATbPDVrB0DZwfQg2RSCFo 74EO1+OS/4kmqBKN/qDU6gFJRkPLcI7XAoU1XcE1PLs2dyh0dJkjUCUZW2wU8XZbXK0y 1S2F0Z9W0Ydzv936FWgFqwMKxUnJQXiKnvc/0sN7TSU59hYP2RM5U9jGc7cWeGD/M3CR As2OB01Uq5+R3APK/LB3RorwMeI2ddKqnZIFL8jXa+eUGI9cEYI2VrB+vI0R0qlfeMNA Nv00niSfLk1Fje1kRzI7UCo2SKvBTniBTxW/6qy1wNPuX7iFmSyb8Nu2+hWhogr0ONbF GAfw== X-Gm-Message-State: AOAM530m1goUQPyxs74zYeGm8bUg4ds3mvobtd8GRgtHjqWgkywvaLEW GmCUopxr3PX5pJ56D0pIooUdHbjXFsQ= X-Received: by 2002:a05:620a:4493:: with SMTP id x19mr1850941qkp.461.1642038736531; Wed, 12 Jan 2022 17:52:16 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.15 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:16 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:37 -0300 Message-Id: <20220113015101.4-16-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 015/281] act: 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: Q4lujGMX8MUH From: Anton Khirnov Signed-off-by: James Almer --- libavformat/act.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavformat/act.c b/libavformat/act.c index a369157647..49639acfcc 100644 --- a/libavformat/act.c +++ b/libavformat/act.c @@ -88,7 +88,8 @@ static int read_header(AVFormatContext *s) } st->codecpar->frame_size=80; - st->codecpar->channels=1; + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = 1; avpriv_set_pts_info(st, 64, 1, 100); st->codecpar->codec_id=AV_CODEC_ID_G729; From patchwork Thu Jan 13 01:49:38 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33306 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp13887iog; Wed, 12 Jan 2022 17:55:13 -0800 (PST) X-Google-Smtp-Source: ABdhPJwxBn82hguZzQOMYbFUj9y0b4yyS7ImhT3skhwV7FEkWoNRmeAfc69a2rahhyFWuE0RNVYc X-Received: by 2002:a05:6402:5251:: with SMTP id t17mr2140393edd.397.1642038913198; Wed, 12 Jan 2022 17:55:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642038913; cv=none; d=google.com; s=arc-20160816; b=kfOKh8R3HdV82ZCuMfSexOpi6ulb9fg1I/mGPBTcwsrZClAW1RaBJWvIbpNu8coSM9 uyAaTeweO18ccUgNcVsHBSVvnvaitb+C9MOIGqiEAySHOGsUzxWJ1qz3qWouRF4WtCxq 8Jy1QsHt9FcBjHzw/OHzsnmglkdAH5GZ/8bwRcTkea8Qzj0GLkhd2VYUSRGLFoGF9cla +tMHjXCmWGboU6AOok9CRWYTNc0w8KWyyG6kEWC7ZgbcloD3IpSJbA8neD4kJRbIkjl4 WK+yeAwxRMsvzbx4byu3FWEz0wHZUYYAY/r5rp06P9c2xwoMQj1GEZyVuyXd9ZCdqO9t vlgw== 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=8pW5ZSXesTTSxBgWeBdzNyEjEbO+WI15Bby+6sCBUj4=; b=XmtFxeSMApht7u2E/SgNmryTG7CM7KOYEivzP9ppJ3KCeBY9z5qcYQF4IDuBE1yK7p A5MV86ti8cg7YugKvDXcJWZ2uzoSOMy0VqJkZ/Beym2qb2Ax7l2UznpKVXhMAjQXH5oX MtEKBg9qbHOTKnNZpw/OYR3zb+IX+jfnkY1+b/DxIiHRayxEqcDOrwRxLnRJGZ/JJLZn LLaaXImsar5Z19Zy7a2kQaTubVTEqoDrj8PcUgl1ZbVxOmucolOkYI2YFNuk20YhcT/z wVSj0ydTPTXBG0nAOmLbG0tBxVEQwKpO42m2lJqkDZW1gNvAs9y/9yBKqTyRMKlDXaJF ufbA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=WuMu3wZu; 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 u21si721175ejm.758.2022.01.12.17.55.12; Wed, 12 Jan 2022 17:55:13 -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=WuMu3wZu; 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 3E25A68AFB7; Thu, 13 Jan 2022 03:52:23 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f180.google.com (mail-qk1-f180.google.com [209.85.222.180]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D26AA68AF98 for ; Thu, 13 Jan 2022 03:52:20 +0200 (EET) Received: by mail-qk1-f180.google.com with SMTP id t24so5523651qkg.11 for ; Wed, 12 Jan 2022 17:52:20 -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=vygrBIcdFt+Y416k/+pMYchm9gDZoh6w1Vdds5JvAnk=; b=WuMu3wZuQeIom/9L49kEPDL7e8++mo5ArjbEwhcZg8sftUqRU3PH0/jx6X4gwAUB08 qWDXPamtDMG7kr3anKkPxPefzxnJ+MjMvIQgfE/kcSKTi2gzJBiEol0pVrA5Yrdvh10o GHP/VRI9vl6A2vaypV1Xv7VunzyS9UL9iKja5yqVfk+Qlbk4uUnxp8URSho2ezmYwIpZ PRzCfz9huppKVNtDn8RBHCIw8Gjlh8zGvD2KEKVXL0Tn+9Y7EFZGEL5Sym6v6FmnbDQy /d5o4HhEEzSsYVqcMH+mLePD6JhH7LCtvMbCwJRRAvnHGpo4HEvwti2NOho5OxpSicen O6nA== 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=vygrBIcdFt+Y416k/+pMYchm9gDZoh6w1Vdds5JvAnk=; b=vGBLTxtP1kZT5WeqLgvP9iKYfzCN47CZml6i/uPP6lS9pxhkVkhvo3ks2b+owJI6Re YqplK6KiIcpVFygm0rp7r/LuYDtYiKSuokxOa0r7fJ49rrLyppl/c7b0clL6JvVdRgpv ClCecs+G5Y/CjaAvhGMaHSp+vvFO7wTrjq/U+6z3LgzSr4U1zRyxPIuVUkRW6z6C34BM /fC54oq1Rm8xGHv8Jrko8x2XvuZNrrfIqZzR81AA9UyLWiU7XAVaulsPZN2ku3hwJYWy uKE9KX44RorHVDLhduerh2arn3laBQSCD0Tg+RDcXNvO0nLkeFs5oKpsDvRK0l4kNOuN yq+A== X-Gm-Message-State: AOAM533N2yMyaX7H18hIpGf8/gFhd2om2mEbxewazniz49LUkEnHwPzG zLnmgHuj71qE3WzxyOAnEBNjpkAoS28= X-Received: by 2002:a05:620a:1098:: with SMTP id g24mr1157321qkk.123.1642038739131; Wed, 12 Jan 2022 17:52:19 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.16 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:17 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:38 -0300 Message-Id: <20220113015101.4-17-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 016/281] adp: 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: E3c0i/5bd+TM From: Anton Khirnov Signed-off-by: James Almer --- libavformat/adp.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libavformat/adp.c b/libavformat/adp.c index 6d5f9d274e..c9a5a04507 100644 --- a/libavformat/adp.c +++ b/libavformat/adp.c @@ -55,8 +55,7 @@ static int adp_read_header(AVFormatContext *s) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_CODEC_ID_ADPCM_DTK; - st->codecpar->channel_layout = AV_CH_LAYOUT_STEREO; - st->codecpar->channels = 2; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO; st->codecpar->sample_rate = 48000; st->start_time = 0; if (s->pb->seekable & AVIO_SEEKABLE_NORMAL) From patchwork Thu Jan 13 01:49:39 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33307 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp13980iog; Wed, 12 Jan 2022 17:55:23 -0800 (PST) X-Google-Smtp-Source: ABdhPJxhD5KkPEZeaCIuoZUxzyj1iunY7uFkC046uwZJKofcz64SNUoUl/UuQD6w19nlss5J3EPc X-Received: by 2002:a17:906:c419:: with SMTP id u25mr1950994ejz.55.1642038923744; Wed, 12 Jan 2022 17:55:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642038923; cv=none; d=google.com; s=arc-20160816; b=r2P0t9nQfMod7l6vOEYx0JiVBtWEz0pMoRu9/yPj0c1uadTezFcDzWN9A5BGhqAGLm fl14HrlHiSWPcIltUxwaP3n00H1wk3LYXOfyL9Ih7Lq7Zq1nWh+y+Hju5D1Dtftm5Ivf KKgAVsV+WuBmTqfK9xX757QSd8W6KwrD+Bhr9UIrGZONJaCQFScosIsamXH8qXmejIQc HJBf++r9quG3jesL4+mjs5Zghw5W8gefxyHGAvYFiJ5iQ1EWFu+lUqXkw1YIqzGLFdoH zjq3leoEEGuJMkWSI7I5vo8/FJrJlPIE8SWT9z+A6uNKf4rs2dIuryMEslGs52J4285N ffww== 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=yyXzI7JQm6TgQotyiRuEQ9p3UlVeSCcCZtXBzUBFZYg=; b=Btpqn21k1q432RsD+GafMQmB0VVJlSDIM6yAVAnClDY0YB+qzcTPhR2JO9TeHGarOQ Lfw2CvcFBmBadc+J4VCoLHievB0B5s3sJXwWwLAxizwGSAXxT8GfcHnc0H5Kekwp4itk 9jNOSYbvrbgmlpKIcrFjayhsaroT0X9dvE3IffGe4LoB1i7dg6T14fOvDcN6TZjKIUCr gmPjqwjW+a2076TizH7P1t5kiaX/RN+WWkdWAjzL7UOzrv0SZuGbGkIm6Guwk/qmU2D4 r0YXDl84hPQeX3BnFKPJrbOqOqUJrGSId5kYieF3Jxk6hn4If2zLup7xeA2rXjjSYxTR 64UA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=lh1DfLnI; 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 nd41si781054ejc.477.2022.01.12.17.55.23; Wed, 12 Jan 2022 17:55:23 -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=lh1DfLnI; 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 30AFE68AFCD; Thu, 13 Jan 2022 03:52:25 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f49.google.com (mail-qv1-f49.google.com [209.85.219.49]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0899768AFA3 for ; Thu, 13 Jan 2022 03:52:21 +0200 (EET) Received: by mail-qv1-f49.google.com with SMTP id q4so5080585qvh.9 for ; Wed, 12 Jan 2022 17:52:21 -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=FbuyZVzcwKBdj+d55zsoEzEimxIqw0PcLF6MP4+XGZ8=; b=lh1DfLnIWHMTdi4PucsUYBte28blDQTdWV5iBdHlrUZmGsIM8Q3iooAaQEtfRTLzR0 WajizTuIxfVWkGbbLIC15KccheFKzKIv9NZo9nKXt0a3GrFGWcWMpZ/LN5WzKYsPBgtl P4WyKbuawrDjV3qFm2uKUOJTeKFhsYc3m0NsQtbi0Ypn5k+vrUphkXbjePWbZHnmIgNq jwdL2rI0yAykjpoib2HMWR+CYfz1kcR/Df+56qYs7LnG/QV3dP+d4bWhcr0/MwWDHcKD C24yWrZhMfVryzNMhUCadABvFvGB/ODU6OVzRS3gliE6HXDRCP6vbDhTpbfPKh1SKroB K1EA== 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=FbuyZVzcwKBdj+d55zsoEzEimxIqw0PcLF6MP4+XGZ8=; b=Gw30LG+kLKaOqC+hRzYQ6Larrh2lUEaC/puk4fwNaUmI3KgERIYVS7UkOcZZ9g1Szz wjS6AENA1e4YQCfnzeNthBzmFPRE/XCQlyCVIvX73pjgiE0uYnph+2IGGXRJeIuaGvhg tvylXw9Inp9IFZkQ/cjAjvuy1rK3dt+6RiOhV5r18xTLeoKR05y6Fs/yQDWUiG+2LcG8 85Q5omZ3P7xQ6Tr0kBVtm446mZLJhNbeYBeMU8gsNRwTmj182rRbiXd0wPxZdaKcgjDR YMDGwPQ0yPBUmA2XmqH+JuzNH9JqwGOv5qiyI290tvM8dNN/Zaez2Oh4q76TFWHUiINx 1RIw== X-Gm-Message-State: AOAM533pN4TmvVoN1yuRfWncHvhh3WDgtxbuFEP/STvGC1HsyaRFTfNf LNtviTOKNG7kPjXL+eiNCEdSLwNoWUw= X-Received: by 2002:a05:6214:2588:: with SMTP id fq8mr497037qvb.111.1642038740349; Wed, 12 Jan 2022 17:52:20 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.19 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:20 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:39 -0300 Message-Id: <20220113015101.4-18-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 017/281] ads: 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: Jo3broGgpZTP From: Anton Khirnov Signed-off-by: James Almer --- libavformat/ads.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/libavformat/ads.c b/libavformat/ads.c index e7b419ce8d..ee329bb403 100644 --- a/libavformat/ads.c +++ b/libavformat/ads.c @@ -48,11 +48,12 @@ static int ads_read_header(AVFormatContext *s) st->codecpar->sample_rate = avio_rl32(s->pb); if (st->codecpar->sample_rate <= 0) return AVERROR_INVALIDDATA; - st->codecpar->channels = avio_rl32(s->pb); - if (st->codecpar->channels <= 0) + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = avio_rl32(s->pb); + if (st->codecpar->ch_layout.nb_channels <= 0) return AVERROR_INVALIDDATA; align = avio_rl32(s->pb); - if (align <= 0 || align > INT_MAX / st->codecpar->channels) + if (align <= 0 || align > INT_MAX / st->codecpar->ch_layout.nb_channels) return AVERROR_INVALIDDATA; if (codec == 1) @@ -60,11 +61,11 @@ static int ads_read_header(AVFormatContext *s) else st->codecpar->codec_id = AV_CODEC_ID_ADPCM_PSX; - st->codecpar->block_align = st->codecpar->channels * align; + st->codecpar->block_align = st->codecpar->ch_layout.nb_channels * align; avio_skip(s->pb, 12); size = avio_rl32(s->pb); if (st->codecpar->codec_id == AV_CODEC_ID_ADPCM_PSX && size >= 0x40) - st->duration = (size - 0x40) / 16 / st->codecpar->channels * 28; + st->duration = (size - 0x40) / 16 / st->codecpar->ch_layout.nb_channels * 28; avpriv_set_pts_info(st, 64, 1, st->codecpar->sample_rate); return 0; From patchwork Thu Jan 13 01:49:40 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33308 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp14113iog; Wed, 12 Jan 2022 17:55:34 -0800 (PST) X-Google-Smtp-Source: ABdhPJzT64ESH1+zvRizaneWS4JllgDeuxWpMkptwpAUQaOj/vTPWA2N+6WA7c+ayarxyLH83cqw X-Received: by 2002:a05:6402:51cd:: with SMTP id r13mr2208280edd.184.1642038933939; Wed, 12 Jan 2022 17:55:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642038933; cv=none; d=google.com; s=arc-20160816; b=Ksaxdjb+893WCbDUWcKERWNShGqpJCdqsLfxfVsEl3toJntzAphH9RriAa5Ph8Hzhy Xo3Tq4fnUgBihV5GrqEqTr1jNNjAR3yczyVl9PXvmJ2Kva5QV/xlKOw0/hqxUbQCvGX1 tLRVClGL0WrU1wHDFZu9/YoTFj5SGBZw5mPWYSJsl4lES3B6mYS8MfdUrahDShEIDEUX 5X48bSUtWlA122QcKw5h3fTR30NyVb7Dk3IPaSzmzSREyeMkPczGYgMPYJeHugMSeub6 +b2IvCLZa6KDWj3Lyw33yZHyUbm453ZdBVV9NID+jcDiOlHdbtlR0Ks6Fu3YHcL9AS69 +6aA== 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=k9uXem07yu4MRhoxbFzXsR9OKZdTfbstQW/0ET8ToB0=; b=Sgcwo1rzIMraS0gPuxeG/0tZa/x9CaBIhSa7y2XmA9lnS1crsp92bKnGlxtRi4luSb 5KnG8EyKngj7w9ktycwoD/35CqNeq4K0EGQl8G3n0Q/0BhRqzJ0llS8GaaNsge0nQxLO iZpRoxlHgRhHJOmQw8f3Je7dPn8L8rdoL+tBcj6/1FrbC5aBAuzXw8+W7++S5mcN4fnx 2OVcVDg53Un8aZALvjxU2eppP857jDZK9531kHiy6T+UoSuRPx8Bm7/DS3yJ2Xe4g9Ww Redsz2Md/xurZIHYn4mcxh33LcfGdalUp6pikw9Lq0PMfYa9GbWAZPMvN9XSden4BD+0 gkiw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=Ow4UdA9A; 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 qf24si836955ejc.107.2022.01.12.17.55.33; Wed, 12 Jan 2022 17:55:33 -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=Ow4UdA9A; 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 1BDB068AFD4; Thu, 13 Jan 2022 03:52:26 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f182.google.com (mail-qk1-f182.google.com [209.85.222.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6446B68AFA1 for ; Thu, 13 Jan 2022 03:52:23 +0200 (EET) Received: by mail-qk1-f182.google.com with SMTP id 193so4855203qkh.13 for ; Wed, 12 Jan 2022 17:52:23 -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=iVAezJUOtw7hicZc2BC6n0J1H4KFYdy7+AEzYJzxFMs=; b=Ow4UdA9Am6Q+d8A5oMl2zv3EXHSzaK0utIWR4AAoNJI0zMSGArVab4T7K/MlUzRMdt 65zPGTR1CkE4/YT39TFR20xLDZN98gzLDWADkUrJWGzstr88iotwLGSPr9UaYBPXGZfS GrSPiiNSthGd/mq1B6PXTVHxz3VK27XdjVGFoC8N0NA0awJN0kRMKC55c6oWcl0UZUSN vMgJ/y2z6gZP8pD2rNKZauBMu1561WC/7Zb0Tb6VUF+TZqfGfw6R86o+n6TuzS50aOL5 c4StMbt6+zd5ENxs2SvVRFKUxL2aexVhslNxwoUSLTiaROYaE2d8ovZDlFF0NZ9/MCVu RixQ== 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=iVAezJUOtw7hicZc2BC6n0J1H4KFYdy7+AEzYJzxFMs=; b=YGhQns1VSZc//yctoULOkIh5htc7YWIl0tz9mkqzinLu4UuIaWa/7fqUrEhVrwQL31 Taj4wlFRAeBLfCGPFEXczim9h5FIb23535WTIi2nBK41Gb1LyXOaKE5QzcJviOe9H9Gf qDljVMXxeWDwdF6UyhEz/CZ+Lod+JfTtcvESa5SYAK4eF3WviB/J47tCR+lN7UErdNOy ZwFwwtPY1brV7uIdndP27Czug1m26xNxVx6vDQ8KqZYbCxb7L4PjpFXoBpXOYVBlA5ry emJ0KWnZFsI9kcr2x6GOeX4aOd0jZX3mFTQ7vTj6PLk1ARQaMKcQSp4if9jG4kHN4ZeS WpCw== X-Gm-Message-State: AOAM533xV/dTrCWSaJckUk0Apr21nCVeGhrKMBSe4tyx5VjVz5e5lEhd Q3GDGdsqHL83mCyT5l12QsDe0sf/43M= X-Received: by 2002:a05:620a:1794:: with SMTP id ay20mr1777579qkb.485.1642038741544; Wed, 12 Jan 2022 17:52:21 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.20 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:21 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:40 -0300 Message-Id: <20220113015101.4-19-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 018/281] adxdec: 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: Q+T6iRmkH60h From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavformat/adxdec.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/libavformat/adxdec.c b/libavformat/adxdec.c index d91d43d114..fa91080f41 100644 --- a/libavformat/adxdec.c +++ b/libavformat/adxdec.c @@ -56,12 +56,12 @@ static int adx_read_packet(AVFormatContext *s, AVPacket *pkt) if (avio_feof(s->pb)) return AVERROR_EOF; - if (par->channels <= 0) { - av_log(s, AV_LOG_ERROR, "invalid number of channels %d\n", par->channels); + if (par->ch_layout.nb_channels <= 0) { + av_log(s, AV_LOG_ERROR, "invalid number of channels %d\n", par->ch_layout.nb_channels); return AVERROR_INVALIDDATA; } - size = BLOCK_SIZE * par->channels; + size = BLOCK_SIZE * par->ch_layout.nb_channels; pkt->pos = avio_tell(s->pb); pkt->stream_index = 0; @@ -79,8 +79,8 @@ static int adx_read_packet(AVFormatContext *s, AVPacket *pkt) size = ret; } - pkt->duration = size / (BLOCK_SIZE * par->channels); - pkt->pts = (pkt->pos - c->header_size) / (BLOCK_SIZE * par->channels); + pkt->duration = size / (BLOCK_SIZE * par->ch_layout.nb_channels); + pkt->pts = (pkt->pos - c->header_size) / (BLOCK_SIZE * par->ch_layout.nb_channels); return 0; } @@ -90,6 +90,8 @@ static int adx_read_header(AVFormatContext *s) ADXDemuxerContext *c = s->priv_data; AVCodecParameters *par; int ret; + int channels; + AVStream *st = avformat_new_stream(s, NULL); if (!st) return AVERROR(ENOMEM); @@ -107,11 +109,11 @@ static int adx_read_header(AVFormatContext *s) av_log(s, AV_LOG_ERROR, "Invalid extradata size.\n"); return AVERROR_INVALIDDATA; } - par->channels = AV_RB8 (par->extradata + 7); + channels = AV_RB8 (par->extradata + 7); par->sample_rate = AV_RB32(par->extradata + 8); - if (par->channels <= 0) { - av_log(s, AV_LOG_ERROR, "invalid number of channels %d\n", par->channels); + if (channels <= 0) { + av_log(s, AV_LOG_ERROR, "invalid number of channels %d\n", channels); return AVERROR_INVALIDDATA; } @@ -120,9 +122,11 @@ static int adx_read_header(AVFormatContext *s) return AVERROR_INVALIDDATA; } + par->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + par->ch_layout.nb_channels = channels; par->codec_type = AVMEDIA_TYPE_AUDIO; par->codec_id = s->iformat->raw_codec_id; - par->bit_rate = (int64_t)par->sample_rate * par->channels * BLOCK_SIZE * 8LL / BLOCK_SAMPLES; + par->bit_rate = (int64_t)par->sample_rate * par->ch_layout.nb_channels * BLOCK_SIZE * 8LL / BLOCK_SAMPLES; avpriv_set_pts_info(st, 64, BLOCK_SAMPLES, par->sample_rate); From patchwork Thu Jan 13 01:49:41 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33309 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp14202iog; Wed, 12 Jan 2022 17:55:47 -0800 (PST) X-Google-Smtp-Source: ABdhPJyvy4rX/Obw5WjUV0oH64ISass24CMkQsVmlP0QhvFY8uauHqs39HotwS5K3IehGWGRcvwP X-Received: by 2002:a05:6402:2707:: with SMTP id y7mr2196760edd.256.1642038946900; Wed, 12 Jan 2022 17:55:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642038946; cv=none; d=google.com; s=arc-20160816; b=kwPmip2LvrKH4lghFwYiyHSfYLREgixwLOrg+8+nhZiJ6+ftMn4tSVISot4WjP5q7s qpGG9XeA0Y1X2QUfD8j716G7XBPEPKGz7j4mEDqJ0Q9N26t+AeZR8kiouLYAJlp87KLV uCtKO4if/dStoqLQsSZUkrRVBQe3vl3LlRbx+5HnDoYLgUXpuliDukUWCC2MVisEtReD OisMTMVqu0YHp5paQu48gYzKXSsTNpay1J1l/vGE1wj6xk1RQ3rSdIlPjUBuhjkkck2J Czul/hhKIdV6Jg4roMnj3vZmxlqouxFjWnPDsdehlGgT2kramklT8BLR5qNCwRyfqSSE 4vAw== 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=z3tNVlLmGCEq6yM61QfN1ySrbM/tR9qE2nSme/Un6R8=; b=Pua3g3tVIkBn4R6jTgBSLVFfiXuoXjY56/J78hJ/kVaqCkEhYFIXbEVGLskS7R5fMZ i53pKYcsV+YZd4AX6l1NhZAmGqQSzVB9lrI4mP3uq5kQVH2H44SAQaHvErkOCcgpYNFa rPCCDAwuMt1cs07oBrrDK0g8Q2NyKShgG41xLI07bUssjuh3T2RJbRW27UgUPPFo1nJK hPku+hbmyUQuN6SqT6XVPnrBcZHAZp7yMybqZYgOg7SO6uMMCGOl69JvsgZuIuk8eLTk Icqt1GVEnbO8bNRiTWqTUN3bIZ5EAxW/7fI7guDsHBTGdhKDOHVK+3ykH/w0eQFDIWp5 KNHw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=pFR0LQ1b; 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 op26si689694ejb.31.2022.01.12.17.55.43; Wed, 12 Jan 2022 17:55:46 -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=pFR0LQ1b; 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 08D5668A3B8; Thu, 13 Jan 2022 03:52:27 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f169.google.com (mail-qk1-f169.google.com [209.85.222.169]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 26D4668AFAF for ; Thu, 13 Jan 2022 03:52:24 +0200 (EET) Received: by mail-qk1-f169.google.com with SMTP id t24so5523777qkg.11 for ; Wed, 12 Jan 2022 17:52:24 -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=8fB97LxUkl07iM8cO0JHGK3bOw+G6t0JkY/LjJupK0w=; b=pFR0LQ1bWAasvS8S4PArSv5qG5HpJw08xjX1h2OFVMoNYOj9fveboHKVA+TXRMDB2C YQfa2wpBJSrFQthw3e8yjM8WFx/nQ5GwVAvXtBsLj0FDy/RF/3xKQKq4RIY/c8mfSFyf oC7TKbsu1gPT9MjVz6v6eg09UdmrV+ULR6o7ir1Do16xUllQXCpjUiPoopkprATGMeKM 9MufP1nHE21/WdI6j6uPDg48MmjxhQ6mMqKS3pU8QpryO6Ubbg38Qfn7Cjf95HFlGojV 7V+yHWIRJv8LQ7PcXVuFy6bP59tRmJ3jLq9pnzGpVWMWpYNh8a1nv6Ea/8pxlVOerUBV 2dsQ== 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=8fB97LxUkl07iM8cO0JHGK3bOw+G6t0JkY/LjJupK0w=; b=LrKGPW2AiZM/teZEySozZ87RlHe3vKVHSTLAvTFMksjQoy9Dl9yVxqL2nT1ZVJIRVD ubTSUUQpDZIOzenp/IMvIqucmyvQ1KceFIi7HI89/isq7Zp6i8J7/yTcavT6Hv22mpzh FmOXGaw6GSwh7ul5No3DtMG/9LJnAXZ4Ybzt5F5jzyKo108lcadWMuCYuolx9v/bv0zY 3FCYlB0HiQs3LswnKgI9fF6aAgbQPpEX6lv7pIa6WfgrACVwmOm8d1hdA3F0arsdXERy RFGzy4z7F8fICLaNB1qlh++AFTaPg2ChnXCdLAU9koGIW1m1yWXleDqe6c8EL1CVMubM V3JA== X-Gm-Message-State: AOAM532sDS0TdpyL3P8S76y+JvxSi0/agut0BINv3aYRyB1K342OMF/Z qvIjjfw0b01RV3SavY7mKhrfX3ZOM3Y= X-Received: by 2002:a37:e112:: with SMTP id c18mr1847076qkm.508.1642038742774; Wed, 12 Jan 2022 17:52:22 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.21 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:22 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:41 -0300 Message-Id: <20220113015101.4-20-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 019/281] aea: 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: FlVHzWQfFc3m From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/aea.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/libavformat/aea.c b/libavformat/aea.c index 14d0840cf3..f4b39e4f9e 100644 --- a/libavformat/aea.c +++ b/libavformat/aea.c @@ -62,12 +62,13 @@ static int aea_read_probe(const AVProbeData *p) static int aea_read_header(AVFormatContext *s) { AVStream *st = avformat_new_stream(s, NULL); + int channels; if (!st) return AVERROR(ENOMEM); /* Parse the amount of channels and skip to pos 2048(0x800) */ avio_skip(s->pb, 264); - st->codecpar->channels = avio_r8(s->pb); + channels = avio_r8(s->pb); avio_skip(s->pb, 1783); @@ -76,14 +77,14 @@ static int aea_read_header(AVFormatContext *s) st->codecpar->sample_rate = 44100; st->codecpar->bit_rate = 292000; - if (st->codecpar->channels != 1 && st->codecpar->channels != 2) { - av_log(s, AV_LOG_ERROR, "Channels %d not supported!\n", st->codecpar->channels); + if (channels != 1 && channels != 2) { + av_log(s, AV_LOG_ERROR, "Channels %d not supported!\n", channels); return AVERROR_INVALIDDATA; } - st->codecpar->channel_layout = (st->codecpar->channels == 1) ? AV_CH_LAYOUT_MONO : AV_CH_LAYOUT_STEREO; + av_channel_layout_default(&st->codecpar->ch_layout, channels); - st->codecpar->block_align = AT1_SU_SIZE * st->codecpar->channels; + st->codecpar->block_align = AT1_SU_SIZE * st->codecpar->ch_layout.nb_channels; return 0; } From patchwork Thu Jan 13 01:49:42 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33310 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp14290iog; Wed, 12 Jan 2022 17:55:55 -0800 (PST) X-Google-Smtp-Source: ABdhPJzict+AhlDRAyqVdIuRE5CtvoZV3H4xz7IVrB4u1SA61kSkjD8/wnTF53zXNVaLJiWdsY2Q X-Received: by 2002:a05:6402:2804:: with SMTP id h4mr2132931ede.193.1642038955678; Wed, 12 Jan 2022 17:55:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642038955; cv=none; d=google.com; s=arc-20160816; b=fb+Dbbwr4Gasz4UVNFDm2to4xC51EABNNXqIVMyrDReNL/5aJ3Hj7N4vyiCfwvjFzh 2UCMHp5mnclRAo96BzzocQeuX7StVd+WeCUeLFPExnuEZq/e5Pj8pvdo90GxDlnyW4F7 RGcYDUmb1PzROb/pGy44lqqIzYZxEi9r6ywSvhxHveRxVHRDBBKO7jxYxSU424jAmRSs Wd8mXvP2duSaj9gqJpoRQPcjk1gTXSXPEAKsk8NgGDbXzgxINaNDfn0o88yedIte8p3V sXDxws4mqrbEGrqbKfsGMWdSB6B2cRqA6h//XFn9dv5ysVteSzlcAw44VjhCpFSjWBcT +sXA== 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=UVWDemHFTAM2fJlrbNFImWLtKgO1x9CGthRQ2ky6Z90=; b=gLQ3y4tenmi3cQ2Y+CuAelTtflsbjfboO9nC76NiVXI/CCZXSQjp83O7EFLd+DBLWX eIfimrd5sRryTxH75WGeiHBlu/oebStEWYjbRcb83JjYb3LuPl3oE+c0NegZse24fiWO f1yF69V/NYcd7PzL16Ec72h98A1cku9WtiOuSrqObUi8nF6we5xaiMfFy4vAVrLtMnFK prna1HEhiwXjv7QHERbMFafEpp23uiCMO45LLXQYsDU6cgpQUmw/54GlWDFeJyEIEGyt TmxB26PuN2hLwvr1OOyumAq8+dA+h/gg0ErYRHfEVa2qm1A/xxWkQrEZGvCzOfWTrfeh kgFQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=eO42XGda; 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 n10si674133ejx.850.2022.01.12.17.55.55; Wed, 12 Jan 2022 17:55:55 -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=eO42XGda; 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 F17C668AFDC; Thu, 13 Jan 2022 03:52:27 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f181.google.com (mail-qk1-f181.google.com [209.85.222.181]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9EEF368AFD0 for ; Thu, 13 Jan 2022 03:52:25 +0200 (EET) Received: by mail-qk1-f181.google.com with SMTP id z10so1200732qkf.7 for ; Wed, 12 Jan 2022 17:52:25 -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=8OikxSEejB8dOmmHl4ahpMyicDnXIGsT9+pjsJggERo=; b=eO42XGdau+i4JP9hr7eEz6y5Mt14PF1zoKjgSsT54gykLubeHWd/YUl2zTVUWPTPmc 57ugKCT+BsPTxrP8aShRhuf47+80BapHX0GBaS6u4pCTzBv85B1Z5YLAacW9gAJ3axGu bVMIQ7nLc5N5SZy2CYPq9Z0/2Ngcv4evJ/eLwNKUqt3b1DdsecO4Zgf8wzGEVtMXuUxw esEyeia2zX91JegKZ095AXpsMq/cUDqQujIBt/Ay11CHUslm5S9TiQhSc7X70JCSTRW+ 3uyWhmNqWAZdnRPXA5k3FyglQJUGcNVzsKcp5uwilI0Rb9oUXbupgW5lYBjIHBw3tEsu +olw== 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=8OikxSEejB8dOmmHl4ahpMyicDnXIGsT9+pjsJggERo=; b=exw3fUK4Le0aim9DJZkjiolJtz5ziFbODnkwn4HLRjo3SzHBI12Crw/TwtV4psbS6X XhrWsGPIDPuqGf6sRYZPqWbpjirvcmv2qx1yGEnMftbQ9lSMVgGq+F1Ce32nU8yP6vXp 7Eckdbt4zBpl7DkJtdsj54q32nPsTLR/RmrjjHG6ir7saqJ4mKJ3n/sjxm9+o8vIgKyK RHRpckGkPlkOyocLfmp0x5uyOMHRD2Z9ECvW86BIrgU0vpitSmDO89+uKt5rAOtDUMEi ewPp7GtDVeT6/uSC7N0jxpEr8cgYIflCtPVWAK3EkzT82AZbvTPZ5HSZx0xxR/JN+7iQ +5Ug== X-Gm-Message-State: AOAM531j66OCe4sldl+ur3opwPUuQ9sY5J+GON8WvAfL6OKN8IB2KXvr XXcV2J/Tnif1edHecRmoSuQmoxEmMG4= X-Received: by 2002:a37:6681:: with SMTP id a123mr1865073qkc.102.1642038743957; Wed, 12 Jan 2022 17:52:23 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.23 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:23 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:42 -0300 Message-Id: <20220113015101.4-21-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 020/281] afc: 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: HMCzW10WnhiF From: Anton Khirnov Signed-off-by: James Almer --- libavformat/afc.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/libavformat/afc.c b/libavformat/afc.c index 102b74baeb..898c7d03eb 100644 --- a/libavformat/afc.c +++ b/libavformat/afc.c @@ -38,12 +38,11 @@ static int afc_read_header(AVFormatContext *s) return AVERROR(ENOMEM); st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_CODEC_ID_ADPCM_AFC; - st->codecpar->channels = 2; - st->codecpar->channel_layout = AV_CH_LAYOUT_STEREO; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO; if ((ret = ff_alloc_extradata(st->codecpar, 1)) < 0) return ret; - st->codecpar->extradata[0] = 8 * st->codecpar->channels; + st->codecpar->extradata[0] = 8 * st->codecpar->ch_layout.nb_channels; c->data_end = avio_rb32(s->pb) + 32LL; st->duration = avio_rb32(s->pb); From patchwork Thu Jan 13 01:49:43 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33311 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp14369iog; Wed, 12 Jan 2022 17:56:07 -0800 (PST) X-Google-Smtp-Source: ABdhPJyQr0R9+IhNyVsy/+3r3ezzuZnztj9b4mLsFPjoxWZbZlFwZpCIfb4OifG0mVgz1Z+Q6t6W X-Received: by 2002:a05:6402:888:: with SMTP id e8mr918221edy.9.1642038967449; Wed, 12 Jan 2022 17:56:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642038967; cv=none; d=google.com; s=arc-20160816; b=uJl+E1/r6vb3q+hswF1NtNr4eC8VUqIAY/eO1Jcp25yXzv5deoOGAsYXVQqVIDaO6V 0pqRy6IxUeGtc/DI2GA02E4DWVd9YoM6wBuA0jR7n0wNJcaBT1wz9iZXHL/thqPGgOyU juXY1Lb6NreUmHZucAVU0go9gODj5lL2Jdnuj6kIOVHJkYBdLup2pHSexzqOWjCYusMS glWqcphJDsEtgU9FxJjqMIZgqO2ex9ekzATKvPwcxLxnNrHke1Q/OGvSVCXrB5amXfNA zWGE7QoRWfQVvYX9OFlka3v2bZyFqSxYCugpPPtrqOtFtm1JMr3pqeApEOhD9OdGBc/G R0wg== 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=TYR+PU3L1ikic40+d/hBxVLyUUodW9IwKqX73VD25U4=; b=m7af94vTKsnX1/NYIt7JE10jDUGrUj6mGHZ1RM09Gxo2UX1jwS46RIY4ODEw5H5tcv C9Jc1c6is6KqguClqU4jwC0ehyws582+LUncaSRFtaXgXeV7seJo/c75juRqPY/59hiL iKzVsNpjegSmKfExmGzv9AVGCTOJckrfdIH4VkuesnwLvSaltLCOzO/N+NEzVpGbStlQ r4kCccyGQkVtEDer5KAGJdxQ8jnaPdrEmMaSGjU4fKBfd/xWIGGVHPHjN3p2m97yjvp6 zweJvDfDDjkW1xzdQIRgxNne0lvDN7bRmMQCz0EUTwYm3Y47QkE7ssZYAUPDJkIc2pvl XjTQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=UberPBbc; 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 hy13si677744ejc.54.2022.01.12.17.56.07; Wed, 12 Jan 2022 17:56:07 -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=UberPBbc; 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 CBAE568AFEE; Thu, 13 Jan 2022 03:52:28 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f181.google.com (mail-qt1-f181.google.com [209.85.160.181]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DD3BD68A3B8 for ; Thu, 13 Jan 2022 03:52:26 +0200 (EET) Received: by mail-qt1-f181.google.com with SMTP id v7so5304597qtw.13 for ; Wed, 12 Jan 2022 17:52:26 -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=kVJhYZndRusZczw/THbHIdNZI/sw3CosacidPV5X+fM=; b=UberPBbcdnW/7/nXC978kuCt35pkB0FcT+5/lcN429JDBugVfhHv1e9D5wbrR6XK9i YDaGEt1figyYyUY99F25mFmtvFCoZ5SnHpvv7bJxIwW/VvSCy1E2HWxXr55eMCmpm9Q5 P+QcDg5bwPTxOZPeZzOkPHglmdSR5LPLi+z0q/yg1xKcenN1h3GVbWM+gIeItx2uL4YT 5LzTCgBEEazPlCyXDr7/zvgg0g5sceQ8SlFKKEhymkFEK0w46sGRd33wqo5hoUZ8jO6B EkKzx5viKolZUk+McWCenArFMirB2KoSSkA9YH+FKz9ocVUzfRTrO10+yx9dox8NgSlW oT9Q== 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=kVJhYZndRusZczw/THbHIdNZI/sw3CosacidPV5X+fM=; b=5u3sY5bcz8Pvse69gFyWMtcaoIyZD8ZbkADoHtwKY9W5ovL1zQ51bTu84N9UzwHOm0 5/bC4lbyb0rEk7u+E7qMQQEdGoLw3fk5XwbYo9A8FQwH8CsvlHfvcAsH/vyjksID2XOG /y+P5mAOMd70JUucmUzGHjElvHhaFcYBqW0EAAykxnd2lg7fRueOxf8HlPT+TG3ULeP2 cKRSNhCtyK4xA9a8BZpAGRZo0HlY6/i8A0BNHQTo9Lu/9Esb9yECJvwaic3Wbk+zImKC z6nqmGTYr/r2rAo65GCl3xGRRRKULrjrrDRjjNnGOm1LttZE9r7pv3r4MDaPoAHmjoq/ Tjow== X-Gm-Message-State: AOAM533tn82D14gGbWPPvReUbEsF6/96WexRRUZTkQBQtZ2QUGneLdY4 86kMfUD3NafOO8GdIkck/Agqs2L0eb0= X-Received: by 2002:a05:622a:653:: with SMTP id a19mr69584qtb.166.1642038745170; Wed, 12 Jan 2022 17:52:25 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.24 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:24 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:43 -0300 Message-Id: <20220113015101.4-22-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 021/281] aiff: 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: 8/EWSuUDIvoa From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavformat/aiffdec.c | 13 ++++++++----- libavformat/aiffenc.c | 8 ++++---- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/libavformat/aiffdec.c b/libavformat/aiffdec.c index 7afadeb085..c56949bef9 100644 --- a/libavformat/aiffdec.c +++ b/libavformat/aiffdec.c @@ -99,6 +99,7 @@ static int get_aiff_header(AVFormatContext *s, int size, uint64_t val; int sample_rate; unsigned int num_frames; + int channels; if (size == INT_MAX) return AVERROR_INVALIDDATA; @@ -106,7 +107,9 @@ static int get_aiff_header(AVFormatContext *s, int size, if (size & 1) size++; par->codec_type = AVMEDIA_TYPE_AUDIO; - par->channels = avio_rb16(pb); + channels = avio_rb16(pb); + par->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + par->ch_layout.nb_channels = channels; num_frames = avio_rb32(pb); par->bits_per_coded_sample = avio_rb16(pb); @@ -154,10 +157,10 @@ static int get_aiff_header(AVFormatContext *s, int size, aiff->block_duration = 1; break; case AV_CODEC_ID_ADPCM_IMA_QT: - par->block_align = 34 * par->channels; + par->block_align = 34 * channels; break; case AV_CODEC_ID_MACE3: - par->block_align = 2 * par->channels; + par->block_align = 2 * channels; break; case AV_CODEC_ID_ADPCM_G726LE: par->bits_per_coded_sample = 5; @@ -165,7 +168,7 @@ static int get_aiff_header(AVFormatContext *s, int size, case AV_CODEC_ID_ADPCM_G722: case AV_CODEC_ID_MACE6: case AV_CODEC_ID_SDX2_DPCM: - par->block_align = 1 * par->channels; + par->block_align = 1 * channels; break; case AV_CODEC_ID_GSM: par->block_align = 33; @@ -182,7 +185,7 @@ static int get_aiff_header(AVFormatContext *s, int size, /* Block align needs to be computed in all cases, as the definition * is specific to applications -> here we use the WAVE format definition */ if (!par->block_align) - par->block_align = (av_get_bits_per_sample(par->codec_id) * par->channels) >> 3; + par->block_align = (av_get_bits_per_sample(par->codec_id) * channels) >> 3; if (aiff->block_duration) { par->bit_rate = av_rescale(par->sample_rate, par->block_align * 8LL, diff --git a/libavformat/aiffenc.c b/libavformat/aiffenc.c index 1fd6b8a70b..bdaf5c2c3e 100644 --- a/libavformat/aiffenc.c +++ b/libavformat/aiffenc.c @@ -144,10 +144,10 @@ static int aiff_write_header(AVFormatContext *s) avio_wb32(pb, 0xA2805140); } - if (par->channels > 2 && par->channel_layout) { + if (par->ch_layout.order == AV_CHANNEL_ORDER_NATIVE && par->ch_layout.nb_channels > 2) { ffio_wfourcc(pb, "CHAN"); avio_wb32(pb, 12); - ff_mov_write_chan(pb, par->channel_layout); + ff_mov_write_chan(pb, par->ch_layout.u.mask); } put_meta(s, "title", MKTAG('N', 'A', 'M', 'E')); @@ -158,7 +158,7 @@ static int aiff_write_header(AVFormatContext *s) /* Common chunk */ ffio_wfourcc(pb, "COMM"); avio_wb32(pb, aifc ? 24 : 18); /* size */ - avio_wb16(pb, par->channels); /* Number of channels */ + avio_wb16(pb, par->ch_layout.nb_channels); /* Number of channels */ aiff->frames = avio_tell(pb); avio_wb32(pb, 0); /* Number of frames */ @@ -170,7 +170,7 @@ static int aiff_write_header(AVFormatContext *s) return AVERROR(EINVAL); } if (!par->block_align) - par->block_align = (par->bits_per_coded_sample * par->channels) >> 3; + par->block_align = (par->bits_per_coded_sample * par->ch_layout.nb_channels) >> 3; avio_wb16(pb, par->bits_per_coded_sample); /* Sample size */ From patchwork Thu Jan 13 01:49:44 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33312 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp14456iog; Wed, 12 Jan 2022 17:56:19 -0800 (PST) X-Google-Smtp-Source: ABdhPJzR+UU7+XOLfXti9KUZyr6nPRiL8Q3Nl6GamEEqZyYeMlUAAJqQwqm3Lv10q7JMg8rQdYHH X-Received: by 2002:a17:907:7d8a:: with SMTP id oz10mr1865029ejc.320.1642038979219; Wed, 12 Jan 2022 17:56:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642038979; cv=none; d=google.com; s=arc-20160816; b=HH9a/06HSMILNO0lHqjiDSf1BpX74lZSzlYTpLr7OwCoTMV1sD8X0j7yaws7X7bgTc aNtP59Z7CvR/5XKWC7sbZpdMOBmYFBSSVjI59JhykAv0O9zTbtZk5MrKbqR3oxt6cewd PlLd+dqDUpp3ODHfh7p2h5P6gNKcfZ2/MTynQuYk4UQ/239XfJnN5OjtqKjSOVF8zjVs sn61Yh6iJV1wck3o1ylOZTqKnnATnrAtty1stXYAKAJAn6VFUGo4VxVzUnQn2ZlxoTuO BKDKtSsZNXzlKzbUlURPGeuTTZ7r413TCtgXdJumjma4u2T4Il3Tz7ty/zYXOkvrl+hX LQtw== 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=lmT5AHMZWEZCHsw96KgMthvj0aHuk8EIeL5a6AkXFjY=; b=Krh5N9sm3ARUysfk8rftWTYGTBcGCUAjiZI5dxo1KkczvkzhgNSV2o8nWaW0Zn5mik lk9aLkudFjfuBMJtj5PtpqV0CprglwsdXxN711r9Dcpudrk8kjoILwM51reoYbuzQJi0 dUNwBoI81rj2PNEEw1ijtzYbBiVrq+6C4c0oOaAY8KpuMWqQXm5IZ7Ro/EYlxOmjnlr6 npfdCJ32Dlp0uDk9HBXcl56LIoq5MJrLbRoZaaI0sKavOJP+KE8P8F0aBPVH6KvYKYCY UEv+fUNb8MfJ4QhTeJuFA4YFgmaw1XYlagxdeRDjqv6GOSUqaHa/anAFhKxpcT9yREx9 l6vw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=EfeXzTp+; 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 qa31si763977ejc.343.2022.01.12.17.56.18; Wed, 12 Jan 2022 17:56:19 -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=EfeXzTp+; 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 B42D268AF62; Thu, 13 Jan 2022 03:52:29 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f44.google.com (mail-qv1-f44.google.com [209.85.219.44]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B9D3368AFE1 for ; Thu, 13 Jan 2022 03:52:27 +0200 (EET) Received: by mail-qv1-f44.google.com with SMTP id q4so5080771qvh.9 for ; Wed, 12 Jan 2022 17:52:27 -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=6I68AxTjJTy38HzIFT4OQoLLwWShiZmC3GqMIRKEDHw=; b=EfeXzTp+JA2MphO2V4D7LAtcwGeWe7TyoJ1OZBHX+JfBKxJukjwbJ8IhHfv6K06EcE +cOhdpaeslIqPzVdjGqVF97kCQN+JlSS5Bq5LhQTnCzS1itYi5D3gx7jFrtMOsDMDahc H9GNM60caO05frTo8yKM4BpFNFKLxMf8rtNXEa8n556196p8jXKVG8FMI3JRMgjMFvDT N5fc3JDNYkrlwlTLTRC+PFvLtdfzpTDXhgUxOJa/ZoUEDeIQArs2pbh4SBqFoTqraDeI R35gV1/Hk9UZ1hRID9fwjp8BuG6Xa4PDmWla/JSDLCYyHfodmDgFelG2xHE+tI2qEfZR W6CQ== 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=6I68AxTjJTy38HzIFT4OQoLLwWShiZmC3GqMIRKEDHw=; b=o4HvHbC+tVgiBVBDsxOP02BKmYrrXOyqWi1sHWx2LPnVtgYXytpzIUSM8IUbNQkPg1 q3GiWF2/mek3OfEgMt/eT44W3oAcJdf3I4HK+cbGwsZQ7gYyHSv71spk23r8INOYKsY+ chd12xn+6q3YoD27nlS8sQaqrJUU96YAe0oBR6OH5SVk6eLjGcppfWTMybRb089OHprZ q7C1osGvND3GYBEtzvTLhIPcKqc75aFTLxJYKDad37NVjB4EYhYgCJkBGYaQGb9vH2NT 8tRHJODqaOu4Fip0jpX7BJfgV54HUVDQjeQi1k+VcLG5d+w+NPGk5QfIJd8SsI4HHFbY mWNQ== X-Gm-Message-State: AOAM531SOtRZ0zXaKtVJKysSC9WJjEzVBXKX9zFokwUPaG1XmaxJnPuZ xfs2RRrVp2+fIluAxiGM80V1InsJJn4= X-Received: by 2002:ad4:5aac:: with SMTP id u12mr2186000qvg.8.1642038746397; Wed, 12 Jan 2022 17:52:26 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.25 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:26 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:44 -0300 Message-Id: <20220113015101.4-23-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 022/281] aixdec: 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: 5fvySUj18/ek From: Anton Khirnov Signed-off-by: James Almer --- libavformat/aixdec.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavformat/aixdec.c b/libavformat/aixdec.c index 59c3d60da3..a1ee370a6d 100644 --- a/libavformat/aixdec.c +++ b/libavformat/aixdec.c @@ -64,7 +64,8 @@ static int aix_read_header(AVFormatContext *s) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_CODEC_ID_ADPCM_ADX; st->codecpar->sample_rate = avio_rb32(s->pb); - st->codecpar->channels = avio_r8(s->pb); + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = avio_r8(s->pb); avpriv_set_pts_info(st, 64, 1, st->codecpar->sample_rate); avio_skip(s->pb, 3); } From patchwork Thu Jan 13 01:49:45 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33313 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp14551iog; Wed, 12 Jan 2022 17:56:30 -0800 (PST) X-Google-Smtp-Source: ABdhPJyha+r+N0vGyfWChJV18GkbhzcL35trOjhZU6hSuBb965uDqCtCnFmHQohExcRt8tE/M2sl X-Received: by 2002:a50:fe89:: with SMTP id d9mr2206858edt.252.1642038990472; Wed, 12 Jan 2022 17:56:30 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642038990; cv=none; d=google.com; s=arc-20160816; b=prZjR3Gire2FBnfGK16qf0eYG/Xyzjak0UUD3HoJ3M3qsaqv8rW2aUhujVF4uPs2x6 PAfSeLRaY5lcl1JMy/04eg96MMeAyKIB+LVPEVuHfrqifhYGrZ0pzzGkUibQSAOBaanp 5uI6MvJ+6XIZ/yxKBHj16I6knyrQHlXKeoNOGI4OnAVdyYZpRGTHEnmOtbynldoz1GY4 03aOs1TF8QxkQqek2BdJXNqYXXb1djC4jhqYSAnqvKks5eKjS4xPxhO4zqHQ4FJELvts aC5S9gcw5Og8w4piNhXNJcU7lCC/SZckMBLcoCYiaFdQQZjdaZLxe9oq0ylPGDByoFJM JaCA== 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=6rqvFEzR/whYImrDXUYSGCPo3DPF48q9Pp4J83COK3A=; b=RFAHwjzam5+kQI0lbyfBYteBi+gk3JSl98wFmfXQAcCpLqu/+tNtIab8RIsq9KGGyi pVKuuC6HVKum2ZHTtd/Xe1bTTTJRTptr030WQI6JtmANrqopVwOfcDYGMs4WbVW+A61a f8cGhJCuI+tRIwMalGDjB/WEXLwwB+84+fSNp//mn/+IgEXj4FUOnw5C/bh3arVHAY2A vSBudb5thDCUBS4lGK4wSzpZA98S1CRBePlqv7qa6clNm3SzS850cUTixa5GWDpLue7K syrkk5cv1oEtJP7Gkr4IHpSSobmBEFQ7qR/JAeXBU0gWjHuhPtfLPazXPu2dUJSo6WSG +6dg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b="JuHAlVl/"; 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 e1si784091ejs.857.2022.01.12.17.56.30; Wed, 12 Jan 2022 17:56:30 -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="JuHAlVl/"; 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 A54D768AFFD; Thu, 13 Jan 2022 03:52:31 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f178.google.com (mail-qt1-f178.google.com [209.85.160.178]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 49D3F68AFF0 for ; Thu, 13 Jan 2022 03:52:29 +0200 (EET) Received: by mail-qt1-f178.google.com with SMTP id y17so5308944qtx.9 for ; Wed, 12 Jan 2022 17:52:28 -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=Jt8fPmXav12innG2yef/hDd6aUkfUteWqLLclk8WZF0=; b=JuHAlVl/rWOA0ZZZShWARlkEAizY9lDTB6r8qjhcVq/bL68BHtI02WWlHuCwAeSlVd +WqYcv5hvfbm2lQ77gklffwqfpHC8fZDsg8zHEoJMKT0uMfj0eCqJMwW33Me8FQ29uQC z5Kwe8ArZqfUhcKHtu8mYVsDTnCVTiu6CBzhaljdlKB7p2bvE5FVJ7XvurNx51IOq131 Ok0Fgxzu/47ExeyRkCIEo+PXEFzAo09vpK7xPGZiXGucSldAZnLCSb4iiEQIp+qoRob2 8js1nONV/bS1z/p3z+QwZz8oGOlU0KjN6Q2Ps9U8CRXP7b1i7AfbU8trJCaKAwwelQBU o2kg== 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=Jt8fPmXav12innG2yef/hDd6aUkfUteWqLLclk8WZF0=; b=JuiZM15h665smQZLs0nlRwTyEst8yIP9MyovM++qANhdH4z3Mk51Adpf7LVRfzghpQ 9WWjrAx0SWeQlAp/y8GW5hS3UDbiaUUgKJwfMrTvnbalekgmYRVwh0MtDHeHpL2Vyc/C fK4BnaC8aq4zc3h+Bt+uo8flWXS/DrfaE5fmfE5xza3q1CZknXQUcdc9HPHXlhUoHHee DcfTf7VVZwvj/XPtGHHV8KDgo0AnG41G46lg1Lr52OAyn3AcFDTVOsjeMtl8KV6f6xiz m3L4bmYk32bgh4hIDP0jfs5RkevOUo+UYsKBEuL8DR/UGg2W7WWMQKcKiHN4GT9E/iz6 HMJQ== X-Gm-Message-State: AOAM532PSU3K/586s9UPrfia3QPCxEKUk/DGPuWtYFYPQjWuWHbUTHnn gOIV9GyS6bLwz6KZcJ6IxsAAkmOMj8c= X-Received: by 2002:a05:622a:2ca:: with SMTP id a10mr1990803qtx.483.1642038747584; Wed, 12 Jan 2022 17:52:27 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.26 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:27 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:45 -0300 Message-Id: <20220113015101.4-24-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 023/281] alsa: 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: NS4r0NdVVGjx Signed-off-by: James Almer --- libavdevice/alsa.c | 19 +++++++++++-------- libavdevice/alsa_dec.c | 3 ++- libavdevice/alsa_enc.c | 2 +- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/libavdevice/alsa.c b/libavdevice/alsa.c index ee282fac16..5396858427 100644 --- a/libavdevice/alsa.c +++ b/libavdevice/alsa.c @@ -124,7 +124,7 @@ switch(format) {\ case FORMAT_F32: s->reorder_func = alsa_reorder_f32_out_ ##layout; break;\ } -static av_cold int find_reorder_func(AlsaData *s, int codec_id, uint64_t layout, int out) +static av_cold int find_reorder_func(AlsaData *s, int codec_id, AVChannelLayout *layout, int out) { int format; @@ -133,7 +133,8 @@ static av_cold int find_reorder_func(AlsaData *s, int codec_id, uint64_t layout, return AVERROR(ENOSYS); /* reordering is not needed for QUAD or 2_2 layout */ - if (layout == AV_CH_LAYOUT_QUAD || layout == AV_CH_LAYOUT_2_2) + if (!av_channel_layout_compare(layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_QUAD) || + !av_channel_layout_compare(layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_2_2)) return 0; switch (codec_id) { @@ -154,11 +155,13 @@ static av_cold int find_reorder_func(AlsaData *s, int codec_id, uint64_t layout, default: return AVERROR(ENOSYS); } - if (layout == AV_CH_LAYOUT_5POINT0_BACK || layout == AV_CH_LAYOUT_5POINT0) + if (!av_channel_layout_compare(layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_5POINT0_BACK) || + !av_channel_layout_compare(layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_5POINT0)) PICK_REORDER(50) - else if (layout == AV_CH_LAYOUT_5POINT1_BACK || layout == AV_CH_LAYOUT_5POINT1) + else if (!av_channel_layout_compare(layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_5POINT1_BACK) || + !av_channel_layout_compare(layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_5POINT1)) PICK_REORDER(51) - else if (layout == AV_CH_LAYOUT_7POINT1) + else if (!av_channel_layout_compare(layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_7POINT1)) PICK_REORDER(71) return s->reorder_func ? 0 : AVERROR(ENOSYS); @@ -169,13 +172,13 @@ av_cold int ff_alsa_open(AVFormatContext *ctx, snd_pcm_stream_t mode, int channels, enum AVCodecID *codec_id) { AlsaData *s = ctx->priv_data; + AVChannelLayout *layout = &ctx->streams[0]->codecpar->ch_layout; const char *audio_device; int res, flags = 0; snd_pcm_format_t format; snd_pcm_t *h; snd_pcm_hw_params_t *hw_params; snd_pcm_uframes_t buffer_size, period_size; - uint64_t layout = ctx->streams[0]->codecpar->channel_layout; if (ctx->url[0] == 0) audio_device = "default"; else audio_device = ctx->url; @@ -271,10 +274,10 @@ av_cold int ff_alsa_open(AVFormatContext *ctx, snd_pcm_stream_t mode, snd_pcm_hw_params_free(hw_params); - if (channels > 2 && layout) { + if (channels > 2 && layout->order != AV_CHANNEL_ORDER_UNSPEC) { if (find_reorder_func(s, *codec_id, layout, mode == SND_PCM_STREAM_PLAYBACK) < 0) { char name[128]; - av_get_channel_layout_string(name, sizeof(name), channels, layout); + av_channel_layout_describe(layout, name, sizeof(name)); av_log(ctx, AV_LOG_WARNING, "ALSA channel layout unknown or unimplemented for %s %s.\n", name, mode == SND_PCM_STREAM_PLAYBACK ? "playback" : "capture"); } diff --git a/libavdevice/alsa_dec.c b/libavdevice/alsa_dec.c index e93f31b146..79d37b5f56 100644 --- a/libavdevice/alsa_dec.c +++ b/libavdevice/alsa_dec.c @@ -82,7 +82,8 @@ static av_cold int audio_read_header(AVFormatContext *s1) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = codec_id; st->codecpar->sample_rate = s->sample_rate; - st->codecpar->channels = s->channels; + st->codecpar->ch_layout.nb_channels = s->channels; + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; st->codecpar->frame_size = s->frame_size; avpriv_set_pts_info(st, 64, 1, 1000000); /* 64 bits pts in us */ /* microseconds instead of seconds, MHz instead of Hz */ diff --git a/libavdevice/alsa_enc.c b/libavdevice/alsa_enc.c index a783d8eca1..fc5e5d9c94 100644 --- a/libavdevice/alsa_enc.c +++ b/libavdevice/alsa_enc.c @@ -64,7 +64,7 @@ static av_cold int audio_write_header(AVFormatContext *s1) sample_rate = st->codecpar->sample_rate; codec_id = st->codecpar->codec_id; res = ff_alsa_open(s1, SND_PCM_STREAM_PLAYBACK, &sample_rate, - st->codecpar->channels, &codec_id); + st->codecpar->ch_layout.nb_channels, &codec_id); if (sample_rate != st->codecpar->sample_rate) { av_log(s1, AV_LOG_ERROR, "sample rate %d not available, nearest is %d\n", From patchwork Thu Jan 13 01:49:46 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33314 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp14692iog; Wed, 12 Jan 2022 17:56:44 -0800 (PST) X-Google-Smtp-Source: ABdhPJwibd+zmsvlot4RqHbHDqw7OmXT25/E06EZU/I4lo8R+ML126E2eb3kK+wAwDNGuAwdRykQ X-Received: by 2002:a17:907:7ea6:: with SMTP id qb38mr1846652ejc.557.1642039004037; Wed, 12 Jan 2022 17:56:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039004; cv=none; d=google.com; s=arc-20160816; b=uISMu5/pDcMhnDjccL6UInLdMZoyWjyYv5ACcrTW3WjNWHGUSsX6Dt6MDMB/0z0LrC SGu0avi+3O60v6Y214Iwha67wgKjek905Tkjp598GIIJChBkUCDYx4Y8ntREegUj3+cg SqwRRcXGa5ktcgscH66lhGsaW2QkYBLvEiasc0N8mQ626aPAVUBkUq8jI7C2kN9q2u0y dkdUud8M30xJJLhEump39az2mofu9tcSKZKkqTsGOvlSKFWmV1vyzkmD50Nzc8Rud2Rt Hoj1E0Jigek/7GH244mrI4Ngvea0ezzIGMyT3Yhi9UsvmDDN5iybZ/YmlrtAyOVIWpp3 xJkg== 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=dEQzviT1b+1wkQgZDr2TTzQ6/hi1OV6aUoA9nPsY6J8=; b=k3L5eMXb/Ws6DPV57RnGkEwgKi3fYTJd0a5DA2xNGdcS8pCoz03QyYEN6l5CxZNKLT +cBDRxY9CdiZxZrSJwZIj+UaGJP7Rgw6Q396AQPyEhLtSyefWVWtmBeQF8W5t27ds/da Ccexs5ZqQcejRoW7UpnhdpOByL0VfvnJGEQL2/O4kBgvrDiKe2j70QwxiEPQtWDGXBzg qPCzqq0bx7Moufjml9IXxs7mu7VgHdej/+hZ97KRAC/FfYtKTup9eIZgZIzEvOr4kEB1 K+4X3aUfxNJGaIFU7lYgEOiCjQjYHIFMpa1Zx+kNek3JYRS4hXk1mX+h0TvA1s5zoBPy qraQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=m8RifiGY; 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 a15si827861edn.5.2022.01.12.17.56.43; Wed, 12 Jan 2022 17:56:44 -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=m8RifiGY; 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 75E9F68AFED; Thu, 13 Jan 2022 03:52:32 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f181.google.com (mail-qt1-f181.google.com [209.85.160.181]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4890E68AFF6 for ; Thu, 13 Jan 2022 03:52:30 +0200 (EET) Received: by mail-qt1-f181.google.com with SMTP id y10so5359785qtw.1 for ; Wed, 12 Jan 2022 17:52:30 -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=Fp1cGno7wqoZbBS9EVfHpeHDvVHojGsWxlaz6kSjSx4=; b=m8RifiGYlmcoGa4x/DtK0QkPgXIXwL4CEXQGwRZv5+rD+SCYPlpIfS9izaWkbOXsca xMZGILPq8MTmeo65xkzULMkv6ZrQtOfzvTY53dcQODUmyPk/KL5k85Il2sOSrctZ0DPQ 8oj883C9ujdBg2tiZ4Hwc5yTtM5WvVTVlk5NIVdUsnuLLMwGbIfZOOTokjzc8WxXIG3Y cZrxWzTdxzO6QMviiY1SeA1x5QQalD0OlMGJPPNzNZJTDB2yKEsdZqZoY89prOEGOkqd OWHIOnr47n6fqkZqWo+59oQgpDCXR6cTdppeWlUMZtBp5TWJh1yXS5OszR+hKtoTb7J4 mY+g== 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=Fp1cGno7wqoZbBS9EVfHpeHDvVHojGsWxlaz6kSjSx4=; b=2hG8nX7Vo/Ov2kmIOQcac4om2Lh+tIRU/gVVhTa+Ya0FP5w2teJ9S2/SUqQ1JfIkn3 LO12IY+CBMBj9Bq/nLYEaAHZIkTh6Mu9qoHM/lGY01Q3hQPlrGiDtcDH6DLTGgCkwEeT pU3sU+gnNf6DQnQU8JCty6QoET226PzsAvcktgN0btEFuqVtV4s6Rq3DfT5PtVtEW2K9 1uzVSSblKRtKRPz4c7n9jfLrfU2vFwFg4g0jnxvpfKrX8i1+rs/Mnfm+bDdf/QeQvhVB 2UEn412yRsE+2gDH8ctpFnyR1ZTfZFWDykf6PGQFf3hEAYg4hA6hM7Xckgw2ghC2ovjZ crjQ== X-Gm-Message-State: AOAM531oUnIZwWJ0dBchF/VW/BivxxxIR8QDNCm+BBuIye6Fyeb11g2Q txThwzo/grFL+571xoJUGdZ/4Q+S7oY= X-Received: by 2002:a05:622a:1045:: with SMTP id f5mr1230011qte.36.1642038748897; Wed, 12 Jan 2022 17:52:28 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.27 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:28 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:46 -0300 Message-Id: <20220113015101.4-25-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 024/281] alp: 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: a5wasubhNZtv Signed-off-by: James Almer --- libavformat/alp.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/libavformat/alp.c b/libavformat/alp.c index f46bdb4511..444b55dd77 100644 --- a/libavformat/alp.c +++ b/libavformat/alp.c @@ -119,18 +119,14 @@ static int alp_read_header(AVFormatContext *s) par->codec_id = AV_CODEC_ID_ADPCM_IMA_ALP; par->format = AV_SAMPLE_FMT_S16; par->sample_rate = hdr->sample_rate; - par->channels = hdr->num_channels; - if (hdr->num_channels == 1) - par->channel_layout = AV_CH_LAYOUT_MONO; - else if (hdr->num_channels == 2) - par->channel_layout = AV_CH_LAYOUT_STEREO; - else + if (hdr->num_channels > 2) return AVERROR_INVALIDDATA; + av_channel_layout_default(&par->ch_layout, hdr->num_channels); par->bits_per_coded_sample = 4; par->block_align = 1; - par->bit_rate = par->channels * + par->bit_rate = par->ch_layout.nb_channels * par->sample_rate * par->bits_per_coded_sample; @@ -148,7 +144,7 @@ static int alp_read_packet(AVFormatContext *s, AVPacket *pkt) pkt->flags &= ~AV_PKT_FLAG_CORRUPT; pkt->stream_index = 0; - pkt->duration = ret * 2 / par->channels; + pkt->duration = ret * 2 / par->ch_layout.nb_channels; return 0; } @@ -202,7 +198,7 @@ static int alp_write_init(AVFormatContext *s) return AVERROR(EINVAL); } - if (par->channels > 2) { + if (par->ch_layout.nb_channels > 2) { av_log(s, AV_LOG_ERROR, "A maximum of 2 channels are supported\n"); return AVERROR(EINVAL); } @@ -228,7 +224,7 @@ static int alp_write_header(AVFormatContext *s) avio_wl32(s->pb, alp->type == ALP_TYPE_PCM ? 12 : 8); avio_write(s->pb, "ADPCM", 6); avio_w8(s->pb, 0); - avio_w8(s->pb, par->channels); + avio_w8(s->pb, par->ch_layout.nb_channels); if (alp->type == ALP_TYPE_PCM) avio_wl32(s->pb, par->sample_rate); From patchwork Thu Jan 13 01:49:47 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33315 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp14805iog; Wed, 12 Jan 2022 17:56:57 -0800 (PST) X-Google-Smtp-Source: ABdhPJwrVohnfKQpUrv7HlZELNuymsUKqSjRhsPeP5NadqxXHZVUDDX8/NkVKm9kPMpjL0KERNz7 X-Received: by 2002:aa7:cf12:: with SMTP id a18mr2224374edy.378.1642039017787; Wed, 12 Jan 2022 17:56:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039017; cv=none; d=google.com; s=arc-20160816; b=NqFjUXo2crQbCi+a4iamjT9sTd96fB+mViqwtww5Il17Ug4qModolW6gqzr1ebtyFe dLoWi4ZVep2onHGIgr+Rpy8PB4cFmBOWQJ5ptIuLa9BVpn/9D7pf3apBjQ2HPSXJi9sh mSOJVSIZ4nQa2UrZfJ92vMtlGKZpQsxdIO+mz+wRelLlF5wp+E0fwojW+rbxwQPmT+E7 KOFsfn9Qg0u0cS/eN8ZnWfrE15aogMT4MA7kcWZK7kaeYI6hMNF1kGVHDeMDDkFu9Qyc b4Y74c/EKVEVfxwBOKp6sC8+sKifMTWelh2XoEvo9TkAdtngzemS/SmxVWdOgjJL8B/d H3+g== 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=UUYDxQzyib8zzXWsO9I4LoYDDEuESUMioG5Od4+N27Q=; b=MVWoihF2fa3yY1AMccxzld6iFni+5JpP4lR9Slsfur5Ivtm9dGyy3EokcQxdkzHLKY ElXS4bI3sYZMhKGAePjWW2p84Wxw6qbQxQfC/mUE63kkcHK3K50QQXAyCHmYQg9z9F89 KO+bnXl4jvl8gSVP/adg3m9u2QyDITW4ChfM0A+3+swe+hBsvG0Crapsf7fkRSv8vBQL 43A0YRN4FZsM4YPTPhtwyV8vGfjnK7LdhZwWR9bU3leXCYxG0qntqKuDWcVz9BwKCvw2 HX3XaALVcVHB1HbyeXSPbLOaGV9tsAKGrq5LzNyerbJA2xMR2OvtlkBsDoCWIhQ+sehG aX9g== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=lfSL3ine; 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 sh10si715581ejc.599.2022.01.12.17.56.57; Wed, 12 Jan 2022 17:56:57 -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=lfSL3ine; 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 6673668B009; Thu, 13 Jan 2022 03:52:34 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f47.google.com (mail-qv1-f47.google.com [209.85.219.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8471C68AFFD for ; Thu, 13 Jan 2022 03:52:31 +0200 (EET) Received: by mail-qv1-f47.google.com with SMTP id iw1so5144455qvb.1 for ; Wed, 12 Jan 2022 17:52:31 -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=6VGhvilJOYQewYwHL5CLSGMnkWrL2cRR+5o2nKeW/6A=; b=lfSL3ine+LyWrOZv7BtZfkYDKQkhhEi5kb06mXEZl3fmDGFIC/AMJiksGeVRtbwjuS yrEvTSfr1/9E3hWg8Zk7A3MVJPBODO0m/mlUDIgMl+Z4y/6Gi0YqzEWsgdZJdNTgoXy8 v2LbAZYhGmHdPrrrPPkeGG9eye8xd1DMr9/za+mFss6oJC7V/qVgRbybcIyODEvqlzZF YS7JbXb1luptLKQW9zBZ4jYQ4+pXo7T2PngpJ87m2sBqAJGfWOAirawb12uu5BbexrCs qJ1ZOQKTtoNQ5QA1rJxQgSc8acIqa8H6V810wyiEf0RyBGnIDoCNsb8B1LFqdcsSS/+J MiUA== 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=6VGhvilJOYQewYwHL5CLSGMnkWrL2cRR+5o2nKeW/6A=; b=c7gFNt1+3rqwgxDdA3rpIaofg6XhpyBWA05v2I5xj7MJDQOWViW4BxDsKOAmbiu1Qo GpFI+Q5tgYTPzd6wb17oZ+vYZH8wB/0uMd6hOqEqSBjtHvcu5cPNa5h3+Wu09N2+ldUx V0zPDKHWeiLKqE4w6ZC425zLnzI7SthH8hMPOHMLymvOkCXAIGQFQOEdFOP9Bjw5FXHV WX5SAp8BYuAb7Sff+ttoK+ZZjo79f7I+YMu3P86HG+bwk31wAOAwftWf9jwGTWj/kVLi lhSOiPkK5PDiN3Zo52IOU504E4Our0KklQ03alfECA0Owx2qOVuq0Zp1LiLnzkPXiAzl wg9g== X-Gm-Message-State: AOAM533ZMmGafvvDhE2WvNgJ+PiOmPUF/Ew6ewatAMtbKWPRexTMYoQQ 6s2UzKrF14xvfnHi9eNvH4EzVh7ct+E= X-Received: by 2002:a05:6214:29c3:: with SMTP id gh3mr2430969qvb.112.1642038750127; Wed, 12 Jan 2022 17:52:30 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.29 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:29 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:47 -0300 Message-Id: <20220113015101.4-26-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 025/281] amr: 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: uhzjOnPdmv8H From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavformat/amr.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/libavformat/amr.c b/libavformat/amr.c index bc22c2f84f..91322976ec 100644 --- a/libavformat/amr.c +++ b/libavformat/amr.c @@ -100,33 +100,33 @@ static int amr_read_header(AVFormatContext *s) st->codecpar->codec_tag = MKTAG('s', 'a', 'm', 'r'); st->codecpar->codec_id = AV_CODEC_ID_AMR_NB; st->codecpar->sample_rate = 8000; - st->codecpar->channels = 1; - st->codecpar->channel_layout = AV_CH_LAYOUT_MONO; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; back = read - sizeof(AMR_header); } else if (!memcmp(header, AMRWB_header, sizeof(AMRWB_header))) { st->codecpar->codec_tag = MKTAG('s', 'a', 'w', 'b'); st->codecpar->codec_id = AV_CODEC_ID_AMR_WB; st->codecpar->sample_rate = 16000; - st->codecpar->channels = 1; - st->codecpar->channel_layout = AV_CH_LAYOUT_MONO; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; back = read - sizeof(AMRWB_header); } else if (!memcmp(header, AMRMC_header, sizeof(AMRMC_header))) { st->codecpar->codec_tag = MKTAG('s', 'a', 'm', 'r'); st->codecpar->codec_id = AV_CODEC_ID_AMR_NB; st->codecpar->sample_rate = 8000; - st->codecpar->channels = AV_RL32(header + 12); + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = AV_RL32(header + 12); back = read - 4 - sizeof(AMRMC_header); } else if (!memcmp(header, AMRWBMC_header, sizeof(AMRWBMC_header))) { st->codecpar->codec_tag = MKTAG('s', 'a', 'w', 'b'); st->codecpar->codec_id = AV_CODEC_ID_AMR_WB; st->codecpar->sample_rate = 16000; - st->codecpar->channels = AV_RL32(header + 15); + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = AV_RL32(header + 15); back = read - 4 - sizeof(AMRWBMC_header); } else { return AVERROR_INVALIDDATA; } - if (st->codecpar->channels < 1) + if (st->codecpar->ch_layout.nb_channels < 1) return AVERROR_INVALIDDATA; st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; @@ -188,8 +188,7 @@ static int amrnb_read_header(AVFormatContext *s) return AVERROR(ENOMEM); st->codecpar->codec_id = AV_CODEC_ID_AMR_NB; st->codecpar->sample_rate = 8000; - st->codecpar->channels = 1; - st->codecpar->channel_layout = AV_CH_LAYOUT_MONO; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; ffstream(st)->need_parsing = AVSTREAM_PARSE_FULL_RAW; avpriv_set_pts_info(st, 64, 1, 8000); @@ -246,8 +245,7 @@ static int amrwb_read_header(AVFormatContext *s) return AVERROR(ENOMEM); st->codecpar->codec_id = AV_CODEC_ID_AMR_WB; st->codecpar->sample_rate = 16000; - st->codecpar->channels = 1; - st->codecpar->channel_layout = AV_CH_LAYOUT_MONO; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; ffstream(st)->need_parsing = AVSTREAM_PARSE_FULL_RAW; avpriv_set_pts_info(st, 64, 1, 16000); From patchwork Thu Jan 13 01:49: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: 33316 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp14922iog; Wed, 12 Jan 2022 17:57:11 -0800 (PST) X-Google-Smtp-Source: ABdhPJygobIodSMmoUrLYLeyCH+BvkLLxi26P5jg+Esojm9E2Ldjiie07cCeXLQBHkbE+Et2lHc/ X-Received: by 2002:a05:6402:440a:: with SMTP id y10mr2145367eda.371.1642039031499; Wed, 12 Jan 2022 17:57:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039031; cv=none; d=google.com; s=arc-20160816; b=JF8W5ZLsVQdDp0rNiVzDamyeppYxea/Y5P/vb5e2R2mZXjO7NUM/TBqF3G81Bn5LIJ iNb/kqjDe8z7Y40RCFzwgRXLDRCsZG9v2MXsjq3POvvIywkyJDkin9pOcgdklKGy0g/I 3hj1nJJn0GH3SLxR1EV+3qrebrA4Bsqa6ip0Xbb2mhZg8ekhZuriItiWCxBA/irG78Ec BPc0DrD0pBUllIzYOY8OPzbMd3EBnh/3mvSPb8iJiwujN982/S7L7jjP18oRxLymLhAT h8J7Nj5Gb5OkSJBRjSMl5d5bk9j1Supx+Qkz4o/eRbOCWXXYAa15eGHHJ0jj2YwCvfbc GFwg== 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=EqTZo3GQ9gPxB8Jk/ninVRB610LVfC3gYrD/qh0VdCo=; b=npbRY75FNOoQswD6FJQ1dj6s4LtzbIiP+mZjwAmMIBVJMvgpbLTBXHxVngaHZs08wh gOOokvkDqd9rjH2o/AruCem4yl1YuxAMUdugSmmuMo2igJ1K5wbBKebFj+lImnVD/eBz CoPvu+Wq8WAXnxJOI6OiX7P+BO6EOkpIIYlUBpRskdo4Kf+RC/OisxqkY/ltNi7vQeqm L93YDyAj2P8HNR4fXXtz0IQIzoVqKuOXn6c4/uBgMSds5r/G98yQjGbLNCT3eqVhNJ/1 WXvLtEBBQEnRd9uYZ2dopJMaWeyOiYkbeQkKtZ/QdCs49Ws8YNDMxJkWa02znX4Tj1hY H0Ww== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=BBTPJLTo; 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 s17si759616ejz.77.2022.01.12.17.57.11; Wed, 12 Jan 2022 17:57:11 -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=BBTPJLTo; 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 5E9DE68AFFF; Thu, 13 Jan 2022 03:52:35 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f182.google.com (mail-qt1-f182.google.com [209.85.160.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0A63968B007 for ; Thu, 13 Jan 2022 03:52:32 +0200 (EET) Received: by mail-qt1-f182.google.com with SMTP id y10so5359859qtw.1 for ; Wed, 12 Jan 2022 17:52:32 -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=ppQ5lpe2Ytw80mDJGjA2kWsUSQEwTHIg3sPns6pI5E8=; b=BBTPJLTo/GgzTc+avcb6LS8N4rVPZeaI0zvexJ+Gfp9KR9MDC02ABeNldH5i1coaaJ wgj0aAlflUh+vOi7gld1BDtLvnaPmOTOgmjooJK8MoSq4DB696ybxosIjwT4m5wHJdD3 5J/rkMvDUPvXKWbwz3IrY1pFZAu5Eo7jCsrPvl3uHH4UifX12kl8stheuUfIXwfeiJLh fO6pNK1dOd1sDTx+LBBQwyYYVQTq9a5A/NiQ4c0OOKDcYqJM9UbWDiHd5MrOFhJusgXD qLY+P15kT8D4SK4wS/QtCXy8C5ibc57WwgKsSQ+7w3unJv8Um3VsHL482Q+b3F3jhYG8 mi/Q== 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=ppQ5lpe2Ytw80mDJGjA2kWsUSQEwTHIg3sPns6pI5E8=; b=j3BrNtW3B9q8BdJB7IybztgEIxU2vlvipDBNw21eY3ogsoSqF8HjHdFDM2vUxg/6IU c62CgoShMTQnE4oF+DroNS0/uDzp+pEVNMo0LX3YvRQKufY7dhMf8i5yiX5Cn5SoBifl IufxY9801c+upqNhIApu/zTnYNdoRrZih5XZyUJiGpKzxA7doMepAmXQTcz3W+0jSfKR WMQj457bmtf++UsayY39DtW1WD/f9KXPXi+MROBmTyLN4osB+vPhYr0lAhn6ycWvKmZK z0cFMl2DubY5vCKcrN5pyqIyUFrIkAJcmY2EO0tWuf9mbRa7TBdE4Q9udx5rCVDRu3f3 01tQ== X-Gm-Message-State: AOAM533tJl07uvE8bAlaJ6eRPWKVa3ePhIGGf24TkeHr4JVrWIGwfcW8 rRh/LATsYmASIJoErWUK4gI7KwIl4wU= X-Received: by 2002:a05:622a:612:: with SMTP id z18mr2006805qta.442.1642038751333; Wed, 12 Jan 2022 17:52:31 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.30 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:30 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:48 -0300 Message-Id: <20220113015101.4-27-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 026/281] amv: 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: a/nFSMyoqJ7E Signed-off-by: James Almer --- libavformat/amvenc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavformat/amvenc.c b/libavformat/amvenc.c index fece2f49b1..28d4879b19 100644 --- a/libavformat/amvenc.c +++ b/libavformat/amvenc.c @@ -244,9 +244,9 @@ static void amv_write_alist(AVFormatContext *s, AVCodecParameters *par) /* Bodge an (incorrect) WAVEFORMATEX (+2 pad bytes) */ tag_str = ff_start_tag(pb, "strf"); AV_WL16(buf + 0, 1); - AV_WL16(buf + 2, par->channels); + AV_WL16(buf + 2, par->ch_layout.nb_channels); AV_WL32(buf + 4, par->sample_rate); - AV_WL32(buf + 8, par->sample_rate * par->channels * 2); + AV_WL32(buf + 8, par->sample_rate * par->ch_layout.nb_channels * 2); AV_WL16(buf + 12, 2); AV_WL16(buf + 14, 16); AV_WL16(buf + 16, 0); From patchwork Thu Jan 13 01:49:49 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33317 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp15058iog; Wed, 12 Jan 2022 17:57:25 -0800 (PST) X-Google-Smtp-Source: ABdhPJy3XTa+41ziDZkMf2elybr0oC21Ny2mKO+QilHsG/5CaXrRYt0qrxwMeem57CRlj0sgF59e X-Received: by 2002:a17:906:f02:: with SMTP id z2mr1896056eji.499.1642039045182; Wed, 12 Jan 2022 17:57:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039045; cv=none; d=google.com; s=arc-20160816; b=hGKSTANzZ3U3LgQ4Mstjrx3/usMXpB8CRtlcbahp/BOMAmo5MZ/ouUziobeG8v+o1I dmou7oMEgHbqcj0+2085wcNc1cdtXWBvBntv9ZmgDNM2UBtobUYNGIBjXCb8n/AYk9EK mFaqgBlcnDkux1JTaDYF9zI9cDKNWM69aNvJhaluFq2NzzZ+vsCjhCmT824wKdD/pbAP HcYAfjNSpj2x6sk7WxHPb7Cmi9t8wjQeJ+rrqMlBRVut208AlU1KF6+M09IDrJt5JFxi mZlp6FgxFGv0f3TEreMsNYVZHDPEL5sh08LWwXJkdWufRzRxVd2LdBstISigeWGHAWNv LNhQ== 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=Mis8/pgSoKfDL7zglQdWBlF+/CqkctpHzHn6QtVKxmE=; b=QGzkYhw84BK7FYO7rDn6VFyYMxN6OkaYhAI2chpyAzP61e16QyhWzADXHPXlrDfMYm vQ98IeHZgm/Xmq4e7utRO+d9zhtJ/NnJUxUxSly2Q2UA5X4wCaTUcMwMphwmpe7hANaJ xVL11V23wW0gxk/OxpRWwVwcM6GkoE1EGNV4EWnHnkekwzdVjy6DrxudgOgfmm/rohvU zR1ClsqmLQilvlGLcX+EWpNhDwn/PEZ1XYkmSsBzlvGlJDwFlPLJG6HU2RNKcOp20bC8 LalA2pDCiVG2zheTIxybnXhJSlnqGwAkX3tlRjAw22smsuNXPVWkshfM+J8bG0lCZamv XJDw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b="E6/qL/Wo"; 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 qf22si838636ejc.560.2022.01.12.17.57.24; Wed, 12 Jan 2022 17:57:25 -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="E6/qL/Wo"; 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 4AD9668B002; Thu, 13 Jan 2022 03:52:37 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f50.google.com (mail-qv1-f50.google.com [209.85.219.50]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0299B68B009 for ; Thu, 13 Jan 2022 03:52:33 +0200 (EET) Received: by mail-qv1-f50.google.com with SMTP id p12so5080070qvj.6 for ; Wed, 12 Jan 2022 17:52:33 -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=JdwTrbJCoWPA+C5WLbhXRURovMXWRXGUUGya+Bt4Z+g=; b=E6/qL/WozUGQVAop6tKy6xWmh+XzwbIH8OWkjtzVTFnQIxenAnVsCSDnIwpmdP5oUA /QEveKljxlX+OlHGcqfd0nHEGTFDEMu/N+q/OT01lOh7u6piJTHehk1lsKiuyzErRKtz KISNNbGmnYFfO06IbQ0f+J+3AIOjZQlcBzsZ1xDvsZ6R+RcAD9IG8bkrwB2YhDvfRX0D ZiUGyoaZh58RV2/z7JVnahdojYYSU0G34+rxU3AmntYX+L81u563an8fNXKaoul5Rj9Q qEaw5oT3DCcNIS8FQdKJ9HEF4h4fdeC0C/uxgqW2sp2MURgF2F2gc/V/0aJnnLUOD2VO sn6w== 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=JdwTrbJCoWPA+C5WLbhXRURovMXWRXGUUGya+Bt4Z+g=; b=jY4mkc70WcBh8g4EATHLVVGoXVGHAnAqNv1hDKWjw0aVjNgfJh7QyrhBZ5EgbB+qxk e3coiyzt4mLb+jGlZ6x0TMXnL8Pi4zXX2UkR7zlR74ZdCvZOVs26RrIT5GAql2rHo9X2 +tU7zU+uxtH0Ks+RTdzwGlYAIyKRrNJo9eQJiizGsLzySxTxWqzM192nuFqSdPF6sq0E Nb1hTmahuFT8THtrYW1FLsxupsb0ZTvHgcET2yIgKY7cMD11+Huokl4skeaM4c+ItS6k GFl5k90u6MT/lGG7BnbPp2FNhLdGElnCPZMP+6wqsLzs+PwTLCUqI3eUEzUch+k8fGzt SJGw== X-Gm-Message-State: AOAM531kZjJFU2MnhbVw/L9dcYxJNvvcHB5Xz26sJr6Mbom6FlloCPi1 OvGPFwnM67ccbcN3k5F/YrRbOwj/MP4= X-Received: by 2002:ad4:5964:: with SMTP id eq4mr2248526qvb.109.1642038752583; Wed, 12 Jan 2022 17:52:32 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.31 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:32 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:49 -0300 Message-Id: <20220113015101.4-28-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 027/281] apc: 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: Q+Z+aeuRkpM5 From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/apc.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/libavformat/apc.c b/libavformat/apc.c index 56151bb59a..192e115278 100644 --- a/libavformat/apc.c +++ b/libavformat/apc.c @@ -38,6 +38,7 @@ static int apc_read_header(AVFormatContext *s) AVIOContext *pb = s->pb; AVStream *st; int ret; + int channels; avio_rl32(pb); /* CRYO */ avio_rl32(pb); /* _APC */ @@ -57,16 +58,11 @@ static int apc_read_header(AVFormatContext *s) if ((ret = ff_get_extradata(s, st->codecpar, pb, 2 * 4)) < 0) return ret; - if (avio_rl32(pb)) { - st->codecpar->channels = 2; - st->codecpar->channel_layout = AV_CH_LAYOUT_STEREO; - } else { - st->codecpar->channels = 1; - st->codecpar->channel_layout = AV_CH_LAYOUT_MONO; - } + channels = avio_rl32(pb) + 1; + av_channel_layout_default(&st->codecpar->ch_layout, channels); st->codecpar->bits_per_coded_sample = 4; - st->codecpar->bit_rate = (int64_t)st->codecpar->bits_per_coded_sample * st->codecpar->channels + st->codecpar->bit_rate = (int64_t)st->codecpar->bits_per_coded_sample * channels * st->codecpar->sample_rate; st->codecpar->block_align = 1; From patchwork Thu Jan 13 01:49:50 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33318 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp15205iog; Wed, 12 Jan 2022 17:57:38 -0800 (PST) X-Google-Smtp-Source: ABdhPJztBIKB7cCP+E9CCImbGT0lwLZM+zokmBnCxYXq6+95h3LTlstHz6qKVfwjDMsqpsh0NuBj X-Received: by 2002:a17:907:3f83:: with SMTP id hr3mr1964186ejc.604.1642039058306; Wed, 12 Jan 2022 17:57:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039058; cv=none; d=google.com; s=arc-20160816; b=pZIsEM82PfNQaoIczbsI+oTC9F8na/QWWD9vnrPXE/Qt+MCHkRVoHKs6a9ZWXObvfS AKqIVbxGmUbMeVe/WOsE1b1f/ihrJ+FqcD3N/YGVsCdEgcJxXKsInscpR9hxCTxI2pnB f58EomzTvqXMLxTpPPu0nEEmFLYrWi7PlS/0aVa2u8nNV6sU+sWUu9zzYxJk1xqpoBjY p6M81d3OjQUHThdw/d3LcUEzKhD7A/nhYfOSZ2GGHVt3Lt6r9Eg+eFbPdnDgf397e+hN 3ePc/AieUS5ANC4GTAiQcMPmP1KyMXx01NwyRvA5OJw0xTGu2P2gwBVyVZM/rYohVATl ncOA== 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=yXs5C0lVhQV7xDUnD5J58qckT/yjqtwz0CHSYK0MVJ0=; b=0BOm0BbACZmIu/yKDxWJ4rMNeEgmI9szT16b3O7ECDR0PAsfyLVED2PLC4PKgm6C5J ICJrR+SKmBeObv5urxU31B9j7vt1hUXQcpKZHOqSaMoRWc+XASv9/BeBZ6TBX5YrxA9I kP1+Eqdm+hrjnvo4KFnhZAmvKQ+WW1oR8xaz+2HAMfahLhOVwo4ZfNM2eEBF26d1tbC4 BJmhot7Vz5wNKf40B3+6ajCj8hpKssbPaPNXLXntH7ktMrrMPSthiyH3mSBW+Szn/Odk 94n/nc30CPHuOiVr6ylpqnHmyycq9FB750pDz2zON+6NuW+sy5gRbs6bYesW/HOTu1rK c+3w== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b="LfSNpl/F"; 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 y12si838469edd.119.2022.01.12.17.57.37; Wed, 12 Jan 2022 17:57:38 -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="LfSNpl/F"; 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 523E168B02B; Thu, 13 Jan 2022 03:52:38 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f174.google.com (mail-qt1-f174.google.com [209.85.160.174]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8684568B00E for ; Thu, 13 Jan 2022 03:52:35 +0200 (EET) Received: by mail-qt1-f174.google.com with SMTP id l17so5321876qtk.7 for ; Wed, 12 Jan 2022 17:52:35 -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=3FBCgmONLPakweQJmxMuZNs80eSg4dGf4Q/wG9cqB28=; b=LfSNpl/FBDb5ZEy8/E4Ytx81o7mNICbVENl2zmo7+xn5tIU9avSoSdFD0+3A4S6sHP LaAjT4MX++dEUDqBGWNsSbUPLYiJVMdsBXhp1hMAkWeIikAc077prhxx/klbLL5mhvhJ G9vW/b36p2lpRdP+EgKgRXjXpfxngDjwB8OTEIMRzfkHUcbvgfgExptYBimRGEGVFjqD SpkvCnVQ2cj4iQ0B19PE3V5waaL4LMvm8zP+mrKHo+PWTA+pbXhCdRkdR0HBxNuOYiTF 5dcWMh7URJmn3329Eekn7vIIh/kLYCdx7h7etEcA5AMpMXWd/1YYgb0S4Q3oAN0/vKRt MuAQ== 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=3FBCgmONLPakweQJmxMuZNs80eSg4dGf4Q/wG9cqB28=; b=HujMgl50WOHqjV6txNLivYVeYU0GuF2q42rTHmHPoHGUhKDzCw+SRx3K6r6fS3XBnY o4NN9yHUPmY4SUtZqoNa1f0w1G2xIcxjdDvoucAtK/J+4mRgd5jbuHm8CYX9UCMh2/xD ubKZV+dW78WBf9N0xnVRoBFAIYFo8TJSF4zFJNlcML0o/8JC1/5vPW3pDFx4U+x/QaC1 +p/ZVXVRDvXHx5iviJyOY9P5zojhFbnolv86dZ3Mz9+tS79CDegdnQl13ABE5sHaGogX QJZO0IhFa/tsRbOqnLHeyKRrzZiDjbxgOk30gW4Pzcx+nNDh2jaZwBL64zmK2VaoLmEW LrRQ== X-Gm-Message-State: AOAM532lG7ZzHUNgT+WaEJUKZeWm4GcNbM19MpN3X8Wskt32vDo0++vV lXX5HLxBZihEImL7Rr7vXRcsXycjE7M= X-Received: by 2002:ac8:5809:: with SMTP id g9mr1991593qtg.312.1642038753826; Wed, 12 Jan 2022 17:52:33 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.32 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:33 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:50 -0300 Message-Id: <20220113015101.4-29-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 028/281] ape: 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: vdzKoQBRQHGI From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/ape.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavformat/ape.c b/libavformat/ape.c index b1222d9ce0..a6029affed 100644 --- a/libavformat/ape.c +++ b/libavformat/ape.c @@ -331,7 +331,8 @@ static int ape_read_header(AVFormatContext * s) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_CODEC_ID_APE; st->codecpar->codec_tag = MKTAG('A', 'P', 'E', ' '); - st->codecpar->channels = ape->channels; + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = ape->channels; st->codecpar->sample_rate = ape->samplerate; st->codecpar->bits_per_coded_sample = ape->bps; From patchwork Thu Jan 13 01:49:51 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33319 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp15299iog; Wed, 12 Jan 2022 17:57:51 -0800 (PST) X-Google-Smtp-Source: ABdhPJzKzCMdtUYPl9622hPu9oVundaFOh92NoBzsORC1GqrrDyNS1vRr/LrFKM8zMTu9sa3e9ak X-Received: by 2002:a17:906:3e8a:: with SMTP id a10mr1830313ejj.612.1642039071182; Wed, 12 Jan 2022 17:57:51 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039071; cv=none; d=google.com; s=arc-20160816; b=ZP79em18B2Z2zWkBb5ag0Gc25Y4ti8Ar1t/CEpdLip0B4f/FwmZHW6BmJ6fRXamVXI X9/sin6Vw49Bm5SEPAJQvSEPSm2Z/TlIii/tG+/5DysnK1hRJFI6rGAcmuf67f39JR5d mUkNuDmqDB9u08Jb0V26CkNtT/sKMT9kjMKLSltttofjOz6VHvYRwQgl26cp8bHdfil2 w6RDN9pTJtYfXzJeEk5dxUfPx8DYvGkzkZR8XxPGrV7xwGy0LQfoqczYJQA9BHx+xfHK xZ+tC++CBjSp0NVxo1180rXHqtImXIQOFxMCDoxONo25FvIoTD/EB4b+NysR2mA63kSQ IdUQ== 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=1xc1G3IukGFSNarbTYgSLZmAIl4kxjBd/Q9h3Izq+Ho=; b=AptolCuVupj7fglwAxkndOYKAAEZYzrcrLU2rjeIc4yfvM9KGErO8DhhhoCjVUZlmJ SNwcdVrxUXOHTw2yqVLAVWY1ef10X8P30lAEBuDT3RewpWXW3ITz0cCIS0XRkOYEciPY bZoop4HgS+MGuLCq6YHHc7BCzMvejhL7hXSoGYU/gOiNew4bRtk9IJGllixemKStA/AT PGWebwOPPUoPguePU3YGjq+B1ZuCXia9MYQo0JoAPFPxNgRNSPEJ+iKxlm3Pvk5F+gox +RTV6nqpPdRpewyhYGCBsKR6J1+Ap8RJrmR+5f0xaBFEwVe8wzsBBUm8QbaJRmjeuve8 mtkw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=k4opmFHG; 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 k23si682333eds.509.2022.01.12.17.57.50; Wed, 12 Jan 2022 17:57:51 -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=k4opmFHG; 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 5622968B034; Thu, 13 Jan 2022 03:52:39 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f170.google.com (mail-qt1-f170.google.com [209.85.160.170]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C1C2668B010 for ; Thu, 13 Jan 2022 03:52:36 +0200 (EET) Received: by mail-qt1-f170.google.com with SMTP id v7so5304981qtw.13 for ; Wed, 12 Jan 2022 17:52:36 -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=ZA3120Sn8Luvd8E2WwZgGsGEBXA6LQf2kEgmkR3IGP8=; b=k4opmFHGYTy5YWHk8zcCBRlrZ0pwWFaezvKoolkJirTDSjeONCnugegR7lcK1eWIyY 4A796QT7IqKt/28mWuiQa7Ak1+bq7JeIc/MD/wEayxDhRAypXcMz9KJ3W8LM/dZopj0K 52V0jFBK4z+yuWHXDmREMcB2zudpd3yi21RDIpjV3uMSX0eL4XNviUl/RqZO+mgBTIo9 796EHp5mS/CdmuwuNFFh0BVDqs6pcH8FfY+b6XrfbXfwb18ngh2+f9je3RXxS8X9ho08 yBrJ741G0Hlaqlz4LQ+8d9N6RTW5AS+j0XR8RcnwCzAKV/YUzQENnIBk72wlRSre/G0w PSwA== 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=ZA3120Sn8Luvd8E2WwZgGsGEBXA6LQf2kEgmkR3IGP8=; b=8LbStmF79RCD6G77b1J17Pczaav/LWiTPFynRZR1Q/Gb9rmR6lt9IvvRjwnPYu9TwS t3U79m+9NjW9aNPW6ybpfY2YabbA6a7mSybCLX3casHzgD7s5EFpUvSyXcCvYl8+ymeo LmtMJQQj6gDrh2+k+gL7GinTpfZNU7hIQwjMXOr2ekiUn/e0NcuQWXbj2SArotMcoi0D cAdo0YlYoMuBDNP2YU6NKTVo2eI4X6JBwL/DsbmoNE+vyHmxw2nPhvHPjnhj+xKe5QQr +o/0wrJ20hisqEEaDj0M5x5/thl3aLAAhlac31RvSVnybAuRu/PU3CrM+y63d74akUdA Y3Fg== X-Gm-Message-State: AOAM533onphCQXVzx4aSFThVZOr+jpVkIZUrY5QLqr5JM2BxkTfy/rNm set2MuRPnk1PN9JyF1Ny93pZdfiH1DA= X-Received: by 2002:ac8:5a0d:: with SMTP id n13mr2025255qta.261.1642038755027; Wed, 12 Jan 2022 17:52:35 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.34 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:34 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:51 -0300 Message-Id: <20220113015101.4-30-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 029/281] apm: 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: oNM3h99cLDoP Signed-off-by: James Almer --- libavformat/apm.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/libavformat/apm.c b/libavformat/apm.c index 1ced771745..6af0e1bdcb 100644 --- a/libavformat/apm.c +++ b/libavformat/apm.c @@ -104,6 +104,7 @@ static int apm_read_header(AVFormatContext *s) APMExtraData extradata; AVCodecParameters *par; uint8_t buf[APM_FILE_EXTRADATA_SIZE]; + int channels; if (!(st = avformat_new_stream(s, NULL))) return AVERROR(ENOMEM); @@ -116,7 +117,7 @@ static int apm_read_header(AVFormatContext *s) return AVERROR_INVALIDDATA; par = st->codecpar; - par->channels = avio_rl16(s->pb); + channels = avio_rl16(s->pb); par->sample_rate = avio_rl32(s->pb); /* Skip the bitrate, it's usually wrong anyway. */ @@ -136,17 +137,14 @@ static int apm_read_header(AVFormatContext *s) if (par->bits_per_coded_sample != 4) return AVERROR_INVALIDDATA; - if (par->channels == 2) - par->channel_layout = AV_CH_LAYOUT_STEREO; - else if (par->channels == 1) - par->channel_layout = AV_CH_LAYOUT_MONO; - else + if (channels > 2) return AVERROR_INVALIDDATA; + av_channel_layout_default(&par->ch_layout, channels); par->codec_type = AVMEDIA_TYPE_AUDIO; par->codec_id = AV_CODEC_ID_ADPCM_IMA_APM; par->format = AV_SAMPLE_FMT_S16; - par->bit_rate = par->channels * + par->bit_rate = par->ch_layout.nb_channels * par->sample_rate * par->bits_per_coded_sample; @@ -175,7 +173,7 @@ static int apm_read_header(AVFormatContext *s) st->start_time = 0; st->duration = extradata.data_size * (8 / par->bits_per_coded_sample) / - par->channels; + par->ch_layout.nb_channels; return 0; } @@ -195,7 +193,7 @@ static int apm_read_packet(AVFormatContext *s, AVPacket *pkt) pkt->flags &= ~AV_PKT_FLAG_CORRUPT; pkt->stream_index = 0; - pkt->duration = ret * (8 / par->bits_per_coded_sample) / par->channels; + pkt->duration = ret * (8 / par->bits_per_coded_sample) / par->ch_layout.nb_channels; return 0; } @@ -227,7 +225,7 @@ static int apm_write_init(AVFormatContext *s) return AVERROR(EINVAL); } - if (par->channels > 2) { + if (par->ch_layout.nb_channels > 2) { av_log(s, AV_LOG_ERROR, "APM files only support up to 2 channels\n"); return AVERROR(EINVAL); } @@ -260,10 +258,10 @@ static int apm_write_header(AVFormatContext *s) * be used because of the extra 2 bytes. */ avio_wl16(s->pb, APM_TAG_CODEC); - avio_wl16(s->pb, par->channels); + avio_wl16(s->pb, par->ch_layout.nb_channels); avio_wl32(s->pb, par->sample_rate); /* This is the wrong calculation, but it's what the orginal files have. */ - avio_wl32(s->pb, par->sample_rate * par->channels * 2); + avio_wl32(s->pb, par->sample_rate * par->ch_layout.nb_channels * 2); avio_wl16(s->pb, par->block_align); avio_wl16(s->pb, par->bits_per_coded_sample); avio_wl32(s->pb, APM_FILE_EXTRADATA_SIZE); From patchwork Thu Jan 13 01:49:52 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33320 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp15413iog; Wed, 12 Jan 2022 17:58:04 -0800 (PST) X-Google-Smtp-Source: ABdhPJxDvwzl5SYMmT27v/8ZI+lvi/kPGliAFQKczaSJp5xINqJmtaYsFRYe7g2m+IY5hX54//ln X-Received: by 2002:a17:907:62a1:: with SMTP id nd33mr1829453ejc.578.1642039083963; Wed, 12 Jan 2022 17:58:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039083; cv=none; d=google.com; s=arc-20160816; b=W+8sgOuZFknml42sYySRcvzKJXv4SpBcGNpJ2ar+gu6qjP5r9qENzp9CD9vieY5saO b5j7AjPfOUpJ3wbsh6RWn7cTWD/wu3DPYStrv63vf04R9ertNTFT9dt4VUOl6DJl3PnR st7amzxltbbCj3s8sEWNlDjkdjvn74jDQYk6ohLoY722iHpJf72IPvXEmNwsrKlqtRV8 E5ONe3Rn1jiA0CJC1TmYNMKmc0wExSQeEDJPek9JZ+IVVT7TGtcIM4QeCQXWD6ljq3UB l+BXlmzoAbbtCuxvq7E95qpI+UEPysA3W02qisiWr0Uu0zsABU5YfoO6EnsRqbRn/jD3 /gZw== 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=Oz8352VbV2MJfoNsm236wHwM4Nxi1TpM4wynvo0baIU=; b=JbbfzpRfpnBV0uVhiaanCTRxkw1UI6f11X16cRz4WwTpYqQ6l6/XaeWkv4tKas4ql2 hj9w3o4eZ3E/mzzXeZu5ZnBIlelW0H8Tc6ixMZuCfSb7OJIxEgSkvFJTasOPmByqdWUD AwXp3FVj1nsIX0JaKx2GrSIrpPrrkqNLPokMfJp9+Rt93PAXddXgcYElmILdq8aUnDKj 94UF5F/riU2J+9tIXkjSJDW1sfCgBjdIpJ6bru/fL4cxPyjo8gPOI2C/JJ7AG+MAkxHe Z63n1hUwqaIGnqqmGMrS1kNgFGXB460i9UY4BhoFVWc5cYkEDQ+tjgTqBvzx5OXZwp2A KpsQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=O5GTMeRI; 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 gz11si731313ejb.38.2022.01.12.17.58.03; Wed, 12 Jan 2022 17:58:03 -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=O5GTMeRI; 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 4A9DA68AF88; Thu, 13 Jan 2022 03:52:40 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f169.google.com (mail-qt1-f169.google.com [209.85.160.169]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F318468B027 for ; Thu, 13 Jan 2022 03:52:37 +0200 (EET) Received: by mail-qt1-f169.google.com with SMTP id c19so5336986qtx.3 for ; Wed, 12 Jan 2022 17:52:37 -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=CJbQ/7mGixVd0dNiHqIqYz+NGXt1ABVGy9rP6XmTNCg=; b=O5GTMeRIuzos4W1CLdfgQTOyiJ/IbzYNATfbeQ0No29mQjkzbJcG1wg4sp7LwpqSoR nGEhjL92XJ41YOGsBRMI04oNyW/ZVPj6B8KWHRTr7VIhIn/JmEAYHckH4JKmxHn+uc0z IiiQXx3gcCTpBcRVmDcaZI8r+f4NALxBx+rWJUAHdepfFgGZLXZay70FD66wn3I4Aa/b jOFvZDLIuftqAnwVKX+PQ73z9Lu/LZTcP2BItM9b5Q+MuBASRMhzMuEAvZk77l75aL07 KSGfVVK8c2Q+s8QKu8Y3o+DJ6Qb/3MmgXpY1PjFNq9Ig+fIQV0pMT2VfhnHJNuyQt4xI gP5g== 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=CJbQ/7mGixVd0dNiHqIqYz+NGXt1ABVGy9rP6XmTNCg=; b=ZaMXqJNWYtUpYDujJZ5eHjsnIJ+lMxPyKXIeGa9NCJ11etjUFMCSXxzLj5OJfh5dpO 7cHi6CuItULY9Nlwf74b5ySDz1nvE+P6zsD0eeD0pCcPInfBolWcKQP2ni1/xT83HY9b ylAkXOOGbIey0QRNUYrQUroW2w9kDFSp7MysW0iAzriJTsPqGtlMmuE/cdvKnW/Kez4L lijU+AzRSGXkM7FIcq3f0paSNtwNlbgFFpxoNxv6g1s5DaHrZBvSS/fFx6gOk3N+RPJT A1PZ5/DRdWG3BeCW4CQI9LbMnO5EdAG8/pjrXZ1PJcdFsIofU9lnDn1t/P8DW4dWyKup eC6A== X-Gm-Message-State: AOAM532xSH9Max9+NK8iRXE4dRcy8opo0QE+Vnu/fKzxJT3HIWhzIiGa EzDOJLjHRTWRt8qoVS4lXF+LAQzbX/w= X-Received: by 2002:ac8:58c6:: with SMTP id u6mr2008151qta.540.1642038756260; Wed, 12 Jan 2022 17:52:36 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.35 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:35 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:52 -0300 Message-Id: <20220113015101.4-31-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 030/281] aptxdec: 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: RAQeQA2jx3TE From: Anton Khirnov Signed-off-by: James Almer --- libavformat/aptxdec.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavformat/aptxdec.c b/libavformat/aptxdec.c index 7153e262a1..ff1aa32bd8 100644 --- a/libavformat/aptxdec.c +++ b/libavformat/aptxdec.c @@ -42,7 +42,8 @@ static AVStream *aptx_read_header_common(AVFormatContext *s) return NULL; st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->format = AV_SAMPLE_FMT_S32P; - st->codecpar->channels = 2; + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = 2; st->codecpar->sample_rate = s1->sample_rate; st->start_time = 0; return st; From patchwork Thu Jan 13 01:49:53 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33321 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp15508iog; Wed, 12 Jan 2022 17:58:17 -0800 (PST) X-Google-Smtp-Source: ABdhPJxGmpC2Lvwx5uYBzSjWdqA/O4G7aL6v68gMAO5pAFxYQ2scbLpfIu5Nv3/mm+XyIJgcZSa8 X-Received: by 2002:a17:906:589:: with SMTP id 9mr1922591ejn.721.1642039096972; Wed, 12 Jan 2022 17:58:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039096; cv=none; d=google.com; s=arc-20160816; b=idkvqFucOx6dIrwIbAfCmaPCy2FWGo4vu4gLFeHYS6u2T05Hz0w6dPhlqCgn5Y52d2 czJgWbv60IEpNd5OfCdPwjvIHYM/Mw1viLFNK9okr2xjHXlFWA+dGEujpFpdHPHmmVmC +Th4n8lxYNUr9sFYw3wAsQ+VJ1uSc9imUUrbd85AjqCpe10OadNtemW1qjFFY+/HVU66 C58jpk36Uu4VV5iPpSnxht1smCideovcEf6K7BxfyyHJmhw7b7KH8Rm+hoXXTrH7zGb/ wCoJi6o+lGV779Z9mCsWXgOHc2GNPV0u9QUGDu/xby/RO3VVYHjI/5EGBgmrilI+kpc2 4Hxg== 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=ujkeu7AlzccoCLtyHSqSsl48zXlulGswh6/rlvvuSTQ=; b=U/dOAwuQDW04jtJiTCOGnI9H96ZuAWj6XZ2DFLbeJWupCsOi6ERdkY0IdauFp64Tcf JJDYWSQK1kPfwYg/oQOSbcqOqCTniLgKjRl8cHD3jOhDmcfWT9LeaKnkc0+62O/64b9K TbHu77KU3sfBmf7jjI4q8hYSg0jymlrC9t+H/nox103UKNrTIinMJpyHoJj9h7ktrckU eRYBxwnhBNil0g4MDUdGOoHXuR6gm8nvBHUpU5k7f4NbuSprVnE6Wdl8T+tEaD3J9Gf2 JKDzQJtSh+RRXrRY/DpszPwjfSUZf794QE+dfTL00pK0fqaCtfNO/4YCuYaYncaQNoVR oV2Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=IhXalA6g; 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 f19si838843edd.540.2022.01.12.17.58.16; Wed, 12 Jan 2022 17:58:16 -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=IhXalA6g; 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 3810868AFCB; Thu, 13 Jan 2022 03:52:43 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f51.google.com (mail-qv1-f51.google.com [209.85.219.51]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2FE3368B034 for ; Thu, 13 Jan 2022 03:52:38 +0200 (EET) Received: by mail-qv1-f51.google.com with SMTP id kc16so5128586qvb.3 for ; Wed, 12 Jan 2022 17:52:38 -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=8PGN6vSUrXpLhAuxy2+MsbXpJMUKAODHkTvElhX4LK0=; b=IhXalA6gt0ZN+xfYm/YY0urczMX/qT5Vzr0xfmk9kWMK9rvwtvh6Giu1xgFV/s/Ai7 kRlUf/sjd9YavimAhsV00UsF9puxRQAhg4JKalk336PLtEc+Owq4cc0k5SCQlZhIZ0al WQDLhF8hZhRJ1S8HIP6WDRmF/gCu8ZDtBCGukDA7pg/h1tVG+1WcWFKBTzdm9N3EZKmE DNVN4GBALI8MBuFlrwlLVOBfLXAFvgwo+EJ58kTdi6jR9RaI1fqY7/yOLnCU3RY24cyL etQYYLdrewnUqYTJj3jp1C/u4kuTPDx6HBgbiBIMZPDl0kzZxOFN2YBAZDnQtLJSORLE KvSA== 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=8PGN6vSUrXpLhAuxy2+MsbXpJMUKAODHkTvElhX4LK0=; b=HijGYEl+hH6RvDLmlarmH8nKl0Mdg7JuOfLEWtU7h/guMqEFvIoIw98Y0Klmmrs6h3 glKFOn28tqALU/uf731h49Fah7NA63ZNHrML4czpKigdpC1TCePEQ0K+dQ59yFV61/TQ Z+K0u8xgtkeFqZqDRk9NIof3J9cmY54HSbVD4VjP1CqFMNdN575XyQMkNyy+8GFfXfuR tMhIng9yAAgv1BEqJLdegICqIV8eCcMGtVWSBysE+bp6Jz1ubH8GHe3GPvY40ukl3vjf vnmQIf2glQmXuFwxrDxwS4xj83Rx0Rm5gBTRZJt3qaomDwp/bTuzFC3pwjGfs27eZAHH 979w== X-Gm-Message-State: AOAM533jL2bHb+EL0VWAFzKvYP3+ly5nWO1NzSV4IUzTd+bSwSPNl5mS IydOv91jw156pLhR10PR1xIxc6TC89Q= X-Received: by 2002:a05:6214:410f:: with SMTP id kc15mr2345345qvb.113.1642038757455; Wed, 12 Jan 2022 17:52:37 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.36 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:37 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:53 -0300 Message-Id: <20220113015101.4-32-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 031/281] argo: 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: sxD4NFVkYcNq From: Anton Khirnov Signed-off-by: James Almer --- libavformat/argo_asf.c | 18 ++++++++---------- libavformat/argo_cvg.c | 5 ++--- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/libavformat/argo_asf.c b/libavformat/argo_asf.c index 2b3569ebc3..cb598b3e04 100644 --- a/libavformat/argo_asf.c +++ b/libavformat/argo_asf.c @@ -96,11 +96,9 @@ int ff_argo_asf_fill_stream(AVFormatContext *s, AVStream *st, const ArgoASFFileH st->codecpar->format = AV_SAMPLE_FMT_S16P; if (ckhdr->flags & ASF_CF_STEREO) { - st->codecpar->channel_layout = AV_CH_LAYOUT_STEREO; - st->codecpar->channels = 2; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO; } else { - st->codecpar->channel_layout = AV_CH_LAYOUT_MONO; - st->codecpar->channels = 1; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; } /* v1.1 files (FX Fighter) are all marked as 44100, but are actually 22050. */ @@ -121,11 +119,11 @@ int ff_argo_asf_fill_stream(AVFormatContext *s, AVStream *st, const ArgoASFFileH * (nchannel control bytes) + ((bytes_per_channel) * nchannel) * For mono, this is 17. For stereo, this is 34. */ - st->codecpar->block_align = st->codecpar->channels + + st->codecpar->block_align = st->codecpar->ch_layout.nb_channels + (ckhdr->num_samples / 2) * - st->codecpar->channels; + st->codecpar->ch_layout.nb_channels; - st->codecpar->bit_rate = st->codecpar->channels * + st->codecpar->bit_rate = st->codecpar->ch_layout.nb_channels * st->codecpar->sample_rate * st->codecpar->bits_per_coded_sample; @@ -305,12 +303,12 @@ static int argo_asf_write_init(AVFormatContext *s) return AVERROR(EINVAL); } - if (par->channels > 2) { + if (par->ch_layout.nb_channels > 2) { av_log(s, AV_LOG_ERROR, "ASF files only support up to 2 channels\n"); return AVERROR(EINVAL); } - if (par->block_align != 17 * par->channels) + if (par->block_align != 17 * par->ch_layout.nb_channels) return AVERROR(EINVAL); if (par->sample_rate > UINT16_MAX) { @@ -392,7 +390,7 @@ static int argo_asf_write_header(AVFormatContext *s) chdr.unk2 = ~0; chdr.flags = ASF_CF_BITS_PER_SAMPLE | ASF_CF_ALWAYS1; - if (par->channels == 2) + if (par->ch_layout.nb_channels == 2) chdr.flags |= ASF_CF_STEREO; argo_asf_write_file_header(&fhdr, s->pb); diff --git a/libavformat/argo_cvg.c b/libavformat/argo_cvg.c index e1854b4493..cdf13016a8 100644 --- a/libavformat/argo_cvg.c +++ b/libavformat/argo_cvg.c @@ -182,8 +182,7 @@ static int argo_cvg_read_header(AVFormatContext *s) break; } - par->channels = 1; - par->channel_layout = AV_CH_LAYOUT_MONO; + par->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; par->bits_per_coded_sample = 4; par->block_align = ARGO_CVG_BLOCK_ALIGN; @@ -275,7 +274,7 @@ static int argo_cvg_write_init(AVFormatContext *s) return AVERROR(EINVAL); } - if (par->channels != 1) { + if (par->ch_layout.nb_channels != 1) { av_log(s, AV_LOG_ERROR, "CVG files only support 1 channel\n"); return AVERROR(EINVAL); } From patchwork Thu Jan 13 01:49:54 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33322 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp15596iog; Wed, 12 Jan 2022 17:58:29 -0800 (PST) X-Google-Smtp-Source: ABdhPJzbvguGfuzHTyI/GGgvTpRrj+Q1qguYD/3/iaT244nszlzrgahdF0Yvmt9IoXF5ZX3+EtUF X-Received: by 2002:a05:6402:3514:: with SMTP id b20mr2292975edd.178.1642039109529; Wed, 12 Jan 2022 17:58:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039109; cv=none; d=google.com; s=arc-20160816; b=A5s6G1SCDYKSx9lsf2IQ4kUWQ1/3R7X6IPL2iseU6vCzYR5S1vgHdLeH3L29MOCedb tJmCiHPbaSFXazvWYHA2NXPVj8JpvYx5QZzAWKeTl0ASQP6Ur7LuUxj0J4W2Im7zwuxp XrksIKhJOLw6osdvKJPdMUbbikcWbET1J1tghgaFs5XLP2IcSgqfDXSMag+EevJLfeYV SfC6Np4j9oqbB+vF8ZeVBhTlJ6Xi78Abo68trsXg8eWbcgmwDMU5PtXC/a26v0ohzRms aBxZ84o6HohzN5jvZov48/CDLxHLqxXRuoZQytNYNLr5592w0xaVRNwii/mffD42LSOF GBLQ== 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=UrUcZ+SelxgASnCmXTX1qUXzN74iWNXCbBgP/KLuYzA=; b=Hm+EySggDSrMWsAj2iPedfmjZt1cXCOhvTUH8ITuBgykxPMF9Ueft25yMeLoHm3/LX 2Hi1pegwOngfp/hXPuT8yP0QYmstKj5xGs5NoV/o7F+vOJRHmv1/q+UI3XZcjkh234dJ ickO/nYiyOU2ivNQE87m5NWw2lYXzEGqej+H9D3BuVptS0HYOQTwHEGUjMfkkhPN3B2n XFdxV60TKCr/+Qfsmh7HxR2c+FTAuCyeKLfw63kEFN+we47vlVgyl79+ZvsyuWnXN2X8 TuPGv6kiXzMk5jlRf6BbnZrm06SbAtj+FJdJ4lCrzK1L7X64mOBOMAWq6G432tO8DcSw ncwQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=YaKQRSdY; 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 hv15si202537ejc.869.2022.01.12.17.58.29; Wed, 12 Jan 2022 17:58:29 -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=YaKQRSdY; 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 481E268B042; Thu, 13 Jan 2022 03:52:44 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f53.google.com (mail-qv1-f53.google.com [209.85.219.53]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0E10A68AF88 for ; Thu, 13 Jan 2022 03:52:39 +0200 (EET) Received: by mail-qv1-f53.google.com with SMTP id r6so5032270qvr.13 for ; Wed, 12 Jan 2022 17:52:39 -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=N1PGC4qDH3pLDaCsmPrghuHbgoB43kijpNcMMPRzyjc=; b=YaKQRSdYmSiRjd9yygxK+TsCLImuKExwla3BblO0AbFc7vkX3emOw/tv9XoRDZk1Fa KhfYyaI57baOghdfot9u2KjLRYvmrwepb9dPVtChyV4ZLAyJXCYeamwBfvPxpJhFsyBS aveQ4yvEbgFu76RtDuYN/ylZOwMAOnrCDSv7A2MYNLbY9y9ag1QyjwbGouZSsiSizshl AonUhKWyRj0KxzPOE7S24OEd4F/b8tZWyZ0XGOeyAZySHRRN034m4T7re1wjEfN41SWK wyJev3gJV4MHsNOy/QQd6skG+mXMFGYfNNqY1jpPoIUnbRjj21mQPB+nYyXyXdnX/m+P VK+Q== 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=N1PGC4qDH3pLDaCsmPrghuHbgoB43kijpNcMMPRzyjc=; b=KmF65CG/MzVhM2lUdruvddJj0ayyJ/F+5ODX9gsDMWr1nMteB++J9QfB8FTaRQBM/y Gk7WNhAPmYxijqV9FW/RMdbAD5XPviVMUJsEK5FjbSpqOmvoGC/v9sX6PSQmbNj36z3A DsVhbd8SR/RXoG6oPnpgwq4Kk77zvveamzyBo0yXfSVy4fZQ0fXJoqiPqOm2dk3+yI2t 64p7mb4NkgY3DJPErJz7V6ZAjGMS8dD3Jo9coLtikd+2/xGsi/B02Evpjvu5+gIVztts gHUwElnqCt19vUHCEFTzGRS/SquAT/Pju4CzqNI3EihpXYBrAgq+zcm88OVzQkczEuDa nKSQ== X-Gm-Message-State: AOAM532q5DpvLgiZpM2iaKal0YBCCsJJHxn1A656HQhh9VMzhy6ckQmc tIHmzbmlqcNKNn2scu91KTZ8ekjP9aM= X-Received: by 2002:ad4:5967:: with SMTP id eq7mr782818qvb.106.1642038758630; Wed, 12 Jan 2022 17:52:38 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.37 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:38 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:54 -0300 Message-Id: <20220113015101.4-33-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 032/281] ast: 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: pkW2MYBtJqoW From: Anton Khirnov Signed-off-by: James Almer --- libavformat/astdec.c | 18 ++++++++++-------- libavformat/astenc.c | 4 ++-- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/libavformat/astdec.c b/libavformat/astdec.c index 629372acf1..3d460ce827 100644 --- a/libavformat/astdec.c +++ b/libavformat/astdec.c @@ -57,14 +57,15 @@ static int ast_read_header(AVFormatContext *s) return AVERROR_INVALIDDATA; } - st->codecpar->channels = avio_rb16(s->pb); - if (!st->codecpar->channels) + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = avio_rb16(s->pb); + if (!st->codecpar->ch_layout.nb_channels) return AVERROR_INVALIDDATA; - if (st->codecpar->channels == 2) - st->codecpar->channel_layout = AV_CH_LAYOUT_STEREO; - else if (st->codecpar->channels == 4) - st->codecpar->channel_layout = AV_CH_LAYOUT_4POINT0; + if (st->codecpar->ch_layout.nb_channels == 2) + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO; + else if (st->codecpar->ch_layout.nb_channels == 4) + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_4POINT0; avio_skip(s->pb, 2); st->codecpar->sample_rate = avio_rb32(s->pb); @@ -90,10 +91,11 @@ static int ast_read_packet(AVFormatContext *s, AVPacket *pkt) pos = avio_tell(s->pb); type = avio_rl32(s->pb); size = avio_rb32(s->pb); - if (!s->streams[0]->codecpar->channels || size > INT_MAX / s->streams[0]->codecpar->channels) + if (!s->streams[0]->codecpar->ch_layout.nb_channels || + size > INT_MAX / s->streams[0]->codecpar->ch_layout.nb_channels) return AVERROR_INVALIDDATA; - size *= s->streams[0]->codecpar->channels; + size *= s->streams[0]->codecpar->ch_layout.nb_channels; if ((ret = avio_skip(s->pb, 24)) < 0) // padding return ret; diff --git a/libavformat/astenc.c b/libavformat/astenc.c index a5792e0b07..b29cfc4aaf 100644 --- a/libavformat/astenc.c +++ b/libavformat/astenc.c @@ -84,7 +84,7 @@ static int ast_write_header(AVFormatContext *s) avio_wb32(pb, 0); /* File size minus header */ avio_wb16(pb, codec_tag); avio_wb16(pb, 16); /* Bit depth */ - avio_wb16(pb, par->channels); + avio_wb16(pb, par->ch_layout.nb_channels); avio_wb16(pb, 0); /* Loop flag */ avio_wb32(pb, par->sample_rate); @@ -109,7 +109,7 @@ static int ast_write_packet(AVFormatContext *s, AVPacket *pkt) AVIOContext *pb = s->pb; ASTMuxContext *ast = s->priv_data; AVCodecParameters *par = s->streams[0]->codecpar; - int size = pkt->size / par->channels; + int size = pkt->size / par->ch_layout.nb_channels; if (s->streams[0]->nb_frames == 0) ast->fbs = size; From patchwork Thu Jan 13 01:49:55 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33323 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp15714iog; Wed, 12 Jan 2022 17:58:43 -0800 (PST) X-Google-Smtp-Source: ABdhPJx1/nzriKdMJLJItRtjUgOXmL4xIR45csfTOJ3QKRXUkBkcY06cI++ynvt1nQcZjFe/Bnml X-Received: by 2002:a17:907:2da1:: with SMTP id gt33mr1903262ejc.590.1642039122769; Wed, 12 Jan 2022 17:58:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039122; cv=none; d=google.com; s=arc-20160816; b=0Dm6VhCgYzTGjDM+id9/eDQy4oopEyS5q0RtEkeWGLYNF3HrpTeoPBk4BhfCY3O7h7 zVkXzGgomGgPZIAd6Bwdk3zRQ+EtL9xYvpa8OlbeXs/AiwYC3hMxVp4b3yGZ4/GGSv3s Z2Z+H+6EhWKjFhts9O+YrOCxafRSQ7Jr5Kw6WTi15Bm4Qp28SZchZ9IQir6OYOjk73yM PeKfkhYnKu1+KGt/i6LVIS/EVRVUuIaq/RsB/driLOBSw8Vlu8kkmKIpUllo7g8DuXMO 8xCQSkuxOq/s64XcTcKW4N7dj5zmyxsQ/f7oEb2AyEndzfqD5r75Pij2CUjGSB1NJWMS fEfw== 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=ErU8335YGZvc/KYhu9iQNW9cH/BkXdxpjS0C0tGgTYI=; b=EjEKHXlPpjzqy4LJN7AlMGGeh/D1/SIIBJQ3jcXEvOPCAPZyItZfRUbmlkSky/dZFp J3Q7dwx/9XoZ14jCfAyBganaB8ZofrgsoRi5wt8NVXLIDeu2U29GzDL21Fdl3KErFEm4 ZQ0vuUk4bghsdIen0pibsFWTqUOagwFFkToCyGsB6xXTalyaVeHISfx11UuLdcdCJKNf X7aE8Q9j1kqihmLOm5tug7vm1M6IrbhGVqqDsB49BCM2yh0xOJ+ziyt0a9+w8ld5k49E 5rHCMyc6y0xEkA4PS8/9YiUP798N0aFfGemddoVcwqqVycqJSLLA5uUnSOyCoo9uibUj WySQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=ot45KRYW; 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 dz15si1185818edb.398.2022.01.12.17.58.42; Wed, 12 Jan 2022 17:58:42 -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=ot45KRYW; 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 2F57E68B064; Thu, 13 Jan 2022 03:52:45 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f50.google.com (mail-qv1-f50.google.com [209.85.219.50]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4238168B042 for ; Thu, 13 Jan 2022 03:52:41 +0200 (EET) Received: by mail-qv1-f50.google.com with SMTP id 15so5046010qvp.12 for ; Wed, 12 Jan 2022 17:52:41 -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=4vHn3N+M4ulb/kqBsHi75ABLQz1HnHUSbLcHspG4B9c=; b=ot45KRYWa0EpEGNJj4mauzA5myHfxNpn/R2zzgmzGuclEBtFsRCpDPw/As6tCFZPz6 tN40xUa6e04SDpXGTjHkGYUL1VujehsR5priUAJqxjWH5oP6XyrQv/HrqGOmcgthgloQ kPzbWxtp1Cy5BYb89wEvc/9niUD2oWuUEJrEG3bY0ePwnXRse4D6OmCz9E/DXpDJIk6J xqpE+/YpmcwCvgsRuizpZ65sAHduKK/j0lf+Y2tC+EwDup6VSCVYK3swKuXgfZybtb9z 4qTQx5StzXUA7bRUV90CJyoEn2y2vgwWia06RgUJT37eZHRFy+tM8qF5iV2/nMuRINxG 2sDQ== 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=4vHn3N+M4ulb/kqBsHi75ABLQz1HnHUSbLcHspG4B9c=; b=Xj3iJhsqjayfsAdSRKKdExhbSkMylRuzHRhfZwkrKJf0G8dHOXQpTpJFQCMWZZGUJ5 Ref916T9r6iB1h13KKbcyO5ku43SLshNm1iB38gbpCpZkHzqPAqlqgoR+bvCyF4TlBPZ Dr6DKqyLpKXkSy9uHtv35d6oxF0oc98ybSEkB8ijQ2nRf97dZK2wqlIEUkVVkGZPW2Iq JK//BMVA6vkwUhtnKBf5tM+WqbliGe1pHeY7bb86Ly2KnRJpjSGgvj55dDkymI7XpNYb Kh7ERWnwWiBK0Ca7BCZrQqjien7PY6Z3CeMlJG6ujEtQimOYL/TotS28iw3TLRWhIrm3 C5Og== X-Gm-Message-State: AOAM530UxWY2DX9BAlhvHCp2ofQN+tyQmDVHUsyUbUMFdicXrRRJI53i s3RbifEfx0iEC/WFevhfyXoVeXNJjSM= X-Received: by 2002:a05:6214:2307:: with SMTP id gc7mr2207644qvb.77.1642038759897; Wed, 12 Jan 2022 17:52:39 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.38 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:39 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:55 -0300 Message-Id: <20220113015101.4-34-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 033/281] au: 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: OpJdvDCAiZOj From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/au.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/libavformat/au.c b/libavformat/au.c index 9bd408f65c..1de941e555 100644 --- a/libavformat/au.c +++ b/libavformat/au.c @@ -213,13 +213,14 @@ static int au_read_header(AVFormatContext *s) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_tag = id; st->codecpar->codec_id = codec; - st->codecpar->channels = channels; + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = channels; st->codecpar->sample_rate = rate; st->codecpar->bits_per_coded_sample = bps; st->codecpar->bit_rate = channels * rate * bps; - st->codecpar->block_align = ba ? ba : FFMAX(bps * st->codecpar->channels / 8, 1); + st->codecpar->block_align = ba ? ba : FFMAX(bps * channels / 8, 1); if (data_size != AU_UNKNOWN_SIZE) - st->duration = (((int64_t)data_size)<<3) / (st->codecpar->channels * (int64_t)bps); + st->duration = (((int64_t)data_size)<<3) / (channels * (int64_t)bps); st->start_time = 0; avpriv_set_pts_info(st, 64, 1, rate); @@ -304,7 +305,7 @@ static int au_write_header(AVFormatContext *s) avio_wb32(pb, AU_UNKNOWN_SIZE); /* data size */ avio_wb32(pb, par->codec_tag); /* codec ID */ avio_wb32(pb, par->sample_rate); - avio_wb32(pb, par->channels); + avio_wb32(pb, par->ch_layout.nb_channels); avio_write(pb, annotations.str, annotations.len & ~7); fail: From patchwork Thu Jan 13 01:49:56 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33324 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp15855iog; Wed, 12 Jan 2022 17:58:56 -0800 (PST) X-Google-Smtp-Source: ABdhPJwsaox6TQw6zz5meynZovQnYICaB0HmjrF94M+E+eJ5XXV6Z1/yeUZKMhzlw/eVbeg6yVkY X-Received: by 2002:a05:6402:3588:: with SMTP id y8mr2229405edc.147.1642039136406; Wed, 12 Jan 2022 17:58:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039136; cv=none; d=google.com; s=arc-20160816; b=z1AQYglqIjDtXbK0Y++fqaWcsSW4l4w/TF57QrV2x9x+7e+D+d/4EF5Zm79pWGpPL5 V2EjFCttjmBmbTaOHhx6Qa/3w0oEYgDaQQedS2FRjHeoLn9eMhyUb/pijgOUYqb7pBnk eVaQcTrjtgNoBR7Se9rGrfdAiUWvD6ezDfRlx8RPPlz9PQUT/bGGnu6BoZTGXl/DEkgC yTcZPqa7E49QM9JmKXH44hFDxC8EZdpFPpEPEtdKcvmYVOkg7eDY5rroQYtT+yODMtXu /3rB35I0ck6AfI8DHY77go051A51oDRm9PxO3HbDBsM0cpSObKtCZK0OEpXjUTDMBI/u 8TQQ== 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=+CHWP3CzJpPhdd4tIK/yzvAfXCsHtrVyjcwuf0Ltk+s=; b=pYtkicf/4v11SMZhJD2s9tLjRB1f8P23Nw0XlIr8i/LlwTKEZ6W3FxAr6MW3cRskKj FMTqgLjaDJ9Ho95GWVJs2VaPItmLd8NcSl4LX4M9mJRia5fjvShEOvbNL5+p71yevX13 l+H4eNKAm26uxPBQ8XN7HhXLpqLlYVV8Pk0ePUsWRY2WD5MQ4HtcFn9jaF5g+BgojZO5 QoYWzIqTz+0MDOIOh4XnwvqUWYVyEgP3vRbFWq0gMPkK59CSlKhdSDEvVKQ5Nftc0B7Y KUqfyVSYruvMBw1A+4rSfAwP+fA8FVUs0TnO1XHfZ+WeOaA37eql6G9HFtngWWIXSAKO SU9A== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=T3IrmJ6K; 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 bh4si820695ejb.591.2022.01.12.17.58.56; Wed, 12 Jan 2022 17:58:56 -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=T3IrmJ6K; 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 09FE468B06E; Thu, 13 Jan 2022 03:52:46 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f47.google.com (mail-qv1-f47.google.com [209.85.219.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7C8AA68B046 for ; Thu, 13 Jan 2022 03:52:42 +0200 (EET) Received: by mail-qv1-f47.google.com with SMTP id kc16so5128730qvb.3 for ; Wed, 12 Jan 2022 17:52:42 -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=FdB0zKi6iJgE0MQpOYU2AbrrWGHoiEzt/LBbgsb5Qig=; b=T3IrmJ6KOaAJN5EpAdBwgUO7n9Rc+NZMift2rUM536TUWmUlzHI/cN3V2NVh7qOcX3 DQOfDRHlZByfnXA9vrsXdrQidzT/oT/oX4r8PpYBolC5f2eeAeWi6dJve8kG9DI01YKI svNNJaF33rz6kIuWZjTFqAHLZ1a499hpRdv0Ans95KovvyTmm326AgmwrcTDHPDoTHg4 gCg76Un+QZ7DOwfakuuJ7+9XnzS5nr9S83/svGF673/hrNGhQs6EJR2E+BJUZfBmB5JA 5quxW6mZIl9Nrv8tZrMPywS22QOBQj/5/QnqCX3M0xzDOeoeUAmazipCBCq/qP/iO1HO n8wg== 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=FdB0zKi6iJgE0MQpOYU2AbrrWGHoiEzt/LBbgsb5Qig=; b=25/PDW+gcExunejDCkcILJW0k/MvMJglfNPYOPC+A/YwHrugTrNpYL8wsDu/pkKbfg ECacVgMWlL6fX46rRIBrK4WDEMIaaVDdpw0eqPyQdalc5DCI6iR6vYudZQrNp9VXFMC0 le5tvyqyGyTIaOV65gpS5SG724eDNCtxBOCAqqcauLQ5ufCEfYV0+2S7+t1SGl9WT+Pk CJX8Sd5An4OK8utdBVQAV4wnEN98cxaWx1Xi00g+FN4RwXqBXExokZKG6PAttbTSWmm+ qCmHSbDfEG2oTx8edSFJI7LoppLXvKtaG3MHPCrdc8PdDQKm/xfWikcrf/jdH3ZpU1a5 ME1w== X-Gm-Message-State: AOAM533x22e4m8aQuVCgACa+PO+pMxLXKdH9ORvX1vNvvr3sY9mlVkpG jcklOOKfoptv9i/UnmPMpX+7PLinbrQ= X-Received: by 2002:a05:6214:caf:: with SMTP id s15mr280525qvs.115.1642038761053; Wed, 12 Jan 2022 17:52:41 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.40 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:40 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:56 -0300 Message-Id: <20220113015101.4-35-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 034/281] avr: 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: 56QznEL7EAei From: Anton Khirnov Signed-off-by: James Almer --- libavformat/avr.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libavformat/avr.c b/libavformat/avr.c index 6fdcf68952..14a633ea5d 100644 --- a/libavformat/avr.c +++ b/libavformat/avr.c @@ -52,10 +52,11 @@ static int avr_read_header(AVFormatContext *s) avio_skip(s->pb, 8); // sample_name chan = avio_rb16(s->pb); + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; if (!chan) { - st->codecpar->channels = 1; + st->codecpar->ch_layout.nb_channels = 1; } else if (chan == 0xFFFFu) { - st->codecpar->channels = 2; + st->codecpar->ch_layout.nb_channels = 2; } else { avpriv_request_sample(s, "chan %d", chan); return AVERROR_PATCHWELCOME; @@ -81,7 +82,7 @@ static int avr_read_header(AVFormatContext *s) return AVERROR_PATCHWELCOME; } - st->codecpar->block_align = bps * st->codecpar->channels / 8; + st->codecpar->block_align = bps * st->codecpar->ch_layout.nb_channels / 8; avpriv_set_pts_info(st, 64, 1, st->codecpar->sample_rate); return 0; From patchwork Thu Jan 13 01:49:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33557 Delivered-To: andriy.gelman@gmail.com Received: by 2002:a05:6214:122d:0:0:0:0 with SMTP id p13csp989711qvv; Wed, 12 Jan 2022 17:59:11 -0800 (PST) X-Google-Smtp-Source: ABdhPJwrKP3szoZdhUTKVG1sOjwf0I2lvX2ZNlVO17nUGYBEOypQMsnKjvtrjqRovFYQlB6iqgVW X-Received: by 2002:a17:906:59b:: with SMTP id 27mr1986501ejn.294.1642039151209; Wed, 12 Jan 2022 17:59:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039151; cv=none; d=google.com; s=arc-20160816; b=IfehF7B9t1DJBAIRYNgFCusJuDVNJibc5cbiFSl3Hc1QlVcKJwgKylL85cvlolqlzn PHajaPlH5aGAFuk5sgRInVQPZmDjHeGpt7y5TA/mvDnzCK7Mte/Gk1NYiE7RRddenplc BxOwpVpwD0gjecbiQTWGsUUs1vVtaQpnCwn7N0wnOLFfHYNVoF63Qv/rB2a3W8o6aXL4 XQ+fAIGJr/a2lyLA8scZjBWBY0MPmUj+TYDcYEGLtIgUDGZBZhkUcKY77IN7tqJdIi6n B0deoIV/EGZgV95YNjGXZqWfz0LHyFRta1veQc0YvtL8g/EttKjJhYV0IGqWCNlkNJKR yW4w== 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=ppkPHDEMFb/xQwHJV7BhM8GDQj8Uklva/6pnrIy/vt0=; b=ogrIxHVnmt6TpgAM2bDeGPTGdP2OVniXolTPEdopnOUGeA8fDXETnpjZIl5uwihgv7 fpPlj5DPg59fh4TocLdfHt+M9hyMcAnhDHh89AG1AARIqG5SmZfDXZ0eJNJ3b1CG9Ap/ izr1MFbo4y36+ZgHRm1lQarBuzIdbl7av7WVs3oIKN1ri7VGv1zxsUjy4OlHPl7ek/9p 7aYSyq++mevNZKcSJ6a4jBMNAGcuBCuTp1Jyk7wPZe+v+H/7WdQoxkVmtKfXJazp3sHQ ZTWpfVlXdVpdrm4l06pEoB+bDGMd022RwVG6yhR1ch6/WpJSrk3TpmZ2TtSMR9GKK4Dq z5VA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=HYzDEDdA; 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 dr17si792230ejc.423.2022.01.12.17.59.10; Wed, 12 Jan 2022 17:59:11 -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=HYzDEDdA; 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 3506168B055; Thu, 13 Jan 2022 03:52:47 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f49.google.com (mail-qv1-f49.google.com [209.85.219.49]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A4B7C68B04C for ; Thu, 13 Jan 2022 03:52:43 +0200 (EET) Received: by mail-qv1-f49.google.com with SMTP id p12so5080429qvj.6 for ; Wed, 12 Jan 2022 17:52:43 -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=CfZE0UiWuEC9nu8W6hfXNLwMc9Fow1WpW97taBu5cAw=; b=HYzDEDdAaSnS/ff+KO1u1wIPDAvSPldW12k2Ml9MpDDvtEeZtqYvt/ldITvhLDtY+G Xhg0bj6tLzEiMNfFDl3O0Doch5wBENaTTuRxXAFRUt3EFzcn2kNKxngh9SU7+WHrb+kk ElNLv5M+8Kjco+xuLRB9jTrkNp9Kfo09r4GpLWpgees4JnBl/ylKI044qM9TnMARQWUp sJwy642KCppn+X2rwnEKplUyWGhUCk0EbpniZBi1q17psoJb0vsA4GqnpM6Pdpy3iGZH cqC0Y3KU3vHIMPxZGzfPk1G4iYbIdBCsIDyzlp9M/Meby6a4GbsFI1b+lX78HNBoONpG 3q4w== 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=CfZE0UiWuEC9nu8W6hfXNLwMc9Fow1WpW97taBu5cAw=; b=f9enFv/Ddopz9FD0I5uZ46myVtaXec8BLI/np8n1wHhS7KK6TXyEgwWYWrwR+3Fr4F SuzSwCD4avtx1pJgcVvdSC147hYm2AsE6Gm9L61UaMo9gg3/UffoOQnMzfcK4uXeupOF Cs8HeZ7gnsP3HoFw980fC+SKnGquS/ngtfvwiiiqWfQPJvCqvnxAbqWvbhUy5f+Bn1fr liheeoilzc3YIMXwfigWqz8X7DbJFVS6KLmM5Y1jnWBYiCx9wvAilqPusJxqgJxvIGOk 7E1/DfQKbQuRnqpPAEkH+HZZRfpezJi8L5QgYiOoI5lOBD9b8ljwjWpKVFG1t/7pHrvz PL/g== X-Gm-Message-State: AOAM530FqHhy2VBuNkQZjQeTf+qmyVBzF0he7GmgXErKR/PdnjnbVHhN 64SUHgNqlmcux6RPf7//fCWyPcRbWg8= X-Received: by 2002:a05:6214:2684:: with SMTP id gm4mr2166183qvb.131.1642038762278; Wed, 12 Jan 2022 17:52:42 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.41 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:41 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:57 -0300 Message-Id: <20220113015101.4-36-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 035/281] bethsoftvid: 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: qGb6Ha52xUFi Content-Length: 1404 From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/bethsoftvid.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libavformat/bethsoftvid.c b/libavformat/bethsoftvid.c index 65aab11ad6..cfb7d57332 100644 --- a/libavformat/bethsoftvid.c +++ b/libavformat/bethsoftvid.c @@ -254,8 +254,7 @@ static int vid_read_packet(AVFormatContext *s, vid->audio_index = st->index; st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_CODEC_ID_PCM_U8; - st->codecpar->channels = 1; - st->codecpar->channel_layout = AV_CH_LAYOUT_MONO; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; st->codecpar->bits_per_coded_sample = 8; st->codecpar->sample_rate = vid->sample_rate; st->codecpar->bit_rate = 8 * st->codecpar->sample_rate; From patchwork Thu Jan 13 01:49: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: 33554 Delivered-To: andriy.gelman@gmail.com Received: by 2002:a05:6214:122d:0:0:0:0 with SMTP id p13csp989818qvv; Wed, 12 Jan 2022 17:59:24 -0800 (PST) X-Google-Smtp-Source: ABdhPJwfG5upWKI+B3inkTKr1D2QPorsGMoeoY9CkQLTFZqAJTG1GTB4BHzF75oTIYrHqpCt+zgw X-Received: by 2002:a17:906:6691:: with SMTP id z17mr1818505ejo.763.1642039164682; Wed, 12 Jan 2022 17:59:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039164; cv=none; d=google.com; s=arc-20160816; b=o5sfinY6nXjvAjQaWxa158ik45qxXbn8WHvBcuawzom0d9PCvxg5sHiWNmhhH7KAfd b07BqIvc25wzW7AzrUeus0VtzCOVN+sJoUbgSzCj2z1+w2twDKiu3fHAf5Elvy5pWDN6 oIc2kUefzqVZQzG+9A6Tp6xggYWGiDzo2t2NnjRaLuykbvatNBz/IiGj/58o3W+Yr6Hn 5PeOaHxwJVg4xHVghlmwwO3gW6TabRgvmccqQDmBegjaXLTiPZxlYgUL26RnKlmloZ4o 4INZgnYR+gotgzPDjpb/b459UY9S2ku/UEQrFJDcMt4W+OC91VdU4Dw4HCZhA71JKEut 2wBQ== 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=BaKLhVNq8byUsHkxI+5fbMaP6ykd4nKJmfoN17Sa55Y=; b=kf3Qg6D0XPKaNBqLiUXndYuXn3hlfrJB9UcukaiOZaJgIY1RstjBZ/Ip0amv4K8M34 csmbFhb8c8+VgODB8RVaJ5lHnKHksJD/2gYnDen5JdKQsccRFymJUYOLyZ1bvErS/y92 QK3KYWxvflAVpxk+QnCar19LT8lgmvG8cEPK7CjPTjrXzZ/rNbro4NjZjnE+TuPOOQXH UmDBhjzSA2fDTFQthIIlSPS3xcHxx6ZyPPM80x3LcvKQawFx8GP29krnl553darmcyVq Bf5dS7D5VBlOd43lkxYMmMGNJ/VdXDtjFMNdYwlCM7kQ4NAXdsmJDT+VGB+3lgEGMGE3 daJw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=L0AwJjn8; 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 o1si778346ejm.23.2022.01.12.17.59.24; Wed, 12 Jan 2022 17:59:24 -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=L0AwJjn8; 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 1E9B068B081; Thu, 13 Jan 2022 03:52:49 +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 21D1368B05B for ; Thu, 13 Jan 2022 03:52:44 +0200 (EET) Received: by mail-qk1-f172.google.com with SMTP id 82so5535786qki.10 for ; Wed, 12 Jan 2022 17:52:44 -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=+/35NihsgcM5ZL9m+vYALy/B6UPKfbEbYcjyyUUDoPI=; b=L0AwJjn80+TeL6gQbkqbKiKjy4bvn13hEXvBVJN0tjw28viAY7r9BblywD05YoP8h6 aUT6LLlZ22i3LHBg0/U5reEDbjh2Lqq4bDdEZ9+siaB+H1FGtOOF6NI6irFZ2ZETsNK+ MCudVTaG/rThq+6It99zwW9bUynySH6c9DE3t7ZwTEUuE9BAFJAxh5Clu8FEL2SLG7FC ABGLTEgObMza4lzH2vy4hcaCWfOPhuwSwpQgpopYZQS8nc1zLIFEAcIiVGXxZkGVBz/2 xxbYjtpatn/dlx7iF6vHSx0PjIuiC8IwTSm6WGkjnfnsR5vsX/2xFM9cyLk36nmTHSF4 7Zxw== 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=+/35NihsgcM5ZL9m+vYALy/B6UPKfbEbYcjyyUUDoPI=; b=ipSzhNl5vyPEKPw3gFRobUVTQGo9VkuYC+NSvvLqP1NBE+a9R3etxhf8tKXFhOwbez fvp11oLi9/PTJVje7sInR3LC1jCXWTJ7FOcq+MKhcEvlFY1av2rWFu4ZcWO9pYGgILAL ajEVn6VaPK8X6Xs0FXHe9Gkkr3SujU79YKmjtWrqGeLJbMGpFPN5D6xdUwnBS+aGkyik gv2nCZUJfWCW7JWXvnF1canQokur1CiUBuG4GSbqI7yAtqTdWdbkX6TRgH6/HpmLLWol l4i+XNrbUyrrXtXU15vliYpm+oCOdjpd9oC9RLWsKeMEmZPoHAjjNhiWcp/T6Pgp2Lp/ 9UzQ== X-Gm-Message-State: AOAM532rGrDRaimQlM/5wM8wYVhgqVFLoFbFHex1kJLu9CrBA03C1IYd nEy72vYqqRt4yFyPazbBOeCUwyF/R/g= X-Received: by 2002:a05:620a:2404:: with SMTP id d4mr1871601qkn.323.1642038763439; Wed, 12 Jan 2022 17:52:43 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.42 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:43 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:58 -0300 Message-Id: <20220113015101.4-37-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 036/281] bfi: 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: ptce9LxVU2wq Content-Length: 1247 From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/bfi.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libavformat/bfi.c b/libavformat/bfi.c index 69000118fa..a42b78b8c0 100644 --- a/libavformat/bfi.c +++ b/libavformat/bfi.c @@ -106,8 +106,7 @@ static int bfi_read_header(AVFormatContext * s) /* Set up the audio codec now... */ astream->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; astream->codecpar->codec_id = AV_CODEC_ID_PCM_U8; - astream->codecpar->channels = 1; - astream->codecpar->channel_layout = AV_CH_LAYOUT_MONO; + astream->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; astream->codecpar->bits_per_coded_sample = 8; astream->codecpar->bit_rate = (int64_t)astream->codecpar->sample_rate * astream->codecpar->bits_per_coded_sample; From patchwork Thu Jan 13 01:49:59 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33555 Delivered-To: andriy.gelman@gmail.com Received: by 2002:a05:6214:122d:0:0:0:0 with SMTP id p13csp989880qvv; Wed, 12 Jan 2022 17:59:32 -0800 (PST) X-Google-Smtp-Source: ABdhPJyjOrwgGlZvEBLdX4w7pSfQbMitUpqJ0vSBZ8VmAecEB5gQFTIt6LwAZ/564WLVUQvvNnuZ X-Received: by 2002:a17:906:3a59:: with SMTP id a25mr1878640ejf.762.1642039172740; Wed, 12 Jan 2022 17:59:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039172; cv=none; d=google.com; s=arc-20160816; b=YNVMIGEVCiqJH5HMFoxfweG6XjK24g4LDAlja8qZ+sfbjZcSURSUOtNRreTV/Aa8Gg dohH9ohpZR73iGyNS0MM23SAimWxMOQnlxlVKfVp3ShOT1NiSVctxw/f81bFSAh6Ryq9 kyjkTf7f3z7dey3iwBiahNGZBKodUqy5j8u3485y1lIVqZDUaz14BdlEyWlyx+LpWyUx ajv9BBntf9zMEe28pom+4QGOZyZ5n2MFguzY5kh8V4aPfNAadzyssp6e344RHB9IUIz7 HeYMSHK/LH7tG9onOHr3Nj3ruepvfLX8LmRvVNPtjigaiJj47uezKayCNmhnyU4vsPit LUxA== 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=DLUkPhgXjJtZx5/07vSfKWgUZenaZPuBvSMEdCfDKj0=; b=m7QmcrXhPzR69RFtwE/9HxJPOQelGIMGI5X93aa8lzStrl8/pLCDDyy/tRS1Z1vgRd uvkJtUEpfbNdRQcVTRL0YnKd47mxpV9pVVp84sacmGRcwvw6YQFVwnFiMD0YYh+JgQWx lha4uovhwlfJhUZ5Tm/Ls2wVLx+7ySGVvy3N81AnKyvBymINJBeX10f6f4kyKSn+2m2P PpVr6hVemSa/V9hmqjY3ebEROl2gQjK6wNnmNWQ1sYeyuEYbXoHbOxEFXG8+9jRWcbMd 9KU17Ba9IdOQAmCuFQxC2qrcQnPPGTT8yVd7SNCiZJSvLz1r01yFj80qrT7FS4N1sFM+ Oj8Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=mGZYZrwS; 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 qa16si750953ejc.238.2022.01.12.17.59.32; Wed, 12 Jan 2022 17:59:32 -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=mGZYZrwS; 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 8B44168B07B; Thu, 13 Jan 2022 03:52:49 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f52.google.com (mail-qv1-f52.google.com [209.85.219.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5AD6268B03C for ; Thu, 13 Jan 2022 03:52:46 +0200 (EET) Received: by mail-qv1-f52.google.com with SMTP id p12so5080516qvj.6 for ; Wed, 12 Jan 2022 17:52:46 -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=hb3hm8lT4Ofnhm5y4sgpqIAweZr5zHgYT1AlUWxiRtc=; b=mGZYZrwStT2/oE15SSF2lbqaiqrZrvj9uAMpVNTIxbm5Kwst5XZ8ZKv0jC9Vo5mUaP 7YFROUJApKZ78kWGOtnsq/HEEK59XiknZCpb4s9+sMXncz4p0WBjsQP9rpa5hSqQhbQ7 oviXdBwhh5H8wFDxoeT7XT76qtehYzk38zK95/Rg6ED5bP5JxXeUBBMLFWrmz65XjPqr EuUyssl1+5K2Tc6F4ee4jSDRzIREOfjRXQacUnXRbN42vKJa1df6U1Y00Pn3FBux8Kgx INEA3mkqVy8m+lP1mU+Cx+IV6LOHue77XOHaXXnY6YZMNQK0lW2bFkVmrUo5ZCcVYkBJ tMXA== 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=hb3hm8lT4Ofnhm5y4sgpqIAweZr5zHgYT1AlUWxiRtc=; b=qPbv/LK0yr5fUrnE1BnRQrvXRBiMhgOo3h12NKbRy36qYvHqyOW+wkxdkkYm28NGaq cAfoWbidhck4n4kpobQG/b+w0Yyv7bOjZ1SStuOSppXIc9rBAuoAMQg7L5mpZrMAz11g j9UeL6tTzFpSH45aKuaVBTGjtAvRfcka0qaFbJEg8gmi8MXo3LY6ZQjiMZzV0OR2D39q OwRuTvWAJSA6XL0YLzfAZmCSRx5+ZeyU12LssthtrLGb5QA4lJxh++FPVPbFqFqn0HAX eLbPsskxNenh/bPGh1gulDsdP1f14QqCTXwV2ngU9Nb8CwzxHmELXFxru8+iNZm8Lz+i P1Ag== X-Gm-Message-State: AOAM530KMynnoa1Z/k23BCgDx+lQOFRO0xWUPzl+H5fsTgOoRhuYttdg lpU8NhoT5fYpPzLbNuyv7dak/ytifg8= X-Received: by 2002:ad4:4a63:: with SMTP id cn3mr1255672qvb.23.1642038764641; Wed, 12 Jan 2022 17:52:44 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.43 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:44 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:59 -0300 Message-Id: <20220113015101.4-38-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 037/281] bink: 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: 7rS+Vwq43S1Y Content-Length: 2609 From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/bink.c | 8 +++----- libavformat/binka.c | 3 ++- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/libavformat/bink.c b/libavformat/bink.c index 6627a17e71..4f413bd986 100644 --- a/libavformat/bink.c +++ b/libavformat/bink.c @@ -186,11 +186,9 @@ static int read_header(AVFormatContext *s) ast->codecpar->codec_id = flags & BINK_AUD_USEDCT ? AV_CODEC_ID_BINKAUDIO_DCT : AV_CODEC_ID_BINKAUDIO_RDFT; if (flags & BINK_AUD_STEREO) { - ast->codecpar->channels = 2; - ast->codecpar->channel_layout = AV_CH_LAYOUT_STEREO; + ast->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO; } else { - ast->codecpar->channels = 1; - ast->codecpar->channel_layout = AV_CH_LAYOUT_MONO; + ast->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; } if ((ret = ff_alloc_extradata(ast->codecpar, 4)) < 0) return ret; @@ -283,7 +281,7 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt) (in bytes). We use this value to calculate the audio PTS */ if (pkt->size >= 4) bink->audio_pts[bink->current_track -1] += - AV_RL32(pkt->data) / (2 * s->streams[bink->current_track]->codecpar->channels); + AV_RL32(pkt->data) / (2 * s->streams[bink->current_track]->codecpar->ch_layout.nb_channels); return 0; } else { avio_skip(pb, audio_size); diff --git a/libavformat/binka.c b/libavformat/binka.c index d4cfee0368..babd5e240a 100644 --- a/libavformat/binka.c +++ b/libavformat/binka.c @@ -44,7 +44,8 @@ static int binka_read_header(AVFormatContext *s) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_CODEC_ID_BINKAUDIO_DCT; - st->codecpar->channels = avio_r8(pb); + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = avio_r8(pb); st->codecpar->sample_rate = avio_rl16(pb); st->duration = avio_rl32(pb); From patchwork Thu Jan 13 01:50:00 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33556 Delivered-To: andriy.gelman@gmail.com Received: by 2002:a05:6214:122d:0:0:0:0 with SMTP id p13csp990051qvv; Wed, 12 Jan 2022 17:59:53 -0800 (PST) X-Google-Smtp-Source: ABdhPJyXvUQVPIsn5d+VTmoAnudZG4OVNdNOQImhqCEk4WRcu8phoP8R2KAc8aMQeNBZMgE/XQL9 X-Received: by 2002:a17:906:fb99:: with SMTP id lr25mr1818934ejb.165.1642039193003; Wed, 12 Jan 2022 17:59:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039192; cv=none; d=google.com; s=arc-20160816; b=yE3Jl291fbGtZcO7fZVeKVI6Mg7PoBHIMsjx1gg3Bs/hZOqxQVKQYLUljnjQdF+RTz fVOPWpPIznOONZSyl7GQgdYyHz70Lz6hgebggcJGRGKbemCzQDG4ItiGLvrGvN0SY4j9 yPZk/c8DPj0wpu/U8/w66zsrKNQQrSk78RqwYfIOsee4afpZuuZoVQ4DFo6m/1S+MWr2 XozdXFRUseuruJLY+5mzAA1hCSkTdokl0kvMbAEyqww4i2eTP6FYJQZWxk0P3Mm/ypbT y7itox7CNRzj4c78cD0QMLKY0TiVezBWx5qII4sbcBE5ZsNDJEavmnfaA+Bbn3+Sp3Ke lMZw== 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=+9B3abreeE1xAyb3/aygntp6BTzyxZFyvm9VP6epCjU=; b=yehv4QZfxFMwnmIeT+foZiQv7zaK9EVcz/78B6Cc7CGqg1OZOwEXZUcCmBhxBWmxul dP7/w/Y/Yjzpp16l/m4pw+a2aM9YJuOa+oJUYl2x6QcDh/V6e0AYJUYuJTyOWJGdO1MZ S7yxxDTaBGDn0pTIcQnFUmXe0ZrijfRHn4bkDBcgnCXzmXgiU66wGFxYPbl73Sx/xOHr JkYzjAVXqFvET63yQYKltHidqYUAHWulVB2DrQKZWkziF53qsBMXYW5ExyDtSYoa/NFZ SSZao/RIk7j9sIBsSgW5cgEM8FCH49Cz/GpN92pjEWJXNXWruyItv0g20S0/yW2dOkE3 xUeQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=nehuCGO9; 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 l3si797820ejd.860.2022.01.12.17.59.48; Wed, 12 Jan 2022 17:59:52 -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=nehuCGO9; 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 DCCDD68B087; Thu, 13 Jan 2022 03:52:50 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f45.google.com (mail-qv1-f45.google.com [209.85.219.45]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 839C568B075 for ; Thu, 13 Jan 2022 03:52:47 +0200 (EET) Received: by mail-qv1-f45.google.com with SMTP id kl12so5082533qvb.5 for ; Wed, 12 Jan 2022 17:52:47 -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=H49qTPlO+h4zrCJ3YCK14RMC5b08E+/qBZr81RCEF2g=; b=nehuCGO9kg9/7noURroQ7bvJamg5ZsIj2QsMd1opE/ajrgCxXKW2c5+A89d/M8pZUO r+J549hXN2cD9NIAaOnDg3f+4O8bAeo2oTiK047i/FpBiO0UTiKmg4Gvdt6IyXStDrQL Mwlny7DpR1HVcUcKN7NyeG3erq1BzyNsK1EabYm3fK6Y1qmH5rWehNAz3b67QInjDFEF /b9E0QJTkNAHh3+rtrGwT7kT35CzlIj1sDAD9b4DvcWWNxbWcQJUDXKzYLglwft6hAbm /PN6g9BNYmoUwKkouqtjMD9S1hd58CQRoLitCF8q0B8LrUlAHx5MGwWZ7rO4/GjBy7ev 2gxQ== 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=H49qTPlO+h4zrCJ3YCK14RMC5b08E+/qBZr81RCEF2g=; b=6ZJAMoJsjc1w84wv5TYAablpgClA1wF+p3AEyx5485CQs3cpz8AzmBKIbopbJkPQFh mckHBlRgkDhE8e9WSPo1X8JikAkrjD7P7g94EbV41YxU+vzpt4QX+v2NWOQOgChmYpyG c942cgp0cOnNFN9MUM5s55oHlIR48mk3BFyqKXHW+nsWYNbwR4z7VnEdKYFAH6WexHll 77/P0DS3D/NHckaYfF8OT/Q7xO6VsqzaA0WSNNIk1Jhe6ZwrWAJBXwFNhOWIpKzbzZiV UC6E4riohs7+tu+m0+nhsd1LYcZ1+MNyNCP5l073M8g3VsBocwnkmGJ2lBeEspMX3SUl b/1w== X-Gm-Message-State: AOAM531+Ob7dJN2QYah6Wy/61EmFG1pBUWgObQSsnG/tRPA416A+dr/Q Wa1/HhHf4yyodBHF764vP3IRQT3CZfk= X-Received: by 2002:a05:6214:2341:: with SMTP id hu1mr2331607qvb.78.1642038765842; Wed, 12 Jan 2022 17:52:45 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.44 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:45 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:00 -0300 Message-Id: <20220113015101.4-39-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 038/281] bit: 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: wkKCW2NL6EHG Content-Length: 1606 From: Anton Khirnov Signed-off-by: James Almer --- libavformat/bit.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libavformat/bit.c b/libavformat/bit.c index 380cbd37cd..c8d02c6bb8 100644 --- a/libavformat/bit.c +++ b/libavformat/bit.c @@ -63,7 +63,8 @@ static int read_header(AVFormatContext *s) st->codecpar->codec_id=AV_CODEC_ID_G729; st->codecpar->sample_rate=8000; st->codecpar->block_align = 16; - st->codecpar->channels=1; + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = 1; avpriv_set_pts_info(st, 64, 1, 100); return 0; @@ -124,14 +125,14 @@ static int write_header(AVFormatContext *s) { AVCodecParameters *par = s->streams[0]->codecpar; - if ((par->codec_id != AV_CODEC_ID_G729) || par->channels != 1) { + if ((par->codec_id != AV_CODEC_ID_G729) || par->ch_layout.nb_channels != 1) { av_log(s, AV_LOG_ERROR, "only codec g729 with 1 channel is supported by this format\n"); return AVERROR(EINVAL); } par->bits_per_coded_sample = 16; - par->block_align = (par->bits_per_coded_sample * par->channels) >> 3; + par->block_align = (par->bits_per_coded_sample * par->ch_layout.nb_channels) >> 3; return 0; } From patchwork Thu Jan 13 01:50:01 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33560 Delivered-To: andriy.gelman@gmail.com Received: by 2002:a05:6214:122d:0:0:0:0 with SMTP id p13csp990149qvv; Wed, 12 Jan 2022 18:00:02 -0800 (PST) X-Google-Smtp-Source: ABdhPJxUuCGKRHJIEcD9bqrxmni1Yn6LC2q6FcngE5xyNhrmMY1EpVu/+tkicAHE0CbRWiByT1LB X-Received: by 2002:a05:6402:405:: with SMTP id q5mr2201754edv.62.1642039202675; Wed, 12 Jan 2022 18:00:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039202; cv=none; d=google.com; s=arc-20160816; b=JIQ3eDmknxrRAkCW5P1XaxTpkNolRqD++vtU52KUgv6I1MFccW5FwczDs9rIUxaaZk 3N07a+2LFULMvZWTNbwLoVrBG+16lb9pEEzg3vbiZDTOahSBlwlaE9ze7EgOGEtP4wzQ lREyS7Lqqg0TgVY9gCWP+85t37vHTBK5D94ov32uQoD0Y5VPaZSYIu3jvcHfF8hz8Oo+ M6j2dRYXDgCnepVTs2rv+9mHBJB6jahgIqJvnYDyxoifpPMh7yubvVUZF0ONfPbM490k lA+aC35AtzbiMxapkKB/evpqBQx+uNuIBd9DubsvjWpYexhvO6Xw5X5sd/Y4pAH1KqUy Xchg== 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=ez/qqOXmjNqMaCX0M5mgRMy/uaYcfxfkslamUHeIhYU=; b=y8TTKDFN/kbsYDwVntmwY1xOUEBU4jTGp2vfJ5k6tdcGqs6SbyVUsfZWhW/Xuj9GDT aRVbZT4clTfWXdVKTvp8dn4KWbZZek53ogDqQrIhfL0lcmcpPM8JllAyKE7M9xujpo1/ EY8Tcd4tenRwpfQqUKbgyjtL0SVY+1Vj4zK0KWSc9G4UF3JPj96cHSVr47KjNFw3DxK8 dZjgCN+DIooIVNuwhnNZLDZt2/dBDovovqozMuNNMl+erfsqvBC9XIqRB2l/Drt/xv6e ryRxt022+DLcrZqDYFxEJl0suan5K9PX+MTff0jeS6mtXzYmBNi9/v8W/8QF2CtRKQyZ Kr8Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=BHcigNqF; 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 ht18si793308ejc.73.2022.01.12.18.00.00; Wed, 12 Jan 2022 18:00:02 -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=BHcigNqF; 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 CF0F568AFEB; Thu, 13 Jan 2022 03:52:52 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f52.google.com (mail-qv1-f52.google.com [209.85.219.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6E94268B059 for ; Thu, 13 Jan 2022 03:52:48 +0200 (EET) Received: by mail-qv1-f52.google.com with SMTP id t7so5146407qvj.0 for ; Wed, 12 Jan 2022 17:52:48 -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=nGRl5fPRBdca7PObdGutqRv7oWNEDU3S9Qbz0xne81I=; b=BHcigNqFiYyKzI2QLk4wjixH7Bn3WkBLKebBOt/OR7b+idQjm+8cuau29q/VdYyyyO rHQwi5eFa45M5kCOidu+TaQT2tTuSQZlpTx6BwF8VNncSLa+dLFYkuEeWXY+kqJsE5fa 8o69khPuwfJs8W5+V5M0HQgglmmgLoKRTEcAFKMwYPCC+1ZqTlt7POnbM9gsgbimanms LNXBwu9US8nipdjYhRYEEUfTLcb/oV7Lyyn9QWAyLc/tv+FkCQ+DEfgkplCKkIiC+WGx 1USLEbXUBLPWF6vNDWvjDdsjhE9/v5mnXyZharyc2jzR9YDkJZ7At15IS4eAc+diUMol muSA== 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=nGRl5fPRBdca7PObdGutqRv7oWNEDU3S9Qbz0xne81I=; b=XIrXyh5qJZllNZOGDS7lGzfs+hhehxN39v2dw/UlOfP6H5EbTrHNJ5M9uOlw/rVhzB S1z8MZfM+jbjk41u0rqdjHDPqX6gNUxEj9o7XXzeE5Xhcxt7mlqvQEdYC3KhlMt5Q2b6 Dakm23gUqsEf24N//IfUgncskS8zQu5EfCimkLXSMiOUIn8ypsmryPuFZoTwocfPHJ65 YslrqHXCyTT6q0UC6LXKufFH/YrA83gzw1fznvAQLEjxctpOdFUVEJ7B9V43MyvnL2iK gm+nHOyotRNG/stuthTBQw23O3ACqphlMwJbt2qxwt/hIHPZScBoAbo9p7bPpblKT2Up 5LPQ== X-Gm-Message-State: AOAM533IryV02GjcNN9MZYxNYFm0dshetkgx3lyW7V1xBBwrz7qFKwMg vuncwQPavkmGhE3Re69XSWeIrhuli7I= X-Received: by 2002:ad4:5aac:: with SMTP id u12mr2186571qvg.8.1642038767017; Wed, 12 Jan 2022 17:52:47 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.46 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:46 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:01 -0300 Message-Id: <20220113015101.4-40-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 039/281] bmv: 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: sVS3rucRhdJX Content-Length: 1129 From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/bmv.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libavformat/bmv.c b/libavformat/bmv.c index 873ecb027c..e1f667076e 100644 --- a/libavformat/bmv.c +++ b/libavformat/bmv.c @@ -58,8 +58,7 @@ static int bmv_read_header(AVFormatContext *s) return AVERROR(ENOMEM); ast->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; ast->codecpar->codec_id = AV_CODEC_ID_BMV_AUDIO; - ast->codecpar->channels = 2; - ast->codecpar->channel_layout = AV_CH_LAYOUT_STEREO; + ast->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO; ast->codecpar->sample_rate = 22050; avpriv_set_pts_info(ast, 16, 1, 22050); From patchwork Thu Jan 13 01:50:02 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33325 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp16581iog; Wed, 12 Jan 2022 18:00:14 -0800 (PST) X-Google-Smtp-Source: ABdhPJxmekLqOcHgrFPjYkVLYyaQVg7OH6IKUvNzSQk0UFN/IrG8/6EZ39iIHPbB3hBnKQBoHPme X-Received: by 2002:a17:907:7ea6:: with SMTP id qb38mr1913266ejc.59.1642039213885; Wed, 12 Jan 2022 18:00:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039213; cv=none; d=google.com; s=arc-20160816; b=sZ++pxKBZjyloK7qhee9VNjAIvGI8cfUoj1gVntTXfLcnMRlTPJjv8LU3fDfRX1aK9 g/fv+CcN37vHddihMwIkO2vJCm6j6rozjN50LBEloVDPusv4DfUC3sWCp+JYtEZ06eCc xIscqNa1YRHNqsHJg+u809Qq5vwR6XXvoIUqijxd1r7V8RP3rS7TMY8TjlUkynMQL0mG /UtwBm9DLU9aj28SVG2Blnf9FjpDjJWKnJMZubEAMXgZlnEYlvyQeMvsMy/itAi6YdJB ddc/zhvR76lcxrkgn0rjjt+f7j2LaFad6BwUqQ1ijdbk0eiVIsz65QaK78etbQLDS6wP +nEg== 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=ZlJL5jwMGfrd586yG5PzQdxN+5n2hAHB4AS5NfWXQlQ=; b=QBUOcWwD5+ts9G1LWblMAeUWWLpYt0/TlQYxSc42NV/nvanhkx/48nJ/0k1g9ERy2P X0nK4XvdKGr77+9SrsQn8kaydgThC+eUU9Gy/C3AEZ8ytFD5IbhWUOIz712kEYQblYH6 j/PRl7n0rTZfZTdfzKmo01n1JumaRcoF2jVNObM4RAzDDIUmHrTE4GzkQcTVwqAzJ5jp aVNJ6ERdILrtzx586w/0l7s8a5F8tj2AU7+oc+VvOooIgz+Z7zZA9d45EmvI+9VQwQ4o ZVgPa9GbcLlwK4dwguacqP3ikhtXoY/Df5ccctVMstVw5IQbGk6kBCIyYJE5MY6AIGQf IRTQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=p4s8UQgX; 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 hv15si204525ejc.869.2022.01.12.18.00.13; Wed, 12 Jan 2022 18:00:13 -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=p4s8UQgX; 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 8504268B093; Thu, 13 Jan 2022 03:52:56 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f179.google.com (mail-qt1-f179.google.com [209.85.160.179]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A1AED68AFF7 for ; Thu, 13 Jan 2022 03:52:49 +0200 (EET) Received: by mail-qt1-f179.google.com with SMTP id f17so5323025qtf.8 for ; Wed, 12 Jan 2022 17:52:49 -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=G4hNofkoadpYUaDiTmbUxycEExNXAjJ1OjMmQlU7WZQ=; b=p4s8UQgXGihhyrWSX13bWUcl2zv/KMufXo57lO3ESPPdBE3zSgzBDwVXmjFFKX0LGB 68limOPQ+RWzSpE5vqP41L2PJSklQbQtF/I9wdslMWsDOKTyaKdrYvaPdps1+wKQMeLo nbxGSsP8xS3nvevZadXcPwI9x3rrrLZ5ijiqKpy0vMOZ2JmdfKeYHC3Tqhu0nA+TXaUD WWy8VVqgKyztGveGpKV+hx/4xNVR1dHnooFlnUQwEXraoia6s90e5j6BvVomWhV0d1qG KFd+khuam1prkrcwWpYgVW27r+ccIxRCY4j/7lxQX7qoPYOXtD8IK+ISt4X67prpJydX DPcA== 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=G4hNofkoadpYUaDiTmbUxycEExNXAjJ1OjMmQlU7WZQ=; b=Qhdwyitg436kyjMse/Y6gmUfUn8Ca8AWGn1FaKSgTLDGJ43hB9EK/NJmqdX6yb9eDW OYbZmRMvHHHclZKvqmdYyMXskORRzYRuwROQIrhk7KbWhcHdhHVzVPuSnEM8AJHHbRc8 E6LJCma4ezALi+a6KLSuIU7sJH1DBeliqD37LyuiHl9OunrpoZ7VUmiKoRZrykxj1ZdM 2JGvOQrM+0q+o+KJplEGnps6X8UjWRC5hbXqln6k/pJHFilYYoHmQZNmTObVxvR4D+ay kmHKzQprGoG654HL6s3QD9Sy31SMyxsekkWpByatAWpHVeCyWutJsYLwu3rAwuiOTLd/ vgRA== X-Gm-Message-State: AOAM533V0h8MehyZ7dXpdAJRiWxSw8nzvY9snRtXqYdYpGKx7/TmCqrY eMG0pzgpJINlvh/egPUiCiDXNIMEYVY= X-Received: by 2002:ac8:5c90:: with SMTP id r16mr1972186qta.599.1642038768251; Wed, 12 Jan 2022 17:52:48 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.47 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:47 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:02 -0300 Message-Id: <20220113015101.4-41-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 040/281] boa: 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: hYnwh9SJ4k5E From: Anton Khirnov Signed-off-by: James Almer --- libavformat/boadec.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/libavformat/boadec.c b/libavformat/boadec.c index 536300a895..a5104bbed0 100644 --- a/libavformat/boadec.c +++ b/libavformat/boadec.c @@ -55,15 +55,17 @@ static int read_header(AVFormatContext *s) avio_rl32(s->pb); avio_rl32(s->pb); st->codecpar->sample_rate = avio_rl32(s->pb); - st->codecpar->channels = avio_rl32(s->pb); - if (st->codecpar->channels > FF_SANE_NB_CHANNELS || st->codecpar->channels <= 0) + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = avio_rl32(s->pb); + if (st->codecpar->ch_layout.nb_channels > FF_SANE_NB_CHANNELS || + st->codecpar->ch_layout.order <= 0) return AVERROR(ENOSYS); ffformatcontext(s)->data_offset = data_offset = avio_rl32(s->pb); avio_r8(s->pb); st->codecpar->block_align = avio_rl32(s->pb); if (st->codecpar->block_align > INT_MAX / FF_SANE_NB_CHANNELS || st->codecpar->block_align <= 0) return AVERROR_INVALIDDATA; - st->codecpar->block_align *= st->codecpar->channels; + st->codecpar->block_align *= st->codecpar->ch_layout.nb_channels; avio_seek(s->pb, data_offset, SEEK_SET); From patchwork Thu Jan 13 01:50:03 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33327 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp16908iog; Wed, 12 Jan 2022 18:00:41 -0800 (PST) X-Google-Smtp-Source: ABdhPJxpqV8Rr6DWkEAST9UmUCmwNwyhbtK9tlxgFtj6iTUR/HmO4XbEKvf2QZTxInqNz0NNKS+B X-Received: by 2002:aa7:d9c9:: with SMTP id v9mr2150891eds.270.1642039241701; Wed, 12 Jan 2022 18:00:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039241; cv=none; d=google.com; s=arc-20160816; b=UNR/d0vaWp+jzLLu0e/90CBoh8vlCv9rBqtJPW3Bb9ousCwFr0cS1nlcUWf8Vm6lt1 lCbxd/3DSJOzZi8B8UScfhC/QPYb3YTUqr5Ciyicyg4722RNl6CXRML5Gb37l3wp6u16 zG+POScILuBvREqchYlJ59+/fVRC1tUdY3pkUKcck+6lGLjc/auC7PP4gbUcySIY8trw IB+SemVB5oI/8eBQ9D7wbf9oiFFTzfZQOF/wbQ+OAWq2P3KNqHtQdr9MA8lr6AGF8Za9 5uSuJuMI1wfpRiQVnZZvN2SYvNHLdVXHR2P+hahH2TlpPuK2zuu/lSdDMzWPuXsPWkLZ TQbQ== 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=92kODm7b3B2MZkSYQnO7btclKd1lB4nVL+Ixa31w3KE=; b=HUxyTqBpqmMjHWm5JEJrsC8yWJlVRfUMS+HHGjWcZQCnYVbmLGVungcpO1gvu/saKr JYpRMCx1KpeWydPojCvFhAQ8fscJJzkhmHWmrzPu4hzl2v9mKQ/Maskf9QYQfGtQi7F3 RfZnuBCoUNSk9Xa8wetZ26Kq/tCM7jSCzz+DaxlYnDlEp3CNuXfQbJYs78WVePOhehV+ Mn7tjaHjgWO6+b9YUIivQm4kaYcudXibc+463rRPhFuPQemNboJ8SufCFas3/IEdkhr1 1M3Bv6GUC8wl3urCDPlGAkGnAMyAatvuXI87egOkGLQ4fLeumD6jBMuxDuLUBLuVRFR8 VqBw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b="V3RO/u+B"; 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 cw13si782495edb.268.2022.01.12.18.00.41; Wed, 12 Jan 2022 18:00:41 -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="V3RO/u+B"; 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 36C4C68B098; Thu, 13 Jan 2022 03:52:58 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f175.google.com (mail-qt1-f175.google.com [209.85.160.175]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DE0C568B08E for ; Thu, 13 Jan 2022 03:52:50 +0200 (EET) Received: by mail-qt1-f175.google.com with SMTP id q14so5300283qtx.10 for ; Wed, 12 Jan 2022 17:52:50 -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=5oKd1E8ZEH55c+RiHP1ItHkB9ttgq2VxhCPmw7zhGLI=; b=V3RO/u+BJrMzfTp96l2tU73IQkzUY/fkdk4A/do6oJc+GmrVQ4DTGY2rN6m2fDmH6m xd+GZeYPss1Ex197t27zWGCyv+8ro5OM2YPggIZUJp8q+LDb9IwnGGalnfiv7es+64dJ 6T5idCefurDFwQ91PdnU1gfLIK/lzicQMwbZt7Ypm6EEn6XJKP9OWkFTB2qmyA1j4AIF 3f55XX5Ei5QEF+db+YRXgLs2GwmT7rOBHO4FQ56fs5AyNYbMGGcLdtgQRYRM1ocIQrWi Wda/guls0eKxC20U6JP87QX7thg2DaBWj5/hxdCml0cM7YmnLNAzjTp9cGI0sDP46OQn U0wg== 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=5oKd1E8ZEH55c+RiHP1ItHkB9ttgq2VxhCPmw7zhGLI=; b=ShZdR4yTrS40gwTx7N3W8KsMk/uOtMV52cZ+N3gADrF4JBDxAsS3eaCSBrDX0aiC2m dqnboeEDqlKj4xgD7UyuT/y2n+0dqvr/fKn+luJgp6fndHc/N/n3T2f9M6A0JsjKnfsl ZTyh1btvQ51hYwy4CdadXMkbOc6gq+YFdoQLYVS5UyOwDbpqQ06q5RLuUbZMYjnv3uyH 67t9WO1N8OwioPK7LsqdaC+aw1OWl/QGdng1dSIr+i1hsUiTqNqzVxurAXhZuI7AnCI9 4GJ3NgPnd2NdnoLRKq1DW1NPWIbMzRj/S1gcl7t1Glz1ovRoiVy59oJc0ekID/2kNs3c ShsA== X-Gm-Message-State: AOAM530MPyOLQRz6G8V/7jliUN5/YDtsLbubx9C/g4MtETxoen0MNwN7 kTl9rvH01Pt0jstxXUmkrpH6t1mZfc8= X-Received: by 2002:a05:622a:118b:: with SMTP id m11mr2081316qtk.524.1642038769465; Wed, 12 Jan 2022 17:52:49 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.48 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:49 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:03 -0300 Message-Id: <20220113015101.4-42-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 041/281] brstm: 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: 6n9BJKzuHCbj From: Anton Khirnov Signed-off-by: James Almer --- libavformat/brstm.c | 44 +++++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/libavformat/brstm.c b/libavformat/brstm.c index 338491d9ef..89d5dcc344 100644 --- a/libavformat/brstm.c +++ b/libavformat/brstm.c @@ -209,8 +209,9 @@ static int read_header(AVFormatContext *s) loop = avio_r8(s->pb); // loop flag st->codecpar->codec_id = codec; - st->codecpar->channels = avio_r8(s->pb); - if (!st->codecpar->channels) + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = avio_r8(s->pb); + if (!st->codecpar->ch_layout.nb_channels) return AVERROR_INVALIDDATA; avio_skip(s->pb, 1); // padding @@ -246,14 +247,14 @@ static int read_header(AVFormatContext *s) } b->block_size = read32(s); - if (b->block_size > UINT32_MAX / st->codecpar->channels) + if (b->block_size > UINT32_MAX / st->codecpar->ch_layout.nb_channels) return AVERROR_INVALIDDATA; b->samples_per_block = read32(s); b->last_block_used_bytes = read32(s); b->last_block_samples = read32(s); b->last_block_size = read32(s); - if (b->last_block_size > UINT32_MAX / st->codecpar->channels) + if (b->last_block_size > UINT32_MAX / st->codecpar->ch_layout.nb_channels) return AVERROR_INVALIDDATA; if (b->last_block_used_bytes > b->last_block_size) return AVERROR_INVALIDDATA; @@ -266,24 +267,24 @@ static int read_header(AVFormatContext *s) if (!bfstm) toffset = read32(s) + 16LL; else - toffset = toffset + read32(s) + st->codecpar->channels * 8 - 8; + toffset = toffset + read32(s) + st->codecpar->ch_layout.nb_channels * 8 - 8; if (toffset > size) return AVERROR_INVALIDDATA; if (!bfstm) { - avio_skip(s->pb, pos + toffset - avio_tell(s->pb) - 8LL * (st->codecpar->channels + 1)); - for (ch = 0; ch < st->codecpar->channels; ch++) { + avio_skip(s->pb, pos + toffset - avio_tell(s->pb) - 8LL * (st->codecpar->ch_layout.nb_channels + 1)); + for (ch = 0; ch < st->codecpar->ch_layout.nb_channels; ch++) { avio_skip(s->pb, 4); b->offsets[ch].channel = ch; b->offsets[ch].offset = read32(s); } - qsort(b->offsets, st->codecpar->channels, sizeof(*b->offsets), sort_offsets); + qsort(b->offsets, st->codecpar->ch_layout.nb_channels, sizeof(*b->offsets), sort_offsets); } avio_skip(s->pb, pos + toffset - avio_tell(s->pb)); - for (ch = 0; ch < st->codecpar->channels; ch++) { + for (ch = 0; ch < st->codecpar->ch_layout.nb_channels; ch++) { if (!bfstm) avio_skip(s->pb, pos + 16LL + b->offsets[ch].offset - avio_tell(s->pb)); @@ -313,7 +314,7 @@ static int read_header(AVFormatContext *s) codec != AV_CODEC_ID_ADPCM_THP_LE) goto skip; - asize = b->block_count * st->codecpar->channels * 4; + asize = b->block_count * st->codecpar->ch_layout.nb_channels * 4; if (size < asize) return AVERROR_INVALIDDATA; if (b->adpc) { @@ -369,6 +370,7 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt) AVCodecParameters *par = s->streams[0]->codecpar; BRSTMDemuxContext *b = s->priv_data; uint32_t samples, size, skip = 0; + int channels = par->ch_layout.nb_channels; int ret, i; if (avio_feof(s->pb)) @@ -404,24 +406,24 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt) } if (size > (INT_MAX - 32 - 4) || - (32 + 4 + size) > (INT_MAX / par->channels) || - (32 + 4 + size) * par->channels > INT_MAX - 8) + (32 + 4 + size) > (INT_MAX / channels) || + (32 + 4 + size) * channels > INT_MAX - 8) return AVERROR_INVALIDDATA; - if ((ret = av_new_packet(pkt, 8 + (32 + 4 + size) * par->channels)) < 0) + if ((ret = av_new_packet(pkt, 8 + (32 + 4 + size) * channels)) < 0) return ret; dst = pkt->data; if (par->codec_id == AV_CODEC_ID_ADPCM_THP_LE) { - bytestream_put_le32(&dst, size * par->channels); + bytestream_put_le32(&dst, size * channels); bytestream_put_le32(&dst, samples); } else { - bytestream_put_be32(&dst, size * par->channels); + bytestream_put_be32(&dst, size * channels); bytestream_put_be32(&dst, samples); } - bytestream_put_buffer(&dst, b->table, 32 * par->channels); - bytestream_put_buffer(&dst, b->adpc + 4 * par->channels * - (b->current_block - 1), 4 * par->channels); + bytestream_put_buffer(&dst, b->table, 32 * channels); + bytestream_put_buffer(&dst, b->adpc + 4 * channels * + (b->current_block - 1), 4 * channels); - for (i = 0; i < par->channels; i++) { + for (i = 0; i < channels; i++) { ret = avio_read(s->pb, dst, size); dst += size; avio_skip(s->pb, skip); @@ -431,7 +433,7 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt) } pkt->duration = samples; } else { - size *= par->channels; + size *= channels; ret = av_get_packet(s->pb, pkt, size); } @@ -456,7 +458,7 @@ static int read_seek(AVFormatContext *s, int stream_index, if (timestamp >= b->block_count) timestamp = b->block_count - 1; ret = avio_seek(s->pb, b->data_start + timestamp * b->block_size * - st->codecpar->channels, SEEK_SET); + st->codecpar->ch_layout.nb_channels, SEEK_SET); if (ret < 0) return ret; From patchwork Thu Jan 13 01:50:04 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33329 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp17238iog; Wed, 12 Jan 2022 18:01:07 -0800 (PST) X-Google-Smtp-Source: ABdhPJwGSrqUvD33+Llq556+ITm9ohRi6GkADNvSWvXeC/4faCAXUV2niPft9jZbUoqaAq+s56Xz X-Received: by 2002:a17:906:4983:: with SMTP id p3mr1870722eju.589.1642039267755; Wed, 12 Jan 2022 18:01:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039267; cv=none; d=google.com; s=arc-20160816; b=eX5uTHKOSPPk9Ha2QScpSCNI8o3aFDhkTFus771uM4PmR+IBFAa5tJFhMxhz3LEtjV XANf1KwNH2gE2im6jGVMjfQNyuxhepfWSu/nwz6nHFaVBTGrvkfXRDVqu05Ygh6e67DC XCNrJLqdVQA0AeOtA25dwJsSuOX5i2Vb8nNHfXuSfi0U3m2LltiTjPE8yFpYrHZGmh1t kHKv1q8s3RTY2khHCG+y4m4glq2gJycZr6uj/9C0brzLFMDPKdSDDPYZNBDhqZ0fXSM4 VscngecnQQS+yTh9xWBJjGaUFQMAxYv4mET4EY1y6If+Omm01Q96t2kdMmT4vfm/yAMS h79g== 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=YcTDKmfBZ4vGjyAW+Pl3HEMFYjumade9CT3zMepzWSg=; b=wwNkcd6JdHc9vzlmiITcAJ32poQ+W+Y0OiScETK4Dvlwr5MOnqpWwFHZFW6BJLaLZl EAcFuqYRimI5BvGJXklu8y3Y1IdktteJXAX+FIO/ruSidwoAQWFy++Q9JEtEE/dBEVRg HNzXizMwsdt5aj6BuQizxkdelqaDoicPuj/bx1D2WwrsA/GrZRugerM8/kDfwj7kIozQ +VqEcDOefvjMgqfB0jz6fRC6iwbe/9iB1TQA6F57eGhIciuNpVcHZnONjMcKyQFpPF1s eA20iV9XjEiVd5FjBoearNF6b2yz7NDqYG3/k8Uoy1xOtAlcyaK1c5Ku7mbRoWlhUkSS yupQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=jUq74aNK; 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 dd13si815132ejc.841.2022.01.12.18.01.07; Wed, 12 Jan 2022 18:01:07 -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=jUq74aNK; 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 F08EC68B0B7; Thu, 13 Jan 2022 03:52:59 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f175.google.com (mail-qt1-f175.google.com [209.85.160.175]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0F0FD68B094 for ; Thu, 13 Jan 2022 03:52:52 +0200 (EET) Received: by mail-qt1-f175.google.com with SMTP id f17so5323126qtf.8 for ; Wed, 12 Jan 2022 17:52:51 -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=V90TleMCo/OdvREtF6McaOJCvt/h/M8ck2S3Jg+P8Co=; b=jUq74aNK5F61TnYTFxswJ5JEpZ6r4SmiT/ZH+fRqAuqwxF5KMdz2HPdCnuwYFTJJxF tsVuZjiTduz2WEpgJ5OnLwNEKnL6CXagNjXOJiCZh527HG1uhNgK1VJccQSyt8qFsM2W qmtCEIafiwoXUd72vvPxu/x+oOBjLHwjVI5tSjgE3oLZ64QTvLlNBFs8gm7NpGeRRVhm fOh00pLDP9Tbx6klDXgzYTUwiLvJ/YYgIuG8OisaCXnyuoaQWHEFGV8u7eIWcV0bn4IC szPmAKbATQZ0aRGAUfArsgPB9v4gB1Le8UdDmFL9bXG0O+RIZE7ytsZEvB1devP3b7oK OZJg== 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=V90TleMCo/OdvREtF6McaOJCvt/h/M8ck2S3Jg+P8Co=; b=qF3ZFlo0KudJ0h+TFEe7wNkXzMDMhSAo+GW/oLEaAqp1TbQtaNy38scEgXpBzKlfPl pSl5+0Tpfrkp9dvMJNRXLLEmd+p67Dvp/TkgM9htwrZ42H9d/FXm1vRfWl/7RcLONX/n a6L7wTAK4VfmHFon8pVllqrNOoaz3/1Db8ZxZDb0SvJcFZsi4qp4j6L8VRCTSKKVs929 1oPmINKUoTq7hgp9S8h02vY8248Q9PMhC01xr5lc6ez+b9WmCeULeHnNpmpq4mRYKeIs SFuMPcQNLFxYCoJ521gHFnRCQZI7n1+728Dd37IuSwCJVG0PMXhvL2+nHIR4OGbA+ovl LehQ== X-Gm-Message-State: AOAM532SchOcB0xuEo1SC57TihH4StZfO6KITyNrUJI7Mj1jnaw13w7X YCNsQst4vfjf7tG51EANyHppPxBpSoQ= X-Received: by 2002:a05:622a:170a:: with SMTP id h10mr1970102qtk.497.1642038770692; Wed, 12 Jan 2022 17:52:50 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.49 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:50 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:04 -0300 Message-Id: <20220113015101.4-43-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 042/281] caf: 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: x44OOblVbMpJ From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavformat/cafdec.c | 7 ++++--- libavformat/cafenc.c | 12 ++++++------ 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/libavformat/cafdec.c b/libavformat/cafdec.c index 4b5b15b58d..6d57bc4058 100644 --- a/libavformat/cafdec.c +++ b/libavformat/cafdec.c @@ -76,10 +76,11 @@ static int read_desc_chunk(AVFormatContext *s) caf->bytes_per_packet = avio_rb32(pb); st->codecpar->block_align = caf->bytes_per_packet; caf->frames_per_packet = avio_rb32(pb); - st->codecpar->channels = avio_rb32(pb); + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = avio_rb32(pb); st->codecpar->bits_per_coded_sample = avio_rb32(pb); - if (caf->bytes_per_packet < 0 || caf->frames_per_packet < 0 || st->codecpar->channels < 0) + if (caf->bytes_per_packet < 0 || caf->frames_per_packet < 0 || st->codecpar->ch_layout.nb_channels < 0) return AVERROR_INVALIDDATA; /* calculate bit rate for constant size packets */ @@ -172,7 +173,7 @@ static int read_kuki_chunk(AVFormatContext *s, int64_t size) } else if (st->codecpar->codec_id == AV_CODEC_ID_OPUS) { // The data layout for Opus is currently unknown, so we do not export // extradata at all. Multichannel streams are not supported. - if (st->codecpar->channels > 2) { + if (st->codecpar->ch_layout.nb_channels > 2) { avpriv_request_sample(s, "multichannel Opus in CAF"); return AVERROR_PATCHWELCOME; } diff --git a/libavformat/cafenc.c b/libavformat/cafenc.c index 412b3230e3..396e946ceb 100644 --- a/libavformat/cafenc.c +++ b/libavformat/cafenc.c @@ -122,7 +122,7 @@ static int caf_write_header(AVFormatContext *s) return AVERROR_PATCHWELCOME; } - if (par->codec_id == AV_CODEC_ID_OPUS && par->channels > 2) { + if (par->codec_id == AV_CODEC_ID_OPUS && par->ch_layout.nb_channels > 2) { av_log(s, AV_LOG_ERROR, "Only mono and stereo are supported for Opus\n"); return AVERROR_INVALIDDATA; } @@ -138,7 +138,7 @@ static int caf_write_header(AVFormatContext *s) } if (par->codec_id != AV_CODEC_ID_MP3 || frame_size != 576) - frame_size = samples_per_packet(par->codec_id, par->channels, par->block_align); + frame_size = samples_per_packet(par->codec_id, par->ch_layout.nb_channels, par->block_align); ffio_wfourcc(pb, "caff"); //< mFileType avio_wb16(pb, 1); //< mFileVersion @@ -151,13 +151,13 @@ static int caf_write_header(AVFormatContext *s) avio_wb32(pb, codec_flags(par->codec_id)); //< mFormatFlags avio_wb32(pb, par->block_align); //< mBytesPerPacket avio_wb32(pb, frame_size); //< mFramesPerPacket - avio_wb32(pb, par->channels); //< mChannelsPerFrame + avio_wb32(pb, par->ch_layout.nb_channels); //< mChannelsPerFrame avio_wb32(pb, av_get_bits_per_sample(par->codec_id)); //< mBitsPerChannel - if (par->channel_layout) { + if (par->ch_layout.order == AV_CHANNEL_ORDER_NATIVE) { ffio_wfourcc(pb, "chan"); avio_wb64(pb, 12); - ff_mov_write_chan(pb, par->channel_layout); + ff_mov_write_chan(pb, par->ch_layout.u.mask); } if (par->codec_id == AV_CODEC_ID_ALAC) { @@ -247,7 +247,7 @@ static int caf_write_trailer(AVFormatContext *s) avio_seek(pb, caf->data, SEEK_SET); avio_wb64(pb, file_size - caf->data - 8); if (!par->block_align) { - int packet_size = samples_per_packet(par->codec_id, par->channels, par->block_align); + int packet_size = samples_per_packet(par->codec_id, par->ch_layout.nb_channels, par->block_align); if (!packet_size) { packet_size = st->duration / (caf->packets - 1); avio_seek(pb, FRAME_SIZE_OFFSET, SEEK_SET); From patchwork Thu Jan 13 01:50: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: 33331 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp17640iog; Wed, 12 Jan 2022 18:01:37 -0800 (PST) X-Google-Smtp-Source: ABdhPJwq1e+28g9zrTF/N1FOhIQ9JMKhmB7eVtI6cHcms+KSqUXo8yMUPWySkCE2QMRpjnjWewal X-Received: by 2002:a17:907:6290:: with SMTP id nd16mr1832365ejc.244.1642039297629; Wed, 12 Jan 2022 18:01:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039297; cv=none; d=google.com; s=arc-20160816; b=UUv3itxyzXNgBa1pt53COUXX3jLBhKLdncUNzuOEzDS/YTtiDZSnp7Kr9jvVNWN7Ze IODI1BtC2/P+4pQNFhkXU2j267cr4WBsOZhdW3us8DPFcY8D+Lx+Q+3OUF/B8/svPdP+ cbFPBqDKRVsTS7wMcos8n59sDFQO/mMoAsG/7v9e2qbd5itQqb2rhElHsnj5vUlS/4Iu zu7DrCb2f5hN3fy/gqPyyNrG5QH6dcKGXLXs5aJJOoUkKIjD3n+HVLqt8ecjdP8fkqka t1JJ5vSqkHdaGxD26NfIQb1DZfdXeF57BllgLBMRxEAK/agjDXVG1yAEK1cz0dwtDOBZ WpIg== 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=aPmtnKBaQuGJgKP0F97lDgx4f9GpvRemPr5cLzn84lM=; b=fKUPnZ62WK9eRs9byPLrDkpk1X2jXUeC2Pq32zilF/cceoh03kzXDvmAchP9Sqs5UG dkdJxz7MMYK+6GKeM6cA8thNNn/MO/C7wHUnwTohZihvVhMn84+91tHGTNS7rAroqU+P TSeTwtyx51V7NwqeNs1DOWnwbksW0W4fp/5LDNwZSYT/ieXRz8OMIzBzzfDkMdn/NXan EKS33vVYJFahtdIPlNrUwjxOJFk7/QatFiZfhFypiltuRhTZhDiExn+WCSNMzvnEprND cWicG9nh1RQ08s2rIAEZwWsbDcXbeNj15nb9ZNo3SAtphQZa9YvHgJXZzxziovuzOaJv jvmQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b="g04v/kXf"; 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 hq18si819142ejc.193.2022.01.12.18.01.37; Wed, 12 Jan 2022 18:01:37 -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="g04v/kXf"; 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 BD46E68B0C0; Thu, 13 Jan 2022 03:53:01 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f54.google.com (mail-qv1-f54.google.com [209.85.219.54]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3806568B0A6 for ; Thu, 13 Jan 2022 03:52:53 +0200 (EET) Received: by mail-qv1-f54.google.com with SMTP id l13so3581066qvz.10 for ; Wed, 12 Jan 2022 17:52:53 -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=Jr8/1Fj8pyX3LDeFg7AtlNGHH/zb4kUoFB0JMUelvzU=; b=g04v/kXf4ja48wrpPqpSkA45iU9piIc1YFn731IJKygDtjrepRehubiDzignlOTHGV 8BzXuEM5HyCaGK3LRJNtPzS3DOJngp592HkOi5idDXEBbRViwbok3uUy4O7GN1nr7CK+ 8lzu6ceq4uP5xp7U4fkxC/ol1xB5L6ONbkPQeqvP38zzp0PaTf2kvja3uO3CUSNRR+zd Sm/X1BO4RPX+YVHzhzqOr93xY2Ei1kyjMKlhkx6w83Wv/sDCNw58jAOobRgTjhlJm/tK a5upPI3aMTrRF4F9o3goo0OPkD2NTatWfFJYcqqc/V6RB5Lev4GhEpsFG5N57tJ7K9ER coPQ== 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=Jr8/1Fj8pyX3LDeFg7AtlNGHH/zb4kUoFB0JMUelvzU=; b=FaKBRuEs+pTwSZQ1yhD59n1RM504bbU2b2bHiabX2I/UK/LX3PdVcJMN+ZoSwIFr75 cxTwlU6epbpw/qO9T1RvHoGoTWsGZlRGrYiLJzJLYnY6R+5Khd3MJ63wDehl8jV0yskk FsMJjoiyu5JOGjKm8ap4BtVPk9YNrm8HFHyavWi+oRTXoHU31Xjo53HC5FV2H5AQo7d6 dHbnnblS/MzSF888MluqZ3IcEzzOCBv2LLyWA7ET2pKWL81StIWm6dwKadxFLEeuoOSe GHtD8r9+lVmy5Fq8S7lNk7gj1OgP/V3B6/h/SXSmGxpQxhdIDacSNOV/d8m3je9w2Y0d 0HWA== X-Gm-Message-State: AOAM531Eh2fZe5cOOcBxLpAFdSfUvCPglAWQcxoi/xqfdYsSbG3ZXcZV z7nPyFrW8Uk/RrLrke9driVzDJofC9M= X-Received: by 2002:ad4:5964:: with SMTP id eq4mr2249095qvb.109.1642038771901; Wed, 12 Jan 2022 17:52:51 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.50 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:51 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:05 -0300 Message-Id: <20220113015101.4-44-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 043/281] cdxl: 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: m7fn6TRurpo2 From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/cdxl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavformat/cdxl.c b/libavformat/cdxl.c index c42e0d3545..76dc1d18c9 100644 --- a/libavformat/cdxl.c +++ b/libavformat/cdxl.c @@ -171,6 +171,7 @@ static int cdxl_read_packet(AVFormatContext *s, AVPacket *pkt) if (cdxl->read_chunk && audio_size) { if (cdxl->audio_stream_index == -1) { + int channels = !!(cdxl->header[1] & 0x10) + 1; AVStream *st = avformat_new_stream(s, NULL); if (!st) return AVERROR(ENOMEM); @@ -178,8 +179,7 @@ static int cdxl_read_packet(AVFormatContext *s, AVPacket *pkt) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_tag = 0; st->codecpar->codec_id = AV_CODEC_ID_PCM_S8_PLANAR; - st->codecpar->channels = channels; - st->codecpar->channel_layout = channels == 2 ? AV_CH_LAYOUT_STEREO : AV_CH_LAYOUT_MONO; + av_channel_layout_default(&st->codecpar->ch_layout, channels); st->codecpar->sample_rate= cdxl->srate; st->start_time = 0; cdxl->audio_stream_index = st->index; From patchwork Thu Jan 13 01:50: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: 33333 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp18018iog; Wed, 12 Jan 2022 18:02:08 -0800 (PST) X-Google-Smtp-Source: ABdhPJyE+4AGkIJTmXDe58jZX/BvryiduThzA1G53wq6mfGNGvau1AbaqbWMwMizOd/UdSTmJrZs X-Received: by 2002:a17:906:f1c1:: with SMTP id gx1mr1939930ejb.554.1642039328055; Wed, 12 Jan 2022 18:02:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039328; cv=none; d=google.com; s=arc-20160816; b=wau7UgxwlUtBeiI3IxPlz7vgkhpQRoHNa2MWvub3zwy4i3EBSd/1VvRPQUNlYIA6ar yLFFFzINgeX8CpAPwvXz4+udaUT4G3XSxsChIUAdk+i0Yi6Wf/y37de4dXfn2Th70pPS QBnLmXhAB67egFiW/61CUblAfHFt3GuDvzpN0sRVf+dSDDhC2djLhSY2Fo8dYH0pE2Xl T7ZBIyNgvCdxe6pUvoupYTk5Bc4OezpnCSLx+1akjFrLRaRjxaa8W6inwmMTm2uxYTcz lSJl0OC0xkk1TAhKvV9JoLdrXAI+F5umIO+otdjyldO7LIPMXbdDn/EaxYW+fwJRxlnk dD2g== 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=7nh2BoGY61rmGvZ18DsEwFRK7+0mAYfoRmVjj5Q8GaY=; b=BGJDDrMQxzZ/a1kD9KwCAyxq+6nPDmpEu9gtTDFS2oPRlb9bcc+9gRLdlhHAI6R56+ 7VpRXLUsgg8tXBLBciTOxI3Zuw4bRlb1AMDsdRxzHvf/wvWx/j7zIuWv+WF9qKnBV3iA FiMtEiClsR0jbTv5wVLBe+Ggd828CPcdnvzBVouBz+jJ39OvFdRWgpS3RmKTpwSweQ70 eGKURzmWibBW3/2FSmPxx3vlQJxeq0CPgqJbIg2R33EWzeI08q+swsVlZ2E2Xo2HExbb 79vPIQ7QfW2jaXg6ap3d4ehY4nDAKvf1AnICHJbJyEybmHmfb2ft7KuZsZ6wOwoYMmoF MPQQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=lQYn++vj; 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 cw1si846689ejc.986.2022.01.12.18.02.07; Wed, 12 Jan 2022 18:02:08 -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=lQYn++vj; 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 31E6468B0C9; Thu, 13 Jan 2022 03:53:03 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f42.google.com (mail-qv1-f42.google.com [209.85.219.42]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 783DB68B0B1 for ; Thu, 13 Jan 2022 03:52:54 +0200 (EET) Received: by mail-qv1-f42.google.com with SMTP id q3so5108444qvc.7 for ; Wed, 12 Jan 2022 17:52:54 -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=rCg3ZXxMpOC/tW09gKYuuUYKKFCUXik5NRntQnpD6s8=; b=lQYn++vjfJ1Vi4Pl35ooC71d2XpEXGc7Ryaa1GZGbkHrOb0i7Hphaa01mJnv7m6r40 QrtVcCN4/tpaQiGAppKFzBrJc1BiQf1VHTr/OCEGuujiRyv9qqjgu/yt+axdCjerCDos hTPBfawRbcnHNh6rsPwbmXnXBn6QHLDbrYv3+7txSBuK1A9MNKGccEc2LyrMAvKflJpb atRdXSLQbvkQmkXm3qUHbszFFsJBAukElGtqp0AaPgDJ2lriNpM5m1mSvNI8tz+fIvQ9 0EShgV7FpR0WRJ+HeFTXejBGmCXhY/AlYu36izQrzh5RU4LDu2LnyDsw6c2+ACu5eiY3 oEPQ== 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=rCg3ZXxMpOC/tW09gKYuuUYKKFCUXik5NRntQnpD6s8=; b=Etkj3bY70magpdMiqB2UaU4A2NLUE1kRT8sVt30qyKZVhCzxF4VXO6RTJJlTc0aoja euvC7t4kAtLa5McNMKi/pBggbg4yw2w1HjBPa0Xz87noovUDsLSUYZsBrlOGfpnhouPB htuqdoe5JhLQzJlBX7Q81wSsF7CUWaH1BcUaiFhbIVJCxR/WRDmmimtIMxqoADKYdo+g XYGBnEVULGSpc0N1UmRmr7i8xSE4dSgL4jnyZaf4aQXVdadVdQJOqoanJrt79+qyuejJ bPsucD4eR6RJzSNSYbIkZqj/sBkgWpejFxMNK19Omt3DPOKdnrAHoCnM2Diw/ellSeEJ kwSA== X-Gm-Message-State: AOAM531ouiZS3NyC6h3FYVvuBV/80X0faRCOYkMTSTrn1rh+dmZUc2It mrO3YJ01NmX3P9hXk3EOakDTcdUD2dQ= X-Received: by 2002:a05:6214:d01:: with SMTP id 1mr2181038qvh.34.1642038773098; Wed, 12 Jan 2022 17:52:53 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.52 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:52 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:06 -0300 Message-Id: <20220113015101.4-45-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 044/281] codec2: 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: s24rR8n3LUKM From: Anton Khirnov Signed-off-by: James Almer --- libavformat/codec2.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libavformat/codec2.c b/libavformat/codec2.c index 0b992836b3..9d7f424292 100644 --- a/libavformat/codec2.c +++ b/libavformat/codec2.c @@ -129,9 +129,8 @@ static int codec2_read_header_common(AVFormatContext *s, AVStream *st) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_CODEC_ID_CODEC2; st->codecpar->sample_rate = 8000; - st->codecpar->channels = 1; st->codecpar->format = AV_SAMPLE_FMT_S16; - st->codecpar->channel_layout = AV_CH_LAYOUT_MONO; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; st->codecpar->bit_rate = codec2_mode_bit_rate(s, mode); st->codecpar->frame_size = codec2_mode_frame_size(s, mode); st->codecpar->block_align = codec2_mode_block_align(s, mode); From patchwork Thu Jan 13 01:50: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: 33326 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp16751iog; Wed, 12 Jan 2022 18:00:28 -0800 (PST) X-Google-Smtp-Source: ABdhPJxoGqjceNJBn0EpLXLo6tLRSAqJUsD/zcXtSUf5GM6MxT6r+ppy+0QHyOciglXAFc1aj7Ah X-Received: by 2002:a17:906:b044:: with SMTP id bj4mr1807321ejb.467.1642039228363; Wed, 12 Jan 2022 18:00:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039228; cv=none; d=google.com; s=arc-20160816; b=ylX7R7PZ/p2XcIc3eL5Wmmx3pA/bn89f9zlwc05jtTQ+L/+bf0gBqAL0x0VMnxYko6 C/mDTuV1PNwMFYxcwv6OQjyC3yiHXAl7AkRb9lBwsE/13QdQnqU7YqlNM/UdvmoGiVer u/O2FnP/SrdAa/ahpnKvp6xT8MtBDzFbmHuH+X6LVUfcenajyjPPGQzsmlhmwHtR1OvB KaZxQPlGFgvRyJfwrrwlDlsHm2QnvdGCf4SZXDKbE8yFGCfBwBb5CAknlhZVoOI7SUoN 8bqZf/oXJGkEcf7AL5iqOYAOWgUOX0RymHZ+UvBA7rt7c3RvlVY3UydYCYCM8nDS/YJK p3jw== 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=qI9jyme1jLqSZrMIY0+ryOzj7H5GMSxyXRe0/udeSj4=; b=tntIuQ44QSxikx4Gp10PqZ68khywq3zdJMnyxIi9Wc2GyJwK1OOWTwoXkWhPQ5MBaS kwqAomRmlTt4pRd0by/KG9ZmuVGZX0q3vTgO/MeT1KOijqpz1yNpJyULK1fd0VLGwsiw U3vmgEqRUtDfCRzGXy6EbBflTK+Wc5XrGKYE7leL+5WM+r97hZsELdIF/f/lq0ggAfag yN5CVaOmO4Qdqf5zj/Zba8MLzNwNXgdkwgRCDTAwR4RwEJP9TBGuGLYEuMehCwAqbVEs 9ub+qOdUEoIjgNsNT47eq38ljoidzq2bhqSxZQIZwqY4JT8ctzkbe6pNtvT1zELoIKy/ lehA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=S9P3PdDl; 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 e6si819110edm.323.2022.01.12.18.00.28; Wed, 12 Jan 2022 18:00:28 -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=S9P3PdDl; 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 7663968B09E; Thu, 13 Jan 2022 03:52:57 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f41.google.com (mail-qv1-f41.google.com [209.85.219.41]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AFD6668B074 for ; Thu, 13 Jan 2022 03:52:55 +0200 (EET) Received: by mail-qv1-f41.google.com with SMTP id a8so5144889qvx.2 for ; Wed, 12 Jan 2022 17:52:55 -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=JswVeWRDDxrXSLcrvKtS/jk50bViUH5zOGomTm4ID1g=; b=S9P3PdDl7Hvcb9kXc/7lQPdQBPPE6rDjfnA1z4ns11BYxzRSJ1EdasfPhFU/RQiYNa iKXvFCVkdReR8oJE+6mQAQMkFUvJb0a1gEnOa7BFSlPR32xRcQPm7BCM7Cpxyaz1zW+g Bt1u1jo2AzQfuC3doT4N/fBHd83xO7hECs+uGwvqUw/T/wbcRiMoBlu7a0YERorQ1/8l oTp0qFg/FCQ9hBTXaJNRp8YWSZyPLni8ht6k5w/G0FpavIyhX3xUHr4FYU/MJsNwM0Az mxkKAHCWkObDwdhte3jUgmt69jYXLKC4tcjWHj9ZaSuA446cPj1w9lf5YnaloA5WlUED y5iA== 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=JswVeWRDDxrXSLcrvKtS/jk50bViUH5zOGomTm4ID1g=; b=8CYtvd4aKe6VzSmmnNCaJ95QrujwhIapI7xTKZVXO9tlzIYvoJ6vDySH+uTYoa/ZyZ GJDYFpmt2nBzGK8HRc9LEj/6GOtj/zxPrCS5XYGH6+eRekEXdqDQj2dGTsS/8xm8G4ol 2wOpU+smiWKHW9YKiDA38ms7q+PNjVf7FFX8uCRV1hJwWex+5ho0W6qLeu8xDATZ94eS XiU2RC/bKBU8+D+AkZFZgN5un1kbUWIS4grlPg8/+xbglOPotFC/7XKx5OCI9nNzEqFu PsnhwvnQZfJjntwDrZrzOwo2uS9l7zH9BNDXN8bl9iSk8Tw2bgZqynijT7lNhbDmLWmv vIpg== X-Gm-Message-State: AOAM532is/oOoiZ3Ma6mYrVJ7/hFThhw3kmbqDiANCFZrD2qyAToh98C rvD/C5DLIByZlJtClkb8z9NKSUcUBwo= X-Received: by 2002:ad4:5967:: with SMTP id eq7mr783256qvb.106.1642038774280; Wed, 12 Jan 2022 17:52:54 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.53 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:53 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:07 -0300 Message-Id: <20220113015101.4-46-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 045/281] dash: 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: L43yGISRTOSi From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/dashenc.c | 2 +- libavformat/dauddec.c | 3 +-- libavformat/daudenc.c | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c index 4709bc6615..9a97838f5c 100644 --- a/libavformat/dashenc.c +++ b/libavformat/dashenc.c @@ -859,7 +859,7 @@ static int write_adaptation_set(AVFormatContext *s, AVIOContext *out, int as_ind avio_printf(out, "\t\t\t\n", i, os->format_name, os->codec_str, bandwidth_str, s->streams[i]->codecpar->sample_rate); avio_printf(out, "\t\t\t\t\n", - s->streams[i]->codecpar->channels); + s->streams[i]->codecpar->ch_layout.nb_channels); } if (!final && c->write_prft && os->producer_reference_time_str[0]) { avio_printf(out, "\t\t\t\t\n", diff --git a/libavformat/dauddec.c b/libavformat/dauddec.c index 6a5962c238..dbbd39a3b4 100644 --- a/libavformat/dauddec.c +++ b/libavformat/dauddec.c @@ -29,8 +29,7 @@ static int daud_header(AVFormatContext *s) { st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_CODEC_ID_PCM_S24DAUD; st->codecpar->codec_tag = MKTAG('d', 'a', 'u', 'd'); - st->codecpar->channels = 6; - st->codecpar->channel_layout = AV_CH_LAYOUT_5POINT1; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_5POINT1; st->codecpar->sample_rate = 96000; st->codecpar->bit_rate = 3 * 6 * 96000 * 8; st->codecpar->block_align = 3 * 6; diff --git a/libavformat/daudenc.c b/libavformat/daudenc.c index 183a08ba30..2e252449e9 100644 --- a/libavformat/daudenc.c +++ b/libavformat/daudenc.c @@ -24,7 +24,7 @@ static int daud_init(struct AVFormatContext *s) { AVCodecParameters *par = s->streams[0]->codecpar; - if (par->channels!=6 || par->sample_rate!=96000) + if (par->ch_layout.nb_channels != 6 || par->sample_rate != 96000) return AVERROR(EINVAL); return 0; } From patchwork Thu Jan 13 01:50:08 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33328 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp17049iog; Wed, 12 Jan 2022 18:00:54 -0800 (PST) X-Google-Smtp-Source: ABdhPJx4mBKGaVB6JdNi7mvVJqNxZrg0UsfmdZsuRtonfiVOCk2+D8WvrRhKOgldMZS06mmhirAM X-Received: by 2002:a17:907:da1:: with SMTP id go33mr1815205ejc.491.1642039254534; Wed, 12 Jan 2022 18:00:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039254; cv=none; d=google.com; s=arc-20160816; b=TvqX451HrRM7Ndde0QTax6+6k4wobWi7Qet3LDLAJ526y+ZpBnlFmIjXQvjVzSYffN DD15eSVuneMA+2Te6bJfJ84ZzyDqNwQ0vomTV6gqsMmtC3z2w+mQl/mLgyZrKjGM6nev 9yeD9RL3Gx6+XfEML3jgT1J95bq7/hGkGBY6Tm9hFDXGR7TcNUmDsTQaHmmIn6utH60X VmxlQ+fA8gLfR9MaSujF6MRK93p/05TtFHBZPYKUtJn6D1GbBW/QvmJG4yDqTB/skPGa texEeZ1LH40fFDNVuRHMi5zAVBcV/sHU77f7rHg/zvyJsOOjTlWiGMbvxSN2xNtAfRPM fvjA== 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=dMgwmasYvHgdOcKwMVP0jfub7m5Pk4kyzghJipcYrB8=; b=cTiEosg17c8/51tukcY7vRXahpgnXdJgugK7EKKdfyN/+yrYndRs5dn3Sy8GgG9St1 i3X1KNcUOORfXUuLCys4ZvzeW/LOT46OPAfFe0D5ZzZ12FAv7AyPjauYS5O6fUOq39BN AxT/WNFPujpRb19ii2YcIdMGff5YW7afknGR1MLNk7mVbb5XGcT+zU8wpr80Cd+vKm9M 7nrByE1SwDIsx2D6TUaKD7qPCBoOXw0qtx/H3a4pL8f+x2CGKnCXopmB5SD6lJwLu7Ks 8XKVI2MmLcR6sWnWjdCup5ntw0ozFcZ+rAxL0WTVPe2IvT4jCNM/eKZDxfMNspzu+qoq MeTA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=J6bOPxJt; 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 kl20si748454ejc.775.2022.01.12.18.00.54; Wed, 12 Jan 2022 18:00:54 -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=J6bOPxJt; 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 055C068B0B0; Thu, 13 Jan 2022 03:52:59 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f42.google.com (mail-qv1-f42.google.com [209.85.219.42]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CDC5168B094 for ; Thu, 13 Jan 2022 03:52:56 +0200 (EET) Received: by mail-qv1-f42.google.com with SMTP id kc16so5129226qvb.3 for ; Wed, 12 Jan 2022 17:52:56 -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=e9cKIiNl8zAxJ6jftWxk53Gi78T0sdSGyotrA3ndh5w=; b=J6bOPxJtRhbtcky3WezY6K/sSlmf6mxP7zZ2/vlnZWn4DfWH0+nbhiS2AZ/TlgT2zx +kZQhRPyBMNiPCPJqAhk66208cLwU7An6/ldYkNb1Gd0TribF7x+nDne5eSR4ljexl+s b32uIIZWewT/aASkODbIQEe5+h+o++9QDGFlBTrKyNNLHFAit8dpVq8Jr9V1V1+pv/Kl a7jB6Vs+HQJWaeAOs0tDvhBtTuiiTfzzyczB7gWex/ifxlJRpvzP/SX9o1JDCC2hDH2E 1q4vsu2++1Cipe3cPKouF/YAkBBfB9rTXRtnluO1aPpuN/bF1CV2zqCo4XOHJ/HJZXnv a4Mg== 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=e9cKIiNl8zAxJ6jftWxk53Gi78T0sdSGyotrA3ndh5w=; b=cb3SBdyJMWQSrgsUWlJllkVMgM4tdcwVAKWRA6dWFjwsN2i1kZRu6fvOmCUJ/QLOb2 gyxcZxM2/bRVfcHsojLJQKOwiJXd3QNStQ1bfccVzNOiSGUc1XLOmIkzMXjXxqffcB9Z wI70Ao+oK+w10i/ETTYLLl7bA4ikaYtR5lEtZ/VMmdosNNBLA+kI3AgvVjIIgEXtXqQZ bwibiBwZMzcjG+Q4Hk6lejb9wnTRrsqlBYVI351qNaecNmxSRlDn/iJ/XGw5S5WsgD9N Yi5d0qel0a61EUO/6dwM5v9WiQMowd9VG1m2ozKJb+e6zJ0w5elaHm2jBsKiZWMjy3OM HMng== X-Gm-Message-State: AOAM5309TcfF2wmwXaMxRtqnyHogRXGAONU/Mc3uRDQ4uobCTzMJm2mk 8xk4KCdnCqPEMDDQ7v8Q8DEsgZdH0TQ= X-Received: by 2002:ad4:4ea8:: with SMTP id ed8mr2448662qvb.52.1642038775469; Wed, 12 Jan 2022 17:52:55 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.54 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:55 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:08 -0300 Message-Id: <20220113015101.4-47-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 046/281] dcstr: 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: FUaB4EyWjqiV From: Anton Khirnov Signed-off-by: James Almer --- libavformat/dcstr.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/libavformat/dcstr.c b/libavformat/dcstr.c index 71dce08bf7..10f41ebf4e 100644 --- a/libavformat/dcstr.c +++ b/libavformat/dcstr.c @@ -41,7 +41,8 @@ static int dcstr_read_header(AVFormatContext *s) return AVERROR(ENOMEM); st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; - st->codecpar->channels = avio_rl32(s->pb); + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = avio_rl32(s->pb); st->codecpar->sample_rate = avio_rl32(s->pb); if (st->codecpar->sample_rate <= 0) return AVERROR_INVALIDDATA; @@ -50,14 +51,16 @@ static int dcstr_read_header(AVFormatContext *s) avio_skip(s->pb, 4); st->duration = avio_rl32(s->pb); mult = avio_rl32(s->pb); - if (st->codecpar->channels <= 0 || mult <= 0 || mult > INT_MAX / st->codecpar->channels) { - av_log(s, AV_LOG_ERROR, "invalid number of channels %d x %d\n", st->codecpar->channels, mult); + if (st->codecpar->ch_layout.nb_channels <= 0 || mult <= 0 || + mult > INT_MAX / st->codecpar->ch_layout.nb_channels) { + av_log(s, AV_LOG_ERROR, "invalid number of channels %d x %d\n", + st->codecpar->ch_layout.nb_channels, mult); return AVERROR_INVALIDDATA; } - st->codecpar->channels *= mult; - if (!align || align > INT_MAX / st->codecpar->channels) + st->codecpar->ch_layout.nb_channels *= mult; + if (!align || align > INT_MAX / st->codecpar->ch_layout.nb_channels) return AVERROR_INVALIDDATA; - st->codecpar->block_align = align * st->codecpar->channels; + st->codecpar->block_align = align * st->codecpar->ch_layout.nb_channels; switch (codec) { case 4: st->codecpar->codec_id = AV_CODEC_ID_ADPCM_AICA; break; From patchwork Thu Jan 13 01:50:09 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33330 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp17447iog; Wed, 12 Jan 2022 18:01:22 -0800 (PST) X-Google-Smtp-Source: ABdhPJx8yJi6+3BEJxTMGAzCIENgZqHlJOLon0CT3xbs8R/Ngts2YUY+tAe1rgxLzXqt2rPB4eJU X-Received: by 2002:a05:6402:cb8:: with SMTP id cn24mr2210413edb.95.1642039282469; Wed, 12 Jan 2022 18:01:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039282; cv=none; d=google.com; s=arc-20160816; b=o8niYOvneCW9sekw4agKNcTVOxIpbXfAvTCnUYgSUUNZfEOcya63zPVE99JVndFSyq /I8+wJxSJck4jBQWyDyGt8ZHO+IKItnSGOLQJWhNG8MdLjaI/FBcijz23e8QFkjPI4NT ySqu9cHzQQvK2LmDaehGeoRgSCkFFA8/K/OGPFm6RV+PK041eSzkE0FzY1WVJ8tVyySX LmWifDxDNyXcafOi2HI+PP7AOPbSRfBkTEFxW13dmVBU1lTaAXR+xLrb24hcDhXVS3wa 2/iubUturvaZamqpzATFDTduZvSyBSSTCcPDWoqwnxWNNxk2dNwd5O7Y9FxyjR9gix3A DLng== 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=Y2KnV50V9YFtA8Lhxt7FDmi04lMquxsOaNodkqyiYuc=; b=LdsQR2OtuqeFnz28ooANJwnlo+5k2EEkpIshTwcba5H4Sd39Q3bd6BkscFM3aTL6C3 LVdoK0MW9O1zEDtiXPnp/eF4iVU9pFEW4cRDLLkb4I+j6SOYt8w2xeC/28B1QiekXcbJ XlP8xenqtJg7YtTyrhTKkJ9MYcniRGByKXS22JDG6r5z8PHS9HfQqsk0Y7gvnjuc4/GM uXh06QRBoax78bnhi7BkxcaAT9m8tdz4DIGeEHqwbUFXEMA18zloM7tJtPcVZv3u04s4 ph+LcRgUTCXAQBI+9IPxA4zHqPyYWhLgWxoVThCD1TPAWvVXRuWL4EfeX4n/AjnsK0bx KzbQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=ZVO2q4Ft; 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 n26si707639ejg.794.2022.01.12.18.01.22; Wed, 12 Jan 2022 18:01:22 -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=ZVO2q4Ft; 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 E076568AFF2; Thu, 13 Jan 2022 03:53:00 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f53.google.com (mail-qv1-f53.google.com [209.85.219.53]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1B79868B0A6 for ; Thu, 13 Jan 2022 03:52:58 +0200 (EET) Received: by mail-qv1-f53.google.com with SMTP id fo11so5070306qvb.4 for ; Wed, 12 Jan 2022 17:52:57 -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=6rKbJ5Qk2cUfp7D2yBH0l9p9S1CH/YVF2ZNf+zibVFs=; b=ZVO2q4FtokFGNOb1NFL5fsvsYtinIy/CrcEE0rQDeT0VblFPG2+fFeX3KSUlKmDGQ3 s0T1GJOg6a92yiiqyP7fyWCf4nkbrh/ZeWCOgJ2Lxn8Bibn1AHJb8/O14P6E0IdqKoyk o2G+tfNOtM5aMAHDhL8YtPAkedzlMdZBtAZANw+dn2B8VaEyfb69tRZFSE8NPj6QfXS/ Fh5c1AhAy3V0hdRsSu9qskkqdVjZfKMv4f7bCf6xD1ix6CE1VQryYXdsgaI/q2ykZTcs c88Hly8/bOArGcgtcMfNj0MwERyAtwjmNFq9t0qRNojk1tMN0DZ0ebOxAaDxchyze9O+ BoaQ== 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=6rKbJ5Qk2cUfp7D2yBH0l9p9S1CH/YVF2ZNf+zibVFs=; b=5xTViY0Zo+pFg54JcFUfem1nXxygUSpzcxnqK+bM1gh6GQdZwuGalyDKdfpskEz13j 8oF5jX7TgiafXhw5bw1QxiqoDfTODrOul1r1yFf761xH7ie0tsndgSCAeyQwXfHeZu9s pCGZeiUjn5E7s/4tUyjBZitRK34SYrM84wyRoBlRr0nlX8uRzw9ce1ugSzK2dnP4V9F8 ATNLGVdoSiCzYYjJVNEVA8pfGwEoZ0bxQgcAHC/w/boGpgWu6VxNbZ0FEY+puStLqJWR h9EmKDcXyYfluZu8it98tWN54LmUmBK/yRLuYVuKl9kvLvbZBFni4zRf2j0d+0LAUbJv FB9w== X-Gm-Message-State: AOAM530n6FkfvEZZWIXbw5YI9hkaATmnX0sAY2cHBceE/QVfyZsRBgdo pst5/HHymmBdDjOe/vOJPR0YN9LaQj8= X-Received: by 2002:a05:6214:2307:: with SMTP id gc7mr2208116qvb.77.1642038776643; Wed, 12 Jan 2022 17:52:56 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.55 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:56 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:09 -0300 Message-Id: <20220113015101.4-48-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 047/281] derf: 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: l6PxhBfRbVJT Signed-off-by: James Almer --- libavformat/derf.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/libavformat/derf.c b/libavformat/derf.c index d50a853194..9da7fc4f19 100644 --- a/libavformat/derf.c +++ b/libavformat/derf.c @@ -38,6 +38,7 @@ static int derf_probe(const AVProbeData *p) static int derf_read_header(AVFormatContext *s) { unsigned data_size; + int channels; AVIOContext *pb = s->pb; AVCodecParameters *par; AVStream *st; @@ -52,15 +53,12 @@ static int derf_read_header(AVFormatContext *s) par->codec_type = AVMEDIA_TYPE_AUDIO; par->codec_id = AV_CODEC_ID_DERF_DPCM; par->format = AV_SAMPLE_FMT_S16; - par->channels = avio_rl32(pb); - if (par->channels != 1 && par->channels != 2) + channels = avio_rl32(pb); + if (channels != 1 && channels != 2) return AVERROR_INVALIDDATA; - if (par->channels == 1) - par->channel_layout = AV_CH_LAYOUT_MONO; - else if (par->channels == 2) - par->channel_layout = AV_CH_LAYOUT_STEREO; + av_channel_layout_default(&par->ch_layout, channels); data_size = avio_rl32(pb); - st->duration = data_size / par->channels; + st->duration = data_size / channels; par->sample_rate = 22050; par->block_align = 1; From patchwork Thu Jan 13 01:50:10 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33332 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp17834iog; Wed, 12 Jan 2022 18:01:53 -0800 (PST) X-Google-Smtp-Source: ABdhPJwUGk+bJgBDuUtZpmPRw2AMO4xC/mfG+ZflcL61ed9mr8XwsVrTV25TODxttr+eYoLAQ9I2 X-Received: by 2002:a17:906:e08:: with SMTP id l8mr119453eji.344.1642039313752; Wed, 12 Jan 2022 18:01:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039313; cv=none; d=google.com; s=arc-20160816; b=ktWp1BcnYa5GmBf6cZod+3RME4l20T3f2ARpWOqMJ+W8k2bRO0Fcyb6Yix6RXe5CS/ hRY76XS8k6RcrHwfHDIdXHi2XSfCoE4dUEMv78E20CqL5j8A/6CVadgAzDCN1IBGIJ/k 0r9r0/FEMdbn7M2U4s/Hyt+GagiFZzDRJzBTMboJL0kyXh2zuwdXn1eA1wZbBmPoImv5 z2y9tBnxmWnUeeiImvbq1fw5NZya8W4+HrE9Ml1tiNYnar7I0ZuEjZsGBwkGVMVKb3st EinFGlHWJDCExoiZH5F8djlZFEiPXEDUl/YPi3BQ2ahutyFRzkDBPDbLL+EKykjGOhMI qDvQ== 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=tRPR/82VFVyIZK1FFDkCkjeVyBDLqtmnsvjafWDstEs=; b=KA/WrHJ5SvGS75Ro84NH5SWM3i4cwDfSjRELH2X5Nr3lMflpAcb3ptNU8VNv47shon iS6ye3lFDCksgYqdboiM5teJwIaZn1NoWgX8wV0i6F8SCa1xz0WbUmF0JSt58fRVfrMc mVFFyHSVByEO3fjFYj1Ndf8e7zf/PqdFG2z0zKUXz+X7Gm0cJBDVd+NvJ84R6K1VLd3e RmxJl6nGHEeSTP5a2bq90d0nwjKw1Pt103VC1mIiGUqV/wn8GCd4yUItweppDz6diSLq Ej+AaVOapuoPfMmm8UXUSrpuv5NftzpKeQkBasIsOiWZYtNvL/E5iG/qCXuQkBZIoswW h6PA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=KxB3ncum; 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 hv15si767699ejc.853.2022.01.12.18.01.52; Wed, 12 Jan 2022 18:01:53 -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=KxB3ncum; 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 7B86368B0CC; Thu, 13 Jan 2022 03:53:02 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f44.google.com (mail-qv1-f44.google.com [209.85.219.44]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 34FF068B0B1 for ; Thu, 13 Jan 2022 03:52:59 +0200 (EET) Received: by mail-qv1-f44.google.com with SMTP id kl12so5082920qvb.5 for ; Wed, 12 Jan 2022 17:52:59 -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=DHINQibkE32hh6fGhiuuDxxqJyzs7EILMp35dyMR3zM=; b=KxB3ncum49OHJyeiu3+peRM78ZoU/pH6gO/JtPaLDGBW0+/BGZx9ViAxVgGx047k1A bZPkURybVaOpVM9K0WjkconMSh2usS0KOwh+XPK0Q+wKfMJxjdFb3Kj34nz6Cldr/Utf 6mOTLv+tctlQT3mGD2/Cfi4zUiDatL1Qbz7Z67qFnHvDmhyGnK3bBIn4aqsP3syXfuXz xFZyYIqFoDWkT//NgjcCyCiNjNJM60ZWhZt5FaNk9SGyUUiPfq/yEgo1b1dJp1Xn/phM M3S5bnFH4Bdg7+ZH6Zme9bjuxaTFFBgdLK1WGzhSAKJANWhW8ecE68omAn85dm2E5+cz 4alA== 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=DHINQibkE32hh6fGhiuuDxxqJyzs7EILMp35dyMR3zM=; b=WvhO4LozdCTn6J9AQxvwZLc9EokyTyvHjic19jZ+YVp75ppi7lG6wIt2wzYQCYc6R+ ozGwnFufvAv4FOt5fF93UPpzzDFTnxFB6LxORDzQiGnYWsqYYTu8RlhPFkfayg/5xJNO mIzT/xNCZlDd2CPyNin24cxW1G2td4DOW9zYVf9IIS6GjbNK/NL3zpITwwh2z0kLp49j g0fhuSikK0Ox+Q1KvhJd5YCFXRE0T12qP7jQeRmizKzrpa0lxLT42LM1SLpIXV6AlfIO XAfgRJFZPq5JcNek6qPe09B4Ezcis+NV6ibq3obQMtuwS9QFADwf6yDv147ofj5RW8y+ M8Mg== X-Gm-Message-State: AOAM533MvRElNRwnM083apnFiJkFWySrN+grNjmp5JATZw1GGzCWXoXP gmqTF+tqfnairFz05JH+lYFxd8CxtHY= X-Received: by 2002:a0c:beca:: with SMTP id f10mr2346704qvj.97.1642038777820; Wed, 12 Jan 2022 17:52:57 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.56 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:57 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:10 -0300 Message-Id: <20220113015101.4-49-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 048/281] dhav: 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: Ug9VHYxKHY/x From: Anton Khirnov Signed-off-by: James Almer --- libavformat/dhav.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavformat/dhav.c b/libavformat/dhav.c index 6c1cdde32c..935f805632 100644 --- a/libavformat/dhav.c +++ b/libavformat/dhav.c @@ -395,7 +395,8 @@ retry: default: avpriv_request_sample(s, "Unknown audio codec %X", dhav->audio_codec); } st->duration = dhav->duration; - st->codecpar->channels = dhav->audio_channels; + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = dhav->audio_channels; st->codecpar->sample_rate = dhav->sample_rate; st->priv_data = dst = av_mallocz(sizeof(DHAVStream)); if (!st->priv_data) From patchwork Thu Jan 13 01:50:11 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33334 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp18255iog; Wed, 12 Jan 2022 18:02:24 -0800 (PST) X-Google-Smtp-Source: ABdhPJwWIuRObvAbMa0HoRAzzCyjXvR7j68esxhKm712o5is3VlSAtd0g6pcuxgK/wNlVIeBLs5Q X-Received: by 2002:a17:907:9805:: with SMTP id ji5mr699064ejc.271.1642039344299; Wed, 12 Jan 2022 18:02:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039344; cv=none; d=google.com; s=arc-20160816; b=j0quJhFXDohLKj4PhCjfbbvyclWNoiTAlNmy12EzC2spMgJ4Xg+JG8ZoGbd8Wo6M9M u5iHAKC2c0spHp6H4Wh/KLzaDjpGVGddW1s/JqQatgECHzgnaa5DAaZLE88FbaY7T9/B kJj6wz5ZM78Lw6QG1H5K2jtK4PpihvsFClSWGgIEy1qMNHc01k8UKwlzUceHHXlRs5Wx +m6UphWv0WPf4TtQlWvH8pxgVdhJnDJwt7Rpg+Oo+uDFvTBySTHoTDd29Z7g5athVq4a 73Pe0Oz/iN2vnGhLqQFakwkyuqPCb7mh77nZlriOZYVW8EoL1a2Wr+beFveenTTfVGks 4adA== 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=ni3qoILmytZuPhuiRcPKt8i9N3y8pyFNrgc1j6aJePQ=; b=QIZMTghr10kFVTF9Y8T8BMw6MsdcQ6E3Ui9YLPSqHtnDRJFppvxKyIjneIW2FN5Yt5 RBvQApeLBsFKYs1KLXXm1tyl1hTB4vWaj4GTK9lSs849WyhU1ns9+y7L68PWpkt/a9W2 TU8m34vbT3HIRsfguuFVnfpLKxT8+yisO2ChGRGSCZxkgecQv6x0NCiUovO2OC610cMg 9U6W2ojgmM9ZajIgOQ1Nwa4yuV/qoujObbqFFHk+OgiFe5itFkAwm/MqL9jFMbVH0Ab6 Hu1vUTv9zKIPq2Bhl5wRJMWx+9jO7zna8wczlslVEgVuIc9jkhVMeEW6MdaOCt2zymS2 ZcsA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=Akgk3Hk5; 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 cs21si738424ejc.506.2022.01.12.18.02.23; Wed, 12 Jan 2022 18:02:24 -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=Akgk3Hk5; 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 D643868B0D6; Thu, 13 Jan 2022 03:53:03 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f171.google.com (mail-qt1-f171.google.com [209.85.160.171]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AB1E268B0B8 for ; Thu, 13 Jan 2022 03:53:00 +0200 (EET) Received: by mail-qt1-f171.google.com with SMTP id q14so5300606qtx.10 for ; Wed, 12 Jan 2022 17:53:00 -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=veXABjlFttR/9y66ufp6cpinTaGC+F09pLeaqYh+6/Q=; b=Akgk3Hk5kPeNrIYodeocbN5keRmazIo9d6bA7AHVKT3CNSeGIpf5MsBC1PjghscU+e 44Cm0rqm52vi5O78DBy8WU/0zd6IK+LBWKVKMI5rSQP6EiBqID2ti/WzjOWWQbIGrjFv zsyceNIzzsP0yhiidWOsOyuPVX/fo51cYG49eTOh4Uo56lgiYg1cJGPtw58Tyutvnknk myAHO7jXvZ8ePhgjzyEeGWvHa5L6CK5PGJ2A+kI74J8S3ksfWF+s6BvHKvdrHqVHc1hO U2I3PLMxYKq62dTo2yy4LRmTTwRDu9VHvQVoDWRNz77PNHM13ZUldsv/4rciFFYdOogX 7xPg== 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=veXABjlFttR/9y66ufp6cpinTaGC+F09pLeaqYh+6/Q=; b=yZpNahqfnleFATcErZbAxzS/Z6yHxpONFGL3A5Fr4nGE0aYO48OFjtB9ZTZ2G0UJZD ZTloJioOwKMWF1GpxoDhaPuTrNKO+03+5GXPLJbjf8Vqs+ECHJVvIOE8wWKc7Qwz+LSF E6cb2wOH7zNSllz3AvBP7gSsEvkG8gYHNTDfsdYJLwPGatPI9FaQucH7rW0OOfn80rMf CAzVK1HIvPYN+ITAFfJEKSTm+Fbvu98ptvXsXZQxs0raLlRYK58TbN2344C4ikzgzOLl xfsVFsLWjhAXbBq96N75ENNGIQV2ew2vyvpHeWIELsbqdE6X6IT4xHbS4il6sPzmNsKr 9Gww== X-Gm-Message-State: AOAM531kx2sykzRINYNAjiQTnY50nyIiGYm5eUaGf7UXagJnrOLJew0W zd+rnePVdOgP27faUTkIQHJJr2HxFtI= X-Received: by 2002:a05:622a:2ca:: with SMTP id a10mr1991726qtx.483.1642038779015; Wed, 12 Jan 2022 17:52:59 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.58 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:58 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:11 -0300 Message-Id: <20220113015101.4-50-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 049/281] dtshddec: 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: yi055qu3YjFI From: Anton Khirnov Signed-off-by: James Almer --- libavformat/dtshddec.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavformat/dtshddec.c b/libavformat/dtshddec.c index b84588af7c..a3b3b92055 100644 --- a/libavformat/dtshddec.c +++ b/libavformat/dtshddec.c @@ -104,7 +104,8 @@ static int dtshd_read_header(AVFormatContext *s) duration *= avio_rb16(pb); // samples_per_frames st->duration = duration; avio_skip(pb, 5); - st->codecpar->channels = ff_dca_count_chs_for_mask(avio_rb16(pb)); + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = ff_dca_count_chs_for_mask(avio_rb16(pb)); st->codecpar->initial_padding = avio_rb16(pb); avio_skip(pb, chunk_size - 21); break; From patchwork Thu Jan 13 01:50:12 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33335 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp18476iog; Wed, 12 Jan 2022 18:02:39 -0800 (PST) X-Google-Smtp-Source: ABdhPJyoyFfvUdiJUIgtL/HfFShN/3JhOnSWKuUNI/oY9T1pD12vY9cw9g2vnEHyVazqGBGdVp3r X-Received: by 2002:a17:906:9be4:: with SMTP id de36mr1783952ejc.447.1642039359381; Wed, 12 Jan 2022 18:02:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039359; cv=none; d=google.com; s=arc-20160816; b=jgi8BLcLvFlDtwoYqSggQ9AOsSevhCYXtpWgWNYFtoeu1oDKZYGkS/2imx65JDNncl 5rOBqc/uf9aZiX/52ddNi86IcUx7lb1zhNGi61Qc0T1R48P18w+18cjPjqVf3LJgDZH0 5NYKayAdBeWlBNxk2NPxYRcGt1NPy9BcPg8KNwSfFW98GYFxjotXjVoBfk56Ah/oWsGj a59bT2Ci6jqzV5gPcOW6fA+ju+eeDXG17Ty+L566aqq+OqHK5Mlns5JyZxTBOrADU2vb vbkwstYvl33pJLLdzEP5iaoT/tcOXzIffNWgbXQxl4/8ww7AVCOZguOLBr5Z7ZotW2R6 IzXw== 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=nAa+zewRvXlMCbZ3rykQSmqmonNnJ4Kl+4LgYkjxgXQ=; b=THbFr1rlMD2NhMLkoJ/Xi59dXF+q8KQWjdnhw80eD71f8aeb9JRaAZ/ESVzjQF4zOV LBTVs0K2Pods49zMeAeiKXreRn0R2YF+6CerHeVHWn3/RtremyrdPy4J1VHuULU15eIX uXbIh1eIDNITUCWdf0brF834on3MocmJNSIMEvuW2M3IaweO1LltXQCofCfirR1Xv+CZ 3raLYEzRTOi/daHshU8pnskW5rWTnUsPIFOrKv4f+AEisNG2XajcrkSa/7HeUglKjs5M bQBJsygiTbkc3nnNiipRCmnJksV4pxT4VfCLopittQo7a/ad4VbKNWhRZC5ySFZswyKt Jy4g== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=mKCLcTm8; 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 p21si758576edq.27.2022.01.12.18.02.39; Wed, 12 Jan 2022 18:02:39 -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=mKCLcTm8; 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 D5EA368B0E0; Thu, 13 Jan 2022 03:53:05 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f54.google.com (mail-qv1-f54.google.com [209.85.219.54]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B40C368B0BC for ; Thu, 13 Jan 2022 03:53:01 +0200 (EET) Received: by mail-qv1-f54.google.com with SMTP id kl12so5082994qvb.5 for ; Wed, 12 Jan 2022 17:53:01 -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=C6h8t0hsvl4Dz/rLm1krrgpVsQPko7v23V+WayFbxnU=; b=mKCLcTm824/9YayZ8VBNoDJ+6sButBjds0u6jTTSY5th70b7rlPnpf7j7H6w/V3y5l JLChmAZ7fO3n2jqXGruU6VzIW0WsyWsfhxynWF6s3gijXr1s7aFB5GDEUpm08tjscMuw Gc3FWnrSqLT2dvTMjzYbFQEs27v7BF5uYbUlrk7GDbs0lXozy74nFN+UY7zjOx+e2G/g KGU0hwqQS2R2c2I4WHcPIi2NyXifRF63kPymosZlFxnGmr67MBw/yMBl4GCZVsnEiWzL b8saJ7zudcJ7KsW6IyNcppkQSMhcWYCbVULjDZg7nouDWx9uwi3o32oVWxwQePO8SN3u Ufjg== 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=C6h8t0hsvl4Dz/rLm1krrgpVsQPko7v23V+WayFbxnU=; b=Bisn5nrByjyMGJRcit+6yvxdEX3OUw2QFSGZbmIfPaTIgLk/JP9vjYfZkzD9dTEGWA 5Ce4gu283dZZvXPlaZiXQY1XYAm3HEhdk6lxE0uZZRraGo6xF0rMQcbi/hpQLzRYnE53 i0VLEQ9Oy1sTJLoLYwlu/xiivLKrxoSDROE+FYeyHGek94pX7Pp19BXos2JXzm7Kf0dZ h71ponw5zFxJtR39GXrv1AEU2rnVYEMQN4r9uWLexZvGbokvpJ2IUAk8M9mWbhkDznW1 io/VCUzw0aO5wmUhIMWdor5i6vGD8J4psgG0gy+nDkiOuSzrN8twq5NPSqU47kOP99W/ lIvw== X-Gm-Message-State: AOAM5331kxQbY8HY6p8v06kgdxJksCljw9mEDxWSUo3L/v97HscROUo4 qGmhAU4dXSdTJg2MzbPTLERZPZQes6Y= X-Received: by 2002:a05:6214:230d:: with SMTP id gc13mr2291506qvb.68.1642038780313; Wed, 12 Jan 2022 17:53:00 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.52.59 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:52:59 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:12 -0300 Message-Id: <20220113015101.4-51-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 050/281] dsicin: 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: PXmmSXnUuCIP From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/dsicin.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libavformat/dsicin.c b/libavformat/dsicin.c index 481f365a53..13ee9f87bb 100644 --- a/libavformat/dsicin.c +++ b/libavformat/dsicin.c @@ -132,11 +132,12 @@ static int cin_read_header(AVFormatContext *s) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_CODEC_ID_DSICINAUDIO; st->codecpar->codec_tag = 0; /* no tag */ - st->codecpar->channels = 1; - st->codecpar->channel_layout = AV_CH_LAYOUT_MONO; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; st->codecpar->sample_rate = 22050; st->codecpar->bits_per_coded_sample = 8; - st->codecpar->bit_rate = st->codecpar->sample_rate * st->codecpar->bits_per_coded_sample * st->codecpar->channels; + st->codecpar->bit_rate = st->codecpar->sample_rate * + st->codecpar->bits_per_coded_sample * + st->codecpar->ch_layout.nb_channels; return 0; } From patchwork Thu Jan 13 01:50: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: 33336 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp18635iog; Wed, 12 Jan 2022 18:02:53 -0800 (PST) X-Google-Smtp-Source: ABdhPJyt9J6YBnkuVmXdKCsD9ZCkW+FfVLjIh6sIFNTKVGmVUZHvesEePpg3ONIB52NUkYMSCybA X-Received: by 2002:a05:6402:1e91:: with SMTP id f17mr761955edf.229.1642039372907; Wed, 12 Jan 2022 18:02:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039372; cv=none; d=google.com; s=arc-20160816; b=GUqH9y4jp8cMBEUJoGFmpmoQocjXqYraBnTDeXOihUx02FQfzfCpKTUnyc44D7xlbH NkpC4rukm4l3GI1FDHEwTkGyCOH191xE7RLIkEFpG7vzvqEI/mdz7tSrhMShLCgfQzxu qrS6iWlRIblEv2iEtuDwO8lICCzVor87hTs9rdPGD6FNatYi1m/OvmtFWsdkXUjkPHJ5 bEf/Dhs/6t1yPmbh4SCg9e2NVVM5BRhWmqqNGi+MZi09qP39//+AGXQIU1g6ZAaAFjmm JN5U+FaYZJ/YySdAEr5NzSBvwDNyvrBjhHdynHC7jSPBKOZbJAZ00S6EGk0dUxpmuF/5 4WdQ== 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=s9x+1SNippPLaxFCrmuzWK0GAu9LIeDE/ZRIVMjZwso=; b=jivlxgXRc4l543WFW5lb45vTb0/kdC4Qv5TkYdGO5jIakwkL5AoI/YZvperJO0Au3U D6nAB5s2y51POEHr2JTS6JSOnzV9Q/mkrzMsNWegcquwQR/CNO6RPtE0StF3QAyelp3o N6zf1jmY1x36/zzwF4tXG7Xh4cCPcIeQ1SV4jhlmra30dXCNyHCq33iek3SyIRIVTD/D dn4StzFJy6diCpx6I8bcOXAnG5DagUkltR5RXDGuDqozMW5KkTPJTvmMd/wM33g+APgP fAC3R8hJrnk0p+Tcj/jhymY0ZwccjZMdaZ3DFzvxR8cCXUyOmjpNwteU4hkjmGqZspG3 NQsA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b="UiVK/qOS"; 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 c13si960879ede.207.2022.01.12.18.02.52; Wed, 12 Jan 2022 18:02:52 -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="UiVK/qOS"; 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 C11F368B0DE; Thu, 13 Jan 2022 03:53:06 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f53.google.com (mail-qv1-f53.google.com [209.85.219.53]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E01F068B0D0 for ; Thu, 13 Jan 2022 03:53:02 +0200 (EET) Received: by mail-qv1-f53.google.com with SMTP id hu2so5077104qvb.8 for ; Wed, 12 Jan 2022 17:53:02 -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=uSyHSQYuR1ZC315rqoBCcOVe0eeTkx/NxQTujpL6ssY=; b=UiVK/qOSCAGUsvSwc+TGmBG2ViVQ1Pkt/PiZIBDrYt/hcJEfyHnLFBOuBpBs4/MlWt PxC2fw6gPgBP6r4lRV+vsv3dC+/3/QCV7rrSzAUWxKRNAWWQ+ORxTFj4Gjtt6I7E/QqH rgLhkaFJWe2eA+OVM2k6uGL/o+jl0BK8lWh0UYmmCxjEQ7h/lhwbgxbvBIzN6us5uOYQ uAhnqwkY1n1yVcfjjix13kJxjmIlGSoj5mvaa0b25gOFzFiPTCgo3nib5Pi+G7OVxy2o 4uRS30sdTYwOtS1+nxalZcXMFOTcTtQdGyK7GqYAwf3b8O5oOrRHcjrq6f0tDh6QvnQl FPNg== 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=uSyHSQYuR1ZC315rqoBCcOVe0eeTkx/NxQTujpL6ssY=; b=rl6Wlbs/1L+h22DBxuU6QfpzmjlNUnt3jsQOQ8rQO/RcM0J2VeAn9Gq6MHrmLtkOBe RpDKmL8JV4z53cRmLoRHITz3B6MY9TuGTkdPiAWVwxeWAmSVAEJnBXesoJqzRPUX8EJ1 6djLrJCrH6bqbH9iGYRT1DHmia7te0M/nWqLbLgnMGqieXRh9Fsb4q7EbDQA/lvJB/ev UD7+xb1knmY6lu9RjwjXWgU6yIqHssn2Mlr6gHwnBdM0SsjjNZ2vL7RQD/mqlR71dqxm aMksI4uSeatqYpNqFvl4qkgsgbP/u5i00DhuGAbVQuk0rjk7xZijJuMZGXM83hz7xAm0 kWZA== X-Gm-Message-State: AOAM533W6zH+e0nI50uYMeypC9gPDmWDMH5ofQLO63B1pk+yBn20gKy/ xEJPL8XqBuLNsUC20ojj3b2siNBukTI= X-Received: by 2002:a05:6214:2349:: with SMTP id hu9mr2128161qvb.93.1642038781519; Wed, 12 Jan 2022 17:53:01 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.00 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:01 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:13 -0300 Message-Id: <20220113015101.4-52-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 051/281] dshow: 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: IKlXlmBgIKMb Signed-off-by: James Almer --- libavdevice/dshow.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavdevice/dshow.c b/libavdevice/dshow.c index 3a16f3720f..c0a060dc0c 100644 --- a/libavdevice/dshow.c +++ b/libavdevice/dshow.c @@ -1632,7 +1632,8 @@ dshow_add_device(AVFormatContext *avctx, par->format = sample_fmt_bits_per_sample(fmt_info->sample_size); par->codec_id = waveform_codec_id(par->format); par->sample_rate = fmt_info->sample_rate; - par->channels = fmt_info->channels; + par->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + par->ch_layout.nb_channels = fmt_info->channels; } avpriv_set_pts_info(st, 64, 1, 10000000); From patchwork Thu Jan 13 01:50: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: 33337 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp18802iog; Wed, 12 Jan 2022 18:03:05 -0800 (PST) X-Google-Smtp-Source: ABdhPJx8ObCe5Yk7f2y0DhdcTsBxSD1FyhriHMJw7UEdOv0nT+IRVqvTTDUw+iD8oEbB+lRiMdcw X-Received: by 2002:a17:906:2890:: with SMTP id o16mr1876489ejd.99.1642039385478; Wed, 12 Jan 2022 18:03:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039385; cv=none; d=google.com; s=arc-20160816; b=t3QHX+KTp3bUp8FRdMPz3AoK8uDjqcZTx1oCxHkRZixl18rki2zsuzQrDgoqE+4XTH +JOXqxXHJ5doZnZ23bljMpeOYB1u12fNaT02laI+ptq3AMlWHM5k2gELRiUzrRKhuaJK VhmpKTBz6zHfl15/jl78IvAGugkw/vUfv6Vc+BZeU4LunIm0rxmdFzlkedfSRUDKM89E 7FN+hDuMwGTZ1qeM17e8jdteRXaDm0kNvuCLtPd/dYuzhG6rgxMw//6/TId4RLw1tlYE hSEx7SAEumGNCyeNQzVEF/rHqc4dxz/EeeJXMUZL9BdrJmNDIQyEDX5dfw8qd/B/1ejN kSnQ== 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=PL6iQu6IQD+CMCkgtoEbpYOGYSVStZzDpfKQD9++JyI=; b=h+BM7vUs/Oiamy9LdprfWPb/XT1EXAcO+aFCHDJ4tRAmq298P+vVpXTq+yLlpy017I W3P4j2e7fjrmgZQOcgDN9p5OLoovsL3/8UARF7+NSYSod8N7+3SLMfafqHU8fKfe7ICc XTU6mx0Ot2uWfwMlDkn7+C9p9I/zgTJjzyGHaBblEQ3LyYP+V0pgBGd2O/kiewrFtHI8 ONMstahGe68P1Rp1EzF1Fw0v/CzqDBD9XQ9dm9R4XhR4b43S0DHUqn64SMkJOsVm+fuS EI82KQDWbsecWqfxcIOp9fAS266z3PwYh3+yN5LSWKQtq1AklsJKnCyMQTbO1a63oAvf gdJw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=SDWs095x; 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 l8si796065ejn.426.2022.01.12.18.03.05; Wed, 12 Jan 2022 18:03:05 -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=SDWs095x; 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 A9A4068B0C5; Thu, 13 Jan 2022 03:53:07 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f171.google.com (mail-qt1-f171.google.com [209.85.160.171]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1B67E68B0D7 for ; Thu, 13 Jan 2022 03:53:04 +0200 (EET) Received: by mail-qt1-f171.google.com with SMTP id g21so5194396qtk.4 for ; Wed, 12 Jan 2022 17:53:03 -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=BLgmxqbVOFlWSf7vKmEP/uT0OpNSehJJPQx64XWWBPc=; b=SDWs095xAgd8x7T00Ab2tBtY0O3hcTOootTNwOOtaaOUKNF67KiOcbriYuZUN7VXDs HifMd//yc50/5errghi6fHqYEv7zLad0zoxGrvucaR4YL7mtT4EKK+yJ+Cyq4/Ngs8EQ tAzxu/NE8MuA+RsHiJv/2gRJem7yOQhpAncHZvQqflQW2TRLzTHB3rFTJaRHm7QQIBN8 lSLWxQuDQi7bNK1mRnTzzAAgw7CJQntJZS9i6fMqW3ZXKWReRuT376k8GSoh2wpBSaWo sWIOQddDsLFdVew9UUJ58zJaQSYo/efmpKwdByYP3nc3oXqI9ywbfuXOXclkpEBklE9x 7ESg== 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=BLgmxqbVOFlWSf7vKmEP/uT0OpNSehJJPQx64XWWBPc=; b=LFozNcZBHPW3O9IE2s6rj2TilZLotNTgH5i/8FEoaEqAO2727Mjj9qJWmTI76yu3++ 8h7vcQ8NnQWpRIlZo9Dcc2Rz0kmtJ044pU5p2wmIT2l/XHyi9FVGzQXOZCZBezCiARUq Px/fg6smS3xea5hNVHVwma1JCTjsM7QO0rrct4GLumVUiaUSTP2T4BKi5V41sq4bBmdU t4DuN7fnEakGkYSvugGQLihht8W0kF4pw7gDW0a8IebMnY26MQX7/CdrjDnL0NRS42TB j4voBvbcGmJNtY35T+9ZG/5G2aJ7GPaShmLTA0tbuOu5YCcBynKNt2o5sFerBiVm+T6H tXTg== X-Gm-Message-State: AOAM533LrsBS47SRWKEvBFZK7hNFLzWFBiyujEgy8qRe8T1sYtIUWKRL Wn+rmK+qxJVJKVvazj8yytmth/A9+VE= X-Received: by 2002:ac8:5a0d:: with SMTP id n13mr2026012qta.261.1642038782722; Wed, 12 Jan 2022 17:53:02 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.01 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:02 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:14 -0300 Message-Id: <20220113015101.4-53-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 052/281] dss: 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: KMX+qD1NiZ1q From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/dss.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libavformat/dss.c b/libavformat/dss.c index ee3a099a95..d619ea00d7 100644 --- a/libavformat/dss.c +++ b/libavformat/dss.c @@ -155,8 +155,7 @@ static int dss_read_header(AVFormatContext *s) } st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; - st->codecpar->channel_layout = AV_CH_LAYOUT_MONO; - st->codecpar->channels = 1; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; avpriv_set_pts_info(st, 64, 1, st->codecpar->sample_rate); st->start_time = 0; From patchwork Thu Jan 13 01:50: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: 33338 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp18969iog; Wed, 12 Jan 2022 18:03:20 -0800 (PST) X-Google-Smtp-Source: ABdhPJzSwf61PYvBooRFiuDOpKUHOG61/U5C4iDi0sLW07gsP03V12Hss8ELsxN6Pf7U8OmG4yuC X-Received: by 2002:a05:6402:2787:: with SMTP id b7mr2258700ede.162.1642039400064; Wed, 12 Jan 2022 18:03:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039400; cv=none; d=google.com; s=arc-20160816; b=kxr1LI04uFaDd3VzNvg9txh7P1OCzRQnShHPvYDAT92T4OkIg3XfbssgF5bkV37zQX Huy5zRwf/69U/uw5tpdGUqw5RvH/prEEYdDu11kS5JEknDhWQL1a6BoT0u9nQIVjh7m3 E4FgKtcXmqEwF9ZE+hpyKsOQxHdnWaWtWVk5/Gd0NeNPdOdXR3idINQDgotmF2qVT+V/ 2W1gWyPUFnTtHCv7k+DRfzsMLPQgSM681DgkZ+j2MrakBAHf5Jboxvq9uwuT73IpqXV5 W0w8+1dnsHkzBZ8J5un2uelvRbg3NrT4RbaYJZ3yB0r+bcOtsWuBPRQnX2/Xvqi2wAfJ WXkQ== 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=fAax/NMfaaPn9jb3poGsBX1O5cbiKBljmtqApttRfqQ=; b=KpgbxTfWEm8AyEAhoVdPMnapi1s0cCQPIHAQf0ymOWQalWyzFWnCYCkjAntnpYaNlD UGe6fagwVmSKoBkATWJDnmDRomnoQ/K1cWAggTuU7a44czNzIuCp++xUtSc1pBStc/No irPCSvOGfEpqvAVYuZosQYsouvSJ45IbkJz+OkJEgYvDLanHLDseCsKRTE0qRdDaLH5Y UbsvkOjyaiWRAY4cD9iRPAE6ZUVnNQTptf0okLd5Yg4WoAMNcTTBpzxfgA2ch772Uyan T9o2oLi20iQ0pC6dSnCw4Q+cpib6jzp6rTA+uVazt2V6Hqfj5Uxwg/IRhVS/w1FtMUrG Otzw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=U69Acyls; 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 o5si779292ejy.62.2022.01.12.18.03.19; Wed, 12 Jan 2022 18:03:20 -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=U69Acyls; 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 8F85568B036; Thu, 13 Jan 2022 03:53:08 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f173.google.com (mail-qk1-f173.google.com [209.85.222.173]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BE52A68B0C5 for ; Thu, 13 Jan 2022 03:53:05 +0200 (EET) Received: by mail-qk1-f173.google.com with SMTP id z10so1202247qkf.7 for ; Wed, 12 Jan 2022 17:53:05 -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=NWV7Yo2d5R++4InoGBcGe8GRs4S4hrv6kb3qCTi6+ao=; b=U69AcylsJnn2PCCmyQ7Q/s95/tfL/kUNh55d3VeGF1uVaZdWub3VaE7e/XvnDn2IPt L/LkEdx3acq0A6a09uY3DZ79T52h/fxPbsTzwsC0GKKRdpE4ndX9FMhJKQXdtRZpCWLd zyBeXAI4tTRKffbz1uGwCD40TRVCDKYVOLJQsBwDegCf1xmyBzNRG9cGldFrAElPsHhP GwkaEMXSwctl4TFfM/OnL4z78fGQqV59tY51dcXzoGh0LjZPlwqW9hyhoCTn5WxHdooR qZnwUV+OIJCOhk8bNlUrwLFJjfIndh3T0Hohz4MiasPbGzGi3pB+2qr/PWky37Ce8AR0 deAA== 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=NWV7Yo2d5R++4InoGBcGe8GRs4S4hrv6kb3qCTi6+ao=; b=x4wxyv52Rf0T+J1djh3BAVkspoCAPVF9LQR/tV3G2+YbxPj3rAbBwtqn0LbtZ0jLiX ZhFKdEyU41KkG3LmSDFO8ux563OL1v9oBv/Wz9vLjFpyEdQySevhT+0Ce9qwZqx+9Hct HyPTXIa1TBPonqpWMErCalYqtLpKsZsCinOK+alyq3wgD3C0w1XZ1KmJCDEZKBlCZsqC VujqdziyaEI3Nj6kUPW9Xlva5SxMzbYAuDFqxmH/HUbBASoP6rQ4+vGOMkd9aR09b1XI AEDdukulhFZgn87Fxo8b8v37Za6v5/FMxEwVxAPPnZrWzy/3gfnwgSaLs1LDhNHpw596 PBmA== X-Gm-Message-State: AOAM532guQh+GCXPA58UmxikMu2yAcp3xbAmtPDn9Z8rDFMjOYH7UDqS wLEgudc07cHIS2+xQxEpRduTwjLROdw= X-Received: by 2002:a37:ad0c:: with SMTP id f12mr1824497qkm.671.1642038783919; Wed, 12 Jan 2022 17:53:03 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.02 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:03 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:15 -0300 Message-Id: <20220113015101.4-54-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 053/281] dsfdec: 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: YJNdOfUkTEeo From: Anton Khirnov Signed-off-by: James Almer --- libavformat/dsfdec.c | 60 ++++++++++++++++++++++++++------------------ 1 file changed, 35 insertions(+), 25 deletions(-) diff --git a/libavformat/dsfdec.c b/libavformat/dsfdec.c index 40c8210a0f..3c00b07ff1 100644 --- a/libavformat/dsfdec.c +++ b/libavformat/dsfdec.c @@ -38,15 +38,15 @@ static int dsf_probe(const AVProbeData *p) return AVPROBE_SCORE_MAX; } -static const uint64_t dsf_channel_layout[] = { - 0, - AV_CH_LAYOUT_MONO, - AV_CH_LAYOUT_STEREO, - AV_CH_LAYOUT_SURROUND, - AV_CH_LAYOUT_QUAD, - AV_CH_LAYOUT_4POINT0, - AV_CH_LAYOUT_5POINT0_BACK, - AV_CH_LAYOUT_5POINT1_BACK, +static const AVChannelLayout dsf_channel_layout[] = { + { .order = AV_CHANNEL_ORDER_UNSPEC }, + AV_CHANNEL_LAYOUT_MONO, + AV_CHANNEL_LAYOUT_STEREO, + AV_CHANNEL_LAYOUT_SURROUND, + AV_CHANNEL_LAYOUT_QUAD, + AV_CHANNEL_LAYOUT_4POINT0, + AV_CHANNEL_LAYOUT_5POINT0_BACK, + AV_CHANNEL_LAYOUT_5POINT1_BACK, }; static void read_id3(AVFormatContext *s, uint64_t id3pos) @@ -70,6 +70,7 @@ static int dsf_read_header(AVFormatContext *s) AVStream *st; uint64_t id3pos; unsigned int channel_type; + int channels; avio_skip(pb, 4); if (avio_rl64(pb) != 28) @@ -104,15 +105,22 @@ static int dsf_read_header(AVFormatContext *s) channel_type = avio_rl32(pb); if (channel_type < FF_ARRAY_ELEMS(dsf_channel_layout)) - st->codecpar->channel_layout = dsf_channel_layout[channel_type]; - if (!st->codecpar->channel_layout) + st->codecpar->ch_layout = dsf_channel_layout[channel_type]; + if (!st->codecpar->ch_layout.nb_channels) avpriv_request_sample(s, "channel type %i", channel_type); st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; - st->codecpar->channels = avio_rl32(pb); + channels = avio_rl32(pb); + if (!st->codecpar->ch_layout.nb_channels) { + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = channels; + } else if (channels != st->codecpar->ch_layout.nb_channels) { + av_log(s, AV_LOG_ERROR, "Channel count mismatch\n"); + return AVERROR(EINVAL); + } st->codecpar->sample_rate = avio_rl32(pb) / 8; - if (st->codecpar->channels <= 0) + if (st->codecpar->ch_layout.nb_channels <= 0) return AVERROR_INVALIDDATA; switch(avio_rl32(pb)) { @@ -123,14 +131,15 @@ static int dsf_read_header(AVFormatContext *s) return AVERROR_INVALIDDATA; } - dsf->audio_size = avio_rl64(pb) / 8 * st->codecpar->channels; + dsf->audio_size = avio_rl64(pb) / 8 * st->codecpar->ch_layout.nb_channels; st->codecpar->block_align = avio_rl32(pb); - if (st->codecpar->block_align > INT_MAX / st->codecpar->channels || st->codecpar->block_align <= 0) { + if (st->codecpar->block_align > INT_MAX / st->codecpar->ch_layout.nb_channels || + st->codecpar->block_align <= 0) { avpriv_request_sample(s, "block_align invalid"); return AVERROR_INVALIDDATA; } - st->codecpar->block_align *= st->codecpar->channels; - st->codecpar->bit_rate = st->codecpar->channels * 8LL * st->codecpar->sample_rate; + st->codecpar->block_align *= st->codecpar->ch_layout.nb_channels; + st->codecpar->bit_rate = st->codecpar->ch_layout.nb_channels * 8LL * st->codecpar->sample_rate; avpriv_set_pts_info(st, 64, 1, st->codecpar->sample_rate); avio_skip(pb, 4); @@ -152,6 +161,7 @@ static int dsf_read_packet(AVFormatContext *s, AVPacket *pkt) AVIOContext *pb = s->pb; AVStream *st = s->streams[0]; int64_t pos = avio_tell(pb); + int channels = st->codecpar->ch_layout.nb_channels; int ret; if (pos >= dsf->data_end) @@ -173,19 +183,19 @@ static int dsf_read_packet(AVFormatContext *s, AVPacket *pkt) if ((ret = av_new_packet(pkt, packet_size)) < 0) return ret; dst = pkt->data; - for (ch = 0; ch < st->codecpar->channels; ch++) { - ret = avio_read(pb, dst, packet_size / st->codecpar->channels); - if (ret < packet_size / st->codecpar->channels) + for (ch = 0; ch < st->codecpar->ch_layout.nb_channels; ch++) { + ret = avio_read(pb, dst, packet_size / st->codecpar->ch_layout.nb_channels); + if (ret < packet_size / st->codecpar->ch_layout.nb_channels) return AVERROR_EOF; dst += ret; - avio_skip(pb, skip_size / st->codecpar->channels); + avio_skip(pb, skip_size / st->codecpar->ch_layout.nb_channels); } pkt->pos = pos; pkt->stream_index = 0; - pkt->pts = (pos - si->data_offset) / st->codecpar->channels; - pkt->duration = packet_size / st->codecpar->channels; + pkt->pts = (pos - si->data_offset) / channels; + pkt->duration = packet_size / channels; return 0; } } @@ -194,8 +204,8 @@ static int dsf_read_packet(AVFormatContext *s, AVPacket *pkt) return ret; pkt->stream_index = 0; - pkt->pts = (pos - si->data_offset) / st->codecpar->channels; - pkt->duration = st->codecpar->block_align / st->codecpar->channels; + pkt->pts = (pos - si->data_offset) / channels; + pkt->duration = st->codecpar->block_align / channels; return 0; } From patchwork Thu Jan 13 01:50: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: 33339 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp19134iog; Wed, 12 Jan 2022 18:03:36 -0800 (PST) X-Google-Smtp-Source: ABdhPJxk3/pJAaefxGpX6WW9aO4qY02/j9kQYIBZ22Z5fitXTH6icKoLiTziO66GItSbZtKz+7G+ X-Received: by 2002:a05:6402:5212:: with SMTP id s18mr2273220edd.359.1642039415859; Wed, 12 Jan 2022 18:03:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039415; cv=none; d=google.com; s=arc-20160816; b=xMPVKZLUiK3eqPOGTmbpdO3X8JlbQss9e0JIuGI3GYuL5K3U+TyJ0vRWpXIeG80lD4 1yddUiDLwxOoX0i+WGbKer1desMogoaKsqVxnkTN+aYIO80Yw92hM8pTuoEyaUx4oPp5 1y9XdPqSef6OKCgaXErMoD+4TMgeH9zxEvGyXeOHfoHquQL7P52lwsvjlpafZ/ocU423 ra0KivAHyeyDjJlX0F+oueiRjIQ2ZeUKG/R+Zc3RbgYdOwydkRCyXvezf6Fe4cJgINwm +zoIrpzPcJ62tCXrsuf/NyQVbjXPXcUtWyeDS/rULdJFkfMlstfAlajhQGWSLcewkr2F kdLg== 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=Z0UNMaVEOs4FK4MBjOBPTZfnPpKF2nmU9habfjtxl6Q=; b=q/3rsUObe+NWBZ5+d9KDEXdozFrAVbo2YzaVnALk7KxrGZnMC3MakI1rUMNmVJtMYV 4ZuxB4AVVzPLG94YBrmiXkffXIvoNL1cKBoVIwUgSH3Su/kgiLSVhZnLhUuEYsqBCG6B ztl6z+A1jMALw8T6InvJtmZi6q3rVq9cPi3EINys+IaBCB1VmYwG1K1uyWmCQk677QmZ G0EMXIvHNhkLEs6WIRUZKSPDU2Ly2HbiAADLQrwCIYZX406uMiZU1dnq5DxfBILoSbvR iVbF6awFYEsVflQlfuylbYH0EUrHBA6M6d+OKLEC2gz5mMylN5DYIM5IG+JNpF0agefk RF8g== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=K+6RnwVj; 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 hr33si892905ejc.247.2022.01.12.18.03.35; Wed, 12 Jan 2022 18:03:35 -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=K+6RnwVj; 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 99E1168B14A; Thu, 13 Jan 2022 03:53:09 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f170.google.com (mail-qk1-f170.google.com [209.85.222.170]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C19AE68B0DF for ; Thu, 13 Jan 2022 03:53:06 +0200 (EET) Received: by mail-qk1-f170.google.com with SMTP id b127so5626466qkd.0 for ; Wed, 12 Jan 2022 17:53:06 -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=x7kMDdiYnyfNeBQWx7bmyitW9Pkvg+Kdvs3M+OmowuM=; b=K+6RnwVj7E/Cu+l3hNYfRbdMT+tu1uHcgnxA5FvX2ny878q53hgASMn8XfOGl07alk qJU1PKk8AO1RVQAyZcAEtTNNVTIKMjrubpuY0VROFNM5MYrtB6HaLz/ek4MihixRej35 EktA+hMxAmZ1WU5yxX4N7dI/7jm1P8oNAHxA8tNGt3a8fdVsKet6fyibRacyrmQneyRd CEgXs+srXuW54kxcPVuiaUBUggIHTXCqcy/pTIvBYwFWQGOrYTzsqJd9KfmKvCw7xWl7 rhXKRQltNvOny8vl0jYZs/9LRuvx5MDIuBuxE9gEakDqVgVzQ5XGTx1EFwIICpZnWosU vjHg== 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=x7kMDdiYnyfNeBQWx7bmyitW9Pkvg+Kdvs3M+OmowuM=; b=6gcxG4dqWacTq6A+y3TP/sWtujxtWs/fuxTB7jChVtKmkHk4mswyNzH75NydTQFKdV GTOYR0uLaYdBUq0d7yOylK+GXC0bTf3EUVCzjczj3zFwnenYR+lrbum6QW0DhAn/Cyi2 RrXJPMOJHz1uAfyGnun84qwwKW05qnyD2dJN38lC2YEgKOfYoigTVCLutzwG9+vq7d5W QFCAJ19qX6pBF5eVqklmPBn6VlyR1BN5CD8ph1VWURmVUc0EhRARqRXF6K+54o/Qd2Vx sd2HzPoQ1wwbZass2/voB65A7vKXuUdmZT/BDjLWJQrLJzJtc3hd05WYwx+utkF+TpvJ S8KQ== X-Gm-Message-State: AOAM5301+VPeZEqoqI9wgUZ3G9KZ+tLfkiFvmJbDdFrvrh8dMXix+Jgc lb8VECzHTQWIt/XrOxkQYKdED0dcEps= X-Received: by 2002:a05:620a:1098:: with SMTP id g24mr1158275qkk.123.1642038785129; Wed, 12 Jan 2022 17:53:05 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.04 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:04 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:16 -0300 Message-Id: <20220113015101.4-55-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 054/281] dv: 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: l4A1h+I5OlCS From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/dv.c | 3 +-- libavformat/dvenc.c | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/libavformat/dv.c b/libavformat/dv.c index 77a6ede37b..1dadaf6e62 100644 --- a/libavformat/dv.c +++ b/libavformat/dv.c @@ -281,8 +281,7 @@ static int dv_extract_audio_info(DVDemuxContext *c, const uint8_t *frame) c->audio_pkt[i].pos = -1; } c->ast[i]->codecpar->sample_rate = dv_audio_frequency[freq]; - c->ast[i]->codecpar->channels = 2; - c->ast[i]->codecpar->channel_layout = AV_CH_LAYOUT_STEREO; + c->ast[i]->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO; c->ast[i]->codecpar->bit_rate = 2 * dv_audio_frequency[freq] * 16; c->ast[i]->start_time = 0; } diff --git a/libavformat/dvenc.c b/libavformat/dvenc.c index b76539b59f..6e5e6c6a36 100644 --- a/libavformat/dvenc.c +++ b/libavformat/dvenc.c @@ -329,7 +329,7 @@ static DVMuxContext* dv_init_mux(AVFormatContext* s) if (c->n_ast > 1) return NULL; /* Some checks -- DV format is very picky about its incoming streams */ if(st->codecpar->codec_id != AV_CODEC_ID_PCM_S16LE || - st->codecpar->channels != 2) + st->codecpar->ch_layout.nb_channels != 2) goto bail_out; if (st->codecpar->sample_rate != 48000 && st->codecpar->sample_rate != 44100 && From patchwork Thu Jan 13 01:50: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: 33340 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp19299iog; Wed, 12 Jan 2022 18:03:50 -0800 (PST) X-Google-Smtp-Source: ABdhPJwnK013nrbjqU+8T9ezBszzs0qlG74vuMiZkLypqum0Pk6R+mVzqPvXTx3CzWeBYCFeiA+2 X-Received: by 2002:a17:907:7283:: with SMTP id dt3mr843657ejc.303.1642039430432; Wed, 12 Jan 2022 18:03:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039430; cv=none; d=google.com; s=arc-20160816; b=mSPAwhBEAXSSNwkMUVeuBUM/Uhzucvnhf5jfQLKpdxVAzpF3AgD4djj5AGJUC/nLvJ dKO/PF+YyW9LY23UkM3OujJwqhILpQ/5R8dgWz2Xt4YztIGgVfcJ+9MU970KIVelO6EV Vy94AkdwxXjNK/i0UHZ10ithpWgtHre0uDsPXbtRNjV7CqL5G0EI25AkmdNQFYz6IN3G 64xPZ4u+Vhsvjlv8x2qABasEUYQWpMsimKm+b5+M/9h76/DrN9NN0fABIlA/JFd3Ibty wEo1PPunNPzeDXDsXm5HCisfnpqnIPIzkrD5sbOieti6DURAlQkYhV63Y/ubn1NKk1s0 NwWA== 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=Hk+TO1J0pfxHXTYg8/5BRL8Da7X1iP/uAULM/v7ij/Q=; b=dd15Sq5RcZ+VeBrsjHNR4NbjI5ixv7iqZl0QhFbTuo3YdKbeJVcfzgipKC+U53mnF2 //eDzlX75ELo+AtTdoa7krZBxClbgIeEvw8qe/ORF5EncqE2EkZXXTXEqVavyL7kbufK 93hDmr4+KwK9ff7gHcHu4DZpVdDGBZOez9lRa7IHMOL71Sy5y7aqgVxaEN1l4RuD6lYD eCcuXc7mRY2ykxjn+fsP3dZ20sgo71G1+1WWB+JmXVXfohUVmkfpASTl8JApGJIL4UPA PACxRMH/+oc6Y0/o+v8UnIFi/vhGImjZnFh1o78c+ghzlO+s9a8Y8QgWfQgC8r/DLC3T h+xw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=M3HdIp+J; 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 hd32si844028ejc.596.2022.01.12.18.03.50; Wed, 12 Jan 2022 18:03:50 -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=M3HdIp+J; 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 8174468B157; Thu, 13 Jan 2022 03:53:10 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f50.google.com (mail-qv1-f50.google.com [209.85.219.50]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AFCF868B12C for ; Thu, 13 Jan 2022 03:53:07 +0200 (EET) Received: by mail-qv1-f50.google.com with SMTP id hu2so5077266qvb.8 for ; Wed, 12 Jan 2022 17:53: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=9JnoyWaeDAfUwrmsmMM+YKVVFSGXkGS3A58vs48kvX4=; b=M3HdIp+JSJjWXi3pIiSkbPgX7fHHhzEHhpD9lehVtLJ9E0K1+OEzuEba3tGYAK7OsD 58QBYfcGptLCCJfbr6j/g3cYVGcRdwKdMi+0Tm9334gjdGZ5+C6pNBfpPveQN+XXDcKL D5oFYZxrJ7Tp9flF0WxCX3fvDmZ3PSTz4RddS2Vy1lGFtWlP3EGTL2QRZa9xWzt/GTjL OIIZ0XzQ17MOcPdsmhrp3XLW8rbz2HzBmTej/7Xt/2QcT5mOUSdJX3Du8KgD9hU+qgEM b0O3oLC+dW//ny9EdAxEx+oUMqtt2hU+VvAgZxENpg3IjUu2V606Ag8JUXmmsmIMQ8Oh CCjQ== 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=9JnoyWaeDAfUwrmsmMM+YKVVFSGXkGS3A58vs48kvX4=; b=cgJPR2CriVjiY2KODsmj8JolXwcy8BGgQpQri27i/37wPG0lGeez9k3uoIZCdlqqER EjBwpKq+bNSet/3+ENenBHpzaq1zM6O6wTT3GWV4PfYot/cV6t+nGrWJ6sFJJHPfHY5W WQm2WQPqLrPU62leVZpfQY/iSi67nklfk52Dvn0Q1IDRPQvL4WM2seA1v8+xwqaVU0O1 IYykayVjG0fAh8Hxqk3M0XWL+Q4fbfwkhhQYo5iMs1ExUE1WvxZV/Z3VGOJnKVRpMO/K Hy7ugAJRlt85w83rnJINrHynBUBtq5uzHWg68HpLEtIGUpEx+Jjekc135XoAfBcegAhh SumQ== X-Gm-Message-State: AOAM5330o5hAiMBNgRXwFiSYl3+TgWZbMmjaKfLZ5t886DYfj6wQukuE MydBwLbCFs/INTgceE5iGPhvhewvH3I= X-Received: by 2002:a05:6214:c85:: with SMTP id r5mr1755002qvr.90.1642038786322; Wed, 12 Jan 2022 17:53:06 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.05 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:06 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:17 -0300 Message-Id: <20220113015101.4-56-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 055/281] eac: 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: WxUhEAboUPyz From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/eacdata.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/libavformat/eacdata.c b/libavformat/eacdata.c index 0ad1c937a9..ebc98d274f 100644 --- a/libavformat/eacdata.c +++ b/libavformat/eacdata.c @@ -32,6 +32,8 @@ #include "avformat.h" #include "internal.h" +#include "libavutil/channel_layout.h" + typedef struct CdataDemuxContext { unsigned int channels; unsigned int audio_pts; @@ -52,18 +54,25 @@ static int cdata_read_header(AVFormatContext *s) AVIOContext *pb = s->pb; unsigned int sample_rate, header; AVStream *st; - int64_t channel_layout = 0; + AVChannelLayout channel_layout; header = avio_rb16(pb); switch (header) { - case 0x0400: cdata->channels = 1; break; - case 0x0404: cdata->channels = 2; break; - case 0x040C: cdata->channels = 4; channel_layout = AV_CH_LAYOUT_QUAD; break; - case 0x0414: cdata->channels = 6; channel_layout = AV_CH_LAYOUT_5POINT1_BACK; break; + case 0x0400: + channel_layout = (AVChannelLayout){ .nb_channels = 1, .order = AV_CHANNEL_ORDER_UNSPEC }; + break; + case 0x0404: + channel_layout = (AVChannelLayout){ .nb_channels = 2, .order = AV_CHANNEL_ORDER_UNSPEC }; + break; + case 0x040C: + channel_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_QUAD; break; + case 0x0414: + channel_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_5POINT1_BACK; break; default: av_log(s, AV_LOG_INFO, "unknown header 0x%04x\n", header); return -1; }; + cdata->channels = channel_layout.nb_channels; sample_rate = avio_rb16(pb); avio_skip(pb, (avio_r8(pb) & 0x20) ? 15 : 11); @@ -74,8 +83,7 @@ static int cdata_read_header(AVFormatContext *s) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_tag = 0; /* no fourcc */ st->codecpar->codec_id = AV_CODEC_ID_ADPCM_EA_XAS; - st->codecpar->channels = cdata->channels; - st->codecpar->channel_layout = channel_layout; + st->codecpar->ch_layout = channel_layout; st->codecpar->sample_rate = sample_rate; avpriv_set_pts_info(st, 64, 1, sample_rate); From patchwork Thu Jan 13 01:50: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: 33341 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp19456iog; Wed, 12 Jan 2022 18:04:04 -0800 (PST) X-Google-Smtp-Source: ABdhPJzvPSqZIN7faCsCDj0jke6b8g+VeC7D2nCvdMvIcPGUG7nCQSPtBoEOnR8w/WprwO2gI0Je X-Received: by 2002:a17:906:1585:: with SMTP id k5mr1837449ejd.83.1642039444433; Wed, 12 Jan 2022 18:04:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039444; cv=none; d=google.com; s=arc-20160816; b=Auxzg7eceL+Y4KzTzLPBs4LoHrEH3cy3kH5fFn1MupKo7F2Dkv1BfdkcXg75sZ3c/B JpDDHnlBwFFZ6tjzoQhphtDDnlzTA+S3lOFCEasaL0RpIDXCRzD0UTQWCsQDs/Ka8XIj GLnKpuD8YuPP1bMNYqN41qe8TDTcykR8M4QS6JfP6gm3/cY/wYZhuWxunGlZIjovy3W+ fjbSOCBpMS1xti9oNRenPoWAd0QUOjk69+kV7wyOpPeh9n8cIDqiYnMvAJ9Fa0nvtUgK lyN9BPXAFhyINeg8geVIWpoSGqeYo1R6D5pYcOpXTl9VhS566TxsBcwCaDmSKyGDduxl fAyw== 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=E2iiVjavW0CdodlhndX9yiwzYvtvq4RgxXNt1ZLTDqs=; b=WbrmxP7FTSNd/kIndx7eOD7VO1U+hdfrdRyqxm2j8tynBHcuSe860EwGc6yxGVfjor U/ZH9GCH4mAkEoGUjVT0mmmJzUD4jcdCkQ2yDyHGSccqj4GNuYj+uSs0EYso+EJ1sMpU 1CheX8FZcuZCAGENlvMLCfHg8x0sVnZsoz6Kh1zOfmomKzVXj0DDl4xMfOj2LoyGD/C2 qMypfVqYb8ARFx7sPyrO9PixRirUhdCRroJcx5rxGrrrdVXdUnUkWMUfAXBsPg9UynYO fV+jLj2VTjVLW3qLZUvU2qUHFEgpZ5eslBBKl7Xz2L/EN+uVDHs2seFKHqocen90MzmV A44g== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=i7DZ4+La; 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 ho19si883541ejc.270.2022.01.12.18.04.04; Wed, 12 Jan 2022 18:04:04 -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=i7DZ4+La; 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 5268568B15D; Thu, 13 Jan 2022 03:53:11 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f180.google.com (mail-qk1-f180.google.com [209.85.222.180]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D37CE68B143 for ; Thu, 13 Jan 2022 03:53:08 +0200 (EET) Received: by mail-qk1-f180.google.com with SMTP id e25so5527404qkl.12 for ; Wed, 12 Jan 2022 17:53:08 -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=q1HwASJgMwjPyPOVaQnlABJl2cjXfvH1aLDekAY3o68=; b=i7DZ4+LauYRjru9INZ9DMX+n0m1FXczeY76fvJaW2gBYqRon4ZoKOkMh6EZYAbKMvM fXHVEJtm5fnCQ5mdGedSLOV+XN26mV5ixnPutSioRe8KZL7RahKoTClqugFENtcOFIPr QyN1zZvZW3NICm7XZGwVaJX0eRSVeDV9WoVk8FAH4yOyrJUGDk6uIi+NFevz+DGl+Yfr ZX0HprRXMTMqemestKLUYycxSCpi9D0H9TPeAT98P2ew9LS58UT66TTfQHxT7FnJODHb rxWdsziLpgEyYpE/4lb2cV1LCtQzK7RURMkDhxHHu29mhI6CYFJiHZPcepnT2blpAKO3 mBGw== 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=q1HwASJgMwjPyPOVaQnlABJl2cjXfvH1aLDekAY3o68=; b=0/NmpyIhJX5wAvX+c9Dba0t60H/ft0qQ9lddp+jTiFUBsiNXtXg6XNLmCeXG7QfQrT wzVqSUuivQ0WS3ymfRNEPQUizmJ5fKX/siQI2PC9y00qJia3DE3Ubqs6x6ZNy+0vDinp skBQU0H6Qtgf/AJ5VQN1I8y9e+iZLo21QIcoUquhlSj7ACJa4ejLMLgcOMD9Oi4MAruf p2Hwl/c51HLC4MzdUCnnNsOMI4trIx3Dpy5Z9vW4ldYr4sZSMj9jHm7agHdnVqRzkbO5 KkkxHpQIthF7PyxFalolhyglSqwOtEyY0HOYO30jDTRkj98v4Y5wsIWU0e4wNNzGnkbT 4KNA== X-Gm-Message-State: AOAM531Th3aAWbwts0dnvCaYXJk9Me47QwAmRapXJsmGhzdvOcECO3qy UQUh/Z9Wfz6fEbuoDG5KpOqYIdzCrYI= X-Received: by 2002:a05:620a:2489:: with SMTP id i9mr1774433qkn.601.1642038787491; Wed, 12 Jan 2022 17:53:07 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.06 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:07 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:18 -0300 Message-Id: <20220113015101.4-57-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 056/281] electronicarts: 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: CaAmgdjnJs0M From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/electronicarts.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libavformat/electronicarts.c b/libavformat/electronicarts.c index 2fb09b34ca..811f8705e5 100644 --- a/libavformat/electronicarts.c +++ b/libavformat/electronicarts.c @@ -551,13 +551,14 @@ static int ea_read_header(AVFormatContext *s) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = ea->audio_codec; st->codecpar->codec_tag = 0; /* no tag */ - st->codecpar->channels = ea->num_channels; + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = ea->num_channels; st->codecpar->sample_rate = ea->sample_rate; st->codecpar->bits_per_coded_sample = ea->bytes * 8; - st->codecpar->bit_rate = (int64_t)st->codecpar->channels * + st->codecpar->bit_rate = (int64_t)ea->num_channels * st->codecpar->sample_rate * st->codecpar->bits_per_coded_sample / 4; - st->codecpar->block_align = st->codecpar->channels * + st->codecpar->block_align = ea->num_channels * st->codecpar->bits_per_coded_sample; ea->audio_stream_index = st->index; st->start_time = 0; From patchwork Thu Jan 13 01:50: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: 33342 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp19620iog; Wed, 12 Jan 2022 18:04:17 -0800 (PST) X-Google-Smtp-Source: ABdhPJx+KkP340OlSD90qTUkxqhbrDHD7m3MB0z5jQJhScuf/HHrm+TtEdASYEJ+jVpZtum3CDK3 X-Received: by 2002:a05:6402:5190:: with SMTP id q16mr2239584edd.157.1642039457665; Wed, 12 Jan 2022 18:04:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039457; cv=none; d=google.com; s=arc-20160816; b=JUw5HjnKtDgY/BIyNgXRuxSWwWYlZ9tElyr43wvj6r8GqJY4VGTSPk0ClwS5DaDwsZ cc8s5juaT9JEmDPfrwy8UBBVfHRmilSa0U6aHBvULCiMGfJSB/U3wR8DwD3NrNVADnq0 qtuHUrk0L4ec5EO0DF3WbqAcITAATdJFAtpxwc9RY/U4pp3Pvd8yTxXWE2hmSAcfwNQz jBxs8mMJj7RDaLuf8B7tl79/Z29KU+V3JBASFsLfGOqVGSSbdOIkavF1EDxotthZemKU qShCaUx7XcdpKy4X/5+joqJl8D8CLeo8CX1EM1adjvHXKYcgSnf2YQA5Un3lcMvBsS3/ y/HA== 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=VdfrB39WmB2jg+V5RpSeFq5BWiICduOQGP1c1qz7P/s=; b=YVuYCJ5IOWxjsuGusVUSWVUo1qBPzIiP2JhQ8pVrtsNLTDGwg6aQXagiXLR288l0yy bZWxsYqKHAOF2dWzE+XvO07SofJg94rA2+yVX3CkX5U7yuSXDJMPR4N6LgCv1IlvUL+/ 189DGNoikx6wqaBNm4e+Rrs/wMocCsN3Ja9z/ccxN0oWDuuMXNFXEbWx2kGJd7iNub6A GdqMutuGscY5p9RoBSBhfm9lAYpflSPCFHSqZzzQXtD2otkIxpfQ/J8mLmAHjg6MWxgY x02u26yIS/TI3WW86/Vb5XQPBKKrMtQMdTYEMAWKjgs/qG1YW6CXp3sqKs9jNaszyr+o Y1oA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=hmiPkH+k; 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 hd36si829088ejc.80.2022.01.12.18.04.17; Wed, 12 Jan 2022 18:04:17 -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=hmiPkH+k; 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 5313A68AECA; Thu, 13 Jan 2022 03:53:12 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f54.google.com (mail-qv1-f54.google.com [209.85.219.54]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0E7D468B046 for ; Thu, 13 Jan 2022 03:53:09 +0200 (EET) Received: by mail-qv1-f54.google.com with SMTP id q3so5108950qvc.7 for ; Wed, 12 Jan 2022 17:53:09 -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=qVYpN3lBQwxLDp9GvRBGKGv82EDazGzaGizGAbeF9C0=; b=hmiPkH+kmfF6O3fDDsuLN291G5K+qIfL6iLhSIxbflhuj23dm28gKg8dBgT56c73pk Cj+rRSWOL3Q0mj9/azxV1yrSYI6xvMloQXb5T8ErX5xBAzyMCrpB58TPi+qqri3tOadF LdPdGy0Jw+PizKyg7k1PTsAWoR48zg0NmYItafGBDD2rutdf39c4fC3RHZfsrjmwynSu xylMlrBamfdedqVjTFScp8QAq8zJEoDTdmhzSPm62ULLW+vprCh3MPjr9ydWpWM5DAlX 3IokV0ax9JBAsTN2cNL5wvDcBDR7nOgTWbCQefGFKAD/vlIySWoWQ0zhb5GhkY9Mc+DK 8aeg== 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=qVYpN3lBQwxLDp9GvRBGKGv82EDazGzaGizGAbeF9C0=; b=2qv3uTT45HlBA8csV2u575d9mwe614nACLuUAVOKjvBQtHHWbo7WqvZ7eRVHAPDjtl FrVehu//ivjOlImvGyGb5Qsd+OnHCv0kNObPq/s0684qNo1wxkXdZg7f9EZG7r6hOxHa GBxb7hCbeo8jJt5sHSFMquZRAE5ivIXzcCK2763gyOxik9dvHUAe7xS9SKIzwVQ+RnE9 mtQes8auNRql1HD9GoCskU9wMCRroORxUWaCVbEDFzaT6FQg0SA8Kp+PhYIC5KyRyX2i FeonP4CRIMg12SGrEOiISXqsewqeVfCsIlfFdHuXICTkn2RMsUlh5IxzKYFRxOXsCfq+ QdWA== X-Gm-Message-State: AOAM531b51A5CHmRGANXKa4+Us7By62C9ILOXAbwJHuvDSsuh24/mdi+ Jaqpi2v181UQMjvDERzJKTjhLqsJsqM= X-Received: by 2002:ad4:574f:: with SMTP id q15mr2335157qvx.94.1642038788675; Wed, 12 Jan 2022 17:53:08 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.07 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:08 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:19 -0300 Message-Id: <20220113015101.4-58-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 057/281] epafdec: 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: 6UBXCyh5IcDt From: Anton Khirnov Signed-off-by: James Almer --- libavformat/epafdec.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libavformat/epafdec.c b/libavformat/epafdec.c index 8b94278c01..1e5f1f887d 100644 --- a/libavformat/epafdec.c +++ b/libavformat/epafdec.c @@ -68,7 +68,8 @@ static int epaf_read_header(AVFormatContext *s) return AVERROR(ENOMEM); st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; - st->codecpar->channels = channels; + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = channels; st->codecpar->sample_rate = sample_rate; switch (codec) { case 0: @@ -84,7 +85,8 @@ static int epaf_read_header(AVFormatContext *s) } st->codecpar->bits_per_coded_sample = av_get_bits_per_sample(st->codecpar->codec_id); - st->codecpar->block_align = st->codecpar->bits_per_coded_sample * st->codecpar->channels / 8; + st->codecpar->block_align = st->codecpar->bits_per_coded_sample * + st->codecpar->ch_layout.nb_channels / 8; avpriv_set_pts_info(st, 64, 1, st->codecpar->sample_rate); From patchwork Thu Jan 13 01:50:20 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33426 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp32854iog; Wed, 12 Jan 2022 18:24:59 -0800 (PST) X-Google-Smtp-Source: ABdhPJzKrRw4mk3TeQBypXR3qBKZ6Kp/pwmL4qvibJsS1+sjWqrqzd8Bk+iwNa41MF2zt2AR0giF X-Received: by 2002:a17:907:2d0c:: with SMTP id gs12mr1937484ejc.4.1642040699017; Wed, 12 Jan 2022 18:24:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040699; cv=none; d=google.com; s=arc-20160816; b=PgyiZ0IjH9Gn/wcFpmO+OeRPvfbgP+N4s0pgXf76ZOybPoewLKM69ZkEa/BoP8YE+E Hmz8H0oe77glLKDl+BdXeQJyizOYbII/ijP58ZmR/tQa3ON+cbQwm0ZxKhOMTwZdWBvg KyzWs2JDHe2h2kGRKccDZmdJGQVo6NlIFtRygWIPPMMTeTTUH4iIPd8MhhvDesZVBk9/ DlJXJfWiuA4BY5p4RmVLBj+M34bggdIl0k8XCDLAREWbWhiDTZlJ4QykXgrGiGeWDIZO 4bQ9d3v9ZMcT3npzQUtuzZYWjvHcfq6g+bb6IVV+JLVXDDpkoIMB3fJQT97V92P9ShL/ FY5Q== 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=uItcdDtzylAUU04/8E8r4BcNFCvYeJNaNbbquhye9l0=; b=gAp64q13Zh9ISreV7/zNJ0xtqpnMjCaHu6qiQfcnpYAaqUVGAww3gq8CAuqdjjkOAa 0sUgVs0MiEshoUAiU4MQnkSNeIAG/CZS1SUr+lKM5Ts1J8JcF2GBkQjtMbiZfRkEDaqO R1SVgXin9nnPhhdEUoIo91M0gokSBub9Re/L8wcnCJGGwS1r9SE/H/03ccV6WA8QD2C1 C8XP/kDoudjq9Ma2L5Sb4jcSBO+l74VaVrn8ZW0hYuiYL3F4RZKAR8RbTTBY/wkabT9H vF1q14XBo4WM5LNwhQ/hipVSJsAS/QcqW99cNTW0hh791XJniDVp3dLXcFOIzaSROCMk xlBA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=H05cgpAE; 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 j17si825214edr.419.2022.01.12.18.24.58; Wed, 12 Jan 2022 18:24:59 -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=H05cgpAE; 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 82E7168B0E2; Thu, 13 Jan 2022 04:00:43 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f171.google.com (mail-qk1-f171.google.com [209.85.222.171]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8E34668AFDD for ; Thu, 13 Jan 2022 04:00:36 +0200 (EET) Received: by mail-qk1-f171.google.com with SMTP id g2so5616786qkp.1 for ; Wed, 12 Jan 2022 18:00:36 -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=RO7ivYUBA37qzPKiv7Stf8v06cq9BFU6ztrvZcYiPW4=; b=H05cgpAEsqp0yYaOMIUVX7UtFWLN201qdWhSZBR+xCv5JpHr/ihaOIbw3V8Nid4qCg HPR0997vNOm4IC6WRCQmnfOcR6Hf3J7OuzxiKtV51r1sQ8c1LqM5c25F542Tustd3nSK 7YLctpcMLTmsBh8PMIUVuko2BheDWAV2uI+mtbLyCqcoFH94AlCGqDIttqXIYUC4zS5Z 8sUiO5qGewU7r7ubI0QPo2y9/HmvGGzEvb51lt6E1UwxNy7PRyjbfyZ5a19P1VoiAkho 3uzeZm4NYeKAZyF1MX8HJV8OQNRZSfjmGG2c7a0J+DjfWfmQmJeQpx0NmQ8mGRWIdvZO Tk/A== 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=RO7ivYUBA37qzPKiv7Stf8v06cq9BFU6ztrvZcYiPW4=; b=TMjAnrtY/SGLq+HpV3BFhJyS4zqQ6jcH1suOlhlJKaXZXiI72R4d/0PMoVhWPqaJQC wXl2GLxtM8I32aXmLCjEqlVR48jb8bJaSXEvPNRJvmKqa1vJjFdXSqmn5kux6iS9DQmX gU2xzSl5LO3MIoFYgzQRMtn2IpnSz/u/wwZGY2pr0eY/C9+ViQO/709m/PRJvO6QFCrL 7XFac6teJGHWmGP8SZdsy4UsXSu8RTiyBtgylMtdVbkZTMh4d7vAQbvF3pBm5+l5Enp1 O82SVBtSLkHfzv3F8Fa24Upu0iUQgVVSPrD32SqXto+N89aoQ5gfaPv6fK7Zr1v+29OW Frag== X-Gm-Message-State: AOAM532AuF8a0KW7mO3eYwRd4S/8zR3VbbWmkeSqiSj+90Z0NOUuyTyz wCxn7LdJavR5mQif8uT0/jCLiblvv9c= X-Received: by 2002:ac8:7607:: with SMTP id t7mr2015740qtq.286.1642038789850; Wed, 12 Jan 2022 17:53:09 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.08 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:09 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:20 -0300 Message-Id: <20220113015101.4-59-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 058/281] flac: 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: 4D+txmK6ZfAM From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/flacdec.c | 3 +-- libavformat/flacenc.c | 7 +++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/libavformat/flacdec.c b/libavformat/flacdec.c index 3401aebe8d..bfae5a2af1 100644 --- a/libavformat/flacdec.c +++ b/libavformat/flacdec.c @@ -191,8 +191,7 @@ static int flac_read_header(AVFormatContext *s) av_log(s, AV_LOG_WARNING, "Invalid value of WAVEFORMATEXTENSIBLE_CHANNEL_MASK\n"); } else { - st->codecpar->channel_layout = mask; - st->codecpar->channels = av_get_channel_layout_nb_channels(mask); + av_channel_layout_from_mask(&st->codecpar->ch_layout, mask); av_dict_set(&s->metadata, "WAVEFORMATEXTENSIBLE_CHANNEL_MASK", NULL, 0); } } diff --git a/libavformat/flacenc.c b/libavformat/flacenc.c index b267197ccc..eaaf774f9e 100644 --- a/libavformat/flacenc.c +++ b/libavformat/flacenc.c @@ -238,9 +238,8 @@ static int flac_init(struct AVFormatContext *s) } /* add the channel layout tag */ - if (par->channel_layout && - !(par->channel_layout & ~0x3ffffULL) && - !ff_flac_is_native_layout(par->channel_layout)) { + if (!av_channel_layout_subset(&par->ch_layout, ~0x3ffffULL) && + !ff_flac_is_native_layout(par->ch_layout.u.mask)) { AVDictionaryEntry *chmask = av_dict_get(s->metadata, "WAVEFORMATEXTENSIBLE_CHANNEL_MASK", NULL, 0); @@ -249,7 +248,7 @@ static int flac_init(struct AVFormatContext *s) "already present, this muxer will not overwrite it.\n"); } else { uint8_t buf[32]; - snprintf(buf, sizeof(buf), "0x%"PRIx64, par->channel_layout); + snprintf(buf, sizeof(buf), "0x%"PRIx64, par->ch_layout.u.mask); av_dict_set(&s->metadata, "WAVEFORMATEXTENSIBLE_CHANNEL_MASK", buf, 0); } } From patchwork Thu Jan 13 01:50:21 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33343 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp19804iog; Wed, 12 Jan 2022 18:04:31 -0800 (PST) X-Google-Smtp-Source: ABdhPJyft1LMQo1SyCMNtb7K+iojfMNnG/FgtmkXsMGMxYvxMAZykpyge25+fdCVrETffjjovXII X-Received: by 2002:a05:6402:68b:: with SMTP id f11mr2249245edy.121.1642039471164; Wed, 12 Jan 2022 18:04:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039471; cv=none; d=google.com; s=arc-20160816; b=pAQQFY6tPf9Bu3duOBsVrHHk5MH3pYAimYiBZNQPXM7Izhkj6vUNxGKx5sKFcZarqz LPMrYS/y3KO/IiUyZrQWHKJcNCdxkEeMCpYcpthHyr+o+PKBjFwB4SHZU2d66ohWwtmg uM9s/cOZ/zkKuHCSIryqvuVZArF1KPVOhBb698B0UfgxQWg6DSEkXbQkxcg6teAtqd1l rdlChKgyBteTG5VuFkCff9w4iD/PgMc8vnpnhEcIdK+mATAW7pcg5/jfEN5/UDbO3+ls P6xhpBGcqxuq6cm1wwY/gHPvix8DBSywRNKHCjG6avZZfAcyYrNVEluN8euXx2l7Jlj9 d7xg== 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=CioNYNGsSi+pQljqHTPY0arqTz+2daOkhXnI4URrcqY=; b=zVIbuOSW0uzgRMa3jjeWOi5to/5/bwbbbB8cA/e9PYcVQ/EKchjRotqp5gERvUl+Ut LsH9xfLdiJWVRCivfT1Wgfik8qN46eQmeQc1Q08MUUnrW1b8teRSSoA3zSVrDUHACtkg H8ffyGGCjX+NKKsEnCT24D0K+Bk20YvgVg3NTxxfvKpo7znhEqJqo9JTgXJ82p8Gi/xW kgD/qMNb+OObjGPJnhy++uxD1HREh4Ie+DIwTxjgOOo4Lj75pfVe90zZVNohSm/u47oD +Vv3Y+EM35uhef2haQmRSVJ1TXv4cKCMEq1yVX55ZQQ5KjSf2Es6zGjyfVAPsT75gNIL Jj+A== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=Jr5wKVK8; 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 14si689838ejf.611.2022.01.12.18.04.30; Wed, 12 Jan 2022 18:04:31 -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=Jr5wKVK8; 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 4053768B165; Thu, 13 Jan 2022 03:53:14 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f178.google.com (mail-qt1-f178.google.com [209.85.160.178]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 79E6668B143 for ; Thu, 13 Jan 2022 03:53:12 +0200 (EET) Received: by mail-qt1-f178.google.com with SMTP id c10so5366918qte.2 for ; Wed, 12 Jan 2022 17:53:12 -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=JHmedx0nImdiVWIlvb5leiMDN9pZKAIRkl5cl6zixug=; b=Jr5wKVK8NeY1OAY09k8De4Du/IKi2kNEaIQR54VA3+FTqrYk8b/5fLk1fcUoGVACa7 Pst2ZB2T5oOl3robX+lGRJ9Ss2ur37fv/B8j+3oeM502InWoTaQJnTGsB90bga/g+vj5 u1+Rkb0itd4GGwE/UEYVoQTGvvakKnVVKjG/KWFvBDMwZrRI7S/ca09fhJHr8pAP108F J4dlPxVHj2PovWcGzsinxRcM4wP6VACDXLequo6cJo8UMrP/YAXMAh1XGCw+pcXM34pL 2BJjMCx1o5VFfsS1QD/+kSMdTOwN8OYPWPRFRhLoiy/bXlFy9LI92sasj07dPD3LOK2r 08Qg== 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=JHmedx0nImdiVWIlvb5leiMDN9pZKAIRkl5cl6zixug=; b=prOPtJ97iXhlpOcT1DTJSSSybt+POYpv/Pph3f0XJbz6vGneUxuVgSyHv020+nvLFq GSgAR4xT0CO9WbxjxefZpJUBc9yZD9ghAXzaMcYO+Os8QS7vN0GxsgnVyUAJvd5GL5rl K1pWm5sUXhRwU12PrZzX/re1LNWrILxFIIaVQr8cEOdfbvOZKdEsh55fak0po+Y35ffc OpgfgiJBZhqvZe3SS8m6RCq92fJcupb0qa+iPPN2HSw90FcpFQH4ZOZRupNAjBsyMdQa DpCeiXOXhCwNZBl7QeZTYMeH8+qlzNivZFYsGsXwaktS6NkVkiKcZTFSzb9XX8gNQwny 0rCA== X-Gm-Message-State: AOAM531FVXgSOGstZHf5etpc0QqGaYt717wnCTYGQWz3e6mctsVa/sN1 co40PyJDzk2S2Y/v6mBZodX/bJl7a40= X-Received: by 2002:ac8:7c4a:: with SMTP id o10mr1972856qtv.217.1642038791043; Wed, 12 Jan 2022 17:53:11 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.10 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:10 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:21 -0300 Message-Id: <20220113015101.4-60-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 059/281] flic: 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: MCsi2BJ8kDVk From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/flic.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavformat/flic.c b/libavformat/flic.c index 44ed696421..496402aa94 100644 --- a/libavformat/flic.c +++ b/libavformat/flic.c @@ -157,10 +157,10 @@ static int flic_read_header(AVFormatContext *s) ast->codecpar->codec_id = AV_CODEC_ID_PCM_U8; ast->codecpar->codec_tag = 0; ast->codecpar->sample_rate = FLIC_TFTD_SAMPLE_RATE; - ast->codecpar->channels = 1; + ast->codecpar->format = AV_SAMPLE_FMT_U8; ast->codecpar->bit_rate = st->codecpar->sample_rate * 8; ast->codecpar->bits_per_coded_sample = 8; - ast->codecpar->channel_layout = AV_CH_LAYOUT_MONO; + ast->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; ast->codecpar->extradata_size = 0; /* Since the header information is incorrect we have to figure out the From patchwork Thu Jan 13 01:50:22 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33344 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp19985iog; Wed, 12 Jan 2022 18:04:44 -0800 (PST) X-Google-Smtp-Source: ABdhPJyvFUXVs6L1kujx533W0njqsv62ADDY3v643rqHnQxqesAh+3btiilp1Cz3X1na3aTT0h24 X-Received: by 2002:a17:906:58c7:: with SMTP id e7mr1876568ejs.146.1642039484449; Wed, 12 Jan 2022 18:04:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039484; cv=none; d=google.com; s=arc-20160816; b=h/yfcvWunlPZjAzoqbqygf8sLglDp10cjKk/7XLMf9iXluxTzFuzBxpqYiaKiIv8yu /wwlaw+VWBuCZuciwBj0rsgmIACcvMC43LQnckawHXL5OZj9bPQpD1ouhoYpHmMaMEME 1Aj2d5u4lNNGR8qgAl/S42w/OuWaZ/NR1R/cONZ6R1A9uaVKzCWTgHmztRooBrv71ffC GcqmuYmEYSOugWY9BcRkcjEe+FCC4HZZNDonvXZJhXLGNmB5QwiSlt66U5vhwC67Jamy /FOxWljy1V/TMpLEggdNc/xNGqJD6EckUORlyzWZP8env5+h1xGy4eT+PyaEmd/3gV8n /CLg== 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=9FHjD/oDehCDOfMwfxqH8xJtHRZw79RUbbJjEaAQZu4=; b=vUftj9H4r+QdbonAr+bPS3KGAP9zPbvtS5e6ekA8BeoWsbd+suI7/ijmbRQYZk1VaN UVr561o0MzSY8fBrLHGsZz8xPx5ERrLVakPu87WY2iRkiIPETCra27SGLiTsgmqskYW6 XXIRDd7X5XsCjZ4F91o8RrUt3FRBUKti3Uv7GEmBwtPVHAt4nBMPQuyWBmGFBcWGWSm7 aUUxo2YvUWn1PLC+LlE9stWg/zRbv7UNKQZg3liy69FLYyXmY0cXtcxn8o8WsWpQx/lt YMF7dIrNs/6NJSHg9O6WU1hlpsbUJ6swUGna0II69x8TWdZG/eUYyipd+m+VJpiQBuUN Kr6Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=DP0n5Jzl; 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 v5si700266eje.162.2022.01.12.18.04.44; Wed, 12 Jan 2022 18:04:44 -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=DP0n5Jzl; 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 3311968B16F; Thu, 13 Jan 2022 03:53:17 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f171.google.com (mail-qk1-f171.google.com [209.85.222.171]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BF4E068B071 for ; Thu, 13 Jan 2022 03:53:13 +0200 (EET) Received: by mail-qk1-f171.google.com with SMTP id z10so1202537qkf.7 for ; Wed, 12 Jan 2022 17:53:13 -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=v51JgMFmD0tvHTOHjaOD6r7QwTTeDHXrrguK4Q2kPCc=; b=DP0n5JzlvgJienwAmTIGqkqLVzMtPAkgj88RQc8Lc0tqGjQuB+8pP/u4Nuud+K75Ue Nmx5DKWpXDSPwtL7JHjVHM4K1JQ6NCA00kuUR+rvZDC43l+As64K9U62Q9n7KPGzJDs3 +ZY8hPioWf0OOygsn6YZx5AR2GtY3riYR29IMP3JfYblF0smam2fAr9sfma/5TKTA4wk yRwyUwjE+QidMiHGDxusKytjRr4kXhKamYGcJhycLMtwTYjpvUShhg+RO/mVh8tHUTOQ uULpHv63vlidqHICRtRh41ZGqA/VpED/IOVODEWgI1Lh8KK9YLQ/8RQV4m4OmE/isC9d f4PQ== 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=v51JgMFmD0tvHTOHjaOD6r7QwTTeDHXrrguK4Q2kPCc=; b=HRFJFpKM5aP9aZ/AUYW6WLw2Rirl5ttaLVqEIx1+PUjfSSPN4e5QPd+vfH1i4oH68s 3I0SUdyNP1lxEpzBoTop5/Ew1VqcAH+5awC98yiRNpHuPczu6eiZWo6K8EXHmZfpdoJF lspHVYBUuDYNuN/tN1yx7KQiIqdUJL95n/ZKPDk/uMGCDeBUVCzWPFGwAwmBJAf6iyxm VCSwwkDZZMSxz1LAFP0RUjG3zMu9stBSdcuJ1s8bSkrD51GuvzNboj6BhjFAit5huQ+j ST+7pFbJreAQWnfEzmB0xMyRK6+vj2lEvxsJOsa03YpXZ4KuLcT7/pgPhqmGe8TTEzTv B92A== X-Gm-Message-State: AOAM5318ff7VEJMBam6jQx/L2YmJ0bzjopq1UeXQVeYM7QKuTTXHgRkC MNKqca1LInxCL8U1dw9wogQl/xNdngI= X-Received: by 2002:a37:bdc7:: with SMTP id n190mr1866016qkf.658.1642038792289; Wed, 12 Jan 2022 17:53:12 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.11 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:11 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:22 -0300 Message-Id: <20220113015101.4-61-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 060/281] flv: 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: +PR3sxILOOOn From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavformat/flvdec.c | 15 +++++---------- libavformat/flvenc.c | 10 +++++----- 2 files changed, 10 insertions(+), 15 deletions(-) diff --git a/libavformat/flvdec.c b/libavformat/flvdec.c index b9e36b3ff1..cb24b1cc26 100644 --- a/libavformat/flvdec.c +++ b/libavformat/flvdec.c @@ -629,10 +629,7 @@ static int amf_parse_object(AVFormatContext *s, AVStream *astream, } else if (!strcmp(key, "audiosamplesize") && apar) { apar->bits_per_coded_sample = num_val; } else if (!strcmp(key, "stereo") && apar) { - apar->channels = num_val + 1; - apar->channel_layout = apar->channels == 2 ? - AV_CH_LAYOUT_STEREO : - AV_CH_LAYOUT_MONO; + av_channel_layout_default(&apar->ch_layout, num_val + 1); } else if (!strcmp(key, "width") && vpar) { vpar->width = num_val; } else if (!strcmp(key, "height") && vpar) { @@ -1202,12 +1199,10 @@ retry_duration: sample_rate = 44100 << ((flags & FLV_AUDIO_SAMPLERATE_MASK) >> FLV_AUDIO_SAMPLERATE_OFFSET) >> 3; bits_per_coded_sample = (flags & FLV_AUDIO_SAMPLESIZE_MASK) ? 16 : 8; - if (!st->codecpar->channels || !st->codecpar->sample_rate || + if (!av_channel_layout_check(&st->codecpar->ch_layout) || + !st->codecpar->sample_rate || !st->codecpar->bits_per_coded_sample) { - st->codecpar->channels = channels; - st->codecpar->channel_layout = channels == 1 - ? AV_CH_LAYOUT_MONO - : AV_CH_LAYOUT_STEREO; + av_channel_layout_default(&st->codecpar->ch_layout, channels); st->codecpar->sample_rate = sample_rate; st->codecpar->bits_per_coded_sample = bits_per_coded_sample; } @@ -1217,7 +1212,7 @@ retry_duration: flv->last_sample_rate = sample_rate = st->codecpar->sample_rate; flv->last_channels = - channels = st->codecpar->channels; + channels = st->codecpar->ch_layout.nb_channels; } else { AVCodecParameters *par = avcodec_parameters_alloc(); if (!par) { diff --git a/libavformat/flvenc.c b/libavformat/flvenc.c index 66c530a2ff..429732297d 100644 --- a/libavformat/flvenc.c +++ b/libavformat/flvenc.c @@ -138,7 +138,7 @@ static int get_audio_flags(AVFormatContext *s, AVCodecParameters *par) "FLV only supports wideband (16kHz) Speex audio\n"); return AVERROR(EINVAL); } - if (par->channels != 1) { + if (par->ch_layout.nb_channels != 1) { av_log(s, AV_LOG_ERROR, "FLV only supports mono Speex audio\n"); return AVERROR(EINVAL); } @@ -178,7 +178,7 @@ error: } } - if (par->channels > 1) + if (par->ch_layout.nb_channels > 1) flags |= FLV_STEREO; switch (par->codec_id) { @@ -342,7 +342,7 @@ static void write_metadata(AVFormatContext *s, unsigned int ts) put_amf_double(pb, flv->audio_par->codec_id == AV_CODEC_ID_PCM_U8 ? 8 : 16); put_amf_string(pb, "stereo"); - put_amf_bool(pb, flv->audio_par->channels == 2); + put_amf_bool(pb, flv->audio_par->ch_layout.nb_channels == 2); put_amf_string(pb, "audiocodecid"); put_amf_double(pb, flv->audio_par->codec_tag); @@ -507,8 +507,8 @@ static void flv_write_codec_header(AVFormatContext* s, AVCodecParameters* par, i if (!par->extradata_size && (flv->flags & FLV_AAC_SEQ_HEADER_DETECT)) { PutBitContext pbc; int samplerate_index; - int channels = flv->audio_par->channels - - (flv->audio_par->channels == 8 ? 1 : 0); + int channels = flv->audio_par->ch_layout.nb_channels + - (flv->audio_par->ch_layout.nb_channels == 8 ? 1 : 0); uint8_t data[2]; for (samplerate_index = 0; samplerate_index < 16; From patchwork Thu Jan 13 01:50:23 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33346 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp20303iog; Wed, 12 Jan 2022 18:05:12 -0800 (PST) X-Google-Smtp-Source: ABdhPJzyy0GufiwTNsCBI1/tL/JrysrSqyI7mIJQpb14FjnHaf5BGMLQQNOP/egPM8hSRB8/soM+ X-Received: by 2002:a17:906:4f92:: with SMTP id o18mr1012349eju.681.1642039512714; Wed, 12 Jan 2022 18:05:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039512; cv=none; d=google.com; s=arc-20160816; b=nxH3bn3DPvxqVwrf85HML9MmRtXBcm4Fz5qWz61jlmJnsqbnErPa70g/553QlnWL1X 7MvKRtPyL5LQRpqgkk1yWae2kQ7nmk4UkoYvt8uPKmIxJNVNpElXVUwfufK4WfCw0HK2 wq7upOoh6PNPtO2Z3Ad6Tdn4fsdYtZzYSQmIF09F3QtsoWKwYvy8QhYYj608aoJzMboI gE2NDp+euzHuHPZxi8HwWSBf4jTE0yYdsnGnF8+RxM3qsWTKmwGQXG+HhKqP5u67G3dh o3SEGm4t2vcrE7bP7uPgr8vhfgQCqeJ2R+QrPeNlLkEIkUboao1fO5SDIXhs4x1M6WS4 BKPw== 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=yjKQFZFMozniFQt1MnIWGTcPSA7Co8zTZOGFQH+2iIc=; b=bUflckS4ehApUcTV0saRpz24fSjtT554fd47h61CnY6F4Dmqgqa8ZXS5/wV/k5DlKh DSDeXGROrl5Xr8Qf3XgoKhlBCZDZdXcGHGrROC2AjL6l7scaNT5WGqQClIQHr6haeWUy 2IYuw5DE12mMsov2a9LfF1oskJG5AVeTfPIAYNfEbvkDp2RWWUgeDmQN0y36n0zfOFr/ taXbNsb1vch74hQNspYhlJu7ZEsbZZEJc0oJZpeLy4X2lEAJLayP6syPCDJaM+8JZkph pmhaY5VxY86/fBX+cLh3FVc3XpAg1WsL23lSosuPveT56luN1o5ujoQLA3Qhz7soqEvE 2yoQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=K4Ze3Y9T; 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 qw10si779469ejc.740.2022.01.12.18.05.12; Wed, 12 Jan 2022 18:05:12 -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=K4Ze3Y9T; 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 E98F468B168; Thu, 13 Jan 2022 03:53:20 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f174.google.com (mail-qt1-f174.google.com [209.85.160.174]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0999168B16D for ; Thu, 13 Jan 2022 03:53:16 +0200 (EET) Received: by mail-qt1-f174.google.com with SMTP id f17so5324040qtf.8 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=Eux//4aPwj5kJkjufPtv7N6mgwjRh6yUpTm62GKpCz4=; b=K4Ze3Y9TrNBiF3ydYTSmCknS+Zh+rssakB0ykje/zbIG+no9wW+XWqPj8BZe/s4CVK ihcsRgOCCOuFO9sFoMMGwEwmfjIu9l9IQ/HO905mY0hjzS1bInnY9cBNYVY/WTyruRAI x0Gtve14T9Bq/qVNDj4Wh+oPbhN98l6sSJH5xWhFBDjRKo2OlwiQ0Y3NvqJZTJMGMJsC smQ//uaprtC7zqt8jj/8MO6/ldIVIwOPF3XN7AEqGfqQIHDyFXOMsC8snI+w6XMcbDHz FWxLn0+lDp5QEJ44dqPJTKk8ueuXDEK/69ru/8j+Yx9gyb6DCJUikcOamVYOT89lh3dY EMoA== 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=Eux//4aPwj5kJkjufPtv7N6mgwjRh6yUpTm62GKpCz4=; b=uTONre9vsHc3w07mYH8sB+sRIp9MgL0tPsW4/qsPTf8DPDPJtQ4r5KWtQA6Q3lsMGP h0AbQ7HReZ3n8eKtBu3KnW875PIT8TTmOYadnzhD6/0W0f+7LPWmEntME8KNsnMvfLD9 nIHmmyrOPuy/Ms8zLl8kqWG6giLF0QE2nIZOl/w0J5VV3xT4q4q8hb8BkRYqR8L3nz4y Wa41Ow0T4YwNVfg2RU9et+ZU28ET0dWW51uBP1IRyrbptcMTzenG/hekGKJSlG4oXHoZ wNfPWwiDFK/eBp1NpIIitlWr5sMTqkCSc7iI3qADwOvZpkUrMoaFL0+7j+KekE9N8InN Iocg== X-Gm-Message-State: AOAM530HKyGgeVujpFpcy5kn5ijN5tl6V9gPmLHSOcNXPHjxwX6/jj0A wqRYTg5aXm3xrbrrv5Lupbf1A5iD5XA= X-Received: by 2002:ac8:5fc4:: with SMTP id k4mr2045146qta.28.1642038793976; Wed, 12 Jan 2022 17:53:13 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.12 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:13 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:23 -0300 Message-Id: <20220113015101.4-62-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 061/281] framehash: 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: POSozbl0g9/2 From: Anton Khirnov Signed-off-by: James Almer --- libavformat/framehash.c | 8 +++++--- tests/ref/fate/8bps | 1 - tests/ref/fate/aa-demux | 1 - tests/ref/fate/aac-autobsf-adtstoasc | 1 - tests/ref/fate/adpcm-4xm | 1 - tests/ref/fate/adpcm-afc | 1 - tests/ref/fate/adpcm-dtk | 1 - tests/ref/fate/adpcm-ea-1 | 1 - tests/ref/fate/adpcm-ea-2 | 1 - tests/ref/fate/adpcm-ea-maxis-xa | 1 - tests/ref/fate/adpcm-ea-r1 | 1 - tests/ref/fate/adpcm-ima-amv | 1 - tests/ref/fate/adpcm-ima-ea-eacs | 1 - tests/ref/fate/adpcm-ima-ea-sead | 1 - tests/ref/fate/adpcm-ima-smjpeg | 1 - tests/ref/fate/adpcm-ima-ws | 1 - tests/ref/fate/adpcm-ima-ws-vqa3 | 1 - tests/ref/fate/adpcm-ms-mono | 1 - tests/ref/fate/adpcm-thp | 1 - tests/ref/fate/adpcm-vima | 1 - tests/ref/fate/adpcm-xa | 1 - tests/ref/fate/adts-id3v1-demux | 1 - tests/ref/fate/adts-id3v2-demux | 1 - tests/ref/fate/adts-id3v2-two-tags-demux | 1 - tests/ref/fate/adtstoasc_ticket3715 | 1 - tests/ref/fate/amrnb-remux | 1 - tests/ref/fate/amrwb-remux | 1 - tests/ref/fate/armovie-escape124 | 1 - tests/ref/fate/bethsoft-vid | 1 - tests/ref/fate/bfi | 1 - tests/ref/fate/bmv-audio | 1 - tests/ref/fate/caf-alac-remux | 1 - tests/ref/fate/caf-amr_nb-remux | 1 - tests/ref/fate/caf-mace6-remux | 1 - tests/ref/fate/caf-pcm_s24-remux | 1 - tests/ref/fate/caf-pcm_s24le-remux | 1 - tests/ref/fate/caf-qdm2-remux | 1 - tests/ref/fate/cdxl-demux | 1 - tests/ref/fate/copy-psp | 1 - tests/ref/fate/copy-shortest1 | 1 - tests/ref/fate/copy-shortest2 | 1 - tests/ref/fate/copy-trac236 | 1 - tests/ref/fate/copy-trac3074 | 1 - tests/ref/fate/copy-trac4914 | 1 - tests/ref/fate/copy-trac4914-avi | 1 - tests/ref/fate/corepng | 1 - tests/ref/fate/cover-art-aiff-id3v2-remux | 1 - tests/ref/fate/cover-art-flac-remux | 6 ++---- tests/ref/fate/cover-art-mp3-id3v2-remux | 1 - tests/ref/fate/creatureshock-avs | 1 - tests/ref/fate/cyberia-c93 | 1 - tests/ref/fate/d-cinema-demux | 1 - tests/ref/fate/dca-xll_51_16_192_768_0 | 1 - tests/ref/fate/dca-xll_51_16_192_768_0-dmix_2 | 1 - tests/ref/fate/dca-xll_51_16_192_768_0-dmix_6 | 1 - tests/ref/fate/dca-xll_51_16_192_768_1 | 1 - tests/ref/fate/dca-xll_51_16_192_768_1-dmix_2 | 1 - tests/ref/fate/dca-xll_51_16_192_768_1-dmix_6 | 1 - tests/ref/fate/dca-xll_51_24_48_768 | 1 - tests/ref/fate/dca-xll_51_24_48_768-dmix_2 | 1 - tests/ref/fate/dca-xll_51_24_48_768-dmix_6 | 1 - tests/ref/fate/dca-xll_51_24_48_none | 1 - tests/ref/fate/dca-xll_51_24_48_none-dmix_2 | 1 - tests/ref/fate/dca-xll_51_24_48_none-dmix_6 | 1 - tests/ref/fate/dca-xll_71_24_48_768_0 | 1 - tests/ref/fate/dca-xll_71_24_48_768_0-dmix_2 | 1 - tests/ref/fate/dca-xll_71_24_48_768_0-dmix_6 | 1 - tests/ref/fate/dca-xll_71_24_48_768_1 | 1 - tests/ref/fate/dca-xll_71_24_48_768_1-dmix_2 | 1 - tests/ref/fate/dca-xll_71_24_48_768_1-dmix_6 | 1 - tests/ref/fate/dca-xll_71_24_96_768 | 1 - tests/ref/fate/dca-xll_71_24_96_768-dmix_2 | 1 - tests/ref/fate/dca-xll_71_24_96_768-dmix_6 | 1 - tests/ref/fate/dca-xll_x96_51_24_96_1509 | 1 - tests/ref/fate/dca-xll_x96_51_24_96_1509-dmix_2 | 1 - tests/ref/fate/dca-xll_x96_51_24_96_1509-dmix_6 | 1 - tests/ref/fate/dca-xll_xch_61_24_48_768 | 1 - tests/ref/fate/dca-xll_xch_61_24_48_768-dmix_2 | 1 - tests/ref/fate/dca-xll_xch_61_24_48_768-dmix_6 | 1 - tests/ref/fate/dcinema-encode | 1 - tests/ref/fate/delphine-cin-audio | 1 - tests/ref/fate/dpcm-idroq | 1 - tests/ref/fate/dpcm-interplay | 1 - tests/ref/fate/dss-lp | 1 - tests/ref/fate/dss-sp | 1 - tests/ref/fate/ffmpeg-attached_pics | 1 - tests/ref/fate/ffmpeg-filter_complex_audio | 1 - tests/ref/fate/filter-acrossfade | 1 - tests/ref/fate/filter-adelay | 1 - tests/ref/fate/filter-aecho | 1 - tests/ref/fate/filter-aemphasis | 2 -- tests/ref/fate/filter-aemphasis-50fm | 1 - tests/ref/fate/filter-aemphasis-75kf | 1 - tests/ref/fate/filter-afade-esin | 1 - tests/ref/fate/filter-afade-exp | 1 - tests/ref/fate/filter-afade-hsin | 1 - tests/ref/fate/filter-afade-iqsin | 1 - tests/ref/fate/filter-afade-log | 1 - tests/ref/fate/filter-afade-qsin | 1 - tests/ref/fate/filter-agate | 1 - tests/ref/fate/filter-alimiter | 1 - tests/ref/fate/filter-amerge | 1 - tests/ref/fate/filter-anequalizer | 1 - tests/ref/fate/filter-apad | 1 - tests/ref/fate/filter-asetnsamples-nopad | 1 - tests/ref/fate/filter-asetnsamples-pad | 1 - tests/ref/fate/filter-asetrate | 1 - tests/ref/fate/filter-atrim-duration | 1 - tests/ref/fate/filter-atrim-mixed | 1 - tests/ref/fate/filter-atrim-samples | 1 - tests/ref/fate/filter-atrim-time | 1 - tests/ref/fate/filter-chorus | 1 - tests/ref/fate/filter-compand | 1 - tests/ref/fate/filter-concat | 1 - tests/ref/fate/filter-concat-vfr | 1 - tests/ref/fate/filter-dcshift | 1 - tests/ref/fate/filter-earwax | 1 - tests/ref/fate/filter-extrastereo | 1 - tests/ref/fate/filter-hls | 1 - tests/ref/fate/filter-hls-append | 1 - tests/ref/fate/filter-meta-4560-rotate0 | 1 - tests/ref/fate/filter-overlay-dvdsub-2397 | 1 - tests/ref/fate/filter-pan-downmix1 | 1 - tests/ref/fate/filter-pan-downmix2 | 1 - tests/ref/fate/filter-pan-mono1 | 1 - tests/ref/fate/filter-pan-mono2 | 1 - tests/ref/fate/filter-pan-stereo1 | 1 - tests/ref/fate/filter-pan-stereo2 | 1 - tests/ref/fate/filter-pan-stereo3 | 1 - tests/ref/fate/filter-pan-stereo4 | 1 - tests/ref/fate/filter-pan-upmix1 | 1 - tests/ref/fate/filter-pan-upmix2 | 1 - tests/ref/fate/filter-silenceremove | 1 - tests/ref/fate/filter-stereotools | 1 - tests/ref/fate/g722-encode | 1 - tests/ref/fate/g722dec-1 | 1 - tests/ref/fate/g723_1-dec-1 | 1 - tests/ref/fate/g723_1-dec-2 | 1 - tests/ref/fate/g723_1-dec-3 | 1 - tests/ref/fate/g723_1-dec-4 | 1 - tests/ref/fate/g723_1-dec-5 | 1 - tests/ref/fate/g723_1-dec-6 | 1 - tests/ref/fate/g723_1-dec-7 | 1 - tests/ref/fate/g723_1-dec-8 | 1 - tests/ref/fate/g726-encode-2bit | 1 - tests/ref/fate/g726-encode-3bit | 1 - tests/ref/fate/g726-encode-4bit | 1 - tests/ref/fate/g726-encode-5bit | 1 - tests/ref/fate/gapless-mp3 | 6 +++--- tests/ref/fate/gsm-ms | 1 - tests/ref/fate/gsm-toast | 1 - tests/ref/fate/h264-skip-nointra | 1 - tests/ref/fate/h264-skip-nokey | 1 - tests/ref/fate/h264-xavc-4389 | 1 - tests/ref/fate/hls-fmp4 | 1 - tests/ref/fate/hls-init-time | 1 - tests/ref/fate/hls-list-size | 1 - tests/ref/fate/hls-segment-single | 1 - tests/ref/fate/hls-segment-size | 1 - tests/ref/fate/id-cin-video | 1 - tests/ref/fate/id3v2-chapters | 1 - tests/ref/fate/id3v2-priv-remux | 1 - tests/ref/fate/jv-demux | 1 - tests/ref/fate/lmlm4-demux | 1 - tests/ref/fate/matroska-flac-channel-mapping | 2 -- tests/ref/fate/matroska-flac-extradata-update | 3 --- tests/ref/fate/matroska-lzo-decompression | 1 - tests/ref/fate/matroska-mastering-display-metadata | 2 -- tests/ref/fate/matroska-mpegts-remux | 2 -- tests/ref/fate/matroska-wavpack-missing-codecprivate | 1 - tests/ref/fate/matroska-xiph-lacing | 1 - tests/ref/fate/maxis-xa | 1 - tests/ref/fate/mkv | 1 - tests/ref/fate/mkv-1242 | 1 - tests/ref/fate/mov-440hz-10ms | 1 - tests/ref/fate/mov-bbi-elst-starts-b | 1 - tests/ref/fate/mov-cover-image | 1 - tests/ref/fate/mov-mp3-demux | 1 - tests/ref/fate/mov-mp4-disposition-mpegts-remux | 2 -- tests/ref/fate/mpegps-remuxed-pcm-demux | 1 - tests/ref/fate/mtv | 1 - tests/ref/fate/mxf-demux | 1 - tests/ref/fate/nsv-demux | 1 - tests/ref/fate/oma-atrac3-remux | 1 - tests/ref/fate/oma-atrac3p-remux | 1 - tests/ref/fate/on2avc | 1 - tests/ref/fate/paf-audio | 1 - tests/ref/fate/paf-demux | 1 - tests/ref/fate/pcm-planar | 1 - tests/ref/fate/pcm_dvd | 1 - tests/ref/fate/pmp-demux | 1 - tests/ref/fate/prores-gray | 1 - tests/ref/fate/prores-transparency | 1 - tests/ref/fate/prores-transparency_skip | 1 - tests/ref/fate/psx-str-demux | 1 - tests/ref/fate/pva-demux | 1 - tests/ref/fate/ra3-144 | 1 - tests/ref/fate/redcode-demux | 1 - tests/ref/fate/s337m-demux | 1 - tests/ref/fate/segment-adts-to-mkv-header-000 | 1 - tests/ref/fate/segment-adts-to-mkv-header-001 | 1 - tests/ref/fate/segment-adts-to-mkv-header-002 | 1 - tests/ref/fate/segment-adts-to-mkv-header-all | 1 - tests/ref/fate/shortest | 1 - tests/ref/fate/sierra-vmd-audio | 1 - tests/ref/fate/siff-demux | 1 - tests/ref/fate/smacker-audio | 1 - tests/ref/fate/smjpeg-demux | 1 - tests/ref/fate/sp5x | 1 - tests/ref/fate/tiertex-seq | 1 - tests/ref/fate/tmv | 1 - tests/ref/fate/tscc-15bit | 1 - tests/ref/fate/vqf-demux | 2 +- tests/ref/fate/wav-ac3 | 1 - tests/ref/fate/wc3movie-xan | 1 - tests/ref/fate/webm-dash-chapters | 1 - tests/ref/fate/westwood-aud | 1 - tests/ref/fate/wmv3-drm-nodec | 1 - tests/ref/fate/wtv-demux | 1 - tests/ref/fate/xmv-demux | 1 - 220 files changed, 11 insertions(+), 234 deletions(-) diff --git a/libavformat/framehash.c b/libavformat/framehash.c index 04c40825b9..abe565548c 100644 --- a/libavformat/framehash.c +++ b/libavformat/framehash.c @@ -35,12 +35,14 @@ int ff_framehash_write_header(AVFormatContext *s) avio_printf(s->pb, "#media_type %d: %s\n", i, av_get_media_type_string(avctx->codec_type)); avio_printf(s->pb, "#codec_id %d: %s\n", i, avcodec_get_name(avctx->codec_id)); switch (avctx->codec_type) { - case AVMEDIA_TYPE_AUDIO: - av_get_channel_layout_string(buf, sizeof(buf), avctx->channels, avctx->channel_layout); + case AVMEDIA_TYPE_AUDIO: { + int ret = av_channel_layout_describe(&avctx->ch_layout, buf, sizeof(buf)); + if (ret < 0) + return ret; avio_printf(s->pb, "#sample_rate %d: %d\n", i,avctx->sample_rate); - avio_printf(s->pb, "#channel_layout %d: %"PRIx64"\n", i,avctx->channel_layout); avio_printf(s->pb, "#channel_layout_name %d: %s\n", i, buf); break; + } case AVMEDIA_TYPE_VIDEO: avio_printf(s->pb, "#dimensions %d: %dx%d\n", i, avctx->width, avctx->height); avio_printf(s->pb, "#sar %d: %d/%d\n", i, st->sample_aspect_ratio.num, st->sample_aspect_ratio.den); diff --git a/tests/ref/fate/8bps b/tests/ref/fate/8bps index dab2b908db..f736bb0b9a 100644 --- a/tests/ref/fate/8bps +++ b/tests/ref/fate/8bps @@ -7,7 +7,6 @@ #media_type 1: audio #codec_id 1: pcm_s16le #sample_rate 1: 22050 -#channel_layout 1: 4 #channel_layout_name 1: mono 0, 0, 0, 1, 259200, 0x7e91df07 1, 0, 0, 1024, 2048, 0x3d042426 diff --git a/tests/ref/fate/aa-demux b/tests/ref/fate/aa-demux index 89350b8803..9534c82eef 100644 --- a/tests/ref/fate/aa-demux +++ b/tests/ref/fate/aa-demux @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: sipr #sample_rate 0: 8500 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 18000, 19, 0x36e10529 0, 18000, 18000, 18000, 19, 0x70810a69 diff --git a/tests/ref/fate/aac-autobsf-adtstoasc b/tests/ref/fate/aac-autobsf-adtstoasc index 2a2823ef9a..b9bfb37142 100644 --- a/tests/ref/fate/aac-autobsf-adtstoasc +++ b/tests/ref/fate/aac-autobsf-adtstoasc @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: aac #sample_rate 0: 16000 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 64, 4, 0x02f70117 0, 64, 64, 64, 163, 0xd5f85007 diff --git a/tests/ref/fate/adpcm-4xm b/tests/ref/fate/adpcm-4xm index cfde412da8..6278639b27 100644 --- a/tests/ref/fate/adpcm-4xm +++ b/tests/ref/fate/adpcm-4xm @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 22050 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1472, 5888, 0x9086e310 0, 1476, 1476, 1472, 5888, 0xac8491f5 diff --git a/tests/ref/fate/adpcm-afc b/tests/ref/fate/adpcm-afc index 6d8e732454..4caf7a8f93 100644 --- a/tests/ref/fate/adpcm-afc +++ b/tests/ref/fate/adpcm-afc @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 17920, 71680, 0x52373bc9 0, 17920, 17920, 17920, 71680, 0x1f854b27 diff --git a/tests/ref/fate/adpcm-dtk b/tests/ref/fate/adpcm-dtk index f3ade6d505..58305d6bd8 100644 --- a/tests/ref/fate/adpcm-dtk +++ b/tests/ref/fate/adpcm-dtk @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 48000 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 896, 3584, 0xdae789d5 0, 896, 896, 896, 3584, 0x168ed9b6 diff --git a/tests/ref/fate/adpcm-ea-1 b/tests/ref/fate/adpcm-ea-1 index 76be8e8511..ea0ba2b04f 100644 --- a/tests/ref/fate/adpcm-ea-1 +++ b/tests/ref/fate/adpcm-ea-1 @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 22050 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1484, 5936, 0x00000000 0, 1484, 1484, 1456, 5824, 0x00000000 diff --git a/tests/ref/fate/adpcm-ea-2 b/tests/ref/fate/adpcm-ea-2 index 91440874a0..e0dc9dccfe 100644 --- a/tests/ref/fate/adpcm-ea-2 +++ b/tests/ref/fate/adpcm-ea-2 @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 22050 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1484, 5936, 0xea261a29 0, 1484, 1484, 1456, 5824, 0x253df061 diff --git a/tests/ref/fate/adpcm-ea-maxis-xa b/tests/ref/fate/adpcm-ea-maxis-xa index c919a67545..be2218424c 100644 --- a/tests/ref/fate/adpcm-ea-maxis-xa +++ b/tests/ref/fate/adpcm-ea-maxis-xa @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 22050 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 28, 112, 0x291d1be4 0, 28, 28, 28, 112, 0xf08d33cc diff --git a/tests/ref/fate/adpcm-ea-r1 b/tests/ref/fate/adpcm-ea-r1 index 4e5fb6788f..46415e72a4 100644 --- a/tests/ref/fate/adpcm-ea-r1 +++ b/tests/ref/fate/adpcm-ea-r1 @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 48000 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1624, 6496, 0x00000000 0, 1624, 1624, 1596, 6384, 0x00000000 diff --git a/tests/ref/fate/adpcm-ima-amv b/tests/ref/fate/adpcm-ima-amv index 2f8c0a2cdf..37583cf810 100644 --- a/tests/ref/fate/adpcm-ima-amv +++ b/tests/ref/fate/adpcm-ima-amv @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 22050 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 1378, 2756, 0x0af35034 0, 1378, 1378, 1378, 2756, 0x8462443f diff --git a/tests/ref/fate/adpcm-ima-ea-eacs b/tests/ref/fate/adpcm-ima-ea-eacs index fcfcbeb175..62da571d7f 100644 --- a/tests/ref/fate/adpcm-ima-ea-eacs +++ b/tests/ref/fate/adpcm-ima-ea-eacs @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 22050 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1468, 5872, 0x00000000 0, 1468, 1468, 1468, 5872, 0x00000000 diff --git a/tests/ref/fate/adpcm-ima-ea-sead b/tests/ref/fate/adpcm-ima-ea-sead index 2d52efe3c0..f78bbe8431 100644 --- a/tests/ref/fate/adpcm-ima-ea-sead +++ b/tests/ref/fate/adpcm-ima-ea-sead @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 22050 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 736, 2944, 0x00000000 0, 736, 736, 1472, 5888, 0x5ae3c2a4 diff --git a/tests/ref/fate/adpcm-ima-smjpeg b/tests/ref/fate/adpcm-ima-smjpeg index a216e3ab5e..723fa2336e 100644 --- a/tests/ref/fate/adpcm-ima-smjpeg +++ b/tests/ref/fate/adpcm-ima-smjpeg @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 22050 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 512, 1024, 0x00000000 0, 512, 512, 512, 1024, 0x00000000 diff --git a/tests/ref/fate/adpcm-ima-ws b/tests/ref/fate/adpcm-ima-ws index b382812d22..5431538bf4 100644 --- a/tests/ref/fate/adpcm-ima-ws +++ b/tests/ref/fate/adpcm-ima-ws @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 22050 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 11024, 22048, 0x0843bbad 0, 11024, 11024, 1470, 2940, 0x16ff454e diff --git a/tests/ref/fate/adpcm-ima-ws-vqa3 b/tests/ref/fate/adpcm-ima-ws-vqa3 index c2f14cd1a8..9c2c6b175b 100644 --- a/tests/ref/fate/adpcm-ima-ws-vqa3 +++ b/tests/ref/fate/adpcm-ima-ws-vqa3 @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 22050 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 1470, 2940, 0xca80b853 0, 1470, 1470, 1470, 2940, 0x250c9f84 diff --git a/tests/ref/fate/adpcm-ms-mono b/tests/ref/fate/adpcm-ms-mono index e3f217d18e..9823ba77b5 100644 --- a/tests/ref/fate/adpcm-ms-mono +++ b/tests/ref/fate/adpcm-ms-mono @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 11025 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 500, 1000, 0x64cd9403 0, 500, 500, 500, 1000, 0xa4ef8a9d diff --git a/tests/ref/fate/adpcm-thp b/tests/ref/fate/adpcm-thp index 592c6610ad..221b2b90b3 100644 --- a/tests/ref/fate/adpcm-thp +++ b/tests/ref/fate/adpcm-thp @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 32000 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1078, 4312, 0x469714f6 0, 1078, 1078, 1064, 4256, 0x6ca28f25 diff --git a/tests/ref/fate/adpcm-vima b/tests/ref/fate/adpcm-vima index b22f128be5..21b8cc4a58 100644 --- a/tests/ref/fate/adpcm-vima +++ b/tests/ref/fate/adpcm-vima @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 22050 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 73500, 294000, 0x37d439ee 0, 73500, 73500, 1470, 5880, 0xe524b177 diff --git a/tests/ref/fate/adpcm-xa b/tests/ref/fate/adpcm-xa index 15b62ec4a5..5207fe743e 100644 --- a/tests/ref/fate/adpcm-xa +++ b/tests/ref/fate/adpcm-xa @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 37800 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 2016, 8064, 0xa307ed8c 0, 2016, 2016, 2016, 8064, 0xd2551927 diff --git a/tests/ref/fate/adts-id3v1-demux b/tests/ref/fate/adts-id3v1-demux index 7caa5d6870..bd8f5b1193 100644 --- a/tests/ref/fate/adts-id3v1-demux +++ b/tests/ref/fate/adts-id3v1-demux @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: aac #sample_rate 0: 48000 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 602112, 474, 0x4c90e7c4 0, 602112, 602112, 602112, 471, 0xb8b5e75d diff --git a/tests/ref/fate/adts-id3v2-demux b/tests/ref/fate/adts-id3v2-demux index db00e3b81e..710350988a 100644 --- a/tests/ref/fate/adts-id3v2-demux +++ b/tests/ref/fate/adts-id3v2-demux @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: aac #sample_rate 0: 48000 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 602112, 126, 0x639a3a5b 0, 602112, 602112, 602112, 135, 0x5b1f3ced diff --git a/tests/ref/fate/adts-id3v2-two-tags-demux b/tests/ref/fate/adts-id3v2-two-tags-demux index 4fffd2e767..5fd8c52f28 100644 --- a/tests/ref/fate/adts-id3v2-two-tags-demux +++ b/tests/ref/fate/adts-id3v2-two-tags-demux @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: aac #sample_rate 0: 48000 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 602112, 128, 0x23291993 0, 602112, 602112, 602112, 128, 0x23291993 diff --git a/tests/ref/fate/adtstoasc_ticket3715 b/tests/ref/fate/adtstoasc_ticket3715 index fbdeeb0582..78d9e71979 100644 --- a/tests/ref/fate/adtstoasc_ticket3715 +++ b/tests/ref/fate/adtstoasc_ticket3715 @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: aac #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1024, 371, 0x14b11a4f 0, 1024, 1024, 1024, 402, 0x2f00c487 diff --git a/tests/ref/fate/amrnb-remux b/tests/ref/fate/amrnb-remux index 4a78c479f2..31d20981a2 100644 --- a/tests/ref/fate/amrnb-remux +++ b/tests/ref/fate/amrnb-remux @@ -4,7 +4,6 @@ #media_type 0: audio #codec_id 0: amr_nb #sample_rate 0: 8000 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 160, 27, 0xc9970c51 0, 160, 160, 160, 27, 0xbaa00d05 diff --git a/tests/ref/fate/amrwb-remux b/tests/ref/fate/amrwb-remux index c350fc0b61..0fd3e457f2 100644 --- a/tests/ref/fate/amrwb-remux +++ b/tests/ref/fate/amrwb-remux @@ -4,7 +4,6 @@ #media_type 0: audio #codec_id 0: amr_wb #sample_rate 0: 16000 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 320, 61, 0xc8891fe9 0, 320, 320, 320, 61, 0xc2562027 diff --git a/tests/ref/fate/armovie-escape124 b/tests/ref/fate/armovie-escape124 index 398ff767b6..ce99446191 100644 --- a/tests/ref/fate/armovie-escape124 +++ b/tests/ref/fate/armovie-escape124 @@ -7,7 +7,6 @@ #media_type 1: audio #codec_id 1: pcm_s16le #sample_rate 1: 44100 -#channel_layout 1: 3 #channel_layout_name 1: stereo 0, 0, 0, 1, 230400, 0xd133e177 1, 0, 0, 44100, 176400, 0xdd61578c diff --git a/tests/ref/fate/bethsoft-vid b/tests/ref/fate/bethsoft-vid index 25a62ae515..a6a0f41af8 100644 --- a/tests/ref/fate/bethsoft-vid +++ b/tests/ref/fate/bethsoft-vid @@ -7,7 +7,6 @@ #media_type 1: audio #codec_id 1: pcm_s16le #sample_rate 1: 11111 -#channel_layout 1: 4 #channel_layout_name 1: mono 0, 0, 0, 1, 192000, 0x00000000 1, 0, 0, 740, 1480, 0x00000000 diff --git a/tests/ref/fate/bfi b/tests/ref/fate/bfi index 277c93543e..e7583a7cd2 100644 --- a/tests/ref/fate/bfi +++ b/tests/ref/fate/bfi @@ -7,7 +7,6 @@ #media_type 1: audio #codec_id 1: pcm_s16le #sample_rate 1: 11025 -#channel_layout 1: 4 #channel_layout_name 1: mono 0, 0, 0, 1, 134400, 0xc218b00c 1, 0, 0, 8884, 17768, 0x07df135c diff --git a/tests/ref/fate/bmv-audio b/tests/ref/fate/bmv-audio index 6e1a4c2fe9..6de8b995cc 100644 --- a/tests/ref/fate/bmv-audio +++ b/tests/ref/fate/bmv-audio @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 22050 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1856, 7424, 0x18540b36 0, 1856, 1856, 1824, 7296, 0x5acd2484 diff --git a/tests/ref/fate/caf-alac-remux b/tests/ref/fate/caf-alac-remux index 97275fd317..f33182b721 100644 --- a/tests/ref/fate/caf-alac-remux +++ b/tests/ref/fate/caf-alac-remux @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: alac #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 0, 32, 0xa0af0dfe 0, 4096, 4096, 0, 6701, 0xa9ddc14e diff --git a/tests/ref/fate/caf-amr_nb-remux b/tests/ref/fate/caf-amr_nb-remux index 0eed36a5cb..7ae3a74741 100644 --- a/tests/ref/fate/caf-amr_nb-remux +++ b/tests/ref/fate/caf-amr_nb-remux @@ -5,7 +5,6 @@ a00bd18f70b66286e67d84f0df034a48 *tests/data/fate/caf-amr_nb-remux.caf #media_type 0: audio #codec_id 0: amr_nb #sample_rate 0: 8000 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 160, 13, 0x2bf906f6 0, 160, 160, 160, 13, 0x28bd0756 diff --git a/tests/ref/fate/caf-mace6-remux b/tests/ref/fate/caf-mace6-remux index 3a0499d793..e674365b3d 100644 --- a/tests/ref/fate/caf-mace6-remux +++ b/tests/ref/fate/caf-mace6-remux @@ -4,7 +4,6 @@ #media_type 0: audio #codec_id 0: mace6 #sample_rate 0: 22050 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 6, 1, 0x00900090 0, 6, 6, 6, 1, 0x00870087 diff --git a/tests/ref/fate/caf-pcm_s24-remux b/tests/ref/fate/caf-pcm_s24-remux index bb3136ef7d..618f6f73e4 100644 --- a/tests/ref/fate/caf-pcm_s24-remux +++ b/tests/ref/fate/caf-pcm_s24-remux @@ -4,7 +4,6 @@ d696d9dc23a82c51c4761f5792e7fa37 *tests/data/fate/caf-pcm_s24-remux.caf #media_type 0: audio #codec_id 0: pcm_s24be #sample_rate 0: 192000 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 682, 4092, 0x71f10ea0 0, 682, 682, 682, 4092, 0x51852317 diff --git a/tests/ref/fate/caf-pcm_s24le-remux b/tests/ref/fate/caf-pcm_s24le-remux index 9520e423cd..bab814c5e3 100644 --- a/tests/ref/fate/caf-pcm_s24le-remux +++ b/tests/ref/fate/caf-pcm_s24le-remux @@ -4,7 +4,6 @@ ee0072a92044cbad68795cf93546c517 *tests/data/fate/caf-pcm_s24le-remux.caf #media_type 0: audio #codec_id 0: pcm_s24le #sample_rate 0: 192000 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 682, 4092, 0xa6320ea0 0, 682, 682, 682, 4092, 0x27732317 diff --git a/tests/ref/fate/caf-qdm2-remux b/tests/ref/fate/caf-qdm2-remux index a3bde1264b..d4f658c163 100644 --- a/tests/ref/fate/caf-qdm2-remux +++ b/tests/ref/fate/caf-qdm2-remux @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: qdm2 #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 0, 370, 0x4d1897fc 0, 4096, 4096, 0, 370, 0xea999da0 diff --git a/tests/ref/fate/cdxl-demux b/tests/ref/fate/cdxl-demux index 324a40f2dc..9b71b18910 100644 --- a/tests/ref/fate/cdxl-demux +++ b/tests/ref/fate/cdxl-demux @@ -7,7 +7,6 @@ #media_type 1: audio #codec_id 1: pcm_s8_planar #sample_rate 1: 11025 -#channel_layout 1: 4 #channel_layout_name 1: mono 0, 0, 0, 1, 22688, 0xc954a244 1, 0, 0, 1884, 1884, 0x06925e3e diff --git a/tests/ref/fate/copy-psp b/tests/ref/fate/copy-psp index 8b2cef87fa..977bef5c3e 100644 --- a/tests/ref/fate/copy-psp +++ b/tests/ref/fate/copy-psp @@ -11,7 +11,6 @@ #media_type 1: audio #codec_id 1: aac #sample_rate 1: 48000 -#channel_layout 1: 3 #channel_layout_name 1: stereo 0, 0, 0, 3003, 37084, 0x021a0d3f 1, 0, 0, 1024, 10, 0x0e270398 diff --git a/tests/ref/fate/copy-shortest1 b/tests/ref/fate/copy-shortest1 index 69204b373a..5038973e4e 100644 --- a/tests/ref/fate/copy-shortest1 +++ b/tests/ref/fate/copy-shortest1 @@ -11,7 +11,6 @@ #media_type 1: audio #codec_id 1: ac3 #sample_rate 1: 44100 -#channel_layout 1: 4 #channel_layout_name 1: mono #stream#, dts, pts, duration, size, hash 1, -256, -256, 1536, 416, e3bd415f62aa927e9273151fdf21ebce diff --git a/tests/ref/fate/copy-shortest2 b/tests/ref/fate/copy-shortest2 index 69204b373a..5038973e4e 100644 --- a/tests/ref/fate/copy-shortest2 +++ b/tests/ref/fate/copy-shortest2 @@ -11,7 +11,6 @@ #media_type 1: audio #codec_id 1: ac3 #sample_rate 1: 44100 -#channel_layout 1: 4 #channel_layout_name 1: mono #stream#, dts, pts, duration, size, hash 1, -256, -256, 1536, 416, e3bd415f62aa927e9273151fdf21ebce diff --git a/tests/ref/fate/copy-trac236 b/tests/ref/fate/copy-trac236 index c34b309b3f..5a9e08ad0c 100644 --- a/tests/ref/fate/copy-trac236 +++ b/tests/ref/fate/copy-trac236 @@ -9,7 +9,6 @@ #media_type 1: audio #codec_id 1: pcm_s16le #sample_rate 1: 48000 -#channel_layout 1: 3 #channel_layout_name 1: stereo 0, 0, 0, 1, 518400, 0x81ab2140 1, 0, 0, 1024, 4096, 0x67dc99a3 diff --git a/tests/ref/fate/copy-trac3074 b/tests/ref/fate/copy-trac3074 index 2ef7e702cd..b6d23f8c1c 100644 --- a/tests/ref/fate/copy-trac3074 +++ b/tests/ref/fate/copy-trac3074 @@ -4,7 +4,6 @@ #media_type 0: audio #codec_id 0: eac3 #sample_rate 0: 48000 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1536, 512, 0x2beaf79f, S=1, 4 0, 1536, 1536, 1536, 512, 0x29ddf9d6 diff --git a/tests/ref/fate/copy-trac4914 b/tests/ref/fate/copy-trac4914 index 743dc8c055..b80db6522f 100644 --- a/tests/ref/fate/copy-trac4914 +++ b/tests/ref/fate/copy-trac4914 @@ -9,7 +9,6 @@ f5150fb82c1bb5a90906fce93dcc3f76 *tests/data/fate/copy-trac4914.mxf #media_type 1: audio #codec_id 1: pcm_s16le #sample_rate 1: 48000 -#channel_layout 1: 3 #channel_layout_name 1: stereo 0, 0, 0, 1, 259200, 0xf36957da 1, 0, 0, 1602, 6408, 0x1dd7b37c diff --git a/tests/ref/fate/copy-trac4914-avi b/tests/ref/fate/copy-trac4914-avi index 0358ead6b8..20006ea05c 100644 --- a/tests/ref/fate/copy-trac4914-avi +++ b/tests/ref/fate/copy-trac4914-avi @@ -9,7 +9,6 @@ #media_type 1: audio #codec_id 1: pcm_s16le #sample_rate 1: 48000 -#channel_layout 1: 3 #channel_layout_name 1: stereo 1, 0, 0, 1152, 4608, 0xb24f5c9d 1, 1152, 1152, 1152, 4608, 0xe2da5c32 diff --git a/tests/ref/fate/corepng b/tests/ref/fate/corepng index 74bb920108..942ceceb95 100644 --- a/tests/ref/fate/corepng +++ b/tests/ref/fate/corepng @@ -7,7 +7,6 @@ #media_type 1: audio #codec_id 1: pcm_s16le #sample_rate 1: 11025 -#channel_layout 1: 4 #channel_layout_name 1: mono 0, 0, 0, 1, 230400, 0x03e25ead 1, 0, 0, 5513, 11026, 0x27ad637c diff --git a/tests/ref/fate/cover-art-aiff-id3v2-remux b/tests/ref/fate/cover-art-aiff-id3v2-remux index c294c5013e..3ca2855eb8 100644 --- a/tests/ref/fate/cover-art-aiff-id3v2-remux +++ b/tests/ref/fate/cover-art-aiff-id3v2-remux @@ -4,7 +4,6 @@ d4a9481090a8bab1a3f072a8108a1d6a *tests/data/fate/cover-art-aiff-id3v2-remux.aif #media_type 0: audio #codec_id 0: pcm_s16be #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo #tb 1: 1/90000 #media_type 1: video diff --git a/tests/ref/fate/cover-art-flac-remux b/tests/ref/fate/cover-art-flac-remux index 3f779828ae..aeb229f853 100644 --- a/tests/ref/fate/cover-art-flac-remux +++ b/tests/ref/fate/cover-art-flac-remux @@ -5,8 +5,7 @@ #media_type 0: audio #codec_id 0: flac #sample_rate 0: 44100 -#channel_layout 0: 5 -#channel_layout_name 0: 2 channels (FL+FC) +#channel_layout_name 0: FL+FC #tb 1: 1/90000 #media_type 1: video #codec_id 1: png @@ -36,8 +35,7 @@ #media_type 6: audio #codec_id 6: pcm_s16le #sample_rate 6: 44100 -#channel_layout 6: 5 -#channel_layout_name 6: 2 channels (FL+FC) +#channel_layout_name 6: FL+FC 0, 0, 0, 4608, 14, 0x242b036d 1, 0, 0, 0, 66888, 0x1fd72743 2, 0, 0, 0, 438706, 0x8bcb753b diff --git a/tests/ref/fate/cover-art-mp3-id3v2-remux b/tests/ref/fate/cover-art-mp3-id3v2-remux index 457f1d5a08..906a646799 100644 --- a/tests/ref/fate/cover-art-mp3-id3v2-remux +++ b/tests/ref/fate/cover-art-mp3-id3v2-remux @@ -4,7 +4,6 @@ c1b55a9a92226cd72d3f53ccd830d127 *tests/data/fate/cover-art-mp3-id3v2-remux.mp3 #media_type 0: audio #codec_id 0: mp3 #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo #tb 1: 1/90000 #media_type 1: video diff --git a/tests/ref/fate/creatureshock-avs b/tests/ref/fate/creatureshock-avs index c8e08c9ff7..19648202b8 100644 --- a/tests/ref/fate/creatureshock-avs +++ b/tests/ref/fate/creatureshock-avs @@ -7,7 +7,6 @@ #media_type 1: audio #codec_id 1: pcm_s16le #sample_rate 1: 22222 -#channel_layout 1: 4 #channel_layout_name 1: mono 0, 0, 0, 1, 188892, 0x9f47a5ec 1, 0, 0, 8186, 16372, 0xfaaab59d diff --git a/tests/ref/fate/cyberia-c93 b/tests/ref/fate/cyberia-c93 index e7a5b5a08d..813ef46829 100644 --- a/tests/ref/fate/cyberia-c93 +++ b/tests/ref/fate/cyberia-c93 @@ -7,7 +7,6 @@ #media_type 1: audio #codec_id 1: pcm_s16le #sample_rate 1: 16129 -#channel_layout 1: 4 #channel_layout_name 1: mono 0, 0, 0, 1, 184320, 0x8433f0f8 1, 0, 0, 14184, 28368, 0xaacc96a5 diff --git a/tests/ref/fate/d-cinema-demux b/tests/ref/fate/d-cinema-demux index 74d00f7bb2..f1e8b5f755 100644 --- a/tests/ref/fate/d-cinema-demux +++ b/tests/ref/fate/d-cinema-demux @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s24daud #sample_rate 0: 96000 -#channel_layout 0: 60f #channel_layout_name 0: 5.1(side) 0, 0, 0, 1875, 36000, 0xd592781d 0, 1875, 1875, 1875, 36000, 0xd592781d diff --git a/tests/ref/fate/dca-xll_51_16_192_768_0 b/tests/ref/fate/dca-xll_51_16_192_768_0 index 6e62c616e2..756d11d868 100644 --- a/tests/ref/fate/dca-xll_51_16_192_768_0 +++ b/tests/ref/fate/dca-xll_51_16_192_768_0 @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 192000 -#channel_layout 0: 60f #channel_layout_name 0: 5.1(side) #stream#, dts, pts, duration, size, hash 0, 0, 0, 2048, 24576, 91ff0dac5df86e798bfef5e573536b08 diff --git a/tests/ref/fate/dca-xll_51_16_192_768_0-dmix_2 b/tests/ref/fate/dca-xll_51_16_192_768_0-dmix_2 index 6e62c616e2..756d11d868 100644 --- a/tests/ref/fate/dca-xll_51_16_192_768_0-dmix_2 +++ b/tests/ref/fate/dca-xll_51_16_192_768_0-dmix_2 @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 192000 -#channel_layout 0: 60f #channel_layout_name 0: 5.1(side) #stream#, dts, pts, duration, size, hash 0, 0, 0, 2048, 24576, 91ff0dac5df86e798bfef5e573536b08 diff --git a/tests/ref/fate/dca-xll_51_16_192_768_0-dmix_6 b/tests/ref/fate/dca-xll_51_16_192_768_0-dmix_6 index 6e62c616e2..756d11d868 100644 --- a/tests/ref/fate/dca-xll_51_16_192_768_0-dmix_6 +++ b/tests/ref/fate/dca-xll_51_16_192_768_0-dmix_6 @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 192000 -#channel_layout 0: 60f #channel_layout_name 0: 5.1(side) #stream#, dts, pts, duration, size, hash 0, 0, 0, 2048, 24576, 91ff0dac5df86e798bfef5e573536b08 diff --git a/tests/ref/fate/dca-xll_51_16_192_768_1 b/tests/ref/fate/dca-xll_51_16_192_768_1 index 6e62c616e2..756d11d868 100644 --- a/tests/ref/fate/dca-xll_51_16_192_768_1 +++ b/tests/ref/fate/dca-xll_51_16_192_768_1 @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 192000 -#channel_layout 0: 60f #channel_layout_name 0: 5.1(side) #stream#, dts, pts, duration, size, hash 0, 0, 0, 2048, 24576, 91ff0dac5df86e798bfef5e573536b08 diff --git a/tests/ref/fate/dca-xll_51_16_192_768_1-dmix_2 b/tests/ref/fate/dca-xll_51_16_192_768_1-dmix_2 index 17896a7cca..21a574fd90 100644 --- a/tests/ref/fate/dca-xll_51_16_192_768_1-dmix_2 +++ b/tests/ref/fate/dca-xll_51_16_192_768_1-dmix_2 @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 192000 -#channel_layout 0: 3 #channel_layout_name 0: stereo #stream#, dts, pts, duration, size, hash 0, 0, 0, 2048, 8192, 0829f71740aab1ab98b33eae21dee122 diff --git a/tests/ref/fate/dca-xll_51_16_192_768_1-dmix_6 b/tests/ref/fate/dca-xll_51_16_192_768_1-dmix_6 index 6e62c616e2..756d11d868 100644 --- a/tests/ref/fate/dca-xll_51_16_192_768_1-dmix_6 +++ b/tests/ref/fate/dca-xll_51_16_192_768_1-dmix_6 @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 192000 -#channel_layout 0: 60f #channel_layout_name 0: 5.1(side) #stream#, dts, pts, duration, size, hash 0, 0, 0, 2048, 24576, 91ff0dac5df86e798bfef5e573536b08 diff --git a/tests/ref/fate/dca-xll_51_24_48_768 b/tests/ref/fate/dca-xll_51_24_48_768 index 2d10583b49..96c936bdc2 100644 --- a/tests/ref/fate/dca-xll_51_24_48_768 +++ b/tests/ref/fate/dca-xll_51_24_48_768 @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: pcm_s24le #sample_rate 0: 48000 -#channel_layout 0: 60f #channel_layout_name 0: 5.1(side) #stream#, dts, pts, duration, size, hash 0, 0, 0, 512, 9216, 13a95890b5f0947d6f058ca9c30a3e01 diff --git a/tests/ref/fate/dca-xll_51_24_48_768-dmix_2 b/tests/ref/fate/dca-xll_51_24_48_768-dmix_2 index be22d7d98e..0527069aef 100644 --- a/tests/ref/fate/dca-xll_51_24_48_768-dmix_2 +++ b/tests/ref/fate/dca-xll_51_24_48_768-dmix_2 @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: pcm_s24le #sample_rate 0: 48000 -#channel_layout 0: 3 #channel_layout_name 0: stereo #stream#, dts, pts, duration, size, hash 0, 0, 0, 512, 3072, d2a70550489de356a2cd6bfc40711204 diff --git a/tests/ref/fate/dca-xll_51_24_48_768-dmix_6 b/tests/ref/fate/dca-xll_51_24_48_768-dmix_6 index 2d10583b49..96c936bdc2 100644 --- a/tests/ref/fate/dca-xll_51_24_48_768-dmix_6 +++ b/tests/ref/fate/dca-xll_51_24_48_768-dmix_6 @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: pcm_s24le #sample_rate 0: 48000 -#channel_layout 0: 60f #channel_layout_name 0: 5.1(side) #stream#, dts, pts, duration, size, hash 0, 0, 0, 512, 9216, 13a95890b5f0947d6f058ca9c30a3e01 diff --git a/tests/ref/fate/dca-xll_51_24_48_none b/tests/ref/fate/dca-xll_51_24_48_none index 17cfd0edb2..6c5b48b26b 100644 --- a/tests/ref/fate/dca-xll_51_24_48_none +++ b/tests/ref/fate/dca-xll_51_24_48_none @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: pcm_s24le #sample_rate 0: 48000 -#channel_layout 0: 60f #channel_layout_name 0: 5.1(side) #stream#, dts, pts, duration, size, hash 0, 0, 0, 1024, 18432, f9debe3f07be68533bf0295e3d2ba68a diff --git a/tests/ref/fate/dca-xll_51_24_48_none-dmix_2 b/tests/ref/fate/dca-xll_51_24_48_none-dmix_2 index 17cfd0edb2..6c5b48b26b 100644 --- a/tests/ref/fate/dca-xll_51_24_48_none-dmix_2 +++ b/tests/ref/fate/dca-xll_51_24_48_none-dmix_2 @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: pcm_s24le #sample_rate 0: 48000 -#channel_layout 0: 60f #channel_layout_name 0: 5.1(side) #stream#, dts, pts, duration, size, hash 0, 0, 0, 1024, 18432, f9debe3f07be68533bf0295e3d2ba68a diff --git a/tests/ref/fate/dca-xll_51_24_48_none-dmix_6 b/tests/ref/fate/dca-xll_51_24_48_none-dmix_6 index 17cfd0edb2..6c5b48b26b 100644 --- a/tests/ref/fate/dca-xll_51_24_48_none-dmix_6 +++ b/tests/ref/fate/dca-xll_51_24_48_none-dmix_6 @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: pcm_s24le #sample_rate 0: 48000 -#channel_layout 0: 60f #channel_layout_name 0: 5.1(side) #stream#, dts, pts, duration, size, hash 0, 0, 0, 1024, 18432, f9debe3f07be68533bf0295e3d2ba68a diff --git a/tests/ref/fate/dca-xll_71_24_48_768_0 b/tests/ref/fate/dca-xll_71_24_48_768_0 index a295d41a92..e74e54d44e 100644 --- a/tests/ref/fate/dca-xll_71_24_48_768_0 +++ b/tests/ref/fate/dca-xll_71_24_48_768_0 @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: pcm_s24le #sample_rate 0: 48000 -#channel_layout 0: 63f #channel_layout_name 0: 7.1 #stream#, dts, pts, duration, size, hash 0, 0, 0, 512, 12288, ca9f8c8eb1b9b311cb79999fa376c7f0 diff --git a/tests/ref/fate/dca-xll_71_24_48_768_0-dmix_2 b/tests/ref/fate/dca-xll_71_24_48_768_0-dmix_2 index f9b7b655a5..2787b6751d 100644 --- a/tests/ref/fate/dca-xll_71_24_48_768_0-dmix_2 +++ b/tests/ref/fate/dca-xll_71_24_48_768_0-dmix_2 @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: pcm_s24le #sample_rate 0: 48000 -#channel_layout 0: 60f #channel_layout_name 0: 5.1(side) #stream#, dts, pts, duration, size, hash 0, 0, 0, 512, 9216, a2b724b146069938f0e2cb82490dea54 diff --git a/tests/ref/fate/dca-xll_71_24_48_768_0-dmix_6 b/tests/ref/fate/dca-xll_71_24_48_768_0-dmix_6 index f9b7b655a5..2787b6751d 100644 --- a/tests/ref/fate/dca-xll_71_24_48_768_0-dmix_6 +++ b/tests/ref/fate/dca-xll_71_24_48_768_0-dmix_6 @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: pcm_s24le #sample_rate 0: 48000 -#channel_layout 0: 60f #channel_layout_name 0: 5.1(side) #stream#, dts, pts, duration, size, hash 0, 0, 0, 512, 9216, a2b724b146069938f0e2cb82490dea54 diff --git a/tests/ref/fate/dca-xll_71_24_48_768_1 b/tests/ref/fate/dca-xll_71_24_48_768_1 index a295d41a92..e74e54d44e 100644 --- a/tests/ref/fate/dca-xll_71_24_48_768_1 +++ b/tests/ref/fate/dca-xll_71_24_48_768_1 @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: pcm_s24le #sample_rate 0: 48000 -#channel_layout 0: 63f #channel_layout_name 0: 7.1 #stream#, dts, pts, duration, size, hash 0, 0, 0, 512, 12288, ca9f8c8eb1b9b311cb79999fa376c7f0 diff --git a/tests/ref/fate/dca-xll_71_24_48_768_1-dmix_2 b/tests/ref/fate/dca-xll_71_24_48_768_1-dmix_2 index 5b01746258..57f1dab0b1 100644 --- a/tests/ref/fate/dca-xll_71_24_48_768_1-dmix_2 +++ b/tests/ref/fate/dca-xll_71_24_48_768_1-dmix_2 @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: pcm_s24le #sample_rate 0: 48000 -#channel_layout 0: 3 #channel_layout_name 0: stereo #stream#, dts, pts, duration, size, hash 0, 0, 0, 512, 3072, d2a70550489de356a2cd6bfc40711204 diff --git a/tests/ref/fate/dca-xll_71_24_48_768_1-dmix_6 b/tests/ref/fate/dca-xll_71_24_48_768_1-dmix_6 index 246b5e0133..5f847e65c4 100644 --- a/tests/ref/fate/dca-xll_71_24_48_768_1-dmix_6 +++ b/tests/ref/fate/dca-xll_71_24_48_768_1-dmix_6 @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: pcm_s24le #sample_rate 0: 48000 -#channel_layout 0: 60f #channel_layout_name 0: 5.1(side) #stream#, dts, pts, duration, size, hash 0, 0, 0, 512, 9216, a2b724b146069938f0e2cb82490dea54 diff --git a/tests/ref/fate/dca-xll_71_24_96_768 b/tests/ref/fate/dca-xll_71_24_96_768 index 418b4b136d..df8ec4da7b 100644 --- a/tests/ref/fate/dca-xll_71_24_96_768 +++ b/tests/ref/fate/dca-xll_71_24_96_768 @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: pcm_s24le #sample_rate 0: 96000 -#channel_layout 0: 63f #channel_layout_name 0: 7.1 #stream#, dts, pts, duration, size, hash 0, 0, 0, 1024, 24576, 0b24a527d66f2b0cab97f37e4cd79987 diff --git a/tests/ref/fate/dca-xll_71_24_96_768-dmix_2 b/tests/ref/fate/dca-xll_71_24_96_768-dmix_2 index 9bd0256c31..b57af93a10 100644 --- a/tests/ref/fate/dca-xll_71_24_96_768-dmix_2 +++ b/tests/ref/fate/dca-xll_71_24_96_768-dmix_2 @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: pcm_s24le #sample_rate 0: 96000 -#channel_layout 0: 60f #channel_layout_name 0: 5.1(side) #stream#, dts, pts, duration, size, hash 0, 0, 0, 1024, 18432, 0a675f172b0e1a171c46dfaa4f1d0f00 diff --git a/tests/ref/fate/dca-xll_71_24_96_768-dmix_6 b/tests/ref/fate/dca-xll_71_24_96_768-dmix_6 index 9bd0256c31..b57af93a10 100644 --- a/tests/ref/fate/dca-xll_71_24_96_768-dmix_6 +++ b/tests/ref/fate/dca-xll_71_24_96_768-dmix_6 @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: pcm_s24le #sample_rate 0: 96000 -#channel_layout 0: 60f #channel_layout_name 0: 5.1(side) #stream#, dts, pts, duration, size, hash 0, 0, 0, 1024, 18432, 0a675f172b0e1a171c46dfaa4f1d0f00 diff --git a/tests/ref/fate/dca-xll_x96_51_24_96_1509 b/tests/ref/fate/dca-xll_x96_51_24_96_1509 index bc83f793a0..838b1dea54 100644 --- a/tests/ref/fate/dca-xll_x96_51_24_96_1509 +++ b/tests/ref/fate/dca-xll_x96_51_24_96_1509 @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: pcm_s24le #sample_rate 0: 96000 -#channel_layout 0: 60f #channel_layout_name 0: 5.1(side) #stream#, dts, pts, duration, size, hash 0, 0, 0, 1024, 18432, f9debe3f07be68533bf0295e3d2ba68a diff --git a/tests/ref/fate/dca-xll_x96_51_24_96_1509-dmix_2 b/tests/ref/fate/dca-xll_x96_51_24_96_1509-dmix_2 index bc83f793a0..838b1dea54 100644 --- a/tests/ref/fate/dca-xll_x96_51_24_96_1509-dmix_2 +++ b/tests/ref/fate/dca-xll_x96_51_24_96_1509-dmix_2 @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: pcm_s24le #sample_rate 0: 96000 -#channel_layout 0: 60f #channel_layout_name 0: 5.1(side) #stream#, dts, pts, duration, size, hash 0, 0, 0, 1024, 18432, f9debe3f07be68533bf0295e3d2ba68a diff --git a/tests/ref/fate/dca-xll_x96_51_24_96_1509-dmix_6 b/tests/ref/fate/dca-xll_x96_51_24_96_1509-dmix_6 index bc83f793a0..838b1dea54 100644 --- a/tests/ref/fate/dca-xll_x96_51_24_96_1509-dmix_6 +++ b/tests/ref/fate/dca-xll_x96_51_24_96_1509-dmix_6 @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: pcm_s24le #sample_rate 0: 96000 -#channel_layout 0: 60f #channel_layout_name 0: 5.1(side) #stream#, dts, pts, duration, size, hash 0, 0, 0, 1024, 18432, f9debe3f07be68533bf0295e3d2ba68a diff --git a/tests/ref/fate/dca-xll_xch_61_24_48_768 b/tests/ref/fate/dca-xll_xch_61_24_48_768 index 19816d93d3..c0eb4aed5f 100644 --- a/tests/ref/fate/dca-xll_xch_61_24_48_768 +++ b/tests/ref/fate/dca-xll_xch_61_24_48_768 @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: pcm_s24le #sample_rate 0: 48000 -#channel_layout 0: 70f #channel_layout_name 0: 6.1 #stream#, dts, pts, duration, size, hash 0, 0, 0, 512, 10752, c3c5b236c266a9090378def1ad497a21 diff --git a/tests/ref/fate/dca-xll_xch_61_24_48_768-dmix_2 b/tests/ref/fate/dca-xll_xch_61_24_48_768-dmix_2 index 1f6989fbe4..0e69ebcf94 100644 --- a/tests/ref/fate/dca-xll_xch_61_24_48_768-dmix_2 +++ b/tests/ref/fate/dca-xll_xch_61_24_48_768-dmix_2 @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: pcm_s24le #sample_rate 0: 48000 -#channel_layout 0: 60f #channel_layout_name 0: 5.1(side) #stream#, dts, pts, duration, size, hash 0, 0, 0, 512, 9216, 652c4e61f9abe9fba9de792242e2d31d diff --git a/tests/ref/fate/dca-xll_xch_61_24_48_768-dmix_6 b/tests/ref/fate/dca-xll_xch_61_24_48_768-dmix_6 index 1f6989fbe4..0e69ebcf94 100644 --- a/tests/ref/fate/dca-xll_xch_61_24_48_768-dmix_6 +++ b/tests/ref/fate/dca-xll_xch_61_24_48_768-dmix_6 @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: pcm_s24le #sample_rate 0: 48000 -#channel_layout 0: 60f #channel_layout_name 0: 5.1(side) #stream#, dts, pts, duration, size, hash 0, 0, 0, 512, 9216, 652c4e61f9abe9fba9de792242e2d31d diff --git a/tests/ref/fate/dcinema-encode b/tests/ref/fate/dcinema-encode index cc53488be1..471820dbda 100644 --- a/tests/ref/fate/dcinema-encode +++ b/tests/ref/fate/dcinema-encode @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 96000 -#channel_layout 0: 60f #channel_layout_name 0: 5.1(side) #stream#, dts, pts, duration, size, hash 0, 0, 0, 341, 4092, 697cddfcd0e21f24782af0705b7048f3 diff --git a/tests/ref/fate/delphine-cin-audio b/tests/ref/fate/delphine-cin-audio index 6fdc8048e4..c144dc68f7 100644 --- a/tests/ref/fate/delphine-cin-audio +++ b/tests/ref/fate/delphine-cin-audio @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 22050 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 88224, 176448, 0x541ddc55 0, 88224, 88224, 1838, 3676, 0xaf455081 diff --git a/tests/ref/fate/dpcm-idroq b/tests/ref/fate/dpcm-idroq index fb45ace2c6..98b50a1f8f 100644 --- a/tests/ref/fate/dpcm-idroq +++ b/tests/ref/fate/dpcm-idroq @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 22050 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 7456, 29824, 0x77e265b7 0, 7456, 7456, 736, 2944, 0x8dcdf50b diff --git a/tests/ref/fate/dpcm-interplay b/tests/ref/fate/dpcm-interplay index 720a98f389..207ef48e91 100644 --- a/tests/ref/fate/dpcm-interplay +++ b/tests/ref/fate/dpcm-interplay @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 22050 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1462, 5848, 0xea04292b 0, 1462, 1462, 1472, 5888, 0x0e59e942 diff --git a/tests/ref/fate/dss-lp b/tests/ref/fate/dss-lp index ab1d5344b5..9b08345d05 100644 --- a/tests/ref/fate/dss-lp +++ b/tests/ref/fate/dss-lp @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 8000 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 240, 480, 0xf1107658 0, 240, 240, 240, 480, 0x50dee179 diff --git a/tests/ref/fate/dss-sp b/tests/ref/fate/dss-sp index f407ce7da0..0984f11ebc 100644 --- a/tests/ref/fate/dss-sp +++ b/tests/ref/fate/dss-sp @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 11025 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 264, 528, 0xa2579e96 0, 264, 264, 264, 528, 0xf9b23172 diff --git a/tests/ref/fate/ffmpeg-attached_pics b/tests/ref/fate/ffmpeg-attached_pics index 48c7ced363..515bef3ca4 100644 --- a/tests/ref/fate/ffmpeg-attached_pics +++ b/tests/ref/fate/ffmpeg-attached_pics @@ -7,7 +7,6 @@ #media_type 1: audio #codec_id 1: pcm_s16le #sample_rate 1: 44100 -#channel_layout 1: 3 #channel_layout_name 1: stereo 0, 0, 0, 1, 120000, 0x748cc771 1, 0, 0, 4096, 16384, 0x00000000 diff --git a/tests/ref/fate/ffmpeg-filter_complex_audio b/tests/ref/fate/ffmpeg-filter_complex_audio index c424675061..0d1f650040 100644 --- a/tests/ref/fate/ffmpeg-filter_complex_audio +++ b/tests/ref/fate/ffmpeg-filter_complex_audio @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: ac3 #sample_rate 0: 44100 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, -256, -256, 1536, 416, 0x3001fb2d 0, 1280, 1280, 1536, 418, 0xba72fc16 diff --git a/tests/ref/fate/filter-acrossfade b/tests/ref/fate/filter-acrossfade index 8d524c4d2e..8737d9da57 100644 --- a/tests/ref/fate/filter-acrossfade +++ b/tests/ref/fate/filter-acrossfade @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 888, 3552, 0x592ce6cc 0, 888, 888, 1024, 4096, 0x20f6f6a9 diff --git a/tests/ref/fate/filter-adelay b/tests/ref/fate/filter-adelay index e3ff763602..6370f66f71 100644 --- a/tests/ref/fate/filter-adelay +++ b/tests/ref/fate/filter-adelay @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1024, 4096, 0x9d7bf760 0, 1024, 1024, 1024, 4096, 0xdf42c46b diff --git a/tests/ref/fate/filter-aecho b/tests/ref/fate/filter-aecho index 2c88c37fbc..706e17e10c 100644 --- a/tests/ref/fate/filter-aecho +++ b/tests/ref/fate/filter-aecho @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1024, 4096, 0x3019edd5 0, 1024, 1024, 1024, 4096, 0x2df2fe2f diff --git a/tests/ref/fate/filter-aemphasis b/tests/ref/fate/filter-aemphasis index 9509e4319a..143a434972 100644 --- a/tests/ref/fate/filter-aemphasis +++ b/tests/ref/fate/filter-aemphasis @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 3 0, 0, 0, 1024, 4096, 0xb9c5fefd 0, 1024, 1024, 1024, 4096, 0xb2ae0a90 0, 2048, 2048, 1024, 4096, 0x97e6e9f3 @@ -266,7 +265,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 3 0, 0, 0, 1024, 4096, 0xfd510c8e 0, 1024, 1024, 1024, 4096, 0x09dcf895 0, 2048, 2048, 1024, 4096, 0xd8cbe29f diff --git a/tests/ref/fate/filter-aemphasis-50fm b/tests/ref/fate/filter-aemphasis-50fm index 649cd449be..d28a7538bf 100644 --- a/tests/ref/fate/filter-aemphasis-50fm +++ b/tests/ref/fate/filter-aemphasis-50fm @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1024, 4096, 0xb9c5fefd 0, 1024, 1024, 1024, 4096, 0xb2ae0a90 diff --git a/tests/ref/fate/filter-aemphasis-75kf b/tests/ref/fate/filter-aemphasis-75kf index 5705e98338..765f32ec4c 100644 --- a/tests/ref/fate/filter-aemphasis-75kf +++ b/tests/ref/fate/filter-aemphasis-75kf @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1024, 4096, 0x7b2101ec 0, 1024, 1024, 1024, 4096, 0x5c16fc93 diff --git a/tests/ref/fate/filter-afade-esin b/tests/ref/fate/filter-afade-esin index f9b910c693..41dfaeb565 100644 --- a/tests/ref/fate/filter-afade-esin +++ b/tests/ref/fate/filter-afade-esin @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1024, 4096, 0x06e0d68a 0, 1024, 1024, 1024, 4096, 0xb325d915 diff --git a/tests/ref/fate/filter-afade-exp b/tests/ref/fate/filter-afade-exp index a0c519cd8b..2a75db1986 100644 --- a/tests/ref/fate/filter-afade-exp +++ b/tests/ref/fate/filter-afade-exp @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1024, 4096, 0x00000000 0, 1024, 1024, 1024, 4096, 0x00000000 diff --git a/tests/ref/fate/filter-afade-hsin b/tests/ref/fate/filter-afade-hsin index 2c6a0e3a1e..b95bac047c 100644 --- a/tests/ref/fate/filter-afade-hsin +++ b/tests/ref/fate/filter-afade-hsin @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1024, 4096, 0x2042232e 0, 1024, 1024, 1024, 4096, 0x2c073cf7 diff --git a/tests/ref/fate/filter-afade-iqsin b/tests/ref/fate/filter-afade-iqsin index fc22baf913..9caa3203a9 100644 --- a/tests/ref/fate/filter-afade-iqsin +++ b/tests/ref/fate/filter-afade-iqsin @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1024, 4096, 0x220e908d 0, 1024, 1024, 1024, 4096, 0xdd65002e diff --git a/tests/ref/fate/filter-afade-log b/tests/ref/fate/filter-afade-log index 99ac0b36d8..f3ba265a68 100644 --- a/tests/ref/fate/filter-afade-log +++ b/tests/ref/fate/filter-afade-log @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1024, 4096, 0xf01adbd3 0, 1024, 1024, 1024, 4096, 0xbbe10f8e diff --git a/tests/ref/fate/filter-afade-qsin b/tests/ref/fate/filter-afade-qsin index 026fbbcc44..df3005edbc 100644 --- a/tests/ref/fate/filter-afade-qsin +++ b/tests/ref/fate/filter-afade-qsin @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1024, 4096, 0xd977ce0f 0, 1024, 1024, 1024, 4096, 0x9333f5b1 diff --git a/tests/ref/fate/filter-agate b/tests/ref/fate/filter-agate index b6e732a86e..e2d9c2ac24 100644 --- a/tests/ref/fate/filter-agate +++ b/tests/ref/fate/filter-agate @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1024, 4096, 0x1af20090 0, 1024, 1024, 1024, 4096, 0x0b05ef2d diff --git a/tests/ref/fate/filter-alimiter b/tests/ref/fate/filter-alimiter index aef9765a83..56cfb614da 100644 --- a/tests/ref/fate/filter-alimiter +++ b/tests/ref/fate/filter-alimiter @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1024, 4096, 0xd4194af4 0, 1024, 1024, 1024, 4096, 0x686af4ab diff --git a/tests/ref/fate/filter-amerge b/tests/ref/fate/filter-amerge index b3e5eb50cc..89c07029fd 100644 --- a/tests/ref/fate/filter-amerge +++ b/tests/ref/fate/filter-amerge @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 2048, 8192, 0x120efa65 0, 2048, 2048, 2048, 8192, 0x7b3cebf7 diff --git a/tests/ref/fate/filter-anequalizer b/tests/ref/fate/filter-anequalizer index caed836bdf..250c9ede91 100644 --- a/tests/ref/fate/filter-anequalizer +++ b/tests/ref/fate/filter-anequalizer @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1024, 4096, 0x8e1bf8e0 0, 1024, 1024, 1024, 4096, 0xe315f564 diff --git a/tests/ref/fate/filter-apad b/tests/ref/fate/filter-apad index 9bf662d46a..79ed050a4b 100644 --- a/tests/ref/fate/filter-apad +++ b/tests/ref/fate/filter-apad @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1024, 4096, 0x29e3eecf 0, 1024, 1024, 1024, 4096, 0x18390b96 diff --git a/tests/ref/fate/filter-asetnsamples-nopad b/tests/ref/fate/filter-asetnsamples-nopad index c1cc01a710..e5306d4516 100644 --- a/tests/ref/fate/filter-asetnsamples-nopad +++ b/tests/ref/fate/filter-asetnsamples-nopad @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 512, 2048, 0xd2dbf701 0, 512, 512, 512, 2048, 0xdb22f7bf diff --git a/tests/ref/fate/filter-asetnsamples-pad b/tests/ref/fate/filter-asetnsamples-pad index 23cf11b8af..80f6e1d574 100644 --- a/tests/ref/fate/filter-asetnsamples-pad +++ b/tests/ref/fate/filter-asetnsamples-pad @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 512, 2048, 0xd2dbf701 0, 512, 512, 512, 2048, 0xdb22f7bf diff --git a/tests/ref/fate/filter-asetrate b/tests/ref/fate/filter-asetrate index 6ffa940361..4b5e87d69e 100644 --- a/tests/ref/fate/filter-asetrate +++ b/tests/ref/fate/filter-asetrate @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 20000 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1024, 4096, 0x29e3eecf 0, 1024, 1024, 1024, 4096, 0x18390b96 diff --git a/tests/ref/fate/filter-atrim-duration b/tests/ref/fate/filter-atrim-duration index fafda1717f..1c4cf57128 100644 --- a/tests/ref/fate/filter-atrim-duration +++ b/tests/ref/fate/filter-atrim-duration @@ -2,6 +2,5 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 4410, 4410, 441, 1764, 0x61e374f7 diff --git a/tests/ref/fate/filter-atrim-mixed b/tests/ref/fate/filter-atrim-mixed index 4cd1d8004f..7f16639406 100644 --- a/tests/ref/fate/filter-atrim-mixed +++ b/tests/ref/fate/filter-atrim-mixed @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 1025, 1025, 1023, 4092, 0x78560a4c 0, 2048, 2048, 1024, 4096, 0xc477fa99 diff --git a/tests/ref/fate/filter-atrim-samples b/tests/ref/fate/filter-atrim-samples index 2d8c9a5235..74dc5d3b26 100644 --- a/tests/ref/fate/filter-atrim-samples +++ b/tests/ref/fate/filter-atrim-samples @@ -2,6 +2,5 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 26, 26, 54, 216, 0x6b376c6c diff --git a/tests/ref/fate/filter-atrim-time b/tests/ref/fate/filter-atrim-time index a0c626c4ba..2f8d87ecbe 100644 --- a/tests/ref/fate/filter-atrim-time +++ b/tests/ref/fate/filter-atrim-time @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 4410, 4410, 710, 2840, 0x658982a3 0, 5120, 5120, 1024, 4096, 0xfd6a0070 diff --git a/tests/ref/fate/filter-chorus b/tests/ref/fate/filter-chorus index 211e60ecb1..97c7919655 100644 --- a/tests/ref/fate/filter-chorus +++ b/tests/ref/fate/filter-chorus @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 22050 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 2048, 4096, 0x1fc6f1f1 0, 2048, 2048, 2048, 4096, 0xe5f7f442 diff --git a/tests/ref/fate/filter-compand b/tests/ref/fate/filter-compand index ac9095f4e3..285416172e 100644 --- a/tests/ref/fate/filter-compand +++ b/tests/ref/fate/filter-compand @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1024, 4096, 0xfc10e61b 0, 1024, 1024, 1024, 4096, 0x8801ef13 diff --git a/tests/ref/fate/filter-concat b/tests/ref/fate/filter-concat index 022697ec5b..42879a45e0 100644 --- a/tests/ref/fate/filter-concat +++ b/tests/ref/fate/filter-concat @@ -7,7 +7,6 @@ #media_type 1: audio #codec_id 1: pcm_s16le #sample_rate 1: 44100 -#channel_layout 1: 4 #channel_layout_name 1: mono 0, 0, 0, 1, 230400, 0x88c4d19a 1, 0, 0, 1024, 2048, 0xb3f10192 diff --git a/tests/ref/fate/filter-concat-vfr b/tests/ref/fate/filter-concat-vfr index 0dece67a07..7c5e12e093 100644 --- a/tests/ref/fate/filter-concat-vfr +++ b/tests/ref/fate/filter-concat-vfr @@ -7,7 +7,6 @@ #media_type 1: audio #codec_id 1: pcm_s16le #sample_rate 1: 44100 -#channel_layout 1: 4 #channel_layout_name 1: mono 0, 0, 0, 0, 230400, 0x88c4d19a 1, 0, 0, 1024, 2048, 0xb3f10192 diff --git a/tests/ref/fate/filter-dcshift b/tests/ref/fate/filter-dcshift index dad3df3ff0..4ad1401a9e 100644 --- a/tests/ref/fate/filter-dcshift +++ b/tests/ref/fate/filter-dcshift @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1024, 4096, 0x96868842 0, 1024, 1024, 1024, 4096, 0xeff98700 diff --git a/tests/ref/fate/filter-earwax b/tests/ref/fate/filter-earwax index 6bfa725b64..7626482899 100644 --- a/tests/ref/fate/filter-earwax +++ b/tests/ref/fate/filter-earwax @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1024, 4096, 0xb7e1f437 0, 1024, 1024, 1024, 4096, 0xa031042a diff --git a/tests/ref/fate/filter-extrastereo b/tests/ref/fate/filter-extrastereo index 179c167792..a94d5f2e95 100644 --- a/tests/ref/fate/filter-extrastereo +++ b/tests/ref/fate/filter-extrastereo @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1024, 4096, 0x29e3eecf 0, 1024, 1024, 1024, 4096, 0x18390b96 diff --git a/tests/ref/fate/filter-hls b/tests/ref/fate/filter-hls index ee3c7b2c62..ed0ecc8e76 100644 --- a/tests/ref/fate/filter-hls +++ b/tests/ref/fate/filter-hls @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 1152, 2304, 0x907cb7fa 0, 1152, 1152, 1152, 2304, 0xb8dc7525 diff --git a/tests/ref/fate/filter-hls-append b/tests/ref/fate/filter-hls-append index 52b7dff480..902571cb52 100644 --- a/tests/ref/fate/filter-hls-append +++ b/tests/ref/fate/filter-hls-append @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 1152, 2304, 0x907cb7fa 0, 26496, 26496, 1152, 2304, 0xb8dc7525 diff --git a/tests/ref/fate/filter-meta-4560-rotate0 b/tests/ref/fate/filter-meta-4560-rotate0 index 97552ffb97..0c33709b77 100644 --- a/tests/ref/fate/filter-meta-4560-rotate0 +++ b/tests/ref/fate/filter-meta-4560-rotate0 @@ -7,7 +7,6 @@ #media_type 1: audio #codec_id 1: pcm_s16le #sample_rate 1: 44100 -#channel_layout 1: 4 #channel_layout_name 1: mono 0, 0, 0, 1, 195840, 0x0602351d 1, 0, 0, 1024, 2048, 0x00000000 diff --git a/tests/ref/fate/filter-overlay-dvdsub-2397 b/tests/ref/fate/filter-overlay-dvdsub-2397 index 483e5fa4e0..7df4f50776 100644 --- a/tests/ref/fate/filter-overlay-dvdsub-2397 +++ b/tests/ref/fate/filter-overlay-dvdsub-2397 @@ -7,7 +7,6 @@ #media_type 1: audio #codec_id 1: dts #sample_rate 1: 48000 -#channel_layout 1: 60f #channel_layout_name 1: 5.1(side) 0, 0, 0, 1, 518400, 0x6b05d48a 1, 27, 27, 10, 2013, 0x68e7b03a diff --git a/tests/ref/fate/filter-pan-downmix1 b/tests/ref/fate/filter-pan-downmix1 index 47d5044dac..85630ab179 100644 --- a/tests/ref/fate/filter-pan-downmix1 +++ b/tests/ref/fate/filter-pan-downmix1 @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 512, 2048, 0xccb10170 0, 512, 512, 512, 2048, 0xc51cf8e7 diff --git a/tests/ref/fate/filter-pan-downmix2 b/tests/ref/fate/filter-pan-downmix2 index 8d3ee10812..4ec18fc7dd 100644 --- a/tests/ref/fate/filter-pan-downmix2 +++ b/tests/ref/fate/filter-pan-downmix2 @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 0 #channel_layout_name 0: 5 channels 0, 0, 0, 186, 1860, 0x2480a20e 0, 186, 186, 186, 1860, 0xde9e9c40 diff --git a/tests/ref/fate/filter-pan-mono1 b/tests/ref/fate/filter-pan-mono1 index 3bd7c25bc1..80afee20a3 100644 --- a/tests/ref/fate/filter-pan-mono1 +++ b/tests/ref/fate/filter-pan-mono1 @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 1024, 2048, 0x750f0a66 0, 1024, 1024, 1024, 2048, 0x155cf063 diff --git a/tests/ref/fate/filter-pan-mono2 b/tests/ref/fate/filter-pan-mono2 index 0867ca9a13..02046aebe2 100644 --- a/tests/ref/fate/filter-pan-mono2 +++ b/tests/ref/fate/filter-pan-mono2 @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 0 #channel_layout_name 0: 1 channels 0, 0, 0, 1024, 2048, 0x6130fb80 0, 1024, 1024, 1024, 2048, 0xd5ef0930 diff --git a/tests/ref/fate/filter-pan-stereo1 b/tests/ref/fate/filter-pan-stereo1 index 3125d4e570..b4270bb113 100644 --- a/tests/ref/fate/filter-pan-stereo1 +++ b/tests/ref/fate/filter-pan-stereo1 @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 682, 2728, 0xaf365458 0, 682, 682, 682, 2728, 0xcd684898 diff --git a/tests/ref/fate/filter-pan-stereo2 b/tests/ref/fate/filter-pan-stereo2 index 7f96799e2c..dcd429a0ce 100644 --- a/tests/ref/fate/filter-pan-stereo2 +++ b/tests/ref/fate/filter-pan-stereo2 @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 682, 2728, 0x35c15e81 0, 682, 682, 682, 2728, 0x770f2e2d diff --git a/tests/ref/fate/filter-pan-stereo3 b/tests/ref/fate/filter-pan-stereo3 index effe11c785..726608b2bc 100644 --- a/tests/ref/fate/filter-pan-stereo3 +++ b/tests/ref/fate/filter-pan-stereo3 @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1024, 4096, 0xa0d1fbb3 0, 1024, 1024, 1024, 4096, 0x598a056c diff --git a/tests/ref/fate/filter-pan-stereo4 b/tests/ref/fate/filter-pan-stereo4 index 6d10ed62a8..92ed0685fe 100644 --- a/tests/ref/fate/filter-pan-stereo4 +++ b/tests/ref/fate/filter-pan-stereo4 @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 0 #channel_layout_name 0: 2 channels 0, 0, 0, 1024, 4096, 0x7bd6fc44 0, 1024, 1024, 1024, 4096, 0xed38ec37 diff --git a/tests/ref/fate/filter-pan-upmix1 b/tests/ref/fate/filter-pan-upmix1 index 87c70a7f1f..c36192c22a 100644 --- a/tests/ref/fate/filter-pan-upmix1 +++ b/tests/ref/fate/filter-pan-upmix1 @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 0 #channel_layout_name 0: 4 channels 0, 0, 0, 1024, 8192, 0xdaadfc44 0, 1024, 1024, 1024, 8192, 0xe6d9ec37 diff --git a/tests/ref/fate/filter-pan-upmix2 b/tests/ref/fate/filter-pan-upmix2 index 56db1c17e1..1084a8f68c 100644 --- a/tests/ref/fate/filter-pan-upmix2 +++ b/tests/ref/fate/filter-pan-upmix2 @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 0 #channel_layout_name 0: 9 channels 0, 0, 0, 512, 9216, 0xd561bb2b 0, 512, 512, 512, 9216, 0x591805f9 diff --git a/tests/ref/fate/filter-silenceremove b/tests/ref/fate/filter-silenceremove index 58b5a38607..26f5651672 100644 --- a/tests/ref/fate/filter-silenceremove +++ b/tests/ref/fate/filter-silenceremove @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 8192, 16384, 0x00000000 0, 8192, 8192, 8192, 16384, 0x00000000 diff --git a/tests/ref/fate/filter-stereotools b/tests/ref/fate/filter-stereotools index 60acaf81b2..60a74893bd 100644 --- a/tests/ref/fate/filter-stereotools +++ b/tests/ref/fate/filter-stereotools @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1024, 4096, 0x48b6d241 0, 1024, 1024, 1024, 4096, 0xe0c4ca9a diff --git a/tests/ref/fate/g722-encode b/tests/ref/fate/g722-encode index d84d62701c..f178c8ca35 100644 --- a/tests/ref/fate/g722-encode +++ b/tests/ref/fate/g722-encode @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 16000 -#channel_layout 0: 4 #channel_layout_name 0: mono #stream#, dts, pts, duration, size, hash 0, 0, 0, 8192, 16384, 1dd9c285eb608038f3257d1a8e02eb75 diff --git a/tests/ref/fate/g722dec-1 b/tests/ref/fate/g722dec-1 index a97fc81fb0..9859984a54 100644 --- a/tests/ref/fate/g722dec-1 +++ b/tests/ref/fate/g722dec-1 @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 16000 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 2048, 4096, 0x4f9228b3 0, 2048, 2048, 2048, 4096, 0xfab58157 diff --git a/tests/ref/fate/g723_1-dec-1 b/tests/ref/fate/g723_1-dec-1 index f7daad1b49..e0adff2754 100644 --- a/tests/ref/fate/g723_1-dec-1 +++ b/tests/ref/fate/g723_1-dec-1 @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 8000 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 240, 480, 0x7f6f3970 0, 240, 240, 240, 480, 0x1105a0d3 diff --git a/tests/ref/fate/g723_1-dec-2 b/tests/ref/fate/g723_1-dec-2 index a403e565d0..04c1ca7385 100644 --- a/tests/ref/fate/g723_1-dec-2 +++ b/tests/ref/fate/g723_1-dec-2 @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 8000 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 240, 480, 0x5d9d9091 0, 240, 240, 240, 480, 0x425095b7 diff --git a/tests/ref/fate/g723_1-dec-3 b/tests/ref/fate/g723_1-dec-3 index e3d3978138..f4a95d13ce 100644 --- a/tests/ref/fate/g723_1-dec-3 +++ b/tests/ref/fate/g723_1-dec-3 @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 8000 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 240, 480, 0xce908869 0, 240, 240, 240, 480, 0xfa63588e diff --git a/tests/ref/fate/g723_1-dec-4 b/tests/ref/fate/g723_1-dec-4 index 309b3afea5..7b092dca16 100644 --- a/tests/ref/fate/g723_1-dec-4 +++ b/tests/ref/fate/g723_1-dec-4 @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 8000 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 240, 480, 0xa697b314 0, 240, 240, 240, 480, 0x43c5dc5a diff --git a/tests/ref/fate/g723_1-dec-5 b/tests/ref/fate/g723_1-dec-5 index 9e37c861a2..9e0b6e4cd5 100644 --- a/tests/ref/fate/g723_1-dec-5 +++ b/tests/ref/fate/g723_1-dec-5 @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 8000 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 240, 480, 0x4dce9773 0, 240, 240, 240, 480, 0xe6367ab8 diff --git a/tests/ref/fate/g723_1-dec-6 b/tests/ref/fate/g723_1-dec-6 index a51e8df9c8..f0e67b14db 100644 --- a/tests/ref/fate/g723_1-dec-6 +++ b/tests/ref/fate/g723_1-dec-6 @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 8000 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 240, 480, 0x4fa1aed9 0, 240, 240, 240, 480, 0x6d7ef391 diff --git a/tests/ref/fate/g723_1-dec-7 b/tests/ref/fate/g723_1-dec-7 index db0ceb85ef..34be011d8e 100644 --- a/tests/ref/fate/g723_1-dec-7 +++ b/tests/ref/fate/g723_1-dec-7 @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 8000 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 240, 480, 0x35e4a1fd 0, 240, 240, 240, 480, 0x2f7bdd60 diff --git a/tests/ref/fate/g723_1-dec-8 b/tests/ref/fate/g723_1-dec-8 index 740ed2b4c7..80ad39498a 100644 --- a/tests/ref/fate/g723_1-dec-8 +++ b/tests/ref/fate/g723_1-dec-8 @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 8000 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 240, 480, 0x17930e0f 0, 240, 240, 240, 480, 0x7c7f4247 diff --git a/tests/ref/fate/g726-encode-2bit b/tests/ref/fate/g726-encode-2bit index 4a83c95760..2aafcc8bf2 100644 --- a/tests/ref/fate/g726-encode-2bit +++ b/tests/ref/fate/g726-encode-2bit @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 8000 -#channel_layout 0: 4 #channel_layout_name 0: mono #stream#, dts, pts, duration, size, hash 0, 0, 0, 16384, 32768, b28b116d2315323aeba6b66b58b7f4ed diff --git a/tests/ref/fate/g726-encode-3bit b/tests/ref/fate/g726-encode-3bit index c551ae608f..96c6b9447b 100644 --- a/tests/ref/fate/g726-encode-3bit +++ b/tests/ref/fate/g726-encode-3bit @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 8000 -#channel_layout 0: 4 #channel_layout_name 0: mono #stream#, dts, pts, duration, size, hash 0, 0, 0, 10920, 21840, 517dd6d1ce566b998251f0d215fa69c0 diff --git a/tests/ref/fate/g726-encode-4bit b/tests/ref/fate/g726-encode-4bit index ea277e12c5..28e9ee0284 100644 --- a/tests/ref/fate/g726-encode-4bit +++ b/tests/ref/fate/g726-encode-4bit @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 8000 -#channel_layout 0: 4 #channel_layout_name 0: mono #stream#, dts, pts, duration, size, hash 0, 0, 0, 8192, 16384, a0cf3a0953adce1a1032a4fd2da00a52 diff --git a/tests/ref/fate/g726-encode-5bit b/tests/ref/fate/g726-encode-5bit index 30c456e864..c7cd7dd1d9 100644 --- a/tests/ref/fate/g726-encode-5bit +++ b/tests/ref/fate/g726-encode-5bit @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 8000 -#channel_layout 0: 4 #channel_layout_name 0: mono #stream#, dts, pts, duration, size, hash 0, 0, 0, 6552, 13104, 6fe3f75df1262c5f956887de9c32df40 diff --git a/tests/ref/fate/gapless-mp3 b/tests/ref/fate/gapless-mp3 index 0b4937792a..578db55534 100644 --- a/tests/ref/fate/gapless-mp3 +++ b/tests/ref/fate/gapless-mp3 @@ -1,5 +1,5 @@ -77ef234e382c15b8afc416ca9c80024b *tests/data/fate/gapless-mp3.out-1 +d7e884aea266b63f1547f1ad10188c08 *tests/data/fate/gapless-mp3.out-1 c96c3ae7bd3300fd2f4debac222de5b7 -c594be833fb94ae91f2734bcba56c359 *tests/data/fate/gapless-mp3.out-2 +75bc539914297a191f40af2d737d7380 *tests/data/fate/gapless-mp3.out-2 c96c3ae7bd3300fd2f4debac222de5b7 -5a285806cad6524a3d6184775e097d24 *tests/data/fate/gapless-mp3.out-3 +ab21e0bd0c2d84426153d4cde919a1e3 *tests/data/fate/gapless-mp3.out-3 diff --git a/tests/ref/fate/gsm-ms b/tests/ref/fate/gsm-ms index 0acf9f6e69..a7bebac0fe 100644 --- a/tests/ref/fate/gsm-ms +++ b/tests/ref/fate/gsm-ms @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 8000 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 320, 640, 0xf79c59ee 0, 320, 320, 320, 640, 0x6e6248be diff --git a/tests/ref/fate/gsm-toast b/tests/ref/fate/gsm-toast index df5e824408..6b272433de 100644 --- a/tests/ref/fate/gsm-toast +++ b/tests/ref/fate/gsm-toast @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 8000 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 64, 128, 0x3ef33f6f 0, 64, 64, 160, 320, 0x2052a4e7 diff --git a/tests/ref/fate/h264-skip-nointra b/tests/ref/fate/h264-skip-nointra index 0259902927..82977ce674 100644 --- a/tests/ref/fate/h264-skip-nointra +++ b/tests/ref/fate/h264-skip-nointra @@ -7,7 +7,6 @@ #media_type 1: audio #codec_id 1: pcm_s16le #sample_rate 1: 48000 -#channel_layout 1: 3 #channel_layout_name 1: stereo 1, 0, 0, 1152, 4608, 0x00000000 1, 1152, 1152, 1152, 4608, 0x00000000 diff --git a/tests/ref/fate/h264-skip-nokey b/tests/ref/fate/h264-skip-nokey index 0259902927..82977ce674 100644 --- a/tests/ref/fate/h264-skip-nokey +++ b/tests/ref/fate/h264-skip-nokey @@ -7,7 +7,6 @@ #media_type 1: audio #codec_id 1: pcm_s16le #sample_rate 1: 48000 -#channel_layout 1: 3 #channel_layout_name 1: stereo 1, 0, 0, 1152, 4608, 0x00000000 1, 1152, 1152, 1152, 4608, 0x00000000 diff --git a/tests/ref/fate/h264-xavc-4389 b/tests/ref/fate/h264-xavc-4389 index 5c76bc222f..b8d957d963 100644 --- a/tests/ref/fate/h264-xavc-4389 +++ b/tests/ref/fate/h264-xavc-4389 @@ -7,7 +7,6 @@ #media_type 1: audio #codec_id 1: pcm_s16le #sample_rate 1: 48000 -#channel_layout 1: 4 #channel_layout_name 1: mono 0, 0, 0, 1, 8294400, 0x9a02ecf2 1, 0, 0, 1920, 3840, 0x38074ac8 diff --git a/tests/ref/fate/hls-fmp4 b/tests/ref/fate/hls-fmp4 index 98b037fc8f..df11c55540 100644 --- a/tests/ref/fate/hls-fmp4 +++ b/tests/ref/fate/hls-fmp4 @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 1152, 2304, 0x907cb7fa 0, 1152, 1152, 1152, 2304, 0xb8dc7525 diff --git a/tests/ref/fate/hls-init-time b/tests/ref/fate/hls-init-time index 5bc12272cc..f1c62d551f 100644 --- a/tests/ref/fate/hls-init-time +++ b/tests/ref/fate/hls-init-time @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 1152, 2304, 0x28123557 0, 1152, 1152, 1152, 2304, 0x838c7e81 diff --git a/tests/ref/fate/hls-list-size b/tests/ref/fate/hls-list-size index cf7fb9fe3a..2dd6ef8426 100644 --- a/tests/ref/fate/hls-list-size +++ b/tests/ref/fate/hls-list-size @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 1152, 2304, 0x9ce3278a 0, 1152, 1152, 1152, 2304, 0x5cd17b17 diff --git a/tests/ref/fate/hls-segment-single b/tests/ref/fate/hls-segment-single index ee3c7b2c62..ed0ecc8e76 100644 --- a/tests/ref/fate/hls-segment-single +++ b/tests/ref/fate/hls-segment-single @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 1152, 2304, 0x907cb7fa 0, 1152, 1152, 1152, 2304, 0xb8dc7525 diff --git a/tests/ref/fate/hls-segment-size b/tests/ref/fate/hls-segment-size index ee3c7b2c62..ed0ecc8e76 100644 --- a/tests/ref/fate/hls-segment-size +++ b/tests/ref/fate/hls-segment-size @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 1152, 2304, 0x907cb7fa 0, 1152, 1152, 1152, 2304, 0xb8dc7525 diff --git a/tests/ref/fate/id-cin-video b/tests/ref/fate/id-cin-video index 671b396a11..e3da4aa071 100644 --- a/tests/ref/fate/id-cin-video +++ b/tests/ref/fate/id-cin-video @@ -7,7 +7,6 @@ #media_type 1: audio #codec_id 1: pcm_s16le #sample_rate 1: 22050 -#channel_layout 1: 3 #channel_layout_name 1: stereo 0, 0, 0, 1, 230400, 0x00000000 1, 0, 0, 1575, 6300, 0xdd759df8 diff --git a/tests/ref/fate/id3v2-chapters b/tests/ref/fate/id3v2-chapters index 5aa8f82af9..c845e88821 100644 --- a/tests/ref/fate/id3v2-chapters +++ b/tests/ref/fate/id3v2-chapters @@ -4,7 +4,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 48000 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1024, 4096, 0xc5b6547b 0, 1024, 1024, 1024, 4096, 0x0f27633e diff --git a/tests/ref/fate/id3v2-priv-remux b/tests/ref/fate/id3v2-priv-remux index a30f68a256..a0f370142e 100644 --- a/tests/ref/fate/id3v2-priv-remux +++ b/tests/ref/fate/id3v2-priv-remux @@ -4,7 +4,6 @@ bb2816e3a05ce136e9ac14479c1ebe24 *tests/data/fate/id3v2-priv-remux.mp3 #media_type 0: audio #codec_id 0: mp3 #sample_rate 0: 48000 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, -155528, -155528, 338688, 192, 0x3774510e, S=1, 10 0, 183160, 183160, 338688, 192, 0x856c5b02 diff --git a/tests/ref/fate/jv-demux b/tests/ref/fate/jv-demux index bf8211074c..b5d3196cf5 100644 --- a/tests/ref/fate/jv-demux +++ b/tests/ref/fate/jv-demux @@ -7,7 +7,6 @@ #media_type 1: audio #codec_id 1: pcm_u8 #sample_rate 1: 22050 -#channel_layout 1: 4 #channel_layout_name 1: mono 0, 0, 0, 1, 6, 0x000a0003 1, 0, 0, 131072, 131072, 0x14c664d6 diff --git a/tests/ref/fate/lmlm4-demux b/tests/ref/fate/lmlm4-demux index b0276d53e9..9bddf58408 100644 --- a/tests/ref/fate/lmlm4-demux +++ b/tests/ref/fate/lmlm4-demux @@ -8,7 +8,6 @@ #media_type 1: audio #codec_id 1: mp2 #sample_rate 1: 48000 -#channel_layout 1: 3 #channel_layout_name 1: stereo 0, 0, -9223372036854775808, 1, 5951, 0xe9118e0d 1, 0, 0, 2160, 768, 0xaebcbebb diff --git a/tests/ref/fate/matroska-flac-channel-mapping b/tests/ref/fate/matroska-flac-channel-mapping index 6d901600e5..25627d6570 100644 --- a/tests/ref/fate/matroska-flac-channel-mapping +++ b/tests/ref/fate/matroska-flac-channel-mapping @@ -4,13 +4,11 @@ #media_type 0: audio #codec_id 0: flac #sample_rate 0: 48000 -#channel_layout 0: 3f #channel_layout_name 0: 5.1 #tb 1: 651/31250000 #media_type 1: audio #codec_id 1: flac #sample_rate 1: 48000 -#channel_layout 1: 60f #channel_layout_name 1: 5.1(side) 0, 0, 0, 4096, 26, 0x50f80431 1, 0, 0, 4096, 26, 0x50f80431 diff --git a/tests/ref/fate/matroska-flac-extradata-update b/tests/ref/fate/matroska-flac-extradata-update index 1a8add7736..42d550b580 100644 --- a/tests/ref/fate/matroska-flac-extradata-update +++ b/tests/ref/fate/matroska-flac-extradata-update @@ -7,19 +7,16 @@ c2b76d47a9f0e9626a4999bd395cae08 *tests/data/fate/matroska-flac-extradata-update #media_type 0: audio #codec_id 0: flac #sample_rate 0: 48000 -#channel_layout 0: 3f #channel_layout_name 0: 5.1 #tb 1: 1/1000 #media_type 1: audio #codec_id 1: flac #sample_rate 1: 48000 -#channel_layout 1: 60f #channel_layout_name 1: 5.1(side) #tb 2: 1/1000 #media_type 2: audio #codec_id 2: flac #sample_rate 2: 48000 -#channel_layout 2: 3f #channel_layout_name 2: 5.1 0, 0, 0, 96, 26, 0x4e160341 1, 0, 0, 96, 26, 0x4e160341 diff --git a/tests/ref/fate/matroska-lzo-decompression b/tests/ref/fate/matroska-lzo-decompression index 241d5adf44..568e32eccc 100644 --- a/tests/ref/fate/matroska-lzo-decompression +++ b/tests/ref/fate/matroska-lzo-decompression @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 4096, 16384, 0x00000000 0, 4096, 4096, 4096, 16384, 0xad7eebf4 diff --git a/tests/ref/fate/matroska-mastering-display-metadata b/tests/ref/fate/matroska-mastering-display-metadata index 8f5d7b6a22..1701f81281 100644 --- a/tests/ref/fate/matroska-mastering-display-metadata +++ b/tests/ref/fate/matroska-mastering-display-metadata @@ -11,13 +11,11 @@ #media_type 1: audio #codec_id 1: pcm_s24le #sample_rate 1: 48000 -#channel_layout 1: 4 #channel_layout_name 1: mono #tb 2: 1/1000 #media_type 2: audio #codec_id 2: pcm_s16be #sample_rate 2: 48000 -#channel_layout 2: 4 #channel_layout_name 2: mono #tb 3: 1/1000 #media_type 3: video diff --git a/tests/ref/fate/matroska-mpegts-remux b/tests/ref/fate/matroska-mpegts-remux index 9478294b8e..148bc0ffbc 100644 --- a/tests/ref/fate/matroska-mpegts-remux +++ b/tests/ref/fate/matroska-mpegts-remux @@ -4,13 +4,11 @@ #media_type 0: audio #codec_id 0: ac3 #sample_rate 0: 48000 -#channel_layout 0: 3 #channel_layout_name 0: stereo #tb 1: 1/1000 #media_type 1: audio #codec_id 1: ac3 #sample_rate 1: 48000 -#channel_layout 1: 3 #channel_layout_name 1: stereo 0, 0, 0, 32, 768, 0xa63778d4 1, 0, 0, 32, 768, 0xa63778d4 diff --git a/tests/ref/fate/matroska-wavpack-missing-codecprivate b/tests/ref/fate/matroska-wavpack-missing-codecprivate index 4645a86ff6..2a91f1c9ca 100644 --- a/tests/ref/fate/matroska-wavpack-missing-codecprivate +++ b/tests/ref/fate/matroska-wavpack-missing-codecprivate @@ -3,7 +3,6 @@ #media_type 0: audio #codec_id 0: wavpack #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 22051, 14778, 0x02819286 0, 22051, 22051, 22052, 14756, 0x21976243 diff --git a/tests/ref/fate/matroska-xiph-lacing b/tests/ref/fate/matroska-xiph-lacing index c74cf9900d..dd00f21e93 100644 --- a/tests/ref/fate/matroska-xiph-lacing +++ b/tests/ref/fate/matroska-xiph-lacing @@ -3,7 +3,6 @@ #media_type 0: audio #codec_id 0: vorbis #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 128, 84, 0x1beb2cc9 0, 128, 128, 576, 533, 0xa5d425e9 diff --git a/tests/ref/fate/maxis-xa b/tests/ref/fate/maxis-xa index ad9d73278b..120ec9e603 100644 --- a/tests/ref/fate/maxis-xa +++ b/tests/ref/fate/maxis-xa @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: adpcm_ea_maxis_xa #sample_rate 0: 22050 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 28, 30, 0x51750711 0, 28, 28, 28, 30, 0x9ca20c2a diff --git a/tests/ref/fate/mkv b/tests/ref/fate/mkv index f9c3037f09..d3dfef76b1 100644 --- a/tests/ref/fate/mkv +++ b/tests/ref/fate/mkv @@ -9,7 +9,6 @@ #media_type 1: audio #codec_id 1: aac #sample_rate 1: 48000 -#channel_layout 1: 3 #channel_layout_name 1: stereo 0, -42, 0, 41, 63501, 0x139d4c99 0, 0, 84, 41, 5368, 0xd964b678, F=0x0 diff --git a/tests/ref/fate/mkv-1242 b/tests/ref/fate/mkv-1242 index 34e5b4aa9c..e025701093 100644 --- a/tests/ref/fate/mkv-1242 +++ b/tests/ref/fate/mkv-1242 @@ -9,7 +9,6 @@ #media_type 1: audio #codec_id 1: aac #sample_rate 1: 48000 -#channel_layout 1: 3 #channel_layout_name 1: stereo 0, -42, 0, 41, 2969, 0xa7016742 0, 0, 42, 41, 135, 0x33af1a9e, F=0x0 diff --git a/tests/ref/fate/mov-440hz-10ms b/tests/ref/fate/mov-440hz-10ms index 498879e52d..77b50d262c 100644 --- a/tests/ref/fate/mov-440hz-10ms +++ b/tests/ref/fate/mov-440hz-10ms @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 4 #channel_layout_name 0: mono #stream#, dts, pts, duration, size, hash 0, 0, 0, 960, 1920, 44e7e48ff08835ce30e93c7971dae7df diff --git a/tests/ref/fate/mov-bbi-elst-starts-b b/tests/ref/fate/mov-bbi-elst-starts-b index 3ba28b5e75..f6c2c56eb2 100644 --- a/tests/ref/fate/mov-bbi-elst-starts-b +++ b/tests/ref/fate/mov-bbi-elst-starts-b @@ -10,7 +10,6 @@ #media_type 1: audio #codec_id 1: pcm_s16le #sample_rate 1: 48000 -#channel_layout 1: 3 #channel_layout_name 1: stereo #stream#, dts, pts, duration, size, hash 0, 0, 0, 1, 3110400, e9454409af76038dbe56e834921d2fa8 diff --git a/tests/ref/fate/mov-cover-image b/tests/ref/fate/mov-cover-image index 6141646afa..5f65c630ea 100644 --- a/tests/ref/fate/mov-cover-image +++ b/tests/ref/fate/mov-cover-image @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: aac #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo #tb 1: 1/90000 #media_type 1: video diff --git a/tests/ref/fate/mov-mp3-demux b/tests/ref/fate/mov-mp3-demux index 1930960640..77ec4acedf 100644 --- a/tests/ref/fate/mov-mp3-demux +++ b/tests/ref/fate/mov-mp3-demux @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: mp3 #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1152, 36, 0x8e260589 0, 1152, 1152, 1152, 36, 0x8e260589 diff --git a/tests/ref/fate/mov-mp4-disposition-mpegts-remux b/tests/ref/fate/mov-mp4-disposition-mpegts-remux index 184b952e04..efef043074 100644 --- a/tests/ref/fate/mov-mp4-disposition-mpegts-remux +++ b/tests/ref/fate/mov-mp4-disposition-mpegts-remux @@ -4,13 +4,11 @@ adb3b95c07a5f3e0c86641dd62f01dae *tests/data/fate/mov-mp4-disposition-mpegts-rem #media_type 0: audio #codec_id 0: ac3 #sample_rate 0: 48000 -#channel_layout 0: 3 #channel_layout_name 0: stereo #tb 1: 1/48000 #media_type 1: audio #codec_id 1: ac3 #sample_rate 1: 48000 -#channel_layout 1: 3 #channel_layout_name 1: stereo 1, 0, 0, 1536, 768, 0xa63778d4, S=1, 4 1, 1536, 1536, 1536, 768, 0x7d577f3f diff --git a/tests/ref/fate/mpegps-remuxed-pcm-demux b/tests/ref/fate/mpegps-remuxed-pcm-demux index b5b277868f..20173d3a44 100644 --- a/tests/ref/fate/mpegps-remuxed-pcm-demux +++ b/tests/ref/fate/mpegps-remuxed-pcm-demux @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_dvd #sample_rate 0: 44100 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 2040, 2005, 0x8e98e563 0, 2090, 2090, 2069, 2033, 0xd6f2f455 diff --git a/tests/ref/fate/mtv b/tests/ref/fate/mtv index 7b17bc1b6c..a4647a39ac 100644 --- a/tests/ref/fate/mtv +++ b/tests/ref/fate/mtv @@ -8,7 +8,6 @@ #media_type 1: audio #codec_id 1: mp3 #sample_rate 1: 44100 -#channel_layout 1: 3 #channel_layout_name 1: stereo 0, 0, 0, 1, 12288, 0xc2258ebc 1, 0, 0, 1152, 417, 0xae1cc66a diff --git a/tests/ref/fate/mxf-demux b/tests/ref/fate/mxf-demux index 906a6d0638..3010ca2177 100644 --- a/tests/ref/fate/mxf-demux +++ b/tests/ref/fate/mxf-demux @@ -8,7 +8,6 @@ #media_type 1: audio #codec_id 1: pcm_alaw #sample_rate 1: 8000 -#channel_layout 1: 3 #channel_layout_name 1: stereo 0, 0, -9223372036854775808, 1, 8468, 0xc0855553 1, 0, 0, 16000, 32000, 0x479155e6 diff --git a/tests/ref/fate/nsv-demux b/tests/ref/fate/nsv-demux index bff871dabe..540079ad44 100644 --- a/tests/ref/fate/nsv-demux +++ b/tests/ref/fate/nsv-demux @@ -7,7 +7,6 @@ #media_type 1: audio #codec_id 1: mp3 #sample_rate 1: 11025 -#channel_layout 1: 4 #channel_layout_name 1: mono 0, 0, 0, 1, 12, 0x1396035f 0, 1, 1, 1, 24, 0x8ab80ac7, F=0x0 diff --git a/tests/ref/fate/oma-atrac3-remux b/tests/ref/fate/oma-atrac3-remux index fb402c43c6..d807c6cfb0 100644 --- a/tests/ref/fate/oma-atrac3-remux +++ b/tests/ref/fate/oma-atrac3-remux @@ -5,7 +5,6 @@ #media_type 0: audio #codec_id 0: atrac3 #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1024, 384, 0xdfded1b5 0, 1024, 1024, 1024, 384, 0xd8e3badd diff --git a/tests/ref/fate/oma-atrac3p-remux b/tests/ref/fate/oma-atrac3p-remux index d909fdaee9..7d1cd962e5 100644 --- a/tests/ref/fate/oma-atrac3p-remux +++ b/tests/ref/fate/oma-atrac3p-remux @@ -4,7 +4,6 @@ #media_type 0: audio #codec_id 0: atrac3p #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 2048, 1488, 0x69b7fad9 0, 2048, 2048, 2048, 1488, 0x3c43fdb8 diff --git a/tests/ref/fate/on2avc b/tests/ref/fate/on2avc index a9d6cbcea9..2475c1498a 100644 --- a/tests/ref/fate/on2avc +++ b/tests/ref/fate/on2avc @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 16000 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 1024, 2048, 0x00000000 0, 1024, 1024, 1024, 2048, 0x96ee1301 diff --git a/tests/ref/fate/paf-audio b/tests/ref/fate/paf-audio index a9ed9e99fe..b2fbc094eb 100644 --- a/tests/ref/fate/paf-audio +++ b/tests/ref/fate/paf-audio @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 22050 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 57330, 229320, 0x062508b4 0, 57330, 57330, 57330, 229320, 0x0a966cbf diff --git a/tests/ref/fate/paf-demux b/tests/ref/fate/paf-demux index 6a66697af8..a0d1f44843 100644 --- a/tests/ref/fate/paf-demux +++ b/tests/ref/fate/paf-demux @@ -7,7 +7,6 @@ #media_type 1: audio #codec_id 1: paf_audio #sample_rate 1: 22050 -#channel_layout 1: 3 #channel_layout_name 1: stereo 0, 0, 0, 1, 262144, 0x7f9a3c6a 1, 0, 0, 57330, 131072, 0x255a6ac2 diff --git a/tests/ref/fate/pcm-planar b/tests/ref/fate/pcm-planar index 8b6c96181a..b1d988bb75 100644 --- a/tests/ref/fate/pcm-planar +++ b/tests/ref/fate/pcm-planar @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1471, 5884, 0x00000000 0, 1471, 1471, 1471, 5884, 0x00000000 diff --git a/tests/ref/fate/pcm_dvd b/tests/ref/fate/pcm_dvd index 2a24156284..61ddcaef17 100644 --- a/tests/ref/fate/pcm_dvd +++ b/tests/ref/fate/pcm_dvd @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 48000 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 334, 1336, 0x8e3c0abc 0, 400, 400, 334, 1336, 0x99c41108 diff --git a/tests/ref/fate/pmp-demux b/tests/ref/fate/pmp-demux index 5c51b8b453..90475e398d 100644 --- a/tests/ref/fate/pmp-demux +++ b/tests/ref/fate/pmp-demux @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: mp3 #sample_rate 0: 44100 -#channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1152, 417, 0xcb873fba 0, 1152, 1152, 1152, 104, 0x6d521c5a diff --git a/tests/ref/fate/prores-gray b/tests/ref/fate/prores-gray index a1a63fa945..08fcf2473d 100644 --- a/tests/ref/fate/prores-gray +++ b/tests/ref/fate/prores-gray @@ -7,7 +7,6 @@ #media_type 1: audio #codec_id 1: pcm_s16le #sample_rate 1: 48000 -#channel_layout 1: 3 #channel_layout_name 1: stereo 0, 0, 0, 1, 1658880, 0x43d9c9e2 1, 0, 0, 1024, 4096, 0x6c8a9a18 diff --git a/tests/ref/fate/prores-transparency b/tests/ref/fate/prores-transparency index 4e88152834..246e0b26aa 100644 --- a/tests/ref/fate/prores-transparency +++ b/tests/ref/fate/prores-transparency @@ -7,7 +7,6 @@ #media_type 1: audio #codec_id 1: pcm_s16le #sample_rate 1: 48000 -#channel_layout 1: 3 #channel_layout_name 1: stereo 0, 0, 0, 1, 16588800, 0xcfb3d806 1, 0, 0, 1024, 4096, 0x00000000 diff --git a/tests/ref/fate/prores-transparency_skip b/tests/ref/fate/prores-transparency_skip index 82c180d174..3f5fa0a13f 100644 --- a/tests/ref/fate/prores-transparency_skip +++ b/tests/ref/fate/prores-transparency_skip @@ -7,7 +7,6 @@ #media_type 1: audio #codec_id 1: pcm_s16le #sample_rate 1: 48000 -#channel_layout 1: 3 #channel_layout_name 1: stereo 0, 0, 0, 1, 12441600, 0x74f53304 1, 0, 0, 1024, 4096, 0x00000000 diff --git a/tests/ref/fate/psx-str-demux b/tests/ref/fate/psx-str-demux index a47c86952f..18a21b0bb6 100644 --- a/tests/ref/fate/psx-str-demux +++ b/tests/ref/fate/psx-str-demux @@ -7,7 +7,6 @@ #media_type 1: audio #codec_id 1: adpcm_xa #sample_rate 1: 37800 -#channel_layout 1: 3 #channel_layout_name 1: stereo 0, 0, 0, 1, 8832, 0x01ad3eeb 1, 0, 0, 1, 2304, 0xf0ad1000 diff --git a/tests/ref/fate/pva-demux b/tests/ref/fate/pva-demux index 3f1c74f366..5c0e1c1ea0 100644 --- a/tests/ref/fate/pva-demux +++ b/tests/ref/fate/pva-demux @@ -7,7 +7,6 @@ #media_type 1: audio #codec_id 1: mp2 #sample_rate 1: 48000 -#channel_layout 1: 3 #channel_layout_name 1: stereo 1, 0, 0, 2160, 384, 0x071abcc8 1, 2160, 2160, 2160, 384, 0x31c9aee0 diff --git a/tests/ref/fate/ra3-144 b/tests/ref/fate/ra3-144 index 75e7bbfc7a..3068227cb9 100644 --- a/tests/ref/fate/ra3-144 +++ b/tests/ref/fate/ra3-144 @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 8000 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 160, 320, 0x00000000 0, 160, 160, 160, 320, 0x4cfd5d74 diff --git a/tests/ref/fate/redcode-demux b/tests/ref/fate/redcode-demux index 45119ec71e..4815a8b8c7 100644 --- a/tests/ref/fate/redcode-demux +++ b/tests/ref/fate/redcode-demux @@ -7,7 +7,6 @@ #media_type 1: audio #codec_id 1: pcm_s32be #sample_rate 1: 48000 -#channel_layout 1: 4 #channel_layout_name 1: mono 0, 0, 0, 10010, 1626280, 0x5768c7d6 1, 0, 0, 18140, 14816, 0xd185e8c7 diff --git a/tests/ref/fate/s337m-demux b/tests/ref/fate/s337m-demux index 2857c65aee..42ef4df275 100644 --- a/tests/ref/fate/s337m-demux +++ b/tests/ref/fate/s337m-demux @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: dolby_e #sample_rate 0: 44800 -#channel_layout 0: 60f #channel_layout_name 0: 5.1(side) 0, 0, 0, 3600, 7664, 0x7e73f2fd 0, 3600, 3600, 3600, 7664, 0x8b980ec8 diff --git a/tests/ref/fate/segment-adts-to-mkv-header-000 b/tests/ref/fate/segment-adts-to-mkv-header-000 index 294aa2346f..91729811fc 100644 --- a/tests/ref/fate/segment-adts-to-mkv-header-000 +++ b/tests/ref/fate/segment-adts-to-mkv-header-000 @@ -3,7 +3,6 @@ #media_type 0: audio #codec_id 0: aac #sample_rate 0: 16000 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 64, 4, 0x02f70117 0, 64, 64, 64, 163, 0xd5f85007 diff --git a/tests/ref/fate/segment-adts-to-mkv-header-001 b/tests/ref/fate/segment-adts-to-mkv-header-001 index ec4669f12c..e24282e3e4 100644 --- a/tests/ref/fate/segment-adts-to-mkv-header-001 +++ b/tests/ref/fate/segment-adts-to-mkv-header-001 @@ -3,7 +3,6 @@ #media_type 0: audio #codec_id 0: aac #sample_rate 0: 16000 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 64, 153, 0xbb6e432f 0, 64, 64, 64, 185, 0xa01f4ff3 diff --git a/tests/ref/fate/segment-adts-to-mkv-header-002 b/tests/ref/fate/segment-adts-to-mkv-header-002 index 06df824565..fc42d8ad00 100644 --- a/tests/ref/fate/segment-adts-to-mkv-header-002 +++ b/tests/ref/fate/segment-adts-to-mkv-header-002 @@ -3,7 +3,6 @@ #media_type 0: audio #codec_id 0: aac #sample_rate 0: 16000 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 64, 156, 0x867d4f3a 0, 64, 64, 64, 201, 0x62745ff9 diff --git a/tests/ref/fate/segment-adts-to-mkv-header-all b/tests/ref/fate/segment-adts-to-mkv-header-all index 9c78d33477..dd2ec9a99e 100644 --- a/tests/ref/fate/segment-adts-to-mkv-header-all +++ b/tests/ref/fate/segment-adts-to-mkv-header-all @@ -3,7 +3,6 @@ #media_type 0: audio #codec_id 0: aac #sample_rate 0: 16000 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 64, 4, 0x02f70117 0, 64, 64, 64, 163, 0xd5f85007 diff --git a/tests/ref/fate/shortest b/tests/ref/fate/shortest index 64b5bed312..a527bfd544 100644 --- a/tests/ref/fate/shortest +++ b/tests/ref/fate/shortest @@ -7,7 +7,6 @@ #media_type 1: audio #codec_id 1: ac3 #sample_rate 1: 44100 -#channel_layout 1: 4 #channel_layout_name 1: mono 1, -256, -256, 1536, 416, 0xef8ccbe3 0, 0, 0, 1, 8749, 0x57039d10, S=1, 8 diff --git a/tests/ref/fate/sierra-vmd-audio b/tests/ref/fate/sierra-vmd-audio index 9c0e6b2db1..7bed6e64ae 100644 --- a/tests/ref/fate/sierra-vmd-audio +++ b/tests/ref/fate/sierra-vmd-audio @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 22050 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 61740, 123480, 0x3a794c13 0, 61740, 61740, 2205, 4410, 0x109d04e0 diff --git a/tests/ref/fate/siff-demux b/tests/ref/fate/siff-demux index f8e9897931..a6d47cee66 100644 --- a/tests/ref/fate/siff-demux +++ b/tests/ref/fate/siff-demux @@ -7,7 +7,6 @@ #media_type 1: audio #codec_id 1: pcm_u8 #sample_rate 1: 22050 -#channel_layout 1: 4 #channel_layout_name 1: mono 0, 0, 0, 1, 15152, 0x14fc0f1f 1, 0, 0, 22050, 22050, 0xa7d60d27 diff --git a/tests/ref/fate/smacker-audio b/tests/ref/fate/smacker-audio index 6b867874d9..4703501bcb 100644 --- a/tests/ref/fate/smacker-audio +++ b/tests/ref/fate/smacker-audio @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: pcm_s16le #sample_rate 0: 22050 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 23620, 47240, 0x9974897c 0, 23620, 23620, 1564, 3128, 0x7e4064b4 diff --git a/tests/ref/fate/smjpeg-demux b/tests/ref/fate/smjpeg-demux index cb2da6909d..e394f3839e 100644 --- a/tests/ref/fate/smjpeg-demux +++ b/tests/ref/fate/smjpeg-demux @@ -7,7 +7,6 @@ #media_type 1: audio #codec_id 1: adpcm_ima_smjpeg #sample_rate 1: 22050 -#channel_layout 1: 4 #channel_layout_name 1: mono 0, 0, 0, 111, 734, 0x5a042c2c 1, 0, 0, 23, 260, 0x00000000 diff --git a/tests/ref/fate/sp5x b/tests/ref/fate/sp5x index 2ca79815ee..6b8fbfc3d8 100644 --- a/tests/ref/fate/sp5x +++ b/tests/ref/fate/sp5x @@ -7,7 +7,6 @@ #media_type 1: audio #codec_id 1: pcm_s16le #sample_rate 1: 8000 -#channel_layout 1: 4 #channel_layout_name 1: mono 0, 0, 0, 1, 115200, 0x8ebcb7f8 1, 0, 0, 1024, 2048, 0x366ee71c diff --git a/tests/ref/fate/tiertex-seq b/tests/ref/fate/tiertex-seq index 1db906ad33..8bd0b50539 100644 --- a/tests/ref/fate/tiertex-seq +++ b/tests/ref/fate/tiertex-seq @@ -7,7 +7,6 @@ #media_type 1: audio #codec_id 1: pcm_s16le #sample_rate 1: 22050 -#channel_layout 1: 4 #channel_layout_name 1: mono 1, 0, 0, 882, 1764, 0x00000000 1, 882, 882, 882, 1764, 0x80a253d9 diff --git a/tests/ref/fate/tmv b/tests/ref/fate/tmv index 09198fab2b..ccfaa0d980 100644 --- a/tests/ref/fate/tmv +++ b/tests/ref/fate/tmv @@ -7,7 +7,6 @@ #media_type 1: audio #codec_id 1: pcm_s16le #sample_rate 1: 22058 -#channel_layout 1: 4 #channel_layout_name 1: mono 0, 0, 0, 1, 192000, 0xc698297a 1, 0, 0, 368, 736, 0xf63db497 diff --git a/tests/ref/fate/tscc-15bit b/tests/ref/fate/tscc-15bit index ded8ad43e0..be81d891e2 100644 --- a/tests/ref/fate/tscc-15bit +++ b/tests/ref/fate/tscc-15bit @@ -7,7 +7,6 @@ #media_type 1: audio #codec_id 1: pcm_s16le #sample_rate 1: 11025 -#channel_layout 1: 4 #channel_layout_name 1: mono 0, 0, 0, 1, 657600, 0x50b3a0c2 1, 0, 0, 11025, 22050, 0x1740aaec diff --git a/tests/ref/fate/vqf-demux b/tests/ref/fate/vqf-demux index d768ddbb69..2669d8cc18 100644 --- a/tests/ref/fate/vqf-demux +++ b/tests/ref/fate/vqf-demux @@ -1 +1 @@ -5f4cd9a6a8bea0040db6732a7830e9d7 +e42a45601a4a7c39436907c5cdfde5ee diff --git a/tests/ref/fate/wav-ac3 b/tests/ref/fate/wav-ac3 index 039e155daf..b20403e612 100644 --- a/tests/ref/fate/wav-ac3 +++ b/tests/ref/fate/wav-ac3 @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: ac3 #sample_rate 0: 44100 -#channel_layout 0: 60f #channel_layout_name 0: 5.1(side) 0, 0, 0, 1536, 2786, 0xe2fd0f40 0, 1536, 1536, 1536, 2786, 0x7a6207c2 diff --git a/tests/ref/fate/wc3movie-xan b/tests/ref/fate/wc3movie-xan index 052dbbce7d..4acb0a3b59 100644 --- a/tests/ref/fate/wc3movie-xan +++ b/tests/ref/fate/wc3movie-xan @@ -7,7 +7,6 @@ #media_type 1: audio #codec_id 1: pcm_s16le #sample_rate 1: 22050 -#channel_layout 1: 4 #channel_layout_name 1: mono 0, 0, 0, 1, 158400, 0x25aec781 1, 0, 0, 1470, 2940, 0x92cee2a6 diff --git a/tests/ref/fate/webm-dash-chapters b/tests/ref/fate/webm-dash-chapters index c04fc6a3ee..33ba3c7bf3 100644 --- a/tests/ref/fate/webm-dash-chapters +++ b/tests/ref/fate/webm-dash-chapters @@ -5,7 +5,6 @@ c39ad75ef516d1d2e1332d960ad1057b *tests/data/fate/webm-dash-chapters.webm #media_type 0: audio #codec_id 0: vorbis #sample_rate 0: 44100 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 5, 28, 0xefcf103e 0, 6, 6, 26, 198, 0xfbbe5eb5 diff --git a/tests/ref/fate/westwood-aud b/tests/ref/fate/westwood-aud index b719c50a4d..cc9d1f0460 100644 --- a/tests/ref/fate/westwood-aud +++ b/tests/ref/fate/westwood-aud @@ -2,7 +2,6 @@ #media_type 0: audio #codec_id 0: adpcm_ima_ws #sample_rate 0: 22050 -#channel_layout 0: 4 #channel_layout_name 0: mono 0, 0, 0, 1024, 512, 0x6694cc55 0, 1024, 1024, 1024, 512, 0xdbc5cb22 diff --git a/tests/ref/fate/wmv3-drm-nodec b/tests/ref/fate/wmv3-drm-nodec index a46c338d54..9ed8bc8575 100644 --- a/tests/ref/fate/wmv3-drm-nodec +++ b/tests/ref/fate/wmv3-drm-nodec @@ -9,7 +9,6 @@ #media_type 1: audio #codec_id 1: wmavoice #sample_rate 1: 22050 -#channel_layout 1: 4 #channel_layout_name 1: mono 0, 0, 0, 0, 282, 0x000d949a 1, 0, 0, 0, 1088, 0x5cd379bb diff --git a/tests/ref/fate/wtv-demux b/tests/ref/fate/wtv-demux index abe85a4ab6..5d1a02fc6e 100644 --- a/tests/ref/fate/wtv-demux +++ b/tests/ref/fate/wtv-demux @@ -9,7 +9,6 @@ #media_type 1: audio #codec_id 1: mp2 #sample_rate 1: 48000 -#channel_layout 1: 3 #channel_layout_name 1: stereo 1, -2, -2, 240000, 576, 0x9b6e1638 1, 239998, 239998, 240000, 576, 0x0ca91183 diff --git a/tests/ref/fate/xmv-demux b/tests/ref/fate/xmv-demux index 6da2b1a701..9cc26e41c3 100644 --- a/tests/ref/fate/xmv-demux +++ b/tests/ref/fate/xmv-demux @@ -8,7 +8,6 @@ #media_type 1: audio #codec_id 1: adpcm_ima_wav #sample_rate 1: 44100 -#channel_layout 1: 3 #channel_layout_name 1: stereo 0, 0, 0, 0, 1508, 0xefceba48 1, 0, 0, 83, 5976, 0xfa2c2db9 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); } From patchwork Thu Jan 13 01:50:25 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33347 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp20483iog; Wed, 12 Jan 2022 18:05:28 -0800 (PST) X-Google-Smtp-Source: ABdhPJwiuZsgeZGTR9WbF5BNcuxuM1lpqn29dn7yoGsTKfN4ZY0DYZvpaoQQj5f0vSzys6aN6EiN X-Received: by 2002:a17:906:9a2:: with SMTP id q2mr1831078eje.466.1642039528104; Wed, 12 Jan 2022 18:05:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039528; cv=none; d=google.com; s=arc-20160816; b=a8fX+UabDCz2LluM9nFqkIuHOtqJj5L1WHIEcLrma2KgVWn5lEKmmgtv3yHruUOb37 mshHr+AI217jd+mkR2noh1IHqqNkD/rVCYzUXGY4q6XLbsJC/N7QiEF66kd0u/c5teZS 95qw1Ov+SNKqDxaSMH7qsYJnl+QJxP1bE0w66sFdzuDdePzg2pctTI2GhZBwD8T65fdX QzL0FXoGlTJ42csaQcWc/YIOb/aZYhaeYKEAS+8T33rfccN85SBfjWAfhmzU+I3n89c7 IOrKqsLn5Xh/cKYSBvXm6nQmDJGg6AIkAAR422RLu8CgoStZupjX2ci1pETuuO/B6MKU Y4Rg== 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=okSA1kBNughpIF4w7cmi+FdJRzLP7G9toAxNLf5IGss=; b=JzwCE0vKkAJraobVdfKSJjRz1acRcQhHT9SXplDegQIpjtzkq2JtPstK+SjidkDM07 NGueN9GDp+858RHoQcIuiF1UFQtY8+8RpNx/SZVLlq7NqYPnLRZhZBec+h3a0fE4K/qr +hS2Pa1xyR5UWrGiFIk1BPbo0HO0gF4o4CWnAbCBerWTLtQrrkySkku5SgT+fHli2rnK AtOaf9ZbkL44kYo5KnmZx+gRFVFbG3S0234TXtYU9Gmb59GoF6PWYB7z1tfCS9i8d5uN r+gm/8n14Xu9GqFkc7o2m8qlXoZfsaicJCt6xQnKV2OUk3dVLJ8EFLsubsM7Nm49fT1K 0phA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=DDrPfOb7; 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 i19si711873ejp.881.2022.01.12.18.05.27; Wed, 12 Jan 2022 18:05:28 -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=DDrPfOb7; 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 EF06D68B181; Thu, 13 Jan 2022 03:53:21 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f48.google.com (mail-qv1-f48.google.com [209.85.219.48]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 09E4B68B174 for ; Thu, 13 Jan 2022 03:53:17 +0200 (EET) Received: by mail-qv1-f48.google.com with SMTP id fo11so5071026qvb.4 for ; Wed, 12 Jan 2022 17:53:17 -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=WSKpFqxcUwLPluybIc+WqhJhewWn0zO+5bfvBPYpO8U=; b=DDrPfOb7/bFa/o/4lLg7ab3tlzkt8J0kqojppUDuBhHsv/ogJO65U5+BPTcTY6sisO 4vZek+ZSpTDdbwMNohP1fufHH/1ZRWmmf/c0c3BotLE45RYwxbNBgbdwh5kdUIeCavxz Uo3ECK0nTCG4CksAiExK53mN6c3KRzZZUOuxT1PN8BE+44mr3lA2OwpsJVJ+ghY4hGf6 7Gkl72M9z8M+9FWHbowB9tULaomjMVs5oN50f4S+LAlzP1/ZzZumIy2X093Ewd+3dme2 8ZTOTApJ/WpgTmekmMoaDNvFwgXfsfAmmB/3NDn1Qm3rGucv1zlQzL1Mww6Ci/VXSHrD pwhg== 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=WSKpFqxcUwLPluybIc+WqhJhewWn0zO+5bfvBPYpO8U=; b=IEnzMTC0sLH5DyxN0FGRR7UK5IHY6DXDDw0NrVyxejzzhQIfrCvPyPwjwAOVCTsVMR 5G8CYvF1ZRwsy+0J0KzuOVJxHINCw3rIRbuyO845c8CO/ET5Flp2KA/I1TukwtUdGFus I2Fy3g3m/VOw070Oi9cHgA+Nojq7D389GaLDk3jBrUa7EN8jinkESGLvTMyM4nC72Z9F xcSn+MT0/y8J9WNKDZLptYuO0rYQRPF73P95mFhVZ271sv1TUo4UUXOb4kcb1mpMwp76 zIaxUTui3mBrRY7gBtCxIn6dzj5opvL7p8haGirC5HrFQjidP1QVlHTXymw2tbn6r+YF cw/w== X-Gm-Message-State: AOAM530WSiRXWAfl7xbpRD5Jbe8AtSLYAKdTUxkWE/oI6ANSYalqDrof gPTBPpC1eMgpEW7TFIJEd/1LhXJRGhY= X-Received: by 2002:a05:6214:29c3:: with SMTP id gh3mr2432274qvb.112.1642038796360; Wed, 12 Jan 2022 17:53:16 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.15 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:16 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:25 -0300 Message-Id: <20220113015101.4-64-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 063/281] fwse: 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: hGKih9bj5rio Signed-off-by: James Almer --- libavformat/fwse.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/libavformat/fwse.c b/libavformat/fwse.c index ed8cd3a6db..28a322d9d6 100644 --- a/libavformat/fwse.c +++ b/libavformat/fwse.c @@ -40,6 +40,7 @@ static int fwse_probe(const AVProbeData *p) static int fwse_read_header(AVFormatContext *s) { unsigned start_offset, version; + int channels; AVIOContext *pb = s->pb; AVCodecParameters *par; AVStream *st; @@ -59,13 +60,10 @@ static int fwse_read_header(AVFormatContext *s) par->codec_type = AVMEDIA_TYPE_AUDIO; par->codec_id = AV_CODEC_ID_ADPCM_IMA_MTF; par->format = AV_SAMPLE_FMT_S16; - par->channels = avio_rl32(pb); - if (par->channels != 1 && par->channels != 2) + channels = avio_rl32(pb); + if (channels != 1 && channels != 2) return AVERROR_INVALIDDATA; - if (par->channels == 1) - par->channel_layout = AV_CH_LAYOUT_MONO; - else if (par->channels == 2) - par->channel_layout = AV_CH_LAYOUT_STEREO; + av_channel_layout_default(&par->ch_layout, channels); st->duration = avio_rl32(pb); par->sample_rate = avio_rl32(pb); if (par->sample_rate <= 0 || par->sample_rate > INT_MAX) From patchwork Thu Jan 13 01:50:26 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33348 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp20619iog; Wed, 12 Jan 2022 18:05:40 -0800 (PST) X-Google-Smtp-Source: ABdhPJxFu8xdeNQlAJmqTo3MJMmUU6Jp9xhvqvRlD6ODHxDv33UsXe474cvDhe7VFZJ4i94PgFx9 X-Received: by 2002:a17:907:3d94:: with SMTP id he20mr1868294ejc.339.1642039540782; Wed, 12 Jan 2022 18:05:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039540; cv=none; d=google.com; s=arc-20160816; b=ywz4MzBywa95+G54PYz805ox2H9ornSHrjNpIEHGzKo+3UHJF53xEDABbm5R0nyDZH VRCyHrnht4XzFxAd5ZjPWlCUXBcmpm4UDRGAfzH0cvEy0kG1rVVFLJ92V6SUHugh7m9D IbeExlMmFseFXibSjnr8wjYK35ZVhaWOn2F/VaNZwV84reIOGlMcInBWCdPECj0q1dwS 5Fkp+pWEL1P7p6Cc9qyi3rruPNwLc808gOJcmmINZHZT4I0Q84+ljlkJTGKmlcV2tCWI 8M7Dw9XD4CyT8Bjs0Hq8YRCsmb1S4XIPWMvBJadhJNw2L1qOTbrRnLbF0aTSpt4UkcNX R8ZQ== 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=wdQPRW5o3B3iHjOsxySmKHcGMKh1EcZZbat/vUPpPiE=; b=V3v4lKEdygt1lB19SmGhfOSgq0lwyTufLIID/MQae/aNWfU3V2mQv7ygj1q+7jhOod 9rD1VxtVeV/pFn2I6/UBxFHf7lL0n/HCPuCw5Pw0Qp+YQJ4CddN8cbLBHzfUU+Q/tydQ /9fT0TpBAzjm95q6Cq2m2iKw9BA8/Wm7LNu1AaGgoWYNny2LBb48v6eIRgqrA/Ja7o0q aM9iNQC/cTCWwguGWov/HhYdXKhbvq8NvhP+zyHwB+oFT06zyABqOpFoQcmVzUbUm3pj PhoF0CJCWbBGPWGmQkQrz6vDjRdNw7gqlslrI1fHVZxgmxrWgQih0wdD4r42+6DbGqC8 AEGA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=pVoQ08If; 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 r25si827433edq.557.2022.01.12.18.05.40; Wed, 12 Jan 2022 18:05:40 -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=pVoQ08If; 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 DF55D68B18C; Thu, 13 Jan 2022 03:53:22 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f52.google.com (mail-qv1-f52.google.com [209.85.219.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2AA6A68B170 for ; Thu, 13 Jan 2022 03:53:19 +0200 (EET) Received: by mail-qv1-f52.google.com with SMTP id a8so5145692qvx.2 for ; Wed, 12 Jan 2022 17:53:19 -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=EwyUq7gDWRE/cFIY9vHc6l17zTRzQtIaPblOU5Feiws=; b=pVoQ08IfKuA1WNwx5llbqC6CDjPVjV1oGkEf4ONAHwOkhzRB3BkQfoni1VWSjGUpjx TKKzIqJX/2wcsBIF/YGfftMBr9QDSZEh37HLh+GXzCYtQ5z4qzSKwhuGgSLxPUzjYK2P 2x9GSrZ/8A8DHRBn3Tn2HQ1Qos+NAgSztDmAJQeOxInOnNV+BCcbhjBKrOOktjCmyrsQ WOoZSzuX+IL+/ayU6ubPqyF71vTz+i8geNfxBiZgTQEqpj5QgFknRzn5bwx2/Qp4A/R8 m6qMdUCajQZEHFrZMrQobQ1ax/adSL5Nmmu8dGXbqw87i3zA5fqG7TvV4EmES5qefHwU 4mhQ== 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=EwyUq7gDWRE/cFIY9vHc6l17zTRzQtIaPblOU5Feiws=; b=DcOnu8XIWHpqmdXGBbuYDtLTP9JMXf0HiERVdIh5k/fXu0EYar/lzP49+rf2k4OJbo PCP7HtoUv3ktOCnLtFf0C3tUEXvrB0Sj7dxekh8ZsP3NyqpJ4boycnTk/KYcbIl8JnCk V4RDSl3S+43MmlcL94CU5A8Pvd58/1+K6wdcYbvbFRIS3NU94GAOnhKCS3srVrvHGrzn GjBeF129qX30rnctCwWFwmCwPz9QxsC01Eppt5NPB8+Klefq1lmKhLF1oktkUYcSFuWj 5Uj/VBsGS3qi+CddDeF7PG1+93WEPo96NhGCe37ue+VXjnBXrE4q+UFWNoAb/ak3daJV XDyw== X-Gm-Message-State: AOAM531T6h23K9wVexzgIgsFCo4CvAtl3sILHu9rIeOqVokSTajx2h8q /H0LCjPh8VG9sIASpRsaD/JiHv/jaEc= X-Received: by 2002:a05:6214:518f:: with SMTP id kl15mr2410491qvb.4.1642038797576; Wed, 12 Jan 2022 17:53:17 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.16 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:17 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:26 -0300 Message-Id: <20220113015101.4-65-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 064/281] g722: 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: Dfa3E39RUy+r From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/g722.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/g722.c b/libavformat/g722.c index 3bfe05ea6f..08cd2cbc87 100644 --- a/libavformat/g722.c +++ b/libavformat/g722.c @@ -35,7 +35,7 @@ static int g722_read_header(AVFormatContext *s) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_CODEC_ID_ADPCM_G722; st->codecpar->sample_rate = 16000; - st->codecpar->channels = 1; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; st->codecpar->bits_per_coded_sample = av_get_bits_per_sample(st->codecpar->codec_id); From patchwork Thu Jan 13 01:50:27 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33349 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp20765iog; Wed, 12 Jan 2022 18:05:55 -0800 (PST) X-Google-Smtp-Source: ABdhPJycLGfyYKHdCzTipONeMWsXhNFCZfe8MKK0x0T6ZR9UpuAt69H0RSYMng9zmIqgpE9A7CF6 X-Received: by 2002:a05:6402:16c5:: with SMTP id r5mr2191195edx.388.1642039555154; Wed, 12 Jan 2022 18:05:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039555; cv=none; d=google.com; s=arc-20160816; b=QJoUQw5rSfQfWWsrbTmHfg81HtV8tIlvUn4kuxTZlZNGVrbL1NwPX3Y4oKiokVCi89 lI9rC/5+SUxopsXum/Vao6KeNWrSLAgF9SVDXShm7Tbnci/HyNef3Gdeb6NZcxnSWAHc jfs+FPhmdOEMLBDib3jOQ6iM7Jnov9H076xRep7jfgCpLUudE4pyi/u82zcu+W/L4/Me hT253+fE2BSJnKZlcFXqUp1xAiDMZC8V52VC6SA8dfii3oP87BBvSp1oaxZeMCzUWcRk F8S8qFG1XHw6bbUu7CncWRLJO8GuEB37Modgc+7hKGv1TOZazoxha80TS1jVIyDYu62R E2wA== 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=4/yhBjkuq4PgKLOQXgLSlZcc76knyj8iBxSv9VXw4XY=; b=O5gCg40ysmO1gEQ6/W/bw2DC2YW10a3DQMElpH3t4GLwZW3XPCW/c+HY4NBklakeD1 WBCTTtOJ/PZygNxs96kYeh8ZNocpYVj9Hz3LsNIxL+rvBX7+WZAQaTbtxDTAXOatDZyJ QaXh83/3W0ToY97fSy5s/HnChopEz8R7MjS3rmMN2gprenBtZhBpq+VOpIvnT3XKlmx1 OweLoH8mlFfKdc3e0x0g5pzOGs7+ZKKZObbnYVOjK70BmeWOgGl0GDYbxtuB33PlcGdY bkmbbVCtyVDK01pkoxDJzjZYcKaj4GgQypAsB9libwqa/O5FHf5UDIi7/8QP0jv0j3di k/mA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=lP0w5aGT; 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 w5si887451edv.6.2022.01.12.18.05.54; Wed, 12 Jan 2022 18:05:55 -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=lP0w5aGT; 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 D18BB68B186; Thu, 13 Jan 2022 03:53:23 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f54.google.com (mail-qv1-f54.google.com [209.85.219.54]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2D61068B177 for ; Thu, 13 Jan 2022 03:53:20 +0200 (EET) Received: by mail-qv1-f54.google.com with SMTP id t7so5147510qvj.0 for ; Wed, 12 Jan 2022 17:53:20 -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=F9QRMQrbkcA2YP+tGC9vvQMDpoF/7NlY5M2OLckMvuY=; b=lP0w5aGT22GdCgXNPsL2ePDGGQiefv8ucTrqQPijS2APdU5/9obiymLvkq/yt0cFQH iqab6J8p3Sbmi6/J7Ym9rQKebBcQseZrUfqOP93vh4nx8i1mh2M/XigaoG0o2cD6d11B v9/DsaRWzzrVH2YBa0souvRTPHy02vErYPcNH1O9PXcHH8wrOKsqanI0Id6eOkuWgNfO oNjTceHUUAnjP8AQqYlC7ozIv9+DcQr8SDWMIU/wsZAD9XonVLebQ2mc69Q2FbMbMay4 D+FT62GgmESlLrtKoKv092pH2GYDJsObq6kZqisL1/oO7smlTgeurchJJwW1w3VcrqXJ ZWWw== 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=F9QRMQrbkcA2YP+tGC9vvQMDpoF/7NlY5M2OLckMvuY=; b=jGI4dCmdN4T6ghOLMNN8y5VZGmQoAWpjh9CJGauE9rR+qOURwiokkuY4jf1w9cz4/Z u5XzSHZRjxP0a4OV0czbc0cmIpSKAqssDwxramQYGzK8yb4D3/ZdzzoFRgBeO9Xe9SsC P1Gq0BxNuEY9zjN/7F9OHy9G4+ab5MTKoHySP+qq4OwOvlDfqFg5S6y8Bxth6ozIyelf MQVWVJhGK1vT1nwLUj3u4MaWwsVF4YaRMA/SlnnL11Yk0/0Yw3Fxe8/fNuviacJVN4lq HiS76E+2e95ATs6Qa04X6iE4oTOKIKil+SUAin2OKWjN4Xbu5EkJigCF+x+PmTBzlqIZ nHXQ== X-Gm-Message-State: AOAM533K7ze4m0882Ql2+UszF1NQr0rmeb9FhvLmYOp5V7HKYAWPi7l0 IMaLt0uwVUlJWlSyljt3OHRFODHDiOw= X-Received: by 2002:a05:6214:2408:: with SMTP id fv8mr2350222qvb.110.1642038798819; Wed, 12 Jan 2022 17:53:18 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.17 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:18 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:27 -0300 Message-Id: <20220113015101.4-66-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 065/281] g723_1: 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: wf2uQuegaFfb From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/g723_1.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libavformat/g723_1.c b/libavformat/g723_1.c index f38064b5b2..e35b4ed503 100644 --- a/libavformat/g723_1.c +++ b/libavformat/g723_1.c @@ -41,8 +41,7 @@ static av_cold int g723_1_init(AVFormatContext *s) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_CODEC_ID_G723_1; - st->codecpar->channel_layout = AV_CH_LAYOUT_MONO; - st->codecpar->channels = 1; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; st->codecpar->sample_rate = 8000; avpriv_set_pts_info(st, 64, 1, st->codecpar->sample_rate); From patchwork Thu Jan 13 01:50:28 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33350 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp20929iog; Wed, 12 Jan 2022 18:06:09 -0800 (PST) X-Google-Smtp-Source: ABdhPJzadvUAAnSO2BsOd4cfA00aiLWE1DV/x+ahCfS3zu3WXLYKl+eEerAYr+gwl8yTAptPzcKi X-Received: by 2002:a17:906:58c7:: with SMTP id e7mr1880133ejs.146.1642039569306; Wed, 12 Jan 2022 18:06:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039569; cv=none; d=google.com; s=arc-20160816; b=ox2vb4yKHmzwpXdHk5BlyLD8r7hNSLQYWtFOvJg12FVGDiUDcIG0xb1Mxjd4kRktWl bGijcdRFB0/n0z9tMBGHVUwZ5vdqkHT2LYcGCXYtEsmdTxAVLPfPULnXBGNWpJXPUwaV MOsFfo75QbKEbtXqXilMw0UvzxUiVdwAnh55WISRfdrl4v2jOEQ0oNGHOzFIEl1zwN/g UV3WWfpYoXu3y+5nNULnzD8xCzLBCDUS5MsZffCdFOo4xwO4hRvdZp5hysMnFy8C/Tyv vt0ZbNSuLB5DEBsBSvREJMjJmbXAjewaY4tMiJc3p/cLglv5yeVsP8EVH4PDyW2RZdyJ kUaQ== 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=9Xh0Fcr34n+BiCGpVfENZgNue+RR1hPuYrvwBl30tOQ=; b=cRjK+wkBfDixn9YGb9zsVhDcsf8b62GXT2vYHe7F7MTOThWDKyzGNJTJjXCQZWWi8j Ur2hOsGFbE5uFayZt47s71oD3ryMUc6GjT4rN06fuVMKFZdwwwy/zgKLBcGP0ZbK3SXi eEOF+BkMxesPeq9ZGoiYH4dCRtlUa5IiXw38kkBGhM78vNMtKXe0/htRIq9K/Se+p+LA PyOjWj5J+mwb4yhW6Y12J6WfjedvIcz8fmFgRlYXPpSs3H+FPAmCI1VUJkMly/7bFYVp vQy9gqXWIsU+m17UA2z9fMAu3oBq4YfwNlnVrpIj7q6z5YAF9r2VuMQfHu7UyD0jIZCd N1XQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=e1Jpv2ue; 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 o2si840746edv.551.2022.01.12.18.06.09; Wed, 12 Jan 2022 18:06:09 -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=e1Jpv2ue; 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 AACE068AEDD; Thu, 13 Jan 2022 03:53:24 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f43.google.com (mail-qv1-f43.google.com [209.85.219.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A0F9568B17F for ; Thu, 13 Jan 2022 03:53:21 +0200 (EET) Received: by mail-qv1-f43.google.com with SMTP id p12so5081723qvj.6 for ; Wed, 12 Jan 2022 17:53:21 -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=XrD2WroTN03SRLjTNTORb5Wp9CQvA9PpR2/mIm1gowQ=; b=e1Jpv2ueYpP4GBj7f8RNUSMkBiGigwVRZG/13Dx3fRHk93Tu/Sbnv47GgaSuBqLphs QJ9chXt5vNiMFUfKbsTOoLai4lsaUutCqUZdyyuXGeZJQwJLIeVKNv009mgT69ljYf43 zpJmmwDzOA9ye7GJIXyZfa9DGh7TP6azWhwpVH2EHoC3xLk50uOlwoqOmVeMml3TimFU qoORj4qxWtsA7+mcOjxB8TL36q0UPoonXnAO1dYRpzpZi4AgOrBC4xUcFwmTGaU6l5qW hRU/Uywulm8NGGB/WjMmeOO3DJrIsr06DOkxcJEwCr/Zlsuoixup7rsAZEioAKscGkSi nBhg== 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=XrD2WroTN03SRLjTNTORb5Wp9CQvA9PpR2/mIm1gowQ=; b=Se2RXJLUwXbqy4nUg/AGiDxliZzMw2kafAxO7vU+hsa7lNRGBAtVYi44TKPLoNZoni jky/NhrbfPbKrepq1JXknKoW05JuXOZlAFLszhvg7MqWHZ0oYwR2nXoBWnkeoccZgbIT YnxBO8kZZXJb9HcjjLrsdpEQylFyxEiDzZLEdCCAjRjWnCvXfH7xHMCIO7FrqI2bcnkU vZpn9/2zoVMvl1ww+25d8nYVUC8Zv4Jz/YH381gJ83ZCDpGCv81Fh1nbefC2m/jQf4Zt O2VBVCWFYZhE/WmXKpr4p8ntcD0UuZfvz4RecNvOshj29ixvrBVWjT2Vlv+PvDgF5bw7 hORQ== X-Gm-Message-State: AOAM5307cLWCOvhEZcvzeORWmg1/n71S/A/zNYqaKJ4f3P9xR/SPZhO4 1C38UrIthalJzwZcHHFw23+RtkNI1jw= X-Received: by 2002:a05:6214:d01:: with SMTP id 1mr2181822qvh.34.1642038799997; Wed, 12 Jan 2022 17:53:19 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.19 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:19 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:28 -0300 Message-Id: <20220113015101.4-67-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 066/281] g726: 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: xnk7pKPboils From: Anton Khirnov Signed-off-by: James Almer --- libavformat/g726.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavformat/g726.c b/libavformat/g726.c index 4b08d0a9f7..ce88fe6b23 100644 --- a/libavformat/g726.c +++ b/libavformat/g726.c @@ -42,7 +42,8 @@ static int g726_read_header(AVFormatContext *s) st->codecpar->sample_rate = c->sample_rate; st->codecpar->bits_per_coded_sample = c->code_size; st->codecpar->bit_rate = ((int[]){ 16000, 24000, 32000, 40000 })[c->code_size - 2]; - st->codecpar->channels = 1; + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = 1; return 0; } From patchwork Thu Jan 13 01:50:29 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33351 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp21108iog; Wed, 12 Jan 2022 18:06:23 -0800 (PST) X-Google-Smtp-Source: ABdhPJz8C9V0wtNYRm4DSDsboPYjg2uuUk08hx4xXHFLEdE/vDD8F11hqpLBpRY4QP9nC2RIBhOq X-Received: by 2002:a17:906:2b8a:: with SMTP id m10mr1830605ejg.479.1642039583644; Wed, 12 Jan 2022 18:06:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039583; cv=none; d=google.com; s=arc-20160816; b=1ElK2lXUcyX5+bBU7/GXJIaUyVegtNC2QC/8E+phtsuZlLQo/M0fAoNWZkvskbmHD9 Pf0wXbNPsC7qeSUteR25iZ+5zPBjo9s47tSC1w+4PyF07uA6/LADgP7i3ZVUnp3CXv5m FlrNsB4nCWAYmIN1s5vXpkpTsYovPGJhKCUaLxYO2pxJHk6+5+Y+M2w5TjPFlBqcxJ6T EJS6kE/rNjLR0FIqx/EIUJri0oUGhjfVeM3oq/MnS1b7bN1/i3/tomK1SFnbjAJgTe8g EFJlA8bQHC9kFxbUoIdEAhkLecLLen6YckPJBW9qiEmDPV5S9/HQz5edDbc++jhtNwLI hRWQ== 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=/1Jh8XGVpp2H2VeJx4VClMzFZRTV7XTEi8ZfjMTgjUE=; b=l5UZBqxfQ5//s7n/Gtu4r81t12jTwfAWpEUfFITpIviFk5V7D01Io68AbJ0C/E4r7p Sh8c6WTq9ks635PQcqRNTEbWITHRp6kTHHfcsCjOP25UGoP3znrbtZBOXwIGIVxTTANe h4h04DG0t9hxfBb0UPKsZBgCKcajXL2beLSsUrQ39TlLasVW4339B2jAx0ywqfZdDLRi NugwMeke+tfrIgzSJ7BVqaDx5VQTNhiEsLXlp5WixuAU5xO3GilHG81aT1EmFN2XAryX YvvCTGEFW0ogwPJG5IZ8qcyCdK6Lfb067upAmc7rZX4ByWkhCTJOl/csBG3UUjeI9sI1 x5BQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=dnMNfqZk; 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 cz8si813241edb.109.2022.01.12.18.06.23; Wed, 12 Jan 2022 18:06:23 -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=dnMNfqZk; 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 AD6F368B1A0; Thu, 13 Jan 2022 03:53:25 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f52.google.com (mail-qv1-f52.google.com [209.85.219.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7C17F68B188 for ; Thu, 13 Jan 2022 03:53:22 +0200 (EET) Received: by mail-qv1-f52.google.com with SMTP id iw1so5146240qvb.1 for ; Wed, 12 Jan 2022 17:53:22 -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=T0irlGFzjkVOly+X3Fip2vsarMNm5Cnh7n6aExzwy8Y=; b=dnMNfqZk042hDM0BV9FoSmQ/YQkfv5j3QisRc8WEj8w7bi8SJ22lGmmZhLZvb6oEmE EyZtDrzyAlByW8U+6GAgbaumY1fnrxawTSXsAq7c2YP7cCWJnyaJhYKmG/hiYejYwjYH ETbcGAoJeh4jszSJP8Ss0B4c05laJYswDrgX9NqjYYtFTlrNH7aHtAtcSE4pItoHwH0L ZD7JyJJvuGDNA3npRMecr8n0nxCo1bJ+kr9DRZWdcwMzBHAW2qiVLQc0ypuGBrnuP2jQ 1A4SXkYjB64GufhMQlU0hEzDOCSH+D9lfYVfQMDICMIK8bzBofEOgEUp/tDzG2CEpFmv z0ZA== 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=T0irlGFzjkVOly+X3Fip2vsarMNm5Cnh7n6aExzwy8Y=; b=IXij2CtJ9d0+tFfoqsfqobaQvOkPzl7yDnxalrXtgctI9OSg7zhEkTzaL+IVNervbl sC74tAdlAyMKUnDsrQVWUEqBZYS6LwsI70MRCArNVwhEAtcaFLnK7DYbvFlRnntAu2ku uMvD007EV2VYje9qp+s6rOQf7M2aG112QxWEydPqSLlM7NuXUTn3y5xtljbjfPkQFlui 6YyE4mAciS+de3DoS8zg1Dq+pGT2kxtmpllL/KgAzi5rr4vtHWh1MukoMmrw3D2DAtTs +vaPSrWnQBOZON+LawqSaxhmeextinhTXibV0ZkbLHe5kNgn5rwEP2YqAy1G6ZoPG0Hy jWgw== X-Gm-Message-State: AOAM531BREg4tbnFw0sIZi09Eq2wk/73m7auSDstjFUTTyQK72glbd3x m3sExb6l+CZEAIiBSXJxSDOx128Eblo= X-Received: by 2002:a05:6214:410f:: with SMTP id kc15mr2346576qvb.113.1642038801147; Wed, 12 Jan 2022 17:53:21 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.20 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:20 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:29 -0300 Message-Id: <20220113015101.4-68-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 067/281] g729: 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: IeaiRV5IntBb From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/g729dec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/g729dec.c b/libavformat/g729dec.c index 51112f5618..9c92ea4fcf 100644 --- a/libavformat/g729dec.c +++ b/libavformat/g729dec.c @@ -43,7 +43,7 @@ static int g729_read_header(AVFormatContext *s) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_CODEC_ID_G729; st->codecpar->sample_rate = 8000; - st->codecpar->channels = 1; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; if (s1 && s1->bit_rate) s->bit_rate = s1->bit_rate; From patchwork Thu Jan 13 01:50:30 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33352 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp21241iog; Wed, 12 Jan 2022 18:06:36 -0800 (PST) X-Google-Smtp-Source: ABdhPJzIy+U5xe26iNSHY/CMS7OydMpmzzBkebAYRTWc/utDM3Rzqa0MWqQRcq2SLaQLbUKBqYE0 X-Received: by 2002:a05:6402:1d83:: with SMTP id dk3mr641085edb.281.1642039596748; Wed, 12 Jan 2022 18:06:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039596; cv=none; d=google.com; s=arc-20160816; b=QXx4DegL9Q9CKoOQWERjrL5zZVis0BrWZa45oSZavSYveVEqKYbOz8DapzCX1ZlMRf ditEQxcLnFel6S0k1Qhl59jqGoIUHJz3EpenKB4hHyap6Dg+0negIvnJZ79K3QVrHonf zW/Cef05/arSHnJc9KEg2OlNBmkARDInNZWprsehXSk9NyNOKF46ac9WPGZwZBjA0WoG VoEwLMNzVYRuflYz631eoIkk4kv1/QvtF3AVtlPc8n2AYQQGJ3UYAqRNk2Ii/eAhVVJQ oRkoo/Rv7NTPxt9IaIk5+AnCujLaBNjw16tB62lSW+Y/k5rOeXFarHFHaDxOY3V5fyK3 v+tw== 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=WLi3WXpnwysRounHWnPRTwV+Rrnf6d1WOqzR07t1OXQ=; b=FYmakXaUB1tonKgPb6KbNATElAFnWyPXbP7rClZBcUaY22D4nuocUYDlWeKDvW9lXu P26m4uWSCd72RweIHxP9iNnm5OUUUFlIuNDep1heq8bOiQEKd/9FxbW0JZqc/5bYTn24 //teXzRSV1NhdHgejpxBsR3lvM/VfrTvhA2/hquHDNxao5OtUPQ89GSnQosKxKC8Wjtp FM0y0sXBsBi86mKYbbarjrWHkHp0VVqBBzOuWtJHt3avj4NekFRPmw4pEMMLRC5AamBz HGoH1D1iCnN1QiWVioYlocs3JMiwjvSBjrF8qLWRaKLlhDfnnyxMyEbZzCv8QNNHHniC UdrA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b="TioEJpX/"; 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 sc10si850205ejc.175.2022.01.12.18.06.36; Wed, 12 Jan 2022 18:06:36 -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="TioEJpX/"; 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 8FD1968B19C; Thu, 13 Jan 2022 03:53:26 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f51.google.com (mail-qv1-f51.google.com [209.85.219.51]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A7EA068B186 for ; Thu, 13 Jan 2022 03:53:23 +0200 (EET) Received: by mail-qv1-f51.google.com with SMTP id kl12so5083821qvb.5 for ; Wed, 12 Jan 2022 17:53:23 -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=M1W4cnsspg5bK+Vm83AcnicJmbBrqeHeOuXhIt7zSLU=; b=TioEJpX/qp7nJYjLJOP2V85euCfe9lCkWoIe8rAlMjiENzgMJocJh8hwsg7FSIX1I6 HM4OyxoziDUoAV9M15zwwipXGUkn43YAJ2s/k5Skgn/ruD6FMxrlEqSd04DZd/PZFONb 9p23gP6NQ4nP9QGZM1s+6pN7CJ/OUPFadKEShQa/xWKnZ3eMQxW5l6C0zhId3soQcU4B Zmr6Ypsdg/x+/U67fFB6Br+dvUnY7uYwmCAQR5u2Xq4u9k5wrpxoSPshtfvfdZF90bY6 cQ+rKF8t/8R1oDpY+YGpbBF6EtEL9I8+4Gadk5qYETQxLfC/QfIK5TQ8CBuT6+l8hwWV asYA== 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=M1W4cnsspg5bK+Vm83AcnicJmbBrqeHeOuXhIt7zSLU=; b=fFtK1vN00P/zBYvoId07yS+1CC5mzpD1J7Dpaa+E+w6MEXjVC5XsyH4LCabT+LTbGQ DeytgG3wLeWmN1JPL7maP03R9YIyBB6QougPBAbEsqZ7Ldx6V88yMRUVo/V2Hpc2+iv+ umA2j8mvbjfmKSRQMREmnV3TEXjLYt46cFCaFqDSFqhsPjd3aQZgsp1WS2YteSEVMiBO Zi48i51Rie9o8FDySe9ZK9bXcF8Kk/D7sfmFi0NBMUygMZXGzmpdelkPvrXPrz2HqK3w ECsp53mswwr2aMsraMBgJ1EhASJMdxnuF16Dwt90rF7YSDBQWv0VqQnsabYh0hd8+28k Zzlg== X-Gm-Message-State: AOAM532ktJBsBapnGNCh3A+zEjFpnJ6gwEggrdHyXT0lVDDmt4cRI3Kv bOgXj6MKSMoQ/kBw1wL33n6BHVikHfU= X-Received: by 2002:a05:6214:dcf:: with SMTP id 15mr2202062qvt.47.1642038802319; Wed, 12 Jan 2022 17:53:22 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.21 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:22 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:30 -0300 Message-Id: <20220113015101.4-69-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 068/281] gdv: 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: T1ZgLQzJStOy From: Anton Khirnov Signed-off-by: James Almer --- libavformat/gdv.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libavformat/gdv.c b/libavformat/gdv.c index b20691a2a4..f2e0748b6b 100644 --- a/libavformat/gdv.c +++ b/libavformat/gdv.c @@ -99,7 +99,8 @@ static int gdv_read_header(AVFormatContext *ctx) ast->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; ast->codecpar->codec_tag = 0; ast->codecpar->sample_rate = avio_rl16(pb); - ast->codecpar->channels = 1 + !!(snd_flags & 2); + ast->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + ast->codecpar->ch_layout.nb_channels = 1 + !!(snd_flags & 2); if (snd_flags & 8) { ast->codecpar->codec_id = AV_CODEC_ID_GREMLIN_DPCM; } else { @@ -108,7 +109,8 @@ static int gdv_read_header(AVFormatContext *ctx) avpriv_set_pts_info(ast, 64, 1, ast->codecpar->sample_rate); gdv->audio_size = (ast->codecpar->sample_rate / fps) * - ast->codecpar->channels * (1 + !!(snd_flags & 4)) / (1 + !!(snd_flags & 8)); + ast->codecpar->ch_layout.nb_channels * + (1 + !!(snd_flags & 4)) / (1 + !!(snd_flags & 8)); gdv->is_audio = 1; } else { avio_skip(pb, 2); From patchwork Thu Jan 13 01:50:31 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33353 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp21413iog; Wed, 12 Jan 2022 18:06:49 -0800 (PST) X-Google-Smtp-Source: ABdhPJwCjb1Yjwopz6WIIpCkYucsMcc1gD9KOEUhk3myK+WGbXb91toYAAbJBttsPm9u+LCha2AR X-Received: by 2002:a17:906:2bcf:: with SMTP id n15mr1858065ejg.184.1642039609781; Wed, 12 Jan 2022 18:06:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039609; cv=none; d=google.com; s=arc-20160816; b=A7O++L78chIxI2oPjEtIXzMgmw+4iI0pBcuXpbRZQxMvExRnbPYqGJT6pTeZSONI8a mnXLNloRvRjMO2rK/ha3xK9KW6DPp5lCvChMvY85fYd1H4ISOsyUJp9+4EfzPMjQy+YO AJj3nLcEcyYQr9HewlhdNEN0pIdLOAp5jn3x/0vkmobPK35fvUQdECbVbtLWToaLfZIW HLXUAUi0P5shCPqwVFZar6RxW9UiqvbxV7w1nq+nNteQ0vrmXMbhLF8JCGfFaKhZGmFo o1a3AC4l2s2JYJ2dJmKn3oKCf75kj6g7RjspQE6AlfOtpB0aDycJz48zZqhaDX0FJtz0 GOHg== 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=En7W9YK1pc0JZUhz2T+X7egoLH3Xpns4C0Y71I61lu0=; b=ayggqakWPMYupu2KJelQxRfAxloOmd3oBK2/9SHkC60ORTM5nMP+4SmzhxZqWjjyOy v4bcsJUaW4JGkklN0UYHFWpUq/MuKykDLqRDw82vTVd7IFSWXlfV25jxgzp/8Zu6w2KB S2iBeig66+K5mlFZR/X1/fL1pM7oK0ih6gL/wnOeR5T2L0M0LWHQ0mR8lk7D7dy+0zG/ Tq7pnZvb0nRjJ0Wl/c9j4x5WJj0wVqJpev4Xn61hjaw4gf2tg8FqX0v45SPjbJTxrqIR Lu1xPooWP5lmDJTAtDsLsIExKR3WwsWvnmUkzq3z6F1bUn5YFLkxiTwMYS6ZIiOYq+h+ rm+Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=lY3WCcTp; 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 f10si887263edf.592.2022.01.12.18.06.49; Wed, 12 Jan 2022 18:06:49 -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=lY3WCcTp; 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 6CA6468B014; Thu, 13 Jan 2022 03:53:27 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f41.google.com (mail-qv1-f41.google.com [209.85.219.41]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 04AAA68B195 for ; Thu, 13 Jan 2022 03:53:24 +0200 (EET) Received: by mail-qv1-f41.google.com with SMTP id hu2so5077913qvb.8 for ; Wed, 12 Jan 2022 17:53:24 -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=tEWniB7hh2+vRu/NWJAV4Zqj98eQOGlBbWzRkiKB5/M=; b=lY3WCcTprFkj2rtZKVdnoklGq69mHAfDagvSZ/uEgH8LOn2VS8xxJt1Gj8j7gNPO7k gzKE127I6k2W2yup0ZD31M8Ut8CvX7q1LeJ0BpvcbA3KZ4ujoVNigHKiLjWJZ6+rBTel IMo2grt5FWE4EVbLav3i6Fy6Yf+iawEpcRlqMiLMGZGi6lugjfUZtNkRxHTHy9FWXwrI hRWhJL2+Lo6ZCzBpv7uP5so+Czd6FrZh+cN4CYSUmtDaLi6bzK11Ks7whV1l0ELqmywW pjDXRrv4Y03eebKcGOFk9i63Iv4dVRuQy3RHwYqZOoDiwyOfp3rSu6Rhj2T4gN12WPtS 1J9g== 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=tEWniB7hh2+vRu/NWJAV4Zqj98eQOGlBbWzRkiKB5/M=; b=oOgdESKinfUfqTdtW5lUSL01TTuC7MWGXMXnEmB4QKZcrKoGRPUP20GEx6qp7OnfFt akfbCjpQDeQDuhKwyzsmnlsc5kopAcOjT5WdcgaaI5CS2MBPai/IaubEcPXkeuTFl/kg 2svNjgO/O27ZjCy1MR5ivf9ZfY68pb5kV6dJQG0SFtY3euK3rbEW3L0pSdY1YuQ3z3hR Pi0EPWGuCMIKAYxgoZe/qPedRlh0pqA9brCPsfLC31OjhoGDAD1O4/4skwlkGTpy1Gvu g9rMhO3Ss7/9RGh0sjaKFKGFIEZPrm6+S72Xrs5kDFOfmefdE2tAw1yQzNFQnZyvczoY K10g== X-Gm-Message-State: AOAM532PU4H/fA1dBD39YsHl1g8sZytbca7x8CbPe9gDDtE2PiTodiO7 ECFQeAnmCYYBZkz0xWjwpwnEo+/WKns= X-Received: by 2002:a05:6214:caf:: with SMTP id s15mr281719qvs.115.1642038803488; Wed, 12 Jan 2022 17:53:23 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.22 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:23 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:31 -0300 Message-Id: <20220113015101.4-70-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 069/281] genh: 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: EBoZh9ZImEk3 From: Anton Khirnov Signed-off-by: James Almer --- libavformat/genh.c | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/libavformat/genh.c b/libavformat/genh.c index f9b222d8cd..139205ecc5 100644 --- a/libavformat/genh.c +++ b/libavformat/genh.c @@ -55,18 +55,19 @@ static int genh_read_header(AVFormatContext *s) return AVERROR(ENOMEM); st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; - st->codecpar->channels = avio_rl32(s->pb); - if (st->codecpar->channels <= 0 || st->codecpar->channels > FF_SANE_NB_CHANNELS) + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = avio_rl32(s->pb); + if (st->codecpar->ch_layout.nb_channels <= 0) return AVERROR_INVALIDDATA; - if (st->codecpar->channels == 1) - st->codecpar->channel_layout = AV_CH_LAYOUT_MONO; - else if (st->codecpar->channels == 2) - st->codecpar->channel_layout = AV_CH_LAYOUT_STEREO; + if (st->codecpar->ch_layout.nb_channels == 1) + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; + else if (st->codecpar->ch_layout.nb_channels == 2) + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO; align = c->interleave_size = avio_rl32(s->pb); - if (align < 0 || align > INT_MAX / st->codecpar->channels) + if (align < 0 || align > INT_MAX / st->codecpar->ch_layout.nb_channels) return AVERROR_INVALIDDATA; - st->codecpar->block_align = align * st->codecpar->channels; + st->codecpar->block_align = align * st->codecpar->ch_layout.nb_channels; st->codecpar->sample_rate = avio_rl32(s->pb); avio_skip(s->pb, 4); st->duration = avio_rl32(s->pb); @@ -76,7 +77,7 @@ static int genh_read_header(AVFormatContext *s) case 0: st->codecpar->codec_id = AV_CODEC_ID_ADPCM_PSX; break; case 1: case 11: st->codecpar->bits_per_coded_sample = 4; - st->codecpar->block_align = 36 * st->codecpar->channels; + st->codecpar->block_align = 36 * st->codecpar->ch_layout.nb_channels; st->codecpar->codec_id = AV_CODEC_ID_ADPCM_IMA_WAV; break; case 2: st->codecpar->codec_id = AV_CODEC_ID_ADPCM_DTK; break; case 3: st->codecpar->codec_id = st->codecpar->block_align > 0 ? @@ -122,13 +123,13 @@ static int genh_read_header(AVFormatContext *s) coef_splitted[1] = avio_rl32(s->pb); if (st->codecpar->codec_id == AV_CODEC_ID_ADPCM_THP) { - if (st->codecpar->channels > 2) { - avpriv_request_sample(s, "channels %d>2", st->codecpar->channels); + if (st->codecpar->ch_layout.nb_channels > 2) { + avpriv_request_sample(s, "channels %d>2", st->codecpar->ch_layout.nb_channels); return AVERROR_PATCHWELCOME; } - ff_alloc_extradata(st->codecpar, 32 * st->codecpar->channels); - for (ch = 0; ch < st->codecpar->channels; ch++) { + ff_alloc_extradata(st->codecpar, 32 * st->codecpar->ch_layout.nb_channels); + for (ch = 0; ch < st->codecpar->ch_layout.nb_channels; ch++) { if (coef_type & 1) { avpriv_request_sample(s, "coef_type & 1"); return AVERROR_PATCHWELCOME; @@ -139,7 +140,7 @@ static int genh_read_header(AVFormatContext *s) } if (c->dsp_int_type == 1) { - st->codecpar->block_align = 8 * st->codecpar->channels; + st->codecpar->block_align = 8 * st->codecpar->ch_layout.nb_channels; if (c->interleave_size != 1 && c->interleave_size != 2 && c->interleave_size != 4) @@ -164,16 +165,16 @@ static int genh_read_packet(AVFormatContext *s, AVPacket *pkt) int ret; if (c->dsp_int_type == 1 && par->codec_id == AV_CODEC_ID_ADPCM_THP && - par->channels > 1) { + par->ch_layout.nb_channels > 1) { int i, ch; if (avio_feof(s->pb)) return AVERROR_EOF; - ret = av_new_packet(pkt, 8 * par->channels); + ret = av_new_packet(pkt, 8 * par->ch_layout.nb_channels); if (ret < 0) return ret; for (i = 0; i < 8 / c->interleave_size; i++) { - for (ch = 0; ch < par->channels; ch++) { + for (ch = 0; ch < par->ch_layout.nb_channels; ch++) { pkt->data[ch * 8 + i*c->interleave_size+0] = avio_r8(s->pb); pkt->data[ch * 8 + i*c->interleave_size+1] = avio_r8(s->pb); } @@ -183,7 +184,8 @@ static int genh_read_packet(AVFormatContext *s, AVPacket *pkt) ret = av_get_packet(s->pb, pkt, par->block_align * 1024); } else { - ret = av_get_packet(s->pb, pkt, par->block_align ? par->block_align : 1024 * par->channels); + ret = av_get_packet(s->pb, pkt, par->block_align ? par->block_align : + 1024 * par->ch_layout.nb_channels); } pkt->stream_index = 0; From patchwork Thu Jan 13 01:50:32 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33354 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp21564iog; Wed, 12 Jan 2022 18:07:02 -0800 (PST) X-Google-Smtp-Source: ABdhPJw2FKQ7hXpE4rRBYwoLw8E6C9lj2qP75eBKa9usWY+CYQ2kdyXT4/2U5Ow8/goVx0R+Od6L X-Received: by 2002:a17:906:1ccb:: with SMTP id i11mr1789058ejh.135.1642039622221; Wed, 12 Jan 2022 18:07:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039622; cv=none; d=google.com; s=arc-20160816; b=frTvb1XkIDSQCTa6ARBHpfKLgUhZgJF9NWYAIWGd8Ik4R6axpZCEGhpYl4EFC9W3kN Q2LnnkDmoWoXZDGn3Sgl6kauGNEhv1KyjejGBLyFzor8c1urDp4w3eClimwEz3EUlDpy WobWHDtOwRkLw4V4Ci1Hk9qJq4Pz40NPgVgiwalYiYwGXDnxAgkhbQAJkFXKpFo6WwkU r+TTjLpOS24dC1Ldp9K06jlbZX4YfJ9DveEbOicH0y26rCahS4aCbWVCh7BtpBCdPPvO U+SGjRwbKx1AW0+a6k8dZevoKWk7gdoPxq3z0EnxzcyEJmX5t2KZ6pE6CIYMu64YcevB bAug== 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=FdA7gmbdGsxGpp71lHWVDoQwlmGmQ2h5l36jz9adrG0=; b=cKeDmfgA0qdAj97+noVKPFrhgGrPLqloqD7PwgixRy5DhUvOQviSitsRZVUh62J8Ab q9X+XiCJYRFP+MISvMOUg4TktIzNuS3xH0sWXBYRk+Pqj3PSU+rvFcgMSZ2slwTQBOS2 apzsRggvuEJvaddiNQ223Qa9Rfz8xZiBAQjH8N7CMMny3Axs+3dsXX9c5sBu9Wdkw+9k HcwL9eCpcIg09IKT/23pm1uS6Dh4grENgErTNsCZ8UHxyr6szmnn2GFVeyYe9jP+/T+Q GqtfqrRduB0rVOZ+zl17orhR5/WSsHqGM9hQIOyHWVSgKYtta2NVcyOnWXoRJiXddsqm umWg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=nycaFYtX; 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 k15si753013eji.214.2022.01.12.18.07.01; Wed, 12 Jan 2022 18:07:02 -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=nycaFYtX; 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 5719268B1B5; Thu, 13 Jan 2022 03:53:28 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f51.google.com (mail-qv1-f51.google.com [209.85.219.51]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2C8EB68B19A for ; Thu, 13 Jan 2022 03:53:26 +0200 (EET) Received: by mail-qv1-f51.google.com with SMTP id q4so5082913qvh.9 for ; Wed, 12 Jan 2022 17:53:26 -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=Y8ar6jsCmRVRMkOjUHvjuGKFNXdgBgYwn1iLyp5iLcQ=; b=nycaFYtX9/alXuHyD2PN5DMh9Zom+/CxiP9T9hivAEo2AASeXxfIPT9YoH9f0U5Krh U+uCwRKBsg5Sj0KQIbXvCwnUCmEynrtAGPxB6ujuHlie7GW5RMbExElui8R0blXj1fsy JLmqKN5brvGxVNpeGi0xSeqLh14xl3+/ptnnKJjI7MLocxTN1vAH2drTtl/7Wqt+cD/7 nqw0PAJ8Ann6LEGMkkuxgBEI4HO0xInTF9eSvU4GyrE+Gbss9bFPy23Bghwj0NW1hQ1Q Rc7bHFii1a+IOjmB20erO4k9q7dih8KehRjigbv7JrQzge+xPBhcW0YnL+mkcuPB7Lf2 rtRA== 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=Y8ar6jsCmRVRMkOjUHvjuGKFNXdgBgYwn1iLyp5iLcQ=; b=h14HETk7QLt9Gvg8triqn/7Umo5c66kua83pKWJetHlSCJ+mWYmFwdAHbs1r8WMVMP DD6J2utDVMOPc1JNtUn9c2hQeDlzBPA4hIfA583xbQZSlGEfEgPwpxBwVRGY2o4+skdh ah3UDI4KVdQB9tMCMMDiSZ+rlA1jgf/LILjwbeSie7siMkgaBNamEZTCi8A8/DCs/JPM Aad91yyoANqJb/SN0t72Y0bxhs8104lGfBcWTELKTX5/xdEQN2bsfPG8fYa8w8d+lrOG CoHb2IVu33mldCKp5E0pJQWMzaqadhkaecXqBXkfcBEUPgLJ+A2LOjA56fROHO7Cf5Bz V6xw== X-Gm-Message-State: AOAM531YbHo1m5BiELu3UY2zMaA/l8hFIeD+Fwcbqqr58bqa8FSDUhZJ 3jZOjUyIF+5aotthPNk3WaUd6Z/28pM= X-Received: by 2002:a05:6214:2341:: with SMTP id hu1mr2332753qvb.78.1642038804719; Wed, 12 Jan 2022 17:53:24 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.23 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:24 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:32 -0300 Message-Id: <20220113015101.4-71-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 070/281] gsm: 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: 4YUSXHOg5cNl From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/gsmdec.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libavformat/gsmdec.c b/libavformat/gsmdec.c index e14e9aa217..09dc0e0fb3 100644 --- a/libavformat/gsmdec.c +++ b/libavformat/gsmdec.c @@ -79,8 +79,7 @@ static int gsm_read_header(AVFormatContext *s) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = s->iformat->raw_codec_id; - st->codecpar->channels = 1; - st->codecpar->channel_layout = AV_CH_LAYOUT_MONO; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; st->codecpar->sample_rate = c->sample_rate; st->codecpar->bit_rate = GSM_BLOCK_SIZE * 8 * c->sample_rate / GSM_BLOCK_SAMPLES; From patchwork Thu Jan 13 01:50:33 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33355 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp21732iog; Wed, 12 Jan 2022 18:07:15 -0800 (PST) X-Google-Smtp-Source: ABdhPJzLPqjtBs7/v/hR8cT0BE00dLsxDmzKxUk+CEdUfwNl3Xwl4SOy5BFqLIPlybI9DxA3e3ND X-Received: by 2002:a17:907:7f1d:: with SMTP id qf29mr1875024ejc.388.1642039635105; Wed, 12 Jan 2022 18:07:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039635; cv=none; d=google.com; s=arc-20160816; b=POovFnIlscSnCJQekEwc5BEuyRSa5DYd1RxqgBwzokt/W5Yt9yvLIJdohvSnr1ulL4 uT7Fc8uq/ykndh4BvuXMnUoj0UU0XpNZwYTG/sn+xvKx1E4Ik3QL3jzrRF3NlzTUKYa9 kMq4oDkajyzeSbJR2nu6XhGfcuxmodLt07LN2Eayo6eM9JGNwgDyKcDJhyv8IGOHKpHP 9znh+DlETN3yrLTT7A8OiQiF7Q0ZEVgi7og+ivytp/NUAnD6bHXt/01COHGzTAUF2Bo/ bM1JwKk3b/CP1Lna9a0L1+l3ELaB1yjeuq84vsNH69rniGuQNABIp2Ik68pk8dshLdDO GTCw== 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=i7uIR4G4/eZ09JUhThiCbjC3q/rCBK++AqMeP+MrjPk=; b=cb96ySxQsdLnHs+zW2iXYUUM2CAOjoqR7N9JrZR4lDhnwrkE/cIb7ZuTNsFY7YB0J4 35pA8NYAyirvpKIFZ8oUVz4mQrDPJCptEXE9DlkEHpYdJluMXUwDEnDUcPvT15pmgS7I WjTFaFpvdeKFLPwOyJ/0vJ64Gzs4W3DNjQc8QeL8pMJhaZRGBXnsA62qwJAaY+Nfx2AE ttnSV+nSuNJVMOq3sYBn8RdFgii4SPStXK23Nej57HHVSuoSSNYMEncwGqX+r6BgPt+h c/LLr67koLVTbZjXD3eEFs+hVICou7jHo8/J+sA4rcSrixdGxhuPA39oT77dE/AVyPIl 27mQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=IqY3JpeC; 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 qb11si756949ejc.283.2022.01.12.18.07.14; Wed, 12 Jan 2022 18:07:15 -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=IqY3JpeC; 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 2F30568B1BC; Thu, 13 Jan 2022 03:53:29 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f46.google.com (mail-qv1-f46.google.com [209.85.219.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A209F68B1A8 for ; Thu, 13 Jan 2022 03:53:27 +0200 (EET) Received: by mail-qv1-f46.google.com with SMTP id hu2so5077999qvb.8 for ; Wed, 12 Jan 2022 17:53:27 -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=hiE7ul8/OB4fbka2y4pwskbuOOJ/NYFygBJvDji1p2Q=; b=IqY3JpeCfF5486N9vaNfXqO2+1P5Y8nrfR1DdLDUVnN9Whh0XwZFu8eze3q9/6lwVy e/R2R9olHPJCb3sfq8ylDIu/gkTadlGGtGkS7t9aEvMms8tC83uWDTXpFqRmzzBA5kwu Cf/k+wyP4ZMKj9Uwrb+nlt1wjsBXcgBpXAj0AT0ZLNEGZK3TzDUPj9AC66+KfV3myr/E Ehl1SpGwJnpBZ7SI2XvNx5CMpXHcOMPMarVigTjlFJHzF65MqNmNpx/2LgcIAeMtwlUo SecL3TNaasGNi3Xx5FlWKprIkFGicZQQuM0JSbYgbGPNffpHSj97anI5YFww6FXkXQtw dftg== 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=hiE7ul8/OB4fbka2y4pwskbuOOJ/NYFygBJvDji1p2Q=; b=Ag5F8YyhyKrtJOCQBAGCY9tsSM5QflrazKJhOCa2WTgJkhOioaYal7lKF7TGwsj30i Fy+fEAVyte2K3v5VvmYN0JWERkYsEoYMBPdPjM5DoweEJzHgAsQ2NoTrNpAKH7hHQgYx 3uaWe5nlJQ4ewFRNBl8x1BywfkTGp09tg1LtdU6bPL2CKiRC+yCvbuGIKbEqFYZkbD1I BuW0vu0T14NtbX1TjO6OIIBkV6eCfB2bc0xOlXiDGit03AfjCy6iaTKjbP+J9x/2aZ18 R+a+t8rfHbuPcud3tjCxoUjyOWvqDgNCDEb0RveUQwCoe0GUUl5DrIsYCQ4Zyk5wtCt9 zvkA== X-Gm-Message-State: AOAM530f6z9EyolYl08vyTuvEOJlcEemG2As1lkh3R6JYR6EOO76TcPs aPylDtzU0LiYt7OZHKOTi0ES0rUmtY0= X-Received: by 2002:a05:6214:1c45:: with SMTP id if5mr2363060qvb.100.1642038805956; Wed, 12 Jan 2022 17:53:25 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.24 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:25 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:33 -0300 Message-Id: <20220113015101.4-72-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 071/281] gxf: 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: 7E9K33WTbmt+ From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/gxf.c | 9 +++------ libavformat/gxfenc.c | 2 +- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/libavformat/gxf.c b/libavformat/gxf.c index 6f370c1b57..d96e0796f4 100644 --- a/libavformat/gxf.c +++ b/libavformat/gxf.c @@ -143,8 +143,7 @@ static int get_sindex(AVFormatContext *s, int id, int format) { case 9: st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_CODEC_ID_PCM_S24LE; - st->codecpar->channels = 1; - st->codecpar->channel_layout = AV_CH_LAYOUT_MONO; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; st->codecpar->sample_rate = 48000; st->codecpar->bit_rate = 3 * 1 * 48000 * 8; st->codecpar->block_align = 3 * 1; @@ -153,8 +152,7 @@ static int get_sindex(AVFormatContext *s, int id, int format) { case 10: st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_CODEC_ID_PCM_S16LE; - st->codecpar->channels = 1; - st->codecpar->channel_layout = AV_CH_LAYOUT_MONO; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; st->codecpar->sample_rate = 48000; st->codecpar->bit_rate = 2 * 1 * 48000 * 8; st->codecpar->block_align = 2 * 1; @@ -163,8 +161,7 @@ static int get_sindex(AVFormatContext *s, int id, int format) { case 17: st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_CODEC_ID_AC3; - st->codecpar->channels = 2; - st->codecpar->channel_layout = AV_CH_LAYOUT_STEREO; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO; st->codecpar->sample_rate = 48000; break; case 26: /* AVCi50 / AVCi100 (AVC Intra) */ diff --git a/libavformat/gxfenc.c b/libavformat/gxfenc.c index 133d1e9fb3..e25d8764ba 100644 --- a/libavformat/gxfenc.c +++ b/libavformat/gxfenc.c @@ -714,7 +714,7 @@ static int gxf_write_header(AVFormatContext *s) av_log(s, AV_LOG_ERROR, "only 48000hz sampling rate is allowed\n"); return -1; } - if (st->codecpar->channels != 1) { + if (st->codecpar->ch_layout.nb_channels != 1) { av_log(s, AV_LOG_ERROR, "only mono tracks are allowed\n"); return -1; } From patchwork Thu Jan 13 01:50:34 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33356 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp21901iog; Wed, 12 Jan 2022 18:07:28 -0800 (PST) X-Google-Smtp-Source: ABdhPJzy36wFzAf9p3VE6Eb2mdYxzHabtmdsLSZmcdNaYecj8PE1kTWe7u71jR+7WFLI6yyXEWLI X-Received: by 2002:a17:907:7fa1:: with SMTP id qk33mr1906440ejc.95.1642039648700; Wed, 12 Jan 2022 18:07:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039648; cv=none; d=google.com; s=arc-20160816; b=zX4dWriOZ6PgqzZxawoTYsPXGTXCKJIZQoVKqQ5Sgu6cHnIDsFQ811IaxVUczaJwqA VPiJcDlt7VbvPh/ESR/tycfuWk5uMZM0rh5CIXPsklabetqyny12959hTs/5Zlx3Hyyf B76vt+lPpdPjVEh5NgD6Mj5VWF7ehC8Ezz5wvlvYZDG3nTkuxerR5Ayy4DYpSCaWqnST 0yNDWHCFISKgtvWJufJnocPSyevAL5DuU2ofHKj9m4+zml0OP+XejlH8W1lQ14MSKRqS 9Q5BvHCM63X76SXVARLlrKXtz/nvcYElyHKmb20tBIEqSJRJMzNV0p8EOeozPJHsdiC8 OYgA== 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=a9Zn0EOA20IJcej61u2HpmbxU6mH+9EsH7JYz+VIZ+4=; b=b/kULSkDVM4jXCDP+Soj2QElYCDaEewToHMyrmgsC53tQv82GoNlun2kjoz/E9sGNw w5Q9tWFGp7vRPPCv+XZE3WJk6UeaUU10tM+2vKFpU0OMYeduHn7bfY/LAqASeq6qXCe1 SOGTLIahMlfOmgaYFUXPNEC8KbHQ2PRS75mxfqWSJ8Mn7Hng7tgNNAtuQeIQ/m99+hVW B07aTtO8cjPRVmAjLv+KKM//NYi/lgy1u3s9nQseBWc4ZqnnwyKPEZgMkfvTSW6lqF2C 3SM9bAN/kXwvB9C7vZv0EP7g4S6MV2+vhKnrIgn8Tr5Dq+N+x/MPTK8ckdZKwGhS1vaJ uG/g== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=gb3DQ7DZ; 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 x19si964080edd.336.2022.01.12.18.07.28; Wed, 12 Jan 2022 18:07:28 -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=gb3DQ7DZ; 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 0218A68B0AC; Thu, 13 Jan 2022 03:53:30 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f175.google.com (mail-qt1-f175.google.com [209.85.160.175]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 80FB168B0A2 for ; Thu, 13 Jan 2022 03:53:28 +0200 (EET) Received: by mail-qt1-f175.google.com with SMTP id v7so5306923qtw.13 for ; Wed, 12 Jan 2022 17:53:28 -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=b/GD8H9i+SGKn/6rjEdZfRwWwyrf7CuFGtHwC2FYcNE=; b=gb3DQ7DZSGXJbyhSzs/WzwmrvWDXsbDaAh07Zz65kMQ8+qoXAbd1WXYMSt+qDcHeFF EQTKnlAhEFsIIu/mJMeRS+H16UQkQYqPgdZVyzxEoEjK0w3jDz5I2eLhrKoCQeuV9Qeb +0JPRcCanGiVUNB0iEToIaaRjiM6FBgu7jE9ec4bzFf2D+kbMhfTtJSHteAX49YbpzCm iwDVTAakAh8Ks0iezet6xe4JD5Np0jored/drTvYAdNAUb2W25PvWHe7Q51hWiFXm8jG GRPP7QR5K4gl3gVKKBF+5MjZDJRanuoCYapxAvTG8qT+GbWz+4gL6U2wJT6ElZq9Pg7Y fccA== 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=b/GD8H9i+SGKn/6rjEdZfRwWwyrf7CuFGtHwC2FYcNE=; b=FiDIhY4zh1k5AX1wshUwBa7PEZYLKf1aP/5zhBzJyvTqAVLpgJPuzEdrf4qgLl+duR 7+WX+bNNLDUY+dntdOZomEGV1e5gyb316aqecG/XE95APlfxddbPqu8ZoLbflSp6wo2q mGGknWy8jTGcUDuI9bYHL+A3CgnWJOOwJ1etTnXWXCTJq3E+Z3y26oQdsp7dyfuCgnCa kkB1jPAndzz4OXezf8XIYnZalNvz8qPlX/UA0d1Cm3IZ2hnn8qnduSLG23qb5sPxT1ZJ pdxmoQhxqNtqhohmZd3ssFEvcXDph7ZjpasnpZyrj3OK5WT/QxH/ymeYJ/kwab2z+Myc gtdA== X-Gm-Message-State: AOAM532ysBK7o4yF6fLQhCZ6Xz2/lf5kGMmQ/2YKNRzUgHZs11BM85cs Bte+J19aZFaO6UevCtZG5l0g3bwoBBM= X-Received: by 2002:a05:622a:1a9f:: with SMTP id s31mr1997039qtc.57.1642038807132; Wed, 12 Jan 2022 17:53:27 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.26 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:26 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:34 -0300 Message-Id: <20220113015101.4-73-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 072/281] hca: 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: sYXJNEl+lFxR Signed-off-by: James Almer --- libavformat/hca.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavformat/hca.c b/libavformat/hca.c index eaa96a9b17..3c9e549e38 100644 --- a/libavformat/hca.c +++ b/libavformat/hca.c @@ -79,7 +79,8 @@ static int hca_read_header(AVFormatContext *s) par->codec_type = AVMEDIA_TYPE_AUDIO; par->codec_id = AV_CODEC_ID_HCA; par->codec_tag = 0; - par->channels = bytestream2_get_byte(&gb); + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = bytestream2_get_byte(&gb); par->sample_rate = bytestream2_get_be24(&gb); block_count = bytestream2_get_be32(&gb); bytestream2_skip(&gb, 4); From patchwork Thu Jan 13 01:50:35 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33357 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp22058iog; Wed, 12 Jan 2022 18:07:43 -0800 (PST) X-Google-Smtp-Source: ABdhPJxWSRsdFPFKlPoZQeaN1gysbnQrrtK9Vjh8pl2XZbItfZOIftShCzkYakDv4DIng5NtdQK8 X-Received: by 2002:a50:d492:: with SMTP id s18mr2273170edi.145.1642039663169; Wed, 12 Jan 2022 18:07:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039663; cv=none; d=google.com; s=arc-20160816; b=ZFvjct95z0YPveLi823+4sb17948frou9fLliFsFj+bmBP9IjTGJT53clq0irxJv0A hhZoxtllAHDsjKQ68bNLPTQT4jzuhMUuCGWu9r9QSW2zichriJ2ENGgB6JHZ8wcNIVwT MXs2QoqkvwoULZPhDiC0Q89yaGOcJessZ5X7s+zjCH15JxdxHBVLG4Geu7WcgQSAmxnV WjIhMjTCuACUCZymPblsNUy7GJj1CcP8UycbLm57sJ9X2T4q3tcZ95HBKmaOyxZT1e6h +nx5P4INFJBMDh7JCeyhmrwBcb1x9W0Cl2Y62nX7xIUz/UGpPMsfyqHbbAXf9FPgjzBA v3Qg== 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=ypzp1skXQTTCdX8OKqch/Kez5GNMLi3S+2j+P0o9MDc=; b=wfAtox8hTcVoPdWXyiwIAaI0A8iLzZFE7hQluLUMS5kPLLiXq59m3tGwDi1S5ZOukt QgiqtDJAGU79avjR6GU1lXh+IP6+WGtYcvAGRTJpfQ7rVQk31Ln748GREwgbIF4gBzmR chwdM1dLGf6I11khvv52tVda9ZXSl05SzlkWDvHVCNm3thv8Hq7DK3rHuTYb2WQMUECO exBb7QgR46wTjw4NgOOvj9i3jeYvkJ/kzk+hFKsXmMlBJqZadatVyVWydmJkf5eKh8fj 9fYNIir9cxF5QFAdRcB516mc3Uo5sAi58NUF465KBTrAR1kxhZcNV4Rcq7K0fDaFtpV9 +Mtw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=bDG6hXJr; 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 gg1si739372ejb.166.2022.01.12.18.07.42; Wed, 12 Jan 2022 18:07:43 -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=bDG6hXJr; 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 311E768B0C2; Thu, 13 Jan 2022 03:53:33 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f49.google.com (mail-qv1-f49.google.com [209.85.219.49]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BA04D68B1B7 for ; Thu, 13 Jan 2022 03:53:29 +0200 (EET) Received: by mail-qv1-f49.google.com with SMTP id t7so5147894qvj.0 for ; Wed, 12 Jan 2022 17:53:29 -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=ycLIY+RH6c2EqJanObgaufvIDahn6MAyCl2VpSBwX2o=; b=bDG6hXJreYwftewRQhtl2G4Je1CieJdGV7XiHmORrVQaPphwmE5c0aEJGjALdf0Oi4 bI22elaE6KCUBloPegErdxwD8R0yln0MAoEGFn2iRltbMOVmd9fTqRTYGt4camGFKdnT gwu1R9PtvP4t6Ej9sJTTV4145NZdrjh0Sd0C9IyQRhW1abG7bhxshr2+IokXB3/3aj80 dXe/hSV5FwmSkeLp9ec9dmNmQ6Ysgz3ZZhyQnHG7iPEj4pSBiBixYjPO2K4niIPoRc5j ebRe6RzBa8Ndj2jJczJiS+aMWLMYDKgyvC6x+tR62VE2IjFOUIJjqI3lztOUNtzREDuO F2NA== 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=ycLIY+RH6c2EqJanObgaufvIDahn6MAyCl2VpSBwX2o=; b=H6or0Z9zq99UjWBG7b7vDZuf2GJp00FjS7xs1QkWFd7eeFmluXZtBblW1mYAfXFDUB R+BCdPqO9CchjIqcv8Jh3bPsXB/m7X/z7W9X1B7AgClDV8jNk1COxfCif19HGJru4qyb XSFonTNxcWcSipq4MpCCoAzaMll8G6ke7v6LEmMFhlUQf2wDtEp65SrFo9UkJYuL0VUa PkRDdp6AlH4ojliG8VV+yhLc6oopRmhjC6KZSn6LQIupkziLGCp5Ob11pEBQJXESK00+ Ufklr12C0Rq70LpPNiZebhgmQfj9PgvKIpG0BaQUMv6LCpsgRwBM41WHEl5UR5U1A3Ho NhLQ== X-Gm-Message-State: AOAM533k2OzMmASSsEGiZNgx8h3gv7YNGC8PHjAM5X4IIxFXnAtB0LNe LBL9Z/5sD+V8eLzUshiUg55pBAggW30= X-Received: by 2002:a05:6214:1c42:: with SMTP id if2mr2119693qvb.17.1642038808326; Wed, 12 Jan 2022 17:53:28 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.27 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:28 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:35 -0300 Message-Id: <20220113015101.4-74-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 073/281] hcom: 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: LAYIH14olCac From: Anton Khirnov Signed-off-by: James Almer --- libavformat/hcom.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavformat/hcom.c b/libavformat/hcom.c index b7fb7314c8..579f0b707e 100644 --- a/libavformat/hcom.c +++ b/libavformat/hcom.c @@ -62,7 +62,8 @@ static int hcom_read_header(AVFormatContext *s) return AVERROR(ENOMEM); st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; - st->codecpar->channels = 1; + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = 1; st->codecpar->sample_rate = 22050 / divisor; st->codecpar->codec_id = AV_CODEC_ID_HCOM; st->codecpar->bits_per_coded_sample = 8; From patchwork Thu Jan 13 01:50:36 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33358 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp22272iog; Wed, 12 Jan 2022 18:07:57 -0800 (PST) X-Google-Smtp-Source: ABdhPJwf2hL144S3SBWZCXSJY5420huchbu15OLlB/uogCZ/+rViJdZBNlUC9SOCiRaoo92FWBx4 X-Received: by 2002:a17:906:5509:: with SMTP id r9mr1903692ejp.389.1642039677413; Wed, 12 Jan 2022 18:07:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039677; cv=none; d=google.com; s=arc-20160816; b=ZaMUakcA9YLe6KUALFe/YfQC+uxVMhXor61JxovIqdVcLMxeRQAa5ypfGgjYXlly0n ma3nzEdkS2YNvNYyHL5PVsRG0V418NO8Z0PMIibg7gdo79Y99cNewQ5Blifdgh1uwguJ hSLFzto6PAcZpBTKJt+lQxr95k7taTPS54G1mJY3vx3wYu6CK1har9wpBn9ACIveKtCS +LjsmWCVd6eAZey+/HoWea9xYClf4taVj7GLMB4k3QkgCFwOz9c/vZMl2YOgGawXb11C q3uA7+8nuXj68H5LIKuUx1eefdL2TzKNHeNFFu0dR19D4c14z0ZE9YgiJrtAIVZsUr7u miXg== 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=SCHNtpUEltGDxnMA87ePX59kb8L7rjkUdq0WgbRVcWo=; b=L1TpwI9UOWW6c46NentdQPPYlatTv3yWS8MY0Ho1SV+6KD0mfxHoG0c2NPQKeoeTdZ hK36n6ycMjjQBg7s/UBOyKkFbTJjLDYiTx9vLHSSftIC5CS2Ha/7isDcsPFW3h2O/kww FlQwZgYYGB9GaCk7Knp5nMVRGosiY+D5f4lsfCDuqr95bb0ArhBMfq4PQok8OAf6QCKw 8diPLULiCkYv43KH7ZB3QzeEUx4ozLwEQZYu6NxCbVi9Fe51FzweXNBi6+AcDuzSIQ69 w2CmIY7wZGq7SocOgxJTVAlJCEZFRG32wD/UbyaM1M4vrlHvnnVDlRq/6/ofp1CCk2PW y43Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b="gsCuSG/W"; 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 c5si816877edu.8.2022.01.12.18.07.57; Wed, 12 Jan 2022 18:07:57 -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="gsCuSG/W"; 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 0467A68B1CD; Thu, 13 Jan 2022 03:53:34 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f175.google.com (mail-qt1-f175.google.com [209.85.160.175]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F0B0768B1B4 for ; Thu, 13 Jan 2022 03:53:30 +0200 (EET) Received: by mail-qt1-f175.google.com with SMTP id f17so5324562qtf.8 for ; Wed, 12 Jan 2022 17:53:30 -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=eQaFAVUsRSMiAyqjCyTGUh232Kna/vz8lg1Cviz2cEM=; b=gsCuSG/WxKVk9dY7uZ0UJeZ7dRzQ9GqH51TtuMFJCJwRFYsFSgeTkouQlb3nVCEQbi CpZ0Ml1hjmzwqkqB/DmC9xsLCh82Vq+w306wXhIB0Urq66bubeJL4wjwpNm+9v0y0pQR gEHeSLc1ZjJ6dtqdhMOZEsu/lCRsYCJJqVw1xZTNrP2oW6JCUPpYPbG+7iG8+vX15IXr zjJZcTAD2J9Yvtt7sriM8W2O4/SbuJFqooPatRAOBVBI+VOwSEHF+SX9JCwzyWTuXvp3 HZ2tXTRpCpkonhS0Xvx2+HG04yJcZSlIWEJBocVFKjQt0dWyzgBtuM5Vz6FuP6Vemn9D uL7Q== 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=eQaFAVUsRSMiAyqjCyTGUh232Kna/vz8lg1Cviz2cEM=; b=nKC1umnCIWuz3LWFIyQW9w5jcoAYcdQcpQFptiGXG92agmKAA/XVHLuDYGR9ZcDcKK BhKcDksix8FpZidUytwZFvyREvR480SXwTBOvbbmH+9IRAwSG22jCcndKz0+3kS0iLlV o7rYSFj+tvDCEPl1oCufgkinyHeiKPcjsVKu5D2aY7XaBGdw1+VwV45Z5C3LqBJPYcOJ zfvsflh4LI7myyZCtqEFCmzYuCQ/x4ExycNkRnn57yuX91O9GNCq2LsWGwy5BC2hDFHh TxYbaj6FihtDOHJFaY6geXaSvgyy9zTOFBT93XcO5neuJNddo/0yWVb5wnnBwV14QMM0 f3Mw== X-Gm-Message-State: AOAM530ID2FwDGu9Ud52ihbxXn4uhXtWyLCxEoMhsJfOR2mocmGtp/gH T84N3+LtPjeUEX49aIBbAT9cFS0J0BA= X-Received: by 2002:a05:622a:149:: with SMTP id v9mr1990427qtw.183.1642038809547; Wed, 12 Jan 2022 17:53:29 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.28 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:29 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:36 -0300 Message-Id: <20220113015101.4-75-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 074/281] hls_sample_encryption: 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: MRxIUAqT+8h3 Signed-off-by: James Almer --- libavformat/hls_sample_encryption.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/libavformat/hls_sample_encryption.c b/libavformat/hls_sample_encryption.c index 3dbaff717e..159a6edc6e 100644 --- a/libavformat/hls_sample_encryption.c +++ b/libavformat/hls_sample_encryption.c @@ -109,13 +109,14 @@ int ff_hls_senc_parse_audio_setup_info(AVStream *st, HLSAudioSetupInfo *info) } st->codecpar->sample_rate = ac3hdr->sample_rate; - st->codecpar->channels = ac3hdr->channels; - st->codecpar->channel_layout = ac3hdr->channel_layout; + av_channel_layout_uninit(&st->codecpar->ch_layout); + av_channel_layout_from_mask(&st->codecpar->ch_layout, ac3hdr->channel_layout); st->codecpar->bit_rate = ac3hdr->bit_rate; av_free(ac3hdr); } else { /* Parse 'dec3' EC3SpecificBox */ GetBitContext gb; + uint64_t mask; int data_rate, fscod, acmod, lfeon; ret = init_get_bits8(&gb, info->setup_data, info->setup_data_length); @@ -131,11 +132,12 @@ int ff_hls_senc_parse_audio_setup_info(AVStream *st, HLSAudioSetupInfo *info) st->codecpar->sample_rate = eac3_sample_rate_tab[fscod]; - st->codecpar->channel_layout = ff_ac3_channel_layout_tab[acmod]; + mask = ff_ac3_channel_layout_tab[acmod]; if (lfeon) - st->codecpar->channel_layout |= AV_CH_LOW_FREQUENCY; + mask |= AV_CH_LOW_FREQUENCY; - st->codecpar->channels = av_get_channel_layout_nb_channels(st->codecpar->channel_layout); + av_channel_layout_uninit(&st->codecpar->ch_layout); + av_channel_layout_from_mask(&st->codecpar->ch_layout, mask); st->codecpar->bit_rate = data_rate*1000; } From patchwork Thu Jan 13 01:50:37 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33359 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp22474iog; Wed, 12 Jan 2022 18:08:12 -0800 (PST) X-Google-Smtp-Source: ABdhPJyNtZEEVC+Hq6/gLhXym2K6SRQ8uX/2MJWMKqhWbTsLr6fYGt6mWn0Vyh2yVT7IzveRr02z X-Received: by 2002:a17:906:af82:: with SMTP id mj2mr1852416ejb.33.1642039692083; Wed, 12 Jan 2022 18:08:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039692; cv=none; d=google.com; s=arc-20160816; b=gOEpkZ7rq0rn5ua8Iv5RFdgKid0S9MMy+q0+UhGovqPxmvqIcygGA2i8/l+NRFpCXM Skb+vB2KwP35CZZZgpRRoumNXTpQFuwpzp2uFdFgySGKR08opgFqsFhHt21/3xYsEDMh 1Q5DYp0LLdtwGqaiNS1Inytr5eY2rxH3ktpGpbby44FSRaAgnhZd6S+aiNetPGCIUev3 bJldNTCvVOkI9rumCEa+8U7O3yfUIW/CU0ufCpTfSJsCyA8W3QLawDeldDOTOqtZ1COk Oqpzgchgex9s46oS7QAs/17BbnveIHxYmkwpBbtZNjGwEWXJESy7WIl8km+iKK0kQL4P sNdQ== 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=UuVuzlOC58MFYb6OjTMIQMIACXtm+2alCB7o100Bx1o=; b=tLS5e5U7/STnuAKzT0PG0KAJ0k6PfdQI6kXwepgR4DsVWwW5dikYMstGqkm8H6RKj8 Bwzy97XyBDtM4+fTAVK5HUNfFyk9dwcUJDvmt4IaGJFkYWN6JZkTRrIuhLnTdOCB/2Oy 68lBBb5Sz8ieJ9GOs7qYlmV9O4yjBkSBurfnXvl7biL1gA9cyd24YbL6jvIKmmz9ytco TsKtURykIq3Bg1Hmhkmj0Kp4YeAHLyRaRfEbAscfpjKINkrVjC8SYs1IH8S2BXXO5L6Y nyYY/uOqBovh/Y+QYVWY8MyTS7jyR/FpY3ntI53yoibJ6pwLTV9XIVeJlCYxEgsPxBc6 cixQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=RYswmWoc; 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 bd28si832512edb.262.2022.01.12.18.08.11; Wed, 12 Jan 2022 18:08:12 -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=RYswmWoc; 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 0A65868B1C6; Thu, 13 Jan 2022 03:53:36 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f52.google.com (mail-qv1-f52.google.com [209.85.219.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1EEDD68A255 for ; Thu, 13 Jan 2022 03:53:32 +0200 (EET) Received: by mail-qv1-f52.google.com with SMTP id q4so5083136qvh.9 for ; Wed, 12 Jan 2022 17:53:31 -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=V39lZA9zYKA1bOefsutOkcFHlqijqQKAXdIAgZS6dIQ=; b=RYswmWoc2HqCFal6H0xBG3Ye9VDqNaP7TD+jXf263TGjRGqIY82yZhFrJIgTzJuqG5 EOBJHXGx5EFTVnjYjM0AIy7WwwZUdo9v+z2tJDHKbea6y9hYbeLHIRGNG+S4O7l7vNoA gUh++UMiB2QoYnlRsRlILX4k4zyFjZ1YYecHO/ziRv4mm2RKPt2eMO9ziS5Goeb41g8k S+bPbNZQTzApYlBA1vx3DwV1kaK62n2obvlh/ZXehoVQ3j6oS7w9Zi44Xq0Z7mRCVcAo URi9iLjKScgszobOU/s4jmzNJyLAMGXHjfW4y8+uwfkFIMraROpHuwgy7K/wqIUsyou5 OciA== 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=V39lZA9zYKA1bOefsutOkcFHlqijqQKAXdIAgZS6dIQ=; b=0sYmIlwqoiq1JMzn2BOCa/Zy7rJBBH2iMyKPEut7hwniFCt5uixX1GwysgTyJ2Bw7C HGCA5yW+SLkDZv6/6nxjbJOeWex+LstccxK9UZxCaLFzl94BGUDxX9mW6c+rH/V5oG73 i++DC8omUfxrOPMIBmzdBcKAshUin7bHBfY1DI0gHWW+XFMZHUwpG7HHNyP5n0qfN1+3 BDx/os+xZca5o+xizewzOTSRFvncaJY6XkR2XUbajl1rwF7H7lL17llpaIg8x0u3AWHb Et4gb5BVoovwmPN26lgDTzDdKmX8u2wZrxxmY3G0ajog77tiy/CbAa/dn3eaUvavFWGg aZFg== X-Gm-Message-State: AOAM530DaEpfMwk9UeNANnjCbO2e0SF0baVbrJJMgvPnem8NZT6FjSv8 biV2aTaj+kUlndWZvI+ifyf0Diugz3U= X-Received: by 2002:a05:6214:4002:: with SMTP id kd2mr2291099qvb.35.1642038810724; Wed, 12 Jan 2022 17:53:30 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.29 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:30 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:37 -0300 Message-Id: <20220113015101.4-76-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 075/281] idcin: 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: Pbq+IxEJKWgm From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/idcin.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/libavformat/idcin.c b/libavformat/idcin.c index b7402107da..c92ed2c237 100644 --- a/libavformat/idcin.c +++ b/libavformat/idcin.c @@ -218,9 +218,7 @@ static int idcin_read_header(AVFormatContext *s) idcin->audio_stream_index = st->index; st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_tag = 1; - st->codecpar->channels = channels; - st->codecpar->channel_layout = channels > 1 ? AV_CH_LAYOUT_STEREO : - AV_CH_LAYOUT_MONO; + av_channel_layout_default(&st->codecpar->ch_layout, channels); st->codecpar->sample_rate = sample_rate; st->codecpar->bits_per_coded_sample = bytes_per_sample * 8; st->codecpar->bit_rate = sample_rate * bytes_per_sample * 8 * channels; From patchwork Thu Jan 13 01:50:38 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33360 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp22638iog; Wed, 12 Jan 2022 18:08:27 -0800 (PST) X-Google-Smtp-Source: ABdhPJwCMBNEKyzPsYAuj8da22CHHTU++JVTD920Br77lJVmsg0mHdF7aSEWbvWe1AmHXrSH5GCm X-Received: by 2002:a05:6402:649:: with SMTP id u9mr1624563edx.325.1642039707183; Wed, 12 Jan 2022 18:08:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039707; cv=none; d=google.com; s=arc-20160816; b=qy7tZRe3FBZ1FMn5cy4bo53YTTQafABp0SiswVICWX5HXfcbIKovUz3SzDD3ORt1u3 kG3ymJYmrhtkPvDMNlCXqtkqNmqsByF76CK0UGFQfbXBzqUaqlKyWQO2S1T5snOa/4FN 3cx7Bk3x+w4zAME5In8DBBysA1VC3rJBHpzs9N5JgAdaxlTCSLEtRZ/2/OygnDeh2Hjz iGU078GaKWAh+sdAvt8iLrnnkyEbdiPIexZyN50DJkpzAaIbXHQd8nzsSMIebTTf1SAc zi30dKuA530FyvMJtqd0j09iURlMCIE1HHtdABPy3p+uR5CxI2vl6luaVpaN2zKBCcLj WdNA== 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=57+LpvSSCqkf1u2o17pSVZCeostyBIjn/246bu2yPBQ=; b=ZpAfh04TkMR+J7/HdlHdxiy8/Lvsy2v7huGUjbEi4849NSpYPoW4ImxcVNWO9Z65at Xcr3iFDMgA/11TU84dPu1zxTmASaM/xSbFXBCpPdI7Vrhdlyz93S6Oa9NUiV0IFh2nOk csGWyEDyDeh0Pb+13vG5LyyhLlgEVnmO91KqvFFUvSFtP++DobhDw/NrfbUM361d9vye 9VmmVwlmGx39nN7pdcYVMNFxukMfg6Ak6WEGGatN4727AAyZp1ltNs0RPd55WLxeHX3y 1hA/F1sqFj+J5TFMDQkjhjFPHywy9tnEh1JXj0uWVxQIUB4ICPJjqqbLKF2PDFETpCco QoJQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=gh8abDNF; 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 p7si800156edi.14.2022.01.12.18.08.26; Wed, 12 Jan 2022 18:08: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=gh8abDNF; 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 0426268B1D9; Thu, 13 Jan 2022 03:53:37 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f179.google.com (mail-qk1-f179.google.com [209.85.222.179]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9919C68B1B4 for ; Thu, 13 Jan 2022 03:53:33 +0200 (EET) Received: by mail-qk1-f179.google.com with SMTP id t66so5561086qkb.4 for ; Wed, 12 Jan 2022 17:53:33 -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=VFq42Q7okdajDuusBz5Nn5QwXoWYpYv7evLK1dMeAYY=; b=gh8abDNFA9Cy2c+PRh3URyV6CC9PSbmQHrGZse/PwocIuLqXsNUYsscZteKUznzPol UDDRTZO91H0Tfe3tD+KwSzEFarmaZez16ByFc0dx5HGhGm2OcLc04Hsq7Q7yCd6rxm6X ogObeMBb3hOY6m7kujqi9CKBxzlHPd9YUD8KhQqrSIYioHmfJLzP1N4xpr4Elm9U6crB RmZKAljqWqTnTPMGn2EfcfG9+WD7yUuHt4ycheKHiLsWz/LsqNtUnOzYDg8mGo1pBt6E PnryeqHQPKgcNXHOkwQ/damLEry94ar9nG7hojGZ0zDneu9LNCjni/Jj2DnCq8QNaaGm aing== 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=VFq42Q7okdajDuusBz5Nn5QwXoWYpYv7evLK1dMeAYY=; b=nnVS/yC6QfmVc99xesHDCwlzPuXNu30T0WL1UCN/16Sl2IoP9/hQjzD5JDXLQ2FFhl 7+9Jy/VmOLcGvWkcek1ltwRN2gTh6U4JlmXNUmGnR3QYbddRNyVagx1ob7CwCriLZ4Ut YVyXCznM9XamSzQi7wkgfZm+QQ2mqtatVXRMzXwxTzzvivqyKjNYi2zun2y91oLyzq0U fAmCDHhYyVP7dd7X40cbmnAIxCvJLH6GsATSXtXKksdb2vQ5zemMZ/ahlvc3NdqKxxM8 kln46SyXAVsqZ/yHYKxLuMh0l7LqQXltZTTgfwz2y0vSxlTBF9t5F1/enkblIItMZgl5 +k+g== X-Gm-Message-State: AOAM53134zL3mMrFBJZwuYqUO1/uwi/UPlReMZYeFGbZO1vlyG4V0xQf Ty+q4Cd9v+Zvlal9XvX/P0ZlhnzAtgc= X-Received: by 2002:a05:620a:38a:: with SMTP id q10mr1846941qkm.429.1642038811931; Wed, 12 Jan 2022 17:53:31 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.30 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:31 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:38 -0300 Message-Id: <20220113015101.4-77-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 076/281] idroq: 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: ZFOlGlwt0HdW From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/idroqdec.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/libavformat/idroqdec.c b/libavformat/idroqdec.c index 0c8b7278e9..c9fc972780 100644 --- a/libavformat/idroqdec.c +++ b/libavformat/idroqdec.c @@ -185,18 +185,16 @@ static int roq_read_packet(AVFormatContext *s, st->codecpar->codec_id = AV_CODEC_ID_ROQ_DPCM; st->codecpar->codec_tag = 0; /* no tag */ if (chunk_type == RoQ_SOUND_STEREO) { - st->codecpar->channels = 2; - st->codecpar->channel_layout = AV_CH_LAYOUT_STEREO; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO; } else { - st->codecpar->channels = 1; - st->codecpar->channel_layout = AV_CH_LAYOUT_MONO; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; } - roq->audio_channels = st->codecpar->channels; + roq->audio_channels = st->codecpar->ch_layout.nb_channels; st->codecpar->sample_rate = RoQ_AUDIO_SAMPLE_RATE; st->codecpar->bits_per_coded_sample = 16; - st->codecpar->bit_rate = st->codecpar->channels * st->codecpar->sample_rate * + st->codecpar->bit_rate = roq->audio_channels * st->codecpar->sample_rate * st->codecpar->bits_per_coded_sample; - st->codecpar->block_align = st->codecpar->channels * st->codecpar->bits_per_coded_sample; + st->codecpar->block_align = roq->audio_channels * st->codecpar->bits_per_coded_sample; } case RoQ_QUAD_VQ: if (chunk_type == RoQ_QUAD_VQ) { From patchwork Thu Jan 13 01:50:39 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33361 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp22764iog; Wed, 12 Jan 2022 18:08:40 -0800 (PST) X-Google-Smtp-Source: ABdhPJx25VsobXx7wRfIwpfslN/BqWeYIHbWCc/IIGOI7TdYBQwthGBrXOH91zNVlFTGQ4BxBmuG X-Received: by 2002:a17:906:9743:: with SMTP id o3mr1904323ejy.162.1642039720053; Wed, 12 Jan 2022 18:08:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039720; cv=none; d=google.com; s=arc-20160816; b=vugvUWrMECgE+lIU5CA6nyZ6SrqKrd4g+5AFfIgKI/YkbI9AXBH8coyQiPRX1TUVo/ kZCSLjZ8gnttranvfqUOgNHESMku2NItMPsKiUciUtK25GTtKaugBmUcQF3UU6OQA/uE s/Bv5kA6VJdvL0q8g8r8MGoycezFMIkVxM86usxbsZSIo6WAeh7MAhN+uwoYOsjjuJrc aN3o6eqVIa/mTeAYVb41YAjV2a815qT1+23qACHw0/cyajAg9gDoSzks43wD3ZOMUJJ7 NnaX/9CcN5954HJA/ajDYqAknYMxLsoVzk53MhMjMih1CvLlpVm3PoO79RlE0qbe2FPn 78uw== 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=vHEdMBf2eOJ6q3+RK42jzAm5ZosaMX6fKJT/Dyxoku4=; b=W4/J6bX59ixGu00d0mJvKwjALxVVlu+Rt+11kVeQErON88cztLUL2ZfA6LCWJUtDcu w5t7qcYT3dfWZFVn77w3UpMTz03UX1JUAVJa2G3/HHQwEwZztkFw2nPLQQtUj94mA6rW 66bIPuLzt2H5H0FsWJSaF5po+PHpmo/zHLXzC7Spzj5cV714v0n6Fwo/BIoqyQpSR2iY Gg5WDe7BqE+78wsBnXGnu/yZKGiRXBwKltbgrjDvZLImJQijWuQHrsdIHZ0Qy/1IQ4u9 n53ExGAPU6IsTESdTqUTN1n3wF/UywuAlzOlJQ584VmeOH1QF7r+uiPW/HrnLyRmbv1h 8KfA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=T7n8NXwH; 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 c29si852361edn.585.2022.01.12.18.08.39; Wed, 12 Jan 2022 18:08:40 -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=T7n8NXwH; 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 E927068B1E3; Thu, 13 Jan 2022 03:53:37 +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 EBB4D68B1C6 for ; Thu, 13 Jan 2022 03:53:34 +0200 (EET) Received: by mail-qk1-f174.google.com with SMTP id c190so3905145qkg.9 for ; Wed, 12 Jan 2022 17:53:34 -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=vVZ1pmap3q0Zbd49lCF2ayyQ8TI3pkbEDEo+NGbznrY=; b=T7n8NXwHJCO2wt00jH51ke/eki7jzUzPMMn03alY69jkdVmlRP8pPO5sh/VSM8S8Qy eVdnqliB3oZojCQnRqOFsbA6HX37b7/pngcUodrL6u+UL17HzFYMiph2+LRrTXfXEiSo QAuzgu1/Mpo4FCKEH9ewaMFuaA4TrZf163ZqiwzPhftQtQg0zltMAAwsj4DTRCquXJ1R SAOpRxsM8jSe4Zus5GeZ0LdUOAnvmYZMJXdJVuNGutNVGVPxJyKRJQXMcQ9YHv/CUg1U PyO3JlzLKE3t0mLMtqO+HvNxYkoxLpeK3NfUtFGfi856U0PRmAsFaNIwO6L0Prd8S187 xvDA== 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=vVZ1pmap3q0Zbd49lCF2ayyQ8TI3pkbEDEo+NGbznrY=; b=UAfcDUy4nx0F9TYPzGh3W6B9qoxqmYaIEjaHAwx31y/TjfTUEcjdCDDYsJitoSasMm hQmcpeV8T4e9J8Up+0DR9BB4sovfIE0nRylzEGmbFxCjCGW1nfKKTtudrLBff+rMfCFi 1gHub+KYxG/JRgdMyKKPHVH6fYm051NRotE7olIUCCq5nXOKAge85hpYLD9Mn8QDJEHc sJtn11NBGuLB4KDkYoMpNV2ick/eawAhxk4WrWVmNh8vlYibxE6nYpUAskn4kLBKxz6Y zAAvCkojU8hHDDapXC3sg/jBnNUP9Lcb9uTRjGEwIwR2bvjeLtDnjl5NUDTkD/gAMave WbKg== X-Gm-Message-State: AOAM533J/D93ZW2mkPc66Yt0G+Ch78EbwK65xvKS3B9L3zQ+s9Dqspa9 nUUp5TFzFz/iofgRffq6Xk1GawOkFSE= X-Received: by 2002:a05:620a:29d2:: with SMTP id s18mr1818479qkp.730.1642038813153; Wed, 12 Jan 2022 17:53:33 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.32 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:32 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:39 -0300 Message-Id: <20220113015101.4-78-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 077/281] iff: 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: d8RcaIZu3eHs From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavformat/iff.c | 63 ++++++++++++++++++++++++----------------------- 1 file changed, 32 insertions(+), 31 deletions(-) diff --git a/libavformat/iff.c b/libavformat/iff.c index 078406b7e3..3c861ef34d 100644 --- a/libavformat/iff.c +++ b/libavformat/iff.c @@ -183,20 +183,20 @@ static const uint32_t dsd_5point0[] = { DSD_MLFT, DSD_MRGT, DSD_C, DSD_LS, DSD_R static const uint32_t dsd_5point1[] = { DSD_MLFT, DSD_MRGT, DSD_C, DSD_LFE, DSD_LS, DSD_RS }; typedef struct { - uint64_t layout; + AVChannelLayout layout; const uint32_t * dsd_layout; } DSDLayoutDesc; static const DSDLayoutDesc dsd_channel_layout[] = { - { AV_CH_LAYOUT_STEREO, dsd_stereo }, - { AV_CH_LAYOUT_5POINT0, dsd_5point0 }, - { AV_CH_LAYOUT_5POINT1, dsd_5point1 }, + { AV_CHANNEL_LAYOUT_STEREO, dsd_stereo }, + { AV_CHANNEL_LAYOUT_5POINT0, dsd_5point0 }, + { AV_CHANNEL_LAYOUT_5POINT1, dsd_5point1 }, }; -static const uint64_t dsd_loudspeaker_config[] = { - AV_CH_LAYOUT_STEREO, - 0, 0, - AV_CH_LAYOUT_5POINT0, AV_CH_LAYOUT_5POINT1, +static const AVChannelLayout dsd_loudspeaker_config[] = { + AV_CHANNEL_LAYOUT_STEREO, + { 0 }, { 0 }, + AV_CHANNEL_LAYOUT_5POINT0, AV_CHANNEL_LAYOUT_5POINT1, }; static const char * dsd_source_comment[] = { @@ -276,21 +276,21 @@ static int parse_dsd_prop(AVFormatContext *s, AVStream *st, uint64_t eof) case MKTAG('C','H','N','L'): if (size < 2) return AVERROR_INVALIDDATA; - st->codecpar->channels = avio_rb16(pb); - if (size < 2 + st->codecpar->channels * 4) + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = avio_rb16(pb); + if (size < 2 + st->codecpar->ch_layout.nb_channels * 4) return AVERROR_INVALIDDATA; - st->codecpar->channel_layout = 0; - if (st->codecpar->channels > FF_ARRAY_ELEMS(dsd_layout)) { + if (st->codecpar->ch_layout.nb_channels > FF_ARRAY_ELEMS(dsd_layout)) { avpriv_request_sample(s, "channel layout"); break; } - for (i = 0; i < st->codecpar->channels; i++) + for (i = 0; i < st->codecpar->ch_layout.nb_channels; i++) dsd_layout[i] = avio_rl32(pb); for (i = 0; i < FF_ARRAY_ELEMS(dsd_channel_layout); i++) { const DSDLayoutDesc * d = &dsd_channel_layout[i]; - if (av_get_channel_layout_nb_channels(d->layout) == st->codecpar->channels && - !memcmp(d->dsd_layout, dsd_layout, st->codecpar->channels * sizeof(uint32_t))) { - st->codecpar->channel_layout = d->layout; + if (d->layout.nb_channels == st->codecpar->ch_layout.nb_channels && + !memcmp(d->dsd_layout, dsd_layout, d->layout.nb_channels * sizeof(uint32_t))) { + st->codecpar->ch_layout = d->layout; break; } } @@ -337,8 +337,8 @@ static int parse_dsd_prop(AVFormatContext *s, AVStream *st, uint64_t eof) config = avio_rb16(pb); if (config != 0xFFFF) { if (config < FF_ARRAY_ELEMS(dsd_loudspeaker_config)) - st->codecpar->channel_layout = dsd_loudspeaker_config[config]; - if (!st->codecpar->channel_layout) + st->codecpar->ch_layout = dsd_loudspeaker_config[config]; + if (!st->codecpar->ch_layout.nb_channels) avpriv_request_sample(s, "loudspeaker configuration %d", config); } break; @@ -431,8 +431,7 @@ static int iff_read_header(AVFormatContext *s) if (!st) return AVERROR(ENOMEM); - st->codecpar->channels = 1; - st->codecpar->channel_layout = AV_CH_LAYOUT_MONO; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; iff->is_64bit = avio_rl32(pb) == ID_FRM8; avio_skip(pb, iff->is_64bit ? 8 : 4); // codec_tag used by ByteRun1 decoder to distinguish progressive (PBM) and interlaced (ILBM) content @@ -485,12 +484,13 @@ static int iff_read_header(AVFormatContext *s) return AVERROR_INVALIDDATA; avio_skip(pb, 2); st->codecpar->sample_rate = num / den; - st->codecpar->channels = avio_rb16(pb); + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = avio_rb16(pb); iff->maud_compression = avio_rb16(pb); - if (st->codecpar->channels == 1) - st->codecpar->channel_layout = AV_CH_LAYOUT_MONO; - else if (st->codecpar->channels == 2) - st->codecpar->channel_layout = AV_CH_LAYOUT_STEREO; + if (st->codecpar->ch_layout.nb_channels == 1) + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; + else if (st->codecpar->ch_layout.nb_channels == 2) + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO; break; case ID_ABIT: @@ -513,11 +513,9 @@ static int iff_read_header(AVFormatContext *s) if (data_size < 4) return AVERROR_INVALIDDATA; if (avio_rb32(pb) < 6) { - st->codecpar->channels = 1; - st->codecpar->channel_layout = AV_CH_LAYOUT_MONO; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; } else { - st->codecpar->channels = 2; - st->codecpar->channel_layout = AV_CH_LAYOUT_STEREO; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO; } break; @@ -760,8 +758,11 @@ static int iff_read_header(AVFormatContext *s) } st->codecpar->bits_per_coded_sample = av_get_bits_per_sample(st->codecpar->codec_id); - st->codecpar->bit_rate = (int64_t)st->codecpar->channels * st->codecpar->sample_rate * st->codecpar->bits_per_coded_sample; - st->codecpar->block_align = st->codecpar->channels * st->codecpar->bits_per_coded_sample; + st->codecpar->bit_rate = (int64_t)st->codecpar->ch_layout.nb_channels * + st->codecpar->sample_rate * + st->codecpar->bits_per_coded_sample; + st->codecpar->block_align = st->codecpar->ch_layout.nb_channels * + st->codecpar->bits_per_coded_sample; if ((st->codecpar->codec_tag == ID_DSD || st->codecpar->codec_tag == ID_MAUD) && st->codecpar->block_align <= 0) return AVERROR_INVALIDDATA; break; From patchwork Thu Jan 13 01:50:40 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33362 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp22897iog; Wed, 12 Jan 2022 18:08:53 -0800 (PST) X-Google-Smtp-Source: ABdhPJxGddC/oWB89Fmw4B35Xj7IegvYxHqVUFgC+IS5yU2BDjwstm3kQYXJxwugYYT+vy90Wt+0 X-Received: by 2002:a17:907:8687:: with SMTP id qa7mr1868769ejc.106.1642039733625; Wed, 12 Jan 2022 18:08:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039733; cv=none; d=google.com; s=arc-20160816; b=brJvctGtlVSsvTMw7unq0aREtkqq9rFUx7pfFKMv6UH0BirJNUlEZZCkaarBQBBBqv hFfCKP2wxbWiCATW1yH94LrIFNPg+IqJMtnNWq6oEmdvaHmfEFn9cLmtx3JZbsMz861m uuseS/ll0ZHNJQmpypxY59JgxPZyiLW/IzbAHlF5AZOJi3GxMVGoqnhOdYiJ3NRczt3P cctXbfIG5KYyXhs7RSJ02Lcs4aOcS/cn4hLRWpYgRKrFnLXwxDhOcDEFzusPm6JyVN5E jcA7lwAtreCuNLit6e3C1ApKRc6DLLFvPCgmPidVqfpnuwQBoEqkptcA69+xcLjO3jl+ Pzeg== 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=OTTbWwsOQMfUiDE0/1GLxL3Bfj3V5E6fiU5/uFyzRAA=; b=XHc9v66EbGmi18K0+T1bzn8xtVLMf9ls+zFJ6Sa2WV3zP7fBDz2+DPD+xAGeRbAfZI YIDGkZpRB3eFIn1RmrBBCJVQL8xRKg3YSWLTly3JAVFdrxyayX8AirunT9sMmiuo0EMU ncmAJ7qPa/JPzd6lbVhjqFi9JZCYrkZwQAB+H+DGqT3jCXYgq+cFDieVpMtTFGTbXr3X HJQe4Bm/f3rgZVYn34Xzd7uc69ORgHoSkKFPQDwBbr8qTmuKyh07diewxR3ZZkkgVgt3 e3UU30XXFRAqXu3xEaDoaeOh0lLegkYtMxpkggZAXa0GEwirlI/6TNLxJQ8FLHVudzyf bCDA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=DayCv0rq; 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 ga32si782691ejc.218.2022.01.12.18.08.53; Wed, 12 Jan 2022 18:08:53 -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=DayCv0rq; 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 A6E7C68B1D2; Thu, 13 Jan 2022 03:53:38 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f171.google.com (mail-qk1-f171.google.com [209.85.222.171]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B9F5F68B1C6 for ; Thu, 13 Jan 2022 03:53:35 +0200 (EET) Received: by mail-qk1-f171.google.com with SMTP id b127so5627484qkd.0 for ; Wed, 12 Jan 2022 17:53:35 -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=xwFZ7Nb02MTLYUrXWTMYeBqK2MikVerZZQbi1yH49mw=; b=DayCv0rqIuiMhxtECUEaXfvEHqiRZw3kcQj+uMH8w//RM8qzSdbOYH7yQrLXSkuaOo 6rUY+toIn09CWdCEQUmIeqMV7LPMFjNmStRqINuFPHxVcacb4u0hcnISTa1ZEzs7hSo7 h/zWTXiaDIUS0VeGdyXU3wRsBEDbbJPE4N13c8mrwx9ls87zrAuS6Y1ckoHq+e3jY7f1 Z+ja0jxus1YEXYSiY89qykbVPFKO8UFLS2/6D28Nc17SjEUe2PMtxFnEP6WUMtyGFH8j iZUUQSZP0AlW/vahmYn+uyBfWeEA1IXEUmhtrlOIOM+FB8m+SFjYWyhe49DpzmmnB055 JqvQ== 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=xwFZ7Nb02MTLYUrXWTMYeBqK2MikVerZZQbi1yH49mw=; b=7JUh51GCOckJzC0lwgAOQmi2oEz17UvpQNwTupV723FOBkaXlNiiMekpj74hY1YIrI dnO2Bv6rSs90ZmBKp6qxcmGp6ARYuxMfv5hdDw+XdQZWtf2gW5ECf6JJ38/vOzRZbcDb MS4LU5KBGb3KO2x1XsGhuIdJNokcLFfwEbovWicPQYiL+uCYVTnLMe+eCw9TYFb4g4Jl nhGMYokrvN6TVHtgya0S8kB70UDo/Wh+OAxCO3QbxAgjPA2TCa3fb7mCB33XpxTuryM8 AXOdO0W/KDDgE7kWXWmO7XtGhuCj0DdG2k7i8YyDiElSHNULY37Y1VMQQ2TxeXsG+6ev Agcw== X-Gm-Message-State: AOAM530axyaW7NwLMoFIsTfIg1+5vZY7GJUgThMnaOhvPdU2MVGfeuP/ xrH5ay9hHJHsGLr4ex0zd8jVZTaMc3c= X-Received: by 2002:a37:ad0c:: with SMTP id f12mr1825185qkm.671.1642038814365; Wed, 12 Jan 2022 17:53:34 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.33 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:34 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:40 -0300 Message-Id: <20220113015101.4-79-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 078/281] ifv: 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: ztwWR/CjLRQ2 From: Anton Khirnov Signed-off-by: James Almer --- libavformat/ifv.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libavformat/ifv.c b/libavformat/ifv.c index d38c3ef5a2..490608c5de 100644 --- a/libavformat/ifv.c +++ b/libavformat/ifv.c @@ -155,8 +155,7 @@ static int ifv_read_header(AVFormatContext *s) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_CODEC_ID_PCM_S16LE; - st->codecpar->channels = 1; - st->codecpar->channel_layout = AV_CH_LAYOUT_MONO; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; st->codecpar->sample_rate = ifv->sample_rate; ifv->audio_stream_index = st->index; From patchwork Thu Jan 13 01:50:41 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33601 Delivered-To: andriy.gelman@gmail.com Received: by 2002:a05:6214:122d:0:0:0:0 with SMTP id p13csp996547qvv; Wed, 12 Jan 2022 18:09:08 -0800 (PST) X-Google-Smtp-Source: ABdhPJzpnHuDPhyJmN6cV0ohGrCEjzQtPri6squgJqVszK/px1PTAZItSqc1yUlef9AWWl8e3fKx X-Received: by 2002:aa7:ce14:: with SMTP id d20mr114794edv.234.1642039748129; Wed, 12 Jan 2022 18:09:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039748; cv=none; d=google.com; s=arc-20160816; b=fvAvM9Rgh3XdIYT1b0fEPh3Uf0HZqaar+SekzGAWleg4PkJwCUYTymjrDCvWhimDY1 8JW2DpeJW33AnoifpKl6gXwhyaqMOeSvDttp6naccoKNwf52mGyCX4bdcBZzhViyxnFx pjlH5fWlvTnhqWTiXs9y+MRUAUAo9aqoVRbKdI2jnzp5lzBA23ot3cHe+u/+Jy4G7r0N UnidSkBm6IvxofHUH1o3JV5arO7X+aODUH1L4w6/ghjGN182bdYYVKdBvtEbSV3/e0md XQotiLUL+DTanBiKVyPfEgl/NfAw0o3dXR3YnwiuAtqcryO6rIMrlgZoTErG8FhdEFrr r9hA== 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=fCr2fnGq91+JWlC9wG49wqhdMUqJ4YDYg5qWY9q4ZSM=; b=IxY0v/BflwlolqtLOm89c2H7BFXINCGkPg/aKt73oHAZ49b/XwV1uTTaicfbw/mtmX x5M19foQEwRhqu5FM41zazG1U+Bsdk+GRbxPhCLdH5ID0YGAmkosrXsSFDxl1HlCoH3S tS402hon2CB+3QQj7Q0z3YIbvOi9+o7Z+7SxPyGAqZC6wfP82iZmvHIc80Yrqb9+fF5s 7l8rRyRUhpLMbs2q6Y48uKzKWaBAcM0a3Bbeu76rffkYHtzDgFcUIUjT+ew3t/WboKJ9 hnzwk6IDgv+WPIzP6aDjAPOHYp+pg7MEtawmHxq2MtPRXbc/6rwbPMYEjlqEpXEJf1/F 429g== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=dXz28q15; 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 er26si835672edb.321.2022.01.12.18.09.07; Wed, 12 Jan 2022 18:09:08 -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=dXz28q15; 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 0409768B1D4; Thu, 13 Jan 2022 03:53:41 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f47.google.com (mail-qv1-f47.google.com [209.85.219.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F117568B1D8 for ; Thu, 13 Jan 2022 03:53:36 +0200 (EET) Received: by mail-qv1-f47.google.com with SMTP id p12so5082325qvj.6 for ; Wed, 12 Jan 2022 17:53:36 -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=6GHlesVvAcodk5NrG9S315enM10jSBbvxnSZ3t5kg1Y=; b=dXz28q15u7cF65ErZ5XayM7nEuqXut48E9dVxqbYLNv7G4ugOAFvaTo8l9XUgPvdu5 RwAcLj8cnAUW7nOBUSvOgQUmSyTFpR5pd5xL9GwtfeGMbwxo2NY0KLjFrk5ZKdQmJNaO aCjIKJVxB/5WaZr8n3IDGWZxDcNAC7lJBfk8S7Pc+2Qp35g4/o79hbQg1GthJIpbEV+D 6gAfnPFvP7+tRm4WKoqKRBIxAU19tOWWYwk3WsIIDF2lnQ1MjbXpa0gaiASebTIwWq46 nbQHhIg094bMUMXuo3e4NTtbawPksiXsZBjv/qCL82iOSFSBbzaM6AV8CpPAdf4V4Ptu ZV2A== 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=6GHlesVvAcodk5NrG9S315enM10jSBbvxnSZ3t5kg1Y=; b=jJ/X11MxftCr9V7fN04bLhc4+0XzxtXa1dqyRJDV9cRP1Nj350cHQzx02wSLLCqAF8 rUzMBFc+UNmao2/oKRoqcCNo9U1FiJeFjBMy18jBqhWXjyi57wd41azBcIrn9pkG9EWr MPbHmlABltAyhoP9FaJxF+qSe/gquAu5YlgYNO6AZ972Tk8eYOaIzmodm6qbkppRGG/o A/ZBrXBRJBfncH3kA/65121hc+UUwk9/tMrG8ijjKWfgYT71C5spYUThSJkq1ldn2wOz KTFU8pcrwBlUpba3rxcOiJHHW67Ucl6wVWlz90axRSuJxP7j8tpEFFou28sCoqlL/FBd 3tCQ== X-Gm-Message-State: AOAM533TiDZFhxdbXLlgs0ZFm1Gb/SrLSszpKIkZLOKZPsqDGJEK+Ij3 Q7RUqGUUv+0wAkE70YdzXqowXWxiycQ= X-Received: by 2002:a05:6214:c69:: with SMTP id t9mr2121059qvj.100.1642038815573; Wed, 12 Jan 2022 17:53:35 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.34 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:35 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:41 -0300 Message-Id: <20220113015101.4-80-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 079/281] ilbc: 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: xmelQDWBUci3 Content-Length: 1074 From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/ilbc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/ilbc.c b/libavformat/ilbc.c index 0cbdd3d5b8..361116571f 100644 --- a/libavformat/ilbc.c +++ b/libavformat/ilbc.c @@ -75,7 +75,7 @@ static int ilbc_read_header(AVFormatContext *s) return AVERROR(ENOMEM); st->codecpar->codec_id = AV_CODEC_ID_ILBC; st->codecpar->sample_rate = 8000; - st->codecpar->channels = 1; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->start_time = 0; avpriv_set_pts_info(st, 64, 1, st->codecpar->sample_rate); From patchwork Thu Jan 13 01:50:42 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33611 Delivered-To: andriy.gelman@gmail.com Received: by 2002:a05:6214:122d:0:0:0:0 with SMTP id p13csp996689qvv; Wed, 12 Jan 2022 18:09:22 -0800 (PST) X-Google-Smtp-Source: ABdhPJzaTou/wz9WAqhzd1e2mxQ0XjB+zVjJr8oFHZ7Z2qWYpdVxhndP83gFJlvv5/uYKS0UBNpq X-Received: by 2002:a17:906:a0d4:: with SMTP id bh20mr1848405ejb.489.1642039761843; Wed, 12 Jan 2022 18:09:21 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039761; cv=none; d=google.com; s=arc-20160816; b=LytzffyrHK9UeLkMVJaPt6aSGNQ4d3dNlZFjON8NHb8ooXd8g4+yMRqkpq9M5S7szT IFpCCaJBIBZrGeKc/xpFCZYAxHqJLzFbIS/RZN9SkslXBHKE7VTIDg88Rku3uCkNd1W2 kKXCONuk01jrP46cHzsaRxmDOYWyjwZCOpL8eiXGcOdPzbp/NNPZbax/hMVgmdYTyMWE hwq30lHi2MDYg7xtoCGVGdTUeYYzLq9V6O9bUcu6t2Eqlg7Bm2/dslJ5GAxavtzyOjq7 Klnf49v1qUWZ4vZpUtZSSDHpPmQ3LruWV2O/wLMtxFMPmsHUB4a9BF/LM5FqjRZR/HfN AdLQ== 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=ONUvc4A9sVZpI+RPpi4qMj7EBJ7OcGlg1W56Ynegj6g=; b=E5fGoBRoyL2K2CajUEoAt3U3eH+od0M/Vjk6FLwSjK6L4vp+O6HSVyrk3wHJsCdzfw DT49JCJQjBnDlz/xV7H103W7jNZDRrSj88Kd+GCB6A2UolzuZ6rW+M5d9Ks0NbXFKgN7 s8LEwpYYIogBg76NKtQubuTDTplu/CIkS5IPg0fCpj6EETaFXDwHI8TpSDGcUhVCccJv c6HqsD1Nx/9SltB3/lly+vk10BL+Nz+alj9m3i7qrLmO6GZS3QuLzAL/lSGgyhae7+iZ TihNgI3BxixF7lrBP+8kxIQiBOhb1z+Fk6uQlLomnL1L7UmQ3QGN4FETmymcyF7VIU6M RjxQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=T3yrjjAx; 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 sd11si834951ejc.10.2022.01.12.18.09.21; Wed, 12 Jan 2022 18:09:21 -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=T3yrjjAx; 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 0964D68B1F9; Thu, 13 Jan 2022 03:53:43 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f182.google.com (mail-qt1-f182.google.com [209.85.160.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 34C9068B1DE for ; Thu, 13 Jan 2022 03:53:38 +0200 (EET) Received: by mail-qt1-f182.google.com with SMTP id f17so5324891qtf.8 for ; Wed, 12 Jan 2022 17:53:38 -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=bOCBrDIvUbvGTNairKupk9RX4R0wzeq4llXpzJUATxU=; b=T3yrjjAxWSwGuUgAXpvoTF8yWfos3LGkod81HewY2OvLU2RfMCFcjj9VWsJvVXY6nq 3nV66JXpGRPCI/vl1kyCnXjWuSzS/tzJbqM7JITOg0VD43XotI1zecYW5RZeTJwV6Nyg o3LmHrSE0d59VNM0lOZBhVB8HiSbglUSeXwtCyBlG8fyxvmgY5X3IAXmrm6XZvlaEmap 3dZo7fptemHCzjLroaaG3HdGT6ZDHhpK0Ceu80PogPnOfi8Ebdl2jxOYMAAKkVvvFllM uOWVZ1wgSvNZ5YXsQWZv18klqnDCahkx1n3EzusR0RrUqjrYPtFvo+lAO81WOfhV82IZ noug== 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=bOCBrDIvUbvGTNairKupk9RX4R0wzeq4llXpzJUATxU=; b=DjCLJg0WYLcUk4cFhClAxLw7WSZZw2To85CCQcacrItFq3PuUY6BM8MnzeRiejdboo sSFPD5AKycLHag7RCkgAeLuGf1keLViNeXi90FxfOyDf59Y7y+njsghBWavpidx5Jb1x e5y5BiHT+8gMaZl36lsuMdGPDvaKiwzRLDnBBC0iT9ju2Cb+NkRZZbZrC8YZBX6h2ncR d+UPLNqCwBepv3904A2fFNYAnGt0o/QSgmWCidbfKFmdPqyd680LNhjMESHFBLAxzjln 9266+Y2VHNd0ZK2FGSoLbXF8DHzpaeEvV2u4/QYRGNZM/l85ZaQ9sNv46OjO9V2TA5RC jDNQ== X-Gm-Message-State: AOAM532yBYkaptQxJXM5aeT/NV1q8Qar6aidLhtIg7XqpQgg8F6U8hZv Q+4IXjoEhf1yq3SuSv7XiPyUdkp2jIA= X-Received: by 2002:a05:622a:118b:: with SMTP id m11mr2082644qtk.524.1642038816796; Wed, 12 Jan 2022 17:53:36 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.35 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:36 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:42 -0300 Message-Id: <20220113015101.4-81-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 080/281] imx: 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: Ur1SvBRVF403 Content-Length: 977 Signed-off-by: James Almer --- libavformat/imx.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libavformat/imx.c b/libavformat/imx.c index e8ca79d057..c8b1a3b2ad 100644 --- a/libavformat/imx.c +++ b/libavformat/imx.c @@ -76,8 +76,7 @@ static int simbiosis_imx_read_header(AVFormatContext *s) ast->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; ast->codecpar->codec_tag = 0; ast->codecpar->codec_id = AV_CODEC_ID_PCM_U8; - ast->codecpar->channels = 1; - ast->codecpar->channel_layout = AV_CH_LAYOUT_MONO; + ast->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; ast->codecpar->sample_rate = 22050; ast->start_time = 0; From patchwork Thu Jan 13 01:50:43 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33610 Delivered-To: andriy.gelman@gmail.com Received: by 2002:a05:6214:122d:0:0:0:0 with SMTP id p13csp996824qvv; Wed, 12 Jan 2022 18:09:34 -0800 (PST) X-Google-Smtp-Source: ABdhPJxU9nEBZCW3yQDwnkZd9BiA9Ci6Zy8q5HGooO3sjbQk7TmQfa7qFm5ldno4e5if0mcae95r X-Received: by 2002:a05:6402:348b:: with SMTP id v11mr2240625edc.309.1642039774788; Wed, 12 Jan 2022 18:09:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039774; cv=none; d=google.com; s=arc-20160816; b=y/RZsc41xSXnyGhHrwq0gWHNK371Mp5wCgGPzq3rj8QOanWiCYxPxekBzYG6fm7Lhv nJOp4KiHQsbdDkBDPFolLA+za6gaPMQtx5B/Ffq1GmBxwNsUUR0V+WFB8VvgJKFMFHWB ekzaMsvZh7oGOYOUZ8DTL7swsLVrPb4UZw6aT8Tw4pMGyqc4X1fihe7Z3oi+5QFnRoeH Io0bBCZg0ax8Wv/kERAkSpWyiVsdqxadvE2ZFRo6qv+BiX6R6ZKmy5Ldu3wXoS818Z9P oA5rFxmv/lM2uC3HWNOZdbZWwIUnb3LnCmcf5HVgPrD3aw/Un5VOgqz9aYqlPq/coySC Hx7Q== 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=yDQPJZGbCYnKiNZFdv/HsvkPrdJjTx6C9l93H7zten0=; b=YJ6BOgH3x2Uq6HmySR0tfTZxkPXuZMBXeOzvgBKyEs5+/DhuGxjmetFKHyDoazpiTO hubDwsem5l9UvffzkHtJ20MDGVYN+tLt1Vl2lQ5iYHiocaCD4OzJXCnsh8tmpaL64QLn gYza8Oo8aPPWTvw2ZEENVFsYIJaMZ2ZeQaOYzq7HPI5gbTxTF+fVM2gin92IyR9emado mMxey7uGn/gzFiOLk2iEoQM9dha4v182Js6NtuFHFzzXsdYbunLG3yiPFAnxVylhg9oS w59jN5OnbfPCuEpK4N0GsxSfeDx3/5zF0ylytc+U9FWxMlvrWLvIUgPeM0npqUh5Hsgv 1i/Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=TCl8a8b6; 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 nc21si819291ejc.660.2022.01.12.18.09.34; Wed, 12 Jan 2022 18:09:34 -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=TCl8a8b6; 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 11BD768B1ED; Thu, 13 Jan 2022 03:53:44 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f169.google.com (mail-qt1-f169.google.com [209.85.160.169]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2CD6168B1DE for ; Thu, 13 Jan 2022 03:53:40 +0200 (EET) Received: by mail-qt1-f169.google.com with SMTP id c10so5368004qte.2 for ; Wed, 12 Jan 2022 17:53:40 -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=pPK1NVnoySNmIMq8bXjzLenJQ1rAFEeuwMhAhOBt4ds=; b=TCl8a8b6Xp6K+xzNsh5kfuZmzg3b10jX1uS5GDCfwcNQ60Fbu1xEqTBsMvgsBSE+0s Shyj82Jo4fmyZXVAxTeYzsj8jzcuE5ojnYSwMEyo0uSn/n3T/laQSB3tuImUhnLryICm IuD5UO/ohHaylVaV1paQ1Z3+N7YD83XOwMIC/K3I/3EM9ae/esM6WuGb9QgFJ7jEkaFH WnLqUyJ0fdxbuXcmG78+kcQBjXZaIx4FYgo6Bage+w0yJR+Ch8FmqUA2+Juw4nZ7g6KG aACGvQjmjy3C6qkEcktL9L9JsJnTAoM9f9QWzpRTpAVWxAYl4znddRYxkZN++eYBDcNX gWeA== 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=pPK1NVnoySNmIMq8bXjzLenJQ1rAFEeuwMhAhOBt4ds=; b=aWQSXdwe7Jagwmbc74BZ8jbelYyw9W7jm+0kcSV1RRBmfpRcRjIxIbms+kFDuYa2Yr 9zIjDdujKzHAgq0IWTkJOpyOY5BMHap2su1wykSfizofsFUxsLUGez83Qc2o+0pVYyjn /d1Ej8zAlGjUvJ1HsjsVLkICYfFEcc5JVTqAL8S02H5X/zFQQsT0hvP/NAF9QmOGcUOm IA3LqPF7y3GqOKvjyuCdafbi31x/mK4jDUuFs06nWmOulVmoWTJe+mRyyDN5tBJGW1GJ PE5WgrupviDtmeQZjwjJTr+HDCJlDQUkquVZWnarSgPqbSBgc7Lhqu4ISNZtT7QyXODK Dk/Q== X-Gm-Message-State: AOAM531TFrYQ2C/m/uCOaS1j54yHuvXvJPWdKJZkKytBGB2UC7HtFX7T DwWZUDYCmygTL9JegtEdsu11T9MPDZg= X-Received: by 2002:a05:622a:170a:: with SMTP id h10mr1971455qtk.497.1642038818020; Wed, 12 Jan 2022 17:53:38 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.37 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:37 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:43 -0300 Message-Id: <20220113015101.4-82-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 081/281] ircam: 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: jo/z4PjMI1Ky Content-Length: 2156 From: Anton Khirnov Signed-off-by: James Almer --- libavformat/ircamdec.c | 8 +++++--- libavformat/ircamenc.c | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/libavformat/ircamdec.c b/libavformat/ircamdec.c index a05ca5c9c7..a8927a3733 100644 --- a/libavformat/ircamdec.c +++ b/libavformat/ircamdec.c @@ -87,8 +87,9 @@ static int ircam_read_header(AVFormatContext *s) return AVERROR(ENOMEM); st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; - st->codecpar->channels = channels; - if (st->codecpar->channels > FF_SANE_NB_CHANNELS) + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = channels; + if (st->codecpar->ch_layout.nb_channels > FF_SANE_NB_CHANNELS) return AVERROR(ENOSYS); st->codecpar->sample_rate = sample_rate; @@ -99,7 +100,8 @@ static int ircam_read_header(AVFormatContext *s) } st->codecpar->bits_per_coded_sample = av_get_bits_per_sample(st->codecpar->codec_id); - st->codecpar->block_align = st->codecpar->bits_per_coded_sample * st->codecpar->channels / 8; + st->codecpar->block_align = st->codecpar->bits_per_coded_sample * + st->codecpar->ch_layout.nb_channels / 8; avpriv_set_pts_info(st, 64, 1, st->codecpar->sample_rate); avio_skip(s->pb, 1008); diff --git a/libavformat/ircamenc.c b/libavformat/ircamenc.c index d49a427b25..df1494b2b8 100644 --- a/libavformat/ircamenc.c +++ b/libavformat/ircamenc.c @@ -44,7 +44,7 @@ static int ircam_write_header(AVFormatContext *s) avio_wl32(s->pb, 0x0001A364); avio_wl32(s->pb, av_q2intfloat((AVRational){par->sample_rate, 1})); - avio_wl32(s->pb, par->channels); + avio_wl32(s->pb, par->ch_layout.nb_channels); avio_wl32(s->pb, tag); ffio_fill(s->pb, 0, 1008); return 0; From patchwork Thu Jan 13 01:50:44 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33603 Delivered-To: andriy.gelman@gmail.com Received: by 2002:a05:6214:122d:0:0:0:0 with SMTP id p13csp996929qvv; Wed, 12 Jan 2022 18:09:47 -0800 (PST) X-Google-Smtp-Source: ABdhPJzjjUZsorpldWa6hBdhRfxmr1cxfMOLsl8T6R/O66IDvmsvVwOwzDpBzcgd0osx08krI6ba X-Received: by 2002:a17:906:6c1:: with SMTP id v1mr1840756ejb.638.1642039787006; Wed, 12 Jan 2022 18:09:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039787; cv=none; d=google.com; s=arc-20160816; b=HERO8eH6aOyo/uZgrnhfbhYDxEjXF+1bQagRSYVuY58ay1RsboIxkZbgcPY/fkoY5o D6bgi4Y4ZDYmDdv9RC6a2ox/oM4pBlvKBgVDhJl/Thz9+PaJPqRtDekoHtRv05//vbqX CzKKhn2ICskzo0pkAG0AIA+dGn51ujqMW3eJlKE0/RQEJ23SRyNhS0qZqEaKZRKbPb6Q LYrru5ihIBQE3a6tN0MMX4E3DUzYPqqJZh6PUt/fih8QDhrDU+R+cRIbGnxOPUU8z/R/ 33s9UrftAgHlQwU8g0j/Nsco1MFFgfImvuok0CAb3mcQUm7t3J0ZsVdvaz19dTcqdHer OwQQ== 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=ZmkLrgKf/aOQ80/BxqhEIKGYNrdkdi5cfpnz3XAR+Yo=; b=Yb80dCotc1lZOD4td5UsLUc8CNL4cGguUnK91levL4aqGzT+6OKiDeakgjffHCDbcS C04Vpfz8FBu0+lWrkkeG/HVv74Vj24D1ZsNgXJOwXcqIqt0TqIYTHw1q+W0/pNTb/VId N5ufIJb55bhCXX0hPJ23tCmozkGQrUsJXVjb6NiqzXCCyC9hGS8tcU0CDNzRrCT9Y4fN XzxKmGYiEiRaTkELATkaJTTKePj8lcKDib7T0uqKz0vm1tWeSvjb8NJT2HhyAmI3ZYTH RJqsnLmSLDz+kZLm/JMEYcD7ThZk6ayfwJx20bu+Z8hHiaygz/n4L9oY640PICA0DQvP LHhw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=R58oqDaH; 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 nd41si787075ejc.889.2022.01.12.18.09.44; Wed, 12 Jan 2022 18:09:46 -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=R58oqDaH; 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 826E668B201; Thu, 13 Jan 2022 03:53:44 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f171.google.com (mail-qt1-f171.google.com [209.85.160.171]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AEB5A68B1D4 for ; Thu, 13 Jan 2022 03:53:40 +0200 (EET) Received: by mail-qt1-f171.google.com with SMTP id q24so1539480qtp.5 for ; Wed, 12 Jan 2022 17:53:40 -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=7CMiiGRP0S33iigCE5apl0SWQQJU/s5/a5P0MpuvLr0=; b=R58oqDaH495zX2XVMq3sNLA4MYKMmn3pvRnyd/4KRSGlFgwzfHC5l/BV3TCRfml0n/ Ily2KBS2CeSZky2pXGxlXlmnvJI2vPvZKSdtPIGnFlAghOI2vtNJjo4jjRmjTHqCZn7P 9ytOkr7ethrwKk974h/qIk3wOQpDwSWpi1JOxIWpGKL6UBm4Q7TScNeoxrX7xMHapQ/A /rUMC4e1LdXgBM1IEtONNeVJ+BA6uZdO2RNTOLPOBFG26o1mlpoElVX3PFm2br6u2lz2 2zxaOZRdSwXRE162UASLwz2pdTuHXsvg4PWTlt8gvODCXY8B4s/G03hpmrIg3OBKlAFv O8Rw== 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=7CMiiGRP0S33iigCE5apl0SWQQJU/s5/a5P0MpuvLr0=; b=p2kXW5ANw+uFljH6qjbzFQ4djWmQwMQBu3eNDTGsKgOuohVCYk1EyXq4mxFI6gS3eQ 6eqPPvg/VV8HwGQu4yvxX4lTNL4l/V7GFxlYMvfE0q7jdoRChb0ra00k9WhMaQGNsYqx C+KOYDUkqaA9nowH8pKQ2ed2DJEgNhQoLnHXn41YEl10sotdvgts3LeAX0bTQVKuiEew ZzjuZ8BHdUtWDtTe1fv+lqoSZTfuQq1DMPuriJr5q0PW2d8v11N6Ry4R6hQS/f6fve+G G0do+04Bf03K9K0sxLO1XHb7c/stFDsqsJu72N9yloGWr+XqLGnWL0TxPwIVSqvPvIg6 jNSQ== X-Gm-Message-State: AOAM5325LO5n8235r2F73fIMHSfoUpHHyCUAPheBReWVgSqU6NfCFtHV saAYSihLA4q+DQ4UYsee2K335a+Pp5g= X-Received: by 2002:ac8:5d94:: with SMTP id d20mr2068374qtx.214.1642038819200; Wed, 12 Jan 2022 17:53:39 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.38 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:38 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:44 -0300 Message-Id: <20220113015101.4-83-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 082/281] ipmovie: 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: ehQSVPnBKgg3 Content-Length: 1836 From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/ipmovie.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/libavformat/ipmovie.c b/libavformat/ipmovie.c index 9c996d4a98..793f1f6fee 100644 --- a/libavformat/ipmovie.c +++ b/libavformat/ipmovie.c @@ -254,16 +254,14 @@ static int init_audio(AVFormatContext *s) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = ipmovie->audio_type; st->codecpar->codec_tag = 0; /* no tag */ - st->codecpar->channels = ipmovie->audio_channels; - st->codecpar->channel_layout = st->codecpar->channels == 1 ? AV_CH_LAYOUT_MONO : - AV_CH_LAYOUT_STEREO; + av_channel_layout_default(&st->codecpar->ch_layout, ipmovie->audio_channels); st->codecpar->sample_rate = ipmovie->audio_sample_rate; st->codecpar->bits_per_coded_sample = ipmovie->audio_bits; - st->codecpar->bit_rate = st->codecpar->channels * st->codecpar->sample_rate * + st->codecpar->bit_rate = ipmovie->audio_channels * st->codecpar->sample_rate * st->codecpar->bits_per_coded_sample; if (st->codecpar->codec_id == AV_CODEC_ID_INTERPLAY_DPCM) st->codecpar->bit_rate /= 2; - st->codecpar->block_align = st->codecpar->channels * st->codecpar->bits_per_coded_sample; + st->codecpar->block_align = ipmovie->audio_channels * st->codecpar->bits_per_coded_sample; return 0; } From patchwork Thu Jan 13 01:50:45 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33607 Delivered-To: andriy.gelman@gmail.com Received: by 2002:a05:6214:122d:0:0:0:0 with SMTP id p13csp997063qvv; Wed, 12 Jan 2022 18:10:03 -0800 (PST) X-Google-Smtp-Source: ABdhPJzh3X2NPvuKZxkrz9nEWGoTfDD+nwmyIiRN+zsomIczyLtmg7TlAGQtDMeTmLHf0hQKqk73 X-Received: by 2002:a17:907:72d6:: with SMTP id du22mr1912257ejc.519.1642039802979; Wed, 12 Jan 2022 18:10:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039802; cv=none; d=google.com; s=arc-20160816; b=jvmesa6td/1dt37mhI1iEbaNyZB+Gi6Td5LpHLgcACwhCVn5xU0YvP6gjkDjFugkW/ I2a07ngl65t/fcAWoPbzDMRXvse+saSAA7+0vfsZm0I8fFriAgFJhQ7UdwpNHFrIZfdA 6QowUDNd105A+2X22leFDG8w6XuqH1VzHKkJUVqOavUgj+f9y21T9f+R26P+iu589ppZ fuPNrnTeExXl1btoF6GBv2UYSCM4VEk/uD5/jsVZDrNTTAUwasMBThQWHCDnvrFkkU5T O+p1W12iPNK2v550BS+rVs5vwz/yn7rkIcmSpzhKV/wzmoyBayZr3IBTxldvmw/z2FZL QAXA== 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=ICyWS5IRBs0gqh8W9yoy/rQy7pyn5rDX19dORtBxflc=; b=rbk5KduLvsJGj4UOd/jJAZL81iKhhN8COqzFiBP7Aroc2co1hlSOqObC9BzVT7+mfU m7K0PJXdd9DmMsNqSvuwOTkziFFLvSByIJF89ZJuJQ5CsR2epHo0b8BEMBzVDaC+5ORU Yv+u3/+LYLI5npF4RDzh/xErYuU7Rds8t5MUqY51ov3Vttp/xHj/bx6QlemxFaYCG9N0 MO2Fg3+dBFaYsUv3TwnPTI3fTUx0/lvLj52tBmOGl/Ss5DVjixgoUxbp8TPMVZ06b8sn A8wVSKoN/Vlme7rScUUS1zOfZMkyfHywVrBq4lhZymCPgqP1b84DhS0ySpOvnRHxoola nCGg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=oEfQ9v82; 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 h22si1030129ede.494.2022.01.12.18.10.02; Wed, 12 Jan 2022 18:10:02 -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=oEfQ9v82; 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 CFC1E68B204; Thu, 13 Jan 2022 03:53:45 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f177.google.com (mail-qt1-f177.google.com [209.85.160.177]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 18BE768B1DE for ; Thu, 13 Jan 2022 03:53:42 +0200 (EET) Received: by mail-qt1-f177.google.com with SMTP id v7so5307424qtw.13 for ; Wed, 12 Jan 2022 17:53:41 -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=dg80Yfje4UVFaMcU2vLdx2TF2uc9AchGxY6g7r3hECU=; b=oEfQ9v82och1d6y01YTAbdmroAM6gmQkXkSDuGXfT66vH9AZi5eWpS28JUiCRhV0lj Sl8IU9knVt6H3Cv928igzabHP8sNFjxQk6n+MS+8Smi573FXvbihjbrN9E4ENIm348OL beJcoQW70oIsvBuW/fAHP9uRJIhLDFYttUSDTFu12pgeXqlvbhjLqro2R3gDn3LAa7ja Se3Fi0Adk7v6/dmnbKCYQ3kxVCIcJ0M59xKXXFXSoZAlZLuvGL0VaHYE53lJSg1Q4ulw xZ/B+NZ0HcSA0w7s9c2r3QtQ+Ncy65/Fip7X70qt8maszkDJxnza8AQqGx7qzP0NL6Y4 jvGA== 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=dg80Yfje4UVFaMcU2vLdx2TF2uc9AchGxY6g7r3hECU=; b=BaQuaIGpSZmouHpd0QbBDEoPtIgO6ulTvelTjenNRjG8FiucBMhmq7vqDITXm7+vW2 QyBJGiXB5l1F3Zj6NkuwWpXABKDc1QWeW4soYCUe9lhmXROBTk9NgDJNCtidfENZ3do9 hFQpxauKm/u1xuNy69U4v3pG8wB6/98pet8KQqVRjghQNNZFVRtbhead4ZYkHMqE2JIB wmaxiclTT5PcTRAiR8HZnjFiIw0a/TwktTP69+K7/FksS+qZrNMg7e/u/UDvS6Ee8kT9 A88qHsyU/i7Qo5REsSYBSm0tH7DbBCGHuKmpxy3wdT3FjrI6ZLUu71Iqct2Cb3qO4Afc +jKw== X-Gm-Message-State: AOAM5301F79MEjGAz8AU+7DZaFE2widHS8QeT1GkZ4AwcpfWkgpC2Amg vi5XlXZVlQOTPffGnHmywL/GwNmGJEM= X-Received: by 2002:ac8:4e4f:: with SMTP id e15mr1982690qtw.168.1642038820382; Wed, 12 Jan 2022 17:53:40 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.39 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:40 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:45 -0300 Message-Id: <20220113015101.4-84-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 083/281] iss: 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: i7XQL/fCkHup Content-Length: 2341 From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/iss.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/libavformat/iss.c b/libavformat/iss.c index c58c5923ba..f54ff8b0de 100644 --- a/libavformat/iss.c +++ b/libavformat/iss.c @@ -109,19 +109,20 @@ static av_cold int iss_read_header(AVFormatContext *s) return AVERROR(ENOMEM); st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_CODEC_ID_ADPCM_IMA_ISS; + if (stereo) { - st->codecpar->channels = 2; - st->codecpar->channel_layout = AV_CH_LAYOUT_STEREO; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO; } else { - st->codecpar->channels = 1; - st->codecpar->channel_layout = AV_CH_LAYOUT_MONO; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; } + st->codecpar->sample_rate = 44100; if(rate_divisor > 0) st->codecpar->sample_rate /= rate_divisor; st->codecpar->bits_per_coded_sample = 4; - st->codecpar->bit_rate = st->codecpar->channels * st->codecpar->sample_rate - * st->codecpar->bits_per_coded_sample; + st->codecpar->bit_rate = st->codecpar->ch_layout.nb_channels * + st->codecpar->sample_rate * + st->codecpar->bits_per_coded_sample; st->codecpar->block_align = iss->packet_size; avpriv_set_pts_info(st, 32, 1, st->codecpar->sample_rate); @@ -138,8 +139,8 @@ static int iss_read_packet(AVFormatContext *s, AVPacket *pkt) pkt->stream_index = 0; pkt->pts = avio_tell(s->pb) - iss->sample_start_pos; - if(s->streams[0]->codecpar->channels > 0) - pkt->pts /= s->streams[0]->codecpar->channels*2; + if (s->streams[0]->codecpar->ch_layout.nb_channels > 0) + pkt->pts /= s->streams[0]->codecpar->ch_layout.nb_channels * 2; return 0; } From patchwork Thu Jan 13 01:50:46 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33363 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp23787iog; Wed, 12 Jan 2022 18:10:16 -0800 (PST) X-Google-Smtp-Source: ABdhPJyiUlgyir49lEzq78lvjT6RaUU+S1hwTFDJeNUHxn6H5lokOtBXCqyiz6cwxam61ylxfoPU X-Received: by 2002:a17:906:7942:: with SMTP id l2mr2004097ejo.730.1642039815881; Wed, 12 Jan 2022 18:10:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039815; cv=none; d=google.com; s=arc-20160816; b=xdi06tz8Ystk+E8tjxRhetm7Q8ywphHiPCCmlzPXUME60RJLJ38WScaQ/SWuc/i8tb skoEAJnybld0hCuOLHRBpWF7RPOBCYE4hpF/CEmO4mBZ7cm4teauP/AsSyLYJNcjLwsI IZ6Tr578UQzyICO53YV7ZjRuiV7d+w5qAYZI4raplcFcgwbIXNhoB8tcl6Xe94nL1hA1 GQ/ka6/QL1CVimH/bBxD2RCTxMXK1bKEyS3g5DbWOBe1Cu6fgkD2qbALaoALiimldEG0 NktUBpGL5iVeoyaLmHyBfNYAtPaxgSi4u07tLMO/SqkpiywFVEh+w5plx5Qwu5cqQ4MO 1Olg== 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=xxES3koo2uGJwKGzY69lEX2Az3uPUCNfxnnQ4PYOBIA=; b=w45V1+YJ+FUjhaiDhIonxhGXbHchi8is21EwHNy0i6ISrngowWK/kDvGIZvLyvMzQg 59OqPT6EgBPDKdfZUlyls/HmWIqYugzkEX04yT9/2H5t8O5euPtKBMPha781YDFOq4/3 k8n/t8JILFHAwD79/jTW8rCk3Q+GCbwK5hfNHe3WYQmruHqWvTUnGT5x7slSIFGN9Ngo LwVAKfKf2NDlydyz4sxAWR527gA2fV0bHRViCSxSrEzshzhwDidldaIgyLQkfyPZ0A3P SpzhVElR4EVqrWsGZqC2wYoPtyuR4Hopcpu0bQfjYzKUHuqYo4/ir9WCpvCTngb7VVfD KTTQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=lKivSq1j; 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 o16si768776edt.172.2022.01.12.18.10.15; Wed, 12 Jan 2022 18:10:15 -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=lKivSq1j; 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 7F16D68B208; Thu, 13 Jan 2022 03:53:46 +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 08EE568B12D for ; Thu, 13 Jan 2022 03:53:42 +0200 (EET) Received: by mail-qk1-f174.google.com with SMTP id t66so5561390qkb.4 for ; Wed, 12 Jan 2022 17:53:42 -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=PkyMNk6Ft0vbW/jIDaHDjvKsvpUpRPAX5TBRJmpApXw=; b=lKivSq1jVYglE1CcukA2uQ6uC65J/hhtH9632fhAP5xvsiQAMssFOBxEnpblWzW6Fh uvrDJZ6XcrqRvjQ+yTVtKu3lQU0cZUv4Jf7iJFoztgtRenT+dsBk9pxTlKkH+Tpfq/mM ufQtGAlgzP2m4EvdJLrPEp9JCtNvG2eR8bm7y0v4WndNLC4/xp4AeW5j49dGpVujO4TE jcSiWYU272YqOmiaj0kuL8LoNSKDx6ftOmmuPLeDuegApVN73B4pYGveofVvBkgS3Upi BbbeISTRc6GQIExJayHTzhUf3IvE0bK8s/eRrq0htpgRuruW9prlI5pUwEYdyFo02aWE h1eQ== 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=PkyMNk6Ft0vbW/jIDaHDjvKsvpUpRPAX5TBRJmpApXw=; b=FXjgWzsh2Qu8f7IIIJ8Bmyfj6XGnwJZCArY+DWYH7eJUIspp2vvFJFCUgeQImlybK8 X3zTe00x7v39KTILnLyhJd7GCBU+vPHE/hAIpfwZSNTymElEdJFo3Ga26aoUqn4yBcPV 0KseS37dowlS2yUGvo7jmXdZQhdQC+sBRcJxbNuklSUPjY9yMFDyMVwvLQPTGgb4oRKv QtsJ/ljHbnnEhD27kCDjXcEakMhc/7tYMZNKkR66vGDsEMcD7jKF3l8a7xYbBevtNK7d GzaSl1MZxYNn/3TUXnaqUPr20HFYoJvlt4btie64mlQk5j7toyP233jDk9rR4h5noBc/ v84w== X-Gm-Message-State: AOAM530w5ayOEm+yDT/Gl58KvxlgFoS2KFN2GBNYyo+dXkV4w65QQBYx /RNPZ/Gxf02tMIvpBZR7g/osQ0T1Qzc= X-Received: by 2002:a05:620a:1098:: with SMTP id g24mr1159044qkk.123.1642038821605; Wed, 12 Jan 2022 17:53:41 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.40 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:41 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:46 -0300 Message-Id: <20220113015101.4-85-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 084/281] jack: port 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: kpPyeCTmXOu8 From: Anton Khirnov Signed-off-by: James Almer --- libavdevice/jack.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavdevice/jack.c b/libavdevice/jack.c index 0d5465e407..53ce029dfd 100644 --- a/libavdevice/jack.c +++ b/libavdevice/jack.c @@ -255,7 +255,8 @@ static int audio_read_header(AVFormatContext *context) stream->codecpar->codec_id = AV_CODEC_ID_PCM_F32LE; #endif stream->codecpar->sample_rate = self->sample_rate; - stream->codecpar->channels = self->nports; + stream->codecpar->ch_layout.nb_channels = self->nports; + stream->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; avpriv_set_pts_info(stream, 64, 1, 1000000); /* 64 bits pts in us */ return 0; From patchwork Thu Jan 13 01:50:47 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33364 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp23957iog; Wed, 12 Jan 2022 18:10:31 -0800 (PST) X-Google-Smtp-Source: ABdhPJwm7188ScuALPjce3JjhW3tj51B5DTxP7JkBPNO/GPasTnWGGELNy8qlVk/dRl86hFKw8xg X-Received: by 2002:a17:907:2d9f:: with SMTP id gt31mr1868451ejc.544.1642039831405; Wed, 12 Jan 2022 18:10:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039831; cv=none; d=google.com; s=arc-20160816; b=yVuYO/+pdU5naA+E0RciJp2RI4Ccbnk8g+0o/OwEg84P3JPkoZjONaORZU959UO6XN be4CKu7rF2qRMKZ/fM6g3FPIJJyqbY9wc599osLaBs2BfQUWfUQEC1vIyBF9CVNBFVi3 dEphVUlAsCObb/0raxMLUeT9Pnkw++E3of4KxeqVMHd/aQ99VpVwMz5kDwv75b9aYa/5 vB1usLa7Fv+ePyK6wL5KCNfz2EWyE6O5H+K+JuoV4TqNx6FPcUlQf8oyJik3ihVRRTmC N4V/iF1yKkaLuMHReq9wKotZ2nn+iWDq6VSVYCskMbAyRox5BiokU5pgx5DZjvRiVc3p CSUQ== 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=RNxzd+4F7rMHgnTAdEi2S8s3DNY4bu+46shPGwgEPhc=; b=bvwo49TqyhdjEGFSrFYqhVioB12qdYvSVNP+IV44nLxxPgiHT3ZtLmRuQU6nOvmy0k KW6o+6t9oVjf6XWsIIDrxKyxQdGLnYOkjAQdIVUqOeLzaKFhQYF7dj+ejFKYhBKkbgVR q/RpkvGJn+UqWA6bTE7noBf5wvcLwZDN3GsujQuXaWZP1XRDiMiSZW9SxEAw8cFGjF5v JTtnLlu+5JprHa0LIHG9u68WBKZiEWh2Dyu/q/nsxrjrklWW6ZX+UrY//qHRO20hg9g9 oqUM10dNplvsmXveUwp5TmMHtZTQKC2YWwd+qNsAOU743LLj5PTciIQvBHT0dgdoAK9E WAMg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=NZ5Gdcit; 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 dk14si824363edb.270.2022.01.12.18.10.30; Wed, 12 Jan 2022 18:10:31 -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=NZ5Gdcit; 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 6125268B20A; Thu, 13 Jan 2022 03:53:47 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f172.google.com (mail-qt1-f172.google.com [209.85.160.172]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5215668B0D1 for ; Thu, 13 Jan 2022 03:53:44 +0200 (EET) Received: by mail-qt1-f172.google.com with SMTP id l17so5324400qtk.7 for ; Wed, 12 Jan 2022 17:53:44 -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=iKqnV6LOz9MTCJNOF4yGSWxGWqg7LEjHzPBTp8PAMS8=; b=NZ5Gdcit9oexMUDAgMDmJ7MUGqDI7qTomN2lVYkiV827mtzk26brrwVoqp47x7WWAJ O6QCvQ7CAmMwr1pMBM7WLTaUSRrK6Fl9ZVmNGhD+XhBQFO2nB2Cs7EcOf9Onu+94aMxt pCO7iRYm3bjKMKJLPpgJ78LXOt8LZOwIRY7Yw09HfUcYJGRKWkM2LYQr7kD+u1fwthIW qHi32I5L6qNirvL3FE1Afdr6EfCkeEVUmIs+jJU2145N7BDTuwFTVVuJ/pv79j3slj+y HMKXOnrclHH/qgkbplkXqD31nhDH+uaHA4Q3UeUXX10ok9LHrkYZctZPub4uF06qFpvU NwSA== 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=iKqnV6LOz9MTCJNOF4yGSWxGWqg7LEjHzPBTp8PAMS8=; b=fkSX3jwLhzLThq2xFP9aaXjAydsGtVZx0R/xglZO1Mz4akM/QAZzXRnakHvN+K0H2Z t4P9JKSrCjzT9TVrpNmOyCEH8/RgnxPizM4IOprhXRAM4p3cTeOOmeEd+fYewfClcaq7 EBtjlvWaD0uyDlLFfni06GU9k3se2yJnPH5oW8ysKND+LJCKVydT2Ac66cB2R74tTSo0 BFuSxtdJK/CY4JVVAxfCHN+AuHg7Pca01LJr/hgKriktmojAjNti3yxcbR1mYzsIIfKV waTElH66yqA2zvXolFShJBqD1mqaUYm0999FvTmlK/DZphXLwIt2hkzwZsfucrytLs/d uCEQ== X-Gm-Message-State: AOAM533f8hnkH95ikHUOSdrps9IIfeqHcfqs/jz8MN7aQmKEH3g426bu pma95HK/bWi+IjakQItp0fPk6mJYEVU= X-Received: by 2002:ac8:5dcb:: with SMTP id e11mr675130qtx.316.1642038822811; Wed, 12 Jan 2022 17:53:42 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.41 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:42 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:47 -0300 Message-Id: <20220113015101.4-86-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 085/281] jvdec: 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: pzJ0zW8mde27 From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/jvdec.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libavformat/jvdec.c b/libavformat/jvdec.c index 93569c87df..14e53e5c70 100644 --- a/libavformat/jvdec.c +++ b/libavformat/jvdec.c @@ -102,8 +102,7 @@ static int read_header(AVFormatContext *s) ast->codecpar->codec_id = AV_CODEC_ID_PCM_U8; ast->codecpar->codec_tag = 0; /* no fourcc */ ast->codecpar->sample_rate = avio_rl16(pb); - ast->codecpar->channels = 1; - ast->codecpar->channel_layout = AV_CH_LAYOUT_MONO; + ast->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO;; avpriv_set_pts_info(ast, 64, 1, ast->codecpar->sample_rate); avio_skip(pb, 10); From patchwork Thu Jan 13 01:50: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: 33365 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp24116iog; Wed, 12 Jan 2022 18:10:45 -0800 (PST) X-Google-Smtp-Source: ABdhPJxUQF3Wyb56G0gu8qrr0V0x6B4LpGtV0JzQ5AgV8uYLsvndHBX5hLvXnVNEeVPYv5tBQrFa X-Received: by 2002:a05:6402:3da:: with SMTP id t26mr2289313edw.116.1642039845195; Wed, 12 Jan 2022 18:10:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039845; cv=none; d=google.com; s=arc-20160816; b=mKN0y503XFVuKFIk5oPc7+ouS1/jBuYMckaZmKcGd+eCqXs4plDI4iX5T2kSD3Kw/6 e1LQaTNSP+/RJKwebIv1Z3XofcHqovvChvu5yoiciJizHfP2nv59niYzDBtsJz3//sGQ uke3pEctjf1/Ct9ww1Sovl4iEIDqzy5Pbr2kbJjaPGm+vmd45c9hbyOsCMCPMH00yAXA Ol7W5Pzt90oU6wr3YVLF5JsMFx2ZNSUWd1U9MRHwvmyIDOxA+4eZhg0h07aJjQX1qP6F XUVzxxRq3+pLNb8+wZT66W6ewAwZepsgN+Zie1S4WMn2YhteiWDv+DIyTYnZj9fukb2g L8ZQ== 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=N4irvu/u+CmDCFlpe6eW0ZpfShm5EDVIqlYr2KtE3ac=; b=MSoEvzJK1e40T3zAB0Tj6c8ZbUFmOb9PLhkyE+aFHko9ZlnR+5woCJoC2I1DO0FRS9 cF98NdKq9CSgPvYo2ezV2W6zqZJUFUnCbqOHWndCuWGOAxI2n57xRiww2tLOh5iEjdlY Ms7FfJz7dTfWDAbKYUwLoJ8007DCu0UUiuUrBapqB64u4oUixFcl5hbP4bYQCCuE3jPw +Qh0RaK2VOhgvCTlC7iJ/0mJ8yIRqhr609l4PZw2XEQ5ypNKygOgLecEc6DOUDKzmepZ HV1RxHFl5b7rEs4jhfriBOmqbQq2YrpNRKiYBSRKCRS3RdyNqus04SOyeAiQEpcfIV6r Y4dQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=Sd5zqyQ7; 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 zh8si707280ejb.979.2022.01.12.18.10.44; Wed, 12 Jan 2022 18:10:45 -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=Sd5zqyQ7; 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 58BC668B221; Thu, 13 Jan 2022 03:53:48 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f182.google.com (mail-qk1-f182.google.com [209.85.222.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 676A668B20A for ; Thu, 13 Jan 2022 03:53:45 +0200 (EET) Received: by mail-qk1-f182.google.com with SMTP id z10so1203704qkf.7 for ; Wed, 12 Jan 2022 17:53:45 -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=DhOVrKla3kszH/aOpCy49UyB1KPEff18uNGXqmvAkqQ=; b=Sd5zqyQ7vhWH9tnDD4bEODVSboll42xTXm86ZzhCXnxKJONkkMNFfkseJha54Wwt2M Q/UtJxuuuhxzHjWclr3YZXF8cKut/BgBsEt2QaTrASH5omhjpaq9HsratBT01JvhOd6k gE4EBbt/XrCLeKiowKe8xI/M1ZukVT9FqlcOPLnyi46U171VqsYEGx7yUZFP8WtnAp2G 5f5F4E5pDW1c/7toQ+qgssuas9E1vzgEPChWl+hwRsf3ttGfM8yoJFkUldMYlLdptf+z 9Dh4ApH2Co0z53j/tTYEMrMVovhVSySXhRhs3FPUu4yZlY/rDLYHvr1zGGeyaL6jhkwf K6dA== 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=DhOVrKla3kszH/aOpCy49UyB1KPEff18uNGXqmvAkqQ=; b=WHjreWGZ+cgxq2mmzTuGvXNmWfaW8zXw/vggAjU8fKPw03toB4fz8uVeQLPjsMknM4 B9310Gcm/h5UnGrHpFVL0nRF//45HqiOjSsCfquWF3JgXk4C7YJqrXDuoWHKFPGhAaWD FKKGJGWn+UbZipnjveN9kFLeDVoutOYwTpuN2xJpvpVX8jY7j9o27GIjruULV5SpH6I1 WwhyxSmXBuSxR/gguTVqxAG3dtaMLU2LCDLqi5zu1mo1wJtLm7DTcpe4muULhsHMZgGs oTYdWE1G7kv4zkFQuVggG47e8bqw4ezN3X12nrAyx268+p8Yvp3wWhUy6xccC+H2nhNp CnJQ== X-Gm-Message-State: AOAM532gB+pGz+Ezls8aaeRLqNKhAvlQKK6gwYcmOWMtwSGnllVYnIdm NeLNtKgsZx0b/wcdquAKh5rXAfsU3T0= X-Received: by 2002:ae9:ee08:: with SMTP id i8mr1836447qkg.73.1642038824008; Wed, 12 Jan 2022 17:53:44 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.43 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:43 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:48 -0300 Message-Id: <20220113015101.4-87-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 086/281] kvag: 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: t8kM3Ewj5vBi Signed-off-by: James Almer --- libavformat/kvag.c | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/libavformat/kvag.c b/libavformat/kvag.c index a277c28128..5cb856cf07 100644 --- a/libavformat/kvag.c +++ b/libavformat/kvag.c @@ -71,18 +71,11 @@ static int kvag_read_header(AVFormatContext *s) par->codec_id = AV_CODEC_ID_ADPCM_IMA_SSI; par->format = AV_SAMPLE_FMT_S16; - if (hdr.stereo) { - par->channel_layout = AV_CH_LAYOUT_STEREO; - par->channels = 2; - } else { - par->channel_layout = AV_CH_LAYOUT_MONO; - par->channels = 1; - } - + av_channel_layout_default(&par->ch_layout, !!hdr.stereo + 1); par->sample_rate = hdr.sample_rate; par->bits_per_coded_sample = 4; par->block_align = 1; - par->bit_rate = par->channels * + par->bit_rate = par->ch_layout.nb_channels * (uint64_t)par->sample_rate * par->bits_per_coded_sample; @@ -90,7 +83,7 @@ static int kvag_read_header(AVFormatContext *s) st->start_time = 0; st->duration = hdr.data_size * (8 / par->bits_per_coded_sample) / - par->channels; + par->ch_layout.nb_channels; return 0; } @@ -105,7 +98,7 @@ static int kvag_read_packet(AVFormatContext *s, AVPacket *pkt) pkt->flags &= ~AV_PKT_FLAG_CORRUPT; pkt->stream_index = 0; - pkt->duration = ret * (8 / par->bits_per_coded_sample) / par->channels; + pkt->duration = ret * (8 / par->bits_per_coded_sample) / par->ch_layout.nb_channels; return 0; } @@ -147,7 +140,7 @@ static int kvag_write_init(AVFormatContext *s) return AVERROR(EINVAL); } - if (par->channels > 2) { + if (par->ch_layout.nb_channels > 2) { av_log(s, AV_LOG_ERROR, "KVAG files only support up to 2 channels\n"); return AVERROR(EINVAL); } @@ -168,7 +161,7 @@ static int kvag_write_header(AVFormatContext *s) AV_WL32(buf + 0, KVAG_TAG); AV_WL32(buf + 4, 0); /* Data size, we fix this up later. */ AV_WL32(buf + 8, par->sample_rate); - AV_WL16(buf + 12, par->channels == 2); + AV_WL16(buf + 12, par->ch_layout.nb_channels == 2); avio_write(s->pb, buf, sizeof(buf)); return 0; From patchwork Thu Jan 13 01:50:49 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33366 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp24280iog; Wed, 12 Jan 2022 18:10:57 -0800 (PST) X-Google-Smtp-Source: ABdhPJxvdftMNjaEGg6t5OkYbJRinviJsbMDPTo57ULCJy91v89cg02vafISXdY5Kfkh+Jr9lgmF X-Received: by 2002:a17:906:7944:: with SMTP id l4mr1885345ejo.290.1642039857514; Wed, 12 Jan 2022 18:10:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039857; cv=none; d=google.com; s=arc-20160816; b=lYLWMf9tiNL/mNjmqC5RPffdKg27g5PlhtLmkTHyDK41+sOzj8Xp8emE7qtZrljUe0 anDDMv6+Vq/4FPOb5OHKLV9TWT/vN2XOJbUC3dJsLRjFaoDFiAyaZp+0SOeFEeNAxEy2 UlTWRmBRws5Fi8q20mri+uNDWr2wOnSpaUleNxM3q7izbF1iNrCmrEvzupKVwcHPUpOm t2PCbdB4JHuKSk56HPNVrHiUzjroTOQkvLGCYzeR2tYxJYQacaXXeokC1We7Rqfb1XDw Wo2lWdekaxI/nI8+FBYxXD84pCDaLX+v4MCu6UQQvVdqwEorlWh4B8YGbLLiKNALlxfT daPA== 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=Vu/YqaREbw7QXLSDLaMa1DvN0EYnEr8xpBhQolw37Qo=; b=qcUWpFX0LpDlNWGG7NwO91JKrfXqkzED5JYv8X9VE4S6QhcUyg/cc6EDO7Jre95a+s SufiFbirnpdA6mriqoFa9/cQOBDDJ8GjJ1zvnpAA0ZpHJOoq9YC0TRFmjjSJKVK1qFM1 3WiU/7blnqfHemEGtRn+DilthiaZp7FcZJuactFxg8XzJQOPaT52s58rpmvLUHpvix4Q A56KodShhmCNFxkKrEhfE6Vpf8IpkUkG9yBXcHmEwtxFmYJ3sHhxIdjQD4aQHoU0LpXS RV31deIc+/bcF0+vuIY4PQViC107Owwbgkn4HhCiJ3pDSTSU7sCJTT5tiiS8gWwPbbW5 AZVA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=e55vHuJV; 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 j19si992737edj.429.2022.01.12.18.10.57; Wed, 12 Jan 2022 18:10:57 -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=e55vHuJV; 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 479A068B224; Thu, 13 Jan 2022 03:53:49 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f179.google.com (mail-qt1-f179.google.com [209.85.160.179]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9768468B211 for ; Thu, 13 Jan 2022 03:53:46 +0200 (EET) Received: by mail-qt1-f179.google.com with SMTP id c10so5368272qte.2 for ; Wed, 12 Jan 2022 17:53:46 -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=FLMMEaseBQ0ldlNz+ZPCfMxSypYe5/Vm9tTBiQVlsl0=; b=e55vHuJVCQuW+U24Sb6wBQ2V1lFCBZLSvIjahCFXfpZj9QzLbintcpfiKaQm1++G79 VnRXWxQ+diGmai5CnXkferVQye208YOYpUyr6C+wxd2ik+b3rEDL7BG2GpQXDb8M4SGH HGA7ylf6sCqaSzcMQOClz8dYWsMCrjhsZMRJt9qPsBun69orIfKwHAGCkFO/IxbcYTQB 6PKaDSyIo0pj8+5dnIObqGVivyLZXWXqY6bCl2YNkk6mKkvrMlGugTlyFWLIrZIORnCe rTTElRjgJeuaUCwIiqWWx3pxyyakM0C48WaPD2hKQ+bfBIvOCXuPDepSCc3XFLw0koIq ZZEA== 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=FLMMEaseBQ0ldlNz+ZPCfMxSypYe5/Vm9tTBiQVlsl0=; b=Zm1ZZ8kgmH/9gcPHUHlHV69kmS4OPbOnPgCbxBfuinE8adNAtVQnttsdLLkBEq00ec Je746pyY3BKKoSOCHnh7ph9BF2vO8rI62LMsn/UYTRlCwIQ9DD9vGvol6bm9WISKViYV CGS4gpGDtPDxWRQ1kqStBuhbAXQR3TVG6a7lw3ZHuHxN0hVWHKWC7z91N49pXl9F1Ege sx1SXimcA1t69oR5xdA4Q5Au/TathHOpGVh1/yWnE6W9I7uS4+rLptBgxOiZe8vRjUb0 oZu7crRVoU8sewaXxDuaaOxzB4OeSKkWO6l24jynZ3+yng28f9pIU/nO/wFxA7EoRszK L7hQ== X-Gm-Message-State: AOAM531+2ojFTpliDuIqHWikchfpk2Muw66MhmjLaw2FDbJR35jZxOHm 3QUZJW99GP4DhLBnhqtwjsTwYTxNS5c= X-Received: by 2002:a05:622a:653:: with SMTP id a19mr71840qtb.166.1642038825195; Wed, 12 Jan 2022 17:53:45 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.44 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:44 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:49 -0300 Message-Id: <20220113015101.4-88-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 087/281] avdevice/lavfi: 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: gXlXHq1Jwf1D Signed-off-by: James Almer --- libavdevice/lavfi.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libavdevice/lavfi.c b/libavdevice/lavfi.c index 710ad7c530..fdb93b835f 100644 --- a/libavdevice/lavfi.c +++ b/libavdevice/lavfi.c @@ -332,9 +332,12 @@ av_cold static int lavfi_read_header(AVFormatContext *avctx) st ->sample_aspect_ratio = par->sample_aspect_ratio = av_buffersink_get_sample_aspect_ratio(sink); } else if (par->codec_type == AVMEDIA_TYPE_AUDIO) { - par->channels = av_buffersink_get_channels(sink); par->sample_rate = av_buffersink_get_sample_rate(sink); - par->channel_layout = av_buffersink_get_channel_layout(sink); + ret = av_channel_layout_from_mask(&par->ch_layout, av_buffersink_get_channel_layout(sink)); + if (ret < 0) { + par->ch_layout.nb_channels = av_buffersink_get_channels(sink); + par->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + } par->format = av_buffersink_get_format(sink); par->codec_id = av_get_pcm_codec(par->format, -1); if (par->codec_id == AV_CODEC_ID_NONE) From patchwork Thu Jan 13 01:50:50 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33367 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp24416iog; Wed, 12 Jan 2022 18:11:09 -0800 (PST) X-Google-Smtp-Source: ABdhPJwBuwk4ARknFOsTAbrYZRBv51mIlU3ee6Z27tqUJ4xY2ksmorAXxOp9BDJfi1QDfyOnUKyI X-Received: by 2002:a17:907:97c7:: with SMTP id js7mr1872974ejc.84.1642039869236; Wed, 12 Jan 2022 18:11:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039869; cv=none; d=google.com; s=arc-20160816; b=hekhPSMGVmkMzwIn/Rv2kDE7ORQsg6BQLYCVfqg1QC2hj6AKLmSEDrXERIiGj6wpcc USa/f/tMHgzTZ5pPJEBbbaGDHBJKtk+HyrLUSyY9JnoGcEG9ikuFC8PKBXRW3++I9/di AjQVhbi7QIRM+nwOD5HUIPls/yiHnK3ljqNeHznKT8zGhUtGgEkGWCCN7GpF/vTpq1PS MMyeRT7L3Oas32F0ON6CpBeV38RqAWYsGEvTVAxMLgp5icMv9pDu+tYLf/ixXQ7nFUSL vTNcMS2mN3X1ELQcvBefsuFNfBaYRjV0zMQrLyqynrnpPTrAwdCBVuu0K8fF4MrLdZLL 2SbQ== 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=u0EjDs4mx9vRpNOdq4ThLndfONRcJSAO+geM00iY0HA=; b=YkLRJkJflp37UQwNU2JoOy+tBt1U/QPtP1manO5aUab1QZ9xbS+DBnjrjW3QrC1tnI Q0r16YgFh6VsedUJqZwe1M8WDpY7NWwEGhKHW869U3GrLz/olM4F46zl9Mk8HlBceOjM ETKuIism/J8KTBzf1rDy+NbJGIwKK34EN4khVT/izTDQg8nQ81zGp2XQvnCeruo8BRW7 1kHrKl9G8wmJa2eZyYtTObtoIAmhBlYw+ChbDMjGZ8rV57f5LxLkXAk2Hb6UmVoD1T4w kVbGmhNDSFMtzSgXDcC039HXRl3pZPMHcNW9iXnIhIwFDzmauDa5LCLg+6SanGWr2eoI yeVQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=YcadR+JE; 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 b9si917888ede.319.2022.01.12.18.11.08; Wed, 12 Jan 2022 18:11:09 -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=YcadR+JE; 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 1118068B231; Thu, 13 Jan 2022 03:53:51 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f181.google.com (mail-qt1-f181.google.com [209.85.160.181]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BFB2B68B210 for ; Thu, 13 Jan 2022 03:53:47 +0200 (EET) Received: by mail-qt1-f181.google.com with SMTP id v7so5307665qtw.13 for ; Wed, 12 Jan 2022 17:53:47 -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=0re76Q3781gwVIWTpiwow51HsY6qqa6G6OUdyeIhjx8=; b=YcadR+JEU9e61qjqh1zgtZQjvf7K0z+WUQHjEQcxQ5x/y87yzxp8bWFpB0i6Zwz7AC H3riDAMfz/ii7gNmHlAOasCJ3SA2lEBrL/9fRdBbKRPGS0YdHtP6g0WAx4n+9hddtIy1 oPzBEuD0vNkJN7an/h+lXdO3ImJqoV3A5YpMxjNW6CzvVs+F141RHWujoal8E64s/YJ6 TfYBGFQqIc0Uv/uAycZgNiUdyyNuRA5b1cGD9MvBUqeQPEZsphMOHoJqAa2zX9Fwl0/+ iapjeRaprMQDB6znRDFEIPpi1wp4b6bPovR+bv9XXfuFyZPJMPofIi/68kacTa2GgFeS u7HQ== 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=0re76Q3781gwVIWTpiwow51HsY6qqa6G6OUdyeIhjx8=; b=cHGMPhFOaoKUb/fpXEFzoprCJC6mNfPwTniH2G0HxQ7Cg3ZwLjo9L8pIjD7Na+hmQu 7Pu9OhjE6JQNW8K0AIJewxXTmTA3ZeBlL8IUAasiJ2Hua0WprdC+URKUbCjLXaUf7/sz G6LvllIkL7VVOiG0jOmyoXJdFAi3Q1Q6lXsEv6zoAWvqQ2eguRc2LOXa6eVyzhi51m+F z2BHzPP1a7DJWWLi3IrgNsTETfjv1trwCoQomvgumh6/b0N5L9BSVEIFJDfqkGCJx7y5 ATkgODO5D5cQlRlgoUwxUd1OB0/ZgQM65P4hwPtSvTbDs3bPukfTKhZPWQz8eqFmtkKV xIeA== X-Gm-Message-State: AOAM5307L5942VkJis1POFTu4epElha8xxxR22ijWi984e2nCHETHnRU hrNm2o9txX2LYMNmsGkYxDZMcMddH1U= X-Received: by 2002:ac8:57c8:: with SMTP id w8mr1964085qta.402.1642038826406; Wed, 12 Jan 2022 17:53:46 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.53.45 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:53:46 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:50:50 -0300 Message-Id: <20220113015101.4-89-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 088/281] libcdio: port 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: l85XM4yEg8X8 From: Anton Khirnov Signed-off-by: James Almer --- libavdevice/libcdio.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libavdevice/libcdio.c b/libavdevice/libcdio.c index 623878fe7f..4417523c57 100644 --- a/libavdevice/libcdio.c +++ b/libavdevice/libcdio.c @@ -90,13 +90,14 @@ static av_cold int read_header(AVFormatContext *ctx) else st->codecpar->codec_id = AV_CODEC_ID_PCM_S16LE; st->codecpar->sample_rate = 44100; - st->codecpar->channels = 2; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO; if (s->drive->audio_last_sector != CDIO_INVALID_LSN && s->drive->audio_first_sector != CDIO_INVALID_LSN) st->duration = s->drive->audio_last_sector - s->drive->audio_first_sector; else if (s->drive->tracks) st->duration = s->drive->disc_toc[s->drive->tracks].dwStartSector; - avpriv_set_pts_info(st, 64, CDIO_CD_FRAMESIZE_RAW, 2 * st->codecpar->channels * st->codecpar->sample_rate); + avpriv_set_pts_info(st, 64, CDIO_CD_FRAMESIZE_RAW, + 2 * st->codecpar->ch_layout.nb_channels * st->codecpar->sample_rate); for (i = 0; i < s->drive->tracks; i++) { char title[16]; From patchwork Thu Jan 13 01:55:42 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33370 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp24829iog; Wed, 12 Jan 2022 18:11:49 -0800 (PST) X-Google-Smtp-Source: ABdhPJwDOsyj0OTNi7wZWHv29gDUA4Wvc+uS3fUoaR0OpazkA+WMiIeCHXE8eagkjmPfIju5wLJa X-Received: by 2002:a17:907:8a04:: with SMTP id sc4mr1871017ejc.392.1642039909614; Wed, 12 Jan 2022 18:11:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039909; cv=none; d=google.com; s=arc-20160816; b=owwsyRYbxnsdtw4yBs8ROmhdtI9vfCb8Jv1tiYqPZAkVP7KaBBtLr0lDxNvHuU72v9 GB3TlOxyBjz44VGYWAEusnGXVOKPyT14ND0Bszbxgpsilh4BX75slhEzjt/0fqcu8Rjk 6lOKf4xJmkq+GJCIwnUvLOrnxg7Crk925GS1O7yTosIxJ49SWIqhxwfDZzCllmQk2sCC uXQ8SXqiryrbZOSeW/mGvy+03QCiKKcZUHCy6wPaV08Q5FzrUYQeEXjIDCxXombeVOTg RcDwj99vRkuWNKUFbIhB7Idlk8fP4GM47iaIlElJjo1FIhLEP6XbaB42r16c1xrMFcM5 XnSA== 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=RBw2D0xp6F3LjcmwBgSucOPQIdjvPHYjEJDEIf4Visk=; b=XQuIo+bkS+AKfmiX3doT1CiShj6s31mIjeWX1GTfm1UDtJM2Ey+YpcpOGWw6zMaH4B X+YgXe3x2YfUND3PYFktDsdvRagyWT2FqQVFlaAZdUIKKy3sz6+SNRBRhXBbdSxJiSc3 MI2ATGH6sYqBWGEJeaaBg4EJDwV8LdoZDprSm3laqK12HTlNmhvxDkXaK0sg78wOFtx5 EssgS1vsAzJUmHpLsnom55VdZ4RPv5Hg+1qh0aySzk5NgYuj4TtTbM+jYo5x4Ul9J+OV 0wBxN9dBP3S1305PSd9jxnnCoBZpvcBHYi5r3/zhfW5OPDFh36i3AXnFaZyD6QvEjeE/ PHzg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=KHx7ePM4; 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 g3si947583ejt.101.2022.01.12.18.11.49; Wed, 12 Jan 2022 18:11:49 -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=KHx7ePM4; 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 00E4E68B1B9; Thu, 13 Jan 2022 03:56:32 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f43.google.com (mail-qv1-f43.google.com [209.85.219.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9C17B68B1B9 for ; Thu, 13 Jan 2022 03:56:26 +0200 (EET) Received: by mail-qv1-f43.google.com with SMTP id 15so5054154qvp.12 for ; Wed, 12 Jan 2022 17:56:26 -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=zQ/ZTD8j/6xZRmd545RQ6atPkqxsG9mONd7mZewc/70=; b=KHx7ePM46ChOMxuCZX2Z2n6Tx6J2nyZfwmgJUyv1xcxBU5tsu+sj3gnj5V8IZI1xF8 JgL/bv2MnO1LNpbgdq32Kf/D8mxKEXHqTc8CeMK/ABAr+8NdWWvbC0FiM/LD2qmGwXb0 BxUAtNPV9KBZdJfjj4+v3RiJGBhzAauglwI/Jms3yJ4guzF57IQpGZvo2rjQ/nAwJmBQ DqY9o6+XP6DYwZZAVa3nAVzgHXYcrUVKl+cFCnyyRusIXW3vnY97kgm8oSgQQqANtenQ mW6MvAE/Op83AL2k2ViP1m0JWCUgGVOMnbhwJukFCnmyVHLM9mP/ufbsToAVVDvRKC09 qm8Q== 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=zQ/ZTD8j/6xZRmd545RQ6atPkqxsG9mONd7mZewc/70=; b=Ifv/hsH1J9Y+5LWmPtxUJVr+/yMsl/9uPujTZte2FCCZrTG2bbALBV+ZlQYRLtzfIr pe3omcWAZRN33lRvCEra3ci4dFp2ahXYwygGAB5iPtHUY1fpupe48AzwQBBTINRgPvi4 0pfk80JyBm8BuElCTJxZ2n4MGbmAkCq+xfwaLRkplAivbOrU7o+R00NvrbYLSJQpXxSU cMLFZqsJ5hrKB58qLkIgvce0mfPiIMaF8deMEWjmAn4XD09zbciYgNP9kokD1lI/FYEo ZE8kQxGffs1/Io7ggKbEzkBsx1xyxN8+yGCjdU7bluMs8OY92v9iqmFDCzCFgE7CGcRa xMjw== X-Gm-Message-State: AOAM533PCNYeLxvbzC0f6pvQTkFTbd1L+dOYOiMow6XAjQVSrcFH5BOz 5Fvsye0jmFmMzOxbQpqKOY7vHLrjKDw= X-Received: by 2002:a05:6214:250f:: with SMTP id gf15mr2261770qvb.77.1642038985355; Wed, 12 Jan 2022 17:56:25 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id t11sm906506qkm.77.2022.01.12.17.56.24 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:56:25 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:55:42 -0300 Message-Id: <20220113015612.448-1-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 089/281] lvf: 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: svrMF4p6jCQi From: Anton Khirnov Signed-off-by: James Almer --- libavformat/lvfdec.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavformat/lvfdec.c b/libavformat/lvfdec.c index cd64fb9aee..d060b3b0aa 100644 --- a/libavformat/lvfdec.c +++ b/libavformat/lvfdec.c @@ -79,7 +79,8 @@ static int lvf_read_header(AVFormatContext *s) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_tag = avio_rl16(s->pb); - st->codecpar->channels = avio_rl16(s->pb); + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = avio_rl16(s->pb); st->codecpar->sample_rate = avio_rl16(s->pb); avio_skip(s->pb, 8); st->codecpar->bits_per_coded_sample = avio_r8(s->pb); From patchwork Thu Jan 13 01:55:43 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33368 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp24519iog; Wed, 12 Jan 2022 18:11:22 -0800 (PST) X-Google-Smtp-Source: ABdhPJw5nD+bNP6HBWPVwd/mTlltKx1mU0ozrZH/okNNjFqx27FRV0uMb0xIcGDEauaOcdJ4+0MD X-Received: by 2002:a17:906:f243:: with SMTP id gy3mr1932483ejb.432.1642039882008; Wed, 12 Jan 2022 18:11:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039882; cv=none; d=google.com; s=arc-20160816; b=0vnMsTyiydFohYAXUzw80eFEu5PGQ06PIfhSe2UefMbdLJbaxsgUWT2UawgGaXCdPS yJxK57Yl0hS/j10VHgM/dORa4DVyTy7ZTTLFpyJ50j+8azkd9SLDhzpXcAOcPDBlFS3d P+rH4uh7aGZgh/hrZL3XYPCK4cVFbzoZH42UvYuntg9s6PLCGzFZgeVe+NYS9yRC1SBV EV563iQ8skUfVYWQ4aw5Y5JebV0Y812JYuUoLfZzMUr1Byz5OmFbG7qizw4F8h3XPVCH IIOWYWf8ZllDDAmuQUEGBdQ2U/D65y98Mu0Mohil1ZpP11SBV4WrYt3mAZyaIRmwz3QL zc/A== 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=NYIEZp4YAOhcsjVPwPI8Cu/PwEMy0Fu3TkdhzkvG0os=; b=BCBvrsk5vyehjiuiBA0r5fXTdh9k08we659o5Fk7gV9zzUdifelHVUdqjDXK+FLw2c iCWqfkQ3YAQPDmjlGs9Ef9UwP+Ryvw73t7Ilio0/sLA7wzMhtwqvqjXn8ya0xceskgoS ECebKfF2wzQ8z6vG3jKVLf9JSJVaMZZ7+SPrXMm46IKBjn8WQ71MPCj+pEyVBf9pa/BH KYJKBId8TYS4X7qY/Zj+GzzT4Neb8hY0V/3wPL+qIpTBe7lMCRbVQQWaefrj0kVYy3sN 8QMqBy+6ZNlPANan2g43wG1UPp5YEYywtXb3Ggv6CEegLq8xzBntt1olsDAkTpA6WW1Q oGHw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=UfH5TDGr; 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 o17si867580ejy.970.2022.01.12.18.11.21; Wed, 12 Jan 2022 18:11:21 -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=UfH5TDGr; 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 2ACD668AFC7; Thu, 13 Jan 2022 03:56:29 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f170.google.com (mail-qk1-f170.google.com [209.85.222.170]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D3F0A68AEF7 for ; Thu, 13 Jan 2022 03:56:27 +0200 (EET) Received: by mail-qk1-f170.google.com with SMTP id t24so5533104qkg.11 for ; Wed, 12 Jan 2022 17:56:27 -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=wOQMGoVTmba/lJgSitOiTjJvy/kiEE2UCp5pyiXue1U=; b=UfH5TDGrubw1KbD2GC3Sv6ZsLaVNS4N2suhVLjI8ojKJ5/R88a7Go9Eneb0+u8HXlr VGDHc3TTclem39pxIUIfFGH39Ko6C+KWtz5MxF8gU2JQjikJIo1OCfey27UXhWSTKwDF CIDFcyHwsL4RZh74KVQBiwXQ7yNN1r+tG3Czqc8hDFyhr0/MkCUn6YIYC3blqWYksbv2 9r8t15YK+4d8nLR9YvWZSGveyctBuqCye6oyLASRg23OEMzm2wDWoONeJky2PxKK4Ccv x7iyNfuUzxnQOnMRMZxXePtj2OhGG0Fpr2DadQIO6LexIDZQDsg447AvZSl5DnMruDtK cx2w== 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=wOQMGoVTmba/lJgSitOiTjJvy/kiEE2UCp5pyiXue1U=; b=fA/HO9w6lu219qQYUjF+chmV3lsJmsm0lhNjGAdz4+D50cbYlR8sQgYsnVTNOeOmX1 bvIsQ4OT9P2aMXHiHykJOQk3dGlZuuFT13+ae9ZCiJUy/41+TdPcRK/hkMWqK+aIZZLa UlAPcClxWrt47RxmbwHo70PbT4WnR4S2tkF2gMVpjFjtegpAt7pCfGvoSKOkAdTr3WUW OfIL9D5hUb4ZaAcFoqszH3ebbku+waaLa1hKHzW+4vb7jvd2wIQBCA6PrAf5mKNiHwbk lB86HQr42EHXZeTVngMoSND1+etVFI8l5TUpvRV2+kr+9ov+5Yzd+nXSK+lxPSk3UY/A FtFw== X-Gm-Message-State: AOAM531EUfS7i4CmpixA6CD+SB5BQgtYdsoMeox/4z+R7nVrLxyyF6Uw CsOeqtSUPHVFEVJjHEm4MAKEthqWnfY= X-Received: by 2002:ae9:eb8b:: with SMTP id b133mr1888448qkg.418.1642038986489; Wed, 12 Jan 2022 17:56:26 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id t11sm906506qkm.77.2022.01.12.17.56.25 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:56:26 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:55:43 -0300 Message-Id: <20220113015612.448-2-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 090/281] lxfdec: 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: 53dQ+2rYTXZP From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/lxfdec.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavformat/lxfdec.c b/libavformat/lxfdec.c index 7889abb2c9..9e0d265f6a 100644 --- a/libavformat/lxfdec.c +++ b/libavformat/lxfdec.c @@ -281,7 +281,8 @@ static int lxf_read_header(AVFormatContext *s) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->sample_rate = LXF_SAMPLERATE; - st->codecpar->channels = lxf->channels; + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = lxf->channels; avpriv_set_pts_info(st, 64, 1, st->codecpar->sample_rate); } From patchwork Thu Jan 13 01:55:44 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33369 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp24666iog; Wed, 12 Jan 2022 18:11:36 -0800 (PST) X-Google-Smtp-Source: ABdhPJzqbNIHWFHh3dr1ejxS7ro3z74vc66DN5zucqqWOSb6bD3Zl4T6rUoyXf1OREMZqwLFHzUv X-Received: by 2002:a17:906:69cc:: with SMTP id g12mr1913715ejs.372.1642039896505; Wed, 12 Jan 2022 18:11:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039896; cv=none; d=google.com; s=arc-20160816; b=xprSr+/8Xx0dUlZll3P9d2e48G3Rn43OVfOAyhyas3EEl797dJB7EbYj5lwHbeJKAH qA4FQxpOFg4RtlQGP8nyAAE9DQEZUcgWhXXb45NODLAmipMDuxRAoyr9QLM7svveJHBq 5qkV0L+zm7a7PQGrRTU4m3rZpB2eTFPrQWzmIYGACVUb8DyJnG2hXON+y8AVQwFrhPE9 FSwqE40hDumk6zaEIB3Kw1qov/pfqizyGl5cxPc4AYBs+HgIG1hGLbhHILuo2yGReomi LPp9nMrTbzp6vuHkhk2nAmZSY/gyJRHZ5kRbYLvOONHhiYnwthnGcr9/GxVR+PJHoGax zInA== 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=uhsI+3kzG8ZyBF9ax3PzhEO1cfuMb6Lp0oFKWH3zIkI=; b=EYdibrrqZxgIxHeruPpeLC3Pbx47Tr/dWyjCgNfZYJOhOKmnJa7TpuAkgcKHs4qB2p iwbql8yc7/PTA5KDuUZW71JIcLtpuG+Ke2aze3e/Lf+BDqFfoXcX3SLmggozAedQYymo /2N9MWv4yCrDC0XralnHrx4ixt/W2qgypQC4xVbbGcBT4cd89z7evdHK9z7b84eemNyd VsDjNKRHldzBU4Lr/oSpFj6dVZ4FJXa2crQ2OLpxTzbYaeLJBvTAQVoyFmCrJyrOTc1u oXNJLsRL1fZ9QNEuDhd2F/D3SYNg1R/NTCeCTSkWnnUT6hru8DJW/Vh5KExR87neooOn vj7A== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=oC9V3hoN; 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 ds1si144313edb.322.2022.01.12.18.11.35; Wed, 12 Jan 2022 18:11:36 -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=oC9V3hoN; 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 0D9C168B179; Thu, 13 Jan 2022 03:56:31 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f50.google.com (mail-qv1-f50.google.com [209.85.219.50]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 228A968AFBD for ; Thu, 13 Jan 2022 03:56:29 +0200 (EET) Received: by mail-qv1-f50.google.com with SMTP id 15so5054244qvp.12 for ; Wed, 12 Jan 2022 17:56:29 -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=5kvJsAMevTKlFVRZeCxymzidyRqzGQnWsTKjlt6Ivu0=; b=oC9V3hoNBeeJ4vm7H1Xnw/0R5e4aebV2YQoeU3x8RVAjF7R/m8NKS8CGLReeL/5ihs 5EDEtDtQj2qNPWFSWmRYC1cnPyawSET9ryXfloVLVcEe8wsVYrz2kkSb9l+mtulX93cM 2dwTc9nNyeqtiA7CUyBVul7u2hIGw0Wn/YB8WExrWMRw9iQVBBs0r63ndSHJuxZtK/Nk RSEKL5WQufLXgHVnkgZG7O4gCoxsWgpj1Hn0NWEHipOx48c/Et6N2yHYkvG5LXPOW18h BQ+BSfuC8SMrDdm2vNidM/aV975Nn1tMitFdnDEzjoft95GsVoUOGvtyCIQeFS5p+sCo A9xA== 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=5kvJsAMevTKlFVRZeCxymzidyRqzGQnWsTKjlt6Ivu0=; b=l7XZkGlujkeQi8HgHXDaHho9jK8CZoyLbwVZEKWOslZ3RY+xeJSYFmuedqQntadZFO enoOSsPWMxoHzQ0Rmk16JuU7qwADY9xigeFbIQIko0+0vHWWB4cDSzP0DErIB0Yef+99 Aw+1wHouFzaWJRwp6JXX0sQHJssbCGABgnWhZA/DT/m9jEm38mDcUfir4tMraSMP163R 7cBc7yWMSxW7CYTl2yaZJKj5vshn8+gOOoa3/37tLC/vmY8R3PY9AnwLahjv+ZwtUuxi 7D+i5AotPmZoki7A+w+t+nWl58gaB3D7xtgwQ3z6xe4TDwVd0pVk8DQfTDVLLj9vmrVg aBRA== X-Gm-Message-State: AOAM533MjTjm1I0KrO3ZQUlcCDT4XXcXGDedgoKhV0NCoJzTvHtJoH3u VMkYG9p4BcZZZn2nmWSEqMYtwN1cdlo= X-Received: by 2002:ad4:5de7:: with SMTP id jn7mr2126006qvb.31.1642038987700; Wed, 12 Jan 2022 17:56:27 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id t11sm906506qkm.77.2022.01.12.17.56.26 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:56:27 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:55:44 -0300 Message-Id: <20220113015612.448-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 091/281] matroska: 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: x13lBFG77b86 From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavformat/matroskadec.c | 8 ++++++-- libavformat/matroskaenc.c | 10 +++++----- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index 78e5a4a203..62a36cbb8c 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -2083,7 +2083,7 @@ static int matroska_parse_flac(AVFormatContext *s, av_log(s, AV_LOG_WARNING, "Invalid value of WAVEFORMATEXTENSIBLE_CHANNEL_MASK\n"); } else - st->codecpar->channel_layout = mask; + av_channel_layout_from_mask(&st->codecpar->ch_layout, mask); } av_dict_free(&dict); } @@ -2911,7 +2911,11 @@ static int matroska_parse_tracks(AVFormatContext *s) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_tag = fourcc; st->codecpar->sample_rate = track->audio.out_samplerate; - st->codecpar->channels = track->audio.channels; + // channel layout may be already set by codec private checks above + if (st->codecpar->ch_layout.order == AV_CHANNEL_ORDER_NATIVE && + !st->codecpar->ch_layout.u.mask) + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = track->audio.channels; if (!st->codecpar->bits_per_coded_sample) st->codecpar->bits_per_coded_sample = track->audio.bitdepth; if (st->codecpar->codec_id == AV_CODEC_ID_MP3 || diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index 152312102a..5278166e8c 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -657,9 +657,9 @@ static int put_wv_codecpriv(AVIOContext *pb, const AVCodecParameters *par) static int put_flac_codecpriv(AVFormatContext *s, AVIOContext *pb, const AVCodecParameters *par) { - int write_comment = (par->channel_layout && - !(par->channel_layout & ~0x3ffffULL) && - !ff_flac_is_native_layout(par->channel_layout)); + int write_comment = (par->ch_layout.order == AV_CHANNEL_ORDER_NATIVE && par->ch_layout.u.mask && + !av_channel_layout_subset(&par->ch_layout, ~0x3ffffULL) && + !ff_flac_is_native_layout(par->ch_layout.u.mask)); int ret = ff_flac_write_header(pb, par->extradata, par->extradata_size, !write_comment); @@ -673,7 +673,7 @@ static int put_flac_codecpriv(AVFormatContext *s, AVIOContext *pb, uint8_t buf[32]; int64_t len; - snprintf(buf, sizeof(buf), "0x%"PRIx64, par->channel_layout); + snprintf(buf, sizeof(buf), "0x%"PRIx64, par->ch_layout.u.mask); av_dict_set(&dict, "WAVEFORMATEXTENSIBLE_CHANNEL_MASK", buf, 0); len = ff_vorbiscomment_length(dict, vendor, NULL, 0); @@ -1396,7 +1396,7 @@ static int mkv_write_track(AVFormatContext *s, MatroskaMuxContext *mkv, put_ebml_string(pb, MATROSKA_ID_CODECID, "A_MS/ACM"); subinfo = start_ebml_master(pb, MATROSKA_ID_TRACKAUDIO, 6 + 4 * 9); - put_ebml_uint (pb, MATROSKA_ID_AUDIOCHANNELS , par->channels); + put_ebml_uint(pb, MATROSKA_ID_AUDIOCHANNELS, par->ch_layout.nb_channels); track->sample_rate_offset = avio_tell(pb); put_ebml_float (pb, MATROSKA_ID_AUDIOSAMPLINGFREQ, sample_rate); From patchwork Thu Jan 13 01:55:45 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33373 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp25283iog; Wed, 12 Jan 2022 18:12:31 -0800 (PST) X-Google-Smtp-Source: ABdhPJxd/11pGN/wnZiRB8nY8jDFhZP4mInde53MbEQ6604BxuVr4BrLz3mHy4XC8Ezp5rKZJJpk X-Received: by 2002:a17:906:6a0d:: with SMTP id qw13mr2031371ejc.490.1642039950992; Wed, 12 Jan 2022 18:12:30 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039950; cv=none; d=google.com; s=arc-20160816; b=m0UD6utIUezjBcxbT2AH6052LdfspR+SRGcxQzT5MYygHkDetLKPd0AqpRrxlpn5jf qf6rQ1tGvzZ4GNI/jXYbhIUVwGav7McxMYIzZ/z9EgkVDKSe0kxhJzzNrmIkIMNDdmYu 0NNEqV+cMysILhoY7QK4ek3q6uVWEkexfyp+qHdGRNr9jAADsm2MTQOrWyp72ACKRP17 NPva62tJWwntk6qhjHPpB/t60pmg8Z55kq2H4EugpZZ6NBXsKEqOPUHeGalbdfuGF6kM dG/vF/p7Q7j1HuRXg1kIJEC8PJIzwU59pmd6AaOejNeZTjDA8sf+vD02yTKzG57R7vwE wMmQ== 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=31LvFnVxUiofKQD82d5aoJ9dSY9jc85imxz8qmItH9s=; b=UVEdimrEB2sgx42NHMDNVq4rXzh7jUMPnwfNTG/S2+aA3Jx3+ItKRH3AyhQZ4485zf OStSzOR377LPvFTi3tHn68+HEF1fqf0xsF9mI0n7C8u0hhFaSBrPVjzFRZFyXWFmaZl4 XzmZXkRL+v9sV071KDSqZKU/IYZY1r6BlkMA+z8ouTmOPH8UUO46ti/1efHlezKqgMOc GjUfvXuy3l5DzQnIUaLuMOQZrFJmRP3oZKtZcI5JUCwryuhG9gzdh2aQVjIr+BHy1BHF T4TReUTYYKTAc8i7vzrvFLvj0jZWOpTulvnGU09C742a1HWiOaSe64TTN2mDGcwHCH6u a+QQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=kUGSggVQ; 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 a19si807100edy.440.2022.01.12.18.12.30; Wed, 12 Jan 2022 18:12:30 -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=kUGSggVQ; 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 C46C768B24A; Thu, 13 Jan 2022 03:56:37 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f179.google.com (mail-qt1-f179.google.com [209.85.160.179]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 42A7468B22B for ; Thu, 13 Jan 2022 03:56:30 +0200 (EET) Received: by mail-qt1-f179.google.com with SMTP id y17so5318411qtx.9 for ; Wed, 12 Jan 2022 17:56:30 -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=U5SSxlG8KW4xmY48w9xY6zQtgZJyTSJFpXWCjIStbJc=; b=kUGSggVQxFq8I29bngwM71PmeYhy1aaJEQUYmlFgGXONOU0vWDkzpYBrpawF2o3Qv6 04N3O+WsesLAQvf/tGZakwWQPUnIdeZ2sz8LdmM3YGhxyQbhImt7GUGyizKL3sUCyjHl TGRa/VHwiXKeIzp8/ddE5lI05q7o/Ev8fb2nLm4AomUe5rxBMAYYLl+I3+UlUQnLGn/F t+STr7lkXxK4/M+FOPDG8neewHGadLF4WY909Rwi9sqbDOo6HMeIw/wPwNEWla0E4Yvb QfGLDmmQCHaAN3mD5V170y9aQezQsSgvfctQnIZgiKdPKWpWff9rkck86IUEI5gYs2Y1 3j0A== 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=U5SSxlG8KW4xmY48w9xY6zQtgZJyTSJFpXWCjIStbJc=; b=tijEjW/YykI0RemBl1Hcs/16QK1gu8kLV9dSVUn57cTLKNIP8zMvr/ksF/gLY3Ht8U 2+3ghNO63RvLfeZ77EhgQPmcX1dpCE3vV7W81LU2rFw+pU3Lcu1Zb9GoaJFspHZXrWAJ Hj3k0nFOVCJOXGSdy6hChdf4kw9ENQSqKop2RgZl+ohJky5fKnTIC1ToDbw+3lesDtVY 8iyTHGJfZYLZznFMh90v+GxD3SdOMR7aL8WT1U/IkCwcL54w4Ws8lIEfC1wNOCrv7AOB fVrF9G+g+lsGQ2fTkHPeFHRtauycAOy5PXYgoau+XOT/RSVFE4x6EmB31L49jO+CdWHk F0Cw== X-Gm-Message-State: AOAM532ok4YfdBQyMUzHVrSvj8t103wLlil67kzOZpl9/jaJyrjq0tM3 /vLwFEV26x1Q6R4w58utcZdjh/qc/tY= X-Received: by 2002:ac8:6ec7:: with SMTP id f7mr2035670qtv.2.1642038988910; Wed, 12 Jan 2022 17:56:28 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id t11sm906506qkm.77.2022.01.12.17.56.27 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:56:28 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:55:45 -0300 Message-Id: <20220113015612.448-4-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 092/281] mca: 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: a2Q6ve0ZIb44 Signed-off-by: James Almer --- libavformat/mca.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/libavformat/mca.c b/libavformat/mca.c index ca0f76d6bf..feda65dd85 100644 --- a/libavformat/mca.c +++ b/libavformat/mca.c @@ -62,7 +62,8 @@ static int read_header(AVFormatContext *s) avio_skip(s->pb, 0x4); // skip the file magic version = avio_rl16(s->pb); avio_skip(s->pb, 0x2); // padding - par->channels = avio_r8(s->pb); + par->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + par->ch_layout.nb_channels = avio_r8(s->pb); avio_skip(s->pb, 0x1); // padding m->block_size = avio_rl16(s->pb); nb_samples = avio_rl32(s->pb); @@ -85,7 +86,7 @@ static int read_header(AVFormatContext *s) st->duration = nb_samples; // sanity checks - if (!par->channels || par->sample_rate <= 0 + if (!par->ch_layout.nb_channels || par->sample_rate <= 0 || loop_start > loop_end || m->block_count < 1) return AVERROR_INVALIDDATA; if ((ret = av_dict_set_int(&s->metadata, "loop_start", @@ -96,8 +97,8 @@ static int read_header(AVFormatContext *s) av_rescale(loop_end, AV_TIME_BASE, par->sample_rate), 0)) < 0) return ret; - if ((32 + 4 + m->block_size) > (INT_MAX / par->channels) || - (32 + 4 + m->block_size) * par->channels > INT_MAX - 8) + if ((32 + 4 + m->block_size) > (INT_MAX / par->ch_layout.nb_channels) || + (32 + 4 + m->block_size) * par->ch_layout.nb_channels > INT_MAX - 8) return AVERROR_INVALIDDATA; avpriv_set_pts_info(st, 64, 1, par->sample_rate); @@ -116,9 +117,9 @@ static int read_header(AVFormatContext *s) } } else if (version == 5) { // read data_start location from the header - if (0x30 * par->channels + 0x4 > header_size) + if (0x30 * par->ch_layout.nb_channels + 0x4 > header_size) return AVERROR_INVALIDDATA; - data_offset = header_size - 0x30 * par->channels - 0x4; + data_offset = header_size - 0x30 * par->ch_layout.nb_channels - 0x4; if ((ret_size = avio_seek(s->pb, data_offset, SEEK_SET)) < 0) return ret_size; m->data_start = avio_rl32(s->pb); @@ -144,21 +145,21 @@ static int read_header(AVFormatContext *s) } // coefficient alignment = 0x30; metadata size = 0x14 - if (0x30 * par->channels + nb_metadata * 0x14 > header_size) + if (0x30 * par->ch_layout.nb_channels + nb_metadata * 0x14 > header_size) return AVERROR_INVALIDDATA; coef_offset = - header_size - 0x30 * par->channels + nb_metadata * 0x14; + header_size - 0x30 * par->ch_layout.nb_channels + nb_metadata * 0x14; st->start_time = 0; par->codec_id = AV_CODEC_ID_ADPCM_THP_LE; - ret = ff_alloc_extradata(st->codecpar, 32 * par->channels); + ret = ff_alloc_extradata(st->codecpar, 32 * par->ch_layout.nb_channels); if (ret < 0) return ret; if ((ret_size = avio_seek(s->pb, coef_offset, SEEK_SET)) < 0) return ret_size; - for (ch = 0; ch < par->channels; ch++) { + for (ch = 0; ch < par->ch_layout.nb_channels; ch++) { if ((ret = ffio_read_size(s->pb, par->extradata + ch * 32, 32)) < 0) return ret; // 0x30 (alignment) - 0x20 (actual size, 32) = 0x10 (padding) @@ -187,7 +188,7 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt) if (m->current_block > m->block_count) return AVERROR_EOF; - if ((ret = av_get_packet(s->pb, pkt, size * par->channels)) < 0) + if ((ret = av_get_packet(s->pb, pkt, size * par->ch_layout.nb_channels)) < 0) return ret; pkt->duration = samples; pkt->stream_index = 0; @@ -208,7 +209,7 @@ static int read_seek(AVFormatContext *s, int stream_index, if (timestamp >= m->block_count) timestamp = m->block_count - 1; ret = avio_seek(s->pb, m->data_start + timestamp * m->block_size * - st->codecpar->channels, SEEK_SET); + st->codecpar->ch_layout.nb_channels, SEEK_SET); if (ret < 0) return ret; From patchwork Thu Jan 13 01:55:46 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33375 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp25610iog; Wed, 12 Jan 2022 18:12:59 -0800 (PST) X-Google-Smtp-Source: ABdhPJxcpbFt5pdmC+GMQosYPgn8p4gj/aNiksTFfxkoDopqaaph5R9V0P/gUKvR6eFzE4iKWNiM X-Received: by 2002:a17:907:97ca:: with SMTP id js10mr1815622ejc.645.1642039979432; Wed, 12 Jan 2022 18:12:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039979; cv=none; d=google.com; s=arc-20160816; b=tv8zed2UwDI9eG8R2GoebNLDxGwDMDoXLYkv0dx71vvGUiFd7rPKOgnOEX6UOGIhBO qZ5/LsPZaoaH76WIXwwACVb4GmEJfreg+U1KeVOVUFmbQU0T5ZaEVuLYivHSF+fLzfQO i2xXev6sbwP8/KSPGxFL7Ufv+OsDloLck5YpwK+jjx6ZF9zYf3lHWNX0WLMMrsUO8YpY EKTvn0cyELuy2L2ZAMklij+AnB8QrHzeuGQ2ql0/1MI7aTJ83UwWgOlioipcRKJGUvwR /m52NEC4PnncBv1xxO9jUOHIM7pAGrmviVYe7GeOmxEtjPyZ3upfzPAOVoRHCXeWFIaz 8vzg== 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=aJRLV5n2Aov/GEEoDai2gVSlBEueLGhzDU6GIybljAw=; b=E1A0ac7RfMXQEAWlYAJhxypzzZ/OXxYLOepfrfM57a7aAvSM4sd9jgGII1Qjq/soqO j3i4TcA8GRrvVSSC0B5HUKIVQVuk3RVH3FBV71jQJ5qOgApsnY8pPY5zX1dJEWYt2jhC VAUUQQqxFhmAxWuSd5XaXy2EYLIpFQ1sm8wwK5IkMF1W62sDSXKRb41EssRX0lRWwSYR UjOXUE3/LJDfIdeMZU1qCcWF34CEMjUB2BBSbZMS8DWVdr+9xa6TPhkBk/27HPdh2KEt PBqkuKmWTWI1EBAgxS2BZZIqghCdCwDwRFoCxvYP/tpb+zdCYVthw8qs06OlGQgCepEM Ej2w== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=Hi+nnkCx; 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 p23si935917edw.61.2022.01.12.18.12.58; Wed, 12 Jan 2022 18:12:59 -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=Hi+nnkCx; 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 78A9768B256; Thu, 13 Jan 2022 03:56:39 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f175.google.com (mail-qt1-f175.google.com [209.85.160.175]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 79D4568B237 for ; Thu, 13 Jan 2022 03:56:31 +0200 (EET) Received: by mail-qt1-f175.google.com with SMTP id c7so1749228qtc.11 for ; Wed, 12 Jan 2022 17:56:31 -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=YLYgiKsmDIRJxTLJ5JezU540PLaA+MWAsAjegc0hWPA=; b=Hi+nnkCx1qSPaiCyaA0JyfNYZmLeTTEX7Na9B8uLbQzQPbN/r3+lh1pMl3EwM+v1wF 1vl6Prgqj4r6spDFC+lh9XPRHAO7lXG06lHlwmO7I50QfwjehqxDNMpJ9Px3HwVVM2GW A165JrhQI6PcnoyiYwf0jDs9KNPE/2lrjhxRvlYA5oHLLS7UhlDC6/xSmteXuRAQD3oh cWfPaJwxdvrhrqcVmqU/XRNEAs18XvnwPHqmEfqFoZ4sW/PJ8mTXo2qAoNQlubM+0YNw tuVSvDCK7kDSHaFijdKbLER3AS+EurxT2NJUgibrB7JJLzEmuLwG61zj1CEwtBfjaTQV ZAHA== 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=YLYgiKsmDIRJxTLJ5JezU540PLaA+MWAsAjegc0hWPA=; b=tSRrmhoIHn+2ObzF+VyfV/4ZtDakGRm+IcN3EfSrhqaXh6rM+Z9vJ86SbGnOCZADlf oq85TgIuXb3GMyfkEEYxikdvjsK07Rg5oV/95R3o7aHg/qYYGKw5x9LoUnG/ir0uKBPZ A3HLrOlHD/aTQH7UFQEkTfPCWAW/Q4CUwgWvja2kWl5uoTeHIRlqi71rjnOvNtXFO4MR 7OrHRSC6DL2+Kzvh+t3h0SVcLwcVNJFVEyQK49ZWI6Iqm5Mhk38gQtzszDMrohRg2Gsp Lm4xuepK2Fz1OVqItHrWChYHNtnUwx3Tlfs8agn9OQBaJnLMnz4qctmmoAnorb8JeyxT /big== X-Gm-Message-State: AOAM530Xhktw/RN7XQP3qSCvewhz721MJgLVLovLIMCSjTMRCuLmxMth 4uxXOQWRJq0GyZ3o+8Qs7v/t7PmQQEk= X-Received: by 2002:ac8:5809:: with SMTP id g9mr2075923qtg.20.1642038990117; Wed, 12 Jan 2022 17:56:30 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id t11sm906506qkm.77.2022.01.12.17.56.29 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:56:29 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:55:46 -0300 Message-Id: <20220113015612.448-5-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 093/281] mm: 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: ez4yAwGmMq6U From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/mm.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libavformat/mm.c b/libavformat/mm.c index d1acfef445..1d44f41a94 100644 --- a/libavformat/mm.c +++ b/libavformat/mm.c @@ -124,8 +124,7 @@ static int read_header(AVFormatContext *s) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_tag = 0; /* no fourcc */ st->codecpar->codec_id = AV_CODEC_ID_PCM_U8; - st->codecpar->channels = 1; - st->codecpar->channel_layout = AV_CH_LAYOUT_MONO; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; st->codecpar->sample_rate = 8000; avpriv_set_pts_info(st, 64, 1, 8000); /* 8000 hz */ } From patchwork Thu Jan 13 01:55:47 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33371 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp24965iog; Wed, 12 Jan 2022 18:12:02 -0800 (PST) X-Google-Smtp-Source: ABdhPJzonG+W4It7hAUtDWDhQ82tUL+J9zznzLTBfY8JOlAXV8HnykbhDSSTCchA5FG9Dw9LkXSk X-Received: by 2002:a05:6402:3585:: with SMTP id y5mr2284342edc.338.1642039922777; Wed, 12 Jan 2022 18:12:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039922; cv=none; d=google.com; s=arc-20160816; b=FxPpJEIq7kTtwNyg+0r0H5+BtI/9a9C3paVzPO0/Jf2VkCvvnbJPl/czmBov643tv1 OxgEDJUfDgz0qhr6OxYL6V5z7q/sjtDNEUggTZAHscDdalydvaQAvQsO1sj7CFPcwUoW xPkHdT8/K8D6SNpFBfEV2X9DsPo5Jwz+PHe9Rt1DnuKO/gDz3skorzAjV0vrU1P/AsPO Gwiu7zfJb2sOSRxhBGgEiimqoEArOxHTMztFxncZidS6mn59oGD9PYGTL90v6ilY/Ea+ egtBFPGwJE0GQwmjKeP90M3NZ6VGh6guJGfLqojLJtq/2hf5/9NeSX5kcVsaOcmt3hRL izjQ== 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=QFiNr2BMSWNQgukctVmCJ1bZULjPScEY43F+TXqcIiU=; b=XKxxD1KkY/+DDZsS1kOOw0BO+UeAyOyqI9h2ZlsYfZgZ33orR/vEtSB2VTDttGSPu4 JpcCTbJqrH02LI2b/m7Ble19ADS5lGr82zJXQHzSzecLEwmQ0011TWUN3jrhQTWU3EaD DOAgm5mDyW3t42eXAb3/YJyKSuBTiGiK5fXfCU9wzAcnA/hOar5jaYP+0F7Y+AIEDAjW 3EWU55W4V7ff82mS9nALVsTolg+ePwYdd8z+OjzV4mBynVVWUDRsHK9Kc0TIs9Qv2uZa mx6K6QVziFR6QsjWDtZ0qlJjKedyweOWK1SMDDbJwL5J97kalKF/D83zoIE+ZYpUrUi5 mwug== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=JkyJ3gs9; 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 er18si991edb.569.2022.01.12.18.12.02; Wed, 12 Jan 2022 18:12:02 -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=JkyJ3gs9; 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 ECF5168B233; Thu, 13 Jan 2022 03:56:33 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f182.google.com (mail-qt1-f182.google.com [209.85.160.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B5E0868B1E5 for ; Thu, 13 Jan 2022 03:56:32 +0200 (EET) Received: by mail-qt1-f182.google.com with SMTP id h15so962614qtx.0 for ; Wed, 12 Jan 2022 17:56:32 -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=L5uwSuv9y7PB6Ome4d+jYDpzRxzMEiWdT924nBYUzsc=; b=JkyJ3gs99Fz0odXKThZGwVqlf103a1+VMmwADvPW8SauVXw4s9/RCcG0zYuKyJiJJh yVbNzXyn+vhx1Adns0Qe9QvU5qr3PEiLyZfGQ04NwMTyYdRP+jF2S3cmAKdKCu2i+AxS 8R5l8XbyGyC9plabs/4VAXArPT32It/lr5z3mUmcRWTUje8GHymw6uOhDh0tXtC2dw2S Y2CMpBMnjYC3vrWxq9anDQsdBsTvuJX8LqkSlixFDfAS0Q2SS8Gvch/9qft6p8+VDtnT x/qUPvb/PI0WCIPuXxtiMh2jIXzor1diRstcL/LZigdxHDLfhIxfUBVgnuygS47v0RAo GUOg== 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=L5uwSuv9y7PB6Ome4d+jYDpzRxzMEiWdT924nBYUzsc=; b=ZMnN47/ObAy73LI/H0DcCCqlZ5OioyJt2mElhkCoFHtdb1eoC1gtj7YJR+RLw7hGVk 6IYoUFP1GfdOty8orYteoi6d9CnNiWEK2IBsPiaOw2TypGJPYqlEwqMcVMvpzLWCfG5B c8VLNPN61ulrPZbtqln70s6V2LV5o7nVQCdfwmMvGskw1Ig4nYnaJZo4mAd5ZEZlXF3z 1YDiQoZo/mOhyTp3Fctxe6CMzHZPwhRkAZXYrR+Xxh430F5Vm0O/sM1FvUqSklsxbEOl NskqaqjtyG4ZGrEJcFZqLU9S/9XEJ6LRXRmooHNWCy66DgmVmzwa49E9P4j8zcJeC0I/ ScGQ== X-Gm-Message-State: AOAM5336zvbJXejuBeljGVyeELw/vf9YglxchxkeInUB46qYXtovTnnM 59oh11+u4x6M40zCxQHIfsgS5oZ9JlQ= X-Received: by 2002:ac8:5446:: with SMTP id d6mr2009548qtq.163.1642038991326; Wed, 12 Jan 2022 17:56:31 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id t11sm906506qkm.77.2022.01.12.17.56.30 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:56:31 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:55:47 -0300 Message-Id: <20220113015612.448-6-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 094/281] mmf: 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: vmIVHlt9+Xwu From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavformat/mmf.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/libavformat/mmf.c b/libavformat/mmf.c index 0c067a1025..4c3ef3456b 100644 --- a/libavformat/mmf.c +++ b/libavformat/mmf.c @@ -80,7 +80,7 @@ static int mmf_write_header(AVFormatContext *s) return AVERROR(EINVAL); } - mmf->stereo = s->streams[0]->codecpar->channels > 1; + mmf->stereo = s->streams[0]->codecpar->ch_layout.nb_channels > 1; if (mmf->stereo && s->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL) { av_log(s, AV_LOG_ERROR, "Yamaha SMAF stereo is experimental, " @@ -261,8 +261,7 @@ static int mmf_read_header(AVFormatContext *s) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_CODEC_ID_ADPCM_YAMAHA; st->codecpar->sample_rate = rate; - st->codecpar->channels = (params >> 7) + 1; - st->codecpar->channel_layout = params >> 7 ? AV_CH_LAYOUT_STEREO : AV_CH_LAYOUT_MONO; + av_channel_layout_default(&st->codecpar->ch_layout, (params >> 7) + 1); st->codecpar->bits_per_coded_sample = 4; st->codecpar->bit_rate = st->codecpar->sample_rate * st->codecpar->bits_per_coded_sample; From patchwork Thu Jan 13 01:55: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: 33372 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp25142iog; Wed, 12 Jan 2022 18:12:17 -0800 (PST) X-Google-Smtp-Source: ABdhPJxJOmyGu9Ou6pvG0oj8jBlzGOv8MbR8Wd9eOWhsJdDsYN3LAwzwaQlBXCoja/KNjET201ci X-Received: by 2002:a17:906:40d0:: with SMTP id a16mr710771ejk.185.1642039936894; Wed, 12 Jan 2022 18:12:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039936; cv=none; d=google.com; s=arc-20160816; b=AXYNIW7WUTHtRJ23TGOXvIhx7Vr42W8XYAk9lwtnao1pCvFU6Q4gpTGnhmYlmnSxyb w8eicDw/uWxlfkqGkr1/ILwareYKLJsYa+rEH2dGC1fC0rba1z0ZVKmXYB+rZAutS1tP CBZbtKf1SNH+HpWET/96KI7GjpXvnBaObUtBqYdp4FGGkBI165Wr0ml1hMq4aGK8tomO 7pvPdJtfCfkwjQRRk6I1xjVhUnkwOluJZKaj69zQopXnEOWjnX/GICFaLiSfP6zhRDiT 2+fsU+G+eAg/w6N6VLo9JqaOxwt6RzpJDsH3hlSXOSzGGKKgkJoWWJfUXTf8j4DqWNI4 i0pA== 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=pYTZDoZ7VT8EXXYnX3qPcVWcXRQQ/E+GcyqVy845CsQ=; b=T5YGOAKLd1sPD23/458V5qAYutnt6CmaPxzpPHov34rwhQ7UajTGSTsYEZXY/Ey4tg sO0o6Ea7Sey08S1YEKxrpiXDzg5KTlyBT5QQ+vpHrzu7KIHkFb+mxTdtp1qVzTm1b4OR FqzaSJqa6G7GbsMWGmOB6tAYoOuT+s3BP6BxV8Pu1gXwRZFi7d6BoRnZGw3hiCK8+1fc iLwwV+VfLVIcGWMfQXfe/YBfWtjS3g7ll6kavC28pEUuixTFW3MlSub2AAL6GXGkHs05 kFd6MAyI44JRqakuypmSf8IjBUj5L8ptbzo/sLdFIgyyyZcvq5YbBFURmmZgeH2iSQBq BBoA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=ctqXYShH; 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 dn17si1044190ejc.351.2022.01.12.18.12.16; Wed, 12 Jan 2022 18:12:16 -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=ctqXYShH; 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 E89E768B218; Thu, 13 Jan 2022 03:56:35 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f171.google.com (mail-qt1-f171.google.com [209.85.160.171]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EA1EB68B232 for ; Thu, 13 Jan 2022 03:56:33 +0200 (EET) Received: by mail-qt1-f171.google.com with SMTP id y10so5369116qtw.1 for ; Wed, 12 Jan 2022 17:56:33 -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=qbfdNHvP+BcgGgBlgzoFjdVSrgVS7g23Apnp/5RNH+Q=; b=ctqXYShHjVjH6moOTSW4C4HPJqgG2t4AtVGJ9SqE1LSf7q+rTuCoUmolkGM/pSenzk i9l/fbMfPvrrnvtY4s9rupTfaNbgXeGymYoI8i4S24ZuYEzeweCZPpt/jwKrBlawkX0t nXwH0t/zQCS5HZVKVmuUiDgvGxksYpLpiiOhrbxNguGoUW1BoAD5E7lQ5+yafERBtH5+ 8Ya16FZ00pA/GREXyfX3iCYDxETu4uLyHYLuU0eHyg6HL4CtT0yuoE0xIChCHaChx6US bRcVmut0TTGw/iMMPaHnAcAUgDh9abKkiomhB1rVKyyk/0xWeBFiNB3apZqVwTabUJmG jFog== 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=qbfdNHvP+BcgGgBlgzoFjdVSrgVS7g23Apnp/5RNH+Q=; b=mJew4yHwmS2tzjOyBB0rYrOFU6uFp3UQBS10mdl51WfYrYZm87Ezff4f6NS93bYXsQ VP8IgO9OQ4ukF+1EcgHeZuDSLW+e0E7NA60CfckO7ExmWa2sD4oInP5XfM0hSiWwV3Sz JOPQCRSZSYz3YZVPG9GJ3YxEnkQ2HvPHYz+U0aAUGEBT+Z0LlogYN4TTOBhi9ZkTDImt LLXWo8aFr4FUIQZIPGHZQ5xV8fjmRSRVjY7nLrN9t4gqQ3gjZyth3dWVDcmUJ9mWEWzX QMeUh4YmFlsgfZ7xHMojIlr95zQerSZT95HhNi+iLBKlQqYsnNwontXfc7cBx2q3Krhz W8eg== X-Gm-Message-State: AOAM530SexnB54QUex//KnqM9EbHJOAlLkQMfZEYYMF7gDJZP/+sCiky qBuwWBo1BgPR4z3oLkOhvDx/K/uH7BY= X-Received: by 2002:ac8:5986:: with SMTP id e6mr1971531qte.519.1642038992539; Wed, 12 Jan 2022 17:56:32 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id t11sm906506qkm.77.2022.01.12.17.56.31 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:56:32 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:55:48 -0300 Message-Id: <20220113015612.448-7-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 095/281] moflex: 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: BaMaQ1w78HFy Signed-off-by: James Almer --- libavformat/moflex.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavformat/moflex.c b/libavformat/moflex.c index 1d342417f7..0b628add6c 100644 --- a/libavformat/moflex.c +++ b/libavformat/moflex.c @@ -233,7 +233,8 @@ static int moflex_read_sync(AVFormatContext *s) st->codecpar->width = width; st->codecpar->height = height; st->codecpar->sample_rate= sample_rate; - st->codecpar->channels = channels; + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = channels; st->priv_data = av_packet_alloc(); if (!st->priv_data) return AVERROR(ENOMEM); From patchwork Thu Jan 13 01:55:49 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33374 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp25479iog; Wed, 12 Jan 2022 18:12:45 -0800 (PST) X-Google-Smtp-Source: ABdhPJylo4Hz8d9bvKNSUss4eiJDposIaKbyxfksggL2/gCCuhZrsFXuf9a6ANikEbhyaKPpIAzf X-Received: by 2002:a17:907:7b8a:: with SMTP id ne10mr1871475ejc.587.1642039965781; Wed, 12 Jan 2022 18:12:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039965; cv=none; d=google.com; s=arc-20160816; b=dWXK46xU6Pm+XBBbCOHS/2OLnmu+DXBYq1iwwfqRLGrZy0wIxcQtgAaTvnvemeghCB sh41XECAK4Redaacz6+v7o4drAtHFNq0SX0j4m+n3P/D0Kz9bLeAUm9AYahJn4FDTkwk JNjfmJSDLWYY1xPpLoypzVZtR8mHWhRL1i6eLtwmLJu3C8aFn31fnVFaXyfFYyRdvaHw 2xghEGtcj9nCHY5JPWKi7Z6q3/YkRKKtv+jlnfrSXHIii8ccWXKneXqj5PI28gSTLUCX bwnlPvJ/phHG6+Wcw715e1crATxwcZ8g0t0Y6EdEDrscHIj3o0vFne2Yd+O8aVOR45wP RK8Q== 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=QUkrXRMSQwKy06VXsnt8kCOLPX10jOghs13JjxkbYtk=; b=r2M5dLuz/ScBKhKEQrg5HYtYGzfaJQzm+JkDDTABxlCVAtc91Wh1slrBYVjWIdd7Fq 3ybpbeuGEv9XLQV9Kzyebwmd1gejy2jOMvpgjxT71R8NDDJiGMcX5BP+rc+QRTXH3vHg lPynhHszGXD674dTVZG8RFK4JIzGkxCFV7kOHP4KiVBpkALR9y1hBB3fQobfSZ5edzW1 eE+/G7Bgu/jMv3cVaAtTU4vEAC/aV79toJLZh6NKbaZPozdWWk0RB2r7xyz14jPbzxT7 LFBE43NLvTRPmT6nHjDG5x9LeS23p3uvxQEWbTE7smtZsI6fMzxffTyM3vPAzV+F51qh WRJQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=bLhMG02q; 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 o6si1014466edi.174.2022.01.12.18.12.45; Wed, 12 Jan 2022 18:12:45 -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=bLhMG02q; 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 AB28368B247; Thu, 13 Jan 2022 03:56:38 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f169.google.com (mail-qk1-f169.google.com [209.85.222.169]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6EE0F68B22B for ; Thu, 13 Jan 2022 03:56:35 +0200 (EET) Received: by mail-qk1-f169.google.com with SMTP id t66so5567879qkb.4 for ; Wed, 12 Jan 2022 17:56:35 -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=V8vC6CDpaWYvqN72a42X6fUKIXM3qxi7FzZ8D36qXq8=; b=bLhMG02qFPgkoMraid4E89kiOVCaq0+dfxn9jNdgSPElkFdsoaYCsaZSLdGvZNiB9w d42nFKOK2Pcm7eHrxOVb4Of4bJQ9BCot7saSe6onFoMGpVzV+5fcO+6w0k+rzyDyaJS3 6VLiyyMypuKYBg5xvcOVqDGT79gS8Tdq+xSxAVaXPJYM/mykOTtUaL5B+VlcF5S1jS/Q HhJZiXoSgTnQbj+EGGDhAvBREFnLn3T4UaW5qV5pZZNre1OXxEprVnfoDwynNStUwrel E7ciavYoUtZQI8N4rc1SY+SSf24TWlAaJfvRASzPNOgmAzHPzK0aPlE5XkAcNh2tgbur +ANg== 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=V8vC6CDpaWYvqN72a42X6fUKIXM3qxi7FzZ8D36qXq8=; b=AKSueW2jRzc8HqdV1RvJzeWWnjzAgRCU4xdFPWLRhy+jFtj91/us4FN0lnwYA0Fs5V YlltSILwRxJZBZUXF+DAl6iLYYeusdS+9aKbi93sVBX6D1qmLqLWNfvIFm8ohKNTVjao 56NqlOYDM3W7dewGzIhmBYpPYJPX8dL+fCnMlzKkCrRVuJV0pPq68DZh4oT2yliC/meq rdb1gCr2S3CEbpZuEHm/7/g75zjlQDP/SwCTFBEno6bcLhLxgfUcZnqxefOPyva1XhNY tNIWdWX/6KUQio5ox8hUA3j7Iz+G3Y0ua5IhY82Cb61ZggDiaYYDZAKgwxzj9RBoGLsm eQag== X-Gm-Message-State: AOAM530wHRB+zu+JEkOzygI47WXMkBM8P/1P4w4EDdR6/uqLo2SyS2/b SUhRrYK25vtDk0HsINjtacbZpghs6xc= X-Received: by 2002:a05:620a:12e4:: with SMTP id f4mr1850755qkl.249.1642038993814; Wed, 12 Jan 2022 17:56:33 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id t11sm906506qkm.77.2022.01.12.17.56.32 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:56:33 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:55:49 -0300 Message-Id: <20220113015612.448-8-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 096/281] mov: 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: wA18zaxI5ni8 From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavformat/isom.c | 5 +-- libavformat/mov.c | 80 +++++++++++++++++++++++++++--------------- libavformat/mov_chan.c | 21 +++++++---- libavformat/mov_chan.h | 3 +- libavformat/movenc.c | 25 +++++++------ 5 files changed, 85 insertions(+), 49 deletions(-) diff --git a/libavformat/isom.c b/libavformat/isom.c index 015c82e1bb..e6569dfb68 100644 --- a/libavformat/isom.c +++ b/libavformat/isom.c @@ -360,7 +360,8 @@ int ff_mp4_read_dec_config_descr(AVFormatContext *fc, AVStream *st, AVIOContext st->codecpar->extradata_size, 1, fc); if (ret < 0) return ret; - st->codecpar->channels = cfg.channels; + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = cfg.channels; if (cfg.object_type == 29 && cfg.sampling_index < 3) // old mp3on4 st->codecpar->sample_rate = ff_mpa_freq_tab[cfg.sampling_index]; else if (cfg.ext_sample_rate) @@ -368,7 +369,7 @@ int ff_mp4_read_dec_config_descr(AVFormatContext *fc, AVStream *st, AVIOContext else st->codecpar->sample_rate = cfg.sample_rate; av_log(fc, AV_LOG_TRACE, "mp4a config channels %d obj %d ext obj %d " - "sample rate %d ext sample rate %d\n", st->codecpar->channels, + "sample rate %d ext sample rate %d\n", cfg.channels, cfg.object_type, cfg.ext_object_type, cfg.sample_rate, cfg.ext_sample_rate); if (!(st->codecpar->codec_id = ff_codec_get_id(mp4_audio_types, diff --git a/libavformat/mov.c b/libavformat/mov.c index e401cd39b5..e307df8e3c 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -798,6 +798,7 @@ static int mov_read_dac3(MOVContext *c, AVIOContext *pb, MOVAtom atom) AVStream *st; enum AVAudioServiceType *ast; int ac3info, acmod, lfeon, bsmod; + uint64_t mask; if (c->fc->nb_streams < 1) return 0; @@ -812,12 +813,15 @@ static int mov_read_dac3(MOVContext *c, AVIOContext *pb, MOVAtom atom) bsmod = (ac3info >> 14) & 0x7; acmod = (ac3info >> 11) & 0x7; lfeon = (ac3info >> 10) & 0x1; - st->codecpar->channels = ((int[]){2,1,2,3,3,4,4,5})[acmod] + lfeon; - st->codecpar->channel_layout = ff_ac3_channel_layout_tab[acmod]; + + mask = ff_ac3_channel_layout_tab[acmod]; if (lfeon) - st->codecpar->channel_layout |= AV_CH_LOW_FREQUENCY; + mask |= AV_CH_LOW_FREQUENCY; + av_channel_layout_uninit(&st->codecpar->ch_layout); + av_channel_layout_from_mask(&st->codecpar->ch_layout, mask); + *ast = bsmod; - if (st->codecpar->channels > 1 && bsmod == 0x7) + if (st->codecpar->ch_layout.nb_channels > 1 && bsmod == 0x7) *ast = AV_AUDIO_SERVICE_TYPE_KARAOKE; return 0; @@ -828,6 +832,7 @@ static int mov_read_dec3(MOVContext *c, AVIOContext *pb, MOVAtom atom) AVStream *st; enum AVAudioServiceType *ast; int eac3info, acmod, lfeon, bsmod; + uint64_t mask; if (c->fc->nb_streams < 1) return 0; @@ -846,12 +851,15 @@ static int mov_read_dec3(MOVContext *c, AVIOContext *pb, MOVAtom atom) bsmod = (eac3info >> 12) & 0x1f; acmod = (eac3info >> 9) & 0x7; lfeon = (eac3info >> 8) & 0x1; - st->codecpar->channel_layout = ff_ac3_channel_layout_tab[acmod]; + + mask = ff_ac3_channel_layout_tab[acmod]; if (lfeon) - st->codecpar->channel_layout |= AV_CH_LOW_FREQUENCY; - st->codecpar->channels = av_get_channel_layout_nb_channels(st->codecpar->channel_layout); + mask |= AV_CH_LOW_FREQUENCY; + av_channel_layout_uninit(&st->codecpar->ch_layout); + av_channel_layout_from_mask(&st->codecpar->ch_layout, mask); + *ast = bsmod; - if (st->codecpar->channels > 1 && bsmod == 0x7) + if (st->codecpar->ch_layout.nb_channels > 1 && bsmod == 0x7) *ast = AV_AUDIO_SERVICE_TYPE_KARAOKE; return 0; @@ -898,15 +906,14 @@ static int mov_read_ddts(MOVContext *c, AVIOContext *pb, MOVAtom atom) if (channel_layout_code > 0xff) { av_log(c->fc, AV_LOG_WARNING, "Unsupported DTS audio channel layout\n"); } - st->codecpar->channel_layout = + av_channel_layout_uninit(&st->codecpar->ch_layout); + av_channel_layout_from_mask(&st->codecpar->ch_layout, ((channel_layout_code & 0x1) ? AV_CH_FRONT_CENTER : 0) | ((channel_layout_code & 0x2) ? AV_CH_FRONT_LEFT : 0) | ((channel_layout_code & 0x2) ? AV_CH_FRONT_RIGHT : 0) | ((channel_layout_code & 0x4) ? AV_CH_SIDE_LEFT : 0) | ((channel_layout_code & 0x4) ? AV_CH_SIDE_RIGHT : 0) | - ((channel_layout_code & 0x8) ? AV_CH_LOW_FREQUENCY : 0); - - st->codecpar->channels = av_get_channel_layout_nb_channels(st->codecpar->channel_layout); + ((channel_layout_code & 0x8) ? AV_CH_LOW_FREQUENCY : 0)); return 0; } @@ -2162,14 +2169,18 @@ static void mov_parse_stsd_audio(MOVContext *c, AVIOContext *pb, uint16_t version = avio_rb16(pb); uint32_t id = 0; AVDictionaryEntry *compatible_brands = av_dict_get(c->fc->metadata, "compatible_brands", NULL, AV_DICT_MATCH_CASE); + int channel_count; avio_rb16(pb); /* revision level */ id = avio_rl32(pb); /* vendor */ av_dict_set(&st->metadata, "vendor_id", av_fourcc2str(id), 0); - st->codecpar->channels = avio_rb16(pb); /* channel count */ + channel_count = avio_rb16(pb); + + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = channel_count; st->codecpar->bits_per_coded_sample = avio_rb16(pb); /* sample size */ - av_log(c->fc, AV_LOG_TRACE, "audio channels %d\n", st->codecpar->channels); + av_log(c->fc, AV_LOG_TRACE, "audio channels %d\n", channel_count); sc->audio_cid = avio_rb16(pb); avio_rb16(pb); /* packet size = 0 */ @@ -2189,7 +2200,9 @@ static void mov_parse_stsd_audio(MOVContext *c, AVIOContext *pb, } else if (version == 2) { avio_rb32(pb); /* sizeof struct only */ st->codecpar->sample_rate = av_int2double(avio_rb64(pb)); - st->codecpar->channels = avio_rb32(pb); + channel_count = avio_rb32(pb); + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = channel_count; avio_rb32(pb); /* always 0x7F000000 */ st->codecpar->bits_per_coded_sample = avio_rb32(pb); @@ -2241,15 +2254,15 @@ static void mov_parse_stsd_audio(MOVContext *c, AVIOContext *pb, /* set values for old format before stsd version 1 appeared */ case AV_CODEC_ID_MACE3: sc->samples_per_frame = 6; - sc->bytes_per_frame = 2 * st->codecpar->channels; + sc->bytes_per_frame = 2 * st->codecpar->ch_layout.nb_channels; break; case AV_CODEC_ID_MACE6: sc->samples_per_frame = 6; - sc->bytes_per_frame = 1 * st->codecpar->channels; + sc->bytes_per_frame = 1 * st->codecpar->ch_layout.nb_channels; break; case AV_CODEC_ID_ADPCM_IMA_QT: sc->samples_per_frame = 64; - sc->bytes_per_frame = 34 * st->codecpar->channels; + sc->bytes_per_frame = 34 * st->codecpar->ch_layout.nb_channels; break; case AV_CODEC_ID_GSM: sc->samples_per_frame = 160; @@ -2260,9 +2273,9 @@ static void mov_parse_stsd_audio(MOVContext *c, AVIOContext *pb, } bits_per_sample = av_get_bits_per_sample(st->codecpar->codec_id); - if (bits_per_sample && (bits_per_sample >> 3) * (uint64_t)st->codecpar->channels <= INT_MAX) { + if (bits_per_sample && (bits_per_sample >> 3) * (uint64_t)st->codecpar->ch_layout.nb_channels <= INT_MAX) { st->codecpar->bits_per_coded_sample = bits_per_sample; - sc->sample_size = (bits_per_sample >> 3) * st->codecpar->channels; + sc->sample_size = (bits_per_sample >> 3) * st->codecpar->ch_layout.nb_channels; } } @@ -2402,7 +2415,8 @@ static int mov_finalize_stsd_codec(MOVContext *c, AVIOContext *pb, #endif /* no ifdef since parameters are always those */ case AV_CODEC_ID_QCELP: - st->codecpar->channels = 1; + av_channel_layout_uninit(&st->codecpar->ch_layout); + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; // force sample rate for qcelp when not stored in mov if (st->codecpar->codec_tag != MKTAG('Q','c','l','p')) st->codecpar->sample_rate = 8000; @@ -2412,12 +2426,14 @@ static int mov_finalize_stsd_codec(MOVContext *c, AVIOContext *pb, sc->bytes_per_frame = 35; break; case AV_CODEC_ID_AMR_NB: - st->codecpar->channels = 1; + av_channel_layout_uninit(&st->codecpar->ch_layout); + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; /* force sample rate for amr, stsd in 3gp does not store sample rate */ st->codecpar->sample_rate = 8000; break; case AV_CODEC_ID_AMR_WB: - st->codecpar->channels = 1; + av_channel_layout_uninit(&st->codecpar->ch_layout); + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; st->codecpar->sample_rate = 16000; break; case AV_CODEC_ID_MP2: @@ -2436,7 +2452,12 @@ static int mov_finalize_stsd_codec(MOVContext *c, AVIOContext *pb, break; case AV_CODEC_ID_ALAC: if (st->codecpar->extradata_size == 36) { - st->codecpar->channels = AV_RB8 (st->codecpar->extradata + 21); + int channel_count = AV_RB8(st->codecpar->extradata + 21); + if (st->codecpar->ch_layout.nb_channels != channel_count) { + av_channel_layout_uninit(&st->codecpar->ch_layout); + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = channel_count; + } st->codecpar->sample_rate = AV_RB32(st->codecpar->extradata + 32); } break; @@ -2543,8 +2564,8 @@ int ff_mov_read_stsd_entries(MOVContext *c, AVIOContext *pb, int entries) av_log(c->fc, AV_LOG_ERROR, "Invalid sample rate %d\n", st->codecpar->sample_rate); return AVERROR_INVALIDDATA; } - if (st->codecpar->channels < 0) { - av_log(c->fc, AV_LOG_ERROR, "Invalid channels %d\n", st->codecpar->channels); + if (st->codecpar->ch_layout.nb_channels < 0) { + av_log(c->fc, AV_LOG_ERROR, "Invalid channels %d\n", st->codecpar->ch_layout.nb_channels); return AVERROR_INVALIDDATA; } } else if (st->codecpar->codec_type==AVMEDIA_TYPE_SUBTITLE){ @@ -7034,6 +7055,7 @@ static int mov_read_dmlp(MOVContext *c, AVIOContext *pb, MOVAtom atom) unsigned format_info; int channel_assignment, channel_assignment1, channel_assignment2; int ratebits; + uint64_t chmask; if (c->fc->nb_streams < 1) return 0; @@ -7054,8 +7076,10 @@ static int mov_read_dmlp(MOVContext *c, AVIOContext *pb, MOVAtom atom) st->codecpar->frame_size = 40 << (ratebits & 0x7); st->codecpar->sample_rate = mlp_samplerate(ratebits); - st->codecpar->channels = truehd_channels(channel_assignment); - st->codecpar->channel_layout = truehd_layout(channel_assignment); + + av_channel_layout_uninit(&st->codecpar->ch_layout); + chmask = truehd_layout(channel_assignment); + av_channel_layout_from_mask(&st->codecpar->ch_layout, chmask); return 0; } diff --git a/libavformat/mov_chan.c b/libavformat/mov_chan.c index 349634094c..5894bb8ce2 100644 --- a/libavformat/mov_chan.c +++ b/libavformat/mov_chan.c @@ -499,7 +499,7 @@ static uint32_t mov_get_channel_label(uint32_t label) } uint32_t ff_mov_get_channel_layout_tag(enum AVCodecID codec_id, - uint64_t channel_layout, + AVChannelLayout *ch_layout, uint32_t *bitmap) { int i, j; @@ -519,7 +519,7 @@ uint32_t ff_mov_get_channel_layout_tag(enum AVCodecID codec_id, const struct MovChannelLayoutMap *layout_map; /* get the layout map based on the channel count */ - channels = av_get_channel_layout_nb_channels(channel_layout); + channels = ch_layout->nb_channels; if (channels > 9) channels = 0; layout_map = mov_ch_layout_map[channels]; @@ -530,7 +530,8 @@ uint32_t ff_mov_get_channel_layout_tag(enum AVCodecID codec_id, continue; for (j = 0; layout_map[j].tag != 0; j++) { if (layout_map[j].tag == layouts[i] && - layout_map[j].layout == channel_layout) + (ch_layout->order == AV_CHANNEL_ORDER_NATIVE && + layout_map[j].layout == ch_layout->u.mask)) break; } if (layout_map[j].tag) @@ -540,9 +541,9 @@ uint32_t ff_mov_get_channel_layout_tag(enum AVCodecID codec_id, } /* if no tag was found, use channel bitmap as a backup if possible */ - if (tag == 0 && channel_layout > 0 && channel_layout < 0x40000) { + if (tag == 0 && av_channel_layout_check(ch_layout) && ch_layout->u.mask < 0x40000) { tag = MOV_CH_LAYOUT_USE_BITMAP; - *bitmap = (uint32_t)channel_layout; + *bitmap = (uint32_t)ch_layout->u.mask; } else *bitmap = 0; @@ -555,6 +556,7 @@ int ff_mov_read_chan(AVFormatContext *s, AVIOContext *pb, AVStream *st, int64_t size) { uint32_t layout_tag, bitmap, num_descr, label_mask; + uint64_t mask = 0; int i; if (size < 12) @@ -596,9 +598,14 @@ int ff_mov_read_chan(AVFormatContext *s, AVIOContext *pb, AVStream *st, } if (layout_tag == 0) { if (label_mask) - st->codecpar->channel_layout = label_mask; + mask = label_mask; } else - st->codecpar->channel_layout = mov_get_channel_layout(layout_tag, bitmap); + mask = mov_get_channel_layout(layout_tag, bitmap); + + if (mask) { + av_channel_layout_uninit(&st->codecpar->ch_layout); + av_channel_layout_from_mask(&st->codecpar->ch_layout, mask); + } avio_skip(pb, size - 12); return 0; diff --git a/libavformat/mov_chan.h b/libavformat/mov_chan.h index f7916e9899..a9bc9f80d4 100644 --- a/libavformat/mov_chan.h +++ b/libavformat/mov_chan.h @@ -28,6 +28,7 @@ #include +#include "libavutil/channel_layout.h" #include "libavcodec/codec_id.h" #include "avformat.h" @@ -41,7 +42,7 @@ * @return channel layout tag */ uint32_t ff_mov_get_channel_layout_tag(enum AVCodecID codec_id, - uint64_t channel_layout, + AVChannelLayout *ch_layout, uint32_t *bitmap); /** diff --git a/libavformat/movenc.c b/libavformat/movenc.c index 4c868919ae..6d02a9ea39 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -868,7 +868,7 @@ static int mov_write_chan_tag(AVFormatContext *s, AVIOContext *pb, MOVTrack *tra int64_t pos = avio_tell(pb); layout_tag = ff_mov_get_channel_layout_tag(track->par->codec_id, - track->par->channel_layout, + &track->par->ch_layout, &bitmap); if (!layout_tag) { av_log(s, AV_LOG_WARNING, "not writing 'chan' tag due to " @@ -1137,7 +1137,7 @@ static int mov_write_audio_tag(AVFormatContext *s, AVIOContext *pb, MOVMuxContex int ret = 0; if (track->mode == MODE_MOV) { - if (track->timescale > UINT16_MAX || !track->par->channels) { + if (track->timescale > UINT16_MAX || !track->par->ch_layout.nb_channels) { if (mov_get_lpcm_flags(track->par->codec_id)) tag = AV_RL32("lpcm"); version = 2; @@ -1173,7 +1173,7 @@ static int mov_write_audio_tag(AVFormatContext *s, AVIOContext *pb, MOVMuxContex avio_wb32(pb, 0x00010000); avio_wb32(pb, 72); avio_wb64(pb, av_double2int(track->par->sample_rate)); - avio_wb32(pb, track->par->channels); + avio_wb32(pb, track->par->ch_layout.nb_channels); avio_wb32(pb, 0x7F000000); avio_wb32(pb, av_get_bits_per_sample(track->par->codec_id)); avio_wb32(pb, mov_get_lpcm_flags(track->par->codec_id)); @@ -1181,7 +1181,7 @@ static int mov_write_audio_tag(AVFormatContext *s, AVIOContext *pb, MOVMuxContex avio_wb32(pb, get_samples_per_packet(track)); } else { if (track->mode == MODE_MOV) { - avio_wb16(pb, track->par->channels); + avio_wb16(pb, track->par->ch_layout.nb_channels); if (track->par->codec_id == AV_CODEC_ID_PCM_U8 || track->par->codec_id == AV_CODEC_ID_PCM_S8) avio_wb16(pb, 8); /* bits per sample */ @@ -1194,7 +1194,7 @@ static int mov_write_audio_tag(AVFormatContext *s, AVIOContext *pb, MOVMuxContex if (track->par->codec_id == AV_CODEC_ID_FLAC || track->par->codec_id == AV_CODEC_ID_ALAC || track->par->codec_id == AV_CODEC_ID_OPUS) { - avio_wb16(pb, track->par->channels); + avio_wb16(pb, track->par->ch_layout.nb_channels); } else { avio_wb16(pb, 2); } @@ -1226,7 +1226,7 @@ static int mov_write_audio_tag(AVFormatContext *s, AVIOContext *pb, MOVMuxContex avio_wb32(pb, 1); /* must be 1 for uncompressed formats */ else avio_wb32(pb, track->par->frame_size); /* Samples per packet */ - avio_wb32(pb, track->sample_size / track->par->channels); /* Bytes per packet */ + avio_wb32(pb, track->sample_size / track->par->ch_layout.nb_channels); /* Bytes per packet */ avio_wb32(pb, track->sample_size); /* Bytes per frame */ avio_wb32(pb, 2); /* Bytes per sample */ } @@ -4392,7 +4392,7 @@ static int mov_write_isml_manifest(AVIOContext *pb, MOVMuxContext *mov, AVFormat track->par->extradata_size); param_write_int(pb, "AudioTag", ff_codec_get_tag(ff_codec_wav_tags, track->par->codec_id)); - param_write_int(pb, "Channels", track->par->channels); + param_write_int(pb, "Channels", track->par->ch_layout.nb_channels); param_write_int(pb, "SamplingRate", track->par->sample_rate); param_write_int(pb, "BitsPerSample", 16); param_write_int(pb, "PacketSize", track->par->block_align ? @@ -5150,7 +5150,7 @@ static int mov_write_uuidprof_tag(AVIOContext *pb, AVFormatContext *s) avio_wb32(pb, audio_kbitrate); avio_wb32(pb, audio_kbitrate); avio_wb32(pb, audio_rate); - avio_wb32(pb, audio_par->channels); + avio_wb32(pb, audio_par->ch_layout.nb_channels); avio_wb32(pb, 0x34); /* size */ ffio_wfourcc(pb, "VPRF"); /* video */ @@ -6830,7 +6830,8 @@ static int mov_init(AVFormatContext *s) }else if (st->codecpar->frame_size > 1){ /* assume compressed audio */ track->audio_vbr = 1; }else{ - track->sample_size = (av_get_bits_per_sample(st->codecpar->codec_id) >> 3) * st->codecpar->channels; + track->sample_size = (av_get_bits_per_sample(st->codecpar->codec_id) >> 3) * + st->codecpar->ch_layout.nb_channels; } if (st->codecpar->codec_id == AV_CODEC_ID_ILBC || st->codecpar->codec_id == AV_CODEC_ID_ADPCM_IMA_QT) { @@ -6966,7 +6967,8 @@ static int mov_write_header(AVFormatContext *s) } if (st->codecpar->codec_type != AVMEDIA_TYPE_AUDIO || - track->par->channel_layout != AV_CH_LAYOUT_MONO) + av_channel_layout_compare(&track->par->ch_layout, + &(AVChannelLayout)AV_CHANNEL_LAYOUT_MONO)) continue; for (j = 0; j < s->nb_streams; j++) { @@ -6976,7 +6978,8 @@ static int mov_write_header(AVFormatContext *s) continue; if (stj->codecpar->codec_type != AVMEDIA_TYPE_AUDIO || - trackj->par->channel_layout != AV_CH_LAYOUT_MONO || + av_channel_layout_compare(&trackj->par->ch_layout, + &(AVChannelLayout)AV_CHANNEL_LAYOUT_MONO) || trackj->language != track->language || trackj->tag != track->tag ) From patchwork Thu Jan 13 01:55:50 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33376 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp25734iog; Wed, 12 Jan 2022 18:13:12 -0800 (PST) X-Google-Smtp-Source: ABdhPJzDYgK0qYMidAynZR8NLPbw0lxEaZ4tZ3S51fFrqchAuM6TachDydJfhw/XqiyrSh0NbQsj X-Received: by 2002:aa7:c6d7:: with SMTP id b23mr1243211eds.277.1642039992500; Wed, 12 Jan 2022 18:13:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642039992; cv=none; d=google.com; s=arc-20160816; b=vHm6nFmoGa4qAo+gk9yUnAaoIVc36KAZqgsRSexpWGkyHDCSQ0Aasuf83SPwP9OwLK xBAi0ZgQzZ8wx9pBDtz7dX+jtMlqHUs4TF0SLygVgfPk7oqcN/rtWHiLMGXsbsVCJ+06 HwD1eusMxocQjrOZuaQmBY68EaOBuTFcniJclH5Ksf+9TgtSkpP562TRVl20xiMcoE+F bvQ00PwOmE/w54j+MPPf6SXN1pdWFhn6El0JpJaLliUsTDU858F1sl+RDhNsiD0OC1Ds JnQgFoepThZQcUq0LICEzPpSAzPcsQrM17+pO85UhHshw3vJ6FlzLcovkzPNbnaZgBCA 845A== 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=YAZexJe6kw8bw/KZ5TE/r4k9sb7QVgJAa95fc4uJluk=; b=iMQUPTyeSzy6vlQ44CUYmTxvvZ8Q13swyndcE/DWWgqgZ0JmbXkPNLwVJtYuZ1FA+H emyYpYPnuO/uq+poSNn2vDlYlIi0EJHjMaBU6vlBjoME6jKyf4068syIsjdnFh+zSMAH P4WpWW7CfkhS8FOymit7813iKMrLUTIjLymeMVgb98TALaRsXgnswoyI02WCC/JVd21F 1G2yZyLREZzUc4BorvwdlqplTLibKbNcL/Qsrpj0IRBxIjU9L79INUvWFCp7SpWglk7s b2T/5IxSvxzBvnSnxe3Kp/JRw4PHuYz+xMdgjZZZz0ylTqg8shYCxYV86xy1E5c7uptK 0oLg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=ieLbupgv; 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 s1si903662edd.582.2022.01.12.18.13.12; Wed, 12 Jan 2022 18:13:12 -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=ieLbupgv; 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 4C0A568B25D; Thu, 13 Jan 2022 03:56:40 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f169.google.com (mail-qk1-f169.google.com [209.85.222.169]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7BD3868B240 for ; Thu, 13 Jan 2022 03:56:36 +0200 (EET) Received: by mail-qk1-f169.google.com with SMTP id bl18so5568902qkb.5 for ; Wed, 12 Jan 2022 17:56:36 -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=n1N/zmk8wY1Zp7P36FYIK6b+4KW9M0JUDGY3FsYjGU8=; b=ieLbupgvaMr8TFHIiQxcbYxeJvXy5o1GPeS/AUsndAOuEvdF46uyIBTZ7+r267ii1C c2yYFTNacNQX1hqYuFduzprYMzZm3HAbxMSLfD0P6NTu5lwY+D6ngDzpw0P2FHRuRujq 1kGrTtS8EbEljakW1HryYZdLHYLlW7sJKlxh4LVw2jCXgb5ngB+39KASZVvpB3aU2d3R cImkQgCgE/qjuQbzxwC8dAiSDNf8V8g9TvYwma2k4NUp0o0XXeEHuxwg6MEn2RPfHEfn UKyUNbf58eiYKJDR2+iTYq22XzZHzyK+mHIQVSv/UeE1woaqkzP5MfJM63bng1bRuHR0 /zKA== 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=n1N/zmk8wY1Zp7P36FYIK6b+4KW9M0JUDGY3FsYjGU8=; b=N+BPLaTFMMRmf0gRDPWPNHrx9MXY4uqQCZZS7i6udjCSHYm0k935NsNbndPreVFnAH xOACJzfugwIKxCYFYlyFj5QwZ4N+oBtsUNsF7ScrgADFAvSi/9p6d+iRZOSe5wxHIa7q /Bd0swIkpMspPL7hPlAtgkwyscE9BooaUQNlRwHXZxSLQLWUYs8mQLSUHt0bnOFC+1v6 m1C6zXKRZ0KRM/IN3nfUZ95pnIO3zEnWlgDHn9+Db85dncN3OM79m0Hjtr2x2Zb6cE6j kJLFaafukiQV25bULCRLjVu2Ayp751WC8MaPdmf2IlWNAzFqf71lVnaz5qO9wvmOLO/k VheQ== X-Gm-Message-State: AOAM53312bqco/YM9azcdSmlzMB33GRqzL1AuULO/3yeOiLCSaMRNABh B86BlCZjfYeJf8QFce8J3QZ9yga5Qbs= X-Received: by 2002:a05:620a:1a83:: with SMTP id bl3mr1798529qkb.529.1642038995000; Wed, 12 Jan 2022 17:56:35 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id t11sm906506qkm.77.2022.01.12.17.56.34 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:56:34 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:55:50 -0300 Message-Id: <20220113015612.448-9-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 097/281] movenc-test: 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: piL1bwJ4u095 From: Vittorio Giovara Signed-off-by: James Almer --- libavformat/tests/movenc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/tests/movenc.c b/libavformat/tests/movenc.c index 2af72f11c7..1d45725318 100644 --- a/libavformat/tests/movenc.c +++ b/libavformat/tests/movenc.c @@ -214,7 +214,7 @@ static void init_fps(int bf, int audio_preroll, int fps) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_CODEC_ID_AAC; st->codecpar->sample_rate = 44100; - st->codecpar->channels = 2; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO; st->time_base.num = 1; st->time_base.den = 44100; st->codecpar->extradata_size = sizeof(aac_extradata); From patchwork Thu Jan 13 01:55:51 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33377 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp25822iog; Wed, 12 Jan 2022 18:13:24 -0800 (PST) X-Google-Smtp-Source: ABdhPJx6M3KzQvqEnW64yOAHwR1rkFj/+Avb93XHAAcQhW05+pvoO8t2CitT7qA+dEOzgr5nswFa X-Received: by 2002:a05:6402:4316:: with SMTP id m22mr2334259edc.326.1642040004190; Wed, 12 Jan 2022 18:13:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040004; cv=none; d=google.com; s=arc-20160816; b=Z731bGlt4ivkru2AR7XmOIwAPBJ+M6ejxbTkmu4R6Pp4jCITc96gRnxudPoWAMWUwR 2y2gI6HG+j9ATeb2jwRQeulSi0P5JnPq+i/siacBHZ2QqXObi+tNOJjUkX1PjDFdS/K7 wqcSMn33ZSnLWTsnQWmHbVG3eSmCVaOLPIgtp5g7Hmleo9afNi+kwoqL7A38KV6M1dio bPVOCznZ74W/IQiEw9Hz0fzeEOxJV1PpSUAUlbyiNRMAh93UdisAol1ioSrvXdEdsa+S nyP8PzuIUJeTusSM6YEO3uzq7GSI55xwo1Mb5tVlV4lFe3ednxXPcIuhY2hE7c/eYnvl vu/A== 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=MLaLZZu9Te1WN+hie5dP9osCSeuk/9T+s2DuhH8i5JQ=; b=zT6tFzkBhuStY/+7mBeNxxyJx7rMAno1LekJObkbH7PqgD8SxDVg3grEIbe61Gl984 sg7m+u1ZENy+DVQeOiYsabR/3PJuWlzwuV9Vn2HH2LlGie9ezf6upZXS9DRvIC1FdGtz oxHlyMFUCWwNQ3fSk/TslSw8PCOEoub4hllCrrHj6HQ2tiLxSib80Tid58thAQBVdCe5 TeukMds2toxQEPQJNfJ2KUpScSuik3jYDaSg/3Js5NwJPKZq/6I3fZp/++07hnN2w9k/ 3bJef50R82ynCybRSfmZJQpTq3fNoBAbvYiDi3FMQDSWOqrSGK8YoZjkAdCd7CaORjUj UnvQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=jnhdBqUq; 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 r12si914066edd.74.2022.01.12.18.13.23; Wed, 12 Jan 2022 18:13:24 -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=jnhdBqUq; 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 1FB0568AF0A; Thu, 13 Jan 2022 03:56:41 +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 63A4068AFE2 for ; Thu, 13 Jan 2022 03:56:37 +0200 (EET) Received: by mail-qk1-f174.google.com with SMTP id h16so5599654qkp.3 for ; Wed, 12 Jan 2022 17:56:37 -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=quWX1ncRsIOUO9K1EfupWi8HA6vIaG6vTy0teQnnBa4=; b=jnhdBqUqMXiuG3jvEbScjuE5yVQoltI27vzKZyt+uXMSrEuPtbrJx24e1Q777D0TLX 0oObXQYJqJDxqbx0+LzMQNcSxhsnbNKkJHKbuAM8AjAfZHOdtkx+nrs6uTn6LgCfNAlx W5lhuFpH66RkmEiKvRAf58veqRyuoxq7Vatb2VJ5CnVGCejytW4Tm6j+JFzR2LGUGHjQ z75hlhsizgYJD73AvPmhKczNNpc1qNuZlVvPG4aqDykYoR4T4cV96m9ha2LhCHEOFojm dXUAL+8qLcYON7h2MJQp/18FkoB0MdIrdkB5++wHDmGu8VDyNaKRjkdZYcNxJzoN8sm+ WTbw== 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=quWX1ncRsIOUO9K1EfupWi8HA6vIaG6vTy0teQnnBa4=; b=S4OVqoMoNy0EnoSTutSQ0C+Hafe0eCHQQVK4X1fnjSXDoyuf65g77I8+4FAsjTPaMW TMWJnX8Af+M3fYdbYC/ZaRD2IaDWnTiz0ZwFKLv6cXg92x17ZZBAieMMJJYrISPPhBu7 Rk+4gXyoQ5TazIeJlLdFsM+MZeAq97z/l5tL1rzw0e2LQlvy/sAKV00gTTWy/aEGepVD iqEdob3b0ZKcOveoDUyt0dUop67ESaRCa1c/ptpdEF1887MlaxDXsosZD2HEdcvKwXoT d1zLzkd9IaMARpYt0MDB+QJFrsv2asjQpab+Yt+JAz/gobxMt62FAXwU4lLW0Mcn8rpN WTGA== X-Gm-Message-State: AOAM533qiVb+KBHAfqbksNHBxaHTYnKllG2KpTd5+0B0k5xQaPzrgC4+ xiaFFDZO9J0vtC44UHyZ4Zf7DgPB6eQ= X-Received: by 2002:ae9:c016:: with SMTP id u22mr1226904qkk.395.1642038996213; Wed, 12 Jan 2022 17:56:36 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id t11sm906506qkm.77.2022.01.12.17.56.35 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:56:35 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:55:51 -0300 Message-Id: <20220113015612.448-10-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 098/281] mp3: 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: 8UWiLiTt1Y4B From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/mp3enc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/mp3enc.c b/libavformat/mp3enc.c index 3ff19da274..91874fa14e 100644 --- a/libavformat/mp3enc.c +++ b/libavformat/mp3enc.c @@ -175,7 +175,7 @@ static int mp3_write_xing(AVFormatContext *s) return -1; } - switch (par->channels) { + switch (par->ch_layout.nb_channels) { case 1: channels = MPA_MONO; break; case 2: channels = MPA_STEREO; break; default: av_log(s, AV_LOG_WARNING, "Unsupported number of channels, " From patchwork Thu Jan 13 01:55:52 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33378 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp25945iog; Wed, 12 Jan 2022 18:13:36 -0800 (PST) X-Google-Smtp-Source: ABdhPJz25RoTrU6y6OvwIKYZhGZyUMFkXTj5h8Yuz8FzuVEoJ1CRgP4xT4Neummgui5bVfBrCAgK X-Received: by 2002:a50:c94b:: with SMTP id p11mr2342378edh.173.1642040015822; Wed, 12 Jan 2022 18:13:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040015; cv=none; d=google.com; s=arc-20160816; b=QW/dNt00WPOlAEx41IKbNDJ5VT5oOzkxznovuaWT4o8YvO8uev9cOl49v3gQqeh7Z+ LsHGkm2n0VGETTzAeSYlsWvp6coLdjinCaqkNDJlDfX7rTi1/yurXxjJ5iZarxDjG2UB OWpf4imQMWHGx6xPYPu9yqn3H6KaauFWStGkEtY2yAKTH/eO2qSdjEfEDsBKGbErrnyL 5vkFfhUKgjdc9RvlUFfrCaCo/uedflqVt+rHnKH1jXf2BfBjyAiDBHI5RrU6MXJ9PU+v BuMa5zSHnyPS+ZwlHdAGq/6J5Kl340rLipZzEOUt2UChSGCKMjkWTb+j8wv/E8Rso+t/ BmqQ== 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=am2xbX8CQyEmiyPq11en/JyoodpdDPoptO8ZtW5aHfM=; b=uuPXJMUsznPI51po3nIQQ3tcgqG+e/D43Ul74aAPZz4gWPdwPE+pIdlxE0yImhD62J 8ZhAdEJ1OgUBUPKym59fm0afxsFiLuCOWloxQmXWbcVzZAwrSj4Mq32sraaGsZouqTRd nwvDNc6hqpeB9PMDLKk11IwsQ5dZ5I570aRVd+YUIWGSvtFvxOJuct8Jp+tQsG4Geu1N i/r6OWdUZZlz9110fcuQZg2r9nby9tQVA3eauzQFn9jZMsZJ4KdelBqmqrKKyvere6Ft 29/g9Hzrwx5RsGHuvOPDi4Be7juait1klfr46azhAegYVK//Y8L0Jme2gs+6ZWMVylLV FJ9Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=Hiv4WJ4o; 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 t10si1045486edd.120.2022.01.12.18.13.35; Wed, 12 Jan 2022 18:13:35 -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=Hiv4WJ4o; 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 E7E8F68B266; Thu, 13 Jan 2022 03:56:41 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f176.google.com (mail-qt1-f176.google.com [209.85.160.176]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0E73E68B253 for ; Thu, 13 Jan 2022 03:56:38 +0200 (EET) Received: by mail-qt1-f176.google.com with SMTP id g21so5202524qtk.4 for ; Wed, 12 Jan 2022 17:56:38 -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=fHS1mV98DQ2nb6VzE7cANWViRfXASTwFZygka/QqIIE=; b=Hiv4WJ4ouqtULIPG+/UyT+JhM4clz767EbfB9m1nptMkgm/TEZX+0v+xvZLf6in747 OMKGLy4q5ELTcCjGDcnzf0okR1NCr0VN3uMO3fyupMeubJayDYqJL8cA0q14HA7DtmMv 8qndcj+sq+MdaYr+52tcHloCZlYLgKdgXxBX3uBRsBtOnJD0ePiTBN77TBCnIW9oxshC FOdW43W4E8xcFMX148J6+ud+4w1F+MXg7pDeY6I9SFIfD0+9EAS8I8u2I5HJ4A+nT0XK dQ16DtI3yHfnBo/bMMuD73alft06Zo1Q8HFyE5VqXMSe86ydQ+E8A/45haxD0RVg4kbv tD8Q== 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=fHS1mV98DQ2nb6VzE7cANWViRfXASTwFZygka/QqIIE=; b=gg8sBRgve/zOyRI22SY8prt7JhRbHM0c3q9+FlycSjejPlcIbC8ufykcRd3mRpGHbE bbi4RiOuS5HYYJUtodKrVX6fDyK2p1YRHs76llW/2pqeRKIGAcVqtv9RGQgOa2hGhB9y sD7zEJn+6xu1vHfxSyAV+QR4TahbRqL4dcQXrbV2wBjZywfvpSlXBDjqCNfg4idwI7w5 +yi34jvFeSE1n6iCqdepaFjv1e5+QcVT6kzmEQtXEssEZUY+5QlDbEENA3uAygONF2/u XNTeJ0EwGzabLjtMjNsqqzjvvjFK7JErpS1ihEtZi7pr3FO6b7hC7xmYY4ZrRQytzEiI Yc9A== X-Gm-Message-State: AOAM533ZswgSwjJseQu8eEJwI8BsQKVpjKUjRQf9qCZ8V2dheNkW0QU3 xPIgSSSh7Ee+8Jrk6SUBH8IzI/u5Oj0= X-Received: by 2002:a05:622a:18a0:: with SMTP id v32mr1928504qtc.681.1642038997376; Wed, 12 Jan 2022 17:56:37 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id t11sm906506qkm.77.2022.01.12.17.56.36 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:56:37 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:55:52 -0300 Message-Id: <20220113015612.448-11-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 099/281] mpc: 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: fcpBRTT9SwRo From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/mpc.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libavformat/mpc.c b/libavformat/mpc.c index b5b2bab33c..f36768b5ff 100644 --- a/libavformat/mpc.c +++ b/libavformat/mpc.c @@ -95,8 +95,7 @@ static int mpc_read_header(AVFormatContext *s) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_CODEC_ID_MUSEPACK7; - st->codecpar->channels = 2; - st->codecpar->channel_layout = AV_CH_LAYOUT_STEREO; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO; st->codecpar->bits_per_coded_sample = 16; if ((ret = ff_get_extradata(s, st->codecpar, s->pb, 16)) < 0) From patchwork Thu Jan 13 01:55:53 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33379 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp26044iog; Wed, 12 Jan 2022 18:13:47 -0800 (PST) X-Google-Smtp-Source: ABdhPJx71fi5RmsYIzchC41DVplr2Ob9T4q/OiF2S+mjM5j54CRL0Xg63mDQHyUdVO7A2zZNO62C X-Received: by 2002:a05:6402:268a:: with SMTP id w10mr2312890edd.10.1642040027571; Wed, 12 Jan 2022 18:13:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040027; cv=none; d=google.com; s=arc-20160816; b=jVE0d4YJfieIaIpQKiYBj5VnoMo5HX5wgp3c9nHFlx2fbMmRpox3XIqvLxcRTKYWqS xHESjPyIe4YipOv4yCfx+8uW4o0YiNNOZ4DTczsth2uV0erYOFnwzeXuEkBhofaeOfms 9dChUO2F0yN6VwomWzZcDV70uyggiES3VRxmzel4xTfMPJzlC8ZamFoe2zIjbr7MRnvs koOTHSD2XaLzswSTklECcOuz8gt1VeCydZLk8LGvftM5xhT9JY6HZooOs6DRQazzC1tI YTvdKxdytpVqbo07tAK+c/JIIUHij50cuNPE9XBDQj5GaO6HFTWHdRHqH9u6Nemov49H 15sg== 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=EIbDQpufpkiMmgwA9xxxgAG29B9sXxExP1ePwz51TW0=; b=XIoqbrFgqwbsof3dWecovaDTe9G15P5cFhEWTbO0AlJUzmm1zJ5H+HGr7DmJ58f2yk 1nHvDZ9n5oyew5BQ9kR3VaFKCbO+tQqh9AE+Kp2FqdHeCRWn3xFsPAMWnf2rTv5ce+lh Xbs6IZEJOwA8t/wWUSOatRmW2ZLF9VyJ1cgqpc6jiX6QxWMuXnuJT3HihtcjSjOW9FY5 PMX5DWDh2m1VWB9snzzHl8qVeuqhKI2htm+OGgwCO6uz2r5Eq0ggMlgN/MSyCkQu4Pf5 lMRbqEzqMljq9ImcBVNGeXIQAyav5cISrCtzn1dCmexbXEdglwRZuSdkXgC1Bm41IvIc lXXA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=lqTXB6SZ; 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 jz9si773635ejb.459.2022.01.12.18.13.47; Wed, 12 Jan 2022 18:13:47 -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=lqTXB6SZ; 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 CDEF268B277; Thu, 13 Jan 2022 03:56:42 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f180.google.com (mail-qk1-f180.google.com [209.85.222.180]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EE67568B25A for ; Thu, 13 Jan 2022 03:56:39 +0200 (EET) Received: by mail-qk1-f180.google.com with SMTP id b127so5634636qkd.0 for ; Wed, 12 Jan 2022 17:56:39 -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=eF0rECW3TvC2JeLaCrSYgBmmZBM/m1vxRA6VMCDypzk=; b=lqTXB6SZqDxLITe44IOMQfvhtP2wNC+OWZvEaxMkqDBQSNIQBnCMjGw/BQjcP5n32p ZEfhgVE6lguo0hp0VSD5ejwLHVToIHLFTESl61qLS2TnQ4JdjhBx1+9F3ffh49G9pbTx Lq0KQ1rsqELLHAFWO0EOM23WFTsxInE16UeG+DjT5idsdgEUIXr4T7NRHOXUu+XkMPux 2N5lUNUIKtTMG5xQedQzePiaHU1bHoqY6mkyW1qiTA7G1tbMpeoLSIh1LdOidDiwnkCO wFtO/pvppPZz8RbymXnltF2dw9SYOnM4QNt7kWKVV0Q+gr6mLlOadcdkrtejXTMuWzZA FCEQ== 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=eF0rECW3TvC2JeLaCrSYgBmmZBM/m1vxRA6VMCDypzk=; b=H+aw58sPvatws9Obkka3A+NFVJbtWXseZY9U4Yrlbu2jPHwm+Qg53N7t5S2fDejtfx HvvwLNqM5vs5jQHM0Z2rL36dfNRmwsMc6Ps8IxBRA3xfZhhsuzj2f/glOaGHopfIp1qi wndvrkQI/z7wcPc+6gKwh14scsWaJ1nhcR1U05nJTu0XyD8DD7usTjYpVwNcDUoqQUeq glW19Sc5wreNqKAnvuOtjDyTFTMRq1/irtw0FbHsskuNg/nVor2gq/oiLBDF/QbvxMU+ onaWGPoeLGF3p26U56105fuyWqkZ7OF0VU79d7yYZb0GSugxosxmmeJ7PaFpJlJ9Vvly /slA== X-Gm-Message-State: AOAM5336EuTrEZcTTjI0KZqSnhAsi1eCGPUV8JXLlCg2e1oNgNMyyi6Z IktuADB2KyS+Qvy/OkDChJ8i4PVcTZ0= X-Received: by 2002:a37:a7c1:: with SMTP id q184mr1880618qke.382.1642038998596; Wed, 12 Jan 2022 17:56:38 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id t11sm906506qkm.77.2022.01.12.17.56.37 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:56:38 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:55:53 -0300 Message-Id: <20220113015612.448-12-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 100/281] mpc8: 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: imXjGy5fcXDg From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/mpc8.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libavformat/mpc8.c b/libavformat/mpc8.c index 0cf46b36a0..c5f05e08a2 100644 --- a/libavformat/mpc8.c +++ b/libavformat/mpc8.c @@ -230,6 +230,7 @@ static int mpc8_read_header(AVFormatContext *s) AVIOContext *pb = s->pb; AVStream *st; int tag = 0, ret; + int channels; int64_t size, pos; c->header_pos = avio_tell(pb); @@ -273,7 +274,9 @@ static int mpc8_read_header(AVFormatContext *s) if ((ret = ff_get_extradata(s, st->codecpar, pb, 2)) < 0) return ret; - st->codecpar->channels = (st->codecpar->extradata[1] >> 4) + 1; + channels = (st->codecpar->extradata[1] >> 4) + 1; + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = channels; st->codecpar->sample_rate = mpc8_rate[st->codecpar->extradata[0] >> 5]; avpriv_set_pts_info(st, 64, 1152 << (st->codecpar->extradata[1]&3)*2, st->codecpar->sample_rate); st->start_time = 0; From patchwork Thu Jan 13 01:55:54 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33380 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp26162iog; Wed, 12 Jan 2022 18:13:59 -0800 (PST) X-Google-Smtp-Source: ABdhPJz6XluUFvziu1nZnVVYBQUC2XztVn8Sfijxtl/q5mp+YrZjiBiuBm+AfLD5+fKJXfXnhSLp X-Received: by 2002:a17:906:e282:: with SMTP id gg2mr1940437ejb.607.1642040039333; Wed, 12 Jan 2022 18:13:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040039; cv=none; d=google.com; s=arc-20160816; b=eDdyj6oiNWeewvWFxwI5PcyiRVO7v7AVV4C8Gxzct61PZKh8fkbS/ln8qbZhcdWwhT fAY+fWez6XAzOR0UrgMtLz/SxTpHZ5LqbQZGRq/fGSXv+q+MBzj0AgQbe026GfVop366 MWzznUs5aBt+/x2wSWLEQ6JRKeF/z6A9naUBjjl7/EhM+hBvQqfwkImre9we7loeCJrt v0LNaWh68vR7JulOscEI1dN/QKs+INpOyBRB8YNCTA09b+eWcUBrTcXy0tPYMsKihCzs OyeyIVEA2u/YhdkLxTQthdF1KYxUOrTqi9xntQVA0P+0Y03v9pXdTxOyowy/MnkxTf/i C4Ow== 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=dQOJtprO6jprGU7zpXVlvocllPdHBS3ftNKkM3NV6T4=; b=cNVxkWSycgpv3CRoCPW+dE4Olo1QzE26CqLTM1D3HQW4r1ZB1moZEO201rRzUdSJzs YU2zel7/zZaOLGrI3oysEoql1ma7nzcmQq6jiuCZVXfgPK4zOMhFT95UYXhfYp14VxeN GxIYv/uWyLjJp6cW2vvvaonlNHFqi3IDHHahZhlLG/l61RuxvFrfJOhhGVRA+pgj7TcN NBhZ8+DYCcXZDSDe+H8iiWlIzzzqS4kcsZtDA8cX77NkQJYCv285n4YBCFwArZxnicUy 7CEFm5q1RznKFXNQBZCbEIFjVWE9DubA7hWOFoaMsIE+0XnoTnQ3oLZ/hSSrKWN8Opu1 mJjA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=IP1VcCMG; 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 sb1si211857ejc.795.2022.01.12.18.13.59; Wed, 12 Jan 2022 18:13:59 -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=IP1VcCMG; 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 B2B0C68B280; Thu, 13 Jan 2022 03:56:43 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f170.google.com (mail-qk1-f170.google.com [209.85.222.170]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2EE1B68B267 for ; Thu, 13 Jan 2022 03:56:41 +0200 (EET) Received: by mail-qk1-f170.google.com with SMTP id m2so5553244qkd.8 for ; Wed, 12 Jan 2022 17:56:41 -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=uYJDun1maoNCkurZHnLV1113p7gGBZUOfzOM4UFc1ZU=; b=IP1VcCMGad0CkHx6COjonv40jQ50W3IQuTzw4Bg8UX1zMfNbkjZgmpS0X6lUYHdtek 0orK1dVSAaPPacL4IJv2VdFo2uvmrBA4YPpfSXLu9aCjBpDtVH4dw6jEd6HqzRcJiBd3 6ytmgcuPj9Oo/OytYdfQbYY/lRwIPMTDMbyMuH7QURu91Z6SjmMbVEnRUI0JWMqhYNjP N2PXZlQwUpGu+gqfvlDUPijxZD6c3RTiHvuvFEgH1CflqW03KsIfuxl9WbftMwOxz1n+ jJ976XqFifGiEvsYXjnZ7y8ux1FIVfrb4P015lgpDzYRnVfMjUXtKgFTUBX7LYT/WTFz h1rw== 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=uYJDun1maoNCkurZHnLV1113p7gGBZUOfzOM4UFc1ZU=; b=iQ2j2AXUMqxzwJcNp0z5rrq2Jy1d1eNAHbiM44TQJGgiq+sjlKaE+srH0bllMRot/R 6zJWDhIirJjZGX4MURHFliEUr2Q4ND4aX6Jvyaklh5XgnCDWaby18aQR6Utwo51BjSx4 Lk/c11tbxGJ8RlsnhCFuRoq44odM4YDUSuWCWliB4jX5pyBNQjvnbz2Wgq66L55uTZAB f4mzFbXGmfC/FMvxxnueXRBfx0CkdnzGx0xjFuDTlaPZKgEaumU2yA+ZHrAt+McA8R3I O7lNYIdDfqomqkMc6S4Cjw2AvNhuFzqzLL5imfh+o5LE/ryU2HH+15mBw7qP87WecpfR M+hg== X-Gm-Message-State: AOAM533Y5zrxLgL+EHiOjg2mJfw8CmWgnnJJrvUXWCGqDMddIboiJnPf dKaSydvnjcI1c2WvKlzoNGaMQ5oeuh0= X-Received: by 2002:a37:66c7:: with SMTP id a190mr1854519qkc.353.1642038999800; Wed, 12 Jan 2022 17:56:39 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id t11sm906506qkm.77.2022.01.12.17.56.38 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:56:39 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:55:54 -0300 Message-Id: <20220113015612.448-13-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 101/281] mpeg: 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: 3vaZzL0TERqw From: Anton Khirnov Signed-off-by: James Almer --- libavformat/mpeg.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libavformat/mpeg.c b/libavformat/mpeg.c index ca15d9f241..34c1b74a4e 100644 --- a/libavformat/mpeg.c +++ b/libavformat/mpeg.c @@ -621,8 +621,7 @@ skip: st->codecpar->codec_id = codec_id; if ( st->codecpar->codec_id == AV_CODEC_ID_PCM_MULAW || st->codecpar->codec_id == AV_CODEC_ID_PCM_ALAW) { - st->codecpar->channels = 1; - st->codecpar->channel_layout = AV_CH_LAYOUT_MONO; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; st->codecpar->sample_rate = 8000; } sti->request_probe = request_probe; From patchwork Thu Jan 13 01:55:55 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33381 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp26303iog; Wed, 12 Jan 2022 18:14:11 -0800 (PST) X-Google-Smtp-Source: ABdhPJwHHxwJyR/YTC+Dy5DXeJv/Jx37iH1u7fhWYJlququOeysZLqFIazuixBzpjB/xvsOG1tJK X-Received: by 2002:a17:907:9707:: with SMTP id jg7mr1908972ejc.508.1642040050971; Wed, 12 Jan 2022 18:14:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040050; cv=none; d=google.com; s=arc-20160816; b=BO3gVRQX1e7bGhbW9X8Yy4Q5ICk4GMWUmPohrYQTdjOCxMmJYYEHRfg/ApBzXIe9m2 L7oc0nmVf9cWkBOMYJzdM7E99uaSGtp9o5EisjoCOxk9iNIfuxLxV3QwKejd7hpGMoXv QlOEPSEEo4gnyOiCQOxhokyNrQ9x3pMUe3d+2wV71G19VQ4BJXpCmqTQl1lNPrT11uTR rA4k2Zs1fczvaqa+umNajCwB/inX0AeGtKveNrXKGfFxTjyQzxDVss+KfTRM1fZvois4 NUpb99P/6/Pj1j4vkbT9iUFBRMsu4LKYyrR/s4yVlFJfdGO4lJyn9mjWc5OwiXb8mw+N 00ng== 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=QyVf+moD8DwgF6N5e5O5ZdBG0h98VGodfjEkImfFNsE=; b=lcM3nrxzlBd1j29uiKJHfGbEgtg3ARGxC/RX37KPDIi6RyXoq4CGsMSnCO8Wo1QOn+ 44bQYWnW4dPwI9B4QaemZvLi6J6lnvnTdYW5dnqqsluBPR9xcSTMyF2SH/h8q3UXzw7z 0v2chYnpyjZwy07FnGEjfg6CYagfpVCGheya7MDMDXReGrpgxpPFOmvpxFVF+I5RR3kB cIDPzkLRoklzTYPNSImcItAEPnTqcrugMeWe0RQ/Y38fo2tPcPS0uXKULy0GESc7XYtW diKlO/lkC5ZuZ0PfxYDpz1Ka3SIsUdOs74MpkIsGIRV891nQDtP/KQldRv75Hc6Zz53p XqUg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=COwZg7j+; 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 j8si686045ejk.518.2022.01.12.18.14.10; Wed, 12 Jan 2022 18:14:10 -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=COwZg7j+; 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 B348768B268; Thu, 13 Jan 2022 03:56:44 +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 67E5468B270 for ; Thu, 13 Jan 2022 03:56:42 +0200 (EET) Received: by mail-qk1-f172.google.com with SMTP id bl18so5569154qkb.5 for ; Wed, 12 Jan 2022 17:56:42 -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=xoPexwSbXhupaaaE9MLQNwCpOl+R6L4lxEqpQCQ61S0=; b=COwZg7j+8C5xwLPCCyGH18KraX2XL73O3lNbXLYyMEmm1v8AZA6YYqjfQKhoVAqzTk UkpfpjKi4trkWgF2iL5z0J433PUsrdaF5crYu8pRoc+uMDeH2q/sdxt2iTKl+PvbuNUi QQnjaxOij14tCpeUTKtwBhNTmyaAs0+QIA0lQ4Y55DuPyEqNZ5SF8k9lLbMOcK+IRL99 A4np2VOlqoUnO0OwQ+je3Xtgs4+OcfJFHF4zIfhHOfx+ELVZwEzP1kIYfxcf0xBqkMbZ rc9ZiiFnLv7VEYDhDi0Ls8d90Aw3qXYDmvX5UUEFA+7mYRzzKyNj37UFb8oEVlIPqxPd y0rg== 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=xoPexwSbXhupaaaE9MLQNwCpOl+R6L4lxEqpQCQ61S0=; b=MUJAEVRdWGlODsYKFDsWGc3Qb7JnzR6jdu4JgCpB23xcKA//Yp712kAUhwJu73N8i1 NuP3aQcooHDLXDJ+xWk3y207+4AZQIjukkljJjo7T0/x7eXdSh+QFfOnojb/wg9GPLzN PLkM5l0Lxn41JWoCK+TJkHAGQVxZhQwLcTU5tlxg0m+lvZNhkJaGVbriBwMDhbWayY3s Qtv61NmfD5K0eyo4627Ayq93hnO1/eD4U+dOjYkS5lzraEKkl0KBo8CcVZkc3mMNuwzy mF5nLwFza8KxctEl4fTgEePQXTDtCyL3MNbf/MtTn2jWU1m1qfzUsP/AyL+FVYulkaCj vHOw== X-Gm-Message-State: AOAM531/8k4lePR866uZbFeedU9jLJ1DhwFoCsmIQVEN00vbi4ow8yGc au5Z7xykRDSo+yT7dl/Nx9YFi1vNqTU= X-Received: by 2002:a05:620a:25c8:: with SMTP id y8mr1883866qko.455.1642039000994; Wed, 12 Jan 2022 17:56:40 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id t11sm906506qkm.77.2022.01.12.17.56.40 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:56:40 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:55:55 -0300 Message-Id: <20220113015612.448-14-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 102/281] mpegenc: 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: zP3aOum0EWrk From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/mpegenc.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libavformat/mpegenc.c b/libavformat/mpegenc.c index b1d8bf9c38..3b5aefeb30 100644 --- a/libavformat/mpegenc.c +++ b/libavformat/mpegenc.c @@ -380,14 +380,14 @@ static av_cold int mpeg_mux_init(AVFormatContext *ctx) av_log(ctx, AV_LOG_INFO, "\n"); return AVERROR(EINVAL); } - if (st->codecpar->channels > 8) { + if (st->codecpar->ch_layout.nb_channels > 8) { av_log(ctx, AV_LOG_ERROR, "At most 8 channels allowed for LPCM streams.\n"); return AVERROR(EINVAL); } stream->lpcm_header[0] = 0x0c; - stream->lpcm_header[1] = (st->codecpar->channels - 1) | (j << 4); + stream->lpcm_header[1] = (st->codecpar->ch_layout.nb_channels - 1) | (j << 4); stream->lpcm_header[2] = 0x80; - stream->lpcm_align = st->codecpar->channels * 2; + stream->lpcm_align = st->codecpar->ch_layout.nb_channels * 2; } else if (st->codecpar->codec_id == AV_CODEC_ID_PCM_DVD) { int freq; @@ -404,10 +404,10 @@ static av_cold int mpeg_mux_init(AVFormatContext *ctx) stream->lpcm_header[0] = 0x0c; stream->lpcm_header[1] = (freq << 4) | (((st->codecpar->bits_per_coded_sample - 16) / 4) << 6) | - st->codecpar->channels - 1; + st->codecpar->ch_layout.nb_channels - 1; stream->lpcm_header[2] = 0x80; stream->id = lpcm_id++; - stream->lpcm_align = st->codecpar->channels * st->codecpar->bits_per_coded_sample / 8; + stream->lpcm_align = st->codecpar->ch_layout.nb_channels * st->codecpar->bits_per_coded_sample / 8; } else if (st->codecpar->codec_id == AV_CODEC_ID_MLP || st->codecpar->codec_id == AV_CODEC_ID_TRUEHD) { av_log(ctx, AV_LOG_ERROR, "Support for muxing audio codec %s not implemented.\n", From patchwork Thu Jan 13 01:55:56 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33382 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp26411iog; Wed, 12 Jan 2022 18:14:23 -0800 (PST) X-Google-Smtp-Source: ABdhPJzKgXFr/VwxB18P1+PizindZyeeM00LHUQjbroX1QQwakmqOPq+KrjvP42N+A+GOztyHZxJ X-Received: by 2002:a17:906:4317:: with SMTP id j23mr1897118ejm.748.1642040062838; Wed, 12 Jan 2022 18:14:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040062; cv=none; d=google.com; s=arc-20160816; b=Oy42WLQquOf7l4g0JwlbWe1RwBFYzxSrfhJuZ7iODg+W0Oz4gYGH9186yZZSrJWj8n 65axa2e+GEN1mfgssWQBLS8lRqxg0dBPmzkc4Fy61iLDBBf8ls6FfFjnb060cHL5rfK4 klFy5EEqXgPyfd6tLIOO+0BthJ3WXw9/P+JLpFPY8MEbvd3mPdoFRUti2IytxUvL5xFV Q4+n0BDTLqIW8W+fcACwgEThWSuhGVg2ZuWuzjEwJ4x5Yv0yI577c1mNfj+YH0PYR1TI Zzra4rTSIzHOqmC4pFAdt1v8vrh+MoGY/dke79A5GxlNeiQ3DtrUZt6/4f2UKJrm39cw ayvg== 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=srPnmqp2Z7XfjqetWhlTso+3rlL2smI4l+w1SFyQ3O4=; b=cLg5+dZJfvp36GAdmoetnwIlzBE8aWZXoT+o2FNM2+1DvDsIZQzBKCLqHwfLipS5Hm OjRtp6rqXMud1/xssr7djFSvvj/T4NJNNLjhu3/ZGev1Q7U9O2RU1I3TPW1LlsW4GhRv oTrJMlbT/wGlPiAP+43OBgs58XKHMnNkrGiSzTktARpFLM8ShPWq1+8PqAQQuGwGPxuq fbik3VoH1x0HD2gl9c7mrIS4pGMDX7WbsaZyYesBIFSNWfFrUCXHEJAqg70KpQ/V85NS bX796BKYzz7SX2vF/h8hd7lmCk2S0THcqdWJaQJIkL2SBMYVMg7XZmdRQULPsZHvvyMs MjMw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=nc3Ag7ct; 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 y6si871964edp.344.2022.01.12.18.14.22; Wed, 12 Jan 2022 18:14:22 -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=nc3Ag7ct; 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 9EBE868B295; Thu, 13 Jan 2022 03:56:46 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f181.google.com (mail-qk1-f181.google.com [209.85.222.181]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AC18F68B27F for ; Thu, 13 Jan 2022 03:56:43 +0200 (EET) Received: by mail-qk1-f181.google.com with SMTP id 193so4865424qkh.13 for ; Wed, 12 Jan 2022 17:56:43 -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=k68loximJMwt+iptb5hjLkfOpj7YM51yjKhAe1hf88k=; b=nc3Ag7ctrHrvdvs/BGzch3kt2EJRVeN18CWklKzWuyhuKE9fjSxtE03ZFgxCjRR10l Bjn5Lj2Oy9u7awaVhuNmrABB4aRgeoh1wuhDYBpBpH7f3Owa5EEm6f8cMzzgFAW2H/6S tnUri4lMU9Sp+4wp65iW1bEQD2VDSBKkjd8OcO6etNZb+dtfFpcTCm48OdX6M9hXt7UX 7rlJFALWpW+H3ItHgLh2y0WKzz3YCYkx2Pep92sTXytx9orcayk5mOLHU0W3HQyWwk9x enK1I4LjS62rjTQ2lf8p5JywAUKFQ6DE4qFXSUWVj0aX1QDn9YlD9q6z4H09plo4mrm8 BwoA== 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=k68loximJMwt+iptb5hjLkfOpj7YM51yjKhAe1hf88k=; b=mGoCw21BQniWisLptvQPKAyNXaFsEVqa3dYysMqnVQFe5UJSJLMlx4Pzm++A8d/fH0 jvIgOovimnUEfilX865aPjS3+6mM38ymlz6t6lKjI52Xs3UHLrgBCxaII++tL0qyAdpA w5JL6Sud6mTq1waH4/f8mDSbF6tlN4Db6+3WYGAn5Je08rTMNgGrwD1JIE7+eYgvogSK f5vH3foH1ZfqSQzVpXRigmRCJmKQpNOyo5An4AVhNriJmgyHU2MkcXAx8Il+ZLC5N1v7 b7gzYqecHM+hIKHKOFKWhblWGZ9OeeT1928p51wRNtbs7Zf2NoYjjsY19Wn72k3+cXEt 8F+g== X-Gm-Message-State: AOAM5327sjKFWA19gaFg1sqwGogqOKx6fjoB1Il1VdQNxZxObJKMFK2h DkzrTcNc9X2+wggPdV4gF8ek+sPEZiI= X-Received: by 2002:a37:b702:: with SMTP id h2mr1863092qkf.135.1642039002228; Wed, 12 Jan 2022 17:56:42 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id t11sm906506qkm.77.2022.01.12.17.56.41 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:56:41 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:55:56 -0300 Message-Id: <20220113015612.448-15-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 103/281] mpegtsenc: 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: 2t9zWr0EQJMS From: Anton Khirnov Signed-off-by: James Almer --- libavformat/mpegtsenc.c | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c index 92b4cc8087..018baf5d1b 100644 --- a/libavformat/mpegtsenc.c +++ b/libavformat/mpegtsenc.c @@ -466,7 +466,7 @@ static int get_m2ts_stream_type(AVFormatContext *s, AVStream *st) stream_type = 0x81; break; case AV_CODEC_ID_DTS: - stream_type = (st->codecpar->channels > 6) ? 0x85 : 0x82; + stream_type = (st->codecpar->ch_layout.nb_channels > 6) ? 0x85 : 0x82; break; case AV_CODEC_ID_TRUEHD: stream_type = 0x83; @@ -592,6 +592,8 @@ static int mpegts_write_pmt(AVFormatContext *s, MpegTSService *service) if (codec_id == AV_CODEC_ID_S302M) put_registration_descriptor(&q, MKTAG('B', 'S', 'S', 'D')); if (codec_id == AV_CODEC_ID_OPUS) { + int ch = st->codecpar->ch_layout.nb_channels; + /* 6 bytes registration descriptor, 4 bytes Opus audio descriptor */ if (q - data > SECTION_LENGTH - 6 - 4) { err = 1; @@ -605,11 +607,11 @@ static int mpegts_write_pmt(AVFormatContext *s, MpegTSService *service) *q++ = 0x80; if (st->codecpar->extradata && st->codecpar->extradata_size >= 19) { - if (st->codecpar->extradata[18] == 0 && st->codecpar->channels <= 2) { + if (st->codecpar->extradata[18] == 0 && ch <= 2) { /* RTP mapping family */ - *q++ = st->codecpar->channels; - } else if (st->codecpar->extradata[18] == 1 && st->codecpar->channels <= 8 && - st->codecpar->extradata_size >= 21 + st->codecpar->channels) { + *q++ = ch; + } else if (st->codecpar->extradata[18] == 1 && ch <= 8 && + st->codecpar->extradata_size >= 21 + ch) { static const uint8_t coupled_stream_counts[9] = { 1, 0, 1, 1, 2, 2, 2, 3, 3 }; @@ -635,14 +637,14 @@ static int mpegts_write_pmt(AVFormatContext *s, MpegTSService *service) }; /* Vorbis mapping family */ - if (st->codecpar->extradata[19] == st->codecpar->channels - coupled_stream_counts[st->codecpar->channels] && - st->codecpar->extradata[20] == coupled_stream_counts[st->codecpar->channels] && - memcmp(&st->codecpar->extradata[21], channel_map_a[st->codecpar->channels-1], st->codecpar->channels) == 0) { - *q++ = st->codecpar->channels; - } else if (st->codecpar->channels >= 2 && st->codecpar->extradata[19] == st->codecpar->channels && + if (st->codecpar->extradata[19] == ch - coupled_stream_counts[ch] && + st->codecpar->extradata[20] == coupled_stream_counts[ch] && + memcmp(&st->codecpar->extradata[21], channel_map_a[ch - 1], ch) == 0) { + *q++ = ch; + } else if (ch >= 2 && st->codecpar->extradata[19] == ch && st->codecpar->extradata[20] == 0 && - memcmp(&st->codecpar->extradata[21], channel_map_b[st->codecpar->channels-1], st->codecpar->channels) == 0) { - *q++ = st->codecpar->channels | 0x80; + memcmp(&st->codecpar->extradata[21], channel_map_b[ch - 1], ch) == 0) { + *q++ = ch | 0x80; } else { /* Unsupported, could write an extended descriptor here */ av_log(s, AV_LOG_ERROR, "Unsupported Opus Vorbis-style channel mapping"); @@ -653,9 +655,9 @@ static int mpegts_write_pmt(AVFormatContext *s, MpegTSService *service) av_log(s, AV_LOG_ERROR, "Unsupported Opus channel mapping for family %d", st->codecpar->extradata[18]); *q++ = 0xff; } - } else if (st->codecpar->channels <= 2) { + } else if (ch <= 2) { /* Assume RTP mapping family */ - *q++ = st->codecpar->channels; + *q++ = ch; } else { /* Unsupported */ av_log(s, AV_LOG_ERROR, "Unsupported Opus channel mapping"); From patchwork Thu Jan 13 01:55:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33383 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp26526iog; Wed, 12 Jan 2022 18:14:35 -0800 (PST) X-Google-Smtp-Source: ABdhPJwXEgJIgnDXultiqqOqEiIUCxFfNwkMijG+FckRMsR2LUd30txbMKz6bMRWdC7KKMS5yc2M X-Received: by 2002:aa7:cd8a:: with SMTP id x10mr2290895edv.3.1642040075065; Wed, 12 Jan 2022 18:14:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040075; cv=none; d=google.com; s=arc-20160816; b=q9bIgg7hW5UzosZzL4jeEe14fX3P1tPLaaLHRvU8tojWPqbw73BdKXi+/uJdFen780 2RU0kKZcXWDEoJsToF4gT6q7k4j5PHQhVPY3doPUFsjAiBWrPe+x+Dt/Rx4ARKFETdTG KeliAtn5meQviBzKsuV7Q+uaJ69K7RtHFpHnj3znUbHmvoiAieVQ0AqsqsRDzFJ1ud30 lPZDuXMLWshnzMD538upYQml5gF4cG17MVUgSXYhF5Fcf8+Igx3nS3esYZl+1JBgFg3L LKcnSGcSaVfkqbwwjARSe788IhyQ70I6zcnsdAiVyYDv7IxJXqdZb48gr4+dJ7SMZfDQ R3GA== 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=BPRNLMHmUTgX5krTrUoEEGayKEknGSRRr18jashogrY=; b=wxLsoaYSE+bVGhNPRebSh+/sKoQJapKhwlJ3qqLNBxqbtHl+MXfvKTQH6PClgIFGYK JmVXDm4VQAGz053HL0JibglvCiUd6VTICZpQC/J6mvg/1avitspD/8bUlTIGYMXYbhyc FQM54XW9fhxzqCUmo+z7QqhlUWPc3zzboer/AnR3fLVs1VEzTVcdze3vYPqX9Wou5o0Z Blk9HB/a1NrF0oCVM7e7dLVX7TZXaJKiVbTGObK7RW1SHX5YkAvqqV4euNiUsNETVGLC MqYTNIVsadKegS5gG9x5vU8cgFLqPOOTLIpGt9hh0lozwL+21dNIJQMvIDGU3u78OTir TcsA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=GiSOmYUq; 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 ds7si1096642ejc.642.2022.01.12.18.14.34; Wed, 12 Jan 2022 18:14:35 -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=GiSOmYUq; 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 79A7068B27A; Thu, 13 Jan 2022 03:56:47 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f179.google.com (mail-qk1-f179.google.com [209.85.222.179]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D7E5C68B279 for ; Thu, 13 Jan 2022 03:56:44 +0200 (EET) Received: by mail-qk1-f179.google.com with SMTP id 82so5544822qki.10 for ; Wed, 12 Jan 2022 17:56:44 -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=x04NZF6BtQv/93m8Q1MaErTzAoJ0XJzPIciBtEFz3dU=; b=GiSOmYUqEhoMSVxngppebRk1Hv7oOMPyqiwHeng+C/ajnKM8hcx00Apvpmy+GLHFKH 5+6F6Q7kUhg3tgUs+9Qm0Gd8c61mzlohzQHO28gRSP0WiBZRYB1k32xbS4o7AJXPgLsq m4VbxISY1TC9K83nJEbLT4TBNg42WLGBeZlNx6RMwaQFTMwqafula8vSivjByDztSuC/ T25BKOpF0HfLcvcuM2V6husqG+UXOEqSGRk7XUUCTWX6VBfZXL91ayM6AYTMwz7RdfV9 cw4BFzRj04d11H8hmVwUNbIYtPdF6wzSqFqwP4/Pn4pVwechO+Mb+9zLWMO4uObsjCyg PgTg== 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=x04NZF6BtQv/93m8Q1MaErTzAoJ0XJzPIciBtEFz3dU=; b=pprJrbBSNDjCAzgM9Mdz4zGz3RBKy+gO6Ia6ClcKFXxaD91ahQTmDEWtxzYYkigqwn aYN6z4IXzNQQjTo4IN8KecrdPOXEqNOJVczpzbFrWmO6AArLiGwOdlUBRCIjzG+Aj5ZX 2rhgDuUzD7jVIRWZ8xHzJBSzpKnqKTkfDyBOW4pA3O5pAa6mxUaVAfwmsowouUGLvE/D fs5owggBklJhU7u3gV7j79INiB7HhQSktFvHkKfVLGd8aftUa182F577BZcARugQbD1B m3XlPztewo5j6w5MSrVvyyhccIfmS59kEoawad9/wEWxnQjgnP7WJbZOcXGa3DKPdH/6 oklg== X-Gm-Message-State: AOAM533a8KwpOGSCMuzhV8art/W91b06Gtk4tGBa5YDDJX745ooJ/AYp ETn24GtJGV+DLrFuNE3Eaw0zGfl4bYI= X-Received: by 2002:ae9:ed10:: with SMTP id c16mr1814079qkg.747.1642039003419; Wed, 12 Jan 2022 17:56:43 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id t11sm906506qkm.77.2022.01.12.17.56.42 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:56:43 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:55:57 -0300 Message-Id: <20220113015612.448-16-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 104/281] msf: 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: bm8s79TxdgIZ From: Anton Khirnov Signed-off-by: James Almer --- libavformat/msf.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/libavformat/msf.c b/libavformat/msf.c index 98a7ca11c3..ab3812b0fc 100644 --- a/libavformat/msf.c +++ b/libavformat/msf.c @@ -54,8 +54,10 @@ static int msf_read_header(AVFormatContext *s) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; codec = avio_rb32(s->pb); - st->codecpar->channels = avio_rb32(s->pb); - if (st->codecpar->channels <= 0 || st->codecpar->channels >= INT_MAX / 1024) + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = avio_rb32(s->pb); + if (st->codecpar->ch_layout.nb_channels <= 0 || + st->codecpar->ch_layout.nb_channels >= INT_MAX / 1024) return AVERROR_INVALIDDATA; size = avio_rb32(s->pb); st->codecpar->sample_rate = avio_rb32(s->pb); @@ -65,19 +67,19 @@ static int msf_read_header(AVFormatContext *s) switch (codec) { case 0: st->codecpar->codec_id = AV_CODEC_ID_PCM_S16BE; break; case 1: st->codecpar->codec_id = AV_CODEC_ID_PCM_S16LE; break; - case 3: st->codecpar->block_align = 16 * st->codecpar->channels; + case 3: st->codecpar->block_align = 16 * st->codecpar->ch_layout.nb_channels; st->codecpar->codec_id = AV_CODEC_ID_ADPCM_PSX; break; case 4: case 5: - case 6: st->codecpar->block_align = (codec == 4 ? 96 : codec == 5 ? 152 : 192) * st->codecpar->channels; - if (st->codecpar->channels > UINT16_MAX / 2048) + case 6: st->codecpar->block_align = (codec == 4 ? 96 : codec == 5 ? 152 : 192) * st->codecpar->ch_layout.nb_channels; + if (st->codecpar->ch_layout.nb_channels > UINT16_MAX / 2048) return AVERROR_INVALIDDATA; ret = ff_alloc_extradata(st->codecpar, 14); if (ret < 0) return ret; memset(st->codecpar->extradata, 0, st->codecpar->extradata_size); AV_WL16(st->codecpar->extradata, 1); /* version */ - AV_WL16(st->codecpar->extradata+2, 2048 * st->codecpar->channels); /* unknown size */ + AV_WL16(st->codecpar->extradata+2, 2048 * st->codecpar->ch_layout.nb_channels); /* unknown size */ AV_WL16(st->codecpar->extradata+6, codec == 4 ? 1 : 0); /* joint stereo */ AV_WL16(st->codecpar->extradata+8, codec == 4 ? 1 : 0); /* joint stereo (repeat?) */ AV_WL16(st->codecpar->extradata+10, 1); @@ -99,7 +101,7 @@ static int msf_read_packet(AVFormatContext *s, AVPacket *pkt) { AVCodecParameters *par = s->streams[0]->codecpar; - return av_get_packet(s->pb, pkt, par->block_align ? par->block_align : 1024 * par->channels); + return av_get_packet(s->pb, pkt, par->block_align ? par->block_align : 1024 * par->ch_layout.nb_channels); } const AVInputFormat ff_msf_demuxer = { From patchwork Thu Jan 13 01:55: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: 33384 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp26658iog; Wed, 12 Jan 2022 18:14:47 -0800 (PST) X-Google-Smtp-Source: ABdhPJyW6DW/L0onWph0QtJhHGqhHfkgPDQrj1irNbDQTnQ+S54Dk4IwhXR5ISOpmwtUJVdHmX4q X-Received: by 2002:a17:907:1b11:: with SMTP id mp17mr1929510ejc.374.1642040087107; Wed, 12 Jan 2022 18:14:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040087; cv=none; d=google.com; s=arc-20160816; b=lW+yzRo1p5plerTpPnGgqKgZ6MYoloUUrq0WkKv7kduOMbUdqptMoVPa51rcPgFmYa 2QbrBcRtwuHAP3pvnuENxxIrwAOFDItRIUCttMgQBuOlRrEk3znbvkisO96WeW3bn4vJ 482fRIC5pB+RcqUPNqGuLfNbDoRj7OBU/Pee7j1IkwgQV+mEaqKl/nqItriGpg27qzI+ UCy6kBJVhxhuzpzAWqn8mcTaFcOYmtNqREMT3RizBnz/Bx5ZN9BdgAPQ3BvQzerV5IXx mH5BSWUUaRznQyvK3EFaKRFu6J6F8DYlPu9c5K1MLrjt/zaWVsE8KZieNhnoBbHEeJGB FlaA== 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=9AF3k3j6tx6TmR35ZKVrfYHsmS9tf7irbaZTmNOhuFA=; b=U1Ac6WN1g0i2FbXYUCUZ+7VYmGqxiuqF3tHe6opdhf2ocao04MlmnD15bgziaU7IiX WzI7toR5mL63TBeT4+WIJ4IZ2uHrbgl6pZci5Nl8XJdByNWmWlrtmcqA1gQ4alC/FFMZ Ohfj22f2axOi7E5QZnWZ+SoxANUuUHrecYmKrnz4TQ33HEKU0gL5VNfKnhDGftYGRnJP M/SYVl0h6rMyV45yEFZKzp7yPkMgOmVm08gcNNjYcEFN7kb/dSaCQKPheQW27t4pC/2s J9L9d4xLEFuQCRBvoM5JPfs2Yi3IXlUrGk+11f0Z8ax1zXs9CZwoT0usghxhaSclnSWD eG+Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=RoF+QDoh; 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 cd8si708148ejb.566.2022.01.12.18.14.46; Wed, 12 Jan 2022 18:14:47 -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=RoF+QDoh; 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 636D168B2A8; Thu, 13 Jan 2022 03:56:48 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f43.google.com (mail-qv1-f43.google.com [209.85.219.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0BE8168B28A for ; Thu, 13 Jan 2022 03:56:45 +0200 (EET) Received: by mail-qv1-f43.google.com with SMTP id t7so5155038qvj.0 for ; Wed, 12 Jan 2022 17:56:45 -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=/Wi3WMmSSDQf81Leog9zJFyDeMOPnSu9PHQGboJM+BQ=; b=RoF+QDohdS4SQRk/T4hYc5Pyu5macROJgp6gKOPORpU83lsuntbElguDiZHcl8hELq vlfWoXDBCWnE/keuLQMcuNhtvgH4VvUMJT7YHXnofHSx2mf157ATLZYDJF5lAVY3O2EN 1qxNBZi+Hu36sWa4xtfiXEMdDGnGIkuJYtCfa7c1eBAuvlu9qXn8cYDPxHk7UbZtPwa0 9FIYc5wlcjktXv3ziARap4jNs3xWWGMFOBZPNa4EnoCd/wJPrth1Jp1ZRFHn6SBpx1xf a0CwsF0LN1k4aE3qWNHohyjEzLI3RFg2gx3CjZJS8g/oIUmjpbKOHlE+9MPrW+GgX/Bd CGxQ== 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=/Wi3WMmSSDQf81Leog9zJFyDeMOPnSu9PHQGboJM+BQ=; b=3yDly1UA6toL0EmV3xY9G3jVtWGazRUk5AGNZpgAS9OjoOoxyxC5ZkrQ3U3ipJ2N3y 2/2UiTqAI6U1F4yTUNCMhceHs8p4IG4RnwEeeoy9+U+H1ipesU1iM7xMDmQa+i2wvYNt DGGklEtSLEkI6HON0+MywIPogexT0s4/S19MMkLw8tZ8pU1Ga2IyBCWZETesM+QNJuVQ vLoyJZOQEO4x/t+faUHpbTbgKz7sw/uxEFOe6ZhpHfDq6VIgljopyzjr54brMBrBkZZF E3QpfiBwtyjMfL/zDbOisDm4MqnixSCMLucXt2LLQjsBcsOUkR9cHDK6e8mt1yeXXOz+ CEdA== X-Gm-Message-State: AOAM531bU3y0lw3bCgyBjwM7tbxMnMXfi46tr3FY5F7NmqQFj/TPbNQw AXZYlxS6shgHusg9brtNtMFwVJK+okY= X-Received: by 2002:a05:6214:509e:: with SMTP id kk30mr2200818qvb.61.1642039004627; Wed, 12 Jan 2022 17:56:44 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id t11sm906506qkm.77.2022.01.12.17.56.43 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:56:44 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:55:58 -0300 Message-Id: <20220113015612.448-17-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 105/281] mtaf: 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: Tla0fUt+/lPf From: Anton Khirnov Signed-off-by: James Almer --- libavformat/mtaf.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libavformat/mtaf.c b/libavformat/mtaf.c index 5da82e713b..fcca684866 100644 --- a/libavformat/mtaf.c +++ b/libavformat/mtaf.c @@ -54,9 +54,10 @@ static int mtaf_read_header(AVFormatContext *s) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_CODEC_ID_ADPCM_MTAF; - st->codecpar->channels = 2 * stream_count; + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = 2 * stream_count; st->codecpar->sample_rate = 48000; - st->codecpar->block_align = 0x110 * st->codecpar->channels / 2; + st->codecpar->block_align = 0x110 * st->codecpar->ch_layout.nb_channels / 2; avpriv_set_pts_info(st, 64, 1, st->codecpar->sample_rate); avio_seek(s->pb, 0x800, SEEK_SET); From patchwork Thu Jan 13 01:55:59 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33385 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp26787iog; Wed, 12 Jan 2022 18:14:59 -0800 (PST) X-Google-Smtp-Source: ABdhPJznkeY6KJydORJJlncxQrOSAovNQgb6JSyJxDdSw/xcSKE0NpZr3gedslkPSDSeDbOPy5s7 X-Received: by 2002:a17:907:2d9e:: with SMTP id gt30mr1977374ejc.495.1642040099445; Wed, 12 Jan 2022 18:14:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040099; cv=none; d=google.com; s=arc-20160816; b=IMu/kYHiQB2hBDKHm/BHPJ0g1/afqk65tq+ACRys2VOFvLfZYiH1DebStfE51jzeOR fTmLmcnQKu3CfoLxDxv3oNCZoA3BwxsSV9uBDW4wlO2IeIZR70Fi1DERZn+AjAMdePWX CasY4uEERGhbUGINcPPUZGc6KM9nHzqctVA4E23jTCZgoa2y2gyUU9oPjNlzRLg2Sove /FsD0bCqDMVigU+1Cp5y2mHep3lSSFL+omlcl4P4eUclNV80Kbh71A3wySebo3EUcAME o59PtZxXrFpV3Ys8pVINWRPRY5ha2deYpXGhGvMY2G+KZZUJOz3MbfXR+TQyhKOisx8c wwjw== 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=a7nFqlDtAW3iE1RT4oxSLftUSvsP0pvkRwPIZnPS4Hk=; b=jV6faqMNYzS9U5D8W6UM6/g0sWbAZ66Vgtd0jUJZXE2dq/TdCJQAgA8jiqWSVH1BQl DX9ILXEdxqowfxnafQEZf/OL2CPGRgQ2oL9OJDsHqlq24gFC5pOMWJaCUd8hOA7AYiBO piExLq1AWjYtS7HRiWa8gsLzFot+mXweztByEffibijVDrmsZF86O3V7TqtCqB+OnNek WqZqf5R72Oon3140yXTkT5PsRF9Krp2/BJiz5QUelaKeJsH8YS02sHtPiEdTplgI+0Ez CEJY+nrnyBOVjSqwZqIL3FKakdIr2wzrZFtYdU3ufGlygxf74C0ZdEL+ofMyVL7GGFE0 qCwQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b="q5tu/+hC"; 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 n18si740890ejk.571.2022.01.12.18.14.59; Wed, 12 Jan 2022 18:14:59 -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="q5tu/+hC"; 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 37BF768B28B; Thu, 13 Jan 2022 03:56:49 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f169.google.com (mail-qt1-f169.google.com [209.85.160.169]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3B05A68B26C for ; Thu, 13 Jan 2022 03:56:47 +0200 (EET) Received: by mail-qt1-f169.google.com with SMTP id c10so5375291qte.2 for ; Wed, 12 Jan 2022 17:56:47 -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=JfppnFsrsk/Xi/6O7P3kR97yHzS5ynpdkg1sNNufg+A=; b=q5tu/+hC0SW7ugQEdSpvt3F9/V1zATKXI+YiBN9EqFWZMKnYr72sp/qSAaRu0MzA0e aBS+9M1DF1WW0fgSSnlQOLP5DQl5MI2bcMcROUf6Rdct/SQypDNuw+x3p2nd73h1ASsG aI2TbAxLwQAUkWnUnO9NHXdqcBJdd5ieRxIFz9G/jUf3FVzFT4pYj097cHRlUYxqe5uH isnkka5+sQzMxsclxnxsac5sSBmORTIIG/iW+FlHuZvOlId8moOzodP+B25TmDCoKNMN G2YZwX2Iq2btI9FqP7s3+JLJye8A1XYOlmV282wvJmL1swbvWh9wpjDGCZVu1quFL9oK ew8g== 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=JfppnFsrsk/Xi/6O7P3kR97yHzS5ynpdkg1sNNufg+A=; b=KLWu7tC3gNlwiGh/itrNCLbt5Uc7OEV99e3xW9XWmw3n9FvQu3Ntq+uPke4QuxMSOq yRRnl6pd5OJFwwk+zkMGhy9pD2APWDNL3+0mdGqHWVoCWBOF9Q5o7sdO5vRvTFlKb5E/ GhV/8uZ38vK5u9ERNxLrk7dxqsHS7BCFK9xjer4K51S7CLVcJbZjLyiTI23v7XXu86XJ 5aotP6a3Dl0uF6n+bWcYZceIq8T5+/jEb6HnkmcHjtvxJGmcBNS1Nx3djBgSQyt/+eLo taNdIDmHnmepQtt05Q/NpPU4cUWHFsXlZ8WznZnT+OsfZscqdG/Dba9zGHWmtzyZuVih Letg== X-Gm-Message-State: AOAM5304l/OKucB2j6SVupIvkJrI4H15TrcHH9nyJ+YGOyt2V+r3x4kR ekuPjRhgAE+wRGetlR8tv3MgJm+uJxY= X-Received: by 2002:ac8:5a8c:: with SMTP id c12mr1997939qtc.424.1642039005796; Wed, 12 Jan 2022 17:56:45 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id t11sm906506qkm.77.2022.01.12.17.56.44 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:56:45 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:55:59 -0300 Message-Id: <20220113015612.448-18-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 106/281] musx: 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: +tEnP62Y2fYf From: Anton Khirnov Signed-off-by: James Almer --- libavformat/musx.c | 49 ++++++++++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 21 deletions(-) diff --git a/libavformat/musx.c b/libavformat/musx.c index fd5a9297f9..edb65ccf86 100644 --- a/libavformat/musx.c +++ b/libavformat/musx.c @@ -68,30 +68,32 @@ static int musx_read_header(AVFormatContext *s) offset = avio_rl32(s->pb); st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_CODEC_ID_ADPCM_PSX; - st->codecpar->channels = 2; + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = 2; st->codecpar->sample_rate = 32000; - st->codecpar->block_align = 0x80 * st->codecpar->channels; + st->codecpar->block_align = 0x80 * st->codecpar->ch_layout.nb_channels; } else if (version == 10) { type = avio_rl32(s->pb); st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; offset = 0x800; switch (type) { case MKTAG('P', 'S', '3', '_'): - st->codecpar->channels = 2; + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = 2; st->codecpar->sample_rate = 44100; avio_skip(s->pb, 44); coding = avio_rl32(s->pb); if (coding == MKTAG('D', 'A', 'T', '4') || coding == MKTAG('D', 'A', 'T', '8')) { avio_skip(s->pb, 4); - st->codecpar->channels = avio_rl32(s->pb); - if (st->codecpar->channels <= 0 || - st->codecpar->channels > INT_MAX / 0x20) + st->codecpar->ch_layout.nb_channels = avio_rl32(s->pb); + if (st->codecpar->ch_layout.nb_channels <= 0 || + st->codecpar->ch_layout.nb_channels > INT_MAX / 0x20) return AVERROR_INVALIDDATA; st->codecpar->sample_rate = avio_rl32(s->pb); } st->codecpar->codec_id = AV_CODEC_ID_ADPCM_IMA_DAT4; - st->codecpar->block_align = 0x20 * st->codecpar->channels; + st->codecpar->block_align = 0x20 * st->codecpar->ch_layout.nb_channels; break; case MKTAG('W', 'I', 'I', '_'): avio_skip(s->pb, 44); @@ -103,30 +105,34 @@ static int musx_read_header(AVFormatContext *s) } avio_skip(s->pb, 4); st->codecpar->codec_id = AV_CODEC_ID_ADPCM_IMA_DAT4; - st->codecpar->channels = avio_rl32(s->pb); - if (st->codecpar->channels <= 0 || - st->codecpar->channels > INT_MAX / 0x20) + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = avio_rl32(s->pb); + if (st->codecpar->ch_layout.nb_channels <= 0 || + st->codecpar->ch_layout.nb_channels > INT_MAX / 0x20) return AVERROR_INVALIDDATA; st->codecpar->sample_rate = avio_rl32(s->pb); - st->codecpar->block_align = 0x20 * st->codecpar->channels; + st->codecpar->block_align = 0x20 * st->codecpar->ch_layout.nb_channels; break; case MKTAG('X', 'E', '_', '_'): st->codecpar->codec_id = AV_CODEC_ID_ADPCM_IMA_DAT4; - st->codecpar->channels = 2; + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = 2; st->codecpar->sample_rate = 32000; - st->codecpar->block_align = 0x20 * st->codecpar->channels; + st->codecpar->block_align = 0x20 * st->codecpar->ch_layout.nb_channels; break; case MKTAG('P', 'S', 'P', '_'): st->codecpar->codec_id = AV_CODEC_ID_ADPCM_PSX; - st->codecpar->channels = 2; + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = 2; st->codecpar->sample_rate = 32768; - st->codecpar->block_align = 0x80 * st->codecpar->channels; + st->codecpar->block_align = 0x80 * st->codecpar->ch_layout.nb_channels; break; case MKTAG('P', 'S', '2', '_'): st->codecpar->codec_id = AV_CODEC_ID_ADPCM_PSX; - st->codecpar->channels = 2; + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = 2; st->codecpar->sample_rate = 32000; - st->codecpar->block_align = 0x80 * st->codecpar->channels; + st->codecpar->block_align = 0x80 * st->codecpar->ch_layout.nb_channels; break; default: avpriv_request_sample(s, "Unsupported type: %X", type); @@ -136,23 +142,24 @@ static int musx_read_header(AVFormatContext *s) type = avio_rl32(s->pb); avio_skip(s->pb, 20); st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; - st->codecpar->channels = 2; + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = 2; switch (type) { case MKTAG('G', 'C', '_', '_'): st->codecpar->codec_id = AV_CODEC_ID_ADPCM_IMA_DAT4; - st->codecpar->block_align = 0x20 * st->codecpar->channels; + st->codecpar->block_align = 0x20 * st->codecpar->ch_layout.nb_channels; st->codecpar->sample_rate = 32000; offset = avio_rb32(s->pb); break; case MKTAG('P', 'S', '2', '_'): st->codecpar->codec_id = AV_CODEC_ID_ADPCM_PSX; - st->codecpar->block_align = 0x80 * st->codecpar->channels; + st->codecpar->block_align = 0x80 * st->codecpar->ch_layout.nb_channels; st->codecpar->sample_rate = 32000; offset = avio_rl32(s->pb); break; case MKTAG('X', 'B', '_', '_'): st->codecpar->codec_id = AV_CODEC_ID_ADPCM_IMA_DAT4; - st->codecpar->block_align = 0x20 * st->codecpar->channels; + st->codecpar->block_align = 0x20 * st->codecpar->ch_layout.nb_channels; st->codecpar->sample_rate = 44100; offset = avio_rl32(s->pb); break; From patchwork Thu Jan 13 01:56:00 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33386 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp26950iog; Wed, 12 Jan 2022 18:15:11 -0800 (PST) X-Google-Smtp-Source: ABdhPJxLDpApXsydFJroRoudTUVgVQKw0nxYtrcq3EU3IrrbDq3bRWZAZ1wCPqm9JSmy7xuELVUW X-Received: by 2002:a05:6402:5216:: with SMTP id s22mr2274902edd.132.1642040111415; Wed, 12 Jan 2022 18:15:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040111; cv=none; d=google.com; s=arc-20160816; b=ltM15teSItBtD6PhybwheWnrvQSpd5bKdCzfyhPd8jndc81QwEpHz+bWjXIZfNDJTG KW+BstXLD1UAR9Fipxj622uw8u9Mr8pQUMz97bOUU9uTttjwaLRXRWpVJIt+2VAitve4 H2XtNnfsQZMqPhJCX1nzuFf1BsIQ8GVbxyrAynAhzLSylOo0x2jk1G6Vm+Ug58UrW56L r/QNh2O31UiAtaorQS7FCaAmtQmP47Akr6FcKzpasdFi5jHk9Lj/Vw/vCsj+bas8/kOW sd9b7Ti/RzZcoQaC0cjN4VSg8nhzVSNcvAO5GCsLsaZ6teoqXqzAKReT0l1sljJfQcgM Y8BQ== 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=zxmxHAJft23Y2eSi13rflba/AaytZxblAsRW6Zfmmog=; b=LSczj6DntgDoWyd70M6jUE6gnd99s1pUgGnE+mkFdkYl3nKtZA5jXmGMi1pd5uwTlI 1jVPwsy+xbXlIKFmRJv/lGNio+hw6scMSphD9AFYfO/1cdrhtZrVVJvdJidq1AiITgf9 uL0u0H5mpBIr9i2/W3+zmijpvIs7sNOpr+4ttb+k7WFGjQ9LInj5KaGWaDIKLF6h/Nju sBCdhZNbWQjNWlDGqkPGFRbS0gTGXY3UXWz1DaaVr93RZk9j7b+dH47g08qT28kL7P7u 2ebWyz8iGJ3f+wxlwjw5fWWYfPbqdFYkBCcqPKlDZRHKprD2r0h6907xaCOsMRW1xZHB GA/g== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=B4bXRBxW; 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 o13si854907edz.353.2022.01.12.18.15.11; Wed, 12 Jan 2022 18:15:11 -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=B4bXRBxW; 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 2930168B2B7; Thu, 13 Jan 2022 03:56:50 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f175.google.com (mail-qt1-f175.google.com [209.85.160.175]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5610168B2A7 for ; Thu, 13 Jan 2022 03:56:48 +0200 (EET) Received: by mail-qt1-f175.google.com with SMTP id v7so5314625qtw.13 for ; Wed, 12 Jan 2022 17:56:48 -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=nfAF4bnDBv+Y4DEx4GFPCgxTY4zlgk/JprsXcoOV1J0=; b=B4bXRBxWPApWN0/772gH74yEYGDHm5fcr0nFhZW+eT0w7+iEXMZIvR70WlCcfD5EwT H/PM+ur8Sgm+EPglDtYwvg+6/Qd2pZcUS/LgB89vxw8JtsJyMYSxjjoU5H0qFEgBRS60 L80sIJT/NGx3RZlI9Hw4gbKiKfHhENNKgtmqO+bLa4N/oBfprAc3NIqX4LmNSRkk6xn4 ThamPl8IuY1iNPCwPc4xmgArMG7L18IVJS3oXKLvHOSm/dmllcbny4e9oZXzxhC2mY4V 8Pf9RW8qGiXZ79h//ViB974jrngc45fTzEHr7OzrQlBfXjHwYq2iRAuvP6t9IAMq0NHV TZIw== 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=nfAF4bnDBv+Y4DEx4GFPCgxTY4zlgk/JprsXcoOV1J0=; b=cwvHJZb/B7Zn5nwuGWV47A2XFcMXINL5wkiOVV8zOI4Uzj5bfBUEQD3KchoXI4w3Dm UiIqvnnJqiKmRAmxKwRc7YJu/ks1RrDJM7paqIcOIdlROPbJTMGe7yQxobG06Z6Yrfd3 BNUxWuuCPerw9YlYHZ3DiEpSJhXljSvpFthGf9Si36S1oMPjkxcLjR/jK60JG1cdFjVR 5S5C+ksyJcS0yYKm8ooCAfv7ovC3njr5pEQAFdrIdlGq3uzPoBLD+7wGZLAOTqLzfHA2 aKnvKMHlHmbB1Ak7dtTVBKJy0tvlCHwtpY6a1//A1dPCR7BfeW72FAqr0H3OPXgdIlNP PnWQ== X-Gm-Message-State: AOAM531o/5wwXE9AXNBV3FfAqA9uMI+B+KMkTbkQlmKs4L1YVRSYeuEU z73/yw6fS6pF5wpJaCQW93oz3JlSYTM= X-Received: by 2002:a05:622a:245:: with SMTP id c5mr2023987qtx.189.1642039006976; Wed, 12 Jan 2022 17:56:46 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id t11sm906506qkm.77.2022.01.12.17.56.46 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:56:46 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:56:00 -0300 Message-Id: <20220113015612.448-19-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 107/281] mvdec: 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: Nu3snFBkJjRq From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/mvdec.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/libavformat/mvdec.c b/libavformat/mvdec.c index 4f233aff5f..b37fe2ce69 100644 --- a/libavformat/mvdec.c +++ b/libavformat/mvdec.c @@ -111,9 +111,7 @@ static int set_channels(AVFormatContext *avctx, AVStream *st, int channels) av_log(avctx, AV_LOG_ERROR, "Channel count %d invalid.\n", channels); return AVERROR_INVALIDDATA; } - st->codecpar->channels = channels; - st->codecpar->channel_layout = (st->codecpar->channels == 1) ? AV_CH_LAYOUT_MONO - : AV_CH_LAYOUT_STEREO; + av_channel_layout_default(&st->codecpar->ch_layout, channels); return 0; } @@ -283,7 +281,7 @@ static void read_index(AVIOContext *pb, AVStream *st) return ; av_add_index_entry(st, pos, timestamp, size, 0, AVINDEX_KEYFRAME); if (st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) { - timestamp += size / (st->codecpar->channels * 2LL); + timestamp += size / (st->codecpar->ch_layout.nb_channels * 2LL); } else { timestamp++; } @@ -402,7 +400,7 @@ static int mv_read_header(AVFormatContext *avctx) avio_skip(pb, 8); if (ast) { av_add_index_entry(ast, pos, timestamp, asize, 0, AVINDEX_KEYFRAME); - timestamp += asize / (ast->codecpar->channels * (uint64_t)bytes_per_sample); + timestamp += asize / (ast->codecpar->ch_layout.nb_channels * (uint64_t)bytes_per_sample); } av_add_index_entry(vst, pos + asize, i, vsize, 0, AVINDEX_KEYFRAME); } @@ -439,7 +437,7 @@ static int mv_read_header(AVFormatContext *avctx) ast->codecpar->bits_per_coded_sample); ast->codecpar->codec_id = AV_CODEC_ID_NONE; } - if (ast->codecpar->channels <= 0) { + if (ast->codecpar->ch_layout.nb_channels <= 0) { av_log(avctx, AV_LOG_ERROR, "No valid channel count found.\n"); return AVERROR_INVALIDDATA; } From patchwork Thu Jan 13 01:56:01 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33387 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp27111iog; Wed, 12 Jan 2022 18:15:24 -0800 (PST) X-Google-Smtp-Source: ABdhPJwXsZK7i7D/pWembpdZF/QAWhxObfbfj3aXBaUWITVa1+RwgphMpB/QvBDdyIl/izaEtpD9 X-Received: by 2002:a05:6402:2803:: with SMTP id h3mr2256138ede.241.1642040124709; Wed, 12 Jan 2022 18:15:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040124; cv=none; d=google.com; s=arc-20160816; b=oeL8J3bjxi4OeGotRp8SrIBhwj1N9sUOu5rtgCHSuuj8zoAJj6b6Q5OxDb33gHt+Fh YU7wfP1TjTJuJOoCbr4fCmDUDybj0nwCVHp2AyTXS35r8htY7mBoQxlVSDszfOluOmnP /p9Co/qNx50M6koIS3zqy8zt29qcZZjUHqysEdk2rRM4Rm+WwU6PhUkyzw0cNeiUxIHL j3CkORaBjEMsdBCRXdAyMMzYIGVgR6YKarPAN9RUPRBT/SCVwNoy/bn1c7cTBt5MK571 AY9I9mMvp+hFbL7LNTNWFTQdtokq/C9e+IasCIsyhCVhe5ZRtm2iJhW0y3H9n6RdVuQ+ lEuA== 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=+6nrRxayMoVfibFu4U+Wjs5CmjxzsjN0nrN5DR+imB4=; b=NEdqcBTDGQsGwVW3Yk47X28NF8v7VIct1HF/AQ8S1WycClILz3J6dB7fiZg/tXBasM nysogFnFFWK7JaTELQ+L1fVUlnw9K7EANBpkcet+dITWRLg35OtL/SZnzVf4mOEQ38BA vAzCaxvNiFwAvlM2v2Yn5oYJm7aJRafAf2DgAxoT9yDz8DEd7KX8pDHE8MqFlLjvFO7z aYJcjbecEpLJ/87z2Mj5D1Oy515+SQ6J3Yr6cQeiEZ1rJLc9ao5lPsWDFGu9NIDPIWB7 WRX0lkCm5DYHJp6EWzHq6AgjwI2E9kpekGims0p5BIeNSSEzzGAHskh5Rq8HhgULg3L9 hBGA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=mPBBQElZ; 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 l3si844673ejd.618.2022.01.12.18.15.24; Wed, 12 Jan 2022 18:15:24 -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=mPBBQElZ; 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 867E768B2C1; Thu, 13 Jan 2022 03:56:52 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f46.google.com (mail-qv1-f46.google.com [209.85.219.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8EFAB68B2AA for ; Thu, 13 Jan 2022 03:56:49 +0200 (EET) Received: by mail-qv1-f46.google.com with SMTP id hu2so5085374qvb.8 for ; Wed, 12 Jan 2022 17:56:49 -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=yLkRLFLUJbbqBLH8diNGpWr1EQE3cU0lfaZ2A0ciSJ0=; b=mPBBQElZDDESrJ7Cx61syus+uEuYR4YzcwBGJioTqlbmlXL6In4wZKRV/+meCgAtB1 i+b08jmblumTs57r3YXuR6KhcSuffkSIAxUcgunXwRrzc+TEJ/shYBqr6juLQUJYpWt/ ZzylOQrx0F9SiblEpfmGWroBGuDcvnSl1vj/qVx1NvzQotBEKRDgXCkqHy6uOxPMKkS8 CiZx3uPgT3g6z7YJ/WXaLDZHBeY8i3Qp6rBFADqw4tItjn0FgxjnFoIAtr06YQrWvvMR jlxqOczcfywNSh7sZgzhRN5J8AooCd8kTVZKt8LpzdntKLbgeq8YolbnaxVCbP9qlDHK 0TzA== 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=yLkRLFLUJbbqBLH8diNGpWr1EQE3cU0lfaZ2A0ciSJ0=; b=G3ugv5nKKtk8fvqzb69+h9Ri+rHaRni/GtLxEGFqVYbRQyIkrgwNQejxwV3Q6dnhW1 yuaF5z94iCXG+UKpBGANaP25AW2k+RNe6ng2cK/LuvhRwDxMZGIHhrMinNO1kfdVfsja E6wQqjzKBu7FF2w6EdoI2YTzTwaXD5NL125KM7sU14b9coC9JyUKIiMsD5tQzQsa9XmC 8lh04I5EhOjfo7/wcU4UNlpCX4qUU/TjU26xbUaRkhAoMwm8BbdcLHil7xyOLpmLAlFf ZnaptX+3q7n0lZvZyHH/TzcZzcMLVSZPWPPdqH79w3yDDKBOMzguVcN47BLUy/kYB+fk oWSw== X-Gm-Message-State: AOAM533KsZlqq3nNicwvlBct2cKqF5cycgkGaB/qZsIyOgCBqKKUFf7L ZermbIPQhn641eRhlRPXwtYtC9g6F58= X-Received: by 2002:a05:6214:2349:: with SMTP id hu9mr2140945qvb.66.1642039008151; Wed, 12 Jan 2022 17:56:48 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id t11sm906506qkm.77.2022.01.12.17.56.47 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:56:47 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:56:01 -0300 Message-Id: <20220113015612.448-20-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 108/281] mvi: 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: /+d4LzwDxNkK From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/mvi.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libavformat/mvi.c b/libavformat/mvi.c index 4c67e3569d..b2d6a92a4b 100644 --- a/libavformat/mvi.c +++ b/libavformat/mvi.c @@ -84,8 +84,7 @@ static int read_header(AVFormatContext *s) avpriv_set_pts_info(ast, 64, 1, ast->codecpar->sample_rate); ast->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; ast->codecpar->codec_id = AV_CODEC_ID_PCM_U8; - ast->codecpar->channels = 1; - ast->codecpar->channel_layout = AV_CH_LAYOUT_MONO; + ast->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; ast->codecpar->bits_per_coded_sample = 8; ast->codecpar->bit_rate = ast->codecpar->sample_rate * 8; From patchwork Thu Jan 13 01:56:02 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33388 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp27278iog; Wed, 12 Jan 2022 18:15:37 -0800 (PST) X-Google-Smtp-Source: ABdhPJwwjHNFeZzkItq1faUgQPO9+6QNVD+Y/1UPpjMYuWLnk8Z9f6Im9iuvBmmYZWTLE+V/TeLw X-Received: by 2002:a17:907:86ac:: with SMTP id qa44mr1869353ejc.728.1642040137693; Wed, 12 Jan 2022 18:15:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040137; cv=none; d=google.com; s=arc-20160816; b=bCubFDyq07sE/Xw894IsCuw0OuqaT0Z1p7GF94MmbVaA14M95exConJ4U440UPsVWs Te2NY7uVFA0C+T6FfrNpFLd5lZtzuyOfrqebLewed5k8a/j0/veI57UDriTGHwsrfja7 sAIjYNTHJfhfmn90K13o2v3hjNd+pACrgllBnaECdDd0JzWC/fyiv3bWDGepa6b782Mx +PZ6EfFSpgKiVGTmHN1GUvA2zsZsQxM8ByExZSs4BiYGL6am0YcZpgTdAReiiFC3uWx0 252ipuiBlJ/rOLHvlnY+zkW4YgAxH9EOWrELfT9J7dpHHwVF05ogj39m+eU/0fsL3WXt fdUA== 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=C+dHRSZW+5SyLTkuQn1qwXnDHz5HmClta91s0Y6rAaU=; b=HKBEuYuVbGaqlCREE5cUUWajyjVHzuexdZyZzFiQr1CTtnfl+wwIKfA8yNyKoEuumf oaJI1JJ5MhRdcBmoUprV9hWsCwoLlSa+eMy6CGe74zbYO5BgOxmTTUSKgCzaUH91DrvB XWmNfgiobapWGvIkng1310AXrB5Ka5IWjNZBD9ivthcb/AJMRrvAncGJTDtQaCFwRQwW Y/Qel6wFcGWNk9GxhUi4PI6QrCOg7IsOhzeoCzx400XrfKIq2dSvyhHO4akc6dohInVk Y9tEjkM8ReTaAp5MT7+kf+horedhCRZGcxuxanRmubMwLsRL+yfnTHqwNay0/9mF+nIz qFaQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=CxjnuZxs; 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 i30si862329eda.468.2022.01.12.18.15.37; Wed, 12 Jan 2022 18:15:37 -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=CxjnuZxs; 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 705D868B2C8; Thu, 13 Jan 2022 03:56:53 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f182.google.com (mail-qt1-f182.google.com [209.85.160.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3549568B2AF for ; Thu, 13 Jan 2022 03:56:51 +0200 (EET) Received: by mail-qt1-f182.google.com with SMTP id l17so5331803qtk.7 for ; Wed, 12 Jan 2022 17:56:51 -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=rzm/JMlfaaLZh8GHaRxJpt5fyl3Uw2rf6EbbnBJT90U=; b=CxjnuZxs6pUZO3TqF5QmjmssUirVzHJGX+aE49YCadnBfzNku1qXR35aa8ZVfmXrqn PIYzPdbk2IfXIt+cEnpN0VbjegAP3GVJc9GA6scoBjXXDJ/4V+WOy/oFaqHXI04seEVe ZOTAOcJAxdr98ESUI8db9nBo/gkyRu8+/CrXiHW8/i4oJ1ehCrm+vxUUXbo6hAE5y5xM dvxVgM81NmnAe2XVW2UjmysH1o9EtPJJAxsNUFqsIoYVY3JAAKBrOPnC2Ic1cupeM6Sj x85ubnSodW9/rZWrqZQGkf+Jzk7R5w7x/GnSVZQzFp7Zgj7RKez+nLGWzyv4OeEkzMf6 oDnQ== 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=rzm/JMlfaaLZh8GHaRxJpt5fyl3Uw2rf6EbbnBJT90U=; b=Nk6uBQXsBDWl6gHLYB4c0ViXx2YE8Zx+z6q55UdfHdKhQQn1aONKw7eIIRtO/nOLor +GnQQhG4D4ISoRo4wjNxMFILaoFjKZi7slXPcxa/rEEAp7xV0aO3uYOD0EsjfENwBrVc 5eRSWINfAeXa1P97SoRDZDiVZ1umdTdQhtpE6+RLg4LVOyQiWS/w0b9+87eWzRFVytz1 IEDEk8aAAP+AhzK2GcbJVfYPydh5375Ni5sPxrUgQRL2P1btVeGtIFSKb1TFvjJZx72k BHDCU/Mt1O+GeznVL4nQbXk5aPKvhKDxnKOLV0DS/9SLSngLdrmj4KlRYSH4Cjfo0uGt h1dw== X-Gm-Message-State: AOAM531bEct7G77bOfOWGA4uMTNcDMG9xNSB+6r2cL2QA4XFt6aUVOzK I1QOYli2UVbi3MJOD4szc3B3TryErpI= X-Received: by 2002:a05:622a:4c7:: with SMTP id q7mr2037936qtx.226.1642039009423; Wed, 12 Jan 2022 17:56:49 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id t11sm906506qkm.77.2022.01.12.17.56.48 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:56:49 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:56:02 -0300 Message-Id: <20220113015612.448-21-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 109/281] mxf: 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: poRxDVdonCQx From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavformat/mxfdec.c | 34 +++++++++++++++++++++------------- libavformat/mxfenc.c | 20 +++++++++++--------- 2 files changed, 32 insertions(+), 22 deletions(-) diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c index b85c10bf19..2db32255ab 100644 --- a/libavformat/mxfdec.c +++ b/libavformat/mxfdec.c @@ -591,18 +591,19 @@ static int mxf_get_d10_aes3_packet(AVIOContext *pb, AVStream *st, AVPacket *pkt, end_ptr = pkt->data + length; buf_ptr = pkt->data + 4; /* skip SMPTE 331M header */ - if (st->codecpar->channels > 8) + if (st->codecpar->ch_layout.nb_channels > 8) return AVERROR_INVALIDDATA; - for (; end_ptr - buf_ptr >= st->codecpar->channels * 4; ) { - for (i = 0; i < st->codecpar->channels; i++) { + for (; end_ptr - buf_ptr >= st->codecpar->ch_layout.nb_channels * 4; ) { + for (i = 0; i < st->codecpar->ch_layout.nb_channels; i++) { uint32_t sample = bytestream_get_le32(&buf_ptr); if (st->codecpar->bits_per_coded_sample == 24) bytestream_put_le24(&data_ptr, (sample >> 4) & 0xffffff); else bytestream_put_le16(&data_ptr, (sample >> 12) & 0xffff); } - buf_ptr += 32 - st->codecpar->channels*4; // always 8 channels stored SMPTE 331M + // always 8 channels stored SMPTE 331M + buf_ptr += 32 - st->codecpar->ch_layout.nb_channels * 4; } av_shrink_packet(pkt, data_ptr - pkt->data); return 0; @@ -2536,6 +2537,7 @@ static int parse_mca_labels(MXFContext *mxf, MXFTrack *source_track, MXFDescript if (has_channel_label) { uint64_t channel_layout = 0; + int ret; for (int i = 0; i < descriptor->channels; i++) { if (!routing[i]) { @@ -2544,9 +2546,11 @@ static int parse_mca_labels(MXFContext *mxf, MXFTrack *source_track, MXFDescript return 0; } if (channel_layout & routing[i]) { + char buf[32]; + av_channel_name(buf, sizeof(buf), routing[i]); av_log(mxf->fc, AV_LOG_WARNING, "%s audio channel is used multiple times in stream #%d, " "falling back to unknown channel layout\n", - av_get_channel_name(routing[i]), st->index); + buf, st->index); return 0; } if (routing[i] < channel_layout) { @@ -2557,9 +2561,11 @@ static int parse_mca_labels(MXFContext *mxf, MXFTrack *source_track, MXFDescript channel_layout |= routing[i]; } - av_assert0(descriptor->channels == av_get_channel_layout_nb_channels(channel_layout)); + av_assert0(descriptor->channels == av_popcount64(channel_layout)); - st->codecpar->channel_layout = channel_layout; + ret = av_channel_layout_from_mask(&st->codecpar->ch_layout, channel_layout); + if (ret < 0) + return ret; } return 0; @@ -2927,7 +2933,8 @@ static int mxf_parse_structural_metadata(MXFContext *mxf) /* Only overwrite existing codec ID if it is unset or A-law, which is the default according to SMPTE RP 224. */ if (st->codecpar->codec_id == AV_CODEC_ID_NONE || (st->codecpar->codec_id == AV_CODEC_ID_PCM_ALAW && (enum AVCodecID)container_ul->id != AV_CODEC_ID_NONE)) st->codecpar->codec_id = (enum AVCodecID)container_ul->id; - st->codecpar->channels = descriptor->channels; + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = descriptor->channels; if (descriptor->sample_rate.den > 0) { st->codecpar->sample_rate = descriptor->sample_rate.num / descriptor->sample_rate.den; @@ -3553,7 +3560,8 @@ static int mxf_handle_missing_index_segment(MXFContext *mxf, AVStream *st) return 0; if (st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO && is_pcm(st->codecpar->codec_id)) { - edit_unit_byte_count = (av_get_bits_per_sample(st->codecpar->codec_id) * st->codecpar->channels) >> 3; + edit_unit_byte_count = (av_get_bits_per_sample(st->codecpar->codec_id) * + st->codecpar->ch_layout.nb_channels) >> 3; } else if (st->duration > 0 && p->first_essence_klv.length > 0 && p->first_essence_klv.length % st->duration == 0) { edit_unit_byte_count = p->first_essence_klv.length / st->duration; } @@ -3858,12 +3866,12 @@ static int mxf_set_audio_pts(MXFContext *mxf, AVCodecParameters *par, pkt->pts = track->sample_count; - if ( par->channels <= 0 - || bits_per_sample <= 0 - || par->channels * (int64_t)bits_per_sample < 8) + if (par->ch_layout.nb_channels <= 0 || + bits_per_sample <= 0 || + par->ch_layout.nb_channels * (int64_t)bits_per_sample < 8) track->sample_count = mxf_compute_sample_count(mxf, st, av_rescale_q(track->sample_count, st->time_base, av_inv_q(track->edit_rate)) + 1); else - track->sample_count += pkt->size / (par->channels * (int64_t)bits_per_sample / 8); + track->sample_count += pkt->size / (par->ch_layout.nb_channels * (int64_t)bits_per_sample / 8); return 0; } diff --git a/libavformat/mxfenc.c b/libavformat/mxfenc.c index 5e068c8220..5fa234c5c0 100644 --- a/libavformat/mxfenc.c +++ b/libavformat/mxfenc.c @@ -1455,17 +1455,19 @@ static int64_t mxf_write_generic_sound_common(AVFormatContext *s, AVStream *st, mxf_write_local_tag(s, 4, 0x3D07); if (mxf->channel_count == -1) { - if (show_warnings && (s->oformat == &ff_mxf_d10_muxer) && (st->codecpar->channels != 4) && (st->codecpar->channels != 8)) + if (show_warnings && (s->oformat == &ff_mxf_d10_muxer) && + (st->codecpar->ch_layout.nb_channels != 4) && + (st->codecpar->ch_layout.nb_channels != 8)) av_log(s, AV_LOG_WARNING, "the number of audio channels shall be 4 or 8 : the output will not comply to MXF D-10 specs, use -d10_channelcount to fix this\n"); - avio_wb32(pb, st->codecpar->channels); + avio_wb32(pb, st->codecpar->ch_layout.nb_channels); } else if (s->oformat == &ff_mxf_d10_muxer) { - if (show_warnings && (mxf->channel_count < st->codecpar->channels)) + if (show_warnings && (mxf->channel_count < st->codecpar->ch_layout.nb_channels)) av_log(s, AV_LOG_WARNING, "d10_channelcount < actual number of audio channels : some channels will be discarded\n"); if (show_warnings && (mxf->channel_count != 4) && (mxf->channel_count != 8)) av_log(s, AV_LOG_WARNING, "d10_channelcount shall be set to 4 or 8 : the output will not comply to MXF D-10 specs\n"); avio_wb32(pb, mxf->channel_count); } else { - avio_wb32(pb, st->codecpar->channels); + avio_wb32(pb, st->codecpar->ch_layout.nb_channels); } mxf_write_local_tag(s, 4, 0x3D01); @@ -2624,7 +2626,7 @@ static int mxf_init(AVFormatContext *s) av_log(s, AV_LOG_ERROR, "Only pcm_s16le and pcm_s24le audio codecs are implemented\n"); return AVERROR_PATCHWELCOME; } - if (st->codecpar->channels != 1) { + if (st->codecpar->ch_layout.nb_channels != 1) { av_log(s, AV_LOG_ERROR, "MXF OPAtom only supports single channel audio\n"); return AVERROR(EINVAL); } @@ -2633,11 +2635,11 @@ static int mxf_init(AVFormatContext *s) if((ret = mxf_init_timecode(s, st, tbc)) < 0) return ret; - mxf->edit_unit_byte_count = (av_get_bits_per_sample(st->codecpar->codec_id) * st->codecpar->channels) >> 3; + mxf->edit_unit_byte_count = (av_get_bits_per_sample(st->codecpar->codec_id) * st->codecpar->ch_layout.nb_channels) >> 3; sc->index = INDEX_WAV; } else { mxf->slice_count = 1; - sc->frame_size = st->codecpar->channels * + sc->frame_size = st->codecpar->ch_layout.nb_channels * av_rescale_rnd(st->codecpar->sample_rate, mxf->time_base.num, mxf->time_base.den, AV_ROUND_UP) * av_get_bits_per_sample(st->codecpar->codec_id) / 8; } @@ -2783,10 +2785,10 @@ static void mxf_write_d10_audio_packet(AVFormatContext *s, AVStream *st, AVPacke avio_w8(pb, (frame_size == 1920 ? 0 : (mxf->edit_units_count-1) % 5 + 1)); avio_wl16(pb, frame_size); - avio_w8(pb, (1<codecpar->channels)-1); + avio_w8(pb, (1 << st->codecpar->ch_layout.nb_channels)-1); while (samples < end) { - for (i = 0; i < st->codecpar->channels; i++) { + for (i = 0; i < st->codecpar->ch_layout.nb_channels; i++) { uint32_t sample; if (st->codecpar->codec_id == AV_CODEC_ID_PCM_S24LE) { sample = AV_RL24(samples)<< 4; From patchwork Thu Jan 13 01:56:03 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33389 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp27453iog; Wed, 12 Jan 2022 18:15:50 -0800 (PST) X-Google-Smtp-Source: ABdhPJzQCJ1WBnOu5+7oKi3RhFvF2rkLNp6XvXZBYZXrhodsCdTFR8QV9YAPKOMRkIx8ITEBjZeZ X-Received: by 2002:a17:907:94d3:: with SMTP id dn19mr632799ejc.348.1642040150752; Wed, 12 Jan 2022 18:15:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040150; cv=none; d=google.com; s=arc-20160816; b=LZP4u+8Y0FvT84Hbn5pf52/Nq9khumozxONfOsqUns1caRg3EJf64bMODy6ntzOM0g DL3e5//WcZxqkVJUmX1U6Mi8atB0MgZCzbBBOy9Z4W5HI9G4zKo1U+kVLX7i7iVq9q1z 8LY7x0MgjGH1x9QYIM2kZU2i5d4htP++S6NZtU3iYSkxInc6cIUUt648PbZ1Vu6emCQB zM7oMnTmTAx8tCOb4pzpd9JnytCAlnj2pfcjZRNRaCZj080L+ezG1g/EDSImDfN98qfZ jf4uQ2IWnaXwUXzfVZcdWPkRIqpoc2eGGekRB3G6JZnrZ4J8wo6v/PY6kSE/eMgCkhcY zzvA== 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=Nht1WssSjLGp+dBJv83umAHEhCz4O7lQbArB+ANZM9M=; b=0uvoQ1cRuD19U5S77/CBU5pzUTADMADdTlF3XXyQpwS5jHbVgxJSvc7g0X/2ZHiOCR sSF0z6oJjc+B4AB59XmSK0NetY6akmKiQfGei9XAleVhSytrHaCQCpZ4ookkKa9c6+Aq ULUftFSRtNhxvrAeLYftVb4fjk/PvW1GTO+yOziKGhh5MfmMNZCywjBB9jbVn0hT378x rPthb9W1mLy0gCmTw/mC1a+b18yOtNJKfUCWAkQuOT2x8hjl2mxYwpGUB4RAjMCsdL+e GxPdydagv+XEmu4H8fV0CXvt8Afu3Q6p9Id4STPmkadnpzU4Rrv9Tnp+NcQZS83ZLHOT InNQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=MR+FrLGS; 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 x9si351161eje.195.2022.01.12.18.15.50; Wed, 12 Jan 2022 18:15:50 -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=MR+FrLGS; 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 6AA8668B2D4; Thu, 13 Jan 2022 03:56:55 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f181.google.com (mail-qt1-f181.google.com [209.85.160.181]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 107D268B2B0 for ; Thu, 13 Jan 2022 03:56:51 +0200 (EET) Received: by mail-qt1-f181.google.com with SMTP id h15so963423qtx.0 for ; Wed, 12 Jan 2022 17:56:51 -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=2Yv0EsD9ytLrEPfAshjX2d3CUc3qgCzOlpxxPDHhJ8E=; b=MR+FrLGSlRJPAcYu4kUNWAwel9cQ4TC+YINzC6zALzagWhPHfi0hwMKMqjgEBQW9uF hMD8rwPH7o3qDHLqffLd17ZweVhtNAI6eeZ5HlK4Db8KArrnjehBHr8CFDRuTpllqiFm F+lpujIT8kzL+pIFPvWUYrHgX+8PySNgc4/ubvgh3dNZyLwTcAs4LCODIe37CUOrJaAa y064TPoBA8VmLCJ9wQ0aeSKNsQhUTpnt9L4486c7Cg6P7fy7VpHczkJ7AIW6PD9WfL2Z aSyiAfosjV3uyYgyBflPTgdNXDHrlM6e29a1kcDFdAC3nCSN5B1X2gQVjmjT+Nil37Wd wb1Q== 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=2Yv0EsD9ytLrEPfAshjX2d3CUc3qgCzOlpxxPDHhJ8E=; b=iwYgGet0MhZlRVRlGS2TN+NTfwn+Ea4Dl3poZZEaX72X/I07ebmfwUN7w0EyYnWOYU cUDEF1zbdHfMVAlnd+ulkxe8WrkdufZxLlWanD0YZpsIXRrzn7BQicUq6NhCmYoHfcI4 fYycCS6Phg0uteo3Zh8ZHTEbxUweikqEv9cI/NnEaO4I0QGvlkcxyPPKoTpK17RLYfDr uR7OZ9C0I+pTueMHD4MSYtcXoyPHLD/jI/DyaELSlxXNwGWCf2lQJ3GC4+E5wV/YjGgv T+MYdU/8qDqD5lEcTUIJjyfIU2Ya3NbzoQ2BFgWT4cUlO5lzny416JAx+HN41IIFjWiv Fdmg== X-Gm-Message-State: AOAM533xYUzetR0tcFf+1jk8EjKKmB03orQnUaWZiiEUWjRyS5josRyV XgkFtxQESLAM0ECcnan/NtLR9GGNZZQ= X-Received: by 2002:a05:622a:352:: with SMTP id r18mr2051588qtw.78.1642039010653; Wed, 12 Jan 2022 17:56:50 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id t11sm906506qkm.77.2022.01.12.17.56.49 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:56:50 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:56:03 -0300 Message-Id: <20220113015612.448-22-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 110/281] mxg: 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: kCZdP1rbJX/Y From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/mxg.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libavformat/mxg.c b/libavformat/mxg.c index d5c1d666fc..b160ccb9f9 100644 --- a/libavformat/mxg.c +++ b/libavformat/mxg.c @@ -57,8 +57,7 @@ static int mxg_read_header(AVFormatContext *s) return AVERROR(ENOMEM); audio_st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; audio_st->codecpar->codec_id = AV_CODEC_ID_PCM_ALAW; - audio_st->codecpar->channels = 1; - audio_st->codecpar->channel_layout = AV_CH_LAYOUT_MONO; + audio_st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; audio_st->codecpar->sample_rate = 8000; audio_st->codecpar->bits_per_coded_sample = 8; audio_st->codecpar->block_align = 1; From patchwork Thu Jan 13 01:56:04 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33390 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp27559iog; Wed, 12 Jan 2022 18:16:04 -0800 (PST) X-Google-Smtp-Source: ABdhPJy6nBOS67E24FaT9rixVE+UNtrEIF8OJDQEzPIJMadGDDp3XXubuk03sG8fC4hCs17QQS5W X-Received: by 2002:a17:906:8557:: with SMTP id h23mr631745ejy.451.1642040163985; Wed, 12 Jan 2022 18:16:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040163; cv=none; d=google.com; s=arc-20160816; b=BC254b7Be40LuXvKCNiJgnbpL4jdI/67+BU7fWvXFcclX4I7Dz1zq3BqZK00qFe2R+ IYxS04xTbsgf7bow4ZfQiDJC3jjcXN3A5xEWQ+EILY7VSH4nrDB+kS8o3mxQDekygJX2 ImxRDBym09E03nKmiBuc2sNCxxbu+9YU12pcxsVt4tR9qlVPOni5QTSsB55Z9XfZnOJU 99TS8qvlmlEGxQ8tRFNd5+yYu509aFBA8ahzIrvVEZAzVczTnnvqJ7lKONb6ABpdmemL eQJodNuQi679s2+0L7NDY7eocPoAOk1tzrTQtaCTdx/e0JhvASmm2qsoEmIuQkyiiMN/ L5+g== 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=KhD3+U3fE3+xzNVECagO83Zzta/JY1///zfk3gqGZuI=; b=SKqwSU3nBoDDUHxw91o4PpOgi77144wcezY+GCMRnFDq0sMggBhn9zAnhjdxqh5dY7 LmHwN2z1qkEqllu71U2Je47dt2h8Uawg4BsFYwOaBr65oKkm9s4uCk5lwmGC+3GpaURA sOsYBiLGL/+tAceaeU3jeLZtwhu80soydIviuRUeRzXBqdsLjMyoXODDTT9RwYt/vto2 MC7BWUpXjbKzO0iujuwwaQvjdu9xNPb6QkqfZiVzfkIZw8xCJDNa511iJbXQz0hwA5mP CgnYiRnbNCIXpVcdvilmqTC8PHSVOT1Gz/VT14VLOrOOn94K2nHlmMdVC6n9sM+FJyar iWBg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=DV8p7kA4; 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 ne20si843883ejc.729.2022.01.12.18.16.03; Wed, 12 Jan 2022 18:16:03 -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=DV8p7kA4; 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 6CFB068B2DF; Thu, 13 Jan 2022 03:56:56 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f169.google.com (mail-qk1-f169.google.com [209.85.222.169]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 498F168B2C8 for ; Thu, 13 Jan 2022 03:56:53 +0200 (EET) Received: by mail-qk1-f169.google.com with SMTP id 193so4865792qkh.13 for ; Wed, 12 Jan 2022 17:56:53 -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=2pxTceg9foe9YS68g0Wjx9RLmvo/aK++5XKBt6Ulhzs=; b=DV8p7kA4GAsDbha1loaeIX0b1Zjn+5H9IdTomtEiW+JuECHsX1AVntcNPY9Cj4e79a vo0uu+y+lwGf0o+Un1TAhFwN5OeE+bgtmkEjXMpfE9/bNSltfEh8H2iHtJg+/PKM9WN+ g2ljD5JIKuOfLzFFlDZ1Tpc4J4WFbMQUiIl1XKHRpBkvnrIrF/Dyc3g0eUAEmEES1E82 QcoQpIRZLgV5u54dE6AABYcV31uf0br+qY/Lwt1vLI5WJmYjMfEqXSlkdE5JJJzdRBVs KapLcrkbftR4nga5n+8gOGV3SuSgA/QaTzhwkuUW1XDJrFsQ0ouTkuJSkS7IDsulhKLV WtBA== 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=2pxTceg9foe9YS68g0Wjx9RLmvo/aK++5XKBt6Ulhzs=; b=UzC71jt4DpQr51tCliX/SobQdG1qJ/DQjhOACtjG7wN0r2MTb6uuCBgBRMql1dGatB G5DAG5O8t8B24KlMT383Sd3giTePiXtFruiDuL7xIUUnKYPHGk5dgL+z8LNfxZCf2DNC ctfqXBPnLHyZ7+D2z1PPmmoSu8Z9Ny+NZpJkEGgymiAnuF1DkrkO6XpmqE1Zz7hYmZcO xSaUCf7NxqVN09iu7c+k3BN6z+p7u0MEhfikf5MipAr/wYUGFgNg4JJjqdGPdGP9xGt9 utl4/Amvi6zDhHHtlItQAocweNZ2FlrNnF/s5/QD9ZqDHGqb1BWYaK9rM+3y6qGidnBw 4hBA== X-Gm-Message-State: AOAM533LLexP9Yjef2lblqkbh99FueyF+ijc2Cdv1tyvkvdNYpqTjaxE 41bvAl3agN4SW+sQ4+Jx8j/vbmbkZko= X-Received: by 2002:a37:b13:: with SMTP id 19mr1195342qkl.443.1642039011880; Wed, 12 Jan 2022 17:56:51 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id t11sm906506qkm.77.2022.01.12.17.56.50 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:56:51 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:56:04 -0300 Message-Id: <20220113015612.448-23-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 111/281] nistspheredec: 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: O/JTNJbZvg6P From: Anton Khirnov Signed-off-by: James Almer --- libavformat/nistspheredec.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/libavformat/nistspheredec.c b/libavformat/nistspheredec.c index b606ce72aa..43b7d9bc47 100644 --- a/libavformat/nistspheredec.c +++ b/libavformat/nistspheredec.c @@ -80,7 +80,8 @@ static int nist_read_header(AVFormatContext *s) avpriv_set_pts_info(st, 64, 1, st->codecpar->sample_rate); - st->codecpar->block_align = st->codecpar->bits_per_coded_sample * st->codecpar->channels / 8; + st->codecpar->block_align = st->codecpar->bits_per_coded_sample * + st->codecpar->ch_layout.nb_channels / 8; if (avio_tell(s->pb) > header_size) return AVERROR_INVALIDDATA; @@ -89,8 +90,9 @@ static int nist_read_header(AVFormatContext *s) return 0; } else if (!memcmp(buffer, "channel_count", 13)) { - sscanf(buffer, "%*s %*s %u", &st->codecpar->channels); - if (st->codecpar->channels <= 0 || st->codecpar->channels > INT16_MAX) + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + sscanf(buffer, "%*s %*s %u", &st->codecpar->ch_layout.nb_channels); + if (st->codecpar->ch_layout.nb_channels <= 0 || st->codecpar->ch_layout.nb_channels > INT16_MAX) return AVERROR_INVALIDDATA; } else if (!memcmp(buffer, "sample_byte_format", 18)) { sscanf(buffer, "%*s %*s %31s", format); From patchwork Thu Jan 13 01:56: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: 33391 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp27688iog; Wed, 12 Jan 2022 18:16:17 -0800 (PST) X-Google-Smtp-Source: ABdhPJzQ8+Vh30KTfZYcOKoHeGMd2zN+zeuV4+OkQEl0Blby6jRvC5LMckcfZ7hIIqz4VcJ/1a80 X-Received: by 2002:a17:906:33d7:: with SMTP id w23mr1841505eja.471.1642040176937; Wed, 12 Jan 2022 18:16:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040176; cv=none; d=google.com; s=arc-20160816; b=XOq1N/4WIAqS8KE75sE/rmdL/VBNXjvsgTwt1OALA9IktnYIVlJ/qw9dXYZ1P+nQj7 2EBb3J6ZgiVVW250BkMc/UKTVJNDf8YkEbCFmwVAoROxyEhWm+vsSBraIEPgRv7zxtNT kttMYr7Npqx0cxqL2gpSYlLeV3LtxBWl/C2T4FTfziozgAKZaXErMDzeVhWW8+z4XfIP pLLoZWodNSE4gv8h7jLuk+jJhU5tsj61e2nGhBcY0M9swIrmTdw6xrZRwgB55fVHTEd4 /unMkSUPmOXf6q4EPgw513I9anr+hIex7n5IECKczvC8vPieUihJ4LEaHKQvfFpg5Q3k gjnw== 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=ITIqPkq5gAK+RwyqurV2R1nOvn8Gm5etrybmGp8HjSo=; b=qMebsGMxvr9bWnBiIDotWebrGNNy178bwtVUf1MfOw7M2QnL2O59CAe6UvmrQFgaDB T0TrtqMP7r02zUyugTKb/bJwWQpswcXRiPYUqt5Gl5u/YQFU5a0RDHv5+0QR1CLhepcJ UUEA23ClFttDZd2sRZQAkI+MfDdXt/U9ajWh9tmdnWyBKQizrcNyAJGCA6mOgrsuQLkX wzyyNIMdyAK4nWmb26ttglWFmmT3Um8TDZYMV3+24XUBJgA5bsY4S9rN52ugRA9pHQdk rEaMktYDnbdyCSxPpKpft1c0VqeW7033EuZgDT+JVR/wwDZvLUCZ8UZwtlvgmT8yAi62 yJtQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=YIQF+00i; 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 hc10si871133ejc.385.2022.01.12.18.16.16; Wed, 12 Jan 2022 18:16:16 -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=YIQF+00i; 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 8892668B2E6; Thu, 13 Jan 2022 03:56:57 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f182.google.com (mail-qt1-f182.google.com [209.85.160.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7D0A768B2B5 for ; Thu, 13 Jan 2022 03:56:54 +0200 (EET) Received: by mail-qt1-f182.google.com with SMTP id h15so963500qtx.0 for ; Wed, 12 Jan 2022 17:56:54 -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=+A1YoNnoVD/ZM8IuhSxC5eDBqmsM/Fz3QlgmLtHTpyo=; b=YIQF+00iZehUTGtcpIRaBxIISzZUaSBOzFTwfWTPMBdwhdOnPY7N5k5oOnP9Ytbtyq GxrOue+qFdJexu3VOkq5goiRj5hwGaoZ/4nmpAFeRuPQdGLJnv6w5RiSfGWbW9BQznTJ LfSA7txNDtAFr2h3JoFlA6JhCSVdCqXluOxpK1jRAA2orjznBLALV7e2y06Ws3Wl/TOC 9HtH7/5i89cO6MQVHo0W3ckM827zsDGdUd5t48gV3HJyyogiDCxzrRGnPxwBzbEFEwP5 0yEJgQ0W+SQKakKiIHlH5X/X2AC0IBoDhjdD4GWBFawROFj886PykgDkUBYZG6I66zJs 7m9w== 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=+A1YoNnoVD/ZM8IuhSxC5eDBqmsM/Fz3QlgmLtHTpyo=; b=6yff4N3G3DHQl+rsC+yuSCyg7BwSLktGJ84nIkqGkKY8kz4+6/AYx19kziolc4vbZq m6SLBYeHSoAKsnDPCr09wurEOjqYcLzTwPn7r2mchxDnN+RL1G4HnL629U6wR1Zdmm7s k0znFwIMnpZLXvnVqIZMP4UCM5X4GPvEGADS/S8qQIJ5668mxWm0gzoHsbeSY02Tv4L2 8l6qd1/wFR82kXpvOuMUI8CZC+JEYIFo71pO7X2BjZ5t1Cn/Y+vY/mY0qj6VCsAy1x8o kR6vsWYLwBeXKqN2w1R7x3Qa16hNIPd7KV0LVU3KJjWx2m2ncB8vcS8f13Dv7WTc2LKM 2psw== X-Gm-Message-State: AOAM532zvAyxypBpa3u7F5nlVzaB9NgrSEO56k7ePCALTGL6HY3kZBE+ blYA6uyESEmZ7+HmiEBz5SD/OgyD01s= X-Received: by 2002:ac8:5986:: with SMTP id e6mr1972064qte.519.1642039013089; Wed, 12 Jan 2022 17:56:53 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id t11sm906506qkm.77.2022.01.12.17.56.52 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:56:52 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:56:05 -0300 Message-Id: <20220113015612.448-24-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 112/281] nspdec: 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: k1I7Su1G6lNw From: Anton Khirnov Signed-off-by: James Almer --- libavformat/nspdec.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavformat/nspdec.c b/libavformat/nspdec.c index 3aaf887746..8d221efea9 100644 --- a/libavformat/nspdec.c +++ b/libavformat/nspdec.c @@ -88,7 +88,8 @@ static int nsp_read_header(AVFormatContext *s) } st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; - st->codecpar->channels = channels; + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = channels; st->codecpar->sample_rate = rate; st->codecpar->codec_id = AV_CODEC_ID_PCM_S16LE; st->codecpar->block_align = 2 * channels; From patchwork Thu Jan 13 01:56: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: 33392 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp27823iog; Wed, 12 Jan 2022 18:16:30 -0800 (PST) X-Google-Smtp-Source: ABdhPJz/n1ocUnUwXqo9SwqXPD0tiOZpSCKV49AlidQMhQUxHEmgnT+uN0TVBDfYZTWulASuAxdj X-Received: by 2002:a17:907:6e0b:: with SMTP id sd11mr1982917ejc.132.1642040189858; Wed, 12 Jan 2022 18:16:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040189; cv=none; d=google.com; s=arc-20160816; b=YifVEu99POBtB3YsPpve7u64dapVu2CYyrKT5bVMIJK6I49Ub4TCtIYxpnDxm9zM5V qjlrXDplrobWkanLiTOe8N4HYhc5JBwUHnltGWWUe5eOMut5Q29qifZOk7S+1c7tq6QU f62P66cgwPGyhwxaxuZbsoydMwgDD2YK5Cr52Bj+umUuNXQtfg9XdLGrVMPYFWUUzkrg wnvA/76ZCt/9nCVNLcUg7UXk1zQDO180OI3DPPidwLtLTIWG38HOiHhGbiMzcY7awHy0 xJCoGgr0+ZDBlEgDUnxHGV53uDhqCn4PlNP8wBAmLZFwhQr7DYQ2y8Sd2iclD315b2GH X5lA== 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=29SOPfH62GouonM1aL6EneZnPugFZcx0flK60bAKXSk=; b=fi39haRfOpdFC+bokG/bK6E/SRedO6dUnL/M8TM7uVP9XDeKhX8oJMcN6KmtGekPx0 RrBGYDr3TZ0ggqAIzu+wKO1DfedH10lMLACa6wUwtnqRvT7uvFFD/9BFVIfecyZ/HQ+e Qd2rPvAKrDQcOQ90aSP9SZCzT+vhI6PmzUsmwb1l5so6ePm7TQS6l41TOnZdJAliPWKf dbnuC2FjYLFxadYnLJqUoAKEh0bC+QwBBPuA6XELhXzRi1WzHmWNjwsS9OYdJU4YZBcq EBWEmg9KhniXCZyZu7BwrWbUIuqtvbq0sJI2ZxYtOXbi5mbWAXyh+RcvG6VQAw5FWl1K ELVw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=CKpqA6md; 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 dr18si826458ejc.532.2022.01.12.18.16.29; Wed, 12 Jan 2022 18:16:29 -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=CKpqA6md; 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 6D7B568B2E9; Thu, 13 Jan 2022 03:56:58 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f180.google.com (mail-qt1-f180.google.com [209.85.160.180]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B486C68B2D8 for ; Thu, 13 Jan 2022 03:56:55 +0200 (EET) Received: by mail-qt1-f180.google.com with SMTP id b14so2420193qtb.12 for ; Wed, 12 Jan 2022 17:56:55 -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=VvzMk1xsy8Dge+gvXk5l3CHaJXoRGlY+YWVnq1DUm3M=; b=CKpqA6md25iR/234SYHnSyfgKrXhFs1giJ3LgtZZNy2BKfC4/rZ/3GAtYI/6pr4D1s oJiIbuQaUJE4JgJM4ItT3ROEH5oqFlgt1yLo+UgFSj7Ie1rP9/vnaCKA6sVKW3Gvpx0N /nR3pObQBM/hmfXfsSiWyvyHp5DainokTCYd0nGcVA0KEMb1n/DltDHV5ll5u74CI9aa nOI3ZSw/xk9JfHBE283wgpdko44o+fB4z8/0YbZLTs3Izv/D7BMBghXVDUBczyIez7aa 0EgpzhDO4nXCyluTNCxPK8PA767TV+ETC+CKt1Wm77RSMHfWuSZxeCg8wQeH8ajIXoTh LvAA== 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=VvzMk1xsy8Dge+gvXk5l3CHaJXoRGlY+YWVnq1DUm3M=; b=OwBD6Kt9S+dRVo/gN1arPsBiR0nVbILZkBCHeUBjktDleTsTUC+k1k9pxCpX+tPcAd fY9AYBTWWIzsqjDGGy5hhUiRMGxBZLi+HZjHT2va0sFEp6Cd5+6YA13KO1vPngMDaB6Q p5c0Nlsm+C3EltY4GN9sn8TLwJyvHBpCPbHXsCbNodvXN+bAr7W04nsZQAMBiW4fknmu ajqKUbkX2nnBdFjLGLDPltJ5ln4x++XkvC+YbieV6zeMIscFlpYf9kOQh7n+lxBSJ63k AmX0Gca7z7N2gQFVrVvhtXxfWPAFNpyuessGuFhglTsGkzuo+2xMfaSlPt2Ua7gwnQok 37pQ== X-Gm-Message-State: AOAM531HVZ44mH2rjKRJoMqFpeulVP/xLXhst8xSuZCuyCjz9bvDISsO m+YYWoGhemEhm1owrM9UefbqpVSi/gA= X-Received: by 2002:ac8:5d8a:: with SMTP id d10mr1940980qtx.317.1642039014292; Wed, 12 Jan 2022 17:56:54 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id t11sm906506qkm.77.2022.01.12.17.56.53 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:56:53 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:56:06 -0300 Message-Id: <20220113015612.448-25-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 113/281] nsvdec: 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: iNdF2gyvjfMM From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/nsvdec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/nsvdec.c b/libavformat/nsvdec.c index 27471125ff..852e6194b0 100644 --- a/libavformat/nsvdec.c +++ b/libavformat/nsvdec.c @@ -618,7 +618,7 @@ null_chunk_retry: st[NSV_ST_AUDIO]->codecpar->codec_id = AV_CODEC_ID_PCM_U8; samplerate /= 4;/* UGH ??? XXX */ channels = 1; - st[NSV_ST_AUDIO]->codecpar->channels = channels; + st[NSV_ST_AUDIO]->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; st[NSV_ST_AUDIO]->codecpar->sample_rate = samplerate; av_log(s, AV_LOG_TRACE, "NSV RAWAUDIO: bps %d, nchan %d, srate %d\n", bps, channels, samplerate); } From patchwork Thu Jan 13 01:56: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: 33393 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp27940iog; Wed, 12 Jan 2022 18:16:44 -0800 (PST) X-Google-Smtp-Source: ABdhPJwQUP8mHM/8MKps2nivMoG+wPXbuxLnVhrjCi3hEnATRp9EhOdwUaJE8gZKWOFg+PClLlEr X-Received: by 2002:a05:6402:40cd:: with SMTP id z13mr2208922edb.257.1642040204392; Wed, 12 Jan 2022 18:16:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040204; cv=none; d=google.com; s=arc-20160816; b=T/vAMIEdN5E1hqcexjIZ+9jv23tHB8svpDhDLFpOau1NZCgUebiQstO2mfm63QdGzb S6zx/DLt7370zQ2w+NR+cSBEi6mEAVAtzyhRqAYDWOUKpKyMpiR9FB3gmoJObKJMrA+3 uZDyMLLm4WGMFNn8NPe1fO3FDDLJ8PscjEkRbRay347icKu3egz3UG8bNmgvbbru8HE8 hpB2wgHPm6BiPbdJW0cgRCpF6kpZQXSjBShFKf3fosJdIZskHFHkAUR4cPivyf5SQaCq IX3fXzzWtYyOPeb0FG1qfX/zIPbwlRM5kIZ+pHzfuwoECZfIHRHZaKramSe5i3QUqnNh W5cg== 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=CpNWp9le0h1jKQHPYTygGqg4+QUwrMX0jVELeyC2PVc=; b=cU/g9WFIEBHGSRrdbHzyIaq30zYnJ57Dpep7+rfZ/x2qEplwN+eh+/2dFk6gaPB9R+ um6pwWl3klompj/KOt1Rh2rw0AxkUC/UIH1KUDrG1O/o3GsqoFTAXI7MYdc36QtdWvni 5gwi+7FIOQ1UHJtfeB+500lEb//Vsr0QR/EkMk4hA1AN47FIkmhwcUxnrjVOkULxYSst rbUncPpDnV70BUfJ+HVzmD96RaOBe5IScM/RLa5CQgFPuct1xrktBU7h9GwU2uHhXSlo f9MJamiXd4jE40qDVGu2SEsD8YE+qFwpTkEBtP+fK84bcesRI6RH5PMQGHvg8C0epuVH AjGg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=KT6D3zAm; 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 eg1si798799edb.616.2022.01.12.18.16.43; Wed, 12 Jan 2022 18:16:44 -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=KT6D3zAm; 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 4B1EC68B2F8; Thu, 13 Jan 2022 03:56:59 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f41.google.com (mail-qv1-f41.google.com [209.85.219.41]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DD04168B2D1 for ; Thu, 13 Jan 2022 03:56:56 +0200 (EET) Received: by mail-qv1-f41.google.com with SMTP id fo11so5078904qvb.4 for ; Wed, 12 Jan 2022 17:56:56 -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=xPKgTGxHqd9fWtM81g3mSy9+4WexDUP+//oCjRRLT1Y=; b=KT6D3zAmEwpf9oZKc+zLeEnNtryWUXh22ViVwXWKUzH2BPmStGvfSeOpMXX5F59ZFi cSmhr7FOiqGTaOwED22ow3nZAr67foqTytE9Um4hCkOUHZjqBTZnE4KbqHu7Ki1hyAOO qtFrftXa83GoRs1ZMcZs4hcEh6XCjA/UBfgdcqfktHyFwyvrgC3ZZaCGVJ6ilzKiqM3T n7LAjgJhdEdSQ+CbyTMDj6zVHT9DJ5a4zVIJnByz93Y89R1PUTbqJGtPludSLvy8329w 0wLBIFEpgtY86Xy9SYaz86TR8PPhXqTaNP8SoAH4feQUbGzb6P0BxEJL8i22EVrFKCe9 wvJw== 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=xPKgTGxHqd9fWtM81g3mSy9+4WexDUP+//oCjRRLT1Y=; b=8Fk7EMbzv3kxOiYJcR3fEdXTp8woorU9mp8kALa5vhqyQ7/pB70B0lTCGlwLjvtEsH E/CDIi46zZ4NFJPC2Bi86wuqIMnIadFaTfCTE4/mB7p0v85e00vjp+ri7BLN1nSId13f y2k+SyxLuzKyPBODlTxfCBO2bDj7LgEx+Q3HrNRs7k5NhcTGfjNPF8m5f5xTYfPRpk/B HLbcE7spYtNGhkUP44gdMqAueAMm7NkVo6Ib2dJG5PsH9GgY7F05updysKTgxiqO/esm iFQTZkUhdR+QDAVGWtn2JrVV4AnL3v9rfxvnvwzZyuvZDMGUUAAjhf8cSqbEGiyYjaxW hUow== X-Gm-Message-State: AOAM532I6x6wG13w4nZn7Py2BVTQUGYlDZKEKOc+LGjfE3TKrvDe3XMq s0R3yvle87JpMuZODJonXWd0mzXQhtc= X-Received: by 2002:ad4:5bac:: with SMTP id 12mr2447027qvq.20.1642039015497; Wed, 12 Jan 2022 17:56:55 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id t11sm906506qkm.77.2022.01.12.17.56.54 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:56:55 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:56:07 -0300 Message-Id: <20220113015612.448-26-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 114/281] nutdec: 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: J4QpFHAFaRHn From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/nutdec.c | 5 ++++- libavformat/nutenc.c | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/libavformat/nutdec.c b/libavformat/nutdec.c index 0a8a700acf..8beec503e2 100644 --- a/libavformat/nutdec.c +++ b/libavformat/nutdec.c @@ -453,7 +453,8 @@ static int decode_stream_header(NUTContext *nut) } else if (st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) { GET_V(st->codecpar->sample_rate, tmp > 0); ffio_read_varlen(bc); // samplerate_den - GET_V(st->codecpar->channels, tmp > 0); + GET_V(st->codecpar->ch_layout.nb_channels, tmp > 0); + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; } if (skip_reserved(bc, end) || ffio_get_checksum(bc)) { av_log(s, AV_LOG_ERROR, @@ -953,8 +954,10 @@ static int read_sm_data(AVFormatContext *s, AVIOContext *bc, AVPacket *pkt, int if (!dst) return AVERROR(ENOMEM); bytestream_put_le32(&dst, +#if FF_API_OLD_CHANNEL_LAYOUT AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT*(!!channels) + AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT*(!!channel_layout) + +#endif AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE*(!!sample_rate) + AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS*(!!(width|height)) ); diff --git a/libavformat/nutenc.c b/libavformat/nutenc.c index 9d5eb4ed99..f88b424429 100644 --- a/libavformat/nutenc.c +++ b/libavformat/nutenc.c @@ -461,7 +461,7 @@ static int write_streamheader(AVFormatContext *avctx, AVIOContext *bc, case AVMEDIA_TYPE_AUDIO: put_v(bc, par->sample_rate); put_v(bc, 1); - put_v(bc, par->channels); + put_v(bc, par->ch_layout.nb_channels); break; case AVMEDIA_TYPE_VIDEO: put_v(bc, par->width); From patchwork Thu Jan 13 01:56:08 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33394 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp28080iog; Wed, 12 Jan 2022 18:16:58 -0800 (PST) X-Google-Smtp-Source: ABdhPJyhIhvtkvK+QCMl4xODkHidstoBr/o5iItWm7q7/GSyDLflJIiayfdGI0GvEYF2WWFNVPFI X-Received: by 2002:a05:6402:405:: with SMTP id q5mr2249336edv.62.1642040217872; Wed, 12 Jan 2022 18:16:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040217; cv=none; d=google.com; s=arc-20160816; b=Qqz1QBorYOKSWD1r5xgGW5i0uRcd2ro+GTJDV2nrJ8MGq0TKHfnqX0ck3phu4jkZzS izD7iLIIKGTVnNOCDNpB9TBa5z4neXrf8vThAsVKZB+FjeB3FaB9mbMPyibz1nkX9+wj Yejxb+AoKe7hD/4dO9pTPaNTTc9kBZXBeULgCS2uLxHV/PBJGh+8lPHnzhnKwnRKVUt+ 7rBB1oVfZrBhg0C63h4EW6bhZQRpsK2VMsBaAJoUX1zWycPIW6x80VMN2m4FtXG9VUjZ I+pv3arKXuCsJYKRcbqWSnhCR210IF9boYCbPg8wn0qk7zcwNKCjRDLE+tZBkyNJDciF Fl1w== 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=eGUcb1U2Q7UFIM23222Xju+tAHsdU2rnClNLMB7Kaxg=; b=Eg3yyOk/ItbiSO9PNHQURhHINml9CDqeSq1lOeIhiOPkDeIaYEIqKVzc9kldBpokQM jbtm8ue6mDi4pL7dIViKpLJiuSCESLyY240PL43HAW19A7FtrpeWjfBu8aCKp9XWFtYc CnMBCgo1nFxCesdHmO7CKQCSt4IHZfCvpa0G+3PYIKOEQ4nzeFylyhbIsR47WfQ3RRb5 T7pQb+rIJAg+rAUJk/bzHYjX5SNcrKy2Ufp9t3HWje525k341nb8LHikDAkgFmOlpLb/ iTg2tdVWeps+uN/C838Y12h728iwP1Mw8BdAk4gsLnxKNznnX6C0tu7LSzDFPulNCZeG zFkA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=qqjDmi7g; 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 hd13si760077ejc.686.2022.01.12.18.16.57; Wed, 12 Jan 2022 18:16:57 -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=qqjDmi7g; 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 1E7A368B301; Thu, 13 Jan 2022 03:57:00 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f43.google.com (mail-qv1-f43.google.com [209.85.219.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 16B9968B2E2 for ; Thu, 13 Jan 2022 03:56:58 +0200 (EET) Received: by mail-qv1-f43.google.com with SMTP id a8so5153855qvx.2 for ; Wed, 12 Jan 2022 17:56:57 -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=rJFJnkbrem/IpFR7KGWPQI7uUZQd3wY0KOWUWU/Kka0=; b=qqjDmi7gajxgyqwF6IkJD1ZenzuhOdlZLCUEW4UrjD6psF3qNY54XU3szpqt82YTp2 +mg9+qsTO0qKpctHDVVUIeBDv4hK3+ClUpsAH/YhIA0ZdAEX0beMce61NrTZ4z7xf85l 60GBvSbzvDZ6UsS9B99P2F0nrt9mrjbmuz702S+d2BkajiRRMtCm7zDv1RZtgw9hV0G5 gH/PhbCYsdNi3mkkEbec5ZTASaUZXGVmt2I4XnWU+I+903xDPRxmWjNjDYbKAiCYUqxE xxPpMxUlFKGtJypXH/+g0gV3mTGRbe855cty99pZwfUJmnSXZAHzWmhFwxFAw07KGPyI j3Rg== 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=rJFJnkbrem/IpFR7KGWPQI7uUZQd3wY0KOWUWU/Kka0=; b=5GsI3L3BxmXjbgSF9u95kdxlQAA+PPikOSresKlSOjZBy9MTCdXYN1zvpMApnyM2aQ nhs50DcHW3XD2HTSlyUgIc5c02u5SbiFa1Aobm/79iSTDyPxGvYC5IteATO3RjDMhgps 9x4xNXlucTqFAljWZN69muikufD1/oQC6PjgSFTxveoJjiOKpv2/zEFu9QnOl1smMx3G 21jipn3J9KbAo6OdrxOtp5Ho8FzjYryW3GT7XjMFhVuoV2x51vf9A+UTZDmd9mqR7O6V B+rgZ/eYEccxRQ5pYBlsMPImxfLSyV7hbxP8dSmcmn+K4/+PNKy+tx+Tqj1aW6jhkyBg ksEg== X-Gm-Message-State: AOAM532lUP9Wg3Xv+kVztFD1ljQgCmYtJV3Hwr6YAFxPiqDqA5uzXJf3 Mmpd1D2nMOjvVL+MbCJ0jyQndU8+6jg= X-Received: by 2002:a05:6214:1bc5:: with SMTP id m5mr2144376qvc.88.1642039016676; Wed, 12 Jan 2022 17:56:56 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id t11sm906506qkm.77.2022.01.12.17.56.55 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:56:56 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:56:08 -0300 Message-Id: <20220113015612.448-27-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 115/281] nuv: 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: 3sEC7PeNBs/j From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/nuv.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/libavformat/nuv.c b/libavformat/nuv.c index 5f5cc50302..2cb1df368f 100644 --- a/libavformat/nuv.c +++ b/libavformat/nuv.c @@ -116,10 +116,10 @@ static int get_codec_data(AVFormatContext *s, AVIOContext *pb, AVStream *vst, return AVERROR_INVALIDDATA; } ast->codecpar->bits_per_coded_sample = avio_rl32(pb); - ast->codecpar->channels = avio_rl32(pb); - ast->codecpar->channel_layout = 0; - if (ast->codecpar->channels <= 0) { - av_log(s, AV_LOG_ERROR, "Invalid channels %d\n", ast->codecpar->channels); + ast->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + ast->codecpar->ch_layout.nb_channels = avio_rl32(pb); + if (ast->codecpar->ch_layout.nb_channels <= 0) { + av_log(s, AV_LOG_ERROR, "Invalid channels %d\n", ast->codecpar->ch_layout.nb_channels); return AVERROR_INVALIDDATA; } @@ -227,8 +227,7 @@ static int nuv_header(AVFormatContext *s) ast->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; ast->codecpar->codec_id = AV_CODEC_ID_PCM_S16LE; - ast->codecpar->channels = 2; - ast->codecpar->channel_layout = AV_CH_LAYOUT_STEREO; + ast->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO; ast->codecpar->sample_rate = 44100; ast->codecpar->bit_rate = 2 * 2 * 44100 * 8; ast->codecpar->block_align = 2 * 2; From patchwork Thu Jan 13 01:56:09 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33395 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp28238iog; Wed, 12 Jan 2022 18:17:11 -0800 (PST) X-Google-Smtp-Source: ABdhPJzEmryBBtms6cOiHALlx5Gm/qNkl+XtYtEQ5IM7O1NqgcoweHdhtt8+R4s2eD5AafG0ueWV X-Received: by 2002:a17:907:1c1f:: with SMTP id nc31mr1985712ejc.624.1642040231527; Wed, 12 Jan 2022 18:17:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040231; cv=none; d=google.com; s=arc-20160816; b=uzqK2ZwESrSiNSCAGg0Qc5IBe1yigU0xevtu5FsnYhDRYciBxM0Hh1Ol+nUgoeiw/0 IolJ+j4eIjcCZwzJZO3WYEsbWRACn6IzrCLMpZfaSPOCf/eX2QE3zwyxo5aj3FkXSx9R cEsubVL4sZVtzuQMcaZITye1hETz55aGgQeo0J3ElUx7qylarUrQHIK6rEaGjg83vOS2 znOMCbvIjy6i8IGTSOwgP3Xce5l/+u5YRiwNGaUZEh+N8tPlP//UOpTvly7OFb2IN+9c nmzmj4kVmneXEMSkoddybVNHI2R9Ll3qHD5cRqZ2i665IjONYsTurU3Rea6EunQ/BOrN YM+Q== 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=SFKXC3nMo4sDyW/heuJRdE9Bw3OIdOuw8yZ1dfzStb0=; b=A3pEyycDK/WkxEPtoPAefyU1gaC6x26nGsLW64LK43nQ4ECXRLq7eXcsV/5Uw34kj6 bf30PnIea6zPxQYgjT/a10BUkM4v/CSJnRAr3JUTyizNCvyhVihaD2Hq+X7bN2urzjZb DEaYFnBSUfZqYCEbIIi9Riru89X2XJlZeC6hmQQSxp230QY1rig1qNgER+UVMHITYr7/ zPQ7bhcAH4o/39zqxqAdE4kzf+78QNKgRFkqd/33ckdNuWHSfnrDp1/3TwA5sph7oX0r tCtObEbMzZE/juc7i3w1F03hX927TbrU2ea+4yg/nyJ9CR0a3hMrd8k9LJgFE2doFbiv bBoQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=aYl4EeGV; 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 ho11si863681ejc.586.2022.01.12.18.17.11; Wed, 12 Jan 2022 18:17:11 -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=aYl4EeGV; 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 F140068B30A; Thu, 13 Jan 2022 03:57:00 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f54.google.com (mail-qv1-f54.google.com [209.85.219.54]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8B38F68B2FA for ; Thu, 13 Jan 2022 03:56:59 +0200 (EET) Received: by mail-qv1-f54.google.com with SMTP id l13so3590398qvz.10 for ; Wed, 12 Jan 2022 17:56:59 -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=bUu4cqIcObvsGEzKHNGCD05j/I136WbPD5Wx1PAOn/Y=; b=aYl4EeGVOw3oyh0PJ6+MO2xaz/WQxnLJBDR1jUekwju78YNaWNnt71qbFZubni5fly H8CfbmANUs/yxtF4SvtlcHY78k+nsUhj4Y/QBL6oTbUUSgxBAzU7FJiD/7K5eMgMvwmW qN65xL1527I/eXH/R6xSuvhF0WqgGXlYt+nBNjsQg7FLnNmqI7HU9ZeCqmnhFPaffdQh EbPfJotBVffDoOHmQq6u1jYBBqimhXU8UJpq9mlqyQ5PE3s9JngBfzcXvMdGTliStk1a dsNc2h2Dwgr1hjIi6vaFMqv3OQzgG7vEUFGJwFhpbyiiGhgdf0KXqgzxImAKJLPl6dfT giMA== 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=bUu4cqIcObvsGEzKHNGCD05j/I136WbPD5Wx1PAOn/Y=; b=U6PDxPFcrDcXrVVNNZD/pYfgCMO1GBBaDqpaIslfQ/wQRfOb9gU7nDPJpKuOyW81V3 hwzRXUi1HeoN3IsgBQhSXu86ZpwFUNcXdGAB2cuaIJuCmUSc8+2rVX+gIDhe7afE0Xj2 ZUfT4xbTinZw8gr8i3ofpF2odLsl/9mRXe275f5fSECkDj47Ne1rilBCU4NMKoTQdprn OeEBfT2EQG9DJwdxaBTE1dY99y5J1V8rEmuzsNs6EUkOgZeD3WaT6ppL4OxPx1luuQgS 40uEHzeHjPIZ23W+YuYnxvo4OHdqSytZcrinMjB5BkGmi6qf76lryhDHiMWiK9hK3AGN EgKw== X-Gm-Message-State: AOAM530rkBpP5c8xICC5l9aJHUWXxZZwW42S8MJ4HIJiccWrZyBn1dvx 0eLmvOiVIUbr8q7euvUTOADRvbaWVEc= X-Received: by 2002:ad4:5c6f:: with SMTP id i15mr2255744qvh.45.1642039017885; Wed, 12 Jan 2022 17:56:57 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id t11sm906506qkm.77.2022.01.12.17.56.56 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:56:57 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:56:09 -0300 Message-Id: <20220113015612.448-28-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 116/281] ogg: 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: 6J1nM9mPjc7h From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavformat/oggparsecelt.c | 3 ++- libavformat/oggparseogm.c | 6 ++++-- libavformat/oggparseopus.c | 3 ++- libavformat/oggparsespeex.c | 8 ++++---- libavformat/oggparsevorbis.c | 6 ++++-- 5 files changed, 16 insertions(+), 10 deletions(-) diff --git a/libavformat/oggparsecelt.c b/libavformat/oggparsecelt.c index f7a88af616..af15c07443 100644 --- a/libavformat/oggparsecelt.c +++ b/libavformat/oggparsecelt.c @@ -64,7 +64,8 @@ static int celt_header(AVFormatContext *s, int idx) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_CODEC_ID_CELT; st->codecpar->sample_rate = sample_rate; - st->codecpar->channels = nb_channels; + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = nb_channels; if (sample_rate) avpriv_set_pts_info(st, 64, 1, sample_rate); diff --git a/libavformat/oggparseogm.c b/libavformat/oggparseogm.c index f777790523..c30e0324ae 100644 --- a/libavformat/oggparseogm.c +++ b/libavformat/oggparseogm.c @@ -97,7 +97,8 @@ ogm_header(AVFormatContext *s, int idx) st->codecpar->height = bytestream2_get_le32(&p); avpriv_set_pts_info(st, 64, time_unit, spu * 10000000); } else { - st->codecpar->channels = bytestream2_get_le16(&p); + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = bytestream2_get_le16(&p); bytestream2_skip(&p, 2); /* block_align */ st->codecpar->bit_rate = bytestream2_get_le32(&p) * 8; st->codecpar->sample_rate = spu * 10000000 / time_unit; @@ -160,7 +161,8 @@ ogm_dshow_header(AVFormatContext *s, int idx) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = ff_codec_get_id(ff_codec_wav_tags, AV_RL16(p + 124)); - st->codecpar->channels = AV_RL16(p + 126); + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = AV_RL16(p + 126); st->codecpar->sample_rate = AV_RL32(p + 128); st->codecpar->bit_rate = AV_RL32(p + 132) * 8; } diff --git a/libavformat/oggparseopus.c b/libavformat/oggparseopus.c index 36d691e9aa..adeda95fdb 100644 --- a/libavformat/oggparseopus.c +++ b/libavformat/oggparseopus.c @@ -55,7 +55,8 @@ static int opus_header(AVFormatContext *avf, int idx) return AVERROR_INVALIDDATA; st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_CODEC_ID_OPUS; - st->codecpar->channels = AV_RL8(packet + 9); + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = AV_RL8(packet + 9); priv->pre_skip = AV_RL16(packet + 10); st->codecpar->initial_padding = priv->pre_skip; diff --git a/libavformat/oggparsespeex.c b/libavformat/oggparsespeex.c index c4fee7e076..7d3d653384 100644 --- a/libavformat/oggparsespeex.c +++ b/libavformat/oggparsespeex.c @@ -60,6 +60,7 @@ static int speex_header(AVFormatContext *s, int idx) { if (spxp->seq == 0) { int frames_per_packet; + int channels; st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_CODEC_ID_SPEEX; @@ -73,13 +74,12 @@ static int speex_header(AVFormatContext *s, int idx) { av_log(s, AV_LOG_ERROR, "Invalid sample rate %d\n", st->codecpar->sample_rate); return AVERROR_INVALIDDATA; } - st->codecpar->channels = AV_RL32(p + 48); - if (st->codecpar->channels < 1 || st->codecpar->channels > 2) { + channels = AV_RL32(p + 48); + if (channels < 1 || channels > 2) { av_log(s, AV_LOG_ERROR, "invalid channel count. Speex must be mono or stereo.\n"); return AVERROR_INVALIDDATA; } - st->codecpar->channel_layout = st->codecpar->channels == 1 ? AV_CH_LAYOUT_MONO : - AV_CH_LAYOUT_STEREO; + av_channel_layout_default(&st->codecpar->ch_layout, channels); spxp->packet_size = AV_RL32(p + 56); frames_per_packet = AV_RL32(p + 64); diff --git a/libavformat/oggparsevorbis.c b/libavformat/oggparsevorbis.c index e1ef510892..7e94054f19 100644 --- a/libavformat/oggparsevorbis.c +++ b/libavformat/oggparsevorbis.c @@ -336,11 +336,13 @@ static int vorbis_header(AVFormatContext *s, int idx) return AVERROR_INVALIDDATA; channels = bytestream_get_byte(&p); - if (st->codecpar->channels && channels != st->codecpar->channels) { + if (st->codecpar->ch_layout.nb_channels && + channels != st->codecpar->ch_layout.nb_channels) { av_log(s, AV_LOG_ERROR, "Channel change is not supported\n"); return AVERROR_PATCHWELCOME; } - st->codecpar->channels = channels; + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = channels; srate = bytestream_get_le32(&p); p += 4; // skip maximum bitrate st->codecpar->bit_rate = bytestream_get_le32(&p); // nominal bitrate From patchwork Thu Jan 13 01:56:10 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33396 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp28383iog; Wed, 12 Jan 2022 18:17:25 -0800 (PST) X-Google-Smtp-Source: ABdhPJx5NyAeqvLdV0A08nGEe2NMSPlmMnZWIdwf6zgCkGP98/ycNOzS032E9acUkZpts9sO71j+ X-Received: by 2002:a50:f0da:: with SMTP id a26mr2304642edm.37.1642040245076; Wed, 12 Jan 2022 18:17:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040245; cv=none; d=google.com; s=arc-20160816; b=WLP8H+KlpfdiZ7Hz4/ImYh9sF38j33/LcmxlFE4yA1AbDA1apBnVWLHXG91Z1xWZgZ gKvfZsdnGjmJWLaunfMC6Enf0u7idI4s8lA+F/AFe1itexUgjIgJF3FCp52MbXJYLk3Z pn00TQG18fQTrIe2eQDl+MJYAcZ3he8Z3MKE2r/dGkIH5elFlUKoZUcNl+PgGsEOds7r pVr5fB/6k00kvm7IY0WyjJDMRG62lZ2BLZJWrj1NxmsQmPPheCT+AMLS3a1kDp8fBnts VuUzJCTjXTBf9QrDrgRixKmnvwixu0uCKXgFRDkQCgvPvMSQgIwVZ421wIZoJNi1ZDvU r8sQ== 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=Ta0UpLkgG8IJx/b9JGCBfLyAHdet1UOhTdsmGpH9fy0=; b=KO2wpVCvzU1GaLTK2E2zJIdQfnDB3BhmTqGVWne30vDfnLjZ2aH7uOBxrgu8SUwCtP 5IxyTV7+rHauRY2xIM+BerUp6mIHKq4Gl0kYtVg6hkipQhtBWmOClGF6Wb+rZdyOy1OP 2MAF5YEaYH/klthGtrOIqxs/T6aHpQ33PpPtKb6d3bnXIIpEIYWIrn0rLy7ZjFi92iuL gAUV0Kf9DsgJ1xXMsKLRbXfWtwU0C6C15eZ5ZhOwr5h1IqJMTr7DIFm+usnP982du+Zp 3QhF46Im3iIHePw43BfJ7QFMHp7e+UY1HP80GmBtFqZTLK5NZlystFl7lH9io4oA3jt4 3y4g== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=QcS7m6jg; 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 g4si896033ejt.430.2022.01.12.18.17.24; Wed, 12 Jan 2022 18:17:25 -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=QcS7m6jg; 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 E475568B314; Thu, 13 Jan 2022 03:57:02 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f178.google.com (mail-qk1-f178.google.com [209.85.222.178]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9C98D68B2FC for ; Thu, 13 Jan 2022 03:57:00 +0200 (EET) Received: by mail-qk1-f178.google.com with SMTP id bl18so5569805qkb.5 for ; Wed, 12 Jan 2022 17:57:00 -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=mo7IlxycdUcsXlVAAWyr5S1jTS6gZDKLQX9efrDt4y4=; b=QcS7m6jgd+rvxgMkIrsvPGLCZuClRbPfxG8M0B1P+dO8E+nmZNfVqChcQfOOfuWI6c YfD1+n3VyjDA5qCdJYTCnrEeLqCqkLpIarAvpbS7QSdNSSLGKmvkKOlw6anQF78AVVYq Qm7sVqixZDh20AVNY3ayPIu5Q+ToxLv81nBeDHHFTrq4czz/kjtb8HERlPe0p1BnMnDl PHO4X+4+JxwNIexguHxiVkgnBUlDsJqR9tuPQemwsxy+fQ871N1jJyZKreMX21BBLhyw cl/A3TzM3qOQMwzRBIe1yf2iHYFKLFz7fp9ai92vU/zfmRCZwxwm6Ul/wO5JmCt8JZB2 YvMQ== 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=mo7IlxycdUcsXlVAAWyr5S1jTS6gZDKLQX9efrDt4y4=; b=PwoZbNJJom0hmWIs+Is+zhHULs+gtYrWcDbDB6sgLs9e1FP1aS82fXItldgtbMJl+b 12YoyJoEduXAtW1pSdCDt3PbIkNvgnRQf2kZnC6gdk7A5UF54tEEERP9i5wO8IBtrZ4d e6rWP9qbgyYhQMQQiAAp3hMa3humm/1qaXVkSOlb0dP8PR0TLaaslrmryMn6ntj4+NC4 3QtIlJpMmLWsWAPOrhK3/noDUa/a75A8uwB7/VXUvJC2NimldRM+H3lO3xP4e8iz6beb kitgTUzevggqGSTW5mN17RHYkd5Pj2QfmQ3OlYse8pymzK4NiF3LLaSWMKdBYESubFvo X+Ow== X-Gm-Message-State: AOAM531xss2orpRBJXEsFXmr7oqmrreSPlDFBYSUjrZiKXCVUtNVPiTo sS3zladWcsI3paKC7R++WaGU7cFHqyw= X-Received: by 2002:a37:6801:: with SMTP id d1mr565647qkc.399.1642039019144; Wed, 12 Jan 2022 17:56:59 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id t11sm906506qkm.77.2022.01.12.17.56.58 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:56:58 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:56:10 -0300 Message-Id: <20220113015612.448-29-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 117/281] oma: 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: QcX1uPpzYd+t From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavformat/oma.h | 2 ++ libavformat/omadec.c | 35 ++++++++++++++--------------------- libavformat/omaenc.c | 4 ++-- 3 files changed, 18 insertions(+), 23 deletions(-) diff --git a/libavformat/oma.h b/libavformat/oma.h index 85d5932f1d..1a8e16f6d6 100644 --- a/libavformat/oma.h +++ b/libavformat/oma.h @@ -23,6 +23,8 @@ #include +#include "libavutil/channel_layout.h" + #include "internal.h" #define EA3_HEADER_SIZE 96 diff --git a/libavformat/omadec.c b/libavformat/omadec.c index 4c418a5ff2..066b2d85bd 100644 --- a/libavformat/omadec.c +++ b/libavformat/omadec.c @@ -60,19 +60,16 @@ static const uint64_t leaf_table[] = { }; /** map ATRAC-X channel id to internal channel layout */ -static const uint64_t oma_chid_to_native_layout[7] = { - AV_CH_LAYOUT_MONO, - AV_CH_LAYOUT_STEREO, - AV_CH_LAYOUT_SURROUND, - AV_CH_LAYOUT_4POINT0, - AV_CH_LAYOUT_5POINT1_BACK, - AV_CH_LAYOUT_6POINT1_BACK, - AV_CH_LAYOUT_7POINT1 +static const AVChannelLayout oma_chid_to_native_layout[7] = { + AV_CHANNEL_LAYOUT_MONO, + AV_CHANNEL_LAYOUT_STEREO, + AV_CHANNEL_LAYOUT_SURROUND, + AV_CHANNEL_LAYOUT_4POINT0, + AV_CHANNEL_LAYOUT_5POINT1_BACK, + AV_CHANNEL_LAYOUT_6POINT1_BACK, + AV_CHANNEL_LAYOUT_7POINT1 }; -/** map ATRAC-X channel id to total number of channels */ -static const int oma_chid_to_num_channels[7] = { 1, 2, 3, 4, 6, 7, 8 }; - typedef struct OMAContext { uint64_t content_start; int encrypted; @@ -474,8 +471,7 @@ static int oma_read_header(AVFormatContext *s) /* get stereo coding mode, 1 for joint-stereo */ jsflag = (codec_params >> 17) & 1; - st->codecpar->channels = 2; - st->codecpar->channel_layout = AV_CH_LAYOUT_STEREO; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO; st->codecpar->sample_rate = samplerate; st->codecpar->bit_rate = st->codecpar->sample_rate * framesize / (1024 / 8); @@ -501,8 +497,8 @@ static int oma_read_header(AVFormatContext *s) "Invalid ATRAC-X channel id: %"PRIu32"\n", channel_id); return AVERROR_INVALIDDATA; } - st->codecpar->channel_layout = oma_chid_to_native_layout[channel_id - 1]; - st->codecpar->channels = oma_chid_to_num_channels[channel_id - 1]; + av_channel_layout_copy(&st->codecpar->ch_layout, + &oma_chid_to_native_layout[channel_id - 1]); framesize = ((codec_params & 0x3FF) * 8) + 8; samplerate = ff_oma_srate_tab[(codec_params >> 13) & 7] * 100; if (!samplerate) { @@ -519,8 +515,7 @@ static int oma_read_header(AVFormatContext *s) break; case OMA_CODECID_LPCM: /* PCM 44.1 kHz 16 bit stereo big-endian */ - st->codecpar->channels = 2; - st->codecpar->channel_layout = AV_CH_LAYOUT_STEREO; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO; st->codecpar->sample_rate = 44100; framesize = 1024; /* bit rate = sample rate x PCM block align (= 4) x 8 */ @@ -530,16 +525,14 @@ static int oma_read_header(AVFormatContext *s) avpriv_set_pts_info(st, 64, 1, st->codecpar->sample_rate); break; case OMA_CODECID_ATRAC3AL: - st->codecpar->channels = 2; - st->codecpar->channel_layout = AV_CH_LAYOUT_STEREO; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO; st->codecpar->sample_rate = 44100; avpriv_set_pts_info(st, 64, 1, 44100); oc->read_packet = aal_read_packet; framesize = 4096; break; case OMA_CODECID_ATRAC3PAL: - st->codecpar->channel_layout = AV_CH_LAYOUT_STEREO; - st->codecpar->channels = 2; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO; st->codecpar->sample_rate = 44100; avpriv_set_pts_info(st, 64, 1, 44100); oc->read_packet = aal_read_packet; diff --git a/libavformat/omaenc.c b/libavformat/omaenc.c index 1c4edcac5c..246f5195fb 100644 --- a/libavformat/omaenc.c +++ b/libavformat/omaenc.c @@ -58,7 +58,7 @@ static av_cold int oma_write_header(AVFormatContext *s) switch (par->codec_tag) { case OMA_CODECID_ATRAC3: - if (par->channels != 2) { + if (par->ch_layout.nb_channels != 2) { av_log(s, AV_LOG_ERROR, "ATRAC3 in OMA is only supported with 2 channels\n"); return AVERROR(EINVAL); } @@ -78,7 +78,7 @@ static av_cold int oma_write_header(AVFormatContext *s) case OMA_CODECID_ATRAC3P: avio_wb32(s->pb, (OMA_CODECID_ATRAC3P << 24) | (srate_index << 13) | - (par->channels << 10) | + (par->ch_layout.nb_channels << 10) | (par->block_align/8 - 1)); break; default: From patchwork Thu Jan 13 01:56:11 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33397 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp28491iog; Wed, 12 Jan 2022 18:17:37 -0800 (PST) X-Google-Smtp-Source: ABdhPJx0ixXha0Xynv1ViYp6Esg8XighEYPcwD2OvQFsVUTHulfFz0SFJY9uq9AUidxSvR7TKi5U X-Received: by 2002:a17:906:3617:: with SMTP id q23mr2005979ejb.300.1642040256999; Wed, 12 Jan 2022 18:17:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040256; cv=none; d=google.com; s=arc-20160816; b=lyuOQVzwLWRuTP1QGdfLPYE2t/621gDbAPCFEVrPyieD2zDxUEECGXkSA1ok4DMs02 CDrkqEs7KN86jtcuH8yn4y/9nTmCKmHt5xd1VTMoBer3hxXRFpSGVt5JxMSPFQ3S177E iX0xmwGMsFz3GV56WwYh4VvqwZxCrpfSWjDszb8cbECr9qkgUA8T+4cSyJb/caZprNfd 22qJ6jY/K6t5oaULL5gH1BHB6g8iicBeHQrLZgSXrmgV6LR/h1UROjwLyd1HDF+bOtCy 6bXpObnskFNM+DC0ti/beofNxZxahYZ4HvShfcjjmILmFO33Pz6StGIsyAw8xfh6iruF yDpA== 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=rW4eGKJbg73SVxRY+cZ2SFbrbhRNRxInOeoqoNhB2+4=; b=Uldag5m2EK5eGimpHIZSAZpTiBDBjfHSeX+r1uaYzTB7X9SP9g0cCjfz4PwisXeDyH CajekEc/lTPzG82+hYyV43MrYg5z7A/REbjtxLwRdb/HLPcYzOLK231XlcFo/eNtYBuv BhxBI8qn9DFgBqFJ8dvs23Ebc9faCGEGJmoZR+l6zYHC3WkdZOWvMqqqYiLztE91rmQm yksFBw4/OQqVh9dFSM415++bCIFBAUgUakg+4yGwYwTndJTi5c1+qtJcZ8YXW0TCNgEY n/zo7CXKsMDNIRh1twqNNRnAYSAFB+TZgEqt1cv6mRgvhuZoVzHeDrJIq9ZJZcLpCEiW 0dWQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=cZq3s7cd; 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 kl17si836699ejc.30.2022.01.12.18.17.36; Wed, 12 Jan 2022 18:17:36 -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=cZq3s7cd; 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 E135668B318; Thu, 13 Jan 2022 03:57:03 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f173.google.com (mail-qk1-f173.google.com [209.85.222.173]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B2F8968B2F2 for ; Thu, 13 Jan 2022 03:57:01 +0200 (EET) Received: by mail-qk1-f173.google.com with SMTP id 82so5545460qki.10 for ; Wed, 12 Jan 2022 17:57:01 -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=Q/zukf5WoA5EUCj1/r74PK+Ygy/wXjPnQPJX3GFyAU4=; b=cZq3s7cdrShBIdGIjwyqGFnXUwD+2sGX1UMH8F+HQeG9B1j/LuohketrtRTjichH/T 2ZetoCLwH/J+aOAt850MBbgYEElnCILCWRwTqXpeG1mSK7FGSV/a40k+8fNBvb/JwkSx vHdMUHOB95gpBA5BC/IsXHVr+Z3KHhH/RkiHd1C+7LWFlmBM/dhf2F8xMMGnjNMn/iX6 COIbKH1vyO6AIiD9TzgRRzqLjVxlom1GfNO8i8tRvcwCErvrsuJeTUBqQeegRDQxDIHG qV+j3yGrLyognLnydxC+M31+Kf2v4Lg97WQQ+eII5uR7XDYEeAhw+ZAVFHjTcz5XoAkf +4Ww== 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=Q/zukf5WoA5EUCj1/r74PK+Ygy/wXjPnQPJX3GFyAU4=; b=hyvdkAIwenK9IE7Ih1RNxjcXqU6cEkkmw16aiOhaipUYBthqQQZtwm+PO0IMR3qW5+ SXShby/RNdXcFcEwsHmWYLpjuSzvrTOZZmFJOHglVyQvPfhGA6Uf0AMKNhf68YkfZh83 z3yEQ1mo54+KcvVYR8e/MiW7fnEjAN4o19KNHDfjnzvk/+T5j/zqzrL1WwTWQkW4yuJH lWscKhv6Cg48n/ZWxtNnMZ0YFCoHhEfnV687V1doa8R84bHheiG0oH2J+us7wYm9ooEq 0po6uq4mrWF/wXWaxczdpm8Dif8140Di+gYqgHtIONTmFG0dPYJBTRXJt4ayzHdZ4j4z FVUw== X-Gm-Message-State: AOAM531X3SUfqtqhJQKRc3QUkk1IBpUpfuIkwLqyLD6ePyXGd3r78W0Q MSnQMZGYCoHkWWMy4uYdD0TDXGZd4F0= X-Received: by 2002:a05:620a:2585:: with SMTP id x5mr1831914qko.263.1642039020336; Wed, 12 Jan 2022 17:57:00 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id t11sm906506qkm.77.2022.01.12.17.56.59 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:57:00 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:56:11 -0300 Message-Id: <20220113015612.448-30-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 118/281] oss: port 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: DvzJCLyIm14P From: Anton Khirnov Signed-off-by: James Almer --- libavdevice/oss_dec.c | 3 ++- libavdevice/oss_enc.c | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/libavdevice/oss_dec.c b/libavdevice/oss_dec.c index 4f3772c1f5..d3fc59d0ea 100644 --- a/libavdevice/oss_dec.c +++ b/libavdevice/oss_dec.c @@ -59,7 +59,8 @@ static int audio_read_header(AVFormatContext *s1) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = s->codec_id; st->codecpar->sample_rate = s->sample_rate; - st->codecpar->channels = s->channels; + st->codecpar->ch_layout.nb_channels = s->channels; + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; avpriv_set_pts_info(st, 64, 1, 1000000); /* 64 bits pts in us */ return 0; diff --git a/libavdevice/oss_enc.c b/libavdevice/oss_enc.c index 3103d2de9a..d6a512a264 100644 --- a/libavdevice/oss_enc.c +++ b/libavdevice/oss_enc.c @@ -43,7 +43,7 @@ static int audio_write_header(AVFormatContext *s1) st = s1->streams[0]; s->sample_rate = st->codecpar->sample_rate; - s->channels = st->codecpar->channels; + s->channels = st->codecpar->ch_layout.nb_channels; ret = ff_oss_audio_open(s1, 1, s1->url); if (ret < 0) { return AVERROR(EIO); From patchwork Thu Jan 13 01:56:12 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33398 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp28625iog; Wed, 12 Jan 2022 18:17:48 -0800 (PST) X-Google-Smtp-Source: ABdhPJwHplO6P1rPfMRhYDKZEfUpaBPXAVB6iRBU1sj9jx5Y+U+L1rWNdTawD+q3bA5q33t6isHI X-Received: by 2002:a17:907:7da5:: with SMTP id oz37mr2024772ejc.586.1642040268462; Wed, 12 Jan 2022 18:17:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040268; cv=none; d=google.com; s=arc-20160816; b=BHslYjXSzqhlRgGcveVsbX+z7mqP65tVb55w2A7yDSFTzUFCVTECJbr/msnXLu+X7A Zk0ePleHGTy5aXktPLTPouqIVywopaXfmao/JSx+jWXEjATmpV+qjxqBL4htjq4gl/2h 9DQsD1Juqv3NSn9hmZ7vCEdXEIrUJ+fmFGa7w/WYk9qzKnaisIXyC/UHv6HhyEubjJQo U1+zt2Qr/hngRG//3Dydh3Nr0JvOtssFSOjl7UtUypaftDjkJ4M5/IgyRLUpHMY0hOu0 lRA86t19D1oWTimFPYD9hH8o5c+NnyYC3yjgKwYZjl6r47PHF0foT0UWTa8rvhBhmWcg yfaQ== 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=uEYQXvQiWFlIQaDI8qaJgJYels1SXD/J1JzU4lGRlZ4=; b=ZSr5YaxFcaCHDM9Yxy2ZNL0oPiT9whyMnzbqIQ8aliCgHcNWHRjeaBMTb6rGn8+guN 5XR9cmGFF5G/vy1ScvGLtTiaxvxfhZjG/a0qo11pqQc1h0+8G6EOlAexur+rt3/r5PiG PtSAwLbkLzf51T1/9fQ9U/rr0q2N6gi6/7vZrztDF0GpkmhYLP9rQFqRVFOVRWk+rSak NIMWPC477dEIVFcd0n15TqolO748RWqwAOVg67SpvVRLjQXe8qHgR6DJ3dQUWpMqtXYR sgE1GVUfomGoU5fwyNzPyTip7YuZTbemQta99S5hYujaMEgv9Qu5iXxk5cRrj4LRpEuA GhSg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=DwZmaMEP; 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 g11si745506ejs.272.2022.01.12.18.17.48; Wed, 12 Jan 2022 18:17:48 -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=DwZmaMEP; 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 BDC0668B321; Thu, 13 Jan 2022 03:57:04 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f178.google.com (mail-qt1-f178.google.com [209.85.160.178]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 04C9A68B315 for ; Thu, 13 Jan 2022 03:57:02 +0200 (EET) Received: by mail-qt1-f178.google.com with SMTP id v7so5315167qtw.13 for ; Wed, 12 Jan 2022 17:57:02 -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=iqcgkDrWvz06FyUjR1CMHeXPgqDBuOY2oT8pKFS95gQ=; b=DwZmaMEPwIof5h2d7P55+mMz9M9ot18PYpgks6Y582g845eiBj2/81KAcNrBtve0GZ 8L0ckLcLiCZe1USwVUb69VLArOeNMYaAxGyAEXSum2kqSmWZiQO/Qky3dl+3c7xgPGvF UCHagOVo7fZBdMBZnAyWH+FXwDq6PwZwcs+vKDQEghAGgRd7zOKsX1JER/KrMVGQ0HQx mWiUL5EwtEgXlTspE43JeqWDmMuKiYOAK7cWUlgCEnequr7NN5faZFJVPHXknQryOHK+ umiQ25Jb0OQSkKRw/I06X5c5Ik0Aj/qjsdcMg/S/qt93jcmetgTuwtCR46hsYVjOGbQL N2LA== 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=iqcgkDrWvz06FyUjR1CMHeXPgqDBuOY2oT8pKFS95gQ=; b=OrsW6oQ572flgZGB+0XYobgBBDceIq+zYRxiGu8ZKvfM2MrohnQXOspCc0OsHdBYAS R593EphZ6Bugals/hY4KpK8U+CA0rLqn6R6OgHF0tS67BD0ZZu+4d0v04ZMGdtFbdVMN uaE/yCHRmftLug1Kuza84LXsDH7XgRBgfklD4t3ljtyC8sFMyYL0LBo+CCMHBjIw6tFi 8YYCP2MGLhvybcfQG2KzfHiR2RkJw8LKP9n0TTHl+SYk6t/paCPIMUPR2AE2xluDHSU9 pqXXayyIc2290G5Acsoepg7vxWYF5wQLiXqCk1brSSorUm3c85tE60up5V54HuvL9Egf 0gmg== X-Gm-Message-State: AOAM530uohMFZqRXh/7nYYSol5jkYGIOsFaL6OEDOs5YB2ytwyTXLQd7 WEKazW6RuQgTXaaCKhPS1OWCfm4jqFU= X-Received: by 2002:a05:622a:18a0:: with SMTP id v32mr1929098qtc.681.1642039021533; Wed, 12 Jan 2022 17:57:01 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id t11sm906506qkm.77.2022.01.12.17.57.00 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:57:01 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:56:12 -0300 Message-Id: <20220113015612.448-31-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 119/281] paf: 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: 2PYFhIJnmUvg From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/paf.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libavformat/paf.c b/libavformat/paf.c index 140e0567e1..d48cf57645 100644 --- a/libavformat/paf.c +++ b/libavformat/paf.c @@ -127,8 +127,7 @@ static int read_header(AVFormatContext *s) ast->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; ast->codecpar->codec_tag = 0; ast->codecpar->codec_id = AV_CODEC_ID_PAF_AUDIO; - ast->codecpar->channels = 2; - ast->codecpar->channel_layout = AV_CH_LAYOUT_STEREO; + ast->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO; ast->codecpar->sample_rate = 22050; avpriv_set_pts_info(ast, 64, 1, 22050); From patchwork Thu Jan 13 01:57:37 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33400 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp28827iog; Wed, 12 Jan 2022 18:18:11 -0800 (PST) X-Google-Smtp-Source: ABdhPJxBHFtFPhltc1lDEhWo5wGpZ4MgTcp1t90VjOoo+4Y6VIXt1UqT02cTZpxA3HkbMOyaCjmY X-Received: by 2002:a17:907:7f01:: with SMTP id qf1mr1901500ejc.240.1642040291659; Wed, 12 Jan 2022 18:18:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040291; cv=none; d=google.com; s=arc-20160816; b=jVA6Elef2Po7QbnL6Jaok5ttbkuOpdmIaLF1+N0BtTobW02FUUMwuvYzYjnt1nGWjS NTiUCqBLASl/OvYuI27hgWzpKHkta65hCJp4HNEStDVHnMiosxuGy1NMDDpSLPTT3Eh1 rjHBZWB2vmTSTzlc2ZynXXVszPCsg1kzYdqhzvACBpVPgz1cTpyR+33ceoXngxa8BEu1 wnqXcoMOleshIz1QR2ngJh623tI6jC3B7qGs0IWT7HF8fzv7EUqEwopRthsf9a8OUa3r DqvHKa4z3bEA1eqW2rCTANBuUZNNUpC/dMQV1ME/LTmxp3g1cG4CutRXR/Og8SYoxx5V ZzcQ== 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=SFP2DKiZc4LubN/QOjcjXDqv6haGrEjoOGNopPY3KyA=; b=DEItsThTz9fQuocXUMYJ4+lJGybgsV59RmLEaMTgL3YmR+rEOXRD+FamkEEttFYBNj CjIdnh5Vb7nnOH87/R+/zh2JgXF8aX2DGbsdxnaNz9YNkwW8nN+vAJDhPXjM7NJwXSud Hkxj2Cluh17gdgxxGFjPtzI+algNIWM5RnyRYJUu93OpaElsyvyZgaXSn9XqBlHgOHET XOEWc/3oOnj9bZDqGz0L0X+8u48iHKUNPgUZptNeGNdntniMbhYGNBYvj/dfsT56Fpfd zkEn9dim1wtOnh8lCbFVEVq5U7YT2igHmRr9yYti6v0qODNtpE1UeasdOcx8E8pe5CFi fiJw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=c5sNUG36; 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 o17si822114edf.383.2022.01.12.18.18.11; Wed, 12 Jan 2022 18:18:11 -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=c5sNUG36; 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 B116C68B32E; Thu, 13 Jan 2022 03:58:31 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f52.google.com (mail-qv1-f52.google.com [209.85.219.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D81EF68B328 for ; Thu, 13 Jan 2022 03:58:28 +0200 (EET) Received: by mail-qv1-f52.google.com with SMTP id jr5so5063893qvb.11 for ; Wed, 12 Jan 2022 17:58:28 -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=LbwCsCwAxmRaV2Z3bAhaLT15ptg9TOy7Xpo1rNcGbUw=; b=c5sNUG36hfS/BcJZXEDCykU+qK8/7XRds0sBG+k/wJ9hukuVRrI9e/F56Rc5MhSgy8 eo7DyV8w2wE4WF+pFsXcpHfYDoR4l9HnNW4spg0EN7RhKMsKI6h8Iz4PWfGRZpb1NGK7 ouJarMOA7fakdJlBZm4sYmk6Ogf2G9uB0rmwoxvA1kt2agO/uQRzP/riKDhbq4nR2bjO Pcl+6TvYxEx/g/6uWi3fg+oPq1N06rZFtas4xJBKpmQ/bkZ26+AmkW9XJH6r0Ql6PtmV mMqaJwf5hFMD3SDE4JIOxrjICNC60kiw8ShlyJBNKWEsSkUjRn5Z7hrj+kjL7B8H5O36 vqFg== 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=LbwCsCwAxmRaV2Z3bAhaLT15ptg9TOy7Xpo1rNcGbUw=; b=vYQn33zEGkELxDhhhNTjYI1UBwhIssGZ5501mzHuWR7GWP4o+qtPLf8pJDgZ5O+aBp K7HZMQCQHacMYT6U7fjyadAA2hxUMS22spOB185N0Rk6s8V/FxvkBbFEUlsorVCT3Dti 8xZdE/cdItDU7gtr6t4zwVnThqHyB7wgC+aMy0Mh2USvA29NwtdJ7pIobPt0r8LBOy0v rU74J4k+IncaJzjym5Cr7Oi1w3hCZxNxlMsiSDx55FW4cZsM7iuWAY67Uh/aphV63Wct EyQ6tlsu5Vq8T48RPJoqqQ4AWOfYj7SayNg2hAmqr8WmFwhyJoiFEIYk+/O5Pmf26J63 KhHQ== X-Gm-Message-State: AOAM531OTEReTTBqoZ3Q+hJUnxgM23en+q9YJ5c2WpJzlBp4DbMUr5x3 n6VO0Alx8zaWPRUarB5kstkB4R8rziE= X-Received: by 2002:a05:6214:2aa3:: with SMTP id js3mr2175791qvb.36.1642039107271; Wed, 12 Jan 2022 17:58:27 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u19sm893081qke.1.2022.01.12.17.58.26 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:58:26 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:57:37 -0300 Message-Id: <20220113015806.519-2-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 120/281] pcm: 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: N0kIKPZS7ROK From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavformat/pcm.c | 2 +- libavformat/pcmdec.c | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/libavformat/pcm.c b/libavformat/pcm.c index e91117ce5a..9741f73667 100644 --- a/libavformat/pcm.c +++ b/libavformat/pcm.c @@ -63,7 +63,7 @@ int ff_pcm_read_seek(AVFormatContext *s, st = s->streams[0]; block_align = st->codecpar->block_align ? st->codecpar->block_align : - (av_get_bits_per_sample(st->codecpar->codec_id) * st->codecpar->channels) >> 3; + (av_get_bits_per_sample(st->codecpar->codec_id) * st->codecpar->ch_layout.nb_channels) >> 3; byte_rate = st->codecpar->bit_rate ? st->codecpar->bit_rate >> 3 : block_align * st->codecpar->sample_rate; diff --git a/libavformat/pcmdec.c b/libavformat/pcmdec.c index 63539a47c0..34e60da1df 100644 --- a/libavformat/pcmdec.c +++ b/libavformat/pcmdec.c @@ -48,7 +48,8 @@ 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; - par->channels = s1->channels; + par->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + par->ch_layout.nb_channels = s1->channels; av_opt_get(s->pb, "mime_type", AV_OPT_SEARCH_CHILDREN, &mime_type); if (mime_type && s->iformat->mime_type) { @@ -77,7 +78,7 @@ static int pcm_read_header(AVFormatContext *s) } par->sample_rate = rate; if (channels > 0) - par->channels = channels; + par->ch_layout.nb_channels = channels; if (little_endian) par->codec_id = AV_CODEC_ID_PCM_S16LE; } @@ -88,7 +89,7 @@ static int pcm_read_header(AVFormatContext *s) av_assert0(par->bits_per_coded_sample > 0); - par->block_align = par->bits_per_coded_sample * par->channels / 8; + par->block_align = par->bits_per_coded_sample * par->ch_layout.nb_channels / 8; avpriv_set_pts_info(st, 64, 1, par->sample_rate); return 0; From patchwork Thu Jan 13 01:57:38 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33401 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp28950iog; Wed, 12 Jan 2022 18:18:23 -0800 (PST) X-Google-Smtp-Source: ABdhPJwlPdfCgnJXLb2ZSoUlRRZipQ2bkwBLL+ouIRN22WBL1KARoIq1NGuMbVTLh38K+vSoq/n8 X-Received: by 2002:a17:907:2cee:: with SMTP id hz14mr1883482ejc.103.1642040303371; Wed, 12 Jan 2022 18:18:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040303; cv=none; d=google.com; s=arc-20160816; b=gM/k+RQkfXE6Dl8qPisg7z1bxt+5gXPeSxJTpu9ISN9kMwoTMfQyybatfwueOvxcKj 8+Fcdp+Lwt+/T2Aemq/ya2A4NCUelGCXZfKZev9ZhT4XTOS7xvw9dW12NbcoRS1dvr9c SRoHAfA8oImlbBJSwHHIm3Ae92jjimd2sbCMzdjelGfpmGA9cI6SHSnRkxHTDtLIuMII rGO4RRcJjDFTTF/HN6001oCcJYrNWl2gCetibcJ0ixzqkb2SQ5qukNtWPYknVV1NUpJQ e6VqBKX8iAgNo3Oe5rvSU9rYEkQ7H9zMoMVoRJfnbXDQG3P8hyM8ku9HyM2CB1KNLjhP t/Bw== 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=5sO8tJIOYwH3L3G95oNiln1BS/8z9JEK8YpPJUthra8=; b=e9FgXqu5XLt2Ninmeg0BHes9k6McQOGEORNGV6VmBOJ//SxkUxm+8pIYKC8YC0DtzN koR1o9ug0sK40tWugOnSIl8zgD8XEdnFPdjQTQbAibQuWFj24n44uPgX6yUDS1R7Jx4N bK9QLL3Txy/Wtu7rvKTxPkfHD9I8OX8HHZPmB2Tgxvo25SPVh5FvS5NgZrnIPgvAvnGu crTr8/NHfEZCMDh2g6sSwcPKoe0ePnKb6uVvBFKlaqSAlg6bod/iXvDC0Us9+SLbO1A4 iDszG4a6/sHnoDmBjGw69QcuN3Vr3/s0gjp+O+/sRGmyCSjKT/Bb3UHYsvui1MiEDBfy XGCA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=QkjDbdno; 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 a14si272796edt.515.2022.01.12.18.18.23; Wed, 12 Jan 2022 18:18:23 -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=QkjDbdno; 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 B105368B272; Thu, 13 Jan 2022 03:58:36 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f170.google.com (mail-qt1-f170.google.com [209.85.160.170]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BE4F068B029 for ; Thu, 13 Jan 2022 03:58:29 +0200 (EET) Received: by mail-qt1-f170.google.com with SMTP id c19so5350537qtx.3 for ; Wed, 12 Jan 2022 17:58:29 -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=2/ewt2as3H/jqrUeNnY+bchYCiB0JWuewvzI2fN5AjU=; b=QkjDbdnoqJgUCgHJ0gk42A1Nxr/aEOrHhVpcEiukCul9Fg24ibh1RNQzdZGhc6NiAL /r8dRLOM+yC3itS9/NMUbdLAoqvdDahibKvzPA4knEEqQPUTq/Xxsp04Uym8KMWd0W01 9l48g0ySj6vUFz+ZdkNeFJsvHkfdTSse5xyDsHr93DL4xXmhN7XD6Znsdze9oOJAJ2Zc /QUnSS9yJ+r/83nywfpXPI1/cpSU79ERDo77HIEl0Qfd0y4mGan+042Mg+FXm87IdR44 U1ff+BTYCSLrTkyKYqFMzGOPnGjHsQi7FVAJTuhf/1BJh2eUUeBPgL5tNrk4wij2aafe ngog== 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=2/ewt2as3H/jqrUeNnY+bchYCiB0JWuewvzI2fN5AjU=; b=LJ6o+MeSwxJsr2qDqbS+Sc+jFcPcZVubhmKcLj7JwOcWj4WV/O92srmQwPJU+BZMXo FnB0msJkrPYclNMckhQWgG/rhRN6c2F9CX30vMEq72KxsiqOcd2w1W27+KyEiyYMC1DK 1P0Ql9aeOT9s9dYJIxZdp0OtopDohF5p3ONJexJOmcZ3bJE229IJWccgc/it0xTuxjGf TpBmfXyoFpeTjE6ZMOEDFFovB4f7nb6rldDkmB04VBU8pcOYxjOBUx5jO+cSKTGJJ8HA hG69+iwFS2lz11eQ0zo6fUivrbT+HOJC1wiD/+BN2DkBtatK37zQjzG9JOVwK38/DoKV c8rg== X-Gm-Message-State: AOAM5306k3cP65Cc+4pj3VtyPrCJLB7/dcDOPys27cjWJTHm+Dl2CE95 /Oolw0H0E68m482Z1LmVuYDQYtN7hWs= X-Received: by 2002:ac8:5f8e:: with SMTP id j14mr1915894qta.39.1642039108449; Wed, 12 Jan 2022 17:58:28 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u19sm893081qke.1.2022.01.12.17.58.27 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:58:28 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:57:38 -0300 Message-Id: <20220113015806.519-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 121/281] pmp: 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: 0ulaEKUBb/Mh From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/pmpdec.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavformat/pmpdec.c b/libavformat/pmpdec.c index ce8e89515a..d63c856770 100644 --- a/libavformat/pmpdec.c +++ b/libavformat/pmpdec.c @@ -119,7 +119,8 @@ static int pmp_header(AVFormatContext *s) return AVERROR(ENOMEM); ast->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; ast->codecpar->codec_id = audio_codec_id; - ast->codecpar->channels = channels; + ast->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + ast->codecpar->ch_layout.nb_channels = channels; ast->codecpar->sample_rate = srate; avpriv_set_pts_info(ast, 32, 1, srate); } From patchwork Thu Jan 13 01:57:39 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33402 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp29082iog; Wed, 12 Jan 2022 18:18:36 -0800 (PST) X-Google-Smtp-Source: ABdhPJyQyNa+Q6x+Kbmpv9Sj/3+z7VXzzHq5rNaU01QL9nSIVSDK8c7Ln4kMXV3thORPinLqhKc9 X-Received: by 2002:a17:907:6d1d:: with SMTP id sa29mr1918006ejc.278.1642040316350; Wed, 12 Jan 2022 18:18:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040316; cv=none; d=google.com; s=arc-20160816; b=kUBwodgWk2KA/fISfMbiJZ18EQLgWxHaCz3ATkWnueeB7W8pu6T2H5tdrsHhEDyNDS XZ8gkBzuXJ+rXvs+oflf5yxmwKalfOUYAmQi5p8ezScVxmxo1WMJa+RFyiAkSVjUxkjr eDfZMLzxlvYvGWtrp+QNtfHj032pZ/IzwOk44ikGpvYXowASUZQdDjeqKazpqCWNil0D PIFHizJqy6Y6Fw+Wcu1r3Jhxckgywh6g540vdUkgNuUCHxOUEsPA2//sLhvCbUOBwYFx jywNL5DKkp8vNvvRpCnx5hKlZhS1GXQnn4Q2L6XAEaV25ctDk55KmvtqO0K0ISHf0Ntq vdhw== 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=3YThobbsEwSW34ziQkvZLgC2Qi7m/u0dUUQgrzplKKw=; b=pWStBOkhtaBjMf/jyWBIy+QXqWDlUZ7bxju9USMXlisYkuemreHP7AwsUAXFfyNbfv 9HgRDJ3Sbf9XIpU4QfSiFqH6rGA6RtykeZwDtSShOiTBL5EVGRxvOBt9GmPHShisgopX LLtRUjTYFnkhwET0y/s3mgavg66dvF+TuZ47HrEhJjjyJ8cQoSz61tVMmj9V4K2HrSvs pK9YgrYl5oBsv8AznTa11Vy7kJ0OJK56Vl/XYGh4dJYQW7SE68HjrsPqJzjOVaFoNf00 FcOQ4RUSA+BJ6JpsNYPHfahJo1fc4/BfWx8zV8+8k+wAoQ6h1B4ZCwDs7WinZXnFh8va sTXw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=Lhv+HdQp; 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 bl20si854406ejb.576.2022.01.12.18.18.36; Wed, 12 Jan 2022 18:18:36 -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=Lhv+HdQp; 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 96DC768B33F; Thu, 13 Jan 2022 03:58:37 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f176.google.com (mail-qk1-f176.google.com [209.85.222.176]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2938068B03A for ; Thu, 13 Jan 2022 03:58:31 +0200 (EET) Received: by mail-qk1-f176.google.com with SMTP id z10so1214545qkf.7 for ; Wed, 12 Jan 2022 17:58:31 -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=7zF9X52Z5zEIH3tyffgGEpNE9zCzMNtaHS+mAfwTlHE=; b=Lhv+HdQpBRlyS4ietCxJRQGsEXXer4S5qk+V5FLUIH/P5f3gQQDjbDhQ3CiPDAuk9w fB79olxHrbGzrfZf2SQZ55q6vHQAhndK2qSD1tYdzlS+h8P0Ym7Ki7cEULEmi4nLJO0M tssDEuBhs/vIMXdHjbLcohm51nsW1PI6NzsAx2Z+emwk9VPWS1cXBlO94kSPb6gxCz8Z BOg7b6eBZLPTDAs72zDGnxgJwVHWCnoO4G8lrUivzkSPYPoYpWkRmq6Jv2GPdZYqKNj5 9Ah7zndeUQmb6mUTO8a+vi9eRi7+CXWs7Fv+6FvBISodYhiuCYqURkLZWpmGd1Vw5FxM +LOA== 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=7zF9X52Z5zEIH3tyffgGEpNE9zCzMNtaHS+mAfwTlHE=; b=LR7UJEWvm1pjHGsAm49pyML/cZcTyIVAfAbUhQWYts7AVxpf4/qwbEr/+BJQaMhhWA Wfq12NyHk7CgZjePoCKBUXG6YSHgZli4L5mcpN4G8tsgUxeiWw0eFlHgwuKfW9BpFsME f16mxen3KApZ2jq201Xc/cpcmxFARUcqPZ0rgJpu1ftERK89rWX9+KjZ9hyxbdn0utoo VaBJROaTQ+Yhlmk74jRIE+smyHCabav/OnP6nTKZlDYJGyCgmUl1aqXtozI7pIHQ4vDZ f35GONtpgPhNkLKV6qjeJDp9pA/A84Q3whKMKt3oj0aLfUOwYLj3MClXyVgMt0dsTDnc ijNQ== X-Gm-Message-State: AOAM533AOeBbYvq1Md3IpHywY4o/b7G3LnUbfSokx8JUYRLv2f2aJvwF e0ssMYyzkCVeaweoSf3oE70iFqTwk4Y= X-Received: by 2002:a37:2c81:: with SMTP id s123mr1888870qkh.344.1642039109624; Wed, 12 Jan 2022 17:58:29 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u19sm893081qke.1.2022.01.12.17.58.28 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:58:29 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:57:39 -0300 Message-Id: <20220113015806.519-4-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 122/281] pp_bnk: 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: fuU0c0IVGrDn Signed-off-by: James Almer --- libavformat/pp_bnk.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/libavformat/pp_bnk.c b/libavformat/pp_bnk.c index b1e1b6115e..c4172e2260 100644 --- a/libavformat/pp_bnk.c +++ b/libavformat/pp_bnk.c @@ -205,18 +205,12 @@ static int pp_bnk_read_header(AVFormatContext *s) par->codec_id = AV_CODEC_ID_ADPCM_IMA_CUNNING; par->format = AV_SAMPLE_FMT_S16P; - if (ctx->is_music) { - par->channel_layout = AV_CH_LAYOUT_STEREO; - par->channels = 2; - } else { - par->channel_layout = AV_CH_LAYOUT_MONO; - par->channels = 1; - } - + av_channel_layout_default(&par->ch_layout, ctx->is_music + 1); par->sample_rate = hdr.sample_rate; par->bits_per_coded_sample = 4; par->block_align = 1; - par->bit_rate = par->sample_rate * (int64_t)par->bits_per_coded_sample * par->channels; + par->bit_rate = par->sample_rate * (int64_t)par->bits_per_coded_sample * + par->ch_layout.nb_channels; avpriv_set_pts_info(st, 64, 1, par->sample_rate); st->start_time = 0; From patchwork Thu Jan 13 01:57:40 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33403 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp29195iog; Wed, 12 Jan 2022 18:18:48 -0800 (PST) X-Google-Smtp-Source: ABdhPJw/zEsR8zWCtl04fPQtTb1J7p+mqsevOeoXlXPL2+dUbaqLTkF6IHOA8/QWUIUVApiTqjLR X-Received: by 2002:a50:9e0f:: with SMTP id z15mr2297192ede.278.1642040328505; Wed, 12 Jan 2022 18:18:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040328; cv=none; d=google.com; s=arc-20160816; b=L/DGwfiTx0FVYGNkJaY5ykuy62/dZCT3Jhtg4ASrCVYWzHNnTL6FwhPtQ7KwZfDqyB GuXHxnpCTPd9NeSodMFNUhNTe/S6L4BT9klkxWpUi2nLmM648dvufNHhBE3G5cXZrBt6 /mIAaUNmuAKWTivaVxgZ2zBjDSXpieqmKfbMihgoLUCNjx2Hs/5mz2L9G1clZ/wdo1UK y2/aElwUdOaco5OQYqnvYJhkcoyD50+Zz6EVLu8ieXDSctovGwx+tyMiPeFt6rSSBz7T rvKrWMlKSkmPV8++oSvs8rt6ZfD6mDwtnbbCwYtXPBbVjGuDIYJ4Hn6uIbrw64BAdcc2 Md1Q== 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=DGRR5HgAJiNHezN68lA2DAvA4it6koV4URIrD9EKuRE=; b=RD35IPbl/qPGJAoJm1DX9G/XVy/wRYcj0NSb04jl0IbYpL67ttjJVXN/d0QyHao9VD iI4dTFcYmGRNnmoJHst3OeEzAzL5ILDuwfyr9MDl8U8yeMYTU5vfLAocr0fAt/yGuZhe abjpU8cE3NUBOQzCbAYwryFJ26zk0DAQLP0wXkK7Bkka4A+fm6eQ0k36hbaCWxhK0bFR crDMW+04dpChpACcqr5N+NbsReBpVNohkZ7iVjTONkbvnVV+f0OwW1NFxt9tZyISliye nE6pAezBOjih3DnDcCAxl4mG/clM+rABnZwtfR/Vo4Ok3V+gZPC03DJqxqFGd6scKnSZ Epgg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=KI9TaR6l; 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 c73si860571edf.241.2022.01.12.18.18.48; Wed, 12 Jan 2022 18:18:48 -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=KI9TaR6l; 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 822EC68B34B; Thu, 13 Jan 2022 03:58:38 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f182.google.com (mail-qk1-f182.google.com [209.85.222.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 379CE68B337 for ; Thu, 13 Jan 2022 03:58:32 +0200 (EET) Received: by mail-qk1-f182.google.com with SMTP id bl18so5573427qkb.5 for ; Wed, 12 Jan 2022 17:58:32 -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=0yArpAsfrWpAF7kXvO7K8JmT2dvJnoZDa8KF4iY0w1s=; b=KI9TaR6lCgR7/ryXEXWsZG+vNJekywuIe3KZekLV263zg9Hj4cQTf7V7qUTx/sj+te jrdG3Qlel1XAMQ62jdRrhsMdhWweeQhUnqEEI1JV3Kj3gtp1FkDA2CLhockP+hH4scCP UXNlCQdX4IQSQm7Ivktw9qcLIsXfTSeXBlWZYQCrO1BBxlmPJji7S51IiRtz8xnjmlvA bOcD83y3cmChfafPaHvP3U5l3gj+vstsmNrYKF+nOQHbwjiG4WrwoSPfjh4H3Ho1hdms 8812tY2spLHDPimwA2JxF4bsoJlkhubbPBOqOc3EVOU86wDOWU506vWiFmB0x6bmDi// /XHQ== 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=0yArpAsfrWpAF7kXvO7K8JmT2dvJnoZDa8KF4iY0w1s=; b=tuciw0QvcS2m99lOFzXSpYw7bq0rZoMpM03sO2rzx61B+m7aTo+0GE5y5uaZV4eTZE haGHHjc8tTuCgyVDy5ISUBq2xTTerHxVvUo1DPALX6+gH4QSXPIosw3MNjghiwWErmvg d7kAxW1i/ryGoclZ5MiLANtHwVjpxrZ2WXofR32AAjrwUHcgcFW5uzAYjHG9kgEdknEK fznKoSrv51RJp4vRrdWERRVUWAOT7T6TCJtGYUZ4b7w3sBsnR2nXsyJxD1f8R95ywhKB O4/qrO9VoSZkK1y1l5X5Xh+wjXPYaeIF3AOzO3LBYzKwpTJg7BKAoM46V1MegZh9lGfj 5uFw== X-Gm-Message-State: AOAM530V6jRDVnVJBV2YKXBnNMdZFitqstqGm/9takvJL9MkAQFKkR3D zZW4JAZ1XVohbzktGQegootcs9/pfHw= X-Received: by 2002:a05:620a:46ab:: with SMTP id bq43mr1852483qkb.541.1642039110831; Wed, 12 Jan 2022 17:58:30 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u19sm893081qke.1.2022.01.12.17.58.29 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:58:30 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:57:40 -0300 Message-Id: <20220113015806.519-5-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 123/281] psxstr: 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: DlKVNIxtF5FY From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/psxstr.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/libavformat/psxstr.c b/libavformat/psxstr.c index e649ba3ab4..bb56b05688 100644 --- a/libavformat/psxstr.c +++ b/libavformat/psxstr.c @@ -252,18 +252,12 @@ static int str_read_packet(AVFormatContext *s, st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_CODEC_ID_ADPCM_XA; st->codecpar->codec_tag = 0; /* no fourcc */ - if (fmt & 1) { - st->codecpar->channels = 2; - st->codecpar->channel_layout = AV_CH_LAYOUT_STEREO; - } else { - st->codecpar->channels = 1; - st->codecpar->channel_layout = AV_CH_LAYOUT_MONO; - } + av_channel_layout_default(&st->codecpar->ch_layout, (fmt & 1) + 1); st->codecpar->sample_rate = (fmt&4)?18900:37800; // st->codecpar->bit_rate = 0; //FIXME; st->codecpar->block_align = 128; - avpriv_set_pts_info(st, 64, 18 * 224 / st->codecpar->channels, + avpriv_set_pts_info(st, 64, 18 * 224 / st->codecpar->ch_layout.nb_channels, st->codecpar->sample_rate); st->start_time = 0; } From patchwork Thu Jan 13 01:57:44 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33404 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp29296iog; Wed, 12 Jan 2022 18:19:01 -0800 (PST) X-Google-Smtp-Source: ABdhPJzmMizT5MO+m4whTf5RQlxJEAw0Kad8pUnbhyNIqCOmq1q96jssuJ1+VXnE4qZoNrx9lnzk X-Received: by 2002:a50:bb21:: with SMTP id y30mr2305625ede.404.1642040341540; Wed, 12 Jan 2022 18:19:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040341; cv=none; d=google.com; s=arc-20160816; b=V0viIzwtvIIBIW6yoZFpcl+ddzWW+9BT8PWN12ekkXxAEmh0Lr+3/1gmn2NgCUxCrU C1zRgFBwRwGxJ6xQ/Ge7NqHZ0E0DQPrf6KbDij0NKykJKUP2eHJXVV5otQDWPpZq/RbL cyaW+pudpyhgp6AgPWNKGPErVAtOcg2WpJ/QrO/VyLwE3GxaG1DxBxoFmJfFb1TJKTKx bc1ukI9ymPRWaa4ezgoi5Pljec7uuLdDRrrdNkF8PLjUrXC7Sh++6pnIZq/RbIzzk1ZH IkABLb1aTdX9vjDJ8fQu9BqPwe9/mKnySHncchLFWwx59nwBjRy0jb5lBWL3MfD/A5oT /4jQ== 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=eqIk5gnpLHSU7su6Qui/jueBTeSXg0XIIj3l/gh0dGQ=; b=eVzTsbaaoPGweC5G3R+MdoJeioqEGZJrRfFgDEj1Ewu89t5Zqt7zi4XxCzytDUYUV5 TWpGJreenmIYUY/ubKWjyenGaiDrfImumuuw3CHWYuocA3By0/87M7DWfmqiTlNzNW1f njbtKLAwWT9Z5LvLWzULy8NDrJM4KDTkrV4jpomGl3vGZKLmvtm5pVq11S9XZpuJ7Sii oHooSJ7fZRFRJKxTZrcCwWNQkTkVVtJ9l7lC4dyaZs7SOEa/CY1OkP1bBLE5dx4SpRU3 Zl68q8g1egdL+ncFA6fxMSjWSxLbmfdttXa6b1t9lqb1YaLVo4DLDvR66DcI4eeuEhjK OY9Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=AtWqW5KZ; 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 i21si722684ejk.103.2022.01.12.18.19.01; Wed, 12 Jan 2022 18:19:01 -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=AtWqW5KZ; 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 5139168B356; Thu, 13 Jan 2022 03:58:40 +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 52F9368B32C for ; Thu, 13 Jan 2022 03:58:37 +0200 (EET) Received: by mail-qk1-f174.google.com with SMTP id t24so5537992qkg.11 for ; Wed, 12 Jan 2022 17:58:36 -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=1OVEGgsPGy7jbOV6i7sge14s2gN+0TNw9FhPT284eZ8=; b=AtWqW5KZe8NI1+pJsxSNlM8NHlFejejTXxOqCVSr3yTfh9Gq62neb8OR7jYeWDnnji sMydn8d9Df7cG2Q1PdMq+yu8Q/1c1Sdr99g5Tg393CXGeTzq2vF4YkwypooTG7xwDy03 DlpivK9Z87/6cxWXlxKi3TNUSd0tRxHXdDjvTc9036zDdQcZjqC232VuNKHN+ufkTBF2 grC/al7VzBif+hpBrFaIs+4/BpcrJHCaupor2Yf4IWI8F+Tf4iiaFWYyC1NzAUPB/xzk NDLGmS7kc4zn8sMyyviGhiA8TB1/3NJYhtY705Mp6cFB24UkTyF4tAgXFnC03SWYhscY oIJg== 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=1OVEGgsPGy7jbOV6i7sge14s2gN+0TNw9FhPT284eZ8=; b=Ngat4CQxHjhS+KJ6rbjJF0aaUFlkAVYebKrGxwYdJATW0l9R1xq1wsnOZU/n+S1nvs fvbhzhssXUWCxK9UCTk6CB9EkLD37OZDHdLripk0TcGyvaKMtKu/NmQCRxkoJLjfVbuX ouf7m+NHu3/feYAQR8QQjY5lUjIoXByO+rOPxKqPAYbBZh+zv3PsBszYBAapWjAYfZcZ cO1O8izB1BewcnIk8c9RhalLVUJ+7iWj4ojf/MVzd0djxivmIWA726qdXsIKlpTwx4D/ mln3wfGBW2MnTWH+bdzmtqf6r1AD9tFcE6qQj8rmRjagRmw65EjR9UwoG+MKwKnlTI5k s1sQ== X-Gm-Message-State: AOAM531h5QCMLtuMeTORs3DUQyhhIWTQubT1CXDTx/gfSq8xKB/j5kip hLQFgCrCAvnxkxhcw1UOQwGZfiweaX4= X-Received: by 2002:a05:620a:17a0:: with SMTP id ay32mr1754604qkb.515.1642039115659; Wed, 12 Jan 2022 17:58:35 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u19sm893081qke.1.2022.01.12.17.58.34 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:58:35 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:57:44 -0300 Message-Id: <20220113015806.519-9-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 127/281] rawenc: 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: AJqb9VtcpYds From: Anton Khirnov Signed-off-by: James Almer --- libavformat/rawenc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/rawenc.c b/libavformat/rawenc.c index 4bbae7717b..54a0c2fa78 100644 --- a/libavformat/rawenc.c +++ b/libavformat/rawenc.c @@ -79,7 +79,7 @@ static int adx_write_trailer(AVFormatContext *s) if (pb->seekable & AVIO_SEEKABLE_NORMAL) { int64_t file_size = avio_tell(pb); - uint64_t sample_count = (file_size - 36) / par->channels / 18 * 32; + uint64_t sample_count = (file_size - 36) / par->ch_layout.nb_channels / 18 * 32; if (sample_count <= UINT32_MAX) { avio_seek(pb, 12, SEEK_SET); avio_wb32(pb, sample_count); From patchwork Thu Jan 13 01:57:46 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33405 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp29954iog; Wed, 12 Jan 2022 18:20:10 -0800 (PST) X-Google-Smtp-Source: ABdhPJwQuG+VWdm36NIiEpZG6aBqPmEdS8+GpjsXBnvzG7+/3rkX8aiNUP8U4dwI/RFuUrvRDaZQ X-Received: by 2002:a17:906:314a:: with SMTP id e10mr1916250eje.672.1642040410481; Wed, 12 Jan 2022 18:20:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040410; cv=none; d=google.com; s=arc-20160816; b=ae7c2T4UJa9fzYyocd/bOk3/eplZH/RA6TswZHMqs97ss0m9RxpRRt0JohclQHtHXs NLvwKikgO6TmxqBo1REhdjrUDv3YhHB7nKEk+tG0gEsyOlfe9muc46v/CsQsm+H2LKMX vWS2lbU4VBBZFl9qbEdRJet/ZENJUr0noBG5znYDXeaPaoYkngS3BLtBpfVZRV2yc1hY 2AL2gJ787w0gMLCmtmSwi9OCBfOeyt3UncLHGqt5NxQdI3SguRxPxqWciQlmtLO5hLs+ gEZV3IsL1dYtgOSfBs4l5bQxrDxc6M9Zzl3M1qRvtRdF8bWq/qKWVEdFOozsMO1CjFSI LGTQ== 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=DM1veLtjerYdmLxDtUw4eTvDWkboYFAUfNWEgtydqJA=; b=DRUq6CR7udDVahK6il88l8TEZ4PZqNq3n+isRfNpdbCbDaVCaT1MM0fjuL4KDAMKjz +VGbvSpsAFu90+9LEvhO0fhn8dUArz79VrlgDmdpTWQslB/sFYUGsPfWySRM1tnXCBfU 8zibRvrGduPeIMtgJk12/LsuP8aNmF74PKULlwINjSEFUh6at5KMXpzTuRGGWgJiJfcA eihWw803aK6ramj54CCo40KvgozwNp9n8rKS1SXR374Q9MdfnqIDPGEMMDxXYGe3DlTb 05qRCYYeQyLNwXVeV1XxVOCUedhBuDNG1In3pizhpd4MsOgXWWDzraSkmuRVG2Ro7aGL OGeA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=LtgGUPUK; 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 r6si897476edv.7.2022.01.12.18.20.09; Wed, 12 Jan 2022 18:20:10 -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=LtgGUPUK; 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 E6C6968B377; Thu, 13 Jan 2022 03:58:45 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f180.google.com (mail-qt1-f180.google.com [209.85.160.180]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2CDE268B354 for ; Thu, 13 Jan 2022 03:58:39 +0200 (EET) Received: by mail-qt1-f180.google.com with SMTP id q24so1550832qtp.5 for ; Wed, 12 Jan 2022 17:58:39 -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=KGJIgX/PSOWDX7NLMRAwP0SSyMFbVPY8sn5MGkKPLT4=; b=LtgGUPUKS48HrA4uqYvDGc7NNRP91UGbObKQy0sScnLWncH8Iz8AJY4F4BPXNG7G35 UC2OXtiCAkmEkZwrJIjq0Ol51B2cUY8lkLW7u5y96uVKK5TBxO51uAzrs4EnTumPK9vB Lae1DQmogp3heEyvvsFnmYGQzIl7nn2hS1ziIRc2ERNK9cnN/4JlkIKSsrpHwf3PJF/8 c3+VjfkvEEUct9mYQHeWrpA9D4sgexNemG1h1IZMgi561wa7sC9MWrONqtAmd9yNCFHk X2YMMh87PhWyonAx1p1r3u+gNbPhBCz4yhIUeHDl1hW/m1Rn2ZTJUREtdOzN1RfXdr5A FPSQ== 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=KGJIgX/PSOWDX7NLMRAwP0SSyMFbVPY8sn5MGkKPLT4=; b=wNmzPvxjf29hWU1onX37QQNdYm0peqK9DPddDf3Wlc7x+hUwVND0V+VIi358OVl6py iH/lHUUGNSEuK13XX9ZI+YaBapVvAxUdE4aMgDQhL88CJa9/baRmVXMcbED3YbISaN54 j+bNPjmpun1AFP2PTTg3gyuJpqZ3LMPEKs6R/jB8Txra90U/NRrSFFuGM+GeChsw1Jtg PgNSaIAT+UcQVtmeZeRC4a8C/9EINdoHpHoHH6f87dTPhZD7fdfIeV6ArLJm3+D8uaP0 S7RMKwsTQLzPwImV+y6oJjXaXk0Qy1RrusRkbY3zmRxx0K6M1V2+T2EGulGOUkscUdU0 G7+w== X-Gm-Message-State: AOAM531PrWVjj0FTfhbCuQDz7gZYETxtJDzBRzuo+hKxCGiGP4KVARwE cvXjp/6EdHV/N2m+YA2E27gUXOXHsDg= X-Received: by 2002:ac8:7607:: with SMTP id t7mr2024622qtq.286.1642039118135; Wed, 12 Jan 2022 17:58:38 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u19sm893081qke.1.2022.01.12.17.58.37 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:58:37 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:57:46 -0300 Message-Id: <20220113015806.519-11-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 129/281] riff: 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: lC+xgiQEYxiT From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavformat/riffdec.c | 20 +++++++++++++------- libavformat/riffenc.c | 18 +++++++++--------- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/libavformat/riffdec.c b/libavformat/riffdec.c index bd32e59837..a62e9c070f 100644 --- a/libavformat/riffdec.c +++ b/libavformat/riffdec.c @@ -61,11 +61,14 @@ static void parse_waveformatex(AVFormatContext *s, AVIOContext *pb, AVCodecParam { ff_asf_guid subformat; int bps; + uint64_t mask; bps = avio_rl16(pb); if (bps) par->bits_per_coded_sample = bps; - par->channel_layout = avio_rl32(pb); /* dwChannelMask */ + + mask = avio_rl32(pb); /* dwChannelMask */ + av_channel_layout_from_mask(&par->ch_layout, mask); ff_get_guid(pb, &subformat); if (!memcmp(subformat + 4, @@ -90,7 +93,7 @@ static void parse_waveformatex(AVFormatContext *s, AVIOContext *pb, AVCodecParam int ff_get_wav_header(AVFormatContext *s, AVIOContext *pb, AVCodecParameters *par, int size, int big_endian) { - int id; + int id, channels; uint64_t bitrate = 0; if (size < 14) { @@ -102,14 +105,14 @@ int ff_get_wav_header(AVFormatContext *s, AVIOContext *pb, if (!big_endian) { id = avio_rl16(pb); if (id != 0x0165) { - par->channels = avio_rl16(pb); + channels = avio_rl16(pb); par->sample_rate = avio_rl32(pb); bitrate = avio_rl32(pb) * 8LL; par->block_align = avio_rl16(pb); } } else { id = avio_rb16(pb); - par->channels = avio_rb16(pb); + channels = avio_rb16(pb); par->sample_rate = avio_rb32(pb); bitrate = avio_rb32(pb) * 8LL; par->block_align = avio_rb16(pb); @@ -160,12 +163,12 @@ int ff_get_wav_header(AVFormatContext *s, AVIOContext *pb, return AVERROR(ENOMEM); nb_streams = AV_RL16(par->extradata + 4); par->sample_rate = AV_RL32(par->extradata + 12); - par->channels = 0; + channels = 0; bitrate = 0; if (size < 8 + nb_streams * 20) return AVERROR_INVALIDDATA; for (i = 0; i < nb_streams; i++) - par->channels += par->extradata[8 + i * 20 + 17]; + channels += par->extradata[8 + i * 20 + 17]; } par->bit_rate = bitrate; @@ -178,13 +181,16 @@ int ff_get_wav_header(AVFormatContext *s, AVIOContext *pb, if (par->codec_id == AV_CODEC_ID_AAC_LATM) { /* Channels and sample_rate values are those prior to applying SBR * and/or PS. */ - par->channels = 0; + channels = 0; par->sample_rate = 0; } /* override bits_per_coded_sample for G.726 */ if (par->codec_id == AV_CODEC_ID_ADPCM_G726 && par->sample_rate) par->bits_per_coded_sample = par->bit_rate / par->sample_rate; + par->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + par->ch_layout.nb_channels = channels; + return 0; } diff --git a/libavformat/riffenc.c b/libavformat/riffenc.c index ffccfa3d48..04cde7b37f 100644 --- a/libavformat/riffenc.c +++ b/libavformat/riffenc.c @@ -77,9 +77,9 @@ int ff_put_wav_header(AVFormatContext *s, AVIOContext *pb, * for indicating packet duration. */ frame_size = av_get_audio_frame_duration2(par, par->block_align); - waveformatextensible = (par->channels > 2 && par->channel_layout) || - par->channels == 1 && par->channel_layout && par->channel_layout != AV_CH_LAYOUT_MONO || - par->channels == 2 && par->channel_layout && par->channel_layout != AV_CH_LAYOUT_STEREO || + waveformatextensible = (par->ch_layout.order == AV_CHANNEL_ORDER_NATIVE && + av_channel_layout_compare(&par->ch_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_MONO) && + av_channel_layout_compare(&par->ch_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO)) || par->sample_rate > 48000 || par->codec_id == AV_CODEC_ID_EAC3 || av_get_bits_per_sample(par->codec_id) > 16; @@ -89,7 +89,7 @@ int ff_put_wav_header(AVFormatContext *s, AVIOContext *pb, else avio_wl16(pb, par->codec_tag); - avio_wl16(pb, par->channels); + avio_wl16(pb, par->ch_layout.nb_channels); avio_wl32(pb, par->sample_rate); if (par->codec_id == AV_CODEC_ID_ATRAC3 || par->codec_id == AV_CODEC_ID_G723_1 || @@ -119,13 +119,13 @@ int ff_put_wav_header(AVFormatContext *s, AVIOContext *pb, } else if (par->codec_id == AV_CODEC_ID_AC3) { blkalign = 3840; /* maximum bytes per frame */ } else if (par->codec_id == AV_CODEC_ID_AAC) { - blkalign = 768 * par->channels; /* maximum bytes per frame */ + blkalign = 768 * par->ch_layout.nb_channels; /* maximum bytes per frame */ } else if (par->codec_id == AV_CODEC_ID_G723_1) { blkalign = 24; } else if (par->block_align != 0) { /* specified by the codec */ blkalign = par->block_align; } else - blkalign = bps * par->channels / av_gcd(8, bps); + blkalign = bps * par->ch_layout.nb_channels / av_gcd(8, bps); if (par->codec_id == AV_CODEC_ID_PCM_U8 || par->codec_id == AV_CODEC_ID_PCM_S24LE || par->codec_id == AV_CODEC_ID_PCM_S32LE || @@ -153,7 +153,7 @@ int ff_put_wav_header(AVFormatContext *s, AVIOContext *pb, /* dwHeadBitrate */ bytestream_put_le32(&riff_extradata, par->bit_rate); /* fwHeadMode */ - bytestream_put_le16(&riff_extradata, par->channels == 2 ? 1 : 8); + bytestream_put_le16(&riff_extradata, par->ch_layout.nb_channels == 2 ? 1 : 8); /* fwHeadModeExt */ bytestream_put_le16(&riff_extradata, 0); /* wHeadEmphasis */ @@ -180,13 +180,13 @@ int ff_put_wav_header(AVFormatContext *s, AVIOContext *pb, if (waveformatextensible) { int write_channel_mask = !(flags & FF_PUT_WAV_HEADER_SKIP_CHANNELMASK) && (s->strict_std_compliance < FF_COMPLIANCE_NORMAL || - par->channel_layout < 0x40000); + par->ch_layout.u.mask < 0x40000); /* 22 is WAVEFORMATEXTENSIBLE size */ avio_wl16(pb, riff_extradata - riff_extradata_start + 22); /* ValidBitsPerSample || SamplesPerBlock || Reserved */ avio_wl16(pb, bps); /* dwChannelMask */ - avio_wl32(pb, write_channel_mask ? par->channel_layout : 0); + avio_wl32(pb, write_channel_mask ? par->ch_layout.u.mask : 0); /* GUID + next 3 */ if (par->codec_id == AV_CODEC_ID_EAC3) { ff_put_guid(pb, ff_get_codec_guid(par->codec_id, ff_codec_wav_guids)); From patchwork Thu Jan 13 01:57:47 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33406 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp30091iog; Wed, 12 Jan 2022 18:20:26 -0800 (PST) X-Google-Smtp-Source: ABdhPJwBOa2j8Vh5eNZVsvPA0j+Q8p9u96YnWiqXd73ozHhxqWjPPPCUnKB0ZkgCAyrFmfpSZLKe X-Received: by 2002:a17:906:17c2:: with SMTP id u2mr1894651eje.500.1642040425880; Wed, 12 Jan 2022 18:20:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040425; cv=none; d=google.com; s=arc-20160816; b=hUR3CPS8ROpoflt9UFouLS+UZ+HMbGQepbNUU6Hvu/5aBeJt3/jWRW04Q+GOgi7oZ5 tuZXeQJg2a9D+csx147b56k87VSkj/ec7unacHs01JWRyWqfCsggFHX2rXimhNsyAZ7a AGAY+XXJky6eF2gMUzCMNBz4CVPgLf30PTDDMLv7KwzS1EPYIAzboAaiRTZLIlFvQ5TF x8+1f38/phlBha7b8Cd0BhkJcGpfXEekmVpmpDYzT1WzX98aJ26vthHMPCRCu7M/UNHr QKavnlkqCkK7vbcbsGEKXAUqxRpjEnVDZ+lU86IooUbiUIu0DgYWqWRNv2dIdIjaunI1 PGhw== 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=R8DOrXd6Umnj5hdaS/Fip50NIKYqPJvNutffa3G2yEE=; b=HzQo89H+3jSPJszwzfuA4iQ2W1gOaJFVKQiDRlc0cpWZr5i6ccnwwKKNE9LW7YfhNX ZEwXhxwebp7sZL5VrvhuyFiPcgIFxs7WYFOMN5VSdPrh82IDJTwAklnVtQ3Y/RaCHzsE yrlWhDBeCXTDRWVM1H9e5P+fmHQmR3rli4UuByvRVA48HgpkMq5vfhOK/QElp+3+22LM XP+2y+0psbnaxX5O35LbZSixw4cSsg5JNU12NiexsAxl/39l8rMStRJYSo7m2WcgD3iy 2eYVrAR5HJKJbXzSaj/UiZo7RVE3vHnXCQRui6O+6Pr6bVljwOnF1Bgu9EqEEnvV4h3O INag== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=lXuG9Ueb; 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 jg4si985808ejc.626.2022.01.12.18.20.25; Wed, 12 Jan 2022 18:20:25 -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=lXuG9Ueb; 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 C3F1B68B380; Thu, 13 Jan 2022 03:58:46 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f46.google.com (mail-qv1-f46.google.com [209.85.219.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2E46068B359 for ; Thu, 13 Jan 2022 03:58:40 +0200 (EET) Received: by mail-qv1-f46.google.com with SMTP id r6so5045519qvr.13 for ; Wed, 12 Jan 2022 17:58:40 -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=yeWKNQldFjW5C6PISOhybIquqti4mnIP9MpeQxtA0C4=; b=lXuG9UebjvOfA0ter9VpA16nqnTef72sYJM+bfKqGu4Vn5wxD7kig54m5NC0WFji0m 1U1iRe62sgM21qZt0bSeIB67ocGrRo+QtXYaBGvJ/7O9EcEcW/Z8PGGvpOiSHvhlpYoo BFcAgbhsGXoKNiQ9XcEQSUArypaZrnpX+ZECcVMS92PDbnSooUujdC6O6RHmMFIs9HBF XQmHG2SXDg1m4NPO+oDl2Pxmrh9/kR1bVnvbILxMWusnbYlzD4cX8Q1ZudFs/ptNtHND U8iN7fDXI4wl3JH9XcSXVkMxuFDNJcnBH9Z1PO3rSif5Il26rf+TzV0y0RHRk3dDXmXd mbJQ== 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=yeWKNQldFjW5C6PISOhybIquqti4mnIP9MpeQxtA0C4=; b=rq1TGN52nEpDIRdTZQ2k4pf5h6KvSpvPYXdjVHHCVt17DvVEvtowj87SL4u2MRZ1FG kXGyy3ee0Fxd9L8SyOAoJUqZYyZMF1tYL5eM+lJm+5uFbaVZehd9cJDEpTuu2BTxDeqK YMcwOWMsWLLfFQIkp+rf0nUDxmyMD/9GAw8600yg60SCwEPnfiaQSKbyxG5ryTPTETJw 11KWBNeMooo7hLh0LIYNI+NJ4VjcMT8kOH885jNMwp9PSG2sftibTO7yER7X2lwoCVmF mvAYuHdLT9N+9dij8lxNGkuGZOSx7IsVvn96wWvgUjGUU+ehNwQolhbCcoKEgOHdhGGB Btpg== X-Gm-Message-State: AOAM531sYKlZhVlVXHXrZakgJUnVjgBOX3kpwSkBziO2i/baLTuSPR5b 0kZjUQpTDL2hqxil2u9YSjxH3phsH5o= X-Received: by 2002:ad4:4eab:: with SMTP id ed11mr2187319qvb.27.1642039119342; Wed, 12 Jan 2022 17:58:39 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u19sm893081qke.1.2022.01.12.17.58.38 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:58:39 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:57:47 -0300 Message-Id: <20220113015806.519-12-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 130/281] rl2: 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: lMsDk8WtH63l From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/rl2.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libavformat/rl2.c b/libavformat/rl2.c index 6a559c7294..7b4b8d0ba7 100644 --- a/libavformat/rl2.c +++ b/libavformat/rl2.c @@ -147,12 +147,13 @@ static av_cold int rl2_read_header(AVFormatContext *s) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_CODEC_ID_PCM_U8; st->codecpar->codec_tag = 1; - st->codecpar->channels = channels; + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = channels; st->codecpar->bits_per_coded_sample = 8; st->codecpar->sample_rate = rate; - st->codecpar->bit_rate = st->codecpar->channels * st->codecpar->sample_rate * + st->codecpar->bit_rate = channels * st->codecpar->sample_rate * st->codecpar->bits_per_coded_sample; - st->codecpar->block_align = st->codecpar->channels * + st->codecpar->block_align = channels * st->codecpar->bits_per_coded_sample / 8; avpriv_set_pts_info(st,32,1,rate); } From patchwork Thu Jan 13 01:57: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: 33407 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp30262iog; Wed, 12 Jan 2022 18:20:42 -0800 (PST) X-Google-Smtp-Source: ABdhPJy0LCvMbhKsjXxvdPZRIG5wWF+8r/NcxDQ2NTJo0QvUI9rO+mEsBSU5M45RuFJsw85IypSI X-Received: by 2002:a05:6402:10c8:: with SMTP id p8mr2222650edu.219.1642040442236; Wed, 12 Jan 2022 18:20:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040442; cv=none; d=google.com; s=arc-20160816; b=TjVOhbn88Ug5yK6cTXNu27+UVDvbNE7C9BMWyQU9wwUgw3jLqYsbu+d15Geg1YZQ3F zRw2zcoH2B5Jw1nccOa7mrrU/VeYQ1nB0kaGBj3HEazQwHaCvXBXhwroxKoRDeXGt54j lhxTuedg0cEzz6EsjhH4UpvNMULBhgdakXGKkx4rxaNzp9EECVZPhhSutSzFZP1BKqD5 9VR75cubFU79romsmHvdj1r3gShwMgwhZY2efHxUnAXLeERYlxmuJTZI+IrCXwW8y8KQ kQcVUxT+0CCvqz7nEMmjDoB+AMy8G/aFuXrASx4HRoAJ6evfJms5X/ZFwyMiuS3Vj+tO ycJw== 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=+A4PhMWYLrNITczJLi2PzEfy4SOp2ikaPVBkDWEtTA4=; b=dVxjJTl3CmKOy6U8yCCs4MDpGD2TRdOYGgvANKoNfjL/pQgpxs3rnHuwAt+F7NEH1D rxCxbL0pPQGC+14dV03Z1Phe/Pf9OFwMMleLLfEdmJD+1UMeKmUAMd95qE5pmyIQgD40 5XlQ3SwNinulfALWfhe9wJX7/4HDRfcV/vpyF+EtGjtkDv9dKi6+CZ4S6wvPadX3Up5P saTwYAoDDVJFn2dxsJaGV49t4mHhVN0A7zaGjUf6dmp3sWm1cte3gNE6Nrp2EhDGyUEe /eYHQ5+wwKAYjVgbfz+o+2gelNrCkbVS416phLQyq8O9oovgy4+vAAN0SomDw66ZByAs DSAw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=OvhZgrKL; 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 kx3si819351ejc.113.2022.01.12.18.20.41; Wed, 12 Jan 2022 18:20:42 -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=OvhZgrKL; 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 B1EE468B35E; Thu, 13 Jan 2022 03:58:47 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f176.google.com (mail-qt1-f176.google.com [209.85.160.176]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 26BC668B35D for ; Thu, 13 Jan 2022 03:58:42 +0200 (EET) Received: by mail-qt1-f176.google.com with SMTP id b14so2424334qtb.12 for ; Wed, 12 Jan 2022 17:58:42 -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=Pm2/wbYm/15QOw+WSiycgHfN7KMIGtff1jHn0IvoOd4=; b=OvhZgrKLb53m5knt/QVszZ3lnLhAZQaw21VRnejnCJ/S+uBh67fw4uVhtRj3DWaFNz REomWBgahpDvsBDlfh3aj+HhdiAkvGjajB48PHNxZzw+YiW4Yz+k382/2wu7KQAIe9/b L0u/EzSUy0qDhErLhlTaxz2awAes0CBaw5pvymfcukmxWX/7tI1K2Ugn2LuVllvDBI3Z OeHc7K1jKEXS+W/XQRCRzKIW1DBm5FqLtRBELkPa1HTh/9V2Iuc0tU4g6C+WxOcEvPv0 N78JMoyjMwDEnuhyNC8XkSAAIEjLqPMH566L88zi45HGxLPj1k/8ooVfvVKL7rR+7WE6 5bUA== 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=Pm2/wbYm/15QOw+WSiycgHfN7KMIGtff1jHn0IvoOd4=; b=DNjFMsm+D0FbtWa5C4zxl/gbKVXYM7sS4zdhyPrLFiyJ4ZpRgKft0DdQeq5Z/gB/NQ C9rTFOJu99JmumTFAc+GfQvQMxA00a5EwPgq3rNnNgaTSvlty7OchSqFdVQSycoD0jEw pgspmIQFYAbzcfRv3wykxHtilfaRM3VARlbyL2VVfUMu1U1J51pCxAqXz8br16SAqDe8 WJorWM7vaiGFxfvni4x5wTEyhCOt//U7YKYbITh0jP8T4jL2PuE8oI0YsLCxZHFI9pfv wLy2cI+KTXOV22zXfKo39CKneS7dK0qpbk3ITjMHw3glnmXBULsH3YbMGYql1DJbCOJE se4g== X-Gm-Message-State: AOAM532XQ5/LKk4rim3eF3jHUa0+V0f9cH8PSyR/hVNC6Gr9J0Q4oPbI WccGMUwmOrXSZZUhfMoewGUQD2KsuaM= X-Received: by 2002:ac8:5c03:: with SMTP id i3mr2057093qti.107.1642039120591; Wed, 12 Jan 2022 17:58:40 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u19sm893081qke.1.2022.01.12.17.58.39 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:58:40 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:57:48 -0300 Message-Id: <20220113015806.519-13-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 131/281] rm: 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: KGXeyjfKvs/5 From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/rmdec.c | 6 +++--- libavformat/rmenc.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libavformat/rmdec.c b/libavformat/rmdec.c index 3a3f6aaf09..49c2645ecf 100644 --- a/libavformat/rmdec.c +++ b/libavformat/rmdec.c @@ -152,8 +152,7 @@ static int rm_read_audio_stream_info(AVFormatContext *s, AVIOContext *pb, if (bytes_per_minute) st->codecpar->bit_rate = 8LL * bytes_per_minute / 60; st->codecpar->sample_rate = 8000; - st->codecpar->channels = 1; - st->codecpar->channel_layout = AV_CH_LAYOUT_MONO; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_CODEC_ID_RA_144; ast->deint_id = DEINT_ID_INT0; @@ -189,7 +188,8 @@ static int rm_read_audio_stream_info(AVFormatContext *s, AVIOContext *pb, } st->codecpar->sample_rate = avio_rb16(pb); avio_rb32(pb); - st->codecpar->channels = avio_rb16(pb); + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = avio_rb16(pb); if (version == 5) { ast->deint_id = avio_rl32(pb); avio_read(pb, buf, 4); diff --git a/libavformat/rmenc.c b/libavformat/rmenc.c index 1b2b0ecf38..1fba092b88 100644 --- a/libavformat/rmenc.c +++ b/libavformat/rmenc.c @@ -228,7 +228,7 @@ static int rv10_write_header(AVFormatContext *ctx, avio_wb32(s, 0); /* unknown */ avio_wb16(s, stream->par->sample_rate); /* sample rate */ avio_wb32(s, 0x10); /* unknown */ - avio_wb16(s, stream->par->channels); + avio_wb16(s, stream->par->ch_layout.nb_channels); put_str8(s, "Int0"); /* codec name */ if (stream->par->codec_tag) { avio_w8(s, 4); /* tag length */ From patchwork Thu Jan 13 01:57:49 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33408 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp30476iog; Wed, 12 Jan 2022 18:20:55 -0800 (PST) X-Google-Smtp-Source: ABdhPJwnETItPlwbEDa+T2YKqEQ+uDCC8tHM/7BX7T41I0K9FNSq+BrRBQWtAfIjmDQlmDyC1cSh X-Received: by 2002:a17:906:dc92:: with SMTP id cs18mr1959433ejc.592.1642040455007; Wed, 12 Jan 2022 18:20:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040455; cv=none; d=google.com; s=arc-20160816; b=dc4divRMiynVgjlNXfKRJMgwhx59eLfM1b/QWxbbVGzMsRGKm+KwvXXuXFkHRnd1yI z9KYBPAiQA5rwxXXA2nKMURPjUHIMq4md+D3kA0dk3wPMSJ/MEfow821dYpxjbBWHV3F 1qZfyFtlRObfTxT7ePuTxrv93HHu5tn2FdKH/s9FZ1Tj7nRxN1roydhalDJT2KkAuA+Z DGwEsSBVGxGx9us1zOjkD3ZnGJCLUp+5MegxOeXVXugSMSSBK5kkdmuDokLtik+zwMes ISD3c0iwx8QO6lId2nWwI7gwNPtL9Vz+7Z6pRk3O96XcqooONa3rHjdipqMT3gnS8Kg6 RvgA== 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=cguWkUhDezbdnhtsGjGxllvvHDpLFPK6PuktK0q5D+s=; b=ycjN9xrMXFqyCMq3Hfm9y6mBiVg9pzjjG78UBjJGPWYUakrZdWX7iFd5rrxDYpXEJw CBn9bhor6T7NEx3+4avoISJiqZekvKsSM1QGtKUGxQsr3ZiNuyLhC63mHuonIBpvOAw9 +gzaGgFIGFHH6xai/BQBk8U4fMQ8qCYzsZkIHAlYC1Hkfmyzk8PnYxV7t44Ih9UGNVyq 3xsRC10t99bZ2V784NyHUPgs0US+7yBmYHTGPa9EVpXwUC1/26HYZqd47odrj0bKY4u1 tld3lMeO1p9gbKFfPpH8F9vJrT05B7VXakBrL+jRf23sRVm5tTyyPUz2BMiOJgWKnMIN VN3A== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=AHiLAwfX; 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 dm28si852459edb.411.2022.01.12.18.20.54; Wed, 12 Jan 2022 18:20:54 -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=AHiLAwfX; 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 8ADBD68B38B; Thu, 13 Jan 2022 03:58:48 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f182.google.com (mail-qt1-f182.google.com [209.85.160.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6882068B36B for ; Thu, 13 Jan 2022 03:58:43 +0200 (EET) Received: by mail-qt1-f182.google.com with SMTP id q14so5313650qtx.10 for ; Wed, 12 Jan 2022 17:58:43 -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=tPwyqmJdfvBYwDTpg9HC9wLIiHbEUc0jJMJ6FbeBZDk=; b=AHiLAwfX/RVXtB868nUhYIuDjeZ+prPC7cuOpCNdmI7TNVuKSCk9psIt64x01FunoC yDcacMcQkxQZtmssp5ByQe/ONrCTZVE6vpToq6/XcTWR26VNCFA8Pk6TzONWMezAX//B W57P7tK87gU2eS5SRfk6Dm9nT8SnkUNshf7QrTK++0KZQKAXM7jANyAGJsNuKOrItRdf C5ZT0goEjSbI2cixhW1aukxi/GqoTiw45u3ptYE8kusVmbi6ZIJ5ljAMGQpzMajyARvC BJ3I2gFBEHTvvKpr0s9EJKmUL68CtcU4GK4FoaOsaqt7MvzIgPtRJHGvuVrn8GxS44SU vvLg== 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=tPwyqmJdfvBYwDTpg9HC9wLIiHbEUc0jJMJ6FbeBZDk=; b=QRDILBx24qSudTKF3Ko9EoBKi859Ozlx6R2pgCjIZPY9g+5uDqAFBX2L9RdB3UiSvR mwCBRUriANgBuqLs7epDhIuEHSbVnoxOfGyArT0UFrhpu5AaaneXb2+UcEgX4tQQf+Ty OUnaSQ8J/XCvTCGMP3qWNTGQArdGYnrA8NzJ/k5S77Xn/tC0C5A3czWJr5w1pHJ7BddC nh7oRGvU7Bw9m2wNAQG5rE2pHPyMn6w1HzX4ZdVrlkUin9r45nDv9uYqxwMvt7dnza5R YcpEVV/Xwt6VLOKmmq6/is/2hSuyIf+/G0yiLB4SIiqrBbIIV2Q44+1IrTX/UJgX4xUc a9Fw== X-Gm-Message-State: AOAM532FVV52KzzBpoUuGqq58a7fB2yiaNeXw/dx66XqE0O0vI4MrNu5 pyyf9Gjwx2cyASTDT+jtfj+oLzANUkU= X-Received: by 2002:ac8:5a47:: with SMTP id o7mr1963199qta.613.1642039121786; Wed, 12 Jan 2022 17:58:41 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u19sm893081qke.1.2022.01.12.17.58.40 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:58:41 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:57:49 -0300 Message-Id: <20220113015806.519-14-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 132/281] rpl: 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: tVj7dAd3laiD From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/rpl.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libavformat/rpl.c b/libavformat/rpl.c index 459791ffd3..b6eaaab768 100644 --- a/libavformat/rpl.c +++ b/libavformat/rpl.c @@ -194,23 +194,26 @@ static int rpl_read_header(AVFormatContext *s) audio_format = read_int(line, &endptr, &error); // audio format ID av_strlcpy(audio_codec, endptr, RPL_LINE_LENGTH); if (audio_format) { + int channels; ast = avformat_new_stream(s, NULL); if (!ast) return AVERROR(ENOMEM); ast->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; ast->codecpar->codec_tag = audio_format; ast->codecpar->sample_rate = read_line_and_int(pb, &error); // audio bitrate - ast->codecpar->channels = read_line_and_int(pb, &error); // number of audio channels + channels = read_line_and_int(pb, &error); // number of audio channels error |= read_line(pb, line, sizeof(line)); ast->codecpar->bits_per_coded_sample = read_int(line, &endptr, &error); // audio bits per sample av_strlcpy(audio_type, endptr, RPL_LINE_LENGTH); + ast->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + ast->codecpar->ch_layout.nb_channels = channels; // At least one sample uses 0 for ADPCM, which is really 4 bits // per sample. if (ast->codecpar->bits_per_coded_sample == 0) ast->codecpar->bits_per_coded_sample = 4; ast->codecpar->bit_rate = ast->codecpar->sample_rate * - (int64_t)ast->codecpar->channels; + (int64_t)ast->codecpar->ch_layout.nb_channels; if (ast->codecpar->bit_rate > INT64_MAX / ast->codecpar->bits_per_coded_sample) return AVERROR_INVALIDDATA; ast->codecpar->bit_rate *= ast->codecpar->bits_per_coded_sample; From patchwork Thu Jan 13 01:57:50 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33409 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp30589iog; Wed, 12 Jan 2022 18:21:08 -0800 (PST) X-Google-Smtp-Source: ABdhPJzi2vZ+uieLJu7azZdiGNQ/sx45jz+fKXugwaVjr0ojaRHIvVf7YhUDORxxMGKZOCwAoBow X-Received: by 2002:a17:907:3fa6:: with SMTP id hr38mr1945381ejc.88.1642040467925; Wed, 12 Jan 2022 18:21:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040467; cv=none; d=google.com; s=arc-20160816; b=olGcS4sfzX1Rx8+4mxgvdBOcIICzyqxazK29CwRlQCdYyr6ZwLudxg+R297IIxEfaW LGJzgvIYDzro49HqY3b4jToUU8TpaNwwzxG1FYXxyifKDWtlRM4F2Lh8aeUkHifWKNlo gweCA4gjUUTqhVZJtTc4BhB1kHsdViao3X0eRkpkrsXS2WRPvuoNmDNxWvsfSaA5x2P4 uuyZBHS/yZHiw9SjYT8H43GgyhPgEP+xn5cvrfvjaUhwQ9bGGny7Bu6thXheJHAB1nAG aY9L6wAcxMFBVSi5Udtqz09jmLMtURjIFpI6plP3+1IoRbI761Ux+AyuvYKrqTXgxtAU QnNg== 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=/zQ0rcAzCm/IrVNHjfYTbs1MhpWgTRkfCfsYmDPokVE=; b=Gs2m+qrErBOXYZQ+miwIPao4ieCYdbTj4Havw/caCKQO/iBbeAeZnjEu3GrEGXXw6K sdAxUyV6zyA5jp1U63mtzMtCOGQ+LZNu9OBneNKc73GOMz7bO2L285/yxUy5wes7L+3Y JJLWidqH1QHuXVmSyTgsRjpIpBmYYPpxerCQ6MgU81G+SnxPLLkZ631bQD8ofryLq0tU ZbTW8l3om/niIKxyT7NSdfzyi9YC8ZjlGBDqluGAjtiAWP2C0YX/Zocf41CATx0E7crx 6L4gY/XlCTE6R1E9x3iUxCLo0EurCq9GbA3pItpn7AU3oZ1SJ0wJzv55uxGh+nfWQYD2 Rwow== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=fGNWCT7F; 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 n13si766779ejk.436.2022.01.12.18.21.07; Wed, 12 Jan 2022 18:21:07 -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=fGNWCT7F; 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 535AB68B387; Thu, 13 Jan 2022 03:58:49 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f45.google.com (mail-qv1-f45.google.com [209.85.219.45]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A844F68B353 for ; Thu, 13 Jan 2022 03:58:44 +0200 (EET) Received: by mail-qv1-f45.google.com with SMTP id kl12so5095653qvb.5 for ; Wed, 12 Jan 2022 17:58:44 -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=ZJ9lUbBJpCoU5X2bvN8COZwQKk1sA6W4pVYdj9acVEs=; b=fGNWCT7F0iA1HmBPF6XVypogtPmLHzOch4KxtLicdfnVZwZwh5/kkkj0gc/QhzGKMN vRGSDwgMjDMKjW8vC/xj8koCHVg7KseGcA2lEVJgyIqM6XlO/qRJy9bUbnL/naGCRHv6 Fm7lB8fjtoGe+/3qfUTu2+1/ky2grs+xmN3eJ4D4Z95YPmB1yto4jgiDw3m+0Dzg0CkI jE2Q7w01WhZn/806Bx8l3Yw0gfXbbdSuH0Az921hnEplv1sxRrXKMOsza5X+NMNGO8pg y8YY0UuavOEgRXRWDV/RDlinuGmhZrOTEErr4r/ZSJFwRxuU4IusFu9KhM2scWKYztne rwLg== 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=ZJ9lUbBJpCoU5X2bvN8COZwQKk1sA6W4pVYdj9acVEs=; b=tuZev8xqE20QN/XJDol2hMuWg9PmdZT2nPanpqDLA+JlHUkJbFEVwvsCUGIHOl1k/o gSz8i3RR5ii+APiy/3igk3uhhXEWSL4STXB9wCQexnwYBboAD8vwzaAX9MB1Qxhtub// 63ltRd3uXMJUEeL0LQKtOiKBPEX5harDQO5H56s5GVuY6fx4Q0U22Ueec5Hww3k/Sn8c vGl56zuVXeCj7anok+1VqoOgWCpUtL7vwpPHr2GEE8xUhdY2+5WLAV+gYBy1ZKTdJleB ZRlTK4zmQqaBCl+JOMqTyC0aRUWuxRxwttSHFGBHN9hVa1I1TYMMb0DOyAZRXDCg3xm5 oA2A== X-Gm-Message-State: AOAM533Ai5302u0iBZIcezn8Y05kcRWPtAOIuEU+6RFQYWdSFty6EbgU c+Zr8oO4XQtkbaBu4gKn1017nQNR5+M= X-Received: by 2002:a05:6214:2a8e:: with SMTP id jr14mr2253899qvb.97.1642039123024; Wed, 12 Jan 2022 17:58:43 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u19sm893081qke.1.2022.01.12.17.58.42 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:58:42 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:57:50 -0300 Message-Id: <20220113015806.519-15-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 133/281] rsd: 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: VLkbvjZjtT2A From: Anton Khirnov Signed-off-by: James Almer --- libavformat/rsd.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/libavformat/rsd.c b/libavformat/rsd.c index ba3b3429b9..bd6dc3351e 100644 --- a/libavformat/rsd.c +++ b/libavformat/rsd.c @@ -81,9 +81,10 @@ static int rsd_read_header(AVFormatContext *s) return AVERROR_INVALIDDATA; } - par->channels = avio_rl32(pb); - if (par->channels <= 0 || par->channels > INT_MAX / 36) { - av_log(s, AV_LOG_ERROR, "Invalid number of channels: %d\n", par->channels); + par->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + par->ch_layout.nb_channels = avio_rl32(pb); + if (par->ch_layout.nb_channels <= 0 || par->ch_layout.nb_channels > INT_MAX / 36) { + av_log(s, AV_LOG_ERROR, "Invalid number of channels: %d\n", par->ch_layout.nb_channels); return AVERROR_INVALIDDATA; } @@ -102,17 +103,17 @@ static int rsd_read_header(AVFormatContext *s) memset(par->extradata, 0, 34); break; case AV_CODEC_ID_ADPCM_PSX: - par->block_align = 16 * par->channels; + par->block_align = 16 * par->ch_layout.nb_channels; break; case AV_CODEC_ID_ADPCM_IMA_RAD: - par->block_align = 20 * par->channels; + par->block_align = 20 * par->ch_layout.nb_channels; break; case AV_CODEC_ID_ADPCM_IMA_WAV: if (version == 2) start = avio_rl32(pb); par->bits_per_coded_sample = 4; - par->block_align = 36 * par->channels; + par->block_align = 36 * par->ch_layout.nb_channels; break; case AV_CODEC_ID_ADPCM_THP_LE: /* RSD3GADP is mono, so only alloc enough memory @@ -124,13 +125,13 @@ static int rsd_read_header(AVFormatContext *s) return ret; break; case AV_CODEC_ID_ADPCM_THP: - par->block_align = 8 * par->channels; + par->block_align = 8 * par->ch_layout.nb_channels; avio_skip(s->pb, 0x1A4 - avio_tell(s->pb)); - if ((ret = ff_alloc_extradata(st->codecpar, 32 * par->channels)) < 0) + if ((ret = ff_alloc_extradata(st->codecpar, 32 * par->ch_layout.nb_channels)) < 0) return ret; - for (i = 0; i < par->channels; i++) { + for (i = 0; i < par->ch_layout.nb_channels; i++) { if (avio_feof(pb)) return AVERROR_EOF; avio_read(s->pb, st->codecpar->extradata + 32 * i, 32); @@ -159,11 +160,11 @@ static int rsd_read_header(AVFormatContext *s) st->duration = av_get_audio_frame_duration2(par, remaining - start); break; case AV_CODEC_ID_ADPCM_THP: - st->duration = (remaining - start) / (8 * par->channels) * 14; + st->duration = (remaining - start) / (8 * par->ch_layout.nb_channels) * 14; break; case AV_CODEC_ID_PCM_S16LE: case AV_CODEC_ID_PCM_S16BE: - st->duration = (remaining - start) / 2 / par->channels; + st->duration = (remaining - start) / 2 / par->ch_layout.nb_channels; } } @@ -194,14 +195,14 @@ static int rsd_read_packet(AVFormatContext *s, AVPacket *pkt) par->codec_id == AV_CODEC_ID_XMA2) { ret = av_get_packet(s->pb, pkt, par->block_align); } else if (par->codec_tag == MKTAG('W','A','D','P') && - 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); } From patchwork Thu Jan 13 01:57:51 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33410 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp30714iog; Wed, 12 Jan 2022 18:21:20 -0800 (PST) X-Google-Smtp-Source: ABdhPJxApg8vmGzhEjS5CrAVjzUVAIN3ab+emGbfBQSFxhy6FvHDrfantBmGhevDT1kAjvlITJaI X-Received: by 2002:a17:907:97c4:: with SMTP id js4mr1976151ejc.422.1642040480829; Wed, 12 Jan 2022 18:21:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040480; cv=none; d=google.com; s=arc-20160816; b=wxec9+gXLRMlENah21+MidCOmOTRQawwZ7j2CsaYvSjv65goQ1/qLWYpPR4LtQZFBZ W543LEkgH7+7L/ZxhnOPU8tsvW+4ipYKfYM99Kw9ydeJIdWBysII4S+rfo1klNuGvJt8 HZS7+ju6wihBwL4QmHjY5+oZSiWJ/LRQPaIjZqoQBmDc8PEKmPMKOXt+7gFsg1ULk+h8 +0ASciI/8MsNigIdUAWflglXzg52ViGyWGDWaQnH0KdklGzKKmi5z5VLvhJEh6Dug1GT eysokyxCgxWMf3lvvL4metTiTh4FUJtIRoV7lys1q7wiOXxN/iRn/h0EG42mO2WibqW3 BtMw== 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=usbt7Pboz1W4f4jMGRqobLEyQBuAormZrCyg+J4eRqY=; b=wnaJiyCxfWlIDHooieBuBS/5nm9CAO38PzXgjv0Z7+Uc9tDhFSNMPcFUY4mHtzgyzA M8Qi2scVpN3+Q55CY4DVheb8RhZOmI6j9pLnliNEfFesxHOXdSojr3m7HfDrjw79jpqA zP5QjREMAwwNDC3aqxdTyEFUAW1COSiWm398e577MzpVHlcLa6iwYu3G3VvylEv6Qd7x 4KjltzrH1pwz0JxdED6ZjYnh2v47hDCHTnD/hqodGSR7yejP3PvuLieDp3Moo6ogmV5x GmF5p8wRFrrbO2nGVeujEifCq0aZbGDXTotq+KYboI2mNUs2Sxp/rIA+hZbxFBCQrnwQ NkXQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=Zz4uSUCC; 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 gt20si804382ejc.500.2022.01.12.18.21.20; Wed, 12 Jan 2022 18:21:20 -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=Zz4uSUCC; 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 28B2568B39C; Thu, 13 Jan 2022 03:58:50 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f171.google.com (mail-qk1-f171.google.com [209.85.222.171]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CB2F568B377 for ; Thu, 13 Jan 2022 03:58:45 +0200 (EET) Received: by mail-qk1-f171.google.com with SMTP id 193so4870108qkh.13 for ; Wed, 12 Jan 2022 17:58:45 -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=zQ/ojn6+rK+zjPQuc5CD6dDUCJvA1ll2tfdrTmFN/vc=; b=Zz4uSUCC9QiwPBvYUs26CB2mr/V1csSTyBR5+FWGqROroml7TyswkZTDUqj+cWMRvt hkY+FJIQmFoNIyVnESIwIf4aH8JHSEYQlDFc6Ju7tjYAijRjYWwpdFw62D/zk2IQM0HZ pyWHq3v0x08IDNFbDlhJy5Y5Qfh7XJ9yeqTVxWNlYPvuz26lvH7nTUMQ9iSZa2vMgGCs h4DFH+JJSQ6iLFn/Q2em9RSeiFOOEj3Yf38IEczL4xrUaU+QSdp1VOBwtLoXm4uC6Uj4 0ZfbbXf2C1HvOKngTYU/eFBsZ4L9dzj+i+Soxxfx0Vgn9/i9zAdawev9eYcuPh8hyL4F v7wQ== 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=zQ/ojn6+rK+zjPQuc5CD6dDUCJvA1ll2tfdrTmFN/vc=; b=4tJcaM9WN2aw4DovkSPyl10VmXCyVEwiUflBhys9oVOVJY+oJOcWmq1ve3WRdGraGM AV8wgTxl/iwGAQ2Np2Xx987NVMQy4yKedmSCvI1GgyCrg4sF/1iVYZDhgXgx2OvbEEOb zCnChpdXR/hVLfTZkwBEd2JWnmYW5rd1zMNFCw4tY241M7ruNBqPaZRSyRKmcGfyVvEt 3sayMR1GkAJQ7hCbNDqwAgG4h69yEfXehUNwwIQ3X7gZd0q1wjtCJih9Hol4yAUdvat8 aBOxqeFaVDApgkK3KcC8B8dH4sX9G4SoeabyDzdxchvkAQGsQAkbCC2O6lcM1nUMztJ9 ujjQ== X-Gm-Message-State: AOAM533prWiew0hVl/LGhTkqrg2+8MTVgGXYvx9WYy4+WwzXdjq4EIZp 2yL8dj9RiSvHl7qP5yBE3SYj5IS0HAo= X-Received: by 2002:a05:620a:424c:: with SMTP id w12mr1878778qko.62.1642039124203; Wed, 12 Jan 2022 17:58:44 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u19sm893081qke.1.2022.01.12.17.58.43 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:58:43 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:57:51 -0300 Message-Id: <20220113015806.519-16-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 134/281] rso: 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: C9IuO5TIEE0p From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/rsodec.c | 3 +-- libavformat/rsoenc.c | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/libavformat/rsodec.c b/libavformat/rsodec.c index ffd0fdff0d..569368b422 100644 --- a/libavformat/rsodec.c +++ b/libavformat/rsodec.c @@ -62,8 +62,7 @@ static int rso_read_header(AVFormatContext *s) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_tag = id; st->codecpar->codec_id = codec; - st->codecpar->channels = 1; - st->codecpar->channel_layout = AV_CH_LAYOUT_MONO; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; st->codecpar->sample_rate = rate; st->codecpar->block_align = 1; diff --git a/libavformat/rsoenc.c b/libavformat/rsoenc.c index fc327d8a2f..858b53f6c6 100644 --- a/libavformat/rsoenc.c +++ b/libavformat/rsoenc.c @@ -34,7 +34,7 @@ static int rso_write_header(AVFormatContext *s) if (!par->codec_tag) return AVERROR_INVALIDDATA; - if (par->channels != 1) { + if (par->ch_layout.nb_channels != 1) { av_log(s, AV_LOG_ERROR, "RSO only supports mono\n"); return AVERROR_INVALIDDATA; } From patchwork Thu Jan 13 01:57:52 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33411 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp30930iog; Wed, 12 Jan 2022 18:21:34 -0800 (PST) X-Google-Smtp-Source: ABdhPJygXMT3gSDa+tTBxSTuqwLIKuBZCn23KR7PKnr71Y1oqN48EnwJN6vxEH+T8YQybWg3EnR+ X-Received: by 2002:a05:6402:510a:: with SMTP id m10mr2206847edd.320.1642040494053; Wed, 12 Jan 2022 18:21:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040494; cv=none; d=google.com; s=arc-20160816; b=YllPRNyp6hw33zTE/43QmkilJYwA9HKZ6GoEaQKZmZMTbPHOzLopyDBgHwLKWb0P9R J6rU9p4eIkbsMsVuxjzQBILaekOT2gxpwO9MKBe7L/R19Kz6nXdTdhV3uwyfuWIYfKbI Y2N/a0B6Ajhu2Qq+uKpXMvfkulzmvuGZFgG6vPn1qvwiYeZr+PhHMLaehIqwmxb39UN7 E/bxT4pUcZcoFhtj3y+drLy4ZuF20IG49l61L6+EjbQ9yXnZ2gdg6nKIczefAi47uJ0y DaTYitfX/vORZd5+NAws5JfElJmMoG0m1wWz19oUrra5abdXyxqcm1olU6/MPTBvKQVB HWdQ== 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=IL/7QseypZsf7d5EuWZ3TQin9g3B28hHqNpbrcxNqOQ=; b=aDrstDBCigKEnECv3Y9OPkZeSRZG+eW64tPVTycO1mhWxhSrRKnmQ09cSf3jQYDesp 2qKxYgir55KUNtFzwhxTOTK6/ocgsJNgCmD5ruFkdpiF1vSpTx/qvUhMmtdS5t/YZCgW 3GqpWlNJ1ufT2NhYk5BOA+Y1Psbo10dr0ikCR21Z23sT2hh62kp7cFC2geuj81jUqYld +rnUhvy9B6naGveroNVBFR48BzKwh/nf+baPzH47YH+0k7FN4nh+1w13Rtz+Rqky9Q0P wdhuGNorS++G4GNtylvSoH3rVKIAFURsBRwDGqqk4oCtY5Ft4ThYyRS/3PGWxch0R0uV HwsA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=AswwAQjX; 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 gn31si752526ejc.354.2022.01.12.18.21.33; Wed, 12 Jan 2022 18:21:34 -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=AswwAQjX; 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 1549D68B3A5; Thu, 13 Jan 2022 03:58:51 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f175.google.com (mail-qt1-f175.google.com [209.85.160.175]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2601768B378 for ; Thu, 13 Jan 2022 03:58:47 +0200 (EET) Received: by mail-qt1-f175.google.com with SMTP id f17so5336903qtf.8 for ; Wed, 12 Jan 2022 17:58:47 -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=DzKLmOdi7X/hs299p+d7rs812LcY5xSHHjEKZnAACGc=; b=AswwAQjXqMv/lVR9yWxw1pHyIgNA5igRo3+ZWGK2VryYNWLP0Y/OIc0bP5xw6QF4Ja KuMKDOdyFciB7nzE3vv6e6YJlWKccoC7hK454c7F2oMTvptnpU/PDLPMGmMEQXQD+QCo 5X+H4mcD7hBXcdp/qL9nIXu4ErKX+7g2coDm5QPHXmRkY2uPZnbgHUqSZXoTRIISXGwK rHqrS8z41tG//ZaosKy8eo1DHeDV8JEc/MYlpGJ27j9cMgoHxT8+A0nCm5+9REVYQHa6 nPhAuSvw2kT0O2ibHmWoZRw+sUfAEbgNIP+StwPuEnaHS00U74dsM9hnxvYcIXEEjTuE uCNw== 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=DzKLmOdi7X/hs299p+d7rs812LcY5xSHHjEKZnAACGc=; b=1khuU1CZPpSuIrdbaFViKjK/8ahtwCIxFZWriR5Y0yD2haWqvBZBg3ya0qj4APjTcW 4r62GWtu2b0RUyMvCJgiTjC65GiiKd+gA7+Lk+1LjdNKBDjSInIjqP+UCksvUpmmwrAN x02tzYWLd2dbWt0lL129EWlG6W6xbxzEPlOGmaPwEx4fxpdXha5TA5i+3lAw1r/pRsca ume71yuFVgk+wkCUXdyd6H4wuAn17K72sCvUDPadzq1fPE592p+XDQrMgc5Yaa2suRWC T/KEM25+W30h3Y3j9DAd+pDhH+l3+D1RC2IOX3wol0w8CogyjJ5BnxQ+YuaU87nLEItH dXUA== X-Gm-Message-State: AOAM531rFQUas4cn5lvgcZ71d04kYyagtD3DFMhMm+xnW9kmo3Tj7GsZ GHCg0x5pATMLjBoAq/5MyPjuMZIW0L4= X-Received: by 2002:a05:622a:178e:: with SMTP id s14mr2049042qtk.688.1642039125442; Wed, 12 Jan 2022 17:58:45 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u19sm893081qke.1.2022.01.12.17.58.44 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:58:45 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:57:52 -0300 Message-Id: <20220113015806.519-17-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 135/281] rtp: 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: RJbmMU25r6Y7 From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/rtp.c | 10 ++++++---- libavformat/rtpdec.c | 4 ++-- libavformat/rtpdec_amr.c | 3 +-- libavformat/rtpenc.c | 14 +++++++------- libavformat/rtsp.c | 6 +++--- libavformat/rtsp.h | 1 - 6 files changed, 19 insertions(+), 19 deletions(-) diff --git a/libavformat/rtp.c b/libavformat/rtp.c index c536a6f082..004191a550 100644 --- a/libavformat/rtp.c +++ b/libavformat/rtp.c @@ -77,8 +77,10 @@ int ff_rtp_get_codec_info(AVCodecParameters *par, int payload_type) if (rtp_payload_types[i].codec_id != AV_CODEC_ID_NONE) { par->codec_type = rtp_payload_types[i].codec_type; par->codec_id = rtp_payload_types[i].codec_id; - if (rtp_payload_types[i].audio_channels > 0) - par->channels = rtp_payload_types[i].audio_channels; + if (rtp_payload_types[i].audio_channels > 0) { + par->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + par->ch_layout.nb_channels = rtp_payload_types[i].audio_channels; + } if (rtp_payload_types[i].clock_rate > 0) par->sample_rate = rtp_payload_types[i].clock_rate; return 0; @@ -111,13 +113,13 @@ int ff_rtp_get_payload_type(const AVFormatContext *fmt, /* G722 has 8000 as nominal rate even if the sample rate is 16000, * see section 4.5.2 in RFC 3551. */ if (par->codec_id == AV_CODEC_ID_ADPCM_G722 && - par->sample_rate == 16000 && par->channels == 1) + par->sample_rate == 16000 && par->ch_layout.nb_channels == 1) return rtp_payload_types[i].pt; if (par->codec_type == AVMEDIA_TYPE_AUDIO && ((rtp_payload_types[i].clock_rate > 0 && par->sample_rate != rtp_payload_types[i].clock_rate) || (rtp_payload_types[i].audio_channels > 0 && - par->channels != rtp_payload_types[i].audio_channels))) + par->ch_layout.nb_channels != rtp_payload_types[i].audio_channels))) continue; return rtp_payload_types[i].pt; } diff --git a/libavformat/rtpdec.c b/libavformat/rtpdec.c index 20fe2b82d7..e56fde9d48 100644 --- a/libavformat/rtpdec.c +++ b/libavformat/rtpdec.c @@ -538,7 +538,7 @@ static int opus_write_extradata(AVCodecParameters *codecpar) * This mapping family only supports mono and stereo layouts. And RFC7587 * specifies that the number of channels in the SDP must be 2. */ - if (codecpar->channels > 2) { + if (codecpar->ch_layout.nb_channels > 2) { return AVERROR_INVALIDDATA; } @@ -553,7 +553,7 @@ static int opus_write_extradata(AVCodecParameters *codecpar) /* Version */ bytestream_put_byte (&bs, 0x1); /* Channel count */ - bytestream_put_byte (&bs, codecpar->channels); + bytestream_put_byte (&bs, codecpar->ch_layout.nb_channels); /* Pre skip */ bytestream_put_le16 (&bs, 0); /* Input sample rate */ diff --git a/libavformat/rtpdec_amr.c b/libavformat/rtpdec_amr.c index 988b7bddfd..20b435039c 100644 --- a/libavformat/rtpdec_amr.c +++ b/libavformat/rtpdec_amr.c @@ -64,11 +64,10 @@ static int amr_handle_packet(AVFormatContext *ctx, PayloadContext *data, return AVERROR_INVALIDDATA; } - if (st->codecpar->channels != 1) { + if (st->codecpar->ch_layout.nb_channels != 1) { av_log(ctx, AV_LOG_ERROR, "Only mono AMR is supported\n"); return AVERROR_INVALIDDATA; } - st->codecpar->channel_layout = AV_CH_LAYOUT_MONO; /* The AMR RTP packet consists of one header byte, followed * by one TOC byte for each AMR frame in the packet, followed diff --git a/libavformat/rtpenc.c b/libavformat/rtpenc.c index 6be67b5885..ce629a8095 100644 --- a/libavformat/rtpenc.c +++ b/libavformat/rtpenc.c @@ -236,7 +236,7 @@ static int rtp_write_header(AVFormatContext *s1) avpriv_set_pts_info(st, 32, 1, 8000); break; case AV_CODEC_ID_OPUS: - if (st->codecpar->channels > 2) { + if (st->codecpar->ch_layout.nb_channels > 2) { av_log(s1, AV_LOG_ERROR, "Multistream opus not supported in RTP\n"); goto fail; } @@ -264,7 +264,7 @@ static int rtp_write_header(AVFormatContext *s1) av_log(s1, AV_LOG_ERROR, "RTP max payload size too small for AMR\n"); goto fail; } - if (st->codecpar->channels != 1) { + if (st->codecpar->ch_layout.nb_channels != 1) { av_log(s1, AV_LOG_ERROR, "Only mono is supported\n"); goto fail; } @@ -541,24 +541,24 @@ static int rtp_write_packet(AVFormatContext *s1, AVPacket *pkt) case AV_CODEC_ID_PCM_ALAW: case AV_CODEC_ID_PCM_U8: case AV_CODEC_ID_PCM_S8: - return rtp_send_samples(s1, pkt->data, size, 8 * st->codecpar->channels); + return rtp_send_samples(s1, pkt->data, size, 8 * st->codecpar->ch_layout.nb_channels); case AV_CODEC_ID_PCM_U16BE: case AV_CODEC_ID_PCM_U16LE: case AV_CODEC_ID_PCM_S16BE: case AV_CODEC_ID_PCM_S16LE: - return rtp_send_samples(s1, pkt->data, size, 16 * st->codecpar->channels); + return rtp_send_samples(s1, pkt->data, size, 16 * st->codecpar->ch_layout.nb_channels); case AV_CODEC_ID_PCM_S24BE: - return rtp_send_samples(s1, pkt->data, size, 24 * st->codecpar->channels); + return rtp_send_samples(s1, pkt->data, size, 24 * st->codecpar->ch_layout.nb_channels); case AV_CODEC_ID_ADPCM_G722: /* The actual sample size is half a byte per sample, but since the * stream clock rate is 8000 Hz while the sample rate is 16000 Hz, * the correct parameter for send_samples_bits is 8 bits per stream * clock. */ - return rtp_send_samples(s1, pkt->data, size, 8 * st->codecpar->channels); + return rtp_send_samples(s1, pkt->data, size, 8 * st->codecpar->ch_layout.nb_channels); case AV_CODEC_ID_ADPCM_G726: case AV_CODEC_ID_ADPCM_G726LE: return rtp_send_samples(s1, pkt->data, size, - st->codecpar->bits_per_coded_sample * st->codecpar->channels); + st->codecpar->bits_per_coded_sample * st->codecpar->ch_layout.nb_channels); case AV_CODEC_ID_MP2: case AV_CODEC_ID_MP3: rtp_send_mpegaudio(s1, pkt->data, size); diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c index 70c18941ca..5fa756bf5c 100644 --- a/libavformat/rtsp.c +++ b/libavformat/rtsp.c @@ -323,19 +323,19 @@ static int sdp_parse_rtpmap(AVFormatContext *s, case AVMEDIA_TYPE_AUDIO: av_log(s, AV_LOG_DEBUG, "audio codec set to: %s\n", c_name); par->sample_rate = RTSP_DEFAULT_AUDIO_SAMPLERATE; - par->channels = RTSP_DEFAULT_NB_AUDIO_CHANNELS; + par->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; if (i > 0) { par->sample_rate = i; avpriv_set_pts_info(st, 32, 1, par->sample_rate); get_word_sep(buf, sizeof(buf), "/", &p); i = atoi(buf); if (i > 0) - par->channels = i; + av_channel_layout_default(&par->ch_layout, i); } av_log(s, AV_LOG_DEBUG, "audio samplerate set to: %i\n", par->sample_rate); av_log(s, AV_LOG_DEBUG, "audio channels set to: %i\n", - par->channels); + par->ch_layout.nb_channels); break; case AVMEDIA_TYPE_VIDEO: av_log(s, AV_LOG_DEBUG, "video codec set to: %s\n", c_name); diff --git a/libavformat/rtsp.h b/libavformat/rtsp.h index 8b64e29d70..3133bf61c1 100644 --- a/libavformat/rtsp.h +++ b/libavformat/rtsp.h @@ -75,7 +75,6 @@ enum RTSPControlTransport { #define RTSPS_DEFAULT_PORT 322 #define RTSP_MAX_TRANSPORTS 8 #define RTSP_TCP_MAX_PACKET_SIZE 1472 -#define RTSP_DEFAULT_NB_AUDIO_CHANNELS 1 #define RTSP_DEFAULT_AUDIO_SAMPLERATE 44100 #define RTSP_RTP_PORT_MIN 5000 #define RTSP_RTP_PORT_MAX 65000 From patchwork Thu Jan 13 01:57:53 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33412 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp31047iog; Wed, 12 Jan 2022 18:21:47 -0800 (PST) X-Google-Smtp-Source: ABdhPJzenbvRcr4scSYjLYQXI8mpOHtxFTpJSvHVDXiWT/BfPlvMz+DmU6xImlVTYjS0mWp1zWIh X-Received: by 2002:a17:906:7c07:: with SMTP id t7mr2005717ejo.395.1642040507625; Wed, 12 Jan 2022 18:21:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040507; cv=none; d=google.com; s=arc-20160816; b=TszeIVp3bS/5dWm7Zk1NAT7sgJVpNf5v6hW7diI+Np9GO6sJ2CvUwnkgSWCfN57snX fBaHEgGJ+CyBETg5w95zC09epCmMAMcCNDsikia2d+HcIKowEhAePypp650TIqncjFRu Y2wtUrS8kSnZrTVsxkKe602KSt03xkh8eA9AyndjbfZmpcCnmEnQK5Jr8rNWUagjQWBK +V5NjiSPIxGmkyuh2mMl3CjE2IawO8/NVksdzCZReAocGdmQw2xeEGTm7eyD2VRa/pTv SummzPGqhBmlxgjVgTdO8Wg4IKpuARt4IbBD24AKTTqJitx8+Mxg1AgSl1oSk1YYW+c+ NLOw== 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=Jr2vg5Aeo68OVhawMjK5WC9d0MhXdtrNXAxzPXIjjs0=; b=bBEBdK4HvJJdIEuUzX0WgxnLR4p/fZSFjdGEDd41/mGP9Jhq0aV7wM4lOSjBE81JmJ Fr52M6jlVzlQIq4nWvZrSHpeWFPH9WsxETL89eYjXWY787PKM66efuYzK3Qd8bmo5jrk i6rHSH/GHZfpmZpggqRQMyhE1M77EGvEXFxgyQSSuyAO0LLZtA3bKopD9YpAYX60nejg Bu134pOlFbfUpB30WUeZNmVblEn8p314rB0MKcHoemGg/wSqeJjJJqnYtShAgKOnF0qJ GOj9c1uG6nYKBPAa2vi+E4tKeiX+PTlUty8uw6eA8/2Pz/3n/Q1bV0bUYaDGxEbV6exD nO4Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=k4lKqzwa; 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 js13si827331ejc.531.2022.01.12.18.21.47; Wed, 12 Jan 2022 18:21:47 -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=k4lKqzwa; 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 0418668B3A0; Thu, 13 Jan 2022 03:58:52 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f54.google.com (mail-qv1-f54.google.com [209.85.219.54]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 690E868B38B for ; Thu, 13 Jan 2022 03:58:48 +0200 (EET) Received: by mail-qv1-f54.google.com with SMTP id q3so5121383qvc.7 for ; Wed, 12 Jan 2022 17:58:48 -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=l9Hbh9YsnCwSfBY/Xt9URDvYwvjoGLeMZAEVWBvd+HU=; b=k4lKqzwaRxZ6gRF4LK2p9OxQpAOvwhzDADVfF1TN8fnH2f8d/TAISZoWsjeA+lIvE7 kT7SWmaunrHDdO2RAR8Ukq2pPXQe5/RStIcxDHRgY6EZ6EKNUXfMXwpuH6Do+yG2XO6m /5z3NrQPYXBmxiamRWUQu40ZGvsIem2PG1VnU5THm0Maxmic5RYA49Cezvf0B2tMFkoF /KQcviqbik3YZATasWrZubApBQqRarQLkHDrQVF6EM7odGRlvLlLEurZkWFZ7ZaMEF6K WQNFLIppouUkoBwqQuFEn6OKw6O9GqdD50+L8VBIBGjgS8IKcfophRRQqUueDc44UtyE l7bQ== 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=l9Hbh9YsnCwSfBY/Xt9URDvYwvjoGLeMZAEVWBvd+HU=; b=43TrijAbMuhLxatYKilbCHo4z9ylSBH1Ke+g84qxkJhQwxZZ5N/ybHQohp+eRXEfJh kmC5EJIYHUtrvZ5qf8xCUQG5c3JcA8uAVxWEonh+x+yiXgwxzVirT/DEuxKvn9zZ/HsN A+SVO9/25/nBCyMIgBqnwkHXd1cHJfKw+9wS24TQt7I5h7vLU0uUNZPEPcxpFvfUajK8 R+CMsO7tFG/MgU8xITwhBSRU4j7R2PAHppRN7KoDjbu1Ru5v9HYYP/2cMmET1EaUxCa/ PgY/+9YmLzdl1hfUSH2GLWY19H4a8PPT2F7fO5No2/mJblm/+k1qw9idKoJFdrzVTFJb 0c1g== X-Gm-Message-State: AOAM5331e6o3kcq2sus29Dsndz7/VItn6Sh7iSSCMulrd9P9SrW9Y4Ww oYwQliFxdzHHz0uQZpiq4KD9+Cle2HA= X-Received: by 2002:a05:6214:20c9:: with SMTP id 9mr2348257qve.94.1642039126826; Wed, 12 Jan 2022 17:58:46 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u19sm893081qke.1.2022.01.12.17.58.45 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:58:46 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:57:53 -0300 Message-Id: <20220113015806.519-18-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 136/281] sbg: 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: tzjd8gRmnKp+ From: Anton Khirnov Signed-off-by: James Almer --- libavformat/sbgdec.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libavformat/sbgdec.c b/libavformat/sbgdec.c index baffbbd6fd..8a6d679056 100644 --- a/libavformat/sbgdec.c +++ b/libavformat/sbgdec.c @@ -1446,8 +1446,7 @@ static av_cold int sbg_read_header(AVFormatContext *avf) sti = ffstream(st); st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_CODEC_ID_FFWAVESYNTH; - st->codecpar->channels = 2; - st->codecpar->channel_layout = AV_CH_LAYOUT_STEREO; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO; st->codecpar->sample_rate = sbg->sample_rate; st->codecpar->frame_size = sbg->frame_size; avpriv_set_pts_info(st, 64, 1, st->codecpar->sample_rate); From patchwork Thu Jan 13 01:57:54 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33413 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp31142iog; Wed, 12 Jan 2022 18:22:00 -0800 (PST) X-Google-Smtp-Source: ABdhPJyZRr8s8oNPgIwWYVAxp+/fAnekuvbYe1xN4tWGO6isvI1pLfclk7R1KnVKFS0mvSZIL0nx X-Received: by 2002:a17:906:4317:: with SMTP id j23mr1912529ejm.748.1642040520639; Wed, 12 Jan 2022 18:22:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040520; cv=none; d=google.com; s=arc-20160816; b=iohWbiVD5IehQ0USZpI6YF/piTry4sQRLZ3ez0chYKQ4ojgJhNuF3ezU9Sz3D4kCCK F+sJEDdM0LZuQ0O/WiO+oG+FpKqbckII+PUGlq7tHE0R0goiyOKNkAEBPobFUYCuFTew 5GTlJ08i9XCxMfKOOd7HSq99/2nPc+NCf9ZuiiiT8RCA+vfbUzql2b8DhQI5I75QAKsN fBCVLovBOpy2091TJIP5YwiLWadxCpOJaweGJwX+fR+oBcNFikTTU1V1o/1/VdzbBxtJ mpn6l8uK9eqo+beSljM8fyhHzt/30nzHxwYq3moURD+MeeXECGAw5zZFCZbSWysOAh3F 5FYQ== 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=CIyZaEFvsgoMTlgtcvc8I/HVOHUBju2Nsh40RlnQImk=; b=gqj0ujof0fPYox2oCBJoh0pnvp7M8/Mq73sPYzAWH9uxHCgzGOM84rG/m7ujdyHd93 fXoW4feKAPb62aDpc+ftT0BnTGv99b4Zi+K77bcI/T1lmkCsDrna30So813B0h/quSJU 3lk9bJr8teyMNemCmxs3Fysvzgntio7u4jH7bhYyo+h8Zxs/h0a6hBy+JYOtcSK7V/kc CuUQaKVH/Lrij8o5gYedz/9s73GMxwnvzRP9JcRHd9dNUoi+9aKtMNS2URegOaGm4P3I efhLAOPCCOkKQDhV1mTgkdMs16J9amfrBT9JPhb2bp+MsnIyPuBivuPjhO1JzeQigCIe yd6w== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=W8f2euMb; 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 d8si862279ede.34.2022.01.12.18.22.00; Wed, 12 Jan 2022 18:22:00 -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=W8f2euMb; 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 C6EFD68B3AE; Thu, 13 Jan 2022 03:58:52 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f169.google.com (mail-qk1-f169.google.com [209.85.222.169]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9BE3C68B38C for ; Thu, 13 Jan 2022 03:58:49 +0200 (EET) Received: by mail-qk1-f169.google.com with SMTP id g2so5612487qkp.1 for ; Wed, 12 Jan 2022 17:58:49 -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=1TieRme37DYb8EbyKuwNyXPDK67pQBQ/QEPz4nvQT0M=; b=W8f2euMb4zxsnjsDu9FxvaEne26RmlrAgKhHGhQ6v0mM7c2t7EyoJbQROsI+STH/Fd fXZk+WcHypzz22Gee6PvsBeDWjP7wfqlRChNPw5Dwb6IIpND3T4SgC9qQSnEVTINH0Ry pbsRE/lz4TFObAL1Q1G1MypJ4Wy4S41lCbwiokVHsLkm/lr+k6ceyl/a6LVMXuWxVkUW DieNT//8iGDAaDKOsZkwkMuw429a4ZqjgVnninIvoxiRPOgacBklKRTFUWSWqzv6dhNl qePBTTa3l89bbj/rYFwVus+q7Owqcw0R6/g903D5R3kS/0FktQQZPu6Gs17MjEoYM+69 PHRA== 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=1TieRme37DYb8EbyKuwNyXPDK67pQBQ/QEPz4nvQT0M=; b=jJZBSihE61H9b6PQGZIqvlKxGu6UMHpyn98mzOQdHeZwh6ScgnpxcSFcu9lA/cEPlv +AqjEan9PAicQZrG8n+usjTFtETb+vIZZLC8gfcJkcNRfguYPiO/liUoTwEF85sVU8i5 DwSKmaN73FHRsHpWT6V5OB2twAhTOUkgij3YN2GYYSIDPyhz7asD3WsrfSWIv4Vdvd5X CbRdRB9ru39AyhKOo3HJFVmNEzNnltnR8ZSQDBEa3f+2o4AitPsQktcggXFPs1Pd+re2 +spgbTSppGuTZ1tMusiPIYbSmuQyL8XapUJhTm4o+ROYz5l/JAaJKbt7iUWEh1mcihEl P7jA== X-Gm-Message-State: AOAM531DaIH6knb+APDFsA9clrpxyyAdd/0OZuxRRVxMLkYhprOloIOH p0wsqr+RPtDRGcxPVGA6tQlxJogOcf0= X-Received: by 2002:a05:620a:1253:: with SMTP id a19mr1838730qkl.665.1642039128024; Wed, 12 Jan 2022 17:58:48 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u19sm893081qke.1.2022.01.12.17.58.47 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:58:47 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:57:54 -0300 Message-Id: <20220113015806.519-19-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 137/281] scd: 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: DXfbdKbAicqc Signed-off-by: James Almer --- libavformat/scd.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/libavformat/scd.c b/libavformat/scd.c index 0ed5322a14..d59d72e1d9 100644 --- a/libavformat/scd.c +++ b/libavformat/scd.c @@ -194,7 +194,8 @@ static int scd_read_track(AVFormatContext *s, SCDTrackHeader *track, int index) par = st->codecpar; par->codec_type = AVMEDIA_TYPE_AUDIO; - par->channels = (int)track->num_channels; + par->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + par->ch_layout.nb_channels = (int)track->num_channels; par->sample_rate = (int)track->sample_rate; st->index = index; st->start_time = 0; @@ -218,7 +219,7 @@ static int scd_read_track(AVFormatContext *s, SCDTrackHeader *track, int index) case SCD_TRACK_ID_PCM: par->codec_id = AV_CODEC_ID_PCM_S16BE; par->bits_per_coded_sample = 16; - par->block_align = par->bits_per_coded_sample * par->channels / 8; + par->block_align = par->bits_per_coded_sample * par->ch_layout.nb_channels / 8; break; case SCD_TRACK_ID_MP3: par->codec_id = AV_CODEC_ID_MP3; @@ -325,8 +326,8 @@ static int scd_read_packet(AVFormatContext *s, AVPacket *pkt) } if (trk->data_type == SCD_TRACK_ID_PCM) { - pkt->pts = trk->bytes_read / (par->channels * sizeof(uint16_t)); - pkt->duration = size / (par->channels * sizeof(int16_t)); + pkt->pts = trk->bytes_read / (par->ch_layout.nb_channels * sizeof(uint16_t)); + pkt->duration = size / (par->ch_layout.nb_channels * sizeof(int16_t)); } trk->bytes_read += ret; From patchwork Thu Jan 13 01:57:55 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33414 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp31293iog; Wed, 12 Jan 2022 18:22:15 -0800 (PST) X-Google-Smtp-Source: ABdhPJwYcXIgIhe1/9kjd5YMxcA/R9YQSS/EHp6Oi1y1fWlafKS5IKwtSDw6adz9z9lX/qi065XI X-Received: by 2002:a17:907:7f29:: with SMTP id qf41mr1878160ejc.715.1642040534909; Wed, 12 Jan 2022 18:22:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040534; cv=none; d=google.com; s=arc-20160816; b=jctn7B2K/onZ2Y9dpKgXcyJldxV87Zp4hQQPq7b1kpLj/REdLKm7EKCJCOqMy6BJfg XvQ7gHIzwyaAkYueFWBflPpo3wMqCLra5TeJiNjx8/XFwYUrvrIvAbNlO/o1zt/4jdxm +zSiyIE4tS8gJjY1x5Fp/bp4572tP7Sn7xGRV57kpmkZoERhn/m5Y3W8N0wqc5teBx7l rDa92dSpdAn4GpnyJaka3mZrw5njvZLHXNY4dUjhvFWcAd3I3InrSvcnlkNTmMejCIJJ fJwfyUcp8VODrzLSZlGZw93gBUTVjWsdtn6aJzzkSnknvJxQiPIdWPJkWe/0bw4uP6m0 T/Og== 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=eHRScwAo/rr65Kxzl/S23ZOwVn4kw7Chm6pC6hnDGpU=; b=zdsbXIRL2S97i4WfjUbgKzEDssNPpXl8oLqMS6i/J0U0O1j6Ztc8oKLYcypkysSQ3O rraklwWlyNq63fF5Bzk9Tb9TXxad5qonOgDBzJwnGVjZWFMiOuhG68raCvLH6Ho1t4NF uSWTDKBa4jN/abZ/qdMgGUuGPtxTsncc8EtmAzBG4zca6KkQPyWnAD93tfREGtUxyhIO gMsqOf9JaWVh4OcJZU9XK8NqFGQaoDbyYbRt79dQM+tGJ8btUGHBb9dDEolsjIPPHqyf rvcUWTRCZhm+p4KNjvBORSOhW31vtiixlyZstsHWtmp93rWTYW0dPe2FeBEANKfnDabR YD+g== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=fsdDdbva; 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 gm1si825237ejc.26.2022.01.12.18.22.14; Wed, 12 Jan 2022 18:22:14 -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=fsdDdbva; 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 987C468B3BE; Thu, 13 Jan 2022 03:58:54 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f52.google.com (mail-qv1-f52.google.com [209.85.219.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B190368B394 for ; Thu, 13 Jan 2022 03:58:50 +0200 (EET) Received: by mail-qv1-f52.google.com with SMTP id p12so5093978qvj.6 for ; Wed, 12 Jan 2022 17:58:50 -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=cFsRBPtahaDuO+LWEXqlMraDltXYXWfxNrqWOOcXl4g=; b=fsdDdbva/vOJB74NAHC03EjvggmXAp/QXFilZcgubIqejIiTbzy8e+7nSijCE4yhiF Aw3u2OrLQ+njKJPIQY3Rot1YZQYPPGdtKDrRiCYnn/jEXue7Bt4ThKyp6hGK5AX9Utqz uvxAfTfO+jFSAj4mUlXO8SB0bGcyCoxQqYhHgVAJEFeCSln2+xQ8CJGuTFNtdjZ3k+Nv 8S3vats0XNhfwls+Veyasc+w+IbAIK+pl+IfJYm34iist7T1VPzgH5Xyn68SVnmii59Y qyOpHhqbITpYt8lsi/aSS9clu38TeNSgFv/37DctjdTp9PNnzPCI+jXfDZo5jb8N6pc1 Sftg== 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=cFsRBPtahaDuO+LWEXqlMraDltXYXWfxNrqWOOcXl4g=; b=PWTKaJpERMIpL4pWurapZJy+yX43LmDDP0+Y0viQU1bb67bLtwIJwvw2CjqW2i88l6 mN6SKBMYuHVhneFERK+EJwJgwJaBWNq1PwXojCB0yVwNtqOlSB2WI7AfaELm0wa/h+YU DY1JvfjkmuLXghNSZrYQHxzjKvEmv9UGKvegspHlX3/JeTcbsmZ2fNN2YhyfSGSVvYKD ibhsQ+fY10diV0gV+HsuBvCmF7k/4DhCurKNp8SxDLRu8nFiiNioV7smD35jWjyXgjoJ Ux2yV+Dj6Q103X9+mZXl/E7lXjK8bLlYoqwu88JHng+IPTi1pdrTCE7U6qBFaNoVdrWh A0dQ== X-Gm-Message-State: AOAM532Rf/M2/A+lH5YnFTMxAbImKRwUZohpQvsXxEq1U4N9ER5Fbx7a yPYaSZfdjII1NEXewp7UPQcQ/ioNwE8= X-Received: by 2002:ad4:5dc6:: with SMTP id m6mr2089175qvh.1.1642039129237; Wed, 12 Jan 2022 17:58:49 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u19sm893081qke.1.2022.01.12.17.58.48 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:58:48 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:57:55 -0300 Message-Id: <20220113015806.519-20-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 138/281] sdp: 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: CU08SFiZ6Abj From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavformat/sdp.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/libavformat/sdp.c b/libavformat/sdp.c index d63a0b34c4..0802b99af7 100644 --- a/libavformat/sdp.c +++ b/libavformat/sdp.c @@ -450,16 +450,16 @@ static int latm_context2profilelevel(const AVCodecParameters *par) * Different Object Types should implement different Profile Levels */ if (par->sample_rate <= 24000) { - if (par->channels <= 2) + if (par->ch_layout.nb_channels <= 2) profile_level = 0x28; // AAC Profile, Level 1 } else if (par->sample_rate <= 48000) { - if (par->channels <= 2) { + if (par->ch_layout.nb_channels <= 2) { profile_level = 0x29; // AAC Profile, Level 2 - } else if (par->channels <= 5) { + } else if (par->ch_layout.nb_channels <= 5) { profile_level = 0x2A; // AAC Profile, Level 4 } } else if (par->sample_rate <= 96000) { - if (par->channels <= 5) { + if (par->ch_layout.nb_channels <= 5) { profile_level = 0x2B; // AAC Profile, Level 5 } } @@ -491,7 +491,7 @@ static int latm_context2config(AVFormatContext *s, const AVCodecParameters *par, config_byte[0] = 0x40; config_byte[1] = 0; config_byte[2] = 0x20 | rate_index; - config_byte[3] = par->channels << 4; + config_byte[3] = par->ch_layout.nb_channels << 4; config_byte[4] = 0x3f; config_byte[5] = 0xc0; @@ -591,7 +591,7 @@ static int sdp_write_media_attributes(char *buff, int size, const AVStream *st, return ret; av_strlcatf(buff, size, "a=rtpmap:%d MP4A-LATM/%d/%d\r\n" "a=fmtp:%d profile-level-id=%d;cpresent=0;config=%s\r\n", - payload_type, p->sample_rate, p->channels, + payload_type, p->sample_rate, p->ch_layout.nb_channels, payload_type, latm_context2profilelevel(p), config); } else { if (p->extradata_size) { @@ -609,7 +609,7 @@ static int sdp_write_media_attributes(char *buff, int size, const AVStream *st, "a=fmtp:%d profile-level-id=1;" "mode=AAC-hbr;sizelength=13;indexlength=3;" "indexdeltalength=3%s\r\n", - payload_type, p->sample_rate, p->channels, + payload_type, p->sample_rate, p->ch_layout.nb_channels, payload_type, config); } break; @@ -617,36 +617,36 @@ static int sdp_write_media_attributes(char *buff, int size, const AVStream *st, if (payload_type >= RTP_PT_PRIVATE) av_strlcatf(buff, size, "a=rtpmap:%d L16/%d/%d\r\n", payload_type, - p->sample_rate, p->channels); + p->sample_rate, p->ch_layout.nb_channels); break; case AV_CODEC_ID_PCM_S24BE: if (payload_type >= RTP_PT_PRIVATE) av_strlcatf(buff, size, "a=rtpmap:%d L24/%d/%d\r\n", payload_type, - p->sample_rate, p->channels); + p->sample_rate, p->ch_layout.nb_channels); break; case AV_CODEC_ID_PCM_MULAW: if (payload_type >= RTP_PT_PRIVATE) av_strlcatf(buff, size, "a=rtpmap:%d PCMU/%d/%d\r\n", payload_type, - p->sample_rate, p->channels); + p->sample_rate, p->ch_layout.nb_channels); break; case AV_CODEC_ID_PCM_ALAW: if (payload_type >= RTP_PT_PRIVATE) av_strlcatf(buff, size, "a=rtpmap:%d PCMA/%d/%d\r\n", payload_type, - p->sample_rate, p->channels); + p->sample_rate, p->ch_layout.nb_channels); break; case AV_CODEC_ID_AMR_NB: av_strlcatf(buff, size, "a=rtpmap:%d AMR/%d/%d\r\n" "a=fmtp:%d octet-align=1\r\n", - payload_type, p->sample_rate, p->channels, + payload_type, p->sample_rate, p->ch_layout.nb_channels, payload_type); break; case AV_CODEC_ID_AMR_WB: av_strlcatf(buff, size, "a=rtpmap:%d AMR-WB/%d/%d\r\n" "a=fmtp:%d octet-align=1\r\n", - payload_type, p->sample_rate, p->channels, + payload_type, p->sample_rate, p->ch_layout.nb_channels, payload_type); break; case AV_CODEC_ID_VORBIS: @@ -661,7 +661,7 @@ static int sdp_write_media_attributes(char *buff, int size, const AVStream *st, av_strlcatf(buff, size, "a=rtpmap:%d vorbis/%d/%d\r\n" "a=fmtp:%d configuration=%s\r\n", - payload_type, p->sample_rate, p->channels, + payload_type, p->sample_rate, p->ch_layout.nb_channels, payload_type, config); break; case AV_CODEC_ID_THEORA: { @@ -754,7 +754,7 @@ static int sdp_write_media_attributes(char *buff, int size, const AVStream *st, if (payload_type >= RTP_PT_PRIVATE) av_strlcatf(buff, size, "a=rtpmap:%d G722/%d/%d\r\n", payload_type, - 8000, p->channels); + 8000, p->ch_layout.nb_channels); break; case AV_CODEC_ID_ADPCM_G726: { if (payload_type >= RTP_PT_PRIVATE) @@ -791,7 +791,7 @@ static int sdp_write_media_attributes(char *buff, int size, const AVStream *st, receivers MUST be able to receive and process stereo packets. */ av_strlcatf(buff, size, "a=rtpmap:%d opus/48000/2\r\n", payload_type); - if (p->channels == 2) { + if (p->ch_layout.nb_channels == 2) { av_strlcatf(buff, size, "a=fmtp:%d sprop-stereo=1\r\n", payload_type); } From patchwork Thu Jan 13 01:57:56 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33415 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp31398iog; Wed, 12 Jan 2022 18:22:29 -0800 (PST) X-Google-Smtp-Source: ABdhPJyiQb+Aqp3B3oUshIo8ShL2xyDTuWF1drAYlCv2Lv1DIky5MxNWsA4luhli7/tuVGoaFImV X-Received: by 2002:a05:6402:8ce:: with SMTP id d14mr2310707edz.244.1642040549507; Wed, 12 Jan 2022 18:22:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040549; cv=none; d=google.com; s=arc-20160816; b=Z01CwQVQf/OpWvR/o4vzCuL7Od3LECg0sbxp9FSbDe280jcshu5ostSKLs3zpP5Q8d UXY8iGaYKO3HckdP4S3AEg9loe53SnadeCM2Ygm8AhuurPcH5szj+ruoyyrOXEyfTOYp cLKn5/msl3Hr+PfjAqXSic36i/O6GXVThZ2RpXoIzVU8jTbHErF6KhTfrc9CHsh25gRz HxqORF8Fgw/bfUa01Mcv2W4SckPk3fXUjT4blmBEH8nRWi0xx0V8B22mR2SQyCgbraiv GYgBSnHuc13lWigAEiydrSCF3aViDIrd5JhSufo7ZblXF27IWs/yZiEZOH7XADLdzS31 AjUw== 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=nnzJsGXCOaRDRfvrS25k29oFcycaEH4zCMksPi+R2jM=; b=YrBTY/dxA8DvdEKxd5LtlIBxMFyUhyyMCX2dIK40mu2bWkQcTSvKhFkCrYxQfMwP8c tEUUSYw229eqPIvjBsaTF8ieA7i8Iu8CPdm0uZKYtcveCCW68y7RKKbgu+JYwJNS4RyV oPgK6mMzvd9rOTpYREwIeiRO3oOBQ51d+YB/wdIPeEyUc5w0iDaQSoyPsyC0dNS335JI cfJzYhuZBHIIFFxpoCVve+HM6jKKYi8D7afg74sNyi+cv3YedvBzI5U/kNrPvyZl0Z7h xppArmQ0E2iZnGdceak2l+wi6khJIra1Q6bXwPhmoOYNpZytEySOtpLf/SoOQApQf6X3 zkHg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=VOqQ2zRM; 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 e10si711327eja.556.2022.01.12.18.22.29; Wed, 12 Jan 2022 18:22:29 -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=VOqQ2zRM; 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 631A868B3AB; Thu, 13 Jan 2022 03:58:55 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f176.google.com (mail-qk1-f176.google.com [209.85.222.176]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D59BB68B3AB for ; Thu, 13 Jan 2022 03:58:51 +0200 (EET) Received: by mail-qk1-f176.google.com with SMTP id c190so3917230qkg.9 for ; Wed, 12 Jan 2022 17:58:51 -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=HmrHCPGCxiuCRJl+I8ogIO3d7lWSkCMY8Ox7NMBjT60=; b=VOqQ2zRModtwPnxHcJ9wDPngF0L8cs2b1EhCuaKFlzDS3OVsKHUC7UpGlc8AF+aPjV YDV16H4FgHV/c+1kwciF0z3qdzSeL2uTPH0nTPAGMt3wgmuobL2RV3TOxmCmR/ZdDRGO IlKPJlfKbdXZASmNlpfIPCLTd6SJBdMxkGuCh1lUERJr8Oh4y3hZosvSbIJarecnBlYC 98L8P81uSqlvvw8GBiC4nn2y3F6nZf5FPcpMDBs0ZHze6qaetVK2UgHFygPIrlG31dkX OxLXuLR5+yP3KhPlnNDH52BY+iFKLRusMAz43MjibKl1hPC91XIPwj3AS8+8D0qeR7Ui WzcQ== 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=HmrHCPGCxiuCRJl+I8ogIO3d7lWSkCMY8Ox7NMBjT60=; b=dGJNrDs0+BTf5maB5MhV7JGdWtu5Qo9uxdrjDqtBOiByGG9tskJL4Yng5ETHWd7UYI 91hglSciQf0aHbWf6FLC1+SfIaCrKP/z6rjod+HbPhD+Nv+mcB6tpS6AWgmu9iY02uWv /XrU3TAJmQMaRXPtgbhYGLstJJylmcD2/5oQ3DlfoJkN4vOdRQuePxF9pFuWIeKFxK6U wTpMfMHCYC5dEPQ5+h3itNcCsMG7AdiPZJbUviIOnWJP/DYrz6BlK0Cp9cFAy7X2c8eV AIJLxyF6zj3Rd6XxiZpolvhSPljyF1JS1Y7EByoD93kXhEvg+h2hBqq5mR2swau737KJ gIfA== X-Gm-Message-State: AOAM532QVHQjorN+vcDYujVVodm94KRcX9QC/Gc7/Xp8TZOQq0JjU0lw JLnhEP6EL+xb5vh2lFiw0G3Hksc7Ius= X-Received: by 2002:a05:620a:2808:: with SMTP id f8mr1853656qkp.326.1642039130468; Wed, 12 Jan 2022 17:58:50 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u19sm893081qke.1.2022.01.12.17.58.49 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:58:50 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:57:56 -0300 Message-Id: <20220113015806.519-21-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 139/281] sdr2: 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: CJD5rb/adZ8a From: Anton Khirnov Signed-off-by: James Almer --- libavformat/sdr2.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavformat/sdr2.c b/libavformat/sdr2.c index 6799339420..8b99419bc4 100644 --- a/libavformat/sdr2.c +++ b/libavformat/sdr2.c @@ -54,7 +54,8 @@ static int sdr2_read_header(AVFormatContext *s) ffstream(st)->need_parsing = AVSTREAM_PARSE_FULL; ast->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; - ast->codecpar->channels = 1; + ast->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + ast->codecpar->ch_layout.nb_channels = 1; ast->codecpar->sample_rate = 8000; ast->codecpar->codec_id = AV_CODEC_ID_PCM_S16LE; avpriv_set_pts_info(ast, 64, 1, 8000); From patchwork Thu Jan 13 01:57:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33416 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp31526iog; Wed, 12 Jan 2022 18:22:44 -0800 (PST) X-Google-Smtp-Source: ABdhPJwI2FkkFOTar54bK9Hlt6eK3AKcIZym1j2/uN4fBVMSr5AqxsGo0iTzfPjV314wLkVpEffd X-Received: by 2002:a17:907:728c:: with SMTP id dt12mr2043322ejc.188.1642040563966; Wed, 12 Jan 2022 18:22:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040563; cv=none; d=google.com; s=arc-20160816; b=a1YZgsgBwy9bGFhvZtiL3L27zd6FG5MJYWze/VAdbpOMJCwijQjMvTZnSxXQmTWK+1 d28O1z5tP0tx/FQzhYygShnD+6NjlpFR+wLvXOPgrXyAlqUj9HmvevACCd4r9twEqxV+ pTy1p1d88s5CcjXaDlrIOt0qAxBQrHHtO1R+lICilXVEpXgGV8ji6adFLWzE+zzG5R/D jn9TUMPPh0UvYVDql17Q/0etDS3lNndpqIluy28PUf/phxjNO9hQP0UVJdELRL7atJ6q FAqnDgFetDrwH5f6qDJ9WQse+KT0wc9cO6ddtag58in04MVQ7SguAFHXY9d2bBKQMQ9Z qxcw== 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=jaHNnTZyiz05uMxZlsMuLoJeITUyB9g7096fL6jKU6U=; b=o358jJ71GzI684qAZl7HywtralG2kYOdEFQEFVhOOKey2/66W2UNkTZ6R+ICrobSPK E/fD1pJtkG98JerQkhDPzvrEGF5i30P1QVr4y75b1D3l/q36UyaZAgqgzZi15oL2TNiY qILXgYPrOF/910F9WZpRL4DtdzTmzKEdA2SmtmILUWmrqlTQmdjt3w8C+e1BjmPfsfkC ABTtw+KJJDsNd2R2whSphCTt45LJQR42OOUVszp6zHkaaqEigTMs72bqEXog+chxW+rk iHzKJLKzAw+5Yvdx+4mv01az/GOa5JBbtYJy1DzHc0UA4L1BzRHDsWhhmlaHMRNbNK3q cvhA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=FvVSwmZk; 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 i8si1054436edc.626.2022.01.12.18.22.43; Wed, 12 Jan 2022 18:22:43 -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=FvVSwmZk; 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 46CCA68B3CB; Thu, 13 Jan 2022 03:58:56 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f175.google.com (mail-qt1-f175.google.com [209.85.160.175]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 130FD68B3B3 for ; Thu, 13 Jan 2022 03:58:52 +0200 (EET) Received: by mail-qt1-f175.google.com with SMTP id l17so5336459qtk.7 for ; Wed, 12 Jan 2022 17:58:52 -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=1uF19lyFAHuPp4nIFc5xK13mZeYjM6WQt/T0C6BEUkc=; b=FvVSwmZk67s3gAe6QypIcOazTK2/rKXXwlHGrnvyfqqrKRyWK1SoqmG+S4YnoMZxV+ HA6IkTqvRWO5ciAcZLyaJiEr8Mcuw2SZqtQ05o+JsThSdzn4mm8+RJvJzltrx7PS9PzX 3BxXCzblckrTR9f+Edh4uqD/jHqCDGKjmx6SQZrrVhnYMX4VQ+YLGoE7CBE731pTksj9 Kzca/RvY5W1aRpiPvNsadPqKHFcfcIfm/TXHkV0g0w5ECKnIj8kiIifjp3ixLd4fIuhD 3g8CQiD0JLpFeAqEMgSaYpqKXSfpaNfh35MulBKcP1+Xdvz5T4iLWP5w/toQrunVH/DT U+sw== 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=1uF19lyFAHuPp4nIFc5xK13mZeYjM6WQt/T0C6BEUkc=; b=Nis1y4Y79ocM8lzU1BxDimk9Z7crTN64XWC5jaOB+VTH0REQSQ6QhbvDOO8kqMGvxm 6vAemQSd8Y8CWOCExOkfGmmZ/eTrp2a43srcGlmQZZpHtzzAiA6CuckIy5elXtR/Vww4 tABfhAdl2i3vx+TwosJ2dO2vU+kD03lNKe8z5abwzlBvcI6ibeWFDbwlSaigbjhDRQSf WeRclf9d6y5OGL10IlXCmYoK32yvw1La9faWY1k6+nuSXoGzEL3QKUeLxt8dsRwsiWL7 Mjo9ZTkEdtrKF+UTR6sLPYi0rgkJJpfolZK6SLocpClQ//Wk+u4S0pPQGNIo2Qu8FgUy 1Sfg== X-Gm-Message-State: AOAM532oMXoG4EfqGeNvKIO1JzxpErDf5uteQV5R06QcZ4/30HgcX0yF Rq1F/5sC6kdym2cEe6hDaqv6wtw5OMM= X-Received: by 2002:ac8:7d4b:: with SMTP id h11mr2019849qtb.173.1642039131675; Wed, 12 Jan 2022 17:58:51 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u19sm893081qke.1.2022.01.12.17.58.50 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:58:51 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:57:57 -0300 Message-Id: <20220113015806.519-22-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 140/281] sds: 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: W0mFk9xew3pW From: Anton Khirnov Signed-off-by: James Almer --- libavformat/sdsdec.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavformat/sdsdec.c b/libavformat/sdsdec.c index 073dadafbb..3b7f95421f 100644 --- a/libavformat/sdsdec.c +++ b/libavformat/sdsdec.c @@ -110,7 +110,8 @@ static int sds_read_header(AVFormatContext *ctx) avio_skip(pb, 11); st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; - st->codecpar->channels = 1; + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = 1; st->codecpar->sample_rate = sample_period ? 1000000000 / sample_period : 16000; st->duration = (avio_size(pb) - 21) / (127) * s->size / 4; From patchwork Thu Jan 13 01:57: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: 33417 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp31668iog; Wed, 12 Jan 2022 18:22:58 -0800 (PST) X-Google-Smtp-Source: ABdhPJxs4nzkqpS3+/9lElhFZCRg4acpVlM1x9jKc3dqHsn7bIW7JrsXscpNeAY85/or3PDDltg+ X-Received: by 2002:a17:907:3fa6:: with SMTP id hr38mr1949372ejc.88.1642040578767; Wed, 12 Jan 2022 18:22:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040578; cv=none; d=google.com; s=arc-20160816; b=ViFLCfPUvi/roQZVjR5nCAlFORHxvlxeREb5bxr3CCXNQy/cmRAh0NM+JKzTltdH6r WYpRDOQEl0AdiMEdYPQinJsjbnAVS7riAGHDnfD7xSZh18Z+eYf4mGd1TBZNbqchj0ZK Juxfed+EdFE0u9ISvMrpV1Xydh9kAGIuQo/PQNdaai7uktYA410+fOFzahT4UL5P5MRe KoxttJY48Q4vszuLW1XTX7OOLgbBLH+jP9q86fWR98GU3SY6XqEmPzKgAIiD4VnGcNG+ HpFJ6K/AxujFxwlpn+E+BNv/Z/Ol3HImV1dskzkhLuTuUbD5Lnz8VQB/owvtVl4BFCrH jLwQ== 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=XhocKWC/Ejf0JHlTZv92J7WFyr7W0yxQ7PwySEPNVsQ=; b=NMV4DYMScuedT6/5U4C+UtwaPdX0cKhFx6wE/A7RviSaiT5cZpBUjZ0cf0lndVcJjw vgUxvLXmR2YlB2tQXUPFGk8GfmdjpcBFbySJk0knV6jqs3M4iw+qXQP8Ed+L/YjFs7xM MwYnYgvC63j7pBUYZxm+fofDWSb/kZJMpDiJoxVPh6wAtk3Gb0QH5D57c1xON458FTFm dKqYps1fWVQbUneGIV1gxxCuLKhnQGlV5sqfbbCfvdZpPv9poUYfDr+RzD1BPMPKIn6l 5CQq4xR40L5oxI1D2lbQkAL/HyQOmG46RlOSG6SmhagFtPb2QVk0+7pYvpCwx65mSoE1 /CMQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b="dZVsRp8/"; 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 i24si803224edj.307.2022.01.12.18.22.58; Wed, 12 Jan 2022 18:22: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="dZVsRp8/"; 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 0A57168B3D2; Thu, 13 Jan 2022 03:58:57 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f174.google.com (mail-qt1-f174.google.com [209.85.160.174]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7FCD068B3A2 for ; Thu, 13 Jan 2022 03:58:54 +0200 (EET) Received: by mail-qt1-f174.google.com with SMTP id b14so2424783qtb.12 for ; Wed, 12 Jan 2022 17:58:54 -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=nXCjStBC7xLUHkTIUXk6zs++E5H6LDQ3r22HIQWcjbo=; b=dZVsRp8/ziFyusIxA8jqRmZ53R3Gq6us6qlbHojn+NIo+p/6kUq5VXy283J0VdUlFS yrLSb996WQCg/bhZ5+3pWLk0vCcwAbEf4RsqPcON+R79DRAw3YjjkGgybnMTWkA44HVc 6pR4y2P/s4jQBsqNJOlx0kOfSdcVpKUHS312nR5Z6nEmyCcr9lFIqK8Kkrk4ELyfpQrG Av/qtrHqBaaI1SsBkSdnEleEfKHsHxTk4dZT6Dl10hJkNBU9n7esfL2HKs5pqzVl+MK/ C7a4rfzIZtwr10kr98TlQ9qG1LxM81DOLcZchTukwLQeU3boODSYjldwj8X392fwGSK2 34Eg== 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=nXCjStBC7xLUHkTIUXk6zs++E5H6LDQ3r22HIQWcjbo=; b=1+DdTjvU/DbDTk24AJRcEerbEHyeomux/CYYpnxMDKiQaGbLvVLEz3LDTwvkz2ZgZV Vy4mCTXeCF4Pzc8ngAiRg4YLLONzEiThX8MzohHSjdt8iicxdWTX6jAPDoOJSXrUp35t Wi8paD+glfE2zkoHBfpv5jzpgH3u9KTvYkKBk0Yk/6gH7mDT/SgtKwd0DWaQfqEbKeGY vwWQz1Yt2oFfbys9R7Fzuvy9b7m9O9tcIhade+ZApOyuF55PDsvRvS8NrTde7OyjuQtr t+vyGrHCzNaxyukcpzdSJH+U9jbNs53dZcMo752emdfAu2llA01FXzC1QxV3Epb/msXV dOag== X-Gm-Message-State: AOAM530PpyhDr4TmhlD9mW4j1iM6ldLmRtAMJH+JOLKnT5n2V7nzK9wW A2fOb7ghx5HyvmMuPImGP68LPOdelRg= X-Received: by 2002:ac8:594d:: with SMTP id 13mr1976902qtz.579.1642039132886; Wed, 12 Jan 2022 17:58:52 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u19sm893081qke.1.2022.01.12.17.58.51 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:58:52 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:57:58 -0300 Message-Id: <20220113015806.519-23-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 141/281] sdx: 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: H1qjOcczCxvo From: Anton Khirnov Signed-off-by: James Almer --- libavformat/sdxdec.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavformat/sdxdec.c b/libavformat/sdxdec.c index 76fd2caa00..45edd62976 100644 --- a/libavformat/sdxdec.c +++ b/libavformat/sdxdec.c @@ -54,7 +54,8 @@ static int sdx_read_header(AVFormatContext *s) return AVERROR(ENOMEM); st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; - st->codecpar->channels = 1; + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = 1; st->codecpar->sample_rate = avio_rl32(s->pb); switch (depth) { case 8: From patchwork Thu Jan 13 01:57:59 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33418 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp31824iog; Wed, 12 Jan 2022 18:23:13 -0800 (PST) X-Google-Smtp-Source: ABdhPJz/2HQ632qa+zmOlBu8UJ/9FJotqpX7F1nx+PcDRf9psNqOIPo8mGE69TfJTK5JWIKPLeG6 X-Received: by 2002:a05:6402:34c9:: with SMTP id w9mr2278006edc.403.1642040593213; Wed, 12 Jan 2022 18:23:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040593; cv=none; d=google.com; s=arc-20160816; b=fVAe+PNER8+vXoS4TeHBJbR1B4deFimTYp53iIprzF2zsxB4YX1ro871ajbggduoQl dDnL3aVZRndWEUveKMx3Hyh298SWgT5Hm/GfGaYKJuGF3GzuQUHYwjCS++m9WMGnV44X SaMc67fZJ+kPXKGHuiapEso4NVwtoscib6Udm1qtnbgIpDD02gp0nRhkODzDfABCAs8o uxSQ5hvSp/I7iJnBzmGk/1bGD8wVqgwX8wPm1UV3T8WWIw6ErokqfVVCJbsFSJoGFY6+ ub24ukHWC6uAF/MJxRd0AXWRrSY+bfka8Rr4p7ha75ELQcxFyEk6U789kBL/TI2MlHxk 42zA== 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=GgbqqXtEMoRKm2Zw9jSiCNlSJtotYp5jjIvAxxFpF6k=; b=fweE7OmcWBxxTGIglOg9x9adpfc35luxRqkTEpUsN+XZLGgn9rsoazEEqvk6mYiLkG eGdfAJBao2RNgqAhtsSFkY+c8B2Y8qF/XSl+skgF/R7hs8t+H3u9RjKWYZJTOPMYrmKP zsIZjrX/B8zUxmlpzU6T/mKKFleRiEq+/Bp9Wx0YVf5Us30PQdpc/TfZ6Hr3p4GH0akm rwUXyDXx2xjRvh1XGVLSxh+1nwMpX1TeZdMp9YaXy0fhiy7VgY+OyPzABrGnrO1w2XZl /J6qJkWm5O3RIvEN1FbWTOo16oAjkQt1fsegfnkHiorjpfnJ7sb65ZoK5/cXh2nMV5CG KrHA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=JJOHOi2S; 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 e26si918367edr.306.2022.01.12.18.23.12; Wed, 12 Jan 2022 18:23:13 -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=JJOHOi2S; 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 DA53968B3D4; Thu, 13 Jan 2022 03:58:57 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f175.google.com (mail-qt1-f175.google.com [209.85.160.175]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 75A5B68B3BD for ; Thu, 13 Jan 2022 03:58:55 +0200 (EET) Received: by mail-qt1-f175.google.com with SMTP id q14so5314114qtx.10 for ; Wed, 12 Jan 2022 17:58:55 -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=ZabWq2PqS6gOMugmzoewAcCJr8KPP9hXUIh60SxiYPg=; b=JJOHOi2S4kAqTEIBIBy8FGBooWwsQxSoRCc90LEfkps+yj3X3GIYg0D2uGmpqRccFH +wfyigFdkTAp64LFJnFaSEeRtc+nOj6/vOolGmbSZxrBu/CayZgRU+IS9cRWnTLXrmRM bQhpbza00fz83fBYoVBtFfNXbrC1UWXaz1WmSPGqrCnB94cdxyQ+iEAXB9BbKhdGyVKa /NDaRmzOgywF/OGFHvE0esxDuO9yOv2wO3iyjQ7oFOSOGc0NLsiiecnkT1C4TBcXmF4A 9TFdZBGOQMLFIElQ4AsuQnwEDVC4FbaYrn2P4GqyBy6tr/GDeUVs+H1Y4V7Dp7msNBIN UBNQ== 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=ZabWq2PqS6gOMugmzoewAcCJr8KPP9hXUIh60SxiYPg=; b=aU023eYcCHb75CBftWykC6uJpo4Y8Hbem3eU2Gs/UKPIwG1/nWe3rqfBtJBezsbFAo e+vNjjpon1mhnVJSlZBLgyK8zFf6bIV32l5A1KD7KtPz3Fxgjw+3KgkdesRJyxgbE+QI YLNaRcsuIDNBaV/ciZns2LqRga34gP2iKcbHN8+ut7d4Br+NcIkgbWNoVOIw2wUT1AEY 1EixT/BnNo/jUPQWVxkpErb6gD48hh3lJP97WUD6SzOC57+TMJMFMFmgRs2fRrPr+Vjp iwUubOQxnlXn2PomdswTl8Mc30FjQhIsUTgVVSjme5xkn2T+O6Yfx/puravo7A1qO9uE lxMQ== X-Gm-Message-State: AOAM533G7SEt+ejjlPuBVnjC1JWB2A0c7tMHd/Lh2+x5anloGdtkkNe9 bNMJmKiL00zhcUMXLOPzNaPgw1usfug= X-Received: by 2002:ac8:5f47:: with SMTP id y7mr2030334qta.414.1642039134083; Wed, 12 Jan 2022 17:58:54 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u19sm893081qke.1.2022.01.12.17.58.53 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:58:53 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:57:59 -0300 Message-Id: <20220113015806.519-24-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 142/281] segafilm: 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: 5uqt4VGmjDgv From: Vittorio Giovara Signed-off-by: James Almer --- libavformat/segafilm.c | 9 +++++---- libavformat/segafilmenc.c | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/libavformat/segafilm.c b/libavformat/segafilm.c index 3af7518d03..6c563a85af 100644 --- a/libavformat/segafilm.c +++ b/libavformat/segafilm.c @@ -177,20 +177,21 @@ static int film_read_header(AVFormatContext *s) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = film->audio_type; st->codecpar->codec_tag = 1; - st->codecpar->channels = film->audio_channels; + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = film->audio_channels; st->codecpar->sample_rate = film->audio_samplerate; if (film->audio_type == AV_CODEC_ID_ADPCM_ADX) { st->codecpar->bits_per_coded_sample = 18 * 8 / 32; - st->codecpar->block_align = st->codecpar->channels * 18; + st->codecpar->block_align = film->audio_channels * 18; ffstream(st)->need_parsing = AVSTREAM_PARSE_FULL; } else { st->codecpar->bits_per_coded_sample = film->audio_bits; - st->codecpar->block_align = st->codecpar->channels * + st->codecpar->block_align = film->audio_channels * st->codecpar->bits_per_coded_sample / 8; } - st->codecpar->bit_rate = st->codecpar->channels * st->codecpar->sample_rate * + st->codecpar->bit_rate = film->audio_channels * st->codecpar->sample_rate * st->codecpar->bits_per_coded_sample; } diff --git a/libavformat/segafilmenc.c b/libavformat/segafilmenc.c index 737805faa6..7a412fe9cc 100644 --- a/libavformat/segafilmenc.c +++ b/libavformat/segafilmenc.c @@ -236,7 +236,7 @@ static int film_write_header(AVFormatContext *format_context) AVStream *audio = format_context->streams[film->audio_index]; int audio_codec = get_audio_codec_id(audio->codecpar->codec_id); - bytestream_put_byte(&ptr, audio->codecpar->channels); /* Audio channels */ + bytestream_put_byte(&ptr, audio->codecpar->ch_layout.nb_channels); /* Audio channels */ bytestream_put_byte(&ptr, audio->codecpar->bits_per_coded_sample); /* Audio bit depth */ bytestream_put_byte(&ptr, audio_codec); /* Compression - 0 is PCM, 2 is ADX */ bytestream_put_be16(&ptr, audio->codecpar->sample_rate); /* Audio sampling rate */ From patchwork Thu Jan 13 01:58:00 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33419 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp31977iog; Wed, 12 Jan 2022 18:23:27 -0800 (PST) X-Google-Smtp-Source: ABdhPJxJAn+6GjyB1CGE382O2k+gvPGS+KeRbsPjNNIgjKqSHboMCAOBcL7q49rlsaHuSQI0fc5l X-Received: by 2002:a50:9e84:: with SMTP id a4mr2294356edf.358.1642040606850; Wed, 12 Jan 2022 18:23:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040606; cv=none; d=google.com; s=arc-20160816; b=kKSFZMHD1I3HE1SuFMy2mJ4odE6rcK7GsGd0mGnh6/R7fT4eZxB2HwzJRbbVAmb51H B2TbC6e8UJ1BJk70t6D7H/IbCymAxK6QmR/nYvbh5xaNUgROL2b5zRVqyGKROdbeOjEh oFkhlCbeybfuhNNcnD5H8WeXB7hQxLf2onLY8y0f1yzfVUlJDqxRm7BLaS6OGyXJlvK3 6hDrl/tJUUT/w/0Ks4mdIaBwHSj/8EYl9HvxyQKQg5Kf2wnXWHcAWaa2uIQK5ade/N6G GR3Uxl3TKNJx2y4u22iNwo4BxPlhw4G0ZlMqySgRktOUB3uT1hnTSCQ4aiZgscjkzLP8 5O2w== 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=umxB+PWrmHSc47qsxMm1P+duXpyOfCcu42B6zlxB7PI=; b=h1nzjv8QodNvxdaYp3fgll1gwRbvYLDxuMk7e4F424rXxKXGDJAlXMGCeHHncasfJB qB0QZ9cBUZe/eAJEt9xIGDTWkjd9XCyHOGgyq1baG3g5ce390aB8lIsEuFyPp5oOqDX0 7sEQ8MEJ/LzzRoT4hPZA5O2YJXYLlNdOP1q7Gq0Dt+ov20odooj5NOWl5m2Jutuv0GWB PPBhyYqPX12qfsN7P5Req1oij94y+c0rsbHcqgoNGn5DRcLvsxFBiWhLN3y/22V2sJP1 ECH3KwSVnPHmNZMlwH02rN8xUQKmjrEksu1gC7yXV/wY64uPJBaBQ4XWqxnXR8c2HGy9 35jA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=fgqLOIXT; 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 n11si984231edx.532.2022.01.12.18.23.26; Wed, 12 Jan 2022 18:23:26 -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=fgqLOIXT; 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 EC7F168B3DA; Thu, 13 Jan 2022 03:58:58 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f169.google.com (mail-qt1-f169.google.com [209.85.160.169]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D744668B3D2 for ; Thu, 13 Jan 2022 03:58:56 +0200 (EET) Received: by mail-qt1-f169.google.com with SMTP id h15so968141qtx.0 for ; Wed, 12 Jan 2022 17:58:56 -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=Rt3bF7PC7et7OGEHHlMZk1Nupc3Ss9JKEn0UfVSUx24=; b=fgqLOIXTco9zIgqH+5MkVOFuNc7Mmz/3e3sS2vRMcADZ08GGE2ZYrjHefruKR9NIUw 3qaay8/JHw7PdkAXlAQW707htgwuf/RTcUiBXfg4RX8erlidwx6L14sqtYEmQyf45ei1 qysTmx4rNzYplz4p6MUPILowzY1/FxrJ3DrD+OMClFxWHbxyALiAB59NxzPzRTTieKm4 +r7kyHFmFmzNAV83AbkoqVXxjsUXvY/D2Sk4+iwzjDLLiEC4Xl4fUv6eY7E+TMc/lzPI VlGuhAq4f8CircEFy3j3y9gyfwzjy3A0WcOkW0OPK/i3dbxQ/mAjFYiJ1dPnGOlerycA QH4w== 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=Rt3bF7PC7et7OGEHHlMZk1Nupc3Ss9JKEn0UfVSUx24=; b=eDbERF1HHxstx1VX5mFeUlRPyr6smQqdlY3SltkFL2TRFAE0IjFYmjB2DWPq/yOQxZ R9UU8yBsUNG3GFXlM4urj8F7sfCU2uJXZeCQgct5lUG9slFU4rdx0eiugil6Ix8t13Xa cifCCOr7w553G31c12/qCvskf96S9YyIPObBqLHI611wCFuEO1vvzscyfBrYATQ+3Zcr CtitKZB0YI1IWvPhWkDJ1F9zkRsdJN04lmZ5Pd1wfDpe9OeFqRDYe3eSKKaX3O5QeYAV jByGvTQ6B4pBaIY/IbJ7VKa4nGu3072Ss1q8eXoh2IVPRWaNCjpr8tf7JNNGhnZ3Ioh8 6xMw== X-Gm-Message-State: AOAM533U1srt/cOlulxBMmkci4d8I218WCNEy0515E/8dr4K32i3I0DU dVQjg9AJEBTPFoe7CMjuC7S8q4lPnwI= X-Received: by 2002:ac8:7d4c:: with SMTP id h12mr1993183qtb.588.1642039135259; Wed, 12 Jan 2022 17:58:55 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u19sm893081qke.1.2022.01.12.17.58.54 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:58:54 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:58:00 -0300 Message-Id: <20220113015806.519-25-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 143/281] sga: 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: 4hCPTOO+YY3T Signed-off-by: James Almer --- libavformat/sga.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libavformat/sga.c b/libavformat/sga.c index 16e8fe516d..12e9cc1441 100644 --- a/libavformat/sga.c +++ b/libavformat/sga.c @@ -323,8 +323,7 @@ static int sga_audio_packet(AVFormatContext *s, AVPacket *pkt) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_tag = 0; st->codecpar->codec_id = AV_CODEC_ID_PCM_SGA; - st->codecpar->channels = 1; - st->codecpar->channel_layout= AV_CH_LAYOUT_MONO; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; st->codecpar->sample_rate = av_rescale(AV_RB16(sga->sector + 8), SEGA_CD_PCM_NUM, SEGA_CD_PCM_DEN); From patchwork Thu Jan 13 01:58:01 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33420 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp32118iog; Wed, 12 Jan 2022 18:23:41 -0800 (PST) X-Google-Smtp-Source: ABdhPJzo1c+ZccC+l3EGlKOPnytd03my59l+kTeKCw/ZHyAvGQq+Fr30jlhom55+7orP8TNUsOy8 X-Received: by 2002:a17:906:4f90:: with SMTP id o16mr1950596eju.626.1642040621118; Wed, 12 Jan 2022 18:23:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040621; cv=none; d=google.com; s=arc-20160816; b=U5b57Tr4tAZvrWz9z3mRfzg4PRhyPIRyQPT+vO5XtZRH+VxRGthWw259wrhbTwtGOR VDs2tQnNzIvvTENxBAbXXzNRkijQPw4nQWu1X4zRzKBAy4HbmvZTjZKBK72xcDjIIZeN wp1fg4dT+C8Q+9/9eObxS8KYXZUenWKBlJJyTHdrAIPyFKaTfCdDw2jJhUJsUhzBB4vK fXSTQZ0VMH2ninoFvs9syUWmw8Lm5aDs+KQ5+C9tzQqRfbXPJO4khyIFRYSj9nG8oIlC q51jxr6SspM2RXaKZW08/ySYK1eYPoNyv3nOAE9r5zoqrby3/pl2Wls60T86J5z+zwaN 2UMQ== 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=CZ/Osu3wR9PHDBsr8PSkM+cYhmu5cDGvt24mVhwWdOc=; b=SSWwklHdc28s4Vt7hGoMR6B+bh0hXnOjqkOa7O+EKXL2QygqVp8cYEBRUgxJssLlnQ wdULyGs3Z2oZuiA2bxK16D6pjZn5edLqyDSBi+nimDAhYMhYd0vw0pPGNlVxI73qxXmz czUI/nbIgNH690hRccHBuFmU+oIrXtwMhLSUO4sZsQP026WLKWdKDgt/KSElW+5z4o3X sWzSjI6ogxYc8q5EYmaioAQbAxx5HEGj7Ykya9COPM3xZHY5rlvLsBMGANmThdOTScGF AgDBmKX6qLNtY8eRB3NTE22gnuqYU/WmGGiF2glWShMpfTDqzU7CK2sTxvNOQJFy1dqj COvQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=Ja4drMgp; 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 mp24si804338ejc.720.2022.01.12.18.23.40; Wed, 12 Jan 2022 18:23:41 -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=Ja4drMgp; 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 51CF468B050; Thu, 13 Jan 2022 03:59:00 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f172.google.com (mail-qt1-f172.google.com [209.85.160.172]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 48CA168B3DC for ; Thu, 13 Jan 2022 03:58:58 +0200 (EET) Received: by mail-qt1-f172.google.com with SMTP id v7so5319498qtw.13 for ; Wed, 12 Jan 2022 17:58:57 -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=cSek5OhkUMKOavMTITV0Fsm/88MIVGhFDw+/1Ypgj78=; b=Ja4drMgpX/P50mnif+v6JBmzPQq3haMFzYnrZ3zC45i/vPcr7xSZadSFnkKKB/br2b zxFUUXzvl7/fi00cbeLaqv3CbNQ9QSOzfw8aPvqT686rmyvGkx+LmS1Lx6ommTTl794D QKTRfakIPFUinWgwRcjpWYZRJy+OGnlZOjdlN8gUGBVtkF5UZjmlmH/pibFLa5Z8xam6 RKuMde8hww/X2EMw9DucoRPpQ2BQfJXBwS/OBWhgpk/hycyvF/kVlwgL31wQKnmIHuh6 FoFEHZt5li1Gz3N/KHdclu5FQCEtPauaBNrVfGWqQEaAErVQ8CF/dmCbM289stVSnHUB Z3ZQ== 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=cSek5OhkUMKOavMTITV0Fsm/88MIVGhFDw+/1Ypgj78=; b=wCB5vep1o389BUkmvi1vbVEVuwHvovn4Y7flSI6oSIHjUHCnoID3VeCLqdF7c23385 OZ/bPoExmPUdLISEDpwj6OwXWAQQoG48z/DFySpdeaGtWrDLxW/EQni6HHEy58WkzH/K Fs09s2ZbNbP0qMe5dW9Wn78/1+3c/cOhinmDTUPxRCzyk+jpOAjBXDv4X4QtSqbgs58u hTECMhD6aMpB3YACv42gL8YPXcffrX9OYAloWBusmH6ebV0bkOyePcRPBT0vsWKscg4X cBc1OeDaAMp2zxvn5uBraaoZVZM8r0krAo3WvbSf7ukweKDfB1h9pCnTiXv8f/N+5RM2 wf3A== X-Gm-Message-State: AOAM530cS5f2vNI3dU6yIhDWPaXmVhuScjAIlg14crb5tGkLegr2AFLX LzZpaawBJa6qEoPMfFGTR3A6Zfavlg4= X-Received: by 2002:ac8:4e8f:: with SMTP id 15mr2057235qtp.418.1642039136470; Wed, 12 Jan 2022 17:58:56 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u19sm893081qke.1.2022.01.12.17.58.55 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:58:56 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:58:01 -0300 Message-Id: <20220113015806.519-26-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 144/281] sierravmd: 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: 8xIuvNg4qBnS From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/sierravmd.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/libavformat/sierravmd.c b/libavformat/sierravmd.c index e35faae50d..d110457ec9 100644 --- a/libavformat/sierravmd.c +++ b/libavformat/sierravmd.c @@ -134,6 +134,7 @@ static int vmd_read_header(AVFormatContext *s) /* if sample rate is 0, assume no audio */ vmd->sample_rate = AV_RL16(&vmd->vmd_header[804]); if (vmd->sample_rate) { + int channels; st = avformat_new_stream(s, NULL); if (!st) return AVERROR(ENOMEM); @@ -150,24 +151,22 @@ static int vmd_read_header(AVFormatContext *s) st->codecpar->bits_per_coded_sample = 8; } if (vmd->vmd_header[811] & 0x80) { - st->codecpar->channels = 2; - st->codecpar->channel_layout = AV_CH_LAYOUT_STEREO; + channels = 2; } else if (vmd->vmd_header[811] & 0x2) { /* Shivers 2 stereo audio */ /* Frame length is for 1 channel */ - st->codecpar->channels = 2; - st->codecpar->channel_layout = AV_CH_LAYOUT_STEREO; + channels = 2; st->codecpar->block_align = st->codecpar->block_align << 1; } else { - st->codecpar->channels = 1; - st->codecpar->channel_layout = AV_CH_LAYOUT_MONO; + channels = 1; } + av_channel_layout_default(&st->codecpar->ch_layout, channels); st->codecpar->bit_rate = st->codecpar->sample_rate * - st->codecpar->bits_per_coded_sample * st->codecpar->channels; + st->codecpar->bits_per_coded_sample * channels; /* calculate pts */ num = st->codecpar->block_align; - den = st->codecpar->sample_rate * st->codecpar->channels; + den = st->codecpar->sample_rate * channels; av_reduce(&num, &den, num, den, (1UL<<31)-1); if (vst) avpriv_set_pts_info(vst, 33, num, den); From patchwork Thu Jan 13 01:58:02 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33421 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp32247iog; Wed, 12 Jan 2022 18:23:54 -0800 (PST) X-Google-Smtp-Source: ABdhPJz8Ep7KCRkCR3EdSMXw8y31bjUrVk7cMNnEb3hAKErGaHbp57LkixDieCICkgBqgCk2Im4+ X-Received: by 2002:a17:907:6e89:: with SMTP id sh9mr1898567ejc.309.1642040634034; Wed, 12 Jan 2022 18:23:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040634; cv=none; d=google.com; s=arc-20160816; b=bdv2PIGDNGcAuv/dCBBedxBRGbFWASOpSxJ78qHlrByE1Hr9AJEphFjzv6+Rw2ni+c FoDydwG37jclWtd/hZCs/ibwbbhQHuI7F5NBXHwHWeGIWuHqacVPlKMgnl23jW3STkqM e8t8Jp3f/C3m45YaNXpk6wQMshRZ38WFcz0LWOG5u05Z6o3Oh/TToCg+J2bdNXQA0Dpz p5Yw2x8AhSwU0kwZjFy7Yd+yhI2nxOSYt1YlIoUAkdlGNEaLC3xH/3eBZlsPYsEWEcDH ix73nsepnvY1LIKxC1XKJAG7A0Ww6MdX+dUxqAFDMtPR3jfqJdrw1tjvuBW45gUIdE1p 9YAw== 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=lVr1hQTwn74RfdVbm+cvbCSbYn36uyKRiaS9zc07zQk=; b=FXIvv3kyy0aWOLoiLugpFyuiE6UIU2XYf6BTkRKwebojDJYgPkZNKURXDZwOKR+YG0 WmLxyD0H5oyOuVuOvOTEw1Gwa7tpXqAIP30l0LL8JWWJJ2K9oUpYmGGyz6oXa2cwf+vK JGyRh52aIPF1Q7RmArJNitomae0qerznsN146AbznSOk6uWXd9vdwGhWh8Dr9mrOTGmz 91YV5r3aRk6pYvY6jNRrqYeH/z8qaNGtA+fO/GwpkE6hKwWPRNn8jAKingk5foqONhqe DJ4WChqtb7rYDvI6wvMPD3TalsUQD6MeVyalqcQxFtjzcofyxouOnXPwAzsv0zhzY9q0 o0rQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b="qga8uc/c"; 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 o9si744524ejj.106.2022.01.12.18.23.53; Wed, 12 Jan 2022 18:23:54 -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="qga8uc/c"; 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 425F268B3F2; Thu, 13 Jan 2022 03:59:01 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f173.google.com (mail-qk1-f173.google.com [209.85.222.173]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 44F0C68B3DD for ; Thu, 13 Jan 2022 03:58:58 +0200 (EET) Received: by mail-qk1-f173.google.com with SMTP id j85so5602602qke.2 for ; Wed, 12 Jan 2022 17:58:58 -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=A4U/Kj8kjBY+uQoSvNsMzbs4Auw11Nshkx7Wan+9Sww=; b=qga8uc/cR4vHh62nuVUY9e+0sNGVFr0Vl/k1U1Sx3enE3xq6XVP8Sp5WxtfAw7rgXP GsMUsSPqwv12RRhSpaue2EqU54kXa6bqEZ7O1uElj7No99vMFrQqWKyjY54LuO2JHhiu b+idkzLvf4K6ABGo+7rMSiZZhs0rqvsHKE9sp+/eSvqLlZsGUBnvyrNZ5ZBV35D2b8Pc Rrf5NvwBWAKe8Tqin8iFMQNlEZUJNz25PsY7twcPff0Q33D0iiF/zL4JWn6I1c2nE7E1 blmZFCjdHb5fiM0ZcsJLTrlIOczi3ZCfXvA3IR51HnGZsmo752L2zaIXaJkdX1Q+/rlT +xdQ== 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=A4U/Kj8kjBY+uQoSvNsMzbs4Auw11Nshkx7Wan+9Sww=; b=DdzIsa3tCzzmHsQ3EVz97C2O51qOMbPifDWJqn17qMi/5qfzdlVLjD5RgYKnxSkFnL w5EKlwK0bzZ3St4Vx2GBnB+fAfBhd8xlwVauA9C7lGLUz9AIOoZhypNqgVnrujnCYJJT jlDEyy8kMxoSxCUmVVoP1OTHgED83p64HHbc+TI1WZByrYEyPAkkCntUXrCTQIFZSJ3L PYCIrgbcgMa8QCclZFnw7OpiqDopMeFlZdZeBCEzG0FDl64wcNV82COnKU3X5fU3/SCh 2Lx8CMv5utNru0tDpo4ZTDFuF3oS2w0b5En5kWhpS9RG46rRxy561NJW5MfnldmE6OPD Tqbw== X-Gm-Message-State: AOAM532d54257JOz9ciTWU4Z5uAr63Ph5tpp/qCoQf2+q1HZKcLc5cas ThYVJsHJRxgusGDmO6kgVV6ll4AJKn4= X-Received: by 2002:a05:620a:2406:: with SMTP id d6mr1888593qkn.594.1642039137668; Wed, 12 Jan 2022 17:58:57 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u19sm893081qke.1.2022.01.12.17.58.56 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:58:57 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:58:02 -0300 Message-Id: <20220113015806.519-27-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 145/281] siff: 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: b4Gt7eE7LrHk From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/siff.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libavformat/siff.c b/libavformat/siff.c index a34de24ec8..99756574b4 100644 --- a/libavformat/siff.c +++ b/libavformat/siff.c @@ -80,8 +80,7 @@ static int create_audio_stream(AVFormatContext *s, SIFFContext *c) return AVERROR(ENOMEM); ast->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; ast->codecpar->codec_id = AV_CODEC_ID_PCM_U8; - ast->codecpar->channels = 1; - ast->codecpar->channel_layout = AV_CH_LAYOUT_MONO; + ast->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; ast->codecpar->bits_per_coded_sample = 8; ast->codecpar->sample_rate = c->rate; avpriv_set_pts_info(ast, 16, 1, c->rate); From patchwork Thu Jan 13 01:58:03 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33422 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp32384iog; Wed, 12 Jan 2022 18:24:06 -0800 (PST) X-Google-Smtp-Source: ABdhPJyuMZisS/p58jq7jTgkv1/iDn5U6LkBGP5ljXpB8uoRV/C+lKbuUEqWi61Bg2ASE3J6RSEg X-Received: by 2002:aa7:c30f:: with SMTP id l15mr2229153edq.310.1642040646581; Wed, 12 Jan 2022 18:24:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040646; cv=none; d=google.com; s=arc-20160816; b=0UwCS9rVyzDsjw+b22D0yFUsQLhndlUBk8Zn6Ql5nv2Bp3c30FqqW6PNq3rWvzzSX/ xkb4mH6QVPevLzDVmsWnkyH1PCeX8Kt/KHtBrG4nO3Ph709f5OAU4ooGJ8vJUakAwoqS NTqzcXX0rGiGVuz3IfRIjo/IvaZGKi2PExXpuLKHrx4L6hn5Ik4pnsgua3nAB1urVaaj /WgBgfexNCOzASivIs1O9zNwbh8F1yN2cNNjWt1mNnUMB1a+IfjS1TpXwndCW/LUDFZi jfAWDEJ05pdFPlvnc26GvUZLkan3dZyi8U+/OwrdE9mQbh3F6pfUFHqqGlOpO8K3tD6e CM5g== 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=+q1jEkS/hHsipUDw/t+A22ly367QL0dCJ4C+RmDJahs=; b=Dd0RytZlTs/54bew41rWipY1zUGnS9reXrYgVNHk4h4+3omp3Ia0w0M+CH+PjKhg4x hnedGeLa7qYl5+PJYsKlICQ7DOGW0r5wxn+M/V5hbUvkeQFKRMwh9VB75eSXncUTFzjq N0Dcndav8BUQuVzflCfHjOw8wQwDgkfBiGMVTznkqaAhxj7cX1gQqoLMT528lWbst4SC sXaBf8GVQhjtX89RGNZTM/p9g2Nh3jKim3ZfdscknVK1AJ/cGRMxHb8H6iZD0Jud/N65 M1lnudTCjlzFnifIFg2vJC9YJzmb28Ujov2fO4+ioUjrMPdYeFMIZupvtHvCwSxjikSp J+Nw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=Fhb0X72U; 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 hs5si885502ejc.181.2022.01.12.18.24.06; Wed, 12 Jan 2022 18:24:06 -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=Fhb0X72U; 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 3789468B3E3; Thu, 13 Jan 2022 03:59:02 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f46.google.com (mail-qv1-f46.google.com [209.85.219.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3E72568B04C for ; Thu, 13 Jan 2022 03:59:00 +0200 (EET) Received: by mail-qv1-f46.google.com with SMTP id p12so5094378qvj.6 for ; Wed, 12 Jan 2022 17:59:00 -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=i2itdWU0XHMfRqASJ7fS1DBwaFCdS74PE94q7WfimLs=; b=Fhb0X72UUUbMEWNXvZv7ET8meaqhkCet5zcVu13ZOMfOEF3gkg1uYMR/i16ZyDlqIK T8w9wQ4U+Jl8LhygxEhJ4WthffVsUgkyYWhEDFs5tX323qVsgUbQ3DAab3KX4xnaV0Yq i8bQQIX975RkQF+TwWQNG+DbYOJzv0le3muEDuyXaSv9kDqRSti0NJkp/oKXhIz8tR0V XSjU/qu39vUHUUo2FUH/zAx+IOOCKU9sou3lgpCzWSqmjvD6cDKJKalFkl2Y/7Bkba2o Q+Topp5opdheTc7aoXIADzPcv62D1JexW6yb4BhTvFiAqegUfS6AK00slcjRDJP5Ra43 AHUQ== 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=i2itdWU0XHMfRqASJ7fS1DBwaFCdS74PE94q7WfimLs=; b=cb8pEqPITShKgi2iRYXFMFi7OyrDkR18zLH3lwwH50w4FUtfAGcKekcQ4OyD14sAE5 aBW45zfbRjYhLkX7L1u4EOHdhZRu3vKKWsQcJnJz5WwfX/1bxbONXXjvhRrqMyAQbUzw p+8ULaJzUnav2fx2joLog0Bhn1G0nOPC9lfEqPO8DWIOyNtNJYREiHErr1WQ1SWiryfP Dg4ZnGlfH0CkJUpHf4VWdUVDH9pun4Ucgz+CVaAvudayLw4hAd2q6X+Ab7g1BEbQKVqf Stjs+OqIEqmlrQIZdhUuLqkdwvKwAwETogrhVbeyk5Zz+qRgjoXJv/bCfCyVLbcrwj9E FBrA== X-Gm-Message-State: AOAM530psfFF3pez/DsVxkAlkJ8ERIbSeNfrlyPPNFxZpDHMQRbumbJU TvEPZ1fEbVuyjTSZqtt7KclhRi6zNcA= X-Received: by 2002:ad4:5f0d:: with SMTP id fo13mr2132054qvb.90.1642039138880; Wed, 12 Jan 2022 17:58:58 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u19sm893081qke.1.2022.01.12.17.58.57 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:58:58 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:58:03 -0300 Message-Id: <20220113015806.519-28-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 146/281] smacker: 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: Bxn4JDQPpM0i From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/smacker.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/libavformat/smacker.c b/libavformat/smacker.c index 98436bd708..80d36f2f40 100644 --- a/libavformat/smacker.c +++ b/libavformat/smacker.c @@ -186,13 +186,8 @@ static int smacker_read_header(AVFormatContext *s) } else { par->codec_id = AV_CODEC_ID_PCM_U8; } - if (aflag & SMK_AUD_STEREO) { - par->channels = 2; - par->channel_layout = AV_CH_LAYOUT_STEREO; - } else { - par->channels = 1; - par->channel_layout = AV_CH_LAYOUT_MONO; - } + av_channel_layout_default(&par->ch_layout, + !!(aflag & SMK_AUD_STEREO) + 1); par->sample_rate = rate; par->bits_per_coded_sample = (aflag & SMK_AUD_16BITS) ? 16 : 8; if (par->bits_per_coded_sample == 16 && @@ -200,7 +195,7 @@ static int smacker_read_header(AVFormatContext *s) par->codec_id = AV_CODEC_ID_PCM_S16LE; else smk->duration_size[i] = 4; - avpriv_set_pts_info(ast, 64, 1, par->sample_rate * par->channels + avpriv_set_pts_info(ast, 64, 1, par->sample_rate * par->ch_layout.nb_channels * par->bits_per_coded_sample / 8); } } From patchwork Thu Jan 13 01:58:04 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33423 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp32512iog; Wed, 12 Jan 2022 18:24:19 -0800 (PST) X-Google-Smtp-Source: ABdhPJyduIjN4PlAs8/WKtbrCj7QepjXzdYwbO3yZvVw9qUbVCUO7njWWj6Pa+IttxWUkbz9KanO X-Received: by 2002:a17:906:65cf:: with SMTP id z15mr1549843ejn.420.1642040659137; Wed, 12 Jan 2022 18:24:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040659; cv=none; d=google.com; s=arc-20160816; b=eXh6tTq1PvVi8ex624kccYmdAZcObuB7WfSEhVxPX+3PVOgHhNGYxCXaDmQJT3rjkJ pJe9Cse4uixaI3DN8csBXHnxKDAep2HKfdeT12DTHEr0eedRzxUPrN+BK2RoFGoDfR1B Q78Zdw1YY01EvKOZOEyxTJdH0JqXz7YSJJr6LSIYOIymRLiPO6EiKbuY5biCvg0fLMGT rAcMvcJZDuWw8ICCs92691LBYSk6r8DIMhveN7fzlPTsDxmr48PTIWDlSxFw5zxhUnxk o8fhiZaYraOzCjRyENDSW+MVb0mVu3yKHwlzsx8ne9XXqe9+l+UU1j64ZsDOaVjgwpVj q1Zw== 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=uFjZgAazdP7h0S2mR5+/8Vqk1mbEX8lJdIFGDsMnHdo=; b=0GscMPLBE5ir20SggFydW2Y9bLzdPV62x/vTl2nkhEv8VQWqUNtKG13LGfvQU/mbbc TrbZ31KDKTh05HjNhaN/DJBKEDBc+3IqisAmOyQ9Tx5Neyur0ti2DxWEXiliNVTur1yB +tJrKCVu/93i4xjl59E1Ww00sJl4GR5NrvWuFc6YFV+UuMBgm82FCqjP0I0zblrCKviG +ci+aTl+kEKzIhcl6seK0Tqziuuabk59JD/gdt9bqmf3bgKv2xNGQ8XAxduFu19PLl7i roPvEhIbPpbRoeXoPxkUZBCxFpv6tZT9lKDEnY+vmE92e/DgErILUQ1ag+qi+dHqWTKE xAJg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b="adalVsN/"; 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 cz23si869025edb.1.2022.01.12.18.24.18; Wed, 12 Jan 2022 18:24:19 -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="adalVsN/"; 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 4C85768B403; Thu, 13 Jan 2022 03:59:04 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f175.google.com (mail-qk1-f175.google.com [209.85.222.175]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A16B768B3F5 for ; Thu, 13 Jan 2022 03:59:01 +0200 (EET) Received: by mail-qk1-f175.google.com with SMTP id s12so1112664qkg.6 for ; Wed, 12 Jan 2022 17:59:01 -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=hibNVsvYzn1aiZxUv3D/rqNAdz1kKeRxbxH9DzALzQs=; b=adalVsN/1vV2a4HL+nHMDmSzK0xJ7BNytxfEqYuRNhgpDpuaUUdZwwqunv1DJ4x6S9 HCGUFp1i0cfADEtpDJOgXpHMCG6GKJljR9gePb3tbD4zDvBPwCMYsTiSZ/WuBwVMfiGZ FvrxDQFahUg3LkNQKGljzT3sPvziTPcgsi+3kSgMQ3Tl5pVpsgp8YWnRUPjHA/Pcn6ml m1sFFXZ1v9tOAkRe4+Geh9jYUj5ktc7cLzmaL2Y6oQ3jx9CH4H/GXvq2HeVfMipOi0JE L70p5g5ImoIrXObJcv2M93ROmH1NjXYfdUrIVKgpJ/fn/uxQCSJn7Joz6+j14Pte1Z/l B+4Q== 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=hibNVsvYzn1aiZxUv3D/rqNAdz1kKeRxbxH9DzALzQs=; b=mTkG5nl1vfG5uDIkii24mChBGJ4vZkMXZD2vNvs7clFLSBJjmZ29Dj+KhfAu4OEMJD P8csvjac8QNHmnbGPRc5xlwzBVLKgEYdZoBO9TwNr24BSe1ph9xQ0mN+WjwPn14gyKZ2 Ez31eV461Whpast5tyN1YBmjPBPi1EHBCSbDCM2PFbYqaGkM02b8cqUTCbc5sN1DRZSK kyoeruHD77msgqyQIeiEsdG6Dyky6q7znTBQZzzc55GD0jpxHGEW448A7y+o3pr0JAlT dYgasBjTLe7nfp9L9u/vTvhthfkLLgDHoSWmjonElvjb0jV93J4/129g2f0Qh8W4C54d 6awA== X-Gm-Message-State: AOAM530musrbHwZu0AQfPClg7wuGrFyAemwzwOJUPtnulcUXOdsdSC9O BQOVlat8wbq42aFOt+ps2LaFYyvRTD8= X-Received: by 2002:a05:620a:4251:: with SMTP id w17mr1800176qko.284.1642039140069; Wed, 12 Jan 2022 17:59:00 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u19sm893081qke.1.2022.01.12.17.58.59 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:58:59 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:58:04 -0300 Message-Id: <20220113015806.519-29-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 147/281] smjpegenc: 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: h+vwAJ8wNkPQ From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/smjpegdec.c | 3 ++- libavformat/smjpegenc.c | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/libavformat/smjpegdec.c b/libavformat/smjpegdec.c index dc95a822c5..d449162705 100644 --- a/libavformat/smjpegdec.c +++ b/libavformat/smjpegdec.c @@ -94,7 +94,8 @@ static int smjpeg_read_header(AVFormatContext *s) ast->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; ast->codecpar->sample_rate = avio_rb16(pb); ast->codecpar->bits_per_coded_sample = avio_r8(pb); - ast->codecpar->channels = avio_r8(pb); + ast->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + ast->codecpar->ch_layout.nb_channels = avio_r8(pb); ast->codecpar->codec_tag = avio_rl32(pb); ast->codecpar->codec_id = ff_codec_get_id(ff_codec_smjpeg_audio_tags, ast->codecpar->codec_tag); diff --git a/libavformat/smjpegenc.c b/libavformat/smjpegenc.c index ac5576fa76..8b40c09329 100644 --- a/libavformat/smjpegenc.c +++ b/libavformat/smjpegenc.c @@ -68,7 +68,7 @@ static int smjpeg_write_header(AVFormatContext *s) avio_wb32(pb, 8); avio_wb16(pb, par->sample_rate); avio_w8(pb, par->bits_per_coded_sample); - avio_w8(pb, par->channels); + avio_w8(pb, par->ch_layout.nb_channels); avio_wl32(pb, tag); avpriv_set_pts_info(st, 32, 1, 1000); } else if (par->codec_type == AVMEDIA_TYPE_VIDEO) { From patchwork Thu Jan 13 01:58: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: 33424 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp32621iog; Wed, 12 Jan 2022 18:24:32 -0800 (PST) X-Google-Smtp-Source: ABdhPJxkZa2dngR6bsgID5y+GsU6BUvjvNyGbjt6HKfuDN6jwQiNpMhTiHJKVdxIPyo0Zhdrr3s1 X-Received: by 2002:a17:907:e8b:: with SMTP id ho11mr2016562ejc.481.1642040672645; Wed, 12 Jan 2022 18:24:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040672; cv=none; d=google.com; s=arc-20160816; b=k8UsD2vlaYpa2ZzstF9hF83afmtYplFRdTVdkDwNnkzhysn7qAzyjZPpdUZzPQxApk +3yGm0J/SYxj/Pxfim3QIeqfxqlLNd5ILFnGISHJvBRVAegNHrAJaPfdQbJaOJcjfGqd 7dEXl8Wi8KHD7djxU62Ju0QfBPoJg/0s3o3ImMQgyMME8ay1DZTV9HsUXBqRHTrHTzYC WNNxXGKE6ADN09JhlOeMcAlLZmuF95QmYe8MuV++xvLBLNNuPhVrjzQoRU6jGa8HS0HG MbB58ozUVXnrjfk8K8Jjm05HgFPdNMNwf0u1N4cwPHWs0aABJ3ixQDHIPlca84tvSt3K xOMQ== 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=z+z4zoZalhpVwyl41sNSdtW9qGnNj8bh8vNoe+Ylksg=; b=TPcKKV1UUe1vsph0SAKl1W2Ul4QK24ZwTDXhS8WxU4+452LT7qSzRVNOHaZ0l2RUEm 5xWEnW0vCT6VGckhnfw8xe6pKJz8/mPuHIh7W6ttBegnPthvY8/49Qd7KQ0d7/B35R/a trcTZZQCtl6j4GwJ188yaYyySYkxXsbV+0WmL+i7kljeJkCMbETrNYOw7/iRoLhdAvQV qlNgOqmubxNAvvdmmhGXezcbqnA5raJCK+T/8qn0PtYJ4x94I8TWDOTbyQmQQhgmoxq+ fWW5w4a2TLagUd7G7tCa1I7LfHl4XxWMuSgLHekV5j/R80gObudD5ifFPSwpbw/RbF1Z PGBQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b="p/s83sp+"; 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 g20si1026268edb.62.2022.01.12.18.24.32; Wed, 12 Jan 2022 18:24:32 -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="p/s83sp+"; 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 15E5A68B3EB; Thu, 13 Jan 2022 03:59:05 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f177.google.com (mail-qk1-f177.google.com [209.85.222.177]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A009868B3FA for ; Thu, 13 Jan 2022 03:59:02 +0200 (EET) Received: by mail-qk1-f177.google.com with SMTP id g2so5612947qkp.1 for ; Wed, 12 Jan 2022 17:59:02 -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=iDAtLZXInWyI53mIcCTVsxxr6OcA0837kK0yaRx8ggw=; b=p/s83sp+RW4VQOOtStxkg3VKWxZzgB8DyutDK5Q/fAnUKzjGI/hZYP6U8YnTwhWegq 46g5gEkBiGXopuBBOK7COjbv5ZmAKgROXIhtXAXYn9yMQv0q180xVqZ0+KyxEKB/SkVu UCEF49rFSL4nw19JBFFPDytMn5ujUftx7URnz0MhMDpSygYb0bIvQEScrImCHnqoU2DO VKNNSCcmaeG3nbizDiPrfauwhsJw0r8nqyyfsch9kdJkD5mgu7xbL4TZtln6nzhkl3hu UB6Z8AI40A/fsyngY4hexmwYdV3Y2VaYQuz8APGYm9UlX5pk2NQ81ZPdUpj4z1Z47Qjs UCBw== 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=iDAtLZXInWyI53mIcCTVsxxr6OcA0837kK0yaRx8ggw=; b=xEhZDeWHIZQ+sTJgS968lUey9Qk4dS1vnVl4QogKoqzJdDgzH+kbS1C/AYJwPqt++d JsLEZ/0qHENrBCi4ISuIWfZdTFbU4v7/Y1Vv8IQOD1SlWwLoTHBfIXD1XkYuwcYVoxp6 lGn/1tIoDZMSpmTwMiG2LbDUl5p3TRv4tdxd+yQBdmf6SLM00j1NcUhoS0kGWWEgehkG 6tNktfy17lCtd8Jvamr8BoqEKYplPc3IC5oG/OZCcr85vBN8siV9goipqOiB+4ecI0uA 14n8MgYWl0wAh4empzFsiqnCTbWr26sbpyX916PBUXGbPhxlSqGhbu7JkYjp25lr7FZB 8Kxw== X-Gm-Message-State: AOAM532nzhul1XysTnvJfNUkibMNn7pTUoWrl+bYnk1SWPoyhMQPKMdO ALeHgS6aqaijXJJB6mPrhmmSGE60OHo= X-Received: by 2002:a37:274d:: with SMTP id n74mr1864780qkn.185.1642039141288; Wed, 12 Jan 2022 17:59:01 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u19sm893081qke.1.2022.01.12.17.59.00 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:59:00 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:58:05 -0300 Message-Id: <20220113015806.519-30-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 148/281] smoothstreaming: 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: PIG54IW8tshJ From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/smoothstreamingenc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libavformat/smoothstreamingenc.c b/libavformat/smoothstreamingenc.c index a0ea5b8fa8..c67f0cba43 100644 --- a/libavformat/smoothstreamingenc.c +++ b/libavformat/smoothstreamingenc.c @@ -267,7 +267,9 @@ static int write_manifest(AVFormatContext *s, int final) if (s->streams[i]->codecpar->codec_type != AVMEDIA_TYPE_AUDIO) continue; last = i; - avio_printf(out, "\n", index, s->streams[i]->codecpar->bit_rate, os->fourcc, s->streams[i]->codecpar->sample_rate, s->streams[i]->codecpar->channels, os->packet_size, os->audio_tag, os->private_str); + avio_printf(out, "\n", + index, s->streams[i]->codecpar->bit_rate, os->fourcc, s->streams[i]->codecpar->sample_rate, + s->streams[i]->codecpar->ch_layout.nb_channels, os->packet_size, os->audio_tag, os->private_str); index++; } output_chunk_list(&c->streams[last], out, final, c->lookahead_count, c->window_size); From patchwork Thu Jan 13 01:58: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: 33425 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp32737iog; Wed, 12 Jan 2022 18:24:45 -0800 (PST) X-Google-Smtp-Source: ABdhPJwnsDfAdm9qiBo2t/4778zuqrhSr3ogh2JYlsPJJ13U0ZY3LwBm8NOSOBkUhkPBOKds/xts X-Received: by 2002:a17:907:72d2:: with SMTP id du18mr1934976ejc.208.1642040685785; Wed, 12 Jan 2022 18:24:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040685; cv=none; d=google.com; s=arc-20160816; b=kHFnKg+3IhqSOPGt43NHXbQTpewaQ/gVp5zw4yBWKaSs+TPJPXZwgnwAgxhiZ1OyEr XvKcak7myG+zOMYv1eG3puYPDBUK0jDxH5/hYmu28P2OLlRU+u7BlD6d2HLou1f5lfvN 7xCTG0vEqfKNBL0K9NAvBYYK58OOO41ieSRoVWCf0yXtPtKXl9N45C7swvrHSBln0rUU 1t4/P3NrLDK1jCLeNySWrNlswbEkJN6h0G5zPIe8cwxjc6Q20cBKmFBS2gBHQBkg5cAM 9nNVDIzb0O1yMAe63/m2esIFbHwmOl89sVeXs0XuyKU9RS7TTcRaZStpvykxv4/18CKA E02g== 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=BxAtU090ydojw7X9ncJTraVP0ZxTwsLLQVEKRV9xVCg=; b=VAWIQKVHQG9cbbPfVjbW9/qI4D19E7In3whvw9UZGowZrvCcyb3yzmqyOG3J42Jnin Sd27XDkrRpy03Tl45kohNVVtD9LeEXhktkt2i3Df3TvHl06pNQYQ5CoiSwJ/e/xUABB4 pS/oFjt6Qp9aie8t5E0c+prZG50c8EJe8JB5U9XtFv/drGYqVCiKjD4yvi/iZSOCoZMX vTpEEshQVfskYJnjdB+Falt5jcx4lXzH5R0Dng+/BPyRmSuz+V83EZvV+XpCKzZOMQEK SR+lugQxjPLfs+Nvw5FmSIiLE0NeLag3+1fuCRCPCwcI3jcS4hJMp/W13AD5aXx9ejSl Gccg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=W+40P8Pm; 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 t22si443557ejf.206.2022.01.12.18.24.45; Wed, 12 Jan 2022 18:24:45 -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=W+40P8Pm; 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 2199868B411; Thu, 13 Jan 2022 03:59:07 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f179.google.com (mail-qt1-f179.google.com [209.85.160.179]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DCB9A68B3F9 for ; Thu, 13 Jan 2022 03:59:03 +0200 (EET) Received: by mail-qt1-f179.google.com with SMTP id q24so1551714qtp.5 for ; Wed, 12 Jan 2022 17:59:03 -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=V/dJAiRsz4PKxWSrNMRdr9moQRbT/CpAjni6luYvigU=; b=W+40P8PmLGBKg1LvuZX46tT/1j/5hxdCcuuFCdib6tZb9QKy04i7rUEK0xzddnhegT 9sBj7W+iuqHnOaO+E+rVDyuy4w54urU4xBgjUm43/k3ti0rknuk9lmsVCfVtAqc89XZb O5Og/TQUT1yO8TUvZHoa4vXMrW5Kqg9RuDx8fLsqMKdPjVFAxoldY577wnerliRi/W15 tOOMCOyLhHETIPvDV60//6pklhtiFkEyUcZOj1uIPBGjM001vSqyo/zkKYTuEd8ba2+t 2spRshWL0v/oXgJWvQkbjJ8E5fdcr06f+faBV+6h98P7o2/fIGs8mkcHsRcpKru3WPaf E39g== 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=V/dJAiRsz4PKxWSrNMRdr9moQRbT/CpAjni6luYvigU=; b=yxLK0/6gIiTGS/LsnIeH5wqgsgMOwyS3ocwLX2z1NMLTsjgpGQVcV6f7SpuXa8JbZV cWJWY9WUK30a1G7iO/fh1BVOw38fW+7Zaw1kZU3N96u7jwP4H8P/9ewuqNaLR+WBA0Wh NK1wNvh0v/H9QlaJKOA1tV6f5X4JH2fPPEUudJWLV/Iua9/zGABq1wCjZAJe9EL2T6sY qcoP8aajh/SVkZStd/ly9CSs4uRYHSkbM4DeNinxPPWB278IVFwmtkf1RCyS+PojjSir Y29YHYwd7pjGNkygPNHqNek50WqhQ2p/vV+uhPLeZEBwr4oheq8+L/Q5qSZYyoNEKCeE Jj8A== X-Gm-Message-State: AOAM531EOazpoB3p3wgdDwZHSnGhK71HPLEL7/6LAK/xYrDb83kbC/tB R0nlwx1nTzwAoNQGMlkzg9PLMVch7I8= X-Received: by 2002:a05:622a:292:: with SMTP id z18mr1989492qtw.205.1642039142498; Wed, 12 Jan 2022 17:59:02 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u19sm893081qke.1.2022.01.12.17.59.01 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:59:02 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:58:06 -0300 Message-Id: <20220113015806.519-31-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 149/281] smush: 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: JWE4C+WsWHu4 From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/smush.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavformat/smush.c b/libavformat/smush.c index 59807ab963..a0a6971e30 100644 --- a/libavformat/smush.c +++ b/libavformat/smush.c @@ -178,8 +178,8 @@ static int smush_read_header(AVFormatContext *ctx) ast->codecpar->codec_id = AV_CODEC_ID_ADPCM_VIMA; ast->codecpar->codec_tag = 0; ast->codecpar->sample_rate = sample_rate; - ast->codecpar->channels = channels; - + ast->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + ast->codecpar->ch_layout.nb_channels = channels; avpriv_set_pts_info(ast, 64, 1, ast->codecpar->sample_rate); } From patchwork Thu Jan 13 01:59:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33427 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp32965iog; Wed, 12 Jan 2022 18:25:12 -0800 (PST) X-Google-Smtp-Source: ABdhPJw/bVSXdzdCSbdukFvq5fAJqI6pWjTrMEJxbzDDbF8DjeXU1/owjvDtp0vClb6UvrQKCYeE X-Received: by 2002:a17:907:1c84:: with SMTP id nb4mr1908412ejc.564.1642040711947; Wed, 12 Jan 2022 18:25:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040711; cv=none; d=google.com; s=arc-20160816; b=ZVBp6p77vCCk/yZJi4ssE+0ZpXYufDZxac+URmy/EWGxWv4sgQ9ctcNKjjjSQA3b43 +bbIEhLoj1P3Kd7Z2yJU9Iq1bJF2u1pc1OBIEAdyXhS9ueiV118U1lb/TF1p74d9bY++ KL2akYKnNXwzHfkN1FJn33XTiz1cGcnbrgj7aatz+RvUs6cfc0kIQkA2LrhiYR7cYJQU WjNuNdSBkagmlnHrCVzf6zlM3C7OeXct/TgsmNEF+dhR3AtixXctPQo87XZUD5vGmjN4 icfY9ZroFBt+6hbxz3mnhPhpg3lSkDt4Plt0smtSZyhErqf1jXWonfXyyI9X5at3ioPx l0xw== 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=Y/W8zrqeDTw9VRxOUA3G8qlRhSYyfG7r2ivlEIoYKck=; b=GsVvvwUV2UXMrdjcmYcFvme1qWhumykEDrGBtYxUj4g7AZX5plRBlL+9FTyKU8y8OF dYmWFR73RPSxFIMWkTa2hpoJnZTXeZozEW2XiiO9g9VKE+4oc6lNTDh2SsYAZGzCGtU9 IrCIfSCFnHcmHMBYOLfe7uJcASaS/zQ7SQLqptPKXb4UACE4KeevWQHfVCdDw4dx5OF6 gXKFeJlo7lqTBRk3yH4C931q6QdRXjeVGMiz9zaG6itlgPVqLYBTxpZfdnLWJaORc13f DIQvyZtXDxPG3zp+ND3WgFKLxyEm9BzOrphj7I2Ggio/+aWEfaa4NiNXIsCSddokWsOa t/aQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=gkcsE1Mm; 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 hy13si692157ejc.297.2022.01.12.18.25.11; Wed, 12 Jan 2022 18:25:11 -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=gkcsE1Mm; 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 647BD68B07B; Thu, 13 Jan 2022 04:01:07 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f177.google.com (mail-qk1-f177.google.com [209.85.222.177]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 55B5B68B43B for ; Thu, 13 Jan 2022 04:01:06 +0200 (EET) Received: by mail-qk1-f177.google.com with SMTP id bl18so5579571qkb.5 for ; Wed, 12 Jan 2022 18:01:06 -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=/Qx0X7lO5Up6Iq7OpSOHI80C2zfAY605LLV7/nL2Xpg=; b=gkcsE1MmLLY6hiSHAbCTah5bfyCtSCb4opydeHB5pn+oRP5+A9WqvwdmiUO3KbAdPV JizJ1/HYuFFIuH8TiYOFF7uNLYiWeDGIZfSUTeig3UOZvFOjmCaSQgf5vWU8ruC3eH4o QBsE7L5pBbEdAM7yio7frqMpj2PZlneRowcrkNBDvsfP7C313uhllzuTYSpOtffAg786 PZwYo2cr+87CX5RpAuMo/2IREZcw7sxqPJBk0rrzL6FJ3gTHAOTh2v/u5kb5EirrWiyo B8pRY35Usc/l8hjQ76kjrsp+ImlLsrHOP8xJpUnSj0nfCWXuqaMjWhakL+T9zWx9T4n6 XiNQ== 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=/Qx0X7lO5Up6Iq7OpSOHI80C2zfAY605LLV7/nL2Xpg=; b=mVwGXuvR/L1i14kqRmIa1DdTeCOJdPgy362AI2wVzr2AhqjiyHUulN5XfJMqlHc0Ag dCNVYhrkIcqiSlT9zlYDCsHidUtNzKyiHnCrWOJ0zqSd+1JSh7/Q/nJ7BZqD36Q1pUKE pBjgSp/ANVWkT7rTM8UtwP7tpoJ8MyjUlpE1BEuaDBE+1ewmyJge8zq7fBHmuZJzVEvo AUpcdr1V8s+QVOVx5sCuhw7m6oh8VNRSqdWd5qYUM0Yk1ZVNaCKfUDFMxDLxbB11JBFN 8rSVNGtoWpVmI7oYnejzhhffZwzhGQElHNafx4YCNHCHRA841m4m7Jn/2NYmv40B7F8/ 09Yg== X-Gm-Message-State: AOAM531t0ooZwzGALdbI2wGj6RfLt1XD3nEMK/1glRZ56sWpa2c6ffjN v9l9sGFNLS39tCLpqHEaJxY/YSG+QgQ= X-Received: by 2002:a05:620a:bd6:: with SMTP id s22mr1811765qki.348.1642039264896; Wed, 12 Jan 2022 18:01:04 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id y17sm1182232qtj.75.2022.01.12.18.01.03 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:01:04 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:59:57 -0300 Message-Id: <20220113020026.590-2-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 150/281] sol: 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: mpxlQBsl9FLW From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/sol.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/libavformat/sol.c b/libavformat/sol.c index 42498492b6..b92cfb36fe 100644 --- a/libavformat/sol.c +++ b/libavformat/sol.c @@ -113,9 +113,7 @@ static int sol_read_header(AVFormatContext *s) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_tag = id; st->codecpar->codec_id = codec; - st->codecpar->channels = channels; - st->codecpar->channel_layout = channels == 1 ? AV_CH_LAYOUT_MONO : - AV_CH_LAYOUT_STEREO; + av_channel_layout_default(&st->codecpar->ch_layout,channels); st->codecpar->sample_rate = rate; avpriv_set_pts_info(st, 64, 1, rate); return 0; 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"); From patchwork Thu Jan 13 01:59:59 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33429 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp33217iog; Wed, 12 Jan 2022 18:25:41 -0800 (PST) X-Google-Smtp-Source: ABdhPJyzmChsG7FOcKvnNL+kaLDhw7eY7z79EhgsgGFmU72XcwnCp+QYP+p97tAPMe9b2+ElAMUY X-Received: by 2002:aa7:de97:: with SMTP id j23mr2279543edv.91.1642040741737; Wed, 12 Jan 2022 18:25:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040741; cv=none; d=google.com; s=arc-20160816; b=hUN3F8KSNzOyNIypIJNFeujGtRJNQCNLCgDYDU+9M2swof15rN1D3pWiG6u++jboez cf/U66JyCVVR11kaab6vBjw5v5aH/gOBMOkclANPh0gk6cKDehp/hf9GMM5j5ChNz2QW FUl9EdeftUpWIr50QRXUNh3IC9PR/UgUxkvDeTDJzehvwFuSMm+K0EgMR46HesvLeXTS odyPcy6NJ1bk53krEZysi8l/YPjPSEbSkbxAd08/PzpgIvwd9/poRSRYnG0JmMaBqUfz UhUL4Wxq1JDxwM84x5mt8VV8WgHbn4ZFc3GIS+FO4+Da0xi+Pf+GaY1j/tMWPigcG1Py BT7g== 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=IXbpX7elecfGf8fvR3S+/jsIzYRJ4uv1PBIb0iO2FTI=; b=ZbC/KGlB/IAY0wHmWR7E0+4V24j+RYw3GsImJ4fNIux1ow2mwq2kbKLgvIw06lU700 rTQ/JlsjBdLVge+4mFgIpSpuB16sWcDJDR3Vdxh9fA5zskUG28ZY1Q2LpEODHJVlPz+O /E5A3uSCh1L73XyWF6j833Dk+5Yu9YMLLdS8tIIPT6BpRyXvdsKlcFwgV5AAIDJ79Hlm oveCuf6aH4IaqEACnYFO2yldmsg5+jAkhJ0jD705eN1x6CO1kwdrZ5eLo/niKGHtvoUs Iccp3BB+J7pKS1rH3Awwip6wCssXWgyWpMQkCMut3TawAHsFUD9jo9kUWmoZ+J7yHD5U GUWQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b="Fq/cbBBr"; 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 z11si837733edp.459.2022.01.12.18.25.41; Wed, 12 Jan 2022 18:25:41 -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="Fq/cbBBr"; 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 6D52568B45D; Thu, 13 Jan 2022 04:01:11 +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 2637468B44E for ; Thu, 13 Jan 2022 04:01:08 +0200 (EET) Received: by mail-qk1-f172.google.com with SMTP id t66so5578557qkb.4 for ; Wed, 12 Jan 2022 18:01:08 -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=hkAjN9UjdiYoCqagTfS73fddnMBk35u0ko9RXYuNGxI=; b=Fq/cbBBrnJsL5EXdA3qFkHtTlZ7jrshT2xvKtcGCoUCsEcgDozzQF8+DJcyNcFsq67 v4Lg6sodq1YtRD4cCwpXKcW4xBAjs2C/WoFT4cqPXD7K9CbgE86PgxjPTvDyhd1Y7878 TawUkF/0qQ3t9BO2jwrCGpKMMpc7LNfsHKqCT3xMCGZE1Oavx6hL2BpDVRA2BO5EFQGJ oNOn1lrPGlrUj9OiCjNFylmTywaVT7kxRsmvn27bWlFqRt/oOysA68pwAMzuAU25GvWB JZpT6YNPzD/7/0/FSb93D2nY3kyK3WrA+l33uZEK8ROEXJ7yeGqjU2/jdGVx+rp1HehF ZTpA== 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=hkAjN9UjdiYoCqagTfS73fddnMBk35u0ko9RXYuNGxI=; b=o5oaXrdcDQRdoiSEGedQKh7XSizEEpg1kn41pXOjCoxEgPdCng2wsO43/bq1IwjyMw q00TKudLeIbGGdiKIHO4LVfRfK8kXRcerxLwEnyiNFiuti9dNaMI3D3t6vWgqIZwQqW8 ak78DkRCS6o3JQWGe6BDN4s7kGPjNgLWBkPGtjVghXgvbb73kbXwpyWILSvf2U7dr1bt 0GNIgjoqwWc7ebZkHtdDtKl6MiJcqYWew0eWzCjH6shpCmutaIJSl748AfydfOXSu5cy WjYOhBj+Eh8UaIaozNaq75uJap3ZRrlBCH/Eq+fl9a2o75vYCjpvTpxnYsClWSmxVgJ6 XfCw== X-Gm-Message-State: AOAM530zE6aIpJbzW41Ts4locuKGfZ/UlDXJc4Se0KAqxahxcZG/8a/B lGAeBwUNw0gwFefYeV+6j7zxHWetPKg= X-Received: by 2002:a05:620a:d95:: with SMTP id q21mr1835422qkl.178.1642039267523; Wed, 12 Jan 2022 18:01:07 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id y17sm1182232qtj.75.2022.01.12.18.01.06 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:01:07 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:59:59 -0300 Message-Id: <20220113020026.590-4-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 152/281] svag: 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: PHE+RrVwssgQ From: Anton Khirnov Signed-off-by: James Almer --- libavformat/svag.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/libavformat/svag.c b/libavformat/svag.c index 0774eae112..e907dc6adc 100644 --- a/libavformat/svag.c +++ b/libavformat/svag.c @@ -47,14 +47,16 @@ static int svag_read_header(AVFormatContext *s) st->codecpar->sample_rate = avio_rl32(s->pb); if (st->codecpar->sample_rate <= 0) return AVERROR_INVALIDDATA; - st->codecpar->channels = avio_rl32(s->pb); - if (st->codecpar->channels <= 0 || st->codecpar->channels > 8) + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = avio_rl32(s->pb); + if (st->codecpar->ch_layout.nb_channels <= 0 || + st->codecpar->ch_layout.nb_channels > 8) return AVERROR_INVALIDDATA; - st->duration = size / (16 * st->codecpar->channels) * 28; + st->duration = size / (16 * st->codecpar->ch_layout.nb_channels) * 28; align = avio_rl32(s->pb); - if (align <= 0 || align > INT_MAX / st->codecpar->channels) + if (align <= 0 || align > INT_MAX / st->codecpar->ch_layout.nb_channels) return AVERROR_INVALIDDATA; - st->codecpar->block_align = align * st->codecpar->channels; + st->codecpar->block_align = align * st->codecpar->ch_layout.nb_channels; avio_skip(s->pb, 0x800 - avio_tell(s->pb)); avpriv_set_pts_info(st, 64, 1, st->codecpar->sample_rate); From patchwork Thu Jan 13 02:00:00 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33431 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp33432iog; Wed, 12 Jan 2022 18:26:11 -0800 (PST) X-Google-Smtp-Source: ABdhPJwyuybAF9TF6InGECpZy2EJk/q7bz537LeXWLIBpdLhu0sZMDXRmLwXS/FyXQYLRIGaQP59 X-Received: by 2002:a17:906:6691:: with SMTP id z17mr1876882ejo.763.1642040771036; Wed, 12 Jan 2022 18:26:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040771; cv=none; d=google.com; s=arc-20160816; b=ANS5hQRrGugphSXVW5cgNhaeTaXZvNgvbqWzYExFch/flueSXQhFKIiWnjChGpLPgc zcmeQ5rQqza2eFxPYDTsNzKcHepKrTUd09IuOLh/W0znG2fbR8bceGK2QUizi5tQB7AN YT6pH5RjkrpEo+9uPyyquy/wkrnGB0gyM0rotAqzalATNyBzL7XiLYDiIny1YXlropB4 oWgY7jWWv0U9h1sBNghWYOryV/4D5ZhhXyamlSdziEZNQ8RDfLEpd3AXToKXVgfI3Jlr u0tXVpNZKAGLph3CcGdu0tOAJrWmDszljfJQs2DGEoLZ3NBQjsCAMSa2wMZmtE0E3Wno EO3w== 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=C5svDWo2P0Unda9YZRxxrMFFhTwW7DxulugETeXsWsY=; b=fxEU6/OFCiiUSRAS6UvtA3KQMVoBAlBhxLITQX1gs5uAGQCnxh4wu590u4VXYqhGUa 3RFxfFeFm/7rLSpCD+hRygmaZgXTKaY9CD0UoZX0NZ489Nbn8/Z17N3CQ51czXfP/WtA gsfdraQCKQ/YgRtSm/TS2b69GCHBv1w+S1TYBabHJV+q8eJrtC92kjeOpGo0aQ4cWOt4 Y0NcDfb59MT5mEys7cWevcwviACSUFRrd13juE8L7pujGh1yjGqLVz20p2B84lCnpOes 2DB5rC5SSVttz8fP75kVrIk/kWqhbKCpcgTHNuay9oAZ1483OTwLv1hJxNBtpEUh26Te T9lg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=N0YnEjuH; 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 js13si880222ejc.770.2022.01.12.18.26.10; Wed, 12 Jan 2022 18:26:11 -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=N0YnEjuH; 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 3A7E168B45C; Thu, 13 Jan 2022 04:01:14 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f51.google.com (mail-qv1-f51.google.com [209.85.219.51]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 68A6968B452 for ; Thu, 13 Jan 2022 04:01:10 +0200 (EET) Received: by mail-qv1-f51.google.com with SMTP id t7so5165128qvj.0 for ; Wed, 12 Jan 2022 18:01:10 -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=6YtssPn+FUHJDCeDOnNUBWcD1v2qHA5AC5w2jl/43YE=; b=N0YnEjuHmfPzGvSbiDwA5220kdYv7v+in33+wKW8m4rN3HAUCBUeuRMyQy1bCHfodb kC0Eip5JAkxd2pGjrS0UIA7VxERxpPsUvv4+9jFL8f5/pG0xASI0RD63wsy/W8lim/ga t+BOCDDt0paMaRoXLPYc2ApicWKUGFWgVo3T8p8aTyjrpUBkftflk9qgAJrhLr2uQloX JobjtaXEhFKxt9Ap1herIn8kJ6UimEvSNYZgiNTu2n0driVPTJfo0mEajuWSFL5DKtZ5 oCZ/vFLfTzobCiRPnZVnwSp2pHBD0gYnwscRc/FEj5Wyy1d1JB18qX87463lrpi+4HXT SKxA== 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=6YtssPn+FUHJDCeDOnNUBWcD1v2qHA5AC5w2jl/43YE=; b=RZxsEALc/zyDo1a9ziivdqmJ676Lsf6kIT/uhhbn5bBGaoTNp9QWEp4fphufiH/Slb PzfPD5y2glwFkWcCCk67G4itxiO4GmbJWSH+wsHW9bnpS06OAN3ZEidPdQ2l/H4BYLhR HBMswU64IFkiDhNzTgOXLfVPZJMpYjUNwPIAFrLXFUIoOs7Cc9bagmdVL5EFeQpkQ8Zr xoJ6PFNLhPPYP6U86ehhk+qmXdbHyb/GdI9GHfzU7idWAeQMoU8aFR3Ncan/rCtj8Kki NGIgJ7MOaCok39bB53z9+ngnPDlUnZez51K2VvpHwXyv2rzRkgYIcPlxc0Kwy9U6Xx8b kheQ== X-Gm-Message-State: AOAM533/qzZvZ8KKq7Ev1Mmz/owP1wMlmIz6z4dlzjchlHR+4pxYh9yr DZT4JZ9ZHj1KdjJzQWJVPYf3oo5GfwY= X-Received: by 2002:a05:6214:4011:: with SMTP id kd17mr2220260qvb.111.1642039268739; Wed, 12 Jan 2022 18:01:08 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id y17sm1182232qtj.75.2022.01.12.18.01.07 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:01:08 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:00:00 -0300 Message-Id: <20220113020026.590-5-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 153/281] svs: 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: sLqPTOoyba0a Signed-off-by: James Almer --- libavformat/svs.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libavformat/svs.c b/libavformat/svs.c index e5300203f5..b91d29f5a6 100644 --- a/libavformat/svs.c +++ b/libavformat/svs.c @@ -53,8 +53,7 @@ static int svs_read_header(AVFormatContext *s) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_CODEC_ID_ADPCM_PSX; - st->codecpar->channel_layout = AV_CH_LAYOUT_STEREO; - st->codecpar->channels = 2; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO; st->codecpar->sample_rate = av_rescale_rnd(pitch, 48000, 4096, AV_ROUND_INF); st->codecpar->block_align = 32; st->start_time = 0; From patchwork Thu Jan 13 02:00:01 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33432 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp33547iog; Wed, 12 Jan 2022 18:26:25 -0800 (PST) X-Google-Smtp-Source: ABdhPJyt4/EBCzPl7+R0tfDsSUaDaPmlgUEwp1Pgs8O5qaZ4jPSMjnJLTsr/TUMM3XbQFkmJxTxt X-Received: by 2002:a17:906:5042:: with SMTP id e2mr1999990ejk.647.1642040784875; Wed, 12 Jan 2022 18:26:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040784; cv=none; d=google.com; s=arc-20160816; b=cWmwTmowxEGZj5lqRvMi8BonO8h4sk825JeS80sd1f7sAm2VtrlRIBSR5VTiNppaQZ tYa4sNuGItjau/kLkuYQzlIqLj49Q77iaGf8u5qfeXmWeU/6lIADfLuG3H94trDvwuHz YImm250G34CMZOl/Mn8uVeoJhfnFirxz3NEVvHg0FZGtLyqgui5pdwJgID16YVzi1jTl nQ9TdYtVUj2Ars8wr3UpFPxSNyFvs0wS33M2+XADHW8RFmM3fufPFsAic9gRA5/ozomp bgyooFlIM591xtNXjHKCe7+dXY4tBTAVwhGhGy9bdYhpVDiy78hxam3rMgOY6LwLkeyY pZmA== 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=mj02Q0dROYcDBfRVA/nuVVJkY26j22yt91J7Uvp7woI=; b=ALvVjLOqMSkrYvMO00MlEpHwRhYBTTyJAqW5l4apYJ1+DLW5adY3LObCphI/2kTquR I/qHTpGMZHZwMw96ZkfsnOregx0OTokKbzZFnppWRmEa517KXboItBFTclPtsAN+kiwY SqUqtAkPnih5PnqGOpufTfwlJKlbdfB4lGGDUvRpui1ZkvPNlLgkhf22M2Ai4psNwutH MRF4nLcZeAIp9gZoBO4mi3Kt2wAeJ6rkWgBgycAqp4r667FDXbfOSWLN9ihh4eC+Reu1 DONjFymkoYrQ8HkioaYcJ3+AcPXabNOOGXumiU84+W7v8JJnq/l87Ixxl2O8gMg6OUP3 i3hA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=O7o3aQCV; 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 d24si880196edx.418.2022.01.12.18.26.24; Wed, 12 Jan 2022 18:26:24 -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=O7o3aQCV; 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 0297168B480; Thu, 13 Jan 2022 04:01:15 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f51.google.com (mail-qv1-f51.google.com [209.85.219.51]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5A44968B45C for ; Thu, 13 Jan 2022 04:01:11 +0200 (EET) Received: by mail-qv1-f51.google.com with SMTP id hu2so5095085qvb.8 for ; Wed, 12 Jan 2022 18:01:11 -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=OxBB94zUrGR4KD3J06IO29Vjh8SkXb6HRPdmx2SFVtY=; b=O7o3aQCV108nD9N2WEt510hJsQlnNWshXXztO7XKlxdzLvAcWn5HLYt/Urgp+ovW2O 3MBRa4bvf7jw3QjF0M8pKRH4545BVxYrPXOoEq0QD6YrN3oBRC3XNkPtWw1Y3cUxEH9r zWm1eoXtd+FC2X0umdF62tww7gR71SwvGd/u4M6OJP4EX6I3TcloRRT+t3QY71fIlAYM hTx5piLkIMDYsQBDGryE+hHwQIjGytxrCNTooHs5hL7gem0JcqmVc9mktB5V6zxJMid0 x+3IEVSX5nINhf8vby7gdGHancvczKHdKvA4yUSwsU9UPprOrzFB7+/FUFdlkI6f+vHJ ZOhw== 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=OxBB94zUrGR4KD3J06IO29Vjh8SkXb6HRPdmx2SFVtY=; b=1TRB6Cs7BPVDIktdCxvijg0Y6rKcftDdjQlLAB9reJ8d8XMBlKRr9GUTAhatRx4zj6 d8iG3iw+OfkCMc/RByCAQv5Qx2n+4hfEsDiZzTz3AtfOy/CjQxBm+MzJYb0Tdz3hFixm PeKHcuv16yaPKGleTG/O88qj3Mc9n38c+jlKGFvycyrH/PCot/GTEXRPrGuyoye3l3Vb 25sJdZfcX2fIm4F8RNLgHkyS3TyJTqnbySdF+W5f4KM3yqdrv9RjVK3EVBncFvNhGjdU wrAJLk7T+Phr1Gu683RHpi0c6TMUelwg75oB7SdspqHwf+iPPNhUNi4gzYvvFnDfvqiJ tNKA== X-Gm-Message-State: AOAM532zqElAgUAEeq4hosy4bN1JBzHUHfHeA06fLYTaO/G8hazYQUNC SsmRnmsV9tiUx+tp47kGZdbzIa2aHSs= X-Received: by 2002:a05:6214:238e:: with SMTP id fw14mr2291271qvb.86.1642039269977; Wed, 12 Jan 2022 18:01:09 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id y17sm1182232qtj.75.2022.01.12.18.01.09 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:01:09 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:00:01 -0300 Message-Id: <20220113020026.590-6-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 154/281] swf: 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: zBKNHaSoGVm4 From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/swfdec.c | 8 +------- libavformat/swfenc.c | 2 +- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/libavformat/swfdec.c b/libavformat/swfdec.c index e549e4f50b..52c5e5c480 100644 --- a/libavformat/swfdec.c +++ b/libavformat/swfdec.c @@ -195,13 +195,7 @@ static AVStream *create_new_audio_stream(AVFormatContext *s, int id, int info) if (!ast) return NULL; ast->id = id; - if (info & 1) { - ast->codecpar->channels = 2; - ast->codecpar->channel_layout = AV_CH_LAYOUT_STEREO; - } else { - ast->codecpar->channels = 1; - ast->codecpar->channel_layout = AV_CH_LAYOUT_MONO; - } + av_channel_layout_default(&ast->codecpar->ch_layout, 1 + (info & 1)); ast->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; ast->codecpar->codec_id = ff_codec_get_id(swf_audio_codec_tags, info>>4 & 15); ffstream(ast)->need_parsing = AVSTREAM_PARSE_FULL; diff --git a/libavformat/swfenc.c b/libavformat/swfenc.c index 1fd2ad81a3..d12fb59348 100644 --- a/libavformat/swfenc.c +++ b/libavformat/swfenc.c @@ -348,7 +348,7 @@ static int swf_write_header(AVFormatContext *s) return -1; } v |= 0x02; /* 16 bit playback */ - if (swf->audio_par->channels == 2) + if (swf->audio_par->ch_layout.nb_channels == 2) v |= 0x01; /* stereo playback */ avio_w8(s->pb, v); v |= 0x20; /* mp3 compressed */ From patchwork Thu Jan 13 02:00:02 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33433 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp33634iog; Wed, 12 Jan 2022 18:26:38 -0800 (PST) X-Google-Smtp-Source: ABdhPJwMUSYB9hRTVtt8xHh4sdyz6IL4MxuFuNG/7g6A6gD2Rt8YCAlpWodKvJwWxbjz+oPc9/wf X-Received: by 2002:a50:fe90:: with SMTP id d16mr2277589edt.361.1642040798819; Wed, 12 Jan 2022 18:26:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040798; cv=none; d=google.com; s=arc-20160816; b=OiPwHZmgL96ut678NABBfLOyLMvqDm/zKodVCFY3j5+AvFWLul7jOF7CsVipEnxhee vziFkap4J+o6DiT8ClxYoGT658sHy0jF5GnkBG+IgYoO7cL8AqhOwET3f+lP/MM+lJi+ sdwWjPPjYsaNPRYO9g5e6imR7LpR5mWGXz8GPd5FN21u0r7Y2bGE4juu8fcGFVDLwsI5 Mfr3pROw4RabHc1Y60GmkblG/Hkbj9COlcTaCfbTVkqrr7STPBKSjwG/v2jJMXtI1S1O DLLzNkYWY5EzkO+5p5fNOPXqnVtGeUAVsqhM/EZmltxh7DfUPyn3teK4yRF7TfJzRxbR puKw== 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=a2GnDfivrGZHf2bzpRtH0qbfniHtK01uvi6vDYqNvek=; b=P+Fh0/EXsUYreGjtf+7hdK2nA8Cq+vSqVCz8bN5dAAkhGgKaLF7XiwxaSXwsxdLczi 6nns8P3OQIEnTOGNjdJ3IXI4pOJ5Bz8Z9T0ciAJR8xeBE3pW+NNXU2A4hh3fgCkdwyt9 h8XzVFTIuYRArvQBH5mPIafPav715+p7a5wN3iYJ0WOdr1Jh7Bj/k0pKZToSRDGrzc2+ cyDx0Ed5d/aghyDeB09stUq7LnxN3+XL0y/kv/SVBcYBmffnS70ehNlAv9LL6429aGum hm+NvO3domHV+8k1MqKoqqvJX3FoRXCaMCsb3DiGS6UeA4GYmgAYEg5InpAXfrqRiJKQ FRjw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b="Yx+jM2D/"; 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 sa19si796093ejc.691.2022.01.12.18.26.38; Wed, 12 Jan 2022 18:26:38 -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="Yx+jM2D/"; 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 D194568B487; Thu, 13 Jan 2022 04:01:15 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f178.google.com (mail-qk1-f178.google.com [209.85.222.178]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B41E868B449 for ; Thu, 13 Jan 2022 04:01:12 +0200 (EET) Received: by mail-qk1-f178.google.com with SMTP id t66so5578718qkb.4 for ; Wed, 12 Jan 2022 18:01:12 -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=to1Iur60gszvzIr2+X6k03rxHNtQ3I3Fbb8xPmKgF+o=; b=Yx+jM2D/SwHVAFPiIDqouraEaP3NCI8soEWNlLY6eBNm775+5iKH9Tw186Y12iBt/u imUsVhDlQuVEPDr8SfsMZIpbXj7bicWV8l7teNntiHtcmtD+7bM0W8iKbJq1yov1DVbT c9Zjya87/knoH016H0J5jyJ6qkEqaRquc61gj3ZgjN/JDqEuCwp0Ck3MxxYl1/CsFq5Z 3llOfXFQiXeRiDOzAsCwdkZKKt+8uBTsqK/m0bFSJDG+oUq+zMEahX+R3aMMbcUWaI12 YmtF4ShfbTonosRRCK0dBoNtilPTrbcG7rVWJjJXPoXjbUpOcYeUWTjLvg+0hMWImNYe l2RA== 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=to1Iur60gszvzIr2+X6k03rxHNtQ3I3Fbb8xPmKgF+o=; b=3dOdKjVa8ArW5Gv5WeFdDMyKIEl51sTRhRVfRBRWvGIEcMyGZ0XRl0XvvMHamglOgP NRGPNNplS+oOTGrDSaenhbdDthKgbbZs7IkGfxwIl+ZXlNidX0x6MNd+a8g7vX5lfWV3 LCKMs1jblI1eHkikIweNJCn7+rMuFrR2t3DuC3I0A391UWGxOVNkzr1adK/5UvPMyJUh K221Z1z+ZMg0xPh5ypiXVkeMJDzjeDxg/zRjFXtD54qUr3M8nTWtawtXOqwvvlx3ZHsZ XV/kCh0eZfYKaWhepy3stxpXtVNkg0mQ5msSpDvY7Ottck05RLyrGUKs3fH8e+wySM3d o4gQ== X-Gm-Message-State: AOAM532u6oXJAtAc+BEsDDKgGhPpd0jw7pH59m7Hd9dcQbuO25RA2UX3 mH5y6OkZVSedmYT7+80kG9ykMcx6uI8= X-Received: by 2002:a05:620a:2956:: with SMTP id n22mr1786944qkp.133.1642039271139; Wed, 12 Jan 2022 18:01:11 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id y17sm1182232qtj.75.2022.01.12.18.01.10 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:01:10 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:00:02 -0300 Message-Id: <20220113020026.590-7-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 155/281] tak: 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: kHWHwbKtAFxr From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/takdec.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libavformat/takdec.c b/libavformat/takdec.c index cc1f049512..51e4679fd1 100644 --- a/libavformat/takdec.c +++ b/libavformat/takdec.c @@ -152,9 +152,12 @@ static int tak_read_header(AVFormatContext *s) st->duration = ti.samples; st->codecpar->bits_per_coded_sample = ti.bps; if (ti.ch_layout) - st->codecpar->channel_layout = ti.ch_layout; + av_channel_layout_from_mask(&st->codecpar->ch_layout, ti.ch_layout); + else { + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = ti.channels; + } st->codecpar->sample_rate = ti.sample_rate; - st->codecpar->channels = ti.channels; st->start_time = 0; avpriv_set_pts_info(st, 64, 1, st->codecpar->sample_rate); st->codecpar->extradata = buffer; From patchwork Thu Jan 13 02:00:03 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33434 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp33754iog; Wed, 12 Jan 2022 18:26:51 -0800 (PST) X-Google-Smtp-Source: ABdhPJzcZYsDq9SoPnIiesl7h8bz6rIRUHiMk0zS8mzRwK4AP5rz4Jk66vjSxyuIUGauJK6Jq1Ha X-Received: by 2002:a17:907:9622:: with SMTP id gb34mr1875804ejc.355.1642040810904; Wed, 12 Jan 2022 18:26:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040810; cv=none; d=google.com; s=arc-20160816; b=yYwbF84GAKSRQ3O9McQ17vkWbkTNR4Bh+GNoiJvPEGhCDRF42vy+PfYrVnchlHsNNI y8MHzgptNjK/nelC9Qerowmm6zZqnkrmm3KMjjRpLr8XHE4YBWzgJJtYpz/ZUmTEEvb7 ArM+f1VHlbNkaq6Q0L/QgujrxGXBDL1issoN7O3OB5JnnfYGxbweS6/sKdxIfX0JdBwz Mv6h/NNjKeZoY403eAUI9tfnYhi9clmVK7tAW5CCzN0qV8BTFLGRRtl+0d/J/nbmZIcP fqRul2UsAgjHQ1uIkSkVuRfjS+HLmzE14pYk+57n9q5cBa1fILNE2srPz4b7tMv7nEo1 K5/g== 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=oQa5+sh+Tm0IY0o9ppAmfPWuJ8lWH7EZa1TRAjDGhdo=; b=EXYE6qS/TliTWGh6Mp8U73zG8a3fsvzBKecns/tgytZZdyLMpnUp9w1w6yQJZUSax2 ROq3pIYNJKz2RK43lYz/QpgPBJJknasoN/5YWTaST8a0w9TDZ/lFi2r1QVqpbPIEfmbA 21Ti0fTUQ/bmPMtDR4akhXB2dJNXaP8AwGtrnuhCMtQLO2Avxyi/D3QT9i7ibJWvXpeh yS/zHZUfSsebguXIZSq90ZOww8kNTJlETwxzEBeyuGkag0ZylPA2YDXLitPhdU1FJdfk DSesjJEAnKaalYGCbe12x5PAtcD8PJw3Gbk6Zhh0XhbapnvJwkjPaZ3+qF0BXaaPzVGX olzw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=KDhy3ZH+; 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 m21si834649edv.367.2022.01.12.18.26.50; Wed, 12 Jan 2022 18:26:50 -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=KDhy3ZH+; 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 B1C0168B490; Thu, 13 Jan 2022 04:01:16 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f46.google.com (mail-qv1-f46.google.com [209.85.219.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AF70368B46E for ; Thu, 13 Jan 2022 04:01:13 +0200 (EET) Received: by mail-qv1-f46.google.com with SMTP id p12so5099551qvj.6 for ; Wed, 12 Jan 2022 18:01:13 -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=Cwnie8poJYu1j/9SvXeEzG+GG7LLK2gEB0ovCCXDsT8=; b=KDhy3ZH+/1m8Qzt6pkXo+DeRqVDhg53Fveo2O6tFtt+qKPzkbnMIs/swNZ2r6GlId+ u/fuG6foZxfpMsmfA946jMcSNZTCd1HJMK33Itz5U0cDLLjVLfsVksVsliUj4v2TKhVV ZWNME8FJRXU2ouEWS6sSSpBBjYnERo6fjvQ42ZGVg4M7h/rGybChaUSEnBIWFZ5CERWu SZpjZ1+iPdRbvHPE30NHKAZWitGOyvB9tHThDb+PJWDDTK2Ot9sNizcrMkm3Ij4ulBBy bRGDM6LwNR6IlfV4SOKyx+mF4958v8MajA/czw0XTkXWiU+GZlY6Odn0diN6vEDWkM9F dhEw== 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=Cwnie8poJYu1j/9SvXeEzG+GG7LLK2gEB0ovCCXDsT8=; b=4DV3oSKZvHaJNJ7hm8cyj+6hZaoCme+EodNN3nIk6b1PlJa3GRp+B12CABOrqHm0cB 9scivSmvvz9Gul54lGhzXu0qDL3B3FDGFvaV39ByWysPSRHSyodvakw9ADAzeXgG2LOP YUm6gV6dE9dLfO7rjSdGVHJOgyOq5gEFNxWaGQ+h5NTgBUSCUo5xsqhMq/Z/fJigPgy9 iDZF2wTLqcwhnT9P11RDpTQdpQFcBSYKkPGnKAH3UlmefyXBxyZjdGJwYRuvO6riI+VG ogpYWJpJ09IMEyUdXZqij3ZtV4YH0mNyB9tf74ytajGODyHltAswolJucmwGL00/RzeF fWVA== X-Gm-Message-State: AOAM532XJrdmRiL5y92F1BuUn7H+VOgooJ4rMjkSgHLOCDLQNV2zRiBg 8m6HvcD8o1ebw5xWrldrql8vAmJr5kU= X-Received: by 2002:ad4:574f:: with SMTP id q15mr2350141qvx.94.1642039272362; Wed, 12 Jan 2022 18:01:12 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id y17sm1182232qtj.75.2022.01.12.18.01.11 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:01:12 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:00:03 -0300 Message-Id: <20220113020026.590-8-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 156/281] thp: 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: YA9q36wjyy4V From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/thp.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavformat/thp.c b/libavformat/thp.c index 7103cf4f8a..2dd8b4d618 100644 --- a/libavformat/thp.c +++ b/libavformat/thp.c @@ -142,7 +142,8 @@ static int thp_read_header(AVFormatContext *s) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_CODEC_ID_ADPCM_THP; st->codecpar->codec_tag = 0; /* no fourcc */ - st->codecpar->channels = avio_rb32(pb); /* numChannels. */ + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = avio_rb32(pb); st->codecpar->sample_rate = avio_rb32(pb); /* Frequency. */ st->duration = avio_rb32(pb); From patchwork Thu Jan 13 02:00:04 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33435 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp33862iog; Wed, 12 Jan 2022 18:27:04 -0800 (PST) X-Google-Smtp-Source: ABdhPJwSebE3i1Ul7Eymnn3RUAszMzkYHpwArLI6lFWRWPmZTMYNlFBR1LgfcSt6jgYZfX6t8X7t X-Received: by 2002:a17:906:7c07:: with SMTP id t7mr2017365ejo.395.1642040824138; Wed, 12 Jan 2022 18:27:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040824; cv=none; d=google.com; s=arc-20160816; b=fr8OH3CyEouEhTDqdX1KDDpOdaaFbmo9KoB4blm7aQAdjOW7CF35+3lfDLBlp2TxZP Pu8xITA2Soaqzmj7EVjKmy3Nar0Avxm2FLcZv9Moc1VjKzwh4GBzBaNCU2Yt+XcFRxzf K5/b4kmLUNLhMebr4b03PTGl3zo/MSYOcnrW5afoAjkQ3PwPUoh4KrAXejyH+S1Ts31E zj21WKOMue+G0ULH5wH1Z6HB995Avi49c9Tp0THDI9EGutexYKBLTO2S+3HoHx7gTEoc BrQS7bawPv9NRI3HO+jlML7OR1QVSt6r3DKhJ3YAtXvfgFCAJvnzSndwUrE+s1CL4rw5 5Sxg== 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=09SV5qaLgDLmYT+g8cQJ8LbLD+Xj2eoVYFUvB57agI4=; b=rS2wgWrdMSKIxOLMJiBXSsBM/shpSg6AgMqZ2mI7NeOdRBYyke34QtAIcWRCMRl7X/ 4SP2KrsTGq7ZKgJA/Fy6DcVHpU+bXJHbgCgCUOulLx4g5t3DYRpSyTM1WdpJz8VggKLd ML2SU2S5gnVXxHJ9HFSmn+p79eMrWvO2SBu7+EeJVJB1w3XIrDNxhb7Qp0w3DdbhpCVe ErGD3fZChOdyDT1WQUFtVMwf5cHHBlOwRYfEmlGzolYIr0txTAcaIwXqwsW2B1odK0/g kDjyhEViNp56ThJsHS5+ndjooU9ndW65Y6W/lVmK7sonSmrEI28hzEvVFNFoAu1YCvtX b6XA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=npXVjq2t; 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 o10si801935edw.363.2022.01.12.18.27.03; Wed, 12 Jan 2022 18:27:04 -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=npXVjq2t; 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 98A4968B49E; Thu, 13 Jan 2022 04:01:17 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f171.google.com (mail-qk1-f171.google.com [209.85.222.171]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DA0CE68B480 for ; Thu, 13 Jan 2022 04:01:14 +0200 (EET) Received: by mail-qk1-f171.google.com with SMTP id z10so1221097qkf.7 for ; Wed, 12 Jan 2022 18:01:14 -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=e3UCIFjgrC0vV75ZedqxBdGvVLrGl999joSmg8WZHVw=; b=npXVjq2txK9KWOor2o3rDKRdzWrZzlpOyVMqLEZk15c+LS1aaaVTF4PkYKELJNABzY NcA22Ny9IpLJXSYuBO/RWL+tEa8OgqlJvCABdSQgoqV++lpuszPWowiTMu6tD3/VtXXK QBi7ZOEaqrcr0YHJu4IhhlOrVbb3ZBBgXzdNa1hKkgiYQzuRyPBxEr/7eUatQ6Bdpc/t xO3NgFQSNUi1cgxeftpNK/iqn4Y6Ma3xq2m9h9lQ8zs7A1XabvSUqESW+J68oxF0uSg2 Nuh+XIJM42jpVA2PCbD3eZKiRppQ0e9uFMzZnttZ5iqJspH0tMfK65laCo6+xt+lFtG2 kDSg== 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=e3UCIFjgrC0vV75ZedqxBdGvVLrGl999joSmg8WZHVw=; b=dtiSG5ti8Y2u6e1IJqQM9Z1nhWJgJAkliAAQpnp1OILFkMqJjFGN3YpuMSs654D4l8 kc7tgM3wC7Z4Zdq/LZnZbIPT5MH3LMUcLvKuRzr7L0jqmL43wkUT2Z7+Vv8PWSsGUtGC Pevu8eZfQ9ekf2VAfCoW6Adw2s945dc95ta3a2x07DS8mej+vLcWM5lLIhrGeZizIAgd oupG71/6QDE9ce/v3poRi/KJEQgS8HqP4o2isC8fG4tUupj7aAqWV5zM9AjTg5TqmuDU 7SlTuzynKNNws+854ikPjuE0p6L8yE64IchTdQAj1wv55vHwfpgCBglmLpJWbA24QygB ysQQ== X-Gm-Message-State: AOAM532XxhidmRaAyvvzJdB2FYirvtPlYS2hgONSk0NoIFHn2Gp3LWJE K7GJ4BEz7myBh5NWL2gSnbhi1dpSWAE= X-Received: by 2002:a37:a302:: with SMTP id m2mr1673090qke.722.1642039273531; Wed, 12 Jan 2022 18:01:13 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id y17sm1182232qtj.75.2022.01.12.18.01.12 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:01:13 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:00:04 -0300 Message-Id: <20220113020026.590-9-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 157/281] tiertexseq: 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: 3lbKboJt7ssK From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/tiertexseq.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/libavformat/tiertexseq.c b/libavformat/tiertexseq.c index ecc15e4039..d06853d0d6 100644 --- a/libavformat/tiertexseq.c +++ b/libavformat/tiertexseq.c @@ -242,12 +242,11 @@ static int seq_read_header(AVFormatContext *s) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_CODEC_ID_PCM_S16BE; st->codecpar->codec_tag = 0; /* no tag */ - st->codecpar->channels = 1; - st->codecpar->channel_layout = AV_CH_LAYOUT_MONO; + st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; st->codecpar->sample_rate = SEQ_SAMPLE_RATE; st->codecpar->bits_per_coded_sample = 16; - st->codecpar->bit_rate = st->codecpar->sample_rate * st->codecpar->bits_per_coded_sample * st->codecpar->channels; - st->codecpar->block_align = st->codecpar->channels * st->codecpar->bits_per_coded_sample / 8; + st->codecpar->bit_rate = st->codecpar->sample_rate * st->codecpar->bits_per_coded_sample * st->codecpar->ch_layout.nb_channels; + st->codecpar->block_align = st->codecpar->ch_layout.nb_channels * st->codecpar->bits_per_coded_sample / 8; return 0; } From patchwork Thu Jan 13 02:00: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: 33436 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp33973iog; Wed, 12 Jan 2022 18:27:18 -0800 (PST) X-Google-Smtp-Source: ABdhPJzdrPgtWrB75xu1+Lla5GXCA0XWHsFRTJ3lZHQ4REXnFmHKMQQ3BeX1C66F6vbvVFGOAXWb X-Received: by 2002:a05:6402:1714:: with SMTP id y20mr1931064edu.204.1642040837489; Wed, 12 Jan 2022 18:27:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040837; cv=none; d=google.com; s=arc-20160816; b=QgLzn1L4WDf3r8hWnEmtRg3jAGjpFrT/kYQ/xhebyoXwL7is9Jv5KLuqTB9lz2w98W ale/L1yaYdaNFjPjJ0yinkr3yGS2NCgvBsQgXIsG4sBgzGeh2JxJ6gvqMEK2LPZlv7dY avk9aE6XdPGEjBCrJBiAubrQjJ/+EH6GQVUCluM6Ba1wvwCh2cI30waZIoTmhGb1zKQd 52Gjl66DKVwDfCzJikkwbSLkvdSzCCInHfMOWr6Zm2bJbGzHIOCls4uRr4GQWSvQriIN qOIwtpl40pYkEa6wdGKMECOsjEgkj3vaNoTc/yilGY+pZVwib5FUi+sfXxR+POxMlw1q G/tg== 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=tt84LSgF+ViTAryE5HdxnJ08yxktr4HvmBdSsHLy4IY=; b=nRW4lIy0xEvjkEVloj5qb5elGn0HmBIvknzsVV3ArKjAGye5th4bsdX2iOySAtEO68 DOArCngBPZpHx/cJzLD4hMnH78dUl4t74JkUy71PABTNi789AGUsBXyeSdS2SkwP2iWp Uz4sqpYXDDOW7PpEovuOP+56sCO7s9ri6fTopJGqvm3NmzHE4uNz63+S0Nz3H5EMJgaQ nK3eQBnL1brBMUXZvMuxW78hC8s58Qk0biPKONLypAvU9rL3Lb9TXJZDq2vNLy8crfms dhbCfWIGi92UgFwFFnPG40t5c0fO7PFbq52qOgD344jXIAf6QPXpCuTeFvzKdd96HiBH 3j8Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=lYE0Aatt; 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 bu22si757512ejb.663.2022.01.12.18.27.17; Wed, 12 Jan 2022 18:27:17 -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=lYE0Aatt; 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 8535768B4A2; Thu, 13 Jan 2022 04:01:19 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f173.google.com (mail-qt1-f173.google.com [209.85.160.173]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7FEA668B490 for ; Thu, 13 Jan 2022 04:01:16 +0200 (EET) Received: by mail-qt1-f173.google.com with SMTP id bp39so5318086qtb.6 for ; Wed, 12 Jan 2022 18:01: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=U+0QI74KRNNP3k8u4xl+nINCQt1DqQNcxTLrTQlnJDY=; b=lYE0Aatt0SgXBJUBTlf3UmPL710paAmSsWLkv2Ul7g/DnGm7bJ8sYKUxq8xilq4w5w sz/aMDAeZB/XEliVKK/XUsCF+xZoAdjF63CSSFfZhAlMfM8ix52rla2cjUpd3kTQWSWX U3ME48yEPYOTnQ15mISlIj1jm8BuyduxDdWP5cVDeMhozjxkfRAjR0mEk8l7wriQus17 Inh3LcrGjn16h3+T1Ek+q1kRPZa31sw1NwZseuzMQgW2x9TSwwyVlD0zLoq/i+pV23Y8 3Pdps3sxeo68sClB3Q6dCD9kIBC+LxhNNf28iei8TWY7UqzxuGzRkv+tn0TiMScJM/9E w8LA== 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=U+0QI74KRNNP3k8u4xl+nINCQt1DqQNcxTLrTQlnJDY=; b=cryRpatcHn5b6AED3kcUAV0rkF89OtSPyW//izfWsp2Kd3B/DpwuxEuZyx3VbB5FuQ kNlaTBqzQZAy4UNQnAue08Sgh9uTI6IOg944P6+R5RK1WMy9BBff7Tqcqk/y1d9M2RbA QKaz6M6u8iJFO53A2zj6HICwdmLeZUUsGMt5myon83teRWsL5AMZXbkDbM6IIYNfZ1tZ AeiA6TN6yEW7ymK/1Dx+khHnD+NuumHgkR8ANgp+OK1zS5KZajrng5BhsQgIOzAL0sRu ldhjLosZlcKMIOYslZoxeV2IA8sP9unpgdCB/OTroMoYuTyGr1sINI2GlA4R80uOIWYh C71Q== X-Gm-Message-State: AOAM531bKZNBOZnFwXAHkn+tLvz7hpbFeR/oXOeVIEOsBL9xQ1WqgQ+z JvbynmvIkEruTs6kcF8EQsUHcpjZgk4= X-Received: by 2002:a05:622a:18c:: with SMTP id s12mr2081646qtw.556.1642039274726; Wed, 12 Jan 2022 18:01:14 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id y17sm1182232qtj.75.2022.01.12.18.01.13 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:01:14 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:00:05 -0300 Message-Id: <20220113020026.590-10-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 158/281] tmv: 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: MgKo+OWpMHs1 From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/tmv.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/libavformat/tmv.c b/libavformat/tmv.c index 507f6cd032..ea39954190 100644 --- a/libavformat/tmv.c +++ b/libavformat/tmv.c @@ -113,19 +113,13 @@ static int tmv_read_header(AVFormatContext *s) ast->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; ast->codecpar->codec_id = AV_CODEC_ID_PCM_U8; - if (features & TMV_STEREO) { - ast->codecpar->channels = 2; - ast->codecpar->channel_layout = AV_CH_LAYOUT_STEREO; - } else { - ast->codecpar->channels = 1; - ast->codecpar->channel_layout = AV_CH_LAYOUT_MONO; - } + av_channel_layout_default(&ast->codecpar->ch_layout, !!(features & TMV_STEREO) + 1); ast->codecpar->bits_per_coded_sample = 8; ast->codecpar->bit_rate = ast->codecpar->sample_rate * ast->codecpar->bits_per_coded_sample; avpriv_set_pts_info(ast, 32, 1, ast->codecpar->sample_rate); - fps.num = ast->codecpar->sample_rate * ast->codecpar->channels; + fps.num = ast->codecpar->sample_rate * ast->codecpar->ch_layout.nb_channels; fps.den = tmv->audio_chunk_size; av_reduce(&fps.num, &fps.den, fps.num, fps.den, 0xFFFFFFFFLL); From patchwork Thu Jan 13 02:00: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: 33437 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp34078iog; Wed, 12 Jan 2022 18:27:30 -0800 (PST) X-Google-Smtp-Source: ABdhPJwU+ctuB4IMrC01FuAVS1WEh0zYJ3gv/KUJIgrT1XXPKjW6nBGSwt6bZCcqdRsX9ZqFCdfY X-Received: by 2002:a17:907:d29:: with SMTP id gn41mr1895791ejc.538.1642040850687; Wed, 12 Jan 2022 18:27:30 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040850; cv=none; d=google.com; s=arc-20160816; b=e3nuAfsmPiusWub7OS77AMj6/07igLZVZTXwRwONP8mrGY1obyCMsjdB2DFih5tqQn IAH3AVrhx74wjFt0rAimxkr73DvPZ6dk1L8Rs/PYm9kQze2d0WcRl30Ib/+p/jXX0joV ZawYC95z9HO5KqvILsn8wXIZISYfwqRMTGdVggOF03RKbV6O6jK4ipzZi5RqeuK5fV6H C4piNZCwzWZQIxRQDoVC/tIABPVdTVLP1v3krldd0GB4b0gwaOaH0hi1t9l3IySfTPxt pe8DLu/z1m/I3zZ/PPp0uniOUpiABDIu34U8+H+KvJJ3UG5VhjgZX+4jXJYlIQQsfXxr Hu/g== 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=Pl59xfQtvvivSOWVzg9x/EbzqcyX0CEPg5Es2cApg60=; b=g1Aq4jXKqUoCNe5+J/r3il/fDFKpEq+12Tcqba+onIRsrfU/REfXJLMZZR4pgh4YqA RhpFOiaSP97tN1dc2AzJzzWmi5JwYbAJ1sccbzsFUCDB1M2BrZ2cz4ueSeRCsApAUUiB xF9gLyyKiJq5eISX74ejIYjgZt7XHVNzC08LegJ9aINbP2u1MmV6dqWRSzdnYJqnMxhE DRqGTlkMG1payeH36/33z0xWwVd/SswEGz+Ny+m/LhrtLD0JU5CVlND6hLKhLZVv9RJH 9a0gWn26N7kqqKuh6GmDX33oo4Fz/gcnZ7IytAumQUUqrc1GAXlN+6jcPZF9xT3x/LIs btgA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=MqgfGPHR; 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 d10si839887ejm.131.2022.01.12.18.27.30; Wed, 12 Jan 2022 18:27:30 -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=MqgfGPHR; 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 6F99768B4B4; Thu, 13 Jan 2022 04:01:20 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f182.google.com (mail-qt1-f182.google.com [209.85.160.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4C8A068B470 for ; Thu, 13 Jan 2022 04:01:17 +0200 (EET) Received: by mail-qt1-f182.google.com with SMTP id bp39so5318114qtb.6 for ; Wed, 12 Jan 2022 18:01:17 -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=PmWVXOPL3bnyPuFH8fpu35r8fIxDv5TsAck/mjSqdxE=; b=MqgfGPHRkzHsuNTK2oucEKVcvwm+oia171FX6wKaPLU8KCZfbr99G3M6zNcu5ZUe1e 977f8GrUz96mbbaTOb15js0WNnTO18RhiEpOe7YJOAw7rEjhVm/sffDvACnpR23AND1A QbB2yXi2zPEmc4oqirNZZPiRoOGjMuOdhcKTDqsiUVtH6y7Qyp94ew/fZCY5ugDCVPvY IaKV3T8HwoDLRBc0NW8c4s280rCrHuQwZX8RiknuuUQR96hx3m0QLs9MRxWluSXyi3Nh M0462Tq/ptIa5q53L9gqEWJPdHxIDwy16dcAAy2geitqAoyl93OFah87X8u1vjc/0KZm 2d9w== 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=PmWVXOPL3bnyPuFH8fpu35r8fIxDv5TsAck/mjSqdxE=; b=Kllr9Dc8ufiBGxYRO9WSAU9Tlc5VtSQtXslu0Y0uTPmnvPPzc8tVp8PbFRLMZlh4PL wjvtUul+TsA6YPebadC4THJU/mntOXsIgpGmCrjhDox6EfNJT2Zz/U7WFO7nsVQNMsMx LUna8huFOa+EvCxtOx+S5cZnDw3MblQj5iXG67dmDY6umhHC9eYQfnApn+6JM2nQeJvJ 7HIrqw4mNPmuodL0y43TRlPW1q9s0SsZwwnEOFpQK1AmUD3xpF/uCKksmVoiRUni/iv3 UoT7doX/cxh1gcLoH3Ta0IefDRnpVpGKNdssk1AlnOk01TV5rciVuRNxLaIpyTMnDqfO UjnQ== X-Gm-Message-State: AOAM532T9GmM/m/NlE3a9owO+BA1P1ynkgm2o/ZLTwSagH+WzVuy9kTy QrVWnBOkTwPiPTkoQUpYAuqqfLz5FHs= X-Received: by 2002:a05:622a:1055:: with SMTP id f21mr1972241qte.421.1642039275918; Wed, 12 Jan 2022 18:01:15 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id y17sm1182232qtj.75.2022.01.12.18.01.14 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:01:15 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:00:06 -0300 Message-Id: <20220113020026.590-11-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 159/281] tta: 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: LWOq6L+nspUO From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavformat/tta.c | 3 ++- libavformat/ttaenc.c | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/libavformat/tta.c b/libavformat/tta.c index 6de8c620a6..d2be9548b8 100644 --- a/libavformat/tta.c +++ b/libavformat/tta.c @@ -134,7 +134,8 @@ static int tta_read_header(AVFormatContext *s) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_CODEC_ID_TTA; - st->codecpar->channels = channels; + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = channels; st->codecpar->sample_rate = samplerate; st->codecpar->bits_per_coded_sample = bps; diff --git a/libavformat/ttaenc.c b/libavformat/ttaenc.c index 486f8bdd10..1938582bb3 100644 --- a/libavformat/ttaenc.c +++ b/libavformat/ttaenc.c @@ -82,7 +82,7 @@ static int tta_write_header(AVFormatContext *s) ffio_init_checksum(tta->seek_table, ff_crcEDB88320_update, UINT32_MAX); avio_write(s->pb, "TTA1", 4); avio_wl16(s->pb, par->extradata ? AV_RL16(par->extradata + 4) : 1); - avio_wl16(s->pb, par->channels); + avio_wl16(s->pb, par->ch_layout.nb_channels); avio_wl16(s->pb, par->bits_per_raw_sample); avio_wl32(s->pb, par->sample_rate); From patchwork Thu Jan 13 02:00: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: 33438 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp34195iog; Wed, 12 Jan 2022 18:27:44 -0800 (PST) X-Google-Smtp-Source: ABdhPJyekUEhS0vno6mlji45Px9Uroy3uahNNDSvUiXOcourcRLBCjGUFlTNZWJ9frRfQkUcVQV0 X-Received: by 2002:a17:906:7cc9:: with SMTP id h9mr1940194ejp.111.1642040864693; Wed, 12 Jan 2022 18:27:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040864; cv=none; d=google.com; s=arc-20160816; b=HTMUUOv+wfnKNH1Ss9QFfGq9ur8R87yK4eKQi1AllIZd45rcKWfsX6V9T8U6naqZwC r6Scpj2JP4G2UC6B6RSiYs3hiIDabOh581to8f9bHJgC83/Qo1LY21Ap2XFju5mShVXw Qap5oq3PC/tXdjfLkRJUgjDYWSd5lo+04PDf2cSMQWhb3kSjbkZEGlFMsOr6E65j/bOl 5qhQDPf/vtSt00jR+liUnnNAKZxr2HyWgJYBlWTOtMCcoxUx9TmGvMxwdDRvubdu5e5O G5G3lZbaqDaNYRw21/MUYqVbRvIwfOWjOL/l6xz9EJZe8JIXBb4E9XTTLBnyVoFAUGYi EXxA== 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=bbZeJuDshjKWRmZhCIIkJfG7QkkoXoiXygqdupuFml4=; b=fROU/FKtnSELBau7eDo7TW7SuLkq+V2eX38Hf7OL9ss5v8N80DsAjbT/KWmFZA00ED YNdh23ARpLKtDetxsDL0CiWoqOdMyemTKvG5gtou2IMWiD9/qeMglbdUXpyruAa63eVv 3LppexSj22zxBc3vp+8AbHmvI2aFI7izssuxo/nTF7qIAYrkAD6mrX/X/LLcLfklSntV TNHA4MyMxr6F6xBibD2uVS0MOW8F5XDgDhkcJnFx5GKF+i9UFHyW7QTio0UIgva3VGxP DqFlCMUBC8In3rF1R91Eqviob5MYYrzUzSZShxk/2uvSTrIhsAasM3RHPx2+feC1w/vt kLwQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b="Uz/UL148"; 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 dr19si1000216ejc.496.2022.01.12.18.27.44; Wed, 12 Jan 2022 18:27:44 -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="Uz/UL148"; 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 3CA7668B4BA; Thu, 13 Jan 2022 04:01:21 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f177.google.com (mail-qk1-f177.google.com [209.85.222.177]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 85A8D68B4A1 for ; Thu, 13 Jan 2022 04:01:18 +0200 (EET) Received: by mail-qk1-f177.google.com with SMTP id m2so5563935qkd.8 for ; Wed, 12 Jan 2022 18:01:18 -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=5/bVQXr1tNIII1Y5404yKqsVIEqPiKoqsU2vcfEEt7g=; b=Uz/UL148QzoFz+WXrQO06Nhn7kDd3eQdQ12CZbK+jXKnXt8DuH9Nz9SzQwRg1143xM kkeW4CYKmosXleGF34S0iYXzmLrDMYI5KAC2RLhVLlfOhslV3vGm0/70quJhcS974gSO 7KQ4GUyeBGtGGMuywFNdDHtihV8lbLyn0ASyAnDfo36AumUE75rRRtdBAh98IhZPcrt+ 3qdbp7UjyIULNLHM8nFAEC0P8fL/Fl3nmFzZlHeGRAcI3xjx3G+M+p0aZh27m61XzHNF FoFKl+FutC0V0PRyR/SsbM6JEO5Nt8a4+x66Eu/j4nP3b4I0yxcl3vhcfr86cYruh2Rs FjVQ== 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=5/bVQXr1tNIII1Y5404yKqsVIEqPiKoqsU2vcfEEt7g=; b=gbfUfEkF0zdxeqTxKb75j4FavPcuaPvYmljqfSAjg5HyxZJHL1SU/GJtFGSa401mgn RjHoGFcIW05FeWhvLGhgX7/VTUiCnRub4XxHjUq8Cu6ApPV0mAcTqQR38olvBr5m3Ugp CnRmnPFpQS3z0uH/5rebgHTSNPgVLn824o/opXdgMzDSV1EOHewhj0IankUzLEwckuXZ IxlvvDQTSfchnF35UelILA6M+opwHBC5TMjNZoJmfwGIcUxU1jJv2sAjYilX4zTfm2Nv eAfLCl+hdnAyxYYoODAbGaAdMVryWcbfMS98jE2ohmvMCX2flAE8/Xub9OdilgtDudyT zvdA== X-Gm-Message-State: AOAM531bjLwJS4k05g7NUwbpyUABh1/5OXpFxHACfcE0K2lPYd+Bwr0i j22uP3J1+Ox8kRVlKR/idA24Ll03HSw= X-Received: by 2002:a05:620a:254a:: with SMTP id s10mr1814608qko.543.1642039277165; Wed, 12 Jan 2022 18:01:17 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id y17sm1182232qtj.75.2022.01.12.18.01.16 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:01:16 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:00:07 -0300 Message-Id: <20220113020026.590-12-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 160/281] uncodedframecrcenc: 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: JZRbqpTDkl0a Signed-off-by: James Almer --- libavformat/uncodedframecrcenc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/uncodedframecrcenc.c b/libavformat/uncodedframecrcenc.c index e30fe4ddb9..1ad37071a6 100644 --- a/libavformat/uncodedframecrcenc.c +++ b/libavformat/uncodedframecrcenc.c @@ -79,7 +79,7 @@ static void audio_frame_cksum(AVBPrint *bp, AVFrame *frame) int nb_planes, nb_samples, p; const char *name; - nb_planes = frame->channels; + nb_planes = frame->ch_layout.nb_channels; nb_samples = frame->nb_samples; if (!av_sample_fmt_is_planar(frame->format)) { nb_samples *= nb_planes; From patchwork Thu Jan 13 02:00:08 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33439 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp34287iog; Wed, 12 Jan 2022 18:27:58 -0800 (PST) X-Google-Smtp-Source: ABdhPJxPsnmJ+O41oK9qf8JbTKtmvu9PLS/2rihOfnZ3ysIGyemPGjdEHr4AzosdzY8HwG1aQtVd X-Received: by 2002:a50:9fe6:: with SMTP id c93mr2339269edf.170.1642040878183; Wed, 12 Jan 2022 18:27:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040878; cv=none; d=google.com; s=arc-20160816; b=BzeNSR+2ci7A8JKcAeogv2bL/Lf5X7lJFfVPSTQRrP9P8PIeWFC246uloclemSPQfS xVPuqAOhAMPsRrOA2SUWFTptLPC5uH9YE5o+/JG1drHEuFgJsrUCT+4lkzO9d/6psueW TYLzKzx1JoDA9j9E08sHWe9lGQbv+wWFtbKmfdCpymeA3n7EpkXcsYYdUO7FOyH6KxNy 1zWdwySrXl1mSXKb7AB7YN2lTasLGZJuId+4D6Bz0nutuSldc4j+gkrijYJ3GXQav2yK tzFfRMnrw588pTLA3hnMeGSiBS95HX9+rH0WN5BWFMJcjuoUQxooo5N26WaOSe09V8J3 jzrw== 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=g7Fsoll9iBZkxpuuzLUS+uyGziKembA73ev5lf5PPZw=; b=Rq8K9h5Lfr4BBv1wcBk6wE5YEqEyVJFAwsGqjHMWsaVPmHG4XmZDutnl+iSF6YDgKd Mx1wyVPxievcZZ57bi0f06ZWsxqLHT1z4IN5czxxNc51b7ORcKuko6tbvI8xM0sUFf1F DXswb8xD8uMdmK6BSDekGhYR1l9zLD+pQjiWPUUjLsMadbFzJg8U97onR94BsVy0zpjJ gqgDB53fLexKQHDQ761O/pupG2BcQUdz3MewpKfogJ+05Mug47+YkDZDL6dr90HtuFoC BlvMoBqVrsV1FS5aidfnikanupTBtvHmCDKxym/NSfSf+CZz6pLLT4OAW4VtVgcMZdJL YPTQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=KrkFUVBE; 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 sa37si932672ejc.554.2022.01.12.18.27.57; Wed, 12 Jan 2022 18:27: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=KrkFUVBE; 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 2872F68B4C7; Thu, 13 Jan 2022 04:01:23 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f175.google.com (mail-qk1-f175.google.com [209.85.222.175]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D053368B4A5 for ; Thu, 13 Jan 2022 04:01:19 +0200 (EET) Received: by mail-qk1-f175.google.com with SMTP id c190so3923272qkg.9 for ; Wed, 12 Jan 2022 18:01:19 -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=3zUmtcXCiY1YTnIqVg+r2nUefsBqtc1UXi7CebsQNh8=; b=KrkFUVBEghXw9FoeulOsww+Ve4IFN9Rf9i3zPMWiArP0IWA0fTLHiZ2VwP9H52hlN8 rdkTjhOIzbly3lZDmffzS+fRV83wyx/eiBKHMGQgEkqXH5DPdQnoKAoNN2Uk9X9e0Kev EHxmP5G/8nCmwpinV/ojjLxCZ2GT7KnbzZgjYOxDXrzHgPkqbOfPDw13SBRjLYNi44UC Xw0hEsWx7GfHkZVVgc2wEy1rc6gREK4nljQDH9WHfKp82AIX1yGsCbhCesjhRES93XVj gmh7OIQD9hOxplU5GeiVgbCiXj+PEtrmMCWNTkvMrzKBeVmpzS9EUbHAj7p9m4RV+zBL mx3A== 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=3zUmtcXCiY1YTnIqVg+r2nUefsBqtc1UXi7CebsQNh8=; b=F8armIDlQPyPVwFvErBx8Y/sauUuU7NmOp/1qaLkKb8HeLi98EQrlUIVUnyY4E83Cq 1nIq4L+a+C9o9h5jPejpqnCBBlR0b8vjNDUfS161c4cbIxqofOghQhxXoXVABwq9Rl2w icWbd7/3MIpZq07EsfZxaXyFGp6iEfkK2bS9s28JAIXM/gZMuP1dDrEN7lx/xXJrRVt6 pRnNh8ZKJYVl+Id4BOihd8d1Rs+aBh36wH/VuB0sOXDomRXsH/IRJZg8Nrn0LVt71Pwp iAhbjCw1AMhEQJaj2bFKrGT8JaZs11NLcKBaMKfP+5no4HcDkkFWagWYTxGBYf/JnffK gDJg== X-Gm-Message-State: AOAM5322QEZn/RW3G5+Ft3U5okJ2HQcCS+/YeX1EljNgGWwNbBoMZqee BIoOekvjEkDuVK1lDY8+cWx12i1zHCk= X-Received: by 2002:a05:620a:2407:: with SMTP id d7mr1883560qkn.114.1642039278345; Wed, 12 Jan 2022 18:01:18 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id y17sm1182232qtj.75.2022.01.12.18.01.17 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:01:18 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:00:08 -0300 Message-Id: <20220113020026.590-13-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 161/281] vag: 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: eQF505K/T6Qv From: Anton Khirnov Signed-off-by: James Almer --- libavformat/vag.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/libavformat/vag.c b/libavformat/vag.c index 9ef5466e39..624ae9df35 100644 --- a/libavformat/vag.c +++ b/libavformat/vag.c @@ -42,9 +42,10 @@ static int vag_read_header(AVFormatContext *s) avio_skip(s->pb, 4); st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_CODEC_ID_ADPCM_PSX; - st->codecpar->channels = 1 + (avio_rb32(s->pb) == 0x00000004); + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = 1 + (avio_rb32(s->pb) == 0x00000004); avio_skip(s->pb, 4); - if (st->codecpar->channels > 1) { + if (st->codecpar->ch_layout.nb_channels > 1) { st->duration = avio_rb32(s->pb); } else { st->duration = avio_rb32(s->pb) / 16 * 28; @@ -54,12 +55,12 @@ static int vag_read_header(AVFormatContext *s) return AVERROR_INVALIDDATA; avio_seek(s->pb, 0x1000, SEEK_SET); if (avio_rl32(s->pb) == MKTAG('V','A','G','p')) { - st->codecpar->block_align = 0x1000 * st->codecpar->channels; + st->codecpar->block_align = 0x1000 * st->codecpar->ch_layout.nb_channels; avio_seek(s->pb, 0, SEEK_SET); st->duration = st->duration / 16 * 28; } else { - st->codecpar->block_align = 16 * st->codecpar->channels; - avio_seek(s->pb, st->codecpar->channels > 1 ? 0x80 : 0x30, SEEK_SET); + st->codecpar->block_align = 16 * st->codecpar->ch_layout.nb_channels; + avio_seek(s->pb, st->codecpar->ch_layout.nb_channels > 1 ? 0x80 : 0x30, SEEK_SET); } avpriv_set_pts_info(st, 64, 1, st->codecpar->sample_rate); From patchwork Thu Jan 13 02:00:09 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33440 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp34409iog; Wed, 12 Jan 2022 18:28:12 -0800 (PST) X-Google-Smtp-Source: ABdhPJy7ny/DH1TrlLp/Li1+wpFNRMW9spZBE868ZCL7whPvv9CmiQY0emGpV4DhpjVX7PV/GWhA X-Received: by 2002:a17:907:c001:: with SMTP id ss1mr2007179ejc.265.1642040892112; Wed, 12 Jan 2022 18:28:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040892; cv=none; d=google.com; s=arc-20160816; b=DiccibkwSG3L0TDhNWezVbs9vyDF7eGNk9Fs4BbEbjuXaMXBHMy7QxUFiBPtaAZr3U q756sLv6EVgyyO1uVwrVZLCGRJ0nFdkmocBE9g7/1+rPRt6FV6wImJFIE25qlHWn/ocR WB/qAxnKjnLyKrucxYdommQoZ5+ocmsh3raX2Kkjrb4zX898iU0vpSxXaELDm/VJ2iZ0 apLAQZQGYiYabH0gM+pAsDYqHHG1zE47x58vGPL3AIljCxmZzK3RNmm9uVsO1DgiuLZq 5VsaEwKnMZDkRwfDkeafROxYNLQc0YimcUI3MiTgH8pMpvQKz60ZfsL0fy2Da3XAm5bc nmow== 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=w0OZ9ZNTjdW6+Xgug9T6+vqUXSKnx9DjMgs7egRzZRo=; b=pRiqp68Pel5JrHCC3ayWsvEfs+fSvJ/roHdflnyv9tvidmJP9MdW3IzsQ5BjRQDfix 6ezTVGYMygbUCarMLtTxTWQHv+3nU9iRU+k+8uZob+1eW90Hyh4ou3Ose9zdKtOSmm/d H4D/txsnh8SngpVbmWaSeZx8jL8AkJoxRXMJPWMXtvsQt7giCmos5nyw07KinfPCiA/s dw44gQ4TlbrGvmNrSTsqgnMGjwInOiVTtV3o+xfkmgcWtLnxQc9g5ygVfcZjVQdDpk71 9DBuogb2w9hMmr4AJHFPdgCZVJf/2q1Qnj1GzbKsiwQe5cWrNspZe9QnWiMqnKU1N2FW gLOg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=In3Z8llb; 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 bl4si879321ejb.462.2022.01.12.18.28.11; Wed, 12 Jan 2022 18:28:12 -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=In3Z8llb; 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 EEC0768B4D1; Thu, 13 Jan 2022 04:01:23 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f49.google.com (mail-qv1-f49.google.com [209.85.219.49]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1FB1668B4BA for ; Thu, 13 Jan 2022 04:01:20 +0200 (EET) Received: by mail-qv1-f49.google.com with SMTP id a8so5164176qvx.2 for ; Wed, 12 Jan 2022 18:01:20 -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=E/uhB+wQ1oLD8LidD/T/qZJeHZAxS/Zrbt44dJzs01w=; b=In3Z8llbejgQYSBVWRy2/rlqI5jmSd3dTRWYIVny2/GodbcDIhm3XqNO0RQtE4FTTp Wf7PA4rd7Apuctha1xygAOMruPeSeiAxyijnizzzh2xgj5zIgrOVtFQdaE2URm7z9dUP FAwwPl/jYzi2PiDCEyH6LZxHXbKLsKczSQky+ZSVXsOlbCeo/VnnOmOV12UasLLYbGog DNii9qKr3FSpBVakRD3UxhytOl35rQRmn9lPvDAgh51GKmpdXGxnjaFszPfUEVfOip2M yxolCVHgD6vCA+ErVI7zOC8CE13Hnk5coB35eIDdngL2vjozNgis0N2A7vunul+8a9F5 eaDw== 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=E/uhB+wQ1oLD8LidD/T/qZJeHZAxS/Zrbt44dJzs01w=; b=nJxFLTd4dW4/PsGcBUK5+5dEDQW2XkOT8kFCTdCe1wZsdKjM9DRs8IjTurQc5cIC0t yXpnEpTytKWUlQlmtft34pe8EUOOAOkBdHZ6oGA6jCRab+tcFd0/SJ0+0RR94V8hmruS dL8eRJzM5nByR7xd/OqaAbv85aF/+A8gZtkgBp1M3I6MYgZfTpJUJHDRrClK754ntjEw 6Hy/foXHHVIdT8w/8GgzeGwIiH3QlqN5c3zO7WM1t/IfjBw+Q+M3pHKd469MNqdGv7Ou YJRLoTaVfJHgQNl5N1MAiw8u+Z/zmmD5pqFXCBAujxMPCOzNgnkODb+c7IC+HMRcUQAP QFtQ== X-Gm-Message-State: AOAM531uN9plFZTx9tHJRqrLnBhBJ+QdZWyjXlsJfNJkuwqfZtY6pSsJ IgfREqOL0ur0KUKtzjrx+I1GFDelx9A= X-Received: by 2002:ad4:4ea8:: with SMTP id ed8mr2465239qvb.52.1642039279551; Wed, 12 Jan 2022 18:01:19 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id y17sm1182232qtj.75.2022.01.12.18.01.18 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:01:19 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:00:09 -0300 Message-Id: <20220113020026.590-14-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 162/281] vividas: 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: ZO96h1M/4xdB From: Anton Khirnov Signed-off-by: James Almer --- libavformat/vividas.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/libavformat/vividas.c b/libavformat/vividas.c index d7a6e74650..5d0d11b222 100644 --- a/libavformat/vividas.c +++ b/libavformat/vividas.c @@ -372,9 +372,10 @@ static int track_header(VividasDemuxContext *viv, AVFormatContext *s, uint8_t * avio_r8(pb); // '5' avio_r8(pb); //codec_id avio_rl16(pb); //codec_subid - st->codecpar->channels = avio_rl16(pb); // channels + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = avio_rl16(pb); // channels st->codecpar->sample_rate = avio_rl32(pb); // sample_rate - if (st->codecpar->sample_rate <= 0 || st->codecpar->channels <= 0) + if (st->codecpar->sample_rate <= 0 || st->codecpar->ch_layout.nb_channels <= 0) return AVERROR_INVALIDDATA; avio_seek(pb, 10, SEEK_CUR); // data_1 q = avio_r8(pb); @@ -655,7 +656,8 @@ static int viv_read_packet(AVFormatContext *s, astream = s->streams[pkt->stream_index]; pkt->pts = av_rescale_q(viv->audio_sample, av_make_q(1, astream->codecpar->sample_rate), astream->time_base); - viv->audio_sample += viv->audio_subpackets[viv->current_audio_subpacket].pcm_bytes / 2 / astream->codecpar->channels; + viv->audio_sample += viv->audio_subpackets[viv->current_audio_subpacket].pcm_bytes / 2 / + astream->codecpar->ch_layout.nb_channels; pkt->flags |= AV_PKT_FLAG_KEY; viv->current_audio_subpacket++; return 0; From patchwork Thu Jan 13 02:00:10 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33441 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp34540iog; Wed, 12 Jan 2022 18:28:25 -0800 (PST) X-Google-Smtp-Source: ABdhPJyKQ7kTzLITE1lFuEungVSAS4NZoRxSGqSM1oNk7kqnB0PYu0TZpacjf7Jhd78NFfrfievW X-Received: by 2002:a17:907:724c:: with SMTP id ds12mr1881844ejc.687.1642040905650; Wed, 12 Jan 2022 18:28:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040905; cv=none; d=google.com; s=arc-20160816; b=ZYGN8hH4lb5bJU75D7xfx5V2Q57yl/umwVp9PjLU65q4e9pmBfwqBZeUNbK124ik3X dF5LGaikSwWWBtDjj8bjy70e2D6F8UeeK2ZE2xu4mcYctZ+9QHIsHW4zN4Qt3KbyW6bS wmaDNCfSrfLkNMDdRZ4Aem9+Q4ywNKigw11xUZ6f07IISpyqqlb8vxbuc6hozUz/PHSf Io96Flt20r4Hat75jdx5uE4EgJ+6OukH1iXjY9zSGtDspCbl1B1Al9ShxrFXtrXRvDkV BQmTNrml/PuVzIz1OT95QTadl0Y0/yr6gHPD8pdf+yLMtJuo+ZrE7at2C41lXNjRw64R XHPg== 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=hdSSu+lwj8gcaJtxOwJpQyE75QSo1j5A6qiU3r1VR0I=; b=ZN9PlFUW4PjvXx6MYUeGQRzHHhqUtxLwi8Uedn97soCoHZQ5vsIdKdQ6KM4ebUCaXL AQQ9lCBiTllmRtJGQW7dWkUVtDgO2KOcFbFOEzZNF+EPZN6azrrR7uGCI/QG8i0ity9F zQKiH04mxK5Knb55Rce10A6wT41A+pZX2mCWYN5AfO9+rWhyZi6ORUc7/gNKsSCwW8lz fWGcxLldjLS8OXhUeZnL3H8GpRe+0/SC+3nDibT0M5gBIAnp1KWBC/fkf6gWAZOxOV7E GsTSDNAVH8VU/0whj1I9tkErIW7iSUBPKQLyiq361HCgp/oGPOh/BmiCdFCwBP15Hj9f NAIQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=k6UIb2i5; 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 e4si942115ejs.48.2022.01.12.18.28.25; Wed, 12 Jan 2022 18:28:25 -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=k6UIb2i5; 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 ECBFE68B4D5; Thu, 13 Jan 2022 04:01:25 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f44.google.com (mail-qv1-f44.google.com [209.85.219.44]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5CFDA68B4B5 for ; Thu, 13 Jan 2022 04:01:22 +0200 (EET) Received: by mail-qv1-f44.google.com with SMTP id p12so5099913qvj.6 for ; Wed, 12 Jan 2022 18:01:22 -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=UbBMYixZzyImY/mSEGFZPpkx95P86OThIWOsMy+wZxw=; b=k6UIb2i5p3RxBUJ5tkRMg4C3vGB8VwHfArT5kqfo3FgwZM/p18GUliPxVjwxdmQGiJ lBaV3M2ytyyHI9NVoGj+VyUC9edzTpaKzND0sbchA9MvbMTCEChVyOs2zD/8bPGBfTKy eDfPIfTL9cxuVqEsnutZN7kHJSrEurUkmBCAk4IcqhRWoDlaXVwqq1cA3pDBI89mxNBM a1rNcZI+PX0orJ+m9l4N8im/oZnLSGMGTNjE5PB0fqlcnh/h6sb516tF1BWBot+6WKLE hA5fvEGSMpfihAYVBLf9lk1+NE10oeE2jFEM3MB7cJ3UrOjvg2t3DRbw0dCRfGYJ9+Ay HZLg== 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=UbBMYixZzyImY/mSEGFZPpkx95P86OThIWOsMy+wZxw=; b=xGWwcvb7A+smxP0piVUJDKRlYGXbbxnP189W65ec0eZH1oczMvqQxNIt0FI0bK8OvA fJe+p9/IMWgLggofG8CGRsZvqlss1B+Q//vvn3gOScHzyrzzOAWSLuEmImeOukRyDubJ fPTSIYNjDIC34pcNcw5Vtg1CU5pIyLSQSchSXKd5dEWaPNpBOnJFbueKj4zsigrXm3Eo QZ4chgo5LHH6YSP/9l3dIzQumw1rOuj/8taUgQWnOr0QN239/bvTOLu9WAJh6M/BIU4r QZIoIGscyRBFgcza1546Ht7orEHL8wl3oOnw8C9wuarNZHaxcyeXE9SXBYBFEE8XDTiI JmJA== X-Gm-Message-State: AOAM531MZGREi57ZQjUdswR1UzLB2JdiG6jQrJvgsXmg2As2R0OMGLCK OMqcMpeqva3GivqF7usZt5y+P68jhNw= X-Received: by 2002:a05:6214:1c45:: with SMTP id if5mr2378381qvb.100.1642039280725; Wed, 12 Jan 2022 18:01:20 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id y17sm1182232qtj.75.2022.01.12.18.01.19 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:01:20 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:00:10 -0300 Message-Id: <20220113020026.590-15-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 163/281] vivo: 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: aXpfmC8WhfT8 From: Anton Khirnov Signed-off-by: James Almer --- libavformat/vivo.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavformat/vivo.c b/libavformat/vivo.c index 2a08e1df03..114eb212e5 100644 --- a/libavformat/vivo.c +++ b/libavformat/vivo.c @@ -249,7 +249,8 @@ static int vivo_read_header(AVFormatContext *s) ast->start_time = 0; ast->codecpar->codec_tag = 0; ast->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; - ast->codecpar->channels = 1; + ast->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + ast->codecpar->ch_layout.nb_channels = 1; return 0; } From patchwork Thu Jan 13 02:00:11 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33442 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp34678iog; Wed, 12 Jan 2022 18:28:40 -0800 (PST) X-Google-Smtp-Source: ABdhPJyH4cMFt493mJqt5WDRqeCLwBefirunF8dfP7Abk6iE0VwCs/xXPMwAiSOztXEoUmSbM1A0 X-Received: by 2002:aa7:d29a:: with SMTP id w26mr2334312edq.207.1642040919964; Wed, 12 Jan 2022 18:28:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040919; cv=none; d=google.com; s=arc-20160816; b=upAeMIwIjQOYLZCI5Em1F0mIphYO7A2FOMwZ7jcqrIJ2l6AWmz56ZJiwVaJoEQoZZ6 fiPNCVxvMuBJ1fCliH5QABYRhuoYT69XZnQ18uRunsezMfgcsvY5hSSGbGn77pPl+9EH 83kzF7mAAk5B+il0P70WHDoHy5FGt8ica/TIwas3doYLU0uVwUJz8aojTGs4txfBUAzO PnYpe0pVZZOw6FteM9UbS5y63VJ9OhXGKM8HoRk7I2jlJsME8oy1PTcrRsDVmwHORGy/ 0Gih4TNmmf6RXZmGo2FMPB3tKMZP0n78uPxiPAOMbOjL/Xse/pzusvZdj3QDZKvqVF+A DsnA== 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=ok20/s52Yu7YrjGNujd9WpeJ8Wq+LN2H9ckP33CkvGI=; b=fyfrwSP8qycFjEyiiiAxi8NK86h4gnJ41pdTwi2VZgD8dkj/R9hQWcGFtW+rbF3SqQ 4VmHqEU1dXvM0oeo2G13d5iCb7lvJVz18CaSWyxSDZXguJAECnepY2e0pQWdf2H3r2Hv Fjc9TKVBg20i97oZG8JtlFoi/qtGLce/M1XN+1gIi3t0MAXPxSK02O34aUhJUQ2qOsuD 3eVzMsl9XDjgSY2I4Bzjnwn86Hn6eGimYdAGyKYpAKFVAJ4r8Z6brfvsWFHlaeWhUc9b VmJQtogXHHLoeKymu0hMhOkWeac+b6P3CPn6UFyfcBSOgaR1TRksBs3uBQW9UI8VL9ZM VaAQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=XW9WMVXg; 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 du16si948003ejc.530.2022.01.12.18.28.39; Wed, 12 Jan 2022 18:28:39 -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=XW9WMVXg; 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 D892768B4DF; Thu, 13 Jan 2022 04:01:26 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f47.google.com (mail-qv1-f47.google.com [209.85.219.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 861EC68B4C3 for ; Thu, 13 Jan 2022 04:01:23 +0200 (EET) Received: by mail-qv1-f47.google.com with SMTP id a8so5164261qvx.2 for ; Wed, 12 Jan 2022 18:01:23 -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=62nBBk67xVuf7NPHAUV/S7tNRxbUbZPAyBMG/0G+uIU=; b=XW9WMVXg6MIzFb6yG3AJbuEEpxKOKP78K6Bf0d/JiiYUL5ydhTTQ5K0geWzKSXCnOj MGHFXmcTRQC1Q0pnvRa8gKplndSR+Gv+prb3nQPuS8gMEuGaPAacIsTm2GV+eaMIo1Nd as5bGC9Zo4gsnwCr1FIcSxLRQBdtUF0vG1UpPFA9rUUmnHh3EELMAg/cHy7DgTLX8nVM lwffv5YWfP+u2zeba82ETEbs89DxzouNd/1ubXYM55TEDd0idVss13e62y5++TWI1Olz 7ZcwFuArwizky0kgf/wLiGNat3zgiu9dquq9BwEH4JZcgr1anIwOcO3DzbS2/7UKe93Q UCzQ== 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=62nBBk67xVuf7NPHAUV/S7tNRxbUbZPAyBMG/0G+uIU=; b=uJpks1c8ODr9oA2BNTZyor+cqE0wLuPTjEZ+P/1QgZXYwrSMZb8TZVyAPoBqJyNAQ1 rfAR6kgtTvKt8+EkHJ/Uv7DYUw8aGd0nALcGntHPxuLPpBEK3uRCiiIdcuogq8U6ShRC na/8aUNm2fNmcIYIM030XxE4a4w5zIEEf9GxpD/ErMwa+vX3SgTrnH9rgGBC8/9/P+AD 1WTKhCxTNVrcDEPcwJCiC9WbhdmakUBESggug1oNpzSLJFoN5UEiZp9urZzCS6iCzVY9 AordHGG35zY9POHuJjl7sIqQH44QUPwkjNwwl0wUxCzPMsaUp+YVwFKzWyUBBKAv4JsI hnzw== X-Gm-Message-State: AOAM533ueLQuEMgqeMctmVnDXfxy+1YW5uXe/SeG2uQ5lFSnrvc17ulL EtbMVSWGb8NnA0zZh0V3Cv9oD9BLtu8= X-Received: by 2002:ad4:5de9:: with SMTP id jn9mr2087141qvb.87.1642039281940; Wed, 12 Jan 2022 18:01:21 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id y17sm1182232qtj.75.2022.01.12.18.01.20 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:01:21 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:00:11 -0300 Message-Id: <20220113020026.590-16-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 164/281] voc: 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: s4rj1his+X1G From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavformat/voc_packet.c | 9 ++++++--- libavformat/vocenc.c | 9 +++++---- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/libavformat/voc_packet.c b/libavformat/voc_packet.c index e5ae0be1de..a7ce2707a0 100644 --- a/libavformat/voc_packet.c +++ b/libavformat/voc_packet.c @@ -72,7 +72,8 @@ ff_voc_get_packet(AVFormatContext *s, AVPacket *pkt, AVStream *st, int max_size) if (sample_rate) par->sample_rate = sample_rate; avpriv_set_pts_info(st, 64, 1, par->sample_rate); - par->channels = channels; + par->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + par->ch_layout.nb_channels = channels; par->bits_per_coded_sample = av_get_bits_per_sample(par->codec_id); } else avio_skip(pb, 1); @@ -103,7 +104,9 @@ ff_voc_get_packet(AVFormatContext *s, AVPacket *pkt, AVStream *st, int max_size) par->sample_rate = avio_rl32(pb); avpriv_set_pts_info(st, 64, 1, par->sample_rate); par->bits_per_coded_sample = avio_r8(pb); - par->channels = avio_r8(pb); + channels = avio_r8(pb); + par->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + par->ch_layout.nb_channels = channels; } else avio_skip(pb, 6); tmp_codec = avio_rl16(pb); @@ -140,7 +143,7 @@ ff_voc_get_packet(AVFormatContext *s, AVPacket *pkt, AVStream *st, int max_size) } } - par->bit_rate = (int64_t)par->sample_rate * par->channels * par->bits_per_coded_sample; + par->bit_rate = (int64_t)par->sample_rate * par->ch_layout.nb_channels * par->bits_per_coded_sample; if (max_size <= 0) max_size = 2048; diff --git a/libavformat/vocenc.c b/libavformat/vocenc.c index 798b463a82..59c2bbba7b 100644 --- a/libavformat/vocenc.c +++ b/libavformat/vocenc.c @@ -63,16 +63,17 @@ static int voc_write_packet(AVFormatContext *s, AVPacket *pkt) avio_wl24(pb, pkt->size + 12); avio_wl32(pb, par->sample_rate); avio_w8(pb, par->bits_per_coded_sample); - avio_w8(pb, par->channels); + avio_w8(pb, par->ch_layout.nb_channels); avio_wl16(pb, par->codec_tag); avio_wl32(pb, 0); } else { - if (s->streams[0]->codecpar->channels > 1) { + if (s->streams[0]->codecpar->ch_layout.nb_channels > 1) { avio_w8(pb, VOC_TYPE_EXTENDED); avio_wl24(pb, 4); - avio_wl16(pb, 65536-(256000000 + par->sample_rate*par->channels/2)/(par->sample_rate*par->channels)); + avio_wl16(pb, 65536 - (256000000 + par->sample_rate * par->ch_layout.nb_channels / 2) / + (par->sample_rate * par->ch_layout.nb_channels)); avio_w8(pb, par->codec_tag); - avio_w8(pb, par->channels - 1); + avio_w8(pb, par->ch_layout.nb_channels - 1); } avio_w8(pb, VOC_TYPE_VOICE_DATA); avio_wl24(pb, pkt->size + 2); From patchwork Thu Jan 13 02:00:12 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33443 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp34827iog; Wed, 12 Jan 2022 18:28:54 -0800 (PST) X-Google-Smtp-Source: ABdhPJxz0TFfW5XLiFNuaVfZapRb9oyOoL+ZE/xYQS94AEtXHDRRV7Onwar9izVHBu7UXQrMMlV7 X-Received: by 2002:a17:907:3d8e:: with SMTP id he14mr1893014ejc.167.1642040934235; Wed, 12 Jan 2022 18:28:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642040934; cv=none; d=google.com; s=arc-20160816; b=YLfF1x1Q2yCf/kzuwVZkFfPTeLfX6WHfsHZFgBbkbewMDsGTKaRrQ1rnhFiSbuHXjA 8Oy9cRqmEdoqdBCcT5lCo+XJOmwAu/E/pa5v+T5u3Xs3AVJuzcprGC1Hnw/cy7dA5bK2 RNCwmFefBWpGZtc854pxRaDWdHR0OlyLMqLy9twYo0Rc6dLBEtUCDIhIw4nvZKrPUUIm K60mSgCu6SiTZ2R7gfwjUWvzOhiSlY24zlFXq47NrsWFef90j2DFK9g5FbrKGDXCWeS1 RX0io+FqHnAqcoGBdRLHS8KWYFlDB8//rgW+/oGy5w7+dyjoLForEGG+F0hLxLa3FoEM +LAg== 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=tAf27Ng3QpChBo9AYF2DlihERBJawqF8goE0Jbxn4GU=; b=m2Lk5nTmWjwFs5Zk5uHaG0/lzhOMGVGQa2Qh8qt8IhCQWqgVGGFCaMsVZ/yHeaSVlB tCP0AjmsDz5lDunSvk9TeXUL817ur/1TGUeIWBUZdHfFt3tnYWq2Vsd3VcUQCMaGPdC6 qMaaHAczCqUiFhsoFswOGINW6fKTlyJxLGgpFiUx7keezFFPa6g8zswpa3Yu+XO36Cbv hsFgbrRmnwjY6VPHT8MbpyjYPdf8jxX3mvAfQaLdJnaSW9/exw1lpQbBFaR+1xzaJHYK 85TUJ4L+4DKRlGo9sw24euQZugapfPCIs6jZXNX3uoOS902Hdd/crwds8MNBfSRh8iN5 kQCQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=HNkhn7uC; 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 m12si826942edb.613.2022.01.12.18.28.53; Wed, 12 Jan 2022 18:28:54 -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=HNkhn7uC; 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 B0D6268B4F0; Thu, 13 Jan 2022 04:01:27 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f45.google.com (mail-qv1-f45.google.com [209.85.219.45]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8805968B4D5 for ; Thu, 13 Jan 2022 04:01:24 +0200 (EET) Received: by mail-qv1-f45.google.com with SMTP id iw1so5164857qvb.1 for ; Wed, 12 Jan 2022 18:01:24 -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=4LWibITV/cAb90y5cgovO/2drJVov+t0xmZ+smR0es8=; b=HNkhn7uCa6DlTJpB96WVC9Lms3lxulxoz6+YKfv6J+4n9uR6K4UxYR50Cxbm5ZiTuQ g5JXxy3yqbLHZjdA/LHdMamv0icWftpAgQ85bGeEaTByqalmNzjxHx4HquP7HRyfZjnW iUYUdZIZExv4TJekpbfI5FpY7ODP22Cvn9f4uhEJSzYoHX1WUYuWsCFhAd0MmWEcu33+ zgX4s1NDaQ9JuScORGmsEM8agz/Ngbtwjxcx+k18pr/pVQityLnLbW7kX7jl/GzHSQO1 ZbfDWZmcyWbieAyv8pUo2mjKQodIQF/aL4h32VDMUgQk6BP4ZgNVokPqQF5Z3QjNud1I RRHA== 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=4LWibITV/cAb90y5cgovO/2drJVov+t0xmZ+smR0es8=; b=JFOshsdgIogormwV7TjOmcgDysS8L+w1DysPPn3xtFwqjUO4aY40Ly7wehlO3AHXe7 wWAIoe9uW5jsTgTfuLYJ+nAsi+OWXxRCjaMxT9NvygYAPu0aIJErgm55WlzP3W0aGPG1 hSPoktq7h4FyHzCddLSkVNeQa+Ya3rU2SHpLNo6FRlu9NEsV9eLWEZYm5hTQqWSE/ZRn q62rqmLVkDdvG26dhfuE9n9wAVfg9KVWRZHneb2AYcN6UT4YpXuxEGnvaruLfcuePvKo GGN0p09MPo2S9gwPUTenCUYQOpPAcH9zegb3gKwdTGp0PHbNAh5WEPsGmAbAynJ+eUFp VP1Q== X-Gm-Message-State: AOAM531d/EcsOtzjD7DPkSs/jjWujv/cRCpaoPwjqtczqjKK+NVhvUjI UdeK+Xnqd1sXbuhG7C6Lb8AW1ns56Ls= X-Received: by 2002:a05:6214:19cd:: with SMTP id j13mr2378345qvc.88.1642039283133; Wed, 12 Jan 2022 18:01:23 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id y17sm1182232qtj.75.2022.01.12.18.01.22 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:01:22 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:00:12 -0300 Message-Id: <20220113020026.590-17-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 165/281] vpk: 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: TwVviDApofrx From: Anton Khirnov Signed-off-by: James Almer --- libavformat/vpk.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/libavformat/vpk.c b/libavformat/vpk.c index d542a0806d..3968ee981e 100644 --- a/libavformat/vpk.c +++ b/libavformat/vpk.c @@ -59,14 +59,15 @@ static int vpk_read_header(AVFormatContext *s) st->codecpar->sample_rate = avio_rl32(s->pb); if (st->codecpar->sample_rate <= 0 || st->codecpar->block_align <= 0) return AVERROR_INVALIDDATA; - st->codecpar->channels = avio_rl32(s->pb); - if (st->codecpar->channels <= 0) + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = avio_rl32(s->pb); + if (st->codecpar->ch_layout.nb_channels <= 0) return AVERROR_INVALIDDATA; - samples_per_block = ((st->codecpar->block_align / st->codecpar->channels) * 28LL) / 16; + samples_per_block = ((st->codecpar->block_align / st->codecpar->ch_layout.nb_channels) * 28LL) / 16; if (samples_per_block <= 0) return AVERROR_INVALIDDATA; vpk->block_count = (st->duration + (samples_per_block - 1)) / samples_per_block; - vpk->last_block_size = (st->duration % samples_per_block) * 16 * st->codecpar->channels / 28; + vpk->last_block_size = (st->duration % samples_per_block) * 16 * st->codecpar->ch_layout.nb_channels / 28; if (offset < avio_tell(s->pb)) return AVERROR_INVALIDDATA; @@ -85,14 +86,14 @@ static int vpk_read_packet(AVFormatContext *s, AVPacket *pkt) vpk->current_block++; if (vpk->current_block == vpk->block_count) { - unsigned size = vpk->last_block_size / par->channels; - unsigned skip = (par->block_align - vpk->last_block_size) / par->channels; + unsigned size = vpk->last_block_size / par->ch_layout.nb_channels; + unsigned skip = (par->block_align - vpk->last_block_size) / par->ch_layout.nb_channels; uint64_t pos = avio_tell(s->pb); ret = av_new_packet(pkt, vpk->last_block_size); if (ret < 0) return ret; - for (i = 0; i < par->channels; i++) { + for (i = 0; i < par->ch_layout.nb_channels; i++) { ret = avio_read(s->pb, pkt->data + i * size, size); avio_skip(s->pb, skip); if (ret != size) { From patchwork Thu Jan 13 02:00: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: 33445 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp35451iog; Wed, 12 Jan 2022 18:30:04 -0800 (PST) X-Google-Smtp-Source: ABdhPJxXphI5sn4kFQY5GQ0jsOsXwB6mJ1ECnR28iS+OkbAsUKNQaywTcHFu7C3AWffZVdTX3Vzs X-Received: by 2002:a50:a452:: with SMTP id v18mr2305862edb.55.1642041004341; Wed, 12 Jan 2022 18:30:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041004; cv=none; d=google.com; s=arc-20160816; b=UtOCwUnFdcokxiWbsPynwzJBsybMwpx30Fs41vAMLq41st70hw0KSc4RM6hKG6qawa 3JpmEACOzXEhY20Qc3CnZlnVKnU//T35ySEbUviEMEvH3sbMsdgz+vg169lex0Xcsr3g d4ctVuRvx7vTeP4M1H56xLWuiXh55h+vesGkEqf0I/A1/ngBhtJcWaBquQrl1a0KdY72 vUTQ0OikG5Gm8XOBkF6E6mRG0obybUCzrZvPd0mqUmzIW4R1WfBoiDXBfeF996rquOOm hsBf9gUWvi0UqHMm9LqY8MJ8YsFGBqsf/r8g8Ht76D/DcqCni8bWlYfAC8Oe8ZHZzkfQ v2AQ== 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=UIAwoIJxMoAwSTla/SiZv7bLLfeljVWfg+XWqEKg7Uc=; b=nL6aiVbguhyA3RimPvFmyKsfqYVJHS4ObMzEnOpUdWSMfmwSeNzjpuSXHIhiOpA6Cw kPotjE5eDCvnULeWKgwZXc6iEf5gghQtJ616SfdfcsIEF4SQIhlyb9JRmExbUQgh8fHc 1ZNPhDU81vbBujINQFjvx5JKeSp6M8ja92jZikNAt/zb00dQTv1ZjRc5SU0XFUu/BVP+ RfWOYkMxS4AE/qCupoCsRH05au0NDRkcB1oJ3M2cdc9ngXVZ4yYwcZVM4JU7e13Z8xEI Bihv+eAr7+eVhzqUeFRKjGISAenSAoOO8OmQtRJhVIOOkW8Fqrqhi+eMGRBWAfxz+P8P 0qqw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=jioV6FPr; 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 w7si747817ejz.420.2022.01.12.18.30.04; Wed, 12 Jan 2022 18:30:04 -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=jioV6FPr; 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 139A368B528; Thu, 13 Jan 2022 04:01:38 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f46.google.com (mail-qv1-f46.google.com [209.85.219.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 93C2868B506 for ; Thu, 13 Jan 2022 04:01:33 +0200 (EET) Received: by mail-qv1-f46.google.com with SMTP id iw1so5165272qvb.1 for ; Wed, 12 Jan 2022 18:01:33 -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=UrmppCra7Fo0PFe89y+T2l2ch5eD742OoEH5l5BJDVU=; b=jioV6FPra71SgAdbZ2bLj4fXcgb6kCOE/4EfyF4RiGqBB10l53MFI6r4531Xd2PMGT LlsHVvVq/me1poF4W0+lCBlH6ZfgWcxhdme+roZa68jNiaS8uPDXhOW9xk956eDKyBzV NWxwfbHrdU6d2pJwO8iToYkHMlpvnHzDxE3eGJnhO1hBfNunmKv5VUXtk5+CuYmYDWpo 8U6WmGgx1u0ybzGzljGPZKMNvI0z2brormWZqzEdYABMF47QyMawjPWTh8+HSsRVjm8K 8pO4h6dPzunhcXpasC+11nH5mLpS2fHoZY7MWy1hq/rq1h7Jghjo6QLO3Ky4r/3BU1jC rDpg== 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=UrmppCra7Fo0PFe89y+T2l2ch5eD742OoEH5l5BJDVU=; b=6LfefGdLyOuFBsBImDgXuPJxbBb81KcW6GGcG/kQoLWqauKEfQVP9C8Gq8xEgcZ8Jk H3HNm24bjgDw05LkoG7PobWnx2blR5Oz1Rp7f+sfEmpkGngQ/Pc0hLHxYvyTXVht8lbd rSRBgrwDUpnkJj6ucbyabPMmyqrBKnGoZULEQZuMxXIWeiigXu2E9Wdip8lEHidZqeB7 H17j+q87FGBeGRoU5l6DiNr6y8mSq6rOJxgFzwgQxcdcsXZmOLLgs4qy6Mj2e/7ilbKr rOY4hQ+YXVDXFMr0M/CrQWO2Xba+toH3HgU22ptQOqxAeb1bATXO1clejtelAX6qAwIT WEFw== X-Gm-Message-State: AOAM531lv+yJWsG6EiHY/PnbUeVGMbU1phW+tN94G/2dn+A+eqI2gyCh vA34Ah1/GzpqzUkt9bZDDmbd/fZ9L5I= X-Received: by 2002:a05:6214:19ec:: with SMTP id q12mr878008qvc.2.1642039292098; Wed, 12 Jan 2022 18:01:32 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id y17sm1182232qtj.75.2022.01.12.18.01.31 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:01:31 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:00:17 -0300 Message-Id: <20220113020026.590-22-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 170/281] wtv: 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: 7X3IG0cXKfUu From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/wtvdec.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/libavformat/wtvdec.c b/libavformat/wtvdec.c index 22e4c92565..087b44273e 100644 --- a/libavformat/wtvdec.c +++ b/libavformat/wtvdec.c @@ -584,11 +584,9 @@ static void parse_mpeg1waveformatex(AVStream *st) switch (AV_RL16(st->codecpar->extradata + 6)) { case 1 : case 2 : - case 4 : st->codecpar->channels = 2; - st->codecpar->channel_layout = AV_CH_LAYOUT_STEREO; + case 4 : st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO; break; - case 8 : st->codecpar->channels = 1; - st->codecpar->channel_layout = AV_CH_LAYOUT_MONO; + case 8 : st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; break; } } From patchwork Thu Jan 13 02:00: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: 33446 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp35613iog; Wed, 12 Jan 2022 18:30:19 -0800 (PST) X-Google-Smtp-Source: ABdhPJzmJKjhwLR89NMC8wMdzbTnneiOZ0qhExxoPGnVbhr1oPJySSCnD3NOIszSx6ahEPVgDdy+ X-Received: by 2002:aa7:ccc7:: with SMTP id y7mr2278125edt.96.1642041018881; Wed, 12 Jan 2022 18:30:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041018; cv=none; d=google.com; s=arc-20160816; b=szuqjIVyCtxKXTrXFUngyWAgYXFXEnAMebdIA80JMmp1/KGUMklOJReHfirB34S32f UTYPq1R4t5a+onUvuzN0A+m/zTysEchIYNPrUCOePHHJ0H6e3y3Oa7dlg+PAoZtXHq4y LbeJ4JUumsbNOeT5fKJEQ6yr73A7OwL0eBv0ygsaJ+vpKS2T3+K4gqgPDWxlWLpnD8aY PEeNo5ztauCa8Vr4+SdAMKHzcVTVRDSIYjNHrDOulq0w8TeQSh7vfLgySEJZseV8MB6Z t9G24cJjB9uJaM+HgObZokkX8AWcFfXn0mxG87VtjNdbxKD+4pUwvX0KcRv6hKbROSgH d3lg== 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=mX/wOpACofikJgpFoDO8WwCp2/6gvMTNRbbVbIazg0E=; b=h/mtn4QYLvKOnuTbxROKXorvW4IIO1kFJqbTgvON4Mo0cnxsljVme+njx02Xgpv78G sqMz2kg1srv2Q/VHQnIF9qXX9j73qmVXJep5Ogk87qLSNcRr82nbRy5IgSY3cGRrw43x IXxxJlhOL2QT6goRDm5YrXY1Hv+GZNi4Q4BXYS8TUDuV8jfCtqgVIVoqYq64+BYUmIfN JxBXmHLK3ajHMYlwifjiM8+ut9ekQOe7dF7xijeMIrVPul1qRUnipXD2ouCpUWTQeEe+ y1WdWJKOePKyUZDqzo6gUZz5RFeSnQ+lGjM3kD6/aOzLIum7bxhdPVu9yI0F3qvv7sZI AgtQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=C3XZCMZu; 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 ks7si759955ejb.399.2022.01.12.18.30.18; Wed, 12 Jan 2022 18:30:18 -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=C3XZCMZu; 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 1184B68B52F; Thu, 13 Jan 2022 04:01:39 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f50.google.com (mail-qv1-f50.google.com [209.85.219.50]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E27AC68B505 for ; Thu, 13 Jan 2022 04:01:34 +0200 (EET) Received: by mail-qv1-f50.google.com with SMTP id iw1so5165334qvb.1 for ; Wed, 12 Jan 2022 18:01:34 -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=VxvKCkY3xqc8m3nG2KldgI+uBeFJL6yWFDZxLNKRvNY=; b=C3XZCMZuKapc3N+SLJ0ylK59yQhhtOZGMoQOIENyTEhcxlblSLQEDfPkgJTEZxDbsa ax3Il7WXqvd0x7fUWb2uC8Ly/PaI9e9MwNzXkD/CCssW4oa4nvFmpQp73vr7JhgQOiJN 9/BrorJSl8sI9JsvA7nP5Omh4C3bXsmK4FX3tXXudpu5pus0q4Jsmw7itzTNYxNHyywB 5fn1BvFP+HI90Xur7uqsxEuJrFPrqZS+6t7FDmuo+9TQJUawl6o4OAMaqxu9Dpjo/EXW H6LWZ3y9+/nc7Yb+Bu8cSXEFe0tyZ0T1OTv3V4rKVXDbqhxLnXlK13F6FUXEnnbnsMFn YPkA== 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=VxvKCkY3xqc8m3nG2KldgI+uBeFJL6yWFDZxLNKRvNY=; b=y7rYzTOGV7vhfI89ZGs/o2L0oMlDvE01vlaoRbExy5ApoME7IfGXclj/MqHAvMr+Fx D7dcKa7ESq1dptiu/Ko7mT4s7PyUDGcG/wgjQNoBP+fp9Gng8FjQjh+HamDYNbTRvZRU dpcUrvYg1CadZ+NTHPaHZOlSEOhvbuwrRiCe0xFW34IsE2hpRapnBhOLwLZFx/DwOP0+ d1xjuzQyFuTDau7hl9oCnCz7+iXOBaFYoxmMDvJZRHG8lLRZH6F4l49Ovl1dyo0ECHV1 /s8KB1Mknh3HTU71cph4+gdaNqHBVyNs8HsvDGnKuswGAY0S3PK8OAgPycU95pKw/fgd 4BYg== X-Gm-Message-State: AOAM530rNp7TMrqbTAlxMkWjJia5a12qezcV3Xq9KLFRYfY3invuFy/7 iFOSEmEu3Lob/byLhmKoe4LKO/nLfvU= X-Received: by 2002:a05:6214:e41:: with SMTP id o1mr1460726qvc.1.1642039293322; Wed, 12 Jan 2022 18:01:33 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id y17sm1182232qtj.75.2022.01.12.18.01.32 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:01:33 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:00:18 -0300 Message-Id: <20220113020026.590-23-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 171/281] wv: 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: NYdcAZrekWm1 From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/wvdec.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libavformat/wvdec.c b/libavformat/wvdec.c index 0d5a86953d..61a683a85e 100644 --- a/libavformat/wvdec.c +++ b/libavformat/wvdec.c @@ -256,8 +256,7 @@ static int wv_read_header(AVFormatContext *s) AV_WL16(st->codecpar->extradata, wc->header.version); st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_CODEC_ID_WAVPACK; - st->codecpar->channels = wc->chan; - st->codecpar->channel_layout = wc->chmask; + av_channel_layout_from_mask(&st->codecpar->ch_layout, wc->chmask); st->codecpar->sample_rate = wc->rate; st->codecpar->bits_per_coded_sample = wc->bpp; avpriv_set_pts_info(st, 64, 1, wc->rate); From patchwork Thu Jan 13 02:00: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: 33447 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp35762iog; Wed, 12 Jan 2022 18:30:36 -0800 (PST) X-Google-Smtp-Source: ABdhPJxs8qwBfgtpc5ytAXI6IGL3FOVIErEr47sCUJD6UwNgvkIhqQUoOLTsPjUWmX/ECJRuPCUF X-Received: by 2002:a17:907:6d1e:: with SMTP id sa30mr1960047ejc.1.1642041035879; Wed, 12 Jan 2022 18:30:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041035; cv=none; d=google.com; s=arc-20160816; b=Vs/0vYJHijFvru2Wpb0ihHPeGsiW+9MQRnPmR2sQrI+h+rkGnYWcNRNM5lawbF6+bq rscm+ZpD+s+kw6NQJRZy52ByjXGNFyzxRm2eKCTQMJF0z7wB+3lkb5CYRfForb7JbkXV gjm1g6zk3Vtz06D8DiJsC4qX4fETQ6KYyqR7yVqHP4rdnm6QIsg8DgcrJagn8++2ttTC /wlSor3oezl91FrbgYlrSRCb+LwPlbjlUCaVZWHHK/lB40Oi3907P3hGTzqEDCmK7NZw YRKG7QXCFDijbnCWSL+B0xDhVAU2i0LQZWK3dtSV+VSHZaqP3bEvw7P0MwS3fFQA9a1/ GVbg== 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=L+srbXbSLGxdcLL3K2ioUWpCdmiwXFYiFe4FfJQ7hTo=; b=qbGkh4rizQTFT41Pwixuz0PnfLGkNIfRGZnuOFmhHY60o5it1KjdXoNdN02IvrVk1I 2HEI396/6g+XnvnVIDOFDv2SkqVIFxeW9S+aXQxekrLEvsyYcjpDuEC6Ptn1D2UZNcIa zU/H9MiMwg6bQhq3uYO4PGTCKPZTOR1wFk7uCNefWwTDXgHszhOeXibpyHW3ZTOeDhYl xz9fVgRhBzJUtuEQYSmfdgkGWlHch3066gUvg4PrOegneGytxCQDT8DZFdEKiwlFdRB1 zxuaxyPy+/AGnVLluird3uI/P+9ivtRKiFDeUlYzZZBo/vXli/19WMFnx4SoTymwA3bN KAJg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=IcKm6HnK; 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 zh8si708085ejb.751.2022.01.12.18.30.35; Wed, 12 Jan 2022 18:30:35 -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=IcKm6HnK; 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 04B1568B548; Thu, 13 Jan 2022 04:01:40 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f175.google.com (mail-qt1-f175.google.com [209.85.160.175]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 86CBF68B50E for ; Thu, 13 Jan 2022 04:01:36 +0200 (EET) Received: by mail-qt1-f175.google.com with SMTP id f17so5343781qtf.8 for ; Wed, 12 Jan 2022 18:01:36 -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=l7IpLEt3KbNRNJDoJpf8dFPqYCfOK7O+EYqNlEoiarU=; b=IcKm6HnK1z/cpXhuATcZbhRoP43+EiG2QTLYns7dSKvYt0LYxyPh4zhTrYpofU6sLb uwfOJmxWzw98G2vNAtA67B26Owb0RjKuXmElyjWAISYxQoweU4OsDLXKWxkJWb5c2KZJ 0VIhEcVLQOLKwK/nJ/SQrza1vJEeTwUnb0ULjKJQtrIEb/CJzQvEy89Va018QyvhLntT XK1gDLg6Vj3CibWZdW+VQWBcXob7BYKJ8qgbI5Qxf/384Tz3gDHBOAJO12ILETE5MTj4 SIkD8pHO5WsEPBVpM8YCJucKA1Y50+ZyfCoHgpKyNmg/uRdcexQ2A4usLDKv2J8p57Mj 9QvQ== 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=l7IpLEt3KbNRNJDoJpf8dFPqYCfOK7O+EYqNlEoiarU=; b=O/s0SWuIH/4KZ+dDoDz/55Pb1HCF6pjo5Sdo345QxOyn0M7AZ1Iojent34wnJuQFUe 8bP7FKlfz/HQwi3v+Euiiyvqa3kpclx7u02Fo0rQASIp3i568CptXHgNtVa7/L/2GBtq n4ceeHlqGeYPyUnLeWZPJwkSbQ2i8AvkyEIbLIwSJBT2DhwGHqnVOUr8+4GZimbnHYb1 thcvOVpBvcc5jS0/ivZvAqzLFTWD8+Bih89fzzBCPSWiCxGUaX9RGyHSwbBaIAI5GZzQ kMOf53aAv/3jj044TN4VQHek9Jp8sPQeFCIlnaUWTlDYYUeeE/MexkAkJCxywDTRunRP LmKg== X-Gm-Message-State: AOAM5331jUa6iz2lL6czatClnYsGjPDohWusZ3hnHaMkZbc/7vOP7RRq AoUMtCO5Si5d4C2D15zYKpWs+lGyZsw= X-Received: by 2002:a05:622a:342:: with SMTP id r2mr2063479qtw.240.1642039294541; Wed, 12 Jan 2022 18:01:34 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id y17sm1182232qtj.75.2022.01.12.18.01.33 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:01:34 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:00:19 -0300 Message-Id: <20220113020026.590-24-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 172/281] xa: 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: wx2qYYUYGyEM From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/xa.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/libavformat/xa.c b/libavformat/xa.c index 762e90246a..af99c1f327 100644 --- a/libavformat/xa.c +++ b/libavformat/xa.c @@ -78,16 +78,17 @@ static int xa_read_header(AVFormatContext *s) avio_skip(pb, 4); /* Skip the XA ID */ xa->out_size = avio_rl32(pb); avio_skip(pb, 2); /* Skip the tag */ - st->codecpar->channels = avio_rl16(pb); + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = avio_rl16(pb); st->codecpar->sample_rate = avio_rl32(pb); avio_skip(pb, 4); /* Skip average byte rate */ avio_skip(pb, 2); /* Skip block align */ avio_skip(pb, 2); /* Skip bits-per-sample */ - if (!st->codecpar->channels || !st->codecpar->sample_rate) + if (!st->codecpar->ch_layout.nb_channels || !st->codecpar->sample_rate) return AVERROR_INVALIDDATA; - st->codecpar->bit_rate = av_clip(15LL * st->codecpar->channels * 8 * + st->codecpar->bit_rate = av_clip(15LL * st->codecpar->ch_layout.nb_channels * 8 * st->codecpar->sample_rate / 28, 0, INT_MAX); avpriv_set_pts_info(st, 64, 1, st->codecpar->sample_rate); @@ -108,7 +109,7 @@ static int xa_read_packet(AVFormatContext *s, if (xa->sent_bytes >= xa->out_size) return AVERROR_EOF; /* 1 byte header and 14 bytes worth of samples * number channels per block */ - packet_size = 15*st->codecpar->channels; + packet_size = 15*st->codecpar->ch_layout.nb_channels; ret = av_get_packet(pb, pkt, packet_size); if(ret < 0) From patchwork Thu Jan 13 02:00:20 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33448 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp35881iog; Wed, 12 Jan 2022 18:30:50 -0800 (PST) X-Google-Smtp-Source: ABdhPJy+Hir1pMuIhslXg8X/NGz7aZ9pUKr4IIAHF7iuRNImpDnqTpWCRxOQwOYGCACk6Q9C8PKZ X-Received: by 2002:aa7:c243:: with SMTP id y3mr2270594edo.364.1642041049935; Wed, 12 Jan 2022 18:30:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041049; cv=none; d=google.com; s=arc-20160816; b=NGoqnrjUnHvObSnL7xNy0f3pCcbFyjtmLib1x7MuFBOMnec1vQJWNOcbMIh+WH5hss Ygae32C/+i6n76YLewSEEGRy4shDWWUiSnfN4SCaIqbuHrQ74oEwMuwfgQHFPdvs2hCp b3moJuyubzOmNpbUifepRr3r4yeu3TXzsyjd6Emk/Ne363lVm5F2Zy9nj1c7Kus2J/a2 z/lBm+fwdtLSGqxrccx2rMBLeGKvDcJ5cH7W0fKBvecJkEM/cLp9ttt03NN2m/y05AAx WzjFLIk77v+Zmjrs34W79H/KrPj6xBOuAJqViwQL/ivoa+WjVI6d+SDoSVnt7eZbFxKV Mnww== 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=4dsh5igBkpjaVkTPcLL8jmETSLnG8LyE/snztw+Zsuw=; b=x77GhJkHkEC15Ff0r5p4SNZczFOOonWxMPvZbD9cNi7idPKAoxiKD1iSjtDzkAGKPP WtNbvmyhqmXaItN4jRhOdsq3RnTNra0vx3jvgACvXUlnUx2J3ufHHdreNLfHNTKIjt6r xbWw/8ZCdxI9Xy4t/69nWhoIIvEUPAhppuhldWjxnM0AZG3yJMW5QGcGto+Q61oHhd37 0EPA0daI5JpN3WqpD9EtJ+pIbg6I0hhGUuDL5gCruMovbrj1pmCabjo8zS4WNRUzTyYV G5fUbE5H/hrTtQ1zUk4EamNfIlcWstCUcb6m1UQlIX+jHwppW85v9jbmht01yCCadyMq txOw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=W3IbenwS; 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 o17si866649ejy.466.2022.01.12.18.30.49; Wed, 12 Jan 2022 18:30:49 -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=W3IbenwS; 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 14B1768B554; Thu, 13 Jan 2022 04:01:41 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f176.google.com (mail-qt1-f176.google.com [209.85.160.176]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 329A168B50A for ; Thu, 13 Jan 2022 04:01:37 +0200 (EET) Received: by mail-qt1-f176.google.com with SMTP id v7so5325876qtw.13 for ; Wed, 12 Jan 2022 18:01:37 -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=KpezVH0VtdwkxeNNzBtCxfkUn6/WqJI0/gQHF27H2Mo=; b=W3IbenwSYupJ7OanDqPsdqsT0KvH9Xug50kTa7L1CbPl3oMCJqNsKkUsahWJhTCfOD +RK7LDK60NUGbYfiTJ+yCR1hxHtadCxFbJxmGFRI4nsVTSs+ShAJUS/7Qs+YRzxaK5rf LekzO9WkDn2EeCEQrCOZGTf7QgM8L2Jd6R7wl5OuwZBXQ1DtHJPqU8hSMU1Pt1qGofOi NGlZSoU8de5gyNck0uiuVuuNZNfcYjX5E0NE2Ti2vhoXhZAfQkEMnKZpiMMN/OWzNnNR lczRRDqJ0Zg5nflPCLOu9rlVYaztPB7IUHk3p/dMAMlK9trkiI1OwZBfHd3+zvd8KCYj dbGw== 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=KpezVH0VtdwkxeNNzBtCxfkUn6/WqJI0/gQHF27H2Mo=; b=3XyW4Gv6GoY0LBMH8xQbv3TgKIBrJfWLA4IJ1hhQWzW1yyektxH64n1+49dip9d/xP eZJtwwm+hd9wdIseERb/hShGQ3TNGvrlVgIJ/ShBtbF2L39A4whidbZdCW03ffeMLjHj CDVGnO92mHB4HTy0+f7Ti9/ELisUwhlNK2lTM/GCraKVbgqW/sQ8IeDS88jdcGkBq0IZ +22zxi4vpBXTIDuFLZ8ARJfeonrLAx++l4ibTDfuBPER4dBr0E06TDjIxeQV8RTDCexN onGd2HTjpAcKKuClNWylzXMheVQ8fU0bN5VRphGWoRCSWm/PYux4M8s040B+AatECePZ CLJw== X-Gm-Message-State: AOAM532EVj4odBfFZtfluVIkRmOtGRND8HVaXBfhY9H1cmq4IsXwz/I7 mZUXe0QajGqlzqA6U5P2gDbKAV8BNJI= X-Received: by 2002:ac8:1082:: with SMTP id a2mr2006738qtj.673.1642039295769; Wed, 12 Jan 2022 18:01:35 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id y17sm1182232qtj.75.2022.01.12.18.01.34 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:01:35 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:00:20 -0300 Message-Id: <20220113020026.590-25-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 173/281] xmv: 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: 5396R2BCNJx2 From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/xmv.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavformat/xmv.c b/libavformat/xmv.c index ec21a4f853..fd0dedb637 100644 --- a/libavformat/xmv.c +++ b/libavformat/xmv.c @@ -332,7 +332,8 @@ static int xmv_process_packet_header(AVFormatContext *s) ast->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; ast->codecpar->codec_id = packet->codec_id; ast->codecpar->codec_tag = packet->compression; - ast->codecpar->channels = packet->channels; + ast->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + ast->codecpar->ch_layout.nb_channels = packet->channels; ast->codecpar->sample_rate = packet->sample_rate; ast->codecpar->bits_per_coded_sample = packet->bits_per_sample; ast->codecpar->bit_rate = packet->bit_rate; From patchwork Thu Jan 13 02:00:21 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33449 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp36004iog; Wed, 12 Jan 2022 18:31:03 -0800 (PST) X-Google-Smtp-Source: ABdhPJysmw1QidJWfeT/W8KHkIWrGd/67ZuJvsR1Du7+kUYuEG3dwQadQUhcIMiZIIS1IaM61U/+ X-Received: by 2002:a17:906:9b91:: with SMTP id dd17mr1902328ejc.371.1642041063416; Wed, 12 Jan 2022 18:31:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041063; cv=none; d=google.com; s=arc-20160816; b=zd24FvwEaB99tIWdlnzPGRxx+h6FqJGU29YxESqUaqwBihTmq075vxrnbtiwyGDTDe Nj2YyVH2Bd+Es16XSfn9zurMIQnpodVw/olCq0p4oTlteTgbW7Ynkz35wGMa/QgClmPE +sTfWsfupnKwM5/TJF+LDMFUiMqeekmin6yS/T8XNNMlC4POOccjkwiHeuEg4+fAa4xO K+K3XVjTZXOuIi+9XObFb2VM9UWregTXx8wX1QlGPLdsxzQ27X0mQN2Wl8RynvOHBOwB QRLOzoeOTvQ+rUFSvWjySRpN0hoO63OgusxnP9Eh8NJuGy1PqpmVKrCyZk6FT9l/4bB3 JKUw== 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=cUOstQm8rHwFu5EWlbXyFkHOdWl4yNtR6SSYtExWTQc=; b=yc3OkcqiEqigtVQHKfbhOH3XhdSs1KbcTWC8oz6QhnxTiCGAp25gm1fUem7679/w2i 1YWqAGuxB8E+lJF5Prevw3jo4jcyF9jGE6tLlIli7A2hYZKf3AVjjN3kUf3aHuscBt4U HRLySnRKY48oWpg1IMqhka8EWRg/SpB3ehpq662GuphwVarDoylvkZXLEFNwmu68OLJK F2FlmGuod9NwA/1hN+rhd2obhcSYEstSnucqdoBAQrFDnbOsAQD/nwjV81uThgosTBnj dskIQgXavgzcXGrCocTS7fWu16PB4hJq8nRhWn4F0ZTyW+9ae52FZKcbGM693LzIrjbq +XWA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b="V7Pw0H/0"; 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 ji14si926546ejc.898.2022.01.12.18.31.03; Wed, 12 Jan 2022 18:31:03 -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="V7Pw0H/0"; 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 EA69B68B55D; Thu, 13 Jan 2022 04:01:41 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f180.google.com (mail-qt1-f180.google.com [209.85.160.180]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7B7B568B51B for ; Thu, 13 Jan 2022 04:01:38 +0200 (EET) Received: by mail-qt1-f180.google.com with SMTP id g21so5214448qtk.4 for ; Wed, 12 Jan 2022 18:01:38 -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=DvmUjYi029Qx+vyxtgxr4EAuorQY5oX99rt1QTGjHCM=; b=V7Pw0H/0Wv2M3E+cE26P3D0ETrEuwlOHrckX1Xt1DM4y+BDDi9ndfIT0Zbo/zuw23X ICwdbPIPzOywSmN8ELpPffbkQ6Bh9UdHkCr5nGAaUzwOrio1qAVQNuzbA/Dv7YSI8DM4 D8qwuNVEyLAzgAqcmsxQE25fEdxQ8HMDaBG9y5sjCdZUecN0XCZfzpAieBHTyMCgI8TC qASa+YJhq8pCFlBoqINEzjiHHN1blpu15q1VzFk1Vs+ndfOG1QGOzIbfufVOwKhexMNC rUID/0lyieFBpmZDYHka8nwbXZKfQiM4DE1iqtyh0uFkqir7wgxTUpE357+ERnzrUDHV 91IA== 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=DvmUjYi029Qx+vyxtgxr4EAuorQY5oX99rt1QTGjHCM=; b=gL4lY/ivRZ7nZqJaV5H+rYIQUfNFQQV0F0siI4GHwjOc2jydCCYSXQFAQ+oaHqr0Pl WAhdeeWm6uQH1MDa5cfBVodCi7QeY/4F+0pnzUt3Z2PlgUKzJUK/zuqZ6HVJge6llqSx heNIe6uwOrJr6+jo7bznb0snHtPAOkepzOqf/74sGLmfjjiSmN3qrYPEjxqnQWPqvikr 3s8YVZ4o3SRxknVS5oarDpbeQEjwPfrugiJQtJcFyuOKgBEeBPI8A7vo6NHDANffUgiS o7c+tKI4GDM6p3fqUcwg7SJVHyTUyZYrR3nDQzpD+FEj5fLdHQvcQ/XVPsMgR85cLG5H y6kQ== X-Gm-Message-State: AOAM532C1xM4loCkTnUMTnYG1ezEiFyq2/jhGkzDEXRYOzvvS7+HvQ0a aGuGpjyhC1O7f30x2wzAWatujBtuW0I= X-Received: by 2002:a05:622a:1741:: with SMTP id l1mr2076675qtk.458.1642039296985; Wed, 12 Jan 2022 18:01:36 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id y17sm1182232qtj.75.2022.01.12.18.01.36 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:01:36 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:00:21 -0300 Message-Id: <20220113020026.590-26-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 174/281] xwma: 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: T0dGp+EhtowD From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/xwma.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libavformat/xwma.c b/libavformat/xwma.c index 37ab3a1ec0..c16ff1be63 100644 --- a/libavformat/xwma.c +++ b/libavformat/xwma.c @@ -85,7 +85,7 @@ static int xwma_read_header(AVFormatContext *s) * 20/48/192kbps are all 20kbps, with the exact same codec data). * Decoder needs correct bitrate to work, so it's normalized here. */ if (st->codecpar->codec_id == AV_CODEC_ID_WMAV2) { - int ch = st->codecpar->channels; + int ch = st->codecpar->ch_layout.nb_channels; int sr = st->codecpar->sample_rate; int br = st->codecpar->bit_rate; @@ -146,9 +146,9 @@ static int xwma_read_header(AVFormatContext *s) } } - if (!st->codecpar->channels) { + if (!av_channel_layout_check(&st->codecpar->ch_layout)) { av_log(s, AV_LOG_WARNING, "Invalid channel count: %d\n", - st->codecpar->channels); + st->codecpar->ch_layout.nb_channels); return AVERROR_INVALIDDATA; } if (!st->codecpar->bits_per_coded_sample) { @@ -236,7 +236,7 @@ static int xwma_read_header(AVFormatContext *s) if (dpds_table && dpds_table_size) { int64_t cur_pos; const uint32_t bytes_per_sample - = (st->codecpar->channels * st->codecpar->bits_per_coded_sample) >> 3; + = (st->codecpar->ch_layout.nb_channels * st->codecpar->bits_per_coded_sample) >> 3; /* Estimate the duration from the total number of output bytes. */ const uint64_t total_decoded_bytes = dpds_table[dpds_table_size - 1]; @@ -244,7 +244,7 @@ static int xwma_read_header(AVFormatContext *s) if (!bytes_per_sample) { av_log(s, AV_LOG_ERROR, "Invalid bits_per_coded_sample %d for %d channels\n", - st->codecpar->bits_per_coded_sample, st->codecpar->channels); + st->codecpar->bits_per_coded_sample, st->codecpar->ch_layout.nb_channels); ret = AVERROR_INVALIDDATA; goto fail; } From patchwork Thu Jan 13 02:00:22 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33450 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp36156iog; Wed, 12 Jan 2022 18:31:17 -0800 (PST) X-Google-Smtp-Source: ABdhPJzcy0dl1qBPWdQcmnakwkzlq9K5ox4RYuVHKCAF1DPK6HJXHbGCSoabX81ybPFRvC78iHwS X-Received: by 2002:a17:907:7e99:: with SMTP id qb25mr1978420ejc.18.1642041076799; Wed, 12 Jan 2022 18:31:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041076; cv=none; d=google.com; s=arc-20160816; b=qayNLn4Ln5/W4fTddZxlu8SA7aiaqW4wqC0uCWnjWn0sBHC8C4Oh3yfcQ+t2lNmq0m artF96IW5HIwC+oRYBe6Di5BduNdjPcLsQ4Hsmq+C3pk0/Q0RFN4dNB0V01mBM1MFHYi r48nZU3SpKp3VWwWa5qXTm7LOzKh6rr/fo5ZTgTyik7tIZLyY20wAYnvY00Dk4JIgKjZ kaMEHFTzjweu8w/aHvp7AOPVIwoRebslrqpq8BcEac7CnhIQFi9tqb1C2DutMHIlwD7C 46pZLeq2MxggN63HuTL80AVAQyrwkm8HofJ26HNbgdXA0ZBzFnybG6hLMkxDNGggAoSg 1uzA== 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=Eccvu7gL4EO9/NEdZLwWwT2qQKLFe6uWTk7U1eS8Mzg=; b=Amy2N3g7Hjgw32UWugRvZKYds6/PLUkp382rsfTdZ631f97EoPcvDT1XBKuOXy8hys 9x3KMaWKr8OObUV3TEGAPRFIo58yqEkVa5YUgYOfJAk0fLkVb+tX4pwNm9EzhFz5EwlO bStHhueC8dFiZF6g2fZTQ0UuGE69wGs15XehwCg8crQfvCCv8w7Irq3+nS8efAf+iF6j 49j1VIH5aiH7uVy0FKOPkcYDh3FP/ufin0zKWdoeslc3+NCasqAUvx61FeK0AreOJQXe aOXAXik2dv6XM6XWlD+z3efl3yck1iI4bc24XKz7Nva9JuKtWMO/7QsUXBzxlNHF8lb2 ZiaA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b="h2/Da/Fh"; 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 nc4si956085ejc.944.2022.01.12.18.31.16; Wed, 12 Jan 2022 18:31:16 -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="h2/Da/Fh"; 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 0FE4C68B566; Thu, 13 Jan 2022 04:01:43 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f175.google.com (mail-qk1-f175.google.com [209.85.222.175]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9550368B51B for ; Thu, 13 Jan 2022 04:01:39 +0200 (EET) Received: by mail-qk1-f175.google.com with SMTP id g2so5619370qkp.1 for ; Wed, 12 Jan 2022 18:01:39 -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=MZtVWlKK5pusWXBOFEXqu1EdkLicEnBsq5qXerTeKhc=; b=h2/Da/FhfplicOaMTrIi65CqDbRU6FUpcnDNofwsxd5EsckvSUos+qsqKWzgzvLK3+ JfoLP3GIlyNYHRGqSGnSf28aruFuJBkfnkJIvu79ic9tyD78JtuEr5aSd58lylFwsCFs rvNzwJ9GVEZqGnpeaIHpOBGrxSn50cPPOzuIGdrgu323t2KDBbwIsRQbzfZWLxTcjKWz viep95FzPqDAfeA79q7TK7bEok/RbaO2BPeDaojIMuGfbZEdeUOGlEvCQl7F60xFkf1u 7atCcNIf6syqTBMYkUxYAFc66PcifhS+I//InkMIolXGoTFXqtQzd7/5X0jI1t7EQgLE JH5Q== 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=MZtVWlKK5pusWXBOFEXqu1EdkLicEnBsq5qXerTeKhc=; b=MYTSlXdQAGsTLYGTKyWLlxouKA3cc2OuG7SBBPxDC51ZZ4Wr3Mwi/++fd8j/uDhvOc 9xmoxL2nQAdRXpMaun0Q9XkH0VpEYMe6rlJa2p1YUcOY72KSmnA4TU/v0pbK9gfe61Zv eabZkGcOB8WGmHXtcbLurzFlLB1nTDFNZVAE2GGKFc+JKH5VCnUU/1biFFU2L51tXf+A B/HiJ9v3xwfhrbaM1Nd4a6q/vwiIcpysh0mn0gmVrBj7M+U41d31mP154DD8WncFvsyu kPw3x7eo5WIpX4lIeVvzobgTZmOG4GP5RGeiqa5jFRvTV872dDgMre8rdW+Y1CX9kkZg TEVQ== X-Gm-Message-State: AOAM531tU0GYflq8GuoessNewdWjQtkzLw6iad8eRQ6qQ4Vz6osutscQ /ulll4Bs0qgFVwHLOYBw2IBIfnVU6S4= X-Received: by 2002:a05:620a:a50:: with SMTP id j16mr1816707qka.337.1642039298215; Wed, 12 Jan 2022 18:01:38 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id y17sm1182232qtj.75.2022.01.12.18.01.37 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:01:37 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:00:22 -0300 Message-Id: <20220113020026.590-27-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 175/281] yop: 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: 5zH7OHDqWL3t From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/yop.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libavformat/yop.c b/libavformat/yop.c index f65e4f8b16..b0aa0bb64b 100644 --- a/libavformat/yop.c +++ b/libavformat/yop.c @@ -72,8 +72,7 @@ static int yop_read_header(AVFormatContext *s) audio_par = audio_stream->codecpar; audio_par->codec_type = AVMEDIA_TYPE_AUDIO; audio_par->codec_id = AV_CODEC_ID_ADPCM_IMA_APC; - audio_par->channels = 1; - audio_par->channel_layout = AV_CH_LAYOUT_MONO; + audio_par->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; audio_par->sample_rate = 22050; // Video From patchwork Thu Jan 13 02:00:23 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33451 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp36298iog; Wed, 12 Jan 2022 18:31:31 -0800 (PST) X-Google-Smtp-Source: ABdhPJwtYaR/J8ouCma81erPcdt8hjPc5PgK0Nxfh866SNvBMlbjZveS1loRFCHfsB2SVNFUp+NN X-Received: by 2002:a17:906:417:: with SMTP id d23mr1924112eja.469.1642041091058; Wed, 12 Jan 2022 18:31:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041091; cv=none; d=google.com; s=arc-20160816; b=I4278nw462oYocKcUBNQeAgA9Wqvz6Od2LSphqBAg83mD3WVSoEOGN4wgHkacZTpid gKkLlx3bYnUexHu9uH3cxz0HXMm8iy/n5gWrpM+ry114+XdS0ppi+Li5hQlg77bt496K vE4fkMoN+NZHqJivm2on53lw72wn/1DjJYk9s4RK3robOxRR12fG2pxvMITN4y0IXFnl XlFEyNH/mR+R9UufbYCsAR6cczbjoRIxAWDaNsHxk6u+SYMgohQ0K5Wtzgvr1ghxOlEH 4FtpInDxsobLzYykiYM9rOptF4PWH1E/2KdlN/ybTlKlMNiRIR27Kvob52dm+S7/CV4c 4rPA== 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=KpsciU/CmjPGirlu2ypTNol6g7SR58X87F5SdFFdyIY=; b=qVkXVUqD1wcmCDGGgxK4SV9JizPv8kV/Ui8uO//s1elYthG15op1GGWJ0QY0EV86d9 xHzexwHjwemqBCR5efi2tIdk2CHRRhtFKz+TZ5G4A4D+au8i6kfGm8ngIa4Wl/rdKKUk jnGItVkZfCh8flrZoNOYlGtwKh/SJB4rT7/rMkNaioBxHli875aM/ag5F1LFpBjSidPX 7kBFTeUOHaVQt+NGTyrPw+rIhvhkhmb3dOLVQhFdOG6JiV/YPwHNnvO3za6fzL775lbc DhgISfExYTo5Ue1igI2dfG0RKW17c2Th15e+Mv4XdRJbgtjlz6eK/hKwiDLYo0YsLYbb 4wxg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=ITdBw1aN; 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 ne35si992486ejc.748.2022.01.12.18.31.30; Wed, 12 Jan 2022 18:31:31 -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=ITdBw1aN; 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 F14FB68B574; Thu, 13 Jan 2022 04:01:46 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f45.google.com (mail-qv1-f45.google.com [209.85.219.45]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B3FF168B549 for ; Thu, 13 Jan 2022 04:01:40 +0200 (EET) Received: by mail-qv1-f45.google.com with SMTP id p12so5100659qvj.6 for ; Wed, 12 Jan 2022 18:01:40 -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=npsKb3Myfh0z3u7OF4WL10b9N1CHudhgs6f1jIjiMag=; b=ITdBw1aNBrURTHInQffBW4KqRdo5UXHJd6N3CL8gecSWx6Pph0m++5X2ITkOaMMW59 mSTWmc8DjopOFjbVm6GdLwTs+L8d/rk93fRA8WiJeXe2FuDMH5sYG6QLk4AvQbTxEK27 FGcRHe86uISWE49C0AQoWWNfinYmdO3rspm4QjjfMYD4ZZ6rPgYorBr18qlsM47Fk/za IiYCWy7JgEXQom4UurPVqadQFIH1tWxmxESTFJ0SEciCu0v8Kji+BtgE7O7abvGdMVS8 Yjh9JJWgWZfcpPTtUPEZEAJzZYYjn4nC5EzbDxhepwnfCC9PsqoAwH+KihTgfzjkk42c Kc+g== 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=npsKb3Myfh0z3u7OF4WL10b9N1CHudhgs6f1jIjiMag=; b=mwy98+FiNXkGcMLKzN/orfwSg/mLqS1OJajqQT213EdFu49s0lWbZsazYoJBAa16fc /Tfpq5InGmXfrUS994jADNYNoYecnBH2oi2YOkg2/wOuwui7usXtkHcQu3EOn4e6Z+qI cO/Lc4EfXrHgplnh72yxl1GWuOQB25o43eVBl2jK/O4f/7FYWMhIk0aKigtpoPksDwc1 Wt1Mfl/dPatqI5TI3U2v17QQAzl/mWZd2FsU/KFsqbIilsq/fmfgmiw7yBQoe0jtSCJ9 LkmFCcSQoBohq/Z1CbN5Rh2PjnClf43kHEoyc+2LLpmiyJ18izS2UWgoyF9wfnEOKmTt 5uKA== X-Gm-Message-State: AOAM533l+GPEVeyO88a0GoSsDVYhg7SO+EyHLJJ3IU6GBaTtwI1UgrX9 YJqmOdcyqGS5BTNw9ZF81k25vS7peyA= X-Received: by 2002:a05:6214:230f:: with SMTP id gc15mr2191819qvb.98.1642039299435; Wed, 12 Jan 2022 18:01:39 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id y17sm1182232qtj.75.2022.01.12.18.01.38 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:01:39 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:00:23 -0300 Message-Id: <20220113020026.590-28-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 176/281] wsd: 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: 4fSJvtqOZmnT From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavformat/wsddec.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/libavformat/wsddec.c b/libavformat/wsddec.c index 1f90f5b467..a8754f84e4 100644 --- a/libavformat/wsddec.c +++ b/libavformat/wsddec.c @@ -128,18 +128,22 @@ static int wsd_read_header(AVFormatContext *s) st->codecpar->codec_id = s->iformat->raw_codec_id; st->codecpar->sample_rate = avio_rb32(pb) / 8; avio_skip(pb, 4); - st->codecpar->channels = avio_r8(pb) & 0xF; - st->codecpar->bit_rate = (int64_t)st->codecpar->channels * st->codecpar->sample_rate * 8LL; - if (!st->codecpar->channels) + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = avio_r8(pb) & 0xF; + st->codecpar->bit_rate = (int64_t)st->codecpar->ch_layout.nb_channels * + st->codecpar->sample_rate * 8LL; + if (!st->codecpar->ch_layout.nb_channels) return AVERROR_INVALIDDATA; avio_skip(pb, 3); channel_assign = avio_rb32(pb); if (!(channel_assign & 1)) { + uint64_t ch_mask = 0; int i; for (i = 1; i < 32; i++) if ((channel_assign >> i) & 1) - st->codecpar->channel_layout |= wsd_to_av_channel_layoyt(s, i); + ch_mask |= wsd_to_av_channel_layoyt(s, i); + av_channel_layout_from_mask(&st->codecpar->ch_layout, ch_mask); } avio_skip(pb, 16); From patchwork Thu Jan 13 02:00: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: 33452 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp36437iog; Wed, 12 Jan 2022 18:31:45 -0800 (PST) X-Google-Smtp-Source: ABdhPJxUQ2NT5WaJzM1X9efuAOx85AZfpbi7QJhh4t/9s5Nv+dJ3pQ5EpTRluIKiO4nKZcPQHJEq X-Received: by 2002:aa7:c1d7:: with SMTP id d23mr2223172edp.25.1642041105732; Wed, 12 Jan 2022 18:31:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041105; cv=none; d=google.com; s=arc-20160816; b=QQqUye7ukfTyz6cSwJxqE/T9bNODCGO5d6dNAQQPMg862h1SU224yVQwcvFJTrCnhk KgNk0uOg6nBh7O5FPnbH+gv0O6HlvETL30R34iNyqTDUWjJVP8x7JogoRjop8LPx66/9 IEQqpf83yaQoV7l3btFF3ai0qbTQd1i8MUai0yGPNOi63XMh9Ro68RheLaWWnlXnutic J9eGcIPHDfU/KB4BsWJtwOm8Hk1SOARgxhuyuyAr1lE9gNPro5G0h3SUnBrLUIYX06Ww 2SpeULVAgITiukUvbaTpH/q6xSNd0mFj7T9hgNn/7gR+0ZImCKcibp0YH0mAIZlKT29E pscg== 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=UMq2r8N+24y6c5wB2jq+ebg8LQkH2UEyaMm2ci9+Td8=; b=hifahw937RxXwzQRlVsLe65e34klRllpTwOoLMJQvR0RvOdS74cS+fSDUjMTNtjYBH Cc9vuHfnWpjR0vcbNhMxcjdiTkN8a2GF1Wa7wahnK+a945xmGQws6I/lck4Zs0OCJbtg LzmkOcgRpZ3TcgACK48XleNIKWxVQaY+YwU//00tFFksNV4az4mvkeVplO+HQuHskOrS wtTpwPXJKfkaWp9RhkmjBMyZp9kKU+SMR7sJGsLcYPpYeQrvE1f/ubQyo2JvU3tAriOa ygu2XoTH++8dROf+pAeXTmuvdyCnoU9GfxHByMeM+zcW2BnE4TlzILtksQvwKw99ysTm 01Dg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=d5IJq3c5; 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 i16si790412ejw.829.2022.01.12.18.31.45; Wed, 12 Jan 2022 18:31:45 -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=d5IJq3c5; 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 CECF968B57B; Thu, 13 Jan 2022 04:01:47 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f46.google.com (mail-qv1-f46.google.com [209.85.219.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E6FE368B573 for ; Thu, 13 Jan 2022 04:01:41 +0200 (EET) Received: by mail-qv1-f46.google.com with SMTP id q4so5101337qvh.9 for ; Wed, 12 Jan 2022 18:01:41 -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=aVaUTiXoEzBU0jSlidrpr61Y2a2XL5MEpVArjXT13xo=; b=d5IJq3c58FvOmClDN4NzyEII6M8NRA2SvR5lIigXY6pbdgQe8dtWzTX09CkuC3aHkn /XsM40DIy90sAvwEiR27D5IiPuU8BC1zNzJfCeqb9pqx1i+3kRhXwEbAqX7vb5mvQvMb xIuB/JJHaMx3mPnUjaNSzbbNc8xe06q4Iwc379Z1g843SGjmnaL7AF+qsReYz6W1MTj+ gMicOyUJVxA5v4X6qZUWhzwYLhi6F96QyTLg6gtAQnJxCmGZVbVptXpOAPkQ3/OtNDPh nMWotdpekn7oqAbHkNTZd+1ZwP53P1U6NCPKc1dIo2T7PMecVINQByYc+9XW15IItCzp M1rA== 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=aVaUTiXoEzBU0jSlidrpr61Y2a2XL5MEpVArjXT13xo=; b=4pR7PtHH7jPxOh0bMCcwipTRnv5BBazGOSrO+XhgKFMO8hFKli5AqCXnwaOLxdvwdY b7namcppo7DFrmw1GrZ0hjgj0ZfCC1x3OkA8ELlagxDRoHfvO5Y+3hmVo9G5lxpHQQTJ 5bEf5N8wFAu7eDW4d+p5OdWQ6hLU7XQyeNQXYBR32clHxiHG1IhYec2tm9bpYsrXXn7W FMSodIioBa+k6x2teAJ+f1Y0oc4IoDkTkC9aJiYrg7TOlFruaZ1BLPlnBe1ZNZSlidS6 HXxd1VvgTG+kipvKUt7d5GXg+yvWXaRmdiapj9PI/y1m4pNxeDMeYBCoU7pnv+RLStgB o4VA== X-Gm-Message-State: AOAM5315L4TaBhcSZkCgcn15D8/7E2kGfN3j9CLjo5Z1rIY4mrns20aJ kSqeoBk5Vp2MQMSl/B5fwCflajK/e6A= X-Received: by 2002:ad4:4eac:: with SMTP id ed12mr2095968qvb.71.1642039300624; Wed, 12 Jan 2022 18:01:40 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id y17sm1182232qtj.75.2022.01.12.18.01.39 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:01:40 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:00:24 -0300 Message-Id: <20220113020026.590-29-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 177/281] wve: 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: BdYv4OCLc9TX From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/wvedec.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libavformat/wvedec.c b/libavformat/wvedec.c index f133da3c87..9b2f7036e0 100644 --- a/libavformat/wvedec.c +++ b/libavformat/wvedec.c @@ -43,9 +43,11 @@ static int wve_read_header(AVFormatContext *s) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_CODEC_ID_PCM_ALAW; st->codecpar->sample_rate = 8000; - st->codecpar->channels = 1; + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = 1; st->codecpar->bits_per_coded_sample = av_get_bits_per_sample(st->codecpar->codec_id); - st->codecpar->block_align = st->codecpar->bits_per_coded_sample * st->codecpar->channels / 8; + st->codecpar->block_align = st->codecpar->bits_per_coded_sample * + st->codecpar->ch_layout.nb_channels / 8; avpriv_set_pts_info(st, 64, 1, st->codecpar->sample_rate); avio_skip(s->pb, 10); From patchwork Thu Jan 13 02:00:25 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33453 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp36562iog; Wed, 12 Jan 2022 18:32:00 -0800 (PST) X-Google-Smtp-Source: ABdhPJx+qxDSpTmZ859cvQNJWJfAXK+FMcPNqaLuJF9D2KVzU9F+x9K4BsltzFAZna+AMtXvtfi0 X-Received: by 2002:a17:907:62a1:: with SMTP id nd33mr1900583ejc.578.1642041120142; Wed, 12 Jan 2022 18:32:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041120; cv=none; d=google.com; s=arc-20160816; b=U756xY7ZcL9uBrMA3BPWmXX2vSHn23nyO4fqMh7+sdIve4ZNTTkFi7sx6ADdROfUhD upRroNSnov6Ushx6r9ju1dbRDGEwM5Eu4l6Keowx4ERBzGDWU0kJ4gzqlb+Xx3J965Zn +U1FtOvwAloNc1+jIzZmk3XOyklUIumEWBQuuQ4Yyc3Mhph7+aDY0PqpnQAf9Xg3twqM 0qQVReIWFXE4gSfdYmjI31aj7rBLDXdlpsJdzLWiLaPkENYMDPtAxtTGcd8S5LFjlKhx 0LfeQIi+gHAq7zCw0Lv6dTeZytalB4p5bk9WmBxc7axQfPNw+jcvPYc84szteEgf4pkE DV1w== 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=1tS433QeNaTQa8jPHBxq+XU8GRIVTHHW857V1ptkVis=; b=b9HQ4XZa2TAVREe0BSNEczrKcG5E4me2kLNrPZMp43YAgDeCLiRD+T3dD9JSBlkRAY 2m9nbSBpSdPWljpij3iH9KZQSYccNmLhSvvDTShRjggU1HPGBVCJsGd9MSH2r7zThpyJ 2NB73XoNZu5AqCIPEeQZZnM/krBHu3RAlnIrZjfN3eJ1LQk6w9RcvI1wFQmi3XkpP0wR MpZbh4sR7Oa71rxT0te9QEjeyif5//uLWI1SFsJGUk16qNiykP0N8d29m6MOZ9W7qEF5 JXcEF5Jr29Ta+DP9cQA6sb7PA1Jp8tQ6etTnjCG1v/jeu0xD1Xx0TGWbKkQuGo7b96oU zjuQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b="WWlia/xc"; 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 ji3si864307ejc.138.2022.01.12.18.31.59; Wed, 12 Jan 2022 18:32:00 -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="WWlia/xc"; 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 F15D568B575; Thu, 13 Jan 2022 04:01:49 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f51.google.com (mail-qv1-f51.google.com [209.85.219.51]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2689B68B57C for ; Thu, 13 Jan 2022 04:01:43 +0200 (EET) Received: by mail-qv1-f51.google.com with SMTP id r6so5052756qvr.13 for ; Wed, 12 Jan 2022 18:01:43 -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=Mowc+tY3VrSgO+kIHI4C1JmG8lGgTdZYYIK+TAmXswo=; b=WWlia/xcQik+KqCBOmkiq/V9zHiVSrZx0PuVGvytOURPg275YAkuWgn0YwFSOxKOYg xZmJ3QaLY+XPFKz70/4+JRD/fT9tkSL1c+2U70ETYxIcKNSazwPtmCCOSm5sQ4ec8MOx MBcY0P7Yvx3Rbtz1vjCgPZV+w6VGwrvXZEW17DA4kV7VLq+5uLtI+VN48w08xa6dmLyI utvr33FJJ91vqpPgIQailqehXnFJV5XWFMmbi+2HPtRRKKlYmEb0OQ/HkhHzN8qth3pe oJJXqbo4c9Ef74BN3dCI8KD+LSzFNKSAo8iRSULCxJZrNRsVa79QSA5D3B9rSRILufYX c8CQ== 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=Mowc+tY3VrSgO+kIHI4C1JmG8lGgTdZYYIK+TAmXswo=; b=sYD7MNqrfdCiyfTHzmzCxRri5wP+8AAF/jq9iopO0yJ1cCD8I2EUI33SPLzJ1NMkNI 5JsamVB12OX5R1C/wrMGUf9yWBDcoT9M9/5YN33MjhfjJ5ZrvkdQivR/hrcUFxD1IPOc LackgzwsWjl4r1nxjClKRV2aw+bA6/44np+0fps1yLUoK4zEK1n1Q07beQodMO37/e/g 5hMOZDirg1z3cyqiPb9gldoOFqW4mYtymRTyZTdhjYT+9kk/HfIc3tEq5hXZuVDT1p0y bCwm5+DE7jTSa4npuezt0NJcRm0+Vy1XVH4rRjidDwQzfgGHNpxLAB5YO/dK+rlKk3RB xV2A== X-Gm-Message-State: AOAM5336TtqIHWPncrRu1JetRjuEOV8ScoRUD7Df/aDPsQcJ8wxUZKw2 kA9fuliisTpQDwB5O+uIjV4EGN8+qDk= X-Received: by 2002:a05:6214:2a82:: with SMTP id jr2mr2298800qvb.79.1642039301850; Wed, 12 Jan 2022 18:01:41 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id y17sm1182232qtj.75.2022.01.12.18.01.40 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:01:41 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:00:25 -0300 Message-Id: <20220113020026.590-30-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 178/281] xvag: 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: WNZZ2cqUXIfL From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavformat/xvag.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/libavformat/xvag.c b/libavformat/xvag.c index 994b710f8d..61f33ddaf8 100644 --- a/libavformat/xvag.c +++ b/libavformat/xvag.c @@ -45,6 +45,7 @@ static int xvag_read_header(AVFormatContext *s) return AVERROR(ENOMEM); st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; offset = avio_rl32(s->pb); big_endian = offset > av_bswap32(offset); @@ -52,7 +53,7 @@ static int xvag_read_header(AVFormatContext *s) offset = av_bswap32(offset); avio_skip(s->pb, 28); codec = avio_rb32(s->pb); - st->codecpar->channels = avio_rb32(s->pb); + st->codecpar->ch_layout.nb_channels = avio_rb32(s->pb); avio_skip(s->pb, 4); st->duration = avio_rb32(s->pb); avio_skip(s->pb, 8); @@ -60,7 +61,7 @@ static int xvag_read_header(AVFormatContext *s) } else { avio_skip(s->pb, 28); codec = avio_rl32(s->pb); - st->codecpar->channels = avio_rl32(s->pb); + st->codecpar->ch_layout.nb_channels = avio_rl32(s->pb); avio_skip(s->pb, 4); st->duration = avio_rl32(s->pb); avio_skip(s->pb, 8); @@ -69,13 +70,14 @@ static int xvag_read_header(AVFormatContext *s) if (st->codecpar->sample_rate <= 0) return AVERROR_INVALIDDATA; - if (st->codecpar->channels <= 0 || st->codecpar->channels > FF_SANE_NB_CHANNELS) + if (st->codecpar->ch_layout.nb_channels <= 0 || + st->codecpar->ch_layout.nb_channels > FF_SANE_NB_CHANNELS) return AVERROR_INVALIDDATA; switch (codec) { case 0x1c: st->codecpar->codec_id = AV_CODEC_ID_ADPCM_PSX; - st->codecpar->block_align = 16 * st->codecpar->channels; + st->codecpar->block_align = 16 * st->codecpar->ch_layout.nb_channels; break; default: avpriv_request_sample(s, "codec %X", codec); From patchwork Thu Jan 13 02:00:26 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33444 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp36684iog; Wed, 12 Jan 2022 18:32:12 -0800 (PST) X-Google-Smtp-Source: ABdhPJxwcHR0VwcJKkLsjIsfXP6xEcCwSQqCdBkFd7RlN9XcHm11+blPbi/R1P98P2U1mV0Ey25M X-Received: by 2002:a50:d691:: with SMTP id r17mr2244581edi.317.1642041132271; Wed, 12 Jan 2022 18:32:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041132; cv=none; d=google.com; s=arc-20160816; b=ceEeQswN5YSZL0+rZQrpAj3qBIDVqwkXywM8V21w55y0CX1OVDn01cRTcXOMyjw80v edQ6PT28GBJ1O9hELWORW/53UaKfuvQqVJpOUoc7Pp9r3/1WglOtHOPUQ7OZZZXnpsDL 0DoPg/XYfqNwIzQiVXnNn6FMGcvLsTEmnYNiUI7ZsepPuBR/3a573iuONXGkv3+w4ijS s9IeP85a6yjY1vVxdxgzH7RBrz7sZT/A1ZdUZzy4Sf9LjTvpgbF3q8iPgLSvSmKYrn9v 8zMs+4NygY4eXQ1NfXuktw34916vfDOg8J4kmmXc99vvzeh7AbVgBWX4xmklRrPDn2zn mUQw== 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=6bY2rltOu1X0J61Ql+aXG6+h6Uzpem3dlYq1kjbUjUI=; b=FiNt2LG2224rFCFrMrYxivaRq1Jr+AdLxuQXQrZekfdC+qESNZOeI1VrOpHcmTzOut OK6O+mm1NjXu7Tm22o7D9t/0kbw4axCqVbOBn+vvw6jOXGqFjU0UVOQZxEgXVwnEHCyC iqkvOtEcwdaXk73K/RjO+1SMyluXyVV9Lc+bPb9EMD7vzabJnh0i9slMjm/FQpzTAF57 Fi4eqXk+O8e4v80ktc4ITuFusUkaucPo7VNp4Wrerle+UYIzOR6OvAxsAKig/Z5vG2Xi bT3vZfpFOrN0vMsYmcnOUJzOTQ20HHLWGl8vr+4KvhlA3UE+3VKlUZZCivVEuswJdBFn 6IiA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=H+gTw5bw; 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 gk1si809055ejc.516.2022.01.12.18.32.12; Wed, 12 Jan 2022 18:32:12 -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=H+gTw5bw; 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 0C0C568B589; Thu, 13 Jan 2022 04:01:51 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f177.google.com (mail-qt1-f177.google.com [209.85.160.177]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5F3B768B57A for ; Thu, 13 Jan 2022 04:01:44 +0200 (EET) Received: by mail-qt1-f177.google.com with SMTP id y17so5331213qtx.9 for ; Wed, 12 Jan 2022 18:01:44 -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=p1o1duv44UTAlXx+dlcMBtEC3aDl6XuDDN5CEPRMYck=; b=H+gTw5bwMZAjs+WGALYV1jWv/ANsfc3IaFEy/HrKDZy4Km2jCcAXdMm1dWORPsjkhD OmYhQ3C5iHYLbd6+7TCzfXI5P3hc80lPGjHINADYVHPChkePtpwbvscRv8LLTNz4F8y7 K6O5k6XFmJ36q2Xktl4PXc1vlnZLnSviqwXVoMF7vHydvmLu1KcTT4fRRPU0/dGssjBl PQ0Lz/TwiAPv5/tUqFyrYmNnJFguCsPGsuW6CcIVTkcdv/UJXHok1O5jnvkp2s8WwttG CNZpS3TXTYj/kRfo5eI+BnZP2SMng8sNnP7Pb1k4xcBN9VfNM3rnWPsWJKRwfq5kC5yO EZOQ== 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=p1o1duv44UTAlXx+dlcMBtEC3aDl6XuDDN5CEPRMYck=; b=Jvn2nfu0/JE0teaCQNZqUXd7RIZ/zvMFa4bzLy7Fw46jAfrfS630invukIfsClZf+L Eq05cxMbFp1tn8nEHIZXT0TG7+WNzfkmmbn5n06ddDZtPDxUAhqK65RJng+ot4PJrh2F R/ldbG5IHtxnq6Pgp8muSVV1A9Cgr6yd6K9D+1ZXpi0w24RoZCEbau4YkvvHRFpIQxW/ 9vypotUPA/RshvIxS/I6nwb/1m2AV4XLKdt4imWvA3DKkUyvYEcSOjtd8u1eeLakwu9y G+GYog5S/pfj60/51sdCRVGtPHSykWkLmFMczByNClb5y9H0AuGkHzrr1es5ZSTTBzFF sb9Q== X-Gm-Message-State: AOAM5316DbtVqYsn2rRlDX/N9vAiVG3jtX53pMVqkElJevKdezhKp0ZN Z0JQrn3mgnpwYpbXI2pjqUPH3kmm3JA= X-Received: by 2002:a05:622a:1a90:: with SMTP id s16mr2009391qtc.129.1642039303045; Wed, 12 Jan 2022 18:01:43 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id y17sm1182232qtj.75.2022.01.12.18.01.42 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:01:42 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:00:26 -0300 Message-Id: <20220113020026.590-31-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 179/281] lavf: drop the channel layout compat layer for old-style (de)muxers 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: SP+9JQHRJtEA From: Anton Khirnov All the (de)muxers have been converted to the new API. Signed-off-by: James Almer --- libavformat/demux.c | 12 ------------ libavformat/mux.c | 9 --------- 2 files changed, 21 deletions(-) diff --git a/libavformat/demux.c b/libavformat/demux.c index 29c5f7539c..a9682a5949 100644 --- a/libavformat/demux.c +++ b/libavformat/demux.c @@ -194,18 +194,6 @@ static int update_stream_avctx(AVFormatContext *s) sti->parser = NULL; } - /* if the demuxer exports old channel layouts, convert it to new */ - if (!st->codecpar->ch_layout.nb_channels && - st->codecpar->channels) { - if (st->codecpar->channel_layout) { - av_channel_layout_from_mask(&st->codecpar->ch_layout, - st->codecpar->channel_layout); - } else { - st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; - st->codecpar->ch_layout.nb_channels = st->codecpar->channels; - } - } - #if FF_API_OLD_CHANNEL_LAYOUT FF_DISABLE_DEPRECATION_WARNINGS if (st->codecpar->ch_layout.nb_channels && diff --git a/libavformat/mux.c b/libavformat/mux.c index 68983c773f..e68738e5c6 100644 --- a/libavformat/mux.c +++ b/libavformat/mux.c @@ -273,15 +273,6 @@ static int init_muxer(AVFormatContext *s, AVDictionary **options) goto fail; } - /* if the new-style channel layout is set, convert it to old one - * for old-style muxers */ - if (par->ch_layout.nb_channels && - !par->channels) { - par->channels = par->ch_layout.nb_channels; - par->channel_layout = par->ch_layout.order == AV_CHANNEL_ORDER_NATIVE ? - par->ch_layout.u.mask : 0; - } - #if FF_API_OLD_CHANNEL_LAYOUT FF_DISABLE_DEPRECATION_WARNINGS /* if the caller is using the deprecated channel layout API, From patchwork Thu Jan 13 02:02: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: 33454 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp36829iog; Wed, 12 Jan 2022 18:32:26 -0800 (PST) X-Google-Smtp-Source: ABdhPJw/DI1mNFBVu8GaXNhy4iedcJsHdAo5DzbnlKAooNygO5QHHMo/G5T+RbDt6TUTwIoCVJF+ X-Received: by 2002:a17:906:1e4f:: with SMTP id i15mr1862558ejj.522.1642041146110; Wed, 12 Jan 2022 18:32:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041146; cv=none; d=google.com; s=arc-20160816; b=qozH6ITGxRcdwpHkH9A6x83QmrmdYz3L9t3W4SBgJmAnj+fbS47yTTu9XphOIQSoIs 54VsiNtqz/YAkVFiVMruokI546hsv+3RjarNJv+/cvVTeceaDkuV9svFacVUiE4WkLGq hot4k63WzPeZ3fwtOaAoeL/+QNjpY5ynS6bPw+HDVZhHtkWFZowNlXzRodB2s7z3WGEB CLmW9YgwWKncwJRBoblZFlfA3moHPx/fZwjCy4wMrlAW+TuVqGohWjKim8IHFdUAi/eR h1c2EYaB9MlUxl/K+FmrKyu+keD8o8iFPeFxqnsoPfnUZeZccbw1LVPDr0SmfJdElfkl +o2g== 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=afV08xhxg8+1MTzjlNxTEHD5X5rXzRyf0ptAiC6kX+o=; b=vGLZ/olI7nHF2185yRtSsHpk87HG2jHlsgcQ7d9viUIIA68E9WKcYVHulXc8keT91/ AmhTyuRjJGfims8zoctq8HlylEsngTLbj/CN9DCTeV8U+0g2phQe0eKCOec6e1sAmGyZ 1RcPh4LJmbbwtCOtqaWq94E51x3x1DLicBaHw1xd2A9OX9c+uQGd1gMWlCrE2pthIr1X KfoJXyz14zL/3SDvzv6LMdZFmD/0lqBbvBunNufXvvcJ7JN4ISPKts8CNEfkll376kk1 IGECDSGM2Gi8McX0r3HZL8IP/51L+RKGYBewanoI9ahUT8tt2KhTtSHdCjvAL+dOCrLc MXGA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=Pep7MXN6; 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 qb19si930419ejc.308.2022.01.12.18.32.25; Wed, 12 Jan 2022 18:32:26 -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=Pep7MXN6; 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 51F7A68B5A6; Thu, 13 Jan 2022 04:03:00 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f182.google.com (mail-qt1-f182.google.com [209.85.160.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B452168B59F for ; Thu, 13 Jan 2022 04:02:58 +0200 (EET) Received: by mail-qt1-f182.google.com with SMTP id y10so5384163qtw.1 for ; Wed, 12 Jan 2022 18:02:58 -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=omhCX5KV/Uh7HF4neTsA74WRN1+qBeyW+3YcN1KEd68=; b=Pep7MXN69HHv3WkkuIi+DIldWgLCP9c0j40NRt+Y4p+BOOz3n7pNx5vZfNPhCTyoxd M6YQrCTHiMtQCXjv5cMhc/kMViKd0RgqUV8kYmQCgbS6wWsPso1Ipwe631Ww2gH0Bpuf q89pxYN/00J89mdTWu4ktdaiXWPqV5F/HygX4yVIgnB2B04jELiwqCd/uD1FhRSmLHFS zn5eji97F5RT1JsDg8sTOm2WDO8rZ4Wjm4/JgyyYgvAb6F4w7hj4y5UNOCoBBQtjst/j KgjinNXfCtXUEyw6xhG9kRizyO3D3rO/8Zw/UWKB07GTPd1pJ5FPrRvl8/I7Rhvtm/K9 BfWg== 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=omhCX5KV/Uh7HF4neTsA74WRN1+qBeyW+3YcN1KEd68=; b=i7EsLYdtIYM2s0QR/360XgJ20Q5U4bkwVZCe3A8yBFvAzMwx4+8rFAZKsIu1TAd5lC 3iO4HtGy+GzyczqMZ/UlgUnGw9R/k7q0+3uk7Yzgxl2U25B87AJ4R4f+smaqhp+PETMO 6jf8NFkypa4JTMStXDa5cGCoiktyLci+m5fyxobjOdAKEY/Y4zVQDekPYV7OIw0OXdK3 6Q7arbK3BVNUkyuGg4a4I0kqHeH5MfIT1Oe6FZTIFRG1rE7GF9O60iylqzgSlmBx2u4T Vo1IBQTNtNnEKIKN2hde9OlR/XkohFd9f6GW0GQatU+cRccfZRflvOE5JaEnheyNmBUg 0rVQ== X-Gm-Message-State: AOAM5334hhQl0ocE+CpeKlC4oZ4F4N/+99r4bo5AWcEOLP1e7F/Bi3NV kj2AQ5XpKKfulSXbjYWEe0acvXrZMTU= X-Received: by 2002:a05:622a:489:: with SMTP id p9mr1999855qtx.343.1642039376800; Wed, 12 Jan 2022 18:02:56 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id v1sm1045961qtc.95.2022.01.12.18.02.55 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:02:56 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:02:13 -0300 Message-Id: <20220113020242.661-1-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 180/281] lavc: switch to the 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: wE7ThbQjZkJr From: Vittorio Giovara Since the request_channel_layout is used only by a handful of codecs, move the option to codec private contexts. Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavcodec/avcodec.c | 82 +++++++++++++++++++++++++++++---- libavcodec/avcodec.h | 24 +++++++++- libavcodec/codec.h | 11 +++++ libavcodec/codec_par.c | 52 ++++++++++++++++----- libavcodec/decode.c | 94 ++++++++++++++++++++++++++++---------- libavcodec/encode.c | 36 ++++++++++++--- libavcodec/internal.h | 3 ++ libavcodec/options.c | 2 + libavcodec/options_table.h | 5 ++ libavcodec/pthread_frame.c | 10 +++- libavcodec/utils.c | 12 ++++- libavformat/demux.c | 2 +- 12 files changed, 278 insertions(+), 55 deletions(-) diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c index c00a9b2af8..0436a6d0bd 100644 --- a/libavcodec/avcodec.c +++ b/libavcodec/avcodec.c @@ -119,7 +119,7 @@ static int64_t get_bit_rate(AVCodecContext *ctx) case AVMEDIA_TYPE_AUDIO: bits_per_sample = av_get_bits_per_sample(ctx->codec_id); if (bits_per_sample) { - bit_rate = ctx->sample_rate * (int64_t)ctx->channels; + bit_rate = ctx->sample_rate * (int64_t)ctx->ch_layout.nb_channels; if (bit_rate > INT64_MAX / bits_per_sample) { bit_rate = 0; } else @@ -137,6 +137,8 @@ static int64_t get_bit_rate(AVCodecContext *ctx) int attribute_align_arg avcodec_open2(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options) { int ret = 0; + int orig_channels; + uint64_t orig_channel_layout; AVCodecInternal *avci; if (avcodec_is_open(avctx)) @@ -247,12 +249,6 @@ int attribute_align_arg avcodec_open2(AVCodecContext *avctx, const AVCodec *code } } - if (avctx->channels > FF_SANE_NB_CHANNELS || avctx->channels < 0) { - av_log(avctx, AV_LOG_ERROR, "Too many or invalid channels: %d\n", avctx->channels); - ret = AVERROR(EINVAL); - goto free_and_end; - } - if (avctx->sample_rate < 0) { av_log(avctx, AV_LOG_ERROR, "Invalid sample rate: %d\n", avctx->sample_rate); ret = AVERROR(EINVAL); @@ -264,6 +260,38 @@ int attribute_align_arg avcodec_open2(AVCodecContext *avctx, const AVCodec *code goto free_and_end; } +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + /* compat wrapper for old-style callers */ + if (avctx->channel_layout && !avctx->channels) + avctx->channels = av_popcount64(avctx->channel_layout); + + if ((avctx->channels && avctx->channels != avctx->ch_layout.nb_channels) || + (avctx->channel_layout && avctx->ch_layout.order != AV_CHANNEL_ORDER_NATIVE)) { + if (avctx->channel_layout) { + av_channel_layout_from_mask(&avctx->ch_layout, avctx->channel_layout); + } else { + avctx->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + avctx->ch_layout.nb_channels = avctx->channels; + } + } + + /* temporary compat wrapper for new-style callers and old-style codecs; + * to be removed once all the codecs have been converted */ + if (avctx->ch_layout.nb_channels) { + avctx->channels = avctx->ch_layout.nb_channels; + avctx->channel_layout = avctx->ch_layout.order == AV_CHANNEL_ORDER_NATIVE ? + avctx->ch_layout.u.mask : 0; + } +FF_ENABLE_DEPRECATION_WARNINGS +#endif + + if (avctx->ch_layout.nb_channels > FF_SANE_NB_CHANNELS) { + av_log(avctx, AV_LOG_ERROR, "Too many channels: %d\n", avctx->ch_layout.nb_channels); + ret = AVERROR(EINVAL); + goto free_and_end; + } + avctx->frame_number = 0; avctx->codec_descriptor = avcodec_descriptor_get(avctx->codec_id); @@ -317,6 +345,13 @@ int attribute_align_arg avcodec_open2(AVCodecContext *avctx, const AVCodec *code if (!HAVE_THREADS && !(codec->caps_internal & FF_CODEC_CAP_AUTO_THREADS)) avctx->thread_count = 1; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + orig_channels = avctx->channels; + orig_channel_layout = avctx->channel_layout; +FF_ENABLE_DEPRECATION_WARNINGS +#endif + if (!(avctx->active_thread_type & FF_THREAD_FRAME) || avci->frame_thread_encoder) { if (avctx->codec->init) { @@ -334,6 +369,26 @@ int attribute_align_arg avcodec_open2(AVCodecContext *avctx, const AVCodec *code if (av_codec_is_decoder(avctx->codec)) { if (!avctx->bit_rate) avctx->bit_rate = get_bit_rate(avctx); + +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + /* decoder setting the old-style fields */ + if (avctx->channels != orig_channels || + avctx->channel_layout != orig_channel_layout) { + av_channel_layout_uninit(&avctx->ch_layout); + if (avctx->channel_layout) { + av_channel_layout_from_mask(&avctx->ch_layout, avctx->channel_layout); + } else { + avctx->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + avctx->ch_layout.nb_channels = avctx->channels; + } + } + + /* update the deprecated fields for old-style callers */ + avctx->channels = avctx->ch_layout.nb_channels; + avctx->channel_layout = avctx->ch_layout.order == AV_CHANNEL_ORDER_NATIVE ? + avctx->ch_layout.u.mask : 0; + /* validate channel layout from the decoder */ if (avctx->channel_layout) { int channels = av_get_channel_layout_nb_channels(avctx->channel_layout); @@ -358,6 +413,8 @@ int attribute_align_arg avcodec_open2(AVCodecContext *avctx, const AVCodec *code ret = AVERROR(EINVAL); goto free_and_end; } +FF_ENABLE_DEPRECATION_WARNINGS +#endif #if FF_API_AVCTX_TIMEBASE if (avctx->framerate.num > 0 && avctx->framerate.den > 0) @@ -484,9 +541,13 @@ av_cold int avcodec_close(AVCodecContext *avctx) av_bsf_free(&avci->bsf); + av_channel_layout_uninit(&avci->initial_ch_layout); + av_freep(&avctx->internal); } + av_channel_layout_uninit(&avctx->ch_layout); + for (i = 0; i < avctx->nb_coded_side_data; i++) av_freep(&avctx->coded_side_data[i].data); av_freep(&avctx->coded_side_data); @@ -666,7 +727,12 @@ void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode) if (enc->sample_rate) { av_bprintf(&bprint, "%d Hz, ", enc->sample_rate); } - av_bprint_channel_layout(&bprint, enc->channels, enc->channel_layout); + { + char buf[512]; + int ret = av_channel_layout_describe(&enc->ch_layout, buf, sizeof(buf)); + if (ret >= 0) + av_bprintf(&bprint, "%s", buf); + } if (enc->sample_fmt != AV_SAMPLE_FMT_NONE && (str = av_get_sample_fmt_name(enc->sample_fmt))) { av_bprintf(&bprint, ", %s", str); diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index ec1a0566a4..8c72c77985 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -990,7 +990,15 @@ typedef struct AVCodecContext { /* audio only */ int sample_rate; ///< samples per second - int channels; ///< number of audio channels + +#if FF_API_OLD_CHANNEL_LAYOUT + /** + * number of audio channels + * @deprecated use ch_layout.nb_channels + */ + attribute_deprecated + int channels; +#endif /** * audio sample format @@ -1035,19 +1043,25 @@ typedef struct AVCodecContext { */ int cutoff; +#if FF_API_OLD_CHANNEL_LAYOUT /** * Audio channel layout. * - encoding: set by user. * - decoding: set by user, may be overwritten by libavcodec. + * @deprecated use ch_layout */ + attribute_deprecated uint64_t channel_layout; /** * Request decoder to use this channel layout if it can (0 for default) * - encoding: unused * - decoding: Set by user. + * @deprecated use "downmix" codec private option */ + attribute_deprecated uint64_t request_channel_layout; +#endif /** * Type of service that the audio stream conveys. @@ -2024,6 +2038,14 @@ typedef struct AVCodecContext { * - decoding: unused */ int (*get_encode_buffer)(struct AVCodecContext *s, AVPacket *pkt, int flags); + + /** + * Audio channel layout. + * - encoding: must be set by the caller, to one of AVCodec.ch_layouts. + * - decoding: may be set by the caller if known e.g. from the container. + * The decoder can then override during decoding as needed. + */ + AVChannelLayout ch_layout; } AVCodecContext; struct MpegEncContext; diff --git a/libavcodec/codec.h b/libavcodec/codec.h index a8147ec21f..204a558798 100644 --- a/libavcodec/codec.h +++ b/libavcodec/codec.h @@ -224,7 +224,13 @@ typedef struct AVCodec { const enum AVPixelFormat *pix_fmts; ///< array of supported pixel formats, or NULL if unknown, array is terminated by -1 const int *supported_samplerates; ///< array of supported audio samplerates, or NULL if unknown, array is terminated by 0 const enum AVSampleFormat *sample_fmts; ///< array of supported sample formats, or NULL if unknown, array is terminated by -1 +#if FF_API_OLD_CHANNEL_LAYOUT + /** + * @deprecated use ch_layouts instead + */ + attribute_deprecated const uint64_t *channel_layouts; ///< array of support channel layouts, or NULL if unknown. array is terminated by 0 +#endif const AVClass *priv_class; ///< AVClass for the private context const AVProfile *profiles; ///< array of recognized profiles, or NULL if unknown, array is terminated by {FF_PROFILE_UNKNOWN} @@ -240,6 +246,11 @@ typedef struct AVCodec { */ const char *wrapper_name; + /** + * Array of supported channel layouts, terminated with a zeroed layout. + */ + const AVChannelLayout *ch_layouts; + /***************************************************************** * No fields below this line are part of the public API. They * may not be used outside of libavcodec and can be changed and diff --git a/libavcodec/codec_par.c b/libavcodec/codec_par.c index 9d43af1db4..052c64a315 100644 --- a/libavcodec/codec_par.c +++ b/libavcodec/codec_par.c @@ -125,11 +125,25 @@ int avcodec_parameters_from_context(AVCodecParameters *par, break; case AVMEDIA_TYPE_AUDIO: par->format = codec->sample_fmt; - if (codec->channel_layout) - av_channel_layout_from_mask(&par->ch_layout, codec->channel_layout); - else { - par->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; - par->ch_layout.nb_channels = codec->channels; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + // if the old/new fields are set inconsistently, prefer the old ones + if ((codec->channels && codec->channels != codec->ch_layout.nb_channels) || + (codec->channel_layout && (codec->ch_layout.order != AV_CHANNEL_ORDER_NATIVE || + codec->ch_layout.u.mask != codec->channel_layout))) { + if (codec->channel_layout) + av_channel_layout_from_mask(&par->ch_layout, codec->channel_layout); + else { + par->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + par->ch_layout.nb_channels = codec->channels; + } +FF_ENABLE_DEPRECATION_WARNINGS + } else +#endif + if (codec->ch_layout.nb_channels) { + int ret = av_channel_layout_copy(&par->ch_layout, &codec->ch_layout); + if (ret < 0) + return ret; } #if FF_API_OLD_CHANNEL_LAYOUT FF_DISABLE_DEPRECATION_WARNINGS @@ -191,18 +205,32 @@ int avcodec_parameters_to_context(AVCodecContext *codec, break; case AVMEDIA_TYPE_AUDIO: codec->sample_fmt = par->format; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + // if the old/new fields are set inconsistently, prefer the old ones + if ((par->channels && par->channels != par->ch_layout.nb_channels) || + (par->channel_layout && (par->ch_layout.order != AV_CHANNEL_ORDER_NATIVE || + par->ch_layout.u.mask != par->channel_layout))) { + if (par->channel_layout) + av_channel_layout_from_mask(&codec->ch_layout, par->channel_layout); + else { + codec->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + codec->ch_layout.nb_channels = par->channels; + } +FF_ENABLE_DEPRECATION_WARNINGS + } else +#endif if (par->ch_layout.nb_channels) { - codec->channel_layout = par->ch_layout.order == AV_CHANNEL_ORDER_NATIVE ? - par->ch_layout.u.mask : 0; - codec->channels = par->ch_layout.nb_channels; + int ret = av_channel_layout_copy(&codec->ch_layout, &par->ch_layout); + if (ret < 0) + return ret; } #if FF_API_OLD_CHANNEL_LAYOUT - else { FF_DISABLE_DEPRECATION_WARNINGS - codec->channel_layout = par->channel_layout; - codec->channels = par->channels; + codec->channel_layout = codec->ch_layout.order == AV_CHANNEL_ORDER_NATIVE ? + codec->ch_layout.u.mask : 0; + codec->channels = codec->ch_layout.nb_channels; FF_ENABLE_DEPRECATION_WARNINGS - } #endif codec->sample_rate = par->sample_rate; codec->block_align = par->block_align; diff --git a/libavcodec/decode.c b/libavcodec/decode.c index 60127e95fc..6381ec68e1 100644 --- a/libavcodec/decode.c +++ b/libavcodec/decode.c @@ -359,10 +359,14 @@ static inline int decode_simple_internal(AVCodecContext *avctx, AVFrame *frame, if (ret >= 0 && got_frame) { if (frame->format == AV_SAMPLE_FMT_NONE) frame->format = avctx->sample_fmt; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS if (!frame->channel_layout) frame->channel_layout = avctx->channel_layout; if (!frame->channels) frame->channels = avctx->channels; +FF_ENABLE_DEPRECATION_WARNINGS +#endif if (!frame->sample_rate) frame->sample_rate = avctx->sample_rate; } @@ -394,7 +398,7 @@ static inline int decode_simple_internal(AVCodecContext *avctx, AVFrame *frame, avci->skip_samples); } else { av_samples_copy(frame->extended_data, frame->extended_data, 0, avci->skip_samples, - frame->nb_samples - avci->skip_samples, avctx->channels, frame->format); + frame->nb_samples - avci->skip_samples, avctx->ch_layout.nb_channels, frame->format); if(avctx->pkt_timebase.num && avctx->sample_rate) { int64_t diff_ts = av_rescale_q(avci->skip_samples, (AVRational){1, avctx->sample_rate}, @@ -683,8 +687,17 @@ int attribute_align_arg avcodec_receive_frame(AVCodecContext *avctx, AVFrame *fr case AVMEDIA_TYPE_AUDIO: avci->initial_sample_rate = frame->sample_rate ? frame->sample_rate : avctx->sample_rate; - avci->initial_channels = frame->channels; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + avci->initial_channels = frame->ch_layout.nb_channels; avci->initial_channel_layout = frame->channel_layout; +FF_ENABLE_DEPRECATION_WARNINGS +#endif + ret = av_channel_layout_copy(&avci->initial_ch_layout, &frame->ch_layout); + if (ret < 0) { + av_frame_unref(frame); + return ret; + } break; } } @@ -698,10 +711,15 @@ int attribute_align_arg avcodec_receive_frame(AVCodecContext *avctx, AVFrame *fr avci->initial_height != frame->height; break; case AVMEDIA_TYPE_AUDIO: +FF_DISABLE_DEPRECATION_WARNINGS changed |= avci->initial_sample_rate != frame->sample_rate || avci->initial_sample_rate != avctx->sample_rate || +#if FF_API_OLD_CHANNEL_LAYOUT avci->initial_channels != frame->channels || - avci->initial_channel_layout != frame->channel_layout; + avci->initial_channel_layout != frame->channel_layout || +#endif + av_channel_layout_compare(&avci->initial_ch_layout, &frame->ch_layout); +FF_ENABLE_DEPRECATION_WARNINGS break; } @@ -1263,7 +1281,13 @@ static int update_frame_pool(AVCodecContext *avctx, AVFrame *frame) if (avctx->codec_type == AVMEDIA_TYPE_AUDIO) { int planar = av_sample_fmt_is_planar(frame->format); - ch = frame->channels; + ch = frame->ch_layout.nb_channels; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + if (!ch) + ch = frame->channels; +FF_ENABLE_DEPRECATION_WARNINGS +#endif planes = planar ? ch : 1; } @@ -1571,25 +1595,18 @@ int ff_decode_frame_props(AVCodecContext *avctx, AVFrame *frame) frame->sample_rate = avctx->sample_rate; if (frame->format < 0) frame->format = avctx->sample_fmt; - if (!frame->channel_layout) { - if (avctx->channel_layout) { - if (av_get_channel_layout_nb_channels(avctx->channel_layout) != - avctx->channels) { - av_log(avctx, AV_LOG_ERROR, "Inconsistent channel " - "configuration.\n"); - return AVERROR(EINVAL); - } - - frame->channel_layout = avctx->channel_layout; - } else { - if (avctx->channels > FF_SANE_NB_CHANNELS) { - av_log(avctx, AV_LOG_ERROR, "Too many channels: %d.\n", - avctx->channels); - return AVERROR(ENOSYS); - } - } + if (!frame->ch_layout.nb_channels) { + int ret = av_channel_layout_copy(&frame->ch_layout, &avctx->ch_layout); + if (ret < 0) + return ret; } - frame->channels = avctx->channels; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + frame->channels = frame->ch_layout.nb_channels; + frame->channel_layout = frame->ch_layout.order == AV_CHANNEL_ORDER_NATIVE ? + frame->ch_layout.u.mask : 0; +FF_ENABLE_DEPRECATION_WARNINGS +#endif break; } return 0; @@ -1679,7 +1696,36 @@ int ff_get_buffer(AVCodecContext *avctx, AVFrame *frame, int flags) goto fail; } } else if (avctx->codec_type == AVMEDIA_TYPE_AUDIO) { - if (frame->nb_samples * (int64_t)avctx->channels > avctx->max_samples) { +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + /* temporary compat layer for decoders setting the old-style channel + * layout fields; shall be removed after all the decoders are converted + * to the new API */ + if ((avctx->channels > 0 && avctx->ch_layout.nb_channels != avctx->channels) || + (avctx->channel_layout && (avctx->ch_layout.order != AV_CHANNEL_ORDER_NATIVE || + avctx->ch_layout.u.mask != avctx->channel_layout))) { + av_channel_layout_uninit(&avctx->ch_layout); + if (avctx->channel_layout) { + if (av_popcount64(avctx->channel_layout) != avctx->channels) { + av_log(avctx, AV_LOG_ERROR, "Inconsistent channel layout/channels\n"); + ret = AVERROR(EINVAL); + goto fail; + } + av_channel_layout_from_mask(&avctx->ch_layout, avctx->channel_layout); + } else { + avctx->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + avctx->ch_layout.nb_channels = avctx->channels; + } + } + + /* compat layer for old-style get_buffer() implementations */ + avctx->channels = avctx->ch_layout.nb_channels; + avctx->channel_layout = (avctx->ch_layout.order == AV_CHANNEL_ORDER_NATIVE) ? + avctx->ch_layout.u.mask : 0; +FF_ENABLE_DEPRECATION_WARNINGS +#endif + + if (frame->nb_samples * (int64_t)avctx->ch_layout.nb_channels > avctx->max_samples) { av_log(avctx, AV_LOG_ERROR, "samples per frame %d, exceeds max_samples %"PRId64"\n", frame->nb_samples, avctx->max_samples); ret = AVERROR(EINVAL); goto fail; @@ -1789,7 +1835,7 @@ FF_DISABLE_DEPRECATION_WARNINGS FF_ENABLE_DEPRECATION_WARNINGS #endif - if (avctx->codec_type == AVMEDIA_TYPE_AUDIO && avctx->channels == 0 && + if (avctx->codec_type == AVMEDIA_TYPE_AUDIO && avctx->ch_layout.nb_channels == 0 && !(avctx->codec->capabilities & AV_CODEC_CAP_CHANNEL_CONF)) { av_log(avctx, AV_LOG_ERROR, "Decoder requires channel count but channels not set\n"); return AVERROR(EINVAL); diff --git a/libavcodec/encode.c b/libavcodec/encode.c index 618be0573d..f9f8879b8e 100644 --- a/libavcodec/encode.c +++ b/libavcodec/encode.c @@ -114,9 +114,10 @@ static int pad_last_frame(AVCodecContext *s, AVFrame *frame, const AVFrame *src) int ret; frame->format = src->format; - frame->channel_layout = src->channel_layout; - frame->channels = src->channels; frame->nb_samples = s->frame_size; + ret = av_channel_layout_copy(&frame->ch_layout, &s->ch_layout); + if (ret < 0) + goto fail; ret = av_frame_get_buffer(frame, 0); if (ret < 0) goto fail; @@ -126,11 +127,12 @@ static int pad_last_frame(AVCodecContext *s, AVFrame *frame, const AVFrame *src) goto fail; if ((ret = av_samples_copy(frame->extended_data, src->extended_data, 0, 0, - src->nb_samples, s->channels, s->sample_fmt)) < 0) + src->nb_samples, s->ch_layout.nb_channels, + s->sample_fmt)) < 0) goto fail; if ((ret = av_samples_set_silence(frame->extended_data, src->nb_samples, frame->nb_samples - src->nb_samples, - s->channels, s->sample_fmt)) < 0) + s->ch_layout.nb_channels, s->sample_fmt)) < 0) goto fail; return 0; @@ -419,7 +421,7 @@ int ff_encode_preinit(AVCodecContext *avctx) for (i = 0; avctx->codec->sample_fmts[i] != AV_SAMPLE_FMT_NONE; i++) { if (avctx->sample_fmt == avctx->codec->sample_fmts[i]) break; - if (avctx->channels == 1 && + if (avctx->ch_layout.nb_channels == 1 && av_get_planar_sample_fmt(avctx->sample_fmt) == av_get_planar_sample_fmt(avctx->codec->sample_fmts[i])) { avctx->sample_fmt = avctx->codec->sample_fmts[i]; @@ -467,7 +469,27 @@ int ff_encode_preinit(AVCodecContext *avctx) avctx->sample_rate); return AVERROR(EINVAL); } - if (avctx->codec->channel_layouts) { + if (avctx->codec->ch_layouts) { + if (!av_channel_layout_check(&avctx->ch_layout)) { + av_log(avctx, AV_LOG_WARNING, "Channel layout not specified correctly\n"); + return AVERROR(EINVAL); + } + + for (i = 0; avctx->codec->ch_layouts[i].nb_channels; i++) { + if (!av_channel_layout_compare(&avctx->ch_layout, &avctx->codec->ch_layouts[i])) + break; + } + if (!avctx->codec->ch_layouts[i].nb_channels) { + char buf[512]; + int ret = av_channel_layout_describe(&avctx->ch_layout, buf, sizeof(buf)); + if (ret > 0) + av_log(avctx, AV_LOG_ERROR, "Specified channel layout '%s' is not supported\n", buf); + return AVERROR(EINVAL); + } +FF_DISABLE_DEPRECATION_WARNINGS + } +#if FF_API_OLD_CHANNEL_LAYOUT + else if (avctx->codec->channel_layouts) { if (!avctx->channel_layout) { av_log(avctx, AV_LOG_WARNING, "Channel layout not specified\n"); } else { @@ -500,6 +522,8 @@ int ff_encode_preinit(AVCodecContext *avctx) avctx->channels); return AVERROR(EINVAL); } +FF_ENABLE_DEPRECATION_WARNINGS +#endif if(avctx->codec_type == AVMEDIA_TYPE_VIDEO) { const AVPixFmtDescriptor *pixdesc = av_pix_fmt_desc_get(avctx->pix_fmt); if ( avctx->bits_per_raw_sample < 0 diff --git a/libavcodec/internal.h b/libavcodec/internal.h index 72ca1553f6..51d827c1fe 100644 --- a/libavcodec/internal.h +++ b/libavcodec/internal.h @@ -208,8 +208,11 @@ typedef struct AVCodecInternal { int initial_format; int initial_width, initial_height; int initial_sample_rate; +#if FF_API_OLD_CHANNEL_LAYOUT int initial_channels; uint64_t initial_channel_layout; +#endif + AVChannelLayout initial_ch_layout; } AVCodecInternal; struct AVCodecDefault { diff --git a/libavcodec/options.c b/libavcodec/options.c index bba6078b62..c0b874fa05 100644 --- a/libavcodec/options.c +++ b/libavcodec/options.c @@ -187,7 +187,9 @@ static const AVOption frame_options[]={ {"width", "", FOFFSET(width), AV_OPT_TYPE_INT, {.i64 = 0 }, 0, INT_MAX, 0}, {"height", "", FOFFSET(height), AV_OPT_TYPE_INT, {.i64 = 0 }, 0, INT_MAX, 0}, {"format", "", FOFFSET(format), AV_OPT_TYPE_INT, {.i64 = -1 }, 0, INT_MAX, 0}, +#if FF_API_OLD_CHANNEL_LAYOUT {"channel_layout", "", FOFFSET(channel_layout), AV_OPT_TYPE_INT64, {.i64 = 0 }, 0, INT64_MAX, 0}, +#endif {"sample_rate", "", FOFFSET(sample_rate), AV_OPT_TYPE_INT, {.i64 = 0 }, 0, INT_MAX, 0}, {NULL}, }; diff --git a/libavcodec/options_table.h b/libavcodec/options_table.h index 130341a2ec..4dca85747e 100644 --- a/libavcodec/options_table.h +++ b/libavcodec/options_table.h @@ -89,7 +89,9 @@ static const AVOption avcodec_options[] = { {"time_base", NULL, OFFSET(time_base), AV_OPT_TYPE_RATIONAL, {.dbl = 0}, 0, INT_MAX}, {"g", "set the group of picture (GOP) size", OFFSET(gop_size), AV_OPT_TYPE_INT, {.i64 = 12 }, INT_MIN, INT_MAX, V|E}, {"ar", "set audio sampling rate (in Hz)", OFFSET(sample_rate), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, 0, INT_MAX, A|D|E}, +#if FF_API_OLD_CHANNEL_LAYOUT {"ac", "set number of audio channels", OFFSET(channels), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, 0, INT_MAX, A|D|E}, +#endif {"cutoff", "set cutoff bandwidth", OFFSET(cutoff), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, A|E}, {"frame_size", NULL, OFFSET(frame_size), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, 0, INT_MAX, A|E}, {"frame_number", NULL, OFFSET(frame_number), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX}, @@ -262,8 +264,11 @@ static const AVOption avcodec_options[] = { {"mv0_threshold", NULL, OFFSET(mv0_threshold), AV_OPT_TYPE_INT, {.i64 = 256 }, 0, INT_MAX, V|E}, {"compression_level", NULL, OFFSET(compression_level), AV_OPT_TYPE_INT, {.i64 = FF_COMPRESSION_DEFAULT }, INT_MIN, INT_MAX, V|A|E}, {"bits_per_raw_sample", NULL, OFFSET(bits_per_raw_sample), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, 0, INT_MAX}, +{"ch_layout", NULL, OFFSET(ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str = NULL }, 0, 0, A|E|D, "ch_layout"}, +#if FF_API_OLD_CHANNEL_LAYOUT {"channel_layout", NULL, OFFSET(channel_layout), AV_OPT_TYPE_CHANNEL_LAYOUT, {.i64 = DEFAULT }, 0, UINT64_MAX, A|E|D, "channel_layout"}, {"request_channel_layout", NULL, OFFSET(request_channel_layout), AV_OPT_TYPE_CHANNEL_LAYOUT, {.i64 = DEFAULT }, 0, UINT64_MAX, A|D, "request_channel_layout"}, +#endif {"rc_max_vbv_use", NULL, OFFSET(rc_max_available_vbv_use), AV_OPT_TYPE_FLOAT, {.dbl = 0 }, 0.0, FLT_MAX, V|E}, {"rc_min_vbv_use", NULL, OFFSET(rc_min_vbv_overflow_use), AV_OPT_TYPE_FLOAT, {.dbl = 3 }, 0.0, FLT_MAX, V|E}, {"ticks_per_frame", NULL, OFFSET(ticks_per_frame), AV_OPT_TYPE_INT, {.i64 = 1 }, 1, INT_MAX, A|V|E|D}, diff --git a/libavcodec/pthread_frame.c b/libavcodec/pthread_frame.c index 85a6bc98c1..c051f43e4a 100644 --- a/libavcodec/pthread_frame.c +++ b/libavcodec/pthread_frame.c @@ -297,10 +297,18 @@ static int update_context_from_thread(AVCodecContext *dst, AVCodecContext *src, dst->hwaccel = src->hwaccel; dst->hwaccel_context = src->hwaccel_context; - dst->channels = src->channels; dst->sample_rate = src->sample_rate; dst->sample_fmt = src->sample_fmt; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + dst->channels = src->channels; dst->channel_layout = src->channel_layout; +FF_ENABLE_DEPRECATION_WARNINGS +#endif + err = av_channel_layout_copy(&dst->ch_layout, &src->ch_layout); + if (err < 0) + return err; + dst->internal->hwaccel_priv_data = src->internal->hwaccel_priv_data; if (!!dst->hw_frames_ctx != !!src->hw_frames_ctx || diff --git a/libavcodec/utils.c b/libavcodec/utils.c index 0505ea6ba2..373fb56357 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -805,8 +805,16 @@ static int get_audio_frame_duration(enum AVCodecID id, int sr, int ch, int ba, int av_get_audio_frame_duration(AVCodecContext *avctx, int frame_bytes) { - int duration = get_audio_frame_duration(avctx->codec_id, avctx->sample_rate, - avctx->channels, avctx->block_align, + int channels = avctx->ch_layout.nb_channels; + int duration; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + if (!channels) + channels = avctx->channels; +FF_ENABLE_DEPRECATION_WARNINGS +#endif + duration = get_audio_frame_duration(avctx->codec_id, avctx->sample_rate, + channels, avctx->block_align, avctx->codec_tag, avctx->bits_per_coded_sample, avctx->bit_rate, avctx->extradata, avctx->frame_size, frame_bytes); diff --git a/libavformat/demux.c b/libavformat/demux.c index a9682a5949..c7710a5a7b 100644 --- a/libavformat/demux.c +++ b/libavformat/demux.c @@ -1946,7 +1946,7 @@ static int has_codec_parameters(const AVStream *st, const char **errmsg_ptr) FAIL("unspecified sample format"); if (!avctx->sample_rate) FAIL("unspecified sample rate"); - if (!avctx->channels) + if (!avctx->ch_layout.nb_channels) FAIL("unspecified number of channels"); if (sti->info->found_decoder >= 0 && !sti->nb_decoded_frames && avctx->codec_id == AV_CODEC_ID_DTS) FAIL("no decodable DTS frames"); From patchwork Thu Jan 13 02:02: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: 33455 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp36976iog; Wed, 12 Jan 2022 18:32:40 -0800 (PST) X-Google-Smtp-Source: ABdhPJwd4EQ9DjVRrFIJUp5HGGgaCQZWMVZff2ycfWVxJMan6D3a5WRCbUclET3u4tdCR0tLD/hw X-Received: by 2002:a17:907:3e91:: with SMTP id hs17mr1895851ejc.384.1642041160428; Wed, 12 Jan 2022 18:32:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041160; cv=none; d=google.com; s=arc-20160816; b=Wa2y3LHLyv1Twqe6vDwEwrLV4mOnsomOxWOoXPxK3xFpKKVy0lhlZQRu02B+mr7NWX gP9Z2/IbKu66KvXFSnQTi5YLWELaAKqC1fZN5EQcvh96Qf4A7S73enTj80yH7AB9Jx6u n1xZKsHRp775WziNqVj7SWOwjbuRNkq+8uH3zqvMMldfY/bNpe9ajUjAz5RsYGsZsCul 55/5irCYGA4EWa2LR+QHwPGZV59OtOdV08WpUF7ZoPZgnYYxUxBSuigmtxXycCLMgvVp e8DOhXIPo2dFXV89k68lYZFU59FqYO4AOoSoQopXyB6bl3wPJEak/bIlRAOGTLf2QmQc 84bQ== 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=i5eHeA3UVuK26smM4x+c/OkzaKMyYwT4D2TJIk4YW+s=; b=Mgxq3NY1FTP2t+J0lv6J1umfLYjMu3gwdDps7rMYWAogRBi6a1ypv7Gmoq5ErRjdYH YEV1znO6jY8dz4ztM6ZvG+BKwkiWgdAiAeXOXdxNOIl612Q75sOMuZ9tB7wUgG9BrgtA AyWmZdU7Ob8JlEYph+RKdmQznq8+g1XS75PrtysbfIxDM+VMziikw2nn6xgj0FqggfNw BSf61y/vpzHeGXAlgr2zOeBw0C5BZxyjPnzmkzj8lc+yhetcNQkBT4MO6ZlYXQ5Iv9BR VD73T3Hvws5JQt+4liHxnRPoSPRSMy0m6ZZpjlgLtA7am5O9jCukPSTk5t6vBNPtzogh 3/bQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b="Kj/tY4IK"; 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 pv8si754333ejb.284.2022.01.12.18.32.39; Wed, 12 Jan 2022 18:32:40 -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="Kj/tY4IK"; 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 4EDD468B5B3; Thu, 13 Jan 2022 04:03:01 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f172.google.com (mail-qt1-f172.google.com [209.85.160.172]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A091468B586 for ; Thu, 13 Jan 2022 04:02:59 +0200 (EET) Received: by mail-qt1-f172.google.com with SMTP id f17so5347123qtf.8 for ; Wed, 12 Jan 2022 18:02:59 -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=2f5ZezIXZiTo3YVZLHysET0XIgDsctgDpAHf2Y4U/w8=; b=Kj/tY4IKYmmeGoblKkevlsFi8qv3E894WpD+4d62S0jKaFP18RgCC6D1v1SEWwQxbB ruogpN/94cXZmHpqBveJaQCiuztVQminCwcDtLFQYSr0JEpuKeUROkXMRerdqqdf7ITT lm185nCTzKdkwmD16HiYqsbA5LJN/xe0X3X0pdZva5qLQDaoUd6IJiN/H0yCUBLKLYZj vlZYic9uDTV/HFKnhulxWWJY3LTSLdrRlGiygbjAJlQ05wn48LUrFjFzaTr8mKQs4TLi Or+iXiuwWTcR1R3P7aqyAx81gue+XjPOgsHj/hkzgqS6Xt53KxxpTe914cA+LkzZvK0C Yq9A== 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=2f5ZezIXZiTo3YVZLHysET0XIgDsctgDpAHf2Y4U/w8=; b=LQdivU+u7wTTIMe7JajUPSHRCmg2WJr3Xz7ZUvTrtJ5N89DDt+WRnuwcjEkEwrvm8i JVvRYEhuNmNjSCuKw6PmQ3f6Rk30WJS8GRE455Jri2FVlHg84iHxDnVNno6xNXPKlH5V vXqp4L0TEaSlFBGgXewuxU8qzfI1d1uOZ/km47wYGwvvnv2MneF2lLdlv84KCosV8RBn KWiA+o1tCkFlkaz2AK+cVm5LHQq7cvQCujMimCiodgqunD4X1zpjzie7m5oTLuzLROZ/ gV0D0oseuPML5PZ6BTAaC+y8tN5IAPp5MVVr8vSARiXLIovVixEaLQ6yT5Itk+Yemevb fTeg== X-Gm-Message-State: AOAM5303RM5MQx1c8EvHq1+AYEZqPesWU6OaIlQlgLFN2pOyP+qcyjDD ICFKAH6nQh4nw3b4HjPcucdq0Vk99x4= X-Received: by 2002:a05:622a:203:: with SMTP id b3mr2031840qtx.640.1642039378211; Wed, 12 Jan 2022 18:02:58 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id v1sm1045961qtc.95.2022.01.12.18.02.57 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:02:57 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:02:14 -0300 Message-Id: <20220113020242.661-2-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 181/281] 8svx: 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: leWsBQ4FSkbc From: Anton Khirnov Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavcodec/8svx.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/libavcodec/8svx.c b/libavcodec/8svx.c index 6ef8cd73fe..6ef7921274 100644 --- a/libavcodec/8svx.c +++ b/libavcodec/8svx.c @@ -88,38 +88,39 @@ static int eightsvx_decode_frame(AVCodecContext *avctx, void *data, { EightSvxContext *esc = avctx->priv_data; AVFrame *frame = data; + int channels = avctx->ch_layout.nb_channels; int buf_size; int ch, ret; int hdr_size = 2; /* decode and interleave the first packet */ if (!esc->data[0] && avpkt) { - int chan_size = avpkt->size / avctx->channels - hdr_size; + int chan_size = avpkt->size / channels - hdr_size; - if (avpkt->size % avctx->channels) { + if (avpkt->size % channels) { av_log(avctx, AV_LOG_WARNING, "Packet with odd size, ignoring last byte\n"); } - if (avpkt->size < (hdr_size + 1) * avctx->channels) { + if (avpkt->size < (hdr_size + 1) * channels) { av_log(avctx, AV_LOG_ERROR, "packet size is too small\n"); return AVERROR_INVALIDDATA; } esc->fib_acc[0] = avpkt->data[1] + 128; - if (avctx->channels == 2) + if (channels == 2) esc->fib_acc[1] = avpkt->data[2+chan_size+1] + 128; esc->data_idx = 0; esc->data_size = chan_size; if (!(esc->data[0] = av_malloc(chan_size))) return AVERROR(ENOMEM); - if (avctx->channels == 2) { + if (channels == 2) { if (!(esc->data[1] = av_malloc(chan_size))) { av_freep(&esc->data[0]); return AVERROR(ENOMEM); } } memcpy(esc->data[0], &avpkt->data[hdr_size], chan_size); - if (avctx->channels == 2) + if (channels == 2) memcpy(esc->data[1], &avpkt->data[2*hdr_size+chan_size], chan_size); } if (!esc->data[0]) { @@ -139,7 +140,7 @@ static int eightsvx_decode_frame(AVCodecContext *avctx, void *data, if ((ret = ff_get_buffer(avctx, frame, 0)) < 0) return ret; - for (ch = 0; ch < avctx->channels; ch++) { + for (ch = 0; ch < channels; ch++) { delta_decode(frame->data[ch], &esc->data[ch][esc->data_idx], buf_size, &esc->fib_acc[ch], esc->table); } @@ -148,14 +149,14 @@ static int eightsvx_decode_frame(AVCodecContext *avctx, void *data, *got_frame_ptr = 1; - return ((avctx->frame_number == 0)*hdr_size + buf_size)*avctx->channels; + return ((avctx->frame_number == 0) * hdr_size + buf_size) * channels; } static av_cold int eightsvx_decode_init(AVCodecContext *avctx) { EightSvxContext *esc = avctx->priv_data; - if (avctx->channels < 1 || avctx->channels > 2) { + if (avctx->ch_layout.nb_channels < 1 || avctx->ch_layout.nb_channels > 2) { av_log(avctx, AV_LOG_ERROR, "8SVX does not support more than 2 channels\n"); return AVERROR_INVALIDDATA; } From patchwork Thu Jan 13 02:02: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: 33456 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp37078iog; Wed, 12 Jan 2022 18:32:55 -0800 (PST) X-Google-Smtp-Source: ABdhPJwL14q9fwux1blDxau9RKkImnPwP0Urv7Ie3QBxlkRpXhgzfgGBpOU8MzGbSPd1fHK4vqan X-Received: by 2002:a17:907:1b06:: with SMTP id mp6mr2011674ejc.275.1642041174970; Wed, 12 Jan 2022 18:32:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041174; cv=none; d=google.com; s=arc-20160816; b=z/YdvC9bsQwzFFwMEHkoMnRYn7GGg4aOPo1XpWgrnEWUBXyr9YmBug2qdl4/Dskftl oiMxli3wdowGRoJ3oiTjPoK9E/61VkvTBhTQNkof6N5Ze+iGHVeawMuFwucRkKYJ5WAC tN0EMwmqI8VlfEE6aviG4vKdcvwv15wIK90MwJrj15NRPQPN5CBNWrSa2sF5EwYzG9zZ /sox1EkVDC7IsdB3Jn8OUYqfalPFPyM2GAemP/Z8GJRm4COnArC3wuYi93njslEJ2KMb K86WRy6l7fOvz+kSwmxQj+ULQlSvX7eJQeghFCX5bDdOLhEb+SzNIBYrEhgONw6J9kAc ZfYQ== 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=iBnkRAW9vp0KsphFiafi5hraV58XEzoesrYwaacsQPI=; b=y63tud3Akxcme/+xLRcFKqDW2TdOI6FE1o1T/YxAHnN6AwyjJmuLh2Q9uMy3hyHmRC DVGwDUKr9SRtx7e/R5Chvvt2Y9Fs/WwLwHOVieZ1nZT7cjd0OnZzm+RgNYKWx+iPt8JO HdScApeGunAVZuNyr9PDA2TgePbh3nNaSrynxmphwPXoh99Uhe3F5GFqO2gDDVhiJYi/ 5yxDy6vswO6LZRF7T5Mi19TjIm45OH+AK0iAJgnJGyLiPy3L9ayLvTDFcOYA16rNtCiG 1JdWvSgOdkiR0VqXHBK8seAV0ecuOY5bIyvnV3deXSQ7Ye9z2OHc+U6z6dlWxP/iGyaW vzAg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=a9fLTRb4; 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 bj11si684724ejb.453.2022.01.12.18.32.54; Wed, 12 Jan 2022 18:32:54 -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=a9fLTRb4; 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 4694968B5C9; Thu, 13 Jan 2022 04:03:08 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f173.google.com (mail-qk1-f173.google.com [209.85.222.173]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6CBD668B5B9 for ; Thu, 13 Jan 2022 04:03:01 +0200 (EET) Received: by mail-qk1-f173.google.com with SMTP id z10so1225590qkf.7 for ; Wed, 12 Jan 2022 18:03:01 -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=KsN47SwuWcdLnCbSyQ2hNJZlJfKO34sYR+c9A2ZHYiA=; b=a9fLTRb4j1EyOHGhq2dkbqhW0+I0G+hzXgjth7oPq1NqIV3H9bpmVMhCHgi7ISm8/t YifsLiSIZOlOC9EqL7+jyIMDFCUziAvvhA+PkIQsMRdPDqZ1QYqM2v5jGYuSTeob6AHG LjYHibGZS03kee+DKDT5EkZMa+8J5T5+i0VRBr9qGh9db7ITlalRM9DI8R16jap/VRxm mQLIKCBNduavS4DgsCwgYXMW2xszYaGPhCvtsf49Q+Y2kevjYqMMzdbXiPZdWTTD/1IV TnptcEtjgXI6b1PpXPmWUKgqUYAOTNbPIEnH9wmEjsaQ18KVTJJrXKvQPvhyuFlmMW0F l/vA== 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=KsN47SwuWcdLnCbSyQ2hNJZlJfKO34sYR+c9A2ZHYiA=; b=R+ddkcqmKF0RFgh4lqY2F2E2FVdu+Mory3HyI7K9/k8JVZE4hiQNQBloeY0zpJsdUM QzupbvEKQmEe1z9+SDSSyH7USm/0ohgSr49zrTE8Le8XWqR8Wyab0otaVzWCQkm0twKW eo0l6l2inHRtj0mz7c4QZjE8PPLumlV3TPIUFt6lQVLJaKVOXiUvQ1bSZ2m9DL7WyUsf aTBnAf3Xdy12/hjsMdNA8FcH4xLBc8lWDDUzlCLgLOnWC7VS7UoRiTYNSGIgNEOErliV 6BkUocjuWR4FDNX/PMAkdvW7ImmCypEWtPusL1KnffurRwjjgWqglMCoG1nuFyDNfzlP abWA== X-Gm-Message-State: AOAM532UlahREHGXkfk30ezNl/VME5QWlSN2rpHPqrbQNRzB5JuxFP4Q sSvdEn16F+A9Ygy0sa8ItOopFh2tCbw= X-Received: by 2002:a37:5ec5:: with SMTP id s188mr1895022qkb.228.1642039379528; Wed, 12 Jan 2022 18:02:59 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id v1sm1045961qtc.95.2022.01.12.18.02.58 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:02:59 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:02:15 -0300 Message-Id: <20220113020242.661-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 182/281] aac: 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: +puT/2oVe2gM From: Anton Khirnov Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavcodec/aac.h | 11 ++++-- libavcodec/aac_ac3_parser.c | 9 +++-- libavcodec/aaccoder.c | 10 +++--- libavcodec/aaccoder_twoloop.h | 4 +-- libavcodec/aacdec.c | 6 ++++ libavcodec/aacdec_fixed.c | 3 ++ libavcodec/aacdec_template.c | 59 ++++++++++++++++++++++++-------- libavcodec/aacdectab.h | 20 +++++++++++ libavcodec/aacenc.c | 13 ++++--- libavcodec/aacenc.h | 64 ++++++++++++++++++----------------- libavcodec/aacenctab.h | 16 ++++----- libavcodec/aacpsy.c | 8 ++--- libavcodec/psymodel.c | 8 ++--- libavcodec/psymodel.h | 2 +- 14 files changed, 154 insertions(+), 79 deletions(-) diff --git a/libavcodec/aac.h b/libavcodec/aac.h index 1e82f56ca9..53be546857 100644 --- a/libavcodec/aac.h +++ b/libavcodec/aac.h @@ -32,6 +32,7 @@ #include "aac_defines.h" +#include "libavutil/channel_layout.h" #include "libavutil/float_dsp.h" #include "libavutil/fixed_dsp.h" #include "libavutil/mem_internal.h" @@ -125,8 +126,7 @@ typedef struct OutputConfiguration { MPEG4AudioConfig m4ac; uint8_t layout_map[MAX_ELEM_ID*4][3]; int layout_map_tags; - int channels; - uint64_t channel_layout; + AVChannelLayout ch_layout; enum OCStatus status; } OutputConfiguration; @@ -288,6 +288,11 @@ typedef struct ChannelElement { SpectralBandReplication sbr; } ChannelElement; +enum AACOutputChannelOrder { + CHANNEL_ORDER_DEFAULT, + CHANNEL_ORDER_CODED, +}; + /** * main AAC context */ @@ -352,6 +357,8 @@ struct AACContext { int dmono_mode; ///< 0->not dmono, 1->use first channel, 2->use second channel /** @} */ + enum AACOutputChannelOrder output_channel_order; + DECLARE_ALIGNED(32, INTFLOAT, temp)[128]; OutputConfiguration oc[2]; diff --git a/libavcodec/aac_ac3_parser.c b/libavcodec/aac_ac3_parser.c index e84d30aea2..cd54a0a3e2 100644 --- a/libavcodec/aac_ac3_parser.c +++ b/libavcodec/aac_ac3_parser.c @@ -90,8 +90,13 @@ get_next: if (avctx->codec_id != AV_CODEC_ID_AAC) { avctx->sample_rate = s->sample_rate; if (!CONFIG_EAC3_DECODER || avctx->codec_id != AV_CODEC_ID_EAC3) { - avctx->channels = s->channels; - avctx->channel_layout = s->channel_layout; + av_channel_layout_uninit(&avctx->ch_layout); + if (s->channel_layout) { + av_channel_layout_from_mask(&avctx->ch_layout, s->channel_layout); + } else { + avctx->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + avctx->ch_layout.nb_channels = s->channels; + } } s1->duration = s->samples; avctx->audio_service_type = s->service_type; diff --git a/libavcodec/aaccoder.c b/libavcodec/aaccoder.c index 7bbd4d5b2e..f460479498 100644 --- a/libavcodec/aaccoder.c +++ b/libavcodec/aaccoder.c @@ -397,7 +397,7 @@ static void search_for_quantizers_fast(AVCodecContext *avctx, AACEncContext *s, const float lambda) { int start = 0, i, w, w2, g; - int destbits = avctx->bit_rate * 1024.0 / avctx->sample_rate / avctx->channels * (lambda / 120.f); + int destbits = avctx->bit_rate * 1024.0 / avctx->sample_rate / avctx->ch_layout.nb_channels * (lambda / 120.f); float dists[128] = { 0 }, uplims[128] = { 0 }; float maxvals[128]; int fflag, minscaler; @@ -556,7 +556,7 @@ static void search_for_pns(AACEncContext *s, AVCodecContext *avctx, SingleChanne const float pns_transient_energy_r = FFMIN(0.7f, lambda / 140.f); int refbits = avctx->bit_rate * 1024.0 / avctx->sample_rate - / ((avctx->flags & AV_CODEC_FLAG_QSCALE) ? 2.0f : avctx->channels) + / ((avctx->flags & AV_CODEC_FLAG_QSCALE) ? 2.0f : avctx->ch_layout.nb_channels) * (lambda / 120.f); /** Keep this in sync with twoloop's cutoff selection */ @@ -564,7 +564,7 @@ static void search_for_pns(AACEncContext *s, AVCodecContext *avctx, SingleChanne int prev = -1000, prev_sf = -1; int frame_bit_rate = (avctx->flags & AV_CODEC_FLAG_QSCALE) ? (refbits * rate_bandwidth_multiplier * avctx->sample_rate / 1024) - : (avctx->bit_rate / avctx->channels); + : (avctx->bit_rate / avctx->ch_layout.nb_channels); frame_bit_rate *= 1.15f; @@ -693,14 +693,14 @@ static void mark_pns(AACEncContext *s, AVCodecContext *avctx, SingleChannelEleme const float pns_transient_energy_r = FFMIN(0.7f, lambda / 140.f); int refbits = avctx->bit_rate * 1024.0 / avctx->sample_rate - / ((avctx->flags & AV_CODEC_FLAG_QSCALE) ? 2.0f : avctx->channels) + / ((avctx->flags & AV_CODEC_FLAG_QSCALE) ? 2.0f : avctx->ch_layout.nb_channels) * (lambda / 120.f); /** Keep this in sync with twoloop's cutoff selection */ float rate_bandwidth_multiplier = 1.5f; int frame_bit_rate = (avctx->flags & AV_CODEC_FLAG_QSCALE) ? (refbits * rate_bandwidth_multiplier * avctx->sample_rate / 1024) - : (avctx->bit_rate / avctx->channels); + : (avctx->bit_rate / avctx->ch_layout.nb_channels); frame_bit_rate *= 1.15f; diff --git a/libavcodec/aaccoder_twoloop.h b/libavcodec/aaccoder_twoloop.h index 8e1bc88a85..0504a916ad 100644 --- a/libavcodec/aaccoder_twoloop.h +++ b/libavcodec/aaccoder_twoloop.h @@ -71,7 +71,7 @@ static void search_for_quantizers_twoloop(AVCodecContext *avctx, { int start = 0, i, w, w2, g, recomprd; int destbits = avctx->bit_rate * 1024.0 / avctx->sample_rate - / ((avctx->flags & AV_CODEC_FLAG_QSCALE) ? 2.0f : avctx->channels) + / ((avctx->flags & AV_CODEC_FLAG_QSCALE) ? 2.0f : avctx->ch_layout.nb_channels) * (lambda / 120.f); int refbits = destbits; int toomanybits, toofewbits; @@ -186,7 +186,7 @@ static void search_for_quantizers_twoloop(AVCodecContext *avctx, float rate_bandwidth_multiplier = 1.5f; int frame_bit_rate = (avctx->flags & AV_CODEC_FLAG_QSCALE) ? (refbits * rate_bandwidth_multiplier * avctx->sample_rate / 1024) - : (avctx->bit_rate / avctx->channels); + : (avctx->bit_rate / avctx->ch_layout.nb_channels); /** Compensate for extensions that increase efficiency */ if (s->options.pns || s->options.intensity_stereo) diff --git a/libavcodec/aacdec.c b/libavcodec/aacdec.c index 4dfb38ac83..611f9e4be1 100644 --- a/libavcodec/aacdec.c +++ b/libavcodec/aacdec.c @@ -566,7 +566,10 @@ const AVCodec ff_aac_decoder = { }, .capabilities = AV_CODEC_CAP_CHANNEL_CONF | AV_CODEC_CAP_DR1, .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP, +#if FF_API_OLD_CHANNEL_LAYOUT .channel_layouts = aac_channel_layout, +#endif + .ch_layouts = aac_ch_layout, .flush = flush, .priv_class = &aac_decoder_class, .profiles = NULL_IF_CONFIG_SMALL(ff_aac_profiles), @@ -591,7 +594,10 @@ const AVCodec ff_aac_latm_decoder = { }, .capabilities = AV_CODEC_CAP_CHANNEL_CONF | AV_CODEC_CAP_DR1, .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP, +#if FF_API_OLD_CHANNEL_LAYOUT .channel_layouts = aac_channel_layout, +#endif + .ch_layouts = aac_ch_layout, .flush = flush, .profiles = NULL_IF_CONFIG_SMALL(ff_aac_profiles), }; diff --git a/libavcodec/aacdec_fixed.c b/libavcodec/aacdec_fixed.c index cad2fd6adc..8af7e994ae 100644 --- a/libavcodec/aacdec_fixed.c +++ b/libavcodec/aacdec_fixed.c @@ -464,7 +464,10 @@ const AVCodec ff_aac_fixed_decoder = { }, .capabilities = AV_CODEC_CAP_CHANNEL_CONF | AV_CODEC_CAP_DR1, .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP, +#if FF_API_OLD_CHANNEL_LAYOUT .channel_layouts = aac_channel_layout, +#endif + .ch_layouts = aac_ch_layout, .profiles = NULL_IF_CONFIG_SMALL(ff_aac_profiles), .flush = flush, }; diff --git a/libavcodec/aacdec_template.c b/libavcodec/aacdec_template.c index 7149b331ae..387a4acfce 100644 --- a/libavcodec/aacdec_template.c +++ b/libavcodec/aacdec_template.c @@ -174,7 +174,7 @@ static int frame_configure_elements(AVCodecContext *avctx) /* get output buffer */ av_frame_unref(ac->frame); - if (!avctx->channels) + if (!avctx->ch_layout.nb_channels) return 1; ac->frame->nb_samples = 2048; @@ -182,7 +182,7 @@ static int frame_configure_elements(AVCodecContext *avctx) return ret; /* map output channel pointers to AVFrame data */ - for (ch = 0; ch < avctx->channels; ch++) { + for (ch = 0; ch < avctx->ch_layout.nb_channels; ch++) { if (ac->output_element[ch]) ac->output_element[ch]->ret = (INTFLOAT *)ac->frame->extended_data[ch]; } @@ -517,8 +517,7 @@ static int push_output_configuration(AACContext *ac) { static void pop_output_configuration(AACContext *ac) { if (ac->oc[1].status != OC_LOCKED && ac->oc[0].status != OC_NONE) { ac->oc[1] = ac->oc[0]; - ac->avctx->channels = ac->oc[1].channels; - ac->avctx->channel_layout = ac->oc[1].channel_layout; + ac->avctx->ch_layout = ac->oc[1].ch_layout; output_configure(ac, ac->oc[1].layout_map, ac->oc[1].layout_map_tags, ac->oc[1].status, 0); } @@ -555,7 +554,14 @@ static int output_configure(AACContext *ac, } // Try to sniff a reasonable channel order, otherwise output the // channels in the order the PCE declared them. - if (avctx->request_channel_layout != AV_CH_LAYOUT_NATIVE) +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + if (avctx->request_channel_layout == AV_CH_LAYOUT_NATIVE) + ac->output_channel_order = CHANNEL_ORDER_CODED; +FF_ENABLE_DEPRECATION_WARNINGS +#endif + + if (ac->output_channel_order == CHANNEL_ORDER_DEFAULT) layout = sniff_channel_order(layout_map, tags); for (i = 0; i < tags; i++) { int type = layout_map[i][0]; @@ -577,9 +583,22 @@ static int output_configure(AACContext *ac, } } - if (layout) avctx->channel_layout = layout; - ac->oc[1].channel_layout = layout; - avctx->channels = ac->oc[1].channels = channels; + av_channel_layout_uninit(&ac->oc[1].ch_layout); + if (layout) + av_channel_layout_from_mask(&ac->oc[1].ch_layout, layout); + else { + ac->oc[1].ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + ac->oc[1].ch_layout.nb_channels = channels; + } + + av_channel_layout_copy(&avctx->ch_layout, &ac->oc[1].ch_layout); +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + avctx->channels = avctx->ch_layout.nb_channels; + avctx->channel_layout = avctx->ch_layout.order == AV_CHANNEL_ORDER_NATIVE ? + avctx->ch_layout.u.mask : 0; +FF_ENABLE_DEPRECATION_WARNINGS +#endif ac->oc[1].status = oc_type; if (get_new_frame) { @@ -1292,12 +1311,12 @@ static av_cold int aac_decode_init(AVCodecContext *avctx) sr = sample_rate_idx(avctx->sample_rate); ac->oc[1].m4ac.sampling_index = sr; - ac->oc[1].m4ac.channels = avctx->channels; + ac->oc[1].m4ac.channels = avctx->ch_layout.nb_channels; ac->oc[1].m4ac.sbr = -1; ac->oc[1].m4ac.ps = -1; for (i = 0; i < FF_ARRAY_ELEMS(ff_mpeg4audio_channels); i++) - if (ff_mpeg4audio_channels[i] == avctx->channels) + if (ff_mpeg4audio_channels[i] == avctx->ch_layout.nb_channels) break; if (i == FF_ARRAY_ELEMS(ff_mpeg4audio_channels)) { i = 0; @@ -1315,7 +1334,7 @@ static av_cold int aac_decode_init(AVCodecContext *avctx) } } - if (avctx->channels > MAX_CHANNELS) { + if (avctx->ch_layout.nb_channels > MAX_CHANNELS) { av_log(avctx, AV_LOG_ERROR, "Too many channels\n"); return AVERROR_INVALIDDATA; } @@ -2556,7 +2575,8 @@ static int decode_extension_payload(AACContext *ac, GetBitContext *gb, int cnt, av_log(ac->avctx, AV_LOG_ERROR, "Implicit SBR was found with a first occurrence after the first frame.\n"); skip_bits_long(gb, 8 * cnt - 4); return res; - } else if (ac->oc[1].m4ac.ps == -1 && ac->oc[1].status < OC_LOCKED && ac->avctx->channels == 1) { + } else if (ac->oc[1].m4ac.ps == -1 && ac->oc[1].status < OC_LOCKED && + ac->avctx->ch_layout.nb_channels == 1) { ac->oc[1].m4ac.sbr = 1; ac->oc[1].m4ac.ps = 1; ac->avctx->profile = FF_PROFILE_AAC_HE_V2; @@ -3264,7 +3284,7 @@ static int aac_decode_frame_int(AVCodecContext *avctx, void *data, if (avctx->debug & FF_DEBUG_STARTCODE) av_log(avctx, AV_LOG_DEBUG, "Elem type:%x id:%x\n", elem_type, elem_id); - if (!avctx->channels && elem_type != TYPE_PCE) { + if (!avctx->ch_layout.nb_channels && elem_type != TYPE_PCE) { err = AVERROR_INVALIDDATA; goto fail; } @@ -3385,7 +3405,7 @@ static int aac_decode_frame_int(AVCodecContext *avctx, void *data, } } - if (!avctx->channels) { + if (!avctx->ch_layout.nb_channels) { *got_frame_ptr = 0; return 0; } @@ -3419,7 +3439,8 @@ static int aac_decode_frame_int(AVCodecContext *avctx, void *data, /* for dual-mono audio (SCE + SCE) */ is_dmono = ac->dmono_mode && sce_count == 2 && - ac->oc[1].channel_layout == (AV_CH_FRONT_LEFT | AV_CH_FRONT_RIGHT); + !av_channel_layout_compare(&ac->oc[1].ch_layout, + &(AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO); if (is_dmono) { if (ac->dmono_mode == 1) ((AVFrame *)data)->data[1] =((AVFrame *)data)->data[0]; @@ -3553,6 +3574,14 @@ static const AVOption options[] = { {"sub" , "Select Sub/Right channel", 0, AV_OPT_TYPE_CONST, {.i64= 2}, INT_MIN, INT_MAX, AACDEC_FLAGS, "dual_mono_mode"}, {"both", "Select both channels", 0, AV_OPT_TYPE_CONST, {.i64= 0}, INT_MIN, INT_MAX, AACDEC_FLAGS, "dual_mono_mode"}, + { "channel_order", "Order in which the channels are to be exported", + offsetof(AACContext, output_channel_order), AV_OPT_TYPE_INT, + { .i64 = CHANNEL_ORDER_DEFAULT }, 0, 1, AACDEC_FLAGS, "channel_order" }, + { "default", "normal libavcodec channel order", 0, AV_OPT_TYPE_CONST, + { .i64 = CHANNEL_ORDER_DEFAULT }, .flags = AACDEC_FLAGS, "channel_order" }, + { "coded", "order in which the channels are coded in the bitstream", + 0, AV_OPT_TYPE_CONST, { .i64 = CHANNEL_ORDER_CODED }, .flags = AACDEC_FLAGS, "channel_order" }, + {NULL}, }; diff --git a/libavcodec/aacdectab.h b/libavcodec/aacdectab.h index c54a3eb943..e03026806d 100644 --- a/libavcodec/aacdectab.h +++ b/libavcodec/aacdectab.h @@ -72,6 +72,7 @@ static const uint8_t aac_channel_layout_map[16][16][3] = { /* TODO: Add 7+1 TOP configuration */ }; +#if FF_API_OLD_CHANNEL_LAYOUT static const uint64_t aac_channel_layout[16] = { AV_CH_LAYOUT_MONO, AV_CH_LAYOUT_STEREO, @@ -89,5 +90,24 @@ static const uint64_t aac_channel_layout[16] = { 0, /* AV_CH_LAYOUT_7POINT1_TOP, */ }; +#endif + +static const AVChannelLayout aac_ch_layout[16] = { + AV_CHANNEL_LAYOUT_MONO, + AV_CHANNEL_LAYOUT_STEREO, + AV_CHANNEL_LAYOUT_SURROUND, + AV_CHANNEL_LAYOUT_4POINT0, + AV_CHANNEL_LAYOUT_5POINT0_BACK, + AV_CHANNEL_LAYOUT_5POINT1_BACK, + AV_CHANNEL_LAYOUT_7POINT1_WIDE_BACK, + { 0 }, + { 0 }, + { 0 }, + AV_CHANNEL_LAYOUT_6POINT1, + AV_CHANNEL_LAYOUT_7POINT1, + AV_CHANNEL_LAYOUT_22POINT2, + { 0 }, + /* AV_CHANNEL_LAYOUT_7POINT1_TOP, */ +}; #endif /* AVCODEC_AACDECTAB_H */ diff --git a/libavcodec/aacenc.c b/libavcodec/aacenc.c index a1004c3e98..be157bb709 100644 --- a/libavcodec/aacenc.c +++ b/libavcodec/aacenc.c @@ -962,11 +962,11 @@ static av_cold int aac_encode_init(AVCodecContext *avctx) s->lambda = avctx->global_quality > 0 ? avctx->global_quality : 120; /* Channel map and unspecified bitrate guessing */ - s->channels = avctx->channels; + s->channels = avctx->ch_layout.nb_channels; s->needs_pce = 1; for (i = 0; i < FF_ARRAY_ELEMS(aac_normal_chan_layouts); i++) { - if (avctx->channel_layout == aac_normal_chan_layouts[i]) { + if (!av_channel_layout_compare(&avctx->ch_layout, &aac_normal_chan_layouts[i])) { s->needs_pce = s->options.pce; break; } @@ -975,10 +975,13 @@ static av_cold int aac_encode_init(AVCodecContext *avctx) if (s->needs_pce) { char buf[64]; for (i = 0; i < FF_ARRAY_ELEMS(aac_pce_configs); i++) - if (avctx->channel_layout == aac_pce_configs[i].layout) + if (!av_channel_layout_compare(&avctx->ch_layout, &aac_pce_configs[i].layout)) break; - av_get_channel_layout_string(buf, sizeof(buf), -1, avctx->channel_layout); - ERROR_IF(i == FF_ARRAY_ELEMS(aac_pce_configs), "Unsupported channel layout \"%s\"\n", buf); + av_channel_layout_describe(&avctx->ch_layout, buf, sizeof(buf)); + if (i == FF_ARRAY_ELEMS(aac_pce_configs)) { + av_log(avctx, AV_LOG_ERROR, "Unsupported channel layout \"%s\"\n", buf); + return AVERROR(EINVAL); + } av_log(avctx, AV_LOG_INFO, "Using a PCE to encode channel layout \"%s\"\n", buf); s->pce = aac_pce_configs[i]; s->reorder_map = s->pce.reorder_map; diff --git a/libavcodec/aacenc.h b/libavcodec/aacenc.h index b106910ce0..a001c7ca60 100644 --- a/libavcodec/aacenc.h +++ b/libavcodec/aacenc.h @@ -94,7 +94,7 @@ typedef struct AACQuantizeBandCostCacheEntry { } AACQuantizeBandCostCacheEntry; typedef struct AACPCEInfo { - int64_t layout; + AVChannelLayout layout; int num_ele[4]; ///< front, side, back, lfe int pairing[3][8]; ///< front, side, back int index[4][8]; ///< front, side, back, lfe @@ -139,7 +139,7 @@ typedef struct AACPCEInfo { */ static const AACPCEInfo aac_pce_configs[] = { { - .layout = AV_CH_LAYOUT_MONO, + .layout = AV_CHANNEL_LAYOUT_MONO, .num_ele = { 1, 0, 0, 0 }, .pairing = { { 0 }, }, .index = { { 0 }, }, @@ -147,7 +147,7 @@ static const AACPCEInfo aac_pce_configs[] = { .reorder_map = { 0 }, }, { - .layout = AV_CH_LAYOUT_STEREO, + .layout = AV_CHANNEL_LAYOUT_STEREO, .num_ele = { 1, 0, 0, 0 }, .pairing = { { 1 }, }, .index = { { 0 }, }, @@ -155,7 +155,7 @@ static const AACPCEInfo aac_pce_configs[] = { .reorder_map = { 0, 1 }, }, { - .layout = AV_CH_LAYOUT_2POINT1, + .layout = AV_CHANNEL_LAYOUT_2POINT1, .num_ele = { 1, 0, 0, 1 }, .pairing = { { 1 }, }, .index = { { 0 },{ 0 },{ 0 },{ 0 } }, @@ -163,7 +163,7 @@ static const AACPCEInfo aac_pce_configs[] = { .reorder_map = { 0, 1, 2 }, }, { - .layout = AV_CH_LAYOUT_2_1, + .layout = AV_CHANNEL_LAYOUT_2_1, .num_ele = { 1, 0, 1, 0 }, .pairing = { { 1 },{ 0 },{ 0 } }, .index = { { 0 },{ 0 },{ 0 }, }, @@ -171,7 +171,7 @@ static const AACPCEInfo aac_pce_configs[] = { .reorder_map = { 0, 1, 2 }, }, { - .layout = AV_CH_LAYOUT_SURROUND, + .layout = AV_CHANNEL_LAYOUT_SURROUND, .num_ele = { 2, 0, 0, 0 }, .pairing = { { 1, 0 }, }, .index = { { 0, 0 }, }, @@ -179,7 +179,7 @@ static const AACPCEInfo aac_pce_configs[] = { .reorder_map = { 0, 1, 2 }, }, { - .layout = AV_CH_LAYOUT_3POINT1, + .layout = AV_CHANNEL_LAYOUT_3POINT1, .num_ele = { 2, 0, 0, 1 }, .pairing = { { 1, 0 }, }, .index = { { 0, 0 }, { 0 }, { 0 }, { 0 }, }, @@ -187,7 +187,7 @@ static const AACPCEInfo aac_pce_configs[] = { .reorder_map = { 0, 1, 2, 3 }, }, { - .layout = AV_CH_LAYOUT_4POINT0, + .layout = AV_CHANNEL_LAYOUT_4POINT0, .num_ele = { 2, 0, 1, 0 }, .pairing = { { 1, 0 }, { 0 }, { 0 }, }, .index = { { 0, 0 }, { 0 }, { 1 } }, @@ -195,7 +195,7 @@ static const AACPCEInfo aac_pce_configs[] = { .reorder_map = { 0, 1, 2, 3 }, }, { - .layout = AV_CH_LAYOUT_4POINT1, + .layout = AV_CHANNEL_LAYOUT_4POINT1, .num_ele = { 2, 1, 1, 0 }, .pairing = { { 1, 0 }, { 0 }, { 0 }, }, .index = { { 0, 0 }, { 1 }, { 2 }, { 0 } }, @@ -203,7 +203,7 @@ static const AACPCEInfo aac_pce_configs[] = { .reorder_map = { 0, 1, 2, 3, 4 }, }, { - .layout = AV_CH_LAYOUT_2_2, + .layout = AV_CHANNEL_LAYOUT_2_2, .num_ele = { 1, 1, 0, 0 }, .pairing = { { 1 }, { 1 }, }, .index = { { 0 }, { 1 }, }, @@ -211,7 +211,7 @@ static const AACPCEInfo aac_pce_configs[] = { .reorder_map = { 0, 1, 2, 3 }, }, { - .layout = AV_CH_LAYOUT_QUAD, + .layout = AV_CHANNEL_LAYOUT_QUAD, .num_ele = { 1, 0, 1, 0 }, .pairing = { { 1 }, { 0 }, { 1 }, }, .index = { { 0 }, { 0 }, { 1 } }, @@ -219,7 +219,7 @@ static const AACPCEInfo aac_pce_configs[] = { .reorder_map = { 0, 1, 2, 3 }, }, { - .layout = AV_CH_LAYOUT_5POINT0, + .layout = AV_CHANNEL_LAYOUT_5POINT0, .num_ele = { 2, 1, 0, 0 }, .pairing = { { 1, 0 }, { 1 }, }, .index = { { 0, 0 }, { 1 } }, @@ -227,7 +227,7 @@ static const AACPCEInfo aac_pce_configs[] = { .reorder_map = { 0, 1, 2, 3, 4 }, }, { - .layout = AV_CH_LAYOUT_5POINT1, + .layout = AV_CHANNEL_LAYOUT_5POINT1, .num_ele = { 2, 1, 1, 0 }, .pairing = { { 1, 0 }, { 0 }, { 1 }, }, .index = { { 0, 0 }, { 1 }, { 1 } }, @@ -235,7 +235,7 @@ static const AACPCEInfo aac_pce_configs[] = { .reorder_map = { 0, 1, 2, 3, 4, 5 }, }, { - .layout = AV_CH_LAYOUT_5POINT0_BACK, + .layout = AV_CHANNEL_LAYOUT_5POINT0_BACK, .num_ele = { 2, 0, 1, 0 }, .pairing = { { 1, 0 }, { 0 }, { 1 } }, .index = { { 0, 0 }, { 0 }, { 1 } }, @@ -243,7 +243,7 @@ static const AACPCEInfo aac_pce_configs[] = { .reorder_map = { 0, 1, 2, 3, 4 }, }, { - .layout = AV_CH_LAYOUT_5POINT1_BACK, + .layout = AV_CHANNEL_LAYOUT_5POINT1_BACK, .num_ele = { 2, 1, 1, 0 }, .pairing = { { 1, 0 }, { 0 }, { 1 }, }, .index = { { 0, 0 }, { 1 }, { 1 } }, @@ -251,7 +251,7 @@ static const AACPCEInfo aac_pce_configs[] = { .reorder_map = { 0, 1, 2, 3, 4, 5 }, }, { - .layout = AV_CH_LAYOUT_6POINT0, + .layout = AV_CHANNEL_LAYOUT_6POINT0, .num_ele = { 2, 1, 1, 0 }, .pairing = { { 1, 0 }, { 1 }, { 0 }, }, .index = { { 0, 0 }, { 1 }, { 1 } }, @@ -259,7 +259,7 @@ static const AACPCEInfo aac_pce_configs[] = { .reorder_map = { 0, 1, 2, 3, 4, 5 }, }, { - .layout = AV_CH_LAYOUT_6POINT0_FRONT, + .layout = AV_CHANNEL_LAYOUT_6POINT0_FRONT, .num_ele = { 2, 1, 0, 0 }, .pairing = { { 1, 1 }, { 1 } }, .index = { { 1, 0 }, { 2 }, }, @@ -267,7 +267,7 @@ static const AACPCEInfo aac_pce_configs[] = { .reorder_map = { 0, 1, 2, 3, 4, 5 }, }, { - .layout = AV_CH_LAYOUT_HEXAGONAL, + .layout = AV_CHANNEL_LAYOUT_HEXAGONAL, .num_ele = { 2, 0, 2, 0 }, .pairing = { { 1, 0 },{ 0 },{ 1, 0 }, }, .index = { { 0, 0 },{ 0 },{ 1, 1 } }, @@ -275,7 +275,7 @@ static const AACPCEInfo aac_pce_configs[] = { .reorder_map = { 0, 1, 2, 3, 4, 5 }, }, { - .layout = AV_CH_LAYOUT_6POINT1, + .layout = AV_CHANNEL_LAYOUT_6POINT1, .num_ele = { 2, 1, 2, 0 }, .pairing = { { 1, 0 },{ 0 },{ 1, 0 }, }, .index = { { 0, 0 },{ 1 },{ 1, 2 } }, @@ -283,7 +283,7 @@ static const AACPCEInfo aac_pce_configs[] = { .reorder_map = { 0, 1, 2, 3, 4, 5, 6 }, }, { - .layout = AV_CH_LAYOUT_6POINT1_BACK, + .layout = AV_CHANNEL_LAYOUT_6POINT1_BACK, .num_ele = { 2, 1, 2, 0 }, .pairing = { { 1, 0 }, { 0 }, { 1, 0 }, }, .index = { { 0, 0 }, { 1 }, { 1, 2 } }, @@ -291,7 +291,7 @@ static const AACPCEInfo aac_pce_configs[] = { .reorder_map = { 0, 1, 2, 3, 4, 5, 6 }, }, { - .layout = AV_CH_LAYOUT_6POINT1_FRONT, + .layout = AV_CHANNEL_LAYOUT_6POINT1_FRONT, .num_ele = { 2, 1, 2, 0 }, .pairing = { { 1, 0 }, { 0 }, { 1, 0 }, }, .index = { { 0, 0 }, { 1 }, { 1, 2 } }, @@ -299,7 +299,7 @@ static const AACPCEInfo aac_pce_configs[] = { .reorder_map = { 0, 1, 2, 3, 4, 5, 6 }, }, { - .layout = AV_CH_LAYOUT_7POINT0, + .layout = AV_CHANNEL_LAYOUT_7POINT0, .num_ele = { 2, 1, 1, 0 }, .pairing = { { 1, 0 }, { 1 }, { 1 }, }, .index = { { 0, 0 }, { 1 }, { 2 }, }, @@ -307,7 +307,7 @@ static const AACPCEInfo aac_pce_configs[] = { .reorder_map = { 0, 1, 2, 3, 4, 5, 6 }, }, { - .layout = AV_CH_LAYOUT_7POINT0_FRONT, + .layout = AV_CHANNEL_LAYOUT_7POINT0_FRONT, .num_ele = { 2, 1, 1, 0 }, .pairing = { { 1, 0 }, { 1 }, { 1 }, }, .index = { { 0, 0 }, { 1 }, { 2 }, }, @@ -315,7 +315,7 @@ static const AACPCEInfo aac_pce_configs[] = { .reorder_map = { 0, 1, 2, 3, 4, 5, 6 }, }, { - .layout = AV_CH_LAYOUT_7POINT1, + .layout = AV_CHANNEL_LAYOUT_7POINT1, .num_ele = { 2, 1, 2, 0 }, .pairing = { { 1, 0 }, { 0 }, { 1, 1 }, }, .index = { { 0, 0 }, { 1 }, { 1, 2 }, { 0 } }, @@ -323,7 +323,7 @@ static const AACPCEInfo aac_pce_configs[] = { .reorder_map = { 0, 1, 2, 3, 4, 5, 6, 7 }, }, { - .layout = AV_CH_LAYOUT_7POINT1_WIDE, + .layout = AV_CHANNEL_LAYOUT_7POINT1_WIDE, .num_ele = { 2, 1, 2, 0 }, .pairing = { { 1, 0 }, { 0 },{ 1, 1 }, }, .index = { { 0, 0 }, { 1 }, { 1, 2 }, { 0 } }, @@ -331,7 +331,7 @@ static const AACPCEInfo aac_pce_configs[] = { .reorder_map = { 0, 1, 2, 3, 4, 5, 6, 7 }, }, { - .layout = AV_CH_LAYOUT_7POINT1_WIDE_BACK, + .layout = AV_CHANNEL_LAYOUT_7POINT1_WIDE_BACK, .num_ele = { 2, 1, 2, 0 }, .pairing = { { 1, 0 }, { 0 }, { 1, 1 }, }, .index = { { 0, 0 }, { 1 }, { 1, 2 }, { 0 } }, @@ -339,7 +339,7 @@ static const AACPCEInfo aac_pce_configs[] = { .reorder_map = { 0, 1, 2, 3, 4, 5, 6, 7 }, }, { - .layout = AV_CH_LAYOUT_OCTAGONAL, + .layout = AV_CHANNEL_LAYOUT_OCTAGONAL, .num_ele = { 2, 1, 2, 0 }, .pairing = { { 1, 0 }, { 1 }, { 1, 0 }, }, .index = { { 0, 0 }, { 1 }, { 2, 1 } }, @@ -347,7 +347,8 @@ static const AACPCEInfo aac_pce_configs[] = { .reorder_map = { 0, 1, 2, 3, 4, 5, 6, 7 }, }, { /* Meant for order 2/mixed ambisonics */ - .layout = AV_CH_LAYOUT_OCTAGONAL | AV_CH_TOP_CENTER, + .layout = { .order = AV_CHANNEL_ORDER_NATIVE, .nb_channels = 9, + .u.mask = AV_CH_LAYOUT_OCTAGONAL | AV_CH_TOP_CENTER }, .num_ele = { 2, 2, 2, 0 }, .pairing = { { 1, 0 }, { 1, 0 }, { 1, 0 }, }, .index = { { 0, 0 }, { 1, 1 }, { 2, 2 } }, @@ -355,8 +356,9 @@ static const AACPCEInfo aac_pce_configs[] = { .reorder_map = { 0, 1, 2, 3, 4, 5, 6, 7, 8 }, }, { /* Meant for order 2/mixed ambisonics */ - .layout = AV_CH_LAYOUT_6POINT0_FRONT | AV_CH_BACK_CENTER | - AV_CH_BACK_LEFT | AV_CH_BACK_RIGHT | AV_CH_TOP_CENTER, + .layout = { .order = AV_CHANNEL_ORDER_NATIVE, .nb_channels = 10, + .u.mask = AV_CH_LAYOUT_6POINT0_FRONT | AV_CH_BACK_CENTER | + AV_CH_BACK_LEFT | AV_CH_BACK_RIGHT | AV_CH_TOP_CENTER }, .num_ele = { 2, 2, 2, 0 }, .pairing = { { 1, 1 }, { 1, 0 }, { 1, 0 }, }, .index = { { 0, 1 }, { 2, 0 }, { 3, 1 } }, @@ -364,7 +366,7 @@ static const AACPCEInfo aac_pce_configs[] = { .reorder_map = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }, }, { - .layout = AV_CH_LAYOUT_HEXADECAGONAL, + .layout = AV_CHANNEL_LAYOUT_HEXADECAGONAL, .num_ele = { 4, 2, 4, 0 }, .pairing = { { 1, 0, 1, 0 }, { 1, 1 }, { 1, 0, 1, 0 }, }, .index = { { 0, 0, 1, 1 }, { 2, 3 }, { 4, 2, 5, 3 } }, diff --git a/libavcodec/aacenctab.h b/libavcodec/aacenctab.h index 33cb7ae95b..2d96621945 100644 --- a/libavcodec/aacenctab.h +++ b/libavcodec/aacenctab.h @@ -45,14 +45,14 @@ extern const uint8_t *const ff_aac_swb_size_128[]; extern const int ff_aac_swb_size_128_len; /* Supported layouts without using a PCE */ -static const int64_t aac_normal_chan_layouts[7] = { - AV_CH_LAYOUT_MONO, - AV_CH_LAYOUT_STEREO, - AV_CH_LAYOUT_SURROUND, - AV_CH_LAYOUT_4POINT0, - AV_CH_LAYOUT_5POINT0_BACK, - AV_CH_LAYOUT_5POINT1_BACK, - AV_CH_LAYOUT_7POINT1, +static const AVChannelLayout aac_normal_chan_layouts[7] = { + AV_CHANNEL_LAYOUT_MONO, + AV_CHANNEL_LAYOUT_STEREO, + AV_CHANNEL_LAYOUT_SURROUND, + AV_CHANNEL_LAYOUT_4POINT0, + AV_CHANNEL_LAYOUT_5POINT0_BACK, + AV_CHANNEL_LAYOUT_5POINT1_BACK, + AV_CHANNEL_LAYOUT_7POINT1, }; /** default channel configurations */ diff --git a/libavcodec/aacpsy.c b/libavcodec/aacpsy.c index 0c64f2c7b0..4c5ab2c9d5 100644 --- a/libavcodec/aacpsy.c +++ b/libavcodec/aacpsy.c @@ -263,13 +263,13 @@ static av_cold void lame_window_init(AacPsyContext *ctx, AVCodecContext *avctx) { int i, j; - for (i = 0; i < avctx->channels; i++) { + for (i = 0; i < avctx->ch_layout.nb_channels; i++) { AacPsyChannel *pch = &ctx->ch[i]; if (avctx->flags & AV_CODEC_FLAG_QSCALE) pch->attack_threshold = psy_vbr_map[avctx->global_quality / FF_QP2LAMBDA].st_lrm; else - pch->attack_threshold = lame_calc_attack_threshold(avctx->bit_rate / avctx->channels / 1000); + pch->attack_threshold = lame_calc_attack_threshold(avctx->bit_rate / avctx->ch_layout.nb_channels / 1000); for (j = 0; j < AAC_NUM_BLOCKS_SHORT * PSY_LAME_NUM_SUBBLOCKS; j++) pch->prev_energy_subshort[j] = 10.0f; @@ -303,7 +303,7 @@ static av_cold int psy_3gpp_init(FFPsyContext *ctx) { float bark; int i, j, g, start; float prev, minscale, minath, minsnr, pe_min; - int chan_bitrate = ctx->avctx->bit_rate / ((ctx->avctx->flags & AV_CODEC_FLAG_QSCALE) ? 2.0f : ctx->avctx->channels); + int chan_bitrate = ctx->avctx->bit_rate / ((ctx->avctx->flags & AV_CODEC_FLAG_QSCALE) ? 2.0f : ctx->avctx->ch_layout.nb_channels); const int bandwidth = ctx->cutoff ? ctx->cutoff : AAC_CUTOFF(ctx->avctx); const float num_bark = calc_bark((float)bandwidth); @@ -370,7 +370,7 @@ static av_cold int psy_3gpp_init(FFPsyContext *ctx) { } } - pctx->ch = av_calloc(ctx->avctx->channels, sizeof(*pctx->ch)); + pctx->ch = av_calloc(ctx->avctx->ch_layout.nb_channels, sizeof(*pctx->ch)); if (!pctx->ch) { av_freep(&ctx->model_priv_data); return AVERROR(ENOMEM); diff --git a/libavcodec/psymodel.c b/libavcodec/psymodel.c index 93c8408297..890b13e1c8 100644 --- a/libavcodec/psymodel.c +++ b/libavcodec/psymodel.c @@ -35,7 +35,7 @@ av_cold int ff_psy_init(FFPsyContext *ctx, AVCodecContext *avctx, int num_lens, int i, j, k = 0; ctx->avctx = avctx; - ctx->ch = av_calloc(avctx->channels, 2 * sizeof(ctx->ch[0])); + ctx->ch = av_calloc(avctx->ch_layout.nb_channels, 2 * sizeof(ctx->ch[0])); ctx->group = av_calloc(num_groups, sizeof(ctx->group[0])); ctx->bands = av_malloc_array (sizeof(ctx->bands[0]), num_lens); ctx->num_bands = av_malloc_array (sizeof(ctx->num_bands[0]), num_lens); @@ -120,13 +120,13 @@ av_cold struct FFPsyPreprocessContext* ff_psy_preprocess_init(AVCodecContext *av FF_FILTER_MODE_LOWPASS, FILT_ORDER, cutoff_coeff, 0.0, 0.0); if (ctx->fcoeffs) { - ctx->fstate = av_calloc(avctx->channels, sizeof(ctx->fstate[0])); + ctx->fstate = av_calloc(avctx->ch_layout.nb_channels, sizeof(ctx->fstate[0])); if (!ctx->fstate) { av_free(ctx->fcoeffs); av_free(ctx); return NULL; } - for (i = 0; i < avctx->channels; i++) + for (i = 0; i < avctx->ch_layout.nb_channels; i++) ctx->fstate[i] = ff_iir_filter_init_state(FILT_ORDER); } } @@ -154,7 +154,7 @@ av_cold void ff_psy_preprocess_end(struct FFPsyPreprocessContext *ctx) int i; ff_iir_filter_free_coeffsp(&ctx->fcoeffs); if (ctx->fstate) - for (i = 0; i < ctx->avctx->channels; i++) + for (i = 0; i < ctx->avctx->ch_layout.nb_channels; i++) ff_iir_filter_free_statep(&ctx->fstate[i]); av_freep(&ctx->fstate); av_free(ctx); diff --git a/libavcodec/psymodel.h b/libavcodec/psymodel.h index e5f917d495..22899a38d9 100644 --- a/libavcodec/psymodel.h +++ b/libavcodec/psymodel.h @@ -41,7 +41,7 @@ #define AAC_CUTOFF(s) ( \ (s->flags & AV_CODEC_FLAG_QSCALE) \ ? s->sample_rate / 2 \ - : AAC_CUTOFF_FROM_BITRATE(s->bit_rate, s->channels, s->sample_rate) \ + : AAC_CUTOFF_FROM_BITRATE(s->bit_rate, s->ch_layout.nb_channels, s->sample_rate) \ ) /** From patchwork Thu Jan 13 02:02: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: 33457 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp37236iog; Wed, 12 Jan 2022 18:33:11 -0800 (PST) X-Google-Smtp-Source: ABdhPJwVz14TzPuW9fqi2lgsYdQFADMPbac2/I8KqXdJYkA1UCYJBTo/i3DYJL7ZmuUSwoEevtQF X-Received: by 2002:a17:906:365a:: with SMTP id r26mr1960261ejb.341.1642041191263; Wed, 12 Jan 2022 18:33:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041191; cv=none; d=google.com; s=arc-20160816; b=V21mLPcQeJk65/5TEEWDdm07f+R6u9qflFIf7Ttv3wTs4Pt3qMP7lRxzJH9Hf2pI1z efjYlmL0PCijd9SjzhP+GOzRM49WOTV9DZfKY8MrhoNH6rtJr2jhAnelbsxhZfdzDt0Y kGVJEaIJ1E7BPRf7tVOvQIrHT5f9nr1noJqoBtUPRYG9xE3ySoiyxGhUeaocuPTxC8Xw Sx/0efj2m36x3mGh6ErOFFJLK7HjJ6kX7X46MMtb3r8BUwT10mzAccScggIGu6bod25q H5/oHwPuzMp45sa3DCYIf3rXVn1ld72FiINnOAaBnXRyCWX5pfngyZJGejws1wLja3vD VWKg== 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=e+DXSj9l9TKqbj52y35wg0VUN99g/h3pE3tAo5I7bWI=; b=1FrOTWiiY2kvy0ZhYZwdTVKfRMu9pgLvvrFFvKq/bT8jFljKYwLuehyU6MLo8FD/3C yxPpoSuu3RJ5HDh7y9UL0QhBA8+jHWmgGN1YjjYt7SrcCZzhJAIC4qYTB6mcgVp7ql1q JTtOdXqQc9115xGKWj5v72PYfi0CcGhr/fsLh6ae84FfQf7L8liTlT+DYeGCnvZfeWIt Lems9bzOWlSpzjBo7qw69Dt/kATt3G1Yie5nGsxFtuORECT6I+nlYtiIqlS+UKlkZ2Kd MbhezmhFLAtGec0mMdZ1LhWPtr4whRF59rnJBr3Azbpt77o+MVTE+F8byfr1/OgszIJK 8wRw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=VIKdxiih; 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 gs32si734164ejc.211.2022.01.12.18.33.10; Wed, 12 Jan 2022 18:33:11 -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=VIKdxiih; 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 37AB068B5D2; Thu, 13 Jan 2022 04:03:09 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f170.google.com (mail-qk1-f170.google.com [209.85.222.170]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 67E7B68B0D5 for ; Thu, 13 Jan 2022 04:03:02 +0200 (EET) Received: by mail-qk1-f170.google.com with SMTP id 82so5559801qki.10 for ; Wed, 12 Jan 2022 18:03:02 -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=HurDTR1tlU1YA7RyUwn2163UZ/G+dP8h4LiWHNeGMZ8=; b=VIKdxiihw78nAF0CavOFxePFAX/xUQx2I63uZHkkS1nhR5a6vMnrIAMPWy/MI5ksc2 hAaS8Fn8mudc3H+xdpR4mpqhPCpcARxEcyo7XrvKRRtnhp5QnE3sS/JIA/VF8wnVBXpw n8cDKTetGQ6pTv+M3jbuIoiU5l+JlwHfFiAdauggRGdF+02BB0GLlN5f9V63WlPTyoGA BZRoNH0N/X4m97sujXJM8hbX/hYhbcoMMUZFDCUAJaIMrLm9OVeO0UC5RzSwinK0RHUx 9uk4UyC4IOrjkkC4A4tV4QAQ1/UvXVbk2oTiLFtFk9yfy7P4alQ8dQrn4FukYFTBnc9L XQ7Q== 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=HurDTR1tlU1YA7RyUwn2163UZ/G+dP8h4LiWHNeGMZ8=; b=NdDCDIP448dLoI5MutHvWvetYrU4p0roUtIScEbl7ISK8fmsO6aCXmxp28vapKlJkP qMKyXjCj87yDhVrH8aGXVy1mCDYIWEzCq/QpjaQeu9qh9DB0mwv8YeCka1Hw5qgeklUd JtJUU71Ub6GjxUihtPg4njkAYMSNY+o/4/JLzlc04oY7b/n25CMDoVaqUviKDpd1MxHJ w4GE3iw1ngD8atxgYSMs/SypeIKHJQH6RD53p0PVxHHsTmsRs1Ctqi9TAQ85ohmpew4S lA9N5V9RrydGPulk5LDJ7CpUvHnbpAnXoqrRmSW7EQdfaywqB2UUCloL5xeTOoIl+fwR uUKQ== X-Gm-Message-State: AOAM530I+tCSfNGQAHnBUMgGkILtlXdrAQLyPHImUDJGY+5cAoZQaqPQ O8JamVIwvsyZ53ysiuwmxC8ebC+4Yzk= X-Received: by 2002:a05:620a:2684:: with SMTP id c4mr1887735qkp.24.1642039380796; Wed, 12 Jan 2022 18:03:00 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id v1sm1045961qtc.95.2022.01.12.18.02.59 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:03:00 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:02:16 -0300 Message-Id: <20220113020242.661-4-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 183/281] ac3: 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: xCXU2MYsDcPE From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavcodec/aac_ac3_parser.c | 6 +++ libavcodec/ac3dec.c | 57 +++++++++++++++++---------- libavcodec/ac3dec.h | 2 + libavcodec/ac3dec_fixed.c | 1 + libavcodec/ac3dec_float.c | 2 + libavcodec/ac3enc.c | 78 +++++++++++++++++++++++++++++-------- libavcodec/ac3enc.h | 4 +- libavcodec/ac3enc_fixed.c | 5 +++ libavcodec/ac3enc_float.c | 5 +++ libavcodec/eac3enc.c | 5 +++ tests/fate/ac3.mak | 16 ++++---- 11 files changed, 135 insertions(+), 46 deletions(-) diff --git a/libavcodec/aac_ac3_parser.c b/libavcodec/aac_ac3_parser.c index cd54a0a3e2..4ce7a73972 100644 --- a/libavcodec/aac_ac3_parser.c +++ b/libavcodec/aac_ac3_parser.c @@ -97,6 +97,12 @@ get_next: avctx->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; avctx->ch_layout.nb_channels = s->channels; } +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + avctx->channels = avctx->ch_layout.nb_channels; + avctx->channel_layout = s->channel_layout; +FF_ENABLE_DEPRECATION_WARNINGS +#endif } s1->duration = s->samples; avctx->audio_service_type = s->service_type; diff --git a/libavcodec/ac3dec.c b/libavcodec/ac3dec.c index ae00373dcb..70b35c170f 100644 --- a/libavcodec/ac3dec.c +++ b/libavcodec/ac3dec.c @@ -32,6 +32,7 @@ #include "libavutil/channel_layout.h" #include "libavutil/crc.h" #include "libavutil/downmix_info.h" +#include "libavutil/intmath.h" #include "libavutil/opt.h" #include "libavutil/thread.h" #include "bswapdsp.h" @@ -186,6 +187,8 @@ static av_cold int ac3_decode_init(AVCodecContext *avctx) { static AVOnce init_static_once = AV_ONCE_INIT; AC3DecodeContext *s = avctx->priv_data; + const AVChannelLayout mono = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; + const AVChannelLayout stereo = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO; int i, ret; s->avctx = avctx; @@ -214,12 +217,23 @@ static av_cold int ac3_decode_init(AVCodecContext *avctx) avctx->sample_fmt = AV_SAMPLE_FMT_FLTP; /* allow downmixing to stereo or mono */ - if (avctx->channels > 1 && - avctx->request_channel_layout == AV_CH_LAYOUT_MONO) - avctx->channels = 1; - else if (avctx->channels > 2 && - avctx->request_channel_layout == AV_CH_LAYOUT_STEREO) - avctx->channels = 2; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + if (avctx->request_channel_layout) { + av_channel_layout_uninit(&s->downmix_layout); + av_channel_layout_from_mask(&s->downmix_layout, avctx->request_channel_layout); + } +FF_ENABLE_DEPRECATION_WARNINGS +#endif + if (avctx->ch_layout.nb_channels > 1 && + !av_channel_layout_compare(&s->downmix_layout, &mono)) { + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; + } else if (avctx->ch_layout.nb_channels > 2 && + !av_channel_layout_compare(&s->downmix_layout, &stereo)) { + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO; + } s->downmixed = 1; for (i = 0; i < AC3_MAX_CHANNELS; i++) { @@ -1480,6 +1494,7 @@ static int ac3_decode_frame(AVCodecContext * avctx, void *data, const SHORTFLOAT *output[AC3_MAX_CHANNELS]; enum AVMatrixEncoding matrix_encoding; AVDownmixInfo *downmix_info; + uint64_t mask; s->superframe_size = 0; @@ -1590,11 +1605,11 @@ dependent_frame: if (s->lfe_on) s->output_mode |= AC3_OUTPUT_LFEON; if (s->channels > 1 && - avctx->request_channel_layout == AV_CH_LAYOUT_MONO) { + !av_channel_layout_compare(&s->downmix_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_MONO)) { s->out_channels = 1; s->output_mode = AC3_CHMODE_MONO; } else if (s->channels > 2 && - avctx->request_channel_layout == AV_CH_LAYOUT_STEREO) { + !av_channel_layout_compare(&s->downmix_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO)) { s->out_channels = 2; s->output_mode = AC3_CHMODE_STEREO; } @@ -1615,10 +1630,13 @@ dependent_frame: av_log(avctx, AV_LOG_ERROR, "unable to determine channel mode\n"); return AVERROR_INVALIDDATA; } - avctx->channels = s->out_channels; - avctx->channel_layout = ff_ac3_channel_layout_tab[s->output_mode & ~AC3_OUTPUT_LFEON]; + + mask = ff_ac3_channel_layout_tab[s->output_mode & ~AC3_OUTPUT_LFEON]; if (s->output_mode & AC3_OUTPUT_LFEON) - avctx->channel_layout |= AV_CH_LOW_FREQUENCY; + mask |= AV_CH_LOW_FREQUENCY; + + av_channel_layout_uninit(&avctx->ch_layout); + av_channel_layout_from_mask(&avctx->ch_layout, mask); /* set audio service type based on bitstream mode for AC-3 */ avctx->audio_service_type = s->bitstream_mode; @@ -1714,20 +1732,20 @@ skip: channel_layout |= ff_eac3_custom_channel_map_locations[ch][1]; } } - if (av_get_channel_layout_nb_channels(channel_layout) > EAC3_MAX_CHANNELS) { + if (av_popcount64(channel_layout) > EAC3_MAX_CHANNELS) { av_log(avctx, AV_LOG_ERROR, "Too many channels (%d) coded\n", - av_get_channel_layout_nb_channels(channel_layout)); + av_popcount64(channel_layout)); return AVERROR_INVALIDDATA; } - avctx->channel_layout = channel_layout; - avctx->channels = av_get_channel_layout_nb_channels(channel_layout); + av_channel_layout_uninit(&avctx->ch_layout); + av_channel_layout_from_mask(&avctx->ch_layout, channel_layout); for (ch = 0; ch < EAC3_MAX_CHANNELS; ch++) { if (s->channel_map & (1 << (EAC3_MAX_CHANNELS - ch - 1))) { if (ff_eac3_custom_channel_map_locations[ch][0]) { - int index = av_get_channel_layout_channel_index(channel_layout, - ff_eac3_custom_channel_map_locations[ch][1]); + int index = av_channel_layout_index_from_channel(&avctx->ch_layout, + ff_ctzll(ff_eac3_custom_channel_map_locations[ch][1])); if (index < 0) return AVERROR_INVALIDDATA; if (extend >= channel_map_size) @@ -1739,8 +1757,7 @@ skip: for (i = 0; i < 64; i++) { if ((1ULL << i) & ff_eac3_custom_channel_map_locations[ch][1]) { - int index = av_get_channel_layout_channel_index(channel_layout, - 1ULL << i); + int index = av_channel_layout_index_from_channel(&avctx->ch_layout, i); if (index < 0) return AVERROR_INVALIDDATA; if (extend >= channel_map_size) @@ -1759,7 +1776,7 @@ skip: if ((ret = ff_get_buffer(avctx, frame, 0)) < 0) return ret; - for (ch = 0; ch < avctx->channels; ch++) { + for (ch = 0; ch < avctx->ch_layout.nb_channels; ch++) { int map = extended_channel_map[ch]; av_assert0(ch>=AV_NUM_DATA_POINTERS || frame->extended_data[ch] == frame->data[ch]); memcpy((SHORTFLOAT *)frame->extended_data[ch], diff --git a/libavcodec/ac3dec.h b/libavcodec/ac3dec.h index 85653990cf..9444124974 100644 --- a/libavcodec/ac3dec.h +++ b/libavcodec/ac3dec.h @@ -251,6 +251,8 @@ typedef struct AC3DecodeContext { DECLARE_ALIGNED(32, uint8_t, input_buffer)[AC3_FRAME_BUFFER_SIZE + AV_INPUT_BUFFER_PADDING_SIZE]; ///< temp buffer to prevent overread DECLARE_ALIGNED(32, SHORTFLOAT, output_buffer)[EAC3_MAX_CHANNELS][AC3_BLOCK_SIZE * 6]; ///< final output buffer ///@} + + AVChannelLayout downmix_layout; } AC3DecodeContext; /** diff --git a/libavcodec/ac3dec_fixed.c b/libavcodec/ac3dec_fixed.c index 8645952621..ae433c5cc7 100644 --- a/libavcodec/ac3dec_fixed.c +++ b/libavcodec/ac3dec_fixed.c @@ -157,6 +157,7 @@ static const AVOption options[] = { { "cons_noisegen", "enable consistent noise generation", OFFSET(consistent_noise_generation), AV_OPT_TYPE_BOOL, {.i64 = 0 }, 0, 1, PAR }, { "drc_scale", "percentage of dynamic range compression to apply", OFFSET(drc_scale), AV_OPT_TYPE_FLOAT, {.dbl = 1.0}, 0.0, 6.0, PAR }, { "heavy_compr", "enable heavy dynamic range compression", OFFSET(heavy_compression), AV_OPT_TYPE_BOOL, {.i64 = 0 }, 0, 1, PAR }, + { "downmix", "Request a specific channel layout from the decoder", OFFSET(downmix_layout), AV_OPT_TYPE_CHLAYOUT, {.str = NULL}, .flags = PAR }, { NULL}, }; diff --git a/libavcodec/ac3dec_float.c b/libavcodec/ac3dec_float.c index 573fbe75b6..2b1b359a0c 100644 --- a/libavcodec/ac3dec_float.c +++ b/libavcodec/ac3dec_float.c @@ -43,6 +43,8 @@ static const AVOption options[] = { {"loro_cmixlev", "Lo/Ro Center Mix Level", OFFSET(loro_center_mix_level), AV_OPT_TYPE_FLOAT, {.dbl = -1.0 }, -1.0, 2.0, 0}, {"loro_surmixlev", "Lo/Ro Surround Mix Level", OFFSET(loro_surround_mix_level), AV_OPT_TYPE_FLOAT, {.dbl = -1.0 }, -1.0, 2.0, 0}, + { "downmix", "Request a specific channel layout from the decoder", OFFSET(downmix_layout), AV_OPT_TYPE_CHLAYOUT, {.str = NULL}, .flags = PAR }, + { NULL}, }; diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c index 034aa0beb9..30ba8bfecd 100644 --- a/libavcodec/ac3enc.c +++ b/libavcodec/ac3enc.c @@ -147,6 +147,7 @@ static uint8_t exponent_group_tab[2][3][256]; /** * List of supported channel layouts. */ +#if FF_API_OLD_CHANNEL_LAYOUT const uint64_t ff_ac3_channel_layouts[19] = { AV_CH_LAYOUT_MONO, AV_CH_LAYOUT_STEREO, @@ -168,6 +169,47 @@ const uint64_t ff_ac3_channel_layouts[19] = { AV_CH_LAYOUT_5POINT1_BACK, 0 }; +#endif + +const AVChannelLayout ff_ac3_ch_layouts[19] = { + AV_CHANNEL_LAYOUT_MONO, + AV_CHANNEL_LAYOUT_STEREO, + AV_CHANNEL_LAYOUT_2_1, + AV_CHANNEL_LAYOUT_SURROUND, + AV_CHANNEL_LAYOUT_2_2, + AV_CHANNEL_LAYOUT_QUAD, + AV_CHANNEL_LAYOUT_4POINT0, + AV_CHANNEL_LAYOUT_5POINT0, + AV_CHANNEL_LAYOUT_5POINT0_BACK, + { + .nb_channels = 2, + .order = AV_CHANNEL_ORDER_NATIVE, + .u.mask = AV_CH_LAYOUT_MONO | AV_CH_LOW_FREQUENCY, + }, + { + .nb_channels = 3, + .order = AV_CHANNEL_ORDER_NATIVE, + .u.mask = AV_CH_LAYOUT_STEREO | AV_CH_LOW_FREQUENCY, + }, + { + .nb_channels = 4, + .order = AV_CHANNEL_ORDER_NATIVE, + .u.mask = AV_CH_LAYOUT_2_1 | AV_CH_LOW_FREQUENCY, + }, + { + .nb_channels = 4, + .order = AV_CHANNEL_ORDER_NATIVE, + .u.mask = AV_CH_LAYOUT_SURROUND | AV_CH_LOW_FREQUENCY, + }, + { + .nb_channels = 5, + .order = AV_CHANNEL_ORDER_NATIVE, + .u.mask = AV_CH_LAYOUT_4POINT0 | AV_CH_LOW_FREQUENCY, + }, + AV_CHANNEL_LAYOUT_5POINT1, + AV_CHANNEL_LAYOUT_5POINT1_BACK, + { 0 }, +}; /** * Table to remap channels from SMPTE order to AC-3 order. @@ -1797,7 +1839,7 @@ static void dprint_options(AC3EncodeContext *s) } ff_dlog(avctx, "bitstream_id: %s (%d)\n", strbuf, s->bitstream_id); ff_dlog(avctx, "sample_fmt: %s\n", av_get_sample_fmt_name(avctx->sample_fmt)); - av_get_channel_layout_string(strbuf, 32, s->channels, avctx->channel_layout); + av_channel_layout_describe(&avctx->ch_layout, strbuf, sizeof(strbuf)); ff_dlog(avctx, "channel_layout: %s\n", strbuf); ff_dlog(avctx, "sample_rate: %d\n", s->sample_rate); ff_dlog(avctx, "bit_rate: %d\n", s->bit_rate); @@ -2041,11 +2083,11 @@ int ff_ac3_validate_metadata(AC3EncodeContext *s) /* validate audio service type / channels combination */ if ((avctx->audio_service_type == AV_AUDIO_SERVICE_TYPE_KARAOKE && - avctx->channels == 1) || + avctx->ch_layout.nb_channels == 1) || ((avctx->audio_service_type == AV_AUDIO_SERVICE_TYPE_COMMENTARY || avctx->audio_service_type == AV_AUDIO_SERVICE_TYPE_EMERGENCY || avctx->audio_service_type == AV_AUDIO_SERVICE_TYPE_VOICE_OVER) - && avctx->channels > 1)) { + && avctx->ch_layout.nb_channels > 1)) { av_log(avctx, AV_LOG_ERROR, "invalid audio service type for the " "specified number of channels\n"); return AVERROR(EINVAL); @@ -2167,27 +2209,29 @@ av_cold int ff_ac3_encode_close(AVCodecContext *avctx) /* * Set channel information during initialization. */ -static av_cold int set_channel_info(AC3EncodeContext *s, int channels, - uint64_t *channel_layout) +static av_cold int set_channel_info(AVCodecContext *avctx) { - int ch_layout; + AC3EncodeContext *s = avctx->priv_data; + int channels = avctx->ch_layout.nb_channels; + uint64_t mask = avctx->ch_layout.u.mask; if (channels < 1 || channels > AC3_MAX_CHANNELS) return AVERROR(EINVAL); - if (*channel_layout > 0x7FF) + if (mask > 0x7FF) return AVERROR(EINVAL); - ch_layout = *channel_layout; - if (!ch_layout) - ch_layout = av_get_default_channel_layout(channels); - s->lfe_on = !!(ch_layout & AV_CH_LOW_FREQUENCY); + if (!mask) + av_channel_layout_default(&avctx->ch_layout, channels); + mask = avctx->ch_layout.u.mask; + + s->lfe_on = !!(mask & AV_CH_LOW_FREQUENCY); s->channels = channels; s->fbw_channels = channels - s->lfe_on; s->lfe_channel = s->lfe_on ? s->fbw_channels + 1 : -1; if (s->lfe_on) - ch_layout -= AV_CH_LOW_FREQUENCY; + mask -= AV_CH_LOW_FREQUENCY; - switch (ch_layout) { + switch (mask) { case AV_CH_LAYOUT_MONO: s->channel_mode = AC3_CHMODE_MONO; break; case AV_CH_LAYOUT_STEREO: s->channel_mode = AC3_CHMODE_STEREO; break; case AV_CH_LAYOUT_SURROUND: s->channel_mode = AC3_CHMODE_3F; break; @@ -2204,9 +2248,9 @@ static av_cold int set_channel_info(AC3EncodeContext *s, int channels, s->has_surround = s->channel_mode & 0x04; s->channel_map = ac3_enc_channel_map[s->channel_mode][s->lfe_on]; - *channel_layout = ch_layout; if (s->lfe_on) - *channel_layout |= AV_CH_LOW_FREQUENCY; + mask |= AV_CH_LOW_FREQUENCY; + av_channel_layout_from_mask(&avctx->ch_layout, mask); return 0; } @@ -2218,12 +2262,12 @@ static av_cold int validate_options(AC3EncodeContext *s) int i, ret, max_sr; /* validate channel layout */ - if (!avctx->channel_layout) { + if (!avctx->ch_layout.nb_channels) { av_log(avctx, AV_LOG_WARNING, "No channel layout specified. The " "encoder will guess the layout, but it " "might be incorrect.\n"); } - ret = set_channel_info(s, avctx->channels, &avctx->channel_layout); + ret = set_channel_info(avctx); if (ret) { av_log(avctx, AV_LOG_ERROR, "invalid channel layout\n"); return ret; diff --git a/libavcodec/ac3enc.h b/libavcodec/ac3enc.h index 39a41fe0b0..647a7769ec 100644 --- a/libavcodec/ac3enc.h +++ b/libavcodec/ac3enc.h @@ -266,8 +266,10 @@ typedef struct AC3EncodeContext { void (*output_frame_header)(struct AC3EncodeContext *s); } AC3EncodeContext; - +#if FF_API_OLD_CHANNEL_LAYOUT extern const uint64_t ff_ac3_channel_layouts[19]; +#endif +extern const AVChannelLayout ff_ac3_ch_layouts[19]; extern const AVOption ff_ac3_enc_options[]; extern const AVClass ff_ac3enc_class; extern const AVCodecDefault ff_ac3_enc_defaults[]; diff --git a/libavcodec/ac3enc_fixed.c b/libavcodec/ac3enc_fixed.c index 80aa98c691..6e0abf4a26 100644 --- a/libavcodec/ac3enc_fixed.c +++ b/libavcodec/ac3enc_fixed.c @@ -119,6 +119,7 @@ static av_cold int ac3_fixed_encode_init(AVCodecContext *avctx) } +FF_DISABLE_DEPRECATION_WARNINGS const AVCodec ff_ac3_fixed_encoder = { .name = "ac3_fixed", .long_name = NULL_IF_CONFIG_SMALL("ATSC A/52A (AC-3)"), @@ -134,6 +135,10 @@ const AVCodec ff_ac3_fixed_encoder = { .priv_class = &ff_ac3enc_class, .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP, .supported_samplerates = ff_ac3_sample_rate_tab, +#if FF_API_OLD_CHANNEL_LAYOUT .channel_layouts = ff_ac3_channel_layouts, +#endif + .ch_layouts = ff_ac3_ch_layouts, .defaults = ff_ac3_enc_defaults, }; +FF_ENABLE_DEPRECATION_WARNINGS diff --git a/libavcodec/ac3enc_float.c b/libavcodec/ac3enc_float.c index e4a3794dd8..0e605cdf2c 100644 --- a/libavcodec/ac3enc_float.c +++ b/libavcodec/ac3enc_float.c @@ -123,6 +123,7 @@ av_cold int ff_ac3_float_encode_init(AVCodecContext *avctx) return ff_ac3_encode_init(avctx); } +FF_DISABLE_DEPRECATION_WARNINGS const AVCodec ff_ac3_encoder = { .name = "ac3", .long_name = NULL_IF_CONFIG_SMALL("ATSC A/52A (AC-3)"), @@ -137,7 +138,11 @@ const AVCodec ff_ac3_encoder = { AV_SAMPLE_FMT_NONE }, .priv_class = &ff_ac3enc_class, .supported_samplerates = ff_ac3_sample_rate_tab, +#if FF_API_OLD_CHANNEL_LAYOUT .channel_layouts = ff_ac3_channel_layouts, +#endif + .ch_layouts = ff_ac3_ch_layouts, .defaults = ff_ac3_enc_defaults, .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP, }; +FF_ENABLE_DEPRECATION_WARNINGS diff --git a/libavcodec/eac3enc.c b/libavcodec/eac3enc.c index 96ef00ea4f..c959aec55c 100644 --- a/libavcodec/eac3enc.c +++ b/libavcodec/eac3enc.c @@ -248,6 +248,7 @@ void ff_eac3_output_frame_header(AC3EncodeContext *s) } +FF_DISABLE_DEPRECATION_WARNINGS const AVCodec ff_eac3_encoder = { .name = "eac3", .long_name = NULL_IF_CONFIG_SMALL("ATSC A/52 E-AC-3"), @@ -262,7 +263,11 @@ const AVCodec ff_eac3_encoder = { AV_SAMPLE_FMT_NONE }, .priv_class = &eac3enc_class, .supported_samplerates = ff_ac3_sample_rate_tab, +#if FF_API_OLD_CHANNEL_LAYOUT .channel_layouts = ff_ac3_channel_layouts, +#endif + .ch_layouts = ff_ac3_ch_layouts, .defaults = ff_ac3_enc_defaults, .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP, }; +FF_ENABLE_DEPRECATION_WARNINGS diff --git a/tests/fate/ac3.mak b/tests/fate/ac3.mak index 39b555161d..f0c3d18049 100644 --- a/tests/fate/ac3.mak +++ b/tests/fate/ac3.mak @@ -6,13 +6,13 @@ FATE_AC3 += fate-ac3-4.0 fate-ac3-4.0: CMD = pcm -i $(TARGET_SAMPLES)/ac3/millers_crossing_4.0.ac3 fate-ac3-4.0: REF = $(SAMPLES)/ac3/millers_crossing_4.0_v2.pcm -#request_channel_layout 4 -> front channel +#downmix 4.0 -> front channel FATE_AC3 += fate-ac3-4.0-downmix-mono -fate-ac3-4.0-downmix-mono: CMD = pcm -request_channel_layout 4 -i $(TARGET_SAMPLES)/ac3/millers_crossing_4.0.ac3 +fate-ac3-4.0-downmix-mono: CMD = pcm -downmix mono -i $(TARGET_SAMPLES)/ac3/millers_crossing_4.0.ac3 fate-ac3-4.0-downmix-mono: REF = $(SAMPLES)/ac3/millers_crossing_4.0_mono_v2.pcm FATE_AC3 += fate-ac3-4.0-downmix-stereo -fate-ac3-4.0-downmix-stereo: CMD = pcm -request_channel_layout stereo -i $(TARGET_SAMPLES)/ac3/millers_crossing_4.0.ac3 +fate-ac3-4.0-downmix-stereo: CMD = pcm -downmix stereo -i $(TARGET_SAMPLES)/ac3/millers_crossing_4.0.ac3 fate-ac3-4.0-downmix-stereo: REF = $(SAMPLES)/ac3/millers_crossing_4.0_stereo_v2.pcm FATE_AC3 += fate-ac3-5.1 @@ -20,11 +20,11 @@ fate-ac3-5.1: CMD = pcm -i $(TARGET_SAMPLES)/ac3/monsters_inc_5.1_448_small.ac3 fate-ac3-5.1: REF = $(SAMPLES)/ac3/monsters_inc_5.1_448_small_v2.pcm FATE_AC3 += fate-ac3-5.1-downmix-mono -fate-ac3-5.1-downmix-mono: CMD = pcm -request_channel_layout FC -i $(TARGET_SAMPLES)/ac3/monsters_inc_5.1_448_small.ac3 +fate-ac3-5.1-downmix-mono: CMD = pcm -downmix FC -i $(TARGET_SAMPLES)/ac3/monsters_inc_5.1_448_small.ac3 fate-ac3-5.1-downmix-mono: REF = $(SAMPLES)/ac3/monsters_inc_5.1_448_small_mono_v2.pcm FATE_AC3 += fate-ac3-5.1-downmix-stereo -fate-ac3-5.1-downmix-stereo: CMD = pcm -request_channel_layout 2c -i $(TARGET_SAMPLES)/ac3/monsters_inc_5.1_448_small.ac3 +fate-ac3-5.1-downmix-stereo: CMD = pcm -downmix stereo -i $(TARGET_SAMPLES)/ac3/monsters_inc_5.1_448_small.ac3 fate-ac3-5.1-downmix-stereo: REF = $(SAMPLES)/ac3/monsters_inc_5.1_448_small_stereo_v2.pcm FATE_AC3 += fate-ac3-fixed-2.0 @@ -32,15 +32,15 @@ fate-ac3-fixed-2.0: CMD = pcm -c ac3_fixed -i $(TARGET_SAMPLES)/ac3/monsters_inc fate-ac3-fixed-2.0: REF = $(SAMPLES)/ac3/monsters_inc_2.0_192_small_v2.pcm FATE_AC3 += fate-ac3-fixed-4.0-downmix-mono -fate-ac3-fixed-4.0-downmix-mono: CMD = pcm -c ac3_fixed -request_channel_layout mono -i $(TARGET_SAMPLES)/ac3/millers_crossing_4.0.ac3 +fate-ac3-fixed-4.0-downmix-mono: CMD = pcm -c ac3_fixed -downmix mono -i $(TARGET_SAMPLES)/ac3/millers_crossing_4.0.ac3 fate-ac3-fixed-4.0-downmix-mono: REF = $(SAMPLES)/ac3/millers_crossing_4.0_mono_v2.pcm FATE_AC3 += fate-ac3-fixed-5.1-downmix-mono -fate-ac3-fixed-5.1-downmix-mono: CMD = pcm -c ac3_fixed -request_channel_layout 4 -i $(TARGET_SAMPLES)/ac3/monsters_inc_5.1_448_small.ac3 +fate-ac3-fixed-5.1-downmix-mono: CMD = pcm -c ac3_fixed -downmix mono -i $(TARGET_SAMPLES)/ac3/monsters_inc_5.1_448_small.ac3 fate-ac3-fixed-5.1-downmix-mono: REF = $(SAMPLES)/ac3/monsters_inc_5.1_448_small_mono_v2.pcm FATE_AC3 += fate-ac3-fixed-5.1-downmix-stereo -fate-ac3-fixed-5.1-downmix-stereo: CMD = pcm -c ac3_fixed -request_channel_layout 3 -i $(TARGET_SAMPLES)/ac3/monsters_inc_5.1_448_small.ac3 +fate-ac3-fixed-5.1-downmix-stereo: CMD = pcm -c ac3_fixed -downmix stereo -i $(TARGET_SAMPLES)/ac3/monsters_inc_5.1_448_small.ac3 fate-ac3-fixed-5.1-downmix-stereo: REF = $(SAMPLES)/ac3/monsters_inc_5.1_448_small_stereo_v2.pcm FATE_EAC3 += fate-eac3-1 From patchwork Thu Jan 13 02:02: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: 33460 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp37612iog; Wed, 12 Jan 2022 18:33:56 -0800 (PST) X-Google-Smtp-Source: ABdhPJx7H8SrmI/h9qaspsrmbv48GSlsuPt5eP2gh2Jbz34HG9z+oRCtrjpKx7J122iWlPAeCzhv X-Received: by 2002:a17:906:158f:: with SMTP id k15mr1903814ejd.367.1642041236101; Wed, 12 Jan 2022 18:33:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041236; cv=none; d=google.com; s=arc-20160816; b=I3WRPN/80ht+H0c3j7hMHVCqoME6uB9Zl/YI93RHGRr+s6jPnQTG71x2Owbhkh/48+ Dyu/oygp4TtuK6ucJ3Gt/vJZ99ETk1N01y2z8m0oP3Rnbc6C9Smaw+0iuOAPIPoanvbO 2oAcw72oe20odPWZj/KPGUqGH2OcuvRGLpZy644CQzTk0ROldhfLfi/BFOOutNHLmZ5i 0x1WMsbzXsvoVo6hLwRx0I9BlewIIF4kCvbua1TtGRUV6f/Mdow1meTZilMKiUeklP/r FtWfwkKEjZ6BpQQ/5xo0+8U1HlVsuOtql8jetakKjTLsc3cPkcVntSlkCxbiln+bvFHN eHSg== 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=qEsc+8PgZ5a5RS7cm0YdvZjFobt6Kr/3/5LxFrjyf/E=; b=Lc8H5yVDstiSOIYlNbDrt19Gy5wAlDUK34FlayaerFcDLBWjFqqG0CSCo+ud63TbQi 0q+h3/OzAhX95dEwgY0eLoZ5VtIPmbzyCMLL15/wYiHC8HJF1pS3gR3sVBosNZwlZb6O 9YQ48mhCt0XsLWsqYd6UbCXVx477ajpOluOUC+5DqQaqwaaaDVgwAejtqh+n4M6STAlQ ITYcuGYECt+KEHqr94MkisxsFzk5pGC74stqhPnia97ywiVQq79Frx+ddYRCrrLLpJ96 DQRrpAOffQUeScLobIu6yoDYsNvFlpJcRm/mtJmDcjuWOlSmZ/wrYRsVJeqWEnpX0/9g +EiQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=JhGS2FQd; 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 rp21si761596ejb.639.2022.01.12.18.33.55; Wed, 12 Jan 2022 18:33:56 -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=JhGS2FQd; 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 0003D68B606; Thu, 13 Jan 2022 04:03:12 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f41.google.com (mail-qv1-f41.google.com [209.85.219.41]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 743EE68B5C2 for ; Thu, 13 Jan 2022 04:03:04 +0200 (EET) Received: by mail-qv1-f41.google.com with SMTP id p12so5103879qvj.6 for ; Wed, 12 Jan 2022 18:03:04 -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=f6mUH/MCa9LV35UHZKVq72YA+/+X86/D6CT73tPAtaQ=; b=JhGS2FQdJy7puolgBkRP+bD2I+KW5AKxNIx2B1Q3oyicNFBOaWtLx4iwpArDTtjIp8 U2+bogNoP5Vdpj9LjTazfP7gn0YCKiANIYJWh5UqQhlnZLy3qOQIcDlWdC0TIEQFaFXo RZiuSUpsULOF/cjSS0KtOeLjLUp1AcEB4F3URGdASm+oPqwh2XqWUjZpQCcG8bZaq8Gd c4weQh0fEw/taSy8G74h+dsDy1bqslPKFwySXfeseEG5JrdoIr3j628AsBhzNmx2FQQ6 i68WUCdmAQFLMMmu7Vua1IpildHDop2L6G1nCL4QCdM0XVmrtDY62aujz/Z2UzrE65/C Ne9g== 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=f6mUH/MCa9LV35UHZKVq72YA+/+X86/D6CT73tPAtaQ=; b=HWL8rcEJjIlRH8SyyPqMJ1XzBVACQXjis/Qppz3cQxEyK3sEc3pCiKoHQwMjvgry2N N4L4dlT918b8ZLanYnh+ZpXTB6bCBE+KvSccMi1H8bbCSj7jSw0emchnVTeU/61l7HFe 9NrlA9wCTO4RxQVYLtscKsDmdEG5AU11rI/r8YUZT3tISMl4zH3yy+Bq93nl/cDcBP15 NEk8uP4SQA56qLm5YEM9pZVUArEhCcILBPurTSI4DO55hdCJFo2SJX5+O9A44X0QuQwd 7d29gopshJFo0Ix1DN4INDb+/JABDvFmcZWgS75yrQQDwLSbjy3PWnGZIzISkN8RNY57 hdBg== X-Gm-Message-State: AOAM533jTuwJk7DjR70IMUVRC33DpgDEcWJ8bDPuoAA0BNULNWADQhmm 2lx4NfzR1KpR1PsOrX/bPCo2yZLXUD4= X-Received: by 2002:a05:6214:29ea:: with SMTP id jv10mr2301376qvb.105.1642039382196; Wed, 12 Jan 2022 18:03:02 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id v1sm1045961qtc.95.2022.01.12.18.03.01 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:03:01 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:02:17 -0300 Message-Id: <20220113020242.661-5-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 184/281] adpcm: 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: byelYWx9krLh From: Anton Khirnov Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavcodec/adpcm.c | 151 ++++++++++++++++++++++-------------------- libavcodec/adpcmenc.c | 122 +++++++++++++++++----------------- 2 files changed, 141 insertions(+), 132 deletions(-) diff --git a/libavcodec/adpcm.c b/libavcodec/adpcm.c index cfde5f58b9..0591314302 100644 --- a/libavcodec/adpcm.c +++ b/libavcodec/adpcm.c @@ -271,14 +271,15 @@ static av_cold int adpcm_decode_init(AVCodecContext * avctx) case AV_CODEC_ID_ADPCM_MTAF: min_channels = 2; max_channels = 8; - if (avctx->channels & 1) { - avpriv_request_sample(avctx, "channel count %d", avctx->channels); + if (avctx->ch_layout.nb_channels & 1) { + avpriv_request_sample(avctx, "channel count %d", avctx->ch_layout.nb_channels); return AVERROR_PATCHWELCOME; } break; case AV_CODEC_ID_ADPCM_PSX: max_channels = 8; - if (avctx->channels <= 0 || avctx->block_align % (16 * avctx->channels)) + if (avctx->ch_layout.nb_channels <= 0 || + avctx->block_align % (16 * avctx->ch_layout.nb_channels)) return AVERROR_INVALIDDATA; break; case AV_CODEC_ID_ADPCM_IMA_DAT4: @@ -287,7 +288,8 @@ static av_cold int adpcm_decode_init(AVCodecContext * avctx) max_channels = 14; break; } - if (avctx->channels < min_channels || avctx->channels > max_channels) { + if (avctx->ch_layout.nb_channels < min_channels || + avctx->ch_layout.nb_channels > max_channels) { av_log(avctx, AV_LOG_ERROR, "Invalid number of channels\n"); return AVERROR(EINVAL); } @@ -298,7 +300,8 @@ static av_cold int adpcm_decode_init(AVCodecContext * avctx) return AVERROR_INVALIDDATA; break; case AV_CODEC_ID_ADPCM_ARGO: - if (avctx->bits_per_coded_sample != 4 || avctx->block_align != 17 * avctx->channels) + if (avctx->bits_per_coded_sample != 4 || + avctx->block_align != 17 * avctx->ch_layout.nb_channels) return AVERROR_INVALIDDATA; break; case AV_CODEC_ID_ADPCM_ZORK: @@ -336,7 +339,7 @@ static av_cold int adpcm_decode_init(AVCodecContext * avctx) AV_SAMPLE_FMT_S16; break; case AV_CODEC_ID_ADPCM_MS: - avctx->sample_fmt = avctx->channels > 2 ? AV_SAMPLE_FMT_S16P : + avctx->sample_fmt = avctx->ch_layout.nb_channels > 2 ? AV_SAMPLE_FMT_S16P : AV_SAMPLE_FMT_S16; break; default: @@ -755,6 +758,7 @@ static void adpcm_swf_decode(AVCodecContext *avctx, const uint8_t *buf, int buf_ ADPCMDecodeContext *c = avctx->priv_data; GetBitContext gb; const int8_t *table; + int channels = avctx->ch_layout.nb_channels; int k0, signmask, nb_bits, count; int size = buf_size*8; int i; @@ -767,16 +771,16 @@ static void adpcm_swf_decode(AVCodecContext *avctx, const uint8_t *buf, int buf_ k0 = 1 << (nb_bits-2); signmask = 1 << (nb_bits-1); - while (get_bits_count(&gb) <= size - 22*avctx->channels) { - for (i = 0; i < avctx->channels; i++) { + while (get_bits_count(&gb) <= size - 22 * channels) { + for (i = 0; i < channels; i++) { *samples++ = c->status[i].predictor = get_sbits(&gb, 16); c->status[i].step_index = get_bits(&gb, 6); } - for (count = 0; get_bits_count(&gb) <= size - nb_bits*avctx->channels && count < 4095; count++) { + for (count = 0; get_bits_count(&gb) <= size - nb_bits * channels && count < 4095; count++) { int i; - for (i = 0; i < avctx->channels; i++) { + for (i = 0; i < channels; i++) { // similar to IMA adpcm int delta = get_bits(&gb, nb_bits); int step = ff_adpcm_step_table[c->status[i].step_index]; @@ -840,7 +844,7 @@ static int get_nb_samples(AVCodecContext *avctx, GetByteContext *gb, { ADPCMDecodeContext *s = avctx->priv_data; int nb_samples = 0; - int ch = avctx->channels; + int ch = avctx->ch_layout.nb_channels; int has_coded_samples = 0; int header_size; @@ -1061,6 +1065,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, const uint8_t *buf = avpkt->data; int buf_size = avpkt->size; ADPCMDecodeContext *c = avctx->priv_data; + int channels = avctx->ch_layout.nb_channels; int16_t *samples; int16_t **samples_p; int st; /* stereo */ @@ -1089,13 +1094,13 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, frame->nb_samples = nb_samples = coded_samples; } - st = avctx->channels == 2 ? 1 : 0; + st = channels == 2 ? 1 : 0; switch(avctx->codec->id) { CASE(ADPCM_IMA_QT, /* In QuickTime, IMA is encoded by chunks of 34 bytes (=64 samples). Channel data is interleaved per-chunk. */ - for (int channel = 0; channel < avctx->channels; channel++) { + for (int channel = 0; channel < channels; channel++) { ADPCMChannelStatus *cs = &c->status[channel]; int predictor; int step_index; @@ -1134,7 +1139,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, } ) /* End of CASE */ CASE(ADPCM_IMA_WAV, - for (int i = 0; i < avctx->channels; i++) { + for (int i = 0; i < channels; i++) { ADPCMChannelStatus *cs = &c->status[i]; cs->predictor = samples_p[i][0] = sign_extend(bytestream2_get_le16u(&gb), 16); @@ -1153,12 +1158,12 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, GetBitContext g; for (int n = 0; n < (nb_samples - 1) / samples_per_block; n++) { - for (int i = 0; i < avctx->channels; i++) { + for (int i = 0; i < channels; i++) { ADPCMChannelStatus *cs = &c->status[i]; samples = &samples_p[i][1 + n * samples_per_block]; for (int j = 0; j < block_size; j++) { - temp[j] = buf[4 * avctx->channels + block_size * n * avctx->channels + - (j % 4) + (j / 4) * (avctx->channels * 4) + i * 4]; + temp[j] = buf[4 * channels + block_size * n * channels + + (j % 4) + (j / 4) * (channels * 4) + i * 4]; } ret = init_get_bits8(&g, (const uint8_t *)&temp, block_size); if (ret < 0) @@ -1169,10 +1174,10 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, } } } - bytestream2_skip(&gb, avctx->block_align - avctx->channels * 4); + bytestream2_skip(&gb, avctx->block_align - channels * 4); } else { for (int n = 0; n < (nb_samples - 1) / 8; n++) { - for (int i = 0; i < avctx->channels; i++) { + for (int i = 0; i < channels; i++) { ADPCMChannelStatus *cs = &c->status[i]; samples = &samples_p[i][1 + n * 8]; for (int m = 0; m < 8; m += 2) { @@ -1185,10 +1190,10 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, } ) /* End of CASE */ CASE(ADPCM_4XM, - for (int i = 0; i < avctx->channels; i++) + for (int i = 0; i < channels; i++) c->status[i].predictor = sign_extend(bytestream2_get_le16u(&gb), 16); - for (int i = 0; i < avctx->channels; i++) { + for (int i = 0; i < channels; i++) { c->status[i].step_index = sign_extend(bytestream2_get_le16u(&gb), 16); if (c->status[i].step_index > 88u) { av_log(avctx, AV_LOG_ERROR, "ERROR: step_index[%d] = %i\n", @@ -1197,7 +1202,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, } } - for (int i = 0; i < avctx->channels; i++) { + for (int i = 0; i < channels; i++) { ADPCMChannelStatus *cs = &c->status[i]; samples = (int16_t *)frame->data[i]; for (int n = nb_samples >> 1; n > 0; n--) { @@ -1208,9 +1213,9 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, } ) /* End of CASE */ CASE(ADPCM_AGM, - for (int i = 0; i < avctx->channels; i++) + for (int i = 0; i < channels; i++) c->status[i].predictor = sign_extend(bytestream2_get_le16u(&gb), 16); - for (int i = 0; i < avctx->channels; i++) + for (int i = 0; i < channels; i++) c->status[i].step = sign_extend(bytestream2_get_le16u(&gb), 16); for (int n = 0; n < nb_samples >> (1 - st); n++) { @@ -1222,8 +1227,8 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, CASE(ADPCM_MS, int block_predictor; - if (avctx->channels > 2) { - for (int channel = 0; channel < avctx->channels; channel++) { + if (avctx->ch_layout.nb_channels > 2) { + for (int channel = 0; channel < avctx->ch_layout.nb_channels; channel++) { samples = samples_p[channel]; block_predictor = bytestream2_get_byteu(&gb); if (block_predictor > 6) { @@ -1285,7 +1290,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, } ) /* End of CASE */ CASE(ADPCM_MTAF, - for (int channel = 0; channel < avctx->channels; channel += 2) { + for (int channel = 0; channel < channels; channel += 2) { bytestream2_skipu(&gb, 4); c->status[channel ].step = bytestream2_get_le16u(&gb) & 0x1f; c->status[channel + 1].step = bytestream2_get_le16u(&gb) & 0x1f; @@ -1306,7 +1311,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, } ) /* End of CASE */ CASE(ADPCM_IMA_DK4, - for (int channel = 0; channel < avctx->channels; channel++) { + for (int channel = 0; channel < channels; channel++) { ADPCMChannelStatus *cs = &c->status[channel]; cs->predictor = *samples++ = sign_extend(bytestream2_get_le16u(&gb), 16); cs->step_index = sign_extend(bytestream2_get_le16u(&gb), 16); @@ -1338,7 +1343,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, int nibble; int decode_top_nibble_next = 0; int diff_channel; - const int16_t *samples_end = samples + avctx->channels * nb_samples; + const int16_t *samples_end = samples + channels * nb_samples; bytestream2_skipu(&gb, 10); c->status[0].predictor = sign_extend(bytestream2_get_le16u(&gb), 16); @@ -1385,7 +1390,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, bytestream2_skip(&gb, 1); ) /* End of CASE */ CASE(ADPCM_IMA_ISS, - for (int channel = 0; channel < avctx->channels; channel++) { + for (int channel = 0; channel < channels; channel++) { ADPCMChannelStatus *cs = &c->status[channel]; cs->predictor = sign_extend(bytestream2_get_le16u(&gb), 16); cs->step_index = sign_extend(bytestream2_get_le16u(&gb), 16); @@ -1412,7 +1417,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, } ) /* End of CASE */ CASE(ADPCM_IMA_MOFLEX, - for (int channel = 0; channel < avctx->channels; channel++) { + for (int channel = 0; channel < channels; channel++) { ADPCMChannelStatus *cs = &c->status[channel]; cs->step_index = sign_extend(bytestream2_get_le16u(&gb), 16); cs->predictor = sign_extend(bytestream2_get_le16u(&gb), 16); @@ -1424,7 +1429,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, } for (int subframe = 0; subframe < nb_samples / 256; subframe++) { - for (int channel = 0; channel < avctx->channels; channel++) { + for (int channel = 0; channel < channels; channel++) { samples = samples_p[channel] + 256 * subframe; for (int n = 0; n < 256; n += 2) { int v = bytestream2_get_byteu(&gb); @@ -1435,7 +1440,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, } ) /* End of CASE */ CASE(ADPCM_IMA_DAT4, - for (int channel = 0; channel < avctx->channels; channel++) { + for (int channel = 0; channel < channels; channel++) { ADPCMChannelStatus *cs = &c->status[channel]; samples = samples_p[channel]; bytestream2_skip(&gb, 4); @@ -1462,26 +1467,26 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, ) /* End of CASE */ CASE(ADPCM_IMA_APM, for (int n = nb_samples / 2; n > 0; n--) { - for (int channel = 0; channel < avctx->channels; channel++) { + for (int channel = 0; channel < channels; channel++) { int v = bytestream2_get_byteu(&gb); *samples++ = adpcm_ima_qt_expand_nibble(&c->status[channel], v >> 4 ); samples[st] = adpcm_ima_qt_expand_nibble(&c->status[channel], v & 0x0F); } - samples += avctx->channels; + samples += channels; } ) /* End of CASE */ CASE(ADPCM_IMA_ALP, for (int n = nb_samples / 2; n > 0; n--) { - for (int channel = 0; channel < avctx->channels; channel++) { + for (int channel = 0; channel < channels; channel++) { int v = bytestream2_get_byteu(&gb); *samples++ = adpcm_ima_alp_expand_nibble(&c->status[channel], v >> 4 , 2); samples[st] = adpcm_ima_alp_expand_nibble(&c->status[channel], v & 0x0F, 2); } - samples += avctx->channels; + samples += channels; } ) /* End of CASE */ CASE(ADPCM_IMA_CUNNING, - for (int channel = 0; channel < avctx->channels; channel++) { + for (int channel = 0; channel < channels; channel++) { int16_t *smp = samples_p[channel]; for (int n = 0; n < nb_samples / 2; n++) { int v = bytestream2_get_byteu(&gb); @@ -1498,7 +1503,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, } ) /* End of CASE */ CASE(ADPCM_IMA_RAD, - for (int channel = 0; channel < avctx->channels; channel++) { + for (int channel = 0; channel < channels; channel++) { ADPCMChannelStatus *cs = &c->status[channel]; cs->step_index = sign_extend(bytestream2_get_le16u(&gb), 16); cs->predictor = sign_extend(bytestream2_get_le16u(&gb), 16); @@ -1514,17 +1519,17 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, byte[0] = bytestream2_get_byteu(&gb); if (st) byte[1] = bytestream2_get_byteu(&gb); - for (int channel = 0; channel < avctx->channels; channel++) { + for (int channel = 0; channel < channels; channel++) { *samples++ = adpcm_ima_expand_nibble(&c->status[channel], byte[channel] & 0x0F, 3); } - for (int channel = 0; channel < avctx->channels; channel++) { + for (int channel = 0; channel < channels; channel++) { *samples++ = adpcm_ima_expand_nibble(&c->status[channel], byte[channel] >> 4 , 3); } } ) /* End of CASE */ CASE(ADPCM_IMA_WS, if (c->vqa_version == 3) { - for (int channel = 0; channel < avctx->channels; channel++) { + for (int channel = 0; channel < channels; channel++) { int16_t *smp = samples_p[channel]; for (int n = nb_samples / 2; n > 0; n--) { @@ -1535,12 +1540,12 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, } } else { for (int n = nb_samples / 2; n > 0; n--) { - for (int channel = 0; channel < avctx->channels; channel++) { + for (int channel = 0; channel < channels; channel++) { int v = bytestream2_get_byteu(&gb); *samples++ = adpcm_ima_expand_nibble(&c->status[channel], v & 0x0F, 3); samples[st] = adpcm_ima_expand_nibble(&c->status[channel], v >> 4 , 3); } - samples += avctx->channels; + samples += channels; } } bytestream2_seek(&gb, 0, SEEK_END); @@ -1548,13 +1553,13 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, CASE(ADPCM_XA, int16_t *out0 = samples_p[0]; int16_t *out1 = samples_p[1]; - int samples_per_block = 28 * (3 - avctx->channels) * 4; + int samples_per_block = 28 * (3 - channels) * 4; int sample_offset = 0; int bytes_remaining; while (bytestream2_get_bytes_left(&gb) >= 128) { if ((ret = xa_decode(avctx, out0, out1, buf + bytestream2_tell(&gb), &c->status[0], &c->status[1], - avctx->channels, sample_offset)) < 0) + channels, sample_offset)) < 0) return ret; bytestream2_skipu(&gb, 128); sample_offset += samples_per_block; @@ -1604,7 +1609,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, /* Each EA ADPCM frame has a 12-byte header followed by 30-byte pieces, each coding 28 stereo samples. */ - if(avctx->channels != 2) + if (channels != 2) return AVERROR_INVALIDDATA; current_left_sample = sign_extend(bytestream2_get_le16u(&gb), 16); @@ -1649,7 +1654,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, CASE(ADPCM_EA_MAXIS_XA, int coeff[2][2], shift[2]; - for (int channel = 0; channel < avctx->channels; channel++) { + for (int channel = 0; channel < channels; channel++) { int byte = bytestream2_get_byteu(&gb); for (int i = 0; i < 2; i++) coeff[channel][i] = ea_adpcm_table[(byte >> 4) + 4*i]; @@ -1661,7 +1666,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, byte[0] = bytestream2_get_byteu(&gb); if (st) byte[1] = bytestream2_get_byteu(&gb); for (int i = 4; i >= 0; i-=4) { /* Pairwise samples LL RR (st) or LL LL (mono) */ - for (int channel = 0; channel < avctx->channels; channel++) { + for (int channel = 0; channel < channels; channel++) { int sample = sign_extend(byte[channel] >> i, 4) * (1 << shift[channel]); sample = (sample + c->status[channel].sample1 * coeff[channel][0] + @@ -1690,12 +1695,12 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, int count = 0; int offsets[6]; - for (unsigned channel = 0; channel < avctx->channels; channel++) + for (unsigned channel = 0; channel < channels; channel++) offsets[channel] = (big_endian ? bytestream2_get_be32(&gb) : bytestream2_get_le32(&gb)) + - (avctx->channels + 1) * 4; + (channels + 1) * 4; - for (unsigned channel = 0; channel < avctx->channels; channel++) { + for (unsigned channel = 0; channel < channels; channel++) { int count1; bytestream2_seek(&gb, offsets[channel], SEEK_SET); @@ -1759,7 +1764,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, } #endif /* CONFIG_ADPCM_EA_Rx_DECODER */ CASE(ADPCM_EA_XAS, - for (int channel=0; channel < avctx->channels; channel++) { + for (int channel=0; channel < channels; channel++) { int coeff[2][4], shift[4]; int16_t *s = samples_p[channel]; for (int n = 0; n < 4; n++, s += 32) { @@ -1791,7 +1796,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, } ) /* End of CASE */ CASE(ADPCM_IMA_ACORN, - for (int channel = 0; channel < avctx->channels; channel++) { + for (int channel = 0; channel < channels; channel++) { ADPCMChannelStatus *cs = &c->status[channel]; cs->predictor = sign_extend(bytestream2_get_le16u(&gb), 16); cs->step_index = bytestream2_get_le16u(&gb) & 0xFF; @@ -1808,7 +1813,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, } ) /* End of CASE */ CASE(ADPCM_IMA_AMV, - av_assert0(avctx->channels == 1); + av_assert0(channels == 1); /* * Header format: @@ -1848,7 +1853,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, } ) /* End of CASE */ CASE(ADPCM_IMA_SMJPEG, - for (int i = 0; i < avctx->channels; i++) { + for (int i = 0; i < channels; i++) { c->status[i].predictor = sign_extend(bytestream2_get_be16u(&gb), 16); c->status[i].step_index = bytestream2_get_byteu(&gb); bytestream2_skipu(&gb, 1); @@ -1931,7 +1936,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, } ) /* End of CASE */ CASE(ADPCM_AICA, - for (int channel = 0; channel < avctx->channels; channel++) { + for (int channel = 0; channel < channels; channel++) { samples = samples_p[channel]; for (int n = nb_samples >> 1; n > 0; n--) { int v = bytestream2_get_byteu(&gb); @@ -1953,7 +1958,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, } for (int m = 0; m < blocks; m++) { - for (int channel = 0; channel < avctx->channels; channel++) { + for (int channel = 0; channel < channels; channel++) { int prev1 = c->status[channel].sample1; int prev2 = c->status[channel].sample2; @@ -2005,33 +2010,33 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, if (avctx->extradata) { GetByteContext tb; - if (avctx->extradata_size < 32 * avctx->channels) { + if (avctx->extradata_size < 32 * channels) { av_log(avctx, AV_LOG_ERROR, "Missing coeff table\n"); return AVERROR_INVALIDDATA; } bytestream2_init(&tb, avctx->extradata, avctx->extradata_size); - for (int i = 0; i < avctx->channels; i++) + for (int i = 0; i < channels; i++) for (int n = 0; n < 16; n++) table[i][n] = THP_GET16(tb); } else { - for (int i = 0; i < avctx->channels; i++) + for (int i = 0; i < channels; i++) for (int n = 0; n < 16; n++) table[i][n] = THP_GET16(gb); if (!c->has_status) { /* Initialize the previous sample. */ - for (int i = 0; i < avctx->channels; i++) { + for (int i = 0; i < channels; i++) { c->status[i].sample1 = THP_GET16(gb); c->status[i].sample2 = THP_GET16(gb); } c->has_status = 1; } else { - bytestream2_skip(&gb, avctx->channels * 4); + bytestream2_skip(&gb, channels * 4); } } - for (int ch = 0; ch < avctx->channels; ch++) { + for (int ch = 0; ch < channels; ch++) { samples = samples_p[ch]; /* Read in every sample for this channel. */ @@ -2065,7 +2070,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, } #endif /* CONFIG_ADPCM_THP(_LE)_DECODER */ CASE(ADPCM_DTK, - for (int channel = 0; channel < avctx->channels; channel++) { + for (int channel = 0; channel < channels; channel++) { samples = samples_p[channel]; /* Read in every sample for this channel. */ @@ -2113,9 +2118,9 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, } ) /* End of CASE */ CASE(ADPCM_PSX, - for (int block = 0; block < avpkt->size / FFMAX(avctx->block_align, 16 * avctx->channels); block++) { - int nb_samples_per_block = 28 * FFMAX(avctx->block_align, 16 * avctx->channels) / (16 * avctx->channels); - for (int channel = 0; channel < avctx->channels; channel++) { + for (int block = 0; block < avpkt->size / FFMAX(avctx->block_align, 16 * channels); block++) { + int nb_samples_per_block = 28 * FFMAX(avctx->block_align, 16 * channels) / (16 * channels); + for (int channel = 0; channel < channels; channel++) { samples = samples_p[channel] + block * nb_samples_per_block; av_assert0((block + 1) * nb_samples_per_block <= nb_samples); @@ -2172,7 +2177,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, * They should be 0 initially. */ for (int block = 0; block < avpkt->size / avctx->block_align; block++) { - for (int channel = 0; channel < avctx->channels; channel++) { + for (int channel = 0; channel < avctx->ch_layout.nb_channels; channel++) { ADPCMChannelStatus *cs = c->status + channel; int control, shift; @@ -2191,19 +2196,19 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, } ) /* End of CASE */ CASE(ADPCM_ZORK, - for (int n = 0; n < nb_samples * avctx->channels; n++) { + for (int n = 0; n < nb_samples * channels; n++) { int v = bytestream2_get_byteu(&gb); - *samples++ = adpcm_zork_expand_nibble(&c->status[n % avctx->channels], v); + *samples++ = adpcm_zork_expand_nibble(&c->status[n % channels], v); } ) /* End of CASE */ CASE(ADPCM_IMA_MTF, for (int n = nb_samples / 2; n > 0; n--) { - for (int channel = 0; channel < avctx->channels; channel++) { + for (int channel = 0; channel < channels; channel++) { int v = bytestream2_get_byteu(&gb); *samples++ = adpcm_ima_mtf_expand_nibble(&c->status[channel], v >> 4); samples[st] = adpcm_ima_mtf_expand_nibble(&c->status[channel], v & 0x0F); } - samples += avctx->channels; + samples += channels; } ) /* End of CASE */ default: diff --git a/libavcodec/adpcmenc.c b/libavcodec/adpcmenc.c index b0f6f209b7..92c31b4841 100644 --- a/libavcodec/adpcmenc.c +++ b/libavcodec/adpcmenc.c @@ -79,11 +79,7 @@ typedef struct ADPCMEncodeContext { static av_cold int adpcm_encode_init(AVCodecContext *avctx) { ADPCMEncodeContext *s = avctx->priv_data; - - if (avctx->channels > 2) { - av_log(avctx, AV_LOG_ERROR, "only stereo or mono is supported\n"); - return AVERROR(EINVAL); - } + int channels = avctx->ch_layout.nb_channels; /* * AMV's block size has to match that of the corresponding video @@ -130,8 +126,8 @@ static av_cold int adpcm_encode_init(AVCodecContext *avctx) CASE(ADPCM_IMA_WAV, /* each 16 bits sample gives one nibble and we have 4 bytes per channel overhead */ - avctx->frame_size = (s->block_size - 4 * avctx->channels) * 8 / - (4 * avctx->channels) + 1; + avctx->frame_size = (s->block_size - 4 * channels) * 8 / + (4 * channels) + 1; /* seems frame_size isn't taken into account... have to buffer the samples :-( */ avctx->block_align = s->block_size; @@ -139,13 +135,13 @@ static av_cold int adpcm_encode_init(AVCodecContext *avctx) ) /* End of CASE */ CASE(ADPCM_IMA_QT, avctx->frame_size = 64; - avctx->block_align = 34 * avctx->channels; + avctx->block_align = 34 * channels; ) /* End of CASE */ CASE(ADPCM_MS, uint8_t *extradata; /* each 16 bits sample gives one nibble and we have 7 bytes per channel overhead */ - avctx->frame_size = (s->block_size - 7 * avctx->channels) * 2 / avctx->channels + 2; + avctx->frame_size = (s->block_size - 7 * channels) * 2 / channels + 2; avctx->bits_per_coded_sample = 4; avctx->block_align = s->block_size; if (!(avctx->extradata = av_malloc(32 + AV_INPUT_BUFFER_PADDING_SIZE))) @@ -160,7 +156,7 @@ static av_cold int adpcm_encode_init(AVCodecContext *avctx) } ) /* End of CASE */ CASE(ADPCM_YAMAHA, - avctx->frame_size = s->block_size * 2 / avctx->channels; + avctx->frame_size = s->block_size * 2 / channels; avctx->block_align = s->block_size; ) /* End of CASE */ CASE(ADPCM_SWF, @@ -172,11 +168,11 @@ static av_cold int adpcm_encode_init(AVCodecContext *avctx) return AVERROR(EINVAL); } avctx->frame_size = 4096; /* Hardcoded according to the SWF spec. */ - avctx->block_align = (2 + avctx->channels * (22 + 4 * (avctx->frame_size - 1)) + 7) / 8; + avctx->block_align = (2 + channels * (22 + 4 * (avctx->frame_size - 1)) + 7) / 8; ) /* End of CASE */ case AV_CODEC_ID_ADPCM_IMA_SSI: case AV_CODEC_ID_ADPCM_IMA_ALP: - avctx->frame_size = s->block_size * 2 / avctx->channels; + avctx->frame_size = s->block_size * 2 / channels; avctx->block_align = s->block_size; break; CASE(ADPCM_IMA_AMV, @@ -185,7 +181,7 @@ static av_cold int adpcm_encode_init(AVCodecContext *avctx) return AVERROR(EINVAL); } - if (avctx->channels != 1) { + if (channels != 1) { av_log(avctx, AV_LOG_ERROR, "Only mono is supported\n"); return AVERROR(EINVAL); } @@ -194,7 +190,7 @@ static av_cold int adpcm_encode_init(AVCodecContext *avctx) avctx->block_align = 8 + (FFALIGN(avctx->frame_size, 2) / 2); ) /* End of CASE */ CASE(ADPCM_IMA_APM, - avctx->frame_size = s->block_size * 2 / avctx->channels; + avctx->frame_size = s->block_size * 2 / channels; avctx->block_align = s->block_size; if (!(avctx->extradata = av_mallocz(28 + AV_INPUT_BUFFER_PADDING_SIZE))) @@ -203,11 +199,11 @@ static av_cold int adpcm_encode_init(AVCodecContext *avctx) ) /* End of CASE */ CASE(ADPCM_ARGO, avctx->frame_size = 32; - avctx->block_align = 17 * avctx->channels; + avctx->block_align = 17 * channels; ) /* End of CASE */ CASE(ADPCM_IMA_WS, /* each 16 bits sample gives one nibble */ - avctx->frame_size = s->block_size * 2 / avctx->channels; + avctx->frame_size = s->block_size * 2 / channels; avctx->block_align = s->block_size; ) /* End of CASE */ default: @@ -606,16 +602,17 @@ static int adpcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, int16_t **samples_p; uint8_t *dst; ADPCMEncodeContext *c = avctx->priv_data; + int channels = avctx->ch_layout.nb_channels; samples = (const int16_t *)frame->data[0]; samples_p = (int16_t **)frame->extended_data; - st = avctx->channels == 2; + st = channels == 2; if (avctx->codec_id == AV_CODEC_ID_ADPCM_IMA_SSI || avctx->codec_id == AV_CODEC_ID_ADPCM_IMA_ALP || avctx->codec_id == AV_CODEC_ID_ADPCM_IMA_APM || avctx->codec_id == AV_CODEC_ID_ADPCM_IMA_WS) - pkt_size = (frame->nb_samples * avctx->channels) / 2; + pkt_size = (frame->nb_samples * channels) / 2; else pkt_size = avctx->block_align; if ((ret = ff_get_encode_buffer(avctx, avpkt, pkt_size, 0)) < 0) @@ -626,7 +623,7 @@ static int adpcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, CASE(ADPCM_IMA_WAV, int blocks = (frame->nb_samples - 1) / 8; - for (int ch = 0; ch < avctx->channels; ch++) { + for (int ch = 0; ch < channels; ch++) { ADPCMChannelStatus *status = &c->status[ch]; status->prev_sample = samples_p[ch][0]; /* status->step_index = 0; @@ -639,15 +636,15 @@ static int adpcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, /* stereo: 4 bytes (8 samples) for left, 4 bytes for right */ if (avctx->trellis > 0) { uint8_t *buf; - if (!FF_ALLOC_TYPED_ARRAY(buf, avctx->channels * blocks * 8)) + if (!FF_ALLOC_TYPED_ARRAY(buf, channels * blocks * 8)) return AVERROR(ENOMEM); - for (int ch = 0; ch < avctx->channels; ch++) { + for (int ch = 0; ch < channels; ch++) { adpcm_compress_trellis(avctx, &samples_p[ch][1], buf + ch * blocks * 8, &c->status[ch], blocks * 8, 1); } for (int i = 0; i < blocks; i++) { - for (int ch = 0; ch < avctx->channels; ch++) { + for (int ch = 0; ch < channels; ch++) { uint8_t *buf1 = buf + ch * blocks * 8 + i * 8; for (int j = 0; j < 8; j += 2) *dst++ = buf1[j] | (buf1[j + 1] << 4); @@ -656,7 +653,7 @@ static int adpcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, av_free(buf); } else { for (int i = 0; i < blocks; i++) { - for (int ch = 0; ch < avctx->channels; ch++) { + for (int ch = 0; ch < channels; ch++) { ADPCMChannelStatus *status = &c->status[ch]; const int16_t *smp = &samples_p[ch][1 + i * 8]; for (int j = 0; j < 8; j += 2) { @@ -672,7 +669,7 @@ static int adpcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, PutBitContext pb; init_put_bits(&pb, dst, pkt_size); - for (int ch = 0; ch < avctx->channels; ch++) { + for (int ch = 0; ch < channels; ch++) { ADPCMChannelStatus *status = &c->status[ch]; put_bits(&pb, 9, (status->prev_sample & 0xFFFF) >> 7); put_bits(&pb, 7, status->step_index); @@ -703,7 +700,7 @@ static int adpcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, av_assert0(avctx->trellis == 0); for (int i = 0; i < frame->nb_samples; i++) { - for (int ch = 0; ch < avctx->channels; ch++) { + for (int ch = 0; ch < channels; ch++) { put_bits(&pb, 4, adpcm_ima_qt_compress_sample(c->status + ch, *samples++)); } } @@ -717,11 +714,11 @@ static int adpcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, av_assert0(avctx->trellis == 0); for (int n = frame->nb_samples / 2; n > 0; n--) { - for (int ch = 0; ch < avctx->channels; ch++) { + for (int ch = 0; ch < channels; ch++) { put_bits(&pb, 4, adpcm_ima_alp_compress_sample(c->status + ch, *samples++)); put_bits(&pb, 4, adpcm_ima_alp_compress_sample(c->status + ch, samples[st])); } - samples += avctx->channels; + samples += channels; } flush_put_bits(&pb); @@ -738,7 +735,7 @@ static int adpcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, put_bits(&pb, 2, 2); // set 4-bit flash adpcm format // init the encoder state - for (int i = 0; i < avctx->channels; i++) { + for (int i = 0; i < channels; i++) { // clip step so it fits 6 bits c->status[i].step_index = av_clip_uintp2(c->status[i].step_index, 6); put_sbits(&pb, 16, samples[i]); @@ -748,22 +745,22 @@ static int adpcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, if (avctx->trellis > 0) { uint8_t buf[8190 /* = 2 * n */]; - adpcm_compress_trellis(avctx, samples + avctx->channels, buf, - &c->status[0], n, avctx->channels); - if (avctx->channels == 2) - adpcm_compress_trellis(avctx, samples + avctx->channels + 1, + adpcm_compress_trellis(avctx, samples + channels, buf, + &c->status[0], n, channels); + if (channels == 2) + adpcm_compress_trellis(avctx, samples + channels + 1, buf + n, &c->status[1], n, - avctx->channels); + channels); for (int i = 0; i < n; i++) { put_bits(&pb, 4, buf[i]); - if (avctx->channels == 2) + if (channels == 2) put_bits(&pb, 4, buf[n + i]); } } else { for (int i = 1; i < frame->nb_samples; i++) { put_bits(&pb, 4, adpcm_ima_compress_sample(&c->status[0], - samples[avctx->channels * i])); - if (avctx->channels == 2) + samples[channels * i])); + if (channels == 2) put_bits(&pb, 4, adpcm_ima_compress_sample(&c->status[1], samples[2 * i + 1])); } @@ -771,47 +768,47 @@ static int adpcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, flush_put_bits(&pb); ) /* End of CASE */ CASE(ADPCM_MS, - for (int i = 0; i < avctx->channels; i++) { + for (int i = 0; i < channels; i++) { int predictor = 0; *dst++ = predictor; c->status[i].coeff1 = ff_adpcm_AdaptCoeff1[predictor]; c->status[i].coeff2 = ff_adpcm_AdaptCoeff2[predictor]; } - for (int i = 0; i < avctx->channels; i++) { + for (int i = 0; i < channels; i++) { if (c->status[i].idelta < 16) c->status[i].idelta = 16; bytestream_put_le16(&dst, c->status[i].idelta); } - for (int i = 0; i < avctx->channels; i++) + for (int i = 0; i < channels; i++) c->status[i].sample2= *samples++; - for (int i = 0; i < avctx->channels; i++) { + for (int i = 0; i < channels; i++) { c->status[i].sample1 = *samples++; bytestream_put_le16(&dst, c->status[i].sample1); } - for (int i = 0; i < avctx->channels; i++) + for (int i = 0; i < channels; i++) bytestream_put_le16(&dst, c->status[i].sample2); if (avctx->trellis > 0) { - const int n = avctx->block_align - 7 * avctx->channels; + const int n = avctx->block_align - 7 * channels; uint8_t *buf = av_malloc(2 * n); if (!buf) return AVERROR(ENOMEM); - if (avctx->channels == 1) { + if (channels == 1) { adpcm_compress_trellis(avctx, samples, buf, &c->status[0], n, - avctx->channels); + channels); for (int i = 0; i < n; i += 2) *dst++ = (buf[i] << 4) | buf[i + 1]; } else { adpcm_compress_trellis(avctx, samples, buf, - &c->status[0], n, avctx->channels); + &c->status[0], n, channels); adpcm_compress_trellis(avctx, samples + 1, buf + n, - &c->status[1], n, avctx->channels); + &c->status[1], n, channels); for (int i = 0; i < n; i++) *dst++ = (buf[i] << 4) | buf[n + i]; } av_free(buf); } else { - for (int i = 7 * avctx->channels; i < avctx->block_align; i++) { + for (int i = 7 * channels; i < avctx->block_align; i++) { int nibble; nibble = adpcm_ms_compress_sample(&c->status[ 0], *samples++) << 4; nibble |= adpcm_ms_compress_sample(&c->status[st], *samples++); @@ -826,22 +823,22 @@ static int adpcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, if (!buf) return AVERROR(ENOMEM); n *= 2; - if (avctx->channels == 1) { + if (channels == 1) { adpcm_compress_trellis(avctx, samples, buf, &c->status[0], n, - avctx->channels); + channels); for (int i = 0; i < n; i += 2) *dst++ = buf[i] | (buf[i + 1] << 4); } else { adpcm_compress_trellis(avctx, samples, buf, - &c->status[0], n, avctx->channels); + &c->status[0], n, channels); adpcm_compress_trellis(avctx, samples + 1, buf + n, - &c->status[1], n, avctx->channels); + &c->status[1], n, channels); for (int i = 0; i < n; i++) *dst++ = buf[i] | (buf[n + i] << 4); } av_free(buf); } else - for (n *= avctx->channels; n > 0; n--) { + for (n *= channels; n > 0; n--) { int nibble; nibble = adpcm_yamaha_compress_sample(&c->status[ 0], *samples++); nibble |= adpcm_yamaha_compress_sample(&c->status[st], *samples++) << 4; @@ -855,17 +852,17 @@ static int adpcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, av_assert0(avctx->trellis == 0); for (int n = frame->nb_samples / 2; n > 0; n--) { - for (int ch = 0; ch < avctx->channels; ch++) { + for (int ch = 0; ch < channels; ch++) { put_bits(&pb, 4, adpcm_ima_qt_compress_sample(c->status + ch, *samples++)); put_bits(&pb, 4, adpcm_ima_qt_compress_sample(c->status + ch, samples[st])); } - samples += avctx->channels; + samples += channels; } flush_put_bits(&pb); ) /* End of CASE */ CASE(ADPCM_IMA_AMV, - av_assert0(avctx->channels == 1); + av_assert0(channels == 1); c->status[0].prev_sample = *samples; bytestream_put_le16(&dst, c->status[0].prev_sample); @@ -880,7 +877,7 @@ static int adpcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, if (!buf) return AVERROR(ENOMEM); - adpcm_compress_trellis(avctx, samples, buf, &c->status[0], 2 * n, avctx->channels); + adpcm_compress_trellis(avctx, samples, buf, &c->status[0], 2 * n, channels); for (int i = 0; i < n; i++) bytestream_put_byte(&dst, (buf[2 * i] << 4) | buf[2 * i + 1]); @@ -904,7 +901,7 @@ static int adpcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, av_assert0(frame->nb_samples == 32); - for (int ch = 0; ch < avctx->channels; ch++) { + for (int ch = 0; ch < channels; ch++) { int64_t error = INT64_MAX, tmperr = INT64_MAX; int shift = 2, flag = 0; int saved1 = c->status[ch].sample1; @@ -941,14 +938,14 @@ static int adpcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, av_assert0(avctx->trellis == 0); for (int n = frame->nb_samples / 2; n > 0; n--) { /* stereo: 1 byte (2 samples) for left, 1 byte for right */ - for (int ch = 0; ch < avctx->channels; ch++) { + for (int ch = 0; ch < channels; ch++) { int t1, t2; t1 = adpcm_ima_compress_sample(&c->status[ch], *samples++); t2 = adpcm_ima_compress_sample(&c->status[ch], samples[st]); put_bits(&pb, 4, t2); put_bits(&pb, 4, t1); } - samples += avctx->channels; + samples += channels; } flush_put_bits(&pb); ) /* End of CASE */ @@ -968,6 +965,12 @@ static const enum AVSampleFormat sample_fmts_p[] = { AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_NONE }; +static const AVChannelLayout ch_layouts[] = { + AV_CHANNEL_LAYOUT_MONO, + AV_CHANNEL_LAYOUT_STEREO, + { 0 }, +}; + static const AVOption options[] = { { .name = "block_size", @@ -1001,6 +1004,7 @@ const AVCodec ff_ ## name_ ## _encoder = { \ .encode2 = adpcm_encode_frame, \ .close = adpcm_encode_close, \ .sample_fmts = sample_fmts_, \ + .ch_layouts = ch_layouts, \ .capabilities = capabilities_ | AV_CODEC_CAP_DR1, \ .caps_internal = FF_CODEC_CAP_INIT_CLEANUP | FF_CODEC_CAP_INIT_THREADSAFE, \ .priv_class = &adpcm_encoder_class, \ From patchwork Thu Jan 13 02:02: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: 33462 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp37805iog; Wed, 12 Jan 2022 18:34:20 -0800 (PST) X-Google-Smtp-Source: ABdhPJwVbnWuM9bfrFKJLiZ9BInbUhmU4mcR6es1XixYjPpBVHRhwcL5acChUs/g0UPwigiSbzf7 X-Received: by 2002:a17:907:1693:: with SMTP id hc19mr2065876ejc.660.1642041260038; Wed, 12 Jan 2022 18:34:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041260; cv=none; d=google.com; s=arc-20160816; b=gqbgq8mfyOzxXK4470ZnN/7WNid+CnIWsBuQVtTuaEDl3YwVeQ6zNnYZa6lJJkE0Sr JekgGdBikvUQFZuwzbuH+9VOB8sYnAjd13LqlGnt8UDGxvxSYtI2fczTUoezk/qGBCKD UsAxmQosaAFchxtomwsc1ZhDSyz/rMUeuUaHgspiJvlkrPGWgGqD7r0R1UEtI8ljWWw+ goyl85HCBYyOgd00+DJOSTbaJZsGnsO0yout+Z9ELwZ6kZIQOnOj3rwhr+2lBcKVmNka P0lbxDoemWsZZdw+2W9h3R8M/T3PwGVOUhVr5n23zqfwslOGIhUasHZO40ua0dgElevG rCnQ== 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=JDCTqzbwwij+yrYFlMJ3zUnZWj0oI+ZDEGq5bgDfi4c=; b=E9oMaif5/1sZdSnWL5S9UtQWiqGUVfo08JHhKq+ivc3dShKWrrBxJxTRUbqfuNqWPP zNpZs8iy7udb/METduVcutmU44wH7KKOOllG8MRWohqnliHr/kqjUzC59zC2pFaGiZIr wnp/IiGeCgmROLVBVfoylh9HSokVwbiOzowk0L88ASdVPeH8Rf4pjW2T4+nR08kt19WL uNnAxVj+53WILd3cMjCKfNYp58/5xxgewDfyXvmHA35d+WiBoji3PvLJkyTvzTsOQRFT Gi5qWEFBBbitNuI7JsbejTevf5DLxu4jPqCYyG0JlN04kcwzCTMqZ57uiQo1G+IGgmfY AIaw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=FLcwwFjp; 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 v25si879316edd.190.2022.01.12.18.34.19; Wed, 12 Jan 2022 18:34:20 -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=FLcwwFjp; 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 0436868B615; Thu, 13 Jan 2022 04:03:15 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f54.google.com (mail-qv1-f54.google.com [209.85.219.54]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E783368B5BA for ; Thu, 13 Jan 2022 04:03:04 +0200 (EET) Received: by mail-qv1-f54.google.com with SMTP id t7so5169635qvj.0 for ; Wed, 12 Jan 2022 18:03:04 -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=otFIrGlK/AFqctJcFoKP9vtS+3aGtuvWoRY5M1mjKq8=; b=FLcwwFjpCjz/TUigaPEX7E+uKC1EX8JgvHnO55u/JXGi9xcChhNqikBYCWfxT4s+nI ixTkyOz3jscqk9Bpplfd+BZWb/d6Qj2BlLwX39XUmvCI21oShpGrF3bKLfcWIzwEIxho 6YmXeIQLUhBAjGISsg6bV1eyX+Jt66VJXT3TYeHS4osEehLzdSdf1fGikwWlbekl4hGU VuqKm25E2SSm2ULs9O9aAfDQX3MKbgA8qa3I6v2yTzTpTeCnoEP94epP/9fNX0sgSBwK +W5mAp1kYPA2fyCdatax/PNUgaSyydEN/Duo+hZ8YMyf0DjYA1yvjxXjfEyZp4JiDkZJ Q4bg== 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=otFIrGlK/AFqctJcFoKP9vtS+3aGtuvWoRY5M1mjKq8=; b=BhWOUh0XuWy3eQg6TTOcmF1HFPJT0q5f1jBzteHOSOmtqJh5c9dW+7zfIwWnf1NjMi SP8XH5GXrpkFy7YnnK/VAIKpDLbQ79ef0UmuZ5w14OUwfKppPIMWjTFDKv4OES5FMGN4 w3bNALN4TBkSZkYzINFLo4ojtoSnlRpk0xxYe0WMTpKRI/XTd70tZoOTqURFHYSLozeG pV5tXef1OTaeamgi3Je2/QhbCGZM0AB4kPu4fA7IZsL/LIXHSIWDyriFxEcofWV8RZqK cG2ZwPp+CmOTcYEQsesY7GpAo69Mxxkah0KbjyyboOaJwuB0c35pIS2SxfPE5LfYJXCm hmYA== X-Gm-Message-State: AOAM5330cv+t/V1XaW2YvPl3JCUNWzspcbGxBGXb1we0xqfZ2yc9qPN/ HZ7VgaZW+e8p/wCrLNenzqAQG2O6+Ng= X-Received: by 2002:ad4:5d4c:: with SMTP id jk12mr2433855qvb.83.1642039383411; Wed, 12 Jan 2022 18:03:03 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id v1sm1045961qtc.95.2022.01.12.18.03.02 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:03:03 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:02:18 -0300 Message-Id: <20220113020242.661-6-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 185/281] adx: 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: TSyRJbqowPvZ From: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavcodec/adx.c | 16 +++++++++++----- libavcodec/adxdec.c | 6 +++--- libavcodec/adxenc.c | 11 ++++++----- 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/libavcodec/adx.c b/libavcodec/adx.c index cd88b16660..c60fabb40b 100644 --- a/libavcodec/adx.c +++ b/libavcodec/adx.c @@ -38,7 +38,7 @@ void ff_adx_calculate_coeffs(int cutoff, int sample_rate, int bits, int *coeff) int ff_adx_decode_header(AVCodecContext *avctx, const uint8_t *buf, int bufsize, int *header_size, int *coeff) { - int offset, cutoff; + int offset, cutoff, channels; if (bufsize < 24) return AVERROR_INVALIDDATA; @@ -58,18 +58,24 @@ int ff_adx_decode_header(AVCodecContext *avctx, const uint8_t *buf, } /* channels */ - avctx->channels = buf[7]; - if (avctx->channels <= 0 || avctx->channels > 2) + channels = buf[7]; + if (channels <= 0 || channels > 2) return AVERROR_INVALIDDATA; + if (avctx->ch_layout.nb_channels != channels) { + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + avctx->ch_layout.nb_channels = channels; + } + /* sample rate */ avctx->sample_rate = AV_RB32(buf + 8); if (avctx->sample_rate < 1 || - avctx->sample_rate > INT_MAX / (avctx->channels * BLOCK_SIZE * 8)) + avctx->sample_rate > INT_MAX / (channels * BLOCK_SIZE * 8)) return AVERROR_INVALIDDATA; /* bit rate */ - avctx->bit_rate = avctx->sample_rate * avctx->channels * BLOCK_SIZE * 8 / BLOCK_SAMPLES; + avctx->bit_rate = avctx->sample_rate * channels * BLOCK_SIZE * 8 / BLOCK_SAMPLES; /* LPC coefficients */ if (coeff) { diff --git a/libavcodec/adxdec.c b/libavcodec/adxdec.c index 20256a092e..b3d946e81c 100644 --- a/libavcodec/adxdec.c +++ b/libavcodec/adxdec.c @@ -46,7 +46,7 @@ static av_cold int adx_decode_init(AVCodecContext *avctx) av_log(avctx, AV_LOG_ERROR, "error parsing ADX header\n"); return AVERROR_INVALIDDATA; } - c->channels = avctx->channels; + c->channels = avctx->ch_layout.nb_channels; c->header_parsed = 1; } @@ -132,7 +132,7 @@ static int adx_decode_frame(AVCodecContext *avctx, void *data, av_log(avctx, AV_LOG_ERROR, "error parsing ADX header\n"); return AVERROR_INVALIDDATA; } - c->channels = avctx->channels; + c->channels = avctx->ch_layout.nb_channels; c->header_parsed = 1; if (buf_size < header_size) return AVERROR_INVALIDDATA; @@ -147,7 +147,7 @@ static int adx_decode_frame(AVCodecContext *avctx, void *data, /* if the packet is not an even multiple of BLOCK_SIZE, check for an EOF packet */ - if (!num_blocks || buf_size % (BLOCK_SIZE * avctx->channels)) { + if (!num_blocks || buf_size % (BLOCK_SIZE * c->channels)) { if (buf_size >= 4 && (AV_RB16(buf) & 0x8000)) { c->eof = 1; *got_frame_ptr = 0; diff --git a/libavcodec/adxenc.c b/libavcodec/adxenc.c index c5849a40a1..3736e746a9 100644 --- a/libavcodec/adxenc.c +++ b/libavcodec/adxenc.c @@ -107,7 +107,7 @@ static int adx_encode_header(AVCodecContext *avctx, uint8_t *buf, int bufsize) bytestream_put_byte(&buf, 3); /* encoding */ bytestream_put_byte(&buf, BLOCK_SIZE); /* block size */ bytestream_put_byte(&buf, 4); /* sample size */ - bytestream_put_byte(&buf, avctx->channels); /* channels */ + bytestream_put_byte(&buf, avctx->ch_layout.nb_channels); /* channels */ bytestream_put_be32(&buf, avctx->sample_rate); /* sample rate */ bytestream_put_be32(&buf, 0); /* total sample count */ bytestream_put_be16(&buf, c->cutoff); /* cutoff frequency */ @@ -125,7 +125,7 @@ static av_cold int adx_encode_init(AVCodecContext *avctx) { ADXContext *c = avctx->priv_data; - if (avctx->channels > 2) { + if (avctx->ch_layout.nb_channels > 2) { av_log(avctx, AV_LOG_ERROR, "Invalid number of channels\n"); return AVERROR(EINVAL); } @@ -144,6 +144,7 @@ static int adx_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, ADXContext *c = avctx->priv_data; const int16_t *samples = frame ? (const int16_t *)frame->data[0] : NULL; uint8_t *dst; + int channels = avctx->ch_layout.nb_channels; int ch, out_size, ret; if (!samples) { @@ -162,7 +163,7 @@ static int adx_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, return 0; } - out_size = BLOCK_SIZE * avctx->channels + !c->header_parsed * HEADER_SIZE; + out_size = BLOCK_SIZE * channels + !c->header_parsed * HEADER_SIZE; if ((ret = ff_get_encode_buffer(avctx, avpkt, out_size, 0)) < 0) return ret; dst = avpkt->data; @@ -177,8 +178,8 @@ static int adx_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, c->header_parsed = 1; } - for (ch = 0; ch < avctx->channels; ch++) { - adx_encode(c, dst, samples + ch, &c->prev[ch], avctx->channels); + for (ch = 0; ch < channels; ch++) { + adx_encode(c, dst, samples + ch, &c->prev[ch], channels); dst += BLOCK_SIZE; } From patchwork Thu Jan 13 02:02: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: 33464 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp38006iog; Wed, 12 Jan 2022 18:34:45 -0800 (PST) X-Google-Smtp-Source: ABdhPJyg2ucorSfyNA+waqddAzAhwLFwqcQs6EZuvkBmDfzVig7RzpxQ4XpQiWh/no3oS7qiMecV X-Received: by 2002:a17:906:a0d4:: with SMTP id bh20mr1901588ejb.489.1642041285732; Wed, 12 Jan 2022 18:34:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041285; cv=none; d=google.com; s=arc-20160816; b=JKCNoF+WzSbgd/mQ3nN3NVi8zXH8XEJoEINZfQSybFLfk0cfKbmy/U/y9abTUqvf8X 9dU44qc7MJfhk8dt+yRMcUe33zFSqAb2h7LCcgnX0FRtl0SmKS0xkLhWgBxiY593HCEi JpuQhsLcCuQxrr3Xb7WEvNEfLrZqR0vjdrbJfazS11G46I5mvgSw74vQv6quRr/DCw/O rnzgLHqTp23H2GwRqQ2tpZTtpXbKIZtd9zcHR96BkmGl7nGTZxXs+2bXALEHWmPgUwG2 Jk9avTCz7G4TgwB/5ZoGqb+CgWZWpRlo1OeqeFjycpm92mnBWDicpKm9ir09dpEmvs+l bYxg== 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=UVQzWWQcW8lzMP7S5X7IB21jtzoTnhkKVxKehswDZdM=; b=URrtpkJd4rzZZD1+7qTTQmFslcaeET6ULxMLNhoyKqKDJTmdHfA42a3JJ7ttMy6Aem Q7mi5WF1fz8tDjiBUmpOSI+CARsqhhOCBYB6wzLB9Jahzel/CW+NnCqmS7tazV0dL50x 3vWGkGq0SeXfon3c78oT4WdtezJejFPMktpjrJ0EkErT9YBkpEJq2HDJHZlGFsVS7mmF c7fH/2EJfMJgL9bjAFvI08xG3XmM8CMgIXHOOzK5Efp5DutheQSn9ZtXMEnxRE5fpZn+ TAfjewYnqt5R022SAJYoHMSqp7fBM3g43yy4o15T6UbxZTpY90lkBWghWawudYLsXV6X 2Kgg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=pPMHVQKG; 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 s1si839582ejn.625.2022.01.12.18.34.45; Wed, 12 Jan 2022 18:34:45 -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=pPMHVQKG; 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 C4EEA68B62F; Thu, 13 Jan 2022 04:03:16 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f53.google.com (mail-qv1-f53.google.com [209.85.219.53]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F26E068B5E1 for ; Thu, 13 Jan 2022 04:03:05 +0200 (EET) Received: by mail-qv1-f53.google.com with SMTP id q3so5131747qvc.7 for ; Wed, 12 Jan 2022 18:03:05 -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=MUJd3JvZgsGU/NSwl+dok4id6Yy/tniZxXkaxjj3eIQ=; b=pPMHVQKGOvlnZKWety3BpMCodDzWQPkU5S0zTs8imk37fBHBGQmjmmYtZ2TjjEqgec SY43zHE1FW5FYK5sTUCUABVJidZ7TtkJqSX1kHVhy6DoKd6ie2Ds1L+ATXU07e8fw4Oc 25C2XsBFp1ocgRDZfHEONwmUzXrfA3ODCGcWKxQtXbNgs6XQKPaIEbvnblFVhgmDq7rh ahfPZ/bkbBNDZh1AC4cp9tUW9soY0MfGwlt8bTeRs7vSWViWr3xvgrTvGVDgFin1/Mqa 9+s39VjgQj0M7vmwcVpO8genAO1cdNUSLfizmN09FOiYZAWkOAMVs/HT7Bcct1gMs1c2 OuPg== 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=MUJd3JvZgsGU/NSwl+dok4id6Yy/tniZxXkaxjj3eIQ=; b=Mj2wECyYDrIQjp0NJHztSG+sgSIUFjtz6L9tFl7KjUPhoDQTJm+YkUoXFncF8eeEQE 2JydQSfDp066Etn+Ue/6luTUokkXileXodxHwNG/HaUjPKzzUaY7FfJGeB+kV/3deynx BazwzsXJuDlQNZycw4JDIJsnVKsoXgoufR9aFCLV+GfZGNElzSlujS5XbPPUhZmRZJXf KXLVm9c43iloash7ulu1w2K1PIqGUnJSSncGh7F+8IEf3mckPQ6xqJezWx6US5UEhfOg VYTTg3d5J/uDHk7WebdNTJuVad9lB6B8zUmzlyew013ipClIcwH5TsvvCVINzBEP/E1v VGQw== X-Gm-Message-State: AOAM533AVDGAhBnzKTAf2G6tMPwk8fQxZlqJsWDW8bjdUeX/F3Gn4gWt ahM6GJngkDe/fsy2pFyD9BljRrChucw= X-Received: by 2002:ad4:5de9:: with SMTP id jn9mr2092358qvb.87.1642039384586; Wed, 12 Jan 2022 18:03:04 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id v1sm1045961qtc.95.2022.01.12.18.03.03 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:03:04 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:02:19 -0300 Message-Id: <20220113020242.661-7-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 186/281] alac: 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: +bDkB/Gj9n/Y From: Anton Khirnov Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavcodec/alac.c | 16 ++++++---------- libavcodec/alac_data.c | 20 ++++++++++---------- libavcodec/alac_data.h | 6 ++++++ libavcodec/alacenc.c | 37 +++++++++++++++++++++++++++++-------- 4 files changed, 51 insertions(+), 28 deletions(-) diff --git a/libavcodec/alac.c b/libavcodec/alac.c index 67fc2a3e41..db1e725f66 100644 --- a/libavcodec/alac.c +++ b/libavcodec/alac.c @@ -576,21 +576,17 @@ static av_cold int alac_decode_init(AVCodecContext * avctx) avctx->bits_per_raw_sample = alac->sample_size; avctx->sample_rate = alac->sample_rate; - if (alac->channels < 1) { + if (alac->channels < 1 || alac->channels > ALAC_MAX_CHANNELS) { av_log(avctx, AV_LOG_WARNING, "Invalid channel count\n"); - alac->channels = avctx->channels; - } else { - if (alac->channels > ALAC_MAX_CHANNELS) - alac->channels = avctx->channels; - else - avctx->channels = alac->channels; + alac->channels = avctx->ch_layout.nb_channels; } - if (avctx->channels > ALAC_MAX_CHANNELS || avctx->channels <= 0 ) { + if (avctx->ch_layout.nb_channels > ALAC_MAX_CHANNELS || avctx->ch_layout.nb_channels <= 0 ) { avpriv_report_missing_feature(avctx, "Channel count %d", - avctx->channels); + avctx->ch_layout.nb_channels); return AVERROR_PATCHWELCOME; } - avctx->channel_layout = ff_alac_channel_layouts[alac->channels - 1]; + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout = ff_alac_ch_layouts[alac->channels - 1]; if ((ret = allocate_buffers(alac)) < 0) { av_log(avctx, AV_LOG_ERROR, "Error allocating buffers\n"); diff --git a/libavcodec/alac_data.c b/libavcodec/alac_data.c index 0bcb06c075..d8ed53f444 100644 --- a/libavcodec/alac_data.c +++ b/libavcodec/alac_data.c @@ -32,16 +32,16 @@ const uint8_t ff_alac_channel_layout_offsets[ALAC_MAX_CHANNELS][ALAC_MAX_CHANNEL { 2, 6, 7, 0, 1, 4, 5, 3 } }; -const uint64_t ff_alac_channel_layouts[ALAC_MAX_CHANNELS + 1] = { - AV_CH_LAYOUT_MONO, - AV_CH_LAYOUT_STEREO, - AV_CH_LAYOUT_SURROUND, - AV_CH_LAYOUT_4POINT0, - AV_CH_LAYOUT_5POINT0_BACK, - AV_CH_LAYOUT_5POINT1_BACK, - AV_CH_LAYOUT_6POINT1_BACK, - AV_CH_LAYOUT_7POINT1_WIDE_BACK, - 0 +const AVChannelLayout ff_alac_ch_layouts[ALAC_MAX_CHANNELS + 1] = { + AV_CHANNEL_LAYOUT_MONO, + AV_CHANNEL_LAYOUT_STEREO, + AV_CHANNEL_LAYOUT_SURROUND, + AV_CHANNEL_LAYOUT_4POINT0, + AV_CHANNEL_LAYOUT_5POINT0_BACK, + AV_CHANNEL_LAYOUT_5POINT1_BACK, + AV_CHANNEL_LAYOUT_6POINT1_BACK, + AV_CHANNEL_LAYOUT_7POINT1_WIDE_BACK, + { 0 } }; const enum AlacRawDataBlockType ff_alac_channel_elements[ALAC_MAX_CHANNELS][5] = { diff --git a/libavcodec/alac_data.h b/libavcodec/alac_data.h index 650d6dcd15..a68a5f2648 100644 --- a/libavcodec/alac_data.h +++ b/libavcodec/alac_data.h @@ -23,6 +23,8 @@ #include +#include "libavutil/channel_layout.h" + enum AlacRawDataBlockType { /* At the moment, only SCE, CPE, LFE, and END are recognized. */ TYPE_SCE, @@ -39,7 +41,11 @@ enum AlacRawDataBlockType { extern const uint8_t ff_alac_channel_layout_offsets[ALAC_MAX_CHANNELS][ALAC_MAX_CHANNELS]; +extern const AVChannelLayout ff_alac_ch_layouts[ALAC_MAX_CHANNELS + 1]; + +#if FF_API_OLD_CHANNEL_LAYOUT extern const uint64_t ff_alac_channel_layouts[ALAC_MAX_CHANNELS + 1]; +#endif extern const enum AlacRawDataBlockType ff_alac_channel_elements[ALAC_MAX_CHANNELS][5]; diff --git a/libavcodec/alacenc.c b/libavcodec/alacenc.c index a38aa6e7d7..09af0584bc 100644 --- a/libavcodec/alacenc.c +++ b/libavcodec/alacenc.c @@ -462,14 +462,15 @@ static int write_frame(AlacEncodeContext *s, AVPacket *avpkt, uint8_t * const *samples) { PutBitContext *pb = &s->pbctx; - const enum AlacRawDataBlockType *ch_elements = ff_alac_channel_elements[s->avctx->channels - 1]; - const uint8_t *ch_map = ff_alac_channel_layout_offsets[s->avctx->channels - 1]; + int channels = s->avctx->ch_layout.nb_channels; + const enum AlacRawDataBlockType *ch_elements = ff_alac_channel_elements[channels - 1]; + const uint8_t *ch_map = ff_alac_channel_layout_offsets[channels - 1]; int ch, element, sce, cpe; init_put_bits(pb, avpkt->data, avpkt->size); ch = element = sce = cpe = 0; - while (ch < s->avctx->channels) { + while (ch < channels) { if (ch_elements[element] == TYPE_CPE) { write_element(s, TYPE_CPE, cpe, samples[ch_map[ch]], samples[ch_map[ch + 1]]); @@ -532,7 +533,7 @@ static av_cold int alac_encode_init(AVCodecContext *avctx) s->rc.rice_modifier = 4; s->max_coded_frame_size = get_max_frame_size(avctx->frame_size, - avctx->channels, + avctx->ch_layout.nb_channels, avctx->bits_per_raw_sample); avctx->extradata = av_mallocz(ALAC_EXTRADATA_SIZE + AV_INPUT_BUFFER_PADDING_SIZE); @@ -545,10 +546,10 @@ static av_cold int alac_encode_init(AVCodecContext *avctx) AV_WB32(alac_extradata+4, MKBETAG('a','l','a','c')); AV_WB32(alac_extradata+12, avctx->frame_size); AV_WB8 (alac_extradata+17, avctx->bits_per_raw_sample); - AV_WB8 (alac_extradata+21, avctx->channels); + AV_WB8 (alac_extradata+21, avctx->ch_layout.nb_channels); AV_WB32(alac_extradata+24, s->max_coded_frame_size); AV_WB32(alac_extradata+28, - avctx->sample_rate * avctx->channels * avctx->bits_per_raw_sample); // average bitrate + avctx->sample_rate * avctx->ch_layout.nb_channels * avctx->bits_per_raw_sample); // average bitrate AV_WB32(alac_extradata+32, avctx->sample_rate); // Set relevant extradata fields @@ -585,7 +586,7 @@ static int alac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, s->frame_size = frame->nb_samples; if (frame->nb_samples < DEFAULT_FRAME_SIZE) - max_frame_size = get_max_frame_size(s->frame_size, avctx->channels, + max_frame_size = get_max_frame_size(s->frame_size, avctx->ch_layout.nb_channels, avctx->bits_per_raw_sample); else max_frame_size = s->max_coded_frame_size; @@ -616,6 +617,21 @@ static int alac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, return 0; } +#if FF_API_OLD_CHANNEL_LAYOUT +const uint64_t alac_channel_layouts[ALAC_MAX_CHANNELS + 1] = { + AV_CH_LAYOUT_MONO, + AV_CH_LAYOUT_STEREO, + AV_CH_LAYOUT_SURROUND, + AV_CH_LAYOUT_4POINT0, + AV_CH_LAYOUT_5POINT0_BACK, + AV_CH_LAYOUT_5POINT1_BACK, + AV_CH_LAYOUT_6POINT1_BACK, + AV_CH_LAYOUT_7POINT1_WIDE_BACK, + 0 +}; +#endif + + #define OFFSET(x) offsetof(AlacEncodeContext, x) #define AE AV_OPT_FLAG_AUDIO_PARAM | AV_OPT_FLAG_ENCODING_PARAM static const AVOption options[] = { @@ -632,6 +648,7 @@ static const AVClass alacenc_class = { .version = LIBAVUTIL_VERSION_INT, }; +FF_DISABLE_DEPRECATION_WARNINGS const AVCodec ff_alac_encoder = { .name = "alac", .long_name = NULL_IF_CONFIG_SMALL("ALAC (Apple Lossless Audio Codec)"), @@ -643,9 +660,13 @@ const AVCodec ff_alac_encoder = { .encode2 = alac_encode_frame, .close = alac_encode_close, .capabilities = AV_CODEC_CAP_SMALL_LAST_FRAME, - .channel_layouts = ff_alac_channel_layouts, +#if FF_API_OLD_CHANNEL_LAYOUT + .channel_layouts = alac_channel_layouts, +#endif + .ch_layouts = ff_alac_ch_layouts, .sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S32P, AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_NONE }, .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE, }; +FF_ENABLE_DEPRECATION_WARNINGS From patchwork Thu Jan 13 02:02:20 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33458 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp37392iog; Wed, 12 Jan 2022 18:33:27 -0800 (PST) X-Google-Smtp-Source: ABdhPJyBpG259e+DlDkqN/aIKXM63fjIBVFNawiRz9t80g0lpAR/CsjwEI94nN6BScf/NLdxtT0y X-Received: by 2002:a17:906:314a:: with SMTP id e10mr1944065eje.672.1642041207539; Wed, 12 Jan 2022 18:33:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041207; cv=none; d=google.com; s=arc-20160816; b=TA9mxOUN7lK+MRKA8UhMd+CwepNosGmeW5rsPwdE4e58e9faYfFKDqw0HnrWquvWdT DyWPgS7Of0jEQM2Z1SxGwCqPZmZmTV3+3qgCw7gLD5BJaXi6YK4Xnmi6D5rRSdDpEHWw VzPqF8zhCdB/9XuCre1TYWqRJep5+ZlUXbmEBakA2HKNEg6m4e7V8RomVRi/dQjuzdXh fiz2TKADyDUHeJeYBszbk3azbFY9yyRyR5DtBu5Q8cBB8JYt23aKC0qNZgL7dK91W5Ml 15dTkSai/0m6wb/fjR0SIST+JESMVLtuRgPkdnv69BWJHypVlfT94mGX+eXtlVvdbv/l Q3yg== 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=YYm3GGQ5sNdQ7nC3CJTgSJVx+1Y339RRNHRW5xM18K8=; b=VPgIR1tZhAz0Fkkfziu9ZLlq0ObAJksvDnpJOBjnmk0zNOJxtKAJ2QdLeZ94akJxic IIRjz/hNV+bxgqGrKWcjgNeMAQcNesfsqJbGRXEAtjwrkB2kSBk5zvOmpim2pcISNM1F CVBHXuA5DIs1hwRQgRgh2sZfVf2A0n1vCKMYy3i0w8rKYLszwQ5JWw4shDb2Um56jBsT eo4tMuqR+dtZU65Z81zsRad7357dQlhLYW9cAw7Y3mLYJMhesHUXEM78OdK33PXmy9EH 8CY0xDFtPj9sHAq5LQKaTPM6dtVpQIHD7OjrDKXAfbjHNvFMdq1qQflbnDO/zvaJJqFH kkZQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=dRRqC0EL; 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 o10si957706edc.477.2022.01.12.18.33.27; Wed, 12 Jan 2022 18:33: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=dRRqC0EL; 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 28BDD68B5E1; Thu, 13 Jan 2022 04:03:11 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f50.google.com (mail-qv1-f50.google.com [209.85.219.50]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7D50868B5BB for ; Thu, 13 Jan 2022 04:03:07 +0200 (EET) Received: by mail-qv1-f50.google.com with SMTP id q4so5104591qvh.9 for ; Wed, 12 Jan 2022 18:03: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=ZoBW0jkQp3QIhLMr9bmZ2zyCJcCByz8XzQhD2fAHpx0=; b=dRRqC0EL6bxTl5DPvVRa8wAq9DRXj2cfhQuK0YV6yBzSdDS16tbb1geUMuuYILaoYy fSrE8wQa0raRy/sPKWNbwFgCPXMbrlwiNSeoDgtGX2DmZeHFxOub8n13i0LoLp2alTfg XO4frqApeLflm55ErVMXk6uh20KhEZ18MVYfnYdtbUD6rWR4Gobdh1y3+f72hunv1gqC lxTKhhbpX3X83HnBb8YoB07Ud8Oh7aeZ3+FmtvGC671bMw3hkrBrHuQDVgcUci+wiZof 2l6i6WTvecMowQUOdYt0/Bagwm/v1W/z1kHSfwFiFBykzhX4cE2JdoTovbHSdKB9hJt9 hypg== 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=ZoBW0jkQp3QIhLMr9bmZ2zyCJcCByz8XzQhD2fAHpx0=; b=1KDwIp3YNrzeToYY8D4YcyCVqAmO2stWxThS9icj//SlchzUfXLdDq77u3ePHLBoZK FdfKBC39fBvQFjUskdwAflhCZ4VqeFrO9dMlG6k01hl/uyCn2yj/57l1zT9pEM1sLMfp IWdj9McCytwvRebaKazLeI25l8CaLNxjOmTfO6qWddXulsfvx9yGvkVw+njjbfhsXan7 TVq4cnKnVb+jR0NyowpqoN3iN0WjPOa97156c9xy2mD0BbOHPhch72pVNpv9u/aEMrya hioYziCdB4ajRDA1aVkJHc2lDWLXHWpxpQyVzFwyzdYFV7PM1UZSp4RNZVxThl37DvsK gByw== X-Gm-Message-State: AOAM530JH4q5t/WUy+ojY1X3zuWgjw1/GPGEgPifxjDxjw7wTWVJo5Mi Y77Hn1Y7Cu+xbV2SHmgrDA1uZdAwqQA= X-Received: by 2002:a05:6214:d85:: with SMTP id e5mr1596421qve.74.1642039385778; Wed, 12 Jan 2022 18:03:05 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id v1sm1045961qtc.95.2022.01.12.18.03.04 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:03:05 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:02:20 -0300 Message-Id: <20220113020242.661-8-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 187/281] als: 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: XDbEWwT5VG2a From: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavcodec/alsdec.c | 90 ++++++++++++++++++++++++--------------------- 1 file changed, 49 insertions(+), 41 deletions(-) diff --git a/libavcodec/alsdec.c b/libavcodec/alsdec.c index 9e1aaf065a..599c621366 100644 --- a/libavcodec/alsdec.c +++ b/libavcodec/alsdec.c @@ -319,7 +319,13 @@ static av_cold int read_specific_config(ALSDecContext *ctx) avctx->sample_rate = m4ac.sample_rate; skip_bits_long(&gb, 32); // sample rate already known sconf->samples = get_bits_long(&gb, 32); - avctx->channels = m4ac.channels; + + if (avctx->ch_layout.nb_channels != m4ac.channels) { + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + avctx->ch_layout.nb_channels = m4ac.channels; + } + skip_bits(&gb, 16); // number of channels already known skip_bits(&gb, 3); // skip file_type sconf->resolution = get_bits(&gb, 3); @@ -349,7 +355,7 @@ static av_cold int read_specific_config(ALSDecContext *ctx) if (als_id != MKBETAG('A','L','S','\0')) return AVERROR_INVALIDDATA; - if (avctx->channels > FF_SANE_NB_CHANNELS) { + if (avctx->ch_layout.nb_channels > FF_SANE_NB_CHANNELS) { avpriv_request_sample(avctx, "Huge number of channels"); return AVERROR_PATCHWELCOME; } @@ -363,26 +369,26 @@ static av_cold int read_specific_config(ALSDecContext *ctx) // read channel sorting - if (sconf->chan_sort && avctx->channels > 1) { - int chan_pos_bits = av_ceil_log2(avctx->channels); - int bits_needed = avctx->channels * chan_pos_bits + 7; + if (sconf->chan_sort && avctx->ch_layout.nb_channels > 1) { + int chan_pos_bits = av_ceil_log2(avctx->ch_layout.nb_channels); + int bits_needed = avctx->ch_layout.nb_channels * chan_pos_bits + 7; if (get_bits_left(&gb) < bits_needed) return AVERROR_INVALIDDATA; - if (!(sconf->chan_pos = av_malloc_array(avctx->channels, sizeof(*sconf->chan_pos)))) + if (!(sconf->chan_pos = av_malloc_array(avctx->ch_layout.nb_channels, sizeof(*sconf->chan_pos)))) return AVERROR(ENOMEM); ctx->cs_switch = 1; - for (i = 0; i < avctx->channels; i++) { + for (i = 0; i < avctx->ch_layout.nb_channels; i++) { sconf->chan_pos[i] = -1; } - for (i = 0; i < avctx->channels; i++) { + for (i = 0; i < avctx->ch_layout.nb_channels; i++) { int idx; idx = get_bits(&gb, chan_pos_bits); - if (idx >= avctx->channels || sconf->chan_pos[idx] != -1) { + if (idx >= avctx->ch_layout.nb_channels || sconf->chan_pos[idx] != -1) { av_log(avctx, AV_LOG_WARNING, "Invalid channel reordering.\n"); ctx->cs_switch = 0; break; @@ -1228,7 +1234,7 @@ static int read_channel_data(ALSDecContext *ctx, ALSChannelData *cd, int c) { GetBitContext *gb = &ctx->gb; ALSChannelData *current = cd; - unsigned int channels = ctx->avctx->channels; + unsigned int channels = ctx->avctx->ch_layout.nb_channels; int entries = 0; while (entries < channels && !(current->stop_flag = get_bits1(gb))) { @@ -1277,7 +1283,7 @@ static int revert_channel_correlation(ALSDecContext *ctx, ALSBlockData *bd, { ALSChannelData *ch = cd[c]; unsigned int dep = 0; - unsigned int channels = ctx->avctx->channels; + unsigned int channels = ctx->avctx->ch_layout.nb_channels; unsigned int channel_size = ctx->sconf.frame_length + ctx->sconf.max_order; if (reverted[c]) @@ -1475,15 +1481,15 @@ static int read_diff_float_data(ALSDecContext *ctx, unsigned int ra_frame) { use_acf = get_bits1(gb); if (ra_frame) { - memset(last_acf_mantissa, 0, avctx->channels * sizeof(*last_acf_mantissa)); - memset(last_shift_value, 0, avctx->channels * sizeof(*last_shift_value) ); + memset(last_acf_mantissa, 0, avctx->ch_layout.nb_channels * sizeof(*last_acf_mantissa)); + memset(last_shift_value, 0, avctx->ch_layout.nb_channels * sizeof(*last_shift_value) ); ff_mlz_flush_dict(ctx->mlz); } - if (avctx->channels * 8 > get_bits_left(gb)) + if (avctx->ch_layout.nb_channels * 8 > get_bits_left(gb)) return AVERROR_INVALIDDATA; - for (c = 0; c < avctx->channels; ++c) { + for (c = 0; c < avctx->ch_layout.nb_channels; ++c) { if (use_acf) { //acf_flag if (get_bits1(gb)) { @@ -1634,6 +1640,7 @@ static int read_frame_data(ALSDecContext *ctx, unsigned int ra_frame) unsigned int div_blocks[32]; ///< block sizes. int c; unsigned int js_blocks[2]; + int channels = avctx->ch_layout.nb_channels; uint32_t bs_info = 0; int ret; @@ -1649,7 +1656,7 @@ static int read_frame_data(ALSDecContext *ctx, unsigned int ra_frame) if (!sconf->mc_coding || ctx->js_switch) { int independent_bs = !sconf->joint_stereo; - for (c = 0; c < avctx->channels; c++) { + for (c = 0; c < channels; c++) { js_blocks[0] = 0; js_blocks[1] = 0; @@ -1662,7 +1669,7 @@ static int read_frame_data(ALSDecContext *ctx, unsigned int ra_frame) independent_bs = 2; // if this is the last channel, it has to be decoded independently - if (c == avctx->channels - 1 || (c & 1)) + if (c == channels - 1 || (c & 1)) independent_bs = 1; if (independent_bs) { @@ -1691,13 +1698,13 @@ static int read_frame_data(ALSDecContext *ctx, unsigned int ra_frame) int *reverted_channels = ctx->reverted_channels; unsigned int offset = 0; - for (c = 0; c < avctx->channels; c++) + for (c = 0; c < channels; c++) if (ctx->chan_data[c] < ctx->chan_data_buffer) { av_log(ctx->avctx, AV_LOG_ERROR, "Invalid channel data.\n"); return AVERROR_INVALIDDATA; } - memset(reverted_channels, 0, sizeof(*reverted_channels) * avctx->channels); + memset(reverted_channels, 0, sizeof(*reverted_channels) * channels); bd.ra_block = ra_frame; bd.prev_raw_samples = ctx->prev_raw_samples; @@ -1713,7 +1720,7 @@ static int read_frame_data(ALSDecContext *ctx, unsigned int ra_frame) continue; } - for (c = 0; c < avctx->channels; c++) { + for (c = 0; c < channels; c++) { bd.const_block = ctx->const_block + c; bd.shift_lsbs = ctx->shift_lsbs + c; bd.opt_order = ctx->opt_order + c; @@ -1732,13 +1739,13 @@ static int read_frame_data(ALSDecContext *ctx, unsigned int ra_frame) return ret; } - for (c = 0; c < avctx->channels; c++) { + for (c = 0; c < channels; c++) { ret = revert_channel_correlation(ctx, &bd, ctx->chan_data, reverted_channels, offset, c); if (ret < 0) return ret; } - for (c = 0; c < avctx->channels; c++) { + for (c = 0; c < channels; c++) { bd.const_block = ctx->const_block + c; bd.shift_lsbs = ctx->shift_lsbs + c; bd.opt_order = ctx->opt_order + c; @@ -1756,13 +1763,13 @@ static int read_frame_data(ALSDecContext *ctx, unsigned int ra_frame) ctx->highest_decoded_channel = FFMAX(ctx->highest_decoded_channel, c); } - memset(reverted_channels, 0, avctx->channels * sizeof(*reverted_channels)); + memset(reverted_channels, 0, channels * sizeof(*reverted_channels)); offset += div_blocks[b]; bd.ra_block = 0; } // store carryover raw samples - for (c = 0; c < avctx->channels; c++) + for (c = 0; c < channels; c++) memmove(ctx->raw_samples[c] - sconf->max_order, ctx->raw_samples[c] - sconf->max_order + sconf->frame_length, sizeof(*ctx->raw_samples[c]) * sconf->max_order); @@ -1792,6 +1799,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame_ptr, const uint8_t *buffer = avpkt->data; int buffer_size = avpkt->size; int invalid_frame, ret; + int channels = avctx->ch_layout.nb_channels; unsigned int c, sample, ra_frame, bytes_read, shift; if ((ret = init_get_bits8(&ctx->gb, buffer, buffer_size)) < 0) @@ -1833,7 +1841,6 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame_ptr, #define INTERLEAVE_OUTPUT(bps) \ { \ int##bps##_t *dest = (int##bps##_t*)frame->data[0]; \ - int channels = avctx->channels; \ int32_t *raw_samples = ctx->raw_samples[0]; \ int raw_step = channels > 1 ? ctx->raw_samples[1] - raw_samples : 1; \ shift = bps - ctx->avctx->bits_per_raw_sample; \ @@ -1862,7 +1869,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame_ptr, int32_t *src = (int32_t *)frame->data[0]; for (sample = 0; - sample < ctx->cur_frame_length * avctx->channels; + sample < ctx->cur_frame_length * channels; sample++) { int32_t v; @@ -1883,13 +1890,13 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame_ptr, int16_t *src = (int16_t*) frame->data[0]; int16_t *dest = (int16_t*) ctx->crc_buffer; for (sample = 0; - sample < ctx->cur_frame_length * avctx->channels; + sample < ctx->cur_frame_length * channels; sample++) *dest++ = av_bswap16(src[sample]); } else { ctx->bdsp.bswap_buf((uint32_t *) ctx->crc_buffer, (uint32_t *) frame->data[0], - ctx->cur_frame_length * avctx->channels); + ctx->cur_frame_length * channels); } crc_source = ctx->crc_buffer; } else { @@ -1897,7 +1904,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame_ptr, } ctx->crc = av_crc(ctx->crc_table, ctx->crc, crc_source, - ctx->cur_frame_length * avctx->channels * + ctx->cur_frame_length * channels * av_get_bytes_per_sample(avctx->sample_fmt)); } @@ -1960,7 +1967,7 @@ static av_cold int decode_end(AVCodecContext *avctx) av_freep(&ctx->shift_value); av_freep(&ctx->last_shift_value); if (ctx->raw_mantissa) { - for (i = 0; i < avctx->channels; i++) { + for (i = 0; i < avctx->ch_layout.nb_channels; i++) { av_freep(&ctx->raw_mantissa[i]); } av_freep(&ctx->raw_mantissa); @@ -1979,6 +1986,7 @@ static av_cold int decode_init(AVCodecContext *avctx) unsigned int c; unsigned int channel_size; int num_buffers, ret; + int channels = avctx->ch_layout.nb_channels; ALSDecContext *ctx = avctx->priv_data; ALSSpecificConfig *sconf = &ctx->sconf; ctx->avctx = avctx; @@ -2027,7 +2035,7 @@ static av_cold int decode_init(AVCodecContext *avctx) (avctx->sample_rate >= 192000); // allocate quantized parcor coefficient buffer - num_buffers = sconf->mc_coding ? avctx->channels : 1; + num_buffers = sconf->mc_coding ? channels : 1; if (num_buffers * (uint64_t)num_buffers > INT_MAX) // protect chan_data_buffer allocation return AVERROR_INVALIDDATA; @@ -2101,15 +2109,15 @@ static av_cold int decode_init(AVCodecContext *avctx) channel_size = sconf->frame_length + sconf->max_order; ctx->prev_raw_samples = av_malloc_array(sconf->max_order, sizeof(*ctx->prev_raw_samples)); - ctx->raw_buffer = av_calloc(avctx->channels * channel_size, sizeof(*ctx->raw_buffer)); - ctx->raw_samples = av_malloc_array(avctx->channels, sizeof(*ctx->raw_samples)); + ctx->raw_buffer = av_calloc(channels * channel_size, sizeof(*ctx->raw_buffer)); + ctx->raw_samples = av_malloc_array(channels, sizeof(*ctx->raw_samples)); if (sconf->floating) { - ctx->acf = av_malloc_array(avctx->channels, sizeof(*ctx->acf)); - ctx->shift_value = av_malloc_array(avctx->channels, sizeof(*ctx->shift_value)); - ctx->last_shift_value = av_malloc_array(avctx->channels, sizeof(*ctx->last_shift_value)); - ctx->last_acf_mantissa = av_malloc_array(avctx->channels, sizeof(*ctx->last_acf_mantissa)); - ctx->raw_mantissa = av_calloc(avctx->channels, sizeof(*ctx->raw_mantissa)); + ctx->acf = av_malloc_array(channels, sizeof(*ctx->acf)); + ctx->shift_value = av_malloc_array(channels, sizeof(*ctx->shift_value)); + ctx->last_shift_value = av_malloc_array(channels, sizeof(*ctx->last_shift_value)); + ctx->last_acf_mantissa = av_malloc_array(channels, sizeof(*ctx->last_acf_mantissa)); + ctx->raw_mantissa = av_calloc(channels, sizeof(*ctx->raw_mantissa)); ctx->larray = av_malloc_array(ctx->cur_frame_length * 4, sizeof(*ctx->larray)); ctx->nbits = av_malloc_array(ctx->cur_frame_length, sizeof(*ctx->nbits)); @@ -2125,7 +2133,7 @@ static av_cold int decode_init(AVCodecContext *avctx) ff_mlz_init_dict(avctx, ctx->mlz); ff_mlz_flush_dict(ctx->mlz); - for (c = 0; c < avctx->channels; ++c) { + for (c = 0; c < channels; ++c) { ctx->raw_mantissa[c] = av_calloc(ctx->cur_frame_length, sizeof(**ctx->raw_mantissa)); } } @@ -2139,14 +2147,14 @@ static av_cold int decode_init(AVCodecContext *avctx) // assign raw samples buffers ctx->raw_samples[0] = ctx->raw_buffer + sconf->max_order; - for (c = 1; c < avctx->channels; c++) + for (c = 1; c < channels; c++) ctx->raw_samples[c] = ctx->raw_samples[c - 1] + channel_size; // allocate crc buffer if (HAVE_BIGENDIAN != sconf->msb_first && sconf->crc_enabled && (avctx->err_recognition & (AV_EF_CRCCHECK|AV_EF_CAREFUL))) { ctx->crc_buffer = av_malloc_array(ctx->cur_frame_length * - avctx->channels * + channels * av_get_bytes_per_sample(avctx->sample_fmt), sizeof(*ctx->crc_buffer)); if (!ctx->crc_buffer) { From patchwork Thu Jan 13 02:02:21 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33459 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp37502iog; Wed, 12 Jan 2022 18:33:41 -0800 (PST) X-Google-Smtp-Source: ABdhPJxriLMCYeZDSK4clg+swc4DugeB3HttWic4YqzramjuoZMu/Kxb7RMJOqzkvWRZTGMH1KHb X-Received: by 2002:a17:906:3acc:: with SMTP id z12mr1914400ejd.10.1642041221599; Wed, 12 Jan 2022 18:33:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041221; cv=none; d=google.com; s=arc-20160816; b=kcl9n2qdAmFpc85cJifnIMy6qf4gdZzbY10xM0dFak74ZWn2TpLGBboA8hvNbfvD6k BSI0MvlavbXfH4ldUcItgrmSBLor5uOhEPHok+wRCM3FjOUAae5YxY8ZxRjlUrlQR6Oy c1GtYACSfijf/IcPCqMA8SqY+5djjOETl7kDMzOSoxaIGdY9Ohc8V3KDpKZYYbZi0OGy xEmE8ee2mhdsoNap3o84vzLHs0SWxLi0hShI+H+yDSGGQCJH/XUZTc1Dq0TiZhXm/Avo oq8wedQuVyneIo3n3CM73PcgAY69Ccvye81tmjk51YyZZBp9kZ7mp6HL3OKn30fWeLsN 6okA== 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=zwBtSgSiS/FOA7kD72B6/YspvGXiWnsf6AjOIQXWt3c=; b=u9mn4gT+T0XGYGjHD6F42L5ZtQ35cyLlexEE6CIdPJUjFOArhHX5W8bFQv7HktoZAG q3IPSqas0SDa7BzNno0eR0nRMDROUhiBVnqzXtLs6h7KGVeJ3PVMcjHibwm2By3ucRoH 9GpyV/q27gjXAfTGAoxCpk0J2k+YQyeJ/SemWF7OtH4SqNcUWaASP0rTbRMtLiSOe0iV 9hAT3wEm2R0qZN1kyrOH3WcM8myTSvi1eCY5V233ZLpKiY7rdC1Ifx1S/TtIs+ojnReb ZzKVqXtC66RNo7yH6NFDJe70m14PZP+a4WePgyUPukJg9wMw0DaNGTjVA2SW2IwChjXx rFKg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=lec1dNSv; 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 cz16si839262edb.53.2022.01.12.18.33.41; Wed, 12 Jan 2022 18:33:41 -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=lec1dNSv; 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 17A3668B5F5; Thu, 13 Jan 2022 04:03:12 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f176.google.com (mail-qt1-f176.google.com [209.85.160.176]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9C22668B5CD for ; Thu, 13 Jan 2022 04:03:08 +0200 (EET) Received: by mail-qt1-f176.google.com with SMTP id c7so1764883qtc.11 for ; Wed, 12 Jan 2022 18:03:08 -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=uuiU1Iqka94CZWV0GDrkb8jp2BgJr72KwnOVAV9NSLM=; b=lec1dNSvcxoVn3OTrhk7EBf2b83EJOkWxonagrEKoDASV1YW3GU4BY6xKaoQFzIKSQ 80pR2zykphKGjBpky4L8T+BUGc9h37lgMc5kf4+u4tgQkQUp2T8OtvgBLlriloPJv9Ks 1Ee0GjSgC7IhAq4CyyJtB63wmgULIQDvyUW6BGMwGPUoohj+wjwbq9uVhp7x5zjIIAC4 hbFMIAcrTFULtAK0EREUFTJU72Q2YhqS7+Su8AUrVMAhVV2zmZiJjSoYWkD696MDAczb 8sJkM8Vk99eYzyaSAR5E/jzNtPV5DTTRjYzjr9OMCsK/vtPN9qQFMmehZbUhCQZRntz6 e2Qg== 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=uuiU1Iqka94CZWV0GDrkb8jp2BgJr72KwnOVAV9NSLM=; b=097EK3fJbOE5pw/jBHRyy47ogDMoZejSQD101HOXsjnqCxG8YwrF+rxBJGsj0gq7Qs hCfwryADmITTmiAOvfJYDVo/sLMbajuq0ua+uLefbnMwASrXz8uCqrHPRfP78YhAxfPq DiWaHjZdrqSnqYTSjSyda9uz2jF+x1JqghwgEsXluM71DlZK37FCeVWXiPuhA6Ljxpwx 3zn5HRGh+jPPPi6IYJeW1dPWWFnuxtHUyoI0olBplaPn40u9HC5Ve1DT9hUGZBMpQ46j mUsEnSZF81PQKTqZKAmmnes/UD9Nj9Zv2+EmcyMfAG+e3/v5lushVpL6SOmtPcn5AEtf CHHg== X-Gm-Message-State: AOAM531apErU9bZC8/iMtgIQj7qsCuF04B2tZnOOlqq8fQHm1RJlP0I8 NqTzbGXf24T62SEjZBYukq2YaocnTsw= X-Received: by 2002:a05:622a:164c:: with SMTP id y12mr1973836qtj.677.1642039386979; Wed, 12 Jan 2022 18:03:06 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id v1sm1045961qtc.95.2022.01.12.18.03.06 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:03:06 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:02:21 -0300 Message-Id: <20220113020242.661-9-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 188/281] amr: 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: IX8UpDO6VPya From: Anton Khirnov Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavcodec/amr_parser.c | 10 +++++----- libavcodec/amrnbdec.c | 12 ++++++------ libavcodec/amrwbdec.c | 12 ++++++------ 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/libavcodec/amr_parser.c b/libavcodec/amr_parser.c index c0b14700e2..9484d720ee 100644 --- a/libavcodec/amr_parser.c +++ b/libavcodec/amr_parser.c @@ -63,9 +63,9 @@ static int amr_parse(AVCodecParserContext *s1, *poutbuf_size = 0; *poutbuf = NULL; - if (!avctx->channels) { - avctx->channels = 1; - avctx->channel_layout = AV_CH_LAYOUT_MONO; + if (!avctx->ch_layout.nb_channels) { + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; } if (s1->flags & PARSER_FLAG_COMPLETE_FRAMES) { @@ -73,7 +73,7 @@ static int amr_parse(AVCodecParserContext *s1, } else { int ch, offset = 0; - for (ch = s->current_channel; ch < avctx->channels; ch++) { + for (ch = s->current_channel; ch < avctx->ch_layout.nb_channels; ch++) { if (s->remaining >= 0) { next = s->remaining; } else { @@ -96,7 +96,7 @@ static int amr_parse(AVCodecParserContext *s1, } } - s->current_channel = ch % avctx->channels; + s->current_channel = ch % avctx->ch_layout.nb_channels; if (s->remaining < 0) next = offset; diff --git a/libavcodec/amrnbdec.c b/libavcodec/amrnbdec.c index d8e0370a3b..c6df87bffa 100644 --- a/libavcodec/amrnbdec.c +++ b/libavcodec/amrnbdec.c @@ -166,20 +166,20 @@ static av_cold int amrnb_decode_init(AVCodecContext *avctx) AMRChannelsContext *s = avctx->priv_data; int i; - if (avctx->channels > 2) { + if (avctx->ch_layout.nb_channels > 2) { avpriv_report_missing_feature(avctx, ">2 channel AMR"); return AVERROR_PATCHWELCOME; } - if (!avctx->channels) { - avctx->channels = 1; - avctx->channel_layout = AV_CH_LAYOUT_MONO; + if (!avctx->ch_layout.nb_channels) { + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; } if (!avctx->sample_rate) avctx->sample_rate = 8000; avctx->sample_fmt = AV_SAMPLE_FMT_FLTP; - for (int ch = 0; ch < avctx->channels; ch++) { + for (int ch = 0; ch < avctx->ch_layout.nb_channels; ch++) { AMRContext *p = &s->ch[ch]; // p->excitation always points to the same position in p->excitation_buf p->excitation = &p->excitation_buf[PITCH_DELAY_MAX + LP_FILTER_ORDER + 1]; @@ -969,7 +969,7 @@ static int amrnb_decode_frame(AVCodecContext *avctx, void *data, if ((ret = ff_get_buffer(avctx, frame, 0)) < 0) return ret; - for (int ch = 0; ch < avctx->channels; ch++) { + for (int ch = 0; ch < avctx->ch_layout.nb_channels; ch++) { AMRContext *p = &s->ch[ch]; float fixed_gain_factor; AMRFixed fixed_sparse = {0}; // fixed vector up to anti-sparseness processing diff --git a/libavcodec/amrwbdec.c b/libavcodec/amrwbdec.c index 3ff4077f7f..ad62c541c5 100644 --- a/libavcodec/amrwbdec.c +++ b/libavcodec/amrwbdec.c @@ -102,20 +102,20 @@ static av_cold int amrwb_decode_init(AVCodecContext *avctx) AMRWBChannelsContext *s = avctx->priv_data; int i; - if (avctx->channels > 2) { + if (avctx->ch_layout.nb_channels > 2) { avpriv_report_missing_feature(avctx, ">2 channel AMR"); return AVERROR_PATCHWELCOME; } - if (!avctx->channels) { - avctx->channels = 1; - avctx->channel_layout = AV_CH_LAYOUT_MONO; + if (!avctx->ch_layout.nb_channels) { + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; } if (!avctx->sample_rate) avctx->sample_rate = 16000; avctx->sample_fmt = AV_SAMPLE_FMT_FLTP; - for (int ch = 0; ch < avctx->channels; ch++) { + for (int ch = 0; ch < avctx->ch_layout.nb_channels; ch++) { AMRWBContext *ctx = &s->ch[ch]; av_lfg_init(&ctx->prng, 1); @@ -1115,7 +1115,7 @@ static int amrwb_decode_frame(AVCodecContext *avctx, void *data, if ((ret = ff_get_buffer(avctx, frame, 0)) < 0) return ret; - for (int ch = 0; ch < avctx->channels; ch++) { + for (int ch = 0; ch < avctx->ch_layout.nb_channels; ch++) { AMRWBContext *ctx = &s->ch[ch]; AMRWBFrame *cf = &ctx->frame; int expected_fr_size, header_size; From patchwork Thu Jan 13 02:02:22 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33461 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp37699iog; Wed, 12 Jan 2022 18:34:08 -0800 (PST) X-Google-Smtp-Source: ABdhPJyeroh0fXSSU2T+O24W5ZBVyRCL//myZlMS5DSIckb62YZCFSWdbqlQPdpDjZqP8WR42GOw X-Received: by 2002:a05:6402:c92:: with SMTP id cm18mr2310845edb.295.1642041248303; Wed, 12 Jan 2022 18:34:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041248; cv=none; d=google.com; s=arc-20160816; b=mULZYOwzCu/LkoOHPXNgKy7Pu4DN3lCGSzWcTqkqEDbRzND9V610BRQkt7YIH3dNd5 9HENwvTLNQvxbK08onk9an6WJE3tBqW36ypPFM1nw/RkEetS/tH6v+4SN2qChqCgFkr+ 6ntrRjJuhDydJ8iAZ8n2U3iRJrfSiYrdJohF1U4dsKwmIHTpkqABt/0IX7IX/BztdiPA VAADxKJbewZecIF704I60PoxfxkVCa/tEmOp7g22ihXQ5E/ZmiuF+ltDZVbX++wuSkLr EAGFWKN8ZbPuQ7ODzJsE1v1OkrOTqAetfiYDqRFyDm2d2Pl8z2LrWJuchuL4FRpT8mI7 MZiQ== 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=P0gKwR/ZYgv8eESATC1ZbbuFNPReOZb+7TZ3eD8tifo=; b=rEgQ2BUauJu6FPKgN6RdeqW3uUFDTWxw/S0U6pOB9s0ytkNkVyz7VToTbP+bIwcvAV bkdiddxRtx/9mnPKXOz/yL5owRdFA64XRZz3S2rQdCKw52GBZnKzRiep0ueIvE7GgXIA /bC8Ht2LWCCLdeWXcOk+5j9Aiwv0sT4Uf875KoILnULCoKTQ0S5q4KCPayzz7gC0Q0ZB Cvo+vBlEyFXtKUIo8RMsRQYdCTFKNqPr/aZnycCdqXu2qafW7DYMm8cFLrWSKBKQztHg lIcpLZnqrSkJpPyYb3eUI9VgvV4OeRd0Z6bRxzJQlnR3dcL9cyz9Bko9NlGH2iJeLIHA 5Wrg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b="kh2HbMT/"; 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 m8si947904edc.341.2022.01.12.18.34.08; Wed, 12 Jan 2022 18:34:08 -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="kh2HbMT/"; 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 E772C68B5D6; Thu, 13 Jan 2022 04:03:13 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f182.google.com (mail-qt1-f182.google.com [209.85.160.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8F42E68B5C2 for ; Thu, 13 Jan 2022 04:03:09 +0200 (EET) Received: by mail-qt1-f182.google.com with SMTP id q14so5324384qtx.10 for ; Wed, 12 Jan 2022 18:03:09 -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=GNzcpnIr+jPphs4Aup0ZJ9GI2KuQPWMhSBYMOgU3ZJ8=; b=kh2HbMT/xThH5A2B+QcPxtXRAzQjWhuBDcWvyleE1e/K5Mb2+8fH1aZ4rjWMBQcWOa RJapJAbII3TGF9tUMu5st4knExW3d7EhO2B1CaBCpPsJH+I7sv4dktAcml05Cnez3ejc DONPgTe5E07RtiYm2wYf0dzX+behxsZ+gwdK4L262SenIpku92r6d8718y1H9W/3nvMt ypM8okM87KalM+beRYq9ahP87GiLwIjYZoIcdTEZKX0J6KnrrEJ5xcX97uE/jeUGLi5/ wlxJjYIECuKDB4DNIh/p6NNAeXLwZjtzQtE5Q2iG9tutQVMxh6nNTZAQ4REXGkQ5LB2d BV7w== 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=GNzcpnIr+jPphs4Aup0ZJ9GI2KuQPWMhSBYMOgU3ZJ8=; b=EE8Qw50mwNlqYwgmwqx826VQPC6CtIumOwdyJcjOPr0sa+MmnHRFXADazH+3mz7TxG H/wM3aCdJ5/HH5dLdM3Va0SGHtUpw1xK11gU3917f4aM0Dl9W3TS6sPpiTNZcDCr6KMS 4d1p0vn9YFnZo0gpRHE6neyWQyS/grdijjQEgpH1PlxmBY66kM1BLIpmoHQMF3FHqysx mGveixkHiSSkH9RNOfgxP+Rzxj9epd2ZIiCRNYfCyZhnb3u8LIuwrxHMaudSbS3GrwQF Z7wBwNVzZ+dKucvj9KxF8UgcbdhYTDa8XWy1gP1DIQIx+LlsAnMM/4GHV1ikuY2ZmqdW VNFg== X-Gm-Message-State: AOAM531nrEy8ipVxGzNuhgwD0cRQgR9h9den9mWc4ifSVy9QY8HZAIa0 qewiMqyAuLLc4WBWFh1B/nmq381hXxU= X-Received: by 2002:a05:622a:1206:: with SMTP id y6mr2067279qtx.356.1642039388188; Wed, 12 Jan 2022 18:03:08 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id v1sm1045961qtc.95.2022.01.12.18.03.07 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:03:07 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:02:22 -0300 Message-Id: <20220113020242.661-10-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 189/281] aptx: 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: vKIP8NGFzE1E From: Anton Khirnov Signed-off-by: James Almer --- libavcodec/aptx.c | 2 +- libavcodec/aptxdec.c | 8 +++++++- libavcodec/aptxenc.c | 6 ++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/libavcodec/aptx.c b/libavcodec/aptx.c index 3aeee1907c..d8e0c207cf 100644 --- a/libavcodec/aptx.c +++ b/libavcodec/aptx.c @@ -509,7 +509,7 @@ av_cold int ff_aptx_init(AVCodecContext *avctx) AptXContext *s = avctx->priv_data; int chan, subband; - if (avctx->channels != 2) + if (avctx->ch_layout.nb_channels != 2) return AVERROR_INVALIDDATA; s->hd = avctx->codec->id == AV_CODEC_ID_APTX_HD; diff --git a/libavcodec/aptxdec.c b/libavcodec/aptxdec.c index bdcc076c41..1d862e8e6b 100644 --- a/libavcodec/aptxdec.c +++ b/libavcodec/aptxdec.c @@ -146,7 +146,7 @@ static int aptx_decode_frame(AVCodecContext *avctx, void *data, } /* get output buffer */ - frame->channels = NB_CHANNELS; + frame->ch_layout.nb_channels = NB_CHANNELS; frame->format = AV_SAMPLE_FMT_S32P; frame->nb_samples = 4 * avpkt->size / s->block_size; if ((ret = ff_get_buffer(avctx, frame, 0)) < 0) @@ -181,7 +181,10 @@ const AVCodec ff_aptx_decoder = { .decode = aptx_decode_frame, .capabilities = AV_CODEC_CAP_DR1, .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE, +#if FF_API_OLD_CHANNEL_LAYOUT .channel_layouts = (const uint64_t[]) { AV_CH_LAYOUT_STEREO, 0}, +#endif + .ch_layouts = (const AVChannelLayout[]) { AV_CHANNEL_LAYOUT_STEREO, { 0 } }, .sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S32P, AV_SAMPLE_FMT_NONE }, }; @@ -198,7 +201,10 @@ const AVCodec ff_aptx_hd_decoder = { .decode = aptx_decode_frame, .capabilities = AV_CODEC_CAP_DR1, .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE, +#if FF_API_OLD_CHANNEL_LAYOUT .channel_layouts = (const uint64_t[]) { AV_CH_LAYOUT_STEREO, 0}, +#endif + .ch_layouts = (const AVChannelLayout[]) { AV_CHANNEL_LAYOUT_STEREO, { 0 } }, .sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S32P, AV_SAMPLE_FMT_NONE }, }; diff --git a/libavcodec/aptxenc.c b/libavcodec/aptxenc.c index 5ea6053c26..1230ee306d 100644 --- a/libavcodec/aptxenc.c +++ b/libavcodec/aptxenc.c @@ -253,7 +253,10 @@ const AVCodec ff_aptx_encoder = { .encode2 = aptx_encode_frame, .close = aptx_close, .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE, +#if FF_API_OLD_CHANNEL_LAYOUT .channel_layouts = (const uint64_t[]) { AV_CH_LAYOUT_STEREO, 0}, +#endif + .ch_layouts = (const AVChannelLayout[]) { AV_CHANNEL_LAYOUT_STEREO, { 0 } }, .sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S32P, AV_SAMPLE_FMT_NONE }, .supported_samplerates = (const int[]) {8000, 16000, 24000, 32000, 44100, 48000, 0}, @@ -272,7 +275,10 @@ const AVCodec ff_aptx_hd_encoder = { .encode2 = aptx_encode_frame, .close = aptx_close, .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE, +#if FF_API_OLD_CHANNEL_LAYOUT .channel_layouts = (const uint64_t[]) { AV_CH_LAYOUT_STEREO, 0}, +#endif + .ch_layouts = (const AVChannelLayout[]) { AV_CHANNEL_LAYOUT_STEREO, { 0 } }, .sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S32P, AV_SAMPLE_FMT_NONE }, .supported_samplerates = (const int[]) {8000, 16000, 24000, 32000, 44100, 48000, 0}, From patchwork Thu Jan 13 02:02:23 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33463 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp37907iog; Wed, 12 Jan 2022 18:34:32 -0800 (PST) X-Google-Smtp-Source: ABdhPJzHlSWnJDoiOnrvpskTryIf8R0+yXu25wrpECjtm09GxAKRNzV806pkk8Ju8mZjZOcBcOl8 X-Received: by 2002:a05:6402:4316:: with SMTP id m22mr2391712edc.326.1642041272337; Wed, 12 Jan 2022 18:34:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041272; cv=none; d=google.com; s=arc-20160816; b=oir2L5poWM+XXjQ8vTJBUvfTNsWriufQ8u8OMjfKWQBx9p8oYtleLRGMu/M+VlQuRP lG/1pYKNkVorwjT8TJs2VZLi75/7dgxvwGxwCwKd6JkQDeSh4akltvdSqRm48OdKab/c ex4zeDXnz0LkL6fv6DxvIKVyAONrf/OAyZwI8fOqjSvLzY9R2DCu6VANJ/wFQV+YpYWT oqgrJ6Y1Ee1dKdCi8onawdz/cNmf4m0Dnmk2tqAxBVL9yEGq4lvtSTBbFVbkQqqhI1EB thkOq58UCzeXsXGEhXcMXD6zjRn8bbnV9lf7ksH+pAwI+fcF5GCzdTg0huv/GyV/cBIX yE1A== 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=f1yuCOnEJbzMuXberV2s8lslk1WBAK5HiUP+YZJWP+w=; b=dDMqmfhlfIpTyddqvEe/OY+TdBYsqqQsElGXJHEb4wTpGsEUxy1kaL1uEeXAUBggPJ Kavsqdj4PncS0EBlLg/qCZtpnoPJfW690YXDpAyICi7c77dZ7/WTvFfYYlyJJbr0Y5l0 ZXVqqfT/s81dAKokcKZfvOlSjp26UZtVFrlEeUHWccP9GISfUg4RmV33IBWBb7kf/q3j YFm0f+rjqKNJOL9Daj5G85T3x1FuxJQa7spMsy98lm4cwBWuLc/U7/5KaUi2ykxOqY9M BRIS/m1F0aYYewE5Jcuo43iKkc5xvjbUVoECroUaPLryMwQ0FJUPGfTuLwUp0bUZoXTH 10Ig== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=F4CUV+Zk; 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 sb11si286272ejc.141.2022.01.12.18.34.32; Wed, 12 Jan 2022 18:34:32 -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=F4CUV+Zk; 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 E4CCF68B620; Thu, 13 Jan 2022 04:03:15 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f51.google.com (mail-qv1-f51.google.com [209.85.219.51]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C7F4C68B5D7 for ; Thu, 13 Jan 2022 04:03:10 +0200 (EET) Received: by mail-qv1-f51.google.com with SMTP id kl12so5106011qvb.5 for ; Wed, 12 Jan 2022 18:03:10 -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=cYFh/SmmulOgipZsnQZflo6MVW8WYLz2/bV1qQyhgz8=; b=F4CUV+Zk60dHU/FLOyw7Etkaz4oztBHcfU8Ul5fnyu7NQZssUpRG9ZEPfAn+6FP9bI U3lC9CPdyKZyHtK3FnW8enHxmlR8qauo1pP+afZ+JO7NvPoMBPs77AWHf2vm+b1loLQ8 0SChoRZxff4nrsxL88OdK0yj5SteitRRXGHfGxmFMEYgYSgzKrM5kg9uOJhcIzHMIw8g m9EvroMNqALDuMydFDx6Sy1PL5F8cTo8OIhOym4FMy78ZEQvNsE5tzSV4WMemSHx83x8 R1vmqlgoy2k81w+VOl4o6dQ9TuRhvgrqZn9OQL3Q0wMWDn1v0WHQ+feN648Us/2L4uFz GDNw== 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=cYFh/SmmulOgipZsnQZflo6MVW8WYLz2/bV1qQyhgz8=; b=vJdlBuUPaTG84R2P0GoglPa3OxML7HITDPOTD9tRdptXPgPvoUtqi4bsctQ+M9TEtg cajOgZAmaKK5Qy61Ko0yNa9+k3VuzCt1SAhAwHJOtl1T+gyp+mT2aB7v+wOm1skwl51J BTT34Fo+aZBe2CWjTxFi0tKvwQYFAaoNjkjFqV5tdXaNw7La5I8wpLFhhKMBhwIWAnV3 2MHUkRYOGrR4Xw2CRGKWWHkn2yie27hU127oOgUtgbFxhZ9JpEC5bD4SAvXCCmyypSR/ 7F6hh0h3KYoIE/VPzYPAs6yWklaivsAQCC+WjD7Evq2fpQT+EfTR2JYYntr7IAf2idZv YHxw== X-Gm-Message-State: AOAM533Xvpp5T4ATCU+YvX8pfvGocp5Fm39lPLSKb72tQ9Scbesiyjmq NeLMq+dJstw45uO6n3AczC6Z5zJncC0= X-Received: by 2002:a05:6214:5196:: with SMTP id kl22mr2379572qvb.96.1642039389400; Wed, 12 Jan 2022 18:03:09 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id v1sm1045961qtc.95.2022.01.12.18.03.08 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:03:09 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:02:23 -0300 Message-Id: <20220113020242.661-11-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 190/281] atrac1: 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: y9iON1cNC+np From: Vittorio Giovara Signed-off-by: James Almer --- libavcodec/atrac1.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/libavcodec/atrac1.c b/libavcodec/atrac1.c index 228477d778..6ec96a4644 100644 --- a/libavcodec/atrac1.c +++ b/libavcodec/atrac1.c @@ -279,11 +279,12 @@ static int atrac1_decode_frame(AVCodecContext *avctx, void *data, const uint8_t *buf = avpkt->data; int buf_size = avpkt->size; AT1Ctx *q = avctx->priv_data; + int channels = avctx->ch_layout.nb_channels; int ch, ret; GetBitContext gb; - if (buf_size < 212 * avctx->channels) { + if (buf_size < 212 * channels) { av_log(avctx, AV_LOG_ERROR, "Not enough data to decode!\n"); return AVERROR_INVALIDDATA; } @@ -293,7 +294,7 @@ static int atrac1_decode_frame(AVCodecContext *avctx, void *data, if ((ret = ff_get_buffer(avctx, frame, 0)) < 0) return ret; - for (ch = 0; ch < avctx->channels; ch++) { + for (ch = 0; ch < channels; ch++) { AT1SUCtx* su = &q->SUs[ch]; init_get_bits(&gb, &buf[212 * ch], 212 * 8); @@ -335,13 +336,14 @@ static av_cold int atrac1_decode_init(AVCodecContext *avctx) { AT1Ctx *q = avctx->priv_data; AVFloatDSPContext *fdsp; + int channels = avctx->ch_layout.nb_channels; int ret; avctx->sample_fmt = AV_SAMPLE_FMT_FLTP; - if (avctx->channels < 1 || avctx->channels > AT1_MAX_CHANNELS) { + if (channels < 1 || channels > AT1_MAX_CHANNELS) { av_log(avctx, AV_LOG_ERROR, "Unsupported number of channels: %d\n", - avctx->channels); + channels); return AVERROR(EINVAL); } From patchwork Thu Jan 13 02:02: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: 33465 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp38093iog; Wed, 12 Jan 2022 18:34:59 -0800 (PST) X-Google-Smtp-Source: ABdhPJxqyymKzNZVLhUx3cJrt7vJ2LRXPQSmapaLcBbmv/5Bbh7fOf24lc6L8MMWOs73FO38NbdD X-Received: by 2002:a17:906:4453:: with SMTP id i19mr1896943ejp.305.1642041298818; Wed, 12 Jan 2022 18:34:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041298; cv=none; d=google.com; s=arc-20160816; b=ClfvsfBcXnkiNnkKsRoqyVuoPxdD57VBS2umZMHg/Lz5hgZ5ITLhwCZh/Mp7ULxQ98 KnAjs/eAdoyO1xnsA7t9ypCDbOLIWGQ3DkdYF8KQa6eI0eA/yOdBqvcUL8OW2iX9Jo/p nRB7FUoRwoTdk93FgNXzr6GpG3Il37OHAWsVk47RQfDalr2YYUNbTDIgpy2PFoxVXHzY cXe89bsli1bZC3J/T/Ed2LQSmbhbOcF7Z/lmQKUf9TPxkj+a9uXCo15bev90Rqs+ujWG 8BzhC5O3TpYlLn5UhRDFcxFPrFkuuy0UoxlLwSddnns2XiHmuU94NlyscF5xshnsL+fD au7A== 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=fSG9+LjtHiGkRT28d4KdyBnObuGUNAUcEqWwSY2aedY=; b=ckeukxdidKICZ2rvM0sgx3gio/+BPih3kKM6V6sysEKX6Nk4w63Jjs2HgQOjE1HlNQ v4CNXV7RewuyeZWyd+E8BsfwelaCJ32r5T4Egfk3T965MTczauuYlVO1EQxfYHCRZ0OM doICnJkrw8XMrFaDtptupboOlN8gNyOBMq95wEzWc/oESdfVnpRI/iPiBd8mYmd3HkCC Y249gjDJ9jXQXxf8s9ebX90uEQkRdAahMOwIdD3uIo67Vr5C8F2d4QwY44QUAACQNZDl YpkAO/8BKJqnD8RNUMGK9e0jToj62tL8jWCzBuAnSccTNr4wdMvkwz96yh/y+vfPHEuO R9Kg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b="Wd/beCnL"; 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 gz11si767521ejb.38.2022.01.12.18.34.58; Wed, 12 Jan 2022 18:34: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="Wd/beCnL"; 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 982E968B635; Thu, 13 Jan 2022 04:03:17 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f177.google.com (mail-qk1-f177.google.com [209.85.222.177]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0ED6C68B5F4 for ; Thu, 13 Jan 2022 04:03:11 +0200 (EET) Received: by mail-qk1-f177.google.com with SMTP id j85so5613111qke.2 for ; Wed, 12 Jan 2022 18:03:11 -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=eAIyxwTElAOy4VD4nIxGNR9lb7H4i78+4F0rhyod/3E=; b=Wd/beCnLdWBf6lCHOJ5tLyHveb2r2YICzZc760VJna5x7EWlZ+ZZL7y6SCA1vY8D+Q 5K3e3BYJ0GAxrbtVGFOUVBVSA9RQOrMVkk9g49Qib0NbpQalco/xLSLLGDSaa5F8kxBc hWbC1AGUVDMh4q1qok2HtpazOQOF5XDTUF91kq9c9qyXj77Xn2M/JXxLNMSZwrNDgF2T C1F072aIGTt8Eixd59LjkhPXFut0VZqrtt8sP1RpYlsEULxtS9BcaOrTDJ5DK9iDQBSZ uZfH8RI8JTI5eW27AEJ7oIM1zujI4H7vbKuAZbszJRONkzAdmqsWchC1NnlGO6mAbdSi 9R+g== 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=eAIyxwTElAOy4VD4nIxGNR9lb7H4i78+4F0rhyod/3E=; b=luA5vCUkwddnc/YjkUZs+qh7Vk7pyyi1KN916q8d2vH+MbjblnW7KJULug6ALkiyGb GrRhN/RofMCMS+FaL6KWjgIfqJ996pYqNNjZyzvLZsOzQAO+zUMMAKzYO5gxME1SoA/V QtTfhWk2LfgXPbPHSSNG+n7mnvy21DxFr4DWS9Rzei/Ok7q2Uf20RvYyU7tAZ78eg8zQ T+pvhv79QowwyM7H0vmoQZxqxHANDu5MSQ1Ef3gLmQygMVkjUeu5HCpyVmuaFPPkb4Y0 5G3XFAvb1X3c0p0x6dcG3q8KM2mbu1xnF7Wl8Er64VK7hCBYz0QzNC3zj05Syu/Owvh/ yXAg== X-Gm-Message-State: AOAM530JXeOrVfy8zOwVckLZhzOYWtrXqp7p9Og4rAQGHAZn/0Aol/qz 3rmKtJZtY2YxbMLpkeKKtnP5/Rg0uS8= X-Received: by 2002:ae9:c00f:: with SMTP id u15mr1806330qkk.689.1642039390577; Wed, 12 Jan 2022 18:03:10 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id v1sm1045961qtc.95.2022.01.12.18.03.09 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:03:10 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:02:24 -0300 Message-Id: <20220113020242.661-12-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 191/281] atrac3: 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: 3XeZeFpmW9kg From: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavcodec/atrac3.c | 41 ++++++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/libavcodec/atrac3.c b/libavcodec/atrac3.c index 2376a7cd02..772937f5a3 100644 --- a/libavcodec/atrac3.c +++ b/libavcodec/atrac3.c @@ -646,6 +646,7 @@ static int decode_frame(AVCodecContext *avctx, const uint8_t *databuf, ATRAC3Context *q = avctx->priv_data; int ret, i, ch; uint8_t *ptr1; + int channels = avctx->ch_layout.nb_channels; if (q->coding_mode == JOINT_STEREO) { /* channel coupling mode */ @@ -655,9 +656,9 @@ static int decode_frame(AVCodecContext *avctx, const uint8_t *databuf, const uint8_t *js_databuf; int js_pair, js_block_align; - js_block_align = (avctx->block_align / avctx->channels) * 2; /* block pair */ + js_block_align = (avctx->block_align / channels) * 2; /* block pair */ - for (ch = 0; ch < avctx->channels; ch = ch + 2) { + for (ch = 0; ch < channels; ch = ch + 2) { js_pair = ch/2; js_databuf = databuf + js_pair * js_block_align; /* align to current pair */ @@ -726,11 +727,11 @@ static int decode_frame(AVCodecContext *avctx, const uint8_t *databuf, } else { /* single channels */ /* Decode the channel sound units. */ - for (i = 0; i < avctx->channels; i++) { + for (i = 0; i < channels; i++) { /* Set the bitstream reader at the start of a channel sound unit. */ init_get_bits(&q->gb, - databuf + i * avctx->block_align / avctx->channels, - avctx->block_align * 8 / avctx->channels); + databuf + i * avctx->block_align / channels, + avctx->block_align * 8 / channels); ret = decode_channel_sound_unit(q, &q->gb, &q->units[i], out_samples[i], i, q->coding_mode); @@ -740,7 +741,7 @@ static int decode_frame(AVCodecContext *avctx, const uint8_t *databuf, } /* Apply the iQMF synthesis filter. */ - for (i = 0; i < avctx->channels; i++) { + for (i = 0; i < channels; i++) { float *p1 = out_samples[i]; float *p2 = p1 + 256; float *p3 = p2 + 256; @@ -757,24 +758,25 @@ static int al_decode_frame(AVCodecContext *avctx, const uint8_t *databuf, int size, float **out_samples) { ATRAC3Context *q = avctx->priv_data; + int channels = avctx->ch_layout.nb_channels; int ret, i; /* Set the bitstream reader at the start of a channel sound unit. */ init_get_bits(&q->gb, databuf, size * 8); /* single channels */ /* Decode the channel sound units. */ - for (i = 0; i < avctx->channels; i++) { + for (i = 0; i < channels; i++) { ret = decode_channel_sound_unit(q, &q->gb, &q->units[i], out_samples[i], i, q->coding_mode); if (ret != 0) return ret; - while (i < avctx->channels && get_bits_left(&q->gb) > 6 && show_bits(&q->gb, 6) != 0x28) { + while (i < channels && get_bits_left(&q->gb) > 6 && show_bits(&q->gb, 6) != 0x28) { skip_bits(&q->gb, 1); } } /* Apply the iQMF synthesis filter. */ - for (i = 0; i < avctx->channels; i++) { + for (i = 0; i < channels; i++) { float *p1 = out_samples[i]; float *p2 = p1 + 256; float *p3 = p2 + 256; @@ -879,8 +881,9 @@ static av_cold int atrac3_decode_init(AVCodecContext *avctx) const uint8_t *edata_ptr = avctx->extradata; ATRAC3Context *q = avctx->priv_data; AVFloatDSPContext *fdsp; + int channels = avctx->ch_layout.nb_channels; - if (avctx->channels < MIN_CHANNELS || avctx->channels > MAX_CHANNELS) { + if (channels < MIN_CHANNELS || channels > MAX_CHANNELS) { av_log(avctx, AV_LOG_ERROR, "Channel configuration error!\n"); return AVERROR(EINVAL); } @@ -888,7 +891,7 @@ static av_cold int atrac3_decode_init(AVCodecContext *avctx) /* Take care of the codec-specific extradata. */ if (avctx->codec_id == AV_CODEC_ID_ATRAC3AL) { version = 4; - samples_per_frame = SAMPLES_PER_FRAME * avctx->channels; + samples_per_frame = SAMPLES_PER_FRAME * channels; delay = 0x88E; q->coding_mode = SINGLE; } else if (avctx->extradata_size == 14) { @@ -904,18 +907,18 @@ static av_cold int atrac3_decode_init(AVCodecContext *avctx) bytestream_get_le16(&edata_ptr)); // Unknown always 0 /* setup */ - samples_per_frame = SAMPLES_PER_FRAME * avctx->channels; + samples_per_frame = SAMPLES_PER_FRAME * channels; version = 4; delay = 0x88E; q->coding_mode = q->coding_mode ? JOINT_STEREO : SINGLE; q->scrambled_stream = 0; - if (avctx->block_align != 96 * avctx->channels * frame_factor && - avctx->block_align != 152 * avctx->channels * frame_factor && - avctx->block_align != 192 * avctx->channels * frame_factor) { + if (avctx->block_align != 96 * channels * frame_factor && + avctx->block_align != 152 * channels * frame_factor && + avctx->block_align != 192 * channels * frame_factor) { av_log(avctx, AV_LOG_ERROR, "Unknown frame/channel/frame_factor " "configuration %d/%d/%d\n", avctx->block_align, - avctx->channels, frame_factor); + channels, frame_factor); return AVERROR_INVALIDDATA; } } else if (avctx->extradata_size == 12 || avctx->extradata_size == 10) { @@ -939,7 +942,7 @@ static av_cold int atrac3_decode_init(AVCodecContext *avctx) return AVERROR_INVALIDDATA; } - if (samples_per_frame != SAMPLES_PER_FRAME * avctx->channels) { + if (samples_per_frame != SAMPLES_PER_FRAME * channels) { av_log(avctx, AV_LOG_ERROR, "Unknown amount of samples per frame %d.\n", samples_per_frame); return AVERROR_INVALIDDATA; @@ -954,7 +957,7 @@ static av_cold int atrac3_decode_init(AVCodecContext *avctx) if (q->coding_mode == SINGLE) av_log(avctx, AV_LOG_DEBUG, "Single channels detected.\n"); else if (q->coding_mode == JOINT_STEREO) { - if (avctx->channels % 2 == 1) { /* Joint stereo channels must be even */ + if (channels % 2 == 1) { /* Joint stereo channels must be even */ av_log(avctx, AV_LOG_ERROR, "Invalid joint stereo channel configuration.\n"); return AVERROR_INVALIDDATA; } @@ -1004,7 +1007,7 @@ static av_cold int atrac3_decode_init(AVCodecContext *avctx) q->vector_fmul = fdsp->vector_fmul; av_free(fdsp); - q->units = av_calloc(avctx->channels, sizeof(*q->units)); + q->units = av_calloc(channels, sizeof(*q->units)); if (!q->units) return AVERROR(ENOMEM); From patchwork Thu Jan 13 02:02:25 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33466 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp38208iog; Wed, 12 Jan 2022 18:35:13 -0800 (PST) X-Google-Smtp-Source: ABdhPJxY6rwmeB/OYurmWsHWE3pvHX4QGZjBJ8Wra/XTjBBCZcx4x6Ep443z2Eh9nnlZI+O0/EB7 X-Received: by 2002:a17:906:dc8c:: with SMTP id cs12mr1939546ejc.769.1642041312796; Wed, 12 Jan 2022 18:35:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041312; cv=none; d=google.com; s=arc-20160816; b=ffCp0CcdPgnOplryms78ScgmpOUDJJq6GsakvCOYHPODBP5ZrR22zTxRhPLNWh/Jc/ skAs3crgQIcwZNyWXcEXT4vXwr6xbYcd9DHo/hE+eOxbFA9BNPcCLAwgaNk4oFV0GBfp NjZST7fC0U1mfhognit0F4jxZMItrxqESTK/2gRMdpDBOX/acFGWKGmd2Hlm5QY9G/J5 TTTEDeQoVYXganzfm33w+tcGfli2Dm91JGQwPiHlgBCPK4+CwbA1VAqyn+STCwbHKuj3 usn6fwwHnjh99/l1l+aa4eSDqid5sTC0iZEIdATlI2KVSEL/SQ0X2eOh2rUQhpDZoCdP mbAQ== 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=sDQ4aU3mkErBERtFk7YFI56qnIl39y/z9rMNPLLZ8CA=; b=NW2o28dpbV+sXXP28RP96ZhmkhInpUj2GOJd8V90AyV4xrqMgPafOvCYffQ5DhpQBU fBoHNFgTnEwYej6tXhzOCnDOcFAQEELK6WTC4Yes6QknktJcE7TMi4CFHphrCIHEzB4B vqZdsi1XGjlneoWDjmULWwuhRSwxNNAtHH3raLhaoiMfYuSDJPgWcZHCmXpTeKXB9Kck rWBSqvu/iQLUNf0afjWaTqOc58ksI9/l1ZEeonbUotGXToWwabwwYLgtDNPkKFyx1jad 0r/h1HdKjhiJ1qIHiISq7pVLt7FlGDirkFbTFW6IfeyWzr0FQ+OeerhdnKs4QdR7sG4b aNEQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=aude5soD; 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 n26si741433ejg.794.2022.01.12.18.35.12; Wed, 12 Jan 2022 18:35:12 -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=aude5soD; 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 24EF268B63A; Thu, 13 Jan 2022 04:03:19 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f176.google.com (mail-qt1-f176.google.com [209.85.160.176]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4082068B608 for ; Thu, 13 Jan 2022 04:03:13 +0200 (EET) Received: by mail-qt1-f176.google.com with SMTP id c19so5361647qtx.3 for ; Wed, 12 Jan 2022 18:03:13 -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=bYGWFSNl/XXXJ32M76Zwk+8fqQSiGCrOr37fMLhcRkQ=; b=aude5soDkliThcXL0CuMT2hM+/5nUHqZy/OaRPqxPvtg4+lvI2MgqYQSosmCkDUNWT LLlN31O3C1Xe+a1i4y43MfO4P5Qv+d3iLdWVy0RksnjJ5toJkiLnp/uj6RNb0dKp1ZHr UTwo76JmHKc94BBA02eZGTIkv5suAm8kj4uOnV3mLWHEyj5BDBZLcqIlZoAOZsq3Of4a gIZJmUmSWtYhnkJ6tlr2SkN7ZTb0rS8Yd59COhjEeSezi5mtoQVM/ZqZcRfLTsO1v5dq iXKOKSsQ/iTYpfyd66TjLGxE/vWZnetgSJzSnCjnncwuFSO7FG3o6rd9Y5GsXy/cMAeM UVPg== 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=bYGWFSNl/XXXJ32M76Zwk+8fqQSiGCrOr37fMLhcRkQ=; b=O9v9j4G9vJWFfhxmkhKdz4O929mNwPS90L3O7MSk3wPxO6UoNw8ol/YAScSz3FI8H3 XIULkgGTINu2fwqkEqeq3JLiiegpWswHfV7HZlv8C7gK4HTVZqtl+4tYK99CeLh6ja4M BEIEUvj+zCMo7dTBsEXaHKFlE2xbOhsHTrgcoNWuK+MJ6VQIIz4fjUl+wRhRJgqnAzjZ orRLqzPw490bxuW0Vz0kOjTiHW9R4ZTDkEjhJI1ey6RW3Ekg+X0hBi7xBfD/95dn41o4 evlOyOXWGWEW6CYLPoM3KQQOva4CCZatNoqVZM/lRYarrbC/fIdQ2YPhqzqKftl7z/77 kpUA== X-Gm-Message-State: AOAM531WpCKDnjqcDK2R0aIMAXksG1BZNOQBZ47JSKLtW4LsNSY/q3Ep Mk4YGBBqEr69J2kaACNn+dzAxM00F+o= X-Received: by 2002:a05:622a:1811:: with SMTP id t17mr2032327qtc.525.1642039391784; Wed, 12 Jan 2022 18:03:11 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id v1sm1045961qtc.95.2022.01.12.18.03.10 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:03:11 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:02:25 -0300 Message-Id: <20220113020242.661-13-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 192/281] atrac3plus: 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: yGLPPGpyjlu6 From: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavcodec/atrac3plusdec.c | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/libavcodec/atrac3plusdec.c b/libavcodec/atrac3plusdec.c index e342f09fdb..3f0f08ee00 100644 --- a/libavcodec/atrac3plusdec.c +++ b/libavcodec/atrac3plusdec.c @@ -64,7 +64,6 @@ typedef struct ATRAC3PContext { int num_channel_blocks; ///< number of channel blocks uint8_t channel_blocks[5]; ///< channel configuration descriptor - uint64_t my_channel_layout; ///< current channel layout } ATRAC3PContext; static av_cold int atrac3p_decode_close(AVCodecContext *avctx) @@ -83,36 +82,36 @@ static av_cold int atrac3p_decode_close(AVCodecContext *avctx) static av_cold int set_channel_params(ATRAC3PContext *ctx, AVCodecContext *avctx) { + int channels = avctx->ch_layout.nb_channels; memset(ctx->channel_blocks, 0, sizeof(ctx->channel_blocks)); - switch (avctx->channels) { + av_channel_layout_uninit(&avctx->ch_layout); + switch (channels) { case 1: - if (avctx->channel_layout != AV_CH_FRONT_LEFT) - avctx->channel_layout = AV_CH_LAYOUT_MONO; - + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; ctx->num_channel_blocks = 1; ctx->channel_blocks[0] = CH_UNIT_MONO; break; case 2: - avctx->channel_layout = AV_CH_LAYOUT_STEREO; + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO; ctx->num_channel_blocks = 1; ctx->channel_blocks[0] = CH_UNIT_STEREO; break; case 3: - avctx->channel_layout = AV_CH_LAYOUT_SURROUND; + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_SURROUND; ctx->num_channel_blocks = 2; ctx->channel_blocks[0] = CH_UNIT_STEREO; ctx->channel_blocks[1] = CH_UNIT_MONO; break; case 4: - avctx->channel_layout = AV_CH_LAYOUT_4POINT0; + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_4POINT0; ctx->num_channel_blocks = 3; ctx->channel_blocks[0] = CH_UNIT_STEREO; ctx->channel_blocks[1] = CH_UNIT_MONO; ctx->channel_blocks[2] = CH_UNIT_MONO; break; case 6: - avctx->channel_layout = AV_CH_LAYOUT_5POINT1_BACK; + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_5POINT1_BACK; ctx->num_channel_blocks = 4; ctx->channel_blocks[0] = CH_UNIT_STEREO; ctx->channel_blocks[1] = CH_UNIT_MONO; @@ -120,7 +119,7 @@ static av_cold int set_channel_params(ATRAC3PContext *ctx, ctx->channel_blocks[3] = CH_UNIT_MONO; break; case 7: - avctx->channel_layout = AV_CH_LAYOUT_6POINT1_BACK; + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_6POINT1_BACK; ctx->num_channel_blocks = 5; ctx->channel_blocks[0] = CH_UNIT_STEREO; ctx->channel_blocks[1] = CH_UNIT_MONO; @@ -129,7 +128,7 @@ static av_cold int set_channel_params(ATRAC3PContext *ctx, ctx->channel_blocks[4] = CH_UNIT_MONO; break; case 8: - avctx->channel_layout = AV_CH_LAYOUT_7POINT1; + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_7POINT1; ctx->num_channel_blocks = 5; ctx->channel_blocks[0] = CH_UNIT_STEREO; ctx->channel_blocks[1] = CH_UNIT_MONO; @@ -139,7 +138,7 @@ static av_cold int set_channel_params(ATRAC3PContext *ctx, break; default: av_log(avctx, AV_LOG_ERROR, - "Unsupported channel count: %d!\n", avctx->channels); + "Unsupported channel count: %d!\n", channels); return AVERROR_INVALIDDATA; } @@ -173,8 +172,6 @@ static av_cold int atrac3p_decode_init(AVCodecContext *avctx) if ((ret = set_channel_params(ctx, avctx)) < 0) return ret; - ctx->my_channel_layout = avctx->channel_layout; - ctx->ch_units = av_calloc(ctx->num_channel_blocks, sizeof(*ctx->ch_units)); ctx->fdsp = avpriv_float_dsp_alloc(avctx->flags & AV_CODEC_FLAG_BITEXACT); From patchwork Thu Jan 13 02:02:26 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33467 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp38346iog; Wed, 12 Jan 2022 18:35:27 -0800 (PST) X-Google-Smtp-Source: ABdhPJy39kRV3LaZa1NMjS/W4BwJ1/FA6nrzv/RSziRb4tBPcoEhvjGMHf50v1vV8YQkgLDIMvTI X-Received: by 2002:a17:906:cc84:: with SMTP id oq4mr2081158ejb.736.1642041327153; Wed, 12 Jan 2022 18:35:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041327; cv=none; d=google.com; s=arc-20160816; b=XgIWijx7FT9/nJ8l3es73d9nQD2nIDnoOI9NVa5K/FaPxMBMljvAei/kzwjlp+8UoY EtrFIZk0KrNLDSzWiLHQlu4gee+qE+hTfOVelCWgp+C5l13C7P03TvSBjurGsaIHZQ1d OdOe+BrQZYoCQW8RNJ2uC7vferkcGwSQqZ538DSfRHnUG/Pxa+tG9Jysccd/oZyyqZXs 9TbQWyMvulGOoLWknDDtmXQxSqQRu65P4k8P8AiSD3mS1zvzzj7Zli0UHCqeJbM6QcTg nptch/OnSeUQYGtPTSc16n2CnFrR8ks3Gx7eU2Be1KG3pJw0LEACIuU0urt/cYCtVH0O yt/Q== 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=leBAG0//nNKDMKnTQ3q3QCqNKfFmdURgV2WawUWnHDs=; b=DWR0xI803cyphnsz0625ccHyQwY+lU8frNvpdDWxpEukzICxEFoTGEGT70I81Av8Ef DNgKDOBzyNogsD8sZHho/xJgMG8v8POyExTQngrmE9cM2uOCjoIiJltH8LodFLHYz3F1 2O5sg0rdJ6t7UBn/SA9tg5X1Kr29pZkfkynkzg49rpmGRl1h6AtPuT7Io1LpLILa8fLL wdnXxycQJ1BdMDUBuqULXmQ5IgU3pZ/ryh4cyBcho1U3MOY8766QYL0aFKCgNCxCsq55 o7pmvqdcoFSxqjOs59X3JEYnBGFlhH8LmMtNgzdikS9ry+vmMzBZvrUFhZ/jhxAcq7Xg ymag== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=DHAezsNf; 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 z10si892435edp.602.2022.01.12.18.35.26; Wed, 12 Jan 2022 18:35: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=DHAezsNf; 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 0975868B641; Thu, 13 Jan 2022 04:03:20 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f179.google.com (mail-qk1-f179.google.com [209.85.222.179]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9AC0D68B60A for ; Thu, 13 Jan 2022 04:03:14 +0200 (EET) Received: by mail-qk1-f179.google.com with SMTP id j85so5613217qke.2 for ; Wed, 12 Jan 2022 18:03:14 -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=REPPJg2JOahjX4J1CumWD7b7ouTGdk1SL3vHEtRJv3I=; b=DHAezsNfCS9NzcZ7FgXJ7M5aXRPXcwjugSV+31+qhBHe62bsWQ+rhEXrCEQvzFXHct //8VtvKIKYaIKNG0NjrWBh3epkMYv8Prz340XnMaBN77amjfaJ57bwcfW8hVqeGsBHtv nIfbodQ2woiWRPFsHZ77r308gOoTljn8WFlmtpNG7LfC1zBn51SClyF3vUH06IBrQhWr oBHES8npcIkd1ADXrdctNhfW4TmxJByQVrCX7+LH9GJW1RhvrC87w7wO2Xj/pxDK/FI6 YGc4sIYFl8Z0WYYJhlA2n+CijbV0p+oxstgYwu2W6bOYnNhbcLg0Xb/VPf28SfYD4YNA +nqw== 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=REPPJg2JOahjX4J1CumWD7b7ouTGdk1SL3vHEtRJv3I=; b=xQxsveP3M67xbnlLwfv+AZAun0aT/7NjI38OxcfoXz5EbpPossf2T3YvAt0aQsPq85 QoMlD6DPqD75jaqW6wQjIlYmWNQUFvIsbAYxPpdlhNb4GMaLzNor4UFoB2PcdlBcJGzy kjM4uB/4BudXWTKuvNwaoSTuz+tv7gcgQuX/DkEMJ7fEN7uk9fNtCa/foMB9TYQjbVyx R2MM09gpX8sUQiN/k8a7UIEUSb2yX/5nSBvuVpmVL0PZF0FCgu+ADnBPoXvAHfc4TLQi 94ZJ5r0S9IvbHB2u+sJKFB/lvKZ8K5thYFvvFX1f0ATXmu58A0H4yfyJTsEqMxHcUT+9 KJIw== X-Gm-Message-State: AOAM530gCqVrEHC2eX3hecufajwQWjWMRQRDVzU6cqSDt5Kvb4BJThL4 zoOfxg//eKMtc2yshrEwg4E+hxo714Y= X-Received: by 2002:a05:620a:278c:: with SMTP id g12mr951745qkp.729.1642039393001; Wed, 12 Jan 2022 18:03:13 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id v1sm1045961qtc.95.2022.01.12.18.03.12 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:03:12 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:02:26 -0300 Message-Id: <20220113020242.661-14-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 193/281] atrac9: 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: SwsSReU/onhM From: Anton Khirnov Signed-off-by: James Almer --- libavcodec/atrac9dec.c | 4 ++-- libavcodec/atrac9tab.h | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/libavcodec/atrac9dec.c b/libavcodec/atrac9dec.c index 1063044815..b13235cfb9 100644 --- a/libavcodec/atrac9dec.c +++ b/libavcodec/atrac9dec.c @@ -938,8 +938,8 @@ static av_cold int atrac9_decode_init(AVCodecContext *avctx) } s->block_config = &at9_block_layout[block_config_idx]; - avctx->channel_layout = s->block_config->channel_layout; - avctx->channels = av_get_channel_layout_nb_channels(avctx->channel_layout); + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout = s->block_config->channel_layout; avctx->sample_fmt = AV_SAMPLE_FMT_FLTP; if (get_bits1(&gb)) { diff --git a/libavcodec/atrac9tab.h b/libavcodec/atrac9tab.h index b169035aad..bdd051221e 100644 --- a/libavcodec/atrac9tab.h +++ b/libavcodec/atrac9tab.h @@ -33,7 +33,7 @@ enum ATRAC9BlockType { }; typedef struct ATRAC9BlockConfig { - uint64_t channel_layout; + AVChannelLayout channel_layout; enum ATRAC9BlockType type[5]; int plane_map[5][2]; int count; @@ -41,25 +41,25 @@ typedef struct ATRAC9BlockConfig { static const ATRAC9BlockConfig at9_block_layout[] = { { /* Mono */ - .channel_layout = AV_CH_LAYOUT_MONO, + .channel_layout = AV_CHANNEL_LAYOUT_MONO, .type = { ATRAC9_BLOCK_TYPE_SCE, }, .count = 1, }, { /* Dual Mono */ - .channel_layout = AV_CH_LAYOUT_STEREO, + .channel_layout = AV_CHANNEL_LAYOUT_STEREO, .type = { ATRAC9_BLOCK_TYPE_SCE, ATRAC9_BLOCK_TYPE_SCE, }, .plane_map = { { 0 }, { 1 }, }, .count = 2, }, { /* Stereo */ - .channel_layout = AV_CH_LAYOUT_STEREO, + .channel_layout = AV_CHANNEL_LAYOUT_STEREO, .type = { ATRAC9_BLOCK_TYPE_CPE, }, .plane_map = { { 0, 1 }, }, .count = 1, }, { /* 5.1 */ - .channel_layout = AV_CH_LAYOUT_5POINT1, + .channel_layout = AV_CHANNEL_LAYOUT_5POINT1, .type = { ATRAC9_BLOCK_TYPE_CPE, ATRAC9_BLOCK_TYPE_SCE, ATRAC9_BLOCK_TYPE_LFE, @@ -68,7 +68,7 @@ static const ATRAC9BlockConfig at9_block_layout[] = { .count = 4, }, { /* 7.1 */ - .channel_layout = AV_CH_LAYOUT_7POINT1, + .channel_layout = AV_CHANNEL_LAYOUT_7POINT1, .type = { ATRAC9_BLOCK_TYPE_CPE, ATRAC9_BLOCK_TYPE_SCE, ATRAC9_BLOCK_TYPE_LFE, @@ -78,7 +78,7 @@ static const ATRAC9BlockConfig at9_block_layout[] = { .count = 5, }, { /* Quad */ - .channel_layout = AV_CH_LAYOUT_QUAD, + .channel_layout = AV_CHANNEL_LAYOUT_QUAD, .type = { ATRAC9_BLOCK_TYPE_CPE, ATRAC9_BLOCK_TYPE_CPE, }, .plane_map = { { 0, 1 }, { 2, 3 }, }, From patchwork Thu Jan 13 02:02:27 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33468 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp38450iog; Wed, 12 Jan 2022 18:35:39 -0800 (PST) X-Google-Smtp-Source: ABdhPJw0TyGiC3DcI3JkvPKf4PX2eh6KsoY6/JRmRLMeU3T0xbEzGMFwP9S4yUP7OXqGP0PcBWtI X-Received: by 2002:a17:906:c0c7:: with SMTP id bn7mr1978686ejb.11.1642041339190; Wed, 12 Jan 2022 18:35:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041339; cv=none; d=google.com; s=arc-20160816; b=CZLn589Cc4efecORiToUUFy3q2sWhnDQ1XdCxwSSCyyUiPcQbUz/AwwkyUgXZ79cou bjYK4eXMMxOumnlU/iZh+hbBUvKQIq5oc0iqd7Kpiyeb9uVBfPvT3p1fAoWzcNJT25Hi oValxiuK8bGDWfdbKDm/h0SGySfckeQNKE2hcdGCLWBR27oLleKGGD8yhKw/yrJZh1Ho WzySa0QlRzkRamfXid8nj+a1cirFQtAa5IMugTHtaTgQJFcyzSCAey/YbTAJBu1Ms+LM Di6pWJyuLfdZhEV+Rpe9TVE8d9RIyIvZhQDJoeX36z/dWylhyEbdTKFEqcednyNS3bMW Rugw== 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=61k1X65acZgQ+rbQK/2v034GNfAirO6G5hDEI7dKbJY=; b=ohJvzI0ZDZefjRSFTslrylHxd796DyO8pAE5KbVaY9HBR9F/hnBf1Udx0l4zg5UfCo sUbOmlU6s425gjrT4Ip5kDZM/hoJVSQRDEIkj2OBvT2gcvPEpHr0ZzwTuUcMm0ErN82U usPeJq2ZxJPZf4iQq3v3ueNt5vYx9MHZrIZBl2qZJwr7YqWaQc77/25n6DlKe/WPEk2e i6ILKZcYTPYjLlcDcSRZj3RGaRKhVW1oQIYZHRPj4FhzQcQiDLqGSukVfLnTI8QYpzly RSQWeYyhQvEdIQd9VcmupTa9Of5Lj0ynONPSmGnji0Z5wGK/1FRa/sPHGmE0jiYQNLwF 2DuA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=jrTP0BUh; 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 o17si843362edf.383.2022.01.12.18.35.38; Wed, 12 Jan 2022 18:35:39 -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=jrTP0BUh; 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 13C9568B658; Thu, 13 Jan 2022 04:03:21 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f170.google.com (mail-qk1-f170.google.com [209.85.222.170]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 98E9C68B5F7 for ; Thu, 13 Jan 2022 04:03:15 +0200 (EET) Received: by mail-qk1-f170.google.com with SMTP id 193so4880981qkh.13 for ; Wed, 12 Jan 2022 18:03:15 -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=pU/PmLFZnO9e3s4HKHPVWgmdNFGJoXX9lSQGgm2u12s=; b=jrTP0BUhTR8fHt+m1K8C5VHOOkwTzN4UBOJa6GuRpvjyDx1kBEfziDKt490hDpf+Gg AkcMTlwHXz2TzTNb7NzicTJIEGR1cTLqSR9UwUzeFVrYKsHJxyMJNet5CuYF7Hm4dtOr Uw3CfjoT26YlBYB3D0JQJNrnqJ3kEAv08j/FL27pyMg8ppDXFQfzYPS6N3LCWFUMMko+ J6e6/5XgIYfhmKBBHW/gRIInf+7rfnbuTx4crd5qaCkAsKEiTND2pWFXfy/Ey+MMxrFQ QBwSjbAn32OHuxyZlWysnhKUqqQQZxClLYfCXtuIzYicXsjWvTVzr88EKSClyTj9F5q2 YKNw== 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=pU/PmLFZnO9e3s4HKHPVWgmdNFGJoXX9lSQGgm2u12s=; b=HJ7iK0jN/BQgjPlteRAOjTQIxHDgdPBmC5kom/w4YAvO50h3ihXvu1KVnjqNKKzeqE fLhmWoZ+RiJwAo5cg8JQ28KMBHHL1fifhmXR+r1P0bIcHv5dSc7yiKZZdw5Qm5xMtlLR T34ptAf/G+NgzQ3gMMtqp8mi7uHbKtkve7UJ3e6E/b6faC5urDGQXqjUGk3Aa1LW1Ps2 oE2AZ0OqgAsjgelNhJ0iCp4GY8ym/Uahgy8NjdK0yJM2lTSsDhn4Co+bydtwhhF32XWn 40g7vFhKnJ37Q/92HgjR8jYvMb/4Iv97PrJTW+NmMu89uzaok1ROSiKtsUZxWn2+LChf W+vw== X-Gm-Message-State: AOAM532wubNH6lJV3xwlBUPPDTJEYwuPBvD3O45ramSx/zX6IwhMkgES MBSX8cnJ9Jn/etxDNWKR9tYLdT9jPAo= X-Received: by 2002:a37:848:: with SMTP id 69mr1826045qki.638.1642039394192; Wed, 12 Jan 2022 18:03:14 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id v1sm1045961qtc.95.2022.01.12.18.03.13 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:03:13 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:02:27 -0300 Message-Id: <20220113020242.661-15-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 194/281] apedec: 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: BqTHnWQUTdcH From: Anton Khirnov Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavcodec/apedec.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/libavcodec/apedec.c b/libavcodec/apedec.c index 607304fe36..46a53bc52d 100644 --- a/libavcodec/apedec.c +++ b/libavcodec/apedec.c @@ -233,13 +233,14 @@ static av_cold int ape_decode_close(AVCodecContext *avctx) static av_cold int ape_decode_init(AVCodecContext *avctx) { APEContext *s = avctx->priv_data; + int channels = avctx->ch_layout.nb_channels; int i; if (avctx->extradata_size != 6) { av_log(avctx, AV_LOG_ERROR, "Incorrect extradata\n"); return AVERROR(EINVAL); } - if (avctx->channels > 2) { + if (channels > 2) { av_log(avctx, AV_LOG_ERROR, "Only mono and stereo is supported\n"); return AVERROR(EINVAL); } @@ -261,7 +262,7 @@ static av_cold int ape_decode_init(AVCodecContext *avctx) return AVERROR_PATCHWELCOME; } s->avctx = avctx; - s->channels = avctx->channels; + s->channels = channels; s->fileversion = AV_RL16(avctx->extradata); s->compression_level = AV_RL16(avctx->extradata + 2); s->flags = AV_RL16(avctx->extradata + 4); @@ -313,7 +314,9 @@ static av_cold int ape_decode_init(AVCodecContext *avctx) ff_bswapdsp_init(&s->bdsp); ff_llauddsp_init(&s->adsp); - avctx->channel_layout = (avctx->channels==2) ? AV_CH_LAYOUT_STEREO : AV_CH_LAYOUT_MONO; + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout = (channels == 2) ? (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO + : (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; return 0; } From patchwork Thu Jan 13 02:02:28 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33469 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp38542iog; Wed, 12 Jan 2022 18:35:52 -0800 (PST) X-Google-Smtp-Source: ABdhPJyeRjOXRkF1OUVawBn0HRpwhAV00I0jBd/bfNVusaUvM67U6ga2rjyUaZoxEoTCBZeg0Pql X-Received: by 2002:a17:907:98af:: with SMTP id ju15mr954647ejc.264.1642041352148; Wed, 12 Jan 2022 18:35:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041352; cv=none; d=google.com; s=arc-20160816; b=WgaD0cV1SvhtpQh/1/0fXoh2Lzn59z0iiCSllYiu19fa54vWDNVl/PGnBrxaqVTC5t zeoLxea8yY24dWhgm231cxtvPZ+/ZGTGzsgfabF9j8J0URJCCCFdVxxBgxoSCe8EcdFH xhVU5YKR7f3GkUJGAm7gP7T8A1wJPhMJfvHwK1vJ9XoV2wxtXdRzHQ5lrMbeWOL1WOsU uSZl2UqXOeklshW2BBUrg4ZSCM243G+UZ6W4FvLVqtYEXHO6ePc/XeR94Xrq/Cwz6Hi1 8UK2KEUfdMKVtsAmRGyUzS/bF+FVlHwq814qPCW4Hn6WwAzVVFsmiTr8O+7DG6v66Mkk Lz0w== 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=mWcbROAYd3zhl6XXeBtx7DrvyY0SnGWB5eVZQz8wyBk=; b=lKnrrZTjWhL0XOKDNKfzB8UhtSbcwBgqV4wxghCjw9/OU1YnlfCcH2yZrHiN1zIZ4h yxn0d3ICPkGavPvAvFU+QGinClXMoXleChSK0gOWPu//PfUpw96LuutB/+h8IBQjvENf QdnRAl8iYxWegVkhu1tXCvgDpw3KrT2a3I9rg+DLUmKlo2aQ7h0DDKm7ZlJmqoQ+dHTh Dn5Z3nnEEk3lVaavwg9Gt2C8uicbnASM/Db8O1mDbi6H/Y1vn3rqAixl1RKQyQ7KllCt RQq0TQF7CY9wJ6oVchYdHw7jJYX1N6DpU2uWZeAdB4wexdx0pstC6D64NbYenRwsSsIn Tzzw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=m45VQXtP; 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 oz11si742161ejc.728.2022.01.12.18.35.51; Wed, 12 Jan 2022 18:35:52 -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=m45VQXtP; 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 0197B68B65A; Thu, 13 Jan 2022 04:03:22 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f45.google.com (mail-qv1-f45.google.com [209.85.219.45]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E050868B630 for ; Thu, 13 Jan 2022 04:03:16 +0200 (EET) Received: by mail-qv1-f45.google.com with SMTP id jr5so5075002qvb.11 for ; Wed, 12 Jan 2022 18:03: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=kZxnimFZOqahjwi8rlttDG8HxKGX2m4tpBbCAmYx+dQ=; b=m45VQXtPP5GXqnIodK8rxUTjQ14kVu/lOZoZhGJBaePEAZ54KB8SZ2bnlkw//bhKJC TXsXjmETmOPa75Y3ItC4JDNmlMxXefPE9VtVhcpF6uEFojBuvekHDy+vhX382nSnNLuN 9qrrwA1lJZ449AgcinPrj/xrER0JCSp/CxtBRxrCmCkeEMxZXBVpPL0P28T4rTysldsj bz+yI4/L2+N5Y2uEdqabvco/bIBPvk4VfmwiALv3BpQE3xJrwKOMxMqWrd7lssnbuApC 8BFxnO604y04rK+S+X6bzRS0gUz6R/sg445KxDeLnaQTteq6FVqNMyqtrpJZTamEhwNP zG6Q== 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=kZxnimFZOqahjwi8rlttDG8HxKGX2m4tpBbCAmYx+dQ=; b=RkdqsHnehotiTPd3Gh7C123o0LLen1k/JOdQHr4fOvN6TVvX7p4tORgVPmdOa6QmJ2 u1m5gk9+Vz7zdKpkJ47OP69QlOBPT9FTabmoaJy6IdUs8nrW8djyDXEpseX+/YbuUn7g eVXU2RCFCCB6qs7Tj+ApRJAKMfVH6tnE3ch8gg05GSeOTDvtnv572UDo+kMxoTfo7gX4 mT2SJMsfaYgrpvm4kyX9IqE6Db6u6f5PF7c+ymZTDIzr9A70I8pD6Ky2909JHSzUrigf WzHmAvkLEwQFPwONSqp88zVwLzC5tKEzR/2UEBlBbuw9CwYsJybN1Mom6uPdPtPL8QTF 4/Cw== X-Gm-Message-State: AOAM530Or/GuTktFIlQP+4GVUhCKTNA7zlBWH4Kk5qroQB8ybm9Xq2vN ttNhFyaFJLtlS2xtIgETDcN+URBDp9k= X-Received: by 2002:ad4:5dc6:: with SMTP id m6mr2100868qvh.1.1642039395423; Wed, 12 Jan 2022 18:03:15 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id v1sm1045961qtc.95.2022.01.12.18.03.14 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:03:15 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:02:28 -0300 Message-Id: <20220113020242.661-16-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 195/281] audiotoolbox: 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: nOAk4yR1B4LG From: Anton Khirnov Signed-off-by: James Almer --- libavcodec/audiotoolboxdec.c | 27 +++++----- libavcodec/audiotoolboxenc.c | 95 ++++++++++++++++-------------------- 2 files changed, 57 insertions(+), 65 deletions(-) diff --git a/libavcodec/audiotoolboxdec.c b/libavcodec/audiotoolboxdec.c index 9939fef218..8edf9bd463 100644 --- a/libavcodec/audiotoolboxdec.c +++ b/libavcodec/audiotoolboxdec.c @@ -166,8 +166,8 @@ static int ffat_update_ctx(AVCodecContext *avctx) &size, &format)) { if (format.mSampleRate) avctx->sample_rate = format.mSampleRate; - avctx->channels = format.mChannelsPerFrame; - avctx->channel_layout = av_get_default_channel_layout(avctx->channels); + av_channel_layout_uninit(&avctx->ch_layout); + av_get_default_channel_layout(&avctx->ch_layout, format.mChannelsPerFrame); avctx->frame_size = format.mFramesPerPacket; } @@ -175,7 +175,7 @@ static int ffat_update_ctx(AVCodecContext *avctx) kAudioConverterCurrentOutputStreamDescription, &size, &format)) { format.mSampleRate = avctx->sample_rate; - format.mChannelsPerFrame = avctx->channels; + format.mChannelsPerFrame = avctx->ch_layout.nb_channels; AudioConverterSetProperty(at->converter, kAudioConverterCurrentOutputStreamDescription, size, &format); @@ -201,7 +201,8 @@ static int ffat_update_ctx(AVCodecContext *avctx) layout_mask |= 1 << id; layout->mChannelDescriptions[i].mChannelFlags = i; // Abusing flags as index } - avctx->channel_layout = layout_mask; + av_channel_layout_uninit(&avctx->ch_layout); + av_channel_layout_from_mask(&avctx->ch_layout, layout_mask); qsort(layout->mChannelDescriptions, layout->mNumberChannelDescriptions, sizeof(AudioChannelDescription), &ffat_compare_channel_descriptions); for (i = 0; i < layout->mNumberChannelDescriptions; i++) @@ -364,11 +365,11 @@ static av_cold int ffat_create_decoder(AVCodecContext *avctx, #endif } else { in_format.mSampleRate = avctx->sample_rate ? avctx->sample_rate : 44100; - in_format.mChannelsPerFrame = avctx->channels ? avctx->channels : 1; + in_format.mChannelsPerFrame = avctx->ch_layout.nb_channels ? avctx->ch_layout.nb_channels : 1; } avctx->sample_rate = out_format.mSampleRate = in_format.mSampleRate; - avctx->channels = out_format.mChannelsPerFrame = in_format.mChannelsPerFrame; + avctx->ch_layout.nb_channels = out_format.mChannelsPerFrame = in_format.mChannelsPerFrame; if (avctx->codec_id == AV_CODEC_ID_ADPCM_IMA_QT) in_format.mFramesPerPacket = 64; @@ -389,7 +390,7 @@ static av_cold int ffat_create_decoder(AVCodecContext *avctx, ffat_update_ctx(avctx); if(!(at->decoded_data = av_malloc(av_get_bytes_per_sample(avctx->sample_fmt) - * avctx->frame_size * avctx->channels))) + * avctx->frame_size * avctx->ch_layout.nb_channels))) return AVERROR(ENOMEM); at->last_pts = AV_NOPTS_VALUE; @@ -408,7 +409,7 @@ static av_cold int ffat_init_decoder(AVCodecContext *avctx) memcpy(at->extradata, avctx->extradata, avctx->extradata_size); } - if ((avctx->channels && avctx->sample_rate) || ffat_usable_extradata(avctx)) + if ((avctx->ch_layout.nb_channels && avctx->sample_rate) || ffat_usable_extradata(avctx)) return ffat_create_decoder(avctx, NULL); else return 0; @@ -455,11 +456,11 @@ static OSStatus ffat_decode_callback(AudioConverterRef converter, UInt32 *nb_pac #define COPY_SAMPLES(type) \ type *in_ptr = (type*)at->decoded_data; \ - type *end_ptr = in_ptr + frame->nb_samples * avctx->channels; \ + type *end_ptr = in_ptr + frame->nb_samples * avctx->ch_layout.nb_channels; \ type *out_ptr = (type*)frame->data[0]; \ - for (; in_ptr < end_ptr; in_ptr += avctx->channels, out_ptr += avctx->channels) { \ + for (; in_ptr < end_ptr; in_ptr += avctx->ch_layout.nb_channels, out_ptr += avctx->ch_layout.nb_channels) { \ int c; \ - for (c = 0; c < avctx->channels; c++) \ + for (c = 0; c < avctx->ch_layout.nb_channels; c++) \ out_ptr[c] = in_ptr[at->channel_map[c]]; \ } @@ -509,9 +510,9 @@ static int ffat_decode(AVCodecContext *avctx, void *data, .mNumberBuffers = 1, .mBuffers = { { - .mNumberChannels = avctx->channels, + .mNumberChannels = avctx->ch_layout.nb_channels, .mDataByteSize = av_get_bytes_per_sample(avctx->sample_fmt) * avctx->frame_size - * avctx->channels, + * avctx->ch_layout.nb_channels, } } }; diff --git a/libavcodec/audiotoolboxenc.c b/libavcodec/audiotoolboxenc.c index 9245aa9dc4..aeda1c36fd 100644 --- a/libavcodec/audiotoolboxenc.c +++ b/libavcodec/audiotoolboxenc.c @@ -178,18 +178,17 @@ static av_cold int get_channel_label(int channel) return -1; } -static int remap_layout(AudioChannelLayout *layout, uint64_t in_layout, int count) +static int remap_layout(AudioChannelLayout *layout, const AVChannelLayout *in_layout) { int i; - int c = 0; layout->mChannelLayoutTag = kAudioChannelLayoutTag_UseChannelDescriptions; - layout->mNumberChannelDescriptions = count; - for (i = 0; i < count; i++) { - int label; - while (!(in_layout & (1 << c)) && c < 64) - c++; - if (c == 64) - return AVERROR(EINVAL); // This should never happen + layout->mNumberChannelDescriptions = in_layout->nb_channels; + for (i = 0; i < in_layout->nb_channels; i++) { + int c, label; + + c = av_channel_layout_get_channel(in_layout, i); + if (c < 0 || c >= 64) + return AVERROR(EINVAL); label = get_channel_label(c); layout->mChannelDescriptions[i].mChannelLabel = label; if (label < 0) @@ -199,38 +198,33 @@ static int remap_layout(AudioChannelLayout *layout, uint64_t in_layout, int coun return 0; } -static int get_aac_tag(uint64_t in_layout) +static int get_aac_tag(const AVChannelLayout *in_layout) { - switch (in_layout) { - case AV_CH_LAYOUT_MONO: - return kAudioChannelLayoutTag_Mono; - case AV_CH_LAYOUT_STEREO: - return kAudioChannelLayoutTag_Stereo; - case AV_CH_LAYOUT_QUAD: - return kAudioChannelLayoutTag_AAC_Quadraphonic; - case AV_CH_LAYOUT_OCTAGONAL: - return kAudioChannelLayoutTag_AAC_Octagonal; - case AV_CH_LAYOUT_SURROUND: - return kAudioChannelLayoutTag_AAC_3_0; - case AV_CH_LAYOUT_4POINT0: - return kAudioChannelLayoutTag_AAC_4_0; - case AV_CH_LAYOUT_5POINT0: - return kAudioChannelLayoutTag_AAC_5_0; - case AV_CH_LAYOUT_5POINT1: - return kAudioChannelLayoutTag_AAC_5_1; - case AV_CH_LAYOUT_6POINT0: - return kAudioChannelLayoutTag_AAC_6_0; - case AV_CH_LAYOUT_6POINT1: - return kAudioChannelLayoutTag_AAC_6_1; - case AV_CH_LAYOUT_7POINT0: - return kAudioChannelLayoutTag_AAC_7_0; - case AV_CH_LAYOUT_7POINT1_WIDE_BACK: - return kAudioChannelLayoutTag_AAC_7_1; - case AV_CH_LAYOUT_7POINT1: - return kAudioChannelLayoutTag_MPEG_7_1_C; - default: - return 0; - } + static const struct { + AVChannelLayout chl; + int tag; + } map[] = { + { AV_CH_LAYOUT_MONO, kAudioChannelLayoutTag_Mono }, + { AV_CH_LAYOUT_STEREO, kAudioChannelLayoutTag_Stereo }, + { AV_CH_LAYOUT_QUAD, kAudioChannelLayoutTag_AAC_Quadraphonic }, + { AV_CH_LAYOUT_OCTAGONAL, kAudioChannelLayoutTag_AAC_Octagonal }, + { AV_CH_LAYOUT_SURROUND, kAudioChannelLayoutTag_AAC_3_0 }, + { AV_CH_LAYOUT_4POINT0, kAudioChannelLayoutTag_AAC_4_0 }, + { AV_CH_LAYOUT_5POINT0, kAudioChannelLayoutTag_AAC_5_0 }, + { AV_CH_LAYOUT_5POINT1, kAudioChannelLayoutTag_AAC_5_1 }, + { AV_CH_LAYOUT_6POINT0, kAudioChannelLayoutTag_AAC_6_0 }, + { AV_CH_LAYOUT_6POINT1, kAudioChannelLayoutTag_AAC_6_1 }, + { AV_CH_LAYOUT_7POINT0, kAudioChannelLayoutTag_AAC_7_0 }, + { AV_CH_LAYOUT_7POINT1_WIDE_BACK, kAudioChannelLayoutTag_AAC_7_1 }, + { AV_CH_LAYOUT_7POINT1, kAudioChannelLayoutTag_MPEG_7_1_C }, + }; + int i; + + for (i = 0; i < FF_ARRAY_ELEMS; i++) + if (!av_channel_layout_compare(in_layout, &map[i].chl)) + return map[i].tag; + + return 0; } static av_cold int ffat_init_encoder(AVCodecContext *avctx) @@ -246,10 +240,10 @@ static av_cold int ffat_init_encoder(AVCodecContext *avctx) : avctx->sample_fmt == AV_SAMPLE_FMT_U8 ? 0 : kAudioFormatFlagIsSignedInteger) | kAudioFormatFlagIsPacked, - .mBytesPerPacket = av_get_bytes_per_sample(avctx->sample_fmt) * avctx->channels, + .mBytesPerPacket = av_get_bytes_per_sample(avctx->sample_fmt) * avctx->ch_layout.nb_channels, .mFramesPerPacket = 1, - .mBytesPerFrame = av_get_bytes_per_sample(avctx->sample_fmt) * avctx->channels, - .mChannelsPerFrame = avctx->channels, + .mBytesPerFrame = av_get_bytes_per_sample(avctx->sample_fmt) * avctx->ch_layout.nb_channels, + .mChannelsPerFrame = avctx->ch_layout.nb_channels, .mBitsPerChannel = av_get_bytes_per_sample(avctx->sample_fmt) * 8, }; AudioStreamBasicDescription out_format = { @@ -258,7 +252,7 @@ static av_cold int ffat_init_encoder(AVCodecContext *avctx) .mChannelsPerFrame = in_format.mChannelsPerFrame, }; UInt32 layout_size = sizeof(AudioChannelLayout) + - sizeof(AudioChannelDescription) * avctx->channels; + sizeof(AudioChannelDescription) * avctx->ch_layout.nb_channels; AudioChannelLayout *channel_layout = av_malloc(layout_size); if (!channel_layout) @@ -278,10 +272,7 @@ static av_cold int ffat_init_encoder(AVCodecContext *avctx) return AVERROR_UNKNOWN; } - if (!avctx->channel_layout) - avctx->channel_layout = av_get_default_channel_layout(avctx->channels); - - if ((status = remap_layout(channel_layout, avctx->channel_layout, avctx->channels)) < 0) { + if ((status = remap_layout(channel_layout, &avctx->ch_layout)) < 0) { av_log(avctx, AV_LOG_ERROR, "Invalid channel layout\n"); av_free(channel_layout); return status; @@ -294,7 +285,7 @@ static av_cold int ffat_init_encoder(AVCodecContext *avctx) return AVERROR(EINVAL); } if (avctx->codec_id == AV_CODEC_ID_AAC) { - int tag = get_aac_tag(avctx->channel_layout); + int tag = get_aac_tag(&avctx->ch_layout); if (tag) { channel_layout->mChannelLayoutTag = tag; channel_layout->mNumberChannelDescriptions = 0; @@ -476,10 +467,10 @@ static OSStatus ffat_encode_callback(AudioConverterRef converter, UInt32 *nb_pac frame = ff_bufqueue_get(&at->frame_queue); data->mNumberBuffers = 1; - data->mBuffers[0].mNumberChannels = avctx->channels; + data->mBuffers[0].mNumberChannels = avctx->ch_layout.nb_channels; data->mBuffers[0].mDataByteSize = frame->nb_samples * av_get_bytes_per_sample(avctx->sample_fmt) * - avctx->channels; + avctx->ch_layout.nb_channels; data->mBuffers[0].mData = frame->data[0]; if (*nb_packets > frame->nb_samples) *nb_packets = frame->nb_samples; @@ -506,7 +497,7 @@ static int ffat_encode(AVCodecContext *avctx, AVPacket *avpkt, .mNumberBuffers = 1, .mBuffers = { { - .mNumberChannels = avctx->channels, + .mNumberChannels = avctx->ch_layout.nb_channels, .mDataByteSize = at->pkt_size, } } From patchwork Thu Jan 13 02:02:29 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33470 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp38673iog; Wed, 12 Jan 2022 18:36:04 -0800 (PST) X-Google-Smtp-Source: ABdhPJx46GDxYVGGDtyxfkHQTlKHorZIuXG8bPAB7BtckFrbGaQ1CSuINgWJWSx3S+X17+27jMeD X-Received: by 2002:a05:6402:1d83:: with SMTP id dk3mr719358edb.281.1642041364833; Wed, 12 Jan 2022 18:36:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041364; cv=none; d=google.com; s=arc-20160816; b=fDlGmtvweFMypuPq7QdUQElNdGmU/m3vmBuG8gbOVBBfPyeEuWdmfWKcxDts9SomPl gTdDCAAe7bm2/O1vY+R5aSxzEEMHvCWOTizZRLkmiCBp37SWj5WrN8zxvWkrkOhZUFcS wNbnt8B0xP7Cmz1lkz0l0dpJUUAYEiW83E4IoTWxwlazVlMtBUPLpY65dK/WAC8Qi9MD aE7WnEaKHrAMVaAc+0vBn2BOITWtefdm5TeSSzfy8i/CSVswa9Nw7xfODBBlYrExhfo+ 8vijDJa7/G9UVDVTUdIkojwOwCKQegl5sti0Fkxgdj6+yySD18MY1vGE98Ijjz0hWRtj Zyvg== 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=KfzuQhYUctWikFlhwAozhQA3mxQxGvDRNJAXx4dcuMU=; b=yW8EPkCJnKBMgLlgXuUPwQDq9Rc1G26bTB2ys8XArX3vnhEf/u2+HxfP6rUjSUkzKc hLzmfjMd/ja2cxYocAUJEkkXtvTCulHN5ibX9vcDpvBLeEL2rwOI4Gc1a9vKMrOKfrTp j4fvT4Wfzpr2QB6xAHoFfMNomhC4FwqDvK3NtzVfe2ZAJursVqQ4yo+JCWphZzQlHO0S p4mjqT3zGY8QMnlDIXm+5UqM8+xz9xRmliA6LN7BYOJMpLsT7AdwGNucN+za11pfSSVq C/yViY2lhkj6Ir+S93yQEn111bJ498orvA33u9q+QRBmOTv3HEwKcP8NlOsOXE83jLce WQOA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=jj9a9dtM; 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 er26si866958edb.321.2022.01.12.18.36.04; Wed, 12 Jan 2022 18:36:04 -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=jj9a9dtM; 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 F317F68B66C; Thu, 13 Jan 2022 04:03:22 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f175.google.com (mail-qt1-f175.google.com [209.85.160.175]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B1EB268B63A for ; Thu, 13 Jan 2022 04:03:18 +0200 (EET) Received: by mail-qt1-f175.google.com with SMTP id b14so2435592qtb.12 for ; Wed, 12 Jan 2022 18:03:18 -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=HaLT+2HM9Yde38sE3C9oNzjE6dEP4FyIAJVgr/1NbX0=; b=jj9a9dtMJt/ortDUBi1SbZ6+coEvw/lYxmttxJVndeegF6XQDRQcJ26j1iKCXB9GHM 4PlzlyHqiXi0qV4xECS27jXqMx+dZ/D9Hi68/g+DVbyOvO4zhuxupWIBKYkP8CuEOg49 55mT6jjTdSuHuHkLYjSYkRI+uA5OwpK+Y4fJ/oRFnxH+gRyuMha6bH/gqyDvFsWAKH04 zrDk7JDzbCLexupYk0uKGpbv3xNvUKyKlmHYRWfAZE7BcDLcajPI0zx1zM5cNqNvxkrf MdnXuS4mbnyMAjn/e1DGIiXPYatk2EuNi9p+HKjq2cJgFkU5ZBIBgCdHi/PkWk9lpAYz YbQA== 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=HaLT+2HM9Yde38sE3C9oNzjE6dEP4FyIAJVgr/1NbX0=; b=3tvJoh4Upulpf53DSTOSfzI4UUwvBUoyNtFihQqlfSXaqpxs36K9qtEGu18upYqHLB 6qhRLmL4KlNvJC4ntq//Vxs/2hFBPQPiSwh/35BJah/DKDz79ERiLYgi5iRCRamOVRTw rTmOF2imreQdzt1V5zfg2kc1pYaL423h80HFigtpCNg1gcc5la6jCw76tPZkAZoSP9Pb ihEMKh9V2rw6G53By124+E5nG0339a2kZBsYBQ4InuZVLWdKXyBKM0MgjaOaYAMiWLIZ VszfeAlwANs2VABiFcoIb1uoXma6/GiFovawvWhFLwI7Bn8uIlw7gKOh91cFL5CalELy trfQ== X-Gm-Message-State: AOAM533NbgVpZZ9Ldf96BJvDiw5Gt3n6LeTF5PVNo1AWq2nzrsbigzWa Rw6RSB5rWL4T5GPOxcP2ZLACMDy5J8Q= X-Received: by 2002:ac8:574b:: with SMTP id 11mr2009107qtx.334.1642039396614; Wed, 12 Jan 2022 18:03:16 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id v1sm1045961qtc.95.2022.01.12.18.03.15 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:03:16 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:02:29 -0300 Message-Id: <20220113020242.661-17-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 196/281] binkaudio: 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: Diyb/0NS3FeI From: Anton Khirnov Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavcodec/binkaudio.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/libavcodec/binkaudio.c b/libavcodec/binkaudio.c index f808141ba5..be321233c8 100644 --- a/libavcodec/binkaudio.c +++ b/libavcodec/binkaudio.c @@ -72,6 +72,7 @@ static av_cold int decode_init(AVCodecContext *avctx) int sample_rate_half; int i, ret; int frame_len_bits; + int channels = avctx->ch_layout.nb_channels; /* determine frame length */ if (avctx->sample_rate < 22050) { @@ -82,26 +83,26 @@ static av_cold int decode_init(AVCodecContext *avctx) frame_len_bits = 11; } - if (avctx->channels < 1 || avctx->channels > MAX_CHANNELS) { - av_log(avctx, AV_LOG_ERROR, "invalid number of channels: %d\n", avctx->channels); + if (channels < 1 || channels > MAX_CHANNELS) { + av_log(avctx, AV_LOG_ERROR, "invalid number of channels: %d\n", channels); return AVERROR_INVALIDDATA; } - avctx->channel_layout = avctx->channels == 1 ? AV_CH_LAYOUT_MONO : - AV_CH_LAYOUT_STEREO; + av_channel_layout_uninit(&avctx->ch_layout); + av_channel_layout_default(&avctx->ch_layout, channels); s->version_b = avctx->extradata_size >= 4 && avctx->extradata[3] == 'b'; if (avctx->codec->id == AV_CODEC_ID_BINKAUDIO_RDFT) { // audio is already interleaved for the RDFT format variant avctx->sample_fmt = AV_SAMPLE_FMT_FLT; - if (sample_rate > INT_MAX / avctx->channels) + if (sample_rate > INT_MAX / channels) return AVERROR_INVALIDDATA; - sample_rate *= avctx->channels; + sample_rate *= channels; s->channels = 1; if (!s->version_b) - frame_len_bits += av_log2(avctx->channels); + frame_len_bits += av_log2(channels); } else { - s->channels = avctx->channels; + s->channels = channels; avctx->sample_fmt = AV_SAMPLE_FMT_FLTP; } @@ -325,7 +326,7 @@ static int binkaudio_receive_frame(AVCodecContext *avctx, AVFrame *frame) av_packet_unref(s->pkt); } - frame->nb_samples = s->block_size / avctx->channels; + frame->nb_samples = s->block_size / avctx->ch_layout.nb_channels; return 0; fail: From patchwork Thu Jan 13 02:02:30 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33471 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp38783iog; Wed, 12 Jan 2022 18:36:16 -0800 (PST) X-Google-Smtp-Source: ABdhPJzuVV3MxVaMWJLwOPIrc7I1NShr47RnP8D4S7FWWsNWaXtO94nhTQ2O0iGFZ6dECVd4Xj3W X-Received: by 2002:a05:6402:f02:: with SMTP id i2mr2334821eda.97.1642041376775; Wed, 12 Jan 2022 18:36:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041376; cv=none; d=google.com; s=arc-20160816; b=nzerLFyiUjANRRbqWa/mKS1L6LRVqftBnzyQw/R/Q3yNtxsBfv/MqwXbPE9SVnccz5 JSXBoJhUDgM2u5qqqBKMlRiU5P7L3xAZFYESqxn7+CMPihDqLlmzGW8GKsmLl/mvuxsM 3BkQIGLVxMlhbMT2Tz8oM3ddcYNiABcYyNI9AXwEC1vu/BOCOSK07/Zw0lie23cL2Jcn RyjnbsMdDGP7+xsLnAFqV8boOcIr9eh2Jl2FGA3lwT5xMFU+qCl9zoHJB1T55f2Acm5G +hWYlpI6DqVRqjx0jsooeIdr9UcvCmaa93h9ZPNygM8LWPGNve8vzLvp4Ei0+vuNY+aa YdGw== 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=a7uoNysJAiFcZPp3ufU2P33ainUyo/EQ6496urWbLsM=; b=LPNZLIVAe7cRYwY2TmAuydg8IBRgtCfPAZiGkD7z/6njUQsO+ogWm21T91/sLIoo/r 3TCRd9TESrblPx47UWqz80FxGiAeyEgf0D5IJAbAXRNIf1KpzFaI6sNJJuSXdx3JYwls ir353tCeMvOCdU3iSBa49irXPMWEZ71sFk5Vd85rQI9BNK9kuQrxMOJqpJ3a9jQR3xtp VQZap7O93iaKfI81fKnR4QpsqJBRqyBCFPzFJkMQ+XVZC8floe7nuSoSFZim+AlCPfS0 Jc60OIEWarQXXnfHFd+koQR3o36FwPswjzLxTVnlAldhOBEaIdgx6AOQAmdCFj8GqR/x GWZg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=WdJpD1r7; 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 ne35si1000163ejc.748.2022.01.12.18.36.16; Wed, 12 Jan 2022 18:36:16 -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=WdJpD1r7; 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 C540F68B73F; Thu, 13 Jan 2022 04:03:23 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f171.google.com (mail-qt1-f171.google.com [209.85.160.171]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4ABCC68B641 for ; Thu, 13 Jan 2022 04:03:19 +0200 (EET) Received: by mail-qt1-f171.google.com with SMTP id h15so978608qtx.0 for ; Wed, 12 Jan 2022 18:03:19 -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=UofZyb/w1ekyshe6r3TROxYYq7XL1wGEP2Imu/trgJY=; b=WdJpD1r7yR9Ut+MW2KG0wmyTN6h2+gOl1m8r9auZESvMfPV+mDuvuHr+LP6DdF7rot XDX4pmc/WB7hpPJ8oZCvURfgzCy//x0tn/E75/JIKSIjgCDxVATIhNEqIpKfR5eGCy/J 3oMFJ0/vHOgG8ulgfLFeqBEeeSnX/vnlFnAp8D8Hc/58zYT1jvQO09zRUR0kxEQqXPaO jW/eCcOkDoGiRhmZgiK07X2eGz+UcPief+IjoLT/gdJ8lWRvtd5MSlp38UqUDlcYHugW FCAiTqqI+vULK4FxvlN4H6NtZBGR7L7TI4LQDA/KJEEcAQ4iKnVtSPB4GKxZTB33KQIa 3ARw== 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=UofZyb/w1ekyshe6r3TROxYYq7XL1wGEP2Imu/trgJY=; b=MIOpiWIwxtBVoT8py44tNtLAdyozS4k7OLvWR4FTXq+Q3KzpZpLWih4vVOCFkfk6LL T3+fbK98A65ZFXDH9uxL+S08sAeyW5qglsq403LvO5vLve7c40x47/LgJ6wZa1+tpuC2 ey3JNuRC3xIxTpKpIztYxu9196B4pGcRoQEGXsw5XWoeqq3NH6vntXBycvuovMe4i81I CbvaZ6oEkfvCiPCPDWxV6XpxSzoLFzX4X4ICeNmRTmMCOfdBL4PUenwVM2QHioS6KV/n J/6E+YQAQ5rll+zzPLZ0o+/FO4a1owuWZjE/JdWO5JTZGvW0K+Wfn5ZrcS8qsWSzW/dn yXJw== X-Gm-Message-State: AOAM533iDV4XPVApUY38pyPBdAoSkYxUd0a3AqILq68hgsqJSFc1hFh0 jMN6yn98jL77JgXIq6abqUY2+NpYaAs= X-Received: by 2002:a05:622a:138a:: with SMTP id o10mr2061751qtk.211.1642039397849; Wed, 12 Jan 2022 18:03:17 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id v1sm1045961qtc.95.2022.01.12.18.03.16 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:03:17 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:02:30 -0300 Message-Id: <20220113020242.661-18-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 197/281] bmvaudio: 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: D9a9a93qHxRA From: Anton Khirnov Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavcodec/bmvaudio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/bmvaudio.c b/libavcodec/bmvaudio.c index a7eae46103..d81dba8821 100644 --- a/libavcodec/bmvaudio.c +++ b/libavcodec/bmvaudio.c @@ -31,8 +31,8 @@ static const int bmv_aud_mults[16] = { static av_cold int bmv_aud_decode_init(AVCodecContext *avctx) { - avctx->channels = 2; - avctx->channel_layout = AV_CH_LAYOUT_STEREO; + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO; avctx->sample_fmt = AV_SAMPLE_FMT_S16; return 0; From patchwork Thu Jan 13 02:02:31 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33472 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp38861iog; Wed, 12 Jan 2022 18:36:28 -0800 (PST) X-Google-Smtp-Source: ABdhPJzyul09Wz166Wbkm20IEDq0CQ6ho6eO5yyUWneE/syz2ZFNZNaBGX6OMw1mJTfDJsu2IUho X-Received: by 2002:aa7:cd9a:: with SMTP id x26mr2326314edv.159.1642041388635; Wed, 12 Jan 2022 18:36:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041388; cv=none; d=google.com; s=arc-20160816; b=sglqLP6y7iXafc360WVACVs2qrXJbyxINqnRtmu7wTeUb8ORhK824ztFPpncxGc05L +0b3ULsmSizFm2FklqlO08+e/8HQcXDvd7uP8odEv5G9J9P48wpjalA0sR3L1TO14C5L PYd4n5JNRqmWkgKznCHDIQdYP7d2CFxQYjTG2Uh4RxHAKTdWFCnisujTtGnTJV+yJF5q 26vFzDew3R0F5Deczv5nWuoGMRdV5Jtvk7hu1SkfdZhrENwkRJ+LZbefmlrZAmb99ARy eWXB7QOv3EwWvQ1mwSS9K0ujFZ4v/adFfiGUpV1M5OwnqCK49A8/8Udlpa8+Tr8qXM7L xLRw== 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=tMVaAwf1WePn18Mj6bfHTAhhohbMCCNcU+/dMswleBI=; b=lwxTESjSzGXMPcMvgmgWRNOj89mfNv4tcTlF4RTCL0d/5GOaTxPANo/ZQFt849zAVr SC/rlXE8CioKrKAp1MpmsOWP+Nhq8Adh4P4jMol31yK6TzaD4KkFlHjbv9moO9rfId/1 01c7NriUukp7HSIj1/ILe7V8RQGkgtONzS2IuX4PlZFf+iTAok+G9XnmfmDJO+vphbqq ffnbKCE8vO81HOwfuv3c7t7S9Y+ce4gDTQbGdG0aQDhf6rAofXLQbgMyLaiw2PvhbjCd FatzrWJCvn23CdzFsyjoVxOxM/eSi+Vc95QMaiIdQ2grui7ev8jxIISn5TUCZqoz1chv by6w== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=UbRkwJYD; 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 j17si838273edr.419.2022.01.12.18.36.28; Wed, 12 Jan 2022 18:36:28 -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=UbRkwJYD; 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 A83A568B74A; Thu, 13 Jan 2022 04:03:24 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f50.google.com (mail-qv1-f50.google.com [209.85.219.50]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8A80768B650 for ; Thu, 13 Jan 2022 04:03:20 +0200 (EET) Received: by mail-qv1-f50.google.com with SMTP id a8so5169012qvx.2 for ; Wed, 12 Jan 2022 18:03:20 -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=fjfxxFYV+1z3NbTgifteCpP714XFyDPJU9FJsnyXJRQ=; b=UbRkwJYDBzeJSTrrju7LJYvAgIilWt0Pqs9XqvbbFwyrWsqsn6rH3CedgSzsLnc+B8 i9tkubEcDYdoSYqjPREwnwZm49Xwt45dpc9XLRl+6wFSOlXmluYOBivuLpY0MkGhxBcR UMXYmZNzkLMhNFIFrBLqOFn5IY9RaPUREczVicP18uPCPjMTlkKvh4oymmlVT53YLDVh xZXmgM9s/fA/X7ESdYbAgKk447q0QbFbiimsH+QfFVb1+gdo+hpu4v5HlYh5IfK603Sm BEdcYlkhJJ3Ro5l9ekuuk1ek9P/nnrRdKm7Ro2jeyFhBFDwJgozo67fQX0OP61pz387b xP0Q== 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=fjfxxFYV+1z3NbTgifteCpP714XFyDPJU9FJsnyXJRQ=; b=QW59pSTJOqMTNr4YR999vx8xTIzmvgYKTrkzAwMlppBlNS7ArmLCYDliFHoFet2gFp BUDWujrIk6mVVPyUEhZDKdOaZYu3RfHe3znnibMmsz5vQQZxfvUjNbX2X5B2SNBKBJCz jQFac3V3II4e4QPeCSHvgWSaguw2mAJ7xxlAI+a5d9sVhoPqPvl2upjiUydTbP7GTOQM k/MPHTxVUB2FDS6zBXiALtK3dHB+4Y2kz1ukrT+pbN4v7CJghaBtMSBTjlSNuworIjTu 1k3oZOoTvSpL0bpEKUVoa7zE5lAifi8aChJuxCmvwOL71koATbgEmi3+c05xODfsikSf BfqQ== X-Gm-Message-State: AOAM532rZaQTRlyDZXZ0JlsU3c9Vg+MQM+2uj3YrU4AGv1BL28vIImNV J86ckYR0RTMXyz55HO2FThW/s5toS/c= X-Received: by 2002:a05:6214:5096:: with SMTP id kk22mr2357972qvb.42.1642039399135; Wed, 12 Jan 2022 18:03:19 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id v1sm1045961qtc.95.2022.01.12.18.03.18 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:03:18 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:02:31 -0300 Message-Id: <20220113020242.661-19-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 198/281] cng: 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: SgtQtBRJ3OA5 From: Anton Khirnov Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavcodec/cngdec.c | 3 ++- libavcodec/cngenc.c | 6 +----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/libavcodec/cngdec.c b/libavcodec/cngdec.c index ecfd4abfc9..30d36f7326 100644 --- a/libavcodec/cngdec.c +++ b/libavcodec/cngdec.c @@ -56,7 +56,8 @@ static av_cold int cng_decode_init(AVCodecContext *avctx) CNGContext *p = avctx->priv_data; avctx->sample_fmt = AV_SAMPLE_FMT_S16; - avctx->channels = 1; + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; avctx->sample_rate = 8000; p->order = 12; diff --git a/libavcodec/cngenc.c b/libavcodec/cngenc.c index 830311f955..d77bbac40e 100644 --- a/libavcodec/cngenc.c +++ b/libavcodec/cngenc.c @@ -48,11 +48,6 @@ static av_cold int cng_encode_init(AVCodecContext *avctx) CNGContext *p = avctx->priv_data; int ret; - if (avctx->channels != 1) { - av_log(avctx, AV_LOG_ERROR, "Only mono supported\n"); - return AVERROR(EINVAL); - } - avctx->frame_size = 640; p->order = 10; if ((ret = ff_lpc_init(&p->lpc, avctx->frame_size, p->order, FF_LPC_TYPE_LEVINSON)) < 0) @@ -113,5 +108,6 @@ const AVCodec ff_comfortnoise_encoder = { .close = cng_encode_close, .sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_NONE }, + .ch_layouts = (const AVChannelLayout[]){ AV_CHANNEL_LAYOUT_MONO, { 0 } }, .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP, }; From patchwork Thu Jan 13 02:02:32 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33473 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp39009iog; Wed, 12 Jan 2022 18:36:41 -0800 (PST) X-Google-Smtp-Source: ABdhPJxvwxF6/rBmBHSTpJQ4OL9XhuJsQgnNj4Rr0ho3tH76a7b1GezRVvNZQwrhXQkO9uRn8paT X-Received: by 2002:a17:906:b044:: with SMTP id bj4mr1883716ejb.467.1642041401086; Wed, 12 Jan 2022 18:36:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041401; cv=none; d=google.com; s=arc-20160816; b=KFqb35XngRibUZ4A5sfwkw/2dIUof85WxVLF07cbMY11Uf0wH8DTsmCDqY2W5m2BXZ wTK8tqX5hvJPg4Wy8C9PosC297nxGvjXcV1DNAxDCIx4/LpcvjlV8DqL6uXO0pEqkSUA A6izLceRGdiOd8mVl48dA4TCmoD3/YhaaEi+OHKpcGuunrJ4W5RZWRRm/luwAJn8eYJZ wB59FqiffNGDkxdi+v+k4vrNzgJESq/A8R7Jqb3ErDciYK4ja7cvfm0lHY4Uq+zzg50R 7dQIzMq4qTQz0sURJ6Lomv9LOhVcRnhUJ9o3P+KPlUg9hkVVACHuiKot1ABxEyq/tgTB o8Qg== 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=ocg4LHJlk8whqESlZbUlxAbDnO9L6BWC7YcI/DI879U=; b=EGvIem8cXG6z+ainsraXoihQ/yUPPNRNVX7fViplVYSV8xZT0P+3dF4tU1+i3wamWt tyepgX8Qf7DNykXgDoCkcbSvIqVuqxWxjzGgzp3rvmt+q3MizKb1km81wRW4QS0GrZo6 vnGi7KGgvb2cFrlnSg9lXvtrJflByJAvhIqNXiGTekYEbstHR0taScKZ8TbrKRySOdEm pT+6ItJAg2ZEufOk/Iloh8LoPRZt+k35cDT9MbHipCsyHEvX/VrEDIFTTbEla/q666Gb jAr867ucgtSloOaAlXRQ2SXyRkqo4AJzPMhVtMcGK5ypPiQGWWehicRidV0dDUBjrcvs YYAw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=qujmILH7; 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 et3si686434ejc.301.2022.01.12.18.36.40; Wed, 12 Jan 2022 18:36:41 -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=qujmILH7; 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 8412A68B755; Thu, 13 Jan 2022 04:03:25 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f50.google.com (mail-qv1-f50.google.com [209.85.219.50]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C986D68B65D for ; Thu, 13 Jan 2022 04:03:21 +0200 (EET) Received: by mail-qv1-f50.google.com with SMTP id kc16so5153098qvb.3 for ; Wed, 12 Jan 2022 18:03:21 -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=ttlJXthsb4ELOyWO4AVgM7mpydFRIvGM45LmHQxocMg=; b=qujmILH78XtCtGKR2LgFyd2ttBcg1oNjo4EtblFboXS9GfZ6e+ISR4qiyaAUgRdAUQ 7qauaKDP5dQNJs6xfQUtgFkqIP8C0sZo4yzf4BDcNpSDuXc/LOumEkedJyF+dEWzIyGs o/bMCG56Nxn0o/80ye4w3oaXBxwXIDaLysnaBVn/YjPZLD54jCbxbPzFVN+qlrZgdwhS Tjy7nxWBAPgZX2LcGnjkyzrPSQgN0Wayg1oqYp66E+Jy1Eh87P8jBcxsLHp+StladEno 1Q7dzRcLsgvvQ7J5KoWkFkUzsadnRuFvTOPHMhqNABIswu2VQC2ExxRY631Ra5dry2UX wZzQ== 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=ttlJXthsb4ELOyWO4AVgM7mpydFRIvGM45LmHQxocMg=; b=JoYesaDSxWUbiIWFzVOZg46ibQnxUdQWhheoD+8enYpG5wZ0l2PBwh/J0reNmS4urs 3bHTXmjvd1V6rShqPZibpKPMThgn+QMtf6wfbOg5FlOrdhGVUwYBfHafX3R06I5cH45l lm4XAaPc85C/pRuLto8akidnOqCtGfu+6lRnqe8apjxljWLaue+yydLnGgNnqctnvAvZ /ACOYARI7dwE73PjEyInSI/ePaKYq/2vUm9fxGbS62jeQxKYnPQRZ1khblHBmRN9Ff1s Y5edyTH05F7p2siBXZxx4cOXVy3qhCe4MOusymhzPxfodjiql5kmY49OSmnSW002EwLn c4wA== X-Gm-Message-State: AOAM532S4ZSQSh7qpU7q5jgXYM1B7gQOKOeFGn925HoktNS04LW8uX+A Dzkld/7uO2YYNEP3mRhX4eMZ7fvthpU= X-Received: by 2002:a05:6214:23c6:: with SMTP id hr6mr2146178qvb.126.1642039400356; Wed, 12 Jan 2022 18:03:20 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id v1sm1045961qtc.95.2022.01.12.18.03.19 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:03:20 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:02:32 -0300 Message-Id: <20220113020242.661-20-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 199/281] cook: 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: GD7paqcH/Hju From: Anton Khirnov Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavcodec/cook.c | 25 ++++++++++++++----------- libavcodec/cook_parser.c | 4 ++-- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/libavcodec/cook.c b/libavcodec/cook.c index 3720772102..6f9bdb55e0 100644 --- a/libavcodec/cook.c +++ b/libavcodec/cook.c @@ -1054,7 +1054,7 @@ static void dump_cook_context(COOKContext *q) PRINT("js_vlc_bits", q->subpacket[0].js_vlc_bits); } ff_dlog(q->avctx, "COOKContext\n"); - PRINT("nb_channels", q->avctx->channels); + PRINT("nb_channels", q->avctx->ch_layout.nb_channels); PRINT("bit_rate", (int)q->avctx->bit_rate); PRINT("sample_rate", q->avctx->sample_rate); PRINT("samples_per_channel", q->subpacket[0].samples_per_channel); @@ -1079,6 +1079,8 @@ static av_cold int cook_decode_init(AVCodecContext *avctx) unsigned int channel_mask = 0; int samples_per_frame = 0; int ret; + int channels = avctx->ch_layout.nb_channels; + q->avctx = avctx; /* Take care of the codec specific extradata. */ @@ -1091,7 +1093,7 @@ static av_cold int cook_decode_init(AVCodecContext *avctx) bytestream2_init(&gb, avctx->extradata, avctx->extradata_size); /* Take data from the AVCodecContext (RM container). */ - if (!avctx->channels) { + if (!channels) { av_log(avctx, AV_LOG_ERROR, "Invalid number of channels\n"); return AVERROR_INVALIDDATA; } @@ -1123,7 +1125,7 @@ static av_cold int cook_decode_init(AVCodecContext *avctx) q->subpacket[s].js_vlc_bits = bytestream2_get_be16(&gb); /* Initialize extradata related variables. */ - q->subpacket[s].samples_per_channel = samples_per_frame / avctx->channels; + q->subpacket[s].samples_per_channel = samples_per_frame / channels; q->subpacket[s].bits_per_subpacket = avctx->block_align * 8; /* Initialize default data states. */ @@ -1138,21 +1140,21 @@ static av_cold int cook_decode_init(AVCodecContext *avctx) q->subpacket[s].joint_stereo = 0; switch (q->subpacket[s].cookversion) { case MONO: - if (avctx->channels != 1) { + if (channels != 1) { avpriv_request_sample(avctx, "Container channels != 1"); return AVERROR_PATCHWELCOME; } av_log(avctx, AV_LOG_DEBUG, "MONO\n"); break; case STEREO: - if (avctx->channels != 1) { + if (channels != 1) { q->subpacket[s].bits_per_subpdiv = 1; q->subpacket[s].num_channels = 2; } av_log(avctx, AV_LOG_DEBUG, "STEREO\n"); break; case JOINT_STEREO: - if (avctx->channels != 2) { + if (channels != 2) { avpriv_request_sample(avctx, "Container channels != 2"); return AVERROR_PATCHWELCOME; } @@ -1174,7 +1176,7 @@ static av_cold int cook_decode_init(AVCodecContext *avctx) av_log(avctx, AV_LOG_DEBUG, "MULTI_CHANNEL\n"); channel_mask |= q->subpacket[s].channel_mask = bytestream2_get_be32(&gb); - if (av_get_channel_layout_nb_channels(q->subpacket[s].channel_mask) > 1) { + if (channels > 1) { q->subpacket[s].total_subbands = q->subpacket[s].subbands + q->subpacket[s].js_subband_start; q->subpacket[s].joint_stereo = 1; @@ -1233,8 +1235,8 @@ static av_cold int cook_decode_init(AVCodecContext *avctx) q->subpacket[s].gains2.now = q->subpacket[s].gain_3; q->subpacket[s].gains2.previous = q->subpacket[s].gain_4; - if (q->num_subpackets + q->subpacket[s].num_channels > q->avctx->channels) { - av_log(avctx, AV_LOG_ERROR, "Too many subpackets %d for channels %d\n", q->num_subpackets, q->avctx->channels); + if (q->num_subpackets + q->subpacket[s].num_channels > channels) { + av_log(avctx, AV_LOG_ERROR, "Too many subpackets %d for channels %d\n", q->num_subpackets, channels); return AVERROR_INVALIDDATA; } @@ -1282,10 +1284,11 @@ static av_cold int cook_decode_init(AVCodecContext *avctx) } avctx->sample_fmt = AV_SAMPLE_FMT_FLTP; + av_channel_layout_uninit(&avctx->ch_layout); if (channel_mask) - avctx->channel_layout = channel_mask; + av_channel_layout_from_mask(&avctx->ch_layout, channel_mask); else - avctx->channel_layout = (avctx->channels == 2) ? AV_CH_LAYOUT_STEREO : AV_CH_LAYOUT_MONO; + av_channel_layout_default(&avctx->ch_layout, channels); dump_cook_context(q); diff --git a/libavcodec/cook_parser.c b/libavcodec/cook_parser.c index a05ebf94b8..0d9473845e 100644 --- a/libavcodec/cook_parser.c +++ b/libavcodec/cook_parser.c @@ -41,8 +41,8 @@ static int cook_parse(AVCodecParserContext *s1, AVCodecContext *avctx, CookParseContext *s = s1->priv_data; if (!s->duration && - avctx->extradata && avctx->extradata_size >= 8 && avctx->channels) - s->duration = AV_RB16(avctx->extradata + 4) / avctx->channels; + avctx->extradata && avctx->extradata_size >= 8 && avctx->ch_layout.nb_channels) + s->duration = AV_RB16(avctx->extradata + 4) / avctx->ch_layout.nb_channels; s1->duration = s->duration; From patchwork Thu Jan 13 02:02:33 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33474 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp39177iog; Wed, 12 Jan 2022 18:36:55 -0800 (PST) X-Google-Smtp-Source: ABdhPJw5l9A/XCYfzhXKAgJCoo+NT44vq4K3mbL/lDpW6ggLGMpE7tg9xknoVdk50sLTKjROPTFb X-Received: by 2002:a17:906:2802:: with SMTP id r2mr2082063ejc.172.1642041415376; Wed, 12 Jan 2022 18:36:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041415; cv=none; d=google.com; s=arc-20160816; b=xPRxyVSGFUe9OMz8UP3ZYIfyKavjz5wXBENqJHgNBKCTjT9s3HpvJ6bAEucLhHxg2x +aoorYsg8X3EpYhl1nPAogubrKTlo7Cs6NPyxfEasEpfqCT+eqpgVlL44hTgoHzghpqv fSeYsTswkLxslwWqu90mhx/mZkGKUe28srOXi/HroZU0okT4fo31ghe2yk9AaBw0uxQS rjNdj7HzxY1cMOctc1k/TSo8IceAtp5PzFirF41E02/HNfkemBHnYnxD0iAHpoNn4ExJ PE2vzgQbMqHI9rMt85J+WzFWVgLw47kJiRAiBG4B/eqxv8oyuF7rQJq3IHd3ep4KVpS5 rK/Q== 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=9H5GhhdzmR3s1vglJmd7/0aTPUdmcLuY3jA0YjT27Aw=; b=ZGXxYd+2QTuP9EtsYlg9MOv3MaQJmpjdM1b5AQy4LyvWYsGJu2b35VkH1rk8FwMso5 obvtOtJ78Y+lR9TaxPa9d0cOHCKcFDVY3GZXFLR7zcvgLaRu5eaXhcEu28eShzr0Cx5X pqUCxUvXxKV1Oh3Vr1GSuR6dAX+w3PUWqyqaGljv85/dxpj6S0WDzBsYfmlOahf7r+aA tisJUigHmD/cyN6OoeC6C+yUZpQTifTaLhOFVLKFryGe7ccYgIA0QYTYA+RAE+ZVNkAP zDboBa16W8f0X32kPLXhQNHiJ5bK1b/zZD3W2RV4TgktHIcJlAqAiIu4EXT+87fZcORW gKHg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=DpmUrYCz; 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 g19si769366ejt.808.2022.01.12.18.36.55; Wed, 12 Jan 2022 18:36:55 -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=DpmUrYCz; 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 A395168B66D; Thu, 13 Jan 2022 04:03:26 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f180.google.com (mail-qt1-f180.google.com [209.85.160.180]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2BEF568B660 for ; Thu, 13 Jan 2022 04:03:23 +0200 (EET) Received: by mail-qt1-f180.google.com with SMTP id c7so1765498qtc.11 for ; Wed, 12 Jan 2022 18:03:23 -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=eKJzPASBf5FMfb7HZz13Zr7Ht6Bj4lZR8D4qD3g1EhQ=; b=DpmUrYCzxF5nvO+h+BzpkQyOeQ6iaJHmp/FMkZ9xUbNv4XjWBiMk5ZnK3gDBoKRYW7 +8eqkTX0nULkVACJuLNaajBdKGUc7h8tJmYUIJYT0pB2qYslrzFySOfBwsfEB0ygpDBM T0/CI+K5YN8XhetxPf4eOhkAXiFQtgfTT3+pRoBNizxIebwCGSKC6FXYhFF+5qQ3NPT4 wgmdCTcd63S/EjfYQ31tEV1zj0o5QXR0SfRvyyfv06swLqsnFBEiLgkHyGWYVXZgHXKw 9ea7Ymem/1ujMu3KXL9Y0QitXrJw66RUhUrC526FI6Jt0Wi5nO/TC9jbvrIAkks/Msv9 3Frg== 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=eKJzPASBf5FMfb7HZz13Zr7Ht6Bj4lZR8D4qD3g1EhQ=; b=xeaEwAQzw5yWZe0LMSV0xoIwMfjgkwLNaI+xFjBgRr62Hgq6tz4De4bycTmq2vpMX2 6bclwbkb3bA+l2uN1oh5tj26nH+kwXd+i/TWVwyar1tunYRy0HiybV7d+C1W3sj6VXUL sSZbob9iZOl5Q1bpszEmk9dCLZDxcxtIxiQ8xNVvb2zFIP4sWMiQBjhERk/48xZPNAyd b+pylWRJK2m1OlBH+fOk3791E97QiG2tkFwm4jLteUn/wR4DNchSE3utb5GmX9dP2mXj 3dKlRkOMP32EFrS/rijwFp2rBEOdWzGocLCcxvJLOfQ3b9YIX1w3QDxHSy259ujh39aG 9MvQ== X-Gm-Message-State: AOAM5305NO05+jmlmMX2Z0SpqTAWxN/bPQPo/b/AZnKQ2fWEfEi9CmMr KDJHH5gcb4ja8guJK/ItJgp3SmrvAUU= X-Received: by 2002:a05:622a:1114:: with SMTP id e20mr2027017qty.545.1642039401593; Wed, 12 Jan 2022 18:03:21 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id v1sm1045961qtc.95.2022.01.12.18.03.20 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:03:21 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:02:33 -0300 Message-Id: <20220113020242.661-21-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 200/281] dca: 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: TAborsutVzFb From: Anton Khirnov Signed-off-by: James Almer --- libavcodec/dca_core.c | 6 ++-- libavcodec/dca_lbr.c | 20 +++++++----- libavcodec/dca_xll.c | 2 +- libavcodec/dcadec.c | 71 ++++++++++++++++++++++++++++++------------- libavcodec/dcadec.h | 7 +++++ libavcodec/dcaenc.c | 39 ++++++++++++++++-------- 6 files changed, 100 insertions(+), 45 deletions(-) diff --git a/libavcodec/dca_core.c b/libavcodec/dca_core.c index 758e3447a6..ebe44c2d15 100644 --- a/libavcodec/dca_core.c +++ b/libavcodec/dca_core.c @@ -2148,7 +2148,7 @@ static int filter_frame_fixed(DCACoreDecoder *s, AVFrame *frame) nsamples, s->ch_mask); } - for (i = 0; i < avctx->channels; i++) { + for (i = 0; i < avctx->ch_layout.nb_channels; i++) { int32_t *samples = s->output_samples[s->ch_remap[i]]; int32_t *plane = (int32_t *)frame->extended_data[i]; for (n = 0; n < nsamples; n++) @@ -2180,11 +2180,11 @@ static int filter_frame_float(DCACoreDecoder *s, AVFrame *frame) return ret; // Build reverse speaker to channel mapping - for (i = 0; i < avctx->channels; i++) + for (i = 0; i < avctx->ch_layout.nb_channels; i++) output_samples[s->ch_remap[i]] = (float *)frame->extended_data[i]; // Allocate space for extra channels - nchannels = av_popcount(s->ch_mask) - avctx->channels; + nchannels = av_popcount(s->ch_mask) - avctx->ch_layout.nb_channels; if (nchannels > 0) { av_fast_malloc(&s->output_buffer, &s->output_size, nsamples * nchannels * sizeof(float)); diff --git a/libavcodec/dca_lbr.c b/libavcodec/dca_lbr.c index 481a8df7e6..c11f2f7e18 100644 --- a/libavcodec/dca_lbr.c +++ b/libavcodec/dca_lbr.c @@ -107,10 +107,6 @@ static const uint8_t lfe_index[7] = { 1, 2, 3, 0, 1, 2, 3 }; -static const uint8_t channel_counts[7] = { - 1, 2, 3, 2, 3, 4, 5 -}; - static const uint16_t channel_layouts[7] = { AV_CH_LAYOUT_MONO, AV_CH_LAYOUT_STEREO, @@ -1731,9 +1727,8 @@ int ff_dca_lbr_filter_frame(DCALbrDecoder *s, AVFrame *frame) AVCodecContext *avctx = s->avctx; int i, ret, nchannels, ch_conf = (s->ch_mask & 0x7) - 1; const int8_t *reorder; + uint64_t channel_mask = channel_layouts[ch_conf]; - avctx->channel_layout = channel_layouts[ch_conf]; - avctx->channels = nchannels = channel_counts[ch_conf]; avctx->sample_rate = s->sample_rate; avctx->sample_fmt = AV_SAMPLE_FMT_FLTP; avctx->bits_per_raw_sample = 0; @@ -1741,13 +1736,22 @@ int ff_dca_lbr_filter_frame(DCALbrDecoder *s, AVFrame *frame) avctx->bit_rate = s->bit_rate_scaled; if (s->flags & LBR_FLAG_LFE_PRESENT) { - avctx->channel_layout |= AV_CH_LOW_FREQUENCY; - avctx->channels++; + channel_mask |= AV_CH_LOW_FREQUENCY; reorder = channel_reorder_lfe[ch_conf]; } else { reorder = channel_reorder_nolfe[ch_conf]; } + av_channel_layout_uninit(&avctx->ch_layout); + av_channel_layout_from_mask(&avctx->ch_layout, channel_mask); +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + avctx->channels = avctx->ch_layout.nb_channels; + avctx->channel_layout = avctx->ch_layout.order == AV_CHANNEL_ORDER_NATIVE ? + avctx->ch_layout.u.mask : 0; +FF_ENABLE_DEPRECATION_WARNINGS +#endif + frame->nb_samples = 1024 << s->freq_range; if ((ret = ff_get_buffer(avctx, frame, 0)) < 0) return ret; diff --git a/libavcodec/dca_xll.c b/libavcodec/dca_xll.c index ab14dbcc88..a4ff3f9aa2 100644 --- a/libavcodec/dca_xll.c +++ b/libavcodec/dca_xll.c @@ -1442,7 +1442,7 @@ int ff_dca_xll_filter_frame(DCAXllDecoder *s, AVFrame *frame) s->output_mask); } - for (i = 0; i < avctx->channels; i++) { + for (i = 0; i < avctx->ch_layout.nb_channels; i++) { int32_t *samples = s->output_samples[ch_remap[i]]; if (frame->format == AV_SAMPLE_FMT_S16P) { int16_t *plane = (int16_t *)frame->extended_data[i]; diff --git a/libavcodec/dcadec.c b/libavcodec/dcadec.c index 43694b51f7..239ed9ac91 100644 --- a/libavcodec/dcadec.c +++ b/libavcodec/dcadec.c @@ -42,13 +42,17 @@ int ff_dca_set_channel_layout(AVCodecContext *avctx, int *ch_remap, int dca_mask 13, 14, 3, 9, 10, 11, 12, 14, 16, 15, 17, 8, 4, 5, }; + DCAContext *s = avctx->priv_data; + int dca_ch, wav_ch, nchannels = 0; - if (avctx->request_channel_layout & AV_CH_LAYOUT_NATIVE) { + av_channel_layout_uninit(&avctx->ch_layout); + if (s->output_channel_order == CHANNEL_ORDER_CODED) { for (dca_ch = 0; dca_ch < DCA_SPEAKER_COUNT; dca_ch++) if (dca_mask & (1U << dca_ch)) ch_remap[nchannels++] = dca_ch; - avctx->channel_layout = dca_mask; + avctx->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + avctx->ch_layout.nb_channels = nchannels; } else { int wav_mask = 0; int wav_map[18]; @@ -70,10 +74,18 @@ int ff_dca_set_channel_layout(AVCodecContext *avctx, int *ch_remap, int dca_mask for (wav_ch = 0; wav_ch < 18; wav_ch++) if (wav_mask & (1 << wav_ch)) ch_remap[nchannels++] = wav_map[wav_ch]; - avctx->channel_layout = wav_mask; + + av_channel_layout_from_mask(&avctx->ch_layout, wav_mask); } - avctx->channels = nchannels; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + avctx->channels = avctx->ch_layout.nb_channels; + avctx->channel_layout = avctx->ch_layout.order == AV_CHANNEL_ORDER_NATIVE ? + avctx->ch_layout.u.mask : 0; +FF_ENABLE_DEPRECATION_WARNINGS +#endif + return nchannels; } @@ -349,23 +361,28 @@ static av_cold int dcadec_init(AVCodecContext *avctx) s->crctab = av_crc_get_table(AV_CRC_16_CCITT); - switch (avctx->request_channel_layout & ~AV_CH_LAYOUT_NATIVE) { - case 0: - s->request_channel_layout = 0; - break; - case AV_CH_LAYOUT_STEREO: - case AV_CH_LAYOUT_STEREO_DOWNMIX: - s->request_channel_layout = DCA_SPEAKER_LAYOUT_STEREO; - break; - case AV_CH_LAYOUT_5POINT0: - s->request_channel_layout = DCA_SPEAKER_LAYOUT_5POINT0; - break; - case AV_CH_LAYOUT_5POINT1: - s->request_channel_layout = DCA_SPEAKER_LAYOUT_5POINT1; - break; - default: - av_log(avctx, AV_LOG_WARNING, "Invalid request_channel_layout\n"); - break; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + if (avctx->request_channel_layout & AV_CH_LAYOUT_NATIVE) + s->output_channel_order = CHANNEL_ORDER_CODED; + + if (avctx->request_channel_layout & ~AV_CH_LAYOUT_NATIVE) { + av_channel_layout_uninit(&s->downmix_layout); + av_channel_layout_from_mask(&s->downmix_layout, avctx->request_channel_layout & ~AV_CH_LAYOUT_NATIVE); + } +FF_ENABLE_DEPRECATION_WARNINGS +#endif + + if (s->downmix_layout.nb_channels) { + if (!av_channel_layout_compare(&s->downmix_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO) || + !av_channel_layout_compare(&s->downmix_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO_DOWNMIX)) + s->request_channel_layout = DCA_SPEAKER_LAYOUT_STEREO; + else if (!av_channel_layout_compare(&s->downmix_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_5POINT0)) + s->request_channel_layout = DCA_SPEAKER_LAYOUT_5POINT0; + else if (!av_channel_layout_compare(&s->downmix_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_5POINT1)) + s->request_channel_layout = DCA_SPEAKER_LAYOUT_5POINT1; + else + av_log(avctx, AV_LOG_WARNING, "Invalid downmix layout\n"); } ff_thread_once(&init_static_once, dcadec_init_static); @@ -378,6 +395,18 @@ static av_cold int dcadec_init(AVCodecContext *avctx) static const AVOption dcadec_options[] = { { "core_only", "Decode core only without extensions", OFFSET(core_only), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, PARAM }, + + { "channel_order", "Order in which the channels are to be exported", + OFFSET(output_channel_order), AV_OPT_TYPE_INT, + { .i64 = CHANNEL_ORDER_DEFAULT }, 0, 1, PARAM, "channel_order" }, + { "default", "normal libavcodec channel order", 0, AV_OPT_TYPE_CONST, + { .i64 = CHANNEL_ORDER_DEFAULT }, .flags = PARAM, "channel_order" }, + { "coded", "order in which the channels are coded in the bitstream", + 0, AV_OPT_TYPE_CONST, { .i64 = CHANNEL_ORDER_CODED }, .flags = PARAM, "channel_order" }, + + { "downmix", "Request a specific channel layout from the decoder", OFFSET(downmix_layout), + AV_OPT_TYPE_CHLAYOUT, {.str = NULL}, .flags = PARAM }, + { NULL } }; diff --git a/libavcodec/dcadec.h b/libavcodec/dcadec.h index 9da8d3b444..7fdb62d310 100644 --- a/libavcodec/dcadec.h +++ b/libavcodec/dcadec.h @@ -43,6 +43,11 @@ #define DCA_PACKET_RECOVERY 0x10 ///< Sync error recovery flag #define DCA_PACKET_RESIDUAL 0x20 ///< Core valid for residual decoding +enum DCAOutputChannelOrder { + CHANNEL_ORDER_DEFAULT, + CHANNEL_ORDER_CODED, +}; + typedef struct DCAContext { const AVClass *class; ///< class for AVOptions AVCodecContext *avctx; @@ -63,6 +68,8 @@ typedef struct DCAContext { int request_channel_layout; ///< Converted from avctx.request_channel_layout int core_only; ///< Core only decoding flag + int output_channel_order; + AVChannelLayout downmix_layout; } DCAContext; int ff_dca_set_channel_layout(AVCodecContext *avctx, int *ch_remap, int dca_mask); diff --git a/libavcodec/dcaenc.c b/libavcodec/dcaenc.c index 884ac896d3..a3aae93dc9 100644 --- a/libavcodec/dcaenc.c +++ b/libavcodec/dcaenc.c @@ -163,15 +163,15 @@ static void subband_bufer_free(DCAEncContext *c) static int encode_init(AVCodecContext *avctx) { DCAEncContext *c = avctx->priv_data; - uint64_t layout = avctx->channel_layout; + AVChannelLayout layout = avctx->ch_layout; int i, j, k, min_frame_bits; int ret; if ((ret = subband_bufer_alloc(c)) < 0) return ret; - c->fullband_channels = c->channels = avctx->channels; - c->lfe_channel = (avctx->channels == 3 || avctx->channels == 6); + c->fullband_channels = c->channels = layout.nb_channels; + c->lfe_channel = (c->channels == 3 || c->channels == 6); c->band_interpolation = c->band_interpolation_tab[1]; c->band_spectrum = c->band_spectrum_tab[1]; c->worst_quantization_noise = -2047; @@ -181,19 +181,24 @@ static int encode_init(AVCodecContext *avctx) if (ff_dcaadpcm_init(&c->adpcm_ctx)) return AVERROR(ENOMEM); - if (!layout) { + if (layout.order == AV_CHANNEL_ORDER_UNSPEC) { av_log(avctx, AV_LOG_WARNING, "No channel layout specified. The " "encoder will guess the layout, but it " "might be incorrect.\n"); - layout = av_get_default_channel_layout(avctx->channels); + av_channel_layout_default(&layout, layout.nb_channels); } - switch (layout) { - case AV_CH_LAYOUT_MONO: c->channel_config = 0; break; - case AV_CH_LAYOUT_STEREO: c->channel_config = 2; break; - case AV_CH_LAYOUT_2_2: c->channel_config = 8; break; - case AV_CH_LAYOUT_5POINT0: c->channel_config = 9; break; - case AV_CH_LAYOUT_5POINT1: c->channel_config = 9; break; - default: + + if (!av_channel_layout_compare(&layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_MONO)) + c->channel_config = 0; + else if (!av_channel_layout_compare(&layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO)) + c->channel_config = 2; + else if (!av_channel_layout_compare(&layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_2_2)) + c->channel_config = 8; + else if (!av_channel_layout_compare(&layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_5POINT0)) + c->channel_config = 9; + else if (!av_channel_layout_compare(&layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_5POINT1)) + c->channel_config = 9; + else { av_log(avctx, AV_LOG_ERROR, "Unsupported channel layout!\n"); return AVERROR_PATCHWELCOME; } @@ -1248,12 +1253,22 @@ const AVCodec ff_dca_encoder = { .sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S32, AV_SAMPLE_FMT_NONE }, .supported_samplerates = sample_rates, +#if FF_API_OLD_CHANNEL_LAYOUT .channel_layouts = (const uint64_t[]) { AV_CH_LAYOUT_MONO, AV_CH_LAYOUT_STEREO, AV_CH_LAYOUT_2_2, AV_CH_LAYOUT_5POINT0, AV_CH_LAYOUT_5POINT1, 0 }, +#endif + .ch_layouts = (const AVChannelLayout[]){ + AV_CHANNEL_LAYOUT_MONO, + AV_CHANNEL_LAYOUT_STEREO, + AV_CHANNEL_LAYOUT_2_2, + AV_CHANNEL_LAYOUT_5POINT0, + AV_CHANNEL_LAYOUT_5POINT1, + { 0 }, + }, .defaults = defaults, .priv_class = &dcaenc_class, }; From patchwork Thu Jan 13 02:02:34 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33475 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp39300iog; Wed, 12 Jan 2022 18:37:08 -0800 (PST) X-Google-Smtp-Source: ABdhPJzV/1BAGgTUzK9aNORZzZvq9fq88s1T3LqBCNtMxQHPoN3yb5/j72sghPcPtefSMJFDSYeU X-Received: by 2002:a17:906:d184:: with SMTP id c4mr1925867ejz.20.1642041428679; Wed, 12 Jan 2022 18:37:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041428; cv=none; d=google.com; s=arc-20160816; b=p/A7MA3/Q0+EtSxvowwGGR7azrwyBCD9Asxsogjn7JdMEnB7spf8PhbslrIesfPuls NpVaZdxFkzHei/dkadZ5ZWqHvs8nvHqqr+tJe93P6D21lyiGT7whA7ZHzLRcsSb7sCT0 BkVCelAC1yGr3OnZFPDr5tpDHTKe8XU+DZkNxEVrTbtOZrzCgGDrL8uE6tdiCVrjaSZs PM6ZSLRb1+kCwxGpHAxd9SQ/WM0E5ZedcgNG7ScMVNPjRo0tb/3v6oYVj8KkNgZEcCAF 9Q/sIe1/fSM/TSBGgLaZhsyKtF/UhghLyatQMllTYvr4Bv/WPxmT3mCPC1V6QL3C4ax9 7/Zw== 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=9ginFy9Yv7cdwZPBMmh+42O87+HrRYKHpZZ//yg4gFQ=; b=FAgi58o2JyT2wBo3FSSkFhzFf5ZkHGW8kXKy8QGxR1p/lpydMKhD1lVwnTb7toJh0U MxI2GsxUvEEaJDNdU/e59CVc5MA/bcalIoy3Z/V/d9LUG3CPHEDwMn2MDFLFcBHkEnXC lL/cE1lu/mBCiNOL3XmACmrWg4jC8Is60SiV0C17Zoczkk50ErBHdExyjiOUZrHSvcTF I4xhtwPlLtwaHz3dAhJUUcla/ytw6Q4U5cesTl9gbZEJEqBkyULHaAkyCNAH/Z/wWO80 YchGZT78b38QraMWTTIexLyDf7eHa7xekAzd8FlgE0MGM/sJicKVLKotMtZIHoKY2W40 4Qpw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=a8rlA5Xx; 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 e3si799560ejs.167.2022.01.12.18.37.08; Wed, 12 Jan 2022 18:37:08 -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=a8rlA5Xx; 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 8855668B771; Thu, 13 Jan 2022 04:03:27 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f53.google.com (mail-qv1-f53.google.com [209.85.219.53]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5878968B744 for ; Thu, 13 Jan 2022 04:03:24 +0200 (EET) Received: by mail-qv1-f53.google.com with SMTP id q4so5105242qvh.9 for ; Wed, 12 Jan 2022 18:03:24 -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=JykrKsdHw3+XiRCHJcrYpdteHXVW8sP6mOttuwthLWA=; b=a8rlA5Xxk3FBDhFRfPsCGBImc4gVKVCkJa3tcv49l5CtznGzGLfJsYJ0JF7yFoIOU9 8KZFa2iGUPyIdeyfwGtww+j0lqCRCQEJhzqq7gRiYtXxYEcsfPPZRopVPO7k4yigse9S i7o7hJhBb7RNsu7R04OjaOWnJyQSX1qyu+ILhdja1xX4y2pW4DKM8Y4UgLQ/EdUeoT5y 7XkTLaQ+9S6J2ke9JbOXSHxwbSWj2I23i+aGYP3JUfG3i7N61TxIpncm5QN7krucMeUQ ho+tgrmPw+7Mox08QoFaLS9V6waNaUTZDTsjfeE/I6x3YAqL/eLKIWn2+G6Iby2+LgSS qLLA== 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=JykrKsdHw3+XiRCHJcrYpdteHXVW8sP6mOttuwthLWA=; b=Eh6EyB5W2xtrSc9osaD83myFXlfDJPRVNfwv2yzvo/Y5fShXvEYd3O41a1AbOc+Yil WzZmjVaqLiY4/UYDGetcQAlzOtTSbrLOPjlmdqMbu1759IzDTHNpnZza+ASLlrilPEqZ KzHK5uwqJMDAIkU/Mmsije8WQrcnwicpEEMIq9F/Hq08reRW3tYHU35P6F3iAYcA9Fpg HRCSUIFZuY0IgUY47325jI5wtqLmmEBKuGMnrkN37U+bcTJo7bOL0l8tL9xb8Lvz1/Br VYT4o6KWhKJJEySaajwEVfzrPeb0v16CxPTyh675s2fqn0Di9OHE1dSC5kegk5mZ6GvP ii4A== X-Gm-Message-State: AOAM531lfZo/jxS57iG8N7vaTHGREPEnID2pCwGQrgY4BKMP3R3Vos+o U+OCe0UXstRIa9KTyhWm8oUZrehVL6Q= X-Received: by 2002:a05:6214:5287:: with SMTP id kj7mr2273935qvb.38.1642039402813; Wed, 12 Jan 2022 18:03:22 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id v1sm1045961qtc.95.2022.01.12.18.03.21 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:03:22 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:02:34 -0300 Message-Id: <20220113020242.661-22-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 201/281] dolby_e: 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: cY6KzxJzGlyC From: Anton Khirnov Signed-off-by: James Almer --- libavcodec/dolby_e.c | 52 ++++++++++++++++++++++++++++++++----- libavcodec/dolby_e.h | 2 ++ libavcodec/dolby_e_parser.c | 11 +++++--- 3 files changed, 55 insertions(+), 10 deletions(-) diff --git a/libavcodec/dolby_e.c b/libavcodec/dolby_e.c index 6c0d54be4c..a9106a7632 100644 --- a/libavcodec/dolby_e.c +++ b/libavcodec/dolby_e.c @@ -23,6 +23,7 @@ #include "libavutil/thread.h" #include "libavutil/mem.h" #include "libavutil/mem_internal.h" +#include "libavutil/opt.h" #include "internal.h" #include "get_bits.h" @@ -39,6 +40,11 @@ #define MAX_MSTR_EXP 2 #define MAX_BIAS_EXP 50 +enum DBEOutputChannelOrder { + CHANNEL_ORDER_DEFAULT, + CHANNEL_ORDER_CODED, +}; + typedef struct DBEGroup { uint8_t nb_exponent; uint8_t nb_bias_exp[MAX_MSTR_EXP]; @@ -70,6 +76,7 @@ typedef struct DBEChannel { } DBEChannel; typedef struct DBEDecodeContext { + const AVClass *class; AVCodecContext *avctx; DBEContext dectx; @@ -1057,7 +1064,7 @@ static int filter_frame(DBEDecodeContext *s, AVFrame *frame) reorder = ch_reorder_4; else if (metadata->nb_channels == 6) reorder = ch_reorder_6; - else if (metadata->nb_programs == 1 && !(s->avctx->request_channel_layout & AV_CH_LAYOUT_NATIVE)) + else if (metadata->nb_programs == 1 && metadata->output_channel_order == CHANNEL_ORDER_DEFAULT) reorder = ch_reorder_8; else reorder = ch_reorder_n; @@ -1093,19 +1100,23 @@ static int dolby_e_decode_frame(AVCodecContext *avctx, void *data, s->metadata.multi_prog_warned = 1; } + av_channel_layout_uninit(&avctx->ch_layout); switch (s->metadata.nb_channels) { case 4: - avctx->channel_layout = AV_CH_LAYOUT_4POINT0; + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_4POINT0; break; case 6: - avctx->channel_layout = AV_CH_LAYOUT_5POINT1; + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_5POINT1; break; case 8: - avctx->channel_layout = AV_CH_LAYOUT_7POINT1; + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_7POINT1; + break; + default: + avctx->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + avctx->ch_layout.nb_channels = s->metadata.nb_channels; break; } - avctx->channels = s->metadata.nb_channels; avctx->sample_rate = s->metadata.sample_rate; avctx->sample_fmt = AV_SAMPLE_FMT_FLTP; @@ -1252,17 +1263,46 @@ static av_cold int dolby_e_init(AVCodecContext *avctx) if (!(s->fdsp = avpriv_float_dsp_alloc(0))) return AVERROR(ENOMEM); - s->dectx.metadata.multi_prog_warned = !!(avctx->request_channel_layout & AV_CH_LAYOUT_NATIVE); +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + if (avctx->request_channel_layout & AV_CH_LAYOUT_NATIVE) + s->dectx.metadata.output_channel_order = CHANNEL_ORDER_CODED; +FF_ENABLE_DEPRECATION_WARNINGS +#endif + + s->dectx.metadata.multi_prog_warned = s->dectx.metadata.output_channel_order == CHANNEL_ORDER_CODED; s->dectx.avctx = s->avctx = avctx; return 0; } +#define OFFSET(x) offsetof(DBEDecodeContext, x) +#define FLAGS (AV_OPT_FLAG_DECODING_PARAM | AV_OPT_FLAG_AUDIO_PARAM) +static const AVOption options[] = { + { "channel_order", "Order in which the channels are to be exported", + OFFSET(dectx.metadata.output_channel_order), AV_OPT_TYPE_INT, + { .i64 = CHANNEL_ORDER_DEFAULT }, 0, 1, FLAGS, "channel_order" }, + { "default", "normal libavcodec channel order", 0, AV_OPT_TYPE_CONST, + { .i64 = CHANNEL_ORDER_DEFAULT }, .flags = FLAGS, "channel_order" }, + { "coded", "order in which the channels are coded in the bitstream", + 0, AV_OPT_TYPE_CONST, { .i64 = CHANNEL_ORDER_CODED }, .flags = FLAGS, "channel_order" }, + + { NULL }, +}; + +static const AVClass dolby_e_decoder_class = { + .class_name = "Dolby E decoder", + .item_name = av_default_item_name, + .option = options, + .version = LIBAVUTIL_VERSION_INT, +}; + const AVCodec ff_dolby_e_decoder = { .name = "dolby_e", .long_name = NULL_IF_CONFIG_SMALL("Dolby E"), .type = AVMEDIA_TYPE_AUDIO, .id = AV_CODEC_ID_DOLBY_E, .priv_data_size = sizeof(DBEDecodeContext), + .priv_class = &dolby_e_decoder_class, .init = dolby_e_init, .decode = dolby_e_decode_frame, .close = dolby_e_close, diff --git a/libavcodec/dolby_e.h b/libavcodec/dolby_e.h index 9f0c065729..b2eadfea4a 100644 --- a/libavcodec/dolby_e.h +++ b/libavcodec/dolby_e.h @@ -59,6 +59,8 @@ typedef struct DolbyEHeaderInfo { */ int multi_prog_warned; + int output_channel_order; + int sample_rate; /** @} */ } DolbyEHeaderInfo; diff --git a/libavcodec/dolby_e_parser.c b/libavcodec/dolby_e_parser.c index 23bddd14f3..9f54627356 100644 --- a/libavcodec/dolby_e_parser.c +++ b/libavcodec/dolby_e_parser.c @@ -42,17 +42,20 @@ static int dolby_e_parse(AVCodecParserContext *s2, AVCodecContext *avctx, s2->duration = FRAME_SAMPLES; switch (s->metadata.nb_channels) { case 4: - avctx->channel_layout = AV_CH_LAYOUT_4POINT0; + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_4POINT0; break; case 6: - avctx->channel_layout = AV_CH_LAYOUT_5POINT1; + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_5POINT1; break; case 8: - avctx->channel_layout = AV_CH_LAYOUT_7POINT1; + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_7POINT1; + break; + default: + avctx->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + avctx->ch_layout.nb_channels = s->metadata.nb_channels; break; } - avctx->channels = s->metadata.nb_channels; avctx->sample_rate = s->metadata.sample_rate; avctx->sample_fmt = AV_SAMPLE_FMT_FLTP; From patchwork Thu Jan 13 02:02:35 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33476 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp39383iog; Wed, 12 Jan 2022 18:37:19 -0800 (PST) X-Google-Smtp-Source: ABdhPJyOg2P2sOhymy5igkvfhh80atuK7frKIkqOcDQLN9UNBr8cWLma2UrzDPI4qif5YMYE2uhO X-Received: by 2002:a17:907:6ea2:: with SMTP id sh34mr1938282ejc.509.1642041438818; Wed, 12 Jan 2022 18:37:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041438; cv=none; d=google.com; s=arc-20160816; b=0ngNjh5IsRF/tOjDQ9rFRBi2BpBTcCQ+pGB+ql+Yi5guw2U1BPP/rnf43d6t7oZB9c wwNu3OtzlVyGZ7OfGpReZC6P3qm4gNZpbrepexyEv5y6W5VprWZQYYAbawhqC895wdcV j7Hy7YMpsJdeiKqxQeSWSRkYoPXshZY9ks3HJTldz+Dz4hh21jtkh0ZcmcKH0Xhjnk2+ pSH/K66HLZN5XsG3CXrcFv9/JajhaX48fcrF3o8nQUqtQZX02yI2MPUK2HuiS25tqWcS 7GjGDrd5BJRCHIcjHZ0cNXVouLrPqDp0bD5kfUC4gTXs9HSc/dLO3ksW0NwoiyeX/pw4 tS9Q== 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=exNaqynGxCtgagZqtngf8CPmDbWqGSK4kpBDSN8GJKQ=; b=rFMsr3ASt61qfT/Hmc6J5h26V785sNEs8OtFU3ybAUOzJZ7cenZ+0MiTVtZB49S0e2 lbndvbp1D91i2Dt1SgGVW/NjaS2XHiLR3540U2HVi0p4qKF+RCCrDUNfXlKyLgGhQ722 PU8zSFwijndm5lvoXjU6/NQzYxyvszsUC0MALnLViD6aMuKHLLjfFIaznI6WPOX72nxP LIcNXQSfI40Ww2lDmByqPEkrcCR93l96WLLYdWlAgLSM9uBYMHFjGNSqHf/vDAQDVsEp LGSTseSWgsftJMOCdBtfRkstTsl1qvN+mBAy2eTlNEfYRwLxZWShCjlvmrrDqr1F44oZ Hi1Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=q4KkqX3P; 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 i9si754822ejz.292.2022.01.12.18.37.18; Wed, 12 Jan 2022 18:37:18 -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=q4KkqX3P; 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 6C1BE68B741; Thu, 13 Jan 2022 04:03:28 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f42.google.com (mail-qv1-f42.google.com [209.85.219.42]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6ADC968B755 for ; Thu, 13 Jan 2022 04:03:25 +0200 (EET) Received: by mail-qv1-f42.google.com with SMTP id jr5so5075295qvb.11 for ; Wed, 12 Jan 2022 18:03:25 -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=Gx9C5lkZ/lPr1w8+5YRmueEFLTUc5d0SE5FRWaXArX8=; b=q4KkqX3PpqDYx4JvNa9HeI/b5j72tAU1s0yn5QelqdkN2mdWkSV4yYrxQp8zLZsuNn FK+RqDiuIk4bp486GLeZcKRg0ip9WHSvWnJOb1yMysO+G6TNblrOZLyDB2+cSX57227x h3vFKSLhPUx3jt+87kMpM0Sbi8OofxhPRKsQH/oD80Di32sNocHA3zZtaGhl/l0peE0F zqbrr0kryNKJ/bun7OolznXmg8jR0Ulrj6GTEcCTOfs3rXAxDKIXTlzwfUyyzsgtkgsH 99xxKS7atZTqxF/bAUGo69WLkU+xoVlpSSjBGRn3zu2cMR4zr56ybK8cWZQmquLOVyGn Wa1A== 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=Gx9C5lkZ/lPr1w8+5YRmueEFLTUc5d0SE5FRWaXArX8=; b=5VfvX2K/dPHCRifmAlY+pqdwIeHJX9Ilc7f3+tNGxQZpkPV+qTPIZYF1igpnBNWNPw CidXLlMfoOv2aspP1u3T3lQgwA3WnH1fuCBSDQM66xUQcdAAzz8otTYopZqJlL1i3CVD c/kavmO1gXAkJ1yjEThtp/a4GVgNqg3F08vSB2hgDl7IPG30alFyN81M9YbeKEAXCDbH UKs1aH0u7xK/Vs9ID6XIV9gS06m71Lzn1nX7eZ1CUdxku8/OsaRiLTUaBGCCzIC+8M8G zXVEEzMk4Cz1LT0iIumWuuam0isTQxWKXy9BsXoYrsEarpXljpHI1iOEMDlM6SESGJxK uDXQ== X-Gm-Message-State: AOAM533X0+9OrNcoVYMfXN7y2hRmPVuIiSenYWfbAVNSyZvc9r26c2N3 fzZy97iXGitPigXHEN6VWoaosZOF2tU= X-Received: by 2002:a05:6214:300b:: with SMTP id ke11mr2368382qvb.8.1642039404050; Wed, 12 Jan 2022 18:03:24 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id v1sm1045961qtc.95.2022.01.12.18.03.23 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:03:23 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:02:35 -0300 Message-Id: <20220113020242.661-23-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 202/281] dpcm: 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: KoHgO5BYxJKV From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavcodec/dpcm.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/libavcodec/dpcm.c b/libavcodec/dpcm.c index d9ea23adb3..95052282ae 100644 --- a/libavcodec/dpcm.c +++ b/libavcodec/dpcm.c @@ -132,7 +132,7 @@ static av_cold int dpcm_decode_init(AVCodecContext *avctx) DPCMContext *s = avctx->priv_data; int i; - if (avctx->channels < 1 || avctx->channels > 2) { + if (avctx->ch_layout.nb_channels < 1 || avctx->ch_layout.nb_channels > 2) { av_log(avctx, AV_LOG_ERROR, "invalid number of channels\n"); return AVERROR(EINVAL); } @@ -215,7 +215,7 @@ static int dpcm_decode_frame(AVCodecContext *avctx, void *data, int out = 0, ret; int predictor[2]; int ch = 0; - int stereo = avctx->channels - 1; + int stereo = avctx->ch_layout.nb_channels - 1; int16_t *output_samples, *samples_end; GetByteContext gb; @@ -229,10 +229,10 @@ static int dpcm_decode_frame(AVCodecContext *avctx, void *data, out = buf_size - 8; break; case AV_CODEC_ID_INTERPLAY_DPCM: - out = buf_size - 6 - avctx->channels; + out = buf_size - 6 - avctx->ch_layout.nb_channels; break; case AV_CODEC_ID_XAN_DPCM: - out = buf_size - 2 * avctx->channels; + out = buf_size - 2 * avctx->ch_layout.nb_channels; break; case AV_CODEC_ID_SOL_DPCM: if (avctx->codec_tag != 3) @@ -250,12 +250,12 @@ static int dpcm_decode_frame(AVCodecContext *avctx, void *data, av_log(avctx, AV_LOG_ERROR, "packet is too small\n"); return AVERROR(EINVAL); } - if (out % avctx->channels) { + if (out % avctx->ch_layout.nb_channels) { av_log(avctx, AV_LOG_WARNING, "channels have differing number of samples\n"); } /* get output buffer */ - frame->nb_samples = (out + avctx->channels - 1) / avctx->channels; + frame->nb_samples = (out + avctx->ch_layout.nb_channels - 1) / avctx->ch_layout.nb_channels; if ((ret = ff_get_buffer(avctx, frame, 0)) < 0) return ret; output_samples = (int16_t *)frame->data[0]; @@ -287,7 +287,7 @@ static int dpcm_decode_frame(AVCodecContext *avctx, void *data, case AV_CODEC_ID_INTERPLAY_DPCM: bytestream2_skipu(&gb, 6); /* skip over the stream mask and stream length */ - for (ch = 0; ch < avctx->channels; ch++) { + for (ch = 0; ch < avctx->ch_layout.nb_channels; ch++) { predictor[ch] = sign_extend(bytestream2_get_le16u(&gb), 16); *output_samples++ = predictor[ch]; } @@ -307,7 +307,7 @@ static int dpcm_decode_frame(AVCodecContext *avctx, void *data, { int shift[2] = { 4, 4 }; - for (ch = 0; ch < avctx->channels; ch++) + for (ch = 0; ch < avctx->ch_layout.nb_channels; ch++) predictor[ch] = sign_extend(bytestream2_get_le16u(&gb), 16); ch = 0; From patchwork Thu Jan 13 02:02:36 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33477 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp39471iog; Wed, 12 Jan 2022 18:37:29 -0800 (PST) X-Google-Smtp-Source: ABdhPJwk+EOsHP0ux1NIPO9P1/Y4BO0oAQN1F2FA2Bpq/IutXNm7u3eaJ3k05T2VWh7jSF/RWtK1 X-Received: by 2002:aa7:d28e:: with SMTP id w14mr2354210edq.53.1642041449496; Wed, 12 Jan 2022 18:37:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041449; cv=none; d=google.com; s=arc-20160816; b=wrWrxfuc/bnLKXeQjk+4vnoBPs+tObtETLhLsqMsO9UpGGMBsvoViJpwH6IGX97bno Snc48qjI0yBxufQQ0d4gFYfnGLx5hKflbftknFJOM31Z995Nz/y9UjBH5/raOx49q95v lXV7Iwe7LzvNrNrAgNRwYyGtY2OschMJmWZ88qzqDUPYRESwjlillBtcI1Fpg+zL+Ioz 4R4HndgRnO7voPyHwiVbyXekPuD997FCEgDpfauaUFnUI63uzyZZh6bEAgpKinMyTdDb RRfVmMvLE7ddDP3THqxRbMFxCzyYZM7R02Wg+xUKH5HC01at03E8VJlncrXpIOd0fUX3 kf4g== 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=Q1JdhEMQH3KsJl05IdOKYkE/z/2TTajvs3vfPi+M7YQ=; b=Ssg5RxUln2zHvHjzAP9ftFhTBkkpc3nYJWonGhYmoKf0GDxM8eVKeTofR6Lm6Zja4d Nh6A9hq5JSJFcp4rCZNJSj6Nktk2qPt3u/TRKEavdXTIxfunhTEU417mcRlEWwcLCL0R akzlyqddqQO6MwxAApN8BspTp+JYUkEG6+1byDdNLmSKg5MdTaYWD/BQmBMqMyXsi2iH msAZp7WJizhTF+t5sy2nMhC6CHwbFDDJYjF6B8L6xUlURhMf6VSOYT8+z1gvL73ApAuS sDL7rJAub5ZXZYxaCN9DXmfNvZMNqmKZG0hMuumg2IYe6mQuxRE6INsiNgz8tkHhhVJl 7Now== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=kBOUF2EK; 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 b6si897073ejb.326.2022.01.12.18.37.29; Wed, 12 Jan 2022 18:37:29 -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=kBOUF2EK; 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 439C668B787; Thu, 13 Jan 2022 04:03:29 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f180.google.com (mail-qt1-f180.google.com [209.85.160.180]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A083D68A78A for ; Thu, 13 Jan 2022 04:03:26 +0200 (EET) Received: by mail-qt1-f180.google.com with SMTP id h15so978941qtx.0 for ; Wed, 12 Jan 2022 18:03:26 -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=ck6pBAM5yWhUE26TdJ0jsFthDnQYqHO1Y0H/iaOLCkg=; b=kBOUF2EKiis9JazD/ZfzrUys44LEawZlHX7mu7vMKFSdQwxOhRb2ssjGdc6x19Npp3 WwORV0schj8JP0jEyt4ZiuZwahf8cj49D0GxfZMqXf5efRfuXt8DphC2T9SAP4pk5gRe O+wpaVvPG9AQJgTRqMDhFqOJmtVfkW8/pLnwrBml4hgvcHv1FY9tdjXV1thJ7c5HOz86 2k7KwNmMLcg6EUNqtP9ln62UbPagUt1zEBs7BTdUQa+qMN5PNDsyWQbueFuwzY0bxkFi v4OY9hn/T3tXedQfjIaKuwAAiCDnlkNqd736XWhWScnwYMOdv48nz8pkNY+biJwqHdfx K2MA== 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=ck6pBAM5yWhUE26TdJ0jsFthDnQYqHO1Y0H/iaOLCkg=; b=tcDVMD5d/zAwTxvp164dyn7QlUWKJWS4H4Ic4VrfzrQkSFkYqw1W/BsjCc1UribphC 7BUaTdgvIv7wJ6/mwDkZR3sC0cNAevmbiOg54mhjZBCUT3yrxCdyrVIv+vcp9UHsbXAm cP9016cso5AGIUJAFAKIOt4ao9f3J5gXzu7LMJBGfevX4F9Udyjr7h1kyD48EYXrVWcR 9afWEDFJr4yOUx7lZv4IYAHrzTtcy4k8G6OOAVLglq+Rg+r8c9kGvpifkt88K6/TQNHM tu24hI6Sb7kFx0UYfhzW9sZ9z76LvkHSnghgi6RatwL5VJEFM8dvR8Xi1iq6o+3n23gT 13tg== X-Gm-Message-State: AOAM531xLLpTCpJ7BBE7AkAwBid+WFYo8/y7Xiad8mFKyC6F5ALO3nMx TaurQPte7B49XHogCzV7uoieLCWLyJc= X-Received: by 2002:ac8:5781:: with SMTP id v1mr2036230qta.4.1642039405228; Wed, 12 Jan 2022 18:03:25 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id v1sm1045961qtc.95.2022.01.12.18.03.24 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:03:24 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:02:36 -0300 Message-Id: <20220113020242.661-24-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 203/281] dsd: 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: 49s3INIW1OUE From: Anton Khirnov Signed-off-by: James Almer --- libavcodec/dsddec.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/libavcodec/dsddec.c b/libavcodec/dsddec.c index 19fb75ee85..02698ee116 100644 --- a/libavcodec/dsddec.c +++ b/libavcodec/dsddec.c @@ -44,17 +44,17 @@ static av_cold int decode_init(AVCodecContext *avctx) int i; uint8_t silence; - if (!avctx->channels) + if (!avctx->ch_layout.nb_channels) return AVERROR_INVALIDDATA; ff_init_dsd_data(); - s = av_malloc_array(sizeof(DSDContext), avctx->channels); + s = av_malloc_array(sizeof(DSDContext), avctx->ch_layout.nb_channels); if (!s) return AVERROR(ENOMEM); silence = avctx->codec_id == AV_CODEC_ID_DSD_LSBF || avctx->codec_id == AV_CODEC_ID_DSD_LSBF_PLANAR ? DSD_SILENCE_REVERSED : DSD_SILENCE; - for (i = 0; i < avctx->channels; i++) { + for (i = 0; i < avctx->ch_layout.nb_channels; i++) { s[i].pos = 0; memset(s[i].buf, silence, sizeof(s[i].buf)); } @@ -84,7 +84,7 @@ static int dsd_channel(AVCodecContext *avctx, void *tdata, int j, int threadnr) src_stride = 1; } else { src_next = 1; - src_stride = avctx->channels; + src_stride = avctx->ch_layout.nb_channels; } ff_dsd2pcm_translate(&s[j], frame->nb_samples, lsbf, @@ -101,17 +101,17 @@ static int decode_frame(AVCodecContext *avctx, void *data, AVFrame *frame = data; int ret; - frame->nb_samples = avpkt->size / avctx->channels; + frame->nb_samples = avpkt->size / avctx->ch_layout.nb_channels; if ((ret = ff_get_buffer(avctx, frame, 0)) < 0) return ret; td.frame = frame; td.avpkt = avpkt; - avctx->execute2(avctx, dsd_channel, &td, NULL, avctx->channels); + avctx->execute2(avctx, dsd_channel, &td, NULL, avctx->ch_layout.nb_channels); *got_frame_ptr = 1; - return frame->nb_samples * avctx->channels; + return frame->nb_samples * avctx->ch_layout.nb_channels; } #define DSD_DECODER(id_, name_, long_name_) \ From patchwork Thu Jan 13 02:02:37 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33478 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp39579iog; Wed, 12 Jan 2022 18:37:40 -0800 (PST) X-Google-Smtp-Source: ABdhPJwbulnzgN5wXNLEnV0Dbm8KvaOGQOSQUlPDvVp5v3J6CB685ido9DUCG5PKaCFkAvdFiFsi X-Received: by 2002:a05:6402:13d4:: with SMTP id a20mr342133edx.233.1642041460439; Wed, 12 Jan 2022 18:37:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041460; cv=none; d=google.com; s=arc-20160816; b=GZLihsGf++qrNtpE3GXf4MnDyA1Q3fEqS3g4PSF/jVHlTtIE623fkC3z/zOu20EMTg UJVveDeiPsqf0ISQXCBMFm7LJ4OyRu2DxoCV/qSXKjGWTPLNQ/kbsVTKLGs2jAYhtON8 Rq3+L4/dU+K8cFJnqBRBULOCaO3ZvFUxcT0MlEP4+JurdqRPGtjA7yHZ3uXsiKmM1Or7 t3lw0D4uh/xheI+F+6VnMORJAiAiMdU+gqk8ZzFeRZbEs3w2L2i4rxHBmwOFNtOQCfW6 PlxcJ6MaIHcx74KNSNuDG/J3UljUAeswmgvZyKNJAYnS9xr4G3bBeCu8Fl9/b4aTtrhU c+uQ== 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=1YdOZ68MuOZVaEQuNqbwBYgOXrC2Qfh/oR9IqgoTsUE=; b=c5NChzGPZTmWAvna/xTrLRMouxzZOb9fRFmmUUkQS5WoHtxIFwjGjUhhaSBTxRK/Eg acsXrEogoApejthdg0bd9Xs1qHhgzXZLPnn+rEX5h/GBoyVokzw4xt150uR9KnZK8dyf PjLJOO4zzH+nLsJKrX+v/zXBl2nTtgYpWXNtByMiEMeji0FnOIKvD8igp5WaKjbLBlAS csYH70Sq+sP6/dnoIq+3LtBs0gxzQU9dQTgBgIUcihi69tJjZQyIieXRAtm299+ZaR1m pI9Gj7AFksIrMxNNnkKv6a5EhF682a3wavJ1iaDqr9c2vlQkOsg7R3Pq16s4p1tS8+ut rYjQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=mJ48Zjz0; 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 a24si832300edv.289.2022.01.12.18.37.40; Wed, 12 Jan 2022 18:37:40 -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=mJ48Zjz0; 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 3789368B793; Thu, 13 Jan 2022 04:03:30 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f41.google.com (mail-qv1-f41.google.com [209.85.219.41]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C2B3968B773 for ; Thu, 13 Jan 2022 04:03:27 +0200 (EET) Received: by mail-qv1-f41.google.com with SMTP id q4so5105367qvh.9 for ; Wed, 12 Jan 2022 18:03:27 -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=Ilud+C9w4INqAVqOiRel9nrbhVHxbZ5UgCgI3mJVG0M=; b=mJ48Zjz0GXRocIy1nvdj50q7KFQ7DcJrmzGIcI3C4YgSm0sr71F97uyEQqgYbOLrMD r0i0sVVZuKnbAvfznIfi/3Ki+N4YiwIJ2J9zijUmAXlLduEuT1waw5744Zfc5JfgVT7R 2W7ITU94wQAXxgZWLKUjC3IR1zT/6cIr+8b3X3U8Xfyydsdj5B6QfXRf861jiPiaoJO2 vl2zjE8XQflR8lH9LwOdF06seDVxQ8X+IkY9PaT0ejYGO/O5pgfpo5viBsTalxxL1XNn BjHxu1519JJpK7/0PYcqWyVB5dN2oOidhH9mbD4wfpw7m2NdzHAKX3jhue+MIkbiRkoH 5Icg== 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=Ilud+C9w4INqAVqOiRel9nrbhVHxbZ5UgCgI3mJVG0M=; b=s0paIIlCHDcuJ3H4JY3IeXbmJyL9hUuwuciS40yeRNIKP+7YXt2ZgjnYhJZ7qti0sf 1pqOaqUhEbWu0hw8UUmVHQcphSKMqUeEVkw7XakKHvbXaC3c5vEKjfcgIIlsnELDbsPB wRn8p1DN3FUyF4BH/KJ30D1h+foDSqEDNKeabAlu2K9JeWcZx+dZAM1eG8vYvIlqqrML nAK3H35uFPmKIqc3R/M+oO3ohdjoW3b06bkdJYJ6V0QnUtoWyoC9BNi+sM+5AyY0wycU tQLgnSfoojdSC5B8XU3HTqsMj+FrR9eNJmg2IU70tQ+i/WMFSpdAoI48o3CSnxOONyyx uCGg== X-Gm-Message-State: AOAM532Kn5GUZwn+52tOBINjcMuks9BwhXYtac0ZaWnAJIMtC+uMpVHy pKKoqit6GnF2YlfIK83bZKJTeAGHJiw= X-Received: by 2002:a05:6214:e67:: with SMTP id jz7mr2452032qvb.85.1642039406419; Wed, 12 Jan 2022 18:03:26 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id v1sm1045961qtc.95.2022.01.12.18.03.25 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:03:26 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:02:37 -0300 Message-Id: <20220113020242.661-25-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 204/281] dsicinav: 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: B65DeNO3jxLI From: Anton Khirnov Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavcodec/dsicinaudio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/dsicinaudio.c b/libavcodec/dsicinaudio.c index 39869ac0cd..a543f6dd09 100644 --- a/libavcodec/dsicinaudio.c +++ b/libavcodec/dsicinaudio.c @@ -80,8 +80,8 @@ static av_cold int cinaudio_decode_init(AVCodecContext *avctx) cin->initial_decode_frame = 1; cin->delta = 0; avctx->sample_fmt = AV_SAMPLE_FMT_S16; - avctx->channels = 1; - avctx->channel_layout = AV_CH_LAYOUT_MONO; + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; return 0; } From patchwork Thu Jan 13 02:02:38 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33479 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp39689iog; Wed, 12 Jan 2022 18:37:52 -0800 (PST) X-Google-Smtp-Source: ABdhPJzewuC+amyEag0Kdycjg4FHypgbVHu0Wo10fpcdwf8ldGkU6QSLUCdSjGkSqUZfb5nofeH/ X-Received: by 2002:a05:6402:42ce:: with SMTP id i14mr2339510edc.289.1642041471949; Wed, 12 Jan 2022 18:37:51 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041471; cv=none; d=google.com; s=arc-20160816; b=EGSZQS3B8RJzpgn19kGaIB21NX4x6FkTo4IwkDwX3c+/6AWnzsxwypaLdhML7D9Y80 tnw7cF4Yp9s+941zhEMtwemAmojucH90l8P33DaJiHhi2lUKcLbgbnLA/pU2isFYfhMU XgYdjgzvKiXItUZH02/PNfn5bLJxmKpm48GXMoIb+q8TdVDi5i1lEA8cdj7QwYfU2p86 PKFdT8xKN6ZkE3tIPBiaMi7foWulOhMjjmK2TZFeRMMaookEEPYlbKFyhsgGqMHh047M lRIkh55TIN67z1/Y3YVpexbyouP7c9QxQU7szESs96SnnSYVP5M8hfX9ZxEwpk2STy+d Zc/w== 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=w205WAloz7btDIqTCPEQ5Y/Jk2iqdcVyqd3NY7eAhSc=; b=e+u7l2WFLCn2Ns668/qAkaEMlpr6PR03vSIYlovLVvZQkGXuDHRVGimABwz0wwamBt xYH+AXoWjfMtHnGyZ5jByC8AtgwUcHEPTGX4BSAPbAbYQHuyqKzYlituyFaNWgyB16QL Lx8jD+DuujBhPYNZvcT+BcNwVEGNlV0jUQJT+6qkVQOqfS46M8MAoBPvAt+LWK4r8xn1 zFx/xHfEOWGVct/gzwFao0/pSRrfeSCTqK9pEI7bAt3lOa/KYRMIvmTNKpGWNVI7NaNV oSVqxMbFXPeiZRW5ZtHVkMXLxuBjum+f4AqVt9Pdj+V9iJtklujDqwl2cX9fBMAn/J7V 167A== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=fFWlJajB; 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 hd11si819317ejc.1005.2022.01.12.18.37.51; Wed, 12 Jan 2022 18:37:51 -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=fFWlJajB; 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 2C9A068B79F; Thu, 13 Jan 2022 04:03:31 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f48.google.com (mail-qv1-f48.google.com [209.85.219.48]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 26A2D68B787 for ; Thu, 13 Jan 2022 04:03:28 +0200 (EET) Received: by mail-qv1-f48.google.com with SMTP id jr5so5075402qvb.11 for ; Wed, 12 Jan 2022 18:03:28 -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=uaDCgeknhlHZP7G1cdife0XugUXmWt9Tbn9Fj785S0I=; b=fFWlJajBiz26JLM8I43F3iaqxbg2OYBIlXCwLVUdGzcR74s/yu+U3uUTWt/AE8HH4Z Vez/g7uf5lRNpj9c+NTFPPTVkpqBwiQ6QNwR3Fve0GPssya8VKLXn2b0bKL8S/8wQafk LPQaQ+TCYJEFmDAb1CxgTqJg2jOmn0zLM/M0kztjaQoXowSYqTk9uRroUhnfgzmd0L/V hbO6TkezugyTZ20wLwRnKsi/eQHzhIn258g2xS7i1YFehboeL+oYbxNIlTjJUnVaOUce d1aTLVcZVmXfvFb4U6TpLPKjwv0iNXITd4PiWCN6ajZuBJs6OQiq6h8B4+umomd6VGXI cfcA== 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=uaDCgeknhlHZP7G1cdife0XugUXmWt9Tbn9Fj785S0I=; b=T+zbOO7q0x3qoe4fV0+V4tj+v1x12vn/Ku2vCAmlYiiLKu0fUbL1OTyEKDI1orI8QG eCIucUCWyHx/cx9rl1ODBQvrv6HnD4vJfk4lieJrrSdhMrmOJh4tYpVOy+cT8jhX+XPF zFyTjHCGlO5nsy3L3D3RrCYh52hkZQIYNIeWapcX8SOJvMf0PQWkYlahh3BtuT/KNa2z yn2goGPPuJEj8UucZlePxaWucf7TxvLgMkGy2RgDawN4uT3m+93LktdA6nbCGKOKSw6G nMl+e5IfIB8oS7ieOV5yhk6qscjTkRaiHxnBFPyidHV9dwgnFE2Hd52nnTcos2m17NWl 0w7g== X-Gm-Message-State: AOAM533BGDX73OxF5nedIJ7bCxTyayRRfSdJRSNJQeFgIE/FaqHarw4z wWTl2TDUtNxy2ssiC2eNtCYSZWrxkFg= X-Received: by 2002:a05:6214:2386:: with SMTP id fw6mr2309541qvb.79.1642039407592; Wed, 12 Jan 2022 18:03:27 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id v1sm1045961qtc.95.2022.01.12.18.03.26 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:03:27 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:02:38 -0300 Message-Id: <20220113020242.661-26-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 205/281] dss_sp: 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: JKz9YEeha8a4 From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavcodec/dss_sp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/dss_sp.c b/libavcodec/dss_sp.c index 050b412496..c8da3bffaf 100644 --- a/libavcodec/dss_sp.c +++ b/libavcodec/dss_sp.c @@ -290,10 +290,10 @@ static const int32_t dss_sp_sinc[67] = { static av_cold int dss_sp_decode_init(AVCodecContext *avctx) { DssSpContext *p = avctx->priv_data; - avctx->channel_layout = AV_CH_LAYOUT_MONO; avctx->sample_fmt = AV_SAMPLE_FMT_S16; - avctx->channels = 1; avctx->sample_rate = 11025; + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; p->pulse_dec_mode = 1; p->avctx = avctx; From patchwork Thu Jan 13 02:02:39 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33480 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp39764iog; Wed, 12 Jan 2022 18:38:03 -0800 (PST) X-Google-Smtp-Source: ABdhPJw88a7pWlF1S9kHD6RCtCAEbJbinhQeRIKGYDSN2WTSedFWC0Trgu6TgO/VUwIO6nOYj7vs X-Received: by 2002:a17:907:6095:: with SMTP id ht21mr1917161ejc.625.1642041483624; Wed, 12 Jan 2022 18:38:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041483; cv=none; d=google.com; s=arc-20160816; b=AxmUOa3NrjppIoGbUD9cdY2EuwSzar5o8Frw4PIUwIwYFCJgqo2i3YA23e2rsCxHpC AMEjAkE9r0/Xo36qXVTYdNJgm3YbW25/+OsD6YcdnFS1p6GkTByM3g/TR9MRp110Xk6/ lV0BByBRBqIKnzOeAr3JdGJimBZk7N+O6kaukZtYkneEX4O2wswzPd21C6Bms1OzPVvJ RUxtu2MLeoFlWI6JBEtqJaDlH7ZxPqvH0yrLZUphGRfwWCjiTCHnkEFfjUe+/VFnKMo7 5Z3AamOys3shM++de5YamCKeIxLYIxOCi+s09AADRx5JXdmq0t+hW++dsjY7qPu0+jB3 u3Fg== 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=JTjg+AKUJWu1US37BwZvFJSjtMVki6im9f6whug4cA0=; b=S9pjuj0qyYr27k5M9sAk144RIALidohan8yOp/U38t6HxNGNllUkjVm7Ofe2osoJdB OoYXlEMOuRNzaV7t6HYOe21pGYqgI0+84rYps5RBZIxWRbYVS/Kb1Lln8jxqRZOeVX6n VcbJAul9oKvONAIv0VbX26803PK2PJDvEY4g5wOjhUyx/2rfbbQMNFY5sKHbsBkUW5UT LMcVtCMpeGgc4AXWH8acfo8KxEAwMBEZHOpGCMMQqUvfuAzJQ+Li0ruv1Y22rayD6MS7 R+lZzXsVz1Xzc6+IvywwyMkG7WigBH3/rJn1ixMU0UCqKAHtStTAvkkZRPSYPcB3Yu6a AaNw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=K0oHccjU; 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 r12si944466edd.74.2022.01.12.18.38.03; Wed, 12 Jan 2022 18:38:03 -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=K0oHccjU; 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 0502068B7A4; Thu, 13 Jan 2022 04:03:34 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f169.google.com (mail-qt1-f169.google.com [209.85.160.169]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2DC5568B792 for ; Thu, 13 Jan 2022 04:03:30 +0200 (EET) Received: by mail-qt1-f169.google.com with SMTP id c19so5362330qtx.3 for ; Wed, 12 Jan 2022 18:03:30 -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=bnWIX9DkapmTKwjBu1bI8Y3Ju0X74Vx1ZlN+F115FKc=; b=K0oHccjUo94r8dLRPq/VXIiDjRlkYYRgRFiIJWA8N/IlrNYia7TJxb2KYTaKq4G3Ws Q+5Xd7k9JiC3H+PvzyPdD12vBFvJDj/87z6V8wM2uANvYIxM8ZuNd3mPW1319baO5ckQ JTac0WdKTTWjFkTamuZiYogWUEQ/zRM2msiHcQ1OcNEIlm5jQCkgFttBsOrvPMbhxO9G rGCyeHUa0ervdsKuur4RmkOgcZlt5OvSP0b57V+KSAs9wJ4hPgjIHEq0s2a5hFpWSlkk 3GGckKQuOWUF2ozrlNURZqKNDmaYBBOXgeevbBB5hAwPCx1cGIpADrwZ8f+kVjntArEF K0qw== 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=bnWIX9DkapmTKwjBu1bI8Y3Ju0X74Vx1ZlN+F115FKc=; b=htvxTsKquHdSkR/lF3QplSM4ijKhBAz18PwPALgg6R6dSCeDmfaLNK7C5nQlKZlnOK lcHxfWIif8ofUIS8J150CJCdvM7uuaqmfU0nTAncDoWMZ4ODYRmnFqjuYGfaoEq2GpAI M12a2RRvN7LoLqz+IxyF8FZ6s9FVCKghSOaUtZSwBSlfSam53hEaGT0COH7jeeJvEMw4 OoPCfnoiliF/lFQqD4PixL0SzKB62SFwia8F/OjrSkWPw5e96Z4Pbu46hx3SmOQCvtOj 1UYYpLVpPmigIbEZM3+7ixPXCp8bHdXBWqgOS8TG/frcT0nrNCpFrjBdrZHT8eprk7l6 gQlA== X-Gm-Message-State: AOAM531XSPM1CyWlYVJiC9XC6TqZ0ER9C/lT3DxxaHi78xmkXHzkFGFG f2Jt7t+KnAaSQwWeyMIb67vUMOlQ3w8= X-Received: by 2002:a05:622a:489:: with SMTP id p9mr2001336qtx.343.1642039408778; Wed, 12 Jan 2022 18:03:28 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id v1sm1045961qtc.95.2022.01.12.18.03.27 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:03:28 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:02:39 -0300 Message-Id: <20220113020242.661-27-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 206/281] dst: 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: +HUMXmsTBM+r From: Anton Khirnov Signed-off-by: James Almer --- libavcodec/dstdec.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libavcodec/dstdec.c b/libavcodec/dstdec.c index 6d0b25f4c3..78427bd15c 100644 --- a/libavcodec/dstdec.c +++ b/libavcodec/dstdec.c @@ -80,8 +80,8 @@ static av_cold int decode_init(AVCodecContext *avctx) DSTContext *s = avctx->priv_data; int i; - if (avctx->channels > DST_MAX_CHANNELS) { - avpriv_request_sample(avctx, "Channel count %d", avctx->channels); + if (avctx->ch_layout.nb_channels > DST_MAX_CHANNELS) { + avpriv_request_sample(avctx, "Channel count %d", avctx->ch_layout.nb_channels); return AVERROR_PATCHWELCOME; } @@ -97,7 +97,7 @@ static av_cold int decode_init(AVCodecContext *avctx) avctx->sample_fmt = AV_SAMPLE_FMT_FLT; - for (i = 0; i < avctx->channels; i++) + for (i = 0; i < avctx->ch_layout.nb_channels; i++) memset(s->dsdctx[i].buf, 0x69, sizeof(s->dsdctx[i].buf)); ff_init_dsd_data(); @@ -243,7 +243,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, unsigned map_ch_to_pelem[DST_MAX_CHANNELS]; unsigned i, ch, same_map, dst_x_bit; unsigned half_prob[DST_MAX_CHANNELS]; - const int channels = avctx->channels; + const int channels = avctx->ch_layout.nb_channels; DSTContext *s = avctx->priv_data; GetBitContext *gb = &s->gb; ArithCoder *ac = &s->ac; From patchwork Thu Jan 13 02:02:40 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33481 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp39856iog; Wed, 12 Jan 2022 18:38:15 -0800 (PST) X-Google-Smtp-Source: ABdhPJxihkkDWuAPHZdlON+8SIIL8Q37ZEDtWWTgXg/2UZ4P0NnwBM5A+x0VYcqo+vkW6nokykOa X-Received: by 2002:a50:cf4e:: with SMTP id d14mr2330706edk.2.1642041495758; Wed, 12 Jan 2022 18:38:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041495; cv=none; d=google.com; s=arc-20160816; b=DiiIzEsfgJIyfq1yquUnsEu8ec6GnUB60jZjRQEecXUwQfdmQdobjZdTNKQkrxWlK3 Ea0JWCUJB3uOKlQpyna7bSnVnqdar7EhOCgTXmE6u4qbkbbK6M3oO7ku7EbclakHMCvT paeqONxWmBVy460zgt5EhNtWwbL0v4TT8mYtTdE6J4urlIXXbSGmoJWWeaIjuws6xqDL nWty/oJC5nCWdZbsHz7C85Xglzl6HUY4GxCOnxS4IsXrglR8JlhICTwsaLCyjpNH5dv1 R/lDilbnBZ6V4GReggIpBBnfo/zf4+k6ICnT/Blpks0Q4Zui9sMiOMlanzd5vz6+bPWK sN0A== 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=gOFmPLZVgHl7ZjB2meXVjI2ghFGQvEyEudFo8t8326g=; b=ke2yHGXqCWmaXogYBv3ECb+U1iGcvcUoVZpA9jJrbKc52S/umgyqp+kqpz9+hudqCH tpObIFEj6Khtf930B4I0Wmr+88eBfVrv5CeSsU6Hlf30RxNhwO1qoHxdV5KDPoTceufw EH3Q5OrImGFuNiUwYKilyQ7hUSXn6nxLz9ve3i4aBeUPiRMnyDX9R6K+o1YVXq5Xjz0H +m/P5VwNYq3GyfYUNslQ5kBbJKzOy7EihyHxdEkISr5gNEyC0mOhhmLH0GiDhqq36ble 50cUv5dnTR+Lonf6LVavJflacl1QQ50MWZ3Ts1P/oJ0ggN0nbF+EFsT2T+hoL40QwZZI 6AZQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=Jah8mk0J; 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 m11si905432edl.204.2022.01.12.18.38.14; Wed, 12 Jan 2022 18:38:15 -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=Jah8mk0J; 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 DC02D68B7B5; Thu, 13 Jan 2022 04:03:34 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f44.google.com (mail-qv1-f44.google.com [209.85.219.44]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5FE2568B78C for ; Thu, 13 Jan 2022 04:03:31 +0200 (EET) Received: by mail-qv1-f44.google.com with SMTP id l13so3605554qvz.10 for ; Wed, 12 Jan 2022 18:03:31 -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=2t8H7GAnFt4shiyEyMhYTzPjZ8/pcAQLZ08G/mrWiZQ=; b=Jah8mk0J+jEpSyqZ/ygmwbphLLqh1OZd4aWy5dchp6glDd1B1PtZlgkaEhk1HCkSaS ncXrFNlryl6Wcijoho9cefoez/lJRqRcSllHl+No8igkTPCoW1F5wiBZvzKpukT6VbyG xdXzZgroA7vPK/4vwRPyUUmLA8hBZByttedRWbM2r5D/3BGQRkAFsF9dhnMgchMixdLd jxRz0iw83gX4XwPzP6x2uYWSdbKC5mPqrmKmM2QFAfr4PYBRV8iQKlu5xnOj4EFEsYir YIbjvopyu2SnumQSvSrLzgDzu1VLb2mWaD2capIqdSLb6awZcEpcsx6AX09yJNrXKbN1 UdYw== 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=2t8H7GAnFt4shiyEyMhYTzPjZ8/pcAQLZ08G/mrWiZQ=; b=jq+8WpZzm6lP+siyHrbJ+NUZbanPCn2e0Erq5an7/XvjfP9h5picfyMuE05cGVrSp2 aj9K5++fEwDFrcyew1GSTzZAPuJxkIpfVIFY51yMfK5rkR/A6kWEWGeKsznYUf2a9fEo AQu8e3tj8+N/I0stbaI2r0guFYKWVrKnAjPcB4xkHw7x1cT214/Ousf2bfzKs2KgrtlZ Q9tZrprDntvjFYUPET3gYdSJQqF0Kd9m89KojlTbgHFYl63hhCyh5tQmdSO7jqNVcRIR 1Byzb7alwD1p7AHOEO1kMSCqw8vEvoL6yN1AqomlCWKv6zsRbXY4C4W0ur1zAQSmprE0 1C0w== X-Gm-Message-State: AOAM530xlL4ZzNb8ibfAW7HCVt11xp3gAPcEdmyXc5uX+pgpX2cZxZru 1Nbyz1MbH77J9SqFIkB02X7v0SVAgnY= X-Received: by 2002:ad4:5ae2:: with SMTP id c2mr2118922qvh.99.1642039409977; Wed, 12 Jan 2022 18:03:29 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id v1sm1045961qtc.95.2022.01.12.18.03.29 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:03:29 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:02:40 -0300 Message-Id: <20220113020242.661-28-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 207/281] dvaudio: 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: JXMQyCCBmXrK From: Anton Khirnov Signed-off-by: James Almer --- libavcodec/dvaudiodec.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/libavcodec/dvaudiodec.c b/libavcodec/dvaudiodec.c index 82e6dbe36c..f3b1dee075 100644 --- a/libavcodec/dvaudiodec.c +++ b/libavcodec/dvaudiodec.c @@ -36,11 +36,6 @@ static av_cold int decode_init(AVCodecContext *avctx) DVAudioContext *s = avctx->priv_data; int i; - if (avctx->channels != 2) { - av_log(avctx, AV_LOG_ERROR, "invalid number of channels\n"); - return AVERROR(EINVAL); - } - if (avctx->codec_tag == 0x0215) { s->block_size = 7200; } else if (avctx->codec_tag == 0x0216) { @@ -55,7 +50,8 @@ static av_cold int decode_init(AVCodecContext *avctx) s->is_pal = s->block_size == 8640; s->is_12bit = avctx->bits_per_coded_sample == 12; avctx->sample_fmt = AV_SAMPLE_FMT_S16; - avctx->channel_layout = AV_CH_LAYOUT_STEREO; + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO; for (i = 0; i < FF_ARRAY_ELEMS(s->shuffle); i++) { const unsigned a = s->is_pal ? 18 : 15; From patchwork Thu Jan 13 02:02:41 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33482 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp39954iog; Wed, 12 Jan 2022 18:38:26 -0800 (PST) X-Google-Smtp-Source: ABdhPJwh9PSqGH5qNSL5QeWe8EkW+lUpNu7zUp+8Gmj/k4+bHRl9yw12CdIqsWTgHBdvKX2xksRr X-Received: by 2002:a17:906:1f51:: with SMTP id d17mr1937794ejk.759.1642041506551; Wed, 12 Jan 2022 18:38:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041506; cv=none; d=google.com; s=arc-20160816; b=loUVDQkn7GlGIDpX1ywCRbas/V3i1Y7h4dwLgbo8tCXDsJznLjummePoG/rJJglvE8 OWA3chjGRjBHVnp2J4yU/vELvqe+C2LlOnqSgCrUW9LkD14UsVFRibtXHqQlZfD2jnAm D4FB17yZ2d++eLTKywz33srsDjO5ZOd90s9EnWrHp8L5ayxWQq2OGnWZdN+HWx89wWHb ye25VzoKvAvSnEcgQC2GF3NtCF/+2sY7FYBTdoPllddRGNqXVDMmV+nDpvCAi66u6NmP G2Q7Wa8+apxSVm8AS/2qgv44D8zekZ+d/4XKy3HL8xMt3C/KdSg2rf4lexNPHmT5nmAV q+Nw== 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=3hWdRe32Jel1H49/m2P/fItI2sFU5E6DgBmwPA/p0bY=; b=CTFO+WzlnYg4gxeWwfioElZbzpYPiWnSOHVUKJHGfgBlLfvUgBFFoKHuxcKh5eUw1M 4uGhQzQwvoyrRKfBt9jTE+8O1CKH7Rq+tweWmF3x3mEHgEzpFzE3p3UsmTLdWJ8sDIMx cNlM3z4oznRNqSHBfrhN0IhtP7wxJGcvKVBrqlT5KiwKDllzpgsVvxLtiPxb/XZPRWGF DaCU7HS7ljykvwSumKGvoTii7GKlITa/A8XevQ6+1PeXHAHi0rUCu2PAJIxXrD22xk+t t1TQioE2SI4Xa6Mn8QreEuQ/wXkeKnYq4wR/wUsV0Rmck3XAfmcSoKVAF/1IGSKYLhTN w/vw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=QdAInxWc; 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 dz15si1365923edb.25.2022.01.12.18.38.26; Wed, 12 Jan 2022 18:38:26 -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=QdAInxWc; 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 B639C68B7C5; Thu, 13 Jan 2022 04:03:35 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f47.google.com (mail-qv1-f47.google.com [209.85.219.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9A57368B7A4 for ; Thu, 13 Jan 2022 04:03:32 +0200 (EET) Received: by mail-qv1-f47.google.com with SMTP id fo11so5093797qvb.4 for ; Wed, 12 Jan 2022 18:03:32 -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=AHGJYoSJXxrA6Ph6O+d6c2gpjxgf3LrnzqDxg46cpSg=; b=QdAInxWcUTRXd/tDe+ojiNENwo15LKLMj1zVccz0hpkkkSRU/G35U7OJ8BjaX9ucbj DF/VSRF5yx9x/JOTeu7ZtdBnUATUJ4fIxYfOmoTUU1gguDOW6O6u64/Ev1eE3qQwZjPw F6ZAXXMk60BZOeLCoXvfGxfNRZtLVDw7YDMmiwM29KKMFNQ/KZMda77WjljL19+apYB0 KIVu7q/4GIrY988ikPUjt3hd46pTfvf6CTlvsklNQVWYLQPr3O7BCmUT2Nvz6j1dqYTe NlPUie3ZxS1ooUDlXKKz9zaJB6xtMrsKzCWCvVVvozCnqu116iztvoMWn9Cb8i2g4kZn /kgg== 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=AHGJYoSJXxrA6Ph6O+d6c2gpjxgf3LrnzqDxg46cpSg=; b=HMh0wxkdbMLJ/QCv6PuZcF7vDZ94M+bYmXBPRZ8GjcKiYB1LmtJRyoM+nzYs9Ni3aM MOSYxwig+cymAPINOs/kXWroOluzo5WSzAlXbctjvD/zZZYGiBUnKOUX7TI7HLJDEPkg y5e9haKcT+NYho3lo+WmDV5d4c/iEEx34d1Ymz03cgSzqz8XpE3gbRXNo10BmjulP+3r VEAuRNjsWI97w9DdFUKTl6W/koH/D+Vv7o2xJdVsI0ixBWwAUV/W9PhaEsen0smLg/Sa tQRFvUbKCIZhv5U14ah5FmHRMgJR8qlKsdwxqi3k6jZzJTIZQRX0fWERNHK/QbEskC/d hq2Q== X-Gm-Message-State: AOAM532A27zFU5osiSPAvpgEfkKFK2U10Q82NSSBl2rxyrA01v3XFlJp 1iWhDBmqkv79eDlONBsP/tFaTWyQ85I= X-Received: by 2002:a05:6214:27e5:: with SMTP id jt5mr2215041qvb.106.1642039411205; Wed, 12 Jan 2022 18:03:31 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id v1sm1045961qtc.95.2022.01.12.18.03.30 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:03:30 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:02:41 -0300 Message-Id: <20220113020242.661-29-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 208/281] evrc: 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: z5agHTWoa+mc From: Anton Khirnov Signed-off-by: James Almer --- libavcodec/evrcdec.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/evrcdec.c b/libavcodec/evrcdec.c index 59fcb14c52..a17f3bc2be 100644 --- a/libavcodec/evrcdec.c +++ b/libavcodec/evrcdec.c @@ -235,8 +235,8 @@ static av_cold int evrc_decode_init(AVCodecContext *avctx) int i, n, idx = 0; float denom = 2.0 / (2.0 * 8.0 + 1.0); - avctx->channels = 1; - avctx->channel_layout = AV_CH_LAYOUT_MONO; + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; avctx->sample_fmt = AV_SAMPLE_FMT_FLT; for (i = 0; i < FILTER_ORDER; i++) { From patchwork Thu Jan 13 02:02:42 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33483 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp40032iog; Wed, 12 Jan 2022 18:38:37 -0800 (PST) X-Google-Smtp-Source: ABdhPJyNcr2DW7+bmn8luLmIVN2JFefT7u4FsQIYl31u+m/3QiI+jEh3qX532xoKIcV9RhoOHUkI X-Received: by 2002:a05:6402:b88:: with SMTP id cf8mr2377897edb.284.1642041517785; Wed, 12 Jan 2022 18:38:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041517; cv=none; d=google.com; s=arc-20160816; b=uS/OmsntQrwVu+JPNAXVejWQHBahIz0LcqZWXgqdqYIj3D6h8+kebPx26ojzxLWjqn V1J6lIXv9ozedXqBRoD2QN6d/8vspXe2UTnEiNIBPwzXDv9vHTz0FYMTEbksjoyrQ08s QinsBTsMf/XB/KHNhJb31D/qpqeDc2CoqaleJmAoZYdq0z4/QArDs2d7DFXAVsmMsE4s hE/dVWk37SUeq42VDHetSIePDy3IMqRyVp2GEQ5ypvwSlwpl/Q8erwVhLJVMSaNp+Xuq f1cIJPr69FFWD2HPjyU4yg3RuqUG5QO7VPyv1o2mXC7xph3JE8ApY3zKmTJQy0gB/JXH gBMA== 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=tPRIHkXaClGJzq4Nx8+q95xXs65Pjpz/mZ7tur9kuZo=; b=CamhidNR8ByQ46k3jcDBSPoezTAshZfd2Wzi5HSMEb+ON8abtTbHVupbDVdtKOXLby XTNz8bOnOwtgE0Np9QXxoPOajTzhrAdn0SHSiHK3LnPtPJfXqd1ufrxX3fo2mfD/e6GQ GJB297YIwW9Ek2q6cKAGPzmdrd020v6wWHZaVYWRQzRIEYktJCd3s2NdfekK3+AOBtOj L/HFC/Q3vEleRU47e5jDbuazcKho/f3ktp27RZGEcCdYbYtJn8WaU52JNjFXC7TxVeAf GDKO1bT6AcZ+JXKp7BA5bxQuP02Nsnav4l2TzqYGS1wfWUgDc9hRCVRc595fkjeOzFbd 0q+g== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=qkiyQE5o; 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 q12si888767edw.152.2022.01.12.18.38.37; Wed, 12 Jan 2022 18:38:37 -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=qkiyQE5o; 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 9286568B7CD; Thu, 13 Jan 2022 04:03:36 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f41.google.com (mail-qv1-f41.google.com [209.85.219.41]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DAFD268B7A4 for ; Thu, 13 Jan 2022 04:03:33 +0200 (EET) Received: by mail-qv1-f41.google.com with SMTP id q3so5132724qvc.7 for ; Wed, 12 Jan 2022 18:03:33 -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=XqjAHjYySfZqn+EfM0ddPJ+mNj3SFvF2cdSe8h2ElmU=; b=qkiyQE5oPmHRVUhuWFQxlijgj/fXbO8Xfo5mnqJw3F1bEA/koOpxjnwjqSZI0t76F5 SsSbFnUGs9EbyeZ0P6NqBnTPlnRkPoJ3QnCgCDdBJknnUTsF/SqJ3peYRcDvG1/Qv99i 3T0le2AB16J6Pr6jQpjnbjw7KC9X7WhVBLbg42Am5wN1KOVpf/DEGHs4eugLi1zoDcOv WWEWRV+8Ep0JBTEU3FmhO6iZXu+4q6R9ZIR4L3a4YPU9iTHflc7BuBNX/kqe++pxwcYI 5R7S761CYrY0fkYGQsR7ph4Fr5gR+uUxLA+wRMSPwIRS72XZU8KmDi3oRnLZgMIV5U7K iX8g== 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=XqjAHjYySfZqn+EfM0ddPJ+mNj3SFvF2cdSe8h2ElmU=; b=VFDlFYuytWsY/JSXGcdlNT6dEwB4/deWlPQ0R7OgyzTeDgd5RfD16g9EVRoWU496jy /2cTIEg39fOtLkAZtv8TDfaRL8swETQ2c1G8JFQSoryK9Tnw8iDu5fFslHzg4gWZfPet Atw36Wd7X0e090NzB8SboR6/Ee9AbRtmwuPcM13N56Pa6S5sPjWYcXQyX6bVrgm244Bo MbMIQNZhbaXEX+xFZ1woTDda44UnuYWKemHN4ZUPMPDyLZRb4W7Q7H6D5t1shldM6jOC qmvGub7vfCUWesSoNTnR2JnDFiHlhci2MgF9DTgkqAjhIJ73umX1JQkELWtJJUilUI/U 96ww== X-Gm-Message-State: AOAM530Q57z54r+6Jxmm4eGZlb3f5r+4Qy7+UsWBrhZpK5p080GNH6E/ Fnup4H3r4iWemB6QpKTrqvcJ296CUeQ= X-Received: by 2002:a05:6214:27e5:: with SMTP id jt5mr2109509qvb.113.1642039412437; Wed, 12 Jan 2022 18:03:32 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id v1sm1045961qtc.95.2022.01.12.18.03.31 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:03:32 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:02:42 -0300 Message-Id: <20220113020242.661-30-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 209/281] fastaudio: 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: g+FUZra86arK Signed-off-by: James Almer --- libavcodec/fastaudio.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libavcodec/fastaudio.c b/libavcodec/fastaudio.c index a07c5e60a7..7a8ff7dec3 100644 --- a/libavcodec/fastaudio.c +++ b/libavcodec/fastaudio.c @@ -78,7 +78,7 @@ static av_cold int fastaudio_init(AVCodecContext *avctx) for (int i = 0; i < 8; i++) s->table[7][i] = i * 0.34f / 3.f - 0.2f; - s->ch = av_calloc(avctx->channels, sizeof(*s->ch)); + s->ch = av_calloc(avctx->ch_layout.nb_channels, sizeof(*s->ch)); if (!s->ch) return AVERROR(ENOMEM); @@ -113,7 +113,7 @@ static int fastaudio_decode(AVCodecContext *avctx, void *data, int subframes; int ret; - subframes = pkt->size / (40 * avctx->channels); + subframes = pkt->size / (40 * avctx->ch_layout.nb_channels); frame->nb_samples = subframes * 256; if ((ret = ff_get_buffer(avctx, frame, 0)) < 0) return ret; @@ -121,7 +121,7 @@ static int fastaudio_decode(AVCodecContext *avctx, void *data, bytestream2_init(&gb, pkt->data, pkt->size); for (int subframe = 0; subframe < subframes; subframe++) { - for (int channel = 0; channel < avctx->channels; channel++) { + for (int channel = 0; channel < avctx->ch_layout.nb_channels; channel++) { ChannelItems *ch = &s->ch[channel]; float result[256] = { 0 }; unsigned src[10]; From patchwork Thu Jan 13 02:04:49 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33484 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp40120iog; Wed, 12 Jan 2022 18:38:49 -0800 (PST) X-Google-Smtp-Source: ABdhPJyKxi3vH8U5aZdZYsevVRi6V3+jo49OlpoqZl8ug5+cdYf/ScINuPcYgGOsnI5gmbIv9pR1 X-Received: by 2002:a05:6402:618:: with SMTP id n24mr2383508edv.236.1642041529114; Wed, 12 Jan 2022 18:38:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041529; cv=none; d=google.com; s=arc-20160816; b=mweiZN2cxcOkK2piOz7YfEX9wbz+mRUTiHTUq0eytNX4qE5jtCCZvz9bSYg1Ac9pDI omizciLlQcbYoS61B+dthNBDDF3q7pPkK5wwyIXYpvFPMcRzSPAOykhmaOZIuWs0fkkc KxFI+14UnEA+lA1/IZT2EpScbO6GwkuBNhDfjNvyBcb8VOs93qeOAU3lNWJEMlypfEmI BkWrh6uwYbFaGlEtZxBc8MpA6L+/dF3s6et/E7AV0FUBISZ5rGWmPNJge7JyfpYgHRYG XoE5CjntWTPD+1vuLnyfD1h0SogF47RfhNhwIuIWxhYFa1hkPcLVjEN2PLVd0IrEFzk0 t07g== 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=EbTOVSadrnAxTWxNCjXITKkLy7yWJPz3ZtFsmuEgeV8=; b=N0aY6OcHk+rIANnyfh2plUyK1VM2uetQ29Z0CI9dDDfnd17DIzDjdzDQPmizxIsPVc aofA3WVSmlQ+747p35xSnvmQ2h5QZJevwmohbEhAZyYHHxLGYvGXZc8EQAT83semgDOZ Mx2MNIAjcCFvQH8CLj/w+6CjDBacKFGXy6etTCI59qVyF52Yrqy4vUFe0nvEXHEk9Sfp VUmOgjmjojFdwCogb9hiZH4V+m1ehlVVd4FvPs43+hukt2Y3wv475f7C2sti/W1kPH9P XgYtfPMKY+Ty1lwE/yQFU1MPvCMf0wGX3U/4rbnxVeA6R5kFkuu2di6sHlLRUIYygTBY f98Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=pCKJhxH1; 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 i9si814618eda.564.2022.01.12.18.38.48; Wed, 12 Jan 2022 18:38:49 -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=pCKJhxH1; 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 D6C3A68B7FD; Thu, 13 Jan 2022 04:05:38 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f172.google.com (mail-qt1-f172.google.com [209.85.160.172]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 00C2768B7F5 for ; Thu, 13 Jan 2022 04:05:32 +0200 (EET) Received: by mail-qt1-f172.google.com with SMTP id c7so1770970qtc.11 for ; Wed, 12 Jan 2022 18:05:32 -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=L/h0Ksobu1O4/mHqVnHqt3EWVXRuzjxlGvmHoylMRyM=; b=pCKJhxH1Xpu6mcV2GVA5LISUf0C25flQ/Oy7n9HNQ3ulK/6WEsXxfyt4Tuh9/2leIT aaYvA44zVHjmi6LCo0ATJybySr7s+vOGk9mdZaQJ0fJ/tuyB6RWzKuvOPKPBBLhK0eK2 p0PjMq6fDH2ZOS3cmbSSP+WDd23ucsn2vmxf1kNx1R0gdOJ/eMZVzwh/mSknqY1qz1kG +iSyNQ+jPHRpr12cLrmb3y9chXc9GG0J+VEM2zFMu0KKVeII0VXGp+1gk3RZoJ962ltL Od8wgThbYZthJ0tLbAkXD40pDoWX0oL1Rgyz8tty52GtXLdEaQiO7Rdx1g4YyL5rd5AX 3z1w== 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=L/h0Ksobu1O4/mHqVnHqt3EWVXRuzjxlGvmHoylMRyM=; b=BCoYrN3ijHsoEmrq+/wWNhv5kzvozvHUd/WHAJUdp16Lg/AIeRUzwK+/HkbOUd67xH 5Imnrr9ZiMWss2sONEYCSK0QgGnNO9+ZkzQZLPDG6oUpMvuNVwzpehgYx/FzFySqoM00 8FFNOwJU5dft0tpNV/C1BGi4NvWjQZT5DvQLlVsjmZBDwZjhp+f0m4W5d55His17uYSf RkrC7LKrnCNUqyEaHaDrDrqeKDb+d+oNo6C68njtATOiyRJ89Z3/QVsMLBhYVr2jlOL4 s/ZozXFIEfh1ajbXw+Z+MmRNmzREGYx2kVCkl9KlUL2KUOcibnIeVOfhQPBhKtMrKEBr W9/w== X-Gm-Message-State: AOAM532ceq1rm7WpskpJ8yCuOTT95QDztaE2KQ0/0H4qxvoXBJ2HWWMG lwQpU+fEc4qj1fSLWzX66XuifVwTykc= X-Received: by 2002:a05:622a:1109:: with SMTP id e9mr1975542qty.606.1642039531669; Wed, 12 Jan 2022 18:05:31 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id k9sm1264556qko.29.2022.01.12.18.05.30 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:05:31 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:04:49 -0300 Message-Id: <20220113020518.730-1-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 210/281] ffwavesynth: 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: xPF0YS6u4HS7 From: Anton Khirnov Signed-off-by: James Almer --- libavcodec/ffwavesynth.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libavcodec/ffwavesynth.c b/libavcodec/ffwavesynth.c index a1211facb9..229a89663d 100644 --- a/libavcodec/ffwavesynth.c +++ b/libavcodec/ffwavesynth.c @@ -314,7 +314,7 @@ static av_cold int wavesynth_init(AVCodecContext *avc) struct wavesynth_context *ws = avc->priv_data; int i, r; - if (avc->channels > WS_MAX_CHANNELS) { + if (avc->ch_layout.nb_channels > WS_MAX_CHANNELS) { av_log(avc, AV_LOG_ERROR, "This implementation is limited to %d channels.\n", WS_MAX_CHANNELS); @@ -438,11 +438,11 @@ static int wavesynth_decode(AVCodecContext *avc, void *rframe, int *rgot_frame, return r; pcm = (int16_t *)frame->data[0]; for (s = 0; s < duration; s++, ts+=(uint64_t)1) { - memset(channels, 0, avc->channels * sizeof(*channels)); + memset(channels, 0, avc->ch_layout.nb_channels * sizeof(*channels)); if (ts >= ws->next_ts) wavesynth_enter_intervals(ws, ts); wavesynth_synth_sample(ws, ts, channels); - for (c = 0; c < avc->channels; c++) + for (c = 0; c < avc->ch_layout.nb_channels; c++) *(pcm++) = channels[c] >> 16; } ws->cur_ts += (uint64_t)duration; From patchwork Thu Jan 13 02:04:50 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33485 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp40218iog; Wed, 12 Jan 2022 18:39:01 -0800 (PST) X-Google-Smtp-Source: ABdhPJzPZj9eLK4mYvhhUrW2PXqCc32+fy5AsWzDQTk3H5hoHCZ+1XbcT7pHEgzWDynfWam4ShGi X-Received: by 2002:a17:906:2a48:: with SMTP id k8mr2051739eje.758.1642041541140; Wed, 12 Jan 2022 18:39:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041541; cv=none; d=google.com; s=arc-20160816; b=IXh2zcoatv6LrmHd3+AeB2+LaFMF3FIxyXm8epXyjK4DZWcSrqHiIxvk1KWgEneHeH YoxXJCjyZQJGKorxamc61aW4laPMF0TiXGhASVoafH7GpCyU3Cin2y5hR64IjZokf7Y1 jW+ZJEjQ6I3JMzxf7YdRBMAgwpFZd5wa59Hw2apAZ0G5wNA9k9dWKNhXIQdlEh1y58hP /wRrJjKkoI1NpD78QzQGEYf3uGEoU5ejbNI6QAejU3YrJEo5Ew3JbFBgFktS+rOe6Ywf rScWX6pi1OIhh2806TH+pnntMLEecVytu9FZpOEpoFQH9VISxpkNNz15I1xbmpVPdNpC 9LBw== 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=n36PmPWdKDVw74bDiNgjHik2YuWDCBZHUiKquPwwoaA=; b=KJey9/LBKXdo9FphcDeN+hyI7ORDaJoSu/36eJQ3OtDlhkPYUww8CQ/03TzSW3q+NH EsUye47CWHl5gJF6wfizQz9c96uqAhvKcHxAAPsTCncp7MlQ12/LUxKySGACvNmgH4Q9 4StBKGZE8mydKb7qyBY9RYCQQux+gegGyZdDIt+xEdd69b3OZHAAE8GOwSoSLc7Gp21m SigFoBa1smLz7LeoMXul27DiWwm/swaPW5HerCTyNST7MTVNusAD5ElozlS6HXTNS7q5 /9sAIkY/7pWfciSM1tSQUxZ9RAI0utAinE5jBMiFaWK30y3ZoZ00qwhYvTb6K2NfvtrL aiaw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=QGVLr8zP; 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 gn40si761321ejc.205.2022.01.12.18.39.00; Wed, 12 Jan 2022 18:39:01 -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=QGVLr8zP; 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 CD24468B808; Thu, 13 Jan 2022 04:05:40 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f173.google.com (mail-qt1-f173.google.com [209.85.160.173]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 59FC468B800 for ; Thu, 13 Jan 2022 04:05:34 +0200 (EET) Received: by mail-qt1-f173.google.com with SMTP id c10so5396692qte.2 for ; Wed, 12 Jan 2022 18:05:34 -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=Juu0qMcUIcxKyi38eueXnq39CyQrFSolie0VHKZ/aZQ=; b=QGVLr8zPXodY0IRNtugsq49XclDWxojq3vYGg9HKqePdiLtMxkWbSoslGMAI3Nj828 KuBosQT949b0UUf8yuOTAVqsBlOmIIic+BXB8rsgmhXV3bSKn1p6CMO0d7ywZS2/KYV2 uPIsjMZ+Q/jQwHnV++uSqB32BzZEUBA9My6CCTikQuXLlYbkL4yHrr9oyTIsuoX9InLz mRuD0tOxsmvHP6NLDcr3mx7yyeaUK65jvpsRpvtPq7R/Mk808AFx61BDbEEXt0hmkRmG MRBnLM21ERZEZ7dZQfZU/KBHvGD75+KJPVS3ClfNtc3TrD00XBdh/Mzx4ptkKpRCNuWn Gvig== 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=Juu0qMcUIcxKyi38eueXnq39CyQrFSolie0VHKZ/aZQ=; b=pUDOJwIskpv1AZ9VWuMNxRG2oMCTw7oHTvj5T8kwFL36APJrsfOUrDZnfh2cyJgvyH EdjoU1kGvJrwcTpMz6+EXBKvPVLuOVjvm+Hr7lDEosKIVr1IBwweDIhra+RWb3CGTQrJ sWUjoDQohK8X2IqjOTFNFyLE4LRUrCHrTpwW6GfZaY3VX2WGJ74Uw7XvqwhDbBQ15hTv hHrLDmvYtTtRyOTbnzUm6UEsqtQWrj8VmJMHDuTNHh0HDxsvgJaWOva8ptposMVFsmnU sO6GvZxwpoDm4Q+DqkzQKI1ZhUsJD2dxG3ydn8ucpGJTpt2OdGtDQprXdMSERXq8rgPx XzFw== X-Gm-Message-State: AOAM531JgLqzH1oPQCNzAIs6Qgz5LYnQilSfy63tV/iEM+3Fu+RsaBN0 6jTdYLFcurCFgXhxBHGfTXGdLDeV8mY= X-Received: by 2002:ac8:598b:: with SMTP id e11mr2043988qte.522.1642039532901; Wed, 12 Jan 2022 18:05:32 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id k9sm1264556qko.29.2022.01.12.18.05.31 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:05:32 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:04:50 -0300 Message-Id: <20220113020518.730-2-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 211/281] flac: 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: cg7tuvrA0LsJ From: Anton Khirnov Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavcodec/flac.c | 39 +++++++++++++++++++++------------------ libavcodec/flac.h | 2 +- libavcodec/flac_parser.c | 7 ++----- libavcodec/flacdec.c | 9 ++++----- libavcodec/flacenc.c | 26 +++++++++++++------------- 5 files changed, 41 insertions(+), 42 deletions(-) diff --git a/libavcodec/flac.c b/libavcodec/flac.c index 7b075d4bd3..51014faea1 100644 --- a/libavcodec/flac.c +++ b/libavcodec/flac.c @@ -29,15 +29,15 @@ static const int8_t sample_size_table[] = { 0, 8, 12, 0, 16, 20, 24, 0 }; -static const uint64_t flac_channel_layouts[8] = { - AV_CH_LAYOUT_MONO, - AV_CH_LAYOUT_STEREO, - AV_CH_LAYOUT_SURROUND, - AV_CH_LAYOUT_QUAD, - AV_CH_LAYOUT_5POINT0, - AV_CH_LAYOUT_5POINT1, - AV_CH_LAYOUT_6POINT1, - AV_CH_LAYOUT_7POINT1 +static const AVChannelLayout flac_channel_layouts[8] = { + AV_CHANNEL_LAYOUT_MONO, + AV_CHANNEL_LAYOUT_STEREO, + AV_CHANNEL_LAYOUT_SURROUND, + AV_CHANNEL_LAYOUT_QUAD, + AV_CHANNEL_LAYOUT_5POINT0, + AV_CHANNEL_LAYOUT_5POINT1, + AV_CHANNEL_LAYOUT_6POINT1, + AV_CHANNEL_LAYOUT_7POINT1 }; static int64_t get_utf8(GetBitContext *gb) @@ -193,12 +193,19 @@ int ff_flac_is_extradata_valid(AVCodecContext *avctx, return 1; } -void ff_flac_set_channel_layout(AVCodecContext *avctx) +void ff_flac_set_channel_layout(AVCodecContext *avctx, int channels) { - if (avctx->channels <= FF_ARRAY_ELEMS(flac_channel_layouts)) - avctx->channel_layout = flac_channel_layouts[avctx->channels - 1]; + if (channels == avctx->ch_layout.nb_channels && + avctx->ch_layout.order == AV_CHANNEL_ORDER_NATIVE && + avctx->ch_layout.u.mask) + return; + + av_channel_layout_uninit(&avctx->ch_layout); + if (channels <= FF_ARRAY_ELEMS(flac_channel_layouts)) + avctx->ch_layout = flac_channel_layouts[channels - 1]; else - avctx->channel_layout = 0; + avctx->ch_layout = (AVChannelLayout){ .order = AV_CHANNEL_ORDER_UNSPEC, + .nb_channels = channels }; } int ff_flac_parse_streaminfo(AVCodecContext *avctx, struct FLACStreaminfo *s, @@ -229,13 +236,9 @@ int ff_flac_parse_streaminfo(AVCodecContext *avctx, struct FLACStreaminfo *s, return AVERROR_INVALIDDATA; } - avctx->channels = s->channels; avctx->sample_rate = s->samplerate; avctx->bits_per_raw_sample = s->bps; - - if (!avctx->channel_layout || - av_get_channel_layout_nb_channels(avctx->channel_layout) != avctx->channels) - ff_flac_set_channel_layout(avctx); + ff_flac_set_channel_layout(avctx, s->channels); s->samples = get_bits64(&gb, 36); diff --git a/libavcodec/flac.h b/libavcodec/flac.h index 991ab43f3c..cb220ab4c0 100644 --- a/libavcodec/flac.h +++ b/libavcodec/flac.h @@ -131,7 +131,7 @@ int ff_flac_get_max_frame_size(int blocksize, int ch, int bps); int ff_flac_decode_frame_header(AVCodecContext *avctx, GetBitContext *gb, FLACFrameInfo *fi, int log_level_offset); -void ff_flac_set_channel_layout(AVCodecContext *avctx); +void ff_flac_set_channel_layout(AVCodecContext *avctx, int channels); /** * Parse the metadata block parameters from the header. diff --git a/libavcodec/flac_parser.c b/libavcodec/flac_parser.c index cd9a2cb574..81b6f12ab3 100644 --- a/libavcodec/flac_parser.c +++ b/libavcodec/flac_parser.c @@ -628,11 +628,8 @@ static int get_best_header(FLACParseContext *fpc, const uint8_t **poutbuf, check_header_mismatch(fpc, header, child, 0); } - if (header->fi.channels != fpc->avctx->channels || - !fpc->avctx->channel_layout) { - fpc->avctx->channels = header->fi.channels; - ff_flac_set_channel_layout(fpc->avctx); - } + ff_flac_set_channel_layout(fpc->avctx, header->fi.channels); + fpc->avctx->sample_rate = header->fi.samplerate; fpc->pc->duration = header->fi.blocksize; *poutbuf = flac_fifo_read_wrap(fpc, header->offset, *poutbuf_size, diff --git a/libavcodec/flacdec.c b/libavcodec/flacdec.c index 09051cc663..eaa2dc6cf1 100644 --- a/libavcodec/flacdec.c +++ b/libavcodec/flacdec.c @@ -483,15 +483,14 @@ static int decode_frame(FLACContext *s) if ( s->flac_stream_info.channels && fi.channels != s->flac_stream_info.channels && s->got_streaminfo) { - s->flac_stream_info.channels = s->avctx->channels = fi.channels; - ff_flac_set_channel_layout(s->avctx); + s->flac_stream_info.channels = fi.channels; + ff_flac_set_channel_layout(s->avctx, fi.channels); ret = allocate_buffers(s); if (ret < 0) return ret; } - s->flac_stream_info.channels = s->avctx->channels = fi.channels; - if (!s->avctx->channel_layout) - ff_flac_set_channel_layout(s->avctx); + s->flac_stream_info.channels = fi.channels; + ff_flac_set_channel_layout(s->avctx, fi.channels); s->ch_mode = fi.ch_mode; if (!s->flac_stream_info.bps && !fi.bps) { diff --git a/libavcodec/flacenc.c b/libavcodec/flacenc.c index 9f6f449323..0912ca2f47 100644 --- a/libavcodec/flacenc.c +++ b/libavcodec/flacenc.c @@ -241,7 +241,7 @@ static av_cold void dprint_compression_options(FlacEncodeContext *s) static av_cold int flac_encode_init(AVCodecContext *avctx) { int freq = avctx->sample_rate; - int channels = avctx->channels; + int channels = avctx->ch_layout.nb_channels; FlacEncodeContext *s = avctx->priv_data; int i, level, ret; uint8_t *streaminfo; @@ -398,18 +398,18 @@ static av_cold int flac_encode_init(AVCodecContext *avctx) s->frame_count = 0; s->min_framesize = s->max_framesize; - if (channels == 3 && - avctx->channel_layout != (AV_CH_LAYOUT_STEREO|AV_CH_FRONT_CENTER) || - channels == 4 && - avctx->channel_layout != AV_CH_LAYOUT_2_2 && - avctx->channel_layout != AV_CH_LAYOUT_QUAD || - channels == 5 && - avctx->channel_layout != AV_CH_LAYOUT_5POINT0 && - avctx->channel_layout != AV_CH_LAYOUT_5POINT0_BACK || - channels == 6 && - avctx->channel_layout != AV_CH_LAYOUT_5POINT1 && - avctx->channel_layout != AV_CH_LAYOUT_5POINT1_BACK) { - if (avctx->channel_layout) { + if ((channels == 3 && + av_channel_layout_compare(&avctx->ch_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_SURROUND)) || + (channels == 4 && + av_channel_layout_compare(&avctx->ch_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_2_2) && + av_channel_layout_compare(&avctx->ch_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_QUAD)) || + (channels == 5 && + av_channel_layout_compare(&avctx->ch_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_5POINT0) && + av_channel_layout_compare(&avctx->ch_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_5POINT0_BACK)) || + (channels == 6 && + av_channel_layout_compare(&avctx->ch_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_5POINT1) && + av_channel_layout_compare(&avctx->ch_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_5POINT1_BACK))) { + if (avctx->ch_layout.order != AV_CHANNEL_ORDER_UNSPEC) { av_log(avctx, AV_LOG_ERROR, "Channel layout not supported by Flac, " "output stream will have incorrect " "channel layout.\n"); From patchwork Thu Jan 13 02:04:53 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33486 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp40841iog; Wed, 12 Jan 2022 18:40:12 -0800 (PST) X-Google-Smtp-Source: ABdhPJykK0mPYUNJr+fYlteZ82MoTeDcQeU1P6ms2L6p3d7ndXureTF6BJotEyy0se+DAzke8Q+o X-Received: by 2002:a17:906:f54:: with SMTP id h20mr1999377ejj.201.1642041612631; Wed, 12 Jan 2022 18:40:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041612; cv=none; d=google.com; s=arc-20160816; b=Llcxhcn1ozT7rRZOeeH/FlopJwkVMq8rpHrGGHSEDgbniMPbb4Sqa59OlRpSIa7bdj vZpXuexAQ+I4L232LVqMastX7KXdF1/1Q3db7qkw692qgxS7SKtgtpt6AmDpfqqpnz3s RhW60DK7M5DpOktGd3tyMKA7y/56J3Qz34A+nAeDM9JFPwnqR8ybW0BNcKPoBSjNq7o8 28U20F5Zmo+a0XHyqleXAfkxktC1hRawcEg4yQ0fV41mpciyWUEPyk69VBq3mu0tSg5V 57eFgor6YJ8ljXNKKJjYDZTsdDEVMsEMQDVlDF0GT8togITGnd0Ii9hltpwo+4x2JaGs ssXw== 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=iD3gOty9MG20kJHDP0AOUnblHc5++gMQtKBNt8JdSSA=; b=QwmYEzaD5rWp9baY92l3IA9kKuv48qljAumbnJEh79WmQWiAEhOY6d8n40ZTO2tFfp acUPBo+x8TeGz1ARsPCyZqzunqH4tCWnPgBL4L3quNCEEDUCTwhozH8OViNbJPMEyxPV qqb28oHA1uO4FayUq6sA0q2/ulYoezMjOl/LIDWLbX2+pxT7pv0plLtk6YQr1Whx/SBC m2iwDK+vw+RBJZVeoF33Zu9YyMtVVDThpaE9e15xoXCmh6DaORGi2bLns0o96ksSvcM6 yuQyJzpwAumnSHI0CTM5nOxiFEagtNV5KNie5rQAI+clCqhKdLkeXOCbaJgdErjEr0wd hCVA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=Jn4n4C7K; 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 c18si796270ejj.612.2022.01.12.18.40.12; Wed, 12 Jan 2022 18:40:12 -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=Jn4n4C7K; 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 84D8A68B867; Thu, 13 Jan 2022 04:05:47 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f49.google.com (mail-qv1-f49.google.com [209.85.219.49]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C941368B825 for ; Thu, 13 Jan 2022 04:05:37 +0200 (EET) Received: by mail-qv1-f49.google.com with SMTP id kc16so5158004qvb.3 for ; Wed, 12 Jan 2022 18:05:37 -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=yepPvlQTEReUUnMoSV64k0X48xsUGvKbTu18ewDCzgU=; b=Jn4n4C7Kog8YmxOBLBNzmL2Qm63TpygnsPLinCzbNVOKHyaxufUa5GtbQJPFH7jPMx FqjnGJ9+HxE2U7/XIkVSkigIQI6NOdgmyvbBYWmC12lv9TtAspD9/vlyw8oLUCUu+yMQ EBbpA+rkKpeViAr4WkFuutpV+OPIy1qIW+2T/8ShqZ4uLAvzFzZI2iyM6Euad848pEbR O2kHVvF+dVPe/XUFMeIHyo7W5WbKJXc1L1dxqROG2/Y3KhmFvfJ8ArjnsZaIrt8NaJWr sZ89d3w02fGQA+uzXFtbkRpBulBGLvcq9UvZ9Dqsvl57l0Jer9/gurWE4hO3jN+8ed8C hcWA== 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=yepPvlQTEReUUnMoSV64k0X48xsUGvKbTu18ewDCzgU=; b=Y7XAbIhojRDH7TO4ZlqbF7uzon2cJCHVl+P1uprTLOm3xAFWKEvH2DJdZ9vkL7Yfl2 0EXNSgk8I/RrsrMxPB0GpJg0cl3vRCLwJ1HROCJbs14bD3byHlEk46dEhVL65iuJQI9n 0nalDw+UNDg3xFV4V1I9VLoYOVTan77A4pnuikkDAcD4OwgWBbxcnF+tA1LWqt6giUNU aZO+X3lLP2XB48AFXDFHKPRDKJXOG6i0gybJyem7cWWuOpVL5XQ6NrHdyW6MY3VjrCac AJjxIPl7bmVkBPOuwVf/FNjQpwW5kJAcW/ZSKFGu91/HhwWO8ZFHFBSd9pCQPYV3mfqN Ui7w== X-Gm-Message-State: AOAM533jPf8+GKvIo7wcVEXYePgp2D262r2IKH6r9BFZk1pnwFfDpPHE s9vU+hgazT+HQXcLi19+BKEiGJEElJo= X-Received: by 2002:a05:6214:20e5:: with SMTP id 5mr2294060qvk.53.1642039536505; Wed, 12 Jan 2022 18:05:36 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id k9sm1264556qko.29.2022.01.12.18.05.35 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:05:36 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:04:53 -0300 Message-Id: <20220113020518.730-5-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 214/281] g726: 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: PEYGoClLtzf1 From: Anton Khirnov Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavcodec/g726.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libavcodec/g726.c b/libavcodec/g726.c index 2a0148c1d5..082f9b07ad 100644 --- a/libavcodec/g726.c +++ b/libavcodec/g726.c @@ -324,7 +324,7 @@ static av_cold int g726_encode_init(AVCodecContext *avctx) return AVERROR(EINVAL); } - if(avctx->channels != 1){ + if (avctx->ch_layout.nb_channels != 1) { av_log(avctx, AV_LOG_ERROR, "Only mono is supported\n"); return AVERROR(EINVAL); } @@ -436,12 +436,12 @@ static av_cold int g726_decode_init(AVCodecContext *avctx) { G726Context* c = avctx->priv_data; - if(avctx->channels > 1){ + if (avctx->ch_layout.nb_channels > 1){ avpriv_request_sample(avctx, "Decoding more than one channel"); return AVERROR_PATCHWELCOME; } - avctx->channels = 1; - avctx->channel_layout = AV_CH_LAYOUT_MONO; + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; c->little_endian = !strcmp(avctx->codec->name, "g726le"); From patchwork Thu Jan 13 02:04:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33487 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp40994iog; Wed, 12 Jan 2022 18:40:27 -0800 (PST) X-Google-Smtp-Source: ABdhPJxLe0kSOlpRO6kUNm3ZNs92L6ZUWQBybOXbm/GDuvjAIFWQDDUQgZwgzOboPMDvaOYmzcBe X-Received: by 2002:a17:906:3e06:: with SMTP id k6mr1886524eji.251.1642041627232; Wed, 12 Jan 2022 18:40:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041627; cv=none; d=google.com; s=arc-20160816; b=qo33d9uOivpSXSyKGJ0djvbkXAn0QFHAVI3GDbHEBJHjz8ECx4WtNIeoKpS3IZXni0 E1iLnrZDqXwk4ldlGjYRuY3EmAp83zasx1AAQmsHgTqBC/acs1mQ3hM3/1Y04F0R1Ne2 QlE4D6xJV46LcsEsSZqhuLgrppM52QjfI3t2uSy4pP6XfoSsya9IWiosBPo2pUlY+Ifx i815oHRI8D22zIy4i4S9YFHj81IS46YBHahfHl0fMnw2Ky0cicSDNZ6jcnEoz4+vkeUl kk+QdbMwFS5z1KHkkNGlqM+XRQ7yCcK1ObRIAyM/qfzR53leXe/TA0yP9zmtcdYXvY/7 UbkA== 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=LliQemdM1+Ht1uZBXQH/uzIWvBtXSZz0vMpzkfbTbyI=; b=zBcYUpNfqdVc+S5INU/DBT2+NdHgSuDp0/QO05wBx6RfSlixlrEGLyTsPV75HFw9Zq 90Y+Nkx858zZtBbaWbxTA6RBUNDVwMwHSPwYzO+USZvhIySGLkHDaD5rsW3XlH88UoUw 11uqLXipn882IOxbSwfYwGSWJjnO13CoJk6E5wet9WFCHsiJOspxfgUdZUuiQPTjs3QZ 9Sc4D9QoZggd1D5MCcumH5ZJXlinVSjsCsrFOn1uOyi6x0VS7FyxY99k/KTJfPP7Emp0 HKS/XGw2tlk/XJhO0KjObNE/U9B04LHRwZORdGs9vHoFpDIZ+EuSC60fkL6v80klX8y5 v71Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=WWx3qTJP; 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 he44si823074ejc.377.2022.01.12.18.40.26; Wed, 12 Jan 2022 18:40: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=WWx3qTJP; 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 945A468B870; Thu, 13 Jan 2022 04:05:48 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f174.google.com (mail-qt1-f174.google.com [209.85.160.174]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0E99668B823 for ; Thu, 13 Jan 2022 04:05:42 +0200 (EET) Received: by mail-qt1-f174.google.com with SMTP id c7so1771358qtc.11 for ; Wed, 12 Jan 2022 18:05:42 -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=bAFL7vq0gm4TAud4dqvdkoAzwB8fVqpjaTqcAeYcLXk=; b=WWx3qTJPbocQgAKzHeSVonFKZcvHmglEjhpTsRg7Qtg1kcbh9ybWD71IoNKcZpswJt zU+NiRkWxPcPT7vz58T8FlvzeUTSnfMEs3vTsTqsJEiby9CUFUus8Bvh2nXGfHGkQZIB Kta6Ah+CN4kaW9pCdZRA0LW0Zt2J2o/dy+HbQpweSac+mR1W0OSZ2hEBt2Puu0FOGI5k Xga8C7lzMOkdw789xdQKzJm8M2cY1B9OLLCBo5HGHO7QnkWcRjzg03C0WHciSe5dp7Zr qvpO4SRy+cpAXrnuRV35rKqqvnJI3tj9QNKtaBOo6mcNG2yT0U+86DN+U1G/8iKAq1Lr Dbrw== 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=bAFL7vq0gm4TAud4dqvdkoAzwB8fVqpjaTqcAeYcLXk=; b=kd78kCQa+uYvzUAGkOoW0Noi+9Ou9/YrdD8U1wWSobmEgSA5uAhwvRzzXZJq4g/bIZ 7W3lZa18UcUG+x0tVQwRGStpEzQg7THRKVEHcsAnkBlzXsVEl4SCRvd5I+2vTH5HLODB RhwqL/koYg5nWHaPfLpF2Bc75wdwKOZ6fn++INrwRzeRRN+2mv48Xj5qf+AXI+qf2TRn C2HVbIp5BQUXR3UGEtC4eu24zy8BD3SsN/z2LnzWAcfIl/5g0JlJofMinAgUkhp10ebY 3d/wspjT7Sw2bV9S1yGRBok5eq026lK8CqwU6Lc535tYKDLVq+3p9dBapuamtyXrnSwH FxFw== X-Gm-Message-State: AOAM532UX3a7y23poFlH2Lu4rstJhe2LwlFuITnMbvQpJYfprt180sPd 3A7uaILUdbt/2CuZo4VRSS/NQaEaqB0= X-Received: by 2002:ac8:5e4e:: with SMTP id i14mr2083803qtx.646.1642039541366; Wed, 12 Jan 2022 18:05:41 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id k9sm1264556qko.29.2022.01.12.18.05.40 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:05:41 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:04:57 -0300 Message-Id: <20220113020518.730-9-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 218/281] hcom: 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: QMp4uGN0Pwvw From: Anton Khirnov Signed-off-by: James Almer --- libavcodec/hcom.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/hcom.c b/libavcodec/hcom.c index 3030e37d46..d30d6402d1 100644 --- a/libavcodec/hcom.c +++ b/libavcodec/hcom.c @@ -44,7 +44,7 @@ static av_cold int hcom_init(AVCodecContext *avctx) { HCOMContext *s = avctx->priv_data; - if (avctx->channels != 1) { + if (avctx->ch_layout.nb_channels != 1) { av_log(avctx, AV_LOG_ERROR, "invalid number of channels\n"); return AVERROR_INVALIDDATA; } From patchwork Thu Jan 13 02:04: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: 33488 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp41092iog; Wed, 12 Jan 2022 18:40:40 -0800 (PST) X-Google-Smtp-Source: ABdhPJxZQUjOAH5IB4iZ4eWKzTSE8uqO+4WkOVEW0L46EMABf4g0rucn551M4C/fFcJPSv1UfyXa X-Received: by 2002:a17:907:1701:: with SMTP id le1mr1894354ejc.608.1642041640391; Wed, 12 Jan 2022 18:40:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041640; cv=none; d=google.com; s=arc-20160816; b=R8PeXFbe4ccXVzHLC+4Xezz++Th9ojTw25Pkh9SnD9g2xq2ZfmpiYEsZWfGu3lYutt W+zchZbStqbJQsTusXYKdQjkWDo4m2Zy0nASfU7HOOG44aRWhzPiTp8LmX7Bt51q0gEv Vr79g4yDcap/9Z19L/CEdBbpT4xZw0z3rbGytgOlNENvV7m9z3SfyfRmQJTYGH+wlS9k FUC+L2+n5TlZZ3BTTBE2dn4ByEnaXjCEgMw92Dv4lU3xT5AMkHHNBYiI7Y/WMVpx8bBE g32iYAdgZf+VNjl+pqpGmzxWbbNHzNOpzRiSopo2v0p/M6K4oxtP7qM2evm9uPtotzD6 tWXA== 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=fhtaS35xjeKBnO01NhO67qwNXs3nJdUB69kaZRv5+Fo=; b=G7vY2i9gLFUWO4oyTQ3XcKRt8yFmJC3v7vDTHt1qaUIN3qniso/uGNsIXH+xzIlRqX yS0azKIXn6CCtW0Pr6n7BBj98hNgJsPmnA9w+VkVHv83t/XsGFctvT0qlvBUj/KrSsd4 6ws5nBMgw2KiqdGPaPmpTnvtOo/iXSY25cWBHkMPXE7AoRCYs+ast3aRfyCnLV2ovX85 C1u1bscSj0iA7l1VX1mqUGAsr4/BFvV2OvnAuFVQcJG0uhopOqVcW8IsqarUp6w04tud tQfat/Utgq4+CTZ9TF/csRoCAw8Uhogyx7JVTy1sCLGEXGl4GUVYikhJ4UsNkjzenb0Y wlNA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=DVyCvISR; 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 ne35si1007065ejc.748.2022.01.12.18.40.40; Wed, 12 Jan 2022 18:40:40 -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=DVyCvISR; 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 71B6368B86C; Thu, 13 Jan 2022 04:05:49 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f171.google.com (mail-qt1-f171.google.com [209.85.160.171]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E883468B825 for ; Thu, 13 Jan 2022 04:05:43 +0200 (EET) Received: by mail-qt1-f171.google.com with SMTP id g21so5224259qtk.4 for ; Wed, 12 Jan 2022 18:05:43 -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=T/vPFk4Pu6jfL0siopZeqSOKyUk+oEGLTh8+nX41cww=; b=DVyCvISR2t1fbkzvY0jX6MPMfVnYb0GtWVnJ+/RL+LWvHc5Bg+2GTia/ns8HPj8eE7 f37IRn3X+HLq54M+YcZmvEfen2YtcJsxyadzOrGdQX9mZWSx7yvwuy2RjR1XLLDSQpmQ Gq582+GlkmQIB99BFdR3pLzYe4UIbbsIf26j2ZxCXVH1/Mj5G02TydknMWkHSjWHEaHN vcmA5ufGsPgqRAQkYUG+/5DsR5gjYB9DSk24h9rgZokIxXlfeu1S79TitgJLSuI2k4Ja 740ntQ/CLx/wOGBMcD+ek5nMjiz/X8mPJUY00IbNRQNCqlPtBgDraJC22PJnR6g67//g 18XQ== 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=T/vPFk4Pu6jfL0siopZeqSOKyUk+oEGLTh8+nX41cww=; b=bW4GcE2uQGUxZnj0Z9FVtc4l5hh+TgMS0P1dhQ5WWN1dEiW92rgtn5EF6aM/47O2sY +o5/BPhztRe5812Z+Tb7oKWT4av3ZgxIhIYlVNZbVi9FbaXQbWp9aiSNYDB2NUaxShtQ XN+3r5PQYFazA6kgeaitgGg81vR5YxL7T/KjYYz+aAxRtvr5ATQCuFzwa51gxX+f18GW aAhKOPX8RgLgXIgNxiaq9/yffpENK1CkWB6Xik7WJ8OU0CYk4ccAyiB070vntT0QyBTx G07J1bt/8tVYzjoYc9/PmLwI6kIQtIqxYor0+pqx5uBIPgGOrzI52oGHAjfTMLDwslo+ KF1g== X-Gm-Message-State: AOAM533icJj29QR8AFpQVW6vuN72VtkrxQj7xfnkI5MxxUIa8UloVnUT sFXH2kZj4xuPhoNd9Gv0v4WdQ7dTAo8= X-Received: by 2002:a05:622a:1aa4:: with SMTP id s36mr2022191qtc.408.1642039542570; Wed, 12 Jan 2022 18:05:42 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id k9sm1264556qko.29.2022.01.12.18.05.41 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:05:42 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:04:58 -0300 Message-Id: <20220113020518.730-10-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 219/281] ilbc: 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: eMt+xFdhK4sU From: Anton Khirnov Signed-off-by: James Almer --- libavcodec/ilbcdec.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/ilbcdec.c b/libavcodec/ilbcdec.c index 4d0465087f..27423d12f8 100644 --- a/libavcodec/ilbcdec.c +++ b/libavcodec/ilbcdec.c @@ -1456,8 +1456,8 @@ static av_cold int ilbc_decode_init(AVCodecContext *avctx) else return AVERROR_INVALIDDATA; - avctx->channels = 1; - avctx->channel_layout = AV_CH_LAYOUT_MONO; + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; avctx->sample_rate = 8000; avctx->sample_fmt = AV_SAMPLE_FMT_S16; From patchwork Thu Jan 13 02:04:59 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33489 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp41186iog; Wed, 12 Jan 2022 18:40:50 -0800 (PST) X-Google-Smtp-Source: ABdhPJwdVRyA+5r8yxungsRqX6SlolOwfTWsu8w8Xx/j21RFQJZleGiOKBBHiTW8t60DXH2EWCY8 X-Received: by 2002:a17:907:7b8c:: with SMTP id ne12mr1941850ejc.79.1642041650434; Wed, 12 Jan 2022 18:40:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041650; cv=none; d=google.com; s=arc-20160816; b=0TCNC4cspzdqaenBpDD1nD/PB26wrQBZ8QO/66x8Rf/DpXL9kFAkeQWgk435ycFzWI RyVTG0QuXlx1mwipwbyATzCfDPqCdagSWWGDm2ULbpHL01oXWTAXDLhMEqXtgGS5ws/l 6KBNkw/kqsx8BKH77UYW0Y0Hh/OMRhigN1Kb61NVhxi814WbZ7+jG+CubZ3zcGISS6vx XCvp+H4YQCcSJNUEkIPVAVS/plvcyC1smkmG/l1qbCcUJZokzZkBOfdxn5tJG9H9nQiu 0OKqjUrOuwkHw4x5HDGeFTJQC5gJr2cz0sHjvi080SrO32OgobLPRSn3idmLHLgUt4+P BNYw== 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=gPCRBaZxOn1WdlCK3aVtXUD1WxeX7L9nIjU80Qrk9r4=; b=AKYknHQzXXLtt0xveDjspAJkFIvD9P7LyfE3bXHSi0q/iO+cOlUiCQDcocv4xDHdGc V1XaKIJ9qQ5LPetCO020epv5v2nBMldmK9KV5PktWiyfKVVXibmgr1jYwk3iVgN58GS9 71BPKGVd5PSexkdr1/DI72BW5e8oEL+jcDYh7jwC8fxh8qvlDJAdpaj2qix6QifxvO/y PpTmSbFVwMZzUl7rcm4Zz69vSYqjcuZt+nwWHei+vJToF81r8TSzNn8myVAFOeHxPf+D /LGYCaOIwodj9kLXylzf/x9ch5zanSUhGvywxUJACLLEDr5gqnMga0W4stGletNuSB/b r7TQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=lAus1XJ5; 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 cz8si853919edb.109.2022.01.12.18.40.50; Wed, 12 Jan 2022 18:40:50 -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=lAus1XJ5; 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 495B568B860; Thu, 13 Jan 2022 04:05:50 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f177.google.com (mail-qt1-f177.google.com [209.85.160.177]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3751768B84B for ; Thu, 13 Jan 2022 04:05:45 +0200 (EET) Received: by mail-qt1-f177.google.com with SMTP id y17so5341344qtx.9 for ; Wed, 12 Jan 2022 18:05:45 -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=Z/2aqDOgloct0BkI82zAYATCk0c13opHhtRoUNM0/aA=; b=lAus1XJ5EAmxWyHYHE9CGH0LI6Crqv+ljJVbd6FKttSjHDl0D9Im1ML9Nfxz6bd4XV Uiw+EelqgAKIRzCuuNexbw78/JnGzEN6jc4EUornXg2veNIPAWcpJ2+q12DnJhaiS3Vv 0iFOmTVtA3tvk9USqdHQR7xQrFzjJYc7me45DpOSRvDDzmrdl0pYaol2I05SlpU03r80 CqKhXhYwHfXMgvuxRK+FhqNBlx++M7ZSGqZbk5yMs+hDs3dSVhhqb6+sg0TIY5SVR5/O Xbc1YGPsEE2kORkbTeoId4LLotfdm3ZZs+FgEayST+5jaCnJqAg0SwQRc/dlXXdm0BTS zC7w== 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=Z/2aqDOgloct0BkI82zAYATCk0c13opHhtRoUNM0/aA=; b=18+L8Uy//R2LtZ/44h2wlRaWjfWPVS//6wSdeXg5p1CL5ClhPC/2SKz423kUzqMZmD KEYEzjMLeZENbSsBLDNzkI8WzQem9TIEC1Ft2e9vesW4R7krVpOxr0DvJ0LY0/zx3JNe HknbhgVlSmLeYY3oxdNSggXqfb4XH9sYlHN8PC1yEiEZwhCyVWcOSebUwAynC1ZVA+xs r6tYIXb8ViO6m5tkXcYoxMvOynxYIL1TD3E/mgbxs86fLkfZe+fuHtRJEaT04E1EovMG sMyszjfJ7ZhKlj1V78WUTj3q6lT0ewjXAW9tUAZ5YYFyFVcWFVVXdYz9TCapMUuemd7x hlJA== X-Gm-Message-State: AOAM530MjFjZGlejsHinfEcTZDXjpywxvxTBJEnkWA74Pi/ghhsNhfZN T7wgjmVuaX9sbDOWmkgqs4N5qZVCnc4= X-Received: by 2002:a05:622a:148e:: with SMTP id t14mr2024058qtx.254.1642039543770; Wed, 12 Jan 2022 18:05:43 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id k9sm1264556qko.29.2022.01.12.18.05.42 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:05:43 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:04:59 -0300 Message-Id: <20220113020518.730-11-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 220/281] imc: 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: Cq2ih8uT1GVk From: Anton Khirnov Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavcodec/imc.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/libavcodec/imc.c b/libavcodec/imc.c index 116c273ba0..89b2ac33e6 100644 --- a/libavcodec/imc.c +++ b/libavcodec/imc.c @@ -206,15 +206,17 @@ static av_cold int imc_decode_init(AVCodecContext *avctx) return AVERROR_PATCHWELCOME; } - if (avctx->codec_id == AV_CODEC_ID_IMC) - avctx->channels = 1; + if (avctx->codec_id == AV_CODEC_ID_IMC) { + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; + } - if (avctx->channels > 2) { + if (avctx->ch_layout.nb_channels > 2) { avpriv_request_sample(avctx, "Number of channels > 2"); return AVERROR_PATCHWELCOME; } - for (j = 0; j < avctx->channels; j++) { + for (j = 0; j < avctx->ch_layout.nb_channels; j++) { q->chctx[j].decoder_reset = 1; for (i = 0; i < BANDS; i++) @@ -270,8 +272,6 @@ static av_cold int imc_decode_init(AVCodecContext *avctx) ff_bswapdsp_init(&q->bdsp); avctx->sample_fmt = AV_SAMPLE_FMT_FLTP; - avctx->channel_layout = avctx->channels == 1 ? AV_CH_LAYOUT_MONO - : AV_CH_LAYOUT_STEREO; ff_thread_once(&init_static_once, imc_init_static); @@ -1013,7 +1013,7 @@ static int imc_decode_block(AVCodecContext *avctx, IMCContext *q, int ch) memset(chctx->skipFlags, 0, sizeof(chctx->skipFlags)); - imc_imdct256(q, chctx, avctx->channels); + imc_imdct256(q, chctx, avctx->ch_layout.nb_channels); return 0; } @@ -1032,7 +1032,7 @@ static int imc_decode_frame(AVCodecContext *avctx, void *data, q->avctx = avctx; - if (buf_size < IMC_BLOCK_SIZE * avctx->channels) { + if (buf_size < IMC_BLOCK_SIZE * avctx->ch_layout.nb_channels) { av_log(avctx, AV_LOG_ERROR, "frame too small!\n"); return AVERROR_INVALIDDATA; } @@ -1042,7 +1042,7 @@ static int imc_decode_frame(AVCodecContext *avctx, void *data, if ((ret = ff_get_buffer(avctx, frame, 0)) < 0) return ret; - for (i = 0; i < avctx->channels; i++) { + for (i = 0; i < avctx->ch_layout.nb_channels; i++) { q->out_samples = (float *)frame->extended_data[i]; q->bdsp.bswap16_buf(buf16, (const uint16_t *) buf, IMC_BLOCK_SIZE / 2); @@ -1055,14 +1055,14 @@ static int imc_decode_frame(AVCodecContext *avctx, void *data, return ret; } - if (avctx->channels == 2) { + if (avctx->ch_layout.nb_channels == 2) { q->butterflies_float((float *)frame->extended_data[0], (float *)frame->extended_data[1], COEFFS); } *got_frame_ptr = 1; - return IMC_BLOCK_SIZE * avctx->channels; + return IMC_BLOCK_SIZE * avctx->ch_layout.nb_channels; } static av_cold int imc_decode_close(AVCodecContext * avctx) From patchwork Thu Jan 13 02:05:00 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33490 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp41272iog; Wed, 12 Jan 2022 18:41:01 -0800 (PST) X-Google-Smtp-Source: ABdhPJxBb2P4A474Q+Z9zXnk0f4YkU9hgtLDOsRF25xMb+OjGIg8geWMmM7H6qRuiDzGgzf/fj4Y X-Received: by 2002:a05:6402:655:: with SMTP id u21mr2353282edx.30.1642041661686; Wed, 12 Jan 2022 18:41:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041661; cv=none; d=google.com; s=arc-20160816; b=naWGQa8BX92+N/OG+t3/OoujBW2QxljwLvpI5RSW0kp1QfXSiExvqoZ+IuXvAeOim0 BNjjzgZPIPrYf9FfPgmXuVp1bguLPGv6YvGh6Z+7iP/j54UWQtn/WR0AyuwpAOzmNEKN P4LjnJuLl8rnqwsUKadoQ627rsLLjtPb7iND8k9jTH39KZO8hzzQV1zQ0ovcgdYDKJmf njFmPQm30e5zKSaiVHNLuyoQ4h1Lhq2l5dbJgUfFtfyN2qcl8znjehGzjWhwR/zAd62C 9SDzNsQjV7xgN8ElqtNC01AFstgCh/8PB4gaDzAQWnlre5vwnjpZzluaNr7SgG2TRVKp 1meA== 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=wNd/pxR56uPBdfdL143lXZWFIx8qAyh2fWoFP1lOzy4=; b=Uu2O2fhHzpZ1b4h/PPdENMVMRydLfdG1f9jd5Hp0AXRBZzci8zxk1etKTwd7lCrLWa TQ3vrI4GVW7JvwEeM/sawTAQsoUYElRU16bPERxerJb18uCCChwZEyL/tjHA3PIImKCr LIURJs3fzACOpimxz4h7Px0RrtD/oV52vRmnITejKsQcMsHF3g6B6s/mrtpYsa6sI1ij fOMRmDb+uhBuSBvxulmVVwK2gyNa/kd0XxJN/0QIThfRkSfHdTLBoQ2CBdKx+yE4CR1l HSUCF4AgCCAMIlgyoFr4fDMqiCV4cvw0eq4ENbTUe/Co86rq8ENjWcqbJGxmD0EtN39I Oh2g== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=BZDBk1ZQ; 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 v7si918651edb.41.2022.01.12.18.41.01; Wed, 12 Jan 2022 18:41:01 -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=BZDBk1ZQ; 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 1CFC868B88F; Thu, 13 Jan 2022 04:05:51 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f170.google.com (mail-qt1-f170.google.com [209.85.160.170]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 87EE168B85C for ; Thu, 13 Jan 2022 04:05:46 +0200 (EET) Received: by mail-qt1-f170.google.com with SMTP id bp39so5329378qtb.6 for ; Wed, 12 Jan 2022 18:05:46 -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=oJeyEdxQPed5C4Bc6CR7vq17p6kRgfuEnXfoPbAmCrU=; b=BZDBk1ZQazwiyrPLf3F7B52KiGR1kYkhJt5Z9JptbPqQc/9BP9L/fIjBE1+U/UjXgE 4HrJzq/eRwamXgTo3yg/lTgDwzazevCU3bMvXFxCKVwm8GXEHHDvN7O7hhMtmctw4Xlb 31viga0/YpeFAkAuNAaECXk8parGQuHX2YkSHRnon3wLCXF6a6JHsfJjOUCsYfeAPupt R1I3I6ZDCdi6CO80b0R0nHxMT9k2ShvfLlt3LO8BixAnCuP8KsdCVmXtfeGCZi+4Ey4M VZ6hH0dtHoXJIcNt0FMtEv9r4XTIVYhghLelReC2AefRY/xtTYyWixYoRbvJBQX5DO0X oLUA== 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=oJeyEdxQPed5C4Bc6CR7vq17p6kRgfuEnXfoPbAmCrU=; b=Yed3R2azpDA2a9rgdfbkhwMpr4jTfYvaoUC7wrKQG/JRxtaALvlk2iyBHYFnDB5msq WCCRa5j6qHd0a7bhnixuTx+5Iat+nlN+ooFCTFpXySQHg1fGi70iU4GL5BBt97lUuTrF KjEp0tD0UHqmmA20Sl3CDmSdErE4ri0uHFtS4/2Zva5fKge0Bz3+hP+x/sbkNsoerQ8R lNb/0QAvyn/WxjfSAVoCiLO54RVMlV4cvLn1R6ZMkc3yBs2e3Zf1JNa76gZzVS7v+pXR dngELr3bXnG9HRDs5m8M2M+/mGZkJLfWpDOUtXez3CRs/4DX0tPdsmqEmIWlwmE9VroR qrtQ== X-Gm-Message-State: AOAM531ncOzhUir3E8CWhwPmxSHYAvvmUFjxV/qLKnK9l+EG4s/1CBZ2 y6sG0g9ZR42BX0Uq7Ql0o84rGRPrz6c= X-Received: by 2002:ac8:5e0f:: with SMTP id h15mr1994417qtx.499.1642039544969; Wed, 12 Jan 2022 18:05:44 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id k9sm1264556qko.29.2022.01.12.18.05.44 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:05:44 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:05:00 -0300 Message-Id: <20220113020518.730-12-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 221/281] interplayacm: 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: 0j42+VxBarv1 From: Anton Khirnov Signed-off-by: James Almer --- libavcodec/interplayacm.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libavcodec/interplayacm.c b/libavcodec/interplayacm.c index c11178a9ee..7b4e539239 100644 --- a/libavcodec/interplayacm.c +++ b/libavcodec/interplayacm.c @@ -79,12 +79,12 @@ static av_cold int decode_init(AVCodecContext *avctx) if (avctx->extradata_size < 14) return AVERROR_INVALIDDATA; - if (avctx->channels <= 0) { - av_log(avctx, AV_LOG_ERROR, "Invalid number of channels: %d\n", avctx->channels); + if (avctx->ch_layout.nb_channels <= 0) { + av_log(avctx, AV_LOG_ERROR, "Invalid number of channels: %d\n", avctx->ch_layout.nb_channels); return AVERROR_INVALIDDATA; } - s->max_samples = AV_RL32(avctx->extradata + 4) / avctx->channels; + s->max_samples = AV_RL32(avctx->extradata + 4) / avctx->ch_layout.nb_channels; if (s->max_samples == 0) s->max_samples = UINT64_MAX; s->level = AV_RL16(avctx->extradata + 12) & 0xf; @@ -585,7 +585,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, if ((ret = init_get_bits8(gb, buf, buf_size)) < 0) return ret; - frame->nb_samples = FFMIN(s->block_len / avctx->channels, s->max_samples); + frame->nb_samples = FFMIN(s->block_len / avctx->ch_layout.nb_channels, s->max_samples); s->max_samples -= FFMIN(frame->nb_samples, s->max_samples); if ((ret = ff_get_buffer(avctx, frame, 0)) < 0) return ret; @@ -596,7 +596,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, return ret; samples = (int16_t *)frame->data[0]; - for (n = 0; n < frame->nb_samples * avctx->channels; n++) { + for (n = 0; n < frame->nb_samples * avctx->ch_layout.nb_channels; n++) { int val = s->block[n] >> s->level; *samples++ = val; } From patchwork Thu Jan 13 02:05:01 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33491 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp41365iog; Wed, 12 Jan 2022 18:41:13 -0800 (PST) X-Google-Smtp-Source: ABdhPJy/FhFEWRZUpoE7YdvjYMcJRep9VMJKzE51KDOa8c5hCJOtApOD/JI+EB1xecggthEZPhKy X-Received: by 2002:a05:6402:26c5:: with SMTP id x5mr2285984edd.223.1642041673328; Wed, 12 Jan 2022 18:41:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041673; cv=none; d=google.com; s=arc-20160816; b=gzpNYvYCHSoqXrK3pnImHE+UOouvhf1VBopjKdBB3L7PEWYbSEycLpHVkZWn4L9Xsc 0ywhqH54yNJaROUOpzdpFIiuWMX6MjxbRoCOX6CC/kDw6JRJ8femWYjFfVJmR75R6Rt0 NivyCgVY04+gT80KiIZqA+Adlt4UMMMpEnBcVPscqFCgfQoaPuIOPMEWwr8A0UnjHctZ zMV6/K0CwWKdZVOwkARCCcsMcdIxyI0AyxbjUP0x3M4ELu00CnQ+Wots66IZi4cOWTh5 f/ZbjgETUIwcmQnWArIU60jqz7bhrQYrhnugY0OmPBVo3EzZeudTGWdDztoARMO0XdEC Nkng== 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=2kjN5TDg9prRlSNQblIMksEs68G99KhiESn3WpI4PIg=; b=BK3EpcQDDaK2/FKuje8UChdqlv38EKExsd8P5C27b3n1VbJdbNZZdKohXmxo+rOZ4I PLYDsGvuAyamuGGe+wsj8D7SBVTiotG0Vo00H5nkecRMHdREjrpjVVYNM7mKE+YXP334 Ngj58dFhtJnUEwkkOYt0UaRmxO67TMnQrLxDesnz+TaC3Kkv9MPF/8UrJIuSjOwiYRxs 6Bksgu6llhVaoFOsQ0zMcjBtBUvzPiioTZMsPWO+siAdExNMZXXZBSrbjZSFSW6py4tO 1xQMf6HvvXOYGqCJjJ116ridM/X4Ikb4e2B78IIQotGxOVRAwfNrb2Yl+GNCnKUoYhMJ yPqQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=SD9TRJwL; 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 s1si959391edd.28.2022.01.12.18.41.13; Wed, 12 Jan 2022 18:41:13 -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=SD9TRJwL; 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 0FFDD68B87F; Thu, 13 Jan 2022 04:05:52 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f172.google.com (mail-qt1-f172.google.com [209.85.160.172]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8C1EE68B868 for ; Thu, 13 Jan 2022 04:05:47 +0200 (EET) Received: by mail-qt1-f172.google.com with SMTP id q14so5330960qtx.10 for ; Wed, 12 Jan 2022 18:05:47 -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=tw+g35iHNMAdTkVJRV8py7AyB8Y2LV+C0BZ4HSt+/Vs=; b=SD9TRJwLrAGlrDvtMx8CIluCm8BP+mhCIC56u/HouOfV8dwjp+cfPdLFFzOrappjaH INTwQ5dgd+mRzgsKfjCHPlpownRHE65PStqkFLsujI9b5LF8gMvBnSy4cuMEHFyHR/CQ JGMQCHa48jhlm6zlb4yKMu/efX4BK8aHSkT8ylskX27PR+TCfiC+DrR+lMlPiuTpAR7/ Xcm8vEE3gZsgMcGpfr3gqI8T9jbe19aAXm/nbJgxLdVY4cT2IxzQjjm2UdXz8e/gd1Kx 4we0F8Phae7ktesqhb1qMoAZPF6i6tZaDgVxEsmPXFyP8paffHnbbt7XJt9diSId+0mk ZfPw== 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=tw+g35iHNMAdTkVJRV8py7AyB8Y2LV+C0BZ4HSt+/Vs=; b=0qt6ftXOomgpTLcl7g2K+EIxnYnEPxRvmzw6i/YuHxITntaCJtFYtVvTUxrGQ1NQ+C yih/Dgl75p4jVy71yXgoeA6X+xzf0KnH45LtTnPoi3/eyh1dA80fHjdF1L3O7Vy6XPH1 gNjRL9AtRLzOhiTWRBnsTDoSLGoWZYjjCrKW9EeeOdpSsy9qLB3ZIC0I/Tm1y35lIchK 6eA7tuOTy2mN9dLEmGSnwglz8gw1eQTgJ4kJbueuJTRGL/Qu3z3wVQG6AqaSWSiDwV8N gbAMEJJwK9tJOyyqP7nB/H46WeeVcC7jr1GgBn9X21oUQCCoS4a+szsqKwRrafiDZRcr VFhg== X-Gm-Message-State: AOAM533cVPm+qanXLv98gtGQi/I8TkoUkcpor2u0GaJ+KlU8yQ7N++nv EwG+C18w9EQS3Hagg2cL+++cSI3W03c= X-Received: by 2002:a05:622a:312:: with SMTP id q18mr2029774qtw.367.1642039546176; Wed, 12 Jan 2022 18:05:46 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id k9sm1264556qko.29.2022.01.12.18.05.45 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:05:45 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:05:01 -0300 Message-Id: <20220113020518.730-13-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 222/281] libcelt: 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: B4fyTO3sb03W From: Anton Khirnov Signed-off-by: James Almer --- libavcodec/libcelt_dec.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libavcodec/libcelt_dec.c b/libavcodec/libcelt_dec.c index c0fb4013c9..6ee6e29443 100644 --- a/libavcodec/libcelt_dec.c +++ b/libavcodec/libcelt_dec.c @@ -61,13 +61,13 @@ static av_cold int libcelt_dec_init(AVCodecContext *c) struct libcelt_context *celt = c->priv_data; int err; - if (!c->channels || !c->frame_size || - c->frame_size > INT_MAX / sizeof(int16_t) / c->channels) + if (!c->ch_layout.nb_channels || !c->frame_size || + c->frame_size > INT_MAX / sizeof(int16_t) / c->ch_layout.nb_channels) return AVERROR(EINVAL); celt->mode = celt_mode_create(c->sample_rate, c->frame_size, &err); if (!celt->mode) return ff_celt_error_to_averror(err); - celt->dec = celt_decoder_create_custom(celt->mode, c->channels, &err); + celt->dec = celt_decoder_create_custom(celt->mode, c->ch_layout.nb_channels, &err); if (!celt->dec) { celt_mode_destroy(celt->mode); return ff_celt_error_to_averror(err); @@ -119,8 +119,8 @@ static int libcelt_dec_decode(AVCodecContext *c, void *data, return ff_celt_error_to_averror(err); if (celt->discard) { frame->nb_samples -= celt->discard; - memmove(pcm, pcm + celt->discard * c->channels, - frame->nb_samples * c->channels * sizeof(int16_t)); + memmove(pcm, pcm + celt->discard * c->ch_layout.nb_channels, + frame->nb_samples * c->ch_layout.nb_channels * sizeof(int16_t)); celt->discard = 0; } *got_frame_ptr = 1; From patchwork Thu Jan 13 02:05:02 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33492 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp41469iog; Wed, 12 Jan 2022 18:41:25 -0800 (PST) X-Google-Smtp-Source: ABdhPJzPFjyDvhTChq4xOyGbEXZahYPlq2ziXxDhwieSvIwCriK1cNKdLw4lOGLcZs5dL2qwqIKm X-Received: by 2002:a05:6402:5216:: with SMTP id s22mr2342200edd.132.1642041685341; Wed, 12 Jan 2022 18:41:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041685; cv=none; d=google.com; s=arc-20160816; b=mBrU7NYL7xsTdIMvbM/pefs6GFtm+pNgNnr9C9g6qF9OMNvKB+nlxlET+4tfl7pYxz n9S4Kxjd5WGf+WT/NJAQdjcs+lsG1xy4vGHUluKAOm+SexrVAmtiBnM0aS9KWVn+NqXF sZ7O02r8GuMFecpnz1guO1qU/vDl3EJGQd9SwDw9D0yjwLPmKY5D0r6+qiqGN2ojCeAr U9IZyhFggkcZWznmR94BIGtB9vy75OXCYj3X1Z9AMZQQtal6JnqlPiIYQdFKPTxL5Nk4 mXUQuEtx0TmDWIkrJJTtl5WVswLSOwvyA8qzhz9+BDWE50ebcCt8UjCZHBGoLOMJj1Da UKhA== 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=xJXsUiXiSEJrChWDtoP4Y5easUS8WHmPC4MjyWLmVzQ=; b=g5OhI6eKgT6f22VAOyDF2FvtIEionhFcdLolQI+x9DimGcNX3xe95uSeVoYc1p8qkY TcuF+NSyGT2gth8wjt5mxbZaeqO3DqRDlwhrtfR6iTDv2CX1uqZAx8AZj1LvYfD5RzeZ eWBVElTWSXEX6NToE2P1sn55xQ0G+kaY5gnnidBGCS3AGI1LU+SUz3WlzmCzrlL1rtqP M3ptK2QNsYIhEFdVFw88hiTmAMI6bLGi5ExrxoezV9KL8LrakuGaCAKLZcR22tpO0nuC AOs+D5YIN1NZDMBTyZkWq2HQ5P/TObVflL3/fcAxN4zjsK0NsJxpVOQrVnEMP8Ra4uP8 D0uA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=BVkRe8b2; 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 v7si853074eds.443.2022.01.12.18.41.25; Wed, 12 Jan 2022 18:41:25 -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=BVkRe8b2; 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 F1A3268B8A4; Thu, 13 Jan 2022 04:05:52 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f42.google.com (mail-qv1-f42.google.com [209.85.219.42]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BF5DF68B832 for ; Thu, 13 Jan 2022 04:05:48 +0200 (EET) Received: by mail-qv1-f42.google.com with SMTP id hu2so5105541qvb.8 for ; Wed, 12 Jan 2022 18:05:48 -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=vNcyrUwrFvhl2wo3nDAovQlrsM9k9y2jFilvjOxyp/4=; b=BVkRe8b2ZjNCrPlJWWrXDS2Y9h9zs8kaeQvSxMvzTM6446AI5smhoaXBJ35O0+o3lf 1SC5O7xNHfaZxIBfpq74M5+kql+IkeEm5XZ8jxdYmhWdxMHf7NyZP1K0eo+0TeBN/tQ7 uXsNgjWGi7UKi7R2JeMQPdWRAL1ai9V7Z626h+ePnARd6HQ/7Fj0M6HHL+3l+SJOrp1o cNDGXBbjXThcPY6tvopMBmI4ZfM62juCQBezjHuS5AF4LOVqWTpUfV8DPqt6k7jDu619 b2+CFPR4KYtYMq/Xz0W8CpJ5GOk3qJd8ycTK5bFXDiW70wCDzl2Un4Ogi055cdnWMNKi Cn+A== 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=vNcyrUwrFvhl2wo3nDAovQlrsM9k9y2jFilvjOxyp/4=; b=q8Kdv8PD6F2JBfSi8PuIuUdgBj3w5WFVXPwPeIhJuVdvGRhILQbS3Tcv0UJHTQmyif VbacnMe83kLNJ2yj6+CvO+PkieKwO0tWTUiD2oR0WWYcZNzeYxsAUD4HTXLwEfLETmlY o60Vgw+PksTDxbZBBwRnKj6KVMgs6jIx0sfviX4SH/oMcce2gkIbZm6CwTbXBEJcwDqb RP8dDMBsazOK/aXXS84TIcETgzfZjTPnDBxya6Y7fDw99KiOyHNbgmprGnQYsoKMMqSx KOidAHEn/BSwCGjuk6Np7+NTZ3yRxPVqk2PE2B+jAIUpUu4FzoUc1RDoXI1utyDBSG3e Lugw== X-Gm-Message-State: AOAM531qaVJtsz+9ZkqcnQGYpRE0hMmy+90z7JCqWVmzldQNkKhJg1pM 4WUlppjFm3+a+VZDPSI8GI4p+Fg/rJ8= X-Received: by 2002:a05:6214:daf:: with SMTP id h15mr2142192qvh.9.1642039547388; Wed, 12 Jan 2022 18:05:47 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id k9sm1264556qko.29.2022.01.12.18.05.46 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:05:47 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:05:02 -0300 Message-Id: <20220113020518.730-14-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 223/281] libcodec2: 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: Rkm5f6LoNsrX From: Anton Khirnov Signed-off-by: James Almer --- libavcodec/libcodec2.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/libcodec2.c b/libavcodec/libcodec2.c index eb66867f82..da9e170d21 100644 --- a/libavcodec/libcodec2.c +++ b/libavcodec/libcodec2.c @@ -85,9 +85,9 @@ libcodec2_init_common_error: static av_cold int libcodec2_init_decoder(AVCodecContext *avctx) { avctx->sample_rate = 8000; - avctx->channels = 1; avctx->sample_fmt = AV_SAMPLE_FMT_S16; - avctx->channel_layout = AV_CH_LAYOUT_MONO; + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; if (avctx->extradata_size != CODEC2_EXTRADATA_SIZE) { av_log(avctx, AV_LOG_ERROR, "must have exactly %i bytes of extradata (got %i)\n", From patchwork Thu Jan 13 02:05:03 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33493 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp41562iog; Wed, 12 Jan 2022 18:41:37 -0800 (PST) X-Google-Smtp-Source: ABdhPJwjLUuaWM80AFePMQ9VQUEfuRD6FCEQW2F98q+MTOnFoEveo+DMtumVcRDPhEWc/PKg6S5A X-Received: by 2002:a17:907:1b24:: with SMTP id mp36mr1961312ejc.487.1642041697015; Wed, 12 Jan 2022 18:41:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041697; cv=none; d=google.com; s=arc-20160816; b=iUuwzYQrmRanCY7JExTyg6lA0/xyqjSjL6dr98F7dlry6kW6xyFf3Ym0gwauqaJyQp 48YTD+8T1nxe6ug3OpJMRFNYCQ4BsrNod2s72yoSzJY0DVkgaDq7mUz+mgzCAOV+hIHd EiF55HXcSMNZNGDDCJPd/ru5+0TjIZwVJ7ePsOF9vGRWAm/yy62N0pwWOY2Iaovsrq8y Wd350JwLTxB146Pbayl6kC+NtwXMHbiiUqmLldryaRU4uchyuz2qFtn8/pwFuTqoKl97 741d6aFcuVmdSheAW5oZx8VRYGW1yTSJgbyb4xPBP1nBAXSxUYC14nb+jMeESiFJRRPi pi0A== 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=2Cjwj0axNpwIiGztT8aHjRiDjCFxzfHP1vYtcFWX0WQ=; b=KTHeMZJ2lKnzTA4LIedfcqDLPfiUarSOD8zLNt3eh+9JpxP+nJ53EcdObOPxq8HcrL 9Pgy1c91bupST+q1IEAXFTwpphVZ0PACFEoqm2YrEerxQb538uz5dwunfBXdoTAJLSIK h5Q87NY75inEeAG/N2nq6QiLtYTPLwChTsP2S+50RBXEgpwMH2fBc87U+cyF2a75r6l+ rYS31eMgjtbxbPIOxhzfGQj8UKEgqwzwU6D1kqHUz5c8NBtQjl7kUMHXmao3CqBCKD/q e0h80gKWfFy4Qrz9ART4tEEzkYn91UG4CCFYNLlbHuPyJdF960SExNMjNrFgUn5sUIQ+ uHJQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=hJQevTb4; 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 p6si791904ejy.187.2022.01.12.18.41.36; Wed, 12 Jan 2022 18:41:37 -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=hJQevTb4; 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 D835F68B8A1; Thu, 13 Jan 2022 04:05:53 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f172.google.com (mail-qt1-f172.google.com [209.85.160.172]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 167B868B860 for ; Thu, 13 Jan 2022 04:05:50 +0200 (EET) Received: by mail-qt1-f172.google.com with SMTP id h15so984940qtx.0 for ; Wed, 12 Jan 2022 18:05:49 -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=ZzS3l7zCdXcI9/1nF8hnUMTGF5xGAaZjrw60ev0jBuU=; b=hJQevTb4XJt7Jm8k6Y/os7UjBvB3cvLosHXhZpBsDQSblIZsvHx15PlU0RdxJRGvUF wJoRmKjILQTddntZRPeQWx+t3luAKuVp42Pvr/O/EHQS+ucvrx3jFngvHghMdCxGWB6w YWvpUh9R4wUFKV4nnGngmkhkHeJD6GiEeMxH0szO5AjcTIUul9Opq4QuGSDi28X1p4Bf Su9chFIZlMzKRvU7KovqkWn2gwWXhhTdA+Fui92EE410Ei7jWfVTT4Bn/EsuBzHysrol xlSd5fgE7UlWS7B0Lb2U7AzShxIQYtN4FDiOyoPHf49pd5CP4xqgOHCcvGXumlZU9lBh /qdw== 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=ZzS3l7zCdXcI9/1nF8hnUMTGF5xGAaZjrw60ev0jBuU=; b=CLA5cvufv9iqhxoMfJXAL0/q5HiQlKg81JZ2xMcby063TlmZnkWIyRpbt7vfi8WyeB yiYddRYjPRwvbCx1LtbHzpWJsqDD2I61XGxO5zzs1THMW309/3mxa/xxvYEuuZE8Ka8+ tgYNYpPYVuInwr/i6oqVs++pTXDzJNzXvcs+GuOTOVnIu2/hJRwiFgzHdDbozBJwvBxI Ffojyno/BrrHI+SQz1S9pJw9wZ8Re2bvIDQmFjLcgV9ObdF2OQnJPTya/Qb63vddb4ru 5dgUIYQcAemY1Z3FU97RVrWi/U23f+n5Brwhv72Sk9zyB5LhxZAspWfzvcwb6EyQkMmm 3Zyw== X-Gm-Message-State: AOAM533e601Yb6moeGz9ELZ1v874a5TXXqRXmP4S5YRsWD4zxmneGTxV G127uJsBUadkB8XSkz0ZMVvNGoACByA= X-Received: by 2002:a05:622a:148:: with SMTP id v8mr2022090qtw.438.1642039548605; Wed, 12 Jan 2022 18:05:48 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id k9sm1264556qko.29.2022.01.12.18.05.47 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:05:48 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:05:03 -0300 Message-Id: <20220113020518.730-15-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 224/281] libfdk-aac: 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: vzkEJ1oFvJgo From: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavcodec/libfdk-aacdec.c | 32 ++++++++++++++++++++------------ libavcodec/libfdk-aacenc.c | 35 +++++++++++++++++++++++++++-------- 2 files changed, 47 insertions(+), 20 deletions(-) diff --git a/libavcodec/libfdk-aacdec.c b/libavcodec/libfdk-aacdec.c index ffa1fdcce3..1a38aefff9 100644 --- a/libavcodec/libfdk-aacdec.c +++ b/libavcodec/libfdk-aacdec.c @@ -58,6 +58,7 @@ typedef struct FDKAACDecContext { int drc_cut; int level_limit; int output_delay; + AVChannelLayout downmix_layout; } FDKAACDecContext; @@ -88,6 +89,7 @@ static const AVOption fdk_aac_dec_options[] = { { "drc_effect","Dynamic Range Control: effect type, where e.g. [0] is none and [6] is general", OFFSET(drc_effect), AV_OPT_TYPE_INT, { .i64 = -1}, -1, 8, AD, NULL }, #endif + { "downmix", "Request a specific channel layout from the decoder", OFFSET(downmix_layout), AV_OPT_TYPE_CHLAYOUT, {.str = NULL}, .flags = AD }, { NULL } }; @@ -197,17 +199,15 @@ static int get_stream_info(AVCodecContext *avctx) ch_error = 1; } } - if (!ch_error && - av_get_channel_layout_nb_channels(ch_layout) != info->numChannels) { + + av_channel_layout_uninit(&avctx->ch_layout); + av_channel_layout_from_mask(&avctx->ch_layout, ch_layout); + if (!ch_error && avctx->ch_layout.nb_channels != info->numChannels) { av_log(avctx, AV_LOG_WARNING, "unsupported channel configuration\n"); ch_error = 1; } if (ch_error) - avctx->channel_layout = 0; - else - avctx->channel_layout = ch_layout; - - avctx->channels = info->numChannels; + avctx->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; return 0; } @@ -249,11 +249,19 @@ static av_cold int fdk_aac_decode_init(AVCodecContext *avctx) return AVERROR_UNKNOWN; } - if (avctx->request_channel_layout > 0 && - avctx->request_channel_layout != AV_CH_LAYOUT_NATIVE) { +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + if (avctx->request_channel_layout) { + av_channel_layout_uninit(&s->downmix_layout); + av_channel_layout_from_mask(&s->downmix_layout, avctx->request_channel_layout); + } +FF_ENABLE_DEPRECATION_WARNINGS +#endif + if (s->downmix_layout.nb_channels > 0 && + s->downmix_layout.order != AV_CHANNEL_ORDER_NATIVE) { int downmix_channels = -1; - switch (avctx->request_channel_layout) { + switch (s->downmix_layout.u.mask) { case AV_CH_LAYOUT_STEREO: case AV_CH_LAYOUT_STEREO_DOWNMIX: downmix_channels = 2; @@ -262,7 +270,7 @@ static av_cold int fdk_aac_decode_init(AVCodecContext *avctx) downmix_channels = 1; break; default: - av_log(avctx, AV_LOG_WARNING, "Invalid request_channel_layout\n"); + av_log(avctx, AV_LOG_WARNING, "Invalid downmix option\n"); break; } @@ -385,7 +393,7 @@ static int fdk_aac_decode_frame(AVCodecContext *avctx, void *data, avctx->time_base); memcpy(frame->extended_data[0], s->decoder_buffer, - avctx->channels * avctx->frame_size * + avctx->ch_layout.nb_channels * avctx->frame_size * av_get_bytes_per_sample(avctx->sample_fmt)); *got_frame_ptr = 1; diff --git a/libavcodec/libfdk-aacenc.c b/libavcodec/libfdk-aacenc.c index 7ee2f13ac7..d43f45d9ee 100644 --- a/libavcodec/libfdk-aacenc.c +++ b/libavcodec/libfdk-aacenc.c @@ -128,7 +128,7 @@ static av_cold int aac_encode_init(AVCodecContext *avctx) int aot = FF_PROFILE_AAC_LOW + 1; int sce = 0, cpe = 0; - if ((err = aacEncOpen(&s->handle, 0, avctx->channels)) != AACENC_OK) { + if ((err = aacEncOpen(&s->handle, 0, avctx->ch_layout.nb_channels)) != AACENC_OK) { av_log(avctx, AV_LOG_ERROR, "Unable to open the encoder: %s\n", aac_get_error(err)); goto error; @@ -159,7 +159,7 @@ static av_cold int aac_encode_init(AVCodecContext *avctx) goto error; } - switch (avctx->channels) { + switch (avctx->ch_layout.nb_channels) { case 1: mode = MODE_1; sce = 1; cpe = 0; break; case 2: #if FDKENC_VER_AT_LEAST(4, 0) // 4.0.0 @@ -193,7 +193,7 @@ static av_cold int aac_encode_init(AVCodecContext *avctx) case 8: sce = 2; cpe = 3; - if (avctx->channel_layout == AV_CH_LAYOUT_7POINT1) { + if (avctx->ch_layout.u.mask == AV_CH_LAYOUT_7POINT1) { mode = MODE_7_1_REAR_SURROUND; } else { // MODE_1_2_2_2_1 and MODE_7_1_FRONT_CENTER use the same channel layout @@ -203,7 +203,7 @@ static av_cold int aac_encode_init(AVCodecContext *avctx) #endif default: av_log(avctx, AV_LOG_ERROR, - "Unsupported number of channels %d\n", avctx->channels); + "Unsupported number of channels %d\n", avctx->ch_layout.nb_channels); goto error; } @@ -375,9 +375,9 @@ static int aac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, in_args.numInSamples = -1; } else { in_ptr = frame->data[0]; - in_buffer_size = 2 * avctx->channels * frame->nb_samples; + in_buffer_size = 2 * avctx->ch_layout.nb_channels * frame->nb_samples; - in_args.numInSamples = avctx->channels * frame->nb_samples; + in_args.numInSamples = avctx->ch_layout.nb_channels * frame->nb_samples; /* add current frame to the queue */ if ((ret = ff_af_queue_add(&s->afq, frame)) < 0) @@ -392,7 +392,7 @@ static int aac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, in_buf.bufElSizes = &in_buffer_element_size; /* The maximum packet size is 6144 bits aka 768 bytes per channel. */ - ret = ff_alloc_packet(avctx, avpkt, FFMAX(8192, 768 * avctx->channels)); + ret = ff_alloc_packet(avctx, avpkt, FFMAX(8192, 768 * avctx->ch_layout.nb_channels)); if (ret < 0) return ret; @@ -440,6 +440,7 @@ static const AVCodecDefault aac_encode_defaults[] = { { NULL } }; +#if FF_API_OLD_CHANNEL_LAYOUT static const uint64_t aac_channel_layout[] = { AV_CH_LAYOUT_MONO, AV_CH_LAYOUT_STEREO, @@ -453,6 +454,21 @@ static const uint64_t aac_channel_layout[] = { #endif 0, }; +#endif /* FF_API_OLD_CHANNEL_LAYOUT */ + +static const AVChannelLayout aac_ch_layouts[16] = { + AV_CHANNEL_LAYOUT_MONO, + AV_CHANNEL_LAYOUT_STEREO, + AV_CHANNEL_LAYOUT_SURROUND, + AV_CHANNEL_LAYOUT_4POINT0, + AV_CHANNEL_LAYOUT_5POINT0_BACK, + AV_CHANNEL_LAYOUT_5POINT1_BACK, +#ifdef AACENCODER_LIB_VL0 + AV_CHANNEL_LAYOUT_7POINT1_WIDE_BACK, + AV_CHANNEL_LAYOUT_7POINT1, +#endif + { 0 }, +}; static const int aac_sample_rates[] = { 96000, 88200, 64000, 48000, 44100, 32000, @@ -475,6 +491,9 @@ const AVCodec ff_libfdk_aac_encoder = { .defaults = aac_encode_defaults, .profiles = profiles, .supported_samplerates = aac_sample_rates, - .channel_layouts = aac_channel_layout, .wrapper_name = "libfdk", +#if FF_API_OLD_CHANNEL_LAYOUT + .channel_layouts = aac_channel_layout, +#endif + .ch_layouts = aac_ch_layouts, }; From patchwork Thu Jan 13 02:05:04 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33494 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp41663iog; Wed, 12 Jan 2022 18:41:48 -0800 (PST) X-Google-Smtp-Source: ABdhPJwnUqObZpF5k23ycUyaG4fBxWfEhszgT1Tjyas9PJuabsXFwqBcsN0S901KfhwOO8kWK/am X-Received: by 2002:a17:907:1689:: with SMTP id hc9mr1971250ejc.228.1642041708099; Wed, 12 Jan 2022 18:41:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041708; cv=none; d=google.com; s=arc-20160816; b=ikKMTQjeFMdx6cPttm0wb5gXqIR7Ryx39sEhVl3Gxa8sEPN1JcWSA4YT0b1gB0HWPo WCyFsXFp2yXLwm7ulY83vN7H9ar/9ASxsZ9un8ydkRtQUFZx505DT9oW1MtoTC6aBqIH NhznWms4sW42zAFINsAGwGmaIzmZuKoqVfnoNPFbhdgh1GDzm5ys2qYCMIqMi2R3+unt ShV8Fym8MhsOAxWGTIvS3thDKmNojCMAa2VbvU6mZX5Hr1cJ/lOwTfGzmcI1ouX5XmO+ t7mYj3N5JBPwZ08obux98px+lUcrwn2MpBZkSCUvz8vs+0Uex7WFqetV4w+9oFCaYJ+u U13g== 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=fHq6fHV5OdDqRYfxcQDNpe7fNgaFZiS8V2cXTPMGNAQ=; b=hvirFQT4kZQxgwk543urfpcgdDrUQyweNb36F19r2KszQvbeFg1qNBh+ypSUxIoTeb 4vrOP0ZJyUJi873Fabci4qtCmGbb3Na//a9VdWTUM3k3Cqu4ihU7hIxdQMJFsu3NkBNN lx0DwFVRBJ8MhMGTyVcj/ORyOG2rPpYDk6ws53Xvn0L6aHOpp65yxwjJpnMirYrB7VPV GcQ+NIZL+SMXs7zBOgUi6KGObUHDBrMx4noDSqMPkZaCpPiySfTQoomJAP1/gYsRV/98 wyU9dBKMHVF5pZsT+twM5Td2Aldr7gwPSGpy6fT9wCLjDqaduAc3PGPJqUYOekdcmS/H aRDA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=Mc6w+LEp; 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 hg5si910864ejc.551.2022.01.12.18.41.47; Wed, 12 Jan 2022 18:41:48 -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=Mc6w+LEp; 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 A395668B8A5; Thu, 13 Jan 2022 04:05:54 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f42.google.com (mail-qv1-f42.google.com [209.85.219.42]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3613A68B86A for ; Thu, 13 Jan 2022 04:05:51 +0200 (EET) Received: by mail-qv1-f42.google.com with SMTP id kl12so5111736qvb.5 for ; Wed, 12 Jan 2022 18:05:51 -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=kUZbvZx+oxRQ6kNlCmgu986Rx9I+vsAgvq9BjQkH2rg=; b=Mc6w+LEpBa943J4hjGnnRnW7X+rR1pBRdgcYsrCJjtW0wAZs/jUt1ThZ0OLH9cihbU jc/bqQkIoVljzvIrl5PvkkmleJbdyo3q/p8NXqm4F5X6N/WswVDlWWc1nosSkaq0dL02 kSaIPh0LfIlv29sX/W2SLIxZWnGVSFtSE57Ib3yufRvqgkXr5w1sAWtNLql52F3OTcEi b19pJ5hqcOzwagqn22rRu0CLKfiLpw/imSTLHjbmpp//sISveK8uCqqBZ8Cio3+k2mxS F9N4dyccf3DxqGiE2dMWg7wq91VBcXHCPsW8eBRNc0X/02oYGjrJaX0ja1eqLCqaNO4z gSwg== 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=kUZbvZx+oxRQ6kNlCmgu986Rx9I+vsAgvq9BjQkH2rg=; b=m0s1EYGwiV6TOV2X6+/308acq+cZX+B2oX5xuHlZW+lOQ96V1iPfmApXI+i3IBIQbF Cm7TvNS/1wsCZ1bl9AdUzh/aQQTtbCpAzc+yfpWwA4YgxV2Y21947HII/feEi53FecaB uGQ1g88VFYsJwps5O6uJWz/9M46qnt6xhFpxs/cPoBoax4JlJCYoXlYEBRMr1JBKOGKe B9EnvBQCRnAwookkO+Kp7mxgyjj9WoG0h3+D3q9AkIBOk6AGNB9kEeSZ5HYCs2C0k3fg qmN39Mle7gZhJCTRDjkoWpkJKEtshwFFVuh8GuTyyzlSm+17w4YP1voo9StjIdnPOTxx KF3w== X-Gm-Message-State: AOAM531xpEdRqNhPPZJqPTRtQLab/v7rJDckwL2CWIPY0VLl1Xln+0Ip PVAydiVGTBbA/mE/297y83dI54F4sRs= X-Received: by 2002:a05:6214:5092:: with SMTP id kk18mr2163840qvb.43.1642039549806; Wed, 12 Jan 2022 18:05:49 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id k9sm1264556qko.29.2022.01.12.18.05.48 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:05:49 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:05:04 -0300 Message-Id: <20220113020518.730-16-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 225/281] libilbc: 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: h8r2AXhAnKR8 From: Anton Khirnov Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavcodec/libilbc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libavcodec/libilbc.c b/libavcodec/libilbc.c index 04192e3045..cfffe7d520 100644 --- a/libavcodec/libilbc.c +++ b/libavcodec/libilbc.c @@ -78,8 +78,8 @@ static av_cold int ilbc_decode_init(AVCodecContext *avctx) WebRtcIlbcfix_InitDecode(&s->decoder, mode, s->enhance); - avctx->channels = 1; - avctx->channel_layout = AV_CH_LAYOUT_MONO; + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; avctx->sample_rate = 8000; avctx->sample_fmt = AV_SAMPLE_FMT_S16; @@ -161,7 +161,7 @@ static av_cold int ilbc_encode_init(AVCodecContext *avctx) return AVERROR(EINVAL); } - if (avctx->channels != 1) { + if (avctx->ch_layout.nb_channels != 1) { av_log(avctx, AV_LOG_ERROR, "Only mono supported\n"); return AVERROR(EINVAL); } From patchwork Thu Jan 13 02:05: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: 33495 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp41750iog; Wed, 12 Jan 2022 18:41:59 -0800 (PST) X-Google-Smtp-Source: ABdhPJyKuwZq+Hn0i/YLuESX9/XAQbpVXXjtY9NwWyveJlHZ19CdcSKe/2hx/JdVfxL6FowlKuDF X-Received: by 2002:a17:906:2655:: with SMTP id i21mr1880175ejc.551.1642041719544; Wed, 12 Jan 2022 18:41:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041719; cv=none; d=google.com; s=arc-20160816; b=PwELe6oaIUJZGinteXHRJojvLO0hUweVepQcA9/XJS33abY1OhPJ6LdBvLbYpGTu3F GisJMXJMNPGyaVQG6jg64KbiAMSwWhRuyEc0WP6j0ewNAV+wSI/TgerZ14pOKHKiadUp 0504nQxcQbl7w745Q2EzmHfu8fJ6w9DAcQYDDuUVaxgKNpMb+cmUtdj1Lw/aS3CyzpR3 SK5y0MeeAkuEIL2tausqOZifJfGWX4Dy/ZTzlAYScGa93R1ChL5ZjbflaOlzYvXhjqZV vHTiHTHRgRuM113egSpSsc8aJFq/w4DcqUzQ99CKbRHKE6NA3HeeLvODD/sca2E8DxS+ A+wQ== 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=ELbDGRTQCvRkM22+bqGs9WAT38AQqXFQRRHXU/VD8vs=; b=bbSyM+wq0ETGrlzd2C2YdDMt+FY6reDzOWDMvytCfdqwBzPKuarvmqDbKpwkWz0CTT MCCo0Icckigk2QL7GPbur1PXpuas28H0dwqB2pGX1Pg6gi8bBnouNykWNgDPc1gvwIxj eU2brKnHjC0WCmJeqKy4xXjDnftpQ5Hmmci9EbCd/6J4SuB2pH97A2h5vcDF1Bn6E2ft GMzCAEoiuBbQpo6On1asD0T8C0jSFDe6wX2OTnI/njGEV4k8LIZruMpqubNbIhGM2Bdp tt96FbXqFf1BbDMB3DUx+XuAqoTTbPHSIcDqZTI9wC7MIfWhqwvT+Gy0JeSipKzeNjWX ec4Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=Wh6biK+t; 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 hj1si957810ejc.849.2022.01.12.18.41.59; Wed, 12 Jan 2022 18:41:59 -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=Wh6biK+t; 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 99C1F68B8C0; Thu, 13 Jan 2022 04:05:55 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f170.google.com (mail-qk1-f170.google.com [209.85.222.170]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7861468B89E for ; Thu, 13 Jan 2022 04:05:52 +0200 (EET) Received: by mail-qk1-f170.google.com with SMTP id t24so5555641qkg.11 for ; Wed, 12 Jan 2022 18:05:52 -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=MrxC1q1d/enT7ewRvlWf6+b3ZBZOL12gNloFIYGliX0=; b=Wh6biK+tZhUZWCf0uMdulOUzDtQ3OtFMa14dopUGrEspp3sYs9SiZuSPkDyTHM4Sk4 w2SycirTbt2ZtqWoh2q9hZVegcJYDfSx7m6s6AX+CmATZAwQJZoQWqqKu3JrjoiSMAua C1+SbOzjOD5EdjMJXqIrVkmGjixYmt6ZVPBTGph/mhvd//zv+21FxBQ28oIW4K33OlL9 YPLwnNIKuKE87snE8TGialtoN+p1zubPK23shNSfi6sbpzy0llmUxPhQ4JmRe/R5pPqP GEwjL29q+bj6HK8CImoZHcMaSmfUGneMExKjQiNZSBVHZAhuReBNNnAnULdOLCM1PLgX dvAg== 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=MrxC1q1d/enT7ewRvlWf6+b3ZBZOL12gNloFIYGliX0=; b=eIWqf4rb4zZHjSk0Dx2mBWnGZAiiAjGBWX6HEuVBN5h++IFoqcO0gC4Bev6exet59b nqwgMCLZYWKWESum9TeBXskxUITJIXlj/rdxwsXjOjGAiFMsg6UO3+cxn5qVfFDctQml yCdXq36UaGuAj1LxCjul0mgiQYslSQA9L7MsQAvgseqhj9xXltMgKad4pbsZ3XP70Y5M NLpWAgeYOPS7AuhNO37eYSI4HuY0OKZta/6ywgWs0d1462znew7XWGCfhUOPb8CjUZPO pB9gZJJFk9IILIZw4p2+MAx19RNqiX/cTj7PF6Xok5hdZC0ayGdClRDudLS4/xIiMFyF TwFg== X-Gm-Message-State: AOAM5322O1tpIDex761ylalP5+vhEDNnVMBaj6M52Xj5AwNoX0qpmFoG lqNGz5J/AGOt7TgggIpnfa+C3lLw9mM= X-Received: by 2002:a37:ae06:: with SMTP id x6mr1902954qke.13.1642039551066; Wed, 12 Jan 2022 18:05:51 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id k9sm1264556qko.29.2022.01.12.18.05.50 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:05:50 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:05:05 -0300 Message-Id: <20220113020518.730-17-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 226/281] libgsm: 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: yv7GdZ6+Qb4d From: Anton Khirnov Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavcodec/libgsmdec.c | 4 ++-- libavcodec/libgsmenc.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libavcodec/libgsmdec.c b/libavcodec/libgsmdec.c index ae4a952d99..aa028bc262 100644 --- a/libavcodec/libgsmdec.c +++ b/libavcodec/libgsmdec.c @@ -48,8 +48,8 @@ typedef struct LibGSMDecodeContext { static av_cold int libgsm_decode_init(AVCodecContext *avctx) { LibGSMDecodeContext *s = avctx->priv_data; - avctx->channels = 1; - avctx->channel_layout = AV_CH_LAYOUT_MONO; + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; if (!avctx->sample_rate) avctx->sample_rate = 8000; avctx->sample_fmt = AV_SAMPLE_FMT_S16; diff --git a/libavcodec/libgsmenc.c b/libavcodec/libgsmenc.c index a2f6c1c62e..f73f254d50 100644 --- a/libavcodec/libgsmenc.c +++ b/libavcodec/libgsmenc.c @@ -49,9 +49,9 @@ static av_cold int libgsm_encode_close(AVCodecContext *avctx) { } static av_cold int libgsm_encode_init(AVCodecContext *avctx) { - if (avctx->channels > 1) { + if (avctx->ch_layout.nb_channels > 1) { av_log(avctx, AV_LOG_ERROR, "Mono required for GSM, got %d channels\n", - avctx->channels); + avctx->ch_layout.nb_channels); return -1; } From patchwork Thu Jan 13 02:05: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: 33496 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp41827iog; Wed, 12 Jan 2022 18:42:11 -0800 (PST) X-Google-Smtp-Source: ABdhPJwhj+42OSrs72EqHpXS9pXXYkAb4mpolLU1E/WUIcPmh1iOQTA7n/EUzD3jXcbzlkrtdT4j X-Received: by 2002:a17:906:1da9:: with SMTP id u9mr1994331ejh.756.1642041731210; Wed, 12 Jan 2022 18:42:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041731; cv=none; d=google.com; s=arc-20160816; b=y2pwojhOXG3rmfMS11Py3RQgAbfY6AfWjeQnhWdDpR+5kTLWP86lrl1MpJUuQIXG3d jEP1ulpTFspk+TJZ9pCjaPLfsTd61+4aAf3XJNbzdBZOmeKJCRtj39rMx6bNRE08UYUw Z+B0vn8nqyUy24KUMbvL/gROZ7zdc69qTHieYcUXotA5xYppj+LWdYEdkteFQdEiaKaE tl15u9qpt32WTxfSCngppZuhp92oadqC2OaqnOAaabD41opozSXhEGbE3X8qA3r70msz uzon4y6z6bu2al1/jF6OsCLozBXj0tud3ZV6zDAvRHrL3Sjuie6FgBd4JuDKaWMSE7rO peKQ== 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=svx1DyibBNFJrzUD8l3/SYgsfu93atpcISeH45YibPI=; b=H/qQ6w6ZeGKcDbBA/pgK7901qogCW4jK+Pv/coFr0HYt3+eU/RoLIYpjl9yCs3nkFk 6NzFheIAp41gUzbtKdHZ3dyP8f4jukJpkbaGh+j99CNH5/Nk+dYrmyTowJWg33CJcudj LIQk7EnGzqU53umFgpicIIGBUo7T4w4Az2gABR/qNlza9uzb7xcA/2sBJYTLyV1leyfA YXQYJVXaslvTdwVbN3hrvJYwEUmsyZwoIt77OfCYAl1aoePUwHbINIe+hHA26NpLd62p J+robtZ3mfffXuLQ89knPw7J3bG82R3AxKM1UOUskGZFPptRyPQdg6iddh0ZeIaiSy92 MxDw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b="njJX1/46"; 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 w23si767215ejn.673.2022.01.12.18.42.10; Wed, 12 Jan 2022 18:42:11 -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="njJX1/46"; 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 9A7A068B8C8; Thu, 13 Jan 2022 04:05:56 +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 D2AEE68B89E for ; Thu, 13 Jan 2022 04:05:53 +0200 (EET) Received: by mail-qk1-f174.google.com with SMTP id m2so5575036qkd.8 for ; Wed, 12 Jan 2022 18:05:53 -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=aiQraiLwdnFWM1WhHVBzQBOZaw+4mmChSfOHM9HfXME=; b=njJX1/46s9T3Lb6Mv+iyhmOZJsSZ0uqJJriOJbA1Kniha27DUZThEhBU3qW90Ntw44 2riIBaWbH9v9+DG9ARhE1LG6XHZ5C0scGXuTBZY0qGllApJRd7MoAy9zfAltzaYsKoCD MGO0LyPKNnkNXYwhaqcin/XMbY3pQPi+ywHiRfCNwUta9EUmm9ItAG2x3GhNSNao+9vE VknQDeSVyRhv5iitRDH6u7e5sbrWgcJFWFXxMvngWqHtaWpIM+TKpdFNcWbvQ/uemaah uQx3SzrhaJ2w6R/eRrfwXZF/nX03GV+0okbFusj7kBPp3585RumxHU8e6ZOAmPdZsyIn qmpA== 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=aiQraiLwdnFWM1WhHVBzQBOZaw+4mmChSfOHM9HfXME=; b=fO7HUEaQP6uzZucwBKj1pzJHqLMjproOcCtVKxiL+UsTy6+G8pYp/j1fRuuQJjoW8i /qsMEW9Nr5u73aVfUMfu9AG99SggfsbAujOwBk7BA1UIi6Ce3wHlTqZt9hfEwUnIL7H5 rZ60vN6tN0DwE+lV3K+yQs70ZoNIY8st02PpSO8LF0CelijP9KcRAkPyraMombLKYGK6 S20behWhOLJU2MEN+zMpPSplUdUg3QgoQJEKHcwDt99NIT5b9u9ewa08+vVdanSFsd/2 DeFjFRHL1nGKO6v45eVPFbs5LO32ZKY9Hpo+Pz5+vAceJ74Ql5Na2n+4TvC1rgz6/Tr9 /Jig== X-Gm-Message-State: AOAM533Ub6TmWs0SXAjxCgtwRyKoiSHtW7k+r76RpkZQz4jDcCOWWmDa fz/OV1VSLLjlOJf8u49Lcnms54K9alc= X-Received: by 2002:a05:620a:d48:: with SMTP id o8mr1809851qkl.88.1642039552255; Wed, 12 Jan 2022 18:05:52 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id k9sm1264556qko.29.2022.01.12.18.05.51 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:05:51 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:05:06 -0300 Message-Id: <20220113020518.730-18-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 227/281] libmp3lame: 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: Zxok7rMEawbg From: Anton Khirnov Signed-off-by: James Almer --- libavcodec/libmp3lame.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/libavcodec/libmp3lame.c b/libavcodec/libmp3lame.c index 5675864bb2..36ae57eb83 100644 --- a/libavcodec/libmp3lame.c +++ b/libavcodec/libmp3lame.c @@ -101,8 +101,9 @@ static av_cold int mp3lame_encode_init(AVCodecContext *avctx) return AVERROR(ENOMEM); - lame_set_num_channels(s->gfp, avctx->channels); - lame_set_mode(s->gfp, avctx->channels > 1 ? s->joint_stereo ? JOINT_STEREO : STEREO : MONO); + lame_set_num_channels(s->gfp, avctx->ch_layout.nb_channels); + lame_set_mode(s->gfp, avctx->ch_layout.nb_channels > 1 ? + s->joint_stereo ? JOINT_STEREO : STEREO : MONO); /* sample rate */ lame_set_in_samplerate (s->gfp, avctx->sample_rate); @@ -151,7 +152,7 @@ static av_cold int mp3lame_encode_init(AVCodecContext *avctx) /* allocate float sample buffers */ if (avctx->sample_fmt == AV_SAMPLE_FMT_FLTP) { int ch; - for (ch = 0; ch < avctx->channels; ch++) { + for (ch = 0; ch < avctx->ch_layout.nb_channels; ch++) { s->samples_flt[ch] = av_malloc_array(avctx->frame_size, sizeof(*s->samples_flt[ch])); if (!s->samples_flt[ch]) { @@ -208,7 +209,7 @@ static int mp3lame_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, av_log(avctx, AV_LOG_ERROR, "inadequate AVFrame plane padding\n"); return AVERROR(EINVAL); } - for (ch = 0; ch < avctx->channels; ch++) { + for (ch = 0; ch < avctx->ch_layout.nb_channels; ch++) { s->fdsp->vector_fmul_scalar(s->samples_flt[ch], (const float *)frame->data[ch], 32768.0f, From patchwork Thu Jan 13 02:05: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: 33497 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp41892iog; Wed, 12 Jan 2022 18:42:22 -0800 (PST) X-Google-Smtp-Source: ABdhPJw+v4j0IeAqdgtz2NCyjyDZSC27PORrJburpkrawUAcuGk8puh3VqoGAaWx2Dh3R2wpTPeH X-Received: by 2002:a17:906:c047:: with SMTP id bm7mr2028450ejb.334.1642041742090; Wed, 12 Jan 2022 18:42:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041742; cv=none; d=google.com; s=arc-20160816; b=Nkxtlpr3UaDlL0iiaQJKc+F+PUnnx23uosFcoA382wOOAYEtZ0Mv3PlgxNCzpt45JV 0xfxKAy2Xi+XqwHiu1zu3lzGRNqKegW6D7Gg9SJnvQA7mf9oMZsjKzkipamb4yNgGAMa ehqbCL8wXZkdqacs0ofJlCCIcpOZAE+/oePPSOJrHlz9yf+o7k8arxr3ZN6qxFC5ciOl LEglHoAT7LGqswgoOZ8SxNX/wj9n74JSGQCMQaj37i67O7l+oH8dqQGUitfLONs9JQ1b h2C3ASli0JFUC5MiqZstcpNK5szUciQ+VSbe6TkYz34WBHi4JHnYFDELW0vw27qGWMIz K5lg== 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=uiQWciwXs1zeq7YPMsvTGf+LwEhSaezDSUDJL3v0TXU=; b=lw0lSGiIMeggtk1anVgArC1ZQ98mfSvmUCCqDN50JGL6kEW1NJXnC9sZ63gDar8plN Dzeue2tKktbC2eAEYxuW/rHO3vziXeBrvnA+bZ2dtRZ39TuvhepTE4URtFvyjhBIJ/mJ tmvbasolxbJFPXJluHZsJg/8+2qSTsrSXOJOcSnV74z4f7xfdkUplY6HbiaFTjV93Y4v 9LwMMd4n1PFrQzGC+fmRZgfny2TvLHIqISZabJefv97+UEn3bw2bN86JamrVD/Vk2S8t Px58+fH2+8DKXVLwObFdsLcYAEa6IU8y1GCYm7AiPGOX/P3l1cP0qWcOwq8UiD4sgmCI 1GqQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=R+hjSa7k; 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 w8si942154edc.183.2022.01.12.18.42.21; Wed, 12 Jan 2022 18:42:22 -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=R+hjSa7k; 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 BEE5A68B8D4; Thu, 13 Jan 2022 04:05:58 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f178.google.com (mail-qk1-f178.google.com [209.85.222.178]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E50EF68B8BA for ; Thu, 13 Jan 2022 04:05:54 +0200 (EET) Received: by mail-qk1-f178.google.com with SMTP id t24so5555742qkg.11 for ; Wed, 12 Jan 2022 18:05:54 -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=tpx9MYpjauTTJxy/T47pujg2BCKkaI2dmbox0ipsaLE=; b=R+hjSa7kJb6GZ6JMAmKPNAwR3lftexSt1a4rSPVd9TT+LxH1TjN0lhcJIn+cSIN/ib MxCIV74zBxojrFkjiSFAYobJbO5ORVZJd2HcwVrX1HzpOCXNqNRAEw7Qr7xcWHX89dZK zZgrngMKMTdLmPs0bebeajJCEszaYyBIPCYRYqSPdRo24uJzp+Elz4GJstSkImtuWWFy Iy5A/A+MMWAoQQp5N8DyKMHEHTX1jefB/ESbXI4jawLjPfr/GHm8+XVtro/yEnAjLnyE dmwk7sFndYjqJ1y+JDjaAGNnNnGMzQp5QfiwDnFWzK/AKBSwP+yca7iD5+VYYuyDBGJU 4eIg== 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=tpx9MYpjauTTJxy/T47pujg2BCKkaI2dmbox0ipsaLE=; b=iN+Cu0D80HniAogOzgLoYfEHpJkFZZjQDtpe+sM+VkhWquKl9nEKOTYaZsQDdDYmCP V6UMNO3ggNB1qR/bq8rvjO/eo9J71TY6NDmduiFzsu10OdCuKECYKEu088YsAxczF29g UwoWvD0Z6RaL/xuRq6kRTJGN0zp4IDEcKZa83ZYIvP3oRXFGOKO7eIqubrqDiqvtsEi6 ep/nmAVnaQjTv4CIH5GecZd31n7nkRcAG82L2l/wBhF7BnIqlfbA5cMj7dJoVxOLg+Z+ aBi1DNB2GrWpk6IjogbNvgrYBaNCSTHiGS3IW+7/gLGD7tM2SSbrvSCVM3xYTS7PDJcM i9oA== X-Gm-Message-State: AOAM532oTrgzH59DczbbtlGpGPjJVNu74rWDth30P1Y7C8f6VkVfbuCw hxUyfm/h46eY2kkmOoepcmR7YRiBuo4= X-Received: by 2002:a37:688d:: with SMTP id d135mr597660qkc.346.1642039553478; Wed, 12 Jan 2022 18:05:53 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id k9sm1264556qko.29.2022.01.12.18.05.52 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:05:53 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:05:07 -0300 Message-Id: <20220113020518.730-19-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 228/281] libopencore-amr: 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: FHuBAIg64ei4 From: Anton Khirnov Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavcodec/libopencore-amr.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libavcodec/libopencore-amr.c b/libavcodec/libopencore-amr.c index 2df1c5090f..aa5f0e774e 100644 --- a/libavcodec/libopencore-amr.c +++ b/libavcodec/libopencore-amr.c @@ -38,13 +38,13 @@ static int amr_decode_fix_avctx(AVCodecContext *avctx) if (!avctx->sample_rate) avctx->sample_rate = 8000 * is_amr_wb; - if (avctx->channels > 1) { + if (avctx->ch_layout.nb_channels > 1) { avpriv_report_missing_feature(avctx, "multi-channel AMR"); return AVERROR_PATCHWELCOME; } - avctx->channels = 1; - avctx->channel_layout = AV_CH_LAYOUT_MONO; + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; avctx->sample_fmt = AV_SAMPLE_FMT_S16; return 0; } @@ -201,7 +201,7 @@ static av_cold int amr_nb_encode_init(AVCodecContext *avctx) return AVERROR(ENOSYS); } - if (avctx->channels != 1) { + if (avctx->ch_layout.nb_channels != 1) { av_log(avctx, AV_LOG_ERROR, "Only mono supported\n"); return AVERROR(ENOSYS); } From patchwork Thu Jan 13 02:05:08 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33498 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp41990iog; Wed, 12 Jan 2022 18:42:33 -0800 (PST) X-Google-Smtp-Source: ABdhPJyI3b/HEC7mSrdKPIvFiV6LtwuxqK9RMVCXgjNJx4ShSK+ENricDYApVSnjBSpLchkvKujj X-Received: by 2002:a05:6402:5194:: with SMTP id q20mr2305841edd.113.1642041753169; Wed, 12 Jan 2022 18:42:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041753; cv=none; d=google.com; s=arc-20160816; b=dK+dV7QWq+qFE1Hh0MwAeolOBhQZ6iwmq3SmwAi+PhadTRW2+Iyc1nJ9Zzut5hzDDO 3KGf2iKoc3rZ5cXJT49c7n8U0L8KtCbyVFlPIYDbZy0BR6Z0hMN7X1KifX1HpHhpdob3 7vuroAIOxji0LTnf0bM+q4F1w3x7OqEVD5qplUUgAV2MPWvVQRmc7yXTyK9xzEVipRF6 UHjkY2YRnLFrpKIL9Z3543UKIMnRmgiYjE01AZlzWl9++xsy8wx8sQ2COJj22RRnpKqY mrU7ARDLP5h+PDerZgJJXwcxhXjGHDwNNZVRFkKgTv1JCXvLKKZrGUfHONfl2Zhzfqbx eTGA== 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=7HC9+4sXOyBAS1OZNgSfNNEAUEB4VuLxgideMd4Jmn8=; b=ymrNydtTaQ650CZmnh8jPqhfxw8Hcg7/YoWkaUp0CCC/9+HqTciAEwc79kg9M9jq5S PTvIlqG8PdG8P8wlL7xmLPTdN2pBhLNCS/ZlBc0dg5wnLU0kjHqnkmUkzJpQmlWcJmAc Z53Ww6FvSAdlhEI5w6oTw5YwYQwUCEgkSNOLn5i5P7QgKRDlCezQaK14T8EvsdNiAiqe TF42WPAqKLn31lQr4OFaXrr1DzaYZOC0PJz+bwxKgn4f8kzs27Is5M07cNhcryuDh2/e zLZpV1dSb33Z2EoN5rSuRtmpthuTbv7cp9gwK9bMO3TVN0zUUEbmLhCY/Mn541qcv3aV p/vg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=evlO6O5g; 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 w13si1043222ede.535.2022.01.12.18.42.32; Wed, 12 Jan 2022 18:42:33 -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=evlO6O5g; 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 B3D8B68B8D7; Thu, 13 Jan 2022 04:05:59 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f182.google.com (mail-qk1-f182.google.com [209.85.222.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A90C468B8C9 for ; Thu, 13 Jan 2022 04:05:56 +0200 (EET) Received: by mail-qk1-f182.google.com with SMTP id c190so3934348qkg.9 for ; Wed, 12 Jan 2022 18:05:56 -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=iUSrdHDdl1UQffS/mRULU4lG3KtZwns9O4xgiD2FIVQ=; b=evlO6O5g7HE7k3EQgNnpPr1Fav3cpCWCRzM6dnWMAdUrPH0TXfxGn6aL3EkUgdXJ/r Btw09ru98lfZMx0hhWq3A1/wYzch0a85XwhVVfP7lqe/8ahoKh55LpdY/qz7/3P3IrPt vd1Aohf7TyONhCiwyKCJRIXoAtzok6YQXg0629mnwwCjCF7W2fX7YT9bq0hy+LjOuS93 WyiVzvYs7qtXXcXlQrz7t28ZIC8cKkKjJRq6pu7sCgEwjuQOKGHQuR+Qz3mC3n6V2K2J ntyb5QlGfEKA24GLsPnW/+wJptTezttRY9poMI3HTfjD1NsAEOwgnBaaV1HdpD0qMUs0 yjlQ== 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=iUSrdHDdl1UQffS/mRULU4lG3KtZwns9O4xgiD2FIVQ=; b=iqnOm8tXOFFM6YWh2hJRI4zZX+qQV9HUwiJnClwSPp3lbpNq7ltJza4wRe9J/iu+H/ 8JEPuAAo1t62o3AI0xKALamqQKqd+buAr74sMVRsj8Sub15sbZAx6SZ9ZAx5Ja7W29+Q oVgWQ9M8eePAg/MwLiezSayl9hPXto10lLrx0J/n/68HVn+aUE+EyIKAflsA/s5lxw61 UtF+31vC7lwJ/gtoeQcrOukrISaN19wfrjX/OldcB0Hd43Rdp8EtGGSPHcv6w/Fwlbiy TZBkjO5yi+eEHfcDzC41OGByeagraWXtwJom0YNYuhXTAYPzD98BiZ0rpDcQT90G8c0W qhNw== X-Gm-Message-State: AOAM530DiO40BOmEofxh+bK3+Mtte63f8hFam+ggBOGEzh3oUALtm4kG c8yslcowht5QxTG91/lfCjV3YnOT+Eo= X-Received: by 2002:a05:620a:170e:: with SMTP id az14mr1759047qkb.635.1642039554741; Wed, 12 Jan 2022 18:05:54 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id k9sm1264556qko.29.2022.01.12.18.05.53 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:05:54 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:05:08 -0300 Message-Id: <20220113020518.730-20-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 229/281] libopus: 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: gTWhXABRwb9q From: Anton Khirnov Signed-off-by: James Almer --- libavcodec/libopusdec.c | 39 +++++++++++++----------- libavcodec/libopusenc.c | 65 ++++++++++++++++++++++------------------ libavcodec/vorbis.h | 3 ++ libavcodec/vorbis_data.c | 18 +++++++++++ 4 files changed, 79 insertions(+), 46 deletions(-) diff --git a/libavcodec/libopusdec.c b/libavcodec/libopusdec.c index 86ef715205..abffd5f463 100644 --- a/libavcodec/libopusdec.c +++ b/libavcodec/libopusdec.c @@ -50,55 +50,60 @@ struct libopus_context { static av_cold int libopus_decode_init(AVCodecContext *avc) { struct libopus_context *opus = avc->priv_data; - int ret, channel_map = 0, gain_db = 0, nb_streams, nb_coupled; + int ret, channel_map = 0, gain_db = 0, nb_streams, nb_coupled, channels; uint8_t mapping_arr[8] = { 0, 1 }, *mapping; - avc->channels = avc->extradata_size >= 10 ? avc->extradata[9] : (avc->channels == 1) ? 1 : 2; - if (avc->channels <= 0) { + channels = avc->extradata_size >= 10 ? avc->extradata[9] : (channels == 1) ? 1 : 2; + if (channels <= 0) { av_log(avc, AV_LOG_WARNING, - "Invalid number of channels %d, defaulting to stereo\n", avc->channels); - avc->channels = 2; + "Invalid number of channels %d, defaulting to stereo\n", channels); + channels = 2; } avc->sample_rate = 48000; avc->sample_fmt = avc->request_sample_fmt == AV_SAMPLE_FMT_FLT ? AV_SAMPLE_FMT_FLT : AV_SAMPLE_FMT_S16; - avc->channel_layout = avc->channels > 8 ? 0 : - ff_vorbis_channel_layouts[avc->channels - 1]; + av_channel_layout_uninit(&avc->ch_layout); + if (channels > 8) { + avc->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + avc->ch_layout.nb_channels = channels; + } else { + av_channel_layout_copy(&avc->ch_layout, &ff_vorbis_ch_layouts[channels - 1]); + } if (avc->extradata_size >= OPUS_HEAD_SIZE) { opus->pre_skip = AV_RL16(avc->extradata + 10); gain_db = sign_extend(AV_RL16(avc->extradata + 16), 16); channel_map = AV_RL8 (avc->extradata + 18); } - if (avc->extradata_size >= OPUS_HEAD_SIZE + 2 + avc->channels) { + if (avc->extradata_size >= OPUS_HEAD_SIZE + 2 + channels) { nb_streams = avc->extradata[OPUS_HEAD_SIZE + 0]; nb_coupled = avc->extradata[OPUS_HEAD_SIZE + 1]; - if (nb_streams + nb_coupled != avc->channels) + if (nb_streams + nb_coupled != channels) av_log(avc, AV_LOG_WARNING, "Inconsistent channel mapping.\n"); mapping = avc->extradata + OPUS_HEAD_SIZE + 2; } else { - if (avc->channels > 2 || channel_map) { + if (channels > 2 || channel_map) { av_log(avc, AV_LOG_ERROR, - "No channel mapping for %d channels.\n", avc->channels); + "No channel mapping for %d channels.\n", channels); return AVERROR(EINVAL); } nb_streams = 1; - nb_coupled = avc->channels > 1; + nb_coupled = channels > 1; mapping = mapping_arr; } - if (avc->channels > 2 && avc->channels <= 8) { - const uint8_t *vorbis_offset = ff_vorbis_channel_layout_offsets[avc->channels - 1]; + if (channels > 2 && channels <= 8) { + const uint8_t *vorbis_offset = ff_vorbis_channel_layout_offsets[channels - 1]; int ch; /* Remap channels from Vorbis order to ffmpeg order */ - for (ch = 0; ch < avc->channels; ch++) + for (ch = 0; ch < channels; ch++) mapping_arr[ch] = mapping[vorbis_offset[ch]]; mapping = mapping_arr; } - opus->dec = opus_multistream_decoder_create(avc->sample_rate, avc->channels, + opus->dec = opus_multistream_decoder_create(avc->sample_rate, channels, nb_streams, nb_coupled, mapping, &ret); if (!opus->dec) { @@ -178,7 +183,7 @@ static int libopus_decode(AVCodecContext *avc, void *data, #ifndef OPUS_SET_GAIN { - int i = avc->channels * nb_samples; + int i = avc->ch_layout.nb_channels * nb_samples; if (avc->sample_fmt == AV_SAMPLE_FMT_FLT) { float *pcm = (float *)frame->data[0]; for (; i > 0; i--, pcm++) diff --git a/libavcodec/libopusenc.c b/libavcodec/libopusenc.c index 45b23fcbb5..401a2c17c8 100644 --- a/libavcodec/libopusenc.c +++ b/libavcodec/libopusenc.c @@ -91,7 +91,7 @@ static void libopus_write_header(AVCodecContext *avctx, int stream_count, const uint8_t *channel_mapping) { uint8_t *p = avctx->extradata; - int channels = avctx->channels; + int channels = avctx->ch_layout.nb_channels; bytestream_put_buffer(&p, "OpusHead", 8); bytestream_put_byte(&p, 1); /* Version */ @@ -180,9 +180,9 @@ static int libopus_configure_encoder(AVCodecContext *avctx, OpusMSEncoder *enc, static int libopus_check_max_channels(AVCodecContext *avctx, int max_channels) { - if (avctx->channels > max_channels) { + if (avctx->ch_layout.nb_channels > max_channels) { av_log(avctx, AV_LOG_ERROR, "Opus mapping family undefined for %d channels.\n", - avctx->channels); + avctx->ch_layout.nb_channels); return AVERROR(EINVAL); } @@ -190,21 +190,26 @@ static int libopus_check_max_channels(AVCodecContext *avctx, } static int libopus_check_vorbis_layout(AVCodecContext *avctx, int mapping_family) { - av_assert2(avctx->channels < FF_ARRAY_ELEMS(ff_vorbis_channel_layouts)); + av_assert2(avctx->ch_layout.nb_channels < FF_ARRAY_ELEMS(ff_vorbis_ch_layouts)); - if (!avctx->channel_layout) { + if (avctx->ch_layout.order == AV_CHANNEL_ORDER_UNSPEC) { av_log(avctx, AV_LOG_WARNING, "No channel layout specified. Opus encoder will use Vorbis " - "channel layout for %d channels.\n", avctx->channels); - } else if (avctx->channel_layout != ff_vorbis_channel_layouts[avctx->channels - 1]) { - char name[32]; - av_get_channel_layout_string(name, sizeof(name), avctx->channels, - avctx->channel_layout); - av_log(avctx, AV_LOG_ERROR, - "Invalid channel layout %s for specified mapping family %d.\n", - name, mapping_family); + "channel layout for %d channels.\n", avctx->ch_layout.nb_channels); + } else { + AVChannelLayout chl; + av_channel_layout_copy(&chl, &ff_vorbis_ch_layouts[avctx->ch_layout.nb_channels - 1]); - return AVERROR(EINVAL); + if (av_channel_layout_compare(&avctx->ch_layout, &chl)) { + char name[32]; + + av_channel_layout_describe(&avctx->ch_layout, name, sizeof(name)); + av_log(avctx, AV_LOG_ERROR, + "Invalid channel layout %s for specified mapping family %d.\n", + name ? name : "", mapping_family); + + return AVERROR(EINVAL); + } } return 0; @@ -238,7 +243,7 @@ static int libopus_validate_layout_and_get_channel_map( ret = libopus_check_max_channels(avctx, 8); if (ret == 0) { ret = libopus_check_vorbis_layout(avctx, mapping_family); - channel_map = ff_vorbis_channel_layout_offsets[avctx->channels - 1]; + channel_map = ff_vorbis_channel_layout_offsets[avctx->ch_layout.nb_channels - 1]; } break; case 255: @@ -261,6 +266,7 @@ static av_cold int libopus_encode_init(AVCodecContext *avctx) OpusMSEncoder *enc; uint8_t libopus_channel_mapping[255]; int ret = OPUS_OK; + int channels = avctx->ch_layout.nb_channels; int av_ret; int coupled_stream_count, header_size, frame_size; int mapping_family; @@ -348,17 +354,17 @@ static av_cold int libopus_encode_init(AVCodecContext *avctx) * libopus multistream API to avoid surround masking. */ /* Set the mapping family so that the value is correct in the header */ - mapping_family = avctx->channels > 2 ? 1 : 0; - coupled_stream_count = opus_coupled_streams[avctx->channels - 1]; - opus->stream_count = avctx->channels - coupled_stream_count; + mapping_family = channels > 2 ? 1 : 0; + coupled_stream_count = opus_coupled_streams[channels - 1]; + opus->stream_count = channels - coupled_stream_count; memcpy(libopus_channel_mapping, - opus_vorbis_channel_map[avctx->channels - 1], - avctx->channels * sizeof(*libopus_channel_mapping)); + opus_vorbis_channel_map[channels - 1], + channels * sizeof(*libopus_channel_mapping)); enc = opus_multistream_encoder_create( - avctx->sample_rate, avctx->channels, opus->stream_count, + avctx->sample_rate, channels, opus->stream_count, coupled_stream_count, - libavcodec_libopus_channel_map[avctx->channels - 1], + libavcodec_libopus_channel_map[channels - 1], opus->opts.application, &ret); } else { /* Use the newer multistream API. The encoder will set the channel @@ -366,7 +372,7 @@ static av_cold int libopus_encode_init(AVCodecContext *avctx) * use surround masking analysis to save bits. */ mapping_family = opus->opts.mapping_family; enc = opus_multistream_surround_encoder_create( - avctx->sample_rate, avctx->channels, mapping_family, + avctx->sample_rate, channels, mapping_family, &opus->stream_count, &coupled_stream_count, libopus_channel_mapping, opus->opts.application, &ret); } @@ -385,10 +391,10 @@ static av_cold int libopus_encode_init(AVCodecContext *avctx) "No bit rate set. Defaulting to %"PRId64" bps.\n", avctx->bit_rate); } - if (avctx->bit_rate < 500 || avctx->bit_rate > 256000 * avctx->channels) { + if (avctx->bit_rate < 500 || avctx->bit_rate > 256000 * channels) { av_log(avctx, AV_LOG_ERROR, "The bit rate %"PRId64" bps is unsupported. " "Please choose a value between 500 and %d.\n", avctx->bit_rate, - 256000 * avctx->channels); + 256000 * channels); ret = AVERROR(EINVAL); goto fail; } @@ -400,7 +406,7 @@ static av_cold int libopus_encode_init(AVCodecContext *avctx) } /* Header includes channel mapping table if and only if mapping family is NOT 0 */ - header_size = 19 + (mapping_family == 0 ? 0 : 2 + avctx->channels); + header_size = 19 + (mapping_family == 0 ? 0 : 2 + channels); avctx->extradata = av_malloc(header_size + AV_INPUT_BUFFER_PADDING_SIZE); if (!avctx->extradata) { av_log(avctx, AV_LOG_ERROR, "Failed to allocate extradata.\n"); @@ -409,7 +415,7 @@ static av_cold int libopus_encode_init(AVCodecContext *avctx) } avctx->extradata_size = header_size; - opus->samples = av_calloc(frame_size, avctx->channels * + opus->samples = av_calloc(frame_size, channels * av_get_bytes_per_sample(avctx->sample_fmt)); if (!opus->samples) { av_log(avctx, AV_LOG_ERROR, "Failed to allocate samples buffer.\n"); @@ -456,7 +462,8 @@ static int libopus_encode(AVCodecContext *avctx, AVPacket *avpkt, { LibopusEncContext *opus = avctx->priv_data; const int bytes_per_sample = av_get_bytes_per_sample(avctx->sample_fmt); - const int sample_size = avctx->channels * bytes_per_sample; + const int channels = avctx->ch_layout.nb_channels; + const int sample_size = channels * bytes_per_sample; uint8_t *audio; int ret; int discard_padding; @@ -469,7 +476,7 @@ static int libopus_encode(AVCodecContext *avctx, AVPacket *avpkt, audio = opus->samples; libopus_copy_samples_with_channel_map( audio, frame->data[0], opus->encoder_channel_map, - avctx->channels, frame->nb_samples, bytes_per_sample); + channels, frame->nb_samples, bytes_per_sample); } else if (frame->nb_samples < opus->opts.packet_size) { audio = opus->samples; memcpy(audio, frame->data[0], frame->nb_samples * sample_size); diff --git a/libavcodec/vorbis.h b/libavcodec/vorbis.h index 69ddbd2982..f80187feee 100644 --- a/libavcodec/vorbis.h +++ b/libavcodec/vorbis.h @@ -26,7 +26,10 @@ extern const float ff_vorbis_floor1_inverse_db_table[256]; extern const float * const ff_vorbis_vwin[8]; extern const uint8_t ff_vorbis_channel_layout_offsets[8][8]; +#if FF_API_OLD_CHANNEL_LAYOUT extern const uint64_t ff_vorbis_channel_layouts[9]; +#endif +extern const AVChannelLayout ff_vorbis_ch_layouts[9]; typedef struct vorbis_floor1_entry { uint16_t x; diff --git a/libavcodec/vorbis_data.c b/libavcodec/vorbis_data.c index fd7e291de2..4f4ea03f15 100644 --- a/libavcodec/vorbis_data.c +++ b/libavcodec/vorbis_data.c @@ -34,6 +34,7 @@ const uint8_t ff_vorbis_channel_layout_offsets[8][8] = { { 0, 2, 1, 7, 5, 6, 3, 4 }, }; +#if FF_API_OLD_CHANNEL_LAYOUT const uint64_t ff_vorbis_channel_layouts[9] = { AV_CH_LAYOUT_MONO, AV_CH_LAYOUT_STEREO, @@ -45,6 +46,23 @@ const uint64_t ff_vorbis_channel_layouts[9] = { AV_CH_LAYOUT_7POINT1, 0 }; +#endif + +const AVChannelLayout ff_vorbis_ch_layouts[9] = { + AV_CHANNEL_LAYOUT_MONO, + AV_CHANNEL_LAYOUT_STEREO, + AV_CHANNEL_LAYOUT_SURROUND, + AV_CHANNEL_LAYOUT_QUAD, + AV_CHANNEL_LAYOUT_5POINT0_BACK, + AV_CHANNEL_LAYOUT_5POINT1_BACK, + { + .nb_channels = 7, + .order = AV_CHANNEL_ORDER_NATIVE, + .u.mask = AV_CH_LAYOUT_5POINT1 | AV_CH_BACK_CENTER, + }, + AV_CHANNEL_LAYOUT_7POINT1, + { 0 } +}; DECLARE_ALIGNED(16, static const float, vwin64)[32] = { 0.0009460463F, 0.0085006468F, 0.0235352254F, 0.0458950567F, From patchwork Thu Jan 13 02:05:09 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33499 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp42078iog; Wed, 12 Jan 2022 18:42:44 -0800 (PST) X-Google-Smtp-Source: ABdhPJzHA8MQ/X3GN8fsnjgPHnRZGDnpBle7gTde1OVyBOjUs0tvzETs2BuYiM2VyW0pNKD0qAS0 X-Received: by 2002:a17:907:6291:: with SMTP id nd17mr2016051ejc.194.1642041764577; Wed, 12 Jan 2022 18:42:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041764; cv=none; d=google.com; s=arc-20160816; b=wICSJ/sc8TnmkaMvvy7xRSyC/nEGQ+/cY7gMjrmfA4UN7WXI4ytPL9uhrEa6YsnzFj yKjwd7Wk4tdlebV1DIsMUbQuOXSbecq70MS7gGgaxd4ClOziu43+bpDFFHg1ERIznKbl eKxxFMTI0rlPIS0JOKyeRgTnPaXRr8bVGkfXOZVw6zp1gKTktkGz1gjA8C4kpHbYBtUf 3xZPgatRHmw99Vm7MCxOr2GGQmZSp1stvxZUrYcvV9MiV32wm5rdOMqay6p/oLcuO3bd IvBnKhn3GRPT7xdZi5cCgtsFxg233NDbsmo206LtCy13TwCGsYbzLAb2M+4Ka7itsXqD rTBg== 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=qsryVBa1stzsuDA54goQrw21GmooQx0WZ5TW1hWQhsk=; b=efLtVH+TjZB2kookrLhJ01lJbdRUOrLqxlF5vuFM2oiDFrFdMjS/Cvhy6l8CbFkTs+ Lu8bpC+v7wck2H+gs/7T9QpqI1TclkcbgybjoGxit4TkMPN8HctDfOqvBQLRm+/Zxygs 0XzwGRcVBhK/R/Y4qtoPrJFsM6SYGGw8VD9QzbFJxNm7B/SbRtMMsRl3cih9ZAPAVD5j +Y/B4gMFqu1FwQZLS3bLonCUZQtxG9JTnqSm2E49wf3/c7dGLLwN3ArmD7TpwHZAgVnh QKACbjj0eFYC3tF3sugia2vF7Qd4t0Bo1ohW5ezDnv3VOTYhB3/1gccReiqMUpiDMIfK AYcQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=FcEOE42u; 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 kl17si867989ejc.30.2022.01.12.18.42.44; Wed, 12 Jan 2022 18:42:44 -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=FcEOE42u; 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 85AF668B8E0; Thu, 13 Jan 2022 04:06:00 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f182.google.com (mail-qt1-f182.google.com [209.85.160.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9260C68B8CF for ; Thu, 13 Jan 2022 04:05:57 +0200 (EET) Received: by mail-qt1-f182.google.com with SMTP id f17so5354430qtf.8 for ; Wed, 12 Jan 2022 18:05:57 -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=BtcNx4mYMP/L+oMGer4m98z4vqDjXikV0ZGrPcC4gdk=; b=FcEOE42uhrq/hClJvFgqiuYHkrPjI0S7CwJ+imEOE2f/K32hQAUSGLfkE4loQ4iXf8 09iC0TfVSTw7qQphd6JipdeRi9WPNNqp1GF3BQPdgfhmZX5dJg4iLB4sQC78BZUfUX4w 06o5Ahgcboizi2qOUSnxEeUZRZerEAeoQsXGtA89ucjnIoibVUYW6f9MZeBUibG3KKhC T5xhYxrtZv7o8bH0fIFyULq22U2c5rb1aVSIjj1ECWdTj/oPWW8XdIIqR0uOoV0VTBTy hwWvnjsQUb5YsNNKCkwIrsQPFbXAcgZf0Y8G87+JtzkX4W7sA9iL5rGZO3UjhrBvyP+o rhJQ== 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=BtcNx4mYMP/L+oMGer4m98z4vqDjXikV0ZGrPcC4gdk=; b=JC4iE26tlG9nlJpIIYRK2grFDdYoPWb8PKPy91M1lcHDP0xSJxQEElleWNryzc22qi a60Et5JL059H01yT+da5TjreHhEc/eE9o+Zn5flT/QymRsTe4tXoRbQuz+PicldRjr2d am4UKyjfukFYgqssq/bO5B8/DW5LM9ladGUJo083lBkPEbQ3g0m15duu+kh/i3rV/o4i Nv55gqh0JO1E3zbgWiB7JrYSYK5ENxt7owUEP7yCFoyu4N2xGwDjmqwwY3RtuTWx+bpg hOk/MaaUZuQlGaO72ZuRQmBcdPZFQ22TjKvyjp9dyrFF+Pa1mtxLMpR2WV1ZGk+27Kjg ZbZg== X-Gm-Message-State: AOAM531qycUZwI/bMA9UvoIejo5YI8co89hV2yKUIvH98ZVH4vkE8MUs 3Is4YSE3JkcnFwUwytvVC5tOMf+iMyo= X-Received: by 2002:a05:622a:308:: with SMTP id q8mr1988488qtw.463.1642039555929; Wed, 12 Jan 2022 18:05:55 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id k9sm1264556qko.29.2022.01.12.18.05.54 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:05:55 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:05:09 -0300 Message-Id: <20220113020518.730-21-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 230/281] libshine: 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: 7WkaS/8ugqBV From: Anton Khirnov Signed-off-by: James Almer --- libavcodec/libshine.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libavcodec/libshine.c b/libavcodec/libshine.c index fbc84846ae..ee8a63d66b 100644 --- a/libavcodec/libshine.c +++ b/libavcodec/libshine.c @@ -44,7 +44,7 @@ static av_cold int libshine_encode_init(AVCodecContext *avctx) { SHINEContext *s = avctx->priv_data; - if (avctx->channels <= 0 || avctx->channels > 2){ + if (avctx->ch_layout.nb_channels <= 0 || avctx->ch_layout.nb_channels > 2){ av_log(avctx, AV_LOG_ERROR, "only mono or stereo is supported\n"); return AVERROR(EINVAL); } @@ -52,9 +52,9 @@ static av_cold int libshine_encode_init(AVCodecContext *avctx) shine_set_config_mpeg_defaults(&s->config.mpeg); if (avctx->bit_rate) s->config.mpeg.bitr = avctx->bit_rate / 1000; - s->config.mpeg.mode = avctx->channels == 2 ? STEREO : MONO; + s->config.mpeg.mode = avctx->ch_layout.nb_channels == 2 ? STEREO : MONO; s->config.wave.samplerate = avctx->sample_rate; - s->config.wave.channels = avctx->channels == 2 ? PCM_STEREO : PCM_MONO; + s->config.wave.channels = avctx->ch_layout.nb_channels == 2 ? PCM_STEREO : PCM_MONO; if (shine_check_config(s->config.wave.samplerate, s->config.mpeg.bitr) < 0) { av_log(avctx, AV_LOG_ERROR, "invalid configuration\n"); return AVERROR(EINVAL); From patchwork Thu Jan 13 02:05:10 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33500 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp42180iog; Wed, 12 Jan 2022 18:42:56 -0800 (PST) X-Google-Smtp-Source: ABdhPJxcrgeF0UYJuuTDoDgIpnOykK6sazBdfREhLXgbStfpmKjx0MvuQaWAGlcfhDaC/1XPcUYq X-Received: by 2002:a17:906:c14e:: with SMTP id dp14mr2049882ejc.138.1642041776432; Wed, 12 Jan 2022 18:42:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041776; cv=none; d=google.com; s=arc-20160816; b=zGbBperasS28t7YLT/io/+LzmfEp3q1/SAvBOzw3TNMF62ywdYRV/iEyuKkpp+3ljm u5TrF7DZdpGuJSAcRP/oZTvm6q8GQvIfIwO2Xbg6SDFfgr5m9fJg8VwPMArLHGN1brW0 x+PhdT7PYwX4ZrI4m9wXEOqZqwRhw0KDMeZT9Vc7/bEKKU9fvOzSK0I8vtOCLwFVMaKE bSsk1j0T2wSU41QUuWGKTliQVeridITC2QrZ9CoN6V4Vifk3bdlWR0CWG0AfK/LHsyLa DEb/KnE0X472Y0dHSJolq/YTJvCH5hayod8qgYfgE626OFTtRf6BWnLI6CQJkH3m75H3 YR0w== 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=EsoYGD2I25FpHc6oNWRDxHNmmRr61LQ+D2wUgOUFuPo=; b=WndoZ8z1P8UKdSBwrDCW/KGU0qu9RgLU4+Cmi5DtHV1imK+RhVr29kybqUwfR8PFhB xenLUuxwiP3JEXUx36faXLqRZw6UktQ+w2jgN+B3ZL7iahU2yB8CN9g4tMlHR9W2jV61 qdG8axbHu/p4HBsp5BPHdw70npq6oclhtdMR4AC20CJI52+HoLTwVJInxlXQ1bnZ6Ps7 avnQoNIIGr69SC1dvq095T40UxzpmY6lgEDkCfogRh2yVDNMqAVOX7WUa2LDJgE0wugj uRB7j/NsG1704dHfN53a6gnyPbhz/Lz+889trUIUgaNzrgry2GQkmngGqax0oZM4Nkie lgYw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=nk7mXSEX; 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 w19si849110edq.469.2022.01.12.18.42.56; Wed, 12 Jan 2022 18:42:56 -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=nk7mXSEX; 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 70A4868B8F4; Thu, 13 Jan 2022 04:06:01 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f53.google.com (mail-qv1-f53.google.com [209.85.219.53]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9903668B8D4 for ; Thu, 13 Jan 2022 04:05:58 +0200 (EET) Received: by mail-qv1-f53.google.com with SMTP id q4so5110846qvh.9 for ; Wed, 12 Jan 2022 18:05:58 -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=0gKd//vzdEQ5IC8jNAqiJhEz5/WHYbDwn6RwiHmOUhA=; b=nk7mXSEX1i7Ny3IN9NGyHvjSMZrCtWA2U1HPB4NswhyIpqoXvHWOIYQxKgtNS5d1/V 5i6PIvB1tkMijUmZBJI4EqjMJkfEqgWPuU2qH0zxbfNHRBiaRj6WOhW1R3gqZYc+wYjd Ldu0ge8ANp9FsvXLd64v97EwBJMnaj9NO3asfrZ1Nq9CADjOIBMeL2jkIoxDi5SjBbHS ZQKNUQCucPGpgxwo24ozkKVDXPrjRqRudKzKpbZyb71guAkbFETbskDnAvH5lLwo40AL sA+3oLjUEGQ5MOKKcArdOcTeTSIXGfG2zyAJCRqcuLGb/oDAi0uPRdBP5d7FHsLXJTIT tioA== 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=0gKd//vzdEQ5IC8jNAqiJhEz5/WHYbDwn6RwiHmOUhA=; b=QCWBGj/0eOuayQf4lw3aIsskN9F/xg+PQgubZ5afEIkceGfWuqYEojyodXn0yekacB UsBAOFWGSyhp6Nspo69O1/0q26FouWuWSWwQ0hnswg+EHyhthKZAblsZU5Yy95Y4vd8f M67Cow0/BReK5aJ6gmJDZ/PALzozbhUlSgJ5kRVcbOhmFuioiKUP3h1jQHJJZ8At1qNd T4Br73YYsdyB3jRWAy9XRtZo3pZhqC5szhHM8JP7mq+AlaWfcNh31ZvZsCYcl9ptL85j zPG27gWxppmmxdnSxByarZ7rQTUuqc9m4jIXJdIAESBQ/VlH9PTJSLKJwwRJeH0Y0hi0 lXAw== X-Gm-Message-State: AOAM531AZkYAW9RRbAhpk2MmxTQhgOfc4I3xvMUVforp0jPho+29imsy krZHy+fPXML9wUhFvZH9SqvoWBxs5X0= X-Received: by 2002:ad4:574f:: with SMTP id q15mr2363893qvx.94.1642039557143; Wed, 12 Jan 2022 18:05:57 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id k9sm1264556qko.29.2022.01.12.18.05.56 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:05:56 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:05:10 -0300 Message-Id: <20220113020518.730-22-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 231/281] libspeexdec: 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: /LD0keAPnmEZ From: Anton Khirnov Signed-off-by: James Almer --- libavcodec/libspeexdec.c | 19 ++++++++++--------- libavcodec/libspeexenc.c | 17 +++++++++-------- 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/libavcodec/libspeexdec.c b/libavcodec/libspeexdec.c index 6f032907fc..8029786b1f 100644 --- a/libavcodec/libspeexdec.c +++ b/libavcodec/libspeexdec.c @@ -42,7 +42,7 @@ static av_cold int libspeex_decode_init(AVCodecContext *avctx) LibSpeexContext *s = avctx->priv_data; const SpeexMode *mode; SpeexHeader *header = NULL; - int spx_mode; + int spx_mode, channels; if (avctx->extradata && avctx->extradata_size >= 80) { header = speex_packet_to_header(avctx->extradata, @@ -68,7 +68,7 @@ static av_cold int libspeex_decode_init(AVCodecContext *avctx) spx_mode = 0; } else if (header) { avctx->sample_rate = header->rate; - avctx->channels = header->nb_channels; + channels = header->nb_channels; spx_mode = header->mode; speex_header_free(header); } else { @@ -94,14 +94,15 @@ static av_cold int libspeex_decode_init(AVCodecContext *avctx) if (!avctx->sample_rate) avctx->sample_rate = 8000 << spx_mode; - if (avctx->channels < 1 || avctx->channels > 2) { + if (channels < 1 || channels > 2) { /* libspeex can handle mono or stereo if initialized as stereo */ av_log(avctx, AV_LOG_ERROR, "Invalid channel count: %d.\n" - "Decoding as stereo.\n", avctx->channels); - avctx->channels = 2; + "Decoding as stereo.\n", channels); + channels = 2; } - avctx->channel_layout = avctx->channels == 2 ? AV_CH_LAYOUT_STEREO : - AV_CH_LAYOUT_MONO; + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout = channels == 2 ? (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO : + (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; speex_bits_init(&s->bits); s->dec_state = speex_decoder_init(mode); @@ -110,7 +111,7 @@ static av_cold int libspeex_decode_init(AVCodecContext *avctx) return -1; } - if (avctx->channels == 2) { + if (channels == 2) { SpeexCallback callback; callback.callback_id = SPEEX_INBAND_STEREO; callback.func = speex_std_stereo_request_handler; @@ -163,7 +164,7 @@ static int libspeex_decode_frame(AVCodecContext *avctx, void *data, av_log(avctx, AV_LOG_ERROR, "Error decoding Speex frame.\n"); return AVERROR_INVALIDDATA; } - if (avctx->channels == 2) + if (avctx->ch_layout.nb_channels == 2) speex_decode_stereo_int(output, s->frame_size, &s->stereo); *got_frame_ptr = 1; diff --git a/libavcodec/libspeexenc.c b/libavcodec/libspeexenc.c index d095b41bee..058dafad39 100644 --- a/libavcodec/libspeexenc.c +++ b/libavcodec/libspeexenc.c @@ -28,8 +28,8 @@ * order to control various encoding parameters. * * Channels - * Speex only supports mono or stereo, so avctx->channels must be set to - * 1 or 2. + * Speex only supports mono or stereo, so avctx->ch_layout.nb_channels must + * be set to 1 or 2. * * Sample Rate / Encoding Mode * Speex has 3 modes, each of which uses a specific sample rate. @@ -114,7 +114,7 @@ static av_cold void print_enc_params(AVCodecContext *avctx, { const char *mode_str = "unknown"; - av_log(avctx, AV_LOG_DEBUG, "channels: %d\n", avctx->channels); + av_log(avctx, AV_LOG_DEBUG, "channels: %d\n", avctx->ch_layout.nb_channels); switch (s->header.mode) { case SPEEX_MODEID_NB: mode_str = "narrowband"; break; case SPEEX_MODEID_WB: mode_str = "wideband"; break; @@ -146,15 +146,16 @@ static av_cold void print_enc_params(AVCodecContext *avctx, static av_cold int encode_init(AVCodecContext *avctx) { LibSpeexEncContext *s = avctx->priv_data; + int channels = avctx->ch_layout.nb_channels; const SpeexMode *mode; uint8_t *header_data; int header_size; int32_t complexity; /* channels */ - if (avctx->channels < 1 || avctx->channels > 2) { + if (channels < 1 || channels > 2) { av_log(avctx, AV_LOG_ERROR, "Invalid channels (%d). Only stereo and " - "mono are supported\n", avctx->channels); + "mono are supported\n", channels); return AVERROR(EINVAL); } @@ -175,7 +176,7 @@ static av_cold int encode_init(AVCodecContext *avctx) av_log(avctx, AV_LOG_ERROR, "Error initializing libspeex\n"); return -1; } - speex_init_header(&s->header, avctx->sample_rate, avctx->channels, mode); + speex_init_header(&s->header, avctx->sample_rate, channels, mode); /* rate control method and parameters */ if (avctx->flags & AV_CODEC_FLAG_QSCALE) { @@ -210,7 +211,7 @@ static av_cold int encode_init(AVCodecContext *avctx) } /* stereo side information adds about 800 bps to the base bitrate */ /* TODO: this should be calculated exactly */ - avctx->bit_rate = s->header.bitrate + (avctx->channels == 2 ? 800 : 0); + avctx->bit_rate = s->header.bitrate + (channels == 2 ? 800 : 0); } /* VAD is activated with VBR or can be turned on by itself */ @@ -275,7 +276,7 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *avpkt, if (samples) { /* encode Speex frame */ - if (avctx->channels == 2) + if (avctx->ch_layout.nb_channels == 2) speex_encode_stereo_int(samples, s->header.frame_size, &s->bits); speex_encode_int(s->enc_state, samples, &s->bits); s->pkt_frame_count++; From patchwork Thu Jan 13 02:05:11 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33501 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp42282iog; Wed, 12 Jan 2022 18:43:08 -0800 (PST) X-Google-Smtp-Source: ABdhPJxWiUtsNgBgcVwKIiWOAQW4Dhu5fZu/qzXCbwuQBUiVGZ0Go2Mf2vy2Z+FTEFvwZRSzvAka X-Received: by 2002:a17:906:3819:: with SMTP id v25mr1908026ejc.539.1642041788200; Wed, 12 Jan 2022 18:43:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041788; cv=none; d=google.com; s=arc-20160816; b=thVMFnL5bWx4VCl6kYHv05rnxpEC0L5SYx640dDC6mcFbWaWa/wLCJOITlYMTxhAis rEyQ+g/lahPjdarYmFS5quSnYpPaZgcFy2RpP4vj9fvs4Bn1dFu+XUpYoBGoOBiaZChy zZ/MMdFOP7zeElZUeDKPa0McEPrMZKf5j593rNG3cJNuJWxG2pMnS0VUwY4zqKCJ9XEw BCa7xl3MeElZD1FxJL+Mhnw7iwp4DSVmp1JrLhH/HI4alINJvquzdFW+OmgP7Ic/zvDh OHIJ4GmhGHPtSSkWdCNckm4s5Vw9rVrxoNUV7qs4Mjsk6MmnkbxyLe/suDXY4+sOIidA 42Vw== 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=jcBr5cNgqzJBTF82dZLxMFC/exW57krr41bIWx4ESZg=; b=YZMhT49B3F5LCVjOw/frobnCnQqLlSlrorz1gTGT63fHeFUJenrBZZBuDRjFIzxGRE zSHjybWQHN/9V4hUDdROjkXvN2YuITYjIdle6/E7dGDgTaWAJcGsoJorhbrw3UKLzGSg q37YHGNsEyWlXgitTvv3tODsqn+yzEZfZkqAYoYZJu+F/yb2K5AzH5XgD+tmedV6ujqX Q3th9E7/0dvcmcfxP49yECX3gbGVzg/11hBbAy+OrdZzC+zSFshJoPLd0TEUIfQfVmZj GpwhHD2Gk9zsAenqC6ePINnqZCy9SOZITU22ajET8iDpfEpvP0YfxG8mSKHExuKDyaoc 2ZMw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=mcRkdOl0; 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 jg16si779400ejc.74.2022.01.12.18.43.07; Wed, 12 Jan 2022 18:43:08 -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=mcRkdOl0; 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 981B568B8FC; Thu, 13 Jan 2022 04:06:02 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f176.google.com (mail-qt1-f176.google.com [209.85.160.176]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CAB9C68B8DE for ; Thu, 13 Jan 2022 04:05:59 +0200 (EET) Received: by mail-qt1-f176.google.com with SMTP id v7so5336535qtw.13 for ; Wed, 12 Jan 2022 18:05:59 -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=VYE3zJ2hbuJhF+YAjo7/QeJCKjcf+pFzJFvet4Y7Gv4=; b=mcRkdOl0Ck4t6JcCYaFq1NCTUxYubVg6CbMa5kda+ytfuptNZyjvmHqqFlUpTv3ILO uCvXpozYO++exc4usDremVfZyr105tdGaf7O1oHberZUjKVmnB2wlaSrmKMARNzbE9Ie KFHSbyDczMCa+Ngl0uZqoLF6qKe042ZkjzBI3abb61AxDXE6toNMgky9uMUNerH3+M/b IrWoZGP3+vfi0OyULLIo7bYHMz3x7SN6Romh0jfYQ+JtDmfmtEt4SQlkpQkOBTgGzq7v eBsNFNdFLRuB720yyomzZDlozibOyF0/qh3r/TvSWD4L97XA11a84dokpEJj+kEzpLjI xFmg== 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=VYE3zJ2hbuJhF+YAjo7/QeJCKjcf+pFzJFvet4Y7Gv4=; b=3ymE9+fTQPq8PsQZZ4K33YTeBGlhPcRVn9FaSb8hZQ5NfHyiMRP/i+0XfRhWpjqHb0 2MCjAJFsLwx7iMwaJ7RX4GsHR02C+E/MGf44qugZe0fO5+AzoPYc3Op39Nv6nShELagB auCVAt/oqvR5AEfOzJ0quGEPA1d1H+wWOxY5LQAkGRLuUf/UXjR5jxZzfxndqvZBBe2l AgRX1CA5wov9XyjTyTq9/nXJr45HIcmW+6577GjsLQiULOSTcD+2lLUhqlL820s2aEg1 PRT2Cr8a6xAUFONCm0crmzcMoMWL01GuGwxkGj2dk5oNKvdX/y4pCBKpkah9WFHy/GTS sY/Q== X-Gm-Message-State: AOAM530c+CuDXTOF2Y02PoOZMXFnU1RSyZy2KzqcYoXZuzMdYxjY7gM1 KdQfXc2cPxKjyfKInZDtQ0//GFJwjUQ= X-Received: by 2002:ac8:ac8:: with SMTP id g8mr2005917qti.29.1642039558350; Wed, 12 Jan 2022 18:05:58 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id k9sm1264556qko.29.2022.01.12.18.05.57 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:05:58 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:05:11 -0300 Message-Id: <20220113020518.730-23-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 232/281] libtwolame: 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: c3X/TrPa5cXX From: Anton Khirnov Signed-off-by: James Almer --- libavcodec/libtwolame.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/libtwolame.c b/libavcodec/libtwolame.c index a71febc91f..9e1d589a0f 100644 --- a/libavcodec/libtwolame.c +++ b/libavcodec/libtwolame.c @@ -76,7 +76,7 @@ static av_cold int twolame_encode_init(AVCodecContext *avctx) twolame_set_copyright(s->glopts, s->copyright); twolame_set_original(s->glopts, s->original); - twolame_set_num_channels(s->glopts, avctx->channels); + twolame_set_num_channels(s->glopts, avctx->ch_layout.nb_channels); twolame_set_in_samplerate(s->glopts, avctx->sample_rate); twolame_set_out_samplerate(s->glopts, avctx->sample_rate); From patchwork Thu Jan 13 02:05:12 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33502 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp42374iog; Wed, 12 Jan 2022 18:43:20 -0800 (PST) X-Google-Smtp-Source: ABdhPJyhyXMhTkbeUofOraUByE7980y/2vKCN8+lCZsS0Fj5wmmiH/awzjFlD+U7xa4zayQTKtCg X-Received: by 2002:a17:906:2b8a:: with SMTP id m10mr1907209ejg.479.1642041800529; Wed, 12 Jan 2022 18:43:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041800; cv=none; d=google.com; s=arc-20160816; b=LZzEt39R6AVBz4Ggr73omaUyWcLlUJyVY21X2eppvPYtlO+nWWMTzawpJYQhuyKOwD Ng3KxHYQytSFqlhnMw7cN/9eJZLE6h1DWTOD7QXVlnPmi9/PZpNrYQbacr3ajqkWHf5y kwVhjRm5b2C9JWod1hwLzhCCL/ExYPCLq0KEaNxXlt40GBS4KiA7U3hkQeYmJXr9MeRK ibXWL+e6YCYoBMWl8ccMnCgfTyQ0LUeCVS/0WFZMw1rWo+BxxX+efqSQ+nfayzZYRjKL FHhpA0aa5JK9g7ob7bG576e0SqCVmK3sp9xa/xD7zsv4Yk0FOdKqsKnq+Mc6wjhASTU4 Ppzg== 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=jBY78lkf3hdtG6cZ7xftHU71TcFbDIEiWMSR7IPyE0M=; b=iAnnUZRaUiVal8OOBl5NSg3A8oGqx/dYYoFekmDvRaRngS2YpcuJPwpZgKaiDUDrlG PfyOOvJbY9R537Nexa3fvOtk06wY8KMAHtwYBjb77VAuvoIYeexcadPbeXp3cclwqYgU S3xyOPFX+fOsOdknYTRGrf/Z6jVBui1XdIFBhL2iu/1RgaBmO1j3goPrE3omKz2rWkwU HHBDVW2GGwH6Ip3tHOyUUsbaRo16ie6jPuMjVrwtNliT0HR+zTjzv2+nGaNYIugjhVrf gJwIjKuuu49wHsFijJFxkb1MJlZINVysVrvA17Ir4b/Jl0XqzjkKE2JW4f7/ETdbc3WS Y0VQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=HgXtoNsu; 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 e19si236188edq.30.2022.01.12.18.43.20; Wed, 12 Jan 2022 18:43:20 -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=HgXtoNsu; 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 809CE68B907; Thu, 13 Jan 2022 04:06:03 +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 EE28568B8ED for ; Thu, 13 Jan 2022 04:06:00 +0200 (EET) Received: by mail-qk1-f174.google.com with SMTP id j85so5619857qke.2 for ; Wed, 12 Jan 2022 18:06:00 -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=gWPz79sI+6vyjwyZv65OP7zl/BFWQKHfWpqVcNxYLOM=; b=HgXtoNsuSuXfi4RZe5T4vTLxMoO7gZpeH9bOkmkQLPhdOKGgP39J8fPsFd98+7Lg91 spwvCrBlWCN+nIMJy1HE267F3y+bQCranitao5AqCFC4xI/jg+DS4hEH1fDn5IzBzC1f RNknWro1ty7CJVRMRRnJ4Yk8FgO5yn2m6kkz2OgTfXG06jDJEFp3PAF/6Ly1vLdPi8/w R+oYoKi7leCu5bAOu/f6/IXPmWURF+f4lX4KmO072Ystvj2+YJhPqSR7PDQnSBWZ+NyX NypvuvCiQfZAFh6q9b9muHOwyQXVXleG+T0BT2VTPqjtlyHhOjEEGLO8tuJ8AHMCyWkW tXnA== 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=gWPz79sI+6vyjwyZv65OP7zl/BFWQKHfWpqVcNxYLOM=; b=pJkBCbV2JnNenZqMk1z8v740l3FD48CHyWdAqbnCjYiIqDqk/Zk8lKwxKnEqqRQYPJ ih3kJJNw2HfrM6acGIsVJYDfE8tDgpGgS2XNzwJabqpzOTB8n5uz4hoEWLH7aS4ALO/f EoGL/qqG8ukGrTI2wDWUHjamhSz/pgKswoqGyQ8YpQeKOw/p9g4kIVtAju6WyKcOrIHt Hg3wWM4SjyCxQ3Fdb5Pe5wbsKA3QrRnPP3MyAs9X5BUWjhYx19MF30n/JouT7kaPAoJx 3xVLAuC2Ft/j2EA2sYz78wt3Gyt1Cm5Ue/wlGlelvDrexDpmZQ5abfh4o5RjhCDDJpoB N6jQ== X-Gm-Message-State: AOAM533P2Jh0G71BEXFPlw42hTEykbyT0oHx9Tl9/xu1omWJJE0aG6Y/ GdUb6CpCpX9a2KgPZNeoHoo8N/ua/L4= X-Received: by 2002:a05:620a:102e:: with SMTP id a14mr1828633qkk.309.1642039559544; Wed, 12 Jan 2022 18:05:59 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id k9sm1264556qko.29.2022.01.12.18.05.58 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:05:59 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:05:12 -0300 Message-Id: <20220113020518.730-24-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 233/281] libvo-amrwbenc: 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: 4TN9gO1iqioY From: Anton Khirnov Signed-off-by: James Almer --- libavcodec/libvo-amrwbenc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/libvo-amrwbenc.c b/libavcodec/libvo-amrwbenc.c index 9c7c91b617..4beede0863 100644 --- a/libavcodec/libvo-amrwbenc.c +++ b/libavcodec/libvo-amrwbenc.c @@ -87,7 +87,7 @@ static av_cold int amr_wb_encode_init(AVCodecContext *avctx) return AVERROR(ENOSYS); } - if (avctx->channels != 1) { + if (avctx->ch_layout.nb_channels != 1) { av_log(avctx, AV_LOG_ERROR, "Only mono supported\n"); return AVERROR(ENOSYS); } From patchwork Thu Jan 13 02:05: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: 33503 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp42496iog; Wed, 12 Jan 2022 18:43:33 -0800 (PST) X-Google-Smtp-Source: ABdhPJxbjST+qqHKoioPEiIEKAgtW9vJUuR38RcFONXcZ+/yz77/sX1AIlu6WgMAipk8teNJn5VO X-Received: by 2002:aa7:df18:: with SMTP id c24mr2325970edy.164.1642041813221; Wed, 12 Jan 2022 18:43:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041813; cv=none; d=google.com; s=arc-20160816; b=YzmD2+7Xt9m3FC65p9SPxhckEmYhhRqAhCmlPwkDJUjqAcMOFu7fHAdszX1wI5zWmS 4qglEa+FN+WsO4I2mFnLf1Z9VPWsRkIV0+Sk9WrrrOr6rJg/HKpjST9VddP/jJZne5l8 dMk31XuhBB8TtAgvcMqHSA5a8GZTZWryH5vvCVI1sIOUCDY1SUj2Tkg0O49lI5rnKFOR Xmoc1ski3GnjO4JzFMlykIhqOEmd5qX2yeNvpJG4Cx2Liz3lkI/unJBmvhyw6u52mU4D 6aDKlc3BolYOGY5IWPIHG0BEMJMm7JChTgGpERV6ryQovBRxQUar5y15JfXPZe9dKezk 512w== 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=Rurz02SYuPsjCEFo+XePYH+MTwZsNZKz3IhAphpGiOc=; b=POLUsLAWMKQlhpbQg+vCjPZUmFkcV8fdE3FyMCwMu+wz2vDigIwyQ682v2zenRs5+l wNiFKN0lMy7awJ966Q9nbuWMVzpXZVoLcf/fdjgV7k0WKCv4SRq5BlrYDa6743GAdETG wo781TVtTet4ukohHVQ0LoRgoN4x4Xb8y2mzk42fP3eUrMjUuqy8rHShQxWF0PSopKRM YPDrudf8OFxQISbYX/Vg743QA2QatFzQ28igrkCUryBb3LVRyYmPlXI3qRx+ngbUMsgh si6oA4DcMG40G7Y6r07EDnTbpZ5jyQtmOfCVOYm7aFSeFDFBwpUGI8dMjGIbKxaOW8pk copQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b="EqCh/lOI"; 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 sc30si894627ejc.791.2022.01.12.18.43.32; Wed, 12 Jan 2022 18:43:33 -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="EqCh/lOI"; 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 6A31268B901; Thu, 13 Jan 2022 04:06:04 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f173.google.com (mail-qk1-f173.google.com [209.85.222.173]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5AA4368B8FC for ; Thu, 13 Jan 2022 04:06:02 +0200 (EET) Received: by mail-qk1-f173.google.com with SMTP id t66so5590292qkb.4 for ; Wed, 12 Jan 2022 18:06:02 -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=lFd3ZZa33sHZ0pkumvdcZnlAStHa9Aciz7CsC20f6Nk=; b=EqCh/lOIM3HLyPiHl0InWYEEY+OjKEAKzxaFwszGsdNRaUBc3n+lGYHiyjHwaxwgVM JJP4wux8NLBmC9HnvmRLNN6PRQOGgoBn7/tcPzf3sSs4RIpKScQ425jw0ZHd/NHK52fJ fqBtM2jT1hj9C/pK99q1NzboclqgEzw9PAZCbyz4JUOJGKXp9bVjHRA/5xGOsdLAKZxp HTh8xOKMs942oV/k5lZ6sz+atVBSlTev97lT/LlPlTctqDa5AMgpdcWw8wPJ/PpEUOIC v3kTMd4b+iYF2Gbfa7d3p4UT5S+CAay4r6c8MGvCg2Z3FXlLVKhi5os9a8d66N5eqqtg T5OA== 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=lFd3ZZa33sHZ0pkumvdcZnlAStHa9Aciz7CsC20f6Nk=; b=i/Stc+gmfP+qUlxE+gk8IzaiL2UxIXXTLdcO2ygvC+McGDmTGXk0ZMWcnoNVgp0zC+ 1XFxV6BzhhWjiucVdZfgEb27R7dvRGpQAwKL4qCT6EBoy3c7428jbw8iLEraIMUt/GeR IbGZ3ICbbYt9tszEVrQym0Dc9Y/H9+RO0DKb+DnrFqvhmdbsi4ISjgT/0FOzZ5TRUwfB RyAgH58qenA4kY8CBedNuzxOgxbQ4QSpVRLnGa+VzeJ7sFL/D2hqKeENxgMMsb2kmKq7 q2RHPZUSNQM2my1SBD+pPMD6Fl2HshbQYvxJYN6IqhiV7/dO9bD044ZLi2ZpwQR1JcrD V3CA== X-Gm-Message-State: AOAM532+VId2e6xXpgk5OM1R9i0L8wWeRVaiWQ6deLFmT9Vgg9RJhK/2 WX3A+g8AiIrrqe7FOqA/JR/odEbsCNM= X-Received: by 2002:a05:620a:44d1:: with SMTP id y17mr1917793qkp.678.1642039560760; Wed, 12 Jan 2022 18:06:00 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id k9sm1264556qko.29.2022.01.12.18.05.59 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:06:00 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:05:13 -0300 Message-Id: <20220113020518.730-25-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 234/281] libvorbis: 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: Ao7qZW6rHOfc From: Anton Khirnov Signed-off-by: James Almer --- libavcodec/libvorbisdec.c | 4 +++- libavcodec/libvorbisenc.c | 42 +++++++++++++++++++-------------------- 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/libavcodec/libvorbisdec.c b/libavcodec/libvorbisdec.c index 5686aaf096..7317b71ed6 100644 --- a/libavcodec/libvorbisdec.c +++ b/libavcodec/libvorbisdec.c @@ -112,7 +112,9 @@ static int oggvorbis_decode_init(AVCodecContext *avccontext) { } } - avccontext->channels = context->vi.channels; + av_channel_layout_uninit(&avccontext->ch_layout); + avccontext->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + avccontext->ch_layout.nb_channels = context->vi.channels; avccontext->sample_rate = context->vi.rate; avccontext->sample_fmt = AV_SAMPLE_FMT_S16; avccontext->time_base= (AVRational){1, avccontext->sample_rate}; diff --git a/libavcodec/libvorbisenc.c b/libavcodec/libvorbisenc.c index fa0d5f4b42..640c7f1bf9 100644 --- a/libavcodec/libvorbisenc.c +++ b/libavcodec/libvorbisenc.c @@ -96,6 +96,7 @@ static int vorbis_error_to_averror(int ov_err) static av_cold int libvorbis_setup(vorbis_info *vi, AVCodecContext *avctx) { LibvorbisEncContext *s = avctx->priv_data; + int channels = avctx->ch_layout.nb_channels; double cfreq; int ret; @@ -108,7 +109,7 @@ static av_cold int libvorbis_setup(vorbis_info *vi, AVCodecContext *avctx) /* default to 3 if the user did not set quality or bitrate */ if (!(avctx->flags & AV_CODEC_FLAG_QSCALE)) q = 3.0; - if ((ret = vorbis_encode_setup_vbr(vi, avctx->channels, + if ((ret = vorbis_encode_setup_vbr(vi, channels, avctx->sample_rate, q / 10.0))) goto error; @@ -117,7 +118,7 @@ static av_cold int libvorbis_setup(vorbis_info *vi, AVCodecContext *avctx) int maxrate = avctx->rc_max_rate > 0 ? avctx->rc_max_rate : -1; /* average bitrate */ - if ((ret = vorbis_encode_setup_managed(vi, avctx->channels, + if ((ret = vorbis_encode_setup_managed(vi, channels, avctx->sample_rate, maxrate, avctx->bit_rate, minrate))) goto error; @@ -141,32 +142,31 @@ static av_cold int libvorbis_setup(vorbis_info *vi, AVCodecContext *avctx) goto error; } - if (avctx->channels == 3 && - avctx->channel_layout != (AV_CH_LAYOUT_STEREO|AV_CH_FRONT_CENTER) || - avctx->channels == 4 && - avctx->channel_layout != AV_CH_LAYOUT_2_2 && - avctx->channel_layout != AV_CH_LAYOUT_QUAD || - avctx->channels == 5 && - avctx->channel_layout != AV_CH_LAYOUT_5POINT0 && - avctx->channel_layout != AV_CH_LAYOUT_5POINT0_BACK || - avctx->channels == 6 && - avctx->channel_layout != AV_CH_LAYOUT_5POINT1 && - avctx->channel_layout != AV_CH_LAYOUT_5POINT1_BACK || - avctx->channels == 7 && - avctx->channel_layout != (AV_CH_LAYOUT_5POINT1|AV_CH_BACK_CENTER) || - avctx->channels == 8 && - avctx->channel_layout != AV_CH_LAYOUT_7POINT1) { - if (avctx->channel_layout) { + if ((channels == 3 && + av_channel_layout_compare(&avctx->ch_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_SURROUND)) || + (channels == 4 && + av_channel_layout_compare(&avctx->ch_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_2_2) && + av_channel_layout_compare(&avctx->ch_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_QUAD)) || + (channels == 5 && + av_channel_layout_compare(&avctx->ch_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_5POINT0) && + av_channel_layout_compare(&avctx->ch_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_5POINT0_BACK)) || + (channels == 6 && + av_channel_layout_compare(&avctx->ch_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_5POINT1) && + av_channel_layout_compare(&avctx->ch_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_5POINT1_BACK)) || + (channels == 7 && + av_channel_layout_compare(&avctx->ch_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_6POINT1)) || + (channels == 8 && + av_channel_layout_compare(&avctx->ch_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_7POINT1))) { + if (avctx->ch_layout.order != AV_CHANNEL_ORDER_UNSPEC) { char name[32]; - av_get_channel_layout_string(name, sizeof(name), avctx->channels, - avctx->channel_layout); + av_channel_layout_describe(&avctx->ch_layout, name, sizeof(name)); av_log(avctx, AV_LOG_ERROR, "%s not supported by Vorbis: " "output stream will have incorrect " "channel layout.\n", name); } else { av_log(avctx, AV_LOG_WARNING, "No channel layout specified. The encoder " "will use Vorbis channel layout for " - "%d channels.\n", avctx->channels); + "%d channels.\n", channels); } } From patchwork Thu Jan 13 02:05: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: 33504 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp42601iog; Wed, 12 Jan 2022 18:43:45 -0800 (PST) X-Google-Smtp-Source: ABdhPJzV2hcKlllkucZ6f35BkmkM2QBIPnGvx4l6nO4oQwrx7BzrZ662hv0uXFyR9+A5xpUKxkwV X-Received: by 2002:a17:907:2d8c:: with SMTP id gt12mr2000809ejc.430.1642041825500; Wed, 12 Jan 2022 18:43:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041825; cv=none; d=google.com; s=arc-20160816; b=K1LzJMscBtyFMYu8BJc4Vc0ynJkrV6CxIVHa/G3cjBlTAVWgJvNS50IVnrbVOnbkku fecgzZHQrFh4gcxcgwUaftITmO1hynIIzGiXbypdOilJaBIvDsfL0px6ZPWeS1iiZnTg dUhneMi+Jrksp1uiJpHNXBZl3Rm0/yV6Nm+clFOmXz6ES+w08O+rn9k4YYtA4OOoM5UW y4LIQV4tmT6tw0V/veHCxC+nx92WOh61bNWWA7vXxjILLCaEOjEZbAY4F+vj7T0FYJL2 FW4oPsptTMNJVmntsmCnUOLy3Q+GuN2XLRY+ncYb9WgcXOUGOFtwWAz5keR4ncbSTwIr x2ig== 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=LqZFyI4PbIbnkWyBvQy64XdzdVAUKDfBodxMJg7eqcU=; b=SoLAxJEecR9ANk6SjgsiuTUDu/LUkCfSitVWTe4qaS9NfPQP3KB8qX6MNMHsKiSPVr yML9S433lr5WT1bmV1zuUSVzwDDC8JuOSX8Og00FDg4ake/bxLPBiUVGWdip/MqJMTdp mqS/4QBif5vLTGbqfHrLDjNSZuDWvpWn7zTPObPlciH25yBTPLHtXxwVjQERB+DmzPNM JSOYYbGwMvzRJQ7kVmaSmb3UcD/ht1eRwdhuLX097e0JKQfwfwIajWLXFbSWmvz+D5Xs RlagtSiLVP8GgxUuzcQmh1VVqYwC3MeKc8jOCfXuIubRn7Xg0dI69rdgVYjgUuidPc02 m3nQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=caiXURxN; 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 c3si776024ejb.890.2022.01.12.18.43.45; Wed, 12 Jan 2022 18:43:45 -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=caiXURxN; 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 3533C68B920; Thu, 13 Jan 2022 04:06:06 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f169.google.com (mail-qk1-f169.google.com [209.85.222.169]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 995A568B908 for ; Thu, 13 Jan 2022 04:06:03 +0200 (EET) Received: by mail-qk1-f169.google.com with SMTP id bl18so5591521qkb.5 for ; Wed, 12 Jan 2022 18:06:03 -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=4VZfcurIWJQpUuphoeYI8qq5XleOxH8f/X3ICUfhU7M=; b=caiXURxNezDCELjAGHM5M2snjK9+MnFUubZ4z2IhWksDdUXmOCdcbuGkn55HGl3BZG LK4v09JzwK4vIUHpzq0xCCVUat3xMC3ahoefx1T5SIVQMJeVz2RNXJyF50g08ZtMRmxO Mn3+eZidUGDndW0fDMq2bl+vVCpm9uz1vJ0LZMkTKMB0v6ptQsmECLLYKs11l+nplpG1 cnERN4BAwygY86LjN0utnEGFr2I0Ld7ojwmaui+WfSOBxOa+K5BuAF82BWQcYw+MVHZ8 XoopHQyfTzGOy1ooRNH59NGXEAvgzdGkzlJvSWRxxGQXkLoJOc/pSk1lA34TrsSlRo7z euPw== 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=4VZfcurIWJQpUuphoeYI8qq5XleOxH8f/X3ICUfhU7M=; b=sCope1lFM50QQgCPLjJNK3EyC3a7ecHngYvBtM28fnXtfgnn60U72MoX47UlpegwXj lWMksS+WRRwGzJFnd/66ZuS98lGM0ogtXBHGvvKOFFHffrlbLXIK667RF+JZDXS/DBQR 8J+p45yKagC/yMUu99ymjPCPC/k/jeXJ6Og1cjjcCTxgpK2yNPNBgCozkMguLjqtPmSq 3+raWrosgagiScZ/Asgf2lWbNhrzejf00t02uTmjdkusQDJQAhA8hPuBOUwCMAszZAcW 8aaEbCyYKM38dD1fqkJvZNpvvbVDFZpH5TKyVmw3die/ZmqjJ1OOxZWjKPwQcIvM4Cfh Z1MA== X-Gm-Message-State: AOAM533ZiaOMIDTX2KHFJhT4ynzxLqkQPH/4MeUngvcMpjE6fV7JWXTl yEjf+rB/rv138YfGAamD9X7SMQtRAqg= X-Received: by 2002:a05:620a:29d1:: with SMTP id s17mr1833881qkp.424.1642039561995; Wed, 12 Jan 2022 18:06:01 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id k9sm1264556qko.29.2022.01.12.18.06.01 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:06:01 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:05:14 -0300 Message-Id: <20220113020518.730-26-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 235/281] mace: 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: 7KjjAllhzRyz From: Anton Khirnov Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavcodec/mace.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/libavcodec/mace.c b/libavcodec/mace.c index 506a0ddece..9ed4747ba9 100644 --- a/libavcodec/mace.c +++ b/libavcodec/mace.c @@ -226,7 +226,7 @@ static void chomp6(ChannelData *chd, int16_t *output, uint8_t val, int tab_idx) static av_cold int mace_decode_init(AVCodecContext * avctx) { - if (avctx->channels > 2 || avctx->channels < 1) + if (avctx->ch_layout.nb_channels > 2 || avctx->ch_layout.nb_channels < 1) return AVERROR(EINVAL); avctx->sample_fmt = AV_SAMPLE_FMT_S16P; @@ -239,31 +239,32 @@ static int mace_decode_frame(AVCodecContext *avctx, void *data, AVFrame *frame = data; const uint8_t *buf = avpkt->data; int buf_size = avpkt->size; + int channels = avctx->ch_layout.nb_channels; int16_t **samples; MACEContext *ctx = avctx->priv_data; int i, j, k, l, ret; int is_mace3 = (avctx->codec_id == AV_CODEC_ID_MACE3); - if (buf_size % (avctx->channels << is_mace3)) { + if (buf_size % (channels << is_mace3)) { av_log(avctx, AV_LOG_ERROR, "buffer size %d is odd\n", buf_size); - buf_size -= buf_size % (avctx->channels << is_mace3); + buf_size -= buf_size % (channels << is_mace3); if (!buf_size) return AVERROR_INVALIDDATA; } /* get output buffer */ - frame->nb_samples = 3 * (buf_size << (1 - is_mace3)) / avctx->channels; + frame->nb_samples = 3 * (buf_size << (1 - is_mace3)) / channels; if ((ret = ff_get_buffer(avctx, frame, 0)) < 0) return ret; samples = (int16_t **)frame->extended_data; - for(i = 0; i < avctx->channels; i++) { + for(i = 0; i < channels; i++) { int16_t *output = samples[i]; - for (j=0; j < buf_size / (avctx->channels << is_mace3); j++) + for (j=0; j < buf_size / (channels << is_mace3); j++) for (k=0; k < (1 << is_mace3); k++) { uint8_t pkt = buf[(i << is_mace3) + - (j*avctx->channels << is_mace3) + k]; + (j * channels << is_mace3) + k]; uint8_t val[2][3] = {{pkt >> 5, (pkt >> 3) & 3, pkt & 7 }, {pkt & 7 , (pkt >> 3) & 3, pkt >> 5}}; From patchwork Thu Jan 13 02:05: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: 33505 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp42696iog; Wed, 12 Jan 2022 18:43:57 -0800 (PST) X-Google-Smtp-Source: ABdhPJys7AlI7KFBHU8Wxv2147mxlObGYWwv7CMjdQUZesdRLbV2hJF+ThirkpUCbtpwYv+1DCvb X-Received: by 2002:a17:906:318a:: with SMTP id 10mr1951364ejy.154.1642041837423; Wed, 12 Jan 2022 18:43:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041837; cv=none; d=google.com; s=arc-20160816; b=Rs4xui1JJX3euWmAkNnBi6iwHHIVWWfMqPbuF4FRjR6oS8Bn1et5aO+loJ3sOvOLpH ueqSvYShNFWD0xhauxcQqPX7mU9c2p/oGbzRvUHG/mBz6Z1TGbeOzrL3vJvJxqIjxeIU 6hfQYmjnI9hwglTRJSZWtTdO7U6diQ7pRa52xINMsOim907wUa2dWcBEJbu6Q64OnYlI C5qbL3eD5sq11RvcVXAsuuGGyg42+b5U3OxQf/DMRrKUTPHiwJMUTNC6pGkDlfVAQ3nr quGw4JL6reCcB009pDZbE/xFBzlK6hszVClhAQeOpAzfrerbtrLHFOcoZNPaoOZDgUOf EaSA== 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=hNRPEmAsOO6gOB7E5WCjZA98FlpfQiNtCluH5ve/xH0=; b=MxT4Fospcs8Bs1Est2YFUD3ZXTRzk1PS1sR89UhwsxpNeJEAamzywGlmvsRyYoRp1M mCXkZZhAhGfg1Dhsh/7Rw8FmzXc1hDMLUZwE7xFB9b5zOM5nDCfngatq9pZBSTkPs0N6 5ZDRUjPrMmrvaiGXFc+ZWgAlLaYLMoaz0+ZXvdJT8QiuitK+Tm8kNWceagQVV1PnSFlY 6abE+zz6njTR+KFQc4BmepHxiYd1gG99FTaiEA3i1zU6/GlhHhU1qLRNkUPJzhnNsivV i/QNAzL7CeHYRX2u0jp6sygQmE8EfkYui0BFikZoOOswqK32Vedb5fF4BEwRsxSRDOJw SILA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=PrG+1tYg; 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 hb19si832147ejc.949.2022.01.12.18.43.57; Wed, 12 Jan 2022 18:43:57 -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=PrG+1tYg; 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 0A2DC68B92A; Thu, 13 Jan 2022 04:06:07 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f181.google.com (mail-qk1-f181.google.com [209.85.222.181]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D2B6B68B8F7 for ; Thu, 13 Jan 2022 04:06:04 +0200 (EET) Received: by mail-qk1-f181.google.com with SMTP id b127so5657709qkd.0 for ; Wed, 12 Jan 2022 18:06:04 -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=JdabDAtCUkW4BCil5CEYd7Jejxyo066RSonFZMwuX2A=; b=PrG+1tYgisV7w9AlXz1/ZGayYbFovj+rp42y5S2uIGXW31kLnq8OiAwizbu/+tKh0C anucdENXyM1MYm1sQsfdg4AVfRG2GY0oQuAb6DZ/Qb98dghhdSQMrJeyk3MQaKlk0qXL hxyNPRrTESuqYN67PiQdEk7n2Pt0tGBCqJGWrvEQDAbPhjakqj1+F01LuAvXCcYTG/ob U7ZwGWFGO5rTAQRm6hRC9E6rxHum0ayeuV/Hfn7ItWtpz+dV/IzAfrTeMexercYANh7G CF/iOveyVfc0kMtHJU6H+JF9KnxgNvNl0t81YyQ7gJOK289xDRFe1RI7S682s2u6+QOa 4Nhg== 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=JdabDAtCUkW4BCil5CEYd7Jejxyo066RSonFZMwuX2A=; b=quPCwddSNe2NvC1HsC0IKaLVKGhDqdjtqwiUiWDXHeCViQ2oVctOFBhYyLFDG3C7ZO vq7tgDdj31SqjmK9j6h2tJPzM1o5DJwSvlb5KvvE0pjBBRJoDxLXnTy503CaaWdTmKo9 AvmqiOPokbkrcwML3RDQS+fRzs/moahfToZ6HgC/vwtPekJgBl+eAAXourlTYm5ALIp0 jX/QHSyeBwwHFyXp/RWCx40+5QrdeoXfXMiL11PCfZ5QlTbeQZfefeNYHyduIIPgmFPF ExbdAlmyp2paSMlB9vSVXppqi21CNpLRXAekBqv0XEI/SYv6iBbZAsfnALhgsr41rRAA tsYg== X-Gm-Message-State: AOAM533x7GdT1AQyL8Gt8EKqiA1ho7hPqlOIRW2/8JQaivjSY0jsXUmS ykZ22eclFG1uGycfd1o2y9+yjWJYJxM= X-Received: by 2002:a05:620a:1a9d:: with SMTP id bl29mr1888581qkb.55.1642039563197; Wed, 12 Jan 2022 18:06:03 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id k9sm1264556qko.29.2022.01.12.18.06.02 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:06:02 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:05:15 -0300 Message-Id: <20220113020518.730-27-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 236/281] metasound: 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: yRLqt4u4TYLn From: Anton Khirnov Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavcodec/metasound.c | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/libavcodec/metasound.c b/libavcodec/metasound.c index 57851a43c5..32d5e153be 100644 --- a/libavcodec/metasound.c +++ b/libavcodec/metasound.c @@ -65,8 +65,9 @@ static void decode_ppc(TwinVQContext *tctx, int period_coef, int g_coef, const float *shape, float *speech) { const TwinVQModeTab *mtab = tctx->mtab; + int channels = tctx->avctx->ch_layout.nb_channels; int isampf = tctx->avctx->sample_rate / 1000; - int ibps = tctx->avctx->bit_rate / (1000 * tctx->avctx->channels); + int ibps = tctx->avctx->bit_rate / (1000 * channels); int width; float ratio = (float)mtab->size / isampf; @@ -75,7 +76,7 @@ static void decode_ppc(TwinVQContext *tctx, int period_coef, int g_coef, float pgain_base, pgain_step, ppc_gain; - if (tctx->avctx->channels == 1) { + if (channels == 1) { min_period = log2(ratio * 0.2); max_period = min_period + log2(6); } else { @@ -85,7 +86,7 @@ static void decode_ppc(TwinVQContext *tctx, int period_coef, int g_coef, period_range = max_period - min_period; period = min_period + period_coef * period_range / ((1 << mtab->ppc_period_bit) - 1); - if (tctx->avctx->channels == 1) + if (channels == 1) period = powf(2.0, period); else period = (int)(period * 400 + 0.5) / 400.0; @@ -103,7 +104,7 @@ static void decode_ppc(TwinVQContext *tctx, int period_coef, int g_coef, if (isampf == 22 && ibps == 32) width = (int)((2.0 / period + 1) * width + 0.5); - pgain_base = tctx->avctx->channels == 2 ? 25000.0 : 20000.0; + pgain_base = channels == 2 ? 25000.0 : 20000.0; pgain_step = pgain_base / ((1 << mtab->pgain_bit) - 1); ppc_gain = 1.0 / 8192 * twinvq_mulawinv(pgain_step * g_coef + pgain_step / 2, @@ -123,8 +124,9 @@ static void dec_bark_env(TwinVQContext *tctx, const uint8_t *in, int use_hist, int bark_n_coef = mtab->fmode[ftype].bark_n_coef; int fw_cb_len = mtab->fmode[ftype].bark_env_size / bark_n_coef; int idx = 0; + int channels = tctx->avctx->ch_layout.nb_channels; - if (tctx->avctx->channels == 1) + if (channels == 1) val = 0.5; for (i = 0; i < fw_cb_len; i++) for (j = 0; j < bark_n_coef; j++, idx++) { @@ -132,7 +134,7 @@ static void dec_bark_env(TwinVQContext *tctx, const uint8_t *in, int use_hist, (1.0 / 2048); float st; - if (tctx->avctx->channels == 1) + if (channels == 1) st = use_hist ? tmp2 + val * hist[idx] + 1.0 : tmp2 + 1.0; else @@ -167,7 +169,7 @@ static int metasound_read_bitstream(AVCodecContext *avctx, TwinVQContext *tctx, { TwinVQFrameData *bits; const TwinVQModeTab *mtab = tctx->mtab; - int channels = tctx->avctx->channels; + int channels = tctx->avctx->ch_layout.nb_channels; int sub; GetBitContext gb; int i, j, k, ret; @@ -276,6 +278,7 @@ static av_cold int metasound_decode_init(AVCodecContext *avctx) TwinVQContext *tctx = avctx->priv_data; uint32_t tag; const MetasoundProps *props = codec_props; + int channels; if (!avctx->extradata || avctx->extradata_size < 16) { av_log(avctx, AV_LOG_ERROR, "Missing or incomplete extradata\n"); @@ -291,7 +294,7 @@ static av_cold int metasound_decode_init(AVCodecContext *avctx) } if (props->tag == tag) { avctx->sample_rate = props->sample_rate; - avctx->channels = props->channels; + channels = props->channels; avctx->bit_rate = props->bit_rate * 1000; isampf = avctx->sample_rate / 1000; break; @@ -299,17 +302,17 @@ static av_cold int metasound_decode_init(AVCodecContext *avctx) props++; } - if (avctx->channels <= 0 || avctx->channels > TWINVQ_CHANNELS_MAX) { + if (channels <= 0 || channels > TWINVQ_CHANNELS_MAX) { av_log(avctx, AV_LOG_ERROR, "Unsupported number of channels: %i\n", - avctx->channels); + channels); return AVERROR_INVALIDDATA; } - avctx->channel_layout = avctx->channels == 1 ? AV_CH_LAYOUT_MONO - : AV_CH_LAYOUT_STEREO; + av_channel_layout_uninit(&avctx->ch_layout); + av_channel_layout_default(&avctx->ch_layout, channels); - ibps = avctx->bit_rate / (1000 * avctx->channels); + ibps = avctx->bit_rate / (1000 * channels); - switch ((avctx->channels << 16) + (isampf << 8) + ibps) { + switch ((channels << 16) + (isampf << 8) + ibps) { case (1 << 16) + ( 8 << 8) + 6: tctx->mtab = &ff_metasound_mode0806; break; From patchwork Thu Jan 13 02:06:46 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33508 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp43634iog; Wed, 12 Jan 2022 18:45:45 -0800 (PST) X-Google-Smtp-Source: ABdhPJxwmZxGGFZU4fsGCj7+8Y27YnML7NOzc8q9/j6QQkmeqnR1n7eqhcJMnqZL+YVap1Zq0hbc X-Received: by 2002:a17:906:4088:: with SMTP id u8mr2034922ejj.717.1642041945113; Wed, 12 Jan 2022 18:45:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041945; cv=none; d=google.com; s=arc-20160816; b=0Tnl+ukOyqimIyhph2RtGkoq8qFNLtgyyke0vdMZIcPijhZYSBC6ogiyOqRwopcJgY W9c4jVfEdrhmv8EjFqDpY3vZDqFFkx2NUMaUMiAFizlS2e6kuUSSdnngjcct7Nv1H9WL ct7uQTvXbSEgIxyLtfuCgXHifdAHy12SCR8EZXKI3xF9GtSZ10w37M3DIrLnTThsPULg 2FyN+xuASmCRu+50RuWNVSETdv4NudGuAPjz0Cpu1xibgHN+fLLurNgijUJPKFw4tome UTFtTMxlbw2LCnzvCNL04NyPA8YxaJ60zsJZcsEsw+oin5/llh6sl2gIy+gP30Nr4vTf e+MQ== 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=PT6OpiU9+WEQmF6mQHYUcS1ZKOdO0js7p6sdpl9TQcA=; b=LqVYENBa92vxqfBsLRutyZC9RDxHERialtWV1q9ZBX08BJbA1HzJbl8Y3Tm72xLsl4 l2OTcJhGehTpbwWwVZ155yFVfUFpugMfctokFGsTubaK/SKs0ozPs38uUeM9i9iBE5Bi j8UPXcDMqNx7cvbv9/pCt0okKfJsHawwgWZoqHblHFHbVwGl+PkJC3Pfu0IEtYumGbLi 3V1BtAyw7Z8zFifhgYhF/gvhdlLkh6ovawg7E38Ehj9bz+ack28lnIWd9f7YPwxSX7Eo R7WXkSN3RYdT7QnTtnJuhtSkD2pMUX8fxIiyUjIwXe2yTUvCTt1z+cjDjLjqfcaw4ihH xZJA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=VoyqoHFy; 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 c2si773933edy.234.2022.01.12.18.45.44; Wed, 12 Jan 2022 18:45:45 -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=VoyqoHFy; 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 1727B68B985; Thu, 13 Jan 2022 04:07:39 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f175.google.com (mail-qt1-f175.google.com [209.85.160.175]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E13D468B96D for ; Thu, 13 Jan 2022 04:07:30 +0200 (EET) Received: by mail-qt1-f175.google.com with SMTP id l17so5357853qtk.7 for ; Wed, 12 Jan 2022 18:07:30 -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=7e6YJKGpVtSInNILRUl/NqhyNuOp6SEPS9o1KSqnL/0=; b=VoyqoHFy2FdlMDZQKWgNwiCsd2K0RHc5VeA4QylfjNIOql79Rx5BwZb5ruKg4eWBwv wsBUPp8FUJeBDJ97FEacoO0PxHq/WO7NM173M3mKDZOi5S6ypv1Ph3DNNbuELIfxMynA mgWNi/N5WItvnpcWSeJothV7gYaSm1SYPszN+mXcgj4sAwRx3niQdLaZ/weHet7geL77 fY1P0KjOs6fdnQA9lT/vuefZtS9OL/zNP8O1U0dWhoKKMunM3xqWjUGv29sZaEVFRVg3 FLh2+7MqfWqWM52FeAdtGFhXpV2ZF5GgqG6J89mi4Pj/JJV15/3XRO6mQLq7uua3Hv5p KJkg== 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=7e6YJKGpVtSInNILRUl/NqhyNuOp6SEPS9o1KSqnL/0=; b=dOtMf2acKiN9brKFi6OjH74zJ98HvDNHEmQmO/TCdfewy2TlIB0ABYNMZnqjClk3e7 frmvHvrlDAwhJjRex/dEX6XfajoXN8s2d/S9pPsp+hYmNLj0uyyCvS4XMVJh/UTTU5DZ bRB4xl/g1HGASApautfj3RickVRLoTS402a086FyweiDAR0p+YpaxgmUprVUHFA3tebp 2etI2s4g2wWw5xwlm/xOkTKM8pFvuU5YspV+RwbNkG0k+RbnMP4P7C0YS+DznubnH6sX FsA4d1Y78m3eK/3RrHKwHP4OW0uMC6nU85h8fVlRdX3qgp6MFdJ4g9FVChx7TLanlwOQ TmFg== X-Gm-Message-State: AOAM530jzt23Gvh0AdI8P45CkOCjCXjPWZtfYT/x8GnEF1nReMkhJ/lb pseChtlfpxaNkFB+3XgN49Tn1N83mHY= X-Received: by 2002:ac8:5ad0:: with SMTP id d16mr1970774qtd.557.1642039649486; Wed, 12 Jan 2022 18:07:29 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id a16sm1085946qta.13.2022.01.12.18.07.28 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:07:29 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:06:46 -0300 Message-Id: <20220113020713.801-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 242/281] nellymoser: 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: 8bpboDqS2wHL From: Anton Khirnov Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavcodec/nellymoserdec.c | 4 ++-- libavcodec/nellymoserenc.c | 6 +----- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/libavcodec/nellymoserdec.c b/libavcodec/nellymoserdec.c index ccfe881790..6870ffea0e 100644 --- a/libavcodec/nellymoserdec.c +++ b/libavcodec/nellymoserdec.c @@ -129,8 +129,8 @@ static av_cold int decode_init(AVCodecContext * avctx) { s->scale_bias = 1.0/(32768*8); avctx->sample_fmt = AV_SAMPLE_FMT_FLT; - avctx->channels = 1; - avctx->channel_layout = AV_CH_LAYOUT_MONO; + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; /* Generate overlap window */ ff_init_ff_sine_windows(7); diff --git a/libavcodec/nellymoserenc.c b/libavcodec/nellymoserenc.c index 41d9117065..abf7d82160 100644 --- a/libavcodec/nellymoserenc.c +++ b/libavcodec/nellymoserenc.c @@ -171,11 +171,6 @@ static av_cold int encode_init(AVCodecContext *avctx) NellyMoserEncodeContext *s = avctx->priv_data; int ret; - if (avctx->channels != 1) { - av_log(avctx, AV_LOG_ERROR, "Nellymoser supports only 1 channel\n"); - return AVERROR(EINVAL); - } - if (avctx->sample_rate != 8000 && avctx->sample_rate != 16000 && avctx->sample_rate != 11025 && avctx->sample_rate != 22050 && avctx->sample_rate != 44100 && @@ -431,5 +426,6 @@ const AVCodec ff_nellymoser_encoder = { .close = encode_end, .sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_NONE }, + .ch_layouts = (const AVChannelLayout[]){ AV_CHANNEL_LAYOUT_MONO, { 0 } }, .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP, }; From patchwork Thu Jan 13 02:06:47 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33510 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp43841iog; Wed, 12 Jan 2022 18:46:11 -0800 (PST) X-Google-Smtp-Source: ABdhPJyJpGngNhfen4o6O093I+dr9zjyeaBRfDA5S4Huo3HJtL6/uZbiajG/8jpq5wOCphee/kBi X-Received: by 2002:aa7:d382:: with SMTP id x2mr2338377edq.297.1642041971130; Wed, 12 Jan 2022 18:46:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041971; cv=none; d=google.com; s=arc-20160816; b=MSKs+BGnINL+pPvvV0QzagAqUpYjrUQbKu6vPhWCBpmMIJVI1PlbvRUi1NJUbnAEwf SsN+hPRqXOduLSrb8LFtkcLG6snx2ubwEyikWhtQi41HCVhuL80873Abu0DBDjil6Y66 AcjZaQ8M77URhY80tjmzKeT2kOhZZG1jDmllCTOq9bBqfev3vRx77QS+TG0RlW60EABZ Wi1fNjOg87FxSe1iEkVl2nqjJdCeOmvvoqjCPOwldjnWBlOvbTkpEFbjEHewedG/GpCW /f3mnAseNvfEHOuohGj8qFwZfCC3gCrC1KuFp3WD7Y/aQpp6IWcE+ru+7dBmRPHhj0f+ nYMQ== 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=hu6n0RSlV6XRB2mL6jnIGBAtDGy5jkitvK4dvDkacR8=; b=izyQMZh5rZBJY8xCSCd5r1MikO+b/EOAKJEsQBewYm+IdwFHiHqtvrJsCIh9dE3Cfk 2TeijhUl5iirI8rjkNp7r1rRtFvFZkzKLaEesL7bmbAk+iM7HoZBMtq1FH6KFi+O9MMs ITz+WwFf6ozvJIPdkDpGX12JRROoAGNHK6kRn66edCegoP87PbAxf095XgrMboiS/mzC qSpJ7KN13DfTjPAhhvIgPa52dPpig0TKEmHD3i26smy2Ck+qbm7Mh6LNS86EgNBL8nug Rm3WJgQN3SG82exVoUU6/S5ufUs6+exENs/kOJEyNk3UCATgq93VugxX6nvdV/pnnhkZ lDjw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=FCUm9rGE; 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 j19si743182ejn.737.2022.01.12.18.46.10; Wed, 12 Jan 2022 18:46:11 -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=FCUm9rGE; 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 D62DC68B99B; Thu, 13 Jan 2022 04:07:40 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f176.google.com (mail-qk1-f176.google.com [209.85.222.176]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 11C8B68AEC8 for ; Thu, 13 Jan 2022 04:07:32 +0200 (EET) Received: by mail-qk1-f176.google.com with SMTP id h16so5626083qkp.3 for ; Wed, 12 Jan 2022 18:07:32 -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=gvzpkLYgQan+PpmhIVJrlCKvu7XMU6S4aIib6h+rNfE=; b=FCUm9rGE2s/8522IR6ykxoGO/HDyqk/Oc7dwutz+zT6kVbtGTbNOWpd32Eic+ySWtb g6vYMvhMxcWHUeTviOOBj3C58bRqaE1WH/f7mwsNl3ZfDSDnvQTKB9upU/59rc7XNjgg 5Ycp2rvLBFwioiBpuUnOG8YbXBtX3hJMEuYGzkTEQJWRCH3wyvmeeYpCYyts5Zpi63bP I2H/J6JY/p6gD0SNRSpXvcQR1JD/GrWaSWU5wHFhPIumb8tvNjFtPKOFzJwLtawjcH2V XYHzWQ3GfVcMM2WR0SzUEqFUq2G03w+qcnBYXtlYxBQTJbUbspr0nGsJFoN+EMXLRyJB GT0Q== 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=gvzpkLYgQan+PpmhIVJrlCKvu7XMU6S4aIib6h+rNfE=; b=oU7Dr/cCUVEgIp/bBfINTAES0a6ZwsSW4mtrPFVXJtMcCBCdv6Xdg2pXisIuMBwJ3O xqU1Cb+IFUIQOF687ompy9fXrFl0wk/JgOo+sv5g1nvIWZyMJ83Hn8B41K1uWoXFAi5s g95x9iwVC+ostxwTcOJBDEjI5mhA1YOykX+kS4rlvHjcG36xGc5oKQYVxNVImPZEm1mV ac4jKNY9wc1B70qhD5/Vdy2SyzUadB/sLGKux+O8HLEox4m3bgumOpE1Thtd227pJPXf 7w/5dmAYspEY6tku4NZPQw+TLKKocnrxIbDPhq6FIZc7AcT3pPIRXWUmnhf8kYzfgrop +CVg== X-Gm-Message-State: AOAM5316+1gWD7z3OZ+QFChDfwW8WhWV3y2/K3uLbsukTgdtMb3YHH39 R68GNdrAuzn0OmMAtmkAM6ywJ02SlOM= X-Received: by 2002:a05:620a:6ca:: with SMTP id 10mr1900221qky.206.1642039650694; Wed, 12 Jan 2022 18:07:30 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id a16sm1085946qta.13.2022.01.12.18.07.29 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:07:30 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:06:47 -0300 Message-Id: <20220113020713.801-4-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 243/281] on2avc: 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: AFs5DFYigzr/ From: Anton Khirnov Signed-off-by: James Almer --- libavcodec/on2avc.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/libavcodec/on2avc.c b/libavcodec/on2avc.c index fa3eb4b219..1d5a9487b3 100644 --- a/libavcodec/on2avc.c +++ b/libavcodec/on2avc.c @@ -691,7 +691,7 @@ static int on2avc_reconstruct_channel_ext(On2AVCContext *c, AVFrame *dst, int of { int ch, i; - for (ch = 0; ch < c->avctx->channels; ch++) { + for (ch = 0; ch < c->avctx->ch_layout.nb_channels; ch++) { float *out = (float*)dst->extended_data[ch] + offset; float *in = c->coeffs[ch]; float *saved = c->delay[ch]; @@ -823,13 +823,13 @@ static int on2avc_decode_subframe(On2AVCContext *c, const uint8_t *buf, c->grouping[i] = !get_bits1(&gb); on2avc_read_ms_info(c, &gb); - for (i = 0; i < c->avctx->channels; i++) + for (i = 0; i < c->avctx->ch_layout.nb_channels; i++) if ((ret = on2avc_read_channel_data(c, &gb, i)) < 0) return AVERROR_INVALIDDATA; - if (c->avctx->channels == 2 && c->ms_present) + if (c->avctx->ch_layout.nb_channels == 2 && c->ms_present) on2avc_apply_ms(c); if (c->window_type < WINDOW_TYPE_EXT4) { - for (i = 0; i < c->avctx->channels; i++) + for (i = 0; i < c->avctx->ch_layout.nb_channels; i++) on2avc_reconstruct_channel(c, i, dst, offset); } else { on2avc_reconstruct_channel_ext(c, dst, offset); @@ -910,21 +910,23 @@ static av_cold int on2avc_decode_init(AVCodecContext *avctx) On2AVCContext *c = avctx->priv_data; const uint8_t *lens = ff_on2avc_cb_lens; const uint16_t *syms = ff_on2avc_cb_syms; + int channels = avctx->ch_layout.nb_channels; int i, ret; - if (avctx->channels > 2U) { + if (channels > 2U) { avpriv_request_sample(avctx, "Decoding more than 2 channels"); return AVERROR_PATCHWELCOME; } c->avctx = avctx; avctx->sample_fmt = AV_SAMPLE_FMT_FLTP; - avctx->channel_layout = (avctx->channels == 2) ? AV_CH_LAYOUT_STEREO - : AV_CH_LAYOUT_MONO; + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout = (channels == 2) ? (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO : + (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; c->is_av500 = (avctx->codec_tag == 0x500); - if (avctx->channels == 2) + if (channels == 2) av_log(avctx, AV_LOG_WARNING, "Stereo mode support is not good, patch is welcome\n"); @@ -936,7 +938,7 @@ static av_cold int on2avc_decode_init(AVCodecContext *avctx) for (; i < 128; i++) c->scale_tab[i] = ceil(ff_exp10(i * 0.1) * 0.5 - 0.01); - if (avctx->sample_rate < 32000 || avctx->channels == 1) + if (avctx->sample_rate < 32000 || channels == 1) memcpy(c->long_win, ff_on2avc_window_long_24000, 1024 * sizeof(*c->long_win)); else From patchwork Thu Jan 13 02:06: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: 33506 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp43363iog; Wed, 12 Jan 2022 18:45:14 -0800 (PST) X-Google-Smtp-Source: ABdhPJxVdpX1+G1sqmECXhmTU3i2wTkZ1Gn9MmpdMWEtmcUKHeEkdpkZMdaTrjGGyAqnZJtk0Efl X-Received: by 2002:a17:906:4f17:: with SMTP id t23mr2044879eju.688.1642041914074; Wed, 12 Jan 2022 18:45:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041914; cv=none; d=google.com; s=arc-20160816; b=oCsKpq0lBdKq+v7poUhY19uhP8/5GE1sq4iCTmmqZxZZlYWjE1C6YJCDBbUAlYjfG3 obPprhSUgSeVLMQ5j6nBMYDPn3uygTf8och8mRCWhmuNrp5UQdPJ+A9ROzruED5TnHv+ Tn+naCFy9ooUz2QTfZtJt9fdLu6DpjsRNPAkTigRMQ03RZOOFY+T/VsivOT4ETJ3U4pA CCmyDC96iCPLx8faJS1HxlEV+mwpiSYsRYkOwj7v5r35qP+Nx8tb1fvUGQhkvYpEF4I5 OOn1mUI2ML9PADqovJEZbaq32q0oaXNy2bb3s5xBAK1Wf8OY2S6kDaJYZmBI3z3glIUz DwFA== 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=TUrhMsIa7/XrU2vuh+AyOEIkdQrQjt7keGeV8tMfevU=; b=svSQrgBQ+QKbWvQV9AecdHRh2NI5SfzAO9svLJZX6i5QBCu3PvjHZ//9woFjVlZFih aL+BwPg595hAVIFRPDUdkLWnb2uToAOaWM8I69AoNAsO3oRt7qbuuHN4S4O+JIr/c9EP TEX3yHfiaoO6UfmBiDhNGXzfRlzwpP5e6+L79d7PwKPZ1anEU0qF28QLUzfH/jWlfhss 1ugs0Qv/+0OrQj/+JEwdRoHF5DC8g6L3CPlwwtFYxKkclAB3m62kocnnzYvBbafpY7BQ apTNLJi4EalMWynw82m6sjGZ+JizGzkPtPDlMkh4ZE2+9ywAbYRRTcSv7dGlp4XChK0k TpBA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=QG1qSPsA; 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 qb36si936152ejc.382.2022.01.12.18.45.13; Wed, 12 Jan 2022 18:45:14 -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=QG1qSPsA; 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 D944668B96C; Thu, 13 Jan 2022 04:07:35 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f174.google.com (mail-qt1-f174.google.com [209.85.160.174]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9D8BC68B95D for ; Thu, 13 Jan 2022 04:07:33 +0200 (EET) Received: by mail-qt1-f174.google.com with SMTP id l17so5357956qtk.7 for ; Wed, 12 Jan 2022 18:07:33 -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=3vA/zfP/i8//GHAFmh7CGuwgO1xGB5VITO/DuCRi/UM=; b=QG1qSPsAmBBmy1LSbd1SwWpoj4KFQuJrnUbTcmcXXyQe3xVkvXLKNVieKSTbwxsRIR f6k2FHG1/8pEgofBFuOelTtNLH6CkQrcakzrmLYvCqp3EGCblX2rbnZ8CjuxNG3flg2l z5dvmXMEiKfVNZJzqU4inRJFAj31d5coSh2OKNGgIicgl8KvfRIMBb+bqgoTjHLG/DCw 5rSPUCy2ajymNkH3Iq9TqU5pllDAhfqSDNV5dXWSp5kkL9vyD2Lc+gIj/7jrzqD7IRW0 QWuw1ixmMWzD0QxS+RHHknSrdHc5xVhkjH6VvuJZ4/eMUeG366JIijAsdcwiq3TQYJQo cavA== 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=3vA/zfP/i8//GHAFmh7CGuwgO1xGB5VITO/DuCRi/UM=; b=IOYRHkjRC1D8qKSHPuV4uuTRT0FmSeGA+fKdrEmY1qCj865dMPvo16zeblUpL6OZY6 hkrgGFEIDNw70YbeP48A4KxSo/4xzaiNEvcoKVMvPFrQq4ZOPETTx9cD04FStFspPVzM oj5fmTvcnLvrK5m9Nfe7ct3O2Up+6YwoOLem4AuQDd0btE7go0UtpjhFNwHBYZYmsMIN Z0ZvwBlTdVGfQdTcufeVi9c0FdMF7+hbkUoO4bocCJfbNOR2GAHsboekugUwRD8MnIr9 jrWCCFA532DjjUtCnxBvd4P0WW9jskuWqOkmrkDyjBq8lm5b37iyxMya4GhK5C4w5kMQ i9EA== X-Gm-Message-State: AOAM532aZrnK7wBC6Gg7ppz3sYr0Z9opvxsebLTCSn0mUcw5+keYo85G sdst1f0BSq9V7caEy+hWjYCIaKLRyIs= X-Received: by 2002:a05:622a:11c8:: with SMTP id n8mr2087261qtk.622.1642039651958; Wed, 12 Jan 2022 18:07:31 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id a16sm1085946qta.13.2022.01.12.18.07.30 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:07:31 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:06:48 -0300 Message-Id: <20220113020713.801-5-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 244/281] opus: 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: HkrrOb111G2s From: Anton Khirnov Signed-off-by: James Almer --- libavcodec/opus.c | 57 ++++++++++++++++++++++++++-------------- libavcodec/opusdec.c | 4 +-- libavcodec/opusenc.c | 15 ++++++++--- libavcodec/opusenc_psy.c | 20 +++++++------- 4 files changed, 61 insertions(+), 35 deletions(-) diff --git a/libavcodec/opus.c b/libavcodec/opus.c index df8ba93fa9..c18ff47f71 100644 --- a/libavcodec/opus.c +++ b/libavcodec/opus.c @@ -296,14 +296,15 @@ av_cold int ff_opus_parse_extradata(AVCodecContext *avctx, static const uint8_t default_channel_map[2] = { 0, 1 }; int (*channel_reorder)(int, int) = channel_reorder_unknown; + int channels = avctx->ch_layout.nb_channels; const uint8_t *extradata, *channel_map; int extradata_size; - int version, channels, map_type, streams, stereo_streams, i, j; - uint64_t layout; + int version, map_type, streams, stereo_streams, i, j, ret; + AVChannelLayout layout = { 0 }; if (!avctx->extradata) { - if (avctx->channels > 2) { + if (channels > 2) { av_log(avctx, AV_LOG_ERROR, "Multichannel configuration without extradata.\n"); return AVERROR(EINVAL); @@ -331,7 +332,7 @@ av_cold int ff_opus_parse_extradata(AVCodecContext *avctx, if (avctx->internal) avctx->internal->skip_samples = avctx->delay; - channels = avctx->extradata ? extradata[9] : (avctx->channels == 1) ? 1 : 2; + channels = avctx->extradata ? extradata[9] : (channels == 1) ? 1 : 2; if (!channels) { av_log(avctx, AV_LOG_ERROR, "Zero channel count specified in the extradata\n"); return AVERROR_INVALIDDATA; @@ -346,9 +347,11 @@ av_cold int ff_opus_parse_extradata(AVCodecContext *avctx, if (channels > 2) { av_log(avctx, AV_LOG_ERROR, "Channel mapping 0 is only specified for up to 2 channels\n"); - return AVERROR_INVALIDDATA; + ret = AVERROR_INVALIDDATA; + goto fail; } - layout = (channels == 1) ? AV_CH_LAYOUT_MONO : AV_CH_LAYOUT_STEREO; + layout = (channels == 1) ? (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO : + (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO; streams = 1; stereo_streams = channels - 1; channel_map = default_channel_map; @@ -356,7 +359,8 @@ av_cold int ff_opus_parse_extradata(AVCodecContext *avctx, if (extradata_size < 21 + channels) { av_log(avctx, AV_LOG_ERROR, "Invalid extradata size: %d\n", extradata_size); - return AVERROR_INVALIDDATA; + ret = AVERROR_INVALIDDATA; + goto fail; } streams = extradata[19]; @@ -365,16 +369,18 @@ av_cold int ff_opus_parse_extradata(AVCodecContext *avctx, streams + stereo_streams > 255) { av_log(avctx, AV_LOG_ERROR, "Invalid stream/stereo stream count: %d/%d\n", streams, stereo_streams); - return AVERROR_INVALIDDATA; + ret = AVERROR_INVALIDDATA; + goto fail; } if (map_type == 1) { if (channels > 8) { av_log(avctx, AV_LOG_ERROR, "Channel mapping 1 is only specified for up to 8 channels\n"); - return AVERROR_INVALIDDATA; + ret = AVERROR_INVALIDDATA; + goto fail; } - layout = ff_vorbis_channel_layouts[channels - 1]; + av_channel_layout_copy(&layout, &ff_vorbis_ch_layouts[channels - 1]); channel_reorder = channel_reorder_vorbis; } else if (map_type == 2) { int ambisonic_order = ff_sqrt(channels) - 1; @@ -384,15 +390,20 @@ av_cold int ff_opus_parse_extradata(AVCodecContext *avctx, "Channel mapping 2 is only specified for channel counts" " which can be written as (n + 1)^2 or (n + 1)^2 + 2" " for nonnegative integer n\n"); - return AVERROR_INVALIDDATA; + ret = AVERROR_INVALIDDATA; + goto fail; } if (channels > 227) { av_log(avctx, AV_LOG_ERROR, "Too many channels\n"); - return AVERROR_INVALIDDATA; + ret = AVERROR_INVALIDDATA; + goto fail; } - layout = 0; - } else - layout = 0; + layout.order = AV_CHANNEL_ORDER_UNSPEC; + layout.nb_channels = channels; + } else { + layout.order = AV_CHANNEL_ORDER_UNSPEC; + layout.nb_channels = channels; + } channel_map = extradata + 21; } else { @@ -401,8 +412,10 @@ av_cold int ff_opus_parse_extradata(AVCodecContext *avctx, } s->channel_maps = av_calloc(channels, sizeof(*s->channel_maps)); - if (!s->channel_maps) - return AVERROR(ENOMEM); + if (!s->channel_maps) { + ret = AVERROR(ENOMEM); + goto fail; + } for (i = 0; i < channels; i++) { ChannelMap *map = &s->channel_maps[i]; @@ -415,7 +428,8 @@ av_cold int ff_opus_parse_extradata(AVCodecContext *avctx, av_log(avctx, AV_LOG_ERROR, "Invalid channel map for output channel %d: %d\n", i, idx); av_freep(&s->channel_maps); - return AVERROR_INVALIDDATA; + ret = AVERROR_INVALIDDATA; + goto fail; } /* check that we did not see this index yet */ @@ -436,12 +450,15 @@ av_cold int ff_opus_parse_extradata(AVCodecContext *avctx, } } - avctx->channels = channels; - avctx->channel_layout = layout; + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout = layout; s->nb_streams = streams; s->nb_stereo_streams = stereo_streams; return 0; +fail: + av_channel_layout_uninit(&layout); + return ret; } void ff_celt_quant_bands(CeltFrame *f, OpusRangeCoder *rc) diff --git a/libavcodec/opusdec.c b/libavcodec/opusdec.c index b063e0efeb..2133a4c63b 100644 --- a/libavcodec/opusdec.c +++ b/libavcodec/opusdec.c @@ -458,7 +458,7 @@ static int opus_decode_packet(AVCodecContext *avctx, void *data, return ret; frame->nb_samples = 0; - for (i = 0; i < avctx->channels; i++) { + for (i = 0; i < avctx->ch_layout.nb_channels; i++) { ChannelMap *map = &c->channel_maps[i]; if (!map->copy) c->streams[map->stream_idx].out[map->channel_idx] = (float*)frame->extended_data[i]; @@ -541,7 +541,7 @@ static int opus_decode_packet(AVCodecContext *avctx, void *data, } } - for (i = 0; i < avctx->channels; i++) { + for (i = 0; i < avctx->ch_layout.nb_channels; i++) { ChannelMap *map = &c->channel_maps[i]; /* handle copied channels */ diff --git a/libavcodec/opusenc.c b/libavcodec/opusenc.c index b7f4760a25..a36f59bf23 100644 --- a/libavcodec/opusenc.c +++ b/libavcodec/opusenc.c @@ -66,7 +66,7 @@ static void opus_write_extradata(AVCodecContext *avctx) bytestream_put_buffer(&bs, "OpusHead", 8); bytestream_put_byte (&bs, 0x1); - bytestream_put_byte (&bs, avctx->channels); + bytestream_put_byte (&bs, avctx->ch_layout.nb_channels); bytestream_put_le16 (&bs, avctx->initial_padding); bytestream_put_le32 (&bs, avctx->sample_rate); bytestream_put_le16 (&bs, 0x0); @@ -518,11 +518,16 @@ static void opus_packet_assembler(OpusEncContext *s, AVPacket *avpkt) static AVFrame *spawn_empty_frame(OpusEncContext *s) { AVFrame *f = av_frame_alloc(); + int ret; if (!f) return NULL; f->format = s->avctx->sample_fmt; f->nb_samples = s->avctx->frame_size; - f->channel_layout = s->avctx->channel_layout; + ret = av_channel_layout_copy(&f->ch_layout, &s->avctx->ch_layout); + if (ret < 0) { + av_frame_free(&f); + return NULL; + } if (av_frame_get_buffer(f, 4)) { av_frame_free(&f); return NULL; @@ -626,7 +631,7 @@ static av_cold int opus_encode_init(AVCodecContext *avctx) OpusEncContext *s = avctx->priv_data; s->avctx = avctx; - s->channels = avctx->channels; + s->channels = avctx->ch_layout.nb_channels; /* Opus allows us to change the framesize on each packet (and each packet may * have multiple frames in it) but we can't change the codec's frame size on @@ -734,8 +739,12 @@ const AVCodec ff_opus_encoder = { .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP, .capabilities = AV_CODEC_CAP_EXPERIMENTAL | AV_CODEC_CAP_SMALL_LAST_FRAME | AV_CODEC_CAP_DELAY, .supported_samplerates = (const int []){ 48000, 0 }, +#if FF_API_OLD_CHANNEL_LAYOUT .channel_layouts = (const uint64_t []){ AV_CH_LAYOUT_MONO, AV_CH_LAYOUT_STEREO, 0 }, +#endif + .ch_layouts = (const AVChannelLayout []){ AV_CHANNEL_LAYOUT_MONO, + AV_CHANNEL_LAYOUT_STEREO, { 0 } }, .sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_NONE }, }; diff --git a/libavcodec/opusenc_psy.c b/libavcodec/opusenc_psy.c index 5a50db942f..1c8f69269c 100644 --- a/libavcodec/opusenc_psy.c +++ b/libavcodec/opusenc_psy.c @@ -83,7 +83,7 @@ static void step_collect_psy_metrics(OpusPsyContext *s, int index) st->index = index; - for (ch = 0; ch < s->avctx->channels; ch++) { + for (ch = 0; ch < s->avctx->ch_layout.nb_channels; ch++) { const int lap_size = (1 << s->bsize_analysis); for (i = 1; i <= FFMIN(lap_size, index); i++) { const int offset = i*120; @@ -105,7 +105,7 @@ static void step_collect_psy_metrics(OpusPsyContext *s, int index) st->bands[ch][i] = &st->coeffs[ch][ff_celt_freq_bands[i] << s->bsize_analysis]; } - for (ch = 0; ch < s->avctx->channels; ch++) { + for (ch = 0; ch < s->avctx->ch_layout.nb_channels; ch++) { for (i = 0; i < CELT_MAX_BANDS; i++) { float avg_c_s, energy = 0.0f, dist_dev = 0.0f; const int range = ff_celt_freq_range[i] << s->bsize_analysis; @@ -128,7 +128,7 @@ static void step_collect_psy_metrics(OpusPsyContext *s, int index) st->silence = !silence; - if (s->avctx->channels > 1) { + if (s->avctx->ch_layout.nb_channels > 1) { for (i = 0; i < CELT_MAX_BANDS; i++) { float incompat = 0.0f; const float *coeffs1 = st->bands[0][i]; @@ -140,7 +140,7 @@ static void step_collect_psy_metrics(OpusPsyContext *s, int index) } } - for (ch = 0; ch < s->avctx->channels; ch++) { + for (ch = 0; ch < s->avctx->ch_layout.nb_channels; ch++) { for (i = 0; i < CELT_MAX_BANDS; i++) { OpusBandExcitation *ex = &s->ex[ch][i]; float bp_e = bessel_filter(&s->bfilter_lo[ch][i], st->energy[ch][i]); @@ -259,7 +259,7 @@ void ff_opus_psy_celt_frame_init(OpusPsyContext *s, CeltFrame *f, int index) f->start_band = (s->p.mode == OPUS_MODE_HYBRID) ? 17 : 0; f->end_band = ff_celt_band_end[s->p.bandwidth]; - f->channels = s->avctx->channels; + f->channels = s->avctx->ch_layout.nb_channels; f->size = s->p.framesize; for (i = 0; i < (1 << f->size); i++) @@ -327,7 +327,7 @@ static void celt_gauge_psy_weight(OpusPsyContext *s, OpusPsyStep **start, float tonal_contrib = 0.0f; for (f = 0; f < (1 << s->p.framesize); f++) { weight = start[f]->stereo[i]; - for (ch = 0; ch < s->avctx->channels; ch++) { + for (ch = 0; ch < s->avctx->ch_layout.nb_channels; ch++) { weight += start[f]->change_amp[ch][i] + start[f]->tone[ch][i] + start[f]->energy[ch][i]; tonal_contrib += start[f]->tone[ch][i]; } @@ -384,7 +384,7 @@ static void celt_search_for_dual_stereo(OpusPsyContext *s, CeltFrame *f) float td1, td2; f->dual_stereo = 0; - if (s->avctx->channels < 2) + if (s->avctx->ch_layout.nb_channels < 2) return; bands_dist(s, f, &td1); @@ -402,7 +402,7 @@ static void celt_search_for_intensity(OpusPsyContext *s, CeltFrame *f) /* TODO: fix, make some heuristic up here using the lambda value */ float end_band = 0; - if (s->avctx->channels < 2) + if (s->avctx->ch_layout.nb_channels < 2) return; for (i = f->end_band; i >= end_band; i--) { @@ -436,7 +436,7 @@ static int celt_search_for_tf(OpusPsyContext *s, OpusPsyStep **start, CeltFrame float iscore0 = 0.0f; float iscore1 = 0.0f; for (j = 0; j < (1 << f->size); j++) { - for (k = 0; k < s->avctx->channels; k++) { + for (k = 0; k < s->avctx->ch_layout.nb_channels; k++) { iscore0 += start[j]->tone[k][i]*start[j]->change_amp[k][i]/mag[0]; iscore1 += start[j]->tone[k][i]*start[j]->change_amp[k][i]/mag[1]; } @@ -540,7 +540,7 @@ av_cold int ff_opus_psy_init(OpusPsyContext *s, AVCodecContext *avctx, goto fail; } - for (ch = 0; ch < s->avctx->channels; ch++) { + for (ch = 0; ch < s->avctx->ch_layout.nb_channels; ch++) { for (i = 0; i < CELT_MAX_BANDS; i++) { bessel_init(&s->bfilter_hi[ch][i], 1.0f, 19.0f, 100.0f, 1); bessel_init(&s->bfilter_lo[ch][i], 1.0f, 20.0f, 100.0f, 0); From patchwork Thu Jan 13 02:06:49 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33507 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp43510iog; Wed, 12 Jan 2022 18:45:31 -0800 (PST) X-Google-Smtp-Source: ABdhPJzWqEdvKRi+pgJHb5TcAlc/22cmzoxkb9NOhNQNHY1IEcQ9iI7G5W1BWYPq3H/OrxYVvBa+ X-Received: by 2002:a05:6402:40cf:: with SMTP id z15mr2297195edb.185.1642041931602; Wed, 12 Jan 2022 18:45:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041931; cv=none; d=google.com; s=arc-20160816; b=a0/aYZEb278ZJETxooiukvkBfY+PUpLYshosNFjdQeBX544iMuz/YWYOqdtkm5U1zJ Q5pUWcwDa2uXdPy0KNOjrSWSDRbvFuFXjxtsb7mfQyz+Hq+4NHry0yna6kDqBTakSGqy 4j36uaiRof6OEGe0TISIwtjlHJRcDZOJ5EeMXqyOeb1G/g2+sXbPJ6OHHFxCxcY7oNl6 4K+oj5esvjzQy2nnnt9VtZGekc9yOxKzTlox4lsGouwj3Apb6/FpfD5Dt+Pn7HFHgrIp JCNMYd3I58tqBTnRmn4mSQ+5v5VbkL4HPjJFxdJwfoTSEBkRhSJ5iFmTDtoc61+jjSJL Hlhg== 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=1UGnhRCUF4t+fXcdtDi903fdjlqZQxT3GNmliqp7e/c=; b=kUsynPW7vSOeqsJxeKCctGdne34LoerNjXbPrWgvwDgGu7G5Wf5NqdVGgUdSjDsuog sodAOFeTof4mu617Uzwo8TOj1ID89J6KfXx1ToNkDhRB7S9WqPSJLX3nNcuXBm561t79 Q9gnK2unvRTJlXB541ss8T+YQdaTPP8tuUYeHQynXUaTJPHBaNYFWd7PzpQbUcm3dK2K g8OJR377xO91Y12fN0Vof/TPqH5++Im0zNkyhMkA/HCCGtXVrSBDbuGJwHTs1O6BiOdX 2176DxYoDqpDVLdrM6PLY1BXQ9je8HcbGyntvCi6fKqd9/fol6fVHXlqU38on1ShyFGk HDGQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=HTh59G8T; 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 r10si755173ejy.9.2022.01.12.18.45.31; Wed, 12 Jan 2022 18:45:31 -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=HTh59G8T; 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 178F068B97E; Thu, 13 Jan 2022 04:07:38 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f178.google.com (mail-qt1-f178.google.com [209.85.160.178]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8F64768B95C for ; Thu, 13 Jan 2022 04:07:34 +0200 (EET) Received: by mail-qt1-f178.google.com with SMTP id h15so989155qtx.0 for ; Wed, 12 Jan 2022 18:07:34 -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=5qKjOmAub+QH67Q7khvf2Xwmgq+jAuWcl8KW4KyKt0I=; b=HTh59G8T9jALEJ5T6tPqvwXpcd3MYCkWK9o/SZEbfyYmCwcxDiHbitzzG4jfseWBB/ J4HLSlQYdpI7GngxggzudJgZs7UG/NVLG43SRh/da9ek3IVciUVlU5RFHaJPQABxt8qG aDHdoxlLXvOdhOE3lvc9uk/HKp7IU0/bP02oXpc/nkztxIsQ5Or5hQdd/FhI2fHoPtvR e/3J8aWMNUmPcXG2vgBE9iZi/vvQmSGZdZj8vr2aMf8tu+3zDnZFOU4Y1OCbLGx0mcid 11j7/N8esntU4lpHG5spD5N1n5Fb5wrYQgBhC4FSxXi3Mh+2pN4uQ6ZTpG+kZvqTJ2Lp x6Yg== 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=5qKjOmAub+QH67Q7khvf2Xwmgq+jAuWcl8KW4KyKt0I=; b=OyRhnLqidFTw83q/HnIhshkfOxx28n1b3ib2Qv7JbcXjBl7qS9GwLU+TUNRUiW6bmd rHj6Wcvt9iFrBuBB90TowQS3pE/CC1E8jpqAXjJx90SeC5b1K2MrP9VfbXT5y2tjA6uB 7nGSYQG8f/u0Gkd8kDzOeVRvLLslcTHyezp/AERicMtFc8AgDqw+YChUlFyOOyjUsgoD LaobE8Fr080GKbay5z511XlowLixcOa5SaAp+6hnBMIkW7bbgNXWsbveKDpB2jEtofza Baq8o5nqUzSrk6pZU3nRiYqF9HHyJLBXJo4t7k/QYD7x5wX6msETwqofhAg9etg+hdBP 8WiQ== X-Gm-Message-State: AOAM533Tma1ne78NWpS88wnW1pMYa7tdAuxEy910lAx8ksiQSxSZ1Spo vAgCh2gmz6OAmzzh3VdGqlfhlT2m6F0= X-Received: by 2002:ac8:7d83:: with SMTP id c3mr2014981qtd.607.1642039653186; Wed, 12 Jan 2022 18:07:33 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id a16sm1085946qta.13.2022.01.12.18.07.32 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:07:32 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:06:49 -0300 Message-Id: <20220113020713.801-6-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 245/281] pafaudio: 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: HzfMCUHMvOHe From: Vittorio Giovara Signed-off-by: James Almer --- libavcodec/pafaudio.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libavcodec/pafaudio.c b/libavcodec/pafaudio.c index 969eb7fa97..8d0e65a829 100644 --- a/libavcodec/pafaudio.c +++ b/libavcodec/pafaudio.c @@ -29,12 +29,13 @@ static av_cold int paf_audio_init(AVCodecContext *avctx) { - if (avctx->channels != 2) { + if (avctx->ch_layout.nb_channels != 2) { av_log(avctx, AV_LOG_ERROR, "invalid number of channels\n"); return AVERROR_INVALIDDATA; } - avctx->channel_layout = AV_CH_LAYOUT_STEREO; + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO; avctx->sample_fmt = AV_SAMPLE_FMT_S16; return 0; From patchwork Thu Jan 13 02:06:50 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33509 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp43732iog; Wed, 12 Jan 2022 18:45:58 -0800 (PST) X-Google-Smtp-Source: ABdhPJzrANPhv2u+gPE1N9QqRZGMzKy9KkDmHL4+KCfeOFilbJwZGDXXfXbl52UBKsw6Svt7djX+ X-Received: by 2002:a17:907:7249:: with SMTP id ds9mr1953394ejc.331.1642041958114; Wed, 12 Jan 2022 18:45:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041958; cv=none; d=google.com; s=arc-20160816; b=0+odP/L9XieUKLe/La4wDY7CC8nplebtJ7YemEKzX2x/jI1zApcl6cdFuy44j3cC7/ +bZbkYnsnHuB3ZtbAUznISb8CaI/EZXIxcA5qvzeGwtJQz+tAoevnMn0pXm0AbCPxMS8 r3pjVpvwiEBuYbSXRIotIUCg5GKEOuotLOE+tu+GgHbFH5pdSqtQQdV7hFnlYVf378Tu ngRU73+8pruP1euL8fSOjk0cK0kGFb32PnEHO93YVPcdCHtsLwq6YxzXjn0su/NG5kgR fuNQab0dOfPtBbCkLBKKMWsiZe9mEI5R7JTgKXa0YpZ8J4mJAyYdSEPcpFU0/qx0XLWN nC1g== 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=gIVQifWOB7z/U8ErmoYRGt+7JOqg/ecwLdFYv3+bAbU=; b=wX9Qd5348grUBrXWWNOJ1n6REzHb4pVohuJPxjSQFU0wxS14OWA1mPjWy7MTg3Pgd/ AnURo+FRBZNpg8agveaHR8/VDzFHpvkMsPB9Oa5mUjaYahuIQcK5C5mAvyH3GauTkHrC NQ9Tn70Ol1lSQDnCJLQVegg03QbDW5PTfBDxFIc5KSarXpeXfbWptJfCj5EonPvrE7Xq Jm9lDGMN0nFqo2BPsMk4BU073LNjkBkffXdqErvOai52gyeS3hleJnpO9Pg1E14P01TD p5G3XYSiW/PU2A9oNrFmGOZPERlWlSKvU1/y7R5bEh0XVlECCUN+VAIDlRc5l9RcTX96 5Yew== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=gWIbGLIi; 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 t15si1106626edj.366.2022.01.12.18.45.57; Wed, 12 Jan 2022 18:45: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=gWIbGLIi; 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 0705368B98F; Thu, 13 Jan 2022 04:07:40 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f182.google.com (mail-qk1-f182.google.com [209.85.222.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 54CD368B971 for ; Thu, 13 Jan 2022 04:07:36 +0200 (EET) Received: by mail-qk1-f182.google.com with SMTP id b127so5661522qkd.0 for ; Wed, 12 Jan 2022 18:07:36 -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=yrLPeJb02Oj0aDyWZ6i/Z8XVBz+PRI43PRNSAtffcYk=; b=gWIbGLIizGh4nzUG21kVhqinz/6u3VeOuOxHYC++RR5bi2UfQx/y/2f2E0WLxFW9Xu RM3m9D0GgsVlO4dQnrrVCMyZP6+uBNYkp1HwXM5Ql4JPcwnc48lI2iHh50hYH40Il1z+ L9Alga8N3sPK8QmYoAe7b04oVgtud8VUDQHV+T0FDJ51i8Y7NslaoCt+ng23RczJqEq0 xUcNnPzhaJeOMmQKvaLXHSWItsq1MMgEAV9JfZP1PyzyQebgeE4alDP24warn2SyqjDD BK5AtRiqfnaJPNPOAzsIxpsgpeLKfhzFFHdkkcd5BRlx57DY0Nhr7zIEa1hrTWiZZ+Cd S38A== 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=yrLPeJb02Oj0aDyWZ6i/Z8XVBz+PRI43PRNSAtffcYk=; b=INQHea9FuwUfI7l//N6ouliMBTX3AGv9szhVdmuiOkaCD9wK2PsvsqCln0Nv3StIJk cPaHbsFMQEdfuRyb01jZlk8s5KlS5XUAXBZT3TU/ann6eokLXHz1cqboZAtLV3LRHsPL x+dE57mJlfC3bIJwCOD2ZQ8oS4DvvdwCUUAxwQY6wqtNw6I3KgO2Ay/yMVsIBpDjEj9c xVTujalS5uHUv9IXuUdJ7g91/xeZOQ/3psFOXCZ/Xhvpm60MGTBmmnYRZG82JD8IKMsi oAjqrI9hMAzfhkDGrSGx32Gtu0/M8YyAlYgNfngnDVc5aZoVu+6aG23pAn/1xWMvBZ4X AHTQ== X-Gm-Message-State: AOAM532O7ez0YWb97Jjd96Lix+uN2GOogfZx1lV+Rvs2VSkWwyezkXDM SFpyLan7BM33EMXfkAJQm+4aIyZ/1aU= X-Received: by 2002:a05:620a:40d4:: with SMTP id g20mr1935026qko.570.1642039654590; Wed, 12 Jan 2022 18:07:34 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id a16sm1085946qta.13.2022.01.12.18.07.33 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:07:34 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:06:50 -0300 Message-Id: <20220113020713.801-7-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 246/281] pcm: 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: AGh9sbUhfiaa From: Anton Khirnov Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavcodec/pcm-bluray.c | 36 ++++++++++++++++----------------- libavcodec/pcm-dvd.c | 28 +++++++++++++++----------- libavcodec/pcm-dvdenc.c | 27 ++++++++++++++++--------- libavcodec/pcm.c | 39 ++++++++++++++++++------------------ libavcodec/pcm_rechunk_bsf.c | 5 +++-- 5 files changed, 73 insertions(+), 62 deletions(-) diff --git a/libavcodec/pcm-bluray.c b/libavcodec/pcm-bluray.c index c2a6e82b1d..6250f25e72 100644 --- a/libavcodec/pcm-bluray.c +++ b/libavcodec/pcm-bluray.c @@ -54,14 +54,12 @@ static int pcm_bluray_parse_header(AVCodecContext *avctx, const uint8_t *header) { static const uint8_t bits_per_samples[4] = { 0, 16, 20, 24 }; - static const uint32_t channel_layouts[16] = { - 0, AV_CH_LAYOUT_MONO, 0, AV_CH_LAYOUT_STEREO, AV_CH_LAYOUT_SURROUND, - AV_CH_LAYOUT_2_1, AV_CH_LAYOUT_4POINT0, AV_CH_LAYOUT_2_2, - AV_CH_LAYOUT_5POINT0, AV_CH_LAYOUT_5POINT1, AV_CH_LAYOUT_7POINT0, - AV_CH_LAYOUT_7POINT1, 0, 0, 0, 0 - }; - static const uint8_t channels[16] = { - 0, 1, 0, 2, 3, 3, 4, 4, 5, 6, 7, 8, 0, 0, 0, 0 + static const AVChannelLayout channel_layouts[16] = { + { 0 }, AV_CHANNEL_LAYOUT_MONO, { 0 }, + AV_CHANNEL_LAYOUT_STEREO, AV_CHANNEL_LAYOUT_SURROUND, AV_CHANNEL_LAYOUT_2_1, + AV_CHANNEL_LAYOUT_4POINT0, AV_CHANNEL_LAYOUT_2_2, AV_CHANNEL_LAYOUT_5POINT0, + AV_CHANNEL_LAYOUT_5POINT1, AV_CHANNEL_LAYOUT_7POINT0, AV_CHANNEL_LAYOUT_7POINT1, + { 0 }, { 0 }, { 0 }, { 0 }, }; uint8_t channel_layout = header[2] >> 4; @@ -104,21 +102,21 @@ static int pcm_bluray_parse_header(AVCodecContext *avctx, * differ from the actual meaningful number, e.g. mono audio still has two * channels, one being empty. */ - avctx->channel_layout = channel_layouts[channel_layout]; - avctx->channels = channels[channel_layout]; - if (!avctx->channels) { + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout = channel_layouts[channel_layout]; + if (!avctx->ch_layout.nb_channels) { av_log(avctx, AV_LOG_ERROR, "reserved channel configuration (%d)\n", channel_layout); return AVERROR_INVALIDDATA; } - avctx->bit_rate = FFALIGN(avctx->channels, 2) * avctx->sample_rate * + avctx->bit_rate = FFALIGN(avctx->ch_layout.nb_channels, 2) * avctx->sample_rate * avctx->bits_per_coded_sample; if (avctx->debug & FF_DEBUG_PICT_INFO) ff_dlog(avctx, "pcm_bluray_parse_header: %d channels, %d bits per sample, %d Hz, %"PRId64" bit/s\n", - avctx->channels, avctx->bits_per_coded_sample, + avctx->ch_layout.nb_channels, avctx->bits_per_coded_sample, avctx->sample_rate, avctx->bit_rate); return 0; } @@ -148,7 +146,7 @@ static int pcm_bluray_decode_frame(AVCodecContext *avctx, void *data, bytestream2_init(&gb, src, buf_size); /* There's always an even number of channels in the source */ - num_source_channels = FFALIGN(avctx->channels, 2); + num_source_channels = FFALIGN(avctx->ch_layout.nb_channels, 2); sample_size = (num_source_channels * (avctx->sample_fmt == AV_SAMPLE_FMT_S16 ? 16 : 24)) >> 3; samples = buf_size / sample_size; @@ -161,7 +159,7 @@ static int pcm_bluray_decode_frame(AVCodecContext *avctx, void *data, dst32 = (int32_t *)frame->data[0]; if (samples) { - switch (avctx->channel_layout) { + switch (avctx->ch_layout.u.mask) { /* cases with same number of source and coded channels */ case AV_CH_LAYOUT_STEREO: case AV_CH_LAYOUT_4POINT0: @@ -189,10 +187,10 @@ static int pcm_bluray_decode_frame(AVCodecContext *avctx, void *data, if (AV_SAMPLE_FMT_S16 == avctx->sample_fmt) { do { #if HAVE_BIGENDIAN - bytestream2_get_buffer(&gb, dst16, avctx->channels * 2); - dst16 += avctx->channels; + bytestream2_get_buffer(&gb, dst16, avctx->ch_layout.nb_channels * 2); + dst16 += avctx->ch_layout.nb_channels; #else - channel = avctx->channels; + channel = avctx->ch_layout.nb_channels; do { *dst16++ = bytestream2_get_be16u(&gb); } while (--channel); @@ -201,7 +199,7 @@ static int pcm_bluray_decode_frame(AVCodecContext *avctx, void *data, } while (--samples); } else { do { - channel = avctx->channels; + channel = avctx->ch_layout.nb_channels; do { *dst32++ = bytestream2_get_be24u(&gb) << 8; } while (--channel); diff --git a/libavcodec/pcm-dvd.c b/libavcodec/pcm-dvd.c index 775d342eaa..7f991bba65 100644 --- a/libavcodec/pcm-dvd.c +++ b/libavcodec/pcm-dvd.c @@ -55,6 +55,7 @@ static int pcm_dvd_parse_header(AVCodecContext *avctx, const uint8_t *header) static const uint32_t frequencies[4] = { 48000, 96000, 44100, 32000 }; PCMDVDContext *s = avctx->priv_data; int header_int = (header[0] & 0xe0) | (header[1] << 8) | (header[2] << 16); + int channels; /* early exit if the header didn't change apart from the frame number */ if (s->last_header == header_int) @@ -89,9 +90,12 @@ static int pcm_dvd_parse_header(AVCodecContext *avctx, const uint8_t *header) avctx->sample_rate = frequencies[header[1] >> 4 & 3]; /* get the number of channels */ - avctx->channels = 1 + (header[1] & 7); + channels = 1 + (header[1] & 7); + + av_channel_layout_uninit(&avctx->ch_layout); + av_channel_layout_default(&avctx->ch_layout, channels); /* calculate the bitrate */ - avctx->bit_rate = avctx->channels * + avctx->bit_rate = channels * avctx->sample_rate * avctx->bits_per_coded_sample; @@ -100,15 +104,15 @@ static int pcm_dvd_parse_header(AVCodecContext *avctx, const uint8_t *header) * needed to complete a set of samples for each channel. */ if (avctx->bits_per_coded_sample == 16) { s->samples_per_block = 1; - s->block_size = avctx->channels * 2; + s->block_size = channels * 2; } else { - switch (avctx->channels) { + switch (channels) { case 1: case 2: case 4: /* one group has all the samples needed */ s->block_size = 4 * avctx->bits_per_coded_sample / 8; - s->samples_per_block = 4 / avctx->channels; + s->samples_per_block = 4 / channels; s->groups_per_block = 1; break; case 8: @@ -118,11 +122,11 @@ static int pcm_dvd_parse_header(AVCodecContext *avctx, const uint8_t *header) s->groups_per_block = 2; break; default: - /* need avctx->channels groups */ - s->block_size = 4 * avctx->channels * + /* need channels groups */ + s->block_size = 4 * channels * avctx->bits_per_coded_sample / 8; s->samples_per_block = 4; - s->groups_per_block = avctx->channels; + s->groups_per_block = channels; break; } } @@ -130,7 +134,7 @@ static int pcm_dvd_parse_header(AVCodecContext *avctx, const uint8_t *header) if (avctx->debug & FF_DEBUG_PICT_INFO) ff_dlog(avctx, "pcm_dvd_parse_header: %d channels, %d bits per sample, %d Hz, %"PRId64" bit/s\n", - avctx->channels, avctx->bits_per_coded_sample, + avctx->ch_layout.nb_channels, avctx->bits_per_coded_sample, avctx->sample_rate, avctx->bit_rate); s->last_header = header_int; @@ -155,7 +159,7 @@ static void *pcm_dvd_decode_samples(AVCodecContext *avctx, const uint8_t *src, bytestream2_get_buffer(&gb, dst16, blocks * s->block_size); dst16 += blocks * s->block_size / 2; #else - int samples = blocks * avctx->channels; + int samples = blocks * avctx->ch_layout.nb_channels; do { *dst16++ = bytestream2_get_be16u(&gb); } while (--samples); @@ -163,7 +167,7 @@ static void *pcm_dvd_decode_samples(AVCodecContext *avctx, const uint8_t *src, return dst16; } case 20: - if (avctx->channels == 1) { + if (avctx->ch_layout.nb_channels == 1) { do { for (i = 2; i; i--) { dst32[0] = bytestream2_get_be16u(&gb) << 16; @@ -191,7 +195,7 @@ static void *pcm_dvd_decode_samples(AVCodecContext *avctx, const uint8_t *src, } return dst32; case 24: - if (avctx->channels == 1) { + if (avctx->ch_layout.nb_channels == 1) { do { for (i = 2; i; i--) { dst32[0] = bytestream2_get_be16u(&gb) << 16; diff --git a/libavcodec/pcm-dvdenc.c b/libavcodec/pcm-dvdenc.c index c9afac69d2..e16c2a5fe4 100644 --- a/libavcodec/pcm-dvdenc.c +++ b/libavcodec/pcm-dvdenc.c @@ -60,7 +60,7 @@ static av_cold int pcm_dvd_encode_init(AVCodecContext *avctx) } avctx->bits_per_coded_sample = 16 + quant * 4; - avctx->block_align = avctx->channels * avctx->bits_per_coded_sample / 8; + avctx->block_align = avctx->ch_layout.nb_channels * avctx->bits_per_coded_sample / 8; avctx->bit_rate = avctx->block_align * 8LL * avctx->sample_rate; if (avctx->bit_rate > 9800000) { av_log(avctx, AV_LOG_ERROR, "Too big bitrate: reduce sample rate, bitdepth or channels.\n"); @@ -69,16 +69,16 @@ static av_cold int pcm_dvd_encode_init(AVCodecContext *avctx) if (avctx->sample_fmt == AV_SAMPLE_FMT_S16) { s->samples_per_block = 1; - s->block_size = avctx->channels * 2; + s->block_size = avctx->ch_layout.nb_channels * 2; frame_size = 2008 / s->block_size; } else { - switch (avctx->channels) { + switch (avctx->ch_layout.nb_channels) { case 1: case 2: case 4: /* one group has all the samples needed */ s->block_size = 4 * avctx->bits_per_coded_sample / 8; - s->samples_per_block = 4 / avctx->channels; + s->samples_per_block = 4 / avctx->ch_layout.nb_channels; s->groups_per_block = 1; break; case 8: @@ -88,11 +88,11 @@ static av_cold int pcm_dvd_encode_init(AVCodecContext *avctx) s->groups_per_block = 2; break; default: - /* need avctx->channels groups */ - s->block_size = 4 * avctx->channels * + /* need avctx->ch_layout.nb_channels groups */ + s->block_size = 4 * avctx->ch_layout.nb_channels * avctx->bits_per_coded_sample / 8; s->samples_per_block = 4; - s->groups_per_block = avctx->channels; + s->groups_per_block = avctx->ch_layout.nb_channels; break; } @@ -100,7 +100,7 @@ static av_cold int pcm_dvd_encode_init(AVCodecContext *avctx) } s->header[0] = 0x0c; - s->header[1] = (quant << 6) | (freq << 4) | (avctx->channels - 1); + s->header[1] = (quant << 6) | (freq << 4) | (avctx->ch_layout.nb_channels - 1); s->header[2] = 0x80; if (!avctx->frame_size) @@ -113,7 +113,7 @@ static int pcm_dvd_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, const AVFrame *frame, int *got_packet_ptr) { PCMDVDContext *s = avctx->priv_data; - int samples = frame->nb_samples * avctx->channels; + int samples = frame->nb_samples * avctx->ch_layout.nb_channels; int64_t pkt_size = (frame->nb_samples / s->samples_per_block) * s->block_size + 3; int blocks = (pkt_size - 3) / s->block_size; const int16_t *src16; @@ -138,7 +138,7 @@ static int pcm_dvd_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, } while (--samples); break; case AV_SAMPLE_FMT_S32: - if (avctx->channels == 1) { + if (avctx->ch_layout.nb_channels == 1) { do { for (int i = 2; i; i--) { bytestream2_put_be16(&pb, src32[0] >> 16); @@ -181,11 +181,18 @@ const AVCodec ff_pcm_dvd_encoder = { .init = pcm_dvd_encode_init, .encode2 = pcm_dvd_encode_frame, .supported_samplerates = (const int[]) { 48000, 96000, 0}, +#if FF_API_OLD_CHANNEL_LAYOUT .channel_layouts = (const uint64_t[]) { AV_CH_LAYOUT_MONO, AV_CH_LAYOUT_STEREO, AV_CH_LAYOUT_5POINT1, AV_CH_LAYOUT_7POINT1, 0 }, +#endif + .ch_layouts = (const AVChannelLayout[]) { AV_CHANNEL_LAYOUT_MONO, + AV_CHANNEL_LAYOUT_STEREO, + AV_CHANNEL_LAYOUT_5POINT1, + AV_CHANNEL_LAYOUT_7POINT1, + { 0 } }, .sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S32, AV_SAMPLE_FMT_NONE }, diff --git a/libavcodec/pcm.c b/libavcodec/pcm.c index e9b8eab484..f0f3d05e92 100644 --- a/libavcodec/pcm.c +++ b/libavcodec/pcm.c @@ -56,7 +56,7 @@ static av_cold int pcm_encode_init(AVCodecContext *avctx) #endif avctx->bits_per_coded_sample = av_get_bits_per_sample(avctx->codec->id); - avctx->block_align = avctx->channels * avctx->bits_per_coded_sample / 8; + avctx->block_align = avctx->ch_layout.nb_channels * avctx->bits_per_coded_sample / 8; avctx->bit_rate = avctx->block_align * 8LL * avctx->sample_rate; return 0; @@ -80,8 +80,8 @@ static av_cold int pcm_encode_init(AVCodecContext *avctx) } #define ENCODE_PLANAR(type, endian, dst, n, shift, offset) \ - n /= avctx->channels; \ - for (c = 0; c < avctx->channels; c++) { \ + n /= avctx->ch_layout.nb_channels; \ + for (c = 0; c < avctx->ch_layout.nb_channels; c++) { \ int i; \ samples_ ## type = (const type *) frame->extended_data[c]; \ for (i = n; i > 0; i--) { \ @@ -104,7 +104,7 @@ static int pcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, const uint32_t *samples_uint32_t; sample_size = av_get_bits_per_sample(avctx->codec->id) / 8; - n = frame->nb_samples * avctx->channels; + n = frame->nb_samples * avctx->ch_layout.nb_channels; samples = (const short *)frame->data[0]; if ((ret = ff_get_encode_buffer(avctx, avpkt, n * sample_size, 0)) < 0) @@ -207,8 +207,8 @@ static int pcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, case AV_CODEC_ID_PCM_S16LE_PLANAR: case AV_CODEC_ID_PCM_S32LE_PLANAR: #endif /* HAVE_BIGENDIAN */ - n /= avctx->channels; - for (c = 0; c < avctx->channels; c++) { + n /= avctx->ch_layout.nb_channels; + for (c = 0; c < avctx->ch_layout.nb_channels; c++) { const uint8_t *src = frame->extended_data[c]; bytestream_put_buffer(&dst, src, n * sample_size); } @@ -252,7 +252,7 @@ static av_cold int pcm_decode_init(AVCodecContext *avctx) AVFloatDSPContext *fdsp; int i; - if (avctx->channels <= 0) { + if (avctx->ch_layout.nb_channels <= 0) { av_log(avctx, AV_LOG_ERROR, "PCM channels out of bounds\n"); return AVERROR(EINVAL); } @@ -312,8 +312,8 @@ static av_cold int pcm_decode_init(AVCodecContext *avctx) } #define DECODE_PLANAR(size, endian, src, dst, n, shift, offset) \ - n /= avctx->channels; \ - for (c = 0; c < avctx->channels; c++) { \ + n /= channels; \ + for (c = 0; c < avctx->ch_layout.nb_channels; c++) { \ int i; \ dst = frame->extended_data[c]; \ for (i = n; i > 0; i--) { \ @@ -330,6 +330,7 @@ static int pcm_decode_frame(AVCodecContext *avctx, void *data, int buf_size = avpkt->size; PCMDecode *s = avctx->priv_data; AVFrame *frame = data; + int channels = avctx->ch_layout.nb_channels; int sample_size, c, n, ret, samples_per_block; uint8_t *samples; int32_t *dst_int32_t; @@ -349,7 +350,7 @@ static int pcm_decode_frame(AVCodecContext *avctx, void *data, return AVERROR(EINVAL); } - if (avctx->channels == 0) { + if (channels == 0) { av_log(avctx, AV_LOG_ERROR, "Invalid number of channels\n"); return AVERROR(EINVAL); } @@ -359,7 +360,7 @@ static int pcm_decode_frame(AVCodecContext *avctx, void *data, return AVERROR(EINVAL); } - n = avctx->channels * sample_size; + n = channels * sample_size; if (n && buf_size % n) { if (buf_size < n) { @@ -374,7 +375,7 @@ static int pcm_decode_frame(AVCodecContext *avctx, void *data, n = buf_size / sample_size; /* get output buffer */ - frame->nb_samples = n * samples_per_block / avctx->channels; + frame->nb_samples = n * samples_per_block / channels; if ((ret = ff_get_buffer(avctx, frame, 0)) < 0) return ret; samples = frame->data[0]; @@ -429,8 +430,8 @@ static int pcm_decode_frame(AVCodecContext *avctx, void *data, } break; case AV_CODEC_ID_PCM_S8_PLANAR: - n /= avctx->channels; - for (c = 0; c < avctx->channels; c++) { + n /= avctx->ch_layout.nb_channels; + for (c = 0; c < avctx->ch_layout.nb_channels; c++) { int i; samples = frame->extended_data[c]; for (i = n; i > 0; i--) @@ -494,8 +495,8 @@ static int pcm_decode_frame(AVCodecContext *avctx, void *data, case AV_CODEC_ID_PCM_S16LE_PLANAR: case AV_CODEC_ID_PCM_S32LE_PLANAR: #endif /* HAVE_BIGENDIAN */ - n /= avctx->channels; - for (c = 0; c < avctx->channels; c++) { + n /= avctx->ch_layout.nb_channels; + for (c = 0; c < avctx->ch_layout.nb_channels; c++) { samples = frame->extended_data[c]; bytestream_get_buffer(&src, samples, n * sample_size); } @@ -511,8 +512,8 @@ static int pcm_decode_frame(AVCodecContext *avctx, void *data, case AV_CODEC_ID_PCM_LXF: { int i; - n /= avctx->channels; - for (c = 0; c < avctx->channels; c++) { + n /= channels; + for (c = 0; c < channels; c++) { dst_int32_t = (int32_t *)frame->extended_data[c]; for (i = 0; i < n; i++) { // extract low 20 bits and expand to 32 bits @@ -540,7 +541,7 @@ static int pcm_decode_frame(AVCodecContext *avctx, void *data, avctx->codec_id == AV_CODEC_ID_PCM_F24LE) { s->vector_fmul_scalar((float *)frame->extended_data[0], (const float *)frame->extended_data[0], - s->scale, FFALIGN(frame->nb_samples * avctx->channels, 4)); + s->scale, FFALIGN(frame->nb_samples * avctx->ch_layout.nb_channels, 4)); emms_c(); } diff --git a/libavcodec/pcm_rechunk_bsf.c b/libavcodec/pcm_rechunk_bsf.c index 7cf763359d..80727a1a91 100644 --- a/libavcodec/pcm_rechunk_bsf.c +++ b/libavcodec/pcm_rechunk_bsf.c @@ -42,11 +42,12 @@ static int init(AVBSFContext *ctx) AVRational sr = av_make_q(ctx->par_in->sample_rate, 1); int64_t min_samples; - if (ctx->par_in->channels <= 0 || ctx->par_in->sample_rate <= 0) + if (ctx->par_in->ch_layout.nb_channels <= 0 || ctx->par_in->sample_rate <= 0) return AVERROR(EINVAL); ctx->time_base_out = av_inv_q(sr); - s->sample_size = ctx->par_in->channels * av_get_bits_per_sample(ctx->par_in->codec_id) / 8; + s->sample_size = ctx->par_in->ch_layout.nb_channels * + av_get_bits_per_sample(ctx->par_in->codec_id) / 8; if (s->frame_rate.num) { min_samples = av_rescale_q_rnd(1, sr, s->frame_rate, AV_ROUND_DOWN); From patchwork Thu Jan 13 02:06:51 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33511 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp43964iog; Wed, 12 Jan 2022 18:46:23 -0800 (PST) X-Google-Smtp-Source: ABdhPJwPQELjV5fdnf5Hyf1vbr7++3LMh932ah+UMg1NDSqb5f9iR6/plkSpbipGBP7M6AF6P30b X-Received: by 2002:a17:907:6e18:: with SMTP id sd24mr1987650ejc.90.1642041983451; Wed, 12 Jan 2022 18:46:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041983; cv=none; d=google.com; s=arc-20160816; b=agD1en4R9VVQjMlKtlfWgmvMWCTEKkmnof9oBqDKrTma40UhHk6rvIeNkAn4zLpWDU BLIMRJMV6p23rxynklLoZ684qEbN5FU4g7VobW0sUBotmUie6RgKwF+PKOseCtpRaEp9 c2YdkW0zdBkdFCsjgHUP6uuqtx3ln8Cj0hoA0ycMVX4xD0DJAwOx0GAsB8taVJmcRwYd qfmx6LbYlWhyeQptyPOphoUZYQVQ2/iko9L+ScqXnG1xkIQ2S/ikY4XqRAr7rlAAHb7m Ui5Hw8fwyl13e/mdVunfDfEFHytIl8S8dNmBQeSIeUghcLiYJCFAE75pNtx38aN5mqH6 BI4Q== 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=/2o5V6Tfxd3DBiL4TIyupTxVAlC8ULxW7jxBv5mIOuw=; b=vIM35xwsqNgHgfFUZPaa2exgMESyahSKX0tZ0c1+3vQkjyCaSIZ0wYo4DYFrWe/aI1 qnMyBM92NczL4hmejDhyYhDiW51v9kQELkO793ANxMZ34NR2DEbdTGIScr7iGtK3RRZB p4WAoEAUB89V70x1fID3J/XhfrRuWcOp/dbT5AqtwcdJFg/EDPhrthBaUIW/2siPYNXR y03JiSdVLUwO7EmpbOCFHTk5UAvIPSraxhjI7pktPmec82YmJb8xA/8uetIh01+E9uR0 HcM7uUyQ8imW4lExLXt0Hsm0m/s/MqtwC3dSvpXrFOMRbRwN8F1vz24mOeDiHdGCKwVi 7wlQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=pCazKQl0; 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 sg35si859337ejc.253.2022.01.12.18.46.23; Wed, 12 Jan 2022 18:46:23 -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=pCazKQl0; 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 DFA4868B995; Thu, 13 Jan 2022 04:07:41 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f169.google.com (mail-qk1-f169.google.com [209.85.222.169]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3ECE168B979 for ; Thu, 13 Jan 2022 04:07:37 +0200 (EET) Received: by mail-qk1-f169.google.com with SMTP id z10so1236671qkf.7 for ; Wed, 12 Jan 2022 18:07:37 -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=8O5rdyRRZ0WhGmCdZtCXqRsjk2vG2hHQVLb8F9WG/gk=; b=pCazKQl0tNXRInAkSVpsT48e0nmPGJcBhfTiCotLsHnZ/73+z9cA0Cz+quR+rv0XOC 0/fq0ujLfT94/siOKWNyIyi9ZeHDn+jfb7FNzI/s/9UueSG5f9xfYMG063gpMig0bZUn QS9zbr3iApX6r+c8SmYOj6hbfbDR9mXICMUqOouPmhuy9PxRIJIqTY3ks88hUlTl4XI1 ufRV7cfJ3DoIVVBxnAQYY3+Qt2Sy9UPsyTxhbrUNKMl2tSFDbSCXxqNIx/h/8AXSkM4k hiWdnmURL38sqjudfKMND3kCsoQvH01nZKFTKHu0o1O+PfgHCKhVZ3LI8NXVnFpL87xi Zzdg== 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=8O5rdyRRZ0WhGmCdZtCXqRsjk2vG2hHQVLb8F9WG/gk=; b=dJQzZzd9kAaOICWi+gUqUGKaONF/pMi0PqsoOlCwjUgIgUCZRhAhHG9vcvGErrO09h AlYBDXQQQxUna1GVY78fjfJAeIK4etjvJw9ZNsad8QlHxQTQzXYUi7rUKjEzTRpBp6Y4 Xm18dZAmGM2K4fJ1BoA7zCi5jeqgs32ZKVPe+YqC5z+xJNJuqaDtNsAXy0ME4481YiKI pEfhyDaTIYZo5/yxSglzIUM8/3HRgm6TWpW6Z2uto3BBORJzf6YCwvfphqhApiKD/WT5 /nuREXdKZUeqxuoFonHFXVzah9tRt4kAxeaLOeEtrud2Av2bAVO68AOrlq1RQy4pMS7W sF8Q== X-Gm-Message-State: AOAM530zFu3WT0k0OOO8KaitgSHOMDpE7h9VYhY6z8PFhUxOnsdYb6ff xT7pmpBN71A/+pZJhRvzC/CR1J/3080= X-Received: by 2002:a05:620a:15af:: with SMTP id f15mr1839832qkk.18.1642039655830; Wed, 12 Jan 2022 18:07:35 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id a16sm1085946qta.13.2022.01.12.18.07.34 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:07:35 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:06:51 -0300 Message-Id: <20220113020713.801-8-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 247/281] qcelpdec: 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: vlmkPHZF2E6K From: Anton Khirnov Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavcodec/qcelpdec.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/qcelpdec.c b/libavcodec/qcelpdec.c index b23013816b..9f3ef309db 100644 --- a/libavcodec/qcelpdec.c +++ b/libavcodec/qcelpdec.c @@ -87,8 +87,8 @@ static av_cold int qcelp_decode_init(AVCodecContext *avctx) QCELPContext *q = avctx->priv_data; int i; - avctx->channels = 1; - avctx->channel_layout = AV_CH_LAYOUT_MONO; + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; avctx->sample_fmt = AV_SAMPLE_FMT_FLT; for (i = 0; i < 10; i++) From patchwork Thu Jan 13 02:06:52 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33512 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp44078iog; Wed, 12 Jan 2022 18:46:36 -0800 (PST) X-Google-Smtp-Source: ABdhPJyWNfCJj/m8oIZTOtrfV43FjaGXyG9vQDcwE9JJbWcX268CCSipkV14l6+LMzP/1hsTeFF+ X-Received: by 2002:a17:906:228d:: with SMTP id p13mr1857108eja.415.1642041995937; Wed, 12 Jan 2022 18:46:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642041995; cv=none; d=google.com; s=arc-20160816; b=xQDX111sn6NXo8t08kefc9ySpg4nVWVNjKzv3XCS/G4BUDtAyaCQx77NsKuT5qEj8f wBHQ619eSl1lGd9zshcEGWCcrWjdSXm453sKsdUAIUHStffI9gAiVikHkDti8MrcQLwP LPa3iCX5y6gE0bRhhS6dSz13vSMrz79irnMv1EgrZdW/jxPRNCaGItKW1GbSd3TiXArv DP6CJ1THjJNXkLPuAjE6U836BnY+ARtwU5kN42P2JLKn0khMVXOCQZSKz78VpGUfTx2M 9E1rIkJOTi1Ap+/lUAsIDhrRqSJDm/OKuzFQP33QKKtmsLThcGqXgg4sKociDfW5tGO+ MY3Q== 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=kPHmBxhPAR3ogR/c4VxAyEM+OqcKxTscRbVoiCNRPKc=; b=zp7rIZ8XT5vz8CFIfGjhX/wlxvLlK6dt3ilqt06xDh8QdYkZo+FqvkRuoynML4lDsS eykraY+PU5+Gi1SxNSBSUj8y9SpIbzWbyOAWVtmf1Su/RArCf7dv1jk2vUsETohezfMn 0QXY/LhYD9MNhd+zl2kCbforwqzjgTwzcuYuKxTmnpZpIwK28jkCS8ae4qSaJ8zvb/Oy 0vO9Ya9IaMD9v9unYOObfR5lr8EKh1w3qxJcKSMnqfxWHNJySLtL57EfpKmhzRqMRlrn pwOxz4/WJQFI4tO6rN6liy1gdk41tf0rIBmm4C97NMV9HZ1q+JP1dlfUdYDrrx8Yq95i g3zg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=giTPeHIc; 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 ho19si936887ejc.270.2022.01.12.18.46.35; Wed, 12 Jan 2022 18:46:35 -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=giTPeHIc; 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 B30A268AEC8; Thu, 13 Jan 2022 04:07:42 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f52.google.com (mail-qv1-f52.google.com [209.85.219.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B453A68B97C for ; Thu, 13 Jan 2022 04:07:38 +0200 (EET) Received: by mail-qv1-f52.google.com with SMTP id hu2so5109513qvb.8 for ; Wed, 12 Jan 2022 18:07:38 -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=Mi74kOYexCds7ZrxKSDYjsa2O2N6lC6rpnhswo7R6HU=; b=giTPeHIcSfCwx0Vj5W21UPO8+OR7/CrFV178F8uNpxk3WZF3//iX9Cq8/79dHPQB+i FJGjISnbJ+zrtpt+fc66UExcox0kyGjcBGLMrAxm1WliFbUU1fdWSTmjeAqeJzT1tHZb EGNascP7HHsNM9bwqbLiEByc7DTqR4XHC08vE+aAbL7MrtivckC+KAxiCTJKkz355h1i 7Oj5B2wHKl1VxYtzZKKa9fVCMxAF4EBJ71L9X4Zk/3CDyW9MFC2/0KbKVZyrN6Kjbhv9 1NgexHWtpVPGL1MrcJNON1IqhGvK6D6GPCZvsAXDVJzkZhYZ4hJlPR+l3lKfjh7I0kUA L+pg== 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=Mi74kOYexCds7ZrxKSDYjsa2O2N6lC6rpnhswo7R6HU=; b=BTBCtDUrJW8tNL+YkzJBvI6fu+7lCNXB4QaZl+i55KOMUMg5v3Dtfkk94HhZeCZwQP Ua+DQGR40rq+e865fF+o+KT4q9bPYdGM13W2TbacxYm5djvG2BfTFQi97PUXMpX4GDNz cS2Km0lDmv4XsgTiMAGVww4cbemZrVUw/yFuMoQ4LZkZxp4aS/sPsb3uTjIRMifsEP6N laFODfIFpS+/rGkYn2swC2xOSG+1P0iEW6Ns48X+4K8D1caGhSOjbsCqgNMqz5LpW8Lp WLgzw/uX3HeG8R77eBzl1eLHJM/EA/mKMxFuuX/+vi5POZoa2Qvc5I0OlpsFjf8suX6P /QkQ== X-Gm-Message-State: AOAM5315toZtIKY4U64vDn1zTjPToS6Ptr8qy8QOQeMFK8Qed1Nt7Jgq EdDaLqxdc1j6FRROYE5jfij2EKDI/Ps= X-Received: by 2002:a05:6214:262e:: with SMTP id gv14mr2305338qvb.5.1642039657088; Wed, 12 Jan 2022 18:07:37 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id a16sm1085946qta.13.2022.01.12.18.07.36 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:07:36 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:06:52 -0300 Message-Id: <20220113020713.801-9-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 248/281] qdmc: 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: k5nTDFbxN1iA From: Anton Khirnov Signed-off-by: James Almer --- libavcodec/qdmc.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/libavcodec/qdmc.c b/libavcodec/qdmc.c index ae75ca524a..dfdd84870c 100644 --- a/libavcodec/qdmc.c +++ b/libavcodec/qdmc.c @@ -245,13 +245,14 @@ static av_cold int qdmc_decode_init(AVCodecContext *avctx) } bytestream2_skipu(&b, 4); - avctx->channels = s->nb_channels = bytestream2_get_be32u(&b); + s->nb_channels = bytestream2_get_be32u(&b); if (s->nb_channels <= 0 || s->nb_channels > 2) { av_log(avctx, AV_LOG_ERROR, "invalid number of channels\n"); return AVERROR_INVALIDDATA; } - avctx->channel_layout = avctx->channels == 2 ? AV_CH_LAYOUT_STEREO : - AV_CH_LAYOUT_MONO; + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout = s->nb_channels == 2 ? (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO : + (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; avctx->sample_rate = bytestream2_get_be32u(&b); avctx->bit_rate = bytestream2_get_be32u(&b); @@ -277,7 +278,7 @@ static av_cold int qdmc_decode_init(AVCodecContext *avctx) s->frame_size = 1 << s->frame_bits; s->subframe_size = s->frame_size >> 5; - if (avctx->channels == 2) + if (avctx->ch_layout.nb_channels == 2) x = 3 * x / 2; s->band_index = noise_bands_selector[FFMIN(6, llrint(floor(avctx->bit_rate * 3.0 / (double)x + 0.5)))]; From patchwork Thu Jan 13 02:06:53 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33513 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp44216iog; Wed, 12 Jan 2022 18:46:49 -0800 (PST) X-Google-Smtp-Source: ABdhPJy7bt8dkIi1IBXdKOyutzzbHz4hB9J8xiWycfbH1LLkZOZc7IAjhcnZxWoKYq7nKhmhv3sc X-Received: by 2002:a50:9e6c:: with SMTP id z99mr2394952ede.71.1642042009439; Wed, 12 Jan 2022 18:46:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642042009; cv=none; d=google.com; s=arc-20160816; b=pjyBILP1qq9eOVTFV2M3ykfk01MsWbxJhGoF3vFVD56sZceaasSh7Myeha+0lxpgc5 SueyWKUhi7meDTKbxPlkIMeFEhAaifaRE3IhnabV7z3OFTXKsfqx29LMMc/VXi270Z5H s5wj3D49OUmidsNpKc7sadTFPnGObn91X8NNIOjwEH5OQS9DvZPZgxZxVa9ozy7kGT+p fdNLPUBQQvHEFNCxstbM0jcK8ZH2xKIAAPGdGD4vq6gEFwIPscQhHSR+OIu1Lb1jCU1u VSuvQper+NAyII34i0/z8eb8UUfe0S1jVfUv1XDH3mJguw4Eaj3AiNuS3BHt89PtF/mu HPAw== 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=0hb37KzbCit9v+YmNE8xTTReNMuMhx37YssMbwYF22A=; b=imw0y1xIRUdegAq8VUeu65Ybi7b+Eo+2h+C3GBbSurea5B9xjd3XOc0tktF/Fyd+Ng d4rSvg+Ox6Pu0JHMDQmeZgqh+E5MvKHSR5QBc5UqpfvG51XNH1I5pmlqY6TYf0fDi0UW FgPlj9AKn2jRhuiyzlfHM/FiPm2pjSnXxeEgMc+DzpaFNC0Ko/DCaO4hPX8z9Ot2Qeb/ 7DTobQRBbqTg1R4GyJsijfAx7KHfkuQn/KYJoo9Tevb1dJyuJro4i3HQrJAanYrA5e9N hLbYVZYYeCIAKeeSLiHIcVqsmJvQPMBraD4XPrjawshsFQ+yI1arziKt+LgW27Z6mAb+ yT4g== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=EfsQC2yh; 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 hb12si912793ejc.650.2022.01.12.18.46.49; Wed, 12 Jan 2022 18:46:49 -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=EfsQC2yh; 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 8C9FB68B9AD; Thu, 13 Jan 2022 04:07:43 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f47.google.com (mail-qv1-f47.google.com [209.85.219.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E44CE68B98E for ; Thu, 13 Jan 2022 04:07:39 +0200 (EET) Received: by mail-qv1-f47.google.com with SMTP id q4so5114427qvh.9 for ; Wed, 12 Jan 2022 18:07:39 -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=iCY1j/a+58iaFIL9n5I3NKue8X+mtAsuDg4UKwqwuo4=; b=EfsQC2yhE4FQFmtSS9yCWepL55gZ3QQk4vcUkGxbM0qNBcyyPqkPdeU75qiSQaVvog a0CZQB1rryIE+Dq56wi9sFoHKklbtmy929//jzO7X4Yv7fWC2iY6aD+XrC0Grh5wbcYK BciHxq/9lTuc0/HYB/dpOtFfJ8xtusU20L7XqSgP4JGGyyvq4sTEELnozYzMiR5oWMJS Aq1hGYfB8JFh5feJRAV5dn+CQ5ZIxTv1ncGzxEEucv8WBhqbgl7rTRgBTnQif9ZWtueZ 9yUNevUYN2hhfICGfp07e4/OsH9U/EIeVxXWI6ZDvh9WFWghfu0GH+a2zoNkm9XmXiim bUrA== 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=iCY1j/a+58iaFIL9n5I3NKue8X+mtAsuDg4UKwqwuo4=; b=HRDfz3ttdRwVAKewInQo0TppJb+D35Z2fjSVTetOpSNSm+VRXBPSH6SO5Uomp26FSt kdGMWn9PXCJlwAjNvK0RuqJtFFNzbBcMckurcDqjLOjUDAj+UBuTftXXJUf5+XiwI9b4 77HW65/7eaCYE0pF7g4lTBq1J7vGxfUVoiAWDNwYJSWdhhPpwkzPugLaG3rhJ2BRGfCP 72Wh4l0F9zuBuQh1/U3KqX+A3iJc16OqljuEIs6fZhQqaJnGRKM7YCRbhDwbCGgFJwBe /UoxkrncfnHxTeeeIvvUuJg9FjBWD9eHl44atYy4F/KLibenVoX8sFL2I+xQItzpnNls 2XUA== X-Gm-Message-State: AOAM531XPEBCzu+N7jI28dpcuozMQa1vLNp2YQ+yRrgQcn+ADCP8A/EZ zIq/scDDH85OUm+t8kn+RFQ0VLgbNaU= X-Received: by 2002:ad4:5fcf:: with SMTP id jq15mr2121906qvb.0.1642039658302; Wed, 12 Jan 2022 18:07:38 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id a16sm1085946qta.13.2022.01.12.18.07.37 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:07:37 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:06:53 -0300 Message-Id: <20220113020713.801-10-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 249/281] qdm2: 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: RgtxxNSzWrZM From: Anton Khirnov Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavcodec/qdm2.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libavcodec/qdm2.c b/libavcodec/qdm2.c index 5e4e741e59..de68e651cd 100644 --- a/libavcodec/qdm2.c +++ b/libavcodec/qdm2.c @@ -1687,13 +1687,13 @@ static av_cold int qdm2_decode_init(AVCodecContext *avctx) bytestream2_skip(&gb, 4); - avctx->channels = s->nb_channels = s->channels = bytestream2_get_be32(&gb); + s->nb_channels = s->channels = bytestream2_get_be32(&gb); if (s->channels <= 0 || s->channels > MPA_MAX_CHANNELS) { av_log(avctx, AV_LOG_ERROR, "Invalid number of channels\n"); return AVERROR_INVALIDDATA; } - avctx->channel_layout = avctx->channels == 2 ? AV_CH_LAYOUT_STEREO : - AV_CH_LAYOUT_MONO; + av_channel_layout_uninit(&avctx->ch_layout); + av_channel_layout_default(&avctx->ch_layout, s->channels); avctx->sample_rate = bytestream2_get_be32(&gb); avctx->bit_rate = bytestream2_get_be32(&gb); From patchwork Thu Jan 13 02:06:54 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33514 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp44363iog; Wed, 12 Jan 2022 18:47:05 -0800 (PST) X-Google-Smtp-Source: ABdhPJwKFUxbb4ykBK/Pz4G7aSSet8mesQ5MbP+GZfx/E7f8DRw2uHf3/rgLK94MN4M3A0XDPp/C X-Received: by 2002:a05:6402:11ca:: with SMTP id j10mr2383516edw.169.1642042024889; Wed, 12 Jan 2022 18:47:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642042024; cv=none; d=google.com; s=arc-20160816; b=I8Aif5thmJu/bKdcLIdbdm8WgebEMeQaIQTI1bBRQL1yRfoYnw78+8/unzHP071b42 ByTfwK1nBB4D+gQ5R7rqQSdVvO7h+CUx9MHIPn0zfnwqTUAUpvUP0G0cmws9jhiR/m9b XBnmE3hYXeOf8wSWnRf4D8orUfbs1RsbgZlpHPEiyCIV0V/vRZR38byaYIu4ZGY9ANPN Al78B5IkwlaMI4h5ZYuP9Ykod1uXFnH5/ynO2eLtvW5enKMxEy1wLCr1itxVcy3gb70w hQ7G1Qf3HAJH3cvqMBpluE01Bjt+vPeMuKIeQP1e+jrKeRrAu6A0NhjJenSUV63hknRE IIpg== 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=p133TBcweeb8fxj9TAo3JjLG4TSB2MCMnhqi9pgQvx8=; b=a6xIZnP6Fhc6K+8UOBfrXcRaBD0VdRJ1qQcHEn4C9OrXyMAHNPiMsSzwNgwozzOzQ1 oyZ34O+ZUZx97TZArwZhirGPs1i96MIyBqoaulHbWwRc7k6n/75d60JWCZDMmoA/Pyng dN5GJZZh+Tgu1EiKFknl2shSA/yZRA/zu7r8hU2RPlHwLWoEfLrz+JsPx983BF4j6GNk tfVVuWdTfsscKP2CEPxlVkGs5udpU2qNTwWE4V54xYQR0wlUkr3+CyjN/YQckihmv0bI MN7nUwZLZSbgafP/KRAuLGeIcxrf1KCBXE1qOj6CcV+AOiQkHQoZQugDx9KFHouDPhGy 1F6Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=dvhig7io; 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 b15si995639edz.166.2022.01.12.18.47.04; Wed, 12 Jan 2022 18:47:04 -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=dvhig7io; 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 6837C68B1B2; Thu, 13 Jan 2022 04:07:44 +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 4993768B962 for ; Thu, 13 Jan 2022 04:07:42 +0200 (EET) Received: by mail-qk1-f174.google.com with SMTP id h16so5626450qkp.3 for ; Wed, 12 Jan 2022 18:07:42 -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=3yhdH0ukmu7s/Io6AH9+wi/piYcl9TQK0PiDbxPK+m4=; b=dvhig7iolmep+K2jp4uKWHITGVt8Fr9nrAfTo4INBG72L605CIz3wenH4I6elZnnWZ cPTTNAopqkT9MN50HuNh456ia+YAcevR1CYg4tamAOCuF3UjoRf2YN+3EERbJXS8V7LN PMJlzLDZt3S4HvaWReSuoj8pzkCyVxfezb9/O4hVB4UDa0s3VLvclajC9hHfR9WQ1xjF E/H8WKzzIlDg+Tb3sMT6Iwrwbew7c6GfVR6ZrSNxwOA2TWaPrpUr9BSSwiiwvnfqle58 zlXqETduru0jJamnuFYKlrgWN+SzyD/ubv6a0yz9inEYpbkZZAgkS62WVFH5iA7Zgcgz Ag6g== 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=3yhdH0ukmu7s/Io6AH9+wi/piYcl9TQK0PiDbxPK+m4=; b=CnUe5mY16TGgajifLRp4/uspMYqJptiUuwZxyY6qvy+maD2fSHd9Z4ui0cRGEqqvWs rwTAWGHiSt4aqbHqEoKpQhaYVvrgKLX2cp0eJiWr6j5JEs+Mu0w7ADDlHwwrKi8TY5vD vpCOgppd0N345Nhv0DZEyDiWNGTTIJVLfQxDMsvVdSzhleyYEEMbde/0ugkUy8a5jGcr q1qg7OojE7vYkrC5miE7miMy8m4byB31baxLNFTbk4cceRD2+r/JNMHED06ExYLkfZWn wcJwyih8TZCOW6buX3PDqhtJiGSgB+dDaGwokKt8DAWzZXYwADN6ATrQpUzBdSf0cYot Z00g== X-Gm-Message-State: AOAM532LArHcStqtG7c7lP9TwD/YlyRlI+upuFPAe2AO2Eknj/Eto7qt cuzU9fUiUeoUz07LHw2RR/bb/cARS/0= X-Received: by 2002:a05:620a:25c8:: with SMTP id y8mr1906987qko.455.1642039660839; Wed, 12 Jan 2022 18:07:40 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id a16sm1085946qta.13.2022.01.12.18.07.38 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:07:39 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:06:54 -0300 Message-Id: <20220113020713.801-11-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 250/281] ra144: 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: mJ+uSoY7rTw5 From: Anton Khirnov Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavcodec/ra144dec.c | 4 ++-- libavcodec/ra144enc.c | 8 +++----- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/libavcodec/ra144dec.c b/libavcodec/ra144dec.c index b6272b343b..86d0d6e889 100644 --- a/libavcodec/ra144dec.c +++ b/libavcodec/ra144dec.c @@ -39,8 +39,8 @@ static av_cold int ra144_decode_init(AVCodecContext * avctx) ractx->lpc_coef[0] = ractx->lpc_tables[0]; ractx->lpc_coef[1] = ractx->lpc_tables[1]; - avctx->channels = 1; - avctx->channel_layout = AV_CH_LAYOUT_MONO; + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; avctx->sample_fmt = AV_SAMPLE_FMT_S16; return 0; diff --git a/libavcodec/ra144enc.c b/libavcodec/ra144enc.c index 7a96354633..19d46ffe0c 100644 --- a/libavcodec/ra144enc.c +++ b/libavcodec/ra144enc.c @@ -51,11 +51,6 @@ static av_cold int ra144_encode_init(AVCodecContext * avctx) RA144Context *ractx; int ret; - if (avctx->channels != 1) { - av_log(avctx, AV_LOG_ERROR, "invalid number of channels: %d\n", - avctx->channels); - return -1; - } avctx->frame_size = NBLOCKS * BLOCKSIZE; avctx->initial_padding = avctx->frame_size; avctx->bit_rate = 8000; @@ -554,6 +549,9 @@ const AVCodec ff_ra_144_encoder = { .sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_NONE }, .supported_samplerates = (const int[]){ 8000, 0 }, +#if FF_API_OLD_CHANNEL_LAYOUT .channel_layouts = (const uint64_t[]) { AV_CH_LAYOUT_MONO, 0 }, +#endif + .ch_layouts = (const AVChannelLayout[]){ AV_CHANNEL_LAYOUT_MONO, { 0 } }, .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE, }; From patchwork Thu Jan 13 02:06:55 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33515 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp44503iog; Wed, 12 Jan 2022 18:47:20 -0800 (PST) X-Google-Smtp-Source: ABdhPJzXYslt1VkUlLJrBvVwzPgHzsH0PQwfCIvAcjcBM8u1BgSMgDuADAL2lWIwWxgjM54A+3Sn X-Received: by 2002:a17:906:9be4:: with SMTP id de36mr1877228ejc.447.1642042039891; Wed, 12 Jan 2022 18:47:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642042039; cv=none; d=google.com; s=arc-20160816; b=bpfXfl/2yli803/sfDstWCV6KNnXcxfQvQxfTzmrS1rAPyRewKisw7vKYnoQI2OGNR JizETeiai8n4yIWdkeUEchy8Y/wjoH0N5snXYbOnI/qnoOTOZV0vH7nmKPz+e2Nt8RQP SghUUEBIEjXcEz6Z8lDZDpQ2Lyj2naEdAjLJYwVr+2WRUNj02VbnNUX7VqsM1iV6ueU5 Vc7qgpqnCAW6Nk3FxUAw4DapmhNMo0F8OXds4OisJoVKmrK9R8ZNnwBZEwTLHJZKuoy3 EXQa4/T0ntoaYrElPwQMvIa7M/m3v16VT9micC3I5FykSE0VVp961AajZRxK/ZUWVv9j 4hQA== 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=wLnwOzg0Vg2+9WmZ9J9R3uBdw0u7ir+Ohp6wo+igvz0=; b=H7H4OlD4QS/SRY46+PBQkiGE+gfaM+Fg3TVsfbQTThy0vfXZ7mlHPuG5Zzo4clovt4 pDnSW7YN+dqv1g6vGiY45Zn9NNEAAsSSeClSHFxH2HnNrREfWsHlrymYzNcHLzffDxGj BafAo6Glu8yKw2l72MiobbKUxbH2BeRLYHdZpEOPIvGItolQYZY0Ei+G8W5tDc1WbF+Y G5+WaTzPOYjpzAQFDvzROD7i9znYgxP/ynRIgyFRjjf2y6oVv7LXLN47an7fGH64JRJf b3rICF7Wy3y5QZbSptg98IQZMAC3opy/fYxchSoxuv4DBA1QLyqJiFw1M5a4ztEvMtL2 OF+A== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=p6nA9sJj; 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 dr2si918363ejc.191.2022.01.12.18.47.19; Wed, 12 Jan 2022 18:47:19 -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=p6nA9sJj; 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 4269068B9BE; Thu, 13 Jan 2022 04:07:45 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f173.google.com (mail-qt1-f173.google.com [209.85.160.173]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B6B3D68B9A6 for ; Thu, 13 Jan 2022 04:07:43 +0200 (EET) Received: by mail-qt1-f173.google.com with SMTP id c7so1775988qtc.11 for ; Wed, 12 Jan 2022 18:07:43 -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=9HTFvyGNf39e0vatRmLnfNteireLS7Rrn5Bcbqk8KQE=; b=p6nA9sJj6UN/wgrz69+zIdsS9nqvPnjWE+MMCJcCZyLAyB/aVf++laaEXboyIhWMfj Wp1LwRGddXeAK/kM8Br3GmbaAQ0bEiMsUNPGOyx0EKnYNjGUB/V+cL7Tz1y4LVvj6N0P 54c1mZkMmxyJWwY9AfjxTtG9Kel+3fnheo3g6Czu0vdOtVFPOOqT0HYN0D8XBR7EcdnV d/VSriO+ZWcVJMDdMrI9CZuFt5U7WbSXRbl7P4o4h/YLcDfBoUhUbVx2JnsvbvlNercN Oip/q8DFZ5hAd7GTOc8apTShleaA+U6HxiBceqBmsSZvU0FAox+k5n6IeS5rRnVRkH9B d0+Q== 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=9HTFvyGNf39e0vatRmLnfNteireLS7Rrn5Bcbqk8KQE=; b=3VyaZVpnzbqL+yTv0gyMAR5y4JEOMQykISp+Ab7BffXKdnRM7M2kN4S6LmTT8Hsgrp YyPwZKle8i50mHFI5frpvwvLaKHi85FwUX4sz7XRrM8AWw67XLBpWXXjnZSl7AnyXSO3 7muwD3ydqroB4KNIcNnBRcLUWk/cNnNZArZta6qUSaUcuzjXH3vrK1weVJaEth6qDj3H NFZ5vRoppwbarSQruwM685w7KTU0t8P7j1PAlQ+KUnkM1/SlaBFzg0z6IqEayGlw6bhb luMcblgETwwuhbRIYNuHYhtvg3XsN4hQoRuacVollUbBuNtNde6pf8jocfJHDHVNzxXP l5EQ== X-Gm-Message-State: AOAM531rHJsvQROVuR0qNjijXgYO+2BEIjECQIfmNBL3BL/Sc+NPgHRg uA5grtVzH0V7FGN8ImJeeO2mg5XdHHQ= X-Received: by 2002:ac8:7f8d:: with SMTP id z13mr1996500qtj.351.1642039662091; Wed, 12 Jan 2022 18:07:42 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id a16sm1085946qta.13.2022.01.12.18.07.41 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:07:41 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:06:55 -0300 Message-Id: <20220113020713.801-12-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 251/281] ra288: 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: HUS3AHbmCpT3 From: Anton Khirnov Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavcodec/ra288.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/ra288.c b/libavcodec/ra288.c index 4310ccdf20..424601991a 100644 --- a/libavcodec/ra288.c +++ b/libavcodec/ra288.c @@ -67,8 +67,8 @@ static av_cold int ra288_decode_init(AVCodecContext *avctx) RA288Context *ractx = avctx->priv_data; AVFloatDSPContext *fdsp; - avctx->channels = 1; - avctx->channel_layout = AV_CH_LAYOUT_MONO; + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; avctx->sample_fmt = AV_SAMPLE_FMT_FLT; if (avctx->block_align != 38) { From patchwork Thu Jan 13 02:06:56 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33516 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp44650iog; Wed, 12 Jan 2022 18:47:34 -0800 (PST) X-Google-Smtp-Source: ABdhPJxvnbKsXo/OD63pgE00U34CnOUA2zGYmp6e72OOcg1c15WGMnGO3r/+uHFyH6WGkqY4i1BA X-Received: by 2002:a17:907:3e1d:: with SMTP id hp29mr2029831ejc.336.1642042054546; Wed, 12 Jan 2022 18:47:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642042054; cv=none; d=google.com; s=arc-20160816; b=V3r327nSWslcfOPCFyaJWqgJpa3EJCI0AXfk1VDYgX9vw1xmyajPw1oRqM4fxQi1c0 H5l+vicsKvXboW0MG3N90wvdNW+4GYB45pBeNItM9NBSUHNuiRntvL+7U+q8iG2z31Ar pHRAoN7WCyEv9a/8/a5lxJM7QF7mxekyFPfIXnX1gz5KnBbgnTCMcenBPm9po4xT/YLf 2s5aiKE6F1xUvo71gJKMF94JbbD0qBkWJMeDXWV1clN5a6HdCC/NuJrcqElZ48RUL9oO ta1akoxaAD3egESU0Y2sSuz/nO7XNZD9QE9fjm+/Mk24L+GbRgSO9lpO6pshMcyG09a5 MEjA== 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=WQKCSNO4XlzRDCiSlQUEdVyCNBCETSJCaORikLU6xO0=; b=VZRugIN+ywuypy90vJ7F7sYg5x5TVJeYxUZXIy5TkCWXR033FEpczY4vXS3OtOKVlj CMR6ONNN1sG6nhQxdOY+qxOULnCZN4wggQC07KbXcmyLVf+qLNNJ9fDi3ZvNz5OYTIee 8v6S9MAb4kmsCEJqDx0/FcTsD0Nr6odyH01bpK3Y3BTw5XjBx1+7BwufqXBCjdjTicgy N+ILhOkyrsg01sf3HSG69Z7OxPrTGUlMUQsmu4qbaYSVAO+rQGNQV7dOXj6egSbSQXPI 416/DZ402tBkqnWJn+r72mB0OIXhjnv5Tm/QnHaq3p0CX2wAF6mxXIirCEI4vZ5/zDiA SA4Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=LxXC2d2A; 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 j11si771500ejt.123.2022.01.12.18.47.34; Wed, 12 Jan 2022 18:47:34 -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=LxXC2d2A; 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 3E49968B9CA; Thu, 13 Jan 2022 04:07:47 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f170.google.com (mail-qt1-f170.google.com [209.85.160.170]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D4EFA68B9B2 for ; Thu, 13 Jan 2022 04:07:44 +0200 (EET) Received: by mail-qt1-f170.google.com with SMTP id g21so5228996qtk.4 for ; Wed, 12 Jan 2022 18:07:44 -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=n49MhkcegvPKmSLKjceN2gblSOxmhZ1GxcBHPf9RTSE=; b=LxXC2d2AFUceu8eh04LblivAkYDAdAo0e9XMrujDKjpKLMGQiBIxfpU9M1O1mxTknf iEOZswMdzqaU5WM4N2jgD++ercFIC+g6CICbvHPRDhrrvuf88mQPG/IrQBM8Tvp82ZVR jZBftQ2xWup2UheOF1n4d3xsmrz3mZZlgbFSyq8E79bEY/5tfQTCb5aCHmCcvYxrs0cc y+k6J39EgwtPfqWxtqrrmwAcWDrFPOo+yAdQ6R0jGPX39I/p/hfo7EeszFoEiVxzGble 3DDubXX80Q1+pOvoZmpmC40UdWOfb41cm9gTZ1tOAqDW0wyo6UNf5zWugiR6istPu380 RHOQ== 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=n49MhkcegvPKmSLKjceN2gblSOxmhZ1GxcBHPf9RTSE=; b=4eMQMUG1dAYxWSr9awz0vV1Es+St9cm+RBcRm8l3wURSvkBKR51Jo7XJlVIVQeotiQ YwKcobRSTA6LJ11N8tXmzi+6hL+V5dCWjRwPz2gYaRQEBC0lom4/TUno0V1OarL6JJyH rHyHuHtYz7T6TiI3+pJMAnmoojj9BQljupDWspd4RNjxxbR9Th6s1HFfsF6HvHcN4GLH /sD4pO8qQgYrMHDlu9dyRwfgXLnEr0GxUkYJ42U+2yC/K6jYTJ4ZtbMivaSSzcoyMFmS o877cw/YMboVHB9rRaF7glWAJlrYOyWwAEKC/1yz+676Ql2AGpGo/SHE0GNL0fELSSyf sy1A== X-Gm-Message-State: AOAM533Qoyy9IEnM7AXr2L1BoOSzcSowYVwVsoa574g6Q1kmv9Baku9C zCxfldyQOccPs3f1OM11h99sRdYI12o= X-Received: by 2002:a05:622a:11ca:: with SMTP id n10mr2048648qtk.113.1642039663344; Wed, 12 Jan 2022 18:07:43 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id a16sm1085946qta.13.2022.01.12.18.07.42 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:07:43 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:06:56 -0300 Message-Id: <20220113020713.801-13-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 252/281] ralf: 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: zGGi/JYqBiMG From: Anton Khirnov Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavcodec/ralf.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/libavcodec/ralf.c b/libavcodec/ralf.c index bb80119b0c..eac3e60371 100644 --- a/libavcodec/ralf.c +++ b/libavcodec/ralf.c @@ -128,7 +128,7 @@ static av_cold int decode_init(AVCodecContext *avctx) { RALFContext *ctx = avctx->priv_data; int i, j, k; - int ret; + int ret, channels; if (avctx->extradata_size < 24 || memcmp(avctx->extradata, "LSD:", 4)) { av_log(avctx, AV_LOG_ERROR, "Extradata is not groovy, dude\n"); @@ -141,17 +141,17 @@ static av_cold int decode_init(AVCodecContext *avctx) return AVERROR_PATCHWELCOME; } - avctx->channels = AV_RB16(avctx->extradata + 8); + channels = AV_RB16(avctx->extradata + 8); avctx->sample_rate = AV_RB32(avctx->extradata + 12); - if (avctx->channels < 1 || avctx->channels > 2 + if (channels < 1 || channels > 2 || avctx->sample_rate < 8000 || avctx->sample_rate > 96000) { av_log(avctx, AV_LOG_ERROR, "Invalid coding parameters %d Hz %d ch\n", - avctx->sample_rate, avctx->channels); + avctx->sample_rate, channels); return AVERROR_INVALIDDATA; } avctx->sample_fmt = AV_SAMPLE_FMT_S16P; - avctx->channel_layout = (avctx->channels == 2) ? AV_CH_LAYOUT_STEREO - : AV_CH_LAYOUT_MONO; + av_channel_layout_uninit(&avctx->ch_layout); + av_channel_layout_default(&avctx->ch_layout, channels); ctx->max_frame_size = AV_RB32(avctx->extradata + 16); if (ctx->max_frame_size > (1 << 20) || !ctx->max_frame_size) { @@ -358,7 +358,7 @@ static int decode_block(AVCodecContext *avctx, GetBitContext *gb, return AVERROR_INVALIDDATA; } - if (avctx->channels > 1) + if (avctx->ch_layout.nb_channels > 1) dmode = get_bits(gb, 2) + 1; else dmode = 0; @@ -368,7 +368,7 @@ static int decode_block(AVCodecContext *avctx, GetBitContext *gb, bits[0] = 16; bits[1] = (mode[1] == 2) ? 17 : 16; - for (ch = 0; ch < avctx->channels; ch++) { + for (ch = 0; ch < avctx->ch_layout.nb_channels; ch++) { if ((ret = decode_channel(ctx, gb, ch, len, mode[ch], bits[ch])) < 0) return ret; if (ctx->filter_params > 1 && ctx->filter_params != FILTER_RAW) { @@ -484,7 +484,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame_ptr, while (get_bits_left(&gb) > 0) { if (ctx->num_blocks >= FF_ARRAY_ELEMS(ctx->block_size)) return AVERROR_INVALIDDATA; - ctx->block_size[ctx->num_blocks] = get_bits(&gb, 13 + avctx->channels); + ctx->block_size[ctx->num_blocks] = get_bits(&gb, 13 + avctx->ch_layout.nb_channels); if (get_bits1(&gb)) { ctx->block_pts[ctx->num_blocks] = get_bits(&gb, 9); } else { From patchwork Thu Jan 13 02:06:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33517 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp44792iog; Wed, 12 Jan 2022 18:47:49 -0800 (PST) X-Google-Smtp-Source: ABdhPJywgTIlof2OC/HmfllMN9z8qdGIFLEqQsbUcXSkgwsfsOykno+lo5Q/1sKtrI5cek+BrKOV X-Received: by 2002:a17:907:8a26:: with SMTP id sc38mr1972514ejc.362.1642042069770; Wed, 12 Jan 2022 18:47:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642042069; cv=none; d=google.com; s=arc-20160816; b=0m+V/FBUT0sMxEHySYDId3/UIDZGdqBIaSeQjBQtNeUx+WlfqvKcZq242RSlmCXozp KBWHPo+p+rNt1DLOZJUr1+7lLG2em42VkYM9JXQ947cWviKnqtx8sfYSRSx7l9tNUIrz Uo3orEQ88Lqz0Ud8GTpDXvaf3ol75AOR2+v2i79xC3dGyOM+VURtRhjMK+SSQDI3eIdT 6H23UqsnK0/zW7Ds+LA2utN4IVQH3I8ZiuXBSPyUCFkgsvEVRgGccr3QUdmPtwtpKdTO wkildv89ZuTZMS6qLPJHcFjxYAqAK2hZd/EyjzJf+mlXPyZ0Wn1dM0r1ZtJJe14sA29d YIlQ== 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=A0botD3Mwx0aEERI2IknWO5F/kgehXbDA8lE7JoGbAQ=; b=SRjGskYnIfO1FmHjRuRF2IYRL5tC2ALjwgp4kr4BzdWkv/EShQSZjYWiXHWwtf5w08 gsiL+ZgmiWcq9C9znsOHvBrXYcmuJqxcVLziiy/n/yPnrXwyxCPWGuD9gWJsJ5IKXFfo Kfp+hp2nsxtnedPdJXkNGYyeC5vQcsJpJO0JR1Jr8NyuUdCJ7ivGieJNHn2yN4WqzpPq h3mHZGu2O61enfPnSRSrEUzcQX/rg1yYgRXThp9ZB/4CFhwtgbfY7AaEllvT2uIqno77 b8RTFfeYq9zjZvoFciJ+Oqk1ir+D1D2OereuuKKsEpSFMj+1hxpLqwIT6CW+KLnVPYxu RUMg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=YpSGwLbt; 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 c17si833292edy.408.2022.01.12.18.47.49; Wed, 12 Jan 2022 18:47:49 -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=YpSGwLbt; 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 4B93B68B9CC; Thu, 13 Jan 2022 04:07:48 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f178.google.com (mail-qk1-f178.google.com [209.85.222.178]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4769A68B9B7 for ; Thu, 13 Jan 2022 04:07:46 +0200 (EET) Received: by mail-qk1-f178.google.com with SMTP id e25so5562030qkl.12 for ; Wed, 12 Jan 2022 18:07:45 -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=R4nHs1L/jnzh6gB+KjLly/YWMVIUkOyWvy9WYiZsGto=; b=YpSGwLbtVsvueSxtmKt/1haiRjm5U58VPetkT+wj19kIGC/uGbeuGQcIXaHJhMOKGO VV0Ff/cu8lOgfxkULqMqoPa6p5NDStOEz1nHScGwX0z+5XxvJh6ht8QeB7Ut6ebs6fnE tNXVTNThMveBJ5b1B4hslgqkM6YplblCoguvhVeuJnDzP+4SyXszy6as/pq8+5xd30Tn Rvy8n15v66ZAa6xi76R8tmbjlFOfvJetv67hnSHS1RWOcFrA0Tkgk7E0ToycjkZJJczA Dx28Qkl2WEOGZph1Npn5jzYzLC9B2gkPi0e31G8dNfcTI5ITY5ChzjfvLhRNsrHgFDjP i+Zw== 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=R4nHs1L/jnzh6gB+KjLly/YWMVIUkOyWvy9WYiZsGto=; b=keIjyepvxj3aMWiwaqdib5quzi7M5AJKohJ4SGJKFiuEfeJNnd9guy/poAIfqw2zj9 EYWnjW6BnK7bdU9xXIL1E7fdVvCDWW3jh7sz3SalJKCOOMpjWrCBv2FBr/A0K1dWsdav DKjwzd95JUQAXihC7QV5l3CCZg9IzngotMf2PcYeuntFKLW1qVtsywoxPWbNjZ3OvqM6 7/Uup+ZMbf5rpW+YLsCw1qdU/CeUFWhVrdrYdkHZ8PVgac8aybtxDvEfEhD+PUgtRvSd Mgr3u2Sqzk0hEy6gkYcVwFi1jtCq+7ELtad067yZaLjz9FSO+2zBIOv1tKMRyuXX4lJh 2ylg== X-Gm-Message-State: AOAM531LnpWnVxxZbz83UzYgonYzoakDJqZxqMR21QhrKC6A34iYZt29 xge2XNcvXONQFE/X5VwVWAfa24cjSkU= X-Received: by 2002:a05:620a:372c:: with SMTP id de44mr1927826qkb.338.1642039664637; Wed, 12 Jan 2022 18:07:44 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id a16sm1085946qta.13.2022.01.12.18.07.43 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:07:44 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:06:57 -0300 Message-Id: <20220113020713.801-14-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 253/281] roqaudioenc: 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: CoECdMVody6s From: Anton Khirnov Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavcodec/roqaudioenc.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/libavcodec/roqaudioenc.c b/libavcodec/roqaudioenc.c index 530e6b68d8..d482fd213a 100644 --- a/libavcodec/roqaudioenc.c +++ b/libavcodec/roqaudioenc.c @@ -54,8 +54,9 @@ static av_cold int roq_dpcm_encode_close(AVCodecContext *avctx) static av_cold int roq_dpcm_encode_init(AVCodecContext *avctx) { ROQDPCMContext *context = avctx->priv_data; + int channels = avctx->ch_layout.nb_channels; - if (avctx->channels > 2) { + if (channels > 2) { av_log(avctx, AV_LOG_ERROR, "Audio must be mono or stereo\n"); return AVERROR(EINVAL); } @@ -65,10 +66,10 @@ static av_cold int roq_dpcm_encode_init(AVCodecContext *avctx) } avctx->frame_size = ROQ_FRAME_SIZE; - avctx->bit_rate = (ROQ_HEADER_SIZE + ROQ_FRAME_SIZE * avctx->channels) * + avctx->bit_rate = (ROQ_HEADER_SIZE + ROQ_FRAME_SIZE * channels) * (22050 / ROQ_FRAME_SIZE) * 8; - context->frame_buffer = av_malloc(8 * ROQ_FRAME_SIZE * avctx->channels * + context->frame_buffer = av_malloc(8 * ROQ_FRAME_SIZE * channels * sizeof(*context->frame_buffer)); if (!context->frame_buffer) return AVERROR(ENOMEM); @@ -123,17 +124,18 @@ static int roq_dpcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, { int i, stereo, data_size, ret; const int16_t *in = frame ? (const int16_t *)frame->data[0] : NULL; + int channels = avctx->ch_layout.nb_channels; uint8_t *out; ROQDPCMContext *context = avctx->priv_data; - stereo = (avctx->channels == 2); + stereo = (channels == 2); if (!in && context->input_frames >= 8) return 0; if (in && context->input_frames < 8) { - memcpy(&context->frame_buffer[context->buffered_samples * avctx->channels], - in, avctx->frame_size * avctx->channels * sizeof(*in)); + memcpy(&context->frame_buffer[context->buffered_samples * channels], + in, avctx->frame_size * channels * sizeof(*in)); context->buffered_samples += avctx->frame_size; if (context->input_frames == 0) context->first_pts = frame->pts; @@ -151,9 +153,9 @@ static int roq_dpcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, } if (context->input_frames == 7) - data_size = avctx->channels * context->buffered_samples; + data_size = channels * context->buffered_samples; else - data_size = avctx->channels * avctx->frame_size; + data_size = channels * avctx->frame_size; ret = ff_get_encode_buffer(avctx, avpkt, ROQ_HEADER_SIZE + data_size, 0); if (ret < 0) @@ -175,7 +177,7 @@ static int roq_dpcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, *out++ = dpcm_predict(&context->lastSample[i & 1], *in++); avpkt->pts = context->input_frames <= 7 ? context->first_pts : frame->pts; - avpkt->duration = data_size / avctx->channels; + avpkt->duration = data_size / channels; context->input_frames++; if (!in) From patchwork Thu Jan 13 02:06: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: 33518 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp44893iog; Wed, 12 Jan 2022 18:48:04 -0800 (PST) X-Google-Smtp-Source: ABdhPJzVIlO0LUmP2lc+mpsThpqJ+9oA9BkeVLMW8+y6FZFg6nUUPSsV4Ne5fk1Up5Gbj+DiIqzB X-Received: by 2002:a05:6402:270c:: with SMTP id y12mr2351642edd.269.1642042084177; Wed, 12 Jan 2022 18:48:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642042084; cv=none; d=google.com; s=arc-20160816; b=FC4HDvFpanMMRTA8q2L6a1GWB8s5daWU/Xv4UHyKn/y4QXkyWCfUa8YjiEvBziyxYL HtRSP+yRl8sufznhHdCHLcSVnO7Al/agx6zGSNdIq2XUK17DC78fO0+jkyimuUYfrJ8I xsltp35DwJz66cxUxnqjr/nCrwqsq8vPtEdb5Yqv1Mn68sbPQdQguIGOBbWYu/MERdcY yBenjggl7oaytbvm0Dbj3+8Q41NVn+6+T2asw5hMsRW++A1a3matJfazZwEE0V2tbY0T zJ83JyRSL6uWujPMqGbhk7whqzr0s+h23R1LJ+nFai5oycYSSbe9abhWsTpi2bKH1Q1W 8F1w== 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=YvwCBpIDr3QQjLFZphxnqo8G+IYZ5PYY8BpN6+vjaJQ=; b=KiG/uuJBFc5zjSwfy+PJCwNRZEDR50KrUmX4IwIWFmqsaTed8yndrYtCOopzlrs5iN V6BQZe1f/k15AnZVoiHaxRBEtvtoQD0l5Gxb44UUa6v/HzVM4Zun1KnLsGpyJ/vZ1mc7 kWHmQAvmMyy5tLBq9V6NbY863JwjPAnreRdShJYzQ5MWM+fI9CNwI6jFUTg8mh+QU0rr xCT34E7gMwvEozqCdMAZ1r7G1+Oqg5hSOYHQgyFjwvT7c5l+3r3sgokzcCG39RhPXYk5 nEkA++CYqSOvwLRWCLgQNnkDZxWRQDg7zDBs4QCnAdkVJbew2769e03jBhALG9ogRgpp Tasw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=AF19K5gu; 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 s17si824114ejz.77.2022.01.12.18.48.03; Wed, 12 Jan 2022 18:48:04 -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=AF19K5gu; 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 3BCC368B9DC; Thu, 13 Jan 2022 04:07:49 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f176.google.com (mail-qt1-f176.google.com [209.85.160.176]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 54D1F68B9CB for ; Thu, 13 Jan 2022 04:07:47 +0200 (EET) Received: by mail-qt1-f176.google.com with SMTP id y17so5346419qtx.9 for ; Wed, 12 Jan 2022 18:07:47 -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=o6bfg8dJvODVp/6U+ZyXJ5uVpu3rgW5Hn48p4NvfcHc=; b=AF19K5guq60wqMLwMyhi9rnce8Nf+xCupq8AeUiXs4CC4wGVwF6s6pNRdGO43K6aE+ hONMQGe6z4PO5FQZk2ecgPoJUKmNhN6gnU2e27N53TU389e5PK5xpyV7Nm5LmujKHj7l MDko4VrvTSML8Mg4w8lQzp+/Gf0LvSlU4zJeLG3NfP8uP7gb3mphdTHT43sYbLa/QM8u ZQvxXP2C9tqICNs+TEEcdnBijT/TKYse6Nlx1pSP7BIKU6C336v1Ld1p4i5LflWSvRJo YST7dHw+zeUUdChxkl76jap7y02w+HXri2dFvYvdFqaTXuyvXipNmILfLdnYwbdmgcry 4sxw== 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=o6bfg8dJvODVp/6U+ZyXJ5uVpu3rgW5Hn48p4NvfcHc=; b=sT1W/IyZWW7k197u1ENI2ldRGuU5jTwQNakbRLOspyNuHjGihEQ4tU/MjBGsf4ivXS hb21DotA0PahjJ38Uyp+11holLv6UstEjXmkpcUkZ5J8Dk9Adgm2M4OGjAciqpbF61Nn evriyFe/XkNus2SCm2U9Q33K/VJ/FFSIgUpnBheU+ami/pGNcpbFko++yBOR/1iwkTKS KpTkbIYmaJrrYywilSWB9k/vtagFc181M0Wy7OYsIxgsVwi1vXPS0GsM4Bq+BrNNBQxW nDowJ5NRP+bOQGia5GIyVrVOkIzKuJmDx5Nk5S/PgPfsedNijF9Bf7c1M+tPz6QpRXMa TOgg== X-Gm-Message-State: AOAM531bf50wW/p5bjMRz2bR85bDRKA0YgQ/1iM8GhVgXnR+Nt2FnV2X BbLrExN/q+dyuYrywn4RwWAqC/qkLnc= X-Received: by 2002:ac8:7f4f:: with SMTP id g15mr1975479qtk.309.1642039665857; Wed, 12 Jan 2022 18:07:45 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id a16sm1085946qta.13.2022.01.12.18.07.44 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:07:45 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:06:58 -0300 Message-Id: <20220113020713.801-15-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 254/281] s302m: 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: LYoLrEMZ8u1A From: Anton Khirnov Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavcodec/s302m.c | 31 +++++++++++++++++++------------ libavcodec/s302menc.c | 18 +++++++++--------- 2 files changed, 28 insertions(+), 21 deletions(-) diff --git a/libavcodec/s302m.c b/libavcodec/s302m.c index b09c1293a0..868f2f99af 100644 --- a/libavcodec/s302m.c +++ b/libavcodec/s302m.c @@ -72,19 +72,25 @@ static int s302m_parse_frame_header(AVCodecContext *avctx, const uint8_t *buf, else avctx->sample_fmt = AV_SAMPLE_FMT_S16; - avctx->channels = channels; + av_channel_layout_uninit(&avctx->ch_layout); switch(channels) { case 2: - avctx->channel_layout = AV_CH_LAYOUT_STEREO; + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO; break; case 4: - avctx->channel_layout = AV_CH_LAYOUT_QUAD; + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_QUAD; break; case 6: - avctx->channel_layout = AV_CH_LAYOUT_5POINT1_BACK; + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_5POINT1_BACK; break; case 8: - avctx->channel_layout = AV_CH_LAYOUT_5POINT1_BACK | AV_CH_LAYOUT_STEREO_DOWNMIX; + av_channel_layout_from_mask(&avctx->ch_layout, + AV_CH_LAYOUT_5POINT1_BACK | AV_CH_LAYOUT_STEREO_DOWNMIX); + break; + default: + avctx->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + avctx->ch_layout.nb_channels = channels; + break; } return frame_size; @@ -97,7 +103,7 @@ static int s302m_decode_frame(AVCodecContext *avctx, void *data, AVFrame *frame = data; const uint8_t *buf = avpkt->data; int buf_size = avpkt->size; - int block_size, ret; + int block_size, ret, channels; int i; int non_pcm_data_type = -1; @@ -110,13 +116,14 @@ static int s302m_decode_frame(AVCodecContext *avctx, void *data, /* get output buffer */ block_size = (avctx->bits_per_raw_sample + 4) / 4; - frame->nb_samples = 2 * (buf_size / block_size) / avctx->channels; + channels = avctx->ch_layout.nb_channels; + frame->nb_samples = 2 * (buf_size / block_size) / channels; if ((ret = ff_get_buffer(avctx, frame, 0)) < 0) return ret; - avctx->bit_rate = 48000 * avctx->channels * (avctx->bits_per_raw_sample + 4) + + avctx->bit_rate = 48000 * channels * (avctx->bits_per_raw_sample + 4) + 32 * 48000 / frame->nb_samples; - buf_size = (frame->nb_samples * avctx->channels / 2) * block_size; + buf_size = (frame->nb_samples * channels / 2) * block_size; if (avctx->bits_per_raw_sample == 24) { uint32_t *o = (uint32_t *)frame->data[0]; @@ -131,7 +138,7 @@ static int s302m_decode_frame(AVCodecContext *avctx, void *data, buf += 7; } o = (uint32_t *)frame->data[0]; - if (avctx->channels == 2) + if (channels == 2) for (i=0; inb_samples * 2 - 6; i+=2) { if (o[i] || o[i+1] || o[i+2] || o[i+3]) break; @@ -152,7 +159,7 @@ static int s302m_decode_frame(AVCodecContext *avctx, void *data, buf += 6; } o = (uint32_t *)frame->data[0]; - if (avctx->channels == 2) + if (channels == 2) for (i=0; inb_samples * 2 - 6; i+=2) { if (o[i] || o[i+1] || o[i+2] || o[i+3]) break; @@ -172,7 +179,7 @@ static int s302m_decode_frame(AVCodecContext *avctx, void *data, buf += 5; } o = (uint16_t *)frame->data[0]; - if (avctx->channels == 2) + if (channels == 2) for (i=0; inb_samples * 2 - 6; i+=2) { if (o[i] || o[i+1] || o[i+2] || o[i+3]) break; diff --git a/libavcodec/s302menc.c b/libavcodec/s302menc.c index 528d712e79..56db25c76b 100644 --- a/libavcodec/s302menc.c +++ b/libavcodec/s302menc.c @@ -37,10 +37,10 @@ static av_cold int s302m_encode_init(AVCodecContext *avctx) { S302MEncContext *s = avctx->priv_data; - if (avctx->channels & 1 || avctx->channels > 8) { + if (avctx->ch_layout.nb_channels & 1 || avctx->ch_layout.nb_channels > 8) { av_log(avctx, AV_LOG_ERROR, "Encoding %d channel(s) is not allowed. Only 2, 4, 6 and 8 channels are supported.\n", - avctx->channels); + avctx->ch_layout.nb_channels); return AVERROR(EINVAL); } @@ -61,7 +61,7 @@ static av_cold int s302m_encode_init(AVCodecContext *avctx) } avctx->frame_size = 0; - avctx->bit_rate = 48000 * avctx->channels * + avctx->bit_rate = 48000 * avctx->ch_layout.nb_channels * (avctx->bits_per_raw_sample + 4); s->framing_index = 0; @@ -72,9 +72,9 @@ static int s302m_encode2_frame(AVCodecContext *avctx, AVPacket *avpkt, const AVFrame *frame, int *got_packet_ptr) { S302MEncContext *s = avctx->priv_data; + const int nb_channels = avctx->ch_layout.nb_channels; const int buf_size = AES3_HEADER_LEN + - (frame->nb_samples * - avctx->channels * + (frame->nb_samples * nb_channels * (avctx->bits_per_raw_sample + 4)) / 8; int ret, c, channels; uint8_t *o; @@ -91,7 +91,7 @@ static int s302m_encode2_frame(AVCodecContext *avctx, AVPacket *avpkt, o = avpkt->data; init_put_bits(&pb, o, buf_size); put_bits(&pb, 16, buf_size - AES3_HEADER_LEN); - put_bits(&pb, 2, (avctx->channels - 2) >> 1); // number of channels + put_bits(&pb, 2, (nb_channels - 2) >> 1); // number of channels put_bits(&pb, 8, 0); // channel ID put_bits(&pb, 2, (avctx->bits_per_raw_sample - 16) / 4); // bits per samples (0 = 16bit, 1 = 20bit, 2 = 24bit) put_bits(&pb, 4, 0); // alignments @@ -104,7 +104,7 @@ static int s302m_encode2_frame(AVCodecContext *avctx, AVPacket *avpkt, for (c = 0; c < frame->nb_samples; c++) { uint8_t vucf = s->framing_index == 0 ? 0x10: 0; - for (channels = 0; channels < avctx->channels; channels += 2) { + for (channels = 0; channels < nb_channels; channels += 2) { o[0] = ff_reverse[(samples[0] & 0x0000FF00) >> 8]; o[1] = ff_reverse[(samples[0] & 0x00FF0000) >> 16]; o[2] = ff_reverse[(samples[0] & 0xFF000000) >> 24]; @@ -126,7 +126,7 @@ static int s302m_encode2_frame(AVCodecContext *avctx, AVPacket *avpkt, for (c = 0; c < frame->nb_samples; c++) { uint8_t vucf = s->framing_index == 0 ? 0x80: 0; - for (channels = 0; channels < avctx->channels; channels += 2) { + for (channels = 0; channels < nb_channels; channels += 2) { o[0] = ff_reverse[ (samples[0] & 0x000FF000) >> 12]; o[1] = ff_reverse[ (samples[0] & 0x0FF00000) >> 20]; o[2] = ff_reverse[((samples[0] & 0xF0000000) >> 28) | vucf]; @@ -147,7 +147,7 @@ static int s302m_encode2_frame(AVCodecContext *avctx, AVPacket *avpkt, for (c = 0; c < frame->nb_samples; c++) { uint8_t vucf = s->framing_index == 0 ? 0x10 : 0; - for (channels = 0; channels < avctx->channels; channels += 2) { + for (channels = 0; channels < nb_channels; channels += 2) { o[0] = ff_reverse[ samples[0] & 0xFF]; o[1] = ff_reverse[(samples[0] & 0xFF00) >> 8]; o[2] = ff_reverse[(samples[1] & 0x0F) << 4] | vucf; From patchwork Thu Jan 13 02:06:59 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33519 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp45030iog; Wed, 12 Jan 2022 18:48:18 -0800 (PST) X-Google-Smtp-Source: ABdhPJwwVZ3YCjy8q1JfK3o2laUEPi2iBMKhrgAL8XQfdtWU5cXS6wyB6iXx4PLH5amfuiFfk+68 X-Received: by 2002:a17:907:e8d:: with SMTP id ho13mr1868299ejc.477.1642042098698; Wed, 12 Jan 2022 18:48:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642042098; cv=none; d=google.com; s=arc-20160816; b=UN4rmdADP3ZhaxZTuOD4DzfXg/CJ7PIiMFwCi16Wm4M7vIsMkacxDYEr2zwfrllIz6 uRoPLbl9imdh80b9+u9i+wrOoKN+IL4LQ0iyThM86OtWpG8Y2X9NWlTqvv//YAoiXInq voPE2wFfLHus0ONDV9ilxR4q6nST/S79H7PDsGFQ8FVr5eNiKwLboFhc5NCltAkAu7IB HqOi4OO+DC6VOIpPDSbtI1Ctnzg7gAyDZ3rDj8xw1S6uKxTIMb7tfOzSfSLm5xJBFykR K4KChEHE8U0d0eyTN4RWVSP9kX4rUX8RuwCIzDHdCun+edjRodLoGLYMN25w97wNbfz3 NBbg== 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=TuVOV5h5m6OpiDo3A3kHltlkibVbvVl8pPHt+qvk3Yo=; b=vXmKPOvq9/fZn5RDMwYBQoKz3ZRAxAg9NPz1RrwkdOLQqnmp6V2lv70SssLa/ZMMZA PhNaL/GIlK0dT0ltXIqU1TYI+eOz8m2s0csyYt5nDj05N4XWxsZ9IWmIv9O1ZIRsIPvB J6wXzNz7mj6TS8pmrBn4LJvy/JkFiqoCtoqdQUQuIN/mb1Go5Fk2jtMW6pffCX2ECWYA Qs4GtF47rMKhgjOE2KY4XeH4MyY24ORNYsdXZiC3G8unxXT3DIAYZ61Zq1G1L4sSEzwK ir99+5JJvUjZ4fgYVHItOzg+FlgBOBlQGCcwPtNgA7nNgb+uUanZzW+600OrjvEPMGz5 LOxw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=jxnSTT4b; 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 cm23si801973edb.406.2022.01.12.18.48.18; Wed, 12 Jan 2022 18:48:18 -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=jxnSTT4b; 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 29A6B68B9E4; Thu, 13 Jan 2022 04:07:50 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f175.google.com (mail-qt1-f175.google.com [209.85.160.175]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7DE8D68B9CD for ; Thu, 13 Jan 2022 04:07:48 +0200 (EET) Received: by mail-qt1-f175.google.com with SMTP id q14so5335825qtx.10 for ; Wed, 12 Jan 2022 18:07:48 -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=w5BEfF/oM5LHuOiczGoMGJsILFh7d+65wDaTRgKKyJg=; b=jxnSTT4beRYGi0bJ6+sdWRtyzEdxX1vG0RK3VxRpI3Ds4IHJKCSx6phze+MITV8lC4 a+4DsguRAW8yFd5mK++g7jbfqZic2WmHGLSBg5NNQNbwZUYLPxhlQjDk2h9v1tHgbBjg MTXrtAV/UvKij9dQT44hHaTKn8js1m94Yv62YqIAtMEzMt9YFWUfSpM60ExGlBFpVvbh 9gxrS1+HFVL7PhdngAlyciwL4TMaBNEj4XO6MWyweYbSwlqbHmxJNsltk25wqKRiWUCF 01Aw3rgG/+dfp/VmvFNcIqOu+9RfyydYhVJ6cO1I07tIWlvAAjmFwQAEyaejJwI5zxTm obng== 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=w5BEfF/oM5LHuOiczGoMGJsILFh7d+65wDaTRgKKyJg=; b=1fjFDJSXig1gN56iiR15LnbsScSKnu/Ud4MTM7RdjFtm4ZZrHeFwTEPywoNbL1rRGV P6z77V1/kxC04rkd+df6HkfQh7H3CbtpRmdHlek3iBl+FXFu5XF3fsHtwDKd74kfQHIf oEbuODSBCY8gjiTYU6K7UhqahaZ2wGsgQONGyUUtWTFAwnidZVNY+IF1auT3YJIanWxR h2apykKfoouEiN+gMEl7DemFtzMfyV0OBHAVLipJvdr2ZmJxZcebr8HXIqrea4KY7h8J 2uqNKScJg+3AYYN0u0YvljEfT5p/E4Sbc/KCVkwXs/wQMz8iOBypukkiD6gY2mv5pU5H LSMg== X-Gm-Message-State: AOAM533PngALnrVDaD2px2R6croxcNRnqykq1frIy0P3IRlJa5nSXGS3 Z5THVry16gUhuj4v2GBloLlchw9MPcs= X-Received: by 2002:a05:622a:1b8e:: with SMTP id bp14mr2005652qtb.357.1642039667057; Wed, 12 Jan 2022 18:07:47 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id a16sm1085946qta.13.2022.01.12.18.07.46 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:07:46 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:06:59 -0300 Message-Id: <20220113020713.801-16-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 255/281] sbc: 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: kPOXGXuC4h8A From: Anton Khirnov Signed-off-by: James Almer --- libavcodec/sbc_parser.c | 8 ++++++-- libavcodec/sbcdec.c | 9 ++++++++- libavcodec/sbcenc.c | 15 ++++++++++----- 3 files changed, 24 insertions(+), 8 deletions(-) diff --git a/libavcodec/sbc_parser.c b/libavcodec/sbc_parser.c index 8bf726b39e..2d427cc7cb 100644 --- a/libavcodec/sbc_parser.c +++ b/libavcodec/sbc_parser.c @@ -41,7 +41,9 @@ static int sbc_parse_header(AVCodecParserContext *s, AVCodecContext *avctx, return -1; if (data[0] == MSBC_SYNCWORD && data[1] == 0 && data[2] == 0) { - avctx->channels = 1; + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + avctx->ch_layout.nb_channels = 1; avctx->sample_rate = 16000; avctx->frame_size = 120; s->duration = avctx->frame_size; @@ -64,7 +66,9 @@ static int sbc_parse_header(AVCodecParserContext *s, AVCodecContext *avctx, + ((((mode == SBC_MODE_DUAL_CHANNEL) + 1) * blocks * bitpool + (joint * subbands)) + 7) / 8; - avctx->channels = channels; + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + avctx->ch_layout.nb_channels = channels; avctx->sample_rate = sample_rates[sr]; avctx->frame_size = subbands * blocks; s->duration = avctx->frame_size; diff --git a/libavcodec/sbcdec.c b/libavcodec/sbcdec.c index e14d8c8958..1c053ad9a7 100644 --- a/libavcodec/sbcdec.c +++ b/libavcodec/sbcdec.c @@ -351,7 +351,9 @@ static int sbc_decode_frame(AVCodecContext *avctx, if (frame_length <= 0) return frame_length; - avctx->channels = sbc->frame.channels; + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + avctx->ch_layout.nb_channels = sbc->frame.channels; frame->nb_samples = sbc->frame.blocks * sbc->frame.subbands; if ((ret = ff_get_buffer(avctx, frame, 0)) < 0) @@ -374,8 +376,13 @@ const AVCodec ff_sbc_decoder = { .decode = sbc_decode_frame, .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE, +#if FF_API_OLD_CHANNEL_LAYOUT .channel_layouts = (const uint64_t[]) { AV_CH_LAYOUT_MONO, AV_CH_LAYOUT_STEREO, 0}, +#endif + .ch_layouts = (const AVChannelLayout[]) { AV_CHANNEL_LAYOUT_MONO, + AV_CHANNEL_LAYOUT_STEREO, + { 0 } }, .sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_NONE }, .supported_samplerates = (const int[]) { 16000, 32000, 44100, 48000, 0 }, diff --git a/libavcodec/sbcenc.c b/libavcodec/sbcenc.c index 45156277b7..cff93e8917 100644 --- a/libavcodec/sbcenc.c +++ b/libavcodec/sbcenc.c @@ -202,7 +202,7 @@ static int sbc_encode_init(AVCodecContext *avctx) sbc->msbc = 1; if (sbc->msbc) { - if (avctx->channels != 1) { + if (avctx->ch_layout.nb_channels != 1) { av_log(avctx, AV_LOG_ERROR, "mSBC require mono channel.\n"); return AVERROR(EINVAL); } @@ -227,7 +227,7 @@ static int sbc_encode_init(AVCodecContext *avctx) return AVERROR(EINVAL); } - if (avctx->channels == 1) { + if (avctx->ch_layout.nb_channels == 1) { frame->mode = SBC_MODE_MONO; if (sbc->max_delay <= 3000 || avctx->bit_rate > 270000) frame->subbands = 4; @@ -251,7 +251,7 @@ static int sbc_encode_init(AVCodecContext *avctx) d = frame->blocks * ((frame->mode == SBC_MODE_DUAL_CHANNEL) + 1); frame->bitpool = (((avctx->bit_rate * frame->subbands * frame->blocks) / avctx->sample_rate) - - 4 * frame->subbands * avctx->channels + - 4 * frame->subbands * avctx->ch_layout.nb_channels - (frame->mode == SBC_MODE_JOINT_STEREO)*frame->subbands - 32 + d/2) / d; if (avctx->global_quality > 0) frame->bitpool = avctx->global_quality / FF_QP2LAMBDA; @@ -263,8 +263,8 @@ static int sbc_encode_init(AVCodecContext *avctx) if (avctx->sample_rate == avctx->codec->supported_samplerates[i]) frame->frequency = i; - frame->channels = avctx->channels; - frame->codesize = frame->subbands * frame->blocks * avctx->channels * 2; + frame->channels = avctx->ch_layout.nb_channels; + frame->codesize = frame->subbands * frame->blocks * avctx->ch_layout.nb_channels * 2; frame->crc_ctx = av_crc_get_table(AV_CRC_8_EBU); memset(&sbc->dsp.X, 0, sizeof(sbc->dsp.X)); @@ -353,8 +353,13 @@ const AVCodec ff_sbc_encoder = { .init = sbc_encode_init, .encode2 = sbc_encode_frame, .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE, +#if FF_API_OLD_CHANNEL_LAYOUT .channel_layouts = (const uint64_t[]) { AV_CH_LAYOUT_MONO, AV_CH_LAYOUT_STEREO, 0}, +#endif + .ch_layouts = (const AVChannelLayout[]) { AV_CHANNEL_LAYOUT_MONO, + AV_CHANNEL_LAYOUT_STEREO, + { 0 } }, .sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_NONE }, .supported_samplerates = (const int[]) { 16000, 32000, 44100, 48000, 0 }, From patchwork Thu Jan 13 02:07:00 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33520 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp45133iog; Wed, 12 Jan 2022 18:48:33 -0800 (PST) X-Google-Smtp-Source: ABdhPJy5cnW5fbun94u6UaP9XBV6uomT2FWT2VblHDoEXOpfx6vFaOUtAbif7W6K2gyzzFKxTo0W X-Received: by 2002:a05:6402:430a:: with SMTP id m10mr2364841edc.362.1642042113261; Wed, 12 Jan 2022 18:48:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642042113; cv=none; d=google.com; s=arc-20160816; b=Wi6Q5WapjHy49kYAXQ6SNM+UDgPfITigtZFeUPjehmG0Ybgfi1ps9M32i0+R/KeytN SqVRmd7ZooUUjNN6e+9rsOO30kK9uMKhposCDbMRs8b13ZHuKL7BweXezqADvTD74F7/ ZuPNWe4DYY4PrZaf6g3+8DIECmit1+xa4aCXN+wB6dHkxPKRreMSWww+1p4icZI746bL sMAkqXi4cdOR+iMTlzwIXTBk5gHhQNSnGBYvc7S7wV22HIBXQBOQUby4PyKyFXoI7SAn wLcU34ljLKVH44l0pdWi2jmdcmcGn820U+ixu2phOxtadOGVnZb8xPruwTWdCYiBikJz PbnQ== 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=ZFIguekPeDhEHFB5/95qRfK6GyXd16A9wGmk7a4TwSQ=; b=kUpykzjPbdGotX0cIIN+G2p+7IWX+MXf9KsomFBoDQl90hwy6kDRHq0BkKUrykG2G+ at8t7Zg4lzVit5498m2jTEpCwcbQvXvqVwRd7BSxxApdgWzNGmI2xiYknIiU0ezuzVfx oqTd9iwfGrNa9nM1L0gVgfsxR7cdccJLmAtFzs+sE7EXH66H2IxuTTmrQdi+fgBVoNXo wM/Ece6/nKNOMMCSvofk8PknNbtFHUchB4OhqaF6wA6yw+dc5fphO/26Pv2Ur4fytPTU OBCiiaSxCz1DvwE/+lpYHeOgtfFaOMJAuF0Cr8wqQpnKb4KBNYpaxv+G8S97P647rags /TcA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=Z+ZvF6cN; 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 g11si803654ejt.826.2022.01.12.18.48.33; Wed, 12 Jan 2022 18:48:33 -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=Z+ZvF6cN; 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 0C19F68B9EF; Thu, 13 Jan 2022 04:07:52 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f43.google.com (mail-qv1-f43.google.com [209.85.219.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1095668B9E3 for ; Thu, 13 Jan 2022 04:07:49 +0200 (EET) Received: by mail-qv1-f43.google.com with SMTP id hu2so5109961qvb.8 for ; Wed, 12 Jan 2022 18:07:49 -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=Fx9eC7EcTXkhOlBpEOLPj964PgwT56OZnNm5o8y2uQk=; b=Z+ZvF6cNpIP/IBxMlMhF9gZIdLD3wY4Sde5QFZ2GPGN3LIFNZY+Ji6jEruwlypTkxT FrEWUUGCtbsb2Yus6kGBE8EEHOkUHL8yHvRBNc4dmP3ZivzMbofBLSS0uimXc+CaIUfm A3wnzz18Wi1I57eEpolUKS7yXghOT9pDDMp1FzfVgGWsSpvqQHBwyNlJ7jUoP6kyC5eJ L9V/wZq9sM9pZSbK0383yMw0DmsWW0zEIV3N3MnW5G9cGVq8FgJg/I3KK3crZFDh7w5i 8jFtaefULeazTqmhAhpRST+SJLrF5RMzLfxRUiG+vtTXnxdQIhL/1xujURJaT634ZoLe XWfw== 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=Fx9eC7EcTXkhOlBpEOLPj964PgwT56OZnNm5o8y2uQk=; b=3hkXMX06kbnEBvJ4OVaSZ4rZhF09eSk3YDuw0YeusmusHFDeovneb8pLRoeRBwA035 bDmZbwFsoSyU5F2vV/woOl9MxbwuZQq13W92KL1KUvx1UY4A5ufGDC2mdRGjKNjTbrVS gcTJHt+mBM15ROnkWnj+IP8mt7xubYZeANVJy5aUmR5Waw30M4QzkdHegDCk27pr5dbZ PG2v/CXdqIAhrBqarGMrtHz4CAFrjZSTnb5kiAiiW/oivnvokyZeIXo/3h/EHGCfu++l 8g0J7kdlUtagvKiot7ei3LLl3r3fVB4bITxzmb9HVpp1PxEgRZgcF/UQ2Z2EeKfPegXY os5A== X-Gm-Message-State: AOAM532hzdowigqlLCKo/Z31yQgIKktnSEN8Op38vPi3e3mEBMjCex2M El+Fb3QI3fUychgSn40PV3lP7sUdxK4= X-Received: by 2002:a05:6214:29c9:: with SMTP id gh9mr2375568qvb.50.1642039668450; Wed, 12 Jan 2022 18:07:48 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id a16sm1085946qta.13.2022.01.12.18.07.47 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:07:47 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:07:00 -0300 Message-Id: <20220113020713.801-17-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 256/281] shorten: 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: Z0gsQzIbWhPn From: Anton Khirnov Signed-off-by: James Almer --- libavcodec/shorten.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libavcodec/shorten.c b/libavcodec/shorten.c index fde5c4b982..6cce675c9f 100644 --- a/libavcodec/shorten.c +++ b/libavcodec/shorten.c @@ -428,7 +428,11 @@ static int read_header(ShortenContext *s) s->channels = 0; return AVERROR_INVALIDDATA; } - s->avctx->channels = s->channels; + if (s->avctx->ch_layout.nb_channels != s->channels) { + av_channel_layout_uninit(&s->avctx->ch_layout); + s->avctx->ch_layout.nb_channels = s->channels; + s->avctx->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + } /* get blocksize if version > 0 */ if (s->version > 0) { From patchwork Thu Jan 13 02:07:01 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33521 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp45238iog; Wed, 12 Jan 2022 18:48:47 -0800 (PST) X-Google-Smtp-Source: ABdhPJwyCm49R/gw6KJH8O6A4qIvISV1ROOt3OLJ6csc21v+RgoPLTsrcX5PYGsHlL2WU/qVpPha X-Received: by 2002:a05:6402:1908:: with SMTP id e8mr2367981edz.22.1642042127140; Wed, 12 Jan 2022 18:48:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642042127; cv=none; d=google.com; s=arc-20160816; b=ZjJWOmGTqDoYUkaSa6kO3ELt86jvb0KPppxjm+XdQL/JFXcNKVYEuu5Ish3cIfqJMY PZ4azM+Gs0SnVvuI94ZbM0AHuRskIEH5yPNyg9W13YwelFjg5NjRDGIFzmEo3NdfyWpZ AeFht4L9rnlYfsDyhCDOeByORPZaQrcGIj0/6ok0Y+2+4tplM9ccCp3qBasfjxzuXxN0 QVBwvQKsIsJnYA172S08PKVbTNPygk9fiSlvGTKucZRnajmtwzfJjWL3zBFeLdlMAtLs SSYGJXPZ2lPC/rwMt0dF7O6ec9s9uA3Qzf7VnqQ+NiraSMY+8Z0dnKORIIwl8C22MpHv XrgA== 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=gtIVFkfRB7XSC/pM1Qv51lWvuVsqvQRO7+rlN7Rq3qU=; b=BbW3V/VyvACcbSJ0zSd2J7HB57/Q16M//IfMVt1uF9UdfGOsKro1UbejNCZUxEBRxJ 9TkLHw7qWmEavXW5nMD/O1OxwK8iJXWfXj9n29N4V+Bw8YfAQZrnKjqPvmHhy7DfQtiu Bvr23ddHuUx+OMrrsXyYJdMzPf7y/26PuZlWn3qd8Ltx//hZSjpvjMXEjv5SB8JexhSn o2U/iCP1n8CY+LiCfuJkfOgxFjZOXxqwEtUTqsla5xxjjHpUgS5UNhJh4kdgVQB+OWNY 78n0rd67kQSYLNeWUwpDOnirYv40URBUhPDokOaFiWOVt/pL42Oq5q4c0s/UBmWTTOn5 IEGw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=SAd6B3Cr; 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 ho33si861383ejc.943.2022.01.12.18.48.46; Wed, 12 Jan 2022 18:48:47 -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=SAd6B3Cr; 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 0842E68B9DF; Thu, 13 Jan 2022 04:07:53 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f176.google.com (mail-qt1-f176.google.com [209.85.160.176]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 40F3668B9C7 for ; Thu, 13 Jan 2022 04:07:51 +0200 (EET) Received: by mail-qt1-f176.google.com with SMTP id q14so5335895qtx.10 for ; Wed, 12 Jan 2022 18:07:51 -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=v5pgMIIXhC+o93Nhvc6tTz4jGN8jWN9FInIzOJaR8SY=; b=SAd6B3CrtuWz2hlqfCF/Y8lI6hCdYTlwydM16mwATPdNw/XlZS/oc+NFsFeq3mQbLH V99zEq7vdd3MOMvLiPe7XwWGm1rFXeq9vs+/MSNnDa/tj67CFxdVbN+n8v7G9hZxdfoG koGHNFNP6tSQ1hNM3yoVWKmmdC8V0Ao6ODFHJxqwzV2/TRSAdmBU/v7q/tuIGsGOzCKG V1g70dXBiYuLCdI2/4xTzVREhB4FXUcDi0W2HE29xvxdreFu+Krwgq6eygdiRUssJUVV vlPjjR1LtwWAKwJIKLPHiI6cbJfO+RVXedWSajP7bUxRN19KH1+o3IfN1Cc6e+35qnPV w94Q== 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=v5pgMIIXhC+o93Nhvc6tTz4jGN8jWN9FInIzOJaR8SY=; b=w0nbM11qnZZQ1gv+pzEqTV9b1yj7S3L6mw+l3tepttavfw2QVbzXEsYMkQWhw8ab+1 Z1AvgkUvcsQOSAvXUBfzGwnlEGj2MIQ/o5CKQrCxPIj/zGkYOqKwEyAVuClqwEPutX1S d/bY9dSUrx6Shf8w9d09uYFTJXzsLu5XtpobngCRXOEa3JWAvBpzhSbg7w9BGMv1/Kbf SzttAjAtsY8H3+StN5Dc3e/uO2TPYLKWoDKBXAU3/2J4ExxexnpY2XdHDA3Lphdy/MlC a9jB8WR6z9uapUiUPFK716T88tTWn4v5RBtQJsAxGh6nStNK1Qe/DrRGxIXSQPydZ02O H9ig== X-Gm-Message-State: AOAM533Wcln6AsTKJFYAT4JUFpNFx0J6gegibfpqHpSYlufEgT33tgrS 6fBwcjBJXpJzULZbWTObZw5RsLxQ8s0= X-Received: by 2002:a05:622a:390:: with SMTP id j16mr2056315qtx.122.1642039669834; Wed, 12 Jan 2022 18:07:49 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id a16sm1085946qta.13.2022.01.12.18.07.48 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:07:49 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:07:01 -0300 Message-Id: <20220113020713.801-18-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 257/281] sipr: 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: jWTpVvRm/r0U From: Anton Khirnov Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavcodec/sipr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/sipr.c b/libavcodec/sipr.c index a792b22c9f..6c7293b6ec 100644 --- a/libavcodec/sipr.c +++ b/libavcodec/sipr.c @@ -512,8 +512,8 @@ static av_cold int sipr_decoder_init(AVCodecContext * avctx) for (i = 0; i < 4; i++) ctx->energy_history[i] = -14; - avctx->channels = 1; - avctx->channel_layout = AV_CH_LAYOUT_MONO; + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; avctx->sample_fmt = AV_SAMPLE_FMT_FLT; return 0; From patchwork Thu Jan 13 02:07:02 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33522 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp45338iog; Wed, 12 Jan 2022 18:49:00 -0800 (PST) X-Google-Smtp-Source: ABdhPJy4qWw0sm8iP6m25zCiovpAQygQ/ZKs0QHi9RdMouu5fDnTdewS0LNb3noE1uZQ8q1/eI+0 X-Received: by 2002:a17:907:2d26:: with SMTP id gs38mr1895318ejc.765.1642042140741; Wed, 12 Jan 2022 18:49:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642042140; cv=none; d=google.com; s=arc-20160816; b=Pe6z7iRSoe71ln9fq+pOJCVyIPd+3M+KWnRj1Pvk6IdAVyF7C5cyTfcahpYlV0cXea h8TWA9TCz4XSy/zTG7GU2d2yX7U2zuYBUcl73CsZvVnxHEKRPbE/TWka8ARfeCHfA227 OtLBBFu5iwDm0Y5dt0AyOXa0SKYWjxw3baJbIU5Ggd+oT/Sn+A51E/2UQHglAXYZ7JVy 4fF00PQ7UJlPgr4/IVe2DWUJR06UlDWFpixT3TyT8jxXcgOCOl9KJfrdg9DsHjyGUKaW UnXNAkHygZah6RtRi95M1TC/pS7QZieqCHz5xpXh9v1Mbofe/aMI4CHH2n5niSbSoyop pddg== 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=QHKkg8eDIGMqh3FNcX86liM/dAM8NSUAmzYFD1vK7p0=; b=BHTZV3UeFdKHZxQJMynKT8SDcXeV82PZIRAB9sbbbpimb/raLiPlUCI5FzEmi8fCWn xgvHqzlqxtBmGO0zyDOaUbmHgsRyqhY8E4edNW3DLLOs55yDuA4iSklqOXX6gzuth7Ti VdqKhyDd5zS6c1MMvHhUlTh16vKHU1lQCpT5MWHmYII2Q1TaevOj3ypk7FWEv1zhdcYQ xXK6A4zfRE/NsllNNOpqNWzGE8udovUGo3Ndokt2CEnGdy5BJG5+/ZJz5sFeo4Y6YqgP NgcR44UMPNQPti7y+nLs8+5m8u5xjzxgDBsbOmsbKntkd1pjmJ9IdEqmOHmD+W3cT6U2 IlEw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=lhrMpyiD; 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 hr32si1011291ejc.303.2022.01.12.18.49.00; Wed, 12 Jan 2022 18:49:00 -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=lhrMpyiD; 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 E3B6C68BA00; Thu, 13 Jan 2022 04:07:53 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f178.google.com (mail-qk1-f178.google.com [209.85.222.178]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7C45168B9F1 for ; Thu, 13 Jan 2022 04:07:52 +0200 (EET) Received: by mail-qk1-f178.google.com with SMTP id h16so5626872qkp.3 for ; Wed, 12 Jan 2022 18:07:52 -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=VwKNT53Bsv6cEGUzR3aJJGLXRJHI6uabGmUkYuvVMiI=; b=lhrMpyiDsUrj28Vo8gWiS3qJ7l3u7ig1tzGrLgkBU23fnHmoVwQzeAWWD1WDSWiqrm anV42rEotyGqYfSx5ODUBAN/D2PJfWVItEEDkKdhad7HgzNWXoxMdFPqYdpqiczESw9e OhxjGSL4mnUfbIDv6lM+0DxKKlxDnx2lMjXV3E5Z1/QNWr8go7oKKw8L+KD1+Q7L+PH7 dUOUh9FVmEKQzM5rtCmIvM0Ng+2GCiq+V88GaixLMpPMGz7cKJ15qdVAeOU8EVLQQYnm 1a7kKLqAKDXNqSXhWjqs0FgwdiFt7ebXfaux1cDImdvZrtTJTGjVWrB9uBv7kqazc3t7 AiEQ== 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=VwKNT53Bsv6cEGUzR3aJJGLXRJHI6uabGmUkYuvVMiI=; b=fyD6pICf0LjxRFU5OWkp4+3nPv2hroB2aI6IgY4QCGKzg/14GVYmAO+4T1PLfUNE57 b6cINAkZlCfgjcNMF+ob9H90xWk44InVzUkILZqFucR47aHVZix+J+1fV7fS46sYoVPj IPEZHBbSLLhtVTViW6hJP6QUCEOTRdkLXO5Tn8d7C/LiGb1Ri/bVImfm97uPFV8ZTWON uTpoWb2WvlTZgytc3+TJZLt/CrFdQRPS9+Uf3MfKen7COP6U1lXIngzYP3A93/moBhBG zmbYFFg5eocRn4LMzhzCBBaSaXrLHdLC0y6/cUWIRPoVZY9r7Fc1KJlhVw/tydt/UQsY 1X1g== X-Gm-Message-State: AOAM530PyWev78HyOa3Gyy54OTAV3MPhSpwgAbOqRNg8W5s8kG/08PXp Vk7jCBpdp2b97/ZWTVj79OD42jXaCUs= X-Received: by 2002:a05:620a:199b:: with SMTP id bm27mr1846346qkb.404.1642039671038; Wed, 12 Jan 2022 18:07:51 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id a16sm1085946qta.13.2022.01.12.18.07.50 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:07:50 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:07:02 -0300 Message-Id: <20220113020713.801-19-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 258/281] siren: 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: rqSrbW1FsOpt Signed-off-by: James Almer --- libavcodec/siren.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/siren.c b/libavcodec/siren.c index bdb249144b..add1773069 100644 --- a/libavcodec/siren.c +++ b/libavcodec/siren.c @@ -398,8 +398,8 @@ static av_cold int siren_init(AVCodecContext *avctx) s->imdct_prev = s->imdct_buf[2]; s->window = s->imdct_buf[3]; - avctx->channels = 1; - avctx->channel_layout = AV_CH_LAYOUT_MONO; + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; avctx->sample_fmt = AV_SAMPLE_FMT_FLT; s->rate_control_possibilities = 16; From patchwork Thu Jan 13 02:07: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: 33523 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp45892iog; Wed, 12 Jan 2022 18:50:03 -0800 (PST) X-Google-Smtp-Source: ABdhPJzmwPpjhfAmhI4luHVp2g2N1cNeCkYPC93/2PH689QpqSC/aPZxZITpGFKM5kWUy48oCRxS X-Received: by 2002:a05:6402:3da:: with SMTP id t26mr2392211edw.116.1642042203464; Wed, 12 Jan 2022 18:50:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642042203; cv=none; d=google.com; s=arc-20160816; b=ed6uldBOX3XtzNJOT/3uoMyOe8cicCv1HKEgHkiqeQEqnWh51VV/zIeGzzLX8thYFk /4UvYQkZ3ICMt25QNK3EfkF7ogqSehTY1ZCye9x+nxpSYZa/Oei2pbuL7m8w7HtPVNTu o2QObAAeKSi+MzrYJSsmb3gqvjHlFamIFWe1w1p2sy3Bef8vo1OY6RvfaL5nqPiktIkj EdlylAktpNnfVw/7E+RhyfJubFWeZMvpvecNSGKdRulCTz7oxmDsEMFoiSjYJZ1DRYJJ wdCeaeeNSWWhpBXrO+kLL/dkBhSuD/PpR/GZ+VUG/kdmQqjLCHR4yPAYzXiFzzeu+Ma8 WkUg== 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=HsZipvkUtFDmJ5JTuRvYRRrdK6DvIqXzoHlN+b2k49w=; b=MP7URRG1CZAq0KcO00qXMnI0bIcq0VsjpcqeMxiRmoM1gbwn6Dc4Ie6sy/vAHXHG6r dwf453x51jqbxMp8iHvL5khdIMXvOi8LSxdVxzciSuhuod0sfh7CaOs+uq0aWNxpJOsy ZzrOBPDn9OmjfF8CKRnGEdpDKF6eHSH1S1BDIV5tE281PL0PDfMb0WtBU2hAxYdRK8Ex 9No93OBF7RBiJrEyQdZkrFGT+KrWlZq7K4nNearApEVqQpIPuq1g4Ti+/Ezq3FObqG1a 1TiOnGalW8+o/hdjEnG4y0zt8yVxrUutOtbE3/Q/JARzBIWNqQzw2JGcqZnWTxhgb9DF EwtA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=OoIMnipk; 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 w16si765572ejv.537.2022.01.12.18.50.03; Wed, 12 Jan 2022 18:50:03 -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=OoIMnipk; 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 A19BE68BA27; Thu, 13 Jan 2022 04:08:01 +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 C51C968BA14 for ; Thu, 13 Jan 2022 04:07:58 +0200 (EET) Received: by mail-qk1-f174.google.com with SMTP id t66so5594933qkb.4 for ; Wed, 12 Jan 2022 18:07:58 -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=46PU4gtjzdBg/4pW8hcCrfwVOYEqd7ErCb06kEwKaQY=; b=OoIMnipkjhN4s46YpASZwEQ7IKVAIDx4IqcI+u8qvUnnjfqdzkwURfzBz6YbC8GHUk VCEqkKPZ+uEL+kM/suqZal3wDmp4lE+5893mEtBZf/dD85ZmWZPW5uoPFoXODfNKTyTC 1NVzclbzTIWqhPkBThhhIwToW9W0r7THhL1GrrzZ8nBc+JrxMJOjBYqwaqRDC9ft5ty+ juZWhJr6Oa7mnfOHBgyPWCb6IX244LfHtCCnUxuSwWzVxxOSR1SiM24affhIDmiDzeZ0 U0HNnCGE5gCqRSi5WGZLjSQQA7e3PuF5WS8LVrBWBtTx5JI72Bu7P892cCg93iaQpH/M lJ8A== 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=46PU4gtjzdBg/4pW8hcCrfwVOYEqd7ErCb06kEwKaQY=; b=tex+syemnFu6/8atXmDStL2Izk1E4V1TWUAiXewyUyiamRE/kj15CdFD4g2inyTgOB DBWFxOXChdEEHMqJqGUfqMw3IyZkPhcfa/KZ2GE3TSuufz2jZ+mjg8iO6BgiirrUIfOQ 1t0L1YQpxbSI2WunWMYCSATN54GQn+W3IpnFhNk0QNDrEaB8MuxTwxBIrW0PZuijLU3R AO+ZTbcuioWNmpmBWAagn1PT9mKJ1Ze8BGPjd04FnacsPl0dhq57tuLvLa7hLsbxRYnQ yKaESm/lTlaV0QFiGl916AFJO91+2EXSa8vbI0tpAGtfRSXB4VbmfZcCTz5J9/auijn/ kuRg== X-Gm-Message-State: AOAM533K4/BZrYo9fEDbDFNS83qeehy4QS3L4WoG4uInr8CR+59wWh6x ZOQy9eVFGNmVleyRxmesAbH9eHs1n0E= X-Received: by 2002:a05:620a:24c9:: with SMTP id m9mr1848324qkn.615.1642039677243; Wed, 12 Jan 2022 18:07:57 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id a16sm1085946qta.13.2022.01.12.18.07.56 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:07:56 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:07:07 -0300 Message-Id: <20220113020713.801-24-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 263/281] truespeech: 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: QhcMNBsE4rPg From: Anton Khirnov Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavcodec/truespeech.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libavcodec/truespeech.c b/libavcodec/truespeech.c index a65ced15d7..30a7e86a75 100644 --- a/libavcodec/truespeech.c +++ b/libavcodec/truespeech.c @@ -64,12 +64,13 @@ static av_cold int truespeech_decode_init(AVCodecContext * avctx) { TSContext *c = avctx->priv_data; - if (avctx->channels != 1) { - avpriv_request_sample(avctx, "Channel count %d", avctx->channels); + if (avctx->ch_layout.nb_channels != 1) { + avpriv_request_sample(avctx, "Channel count %d", avctx->ch_layout.nb_channels); return AVERROR_PATCHWELCOME; } - avctx->channel_layout = AV_CH_LAYOUT_MONO; + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; avctx->sample_fmt = AV_SAMPLE_FMT_S16; ff_bswapdsp_init(&c->bdsp); From patchwork Thu Jan 13 02:07:08 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33524 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp46004iog; Wed, 12 Jan 2022 18:50:16 -0800 (PST) X-Google-Smtp-Source: ABdhPJymh4C/GkRFl5V1NkPQkWyEfQ6/aDuRaNpU2Oss3ZGXtPl5J1o6PaRj5Uct7jn/Xxb7xpEq X-Received: by 2002:a17:907:6d9b:: with SMTP id sb27mr384318ejc.222.1642042216492; Wed, 12 Jan 2022 18:50:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642042216; cv=none; d=google.com; s=arc-20160816; b=hSrm80jYZFLFd7An0zqqDf0phnP22OyIFcn8mBCziSvRDeGSP450tb02fm8IS6C++/ 9kDOIvVZHQf77xPH2ypi4CTXF55IzJ2AoYNJ2tUDMCfylxhVtF4SToud/3k0wMJpPAAB WF17NMYi8dtS5Sgq9A6lQdZG5V4FUMNFB3qFy4zgD+mKiLHVlf1LfIXutF2d0ixfXIgX V1V+UQDj9sWtZfzjm76WS1JmAFhzPeM3/ESb9L29xb2nExeZaoyswhufbLoayywtacHD 7ytna5N57oXNJgs6oVlVIqGsGIhAiETJmcH2qqL4YzMl3106nbqVZLf9DGTahwv2W05s eWZQ== 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=e/jfXOqgUYswjXOuNM+dZHdb6416GjkLvbcGH/MVJBU=; b=yJmAO8jhUYfs6EyzyexLw5buqBGdcczIED6oPccRnnpx8yR+4FpAWPp5Ge2UAtXPyo rygw0K1kkf+O+Cjh558IMhNaX+682Eae0k6FRPptspTL6YnkUn3O0SD5VwTElkUti+CU XkbvaZjAltzi+k4WYZzNXBkJjNmabrTZC/ea4KdVqbm0gsF5J9pr0LrYTDOkFnx4nQ4K 2PrIweEFvZCkLc0mv6/x2E4ah7Q/+RjdAp3KB3xcwUzV7Y6i4aRF/efVlo2NmQ2DKs+b swfkdNFWA9bdmbBFmXTOc+4YN0wdxwzJK8dwlmyduWkPZCynd1zT9GNx+lwJNqK0myuX Okig== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=jYsD2qGt; 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 lc10si728587ejc.549.2022.01.12.18.50.16; Wed, 12 Jan 2022 18:50:16 -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=jYsD2qGt; 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 7729D68BA32; Thu, 13 Jan 2022 04:08:02 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f169.google.com (mail-qt1-f169.google.com [209.85.160.169]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 013A668BA18 for ; Thu, 13 Jan 2022 04:07:59 +0200 (EET) Received: by mail-qt1-f169.google.com with SMTP id c7so1776607qtc.11 for ; Wed, 12 Jan 2022 18:07:59 -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=M3Vg69kZSNDXFg9TIoIg4Lj9w1jCfXlBy1ACHvQZiGU=; b=jYsD2qGtCVQM4uwNi7Lc/eFJZSJ8Gq4B5hRRioVBs87N/68p1dhgHLA1/gpge1Gfer x3rHA4oUtlRdY12fVu0NJ6nm5HijKQwdoLLvJyycVPVkZp8QJHqzjyvE0r6ISN8Fsdsw 47IEKOXRX+L2Nz7F1XONQAWKRd6nXpQanIFfiNpBt6HehYeI2U/Wv0mjL6FT+ueaAgqw wxP+cctXn4V8oq3/Qq+r8fUFsxt2wUARNVJacMGZ+HWz9p3lkJL/RFvfWk5UHcQdqSHo +HUEUZ+gZ9il3SoeJHIEg8jwvDu2iQ04Uf/slt5zJMpxv/FMZZCoZqKVQ2bbKFDwkHCc khOg== 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=M3Vg69kZSNDXFg9TIoIg4Lj9w1jCfXlBy1ACHvQZiGU=; b=l97jYnmr+lYOhbG6liWb+ZzyaTuLc9bpCxYZKco7H1+zxO8HFiD+Pq8uPL6xWJv9Np TuI+CA14EWGapx1stNTX1CmIhrPCRDrkXltC9Qb3uM4pkUHjrbQL5eIVhb1XBLLhwzA2 nsXQ+QrEj16+HKYXNrOK2osqZhUn5NblZazX1HBxsv+GPlklu5pUm+hVFT3sdqrddbT0 vM4ZeY0+38oNXbkZgq15IvwlvezAWGhGZU8Fa0f7VBOKuaBW4Hid6GxGE5ZMiyuVzeiv sWB7zBjc2VLnvZ3m4wD8CliVKlamD3aAQn+eD+qw1nqQrKVxk4clT5dZ6SAbywF/464/ LsRA== X-Gm-Message-State: AOAM531iPbG6qvbwPn6VEw9C/88135YWTtyBNeQOGypiVNQqR3IESPi3 XPnuzRO8mLnqln0zJr4hwpj2LAuI/Ew= X-Received: by 2002:ac8:5705:: with SMTP id 5mr2038307qtw.27.1642039678544; Wed, 12 Jan 2022 18:07:58 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id a16sm1085946qta.13.2022.01.12.18.07.57 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:07:58 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:07:08 -0300 Message-Id: <20220113020713.801-25-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 264/281] tta: 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: VDr+ou0wbVeL From: Anton Khirnov Signed-off-by: James Almer --- libavcodec/tta.c | 18 +++++++++++++----- libavcodec/ttaenc.c | 14 +++++++------- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/libavcodec/tta.c b/libavcodec/tta.c index 17b4ca9032..fed18451eb 100644 --- a/libavcodec/tta.c +++ b/libavcodec/tta.c @@ -113,7 +113,7 @@ static int allocate_buffers(AVCodecContext *avctx) return AVERROR(ENOMEM); } else s->decode_buffer = NULL; - s->ch_ctx = av_malloc_array(avctx->channels, sizeof(*s->ch_ctx)); + s->ch_ctx = av_malloc_array(avctx->ch_layout.nb_channels, sizeof(*s->ch_ctx)); if (!s->ch_ctx) { av_freep(&s->decode_buffer); return AVERROR(ENOMEM); @@ -156,9 +156,17 @@ static av_cold int tta_decode_init(AVCodecContext * avctx) } AV_WL64(s->crc_pass, tta_check_crc64(s->pass)); } - avctx->channels = s->channels = get_bits(&gb, 16); - if (s->channels > 1 && s->channels < 9) - avctx->channel_layout = tta_channel_layouts[s->channels-2]; + + s->channels = get_bits(&gb, 16); + + av_channel_layout_uninit(&avctx->ch_layout); + if (s->channels > 1 && s->channels < 9) { + av_channel_layout_from_mask(&avctx->ch_layout, tta_channel_layouts[s->channels-2]); + } else { + avctx->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + avctx->ch_layout.nb_channels = s->channels; + } + avctx->bits_per_raw_sample = get_bits(&gb, 16); s->bps = (avctx->bits_per_raw_sample + 7) / 8; avctx->sample_rate = get_bits_long(&gb, 32); @@ -199,7 +207,7 @@ static av_cold int tta_decode_init(AVCodecContext * avctx) (s->last_frame_length ? 1 : 0); av_log(avctx, AV_LOG_DEBUG, "format: %d chans: %d bps: %d rate: %d block: %d\n", - s->format, avctx->channels, avctx->bits_per_coded_sample, avctx->sample_rate, + s->format, avctx->ch_layout.nb_channels, avctx->bits_per_coded_sample, avctx->sample_rate, avctx->block_align); av_log(avctx, AV_LOG_DEBUG, "data_length: %d frame_length: %d last: %d total: %d\n", s->data_length, s->frame_length, s->last_frame_length, total_frames); diff --git a/libavcodec/ttaenc.c b/libavcodec/ttaenc.c index addaf30bb5..5717ec22d1 100644 --- a/libavcodec/ttaenc.c +++ b/libavcodec/ttaenc.c @@ -56,7 +56,7 @@ static av_cold int tta_encode_init(AVCodecContext *avctx) s->bps = avctx->bits_per_raw_sample >> 3; avctx->frame_size = 256 * avctx->sample_rate / 245; - s->ch_ctx = av_malloc_array(avctx->channels, sizeof(*s->ch_ctx)); + s->ch_ctx = av_malloc_array(avctx->ch_layout.nb_channels, sizeof(*s->ch_ctx)); if (!s->ch_ctx) return AVERROR(ENOMEM); @@ -89,7 +89,7 @@ static int tta_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, TTAEncContext *s = avctx->priv_data; PutBitContext pb; int ret, i, out_bytes, cur_chan, res, samples; - int64_t pkt_size = frame->nb_samples * 2LL * avctx->channels * s->bps; + int64_t pkt_size = frame->nb_samples * 2LL * avctx->ch_layout.nb_channels * s->bps; pkt_alloc: cur_chan = 0, res = 0, samples = 0; @@ -98,13 +98,13 @@ pkt_alloc: init_put_bits(&pb, avpkt->data, avpkt->size); // init per channel states - for (i = 0; i < avctx->channels; i++) { + for (i = 0; i < avctx->ch_layout.nb_channels; i++) { s->ch_ctx[i].predictor = 0; ff_tta_filter_init(&s->ch_ctx[i].filter, ff_tta_filter_configs[s->bps - 1]); ff_tta_rice_init(&s->ch_ctx[i].rice, 10, 10); } - for (i = 0; i < frame->nb_samples * avctx->channels; i++) { + for (i = 0; i < frame->nb_samples * avctx->ch_layout.nb_channels; i++) { TTAChannel *c = &s->ch_ctx[cur_chan]; TTAFilter *filter = &c->filter; TTARice *rice = &c->rice; @@ -113,8 +113,8 @@ pkt_alloc: value = get_sample(frame, samples++, avctx->sample_fmt); - if (avctx->channels > 1) { - if (cur_chan < avctx->channels - 1) + if (avctx->ch_layout.nb_channels > 1) { + if (cur_chan < avctx->ch_layout.nb_channels - 1) value = res = get_sample(frame, samples, avctx->sample_fmt) - value; else value -= res / 2; @@ -176,7 +176,7 @@ pkt_alloc: if (k) put_bits(&pb, k, outval & (ff_tta_shift_1[k] - 1)); - if (cur_chan < avctx->channels - 1) + if (cur_chan < avctx->ch_layout.nb_channels - 1) cur_chan++; else cur_chan = 0; From patchwork Thu Jan 13 02:07:09 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33525 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp46144iog; Wed, 12 Jan 2022 18:50:35 -0800 (PST) X-Google-Smtp-Source: ABdhPJy1/eAGwaxpZrEPElvUerVLAUy/Ra0t9HUQ1QESQYvqw4fADt5tRNUPyHcCqs6cgHXhzyep X-Received: by 2002:a17:906:7705:: with SMTP id q5mr1975469ejm.34.1642042235122; Wed, 12 Jan 2022 18:50:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642042235; cv=none; d=google.com; s=arc-20160816; b=Xn/xEuqyoQ+PoGtukmQ949f7EbSVuTd5NMU+m2dnJLrCOA/JaDcLjtGtUX7kGkchG+ 3y6Stg/E5+O+ZbpWR008whu/7EvoRhlnCgG+H6vawztxuhKdtys1W8bwbAMc9dMWckk5 WjKVS62U76kJrDWekfPsA88VkAwBafasix6iMgsbXu9A+cPm/r44kJ9MItV8bzYdAMuZ QdFN20e1d2wiz45wO3yayBRfRIN7nXp5+oKx2FcjBe+BaCmBsgjGpOOCtuB1C50A5oWu QfgpPRlAuStCvJO2N6F1EUbNHFmwYkuOjVjvTVwFUo3AYy+CMfaGYULTq2X/EZhoRsFW JDsQ== 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=qK4yVDxf4vfgmS+NzVu4Q3aTEYRl6auimxvcVXIHYtU=; b=HfHzPLnRM3tEo1BjGt0XiA6TmjO+am06gjt6kcVVZVu/DQgbyEaxebZSS+9cU72P04 boefgZiNCFVJPcg9DdoF+OPBCAXRHPtQC7TCgak+xZR9Qdxvdbimar/OdUT+0L9oEjSF MCdTT4Rk7+53iXg1duW44vnF82yGo07Je/tfxQWbAqeBWj6WIhR7Aczd7w64qR3uXB/r R+2x/z3mE04sDGfQzKa1nKhiRDcfDxgPgCTSGHkQj8+bto1XeGaqpR8bTREGxoGMUo5K nrns7zGud6TyZVpeFBz0GwPqSA1SCcV2Rdu/Pd0rWvKD/KDOGJO2UaTSAMxU3CMjeO1Q wAwg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=dQEmPJ39; 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 d2si790105ejc.653.2022.01.12.18.50.34; Wed, 12 Jan 2022 18:50:35 -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=dQEmPJ39; 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 5349868BA3F; Thu, 13 Jan 2022 04:08:03 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f170.google.com (mail-qt1-f170.google.com [209.85.160.170]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 51EA668BA1F for ; Thu, 13 Jan 2022 04:08:01 +0200 (EET) Received: by mail-qt1-f170.google.com with SMTP id c10so5402555qte.2 for ; Wed, 12 Jan 2022 18:08:01 -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=OJmA+6YThMJkSIemQvoFcLMmR6PIM76TxXhAzmNX5uw=; b=dQEmPJ39SkXybZrmAcIpybzKjm+hvVVOHY2MK+a0KW4btzilNweb8AG4iw+SL8jl/b Qq7BKSB2hLloH85E7m9wmP36mKMNRC68YPJN7tANTJyu2PyOCsUmKfFgUNH71OSui59c seyEt7zbvQou1dnxqCyt35zR6TQbfysxocE8CPuDmkPzbRydWQiR1foxtqBTEHli5pos 9SgIfCdTUjA189HNeGPZdkEMBxbpck2UK0zPxAeKVN7LtlYAV7wovV9EcfH3oVIRy2yo bSep7g4OvaQTtk8l+whImWfd9FL1Evti6uS8ROC5rRT2rgcz2jMppCpnneeIL1gKFpNL NR6A== 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=OJmA+6YThMJkSIemQvoFcLMmR6PIM76TxXhAzmNX5uw=; b=jh1T35R0lhGZsbqipwvTWWELKZcON36NhzU5iSr8Wbx01e5lZm9/0pNXBoolrvpgtY kPtmIMwPJH4t2Yvag3GBsR1WOzhZOu2+bC2PpqR45oIKp0jDsRitV3dzlriLQr2XNd2U ucssdpVq3NTgn847c7sTIZ3nWTfXhm7S7SPiaM6O+DhXQLP0V7BUapG2B5yk26ACCBz6 psfYdt5IPiQiIX9gOtl4OptdvsKcSeZ6OS+V3N9cgEQAx5LItb+QmbGlt8m892X9UTYT +VsYj39KAnBMhvCKC07y5/fg89Te4gQUXky9Ulx8wDWydWxabJCzXkH39acxQzRGE8A1 3AjA== X-Gm-Message-State: AOAM531qVfdm491HLdgEy4RTlZymQkO28XbXa5CcprWQ74aUdTSU7D1+ 2TGI4jdQEkOwHHGUIcfOtv+LqH/Ln+w= X-Received: by 2002:a05:622a:649:: with SMTP id a9mr2002307qtb.604.1642039679796; Wed, 12 Jan 2022 18:07:59 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id a16sm1085946qta.13.2022.01.12.18.07.58 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:07:59 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:07:09 -0300 Message-Id: <20220113020713.801-26-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 265/281] twinvq: 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: fPUefQUbC9XL From: Vittorio Giovara Signed-off-by: James Almer --- libavcodec/twinvq.c | 20 +++++++++++--------- libavcodec/twinvqdec.c | 18 +++++++++--------- 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/libavcodec/twinvq.c b/libavcodec/twinvq.c index 6dfaf06b14..ba9672a41f 100644 --- a/libavcodec/twinvq.c +++ b/libavcodec/twinvq.c @@ -217,17 +217,18 @@ static void dec_gain(TwinVQContext *tctx, const TwinVQModeTab *mtab = tctx->mtab; const TwinVQFrameData *bits = &tctx->bits[tctx->cur_frame]; int i, j; + int channels = tctx->avctx->ch_layout.nb_channels; int sub = mtab->fmode[ftype].sub; float step = TWINVQ_AMP_MAX / ((1 << TWINVQ_GAIN_BITS) - 1); float sub_step = TWINVQ_SUB_AMP_MAX / ((1 << TWINVQ_SUB_GAIN_BITS) - 1); if (ftype == TWINVQ_FT_LONG) { - for (i = 0; i < tctx->avctx->channels; i++) + for (i = 0; i < channels; i++) out[i] = (1.0 / (1 << 13)) * twinvq_mulawinv(step * 0.5 + step * bits->gain_bits[i], TWINVQ_AMP_MAX, TWINVQ_MULAW_MU); } else { - for (i = 0; i < tctx->avctx->channels; i++) { + for (i = 0; i < channels; i++) { float val = (1.0 / (1 << 23)) * twinvq_mulawinv(step * 0.5 + step * bits->gain_bits[i], TWINVQ_AMP_MAX, TWINVQ_MULAW_MU); @@ -380,10 +381,11 @@ static void imdct_output(TwinVQContext *tctx, enum TwinVQFrameType ftype, { const TwinVQModeTab *mtab = tctx->mtab; float *prev_buf = tctx->prev_frame + tctx->last_block_pos[0]; + int channels = tctx->avctx->ch_layout.nb_channels; int size1, size2, i; float *out1, *out2; - for (i = 0; i < tctx->avctx->channels; i++) + for (i = 0; i < channels; i++) imdct_and_window(tctx, ftype, wtype, tctx->spectrum + i * mtab->size, prev_buf + 2 * i * mtab->size, @@ -399,7 +401,7 @@ static void imdct_output(TwinVQContext *tctx, enum TwinVQFrameType ftype, memcpy(out1, prev_buf, size1 * sizeof(*out1)); memcpy(out1 + size1, tctx->curr_frame, size2 * sizeof(*out1)); - if (tctx->avctx->channels == 2) { + if (channels == 2) { out2 = &out[1][0] + offset; memcpy(out2, &prev_buf[2 * mtab->size], size1 * sizeof(*out2)); @@ -414,7 +416,7 @@ static void read_and_decode_spectrum(TwinVQContext *tctx, float *out, { const TwinVQModeTab *mtab = tctx->mtab; TwinVQFrameData *bits = &tctx->bits[tctx->cur_frame]; - int channels = tctx->avctx->channels; + int channels = tctx->avctx->ch_layout.nb_channels; int sub = mtab->fmode[ftype].sub; int block_size = mtab->size / sub; float gain[TWINVQ_CHANNELS_MAX * TWINVQ_SUBBLOCKS_MAX]; @@ -536,7 +538,7 @@ static av_cold int init_mdct_win(TwinVQContext *tctx) const TwinVQModeTab *mtab = tctx->mtab; int size_s = mtab->size / mtab->fmode[TWINVQ_FT_SHORT].sub; int size_m = mtab->size / mtab->fmode[TWINVQ_FT_MEDIUM].sub; - int channels = tctx->avctx->channels; + int channels = tctx->avctx->ch_layout.nb_channels; float norm = channels == 1 ? 2.0 : 1.0; int table_size = 2 * mtab->size * channels; @@ -645,10 +647,10 @@ static av_cold void construct_perm_table(TwinVQContext *tctx, int16_t *tmp_perm = (int16_t *)tctx->tmp_buf; if (ftype == TWINVQ_FT_PPC) { - size = tctx->avctx->channels; + size = tctx->avctx->ch_layout.nb_channels; block_size = mtab->ppc_shape_len; } else { - size = tctx->avctx->channels * mtab->fmode[ftype].sub; + size = tctx->avctx->ch_layout.nb_channels * mtab->fmode[ftype].sub; block_size = mtab->size / mtab->fmode[ftype].sub; } @@ -666,7 +668,7 @@ static av_cold void construct_perm_table(TwinVQContext *tctx, static av_cold void init_bitstream_params(TwinVQContext *tctx) { const TwinVQModeTab *mtab = tctx->mtab; - int n_ch = tctx->avctx->channels; + int n_ch = tctx->avctx->ch_layout.nb_channels; int total_fr_bits = tctx->avctx->bit_rate * mtab->size / tctx->avctx->sample_rate; diff --git a/libavcodec/twinvqdec.c b/libavcodec/twinvqdec.c index 1fbe0bc32e..98702c7ef2 100644 --- a/libavcodec/twinvqdec.c +++ b/libavcodec/twinvqdec.c @@ -181,7 +181,7 @@ static void decode_ppc(TwinVQContext *tctx, int period_coef, int g_coef, { const TwinVQModeTab *mtab = tctx->mtab; int isampf = tctx->avctx->sample_rate / 1000; - int ibps = tctx->avctx->bit_rate / (1000 * tctx->avctx->channels); + int ibps = tctx->avctx->bit_rate / (1000 * tctx->avctx->ch_layout.nb_channels); int min_period = ROUNDED_DIV(40 * 2 * mtab->size, isampf); int max_period = ROUNDED_DIV(40 * 2 * mtab->size * 6, isampf); int period_range = max_period - min_period; @@ -254,7 +254,7 @@ static int twinvq_read_bitstream(AVCodecContext *avctx, TwinVQContext *tctx, { TwinVQFrameData *bits = &tctx->bits[0]; const TwinVQModeTab *mtab = tctx->mtab; - int channels = tctx->avctx->channels; + int channels = tctx->avctx->ch_layout.nb_channels; int sub; GetBitContext gb; int i, j, k, ret; @@ -319,14 +319,14 @@ static int twinvq_read_bitstream(AVCodecContext *avctx, TwinVQContext *tctx, static av_cold int twinvq_decode_init(AVCodecContext *avctx) { - int isampf, ibps; + int isampf, ibps, channels; TwinVQContext *tctx = avctx->priv_data; if (!avctx->extradata || avctx->extradata_size < 12) { av_log(avctx, AV_LOG_ERROR, "Missing or incomplete extradata\n"); return AVERROR_INVALIDDATA; } - avctx->channels = AV_RB32(avctx->extradata) + 1; + channels = AV_RB32(avctx->extradata) + 1; avctx->bit_rate = AV_RB32(avctx->extradata + 4) * 1000; isampf = AV_RB32(avctx->extradata + 8); @@ -349,15 +349,15 @@ static av_cold int twinvq_decode_init(AVCodecContext *avctx) break; } - if (avctx->channels <= 0 || avctx->channels > TWINVQ_CHANNELS_MAX) { + if (channels <= 0 || channels > TWINVQ_CHANNELS_MAX) { av_log(avctx, AV_LOG_ERROR, "Unsupported number of channels: %i\n", - avctx->channels); + channels); return -1; } - avctx->channel_layout = avctx->channels == 1 ? AV_CH_LAYOUT_MONO - : AV_CH_LAYOUT_STEREO; + av_channel_layout_uninit(&avctx->ch_layout); + av_channel_layout_default(&avctx->ch_layout, channels); - ibps = avctx->bit_rate / (1000 * avctx->channels); + ibps = avctx->bit_rate / (1000 * channels); if (ibps < 8 || ibps > 48) { av_log(avctx, AV_LOG_ERROR, "Bad bitrate per channel value %d\n", ibps); return AVERROR_INVALIDDATA; From patchwork Thu Jan 13 02:07:10 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33526 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp46267iog; Wed, 12 Jan 2022 18:50:51 -0800 (PST) X-Google-Smtp-Source: ABdhPJy8rOn5kGelAdeJqLUrRXJEwp9JcuB5V9TKMqOUTzjF0o7OsOIKbBWRqLA45jBeM8w3g0RS X-Received: by 2002:a17:907:2ce1:: with SMTP id hz1mr2047168ejc.199.1642042250863; Wed, 12 Jan 2022 18:50:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642042250; cv=none; d=google.com; s=arc-20160816; b=l/tvkf3bO2lGPL8129F4d4yKcLQH51iUcNl7tOlF4SGl84LxLbDzYim+nT78Dp6ZH0 K47nKYxlud5q39Rd5Zh2aUuIT45nRGaA3sdX8vlmukc6kilhgPi+W5WWzLzpHoot5kIX XZHkEcajGzIURG3HZsdkcYFF9WF1gyDnrwzLhDtp6NXbw74uPFBBDzXoyOpj68cLL/Yi tOLVc2IF0ROMNTePogUHKNZ9X46EUHxS3brl2LOvlsRw/t9DB9qczOj348pe8anbSCKi AZeuGtpTk48wqo8yRTcffn1mNz9Z2YXw/5PVKcc2LdCHw/trUFyYuW1J6hlcvO51eoya 68Rw== 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=55DHXMun/MA9iU8GkMUrF3bhXwBSjihsxQ62yzSkUKo=; b=chzUtObJblg1tr50B5MXiyfSE0+sQnanV7TFu3vpgFG845IuhoF1zfcnQxdtgmNt3x yy35tdjvQmaQYXI45u3hKstQHzCbUa+zK89BPWM8RllhNnXkCkqyYw1lI9HutaoBsTZE I978zi+TzWMAAZaMr7zjprhd49T/Ff980F4aXxUvIfMi0EWjoC9ZyTqdMAytQ9DKC7NU SvMb3XJjdp+EshjTbbIXH4qgjN6pljq3g/EneiOA9euoqgXCQyypOt8+31ar/uJA+xEh ODlMtUlbnQyUgwy42UveiUKVcgO5Nio5M7YiKBuAWvOKJvyBRRKC9Amwb3EgrYm0HRth 5LAw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=Rq06eXNu; 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 go44si830801ejc.677.2022.01.12.18.50.50; Wed, 12 Jan 2022 18:50:50 -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=Rq06eXNu; 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 37BBE68BA47; Thu, 13 Jan 2022 04:08:06 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f52.google.com (mail-qv1-f52.google.com [209.85.219.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6C71F68BA3A for ; Thu, 13 Jan 2022 04:08:02 +0200 (EET) Received: by mail-qv1-f52.google.com with SMTP id q3so5142536qvc.7 for ; Wed, 12 Jan 2022 18:08:02 -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=L2phcX/UUp966sDI6gTk6laEGIGGrzLA4KUg+RBq5AM=; b=Rq06eXNuyMt/qgm/jT1hrf8Z4OoB1eM84KUjqsvCWZ0GNv9fUzPi3AEkN/44S1qSTK g8pTlMSdDRnpFce/4mqG+Z61eFUN5N1nCp47wos1WWU0pzXO2woKtAvR5+HUUBGZTt0b XRbYyEwnf9vRLAOsq5yan0lKtxZHUSTwS5pqTqENxSQBtFW2c5T+aYqYFlJpWdJx23/h frjVfHbTNbmW+8L5Aw12TTHgeoDOl/ou52GCIv3bf26Gc94ZxVPh6k1gBCIvEUD8hV0x M0cCLhwylqeltJdGpcCgM9qwyFwXhtwOilT0OZ5Se8Y13xRf8eWpM2Y5LdG6cu/pzIbd tOEQ== 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=L2phcX/UUp966sDI6gTk6laEGIGGrzLA4KUg+RBq5AM=; b=mKb3FuuxQ3sHCPoxLA+0Z3LNAYqFTYzIx+cY/XX0Hh7V0HdHjrsWw1N1kaI+Tq3wRx LthH9dLbBjPDXv16AWsS0s3wM+Ofn8rOxkT2l7El+fYe3UsVw7Gv5rbQeCTiXaSO0Xlv E7Q95lpC/u2H6P5LHhfYn3D5ZQFsDuWOhP3E/IXqvLnXEQmyDbd1b9IfyhuZA1QJM6fl tBlGKIBO0sV8EaRYTdbrCa64hq5uI0UDNy/o6+FZTfKYMALSxsUjc/6nAJF1cro07dJO EhGgIUw30VIC2gwP8vCXjX8z+nzVXDMvxdkM+fDLpm+zI8pARSTswajCISizjlxM/uXX 5grg== X-Gm-Message-State: AOAM533ulF1qsxBRuMRjeM2AiB2PpCceNsHygRWeDeWahh6csPpt8iZn Tsi0hj6YSeUHIWpEFKRsoPNwNyaS2/w= X-Received: by 2002:a05:6214:2349:: with SMTP id hu9mr2163465qvb.93.1642039681022; Wed, 12 Jan 2022 18:08:01 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id a16sm1085946qta.13.2022.01.12.18.08.00 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:08:00 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:07:10 -0300 Message-Id: <20220113020713.801-27-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 266/281] vima: 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: E3upDCtCLmBf From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavcodec/vima.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/libavcodec/vima.c b/libavcodec/vima.c index c9a81e4401..5053feda90 100644 --- a/libavcodec/vima.c +++ b/libavcodec/vima.c @@ -147,9 +147,8 @@ static int decode_frame(AVCodecContext *avctx, void *data, channel_hint[0] = ~channel_hint[0]; channels = 2; } - avctx->channels = channels; - avctx->channel_layout = (channels == 2) ? AV_CH_LAYOUT_STEREO - : AV_CH_LAYOUT_MONO; + av_channel_layout_uninit(&avctx->ch_layout); + av_channel_layout_default(&avctx->ch_layout, channels); pcm_data[0] = get_sbits(&gb, 16); if (channels > 1) { channel_hint[1] = get_sbits(&gb, 8); From patchwork Thu Jan 13 02:07:11 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33527 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp46350iog; Wed, 12 Jan 2022 18:51:01 -0800 (PST) X-Google-Smtp-Source: ABdhPJzMzU4g7DxpgywC97tNUe+Zbz5QRKjMWiJwlwSXUyNrX7sf50mPuHc3sxVvqWT2krr9WO2e X-Received: by 2002:a17:907:1007:: with SMTP id ox7mr322870ejb.533.1642042261506; Wed, 12 Jan 2022 18:51:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642042261; cv=none; d=google.com; s=arc-20160816; b=rL/ApDWEaeX5hQ3hCMKOtBzswsZyUkcvGs6JZJhW8tmllKTw8K6WxUOJfsHVebfzMR CmsPdYLVpYbd1zLwFOhLs4wDLN0YkI10ofGzdFZ7RQr7qKLzFCPhxqzPaUABl0X7VYi5 A59RBoUa7l0/huH60EZhX4hObD9pLRUkNbI+y6J56fKiqN1B3h2JWeq2n5pdxC5NlCw0 8SW2k+6aPh0JMMN7Y/qEQESd1XMrcGX4n5Ss29y9iJq/vPgp75ugf3/knnkMIdNbNGEw fdAwr7/dp/exwnonch5igyOBRX76FtcCZVX7HRxvXPVAgEf4HR+I7FkRZxyNGo+xrohl WVfw== 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=miw05a4lMCnQ1/x7FeWA6ZJ6Nt3JiiKtXZULYmp2+pM=; b=EmKmVHD6dNcYx+PSGH6KJxLKOzn3tz0f4cxJBh/+TeXUMaeFfoOMC2AhuLVWtZr+L/ uU9pry0Kt02pF4FjqLtC+ODCTDiL38bC3cfyDCOEVr0E5gSo9STqq/2TwFnkUsOWhm6H XtnE/W7A4z4gCmFHVjvljEKo3/qZK7gRAD7l8rF9H6wEUz0ekRB/EDxsUCDB/491QxhQ ZTxIPryBkmpH4+2knVlT4URTfftTNWnHxbMDbh/ZcWMEWoNg3SBsXTkPn2+6uGG2uamR CaArASbTtbqe6FFNbvqaEWzS1fxHF8SqOOBdihYkMqB8tm8cS/9c4842vMO8TzWHmw4l LSOw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=VDHr5tc6; 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 hz2si874351ejc.716.2022.01.12.18.51.01; Wed, 12 Jan 2022 18:51:01 -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=VDHr5tc6; 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 1240D68BA50; Thu, 13 Jan 2022 04:08:07 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f44.google.com (mail-qv1-f44.google.com [209.85.219.44]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E0AED68BA26 for ; Thu, 13 Jan 2022 04:08:03 +0200 (EET) Received: by mail-qv1-f44.google.com with SMTP id p12so5114949qvj.6 for ; Wed, 12 Jan 2022 18:08:03 -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=INFmrHTdyU26xUdI6b18gQjlKekzkPVj1ZRpirpmQ98=; b=VDHr5tc6A9n3Wi/13YVExXwdrPW8fmFPXLij2rZNgjSxjBZLxF0wK2GougFDMOsxHC DRn57W81CS4pDklT3Ojz3Ei7ftcsbpg/xM0BH1hFxup5th/bARqr6FMVx3t4gslMNXgs +8WVHhtGAHWKhXDZtzM0YZALK/PJdcv/zNzStBZ8t4ZcKMpfVc2dwddaqPlU9RdavFcO ueiYSKfULJ/xpdm45iBz6HLd32jenB1qzztumSWqWkqvpHSpQ/8kRWTox2ZPag4v2tUn X7bNb61k7pV+m850Uhn0IHLN9cxKPcMaW3uZ3nWhEshDslCwXCpt/AMTCVDaYL2AsXSx Y1Bg== 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=INFmrHTdyU26xUdI6b18gQjlKekzkPVj1ZRpirpmQ98=; b=q/PZXoNQq1CHNcNuljrn9mqp3N6QYHZ3WVYhsxfTGgi7NTMmAEKhkeJw9aC+bb6yK2 7jAOfL9xhcwfHgz452Hgng16QRelmRA0ReSLX3IPKx2SPjbScguJwXN50E6pnAHgIYqv WySM0SvRZ75AThWbkKEQevLfPqdTWdBC5m9PlcplWTJern4lxwlia3FNi/j3WMCYf0xv R8FInYRBX7q2WBhPxa3OOES1B9lfEsN6+D3It4tK6Llo/z1QYZc29g36z+1ZFSA5jw1a US4o8zC07q7LAC/T1mWRPFaQCxVM5sjCeg2t2pgXXNyJDiClcLlh/cjndBjAZ1I7F7Ai 8PDQ== X-Gm-Message-State: AOAM532Vt+ldxJRZX1lBwuJ3wQ9U5TY5gEGAHH0+DuFWiEW2c6Pta4eT jHY5UpWFFmpr9BhNGlx53D4w//ob5DM= X-Received: by 2002:ad4:5aab:: with SMTP id u11mr2194450qvg.86.1642039682210; Wed, 12 Jan 2022 18:08:02 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id a16sm1085946qta.13.2022.01.12.18.08.01 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:08:01 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:07:11 -0300 Message-Id: <20220113020713.801-28-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 267/281] vmdaudio: 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: xC9+Qo/30Bt7 From: Anton Khirnov Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavcodec/vmdaudio.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/libavcodec/vmdaudio.c b/libavcodec/vmdaudio.c index 53aef660ef..5e04686cb1 100644 --- a/libavcodec/vmdaudio.c +++ b/libavcodec/vmdaudio.c @@ -71,20 +71,20 @@ static const uint16_t vmdaudio_table[128] = { static av_cold int vmdaudio_decode_init(AVCodecContext *avctx) { VmdAudioContext *s = avctx->priv_data; + int channels = avctx->ch_layout.nb_channels; - if (avctx->channels < 1 || avctx->channels > 2) { + if (channels < 1 || channels > 2) { av_log(avctx, AV_LOG_ERROR, "invalid number of channels\n"); return AVERROR(EINVAL); } - if (avctx->block_align < 1 || avctx->block_align % avctx->channels || - avctx->block_align > INT_MAX - avctx->channels - ) { + if (avctx->block_align < 1 || avctx->block_align % channels || + avctx->block_align > INT_MAX - channels) { av_log(avctx, AV_LOG_ERROR, "invalid block align\n"); return AVERROR(EINVAL); } - avctx->channel_layout = avctx->channels == 1 ? AV_CH_LAYOUT_MONO : - AV_CH_LAYOUT_STEREO; + av_channel_layout_uninit(&avctx->ch_layout); + av_channel_layout_default(&avctx->ch_layout, channels == 1); if (avctx->bits_per_coded_sample == 16) avctx->sample_fmt = AV_SAMPLE_FMT_S16; @@ -92,11 +92,11 @@ static av_cold int vmdaudio_decode_init(AVCodecContext *avctx) avctx->sample_fmt = AV_SAMPLE_FMT_U8; s->out_bps = av_get_bytes_per_sample(avctx->sample_fmt); - s->chunk_size = avctx->block_align + avctx->channels * (s->out_bps == 2); + s->chunk_size = avctx->block_align + channels * (s->out_bps == 2); av_log(avctx, AV_LOG_DEBUG, "%d channels, %d bits/sample, " "block align = %d, sample rate = %d\n", - avctx->channels, avctx->bits_per_coded_sample, avctx->block_align, + channels, avctx->bits_per_coded_sample, avctx->block_align, avctx->sample_rate); return 0; @@ -143,6 +143,7 @@ static int vmdaudio_decode_frame(AVCodecContext *avctx, void *data, int ret; uint8_t *output_samples_u8; int16_t *output_samples_s16; + int channels = avctx->ch_layout.nb_channels; if (buf_size < 16) { av_log(avctx, AV_LOG_WARNING, "skipping small junk packet\n"); @@ -186,7 +187,7 @@ static int vmdaudio_decode_frame(AVCodecContext *avctx, void *data, /* get output buffer */ frame->nb_samples = ((silent_chunks + audio_chunks) * avctx->block_align) / - avctx->channels; + avctx->ch_layout.nb_channels; if ((ret = ff_get_buffer(avctx, frame, 0)) < 0) return ret; output_samples_u8 = frame->data[0]; @@ -195,7 +196,7 @@ static int vmdaudio_decode_frame(AVCodecContext *avctx, void *data, /* decode silent chunks */ if (silent_chunks > 0) { int silent_size = avctx->block_align * silent_chunks; - av_assert0(avctx->block_align * silent_chunks <= frame->nb_samples * avctx->channels); + av_assert0(avctx->block_align * silent_chunks <= frame->nb_samples * avctx->ch_layout.nb_channels); if (s->out_bps == 2) { memset(output_samples_s16, 0x00, silent_size * 2); @@ -209,11 +210,10 @@ static int vmdaudio_decode_frame(AVCodecContext *avctx, void *data, /* decode audio chunks */ if (audio_chunks > 0) { buf_end = buf + buf_size; - av_assert0((buf_size & (avctx->channels > 1)) == 0); + av_assert0((buf_size & (avctx->ch_layout.nb_channels > 1)) == 0); while (buf_end - buf >= s->chunk_size) { if (s->out_bps == 2) { - decode_audio_s16(output_samples_s16, buf, s->chunk_size, - avctx->channels); + decode_audio_s16(output_samples_s16, buf, s->chunk_size, channels); output_samples_s16 += avctx->block_align; } else { memcpy(output_samples_u8, buf, s->chunk_size); From patchwork Thu Jan 13 02:07:12 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33528 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp46429iog; Wed, 12 Jan 2022 18:51:13 -0800 (PST) X-Google-Smtp-Source: ABdhPJzYavoWVSgAfYW/IYMtvWOAu1TXwcW8QsKxG0gxOB/oZBdt6kq83irBOYBi79qpjKiM9cKY X-Received: by 2002:a50:e79b:: with SMTP id b27mr2394225edn.336.1642042272838; Wed, 12 Jan 2022 18:51:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642042272; cv=none; d=google.com; s=arc-20160816; b=0blEg/VinAWmfRi1imv7Qn05Kqa0JQHptvQR4wBsNMkpQOlL2N4+s3pcO7lEpfrvP+ F/yTpJXeYZU3uDWFDV2SaicQMKlp4081u6qkXBmpkw9hvX1mZQifrJVvtNf1XFqZqEy9 VAGN5lF/uQ/319x6TNdowR5H8SI9K2Evpzscadxbmyjig7CITOiN9zQSRIvdfz3dXq+t RrwOAKw7nynQ55abM7174Tk4rc96jD1m7Tl+sF8XxTZL/7O8zsB1Zb3PcYpLuCO08DPQ 70saurPki8LFr+6kGE4bmW2GEc4z1/CHks/aLQd6qax65ESnVtsc1pHbtethVqo7Iu2S hyIA== 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=FuZFzpZ+38x2nELLlIyH4jB3gNTQrjVjdVp10GcLv4o=; b=UmUcpVNFKA0uN85zzFEWMfsRO1LpjGrqZ0R6SnSpyudCKLYz6rHz4mVtLyQ6J7uTzK JDHStXXY50uMdpNVhukVMr6u3nDeRcqaRuVpAeddmn28h0lWUvpwoVj8Hj5++f42oANW VP+agnLjiKvAyHVQhDCZ7nv0KtcpNEb7XtbTC0QYziQQOeCOuLAPyMGI7tZxxojK3Grv HE0bCD3HyEc+IsrbhpSK0+UpvpDBuBokvx+amlRkRdJ0acUkmlrom0LlhTq3moqOfJsm jFjkqRmgaHMQ5+HUzpL615Eu+RHfEb9phjLUFzKF/ATT/PnQaRExsESmcSDx+EqY2jh7 xy6A== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=WyUwaE+c; 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 l13si814406eda.153.2022.01.12.18.51.12; Wed, 12 Jan 2022 18:51:12 -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=WyUwaE+c; 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 D297C68BA5A; Thu, 13 Jan 2022 04:08:07 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f182.google.com (mail-qt1-f182.google.com [209.85.160.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F1E8B68BA3A for ; Thu, 13 Jan 2022 04:08:04 +0200 (EET) Received: by mail-qt1-f182.google.com with SMTP id b14so2447085qtb.12 for ; Wed, 12 Jan 2022 18:08:04 -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=9LZfA+u5/p+T6BEVAbw2TfiQrp3VswisD7c/RutLAjs=; b=WyUwaE+cyPCyvEY/Fy+gK6nHfg/JtUkT9cUk3ahMzcD4aNEC4U2wNadER+NAC6yUaG r1uo6hX0LbWKOBY+Xg3C/ktI2q20lg+2X1AeaAVw7+YyodgrZmO1iNLnFoXW97m4oFCH 3O8np/MjE+lY5GlJ/qlvFDjzlinZNtfbU4U3gTn30Vxd8M6puZ/fYZEyo4VrD6YMMHK/ wWe5H0fz0JmTX/zZ+WyzsOpzEUFMv+J+30+D7JLlgOcNCNhbxoRq6smB1R9z622+RXCe nySzxlelWOsDcwtaZ/bOqG2g8synTnUb3QkPGJF+GOkEcjZcZTEYItYyFod0m36W5fJN eYsA== 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=9LZfA+u5/p+T6BEVAbw2TfiQrp3VswisD7c/RutLAjs=; b=LOQyRToqlMINka55iOb7yhx/QzTxx5jbG4wRAUfe39mvHtlqYC+Ne4uvlXEN91OGnM Ey5emAbsII0wGO/i/H2YkoWABmNKoNlcBIBUoG5ZgGn77iLApCbtIU01DqNE6pchpPHG Rm+92gVV1ff9rMBc449dxYU73cYi7Owa0PT7yRHEGiCBsqCnENqXYVambmtC8OTWcFkX Nj7PrcDgScPUaeezadyD9TiK9d0WNF7pqOug+a0lj8QkvWdcba3NYS7nSZltVESZ1VV2 AXgROCofSwo9e/qtU8IInVstPz1d1211YVA9SN6KTPbI/noNIMwA9dXcwCKG5JbYl6gx R+Qg== X-Gm-Message-State: AOAM533asX17g3GT8KNnzwh4mif5ScyrWUOdqfHjnUf/60IB3gihPD4n fUlyUUnmWfO2aE3Ncm92368RpQYNzTA= X-Received: by 2002:ac8:5ad0:: with SMTP id d16mr1972184qtd.557.1642039683433; Wed, 12 Jan 2022 18:08:03 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id a16sm1085946qta.13.2022.01.12.18.08.02 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:08:03 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:07:12 -0300 Message-Id: <20220113020713.801-29-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 268/281] vorbis: 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: z+7ShbMGu4fI From: Anton Khirnov Signed-off-by: James Almer --- libavcodec/vorbisdec.c | 27 +++++++++++++++++---------- libavcodec/vorbisenc.c | 7 ++++--- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/libavcodec/vorbisdec.c b/libavcodec/vorbisdec.c index 6e07bc5a8a..d961dc37b9 100644 --- a/libavcodec/vorbisdec.c +++ b/libavcodec/vorbisdec.c @@ -1077,12 +1077,14 @@ static av_cold int vorbis_decode_init(AVCodecContext *avctx) return ret; } - if (vc->audio_channels > 8) - avctx->channel_layout = 0; - else - avctx->channel_layout = ff_vorbis_channel_layouts[vc->audio_channels - 1]; + av_channel_layout_uninit(&avctx->ch_layout); + if (vc->audio_channels > 8) { + avctx->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + avctx->ch_layout.nb_channels = vc->audio_channels; + } else { + av_channel_layout_copy(&avctx->ch_layout, &ff_vorbis_ch_layouts[vc->audio_channels - 1]); + } - avctx->channels = vc->audio_channels; avctx->sample_rate = vc->audio_samplerate; return 0; @@ -1788,12 +1790,14 @@ static int vorbis_decode_frame(AVCodecContext *avctx, void *data, return ret; } - if (vc->audio_channels > 8) - avctx->channel_layout = 0; - else - avctx->channel_layout = ff_vorbis_channel_layouts[vc->audio_channels - 1]; + av_channel_layout_uninit(&avctx->ch_layout); + if (vc->audio_channels > 8) { + avctx->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + avctx->ch_layout.nb_channels = vc->audio_channels; + } else { + av_channel_layout_copy(&avctx->ch_layout, &ff_vorbis_ch_layouts[vc->audio_channels - 1]); + } - avctx->channels = vc->audio_channels; avctx->sample_rate = vc->audio_samplerate; return buf_size; } @@ -1892,7 +1896,10 @@ const AVCodec ff_vorbis_decoder = { .flush = vorbis_decode_flush, .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, +#if FF_API_OLD_CHANNEL_LAYOUT .channel_layouts = ff_vorbis_channel_layouts, +#endif + .ch_layouts = ff_vorbis_ch_layouts, .sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_NONE }, }; diff --git a/libavcodec/vorbisenc.c b/libavcodec/vorbisenc.c index 858c6ac6dd..30b75ab3f6 100644 --- a/libavcodec/vorbisenc.c +++ b/libavcodec/vorbisenc.c @@ -276,7 +276,7 @@ static int create_vorbis_context(vorbis_enc_context *venc, const uint8_t *clens, *quant; int i, book, ret; - venc->channels = avctx->channels; + venc->channels = avctx->ch_layout.nb_channels; venc->sample_rate = avctx->sample_rate; venc->log2_blocksize[0] = venc->log2_blocksize[1] = 11; @@ -1038,7 +1038,8 @@ static AVFrame *spawn_empty_frame(AVCodecContext *avctx, int channels) f->format = avctx->sample_fmt; f->nb_samples = avctx->frame_size; - f->channel_layout = avctx->channel_layout; + f->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + f->ch_layout.nb_channels = channels; if (av_frame_get_buffer(f, 4)) { av_frame_free(&f); @@ -1267,7 +1268,7 @@ static av_cold int vorbis_encode_init(AVCodecContext *avctx) vorbis_enc_context *venc = avctx->priv_data; int ret; - if (avctx->channels != 2) { + if (avctx->ch_layout.nb_channels != 2) { av_log(avctx, AV_LOG_ERROR, "Current FFmpeg Vorbis encoder only supports 2 channels.\n"); return -1; } From patchwork Thu Jan 13 02:07: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: 33529 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp46500iog; Wed, 12 Jan 2022 18:51:24 -0800 (PST) X-Google-Smtp-Source: ABdhPJyfn8274n7dvOYq3HuHqeAxudxWmZEN+8TnaOwhVL1d3Sc2PlqEUj3ouI9N95FyuA6oRyaD X-Received: by 2002:a17:906:43c9:: with SMTP id j9mr2031676ejn.136.1642042284686; Wed, 12 Jan 2022 18:51:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642042284; cv=none; d=google.com; s=arc-20160816; b=ugP9lu6t91DXSjER/NmYDYotWjEI/cibLZupKLiwVJTLh6/vJlK5hj/A1KYQL4QGmJ f4zzVprpXhdmQEa25IZ49C0x1G2jacpLd6vweMruLBvyteLutyXiwE/JvrqK/HtE8G4k 9Gs3oYKbjCjQ3MNsmjBRRu2MQociXuuvc0gMN4BqaK5Z35eyK0Or0JyeJEg8+LaQvD0i 3Gn1u3upXzswUXlLRazE8zYTQo7bDVqNgxmzQzQxYo9xKCEVbVO4C493b22wGgLgj2sj Zw3pNh1GpyCHe+9eDidPNSJ5WCQX9T8HwMqjDXATRgU4AS5rvZkEix1n/d8CQ/OzZxox J70A== 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=eaP2fDWNvZIf4YDhU6+5zLb9f3O43weW167X08p8AT4=; b=QoPqg+cR6miNGUarMERTcddR985nIhwEYWRn6Dj6OavWZH4S9xOz96pGJ+nZAX7RQh Wy08nKvq2Szyrko5mw7HvQiFCjubi+zjhkNx6cmYxF/B1qnL7BKT5yJEzcw/X1X50kYs dTq90OEyHWfxdOz4DrBSgxBVN3TPBwM3U1ZPbHhIbfovW5o2LiQMF66H9fXo/v6stQz2 xXc2HLTq64oUuOFFxSl6DEaJSrHLU2RQYXjqGv7AXo9bjjrUE5sQUyvYjQD6+XnIQzQt La3KMG/pgUf0dgRh2l7LcVRI6/fi9sdwKagcU2nkgZeY8D//0vCG2FTKu0uoxtn61EWQ KOnA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=DomrDXhK; 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 gc22si312829ejc.456.2022.01.12.18.51.24; Wed, 12 Jan 2022 18:51:24 -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=DomrDXhK; 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 A983868BA52; Thu, 13 Jan 2022 04:08:08 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f175.google.com (mail-qt1-f175.google.com [209.85.160.175]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 306C768BA3B for ; Thu, 13 Jan 2022 04:08:06 +0200 (EET) Received: by mail-qt1-f175.google.com with SMTP id v7so5341531qtw.13 for ; Wed, 12 Jan 2022 18:08:06 -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=A1lBuLwAChNLmX0KrzxvL+0h0Rjvk6pN70Jl4ILLMNk=; b=DomrDXhKj1fiysGzJx81K3r1kL7I2gf5tUXlB8ZT6piOfX5ZUtc5Zf1Nm6mbyS7Th6 Qcc81G01jkwy6k3HDVHvHHLV1Ro8LTQL78ckLkBzluDl6tJ81FHNtGW9b0KSbTmPib4u Y30hom373KOgymH+CoPNNgy607uE3ba/tHYGhyCz518kL9rGp8ZuGyTzh27RTyAvxVlG /S+oJvrQMxcVJa2mSxdCN95+5hv5xBKqogPlOJyr+lHPPT4PVm5+fZi1iV+3MxuH5naW WFn6/IYX83rbZ6VN1FWLFH0WKQXPYuiBS0bHr98E58zNPzFXGqjQ3Lney1VKRydgigPY GRFQ== 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=A1lBuLwAChNLmX0KrzxvL+0h0Rjvk6pN70Jl4ILLMNk=; b=vZvjAYS+IAU8zdy7eUrgCjRJVbUToz8aUoOSnHPQWkKN5A4K3ifMdxAATrln+PcyPt Y4sIP4gVWGlI0/LcsCu3wuvt3RrJQZ4Rc6AfNV+hSmDZW6hJh/YeaMRsXdYLbnUmKKOy PtbofJgve5rgaTbU3+qWkQoS+fTV54vGhocmFXh7wdyaMEJez1kOWabMHOaagUi10TPT MGUN0+uEH7x0OBNcUPBxmpVElXcm5GWGwp6w2NkZRjnu4P3EMdBi8czKdpdEKAr8FdQK y38VCnl32usr6AVlCIKppdgchCLK7yWs6Y0RAZT3MJVh999WdkCWAkJV73thYlR+p7Qi 62KA== X-Gm-Message-State: AOAM532futJuWzJ0BtvaLRxqCIx1ofrpFebGDzF0Jcv5bSG1VMPLNz7H mcSgKFkEmCUvLTGjNttoQsdFxMoYn8c= X-Received: by 2002:a05:622a:58b:: with SMTP id c11mr1968502qtb.470.1642039684644; Wed, 12 Jan 2022 18:08:04 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id a16sm1085946qta.13.2022.01.12.18.08.03 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:08:04 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:07:13 -0300 Message-Id: <20220113020713.801-30-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 269/281] wavpack: 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: Nsn/Tk6pgPpM From: Anton Khirnov Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavcodec/wavpack.c | 51 ++++++++++++++++++----------------------- libavcodec/wavpackenc.c | 29 ++++++++++++----------- 2 files changed, 37 insertions(+), 43 deletions(-) diff --git a/libavcodec/wavpack.c b/libavcodec/wavpack.c index 6b2ec19bf1..e0350ce732 100644 --- a/libavcodec/wavpack.c +++ b/libavcodec/wavpack.c @@ -1412,25 +1412,23 @@ static int wavpack_decode_block(AVCodecContext *avctx, int block_no, size = bytestream2_get_byte(&gb); chan |= (bytestream2_get_byte(&gb) & 0xF) << 8; chan += 1; - if (avctx->channels != chan) + if (avctx->ch_layout.nb_channels != chan) av_log(avctx, AV_LOG_WARNING, "%i channels signalled" - " instead of %i.\n", chan, avctx->channels); + " instead of %i.\n", chan, avctx->ch_layout.nb_channels); chmask = bytestream2_get_le24(&gb); break; case 5: size = bytestream2_get_byte(&gb); chan |= (bytestream2_get_byte(&gb) & 0xF) << 8; chan += 1; - if (avctx->channels != chan) + if (avctx->ch_layout.nb_channels != chan) av_log(avctx, AV_LOG_WARNING, "%i channels signalled" - " instead of %i.\n", chan, avctx->channels); + " instead of %i.\n", chan, avctx->ch_layout.nb_channels); chmask = bytestream2_get_le32(&gb); break; default: av_log(avctx, AV_LOG_ERROR, "Invalid channel info size %d\n", size); - chan = avctx->channels; - chmask = avctx->channel_layout; } break; case WP_ID_SAMPLE_RATE: @@ -1494,8 +1492,7 @@ static int wavpack_decode_block(AVCodecContext *avctx, int block_no, } if (!wc->ch_offset) { - int new_channels = avctx->channels; - uint64_t new_chmask = avctx->channel_layout; + AVChannelLayout new_ch_layout = { 0 }; int new_samplerate; int sr = (s->frame_flags >> 23) & 0xf; if (sr == 0xf) { @@ -1512,36 +1509,32 @@ static int wavpack_decode_block(AVCodecContext *avctx, int block_no, new_samplerate *= rate_x; if (multiblock) { - if (chan) - new_channels = chan; - if (chmask) - new_chmask = chmask; + if (chmask) { + av_channel_layout_from_mask(&new_ch_layout, chmask); + if (chan && new_ch_layout.nb_channels != chan) { + av_log(avctx, AV_LOG_ERROR, "Channel mask does not match the channel count\n"); + return AVERROR_INVALIDDATA; + } + } else + av_channel_layout_copy(&new_ch_layout, &avctx->ch_layout); } else { - new_channels = s->stereo ? 2 : 1; - new_chmask = s->stereo ? AV_CH_LAYOUT_STEREO : - AV_CH_LAYOUT_MONO; - } - - if (new_chmask && - av_get_channel_layout_nb_channels(new_chmask) != new_channels) { - av_log(avctx, AV_LOG_ERROR, "Channel mask does not match the channel count\n"); - return AVERROR_INVALIDDATA; + av_channel_layout_default(&new_ch_layout, s->stereo + 1); } /* clear DSD state if stream properties change */ - if (new_channels != wc->dsd_channels || - new_chmask != avctx->channel_layout || + if (new_ch_layout.nb_channels != wc->dsd_channels || + av_channel_layout_compare(&new_ch_layout, &avctx->ch_layout) || new_samplerate != avctx->sample_rate || !!got_dsd != !!wc->dsdctx) { - ret = wv_dsd_reset(wc, got_dsd ? new_channels : 0); + ret = wv_dsd_reset(wc, got_dsd ? new_ch_layout.nb_channels : 0); if (ret < 0) { av_log(avctx, AV_LOG_ERROR, "Error reinitializing the DSD context\n"); return ret; } ff_thread_release_buffer(avctx, &wc->curr_frame); } - avctx->channels = new_channels; - avctx->channel_layout = new_chmask; + av_channel_layout_uninit(&avctx->ch_layout); + av_channel_layout_copy(&avctx->ch_layout, &new_ch_layout); avctx->sample_rate = new_samplerate; avctx->sample_fmt = sample_fmt; avctx->bits_per_raw_sample = orig_bpp; @@ -1558,7 +1551,7 @@ static int wavpack_decode_block(AVCodecContext *avctx, int block_no, ff_thread_finish_setup(avctx); } - if (wc->ch_offset + s->stereo >= avctx->channels) { + if (wc->ch_offset + s->stereo >= avctx->ch_layout.nb_channels) { av_log(avctx, AV_LOG_WARNING, "Too many channels coded in a packet.\n"); return ((avctx->err_recognition & AV_EF_EXPLODE) || !wc->ch_offset) ? AVERROR_INVALIDDATA : 0; } @@ -1668,7 +1661,7 @@ static int wavpack_decode_frame(AVCodecContext *avctx, void *data, buf_size -= frame_size; } - if (s->ch_offset != avctx->channels) { + if (s->ch_offset != avctx->ch_layout.nb_channels) { av_log(avctx, AV_LOG_ERROR, "Not enough channels coded in a packet.\n"); ret = AVERROR_INVALIDDATA; goto error; @@ -1678,7 +1671,7 @@ static int wavpack_decode_frame(AVCodecContext *avctx, void *data, ff_thread_release_buffer(avctx, &s->prev_frame); if (s->modulation == MODULATION_DSD) - avctx->execute2(avctx, dsd_channel, s->frame, NULL, avctx->channels); + avctx->execute2(avctx, dsd_channel, s->frame, NULL, avctx->ch_layout.nb_channels); ff_thread_report_progress(&s->curr_frame, INT_MAX, 0); diff --git a/libavcodec/wavpackenc.c b/libavcodec/wavpackenc.c index dc4f4e303b..bc1049db0a 100644 --- a/libavcodec/wavpackenc.c +++ b/libavcodec/wavpackenc.c @@ -130,8 +130,8 @@ static av_cold int wavpack_encode_init(AVCodecContext *avctx) s->avctx = avctx; - if (avctx->channels > 255) { - av_log(avctx, AV_LOG_ERROR, "Invalid channel count: %d\n", avctx->channels); + if (avctx->ch_layout.nb_channels > 255) { + av_log(avctx, AV_LOG_ERROR, "Invalid channel count: %d\n", avctx->ch_layout.nb_channels); return AVERROR(EINVAL); } @@ -142,10 +142,10 @@ static av_cold int wavpack_encode_init(AVCodecContext *avctx) else block_samples = avctx->sample_rate; - while (block_samples * avctx->channels > WV_MAX_SAMPLES) + while (block_samples * avctx->ch_layout.nb_channels > WV_MAX_SAMPLES) block_samples /= 2; - while (block_samples * avctx->channels < 40000) + while (block_samples * avctx->ch_layout.nb_channels < 40000) block_samples *= 2; avctx->frame_size = block_samples; } else if (avctx->frame_size && (avctx->frame_size < 128 || @@ -2572,7 +2572,7 @@ static int wavpack_encode_block(WavPackEncodeContext *s, s->ch_offset += 1 + !(s->flags & WV_MONO); - if (s->ch_offset == s->avctx->channels) + if (s->ch_offset == s->avctx->ch_layout.nb_channels) s->flags |= WV_FINAL_BLOCK; bytestream2_init_writer(&pb, out, out_size); @@ -2587,11 +2587,12 @@ static int wavpack_encode_block(WavPackEncodeContext *s, bytestream2_put_le32(&pb, crc); if (s->flags & WV_INITIAL_BLOCK && - s->avctx->channel_layout != AV_CH_LAYOUT_MONO && - s->avctx->channel_layout != AV_CH_LAYOUT_STEREO) { + s->avctx->ch_layout.order == AV_CHANNEL_ORDER_NATIVE && + s->avctx->ch_layout.u.mask != AV_CH_LAYOUT_MONO && + s->avctx->ch_layout.u.mask != AV_CH_LAYOUT_STEREO) { put_metadata_block(&pb, WP_ID_CHANINFO, 5); - bytestream2_put_byte(&pb, s->avctx->channels); - bytestream2_put_le32(&pb, s->avctx->channel_layout); + bytestream2_put_byte(&pb, s->avctx->ch_layout.nb_channels); + bytestream2_put_le32(&pb, s->avctx->ch_layout.u.mask); bytestream2_put_byte(&pb, 0); } @@ -2862,20 +2863,20 @@ static int wavpack_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, sizeof(int32_t) * s->block_samples); if (!s->samples[0]) return AVERROR(ENOMEM); - if (avctx->channels > 1) { + if (avctx->ch_layout.nb_channels > 1) { av_fast_padded_malloc(&s->samples[1], &s->samples_size[1], sizeof(int32_t) * s->block_samples); if (!s->samples[1]) return AVERROR(ENOMEM); } - buf_size = s->block_samples * avctx->channels * 8 - + 200 * avctx->channels /* for headers */; + buf_size = s->block_samples * avctx->ch_layout.nb_channels * 8 + + 200 * avctx->ch_layout.nb_channels /* for headers */; if ((ret = ff_alloc_packet(avctx, avpkt, buf_size)) < 0) return ret; buf = avpkt->data; - for (s->ch_offset = 0; s->ch_offset < avctx->channels;) { + for (s->ch_offset = 0; s->ch_offset < avctx->ch_layout.nb_channels;) { set_samplerate(s); switch (s->avctx->sample_fmt) { @@ -2885,7 +2886,7 @@ static int wavpack_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, } fill_buffer(s, frame->extended_data[s->ch_offset], s->samples[0], s->block_samples); - if (avctx->channels - s->ch_offset == 1) { + if (avctx->ch_layout.nb_channels - s->ch_offset == 1) { s->flags |= WV_MONO; } else { s->flags |= WV_CROSS_DECORR; From patchwork Thu Jan 13 02:09:02 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33530 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp46603iog; Wed, 12 Jan 2022 18:51:37 -0800 (PST) X-Google-Smtp-Source: ABdhPJymVL/G9SbmBNr9pDlmjP14MJ60QD0xpP3TzWhuSJC7zag5bBAuSgGqqrAhTWvDEk7cUMIb X-Received: by 2002:a17:906:a42:: with SMTP id x2mr2131437ejf.125.1642042297043; Wed, 12 Jan 2022 18:51:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642042297; cv=none; d=google.com; s=arc-20160816; b=dWNmlFaPB6FksF/iLQmG3QhxzhUugdf/ppzK1Rbyu5wbJqp36x4NYfcJEn5uaQXGD+ TSg4X+QPT1d77bqEAIJiC0N2uxMcoqKvl01Uwt2IuJ7rRQIGrdtee4mCzvhhuJudMP1V 7wN08kGTX3AEJcH3VQHB7siHgJQhy/9amCuqXwfPuqvMNRTGCI2Iq8GGFeeIFfmoYbB2 GareKWXyFDvEzb8zNKhmRL7Iqtqn6ZWceGHKHUT7Yutio50Y+B1L9SJlovLrqldOpqBg 6Y0LeJNe55WEItovX47vfrTuVNUJ+aze3+og1F8O8Grj6mQShaKo/SfA455KuFclBWpA LF4w== 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=+VZerDVAuTarL/Sh2aZeTl8btgJFu52174Lm846A4Uw=; b=iz/k/USswbdBDI3Ispwlovqpt0qkdMpiy+0bVLm9zbkaoTVE8tRieAw4PJeXkTDnVu WEwX36p74jgX5zFUxpo+33BqrYGJWHrK596o+A5jTVeFJz1yHASoP5V7r1f3dzUZuCor zneLns1PIAZrW/xln+9b/jGibQsnwiSDsIO3negVarZcd/oufIcCLdCV4CSsS9APHKjJ DOn8s1C+3zNEF/x/GGTirugWqGjlrIFnFvwMUxvI2l/MzRIk3pgPyLNeknJJa4nMnu29 7Hvy8l6mnRkI4AwmC3DIoWhxeJGmON0z9y6x1mgHrBPXC1+lyMf4Z2iVlHkIO6HXP25j 3Eew== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b="G8AIV/gs"; 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 nb41si810638ejc.104.2022.01.12.18.51.36; Wed, 12 Jan 2022 18:51:37 -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="G8AIV/gs"; 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 F0A0A68BA76; Thu, 13 Jan 2022 04:09:34 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f170.google.com (mail-qk1-f170.google.com [209.85.222.170]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3814768BA6F for ; Thu, 13 Jan 2022 04:09:29 +0200 (EET) Received: by mail-qk1-f170.google.com with SMTP id h16so5630786qkp.3 for ; Wed, 12 Jan 2022 18:09:29 -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=VEcJ26BE1glOHtSHxpMe+e3FOEIRGkS3hLhdAHeBqMk=; b=G8AIV/gs7dc/LhwlZzr/N2YjBTHphjDVxACEWDdVSpbA4pFyOPoEJOlJrQ40FxGqaU w3gpINcdbH4K0VI9/mxVYYfrgxkBeQOQF7b8p5bz3pNdyBeJQmKfjWD4oLx4Y8IE2IbL ubSD9kYkMeU5Fka3OR4DHTlnq6pK5oPyq4ETldSCIxPr8b97AyG8IoU9DlLzKCBTntok DBwnS49EXe+y1J7iRn9db67dFQvdmsLgQGkDzQymCRNAKhEVBTuWTGzwAauhLWqjPYwn k11MoXc12cUb3Qd844yrG9aACDHY0BxaXhxAZAmlGXqmMeU5239uCEj4nITjbH4sIPAZ rQ2A== 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=VEcJ26BE1glOHtSHxpMe+e3FOEIRGkS3hLhdAHeBqMk=; b=r5pfJZOx77ZG+nwAq4kpVvjJCE2bS5hDuYFl0V4Tu9HCsAcd/T83UIroQX5/hGhExN vBkjxzRtkPiJFw7RAeOXvAp+oBUYbXKEAEM1NtkV5SoUMwEmibK62wF8PIIGCHHPwegs yc6lCBO0E87q9O4C97BbAOYeoAfNN5T7yjSVKjr7p4At3UsVph/ot/GBrzl8qXlOYIle +NUoASR7/nIGeFzSSXXbV6hR3t7rjV0qIez/ma0KhzHwLLym0LT8ZrA8j6bRdwASJCsu bOweRtAuB3Kymf7pY2fhr9EESRn7GzZ7Zotdyl5sVkubCPlr7aQJAyiOs2yR/D+HENLw rFtw== X-Gm-Message-State: AOAM531ZMxGvDYOA/YQMhgZkiQJu8kmK/Aj447rN4qJF+beL+49n4ueu s5KsnvV5Bpiq1FVv8mIx36eSAbuGjdk= X-Received: by 2002:a37:9ec9:: with SMTP id h192mr1872327qke.737.1642039767559; Wed, 12 Jan 2022 18:09:27 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u6sm1068031qko.83.2022.01.12.18.09.26 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:09:27 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:09:02 -0300 Message-Id: <20220113020913.870-1-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 270/281] wma: 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: LWhnPnSY/tTm From: Anton Khirnov Signed-off-by: James Almer --- libavcodec/wma.c | 11 ++++++----- libavcodec/wmadec.c | 29 +++++++++++++++-------------- libavcodec/wmaenc.c | 27 ++++++++++++++------------- libavcodec/wmalosslessdec.c | 13 +++++++------ libavcodec/wmaprodec.c | 30 ++++++++++++++++++++---------- libavcodec/wmavoice.c | 4 ++-- 6 files changed, 64 insertions(+), 50 deletions(-) diff --git a/libavcodec/wma.c b/libavcodec/wma.c index d9fda2dbfa..4cd60cc35e 100644 --- a/libavcodec/wma.c +++ b/libavcodec/wma.c @@ -79,6 +79,7 @@ static av_cold int init_coef_vlc(VLC *vlc, uint16_t **prun_table, av_cold int ff_wma_init(AVCodecContext *avctx, int flags2) { WMACodecContext *s = avctx->priv_data; + int channels = avctx->ch_layout.nb_channels; int i, ret; float bps1, high_freq; float bps; @@ -86,7 +87,7 @@ av_cold int ff_wma_init(AVCodecContext *avctx, int flags2) int coef_vlc_table; if (avctx->sample_rate <= 0 || avctx->sample_rate > 50000 || - avctx->channels <= 0 || avctx->channels > 2 || + channels <= 0 || channels > 2 || avctx->bit_rate <= 0) return -1; @@ -107,7 +108,7 @@ av_cold int ff_wma_init(AVCodecContext *avctx, int flags2) if (s->use_variable_block_len) { int nb_max, nb; nb = ((flags2 >> 3) & 3) + 1; - if ((avctx->bit_rate / avctx->channels) >= 32000) + if ((avctx->bit_rate / channels) >= 32000) nb += 2; nb_max = s->frame_len_bits - BLOCK_MIN_BITS; if (nb > nb_max) @@ -136,7 +137,7 @@ av_cold int ff_wma_init(AVCodecContext *avctx, int flags2) } bps = (float) avctx->bit_rate / - (float) (avctx->channels * avctx->sample_rate); + (float) (channels * avctx->sample_rate); s->byte_offset_bits = av_log2((int) (bps * s->frame_len / 8.0 + 0.5)) + 2; if (s->byte_offset_bits + 3 > MIN_CACHE_BITS) { av_log(avctx, AV_LOG_ERROR, "byte_offset_bits %d is too large\n", s->byte_offset_bits); @@ -146,7 +147,7 @@ av_cold int ff_wma_init(AVCodecContext *avctx, int flags2) /* compute high frequency value and choose if noise coding should * be activated */ bps1 = bps; - if (avctx->channels == 2) + if (channels == 2) bps1 = bps * 1.6; if (sample_rate1 == 44100) { if (bps1 >= 0.61) @@ -184,7 +185,7 @@ av_cold int ff_wma_init(AVCodecContext *avctx, int flags2) } ff_dlog(s->avctx, "flags2=0x%x\n", flags2); ff_dlog(s->avctx, "version=%d channels=%d sample_rate=%d bitrate=%"PRId64" block_align=%d\n", - s->version, avctx->channels, avctx->sample_rate, avctx->bit_rate, + s->version, channels, avctx->sample_rate, avctx->bit_rate, avctx->block_align); ff_dlog(s->avctx, "bps=%f bps1=%f high_freq=%f bitoffset=%d\n", bps, bps1, high_freq, s->byte_offset_bits); diff --git a/libavcodec/wmadec.c b/libavcodec/wmadec.c index 9955aaa7d6..8b0893c74e 100644 --- a/libavcodec/wmadec.c +++ b/libavcodec/wmadec.c @@ -439,6 +439,7 @@ static void wma_window(WMACodecContext *s, float *out) */ static int wma_decode_block(WMACodecContext *s) { + int channels = s->avctx->ch_layout.nb_channels; int n, v, a, ch, bsize; int coef_nb_bits, total_gain; int nb_coefs[MAX_CHANNELS]; @@ -504,10 +505,10 @@ static int wma_decode_block(WMACodecContext *s) return -1; } - if (s->avctx->channels == 2) + if (channels == 2) s->ms_stereo = get_bits1(&s->gb); v = 0; - for (ch = 0; ch < s->avctx->channels; ch++) { + for (ch = 0; ch < channels; ch++) { a = get_bits1(&s->gb); s->channel_coded[ch] = a; v |= a; @@ -538,12 +539,12 @@ static int wma_decode_block(WMACodecContext *s) /* compute number of coefficients */ n = s->coefs_end[bsize] - s->coefs_start; - for (ch = 0; ch < s->avctx->channels; ch++) + for (ch = 0; ch < channels; ch++) nb_coefs[ch] = n; /* complex coding */ if (s->use_noise_coding) { - for (ch = 0; ch < s->avctx->channels; ch++) { + for (ch = 0; ch < channels; ch++) { if (s->channel_coded[ch]) { int i, n, a; n = s->exponent_high_sizes[bsize]; @@ -556,7 +557,7 @@ static int wma_decode_block(WMACodecContext *s) } } } - for (ch = 0; ch < s->avctx->channels; ch++) { + for (ch = 0; ch < channels; ch++) { if (s->channel_coded[ch]) { int i, n, val; @@ -579,7 +580,7 @@ static int wma_decode_block(WMACodecContext *s) /* exponents can be reused in short blocks. */ if ((s->block_len_bits == s->frame_len_bits) || get_bits1(&s->gb)) { - for (ch = 0; ch < s->avctx->channels; ch++) { + for (ch = 0; ch < channels; ch++) { if (s->channel_coded[ch]) { if (s->use_exp_vlc) { if (decode_exp_vlc(s, ch) < 0) @@ -593,13 +594,13 @@ static int wma_decode_block(WMACodecContext *s) } } - for (ch = 0; ch < s->avctx->channels; ch++) { + for (ch = 0; ch < channels; ch++) { if (s->channel_coded[ch] && !s->exponents_initialized[ch]) return AVERROR_INVALIDDATA; } /* parse spectral coefficients : just RLE encoding */ - for (ch = 0; ch < s->avctx->channels; ch++) { + for (ch = 0; ch < channels; ch++) { if (s->channel_coded[ch]) { int tindex; WMACoef *ptr = &s->coefs1[ch][0]; @@ -616,7 +617,7 @@ static int wma_decode_block(WMACodecContext *s) if (ret < 0) return ret; } - if (s->version == 1 && s->avctx->channels >= 2) + if (s->version == 1 && channels >= 2) align_get_bits(&s->gb); } @@ -629,7 +630,7 @@ static int wma_decode_block(WMACodecContext *s) } /* finally compute the MDCT coefficients */ - for (ch = 0; ch < s->avctx->channels; ch++) { + for (ch = 0; ch < channels; ch++) { if (s->channel_coded[ch]) { WMACoef *coefs1; float *coefs, *exponents, mult, mult1, noise; @@ -730,7 +731,7 @@ static int wma_decode_block(WMACodecContext *s) } #ifdef TRACE - for (ch = 0; ch < s->avctx->channels; ch++) { + for (ch = 0; ch < channels; ch++) { if (s->channel_coded[ch]) { dump_floats(s, "exponents", 3, s->exponents[ch], s->block_len); dump_floats(s, "coefs", 1, s->coefs[ch], s->block_len); @@ -754,7 +755,7 @@ static int wma_decode_block(WMACodecContext *s) next: mdct = &s->mdct_ctx[bsize]; - for (ch = 0; ch < s->avctx->channels; ch++) { + for (ch = 0; ch < channels; ch++) { int n4, index; n4 = s->block_len / 2; @@ -799,7 +800,7 @@ static int wma_decode_frame(WMACodecContext *s, float **samples, break; } - for (ch = 0; ch < s->avctx->channels; ch++) { + for (ch = 0; ch < s->avctx->ch_layout.nb_channels; ch++) { /* copy current block to output */ memcpy(samples[ch] + samples_offset, s->frame_out[ch], s->frame_len * sizeof(*s->frame_out[ch])); @@ -838,7 +839,7 @@ static int wma_decode_superframe(AVCodecContext *avctx, void *data, if ((ret = ff_get_buffer(avctx, frame, 0)) < 0) return ret; - for (i = 0; i < s->avctx->channels; i++) + for (i = 0; i < s->avctx->ch_layout.nb_channels; i++) memcpy(frame->extended_data[i], &s->frame_out[i][0], frame->nb_samples * sizeof(s->frame_out[i][0])); diff --git a/libavcodec/wmaenc.c b/libavcodec/wmaenc.c index 66e3537cb0..4eeaefffba 100644 --- a/libavcodec/wmaenc.c +++ b/libavcodec/wmaenc.c @@ -38,10 +38,10 @@ static av_cold int encode_init(AVCodecContext *avctx) s->avctx = avctx; - if (avctx->channels > MAX_CHANNELS) { + if (avctx->ch_layout.nb_channels > MAX_CHANNELS) { av_log(avctx, AV_LOG_ERROR, "too many channels: got %i, need %i or fewer\n", - avctx->channels, MAX_CHANNELS); + avctx->ch_layout.nb_channels, MAX_CHANNELS); return AVERROR(EINVAL); } @@ -82,7 +82,7 @@ static av_cold int encode_init(AVCodecContext *avctx) s->use_exp_vlc = flags2 & 0x0001; s->use_bit_reservoir = flags2 & 0x0002; s->use_variable_block_len = flags2 & 0x0004; - if (avctx->channels == 2) + if (avctx->ch_layout.nb_channels == 2) s->ms_stereo = 1; if ((ret = ff_wma_init(avctx, flags2)) < 0) @@ -116,7 +116,7 @@ static int apply_window_and_mdct(AVCodecContext *avctx, const AVFrame *frame) int window_len = 1 << s->block_len_bits; float n = 2.0 * 32768.0 / window_len; - for (ch = 0; ch < avctx->channels; ch++) { + for (ch = 0; ch < avctx->ch_layout.nb_channels; ch++) { memcpy(s->output, s->frame_out[ch], window_len * sizeof(*s->output)); s->fdsp->vector_fmul_scalar(s->frame_out[ch], audio[ch], n, len); s->fdsp->vector_fmul_reverse(&s->output[window_len], s->frame_out[ch], @@ -186,6 +186,7 @@ static void encode_exp_vlc(WMACodecContext *s, int ch, const int *exp_param) static int encode_block(WMACodecContext *s, float (*src_coefs)[BLOCK_MAX_SIZE], int total_gain) { + int channels = s->avctx->ch_layout.nb_channels; int v, bsize, ch, coef_nb_bits, parse_exponents; float mdct_norm; int nb_coefs[MAX_CHANNELS]; @@ -213,7 +214,7 @@ static int encode_block(WMACodecContext *s, float (*src_coefs)[BLOCK_MAX_SIZE], // FIXME factor v = s->coefs_end[bsize] - s->coefs_start; - for (ch = 0; ch < s->avctx->channels; ch++) + for (ch = 0; ch < channels; ch++) nb_coefs[ch] = v; { int n4 = s->block_len / 2; @@ -222,17 +223,17 @@ static int encode_block(WMACodecContext *s, float (*src_coefs)[BLOCK_MAX_SIZE], mdct_norm *= sqrt(n4); } - if (s->avctx->channels == 2) + if (channels == 2) put_bits(&s->pb, 1, !!s->ms_stereo); - for (ch = 0; ch < s->avctx->channels; ch++) { + for (ch = 0; ch < channels; ch++) { // FIXME only set channel_coded when needed, instead of always s->channel_coded[ch] = 1; if (s->channel_coded[ch]) init_exp(s, ch, fixed_exp); } - for (ch = 0; ch < s->avctx->channels; ch++) { + for (ch = 0; ch < channels; ch++) { if (s->channel_coded[ch]) { WMACoef *coefs1; float *coefs, *exponents, mult; @@ -260,7 +261,7 @@ static int encode_block(WMACodecContext *s, float (*src_coefs)[BLOCK_MAX_SIZE], } v = 0; - for (ch = 0; ch < s->avctx->channels; ch++) { + for (ch = 0; ch < channels; ch++) { int a = s->channel_coded[ch]; put_bits(&s->pb, 1, a); v |= a; @@ -276,7 +277,7 @@ static int encode_block(WMACodecContext *s, float (*src_coefs)[BLOCK_MAX_SIZE], coef_nb_bits = ff_wma_total_gain_to_bits(total_gain); if (s->use_noise_coding) { - for (ch = 0; ch < s->avctx->channels; ch++) { + for (ch = 0; ch < channels; ch++) { if (s->channel_coded[ch]) { int i, n; n = s->exponent_high_sizes[bsize]; @@ -294,7 +295,7 @@ static int encode_block(WMACodecContext *s, float (*src_coefs)[BLOCK_MAX_SIZE], put_bits(&s->pb, 1, parse_exponents); if (parse_exponents) { - for (ch = 0; ch < s->avctx->channels; ch++) { + for (ch = 0; ch < channels; ch++) { if (s->channel_coded[ch]) { if (s->use_exp_vlc) { encode_exp_vlc(s, ch, fixed_exp); @@ -307,7 +308,7 @@ static int encode_block(WMACodecContext *s, float (*src_coefs)[BLOCK_MAX_SIZE], } else av_assert0(0); // FIXME not implemented - for (ch = 0; ch < s->avctx->channels; ch++) { + for (ch = 0; ch < channels; ch++) { if (s->channel_coded[ch]) { int run, tindex; WMACoef *ptr, *eptr; @@ -346,7 +347,7 @@ static int encode_block(WMACodecContext *s, float (*src_coefs)[BLOCK_MAX_SIZE], put_bits(&s->pb, s->coef_vlcs[tindex]->huffbits[1], s->coef_vlcs[tindex]->huffcodes[1]); } - if (s->version == 1 && s->avctx->channels >= 2) + if (s->version == 1 && channels >= 2) align_put_bits(&s->pb); } return 0; diff --git a/libavcodec/wmalosslessdec.c b/libavcodec/wmalosslessdec.c index 74c91f4f7e..cd05b22689 100644 --- a/libavcodec/wmalosslessdec.c +++ b/libavcodec/wmalosslessdec.c @@ -190,14 +190,14 @@ static av_cold int decode_init(AVCodecContext *avctx) return AVERROR(EINVAL); } - av_assert0(avctx->channels >= 0); - if (avctx->channels > WMALL_MAX_CHANNELS) { + av_assert0(avctx->ch_layout.nb_channels >= 0); + if (avctx->ch_layout.nb_channels > WMALL_MAX_CHANNELS) { avpriv_request_sample(avctx, "More than " AV_STRINGIFY(WMALL_MAX_CHANNELS) " channels"); return AVERROR_PATCHWELCOME; } - s->max_frame_size = MAX_FRAMESIZE * avctx->channels; + s->max_frame_size = MAX_FRAMESIZE * avctx->ch_layout.nb_channels; s->frame_data = av_mallocz(s->max_frame_size + AV_INPUT_BUFFER_PADDING_SIZE); if (!s->frame_data) return AVERROR(ENOMEM); @@ -244,7 +244,7 @@ static av_cold int decode_init(AVCodecContext *avctx) av_assert0(s->samples_per_frame <= WMALL_BLOCK_MAX_SIZE); /* init previous block len */ - for (i = 0; i < avctx->channels; i++) + for (i = 0; i < avctx->ch_layout.nb_channels; i++) s->channel[i].prev_block_len = s->samples_per_frame; /* subframe info */ @@ -263,7 +263,7 @@ static av_cold int decode_init(AVCodecContext *avctx) return AVERROR_INVALIDDATA; } - s->num_channels = avctx->channels; + s->num_channels = avctx->ch_layout.nb_channels; /* extract lfe channel position */ s->lfe_channel = -1; @@ -279,7 +279,8 @@ static av_cold int decode_init(AVCodecContext *avctx) if (!s->frame) return AVERROR(ENOMEM); - avctx->channel_layout = channel_mask; + av_channel_layout_uninit(&avctx->ch_layout); + av_channel_layout_from_mask(&avctx->ch_layout, channel_mask); return 0; } diff --git a/libavcodec/wmaprodec.c b/libavcodec/wmaprodec.c index ba7bddc51c..5c1d38eca5 100644 --- a/libavcodec/wmaprodec.c +++ b/libavcodec/wmaprodec.c @@ -384,7 +384,7 @@ static av_cold int decode_init(WMAProDecodeCtx *s, AVCodecContext *avctx, int nu s->decode_flags = 0x10d6; s->bits_per_sample = 16; channel_mask = 0; //AV_RL32(edata_ptr+2); /* not always in expected order */ - if ((num_stream+1) * XMA_MAX_CHANNELS_STREAM > avctx->channels) /* stream config is 2ch + 2ch + ... + 1/2ch */ + if ((num_stream+1) * XMA_MAX_CHANNELS_STREAM > avctx->ch_layout.nb_channels) /* stream config is 2ch + 2ch + ... + 1/2ch */ s->nb_channels = 1; else s->nb_channels = 2; @@ -402,7 +402,7 @@ static av_cold int decode_init(WMAProDecodeCtx *s, AVCodecContext *avctx, int nu s->decode_flags = AV_RL16(edata_ptr+14); channel_mask = AV_RL32(edata_ptr+2); s->bits_per_sample = AV_RL16(edata_ptr); - s->nb_channels = avctx->channels; + s->nb_channels = avctx->ch_layout.nb_channels; if (s->bits_per_sample > 32 || s->bits_per_sample < 1) { avpriv_request_sample(avctx, "bits per sample is %d", s->bits_per_sample); @@ -474,7 +474,7 @@ static av_cold int decode_init(WMAProDecodeCtx *s, AVCodecContext *avctx, int nu av_log(avctx, AV_LOG_ERROR, "invalid number of channels per XMA stream %d\n", s->nb_channels); return AVERROR_INVALIDDATA; - } else if (s->nb_channels > WMAPRO_MAX_CHANNELS || s->nb_channels > avctx->channels) { + } else if (s->nb_channels > WMAPRO_MAX_CHANNELS || s->nb_channels > avctx->ch_layout.nb_channels) { avpriv_request_sample(avctx, "More than %d channels", WMAPRO_MAX_CHANNELS); return AVERROR_PATCHWELCOME; @@ -575,8 +575,13 @@ static av_cold int decode_init(WMAProDecodeCtx *s, AVCodecContext *avctx, int nu if (avctx->debug & FF_DEBUG_BITSTREAM) dump_context(s); - if (avctx->codec_id == AV_CODEC_ID_WMAPRO) - avctx->channel_layout = channel_mask; + if (avctx->codec_id == AV_CODEC_ID_WMAPRO) { + if (channel_mask) { + av_channel_layout_uninit(&avctx->ch_layout); + av_channel_layout_from_mask(&avctx->ch_layout, channel_mask); + } else + avctx->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + } ff_thread_once(&init_static_once, decode_init_static); @@ -1775,7 +1780,7 @@ static int decode_packet(AVCodecContext *avctx, WMAProDecodeCtx *s, AVFrame *frame = data; if (s->trim_start < frame->nb_samples) { - for (int ch = 0; ch < frame->channels; ch++) + for (int ch = 0; ch < frame->ch_layout.nb_channels; ch++) frame->extended_data[ch] += s->trim_start * 4; frame->nb_samples -= s->trim_start; @@ -1952,13 +1957,18 @@ static av_cold int xma_decode_init(AVCodecContext *avctx) XMADecodeCtx *s = avctx->priv_data; int i, ret, start_channels = 0; - if (avctx->channels <= 0 || avctx->extradata_size == 0) + if (avctx->ch_layout.nb_channels <= 0 || avctx->extradata_size == 0) return AVERROR_INVALIDDATA; /* get stream config */ if (avctx->codec_id == AV_CODEC_ID_XMA2 && avctx->extradata_size == 34) { /* XMA2WAVEFORMATEX */ + unsigned int channel_mask = AV_RL32(avctx->extradata + 2); + if (channel_mask) { + av_channel_layout_uninit(&avctx->ch_layout); + av_channel_layout_from_mask(&avctx->ch_layout, channel_mask); + } else + avctx->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; s->num_streams = AV_RL16(avctx->extradata); - avctx->channel_layout = AV_RL32(avctx->extradata + 2); } else if (avctx->codec_id == AV_CODEC_ID_XMA2 && avctx->extradata_size >= 2) { /* XMA2WAVEFORMAT */ s->num_streams = avctx->extradata[1]; if (avctx->extradata_size != (32 + ((avctx->extradata[0]==3)?0:8) + 4*s->num_streams)) { @@ -1979,7 +1989,7 @@ static av_cold int xma_decode_init(AVCodecContext *avctx) } /* encoder supports up to 64 streams / 64*2 channels (would have to alloc arrays) */ - if (avctx->channels > XMA_MAX_CHANNELS || s->num_streams > XMA_MAX_STREAMS || + if (avctx->ch_layout.nb_channels > XMA_MAX_CHANNELS || s->num_streams > XMA_MAX_STREAMS || s->num_streams <= 0 ) { avpriv_request_sample(avctx, "More than %d channels in %d streams", XMA_MAX_CHANNELS, s->num_streams); @@ -1999,7 +2009,7 @@ static av_cold int xma_decode_init(AVCodecContext *avctx) s->start_channel[i] = start_channels; start_channels += s->xma[i].nb_channels; } - if (start_channels != avctx->channels) + if (start_channels != avctx->ch_layout.nb_channels) return AVERROR_INVALIDDATA; for (int i = 0; i < XMA_MAX_STREAMS; i++) { diff --git a/libavcodec/wmavoice.c b/libavcodec/wmavoice.c index e096b8029d..47fc0947c5 100644 --- a/libavcodec/wmavoice.c +++ b/libavcodec/wmavoice.c @@ -475,8 +475,8 @@ static av_cold int wmavoice_decode_init(AVCodecContext *ctx) 2 * (s->block_conv_table[1] - 2 * s->min_pitch_val); s->block_pitch_nbits = av_ceil_log2(s->block_pitch_range); - ctx->channels = 1; - ctx->channel_layout = AV_CH_LAYOUT_MONO; + av_channel_layout_uninit(&ctx->ch_layout); + ctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; ctx->sample_fmt = AV_SAMPLE_FMT_FLT; return 0; From patchwork Thu Jan 13 02:09:03 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33532 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp46781iog; Wed, 12 Jan 2022 18:52:03 -0800 (PST) X-Google-Smtp-Source: ABdhPJywNyMI+xP0gUXc6vuqVEEM6QUt76okFtYdQ1G9uiUZ3kaI9HIZwg25QOeH1gqLJM3u1z9T X-Received: by 2002:a05:6402:5107:: with SMTP id m7mr2343626edd.292.1642042323426; Wed, 12 Jan 2022 18:52:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642042323; cv=none; d=google.com; s=arc-20160816; b=DWJEF9iyI15kVJ9EjjxvsurREdANbGqbk5aQvexWJIrv4XW5DqY7E/lFeCLJQygYRk 5mQ2np99WyWpDIB8Go05gDmIFtnG+CzM2W5ZQzDtjIDkDMoaJOq34x/KU4Ck4zvlC/K/ hdx/3Y6udoXYOvgJV8fQJ88DzrgC+1+2ncj2rCrmQrbHiRvYcm1CAlD37SS9lmBMdPG2 NhI3js8+R1eCNLDP+mtYUyrzbAIyar5gigmr5HMDRqp1t+lwOFUiWiD2uTGtmu7dbd66 rpT2QY7XnOR7wjIbQu/WUFPrIdEgILS7Llo5sJY+6aE4H74oxhOqM884SRRM+jIRJoWc Oemg== 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=bRwojEUn4GxDc4RUSfvdPYoQswRd+eZ2/UDP8U1L5PU=; b=OS/fZiUEIGXizoHmQ6i8U/NDlkUyvZNO/C+onLOpYqOJ0CLv/c6OuP7fJI4ToAUHk5 mkJVpB7+B8igfEOunRGCzO+vHzR99xJI2WO22vroCjJhGMDjbyaAyehbRvRQPyYOlodJ YcO6OevQfN3uZPQs0bOIqAGuhTOvclKrnhTHStGqpDvnLjcRkirBnBERCVT9vkcolK0J jU3tcEaBtdnldD4tM6H3N7kWLQ5oUvyMS+WQdCILRKMMuhtrMlRb/98uPTADbhZd3eZB IcQeAzbH2ajIkEDim2ec9JvNwb98hOQ3ArY25n6es8B7NTygVSG02rBwugUiokoiC8rD TNMQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=Pk4a+6bv; 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 g9si529952ejh.228.2022.01.12.18.52.03; Wed, 12 Jan 2022 18:52:03 -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=Pk4a+6bv; 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 D8B0F68BA84; Thu, 13 Jan 2022 04:09:38 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f169.google.com (mail-qk1-f169.google.com [209.85.222.169]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 37D2768BA78 for ; Thu, 13 Jan 2022 04:09:30 +0200 (EET) Received: by mail-qk1-f169.google.com with SMTP id bl18so5599750qkb.5 for ; Wed, 12 Jan 2022 18:09:30 -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=oyW7VdXQE3HXmRFaNd64qaUuQw+78e/nr3OHX3CZcVo=; b=Pk4a+6bvIEaJx64zQMqmJpt9IxgdBiT2KF1TV04aqdZQL6JxyZOHRmaOaBEQkb0it1 r8cYbxG1atlhGcKtzKjNvYWRxEXfWm3FA2LvfgUvdNY1cGZIKdaR9w+3LFYE99BR015k CQdENgKWS0lcyzcELhs1j4OkfQNYS/xe2tcGm6WhxNMMkVxZz+tQ7AwZ8QtX67v+Pg5y 7OgSvvhZCbDfB8aN1eCQkQvdzP8aFeRaZDMalTkIAizdy25oGCTlVfQK6OgXfkWw0+AS VzTgEwJT20KrnyzRaXJn+NtCPzFh7Nqfl87H4gS75zCT8L+xWZ/VKPlzYl9C3a7jAIvU i5wA== 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=oyW7VdXQE3HXmRFaNd64qaUuQw+78e/nr3OHX3CZcVo=; b=dK+ur0aNHMVmX+8jbsi4mSiq46UTyn03/bmjbo9YATetjimceMjqNf+qVlGmX3dqzR hYAVVGl9Za/SUFe8qtCU3VdwsxjmHT8p3VB3hbwI0JlBVLwNHlOQ4ZnDZoI53T/Thouj l6n0t8WrTxyqT/NJj2RkLMJsanxWNwkmPxTrct1sxASZVjE+g28E+Z22WNAtB1+s4HXA FsUhZ+bdYgkQcGLEcG5TMrJk2KmBVaC3NO/bO3SPh6go0CHPBRybD8AFiy9EMmXZn+wu LSEm12WLDVW1RefG4xvtu5hWMg2Kp+LYTqsV5B9qq6BsjjN1OhbSmAIbqZXj6Qi3vC6x Ik5w== X-Gm-Message-State: AOAM531EcJIEt64jG//itYTyM3BCOE8xyzpzySyrnCtEjhVAuMlZBVRu LQkEgfEwDDCKcLAagmiZeU3zg6tzHsY= X-Received: by 2002:a05:620a:1a14:: with SMTP id bk20mr1881541qkb.394.1642039768866; Wed, 12 Jan 2022 18:09:28 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u6sm1068031qko.83.2022.01.12.18.09.27 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:09:28 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:09:03 -0300 Message-Id: <20220113020913.870-2-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 271/281] ws-snd1: 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: KnWNbciTB+MS From: Anton Khirnov Signed-off-by: Vittorio Giovara Signed-off-by: James Almer --- libavcodec/ws-snd1.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/ws-snd1.c b/libavcodec/ws-snd1.c index aa8cd0f5f9..cd16445935 100644 --- a/libavcodec/ws-snd1.c +++ b/libavcodec/ws-snd1.c @@ -43,8 +43,8 @@ static const int8_t ws_adpcm_4bit[] = { static av_cold int ws_snd_decode_init(AVCodecContext *avctx) { - avctx->channels = 1; - avctx->channel_layout = AV_CH_LAYOUT_MONO; + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; avctx->sample_fmt = AV_SAMPLE_FMT_U8; return 0; From patchwork Thu Jan 13 02:09:04 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33533 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp46877iog; Wed, 12 Jan 2022 18:52:16 -0800 (PST) X-Google-Smtp-Source: ABdhPJzyMhFYzOm9YWa41zHCtWY1H/DKrd/AglUm71MnVG/I6BKP6uX0LRxhfGQ9pPEUWucS8vTC X-Received: by 2002:a17:906:9a52:: with SMTP id aj18mr1861761ejc.511.1642042335917; Wed, 12 Jan 2022 18:52:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642042335; cv=none; d=google.com; s=arc-20160816; b=ITuyOmpljJ/ZEujQu6kfGjmjBafGrJnbD95gXVSHoZjlbFjfvGbZz7LxTder+7VJrR Pe6lkrTgwo1yztrXnzbXXgTdhUp7J+i0XmXdIJSQOV/8Z2nNqYhchqaC4sIm+xgaXmHg x+z7MY8v/F2DsAZ7BTHXNWuwMhueHV5zwmNuJ4SHBcsqA/wj/UQ6d1nOGVRhAry6UFKK 5/k74OJlroBxxNEE0gdAf05m36AHCwK6Om52OIUCmT5i0dRqpmi7t9PCTUu3xZluLU3h W24cN/G37foTdGGo/cnv5zcXaDyHF+swjCeAyp0NkmkS62CZewLUiEbYGJSsDNGO+VEY KnGw== 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=Db/Hu35x4Xnr1dNaQ9ge7Aow0AQaotwbEEUXOd0rX2w=; b=aYvCDdh0IH9R9x1hWaDaOJJWlaAhMWJTCd9GmDhxfCmyGAVXDY37AfYyXPxTrbhM8b L2W1BkDA+TsOucQ8rQ2w9XhJAoQGq3GtDl1R9kdBY5Q/aXvKeJZ63ZHQgbloOpFsblvm 8hgIFSgVbgVblzMrElIuYSjAbo0hU83mGxxGYdH6y98YKs7RptXs1yQFOL2MBH3t0R6l Ooepiwp8EwE5stSQqiprYBJXYeZXuaukYPg3nbs2V8G53BFoD3JLzOnzvYK6PGS9tRiT TGpiCQYEXTzyW5mCoJLUaIcUTvpWnh9D01vhT71RHGObVLtd0ECV/Qu2v15KvEiMzbYp DJLQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=ORf5pq1n; 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 dp22si824601ejc.266.2022.01.12.18.52.15; Wed, 12 Jan 2022 18:52:15 -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=ORf5pq1n; 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 CF77368BA95; Thu, 13 Jan 2022 04:09:39 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f171.google.com (mail-qt1-f171.google.com [209.85.160.171]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 952A968BA62 for ; Thu, 13 Jan 2022 04:09:31 +0200 (EET) Received: by mail-qt1-f171.google.com with SMTP id y10so5400236qtw.1 for ; Wed, 12 Jan 2022 18:09:31 -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=YR9oF/Dz2pIvicS/ui3zcSlYJlijVCfVyYCAQ78OrdI=; b=ORf5pq1nKE9besMjbRfHtuW8blRNeXZQy3pHvy9YOAcfUVG2dv5Nl6RpZCceUPrm+N +RfE3n+Dq380OE/Z8U83GhvV5gKH+jfJT18xAuAI7dSuFVo0LRGl2V5wqLqCqDteZNkQ laMNp2kFwCVNhaYB67YlEry8lnEfaMtTMwVtnGBtcFgh6JPg4GKtoPvFQ1o0uY4IAL1Z U2XkLY06qAJrZcgrizOr8bcveDurMvmdEhu4om+lOLOfcpa2/K+wk8d8aHgZ72RYRgJO 52FEPufVhLKmBrM+sQItYmPzcSrg08K27kNn/7ioCNJHcGIEAylvIamHvtrw34Mrx/pq 3sIQ== 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=YR9oF/Dz2pIvicS/ui3zcSlYJlijVCfVyYCAQ78OrdI=; b=wTySDhUqA/msQu54VlTo2U7W2c8o/9OiQcQsOgrzZiRO9sXypKDAls/J0npJKywHf7 Hjyo2ISa9DlIYJseOs2pjb5KgzE+Q/8XSwj0vhzBtgmXdGMTPJBPg/MnZLumzjzA9Wkn YkKZ6sWuuO7lepvM5fGkrO6ESEnRV75dVyen/1CgcclnKiSvErSNwX5DgwH82QiIJWgA vj/DGhn1H57Fb0yNqEARLoaqG2wdBYju5yCtymquQ8tNinhLsZVVyNzGMJqH895vaf9p SKUCYuwykB6EiU3zXJca4PDC+54kR8qxQRlL+fHs422lkvsWR7vYtWW63EL/CyOI1Xab YhSA== X-Gm-Message-State: AOAM530ao6usq7y15jwFBtFGn4T4/syZ39IlC9GRDz1cFbP8Ma8fxTHw uLHEV7qSoQKEyElZZttm9n0m4nb2KXo= X-Received: by 2002:a05:622a:552:: with SMTP id m18mr2127723qtx.50.1642039770093; Wed, 12 Jan 2022 18:09:30 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u6sm1068031qko.83.2022.01.12.18.09.29 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:09:29 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:09:04 -0300 Message-Id: <20220113020913.870-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 272/281] lavc: drop temporary compat wrappers for channel layout API change 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: 9ANw8xiLWfLZ From: Anton Khirnov Signed-off-by: James Almer --- libavcodec/aacdec_template.c | 7 ------- libavcodec/avcodec.c | 29 ----------------------------- libavcodec/dca_lbr.c | 7 ------- libavcodec/dcadec.c | 8 -------- libavcodec/decode.c | 20 -------------------- libavcodec/encode.c | 17 +---------------- 6 files changed, 1 insertion(+), 87 deletions(-) diff --git a/libavcodec/aacdec_template.c b/libavcodec/aacdec_template.c index 387a4acfce..349ecdefb3 100644 --- a/libavcodec/aacdec_template.c +++ b/libavcodec/aacdec_template.c @@ -592,13 +592,6 @@ FF_ENABLE_DEPRECATION_WARNINGS } av_channel_layout_copy(&avctx->ch_layout, &ac->oc[1].ch_layout); -#if FF_API_OLD_CHANNEL_LAYOUT -FF_DISABLE_DEPRECATION_WARNINGS - avctx->channels = avctx->ch_layout.nb_channels; - avctx->channel_layout = avctx->ch_layout.order == AV_CHANNEL_ORDER_NATIVE ? - avctx->ch_layout.u.mask : 0; -FF_ENABLE_DEPRECATION_WARNINGS -#endif ac->oc[1].status = oc_type; if (get_new_frame) { diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c index 0436a6d0bd..5b68e799ec 100644 --- a/libavcodec/avcodec.c +++ b/libavcodec/avcodec.c @@ -137,8 +137,6 @@ static int64_t get_bit_rate(AVCodecContext *ctx) int attribute_align_arg avcodec_open2(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options) { int ret = 0; - int orig_channels; - uint64_t orig_channel_layout; AVCodecInternal *avci; if (avcodec_is_open(avctx)) @@ -275,14 +273,6 @@ FF_DISABLE_DEPRECATION_WARNINGS avctx->ch_layout.nb_channels = avctx->channels; } } - - /* temporary compat wrapper for new-style callers and old-style codecs; - * to be removed once all the codecs have been converted */ - if (avctx->ch_layout.nb_channels) { - avctx->channels = avctx->ch_layout.nb_channels; - avctx->channel_layout = avctx->ch_layout.order == AV_CHANNEL_ORDER_NATIVE ? - avctx->ch_layout.u.mask : 0; - } FF_ENABLE_DEPRECATION_WARNINGS #endif @@ -345,13 +335,6 @@ FF_ENABLE_DEPRECATION_WARNINGS if (!HAVE_THREADS && !(codec->caps_internal & FF_CODEC_CAP_AUTO_THREADS)) avctx->thread_count = 1; -#if FF_API_OLD_CHANNEL_LAYOUT -FF_DISABLE_DEPRECATION_WARNINGS - orig_channels = avctx->channels; - orig_channel_layout = avctx->channel_layout; -FF_ENABLE_DEPRECATION_WARNINGS -#endif - if (!(avctx->active_thread_type & FF_THREAD_FRAME) || avci->frame_thread_encoder) { if (avctx->codec->init) { @@ -372,18 +355,6 @@ FF_ENABLE_DEPRECATION_WARNINGS #if FF_API_OLD_CHANNEL_LAYOUT FF_DISABLE_DEPRECATION_WARNINGS - /* decoder setting the old-style fields */ - if (avctx->channels != orig_channels || - avctx->channel_layout != orig_channel_layout) { - av_channel_layout_uninit(&avctx->ch_layout); - if (avctx->channel_layout) { - av_channel_layout_from_mask(&avctx->ch_layout, avctx->channel_layout); - } else { - avctx->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; - avctx->ch_layout.nb_channels = avctx->channels; - } - } - /* update the deprecated fields for old-style callers */ avctx->channels = avctx->ch_layout.nb_channels; avctx->channel_layout = avctx->ch_layout.order == AV_CHANNEL_ORDER_NATIVE ? diff --git a/libavcodec/dca_lbr.c b/libavcodec/dca_lbr.c index c11f2f7e18..527bc8b7c0 100644 --- a/libavcodec/dca_lbr.c +++ b/libavcodec/dca_lbr.c @@ -1744,13 +1744,6 @@ int ff_dca_lbr_filter_frame(DCALbrDecoder *s, AVFrame *frame) av_channel_layout_uninit(&avctx->ch_layout); av_channel_layout_from_mask(&avctx->ch_layout, channel_mask); -#if FF_API_OLD_CHANNEL_LAYOUT -FF_DISABLE_DEPRECATION_WARNINGS - avctx->channels = avctx->ch_layout.nb_channels; - avctx->channel_layout = avctx->ch_layout.order == AV_CHANNEL_ORDER_NATIVE ? - avctx->ch_layout.u.mask : 0; -FF_ENABLE_DEPRECATION_WARNINGS -#endif frame->nb_samples = 1024 << s->freq_range; if ((ret = ff_get_buffer(avctx, frame, 0)) < 0) diff --git a/libavcodec/dcadec.c b/libavcodec/dcadec.c index 239ed9ac91..9f40da20fc 100644 --- a/libavcodec/dcadec.c +++ b/libavcodec/dcadec.c @@ -78,14 +78,6 @@ int ff_dca_set_channel_layout(AVCodecContext *avctx, int *ch_remap, int dca_mask av_channel_layout_from_mask(&avctx->ch_layout, wav_mask); } -#if FF_API_OLD_CHANNEL_LAYOUT -FF_DISABLE_DEPRECATION_WARNINGS - avctx->channels = avctx->ch_layout.nb_channels; - avctx->channel_layout = avctx->ch_layout.order == AV_CHANNEL_ORDER_NATIVE ? - avctx->ch_layout.u.mask : 0; -FF_ENABLE_DEPRECATION_WARNINGS -#endif - return nchannels; } diff --git a/libavcodec/decode.c b/libavcodec/decode.c index 6381ec68e1..a076a8884f 100644 --- a/libavcodec/decode.c +++ b/libavcodec/decode.c @@ -1698,26 +1698,6 @@ int ff_get_buffer(AVCodecContext *avctx, AVFrame *frame, int flags) } else if (avctx->codec_type == AVMEDIA_TYPE_AUDIO) { #if FF_API_OLD_CHANNEL_LAYOUT FF_DISABLE_DEPRECATION_WARNINGS - /* temporary compat layer for decoders setting the old-style channel - * layout fields; shall be removed after all the decoders are converted - * to the new API */ - if ((avctx->channels > 0 && avctx->ch_layout.nb_channels != avctx->channels) || - (avctx->channel_layout && (avctx->ch_layout.order != AV_CHANNEL_ORDER_NATIVE || - avctx->ch_layout.u.mask != avctx->channel_layout))) { - av_channel_layout_uninit(&avctx->ch_layout); - if (avctx->channel_layout) { - if (av_popcount64(avctx->channel_layout) != avctx->channels) { - av_log(avctx, AV_LOG_ERROR, "Inconsistent channel layout/channels\n"); - ret = AVERROR(EINVAL); - goto fail; - } - av_channel_layout_from_mask(&avctx->ch_layout, avctx->channel_layout); - } else { - avctx->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; - avctx->ch_layout.nb_channels = avctx->channels; - } - } - /* compat layer for old-style get_buffer() implementations */ avctx->channels = avctx->ch_layout.nb_channels; avctx->channel_layout = (avctx->ch_layout.order == AV_CHANNEL_ORDER_NATIVE) ? diff --git a/libavcodec/encode.c b/libavcodec/encode.c index f9f8879b8e..47fa3ac4bf 100644 --- a/libavcodec/encode.c +++ b/libavcodec/encode.c @@ -486,24 +486,9 @@ int ff_encode_preinit(AVCodecContext *avctx) av_log(avctx, AV_LOG_ERROR, "Specified channel layout '%s' is not supported\n", buf); return AVERROR(EINVAL); } -FF_DISABLE_DEPRECATION_WARNINGS } #if FF_API_OLD_CHANNEL_LAYOUT - else if (avctx->codec->channel_layouts) { - if (!avctx->channel_layout) { - av_log(avctx, AV_LOG_WARNING, "Channel layout not specified\n"); - } else { - for (i = 0; avctx->codec->channel_layouts[i] != 0; i++) - if (avctx->channel_layout == avctx->codec->channel_layouts[i]) - break; - if (avctx->codec->channel_layouts[i] == 0) { - char buf[512]; - av_get_channel_layout_string(buf, sizeof(buf), -1, avctx->channel_layout); - av_log(avctx, AV_LOG_ERROR, "Specified channel layout '%s' is not supported\n", buf); - return AVERROR(EINVAL); - } - } - } +FF_DISABLE_DEPRECATION_WARNINGS if (avctx->channel_layout && avctx->channels) { int channels = av_get_channel_layout_nb_channels(avctx->channel_layout); if (channels != avctx->channels) { From patchwork Thu Jan 13 02:09: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: 33534 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp46980iog; Wed, 12 Jan 2022 18:52:28 -0800 (PST) X-Google-Smtp-Source: ABdhPJwxerGQbvRm2E9ShfE8oG4DW8HLsqTC+mdleVyiSyKIEdXSCRdfFX+zidS6NY1UREraLkBK X-Received: by 2002:a17:906:3942:: with SMTP id g2mr2017356eje.160.1642042348476; Wed, 12 Jan 2022 18:52:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642042348; cv=none; d=google.com; s=arc-20160816; b=PTe6abhV8I8NPzpf8vGcCQkZVJmxwlenhiC/FQ3CB18th6Jl8mf8npNgsxUPL1bu0K S+EqqXE5VOHzfsqw4a89HdYaKZ+DuE77x6DmxtX+ITMMUDwnDxXQYhfyXNimadR/tfQ0 dDm8qcp5dDBW2lYrXhufdjzZKYvVYyb0L50MiyZjHvdQZEuyu4uA/EvGTm6X/JsBnGuH TDOatFHB5bWwtIMnQ//HcK5n/VKhG6iJtOSAV6W+xBgww4sAOH1Mt7T0B2IAldUiOxA+ jermO/5zQa6wW14pxSlyTzAMcmvKUy/yVjDJbImw/eM5FMv1xcu6JCtI5IGfQVD/2H/Z R33Q== 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=fAIha3t9ZCokoXOC468Eisqo/yI7s8cg1DPtisUn/mY=; b=Y6hGcZ/y8Kjo08n+K5/51t1UPtg2UfQ1lMIoxpd0T1VIRuvETJd1w5pIGSnhmBca3/ WRElhQpt/iNOa7M62ts4c1DJfRKbHs6KeM4LrZsb9hqPxXRRC62H75b2dkHqpUhv/JlX Vi8Jz76KBNoQAPt2q/L5zNRNhLYOYJ9tFr/wZ7hqklE4vyh8eJgFndS9BOHP2f7nN0oA cuFyfJLR1v3A0DIh1w+4Nda1DmGvCfA5k2ViVOEchM+eC2hgHVtFmrkjGm9+2HgjaZnG yx5ndnlKcLHQB58ZguBSSQcX3d8/FouOfhjNIKRLekEBLrUtG8Q+5Q8xGESjI4RCejkL KbJw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=ZmqK6xis; 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 ec13si805126ejb.168.2022.01.12.18.52.28; Wed, 12 Jan 2022 18:52:28 -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=ZmqK6xis; 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 B03D268BA83; Thu, 13 Jan 2022 04:09:40 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f178.google.com (mail-qk1-f178.google.com [209.85.222.178]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B011C68BA54 for ; Thu, 13 Jan 2022 04:09:32 +0200 (EET) Received: by mail-qk1-f178.google.com with SMTP id t24so5564148qkg.11 for ; Wed, 12 Jan 2022 18:09:32 -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=5GHvh/eCAtiVVOuCh0GTWOBdu7aGZEeFoU+zD6OImeg=; b=ZmqK6xisdndmL0Uq8p84uXyjBg72PEihJex89X2F2GOmUFg8WxnTEr55hSsoNo3CFa TVcnKHmeLxLDPXW31+G+75PnWgnJNuDLxwCd0fNle4ME4qHIf3yaAqtBhabvjM5oIj2T LPo/+ds1YS9B0gsExsSa3FsVHx/bN2u/CX1v+0s3U+QQvoOm6bjw2JLZ5V1EBlBmBqgl ulER29E89h7aBqtjSWPoEB5XJch+T5Prp29bp2eG7iW3MjUmzbQNYk9judFg7vHOzHaH D/oHkPPeoPMEjB1/5wqVdWlH71brt+/F6wcTo77W1ToyZfCTF/L+OjfT5IgP4w1Pvk7u vyZw== 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=5GHvh/eCAtiVVOuCh0GTWOBdu7aGZEeFoU+zD6OImeg=; b=hW34M2m4ixX1nBSl+xb6mSzulQ05fWZclTgw7CxddV5ZQhAACL/R93leJen8aUdCiX DATot80ZYX4+GSwajZy8U7S//9TIHQpRlJDzs6igx9q21aH30VHofu6cnAa3TSW5g2uT ynj7CzQzdWZ9aS5r+ClkLzx0RC33ZtigpGwNhc264rlSyzxh63b1VIhaAH2B2f59eOfz 3J8fb8jYqFbKGUunAcK/axChEL7NzHpZ2u3TA6ar7Ltk1VbLTc4yN/EqRrMlnceWi3lq kRMq4E1kxf3Ey0mHZ62iQI81aXXtsy8rz/kUyy/Cvj/JaSL+Gs7RZVo8U0VDxCHXfJhs jkOA== X-Gm-Message-State: AOAM532zNYMgXtSd4/CEi75zzqX0bEyvzXLZZ3yGR5cHxqn1uESUq3F2 VApkf/ZTB0aJdCu51sPP1S61QsUR96Y= X-Received: by 2002:a05:620a:10ac:: with SMTP id h12mr1788109qkk.467.1642039771322; Wed, 12 Jan 2022 18:09:31 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u6sm1068031qko.83.2022.01.12.18.09.30 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:09:30 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:09:05 -0300 Message-Id: <20220113020913.870-4-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 273/281] lavf: Add non diegetic stream disposition flag 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: m5YdZFSp+l0q From: Vittorio Giovara Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavformat/avformat.h | 7 +++++++ libavformat/dump.c | 2 ++ 2 files changed, 9 insertions(+) diff --git a/libavformat/avformat.h b/libavformat/avformat.h index 6ce367e854..182545e607 100644 --- a/libavformat/avformat.h +++ b/libavformat/avformat.h @@ -879,6 +879,13 @@ typedef struct AVIndexEntry { */ #define AV_DISPOSITION_TIMED_THUMBNAILS (1 << 11) +/** + * The stream is intended to be mixed with a spatial audio track. For example, + * it could be used for narration or stereo music, and may remain unchanged by + * listener head rotation. + */ +#define AV_DISPOSITION_NON_DIEGETIC (1 << 12) + /** * The subtitle stream contains captions, providing a transcription and possibly * a translation of audio. Typically intended for hearing-impaired audiences. diff --git a/libavformat/dump.c b/libavformat/dump.c index 69b838fbc7..e3f0056c20 100644 --- a/libavformat/dump.c +++ b/libavformat/dump.c @@ -618,6 +618,8 @@ static void dump_stream_format(const AVFormatContext *ic, int i, av_log(NULL, AV_LOG_INFO, " (dependent)"); if (st->disposition & AV_DISPOSITION_STILL_IMAGE) av_log(NULL, AV_LOG_INFO, " (still image)"); + if (st->disposition & AV_DISPOSITION_NON_DIEGETIC) + av_log(NULL, AV_LOG_INFO, " (non-diegetic)"); av_log(NULL, AV_LOG_INFO, "\n"); dump_metadata(NULL, st->metadata, " "); From patchwork Thu Jan 13 02:09: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: 33531 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp46698iog; Wed, 12 Jan 2022 18:51:50 -0800 (PST) X-Google-Smtp-Source: ABdhPJy46WcKtGFrP1IXlxIjnOZWmMVTGAwxNyjktmjxB5w+iLzLTMaHPQ3WGRkAr07CADkslcHR X-Received: by 2002:a05:6402:3585:: with SMTP id y5mr2387564edc.338.1642042310303; Wed, 12 Jan 2022 18:51:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642042310; cv=none; d=google.com; s=arc-20160816; b=vnietv1RqfNjmpP1t7mjtWD02aY0JwfduGH5wHL890devHOcESdXeSsfa1Ri9OVqUS 9zw9SPifSsg0Bn/+ZEbAZJScG3+UtzHpc+Ov/btv/qbk6Gr1vSHARTjk1MEMFcaXZQ6t iPNaa9XCm+IsTP7UfmqwfR+f0Ky8Zn5SmGYzojF46haDZSBKTLr2mVGG7WwQCLUZA1uD 2+yUAoe39jPZ3/yo2eX1wbYex+e3wqSQat0BoGgJ6bfw0dio5q2CyDNFCF+dXQoo3uit EOsqGzY4YgcAxzbkU2/mrJECw7UE3gN2cQ175QGFW3qY/S2NyOZlZWIzp2DZcSUYI+YL UFBQ== 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=/3GMMJ351vuhlMZh6OGvmnh5XC/bey8jDaevmE/1Tdk=; b=ixZoQ6mk27Be2rEIVXeVNnUEzC340EYTPR6VkHcWu4dxj5+HBU8rLDeFw/rdn8wCDZ GA2j5sQKx666OjHZ3TX1sAKFSuUsc5q9pnybhHIIFcpNSeqjd8ZQaUcPX69/ArkF/NsG +3ODfKoe/X5gaTA5fXO/WhI1UP2k+TeFP+UZe9H2lh2UGGD/YYkHfe8MqmipeN/ybz0T YIWgwi0+ORolptdyen/N26Ajlp4mrRy8vKSD+KwHodyJmYhs5w8nCJYW8ElCqNphHYvI ueIbLpO6W69bBtqrqkyPqMCVi0t/xDVnWKWUqn9cloMpcNKOC3XGYXEDv1ocLfTGL6Lm YQjw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=JG+579v1; 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 e26si962844edr.448.2022.01.12.18.51.49; Wed, 12 Jan 2022 18:51:50 -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=JG+579v1; 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 EC51568BA54; Thu, 13 Jan 2022 04:09:37 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f176.google.com (mail-qt1-f176.google.com [209.85.160.176]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CC99A68BA76 for ; Thu, 13 Jan 2022 04:09:34 +0200 (EET) Received: by mail-qt1-f176.google.com with SMTP id y17so5350680qtx.9 for ; Wed, 12 Jan 2022 18:09:34 -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=THACN2DAgrVMc0TQhvmgUCzOwnridLdlx84BPBMqTuw=; b=JG+579v1bS2zcIdyJLwnDSBJc0jmNKJ4pVi6xmtW6HAP5OAeNV9Sk7KxF/THn7PNZa qcGIzWTXs3ny/JC4B2NVAtHDnsXyEMdNXr73W9qXdnsgCpuO6eS10ARcW2XwYtw9GgDj 3iiLmueVZXv6Kh+UfNFq1fKH6Q6rIIk0dO6Q2y3IFW4N5nkYj+PO/OqOPodSVqmWtc0x 2f2OnQvsMQZ96q7kWizTfll00YZrR8t4+CrWhgoqAKXz6upVSJi2HuxH5hwfgVohbcZj kktdQ4St1tez9p3ZT65YdsBKqIwTPjue7Rj3MX7kutb0fg6NrAUkZ+c9Z3vFHcPIXMoT hIJw== 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=THACN2DAgrVMc0TQhvmgUCzOwnridLdlx84BPBMqTuw=; b=4EmAC6L1NOADeRtowVKRQIYJAZ0jp48cFRQbHqxlJ6ApJMEg3kY/DzAkGMcPig80Kv nyjgzZZCoZRuSCb3QaFQjwsNsSMDC1H1mmdSaBBwaXXNo/aT8+y8q0N5DvCX9cgcyDUI ir5Ts+ZWT32QZAH8pMWCnlXLfeDWTt5xHTURejt+A5rNXF84xe2qRLpXFfw9B+HwV1Ox 3L/sP/LxNI1i4wxfGECbMDK4uhovYAKFDpg0XC2vwLQT7uTBe0drM0VlpMSWfSSMHKRm Hg7Miow4YhnQXCaUICp4k9BA9KgrXjoSCGThqr9lHjztlfiABTa/phgVn2fXoGcFIqYD jlNA== X-Gm-Message-State: AOAM533Vbx5eYzuvQ9MJTzKf7rnzUYoPnMIY/IXM6j1ZU4ATc8Uul/T5 1Mg9ihhvd1XhKu8yMEviW103xSRflV0= X-Received: by 2002:ac8:5e0f:: with SMTP id h15mr2004514qtx.499.1642039772619; Wed, 12 Jan 2022 18:09:32 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u6sm1068031qko.83.2022.01.12.18.09.31 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:09:32 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:09:06 -0300 Message-Id: <20220113020913.870-5-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 274/281] swresample: 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: TadMEjJYeKbo Signed-off-by: James Almer --- libswresample/options.c | 33 +++- libswresample/rematrix.c | 237 ++++++++++++++++++---------- libswresample/rematrix_template.c | 7 +- libswresample/swresample.c | 152 +++++++++++++++--- libswresample/swresample.h | 63 ++++++++ libswresample/swresample_frame.c | 65 +++++++- libswresample/swresample_internal.h | 10 +- 7 files changed, 445 insertions(+), 122 deletions(-) diff --git a/libswresample/options.c b/libswresample/options.c index 6911709157..ffa27c590d 100644 --- a/libswresample/options.c +++ b/libswresample/options.c @@ -34,12 +34,19 @@ #define OFFSET(x) offsetof(SwrContext,x) #define PARAM AV_OPT_FLAG_AUDIO_PARAM +#define DEPREC AV_OPT_FLAG_DEPRECATED static const AVOption options[]={ -{"ich" , "set input channel count" , OFFSET(user_in_ch_count ), AV_OPT_TYPE_INT, {.i64=0 }, 0 , SWR_CH_MAX, PARAM}, -{"in_channel_count" , "set input channel count" , OFFSET(user_in_ch_count ), AV_OPT_TYPE_INT, {.i64=0 }, 0 , SWR_CH_MAX, PARAM}, -{"och" , "set output channel count" , OFFSET(user_out_ch_count ), AV_OPT_TYPE_INT, {.i64=0 }, 0 , SWR_CH_MAX, PARAM}, -{"out_channel_count" , "set output channel count" , OFFSET(user_out_ch_count ), AV_OPT_TYPE_INT, {.i64=0 }, 0 , SWR_CH_MAX, PARAM}, +#if FF_API_OLD_CHANNEL_LAYOUT +{"ich" , "set input channel count (Deprecated, use ichl)", + OFFSET(user_in_ch_count ), AV_OPT_TYPE_INT, {.i64=0 }, 0 , SWR_CH_MAX, PARAM|DEPREC}, +{"in_channel_count" , "set input channel count (Deprecated, use in_chlayout)", + OFFSET(user_in_ch_count ), AV_OPT_TYPE_INT, {.i64=0 }, 0 , SWR_CH_MAX, PARAM|DEPREC}, +{"och" , "set output channel count (Deprecated, use ochl)", + OFFSET(user_out_ch_count ), AV_OPT_TYPE_INT, {.i64=0 }, 0 , SWR_CH_MAX, PARAM|DEPREC}, +{"out_channel_count" , "set output channel count (Deprecated, use out_chlayout)", + OFFSET(user_out_ch_count ), AV_OPT_TYPE_INT, {.i64=0 }, 0 , SWR_CH_MAX, PARAM|DEPREC}, +#endif {"uch" , "set used channel count" , OFFSET(user_used_ch_count), AV_OPT_TYPE_INT, {.i64=0 }, 0 , SWR_CH_MAX, PARAM}, {"used_channel_count" , "set used channel count" , OFFSET(user_used_ch_count), AV_OPT_TYPE_INT, {.i64=0 }, 0 , SWR_CH_MAX, PARAM}, {"isr" , "set input sample rate" , OFFSET( in_sample_rate), AV_OPT_TYPE_INT , {.i64=0 }, 0 , INT_MAX , PARAM}, @@ -52,10 +59,20 @@ static const AVOption options[]={ {"out_sample_fmt" , "set output sample format" , OFFSET(out_sample_fmt ), AV_OPT_TYPE_SAMPLE_FMT , {.i64=AV_SAMPLE_FMT_NONE}, -1 , INT_MAX, PARAM}, {"tsf" , "set internal sample format" , OFFSET(user_int_sample_fmt), AV_OPT_TYPE_SAMPLE_FMT , {.i64=AV_SAMPLE_FMT_NONE}, -1 , INT_MAX, PARAM}, {"internal_sample_fmt" , "set internal sample format" , OFFSET(user_int_sample_fmt), AV_OPT_TYPE_SAMPLE_FMT , {.i64=AV_SAMPLE_FMT_NONE}, -1 , INT_MAX, PARAM}, -{"icl" , "set input channel layout" , OFFSET(user_in_ch_layout ), AV_OPT_TYPE_CHANNEL_LAYOUT, {.i64=0 }, INT64_MIN, INT64_MAX , PARAM, "channel_layout"}, -{"in_channel_layout" , "set input channel layout" , OFFSET(user_in_ch_layout ), AV_OPT_TYPE_CHANNEL_LAYOUT, {.i64=0 }, INT64_MIN, INT64_MAX , PARAM, "channel_layout"}, -{"ocl" , "set output channel layout" , OFFSET(user_out_ch_layout), AV_OPT_TYPE_CHANNEL_LAYOUT, {.i64=0 }, INT64_MIN, INT64_MAX , PARAM, "channel_layout"}, -{"out_channel_layout" , "set output channel layout" , OFFSET(user_out_ch_layout), AV_OPT_TYPE_CHANNEL_LAYOUT, {.i64=0 }, INT64_MIN, INT64_MAX , PARAM, "channel_layout"}, +#if FF_API_OLD_CHANNEL_LAYOUT +{"icl" , "set input channel layout (Deprecated, use ichl)", + OFFSET(user_in_ch_layout), AV_OPT_TYPE_CHANNEL_LAYOUT, {.i64=0 }, INT64_MIN, INT64_MAX, PARAM|DEPREC, "channel_layout"}, +{"in_channel_layout" , "set input channel layout (Deprecated, use in_chlayout)", + OFFSET(user_in_ch_layout), AV_OPT_TYPE_CHANNEL_LAYOUT, {.i64=0 }, INT64_MIN, INT64_MAX, PARAM|DEPREC, "channel_layout"}, +{"ocl" , "set output channel layout (Deprecated, use ochl)", + OFFSET(user_out_ch_layout), AV_OPT_TYPE_CHANNEL_LAYOUT, {.i64=0 }, INT64_MIN, INT64_MAX, PARAM|DEPREC, "channel_layout"}, +{"out_channel_layout" , "set output channel layout (Deprecated, use out_chlayout)", + OFFSET(user_out_ch_layout), AV_OPT_TYPE_CHANNEL_LAYOUT, {.i64=0 }, INT64_MIN, INT64_MAX, PARAM|DEPREC, "channel_layout"}, +#endif +{"ichl" , "set input channel layout" , OFFSET(user_in_chlayout ), AV_OPT_TYPE_CHLAYOUT, {.str=NULL }, 0, 0 , PARAM, "chlayout"}, +{"in_chlayout" , "set input channel layout" , OFFSET(user_in_chlayout ), AV_OPT_TYPE_CHLAYOUT, {.str=NULL }, 0, 0 , PARAM, "chlayout"}, +{"ochl" , "set output channel layout" , OFFSET(user_out_chlayout), AV_OPT_TYPE_CHLAYOUT, {.str=NULL }, 0, 0 , PARAM, "chlayout"}, +{"out_chlayout" , "set output channel layout" , OFFSET(user_out_chlayout), AV_OPT_TYPE_CHLAYOUT, {.str=NULL }, 0, 0 , PARAM, "chlayout"}, {"clev" , "set center mix level" , OFFSET(clev ), AV_OPT_TYPE_FLOAT, {.dbl=C_30DB }, -32 , 32 , PARAM}, {"center_mix_level" , "set center mix level" , OFFSET(clev ), AV_OPT_TYPE_FLOAT, {.dbl=C_30DB }, -32 , 32 , PARAM}, {"slev" , "set surround mix level" , OFFSET(slev ), AV_OPT_TYPE_FLOAT, {.dbl=C_30DB }, -32 , 32 , PARAM}, diff --git a/libswresample/rematrix.c b/libswresample/rematrix.c index 94b3de88f6..35086c218d 100644 --- a/libswresample/rematrix.c +++ b/libswresample/rematrix.c @@ -64,15 +64,37 @@ int swr_set_matrix(struct SwrContext *s, const double *matrix, int stride) { int nb_in, nb_out, in, out; + int user_in_chlayout_nb_channels, user_out_chlayout_nb_channels; if (!s || s->in_convert) // s needs to be allocated but not initialized return AVERROR(EINVAL); memset(s->matrix, 0, sizeof(s->matrix)); memset(s->matrix_flt, 0, sizeof(s->matrix_flt)); - nb_in = (s->user_in_ch_count > 0) ? s->user_in_ch_count : - av_get_channel_layout_nb_channels(s->user_in_ch_layout); - nb_out = (s->user_out_ch_count > 0) ? s->user_out_ch_count : - av_get_channel_layout_nb_channels(s->user_out_ch_layout); + +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + user_in_chlayout_nb_channels = av_get_channel_layout_nb_channels(s->user_in_ch_layout); +FF_ENABLE_DEPRECATION_WARNINGS + if (!user_in_chlayout_nb_channels) +#endif + user_in_chlayout_nb_channels = s->user_in_chlayout.nb_channels; + nb_in = +#if FF_API_OLD_CHANNEL_LAYOUT + (s->user_in_ch_count > 0) ? s->user_in_ch_count : +#endif + user_in_chlayout_nb_channels; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + user_out_chlayout_nb_channels = av_get_channel_layout_nb_channels(s->user_out_ch_layout); +FF_ENABLE_DEPRECATION_WARNINGS + if (!user_out_chlayout_nb_channels) +#endif + user_out_chlayout_nb_channels = s->user_out_chlayout.nb_channels; + nb_out = +#if FF_API_OLD_CHANNEL_LAYOUT + (s->user_out_ch_count > 0) ? s->user_out_ch_count : +#endif + user_out_chlayout_nb_channels; for (out = 0; out < nb_out; out++) { for (in = 0; in < nb_in; in++) s->matrix_flt[out][in] = s->matrix[out][in] = matrix[in]; @@ -88,95 +110,141 @@ static int even(int64_t layout){ return 0; } -static int64_t clean_layout(void *s, int64_t layout){ - if(layout && layout != AV_CH_FRONT_CENTER && !(layout&(layout-1))) { +static int clean_layout(AVChannelLayout *out, const AVChannelLayout *in, void *s) +{ + int ret = 0; + + if(av_channel_layout_index_from_channel(in, AV_CH_FRONT_CENTER) < 0 && in->nb_channels == 1) { char buf[128]; - av_get_channel_layout_string(buf, sizeof(buf), -1, layout); + av_channel_layout_describe(in, buf, sizeof(buf)); av_log(s, AV_LOG_VERBOSE, "Treating %s as mono\n", buf); - return AV_CH_FRONT_CENTER; - } + *out = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; + } else + ret = av_channel_layout_copy(out, in); - return layout; + return ret; } -static int sane_layout(int64_t layout){ - if(!(layout & AV_CH_LAYOUT_SURROUND)) // at least 1 front speaker +static int sane_layout(AVChannelLayout *ch_layout) { + if (ch_layout->order != AV_CHANNEL_ORDER_NATIVE) + return 0; + if(!av_channel_layout_subset(ch_layout, AV_CH_LAYOUT_SURROUND)) // at least 1 front speaker return 0; - if(!even(layout & (AV_CH_FRONT_LEFT | AV_CH_FRONT_RIGHT))) // no asymetric front + if(!even(av_channel_layout_subset(ch_layout, (AV_CH_FRONT_LEFT | AV_CH_FRONT_RIGHT)))) // no asymetric front return 0; - if(!even(layout & (AV_CH_SIDE_LEFT | AV_CH_SIDE_RIGHT))) // no asymetric side + if(!even(av_channel_layout_subset(ch_layout, (AV_CH_SIDE_LEFT | AV_CH_SIDE_RIGHT)))) // no asymetric side return 0; - if(!even(layout & (AV_CH_BACK_LEFT | AV_CH_BACK_RIGHT))) + if(!even(av_channel_layout_subset(ch_layout, (AV_CH_BACK_LEFT | AV_CH_BACK_RIGHT)))) return 0; - if(!even(layout & (AV_CH_FRONT_LEFT_OF_CENTER | AV_CH_FRONT_RIGHT_OF_CENTER))) + if(!even(av_channel_layout_subset(ch_layout, (AV_CH_FRONT_LEFT_OF_CENTER | AV_CH_FRONT_RIGHT_OF_CENTER)))) return 0; - if(av_get_channel_layout_nb_channels(layout) >= SWR_CH_MAX) + if(ch_layout->nb_channels >= SWR_CH_MAX) return 0; return 1; } +#if FF_API_OLD_CHANNEL_LAYOUT av_cold int swr_build_matrix(uint64_t in_ch_layout_param, uint64_t out_ch_layout_param, double center_mix_level, double surround_mix_level, double lfe_mix_level, double maxval, double rematrix_volume, double *matrix_param, int stride, enum AVMatrixEncoding matrix_encoding, void *log_context) { - int i, j, out_i; + AVChannelLayout in_ch_layout = { 0 }, out_ch_layout = { 0 }; + int ret; + + ret = av_channel_layout_from_mask(&in_ch_layout, in_ch_layout_param); + ret |= av_channel_layout_from_mask(&out_ch_layout, out_ch_layout_param); + if (ret < 0) + return ret; + + return swr_build_matrix2(&in_ch_layout, &out_ch_layout, center_mix_level, surround_mix_level, + lfe_mix_level, maxval, rematrix_volume, matrix_param, + stride, matrix_encoding, log_context); +} +#endif + +av_cold int swr_build_matrix2(const AVChannelLayout *in_layout, const AVChannelLayout *out_layout, + double center_mix_level, double surround_mix_level, + double lfe_mix_level, double maxval, + double rematrix_volume, double *matrix_param, + ptrdiff_t stride, enum AVMatrixEncoding matrix_encoding, void *log_context) +{ + int i, j, out_i, ret; + AVChannelLayout in_ch_layout = { 0 }, out_ch_layout = { 0 }; double matrix[NUM_NAMED_CHANNELS][NUM_NAMED_CHANNELS]={{0}}; - int64_t unaccounted, in_ch_layout, out_ch_layout; + int64_t unaccounted; double maxcoef=0; char buf[128]; - in_ch_layout = clean_layout(log_context, in_ch_layout_param); - out_ch_layout = clean_layout(log_context, out_ch_layout_param); - - if( out_ch_layout == AV_CH_LAYOUT_STEREO_DOWNMIX - && (in_ch_layout & AV_CH_LAYOUT_STEREO_DOWNMIX) == 0 - ) - out_ch_layout = AV_CH_LAYOUT_STEREO; + ret = clean_layout(&in_ch_layout, in_layout, log_context); + ret |= clean_layout(&out_ch_layout, out_layout, log_context); + if (ret < 0) + goto fail; - if( in_ch_layout == AV_CH_LAYOUT_STEREO_DOWNMIX - && (out_ch_layout & AV_CH_LAYOUT_STEREO_DOWNMIX) == 0 - ) - in_ch_layout = AV_CH_LAYOUT_STEREO; - - if (in_ch_layout == AV_CH_LAYOUT_22POINT2 && - out_ch_layout != AV_CH_LAYOUT_22POINT2) { - in_ch_layout = (AV_CH_LAYOUT_7POINT1_WIDE_BACK|AV_CH_BACK_CENTER); - av_get_channel_layout_string(buf, sizeof(buf), -1, in_ch_layout); + if( !av_channel_layout_compare(&out_ch_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO_DOWNMIX) + && !av_channel_layout_subset(&in_ch_layout, AV_CH_LAYOUT_STEREO_DOWNMIX) + ) { + av_channel_layout_uninit(&out_ch_layout); + out_ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO; + } + if( !av_channel_layout_compare(&in_ch_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO_DOWNMIX) + && !av_channel_layout_subset(&out_ch_layout, AV_CH_LAYOUT_STEREO_DOWNMIX) + ) { + av_channel_layout_uninit(&in_ch_layout); + in_ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO; + } + if (!av_channel_layout_compare(&in_ch_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_22POINT2) && + av_channel_layout_compare(&out_ch_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_22POINT2)) { + av_channel_layout_from_mask(&in_ch_layout, (AV_CH_LAYOUT_7POINT1_WIDE_BACK|AV_CH_BACK_CENTER)); + av_channel_layout_describe(&in_ch_layout, buf, sizeof(buf)); av_log(log_context, AV_LOG_WARNING, "Full-on remixing from 22.2 has not yet been implemented! " "Processing the input as '%s'\n", buf); } - if(!sane_layout(in_ch_layout)){ - av_get_channel_layout_string(buf, sizeof(buf), -1, in_ch_layout_param); + if(!av_channel_layout_check(&in_ch_layout)) { + av_log(log_context, AV_LOG_ERROR, "Input channel layout is invalid\n"); + ret = AVERROR(EINVAL); + goto fail; + } + if(!sane_layout(&in_ch_layout)) { + av_channel_layout_describe(&in_ch_layout, buf, sizeof(buf)); av_log(log_context, AV_LOG_ERROR, "Input channel layout '%s' is not supported\n", buf); - return AVERROR(EINVAL); + ret = AVERROR(EINVAL); + goto fail; } - if(!sane_layout(out_ch_layout)){ - av_get_channel_layout_string(buf, sizeof(buf), -1, out_ch_layout_param); + if(!av_channel_layout_check(&out_ch_layout)) { + av_log(log_context, AV_LOG_ERROR, "Output channel layout is invalid\n"); + ret = AVERROR(EINVAL); + goto fail; + } + if(!sane_layout(&out_ch_layout)) { + av_channel_layout_describe(&out_ch_layout, buf, sizeof(buf)); av_log(log_context, AV_LOG_ERROR, "Output channel layout '%s' is not supported\n", buf); - return AVERROR(EINVAL); + ret = AVERROR(EINVAL); + goto fail; } for(i=0; i= 0 + && av_channel_layout_index_from_channel(&out_ch_layout, i) == idx) matrix[i][i]= 1.0; } - unaccounted= in_ch_layout & ~out_ch_layout; + unaccounted = in_ch_layout.u.mask & ~out_ch_layout.u.mask; //FIXME implement dolby surround //FIXME implement full ac3 if(unaccounted & AV_CH_FRONT_CENTER){ - if((out_ch_layout & AV_CH_LAYOUT_STEREO) == AV_CH_LAYOUT_STEREO){ - if(in_ch_layout & AV_CH_LAYOUT_STEREO) { + if(av_channel_layout_subset(&out_ch_layout, AV_CH_LAYOUT_STEREO) == AV_CH_LAYOUT_STEREO){ + if(av_channel_layout_subset(&in_ch_layout, AV_CH_LAYOUT_STEREO)) { matrix[ FRONT_LEFT][FRONT_CENTER]+= center_mix_level; matrix[FRONT_RIGHT][FRONT_CENTER]+= center_mix_level; } else { @@ -187,23 +255,23 @@ av_cold int swr_build_matrix(uint64_t in_ch_layout_param, uint64_t out_ch_layout av_assert0(0); } if(unaccounted & AV_CH_LAYOUT_STEREO){ - if(out_ch_layout & AV_CH_FRONT_CENTER){ + if(av_channel_layout_index_from_channel(&out_ch_layout, AV_CHAN_FRONT_CENTER) >= 0){ matrix[FRONT_CENTER][ FRONT_LEFT]+= M_SQRT1_2; matrix[FRONT_CENTER][FRONT_RIGHT]+= M_SQRT1_2; - if(in_ch_layout & AV_CH_FRONT_CENTER) + if(av_channel_layout_index_from_channel(&in_ch_layout, AV_CHAN_FRONT_CENTER) >= 0) matrix[FRONT_CENTER][ FRONT_CENTER] = center_mix_level*sqrt(2); }else av_assert0(0); } if(unaccounted & AV_CH_BACK_CENTER){ - if(out_ch_layout & AV_CH_BACK_LEFT){ + if(av_channel_layout_index_from_channel(&out_ch_layout, AV_CHAN_BACK_LEFT) >= 0){ matrix[ BACK_LEFT][BACK_CENTER]+= M_SQRT1_2; matrix[BACK_RIGHT][BACK_CENTER]+= M_SQRT1_2; - }else if(out_ch_layout & AV_CH_SIDE_LEFT){ + }else if(av_channel_layout_index_from_channel(&out_ch_layout, AV_CHAN_SIDE_LEFT) >= 0){ matrix[ SIDE_LEFT][BACK_CENTER]+= M_SQRT1_2; matrix[SIDE_RIGHT][BACK_CENTER]+= M_SQRT1_2; - }else if(out_ch_layout & AV_CH_FRONT_LEFT){ + }else if(av_channel_layout_index_from_channel(&out_ch_layout, AV_CHAN_FRONT_LEFT) >= 0){ if (matrix_encoding == AV_MATRIX_ENCODING_DOLBY || matrix_encoding == AV_MATRIX_ENCODING_DPLII) { if (unaccounted & (AV_CH_BACK_LEFT | AV_CH_SIDE_LEFT)) { @@ -217,24 +285,24 @@ av_cold int swr_build_matrix(uint64_t in_ch_layout_param, uint64_t out_ch_layout matrix[ FRONT_LEFT][BACK_CENTER]+= surround_mix_level * M_SQRT1_2; matrix[FRONT_RIGHT][BACK_CENTER]+= surround_mix_level * M_SQRT1_2; } - }else if(out_ch_layout & AV_CH_FRONT_CENTER){ + }else if(av_channel_layout_index_from_channel(&out_ch_layout, AV_CHAN_FRONT_CENTER) >= 0){ matrix[ FRONT_CENTER][BACK_CENTER]+= surround_mix_level * M_SQRT1_2; }else av_assert0(0); } if(unaccounted & AV_CH_BACK_LEFT){ - if(out_ch_layout & AV_CH_BACK_CENTER){ + if(av_channel_layout_index_from_channel(&out_ch_layout, AV_CHAN_BACK_CENTER) >= 0){ matrix[BACK_CENTER][ BACK_LEFT]+= M_SQRT1_2; matrix[BACK_CENTER][BACK_RIGHT]+= M_SQRT1_2; - }else if(out_ch_layout & AV_CH_SIDE_LEFT){ - if(in_ch_layout & AV_CH_SIDE_LEFT){ + }else if(av_channel_layout_index_from_channel(&out_ch_layout, AV_CHAN_SIDE_LEFT) >= 0){ + if(av_channel_layout_index_from_channel(&in_ch_layout, AV_CHAN_SIDE_LEFT) >= 0){ matrix[ SIDE_LEFT][ BACK_LEFT]+= M_SQRT1_2; matrix[SIDE_RIGHT][BACK_RIGHT]+= M_SQRT1_2; }else{ matrix[ SIDE_LEFT][ BACK_LEFT]+= 1.0; matrix[SIDE_RIGHT][BACK_RIGHT]+= 1.0; } - }else if(out_ch_layout & AV_CH_FRONT_LEFT){ + }else if(av_channel_layout_index_from_channel(&out_ch_layout, AV_CHAN_FRONT_LEFT) >= 0){ if (matrix_encoding == AV_MATRIX_ENCODING_DOLBY) { matrix[FRONT_LEFT ][BACK_LEFT ] -= surround_mix_level * M_SQRT1_2; matrix[FRONT_LEFT ][BACK_RIGHT] -= surround_mix_level * M_SQRT1_2; @@ -249,7 +317,7 @@ av_cold int swr_build_matrix(uint64_t in_ch_layout_param, uint64_t out_ch_layout matrix[ FRONT_LEFT][ BACK_LEFT] += surround_mix_level; matrix[FRONT_RIGHT][BACK_RIGHT] += surround_mix_level; } - }else if(out_ch_layout & AV_CH_FRONT_CENTER){ + }else if(av_channel_layout_index_from_channel(&out_ch_layout, AV_CHAN_FRONT_CENTER) >= 0){ matrix[ FRONT_CENTER][BACK_LEFT ]+= surround_mix_level*M_SQRT1_2; matrix[ FRONT_CENTER][BACK_RIGHT]+= surround_mix_level*M_SQRT1_2; }else @@ -257,20 +325,20 @@ av_cold int swr_build_matrix(uint64_t in_ch_layout_param, uint64_t out_ch_layout } if(unaccounted & AV_CH_SIDE_LEFT){ - if(out_ch_layout & AV_CH_BACK_LEFT){ + if(av_channel_layout_index_from_channel(&out_ch_layout, AV_CHAN_BACK_LEFT) >= 0){ /* if back channels do not exist in the input, just copy side channels to back channels, otherwise mix side into back */ - if (in_ch_layout & AV_CH_BACK_LEFT) { + if (av_channel_layout_index_from_channel(&in_ch_layout, AV_CHAN_BACK_LEFT) >= 0) { matrix[BACK_LEFT ][SIDE_LEFT ] += M_SQRT1_2; matrix[BACK_RIGHT][SIDE_RIGHT] += M_SQRT1_2; } else { matrix[BACK_LEFT ][SIDE_LEFT ] += 1.0; matrix[BACK_RIGHT][SIDE_RIGHT] += 1.0; } - }else if(out_ch_layout & AV_CH_BACK_CENTER){ + }else if(av_channel_layout_index_from_channel(&out_ch_layout, AV_CHAN_BACK_CENTER) >= 0){ matrix[BACK_CENTER][ SIDE_LEFT]+= M_SQRT1_2; matrix[BACK_CENTER][SIDE_RIGHT]+= M_SQRT1_2; - }else if(out_ch_layout & AV_CH_FRONT_LEFT){ + }else if(av_channel_layout_index_from_channel(&out_ch_layout, AV_CHAN_FRONT_LEFT) >= 0){ if (matrix_encoding == AV_MATRIX_ENCODING_DOLBY) { matrix[FRONT_LEFT ][SIDE_LEFT ] -= surround_mix_level * M_SQRT1_2; matrix[FRONT_LEFT ][SIDE_RIGHT] -= surround_mix_level * M_SQRT1_2; @@ -285,7 +353,7 @@ av_cold int swr_build_matrix(uint64_t in_ch_layout_param, uint64_t out_ch_layout matrix[ FRONT_LEFT][ SIDE_LEFT] += surround_mix_level; matrix[FRONT_RIGHT][SIDE_RIGHT] += surround_mix_level; } - }else if(out_ch_layout & AV_CH_FRONT_CENTER){ + }else if(av_channel_layout_index_from_channel(&out_ch_layout, AV_CHAN_FRONT_CENTER) >= 0){ matrix[ FRONT_CENTER][SIDE_LEFT ]+= surround_mix_level * M_SQRT1_2; matrix[ FRONT_CENTER][SIDE_RIGHT]+= surround_mix_level * M_SQRT1_2; }else @@ -293,10 +361,10 @@ av_cold int swr_build_matrix(uint64_t in_ch_layout_param, uint64_t out_ch_layout } if(unaccounted & AV_CH_FRONT_LEFT_OF_CENTER){ - if(out_ch_layout & AV_CH_FRONT_LEFT){ + if(av_channel_layout_index_from_channel(&out_ch_layout, AV_CHAN_FRONT_LEFT) >= 0){ matrix[ FRONT_LEFT][ FRONT_LEFT_OF_CENTER]+= 1.0; matrix[FRONT_RIGHT][FRONT_RIGHT_OF_CENTER]+= 1.0; - }else if(out_ch_layout & AV_CH_FRONT_CENTER){ + }else if(av_channel_layout_index_from_channel(&out_ch_layout, AV_CHAN_FRONT_CENTER) >= 0){ matrix[ FRONT_CENTER][ FRONT_LEFT_OF_CENTER]+= M_SQRT1_2; matrix[ FRONT_CENTER][FRONT_RIGHT_OF_CENTER]+= M_SQRT1_2; }else @@ -304,9 +372,9 @@ av_cold int swr_build_matrix(uint64_t in_ch_layout_param, uint64_t out_ch_layout } /* mix LFE into front left/right or center */ if (unaccounted & AV_CH_LOW_FREQUENCY) { - if (out_ch_layout & AV_CH_FRONT_CENTER) { + if (av_channel_layout_index_from_channel(&out_ch_layout, AV_CHAN_FRONT_CENTER) >= 0) { matrix[FRONT_CENTER][LOW_FREQUENCY] += lfe_mix_level; - } else if (out_ch_layout & AV_CH_FRONT_LEFT) { + } else if (av_channel_layout_index_from_channel(&out_ch_layout, AV_CHAN_FRONT_LEFT) >= 0) { matrix[FRONT_LEFT ][LOW_FREQUENCY] += lfe_mix_level * M_SQRT1_2; matrix[FRONT_RIGHT][LOW_FREQUENCY] += lfe_mix_level * M_SQRT1_2; } else @@ -316,15 +384,19 @@ av_cold int swr_build_matrix(uint64_t in_ch_layout_param, uint64_t out_ch_layout for(out_i=i=0; i<64; i++){ double sum=0; int in_i=0; - if((out_ch_layout & (1ULL<= 0 + && av_channel_layout_index_from_channel(&out_ch_layout, i) == idx); + } sum += fabs(matrix_param[stride*out_i + in_i]); in_i++; } @@ -350,17 +422,22 @@ av_cold int swr_build_matrix(uint64_t in_ch_layout_param, uint64_t out_ch_layout } av_log(log_context, AV_LOG_DEBUG, "Matrix coefficients:\n"); - for(i=0; imatrix, 0, sizeof(s->matrix)); - ret = swr_build_matrix(s->in_ch_layout, s->out_ch_layout, + ret = swr_build_matrix2(&s->in_ch_layout, &s->out_ch_layout, s->clev, s->slev, s->lfe_mix_level, maxval, s->rematrix_volume, (double*)s->matrix, s->matrix[1] - s->matrix[0], s->matrix_encoding, s); @@ -519,8 +596,8 @@ int swri_rematrix(SwrContext *s, AudioData *out, AudioData *in, int len, int mus off = len1 * out->bps; } - av_assert0(!s->out_ch_layout || out->ch_count == av_get_channel_layout_nb_channels(s->out_ch_layout)); - av_assert0(!s-> in_ch_layout || in ->ch_count == av_get_channel_layout_nb_channels(s-> in_ch_layout)); + av_assert0(s->out_ch_layout.order == AV_CHANNEL_ORDER_UNSPEC || out->ch_count == s->out_ch_layout.nb_channels); + av_assert0(s-> in_ch_layout.order == AV_CHANNEL_ORDER_UNSPEC || in ->ch_count == s->in_ch_layout.nb_channels); for(out_i=0; out_ich_count; out_i++){ switch(s->matrix_ch[out_i][0]){ diff --git a/libswresample/rematrix_template.c b/libswresample/rematrix_template.c index add65e3155..f5a508361c 100644 --- a/libswresample/rematrix_template.c +++ b/libswresample/rematrix_template.c @@ -88,13 +88,16 @@ static void RENAME(mix8to2)(SAMPLE **out, const SAMPLE **in, COEFF *coeffp, inte } static RENAME(mix_any_func_type) *RENAME(get_mix_any_func)(SwrContext *s){ - if( s->out_ch_layout == AV_CH_LAYOUT_STEREO && (s->in_ch_layout == AV_CH_LAYOUT_5POINT1 || s->in_ch_layout == AV_CH_LAYOUT_5POINT1_BACK) + if( !av_channel_layout_compare(&s->out_ch_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO) + && ( !av_channel_layout_compare(&s->in_ch_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_5POINT1) + || !av_channel_layout_compare(&s->in_ch_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_5POINT1_BACK)) && s->matrix[0][2] == s->matrix[1][2] && s->matrix[0][3] == s->matrix[1][3] && !s->matrix[0][1] && !s->matrix[0][5] && !s->matrix[1][0] && !s->matrix[1][4] ) return RENAME(mix6to2); - if( s->out_ch_layout == AV_CH_LAYOUT_STEREO && s->in_ch_layout == AV_CH_LAYOUT_7POINT1 + if( !av_channel_layout_compare(&s->out_ch_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO) + && !av_channel_layout_compare(&s->in_ch_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_7POINT1) && s->matrix[0][2] == s->matrix[1][2] && s->matrix[0][3] == s->matrix[1][3] && !s->matrix[0][1] && !s->matrix[0][5] && !s->matrix[1][0] && !s->matrix[1][4] && !s->matrix[0][7] && !s->matrix[1][6] diff --git a/libswresample/swresample.c b/libswresample/swresample.c index 16734c9df9..f8fbd9134b 100644 --- a/libswresample/swresample.c +++ b/libswresample/swresample.c @@ -56,6 +56,8 @@ int swr_set_channel_mapping(struct SwrContext *s, const int *channel_map){ return 0; } +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS struct SwrContext *swr_alloc_set_opts(struct SwrContext *s, int64_t out_ch_layout, enum AVSampleFormat out_sample_fmt, int out_sample_rate, int64_t in_ch_layout, enum AVSampleFormat in_sample_fmt, int in_sample_rate, @@ -97,6 +99,58 @@ fail: swr_free(&s); return NULL; } +FF_ENABLE_DEPRECATION_WARNINGS +#endif + +int swr_alloc_set_opts2(struct SwrContext **ps, + AVChannelLayout *out_ch_layout, enum AVSampleFormat out_sample_fmt, int out_sample_rate, + AVChannelLayout *in_ch_layout, enum AVSampleFormat in_sample_fmt, int in_sample_rate, + int log_offset, void *log_ctx) { + struct SwrContext *s = *ps; + int ret; + + if (!s) s = swr_alloc(); + if (!s) return AVERROR(ENOMEM); + + s->log_level_offset= log_offset; + s->log_ctx= log_ctx; + + if ((ret = av_opt_set_chlayout(s, "ochl", out_ch_layout, 0)) < 0) + goto fail; + + if ((ret = av_opt_set_int(s, "osf", out_sample_fmt, 0)) < 0) + goto fail; + + if ((ret = av_opt_set_int(s, "osr", out_sample_rate, 0)) < 0) + goto fail; + + if ((ret = av_opt_set_chlayout(s, "ichl", in_ch_layout, 0)) < 0) + goto fail; + + if ((ret = av_opt_set_int(s, "isf", in_sample_fmt, 0)) < 0) + goto fail; + + if ((ret = av_opt_set_int(s, "isr", in_sample_rate, 0)) < 0) + goto fail; + + av_opt_set_int(s, "uch", 0, 0); + +#if FF_API_OLD_CHANNEL_LAYOUT + // Clear old API values so they don't take precedence in swr_init() + av_opt_set_int(s, "icl", 0, 0); + av_opt_set_int(s, "ocl", 0, 0); + av_opt_set_int(s, "ich", 0, 0); + av_opt_set_int(s, "och", 0, 0); +#endif + + *ps = s; + + return 0; +fail: + av_log(s, AV_LOG_ERROR, "Failed to set option\n"); + swr_free(ps); + return ret; +} static void set_audiodata_fmt(AudioData *a, enum AVSampleFormat fmt){ a->fmt = fmt; @@ -125,6 +179,8 @@ static void clear_context(SwrContext *s){ free_temp(&s->drop_temp); free_temp(&s->dither.noise); free_temp(&s->dither.temp); + av_channel_layout_uninit(&s->in_ch_layout); + av_channel_layout_uninit(&s->out_ch_layout); swri_audio_convert_free(&s-> in_convert); swri_audio_convert_free(&s->out_convert); swri_audio_convert_free(&s->full_convert); @@ -138,6 +194,9 @@ av_cold void swr_free(SwrContext **ss){ SwrContext *s= *ss; if(s){ clear_context(s); + av_channel_layout_uninit(&s->user_in_chlayout); + av_channel_layout_uninit(&s->user_out_chlayout); + if (s->resampler) s->resampler->free(&s->resample); } @@ -172,25 +231,66 @@ av_cold int swr_init(struct SwrContext *s){ av_log(s, AV_LOG_ERROR, "Requested output sample rate %d is invalid\n", s->out_sample_rate); return AVERROR(EINVAL); } + s->used_ch_count = s->user_used_ch_count; +#if FF_API_OLD_CHANNEL_LAYOUT s->out.ch_count = s-> user_out_ch_count; s-> in.ch_count = s-> user_in_ch_count; - s->used_ch_count = s->user_used_ch_count; - s-> in_ch_layout = s-> user_in_ch_layout; - s->out_ch_layout = s->user_out_ch_layout; + // if the old/new fields are set inconsistently, prefer the old ones + if ((s->user_in_ch_count && s->user_in_ch_count != s->user_in_chlayout.nb_channels) || + (s->user_in_ch_layout && (s->user_in_chlayout.order != AV_CHANNEL_ORDER_NATIVE || + s->user_in_chlayout.u.mask != s->user_in_ch_layout))) { + av_channel_layout_uninit(&s->in_ch_layout); + if (s->user_in_ch_layout) + av_channel_layout_from_mask(&s->in_ch_layout, s->user_in_ch_layout); + else { + s->in_ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + s->in_ch_layout.nb_channels = s->user_in_ch_count; + } + } else + av_channel_layout_copy(&s->in_ch_layout, &s->user_in_chlayout); + + if ((s->user_out_ch_count && s->user_out_ch_count != s->user_out_chlayout.nb_channels) || + (s->user_out_ch_layout && (s->user_out_chlayout.order != AV_CHANNEL_ORDER_NATIVE || + s->user_out_chlayout.u.mask != s->user_out_ch_layout))) { + av_channel_layout_uninit(&s->out_ch_layout); + if (s->user_out_ch_layout) + av_channel_layout_from_mask(&s->out_ch_layout, s->user_out_ch_layout); + else { + s->out_ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + s->out_ch_layout.nb_channels = s->user_out_ch_count; + } + } else + av_channel_layout_copy(&s->out_ch_layout, &s->user_out_chlayout); + + if (!s->out.ch_count && !s->user_out_ch_layout) + s->out.ch_count = s->out_ch_layout.nb_channels; + if (!s-> in.ch_count && !s-> user_in_ch_layout) + s-> in.ch_count = s->in_ch_layout.nb_channels; +#else + s->out.ch_count = s-> user_out_chlayout.nb_channels; + s-> in.ch_count = s-> user_in_chlayout.nb_channels; + + ret = av_channel_layout_copy(&s->in_ch_layout, &s->user_in_chlayout); + ret |= av_channel_layout_copy(&s->out_ch_layout, &s->user_out_chlayout); + if (ret < 0) + return ret; +#endif s->int_sample_fmt= s->user_int_sample_fmt; s->dither.method = s->user_dither_method; - if(av_get_channel_layout_nb_channels(s-> in_ch_layout) > SWR_CH_MAX) { - av_log(s, AV_LOG_WARNING, "Input channel layout 0x%"PRIx64" is invalid or unsupported.\n", s-> in_ch_layout); - s->in_ch_layout = 0; + if (!av_channel_layout_check(&s->in_ch_layout) || s->in_ch_layout.nb_channels > SWR_CH_MAX) { + av_channel_layout_describe(&s->in_ch_layout, l1, sizeof(l1)); + av_log(s, AV_LOG_WARNING, "Input channel layout \"%s\" is invalid or unsupported.\n", l1); + av_channel_layout_uninit(&s->in_ch_layout); } - if(av_get_channel_layout_nb_channels(s->out_ch_layout) > SWR_CH_MAX) { - av_log(s, AV_LOG_WARNING, "Output channel layout 0x%"PRIx64" is invalid or unsupported.\n", s->out_ch_layout); - s->out_ch_layout = 0; + if (!av_channel_layout_check(&s->out_ch_layout) || s->out_ch_layout.nb_channels > SWR_CH_MAX) { + av_channel_layout_describe(&s->out_ch_layout, l2, sizeof(l2)); + av_log(s, AV_LOG_WARNING, "Output channel layout \"%s\" is invalid or unsupported.\n", l2); + av_channel_layout_uninit(&s->out_ch_layout); } switch(s->engine){ @@ -206,17 +306,18 @@ av_cold int swr_init(struct SwrContext *s){ if(!s->used_ch_count) s->used_ch_count= s->in.ch_count; - if(s->used_ch_count && s-> in_ch_layout && s->used_ch_count != av_get_channel_layout_nb_channels(s-> in_ch_layout)){ + if(s->used_ch_count && s->in_ch_layout.order != AV_CHANNEL_ORDER_UNSPEC && s->used_ch_count != s->in_ch_layout.nb_channels){ av_log(s, AV_LOG_WARNING, "Input channel layout has a different number of channels than the number of used channels, ignoring layout\n"); - s-> in_ch_layout= 0; + av_channel_layout_uninit(&s->in_ch_layout); } - if(!s-> in_ch_layout) - s-> in_ch_layout= av_get_default_channel_layout(s->used_ch_count); - if(!s->out_ch_layout) - s->out_ch_layout= av_get_default_channel_layout(s->out.ch_count); + if(!s->in_ch_layout.nb_channels || s->in_ch_layout.order == AV_CHANNEL_ORDER_UNSPEC) + av_channel_layout_default(&s->in_ch_layout, s->used_ch_count); + if(!s->out_ch_layout.nb_channels || s->out_ch_layout.order == AV_CHANNEL_ORDER_UNSPEC) + av_channel_layout_default(&s->out_ch_layout, s->out.ch_count); - s->rematrix= s->out_ch_layout !=s->in_ch_layout || s->rematrix_volume!=1.0 || + s->rematrix= av_channel_layout_compare(&s->out_ch_layout, &s->in_ch_layout) || + s->rematrix_volume!=1.0 || s->rematrix_custom; if(s->int_sample_fmt == AV_SAMPLE_FMT_NONE){ @@ -291,33 +392,36 @@ av_cold int swr_init(struct SwrContext *s){ #define RSC 1 //FIXME finetune if(!s-> in.ch_count) - s-> in.ch_count= av_get_channel_layout_nb_channels(s-> in_ch_layout); + s-> in.ch_count = s->in_ch_layout.nb_channels; if(!s->used_ch_count) s->used_ch_count= s->in.ch_count; if(!s->out.ch_count) - s->out.ch_count= av_get_channel_layout_nb_channels(s->out_ch_layout); + s->out.ch_count = s->out_ch_layout.nb_channels; if(!s-> in.ch_count){ - av_assert0(!s->in_ch_layout); + av_assert0(s->in_ch_layout.order == AV_CHANNEL_ORDER_UNSPEC); av_log(s, AV_LOG_ERROR, "Input channel count and layout are unset\n"); ret = AVERROR(EINVAL); goto fail; } - av_get_channel_layout_string(l1, sizeof(l1), s-> in.ch_count, s-> in_ch_layout); - av_get_channel_layout_string(l2, sizeof(l2), s->out.ch_count, s->out_ch_layout); - if (s->out_ch_layout && s->out.ch_count != av_get_channel_layout_nb_channels(s->out_ch_layout)) { +#if FF_API_OLD_CHANNEL_LAYOUT + av_channel_layout_describe(&s->out_ch_layout, l1, sizeof(l1)); + if (s->out_ch_layout.order != AV_CHANNEL_ORDER_UNSPEC && s->out.ch_count != s->out_ch_layout.nb_channels) { av_log(s, AV_LOG_ERROR, "Output channel layout %s mismatches specified channel count %d\n", l2, s->out.ch_count); ret = AVERROR(EINVAL); goto fail; } - if (s->in_ch_layout && s->used_ch_count != av_get_channel_layout_nb_channels(s->in_ch_layout)) { +#endif + av_channel_layout_describe(&s->in_ch_layout, l1, sizeof(l1)); + if (s->in_ch_layout.order != AV_CHANNEL_ORDER_UNSPEC && s->used_ch_count != s->in_ch_layout.nb_channels) { av_log(s, AV_LOG_ERROR, "Input channel layout %s mismatches specified channel count %d\n", l1, s->used_ch_count); ret = AVERROR(EINVAL); goto fail; } - if ((!s->out_ch_layout || !s->in_ch_layout) && s->used_ch_count != s->out.ch_count && !s->rematrix_custom) { + if (( s->out_ch_layout.order == AV_CHANNEL_ORDER_UNSPEC + || s-> in_ch_layout.order == AV_CHANNEL_ORDER_UNSPEC) && s->used_ch_count != s->out.ch_count && !s->rematrix_custom) { av_log(s, AV_LOG_ERROR, "Rematrix is needed between %s and %s " "but there is not enough information to do it\n", l1, l2); ret = AVERROR(EINVAL); diff --git a/libswresample/swresample.h b/libswresample/swresample.h index c7b84fbcac..c6ff2345e9 100644 --- a/libswresample/swresample.h +++ b/libswresample/swresample.h @@ -227,6 +227,7 @@ int swr_init(struct SwrContext *s); */ int swr_is_initialized(struct SwrContext *s); +#if FF_API_OLD_CHANNEL_LAYOUT /** * Allocate SwrContext if needed and set/reset common parameters. * @@ -246,12 +247,40 @@ int swr_is_initialized(struct SwrContext *s); * * @see swr_init(), swr_free() * @return NULL on error, allocated context otherwise + * @deprecated use @ref swr_alloc_set_opts2() */ +attribute_deprecated struct SwrContext *swr_alloc_set_opts(struct SwrContext *s, int64_t out_ch_layout, enum AVSampleFormat out_sample_fmt, int out_sample_rate, int64_t in_ch_layout, enum AVSampleFormat in_sample_fmt, int in_sample_rate, int log_offset, void *log_ctx); +#endif +/** + * Allocate SwrContext if needed and set/reset common parameters. + * + * This function does not require s to be allocated with swr_alloc(). On the + * other hand, swr_alloc() can use swr_alloc_set_opts() to set the parameters + * on the allocated context. + * + * @param ps Pointer to an existing Swr context if available, or to NULL if not. + * On success, *ps will be set the allocated context. + * @param out_ch_layout output channel layout (AV_CH_LAYOUT_*) + * @param out_sample_fmt output sample format (AV_SAMPLE_FMT_*). + * @param out_sample_rate output sample rate (frequency in Hz) + * @param in_ch_layout input channel layout (AV_CH_LAYOUT_*) + * @param in_sample_fmt input sample format (AV_SAMPLE_FMT_*). + * @param in_sample_rate input sample rate (frequency in Hz) + * @param log_offset logging level offset + * @param log_ctx parent logging context, can be NULL + * + * @see swr_init(), swr_free() + * @return 0 on success, a negative AVERROR code on error. + */ +int swr_alloc_set_opts2(struct SwrContext **ps, + AVChannelLayout *out_ch_layout, enum AVSampleFormat out_sample_fmt, int out_sample_rate, + AVChannelLayout *in_ch_layout, enum AVSampleFormat in_sample_fmt, int in_sample_rate, + int log_offset, void *log_ctx); /** * @} * @@ -362,6 +391,7 @@ int swr_set_compensation(struct SwrContext *s, int sample_delta, int compensatio */ int swr_set_channel_mapping(struct SwrContext *s, const int *channel_map); +#if FF_API_OLD_CHANNEL_LAYOUT /** * Generate a channel mixing matrix. * @@ -384,13 +414,46 @@ int swr_set_channel_mapping(struct SwrContext *s, const int *channel_map); * @param matrix_encoding matrixed stereo downmix mode (e.g. dplii) * @param log_ctx parent logging context, can be NULL * @return 0 on success, negative AVERROR code on failure + * @deprecated use @ref swr_build_matrix2() */ +attribute_deprecated int swr_build_matrix(uint64_t in_layout, uint64_t out_layout, double center_mix_level, double surround_mix_level, double lfe_mix_level, double rematrix_maxval, double rematrix_volume, double *matrix, int stride, enum AVMatrixEncoding matrix_encoding, void *log_ctx); +#endif + +/** + * Generate a channel mixing matrix. + * + * This function is the one used internally by libswresample for building the + * default mixing matrix. It is made public just as a utility function for + * building custom matrices. + * + * @param in_layout input channel layout + * @param out_layout output channel layout + * @param center_mix_level mix level for the center channel + * @param surround_mix_level mix level for the surround channel(s) + * @param lfe_mix_level mix level for the low-frequency effects channel + * @param rematrix_maxval if 1.0, coefficients will be normalized to prevent + * overflow. if INT_MAX, coefficients will not be + * normalized. + * @param[out] matrix mixing coefficients; matrix[i + stride * o] is + * the weight of input channel i in output channel o. + * @param stride distance between adjacent input channels in the + * matrix array + * @param matrix_encoding matrixed stereo downmix mode (e.g. dplii) + * @param log_ctx parent logging context, can be NULL + * @return 0 on success, negative AVERROR code on failure + */ +int swr_build_matrix2(const AVChannelLayout *in_layout, const AVChannelLayout *out_layout, + double center_mix_level, double surround_mix_level, + double lfe_mix_level, double maxval, + double rematrix_volume, double *matrix_param, + ptrdiff_t stride, enum AVMatrixEncoding matrix_encoding, + void *log_context); /** * Set a customized remix matrix. diff --git a/libswresample/swresample_frame.c b/libswresample/swresample_frame.c index d95c1cc537..747cf119a9 100644 --- a/libswresample/swresample_frame.c +++ b/libswresample/swresample_frame.c @@ -29,7 +29,19 @@ int swr_config_frame(SwrContext *s, const AVFrame *out, const AVFrame *in) swr_close(s); if (in) { - if (av_opt_set_int(s, "icl", in->channel_layout, 0) < 0) + AVChannelLayout in_ch_layout = { 0 }; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + // if the old/new fields are set inconsistently, prefer the old ones + if ((in->channel_layout && (in->ch_layout.order != AV_CHANNEL_ORDER_NATIVE || + in->ch_layout.u.mask != in->channel_layout))) { + av_channel_layout_from_mask(&in_ch_layout, in->channel_layout); +FF_ENABLE_DEPRECATION_WARNINGS + } else +#endif + if (av_channel_layout_copy(&in_ch_layout, &in->ch_layout) < 0) + goto fail; + if (av_opt_set_chlayout(s, "ichl", &in_ch_layout, 0) < 0) goto fail; if (av_opt_set_int(s, "isf", in->format, 0) < 0) goto fail; @@ -38,7 +50,19 @@ int swr_config_frame(SwrContext *s, const AVFrame *out, const AVFrame *in) } if (out) { - if (av_opt_set_int(s, "ocl", out->channel_layout, 0) < 0) + AVChannelLayout out_ch_layout = { 0 }; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + // if the old/new fields are set inconsistently, prefer the old ones + if ((out->channel_layout && (out->ch_layout.order != AV_CHANNEL_ORDER_NATIVE || + out->ch_layout.u.mask != out->channel_layout))) { + av_channel_layout_from_mask(&out_ch_layout, out->channel_layout); +FF_ENABLE_DEPRECATION_WARNINGS + } else +#endif + if (av_channel_layout_copy(&out_ch_layout, &out->ch_layout) < 0) + goto fail; + if (av_opt_set_chlayout(s, "ochl", &out_ch_layout, 0) < 0) goto fail; if (av_opt_set_int(s, "osf", out->format, 0) < 0) goto fail; @@ -58,7 +82,19 @@ static int config_changed(SwrContext *s, int ret = 0; if (in) { - if (s->in_ch_layout != in->channel_layout || + AVChannelLayout in_ch_layout = { 0 }; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + // if the old/new fields are set inconsistently, prefer the old ones + if ((in->channel_layout && (in->ch_layout.order != AV_CHANNEL_ORDER_NATIVE || + in->ch_layout.u.mask != in->channel_layout))) { + av_channel_layout_from_mask(&in_ch_layout, in->channel_layout); +FF_ENABLE_DEPRECATION_WARNINGS + } else +#endif + if ((ret = av_channel_layout_copy(&in_ch_layout, &in->ch_layout)) < 0) + return ret; + if (av_channel_layout_compare(&s->in_ch_layout, &in_ch_layout) || s->in_sample_rate != in->sample_rate || s->in_sample_fmt != in->format) { ret |= AVERROR_INPUT_CHANGED; @@ -66,7 +102,19 @@ static int config_changed(SwrContext *s, } if (out) { - if (s->out_ch_layout != out->channel_layout || + AVChannelLayout out_ch_layout = { 0 }; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + // if the old/new fields are set inconsistently, prefer the old ones + if ((out->channel_layout && (out->ch_layout.order != AV_CHANNEL_ORDER_NATIVE || + out->ch_layout.u.mask != out->channel_layout))) { + av_channel_layout_from_mask(&out_ch_layout, out->channel_layout); +FF_ENABLE_DEPRECATION_WARNINGS + } else +#endif + if ((ret = av_channel_layout_copy(&out_ch_layout, &out->ch_layout)) < 0) + return ret; + if (av_channel_layout_compare(&s->out_ch_layout, &out_ch_layout) || s->out_sample_rate != out->sample_rate || s->out_sample_fmt != out->format) { ret |= AVERROR_OUTPUT_CHANGED; @@ -116,7 +164,14 @@ static inline int available_samples(AVFrame *out) if (av_sample_fmt_is_planar(out->format)) { return samples; } else { - int channels = av_get_channel_layout_nb_channels(out->channel_layout); + int channels; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + channels = av_get_channel_layout_nb_channels(out->channel_layout); +FF_ENABLE_DEPRECATION_WARNINGS + if (!channels) +#endif + channels = out->ch_layout.nb_channels; return samples / channels; } } diff --git a/libswresample/swresample_internal.h b/libswresample/swresample_internal.h index f2ea5a226d..262a0e2b8c 100644 --- a/libswresample/swresample_internal.h +++ b/libswresample/swresample_internal.h @@ -99,8 +99,8 @@ struct SwrContext { enum AVSampleFormat in_sample_fmt; ///< input sample format enum AVSampleFormat int_sample_fmt; ///< internal sample format (AV_SAMPLE_FMT_FLTP or AV_SAMPLE_FMT_S16P) enum AVSampleFormat out_sample_fmt; ///< output sample format - int64_t in_ch_layout; ///< input channel layout - int64_t out_ch_layout; ///< output channel layout + AVChannelLayout in_ch_layout; ///< input channel layout + AVChannelLayout out_ch_layout; ///< output channel layout int in_sample_rate; ///< input sample rate int out_sample_rate; ///< output sample rate int flags; ///< miscellaneous flags such as SWR_FLAG_RESAMPLE @@ -114,11 +114,15 @@ struct SwrContext { int used_ch_count; ///< number of used input channels (mapped channel count if channel_map, otherwise in.ch_count) int engine; + int user_used_ch_count; ///< User set used channel count +#if FF_API_OLD_CHANNEL_LAYOUT int user_in_ch_count; ///< User set input channel count int user_out_ch_count; ///< User set output channel count - int user_used_ch_count; ///< User set used channel count int64_t user_in_ch_layout; ///< User set input channel layout int64_t user_out_ch_layout; ///< User set output channel layout +#endif + AVChannelLayout user_in_chlayout; ///< User set input channel layout + AVChannelLayout user_out_chlayout; ///< User set output channel layout enum AVSampleFormat user_int_sample_fmt; ///< User set internal sample format int user_dither_method; ///< User set dither method From patchwork Thu Jan 13 02:09: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: 33536 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp47177iog; Wed, 12 Jan 2022 18:52:57 -0800 (PST) X-Google-Smtp-Source: ABdhPJxMDkT9hn40XZgoMhBdI6osnNVlCDZ/fYslA5gR+tvfGrfBRp3556KLreTHA0svNqi65uMI X-Received: by 2002:a05:6402:4249:: with SMTP id g9mr2264170edb.321.1642042377019; Wed, 12 Jan 2022 18:52:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642042377; cv=none; d=google.com; s=arc-20160816; b=bXr2Vow49zZDYAj21ZCiqPjjQNl90medM1+h5hhsQ+4K3+M4XnaMbCgtmj7xHEFQas q1yrcIDXH5+9hRkQB7zQKPyh5byXt6j9ywI3K8MTvlSf/Iv+h9uwC+ZxJqPduAl2mNQp ErkB0wUsk/MyvVYJ5PoCfbhW8GRrh2n29qnVeTPxisPkQTeQV621FjSAsQg0rC28f1mj wzxCzrFZF8bgrxYGx2a/Kf5MsPXesjyhsrEkedioHP6FH9W/HR0ce2zMWv0ICBx+RaRP Q0SG6n2Zs1Au43qIwzHqs7zT2ugfuWATLqLBD5w3xSrc/qwqmAkWOUly1Sg8DWcD1+W9 UQtw== 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=AhEKqiU8TfLmYM3RgyP2RDiHcMMJrzOw9xwlSMRMYOQ=; b=f4m/lbJoES+NrEIVeazNUO9DbpoGWV2qhZOPbCLZCI2+tN8zSeDm46IkfRPsqFS7Li 6dXiC2yXetSLR9/YcY1wV0XtCDsKHPi3bRNEB5Wqwwce6Ajj2Gy6um3xZ3aJgFgjWPWD BiQBtuRpXutITI2zLgu0VmOeiYKlUfwRF47L04fgidb0V7FGCiaHd/qJ2SyfJ0cWEiX0 wN8/wWS/bITcfgWlu5y2sGa4H++/NS6vsSj190lBEopzRHgJzj7FiPV1rB2KFcTJpYfH T6R43fsVfJY0tAChlUYs69CkKmCv+XdR1w5voixuc8td9F1kY7Tqqjr7kgr96isWP2EM Exbg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=X29n10U6; 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 i3si839344ejp.412.2022.01.12.18.52.56; Wed, 12 Jan 2022 18:52:56 -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=X29n10U6; 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 A6C3368BAA2; Thu, 13 Jan 2022 04:09:42 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f178.google.com (mail-qk1-f178.google.com [209.85.222.178]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6458E68BA62 for ; Thu, 13 Jan 2022 04:09:38 +0200 (EET) Received: by mail-qk1-f178.google.com with SMTP id t24so5564354qkg.11 for ; Wed, 12 Jan 2022 18:09:38 -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=wVXEyHpTnE25WlNiWEzmRBU8tlaKq7zQPQcIM7rwg7c=; b=X29n10U6pVX82yC+6kcxt5OeezycFEe3POrlWbEbYMyqeJTkbJxuMIfnYXUXl3AiL/ N/4uO5W0JKBZKgo5t/b0Vxz1Nch8osCMY46HvtkHDrxPtVnBUU5gxXwaY56W+wwiizYS ACaVtUBm1qdYw10AT7iBZuSWOOtcsoXjseD8PDm36NUmKvG6Coe58yXWGb1XM9RhXqSD 3goziYKekWXAiUEEUGT1CrKxChdx7m/402/gKl+1Ct542wNUnpDEvdIaU1eKIvOKPNaX 1Q1vmJioP7nGaVV3oe4DALTm+82fG+jt8VWLP7fLfSVUfCpsEjkh2Wtk+RVGAbFTH0DA rzpw== 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=wVXEyHpTnE25WlNiWEzmRBU8tlaKq7zQPQcIM7rwg7c=; b=wNZeZ4pEUqkWog5KtjeFTkPxAPORIWD5dHtYZSMvmzBB7M2Nm7cTDs2Dend8lwLTSx CdyawWOCGs9g3MW7FqohEKmfp6ir+FTrRszSPDntMtEP/PmZXEEd3+x3ePFUPyFTItD4 QIew0XfsdeJzqEdH+5S9Ocw0brXRZU3GqipSFwfB8Guc5HCT/B7ciZGPURweqf0b2I3Q 5apU39q+awGJlI7d5BO8kSAAqxNpWWSsMUpcxhCVQslqjNEZyIfyPlGEq+EpRDuBEFG2 nmjdW7ipp9IUKnybBI7yGLKUeS/y6Qt6mh46QgeYtnh8SMXyH+j1kixNYteGzImvIfGG 6wAQ== X-Gm-Message-State: AOAM531XybN2N6sLNcZHkRpWasQC9JURyH2PyfaYEVSMYKLUQAOQGz9z zvjljf4nuZHna2fbGgo6QEGqwyhsaUs= X-Received: by 2002:a05:620a:c4e:: with SMTP id u14mr1754620qki.714.1642039775140; Wed, 12 Jan 2022 18:09:35 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u6sm1068031qko.83.2022.01.12.18.09.32 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:09:34 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:09:07 -0300 Message-Id: <20220113020913.870-6-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 275/281] avfilter: 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: G0UhqmZP7gVi Signed-off-by: James Almer --- libavfilter/aeval.c | 35 ++-- libavfilter/af_acontrast.c | 2 +- libavfilter/af_acrossover.c | 6 +- libavfilter/af_acrusher.c | 4 +- libavfilter/af_adeclick.c | 14 +- libavfilter/af_adecorrelate.c | 12 +- libavfilter/af_adelay.c | 8 +- libavfilter/af_adenorm.c | 6 +- libavfilter/af_aderivative.c | 2 +- libavfilter/af_adynamicequalizer.c | 6 +- libavfilter/af_adynamicsmooth.c | 2 +- libavfilter/af_aecho.c | 8 +- libavfilter/af_aemphasis.c | 6 +- libavfilter/af_aexciter.c | 10 +- libavfilter/af_afade.c | 10 +- libavfilter/af_afftdn.c | 26 +-- libavfilter/af_afftfilt.c | 30 ++-- libavfilter/af_afir.c | 49 +++--- libavfilter/af_aformat.c | 33 +++- libavfilter/af_afreqshift.c | 6 +- libavfilter/af_afwtdn.c | 8 +- libavfilter/af_agate.c | 14 +- libavfilter/af_aiir.c | 34 ++-- libavfilter/af_alimiter.c | 10 +- libavfilter/af_amerge.c | 40 +++-- libavfilter/af_amix.c | 4 +- libavfilter/af_amultiply.c | 4 +- libavfilter/af_anequalizer.c | 14 +- libavfilter/af_anlmdn.c | 4 +- libavfilter/af_anlms.c | 6 +- libavfilter/af_apad.c | 2 +- libavfilter/af_aphaser.c | 4 +- libavfilter/af_apsyclip.c | 8 +- libavfilter/af_apulsator.c | 2 +- libavfilter/af_aresample.c | 52 +++--- libavfilter/af_arnndn.c | 8 +- libavfilter/af_asdr.c | 8 +- libavfilter/af_asetnsamples.c | 4 +- libavfilter/af_ashowinfo.c | 17 +- libavfilter/af_asoftclip.c | 2 +- libavfilter/af_aspectralstats.c | 4 +- libavfilter/af_asr.c | 2 +- libavfilter/af_astats.c | 10 +- libavfilter/af_asubboost.c | 8 +- libavfilter/af_asupercut.c | 6 +- libavfilter/af_atempo.c | 2 +- libavfilter/af_atilt.c | 6 +- libavfilter/af_axcorrelate.c | 8 +- libavfilter/af_biquads.c | 54 +++--- libavfilter/af_bs2b.c | 2 +- libavfilter/af_channelmap.c | 90 ++++++---- libavfilter/af_channelsplit.c | 42 +++-- libavfilter/af_chorus.c | 14 +- libavfilter/af_compand.c | 14 +- libavfilter/af_compensationdelay.c | 9 +- libavfilter/af_crossfeed.c | 2 +- libavfilter/af_crystalizer.c | 4 +- libavfilter/af_dcshift.c | 4 +- libavfilter/af_deesser.c | 6 +- libavfilter/af_drmeter.c | 4 +- libavfilter/af_dynaudnorm.c | 24 +-- libavfilter/af_earwax.c | 2 +- libavfilter/af_extrastereo.c | 2 +- libavfilter/af_firequalizer.c | 31 ++-- libavfilter/af_flanger.c | 6 +- libavfilter/af_haas.c | 2 +- libavfilter/af_hdcd.c | 28 +-- libavfilter/af_headphone.c | 40 ++--- libavfilter/af_join.c | 270 +++++++++++++++++++---------- libavfilter/af_ladspa.c | 18 +- libavfilter/af_loudnorm.c | 86 ++++----- libavfilter/af_lv2.c | 19 +- libavfilter/af_mcompand.c | 16 +- libavfilter/af_pan.c | 74 +++----- libavfilter/af_replaygain.c | 2 +- libavfilter/af_rubberband.c | 2 +- libavfilter/af_sidechaincompress.c | 18 +- libavfilter/af_silencedetect.c | 8 +- libavfilter/af_silenceremove.c | 76 ++++---- libavfilter/af_sofalizer.c | 96 +++++----- libavfilter/af_speechnorm.c | 28 +-- libavfilter/af_stereotools.c | 2 +- libavfilter/af_stereowiden.c | 2 +- libavfilter/af_superequalizer.c | 2 +- libavfilter/af_surround.c | 90 +++++----- libavfilter/af_tremolo.c | 2 +- libavfilter/af_vibrato.c | 6 +- libavfilter/af_volume.c | 4 +- libavfilter/af_volumedetect.c | 2 +- libavfilter/asrc_afirsrc.c | 2 +- libavfilter/asrc_anoisesrc.c | 2 +- libavfilter/asrc_anullsrc.c | 13 +- libavfilter/asrc_flite.c | 6 +- libavfilter/asrc_hilbert.c | 2 +- libavfilter/asrc_sinc.c | 2 +- libavfilter/asrc_sine.c | 2 +- libavfilter/audio.c | 18 +- libavfilter/avf_abitscope.c | 10 +- libavfilter/avf_ahistogram.c | 6 +- libavfilter/avf_aphasemeter.c | 2 +- libavfilter/avf_avectorscope.c | 2 +- libavfilter/avf_concat.c | 2 +- libavfilter/avf_showcqt.c | 3 +- libavfilter/avf_showfreqs.c | 4 +- libavfilter/avf_showspatial.c | 4 +- libavfilter/avf_showspectrum.c | 15 +- libavfilter/avf_showvolume.c | 31 ++-- libavfilter/avf_showwaves.c | 12 +- libavfilter/avfilter.c | 21 ++- libavfilter/avfilter.h | 16 +- libavfilter/avfiltergraph.c | 84 +++++---- libavfilter/buffersink.c | 36 +++- libavfilter/buffersink.h | 7 +- libavfilter/buffersrc.c | 94 +++++++--- libavfilter/buffersrc.h | 9 + libavfilter/f_ebur128.c | 10 +- libavfilter/f_graphmonitor.c | 2 +- libavfilter/f_loop.c | 4 +- libavfilter/f_reverse.c | 4 +- libavfilter/f_streamselect.c | 6 +- libavfilter/formats.c | 151 +++++++++++----- libavfilter/formats.h | 16 +- libavfilter/framepool.c | 5 + libavfilter/framequeue.c | 4 +- libavfilter/graphdump.c | 4 +- libavfilter/internal.h | 2 +- libavfilter/src_movie.c | 19 +- libavfilter/tests/filtfmts.c | 3 +- libavfilter/tests/formats.c | 4 +- libavfilter/trim.c | 2 +- libavfilter/vaf_spectrumsynth.c | 2 +- tests/ref/fate/filter-formats | 20 +-- 132 files changed, 1413 insertions(+), 1019 deletions(-) diff --git a/libavfilter/aeval.c b/libavfilter/aeval.c index 42cfa81325..86cb0990dd 100644 --- a/libavfilter/aeval.c +++ b/libavfilter/aeval.c @@ -57,7 +57,7 @@ typedef struct EvalContext { const AVClass *class; char *sample_rate_str; int sample_rate; - int64_t chlayout; + AVChannelLayout chlayout; char *chlayout_str; int nb_channels; ///< number of output channels int nb_in_channels; ///< number of input channels @@ -70,7 +70,6 @@ typedef struct EvalContext { uint64_t n; double var_values[VAR_VARS_NB]; double *channel_values; - int64_t out_channel_layout; } EvalContext; static double val(void *priv, double ch) @@ -181,7 +180,7 @@ static av_cold int init(AVFilterContext *ctx) if (ret < 0) return ret; - ret = parse_channel_expressions(ctx, av_get_channel_layout_nb_channels(eval->chlayout)); + ret = parse_channel_expressions(ctx, eval->chlayout.nb_channels); if (ret < 0) return ret; } @@ -190,8 +189,8 @@ static av_cold int init(AVFilterContext *ctx) if ((ret = parse_channel_expressions(ctx, -1)) < 0) return ret; - eval->chlayout = av_get_default_channel_layout(eval->nb_channels); - if (!eval->chlayout && eval->nb_channels <= 0) { + av_channel_layout_default(&eval->chlayout, eval->nb_channels); + if (eval->nb_channels <= 0) { av_log(ctx, AV_LOG_ERROR, "Invalid number of channels '%d' provided\n", eval->nb_channels); return AVERROR(EINVAL); @@ -217,6 +216,7 @@ static av_cold void uninit(AVFilterContext *ctx) } av_freep(&eval->expr); av_freep(&eval->channel_values); + av_channel_layout_uninit(&eval->chlayout); } static int config_props(AVFilterLink *outlink) @@ -229,9 +229,9 @@ static int config_props(AVFilterLink *outlink) eval->var_values[VAR_S] = eval->sample_rate; eval->var_values[VAR_NB_IN_CHANNELS] = NAN; - eval->var_values[VAR_NB_OUT_CHANNELS] = outlink->channels; + eval->var_values[VAR_NB_OUT_CHANNELS] = outlink->ch_layout.nb_channels; - av_get_channel_layout_string(buf, sizeof(buf), 0, eval->chlayout); + av_channel_layout_describe(&eval->chlayout, buf, sizeof(buf)); av_log(outlink->src, AV_LOG_VERBOSE, "sample_rate:%d chlayout:%s duration:%"PRId64"\n", @@ -244,7 +244,7 @@ static int query_formats(AVFilterContext *ctx) { EvalContext *eval = ctx->priv; static const enum AVSampleFormat sample_fmts[] = { AV_SAMPLE_FMT_DBLP, AV_SAMPLE_FMT_NONE }; - int64_t chlayouts[] = { eval->chlayout ? eval->chlayout : FF_COUNT2LAYOUT(eval->nb_channels) , -1 }; + AVChannelLayout chlayouts[] = { eval->chlayout.nb_channels ? eval->chlayout : FF_COUNT2LAYOUT(eval->nb_channels), { 0 } }; int sample_rates[] = { eval->sample_rate, -1 }; int ret; @@ -365,9 +365,7 @@ static int aeval_query_formats(AVFilterContext *ctx) } else { // outlink supports only requested output channel layout layouts = NULL; - if ((ret = ff_add_channel_layout(&layouts, - eval->out_channel_layout ? eval->out_channel_layout : - FF_COUNT2LAYOUT(eval->nb_channels))) < 0) + if ((ret = ff_add_channel_layout(&layouts, &FF_COUNT2LAYOUT(eval->nb_channels))) < 0) return ret; if ((ret = ff_channel_layouts_ref(layouts, &outlink->incfg.channel_layouts)) < 0) return ret; @@ -387,20 +385,21 @@ static int aeval_config_output(AVFilterLink *outlink) int ret; if (eval->same_chlayout) { - eval->chlayout = inlink->channel_layout; + if ((ret = av_channel_layout_copy(&eval->chlayout, &inlink->ch_layout)) < 0) + return ret; - if ((ret = parse_channel_expressions(ctx, inlink->channels)) < 0) + if ((ret = parse_channel_expressions(ctx, inlink->ch_layout.nb_channels)) < 0) return ret; } eval->n = 0; - eval->nb_in_channels = eval->var_values[VAR_NB_IN_CHANNELS] = inlink->channels; - eval->var_values[VAR_NB_OUT_CHANNELS] = outlink->channels; + eval->nb_in_channels = eval->var_values[VAR_NB_IN_CHANNELS] = inlink->ch_layout.nb_channels; + eval->var_values[VAR_NB_OUT_CHANNELS] = outlink->ch_layout.nb_channels; eval->var_values[VAR_S] = inlink->sample_rate; eval->var_values[VAR_T] = NAN; eval->channel_values = av_realloc_f(eval->channel_values, - inlink->channels, sizeof(*eval->channel_values)); + inlink->ch_layout.nb_channels, sizeof(*eval->channel_values)); if (!eval->channel_values) return AVERROR(ENOMEM); @@ -430,10 +429,10 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) eval->var_values[VAR_N] = eval->n; eval->var_values[VAR_T] = t0 + i * (double)1/inlink->sample_rate; - for (j = 0; j < inlink->channels; j++) + for (j = 0; j < inlink->ch_layout.nb_channels; j++) eval->channel_values[j] = *((double *) in->extended_data[j] + i); - for (j = 0; j < outlink->channels; j++) { + for (j = 0; j < outlink->ch_layout.nb_channels; j++) { eval->var_values[VAR_CH] = j; *((double *) out->extended_data[j] + i) = av_expr_eval(eval->expr[j], eval->var_values, eval); diff --git a/libavfilter/af_acontrast.c b/libavfilter/af_acontrast.c index db7ff79d25..a4ed29e30a 100644 --- a/libavfilter/af_acontrast.c +++ b/libavfilter/af_acontrast.c @@ -152,7 +152,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) } s->filter((void **)out->extended_data, (const void **)in->extended_data, - in->nb_samples, in->channels, s->contrast / 750); + in->nb_samples, in->ch_layout.nb_channels, s->contrast / 750); if (out != in) av_frame_free(&in); diff --git a/libavfilter/af_acrossover.c b/libavfilter/af_acrossover.c index 9c00e1ddc2..05ea53fd83 100644 --- a/libavfilter/af_acrossover.c +++ b/libavfilter/af_acrossover.c @@ -356,8 +356,8 @@ static int filter_channels_## name(AVFilterContext *ctx, void *arg, int jobnr, i AudioCrossoverContext *s = ctx->priv; \ AVFrame *in = s->input_frame; \ AVFrame **frames = s->frames; \ - const int start = (in->channels * jobnr) / nb_jobs; \ - const int end = (in->channels * (jobnr+1)) / nb_jobs; \ + const int start = (in->ch_layout.nb_channels * jobnr) / nb_jobs; \ + const int end = (in->ch_layout.nb_channels * (jobnr+1)) / nb_jobs; \ const int nb_samples = in->nb_samples; \ const int nb_outs = ctx->nb_outputs; \ const int first_order = s->first_order; \ @@ -498,7 +498,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) s->input_frame = in; ff_filter_execute(ctx, s->filter_channels, NULL, NULL, - FFMIN(inlink->channels, ff_filter_get_nb_threads(ctx))); + FFMIN(inlink->ch_layout.nb_channels, ff_filter_get_nb_threads(ctx))); for (i = 0; i < ctx->nb_outputs; i++) { ret = ff_filter_frame(ctx->outputs[i], frames[i]); diff --git a/libavfilter/af_acrusher.c b/libavfilter/af_acrusher.c index 14d66e88ea..d59211ee29 100644 --- a/libavfilter/af_acrusher.c +++ b/libavfilter/af_acrusher.c @@ -244,7 +244,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) s->round = round(s->samples); } - for (c = 0; c < inlink->channels; c++) { + for (c = 0; c < inlink->ch_layout.nb_channels; c++) { double sample = src[c] * level_in; sample = mix * samplereduction(s, &s->sr[c], sample) + src[c] * (1. - mix) * level_in; @@ -296,7 +296,7 @@ static int config_input(AVFilterLink *inlink) s->lfo.amount = .5; if (!s->sr) - s->sr = av_calloc(inlink->channels, sizeof(*s->sr)); + s->sr = av_calloc(inlink->ch_layout.nb_channels, sizeof(*s->sr)); if (!s->sr) return AVERROR(ENOMEM); diff --git a/libavfilter/af_adeclick.c b/libavfilter/af_adeclick.c index 77336e50bb..2db9a29fd3 100644 --- a/libavfilter/af_adeclick.c +++ b/libavfilter/af_adeclick.c @@ -151,7 +151,7 @@ static int config_input(AVFilterLink *inlink) s->efifo = av_audio_fifo_alloc(inlink->format, 1, s->window_size); if (!s->efifo) return AVERROR(ENOMEM); - s->fifo = av_audio_fifo_alloc(inlink->format, inlink->channels, s->window_size); + s->fifo = av_audio_fifo_alloc(inlink->format, inlink->ch_layout.nb_channels, s->window_size); if (!s->fifo) return AVERROR(ENOMEM); s->overlap_skip = s->method ? (s->window_size - s->hop_size) / 2 : 0; @@ -160,12 +160,12 @@ static int config_input(AVFilterLink *inlink) s->overlap_skip); } - s->nb_channels = inlink->channels; - s->chan = av_calloc(inlink->channels, sizeof(*s->chan)); + s->nb_channels = inlink->ch_layout.nb_channels; + s->chan = av_calloc(inlink->ch_layout.nb_channels, sizeof(*s->chan)); if (!s->chan) return AVERROR(ENOMEM); - for (i = 0; i < inlink->channels; i++) { + for (i = 0; i < inlink->ch_layout.nb_channels; i++) { DeclickChannel *c = &s->chan[i]; c->detection = av_calloc(s->window_size, sizeof(*c->detection)); @@ -557,11 +557,11 @@ static int filter_frame(AVFilterLink *inlink) goto fail; td.out = out; - ret = ff_filter_execute(ctx, filter_channel, &td, NULL, inlink->channels); + ret = ff_filter_execute(ctx, filter_channel, &td, NULL, inlink->ch_layout.nb_channels); if (ret < 0) goto fail; - for (ch = 0; ch < s->in->channels; ch++) { + for (ch = 0; ch < s->in->ch_layout.nb_channels; ch++) { double *is = (double *)s->is->extended_data[ch]; for (j = 0; j < s->hop_size; j++) { @@ -580,7 +580,7 @@ static int filter_frame(AVFilterLink *inlink) s->pts += av_rescale_q(s->hop_size, (AVRational){1, outlink->sample_rate}, outlink->time_base); s->detected_errors += detected_errors; - s->nb_samples += out->nb_samples * inlink->channels; + s->nb_samples += out->nb_samples * inlink->ch_layout.nb_channels; ret = ff_filter_frame(outlink, out); if (ret < 0) diff --git a/libavfilter/af_adecorrelate.c b/libavfilter/af_adecorrelate.c index bac7937c10..cadc62c1f7 100644 --- a/libavfilter/af_adecorrelate.c +++ b/libavfilter/af_adecorrelate.c @@ -131,12 +131,12 @@ static int config_input(AVFilterLink *inlink) s->seed = av_get_random_seed(); av_lfg_init(&s->c, s->seed); - s->nb_channels = inlink->channels; - s->ap = av_calloc(inlink->channels, sizeof(*s->ap)); + s->nb_channels = inlink->ch_layout.nb_channels; + s->ap = av_calloc(inlink->ch_layout.nb_channels, sizeof(*s->ap)); if (!s->ap) return AVERROR(ENOMEM); - for (int i = 0; i < inlink->channels; i++) { + for (int i = 0; i < inlink->ch_layout.nb_channels; i++) { for (int j = 0; j < s->stages; j++) { ret = ap_init(&s->ap[i][j], inlink->sample_rate, (double)av_lfg_get(&s->c) / 0xffffffff * 2.2917e-3 + 0.83333e-3); @@ -160,8 +160,8 @@ static int filter_channels(AVFilterContext *ctx, void *arg, int jobnr, int nb_jo ThreadData *td = arg; AVFrame *out = td->out; AVFrame *in = td->in; - const int start = (in->channels * jobnr) / nb_jobs; - const int end = (in->channels * (jobnr+1)) / nb_jobs; + const int start = (in->ch_layout.nb_channels * jobnr) / nb_jobs; + const int end = (in->ch_layout.nb_channels * (jobnr+1)) / nb_jobs; for (int ch = start; ch < end; ch++) s->filter_channel(ctx, ch, in, out); @@ -189,7 +189,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) td.in = in; td.out = out; ff_filter_execute(ctx, filter_channels, &td, NULL, - FFMIN(inlink->channels, ff_filter_get_nb_threads(ctx))); + FFMIN(inlink->ch_layout.nb_channels, ff_filter_get_nb_threads(ctx))); if (out != in) av_frame_free(&in); diff --git a/libavfilter/af_adelay.c b/libavfilter/af_adelay.c index ed8a8ae739..c7a8763b36 100644 --- a/libavfilter/af_adelay.c +++ b/libavfilter/af_adelay.c @@ -103,10 +103,10 @@ static int config_input(AVFilterLink *inlink) char *p, *arg, *saveptr = NULL; int i; - s->chandelay = av_calloc(inlink->channels, sizeof(*s->chandelay)); + s->chandelay = av_calloc(inlink->ch_layout.nb_channels, sizeof(*s->chandelay)); if (!s->chandelay) return AVERROR(ENOMEM); - s->nb_delays = inlink->channels; + s->nb_delays = inlink->ch_layout.nb_channels; s->block_align = av_get_bytes_per_sample(inlink->format); p = s->delays; @@ -242,7 +242,7 @@ static int activate(AVFilterContext *ctx) av_samples_set_silence(frame->extended_data, 0, frame->nb_samples, - outlink->channels, + outlink->ch_layout.nb_channels, frame->format); frame->pts = s->next_pts; @@ -274,7 +274,7 @@ static int activate(AVFilterContext *ctx) av_samples_set_silence(frame->extended_data, 0, frame->nb_samples, - outlink->channels, + outlink->ch_layout.nb_channels, frame->format); frame->pts = s->next_pts; diff --git a/libavfilter/af_adenorm.c b/libavfilter/af_adenorm.c index 3ad1e7f594..04e3338b1a 100644 --- a/libavfilter/af_adenorm.c +++ b/libavfilter/af_adenorm.c @@ -200,8 +200,8 @@ static int filter_channels(AVFilterContext *ctx, void *arg, int jobnr, int nb_jo ThreadData *td = arg; AVFrame *out = td->out; AVFrame *in = td->in; - const int start = (in->channels * jobnr) / nb_jobs; - const int end = (in->channels * (jobnr+1)) / nb_jobs; + const int start = (in->ch_layout.nb_channels * jobnr) / nb_jobs; + const int end = (in->ch_layout.nb_channels * (jobnr+1)) / nb_jobs; for (int ch = start; ch < end; ch++) { s->filter(ctx, out->extended_data[ch], @@ -234,7 +234,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) s->level = exp(s->level_db / 20. * M_LN10); td.in = in; td.out = out; ff_filter_execute(ctx, filter_channels, &td, NULL, - FFMIN(inlink->channels, ff_filter_get_nb_threads(ctx))); + FFMIN(inlink->ch_layout.nb_channels, ff_filter_get_nb_threads(ctx))); s->in_samples += in->nb_samples; diff --git a/libavfilter/af_aderivative.c b/libavfilter/af_aderivative.c index baa272d609..0ebb233a58 100644 --- a/libavfilter/af_aderivative.c +++ b/libavfilter/af_aderivative.c @@ -120,7 +120,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) } s->filter((void **)out->extended_data, (void **)s->prev->extended_data, (const void **)in->extended_data, - in->nb_samples, in->channels); + in->nb_samples, in->ch_layout.nb_channels); av_frame_free(&in); return ff_filter_frame(outlink, out); diff --git a/libavfilter/af_adynamicequalizer.c b/libavfilter/af_adynamicequalizer.c index f377a5db3d..4ebdd1815d 100644 --- a/libavfilter/af_adynamicequalizer.c +++ b/libavfilter/af_adynamicequalizer.c @@ -157,8 +157,8 @@ static int filter_channels(AVFilterContext *ctx, void *arg, int jobnr, int nb_jo const double tqfactor = s->tqfactor; const double fg = tan(M_PI * tfrequency / sample_rate); const double dg = tan(M_PI * dfrequency / sample_rate); - const int start = (in->channels * jobnr) / nb_jobs; - const int end = (in->channels * (jobnr+1)) / nb_jobs; + const int start = (in->ch_layout.nb_channels * jobnr) / nb_jobs; + const int end = (in->ch_layout.nb_channels * (jobnr+1)) / nb_jobs; const int mode = s->mode; const double knee = s->knee; const double slew = s->slew; @@ -245,7 +245,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) td.in = in; td.out = out; ff_filter_execute(ctx, filter_channels, &td, NULL, - FFMIN(outlink->channels, ff_filter_get_nb_threads(ctx))); + FFMIN(outlink->ch_layout.nb_channels, ff_filter_get_nb_threads(ctx))); if (out != in) av_frame_free(&in); diff --git a/libavfilter/af_adynamicsmooth.c b/libavfilter/af_adynamicsmooth.c index 4e00fecc6a..3f98d09f5d 100644 --- a/libavfilter/af_adynamicsmooth.c +++ b/libavfilter/af_adynamicsmooth.c @@ -63,7 +63,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) av_frame_copy_props(out, in); } - for (int ch = 0; ch < out->channels; ch++) { + for (int ch = 0; ch < out->ch_layout.nb_channels; ch++) { const double *src = (const double *)in->extended_data[ch]; double *dst = (double *)out->extended_data[ch]; double *coeffs = (double *)s->coeffs->extended_data[ch]; diff --git a/libavfilter/af_aecho.c b/libavfilter/af_aecho.c index 73d9f1ac7f..e610c30d59 100644 --- a/libavfilter/af_aecho.c +++ b/libavfilter/af_aecho.c @@ -236,7 +236,7 @@ static int config_output(AVFilterLink *outlink) av_freep(&s->delayptrs); return av_samples_alloc_array_and_samples(&s->delayptrs, NULL, - outlink->channels, + outlink->ch_layout.nb_channels, s->max_samples, outlink->format, 0); } @@ -259,7 +259,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame) } s->echo_samples(s, s->delayptrs, frame->extended_data, out_frame->extended_data, - frame->nb_samples, inlink->channels); + frame->nb_samples, inlink->ch_layout.nb_channels); s->next_pts = frame->pts + av_rescale_q(frame->nb_samples, (AVRational){1, inlink->sample_rate}, inlink->time_base); @@ -282,11 +282,11 @@ static int request_frame(AVFilterLink *outlink) av_samples_set_silence(frame->extended_data, 0, frame->nb_samples, - outlink->channels, + outlink->ch_layout.nb_channels, frame->format); s->echo_samples(s, s->delayptrs, frame->extended_data, frame->extended_data, - frame->nb_samples, outlink->channels); + frame->nb_samples, outlink->ch_layout.nb_channels); frame->pts = s->next_pts; if (s->next_pts != AV_NOPTS_VALUE) diff --git a/libavfilter/af_aemphasis.c b/libavfilter/af_aemphasis.c index 1adfcdb63b..91878987d3 100644 --- a/libavfilter/af_aemphasis.c +++ b/libavfilter/af_aemphasis.c @@ -105,8 +105,8 @@ static int filter_channels(AVFilterContext *ctx, void *arg, int jobnr, int nb_jo ThreadData *td = arg; AVFrame *out = td->out; AVFrame *in = td->in; - const int start = (in->channels * jobnr) / nb_jobs; - const int end = (in->channels * (jobnr+1)) / nb_jobs; + const int start = (in->ch_layout.nb_channels * jobnr) / nb_jobs; + const int end = (in->ch_layout.nb_channels * (jobnr+1)) / nb_jobs; for (int ch = start; ch < end; ch++) { const double *src = (const double *)in->extended_data[ch]; @@ -144,7 +144,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) td.in = in; td.out = out; ff_filter_execute(ctx, filter_channels, &td, NULL, - FFMIN(inlink->channels, ff_filter_get_nb_threads(ctx))); + FFMIN(inlink->ch_layout.nb_channels, ff_filter_get_nb_threads(ctx))); if (in != out) av_frame_free(&in); diff --git a/libavfilter/af_aexciter.c b/libavfilter/af_aexciter.c index 5d76f290a0..8e829f992b 100644 --- a/libavfilter/af_aexciter.c +++ b/libavfilter/af_aexciter.c @@ -195,7 +195,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) dst = (double *)out->data[0]; for (int n = 0; n < in->nb_samples; n++) { - for (int c = 0; c < inlink->channels; c++) { + for (int c = 0; c < inlink->ch_layout.nb_channels; c++) { double sample = src[c] * level_in; sample = distortion_process(s, &s->cp[c], sample); @@ -208,8 +208,8 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) dst[c] = sample; } - src += inlink->channels; - dst += inlink->channels; + src += inlink->ch_layout.nb_channels; + dst += inlink->ch_layout.nb_channels; } if (in != out) @@ -231,11 +231,11 @@ static int config_input(AVFilterLink *inlink) AExciterContext *s = ctx->priv; if (!s->cp) - s->cp = av_calloc(inlink->channels, sizeof(*s->cp)); + s->cp = av_calloc(inlink->ch_layout.nb_channels, sizeof(*s->cp)); if (!s->cp) return AVERROR(ENOMEM); - for (int i = 0; i < inlink->channels; i++) + for (int i = 0; i < inlink->ch_layout.nb_channels; i++) set_params(&s->cp[i], s->blend, s->drive, inlink->sample_rate, s->freq, s->ceil); diff --git a/libavfilter/af_afade.c b/libavfilter/af_afade.c index c57709050e..e31467ee2b 100644 --- a/libavfilter/af_afade.c +++ b/libavfilter/af_afade.c @@ -289,7 +289,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf) if ((!s->type && (cur_sample + nb_samples < s->start_sample)) || ( s->type && (s->start_sample + s->nb_samples < cur_sample))) { av_samples_set_silence(out_buf->extended_data, 0, nb_samples, - out_buf->channels, out_buf->format); + out_buf->ch_layout.nb_channels, out_buf->format); } else { int64_t start; @@ -299,7 +299,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf) start = s->start_sample + s->nb_samples - cur_sample; s->fade_samples(out_buf->extended_data, buf->extended_data, - nb_samples, buf->channels, + nb_samples, buf->ch_layout.nb_channels, s->type ? -1 : 1, start, s->nb_samples, s->curve); } @@ -502,7 +502,7 @@ static int activate(AVFilterContext *ctx) s->crossfade_samples(out->extended_data, cf[0]->extended_data, cf[1]->extended_data, - s->nb_samples, out->channels, + s->nb_samples, out->ch_layout.nb_channels, s->curve, s->curve2); out->pts = s->pts; s->pts += av_rescale_q(s->nb_samples, @@ -523,7 +523,7 @@ static int activate(AVFilterContext *ctx) } s->fade_samples(out->extended_data, cf[0]->extended_data, s->nb_samples, - outlink->channels, -1, s->nb_samples - 1, s->nb_samples, s->curve); + outlink->ch_layout.nb_channels, -1, s->nb_samples - 1, s->nb_samples, s->curve); out->pts = s->pts; s->pts += av_rescale_q(s->nb_samples, (AVRational){ 1, outlink->sample_rate }, outlink->time_base); @@ -543,7 +543,7 @@ static int activate(AVFilterContext *ctx) } s->fade_samples(out->extended_data, cf[1]->extended_data, s->nb_samples, - outlink->channels, 1, 0, s->nb_samples, s->curve2); + outlink->ch_layout.nb_channels, 1, 0, s->nb_samples, s->curve2); out->pts = s->pts; s->pts += av_rescale_q(s->nb_samples, (AVRational){ 1, outlink->sample_rate }, outlink->time_base); diff --git a/libavfilter/af_afftdn.c b/libavfilter/af_afftdn.c index d1dbbc667b..a70a969ab9 100644 --- a/libavfilter/af_afftdn.c +++ b/libavfilter/af_afftdn.c @@ -616,12 +616,12 @@ static int config_input(AVFilterLink *inlink) double wscale, sar, sum, sdiv; int i, j, k, m, n, ret; - s->dnch = av_calloc(inlink->channels, sizeof(*s->dnch)); + s->dnch = av_calloc(inlink->ch_layout.nb_channels, sizeof(*s->dnch)); if (!s->dnch) return AVERROR(ENOMEM); s->pts = AV_NOPTS_VALUE; - s->channels = inlink->channels; + s->channels = inlink->ch_layout.nb_channels; s->sample_rate = inlink->sample_rate; s->sample_advance = s->sample_rate / 80; s->window_length = 3 * s->sample_advance; @@ -680,7 +680,7 @@ static int config_input(AVFilterLink *inlink) if (!s->band_alpha || !s->band_beta) return AVERROR(ENOMEM); - for (int ch = 0; ch < inlink->channels; ch++) { + for (int ch = 0; ch < inlink->ch_layout.nb_channels; ch++) { DeNoiseChannel *dnch = &s->dnch[ch]; float scale; @@ -761,7 +761,7 @@ static int config_input(AVFilterLink *inlink) return AVERROR(ENOMEM); } - for (int ch = 0; ch < inlink->channels; ch++) { + for (int ch = 0; ch < inlink->ch_layout.nb_channels; ch++) { DeNoiseChannel *dnch = &s->dnch[ch]; double *prior_band_excit = dnch->prior_band_excit; double *prior = dnch->prior; @@ -857,7 +857,7 @@ static int config_input(AVFilterLink *inlink) } s->noise_band_count = s->noise_band_edge[16]; - s->fifo = av_audio_fifo_alloc(inlink->format, inlink->channels, s->fft_length); + s->fifo = av_audio_fifo_alloc(inlink->format, inlink->ch_layout.nb_channels, s->fft_length); if (!s->fifo) return AVERROR(ENOMEM); @@ -1095,8 +1095,8 @@ static int filter_channel(AVFilterContext *ctx, void *arg, int jobnr, int nb_job AudioFFTDeNoiseContext *s = ctx->priv; ThreadData *td = arg; AVFrame *in = td->in; - const int start = (in->channels * jobnr) / nb_jobs; - const int end = (in->channels * (jobnr+1)) / nb_jobs; + const int start = (in->ch_layout.nb_channels * jobnr) / nb_jobs; + const int end = (in->ch_layout.nb_channels * (jobnr+1)) / nb_jobs; for (int ch = start; ch < end; ch++) { DeNoiseChannel *dnch = &s->dnch[ch]; @@ -1179,7 +1179,7 @@ static int output_frame(AVFilterLink *inlink) goto end; if (s->track_noise) { - for (int ch = 0; ch < inlink->channels; ch++) { + for (int ch = 0; ch < inlink->ch_layout.nb_channels; ch++) { DeNoiseChannel *dnch = &s->dnch[ch]; double levels[15]; @@ -1192,7 +1192,7 @@ static int output_frame(AVFilterLink *inlink) } if (s->sample_noise_start) { - for (int ch = 0; ch < inlink->channels; ch++) { + for (int ch = 0; ch < inlink->ch_layout.nb_channels; ch++) { DeNoiseChannel *dnch = &s->dnch[ch]; init_sample_noise(dnch); @@ -1202,7 +1202,7 @@ static int output_frame(AVFilterLink *inlink) } if (s->sample_noise) { - for (int ch = 0; ch < inlink->channels; ch++) { + for (int ch = 0; ch < inlink->ch_layout.nb_channels; ch++) { DeNoiseChannel *dnch = &s->dnch[ch]; sample_noise_block(s, dnch, in, ch); @@ -1210,7 +1210,7 @@ static int output_frame(AVFilterLink *inlink) } if (s->sample_noise_end) { - for (int ch = 0; ch < inlink->channels; ch++) { + for (int ch = 0; ch < inlink->ch_layout.nb_channels; ch++) { DeNoiseChannel *dnch = &s->dnch[ch]; double sample_noise[15]; @@ -1225,7 +1225,7 @@ static int output_frame(AVFilterLink *inlink) s->block_count++; td.in = in; ff_filter_execute(ctx, filter_channel, &td, NULL, - FFMIN(outlink->channels, ff_filter_get_nb_threads(ctx))); + FFMIN(outlink->ch_layout.nb_channels, ff_filter_get_nb_threads(ctx))); out = ff_get_audio_buffer(outlink, s->sample_advance); if (!out) { @@ -1233,7 +1233,7 @@ static int output_frame(AVFilterLink *inlink) goto end; } - for (int ch = 0; ch < inlink->channels; ch++) { + for (int ch = 0; ch < inlink->ch_layout.nb_channels; ch++) { DeNoiseChannel *dnch = &s->dnch[ch]; double *src = dnch->out_samples; float *orig = (float *)in->extended_data[ch]; diff --git a/libavfilter/af_afftfilt.c b/libavfilter/af_afftfilt.c index 691feeae36..2e3b9a0eca 100644 --- a/libavfilter/af_afftfilt.c +++ b/libavfilter/af_afftfilt.c @@ -112,7 +112,7 @@ static int config_input(AVFilterLink *inlink) const char *last_expr = "1"; int buf_size; - s->channels = inlink->channels; + s->channels = inlink->ch_layout.nb_channels; s->pts = AV_NOPTS_VALUE; ret = av_tx_init(&s->fft, &s->tx_fn, AV_TX_FLOAT_FFT, 0, s->fft_size, &scale, 0); if (ret < 0) @@ -125,19 +125,19 @@ static int config_input(AVFilterLink *inlink) s->window_size = s->fft_size; buf_size = FFALIGN(s->window_size, av_cpu_max_align()); - s->fft_in = av_calloc(inlink->channels, sizeof(*s->fft_in)); + s->fft_in = av_calloc(inlink->ch_layout.nb_channels, sizeof(*s->fft_in)); if (!s->fft_in) return AVERROR(ENOMEM); - s->fft_out = av_calloc(inlink->channels, sizeof(*s->fft_out)); + s->fft_out = av_calloc(inlink->ch_layout.nb_channels, sizeof(*s->fft_out)); if (!s->fft_out) return AVERROR(ENOMEM); - s->fft_temp = av_calloc(inlink->channels, sizeof(*s->fft_temp)); + s->fft_temp = av_calloc(inlink->ch_layout.nb_channels, sizeof(*s->fft_temp)); if (!s->fft_temp) return AVERROR(ENOMEM); - for (ch = 0; ch < inlink->channels; ch++) { + for (ch = 0; ch < inlink->ch_layout.nb_channels; ch++) { s->fft_in[ch] = av_calloc(buf_size, sizeof(**s->fft_in)); if (!s->fft_in[ch]) return AVERROR(ENOMEM); @@ -151,11 +151,11 @@ static int config_input(AVFilterLink *inlink) return AVERROR(ENOMEM); } - s->real = av_calloc(inlink->channels, sizeof(*s->real)); + s->real = av_calloc(inlink->ch_layout.nb_channels, sizeof(*s->real)); if (!s->real) return AVERROR(ENOMEM); - s->imag = av_calloc(inlink->channels, sizeof(*s->imag)); + s->imag = av_calloc(inlink->ch_layout.nb_channels, sizeof(*s->imag)); if (!s->imag) return AVERROR(ENOMEM); @@ -163,7 +163,7 @@ static int config_input(AVFilterLink *inlink) if (!args) return AVERROR(ENOMEM); - for (ch = 0; ch < inlink->channels; ch++) { + for (ch = 0; ch < inlink->ch_layout.nb_channels; ch++) { char *arg = av_strtok(ch == 0 ? args : NULL, "|", &saveptr); ret = av_expr_parse(&s->real[ch], arg ? arg : last_expr, var_names, @@ -183,7 +183,7 @@ static int config_input(AVFilterLink *inlink) saveptr = NULL; last_expr = "1"; - for (ch = 0; ch < inlink->channels; ch++) { + for (ch = 0; ch < inlink->ch_layout.nb_channels; ch++) { char *arg = av_strtok(ch == 0 ? args : NULL, "|", &saveptr); ret = av_expr_parse(&s->imag[ch], arg ? arg : last_expr, var_names, @@ -196,7 +196,7 @@ static int config_input(AVFilterLink *inlink) av_freep(&args); - s->fifo = av_audio_fifo_alloc(inlink->format, inlink->channels, s->window_size); + s->fifo = av_audio_fifo_alloc(inlink->format, inlink->ch_layout.nb_channels, s->window_size); if (!s->fifo) return AVERROR(ENOMEM); @@ -243,7 +243,7 @@ static int filter_frame(AVFilterLink *inlink) if (ret < 0) goto fail; - for (ch = 0; ch < inlink->channels; ch++) { + for (ch = 0; ch < inlink->ch_layout.nb_channels; ch++) { const float *src = (float *)in->extended_data[ch]; AVComplexFloat *fft_in = s->fft_in[ch]; @@ -261,16 +261,16 @@ static int filter_frame(AVFilterLink *inlink) values[VAR_PTS] = s->pts; values[VAR_SAMPLE_RATE] = inlink->sample_rate; values[VAR_NBBINS] = window_size / 2; - values[VAR_CHANNELS] = inlink->channels; + values[VAR_CHANNELS] = inlink->ch_layout.nb_channels; - for (ch = 0; ch < inlink->channels; ch++) { + for (ch = 0; ch < inlink->ch_layout.nb_channels; ch++) { AVComplexFloat *fft_in = s->fft_in[ch]; AVComplexFloat *fft_out = s->fft_out[ch]; s->tx_fn(s->fft, fft_out, fft_in, sizeof(float)); } - for (ch = 0; ch < inlink->channels; ch++) { + for (ch = 0; ch < inlink->ch_layout.nb_channels; ch++) { AVComplexFloat *fft_out = s->fft_out[ch]; AVComplexFloat *fft_temp = s->fft_temp[ch]; float *buf = (float *)s->buffer->extended_data[ch]; @@ -319,7 +319,7 @@ static int filter_frame(AVFilterLink *inlink) out->pts = s->pts; s->pts += av_rescale_q(s->hop_size, (AVRational){1, outlink->sample_rate}, outlink->time_base); - for (ch = 0; ch < inlink->channels; ch++) { + for (ch = 0; ch < inlink->ch_layout.nb_channels; ch++) { float *dst = (float *)out->extended_data[ch]; float *buf = (float *)s->buffer->extended_data[ch]; diff --git a/libavfilter/af_afir.c b/libavfilter/af_afir.c index ace5087e90..fa4cad82e2 100644 --- a/libavfilter/af_afir.c +++ b/libavfilter/af_afir.c @@ -201,8 +201,8 @@ static int fir_channel(AVFilterContext *ctx, AVFrame *out, int ch) static int fir_channels(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs) { AVFrame *out = arg; - const int start = (out->channels * jobnr) / nb_jobs; - const int end = (out->channels * (jobnr+1)) / nb_jobs; + const int start = (out->ch_layout.nb_channels * jobnr) / nb_jobs; + const int end = (out->ch_layout.nb_channels * (jobnr+1)) / nb_jobs; for (int ch = start; ch < end; ch++) { fir_channel(ctx, out, ch); @@ -226,7 +226,7 @@ static int fir_frame(AudioFIRContext *s, AVFrame *in, AVFilterLink *outlink) s->pts = in->pts; s->in = in; ff_filter_execute(ctx, fir_channels, out, NULL, - FFMIN(outlink->channels, ff_filter_get_nb_threads(ctx))); + FFMIN(outlink->ch_layout.nb_channels, ff_filter_get_nb_threads(ctx))); out->pts = s->pts; if (s->pts != AV_NOPTS_VALUE) @@ -304,7 +304,7 @@ static void draw_response(AVFilterContext *ctx, AVFrame *out) if (!mag || !phase || !delay) goto end; - channel = av_clip(s->ir_channel, 0, s->ir[s->selir]->channels - 1); + channel = av_clip(s->ir_channel, 0, s->ir[s->selir]->ch_layout.nb_channels - 1); for (i = 0; i < s->w; i++) { const float *src = (const float *)s->ir[s->selir]->extended_data[channel]; double w = i * M_PI / (s->w - 1); @@ -381,8 +381,8 @@ static int init_segment(AVFilterContext *ctx, AudioFIRSegment *seg, { AudioFIRContext *s = ctx->priv; - seg->rdft = av_calloc(ctx->inputs[0]->channels, sizeof(*seg->rdft)); - seg->irdft = av_calloc(ctx->inputs[0]->channels, sizeof(*seg->irdft)); + seg->rdft = av_calloc(ctx->inputs[0]->ch_layout.nb_channels, sizeof(*seg->rdft)); + seg->irdft = av_calloc(ctx->inputs[0]->ch_layout.nb_channels, sizeof(*seg->irdft)); if (!seg->rdft || !seg->irdft) return AVERROR(ENOMEM); @@ -394,12 +394,12 @@ static int init_segment(AVFilterContext *ctx, AudioFIRSegment *seg, seg->input_size = offset + s->min_part_size; seg->input_offset = offset; - seg->part_index = av_calloc(ctx->inputs[0]->channels, sizeof(*seg->part_index)); - seg->output_offset = av_calloc(ctx->inputs[0]->channels, sizeof(*seg->output_offset)); + seg->part_index = av_calloc(ctx->inputs[0]->ch_layout.nb_channels, sizeof(*seg->part_index)); + seg->output_offset = av_calloc(ctx->inputs[0]->ch_layout.nb_channels, sizeof(*seg->output_offset)); if (!seg->part_index || !seg->output_offset) return AVERROR(ENOMEM); - for (int ch = 0; ch < ctx->inputs[0]->channels && part_size >= 8; ch++) { + for (int ch = 0; ch < ctx->inputs[0]->ch_layout.nb_channels && part_size >= 8; ch++) { seg->rdft[ch] = av_rdft_init(av_log2(2 * part_size), DFT_R2C); seg->irdft[ch] = av_rdft_init(av_log2(2 * part_size), IDFT_C2R); if (!seg->rdft[ch] || !seg->irdft[ch]) @@ -506,25 +506,25 @@ static int convert_coeffs(AVFilterContext *ctx) /* nothing to do */ break; case 0: - for (ch = 0; ch < ctx->inputs[1 + s->selir]->channels; ch++) { + for (ch = 0; ch < ctx->inputs[1 + s->selir]->ch_layout.nb_channels; ch++) { float *time = (float *)s->ir[s->selir]->extended_data[!s->one2many * ch]; for (i = 0; i < cur_nb_taps; i++) power += FFABS(time[i]); } - s->gain = ctx->inputs[1 + s->selir]->channels / power; + s->gain = ctx->inputs[1 + s->selir]->ch_layout.nb_channels / power; break; case 1: - for (ch = 0; ch < ctx->inputs[1 + s->selir]->channels; ch++) { + for (ch = 0; ch < ctx->inputs[1 + s->selir]->ch_layout.nb_channels; ch++) { float *time = (float *)s->ir[s->selir]->extended_data[!s->one2many * ch]; for (i = 0; i < cur_nb_taps; i++) power += time[i]; } - s->gain = ctx->inputs[1 + s->selir]->channels / power; + s->gain = ctx->inputs[1 + s->selir]->ch_layout.nb_channels / power; break; case 2: - for (ch = 0; ch < ctx->inputs[1 + s->selir]->channels; ch++) { + for (ch = 0; ch < ctx->inputs[1 + s->selir]->ch_layout.nb_channels; ch++) { float *time = (float *)s->ir[s->selir]->extended_data[!s->one2many * ch]; for (i = 0; i < cur_nb_taps; i++) @@ -538,7 +538,7 @@ static int convert_coeffs(AVFilterContext *ctx) s->gain = FFMIN(s->gain * s->ir_gain, 1.f); av_log(ctx, AV_LOG_DEBUG, "power %f, gain %f\n", power, s->gain); - for (ch = 0; ch < ctx->inputs[1 + s->selir]->channels; ch++) { + for (ch = 0; ch < ctx->inputs[1 + s->selir]->ch_layout.nb_channels; ch++) { float *time = (float *)s->ir[s->selir]->extended_data[!s->one2many * ch]; s->fdsp->vector_fmul_scalar(time, time, s->gain, FFALIGN(cur_nb_taps, 4)); @@ -547,7 +547,7 @@ static int convert_coeffs(AVFilterContext *ctx) av_log(ctx, AV_LOG_DEBUG, "nb_taps: %d\n", cur_nb_taps); av_log(ctx, AV_LOG_DEBUG, "nb_segments: %d\n", s->nb_segments); - for (ch = 0; ch < ctx->inputs[1 + s->selir]->channels; ch++) { + for (ch = 0; ch < ctx->inputs[1 + s->selir]->ch_layout.nb_channels; ch++) { float *time = (float *)s->ir[s->selir]->extended_data[!s->one2many * ch]; int toffset = 0; @@ -745,7 +745,7 @@ static int query_formats(AVFilterContext *ctx) if ((ret = ff_channel_layouts_ref(layouts, &ctx->outputs[0]->incfg.channel_layouts)) < 0) return ret; - ret = ff_add_channel_layout(&mono, AV_CH_LAYOUT_MONO); + ret = ff_add_channel_layout(&mono, &(AVChannelLayout)AV_CHANNEL_LAYOUT_MONO); if (ret) return ret; for (int i = 1; i < ctx->nb_inputs; i++) { @@ -764,15 +764,22 @@ static int config_output(AVFilterLink *outlink) { AVFilterContext *ctx = outlink->src; AudioFIRContext *s = ctx->priv; + int ret; - s->one2many = ctx->inputs[1 + s->selir]->channels == 1; + s->one2many = ctx->inputs[1 + s->selir]->ch_layout.nb_channels == 1; outlink->sample_rate = ctx->inputs[0]->sample_rate; outlink->time_base = ctx->inputs[0]->time_base; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS outlink->channel_layout = ctx->inputs[0]->channel_layout; - outlink->channels = ctx->inputs[0]->channels; +FF_ENABLE_DEPRECATION_WARNINGS +#endif + if ((ret = av_channel_layout_copy(&outlink->ch_layout, &ctx->inputs[0]->ch_layout)) < 0) + return ret; + outlink->ch_layout.nb_channels = ctx->inputs[0]->ch_layout.nb_channels; - s->nb_channels = outlink->channels; - s->nb_coef_channels = ctx->inputs[1 + s->selir]->channels; + s->nb_channels = outlink->ch_layout.nb_channels; + s->nb_coef_channels = ctx->inputs[1 + s->selir]->ch_layout.nb_channels; s->pts = AV_NOPTS_VALUE; return 0; diff --git a/libavfilter/af_aformat.c b/libavfilter/af_aformat.c index ed3c75311a..96704e041c 100644 --- a/libavfilter/af_aformat.c +++ b/libavfilter/af_aformat.c @@ -104,9 +104,36 @@ static av_cold int init(AVFilterContext *ctx) ff_add_format, av_get_sample_fmt, AV_SAMPLE_FMT_NONE, "sample format"); PARSE_FORMATS(s->sample_rates_str, int, s->sample_rates, ff_add_format, get_sample_rate, 0, "sample rate"); - PARSE_FORMATS(s->channel_layouts_str, uint64_t, s->channel_layouts, - ff_add_channel_layout, av_get_channel_layout, 0, - "channel layout"); + { + AVChannelLayout fmt = { 0 }; + const char *cur = s->channel_layouts_str; + int ret; + + if (s->channel_layouts_str && strchr(s->channel_layouts_str, ',')) { + av_log(ctx, AV_LOG_WARNING, "This syntax is deprecated, use '|' to " + "separate channel layout.\n"); + } + + while (cur && *cur) { + char *chl = av_get_token(&cur, "|,"); + if (!chl) + return AVERROR(ENOMEM); + if (*cur) + cur++; + + ret = av_channel_layout_from_string(&fmt, chl); + if (ret < 0) { + av_log(ctx, AV_LOG_ERROR, "Error parsing channel layout: %s.\n", chl); + av_free(chl); + return ret; + } + ret = ff_add_channel_layout(&s->channel_layouts, &fmt); + av_channel_layout_uninit(&fmt); + av_free(chl); + if (ret < 0) + return ret; + } + } return 0; } diff --git a/libavfilter/af_afreqshift.c b/libavfilter/af_afreqshift.c index 731e97afef..70bf8e419f 100644 --- a/libavfilter/af_afreqshift.c +++ b/libavfilter/af_afreqshift.c @@ -290,8 +290,8 @@ static int filter_channels(AVFilterContext *ctx, void *arg, int jobnr, int nb_jo ThreadData *td = arg; AVFrame *out = td->out; AVFrame *in = td->in; - const int start = (in->channels * jobnr) / nb_jobs; - const int end = (in->channels * (jobnr+1)) / nb_jobs; + const int start = (in->ch_layout.nb_channels * jobnr) / nb_jobs; + const int end = (in->ch_layout.nb_channels * (jobnr+1)) / nb_jobs; for (int ch = start; ch < end; ch++) s->filter_channel(ctx, ch, in, out); @@ -324,7 +324,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) td.in = in; td.out = out; ff_filter_execute(ctx, filter_channels, &td, NULL, - FFMIN(inlink->channels, ff_filter_get_nb_threads(ctx))); + FFMIN(inlink->ch_layout.nb_channels, ff_filter_get_nb_threads(ctx))); s->in_samples += in->nb_samples; diff --git a/libavfilter/af_afwtdn.c b/libavfilter/af_afwtdn.c index 09b504d634..cf41b6f4bc 100644 --- a/libavfilter/af_afwtdn.c +++ b/libavfilter/af_afwtdn.c @@ -1037,14 +1037,14 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) s->padd_samples -= s->nb_samples - (in ? in->nb_samples: 0); if (in) av_samples_copy(new_in->extended_data, in->extended_data, 0, 0, - in->nb_samples, in->channels, in->format); + in->nb_samples, in->ch_layout.nb_channels, in->format); av_frame_free(&in); in = new_in; } td.in = in; td.out = out; - ff_filter_execute(ctx, s->filter_channel, &td, NULL, inlink->channels); + ff_filter_execute(ctx, s->filter_channel, &td, NULL, inlink->ch_layout.nb_channels); if (s->need_profile) s->got_profile = 1; @@ -1059,7 +1059,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) FF_FILTER_FORWARD_WANTED(outlink, inlink); return 0; } else if (s->drop_samples > 0) { - for (int ch = 0; ch < out->channels; ch++) { + for (int ch = 0; ch < out->ch_layout.nb_channels; ch++) { memmove(out->extended_data[ch], out->extended_data[ch] + s->drop_samples * sizeof(double), (in->nb_samples - s->drop_samples) * sizeof(double)); @@ -1164,7 +1164,7 @@ static int config_output(AVFilterLink *outlink) !s->new_stddev || !s->new_absmean) return AVERROR(ENOMEM); - s->channels = outlink->channels; + s->channels = outlink->ch_layout.nb_channels; s->overlap_length = max_left_ext(s->wavelet_length, s->levels); s->prev_length = s->overlap_length; s->drop_samples = s->overlap_length; diff --git a/libavfilter/af_agate.c b/libavfilter/af_agate.c index 682f17c7dd..8e93a3a82b 100644 --- a/libavfilter/af_agate.c +++ b/libavfilter/af_agate.c @@ -150,19 +150,19 @@ static void gate(AudioGateContext *s, const double release_coeff = s->release_coeff; int n, c; - for (n = 0; n < nb_samples; n++, src += inlink->channels, dst += inlink->channels, scsrc += sclink->channels) { + for (n = 0; n < nb_samples; n++, src += inlink->ch_layout.nb_channels, dst += inlink->ch_layout.nb_channels, scsrc += sclink->ch_layout.nb_channels) { double abs_sample = fabs(scsrc[0] * level_sc), gain = 1.0; double factor; int detected; if (s->link == 1) { - for (c = 1; c < sclink->channels; c++) + for (c = 1; c < sclink->ch_layout.nb_channels; c++) abs_sample = FFMAX(fabs(scsrc[c] * level_sc), abs_sample); } else { - for (c = 1; c < sclink->channels; c++) + for (c = 1; c < sclink->ch_layout.nb_channels; c++) abs_sample += fabs(scsrc[c] * level_sc); - abs_sample /= sclink->channels; + abs_sample /= sclink->ch_layout.nb_channels; } if (s->detection) @@ -181,7 +181,7 @@ static void gate(AudioGateContext *s, s->range, s->mode); factor = ctx->is_disabled ? 1.f : level_in * gain * makeup; - for (c = 0; c < inlink->channels; c++) + for (c = 0; c < inlink->ch_layout.nb_channels; c++) dst[c] = src[c] * factor; } } @@ -344,8 +344,8 @@ static int scconfig_output(AVFilterLink *outlink) outlink->time_base = ctx->inputs[0]->time_base; - s->fifo[0] = av_audio_fifo_alloc(ctx->inputs[0]->format, ctx->inputs[0]->channels, 1024); - s->fifo[1] = av_audio_fifo_alloc(ctx->inputs[1]->format, ctx->inputs[1]->channels, 1024); + s->fifo[0] = av_audio_fifo_alloc(ctx->inputs[0]->format, ctx->inputs[0]->ch_layout.nb_channels, 1024); + s->fifo[1] = av_audio_fifo_alloc(ctx->inputs[1]->format, ctx->inputs[1]->ch_layout.nb_channels, 1024); if (!s->fifo[0] || !s->fifo[1]) return AVERROR(ENOMEM); diff --git a/libavfilter/af_aiir.c b/libavfilter/af_aiir.c index 8a4b4814f6..3e7ec78b63 100644 --- a/libavfilter/af_aiir.c +++ b/libavfilter/af_aiir.c @@ -1263,35 +1263,35 @@ static int config_output(AVFilterLink *outlink) AVFilterLink *inlink = ctx->inputs[0]; int ch, ret, i; - s->channels = inlink->channels; + s->channels = inlink->ch_layout.nb_channels; s->iir = av_calloc(s->channels, sizeof(*s->iir)); if (!s->iir) return AVERROR(ENOMEM); - ret = read_gains(ctx, s->g_str, inlink->channels); + ret = read_gains(ctx, s->g_str, inlink->ch_layout.nb_channels); if (ret < 0) return ret; - ret = read_channels(ctx, inlink->channels, s->a_str, 0); + ret = read_channels(ctx, inlink->ch_layout.nb_channels, s->a_str, 0); if (ret < 0) return ret; - ret = read_channels(ctx, inlink->channels, s->b_str, 1); + ret = read_channels(ctx, inlink->ch_layout.nb_channels, s->b_str, 1); if (ret < 0) return ret; if (s->format == -1) { - convert_sf2tf(ctx, inlink->channels); + convert_sf2tf(ctx, inlink->ch_layout.nb_channels); s->format = 0; } else if (s->format == 2) { - convert_pr2zp(ctx, inlink->channels); + convert_pr2zp(ctx, inlink->ch_layout.nb_channels); } else if (s->format == 3) { - convert_pd2zp(ctx, inlink->channels); + convert_pd2zp(ctx, inlink->ch_layout.nb_channels); } else if (s->format == 4) { - convert_sp2zp(ctx, inlink->channels); + convert_sp2zp(ctx, inlink->ch_layout.nb_channels); } if (s->format > 0) { - check_stability(ctx, inlink->channels); + check_stability(ctx, inlink->ch_layout.nb_channels); } av_frame_free(&s->video); @@ -1309,7 +1309,7 @@ static int config_output(AVFilterLink *outlink) if (s->format > 0 && s->process == 0) { av_log(ctx, AV_LOG_WARNING, "Direct processsing is not recommended for zp coefficients format.\n"); - ret = convert_zp2tf(ctx, inlink->channels); + ret = convert_zp2tf(ctx, inlink->ch_layout.nb_channels); if (ret < 0) return ret; } else if (s->format == -2 && s->process > 0) { @@ -1322,21 +1322,21 @@ static int config_output(AVFilterLink *outlink) av_log(ctx, AV_LOG_ERROR, "Parallel processing is not implemented for transfer function.\n"); return AVERROR_PATCHWELCOME; } else if (s->format > 0 && s->process == 1) { - ret = decompose_zp2biquads(ctx, inlink->channels); + ret = decompose_zp2biquads(ctx, inlink->ch_layout.nb_channels); if (ret < 0) return ret; } else if (s->format > 0 && s->process == 2) { if (s->precision > 1) av_log(ctx, AV_LOG_WARNING, "Parallel processing is not recommended for fixed-point precisions.\n"); - ret = decompose_zp2biquads(ctx, inlink->channels); + ret = decompose_zp2biquads(ctx, inlink->ch_layout.nb_channels); if (ret < 0) return ret; - ret = convert_serial2parallel(ctx, inlink->channels); + ret = convert_serial2parallel(ctx, inlink->ch_layout.nb_channels); if (ret < 0) return ret; } - for (ch = 0; s->format == -2 && ch < inlink->channels; ch++) { + for (ch = 0; s->format == -2 && ch < inlink->ch_layout.nb_channels; ch++) { IIRChannel *iir = &s->iir[ch]; if (iir->nb_ab[0] != iir->nb_ab[1] + 1) { @@ -1345,7 +1345,7 @@ static int config_output(AVFilterLink *outlink) } } - for (ch = 0; s->format == 0 && ch < inlink->channels; ch++) { + for (ch = 0; s->format == 0 && ch < inlink->ch_layout.nb_channels; ch++) { IIRChannel *iir = &s->iir[ch]; for (i = 1; i < iir->nb_ab[0]; i++) { @@ -1401,9 +1401,9 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) td.in = in; td.out = out; - ff_filter_execute(ctx, s->iir_channel, &td, NULL, outlink->channels); + ff_filter_execute(ctx, s->iir_channel, &td, NULL, outlink->ch_layout.nb_channels); - for (ch = 0; ch < outlink->channels; ch++) { + for (ch = 0; ch < outlink->ch_layout.nb_channels; ch++) { if (s->iir[ch].clippings > 0) av_log(ctx, AV_LOG_WARNING, "Channel %d clipping %d times. Please reduce gain.\n", ch, s->iir[ch].clippings); diff --git a/libavfilter/af_alimiter.c b/libavfilter/af_alimiter.c index 211941a511..133f98f165 100644 --- a/libavfilter/af_alimiter.c +++ b/libavfilter/af_alimiter.c @@ -116,7 +116,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) AudioLimiterContext *s = ctx->priv; AVFilterLink *outlink = ctx->outputs[0]; const double *src = (const double *)in->data[0]; - const int channels = inlink->channels; + const int channels = inlink->ch_layout.nb_channels; const int buffer_size = s->buffer_size; double *dst, *buffer = s->buffer; const double release = s->release; @@ -281,8 +281,8 @@ static int config_input(AVFilterLink *inlink) AudioLimiterContext *s = ctx->priv; int obuffer_size; - obuffer_size = inlink->sample_rate * inlink->channels * 100 / 1000. + inlink->channels; - if (obuffer_size < inlink->channels) + obuffer_size = inlink->sample_rate * inlink->ch_layout.nb_channels * 100 / 1000. + inlink->ch_layout.nb_channels; + if (obuffer_size < inlink->ch_layout.nb_channels) return AVERROR(EINVAL); s->buffer = av_calloc(obuffer_size, sizeof(*s->buffer)); @@ -292,8 +292,8 @@ static int config_input(AVFilterLink *inlink) return AVERROR(ENOMEM); memset(s->nextpos, -1, obuffer_size * sizeof(*s->nextpos)); - s->buffer_size = inlink->sample_rate * s->attack * inlink->channels; - s->buffer_size -= s->buffer_size % inlink->channels; + s->buffer_size = inlink->sample_rate * s->attack * inlink->ch_layout.nb_channels; + s->buffer_size -= s->buffer_size % inlink->ch_layout.nb_channels; if (s->buffer_size <= 0) { av_log(ctx, AV_LOG_ERROR, "Attack is too small.\n"); diff --git a/libavfilter/af_amerge.c b/libavfilter/af_amerge.c index 9109af22c5..8bcc0ac5be 100644 --- a/libavfilter/af_amerge.c +++ b/libavfilter/af_amerge.c @@ -73,7 +73,8 @@ static int query_formats(AVFilterContext *ctx) AV_SAMPLE_FMT_NONE }; AMergeContext *s = ctx->priv; - int64_t inlayout[SWR_CH_MAX], outlayout = 0; + AVChannelLayout *inlayout[SWR_CH_MAX] = { NULL }, outlayout = { 0 }; + uint64_t outmask = 0; AVFilterChannelLayouts *layouts; int i, ret, overlap = 0, nb_ch = 0; @@ -84,20 +85,21 @@ static int query_formats(AVFilterContext *ctx) "No channel layout for input %d\n", i + 1); return AVERROR(EAGAIN); } - inlayout[i] = ctx->inputs[i]->incfg.channel_layouts->channel_layouts[0]; + inlayout[i] = &ctx->inputs[i]->incfg.channel_layouts->channel_layouts[0]; if (ctx->inputs[i]->incfg.channel_layouts->nb_channel_layouts > 1) { char buf[256]; - av_get_channel_layout_string(buf, sizeof(buf), 0, inlayout[i]); + av_channel_layout_describe(inlayout[i], buf, sizeof(buf)); av_log(ctx, AV_LOG_INFO, "Using \"%s\" for input %d\n", buf, i + 1); } s->in[i].nb_ch = FF_LAYOUT2COUNT(inlayout[i]); if (s->in[i].nb_ch) { overlap++; } else { - s->in[i].nb_ch = av_get_channel_layout_nb_channels(inlayout[i]); - if (outlayout & inlayout[i]) + s->in[i].nb_ch = inlayout[i]->nb_channels; + if (av_channel_layout_subset(inlayout[i], outmask)) overlap++; - outlayout |= inlayout[i]; + outmask |= inlayout[i]->order == AV_CHANNEL_ORDER_NATIVE ? + inlayout[i]->u.mask : 0; } nb_ch += s->in[i].nb_ch; } @@ -111,19 +113,20 @@ static int query_formats(AVFilterContext *ctx) "output layout will be determined by the number of distinct input channels\n"); for (i = 0; i < nb_ch; i++) s->route[i] = i; - outlayout = av_get_default_channel_layout(nb_ch); - if (!outlayout && nb_ch) - outlayout = 0xFFFFFFFFFFFFFFFFULL >> (64 - nb_ch); + av_channel_layout_default(&outlayout, nb_ch); + if (!KNOWN(&outlayout) && nb_ch) + av_channel_layout_from_mask(&outlayout, 0xFFFFFFFFFFFFFFFFULL >> (64 - nb_ch)); } else { int *route[SWR_CH_MAX]; int c, out_ch_number = 0; + av_channel_layout_from_mask(&outlayout, outmask); route[0] = s->route; for (i = 1; i < s->nb_inputs; i++) route[i] = route[i - 1] + s->in[i - 1].nb_ch; for (c = 0; c < 64; c++) for (i = 0; i < s->nb_inputs; i++) - if ((inlayout[i] >> c) & 1) + if (av_channel_layout_index_from_channel(inlayout[i], c) >= 0) *(route[i]++) = out_ch_number++; } if ((ret = ff_set_common_formats_from_list(ctx, packed_sample_fmts)) < 0) @@ -136,7 +139,7 @@ static int query_formats(AVFilterContext *ctx) return ret; } layouts = NULL; - if ((ret = ff_add_channel_layout(&layouts, outlayout)) < 0) + if ((ret = ff_add_channel_layout(&layouts, &outlayout)) < 0) return ret; if ((ret = ff_channel_layouts_ref(layouts, &ctx->outputs[0]->incfg.channel_layouts)) < 0) return ret; @@ -149,6 +152,7 @@ static int config_output(AVFilterLink *outlink) AVFilterContext *ctx = outlink->src; AMergeContext *s = ctx->priv; AVBPrint bp; + char buf[128]; int i; s->bps = av_get_bytes_per_sample(ctx->outputs[0]->format); @@ -157,10 +161,12 @@ static int config_output(AVFilterLink *outlink) av_bprint_init(&bp, 0, AV_BPRINT_SIZE_AUTOMATIC); for (i = 0; i < s->nb_inputs; i++) { av_bprintf(&bp, "%sin%d:", i ? " + " : "", i); - av_bprint_channel_layout(&bp, -1, ctx->inputs[i]->channel_layout); + av_channel_layout_describe(&ctx->inputs[i]->ch_layout, buf, sizeof(buf)); + av_bprintf(&bp, "%s", buf); } av_bprintf(&bp, " -> out:"); - av_bprint_channel_layout(&bp, -1, ctx->outputs[0]->channel_layout); + av_channel_layout_describe(&ctx->outputs[0]->ch_layout, buf, sizeof(buf)); + av_bprintf(&bp, "%s", buf); av_log(ctx, AV_LOG_VERBOSE, "%s\n", bp.str); return 0; @@ -237,8 +243,14 @@ static int try_push_frame(AVFilterContext *ctx, int nb_samples) outbuf->pts = inbuf[0]->pts; outbuf->nb_samples = nb_samples; + if ((ret = av_channel_layout_copy(&outbuf->ch_layout, &outlink->ch_layout)) < 0) + return ret; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS outbuf->channel_layout = outlink->channel_layout; - outbuf->channels = outlink->channels; + outbuf->channels = outlink->ch_layout.nb_channels; +FF_ENABLE_DEPRECATION_WARNINGS +#endif while (nb_samples) { /* Unroll the most common sample formats: speed +~350% for the loop, diff --git a/libavfilter/af_amix.c b/libavfilter/af_amix.c index 3f51d43acd..d7e00ab1f1 100644 --- a/libavfilter/af_amix.c +++ b/libavfilter/af_amix.c @@ -261,7 +261,7 @@ static int config_output(AVFilterLink *outlink) if (!s->fifos) return AVERROR(ENOMEM); - s->nb_channels = outlink->channels; + s->nb_channels = outlink->ch_layout.nb_channels; for (i = 0; i < s->nb_inputs; i++) { s->fifos[i] = av_audio_fifo_alloc(outlink->format, s->nb_channels, 1024); if (!s->fifos[i]) @@ -282,7 +282,7 @@ static int config_output(AVFilterLink *outlink) s->scale_norm[i] = s->weight_sum / FFABS(s->weights[i]); calculate_scales(s, 0); - av_get_channel_layout_string(buf, sizeof(buf), -1, outlink->channel_layout); + av_channel_layout_describe(&outlink->ch_layout, buf, sizeof(buf)); av_log(ctx, AV_LOG_VERBOSE, "inputs:%d fmt:%s srate:%d cl:%s\n", s->nb_inputs, diff --git a/libavfilter/af_amultiply.c b/libavfilter/af_amultiply.c index 5de711bade..97728954a5 100644 --- a/libavfilter/af_amultiply.c +++ b/libavfilter/af_amultiply.c @@ -128,8 +128,8 @@ static int config_output(AVFilterLink *outlink) AudioMultiplyContext *s = ctx->priv; AVFilterLink *inlink = ctx->inputs[0]; - s->channels = inlink->channels; - s->planes = av_sample_fmt_is_planar(inlink->format) ? inlink->channels : 1; + s->channels = inlink->ch_layout.nb_channels; + s->planes = av_sample_fmt_is_planar(inlink->format) ? inlink->ch_layout.nb_channels : 1; s->samples_align = 16; return 0; diff --git a/libavfilter/af_anequalizer.c b/libavfilter/af_anequalizer.c index 57a9b7634b..c7b9a83d99 100644 --- a/libavfilter/af_anequalizer.c +++ b/libavfilter/af_anequalizer.c @@ -103,7 +103,7 @@ static void draw_curves(AVFilterContext *ctx, AVFilterLink *inlink, AVFrame *out memset(out->data[0], 0, s->h * out->linesize[0]); - for (ch = 0; ch < inlink->channels; ch++) { + for (ch = 0; ch < inlink->ch_layout.nb_channels; ch++) { uint8_t fg[4] = { 0xff, 0xff, 0xff, 0xff }; int prev_v = -1; double f; @@ -577,8 +577,8 @@ static int config_input(AVFilterLink *inlink) if (!args) return AVERROR(ENOMEM); - s->nb_allocated = 32 * inlink->channels; - s->filters = av_calloc(inlink->channels, 32 * sizeof(*s->filters)); + s->nb_allocated = 32 * inlink->ch_layout.nb_channels; + s->filters = av_calloc(inlink->ch_layout.nb_channels, 32 * sizeof(*s->filters)); if (!s->filters) { s->nb_allocated = 0; av_free(args); @@ -610,7 +610,7 @@ static int config_input(AVFilterLink *inlink) s->filters[s->nb_filters].ignore = 1; if (s->filters[s->nb_filters].channel < 0 || - s->filters[s->nb_filters].channel >= inlink->channels) + s->filters[s->nb_filters].channel >= inlink->ch_layout.nb_channels) s->filters[s->nb_filters].ignore = 1; s->filters[s->nb_filters].type = av_clip(s->filters[s->nb_filters].type, 0, NB_TYPES - 1); @@ -698,8 +698,8 @@ static int filter_channels(AVFilterContext *ctx, void *arg, { AudioNEqualizerContext *s = ctx->priv; AVFrame *buf = arg; - const int start = (buf->channels * jobnr) / nb_jobs; - const int end = (buf->channels * (jobnr+1)) / nb_jobs; + const int start = (buf->ch_layout.nb_channels * jobnr) / nb_jobs; + const int end = (buf->ch_layout.nb_channels * (jobnr+1)) / nb_jobs; for (int i = 0; i < s->nb_filters; i++) { EqualizatorFilter *f = &s->filters[i]; @@ -731,7 +731,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf) if (!ctx->is_disabled) ff_filter_execute(ctx, filter_channels, buf, NULL, - FFMIN(inlink->channels, ff_filter_get_nb_threads(ctx))); + FFMIN(inlink->ch_layout.nb_channels, ff_filter_get_nb_threads(ctx))); if (s->draw_curves) { AVFrame *clone; diff --git a/libavfilter/af_anlmdn.c b/libavfilter/af_anlmdn.c index 141e5f398e..6fcf9e9d66 100644 --- a/libavfilter/af_anlmdn.c +++ b/libavfilter/af_anlmdn.c @@ -189,7 +189,7 @@ static int config_output(AVFilterLink *outlink) if (ret < 0) return ret; - s->fifo = av_audio_fifo_alloc(outlink->format, outlink->channels, s->N); + s->fifo = av_audio_fifo_alloc(outlink->format, outlink->ch_layout.nb_channels, s->N); if (!s->fifo) return AVERROR(ENOMEM); @@ -292,7 +292,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) if (ret < 0) break; - ff_filter_execute(ctx, filter_channel, out, NULL, inlink->channels); + ff_filter_execute(ctx, filter_channel, out, NULL, inlink->ch_layout.nb_channels); av_audio_fifo_drain(s->fifo, s->H); diff --git a/libavfilter/af_anlms.c b/libavfilter/af_anlms.c index f20e3c0e82..50bb0c7f42 100644 --- a/libavfilter/af_anlms.c +++ b/libavfilter/af_anlms.c @@ -156,8 +156,8 @@ static int process_channels(AVFilterContext *ctx, void *arg, int jobnr, int nb_j { AudioNLMSContext *s = ctx->priv; AVFrame *out = arg; - const int start = (out->channels * jobnr) / nb_jobs; - const int end = (out->channels * (jobnr+1)) / nb_jobs; + const int start = (out->ch_layout.nb_channels * jobnr) / nb_jobs; + const int end = (out->ch_layout.nb_channels * (jobnr+1)) / nb_jobs; for (int c = start; c < end; c++) { const float *input = (const float *)s->frame[0]->extended_data[c]; @@ -208,7 +208,7 @@ static int activate(AVFilterContext *ctx) } ff_filter_execute(ctx, process_channels, out, NULL, - FFMIN(ctx->outputs[0]->channels, ff_filter_get_nb_threads(ctx))); + FFMIN(ctx->outputs[0]->ch_layout.nb_channels, ff_filter_get_nb_threads(ctx))); out->pts = s->frame[0]->pts; diff --git a/libavfilter/af_apad.c b/libavfilter/af_apad.c index ae73f0b6b1..df17c9a531 100644 --- a/libavfilter/af_apad.c +++ b/libavfilter/af_apad.c @@ -121,7 +121,7 @@ static int request_frame(AVFilterLink *outlink) av_samples_set_silence(outsamplesref->extended_data, 0, n_out, - outsamplesref->channels, + outsamplesref->ch_layout.nb_channels, outsamplesref->format); outsamplesref->pts = s->next_pts; diff --git a/libavfilter/af_aphaser.c b/libavfilter/af_aphaser.c index 2d95802677..1f5dcb1f9e 100644 --- a/libavfilter/af_aphaser.c +++ b/libavfilter/af_aphaser.c @@ -177,7 +177,7 @@ static int config_output(AVFilterLink *outlink) av_log(outlink->src, AV_LOG_ERROR, "delay is too small\n"); return AVERROR(EINVAL); } - s->delay_buffer = av_calloc(s->delay_buffer_length, sizeof(*s->delay_buffer) * inlink->channels); + s->delay_buffer = av_calloc(s->delay_buffer_length, sizeof(*s->delay_buffer) * inlink->ch_layout.nb_channels); s->modulation_buffer_length = inlink->sample_rate / s->speed + 0.5; s->modulation_buffer = av_malloc_array(s->modulation_buffer_length, sizeof(*s->modulation_buffer)); @@ -223,7 +223,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *inbuf) } s->phaser(s, inbuf->extended_data, outbuf->extended_data, - outbuf->nb_samples, outbuf->channels); + outbuf->nb_samples, outbuf->ch_layout.nb_channels); if (inbuf != outbuf) av_frame_free(&inbuf); diff --git a/libavfilter/af_apsyclip.c b/libavfilter/af_apsyclip.c index dc3a8e97e4..b8b0f0ad46 100644 --- a/libavfilter/af_apsyclip.c +++ b/libavfilter/af_apsyclip.c @@ -244,7 +244,7 @@ static int config_input(AVFilterLink *inlink) generate_spread_table(s); - s->channels = inlink->channels; + s->channels = inlink->ch_layout.nb_channels; s->tx_ctx = av_calloc(s->channels, sizeof(*s->tx_ctx)); s->itx_ctx = av_calloc(s->channels, sizeof(*s->itx_ctx)); @@ -533,8 +533,8 @@ static int psy_channels(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs) { AudioPsyClipContext *s = ctx->priv; AVFrame *out = arg; - const int start = (out->channels * jobnr) / nb_jobs; - const int end = (out->channels * (jobnr+1)) / nb_jobs; + const int start = (out->ch_layout.nb_channels * jobnr) / nb_jobs; + const int end = (out->ch_layout.nb_channels * (jobnr+1)) / nb_jobs; for (int ch = start; ch < end; ch++) psy_channel(ctx, s->in, out, ch); @@ -558,7 +558,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) s->in = in; ff_filter_execute(ctx, psy_channels, out, NULL, - FFMIN(outlink->channels, ff_filter_get_nb_threads(ctx))); + FFMIN(outlink->ch_layout.nb_channels, ff_filter_get_nb_threads(ctx))); out->pts = in->pts; out->nb_samples = in->nb_samples; diff --git a/libavfilter/af_apulsator.c b/libavfilter/af_apulsator.c index c2a8de0e0b..c3ca752035 100644 --- a/libavfilter/af_apulsator.c +++ b/libavfilter/af_apulsator.c @@ -192,7 +192,7 @@ static int query_formats(AVFilterContext *ctx) if ((ret = ff_add_format (&formats, AV_SAMPLE_FMT_DBL )) < 0 || (ret = ff_set_common_formats (ctx , formats )) < 0 || - (ret = ff_add_channel_layout (&layout , AV_CH_LAYOUT_STEREO)) < 0 || + (ret = ff_add_channel_layout (&layout , &(AVChannelLayout)AV_CHANNEL_LAYOUT_MONO)) < 0 || (ret = ff_set_common_channel_layouts (ctx , layout )) < 0) return ret; diff --git a/libavfilter/af_aresample.c b/libavfilter/af_aresample.c index 6e1be5b7eb..e4eccc847b 100644 --- a/libavfilter/af_aresample.c +++ b/libavfilter/af_aresample.c @@ -65,7 +65,8 @@ static int query_formats(AVFilterContext *ctx) { AResampleContext *aresample = ctx->priv; enum AVSampleFormat out_format; - int64_t out_rate, out_layout; + AVChannelLayout out_layout = { 0 }; + int64_t out_rate; AVFilterLink *inlink = ctx->inputs[0]; AVFilterLink *outlink = ctx->outputs[0]; @@ -79,7 +80,6 @@ static int query_formats(AVFilterContext *ctx) av_opt_set_int(aresample->swr, "osr", aresample->sample_rate_arg, 0); av_opt_get_sample_fmt(aresample->swr, "osf", 0, &out_format); av_opt_get_int(aresample->swr, "osr", 0, &out_rate); - av_opt_get_int(aresample->swr, "ocl", 0, &out_layout); in_formats = ff_all_formats(AVMEDIA_TYPE_AUDIO); if ((ret = ff_formats_ref(in_formats, &inlink->outcfg.formats)) < 0) @@ -111,11 +111,13 @@ static int query_formats(AVFilterContext *ctx) if ((ret = ff_formats_ref(out_formats, &outlink->incfg.formats)) < 0) return ret; - if(out_layout) { - int64_t layout_list[] = { out_layout, -1 }; + av_opt_get_chlayout(aresample->swr, "ochl", 0, &out_layout); + if (av_channel_layout_check(&out_layout)) { + const AVChannelLayout layout_list[] = { out_layout, { 0 } }; out_layouts = ff_make_format64_list(layout_list); } else out_layouts = ff_all_channel_counts(); + av_channel_layout_uninit(&out_layout); return ff_channel_layouts_ref(out_layouts, &outlink->incfg.channel_layouts); } @@ -127,42 +129,41 @@ static int config_output(AVFilterLink *outlink) AVFilterContext *ctx = outlink->src; AVFilterLink *inlink = ctx->inputs[0]; AResampleContext *aresample = ctx->priv; - int64_t out_rate, out_layout; + AVChannelLayout out_layout = { 0 }; + int64_t out_rate; enum AVSampleFormat out_format; char inchl_buf[128], outchl_buf[128]; - aresample->swr = swr_alloc_set_opts(aresample->swr, - outlink->channel_layout, outlink->format, outlink->sample_rate, - inlink->channel_layout, inlink->format, inlink->sample_rate, - 0, ctx); - if (!aresample->swr) - return AVERROR(ENOMEM); - if (!inlink->channel_layout) - av_opt_set_int(aresample->swr, "ich", inlink->channels, 0); - if (!outlink->channel_layout) - av_opt_set_int(aresample->swr, "och", outlink->channels, 0); + ret = swr_alloc_set_opts2(&aresample->swr, + &outlink->ch_layout, outlink->format, outlink->sample_rate, + &inlink->ch_layout, inlink->format, inlink->sample_rate, + 0, ctx); + if (ret < 0) + return ret; ret = swr_init(aresample->swr); if (ret < 0) return ret; av_opt_get_int(aresample->swr, "osr", 0, &out_rate); - av_opt_get_int(aresample->swr, "ocl", 0, &out_layout); + av_opt_get_chlayout(aresample->swr, "ochl", 0, &out_layout); av_opt_get_sample_fmt(aresample->swr, "osf", 0, &out_format); outlink->time_base = (AVRational) {1, out_rate}; av_assert0(outlink->sample_rate == out_rate); - av_assert0(outlink->channel_layout == out_layout || !outlink->channel_layout); + av_assert0(!av_channel_layout_compare(&outlink->ch_layout, &out_layout)); av_assert0(outlink->format == out_format); + av_channel_layout_uninit(&out_layout); + aresample->ratio = (double)outlink->sample_rate / inlink->sample_rate; - av_get_channel_layout_string(inchl_buf, sizeof(inchl_buf), inlink ->channels, inlink ->channel_layout); - av_get_channel_layout_string(outchl_buf, sizeof(outchl_buf), outlink->channels, outlink->channel_layout); + av_channel_layout_describe(&inlink ->ch_layout, inchl_buf, sizeof(inchl_buf)); + av_channel_layout_describe(&outlink->ch_layout, outchl_buf, sizeof(outchl_buf)); av_log(ctx, AV_LOG_VERBOSE, "ch:%d chl:%s fmt:%s r:%dHz -> ch:%d chl:%s fmt:%s r:%dHz\n", - inlink ->channels, inchl_buf, av_get_sample_fmt_name(inlink->format), inlink->sample_rate, - outlink->channels, outchl_buf, av_get_sample_fmt_name(outlink->format), outlink->sample_rate); + inlink ->ch_layout.nb_channels, inchl_buf, av_get_sample_fmt_name(inlink->format), inlink->sample_rate, + outlink->ch_layout.nb_channels, outchl_buf, av_get_sample_fmt_name(outlink->format), outlink->sample_rate); return 0; } @@ -189,8 +190,15 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *insamplesref) av_frame_copy_props(outsamplesref, insamplesref); outsamplesref->format = outlink->format; - outsamplesref->channels = outlink->channels; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + outsamplesref->channels = outlink->ch_layout.nb_channels; outsamplesref->channel_layout = outlink->channel_layout; +FF_ENABLE_DEPRECATION_WARNINGS +#endif + ret = av_channel_layout_copy(&outsamplesref->ch_layout, &outlink->ch_layout); + if (ret < 0) + return ret; outsamplesref->sample_rate = outlink->sample_rate; if(insamplesref->pts != AV_NOPTS_VALUE) { diff --git a/libavfilter/af_arnndn.c b/libavfilter/af_arnndn.c index 3115c4ae0c..fe562e81a1 100644 --- a/libavfilter/af_arnndn.c +++ b/libavfilter/af_arnndn.c @@ -353,7 +353,7 @@ static int config_input(AVFilterLink *inlink) AudioRNNContext *s = ctx->priv; int ret = 0; - s->channels = inlink->channels; + s->channels = inlink->ch_layout.nb_channels; if (!s->st) s->st = av_calloc(s->channels, sizeof(DenoiseState)); @@ -1413,8 +1413,8 @@ static int rnnoise_channels(AVFilterContext *ctx, void *arg, int jobnr, int nb_j ThreadData *td = arg; AVFrame *in = td->in; AVFrame *out = td->out; - const int start = (out->channels * jobnr) / nb_jobs; - const int end = (out->channels * (jobnr+1)) / nb_jobs; + const int start = (out->ch_layout.nb_channels * jobnr) / nb_jobs; + const int end = (out->ch_layout.nb_channels * (jobnr+1)) / nb_jobs; for (int ch = start; ch < end; ch++) { rnnoise_channel(s, &s->st[ch], @@ -1442,7 +1442,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) td.in = in; td.out = out; ff_filter_execute(ctx, rnnoise_channels, &td, NULL, - FFMIN(outlink->channels, ff_filter_get_nb_threads(ctx))); + FFMIN(outlink->ch_layout.nb_channels, ff_filter_get_nb_threads(ctx))); av_frame_free(&in); return ff_filter_frame(outlink, out); diff --git a/libavfilter/af_asdr.c b/libavfilter/af_asdr.c index addfe5f158..a40246f280 100644 --- a/libavfilter/af_asdr.c +++ b/libavfilter/af_asdr.c @@ -41,7 +41,7 @@ static void sdr(AVFilterContext *ctx, const AVFrame *u, const AVFrame *v) { AudioSDRContext *s = ctx->priv; - for (int ch = 0; ch < u->channels; ch++) { + for (int ch = 0; ch < u->ch_layout.nb_channels; ch++) { const double *const us = (double *)u->extended_data[ch]; const double *const vs = (double *)v->extended_data[ch]; double sum_uv = s->sum_uv[ch]; @@ -117,10 +117,10 @@ static int config_output(AVFilterLink *outlink) s->pts = AV_NOPTS_VALUE; - s->channels = inlink->channels; + s->channels = inlink->ch_layout.nb_channels; - s->sum_u = av_calloc(outlink->channels, sizeof(*s->sum_u)); - s->sum_uv = av_calloc(outlink->channels, sizeof(*s->sum_uv)); + s->sum_u = av_calloc(outlink->ch_layout.nb_channels, sizeof(*s->sum_u)); + s->sum_uv = av_calloc(outlink->ch_layout.nb_channels, sizeof(*s->sum_uv)); if (!s->sum_u || !s->sum_uv) return AVERROR(ENOMEM); diff --git a/libavfilter/af_asetnsamples.c b/libavfilter/af_asetnsamples.c index 71788f2a76..6fb646ace4 100644 --- a/libavfilter/af_asetnsamples.c +++ b/libavfilter/af_asetnsamples.c @@ -87,9 +87,9 @@ static int activate(AVFilterContext *ctx) } av_samples_copy(pad_frame->extended_data, frame->extended_data, - 0, 0, frame->nb_samples, frame->channels, frame->format); + 0, 0, frame->nb_samples, frame->ch_layout.nb_channels, frame->format); av_samples_set_silence(pad_frame->extended_data, frame->nb_samples, - s->nb_out_samples - frame->nb_samples, frame->channels, + s->nb_out_samples - frame->nb_samples, frame->ch_layout.nb_channels, frame->format); av_frame_free(&frame); return ff_filter_frame(outlink, pad_frame); diff --git a/libavfilter/af_ashowinfo.c b/libavfilter/af_ashowinfo.c index c76756db63..36ba38b478 100644 --- a/libavfilter/af_ashowinfo.c +++ b/libavfilter/af_ashowinfo.c @@ -178,9 +178,12 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf) { AVFilterContext *ctx = inlink->dst; AShowInfoContext *s = ctx->priv; +#if FF_API_OLD_CHANNEL_LAYOUT + AVChannelLayout layout = { 0 }; +#endif char chlayout_str[128]; uint32_t checksum = 0; - int channels = inlink->channels; + int channels = inlink->ch_layout.nb_channels; int planar = av_sample_fmt_is_planar(buf->format); int block_align = av_get_bytes_per_sample(buf->format) * (planar ? 1 : channels); int data_size = buf->nb_samples * block_align; @@ -200,8 +203,14 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf) s->plane_checksums[0]; } - av_get_channel_layout_string(chlayout_str, sizeof(chlayout_str), buf->channels, - buf->channel_layout); +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + if (av_channel_layout_from_mask(&layout, buf->channel_layout)) { + av_channel_layout_describe(&layout, chlayout_str, sizeof(chlayout_str)); +FF_ENABLE_DEPRECATION_WARNINGS + } else if (buf->ch_layout.nb_channels) +#endif + av_channel_layout_describe(&buf->ch_layout, chlayout_str, sizeof(chlayout_str)); av_log(ctx, AV_LOG_INFO, "n:%"PRId64" pts:%s pts_time:%s pos:%"PRId64" " @@ -210,7 +219,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf) inlink->frame_count_out, av_ts2str(buf->pts), av_ts2timestr(buf->pts, &inlink->time_base), buf->pkt_pos, - av_get_sample_fmt_name(buf->format), buf->channels, chlayout_str, + av_get_sample_fmt_name(buf->format), buf->ch_layout.nb_channels, chlayout_str, buf->sample_rate, buf->nb_samples, checksum); diff --git a/libavfilter/af_asoftclip.c b/libavfilter/af_asoftclip.c index 6ffde4431a..6212e1d6fe 100644 --- a/libavfilter/af_asoftclip.c +++ b/libavfilter/af_asoftclip.c @@ -440,7 +440,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) } nb_samples = in->nb_samples; - channels = in->channels; + channels = in->ch_layout.nb_channels; td.in = in; td.out = out; diff --git a/libavfilter/af_aspectralstats.c b/libavfilter/af_aspectralstats.c index da418d22bf..642c1c88ca 100644 --- a/libavfilter/af_aspectralstats.c +++ b/libavfilter/af_aspectralstats.c @@ -84,7 +84,7 @@ static int config_output(AVFilterLink *outlink) float overlap, scale; int ret; - s->nb_channels = outlink->channels; + s->nb_channels = outlink->ch_layout.nb_channels; s->fifo = av_audio_fifo_alloc(outlink->format, s->nb_channels, s->win_size); if (!s->fifo) return AVERROR(ENOMEM); @@ -474,7 +474,7 @@ static int filter_frame(AVFilterLink *inlink) metadata = &out->metadata; ff_filter_execute(ctx, filter_channel, in, NULL, - FFMIN(inlink->channels, ff_filter_get_nb_threads(ctx))); + FFMIN(inlink->ch_layout.nb_channels, ff_filter_get_nb_threads(ctx))); set_metadata(s, metadata); diff --git a/libavfilter/af_asr.c b/libavfilter/af_asr.c index 42250e79e2..b402f5ff26 100644 --- a/libavfilter/af_asr.c +++ b/libavfilter/af_asr.c @@ -131,7 +131,7 @@ static int query_formats(AVFilterContext *ctx) if ((ret = ff_add_format (&formats, AV_SAMPLE_FMT_S16 )) < 0 || (ret = ff_set_common_formats (ctx , formats )) < 0 || - (ret = ff_add_channel_layout (&layout , AV_CH_LAYOUT_MONO )) < 0 || + (ret = ff_add_channel_layout (&layout , &(AVChannelLayout)AV_CHANNEL_LAYOUT_MONO )) < 0 || (ret = ff_set_common_channel_layouts (ctx , layout )) < 0 || (ret = ff_set_common_samplerates_from_list(ctx, sample_rates )) < 0) return ret; diff --git a/libavfilter/af_astats.c b/libavfilter/af_astats.c index 6c79257cb4..d59640a3fd 100644 --- a/libavfilter/af_astats.c +++ b/libavfilter/af_astats.c @@ -194,12 +194,12 @@ static int config_output(AVFilterLink *outlink) { AudioStatsContext *s = outlink->src->priv; - s->chstats = av_calloc(sizeof(*s->chstats), outlink->channels); + s->chstats = av_calloc(sizeof(*s->chstats), outlink->ch_layout.nb_channels); if (!s->chstats) return AVERROR(ENOMEM); s->tc_samples = FFMAX(s->time_constant * outlink->sample_rate + .5, 1); - s->nb_channels = outlink->channels; + s->nb_channels = outlink->ch_layout.nb_channels; for (int i = 0; i < s->nb_channels; i++) { ChannelStats *p = &s->chstats[i]; @@ -584,8 +584,8 @@ static int filter_channel(AVFilterContext *ctx, void *arg, int jobnr, int nb_job const uint8_t * const * const data = (const uint8_t * const *)buf->extended_data; const int channels = s->nb_channels; const int samples = buf->nb_samples; - const int start = (buf->channels * jobnr) / nb_jobs; - const int end = (buf->channels * (jobnr+1)) / nb_jobs; + const int start = (buf->ch_layout.nb_channels * jobnr) / nb_jobs; + const int end = (buf->ch_layout.nb_channels * (jobnr+1)) / nb_jobs; switch (inlink->format) { case AV_SAMPLE_FMT_DBLP: @@ -638,7 +638,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf) } ff_filter_execute(ctx, filter_channel, buf, NULL, - FFMIN(inlink->channels, ff_filter_get_nb_threads(ctx))); + FFMIN(inlink->ch_layout.nb_channels, ff_filter_get_nb_threads(ctx))); if (s->metadata) set_metadata(s, metadata); diff --git a/libavfilter/af_asubboost.c b/libavfilter/af_asubboost.c index da3e68e841..11b0825f97 100644 --- a/libavfilter/af_asubboost.c +++ b/libavfilter/af_asubboost.c @@ -76,7 +76,7 @@ static int config_input(AVFilterLink *inlink) s->buffer = ff_get_audio_buffer(inlink, inlink->sample_rate / 10); s->w = ff_get_audio_buffer(inlink, 2); - s->write_pos = av_calloc(inlink->channels, sizeof(*s->write_pos)); + s->write_pos = av_calloc(inlink->ch_layout.nb_channels, sizeof(*s->write_pos)); if (!s->buffer || !s->w || !s->write_pos) return AVERROR(ENOMEM); @@ -102,8 +102,8 @@ static int filter_channels(AVFilterContext *ctx, void *arg, int jobnr, int nb_jo const double b2 = s->b2; const double a1 = -s->a1; const double a2 = -s->a2; - const int start = (in->channels * jobnr) / nb_jobs; - const int end = (in->channels * (jobnr+1)) / nb_jobs; + const int start = (in->ch_layout.nb_channels * jobnr) / nb_jobs; + const int end = (in->ch_layout.nb_channels * (jobnr+1)) / nb_jobs; const int buffer_samples = s->buffer_samples; for (int ch = start; ch < end; ch++) { @@ -153,7 +153,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) td.in = in; td.out = out; ff_filter_execute(ctx, filter_channels, &td, NULL, - FFMIN(inlink->channels, ff_filter_get_nb_threads(ctx))); + FFMIN(inlink->ch_layout.nb_channels, ff_filter_get_nb_threads(ctx))); if (out != in) av_frame_free(&in); diff --git a/libavfilter/af_asupercut.c b/libavfilter/af_asupercut.c index a4c2d15154..5c06d559ed 100644 --- a/libavfilter/af_asupercut.c +++ b/libavfilter/af_asupercut.c @@ -210,8 +210,8 @@ static int filter_channels_## name(AVFilterContext *ctx, void *arg, \ ThreadData *td = arg; \ AVFrame *out = td->out; \ AVFrame *in = td->in; \ - const int start = (in->channels * jobnr) / nb_jobs; \ - const int end = (in->channels * (jobnr+1)) / nb_jobs; \ + const int start = (in->ch_layout.nb_channels * jobnr) / nb_jobs; \ + const int end = (in->ch_layout.nb_channels * (jobnr+1)) / nb_jobs; \ const double level = s->level; \ \ for (int ch = start; ch < end; ch++) { \ @@ -286,7 +286,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) td.in = in; td.out = out; ff_filter_execute(ctx, s->filter_channels, &td, NULL, - FFMIN(inlink->channels, ff_filter_get_nb_threads(ctx))); + FFMIN(inlink->ch_layout.nb_channels, ff_filter_get_nb_threads(ctx))); if (out != in) av_frame_free(&in); diff --git a/libavfilter/af_atempo.c b/libavfilter/af_atempo.c index e9a6da7970..e06277b804 100644 --- a/libavfilter/af_atempo.c +++ b/libavfilter/af_atempo.c @@ -1016,7 +1016,7 @@ static int config_props(AVFilterLink *inlink) enum AVSampleFormat format = inlink->format; int sample_rate = (int)inlink->sample_rate; - return yae_reset(atempo, format, sample_rate, inlink->channels); + return yae_reset(atempo, format, sample_rate, inlink->ch_layout.nb_channels); } static int push_samples(ATempoContext *atempo, diff --git a/libavfilter/af_atilt.c b/libavfilter/af_atilt.c index a6f7782af5..9ece531ea4 100644 --- a/libavfilter/af_atilt.c +++ b/libavfilter/af_atilt.c @@ -125,8 +125,8 @@ static int filter_channels_## name(AVFilterContext *ctx, void *arg, \ ThreadData *td = arg; \ AVFrame *out = td->out; \ AVFrame *in = td->in; \ - const int start = (in->channels * jobnr) / nb_jobs; \ - const int end = (in->channels * (jobnr+1)) / nb_jobs; \ + const int start = (in->ch_layout.nb_channels * jobnr) / nb_jobs; \ + const int end = (in->ch_layout.nb_channels * (jobnr+1)) / nb_jobs; \ const type level = s->level; \ \ for (int ch = start; ch < end; ch++) { \ @@ -196,7 +196,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) } td.in = in; td.out = out; - ff_filter_execute(ctx, s->filter_channels, &td, NULL, FFMIN(inlink->channels, + ff_filter_execute(ctx, s->filter_channels, &td, NULL, FFMIN(inlink->ch_layout.nb_channels, ff_filter_get_nb_threads(ctx))); if (out != in) diff --git a/libavfilter/af_axcorrelate.c b/libavfilter/af_axcorrelate.c index d0a91cd836..9be3f1c921 100644 --- a/libavfilter/af_axcorrelate.c +++ b/libavfilter/af_axcorrelate.c @@ -113,7 +113,7 @@ static int xcorrelate_slow_##suffix(AVFilterContext *ctx, \ const int size = FFMIN(available, s->size); \ int used; \ \ - for (int ch = 0; ch < out->channels; ch++) { \ + for (int ch = 0; ch < out->ch_layout.nb_channels; ch++) { \ const type *x = (const type *)s->cache[0]->extended_data[ch]; \ const type *y = (const type *)s->cache[1]->extended_data[ch]; \ type *sumx = (type *)s->mean_sum[0]->extended_data[ch]; \ @@ -155,7 +155,7 @@ static int xcorrelate_fast_##suffix(AVFilterContext *ctx, AVFrame *out, \ const int size = FFMIN(available, s->size); \ int used; \ \ - for (int ch = 0; ch < out->channels; ch++) { \ + for (int ch = 0; ch < out->ch_layout.nb_channels; ch++) { \ const type *x = (const type *)s->cache[0]->extended_data[ch]; \ const type *y = (const type *)s->cache[1]->extended_data[ch]; \ type *num_sum = (type *)s->num_sum->extended_data[ch]; \ @@ -299,8 +299,8 @@ static int config_output(AVFilterLink *outlink) s->pts = AV_NOPTS_VALUE; - s->fifo[0] = av_audio_fifo_alloc(outlink->format, outlink->channels, s->size); - s->fifo[1] = av_audio_fifo_alloc(outlink->format, outlink->channels, s->size); + s->fifo[0] = av_audio_fifo_alloc(outlink->format, outlink->ch_layout.nb_channels, s->size); + s->fifo[1] = av_audio_fifo_alloc(outlink->format, outlink->ch_layout.nb_channels, s->size); if (!s->fifo[0] || !s->fifo[1]) return AVERROR(ENOMEM); diff --git a/libavfilter/af_biquads.c b/libavfilter/af_biquads.c index ee42b2a034..2a0747a037 100644 --- a/libavfilter/af_biquads.c +++ b/libavfilter/af_biquads.c @@ -125,7 +125,7 @@ typedef struct BiquadsContext { double frequency; double width; double mix; - uint64_t channels; + AVChannelLayout ch_layout; int normalize; int order; @@ -716,11 +716,11 @@ static int config_filter(AVFilterLink *outlink, int reset) s->b2 *= factor; } - s->cache = av_realloc_f(s->cache, sizeof(ChanCache), inlink->channels); + s->cache = av_realloc_f(s->cache, sizeof(ChanCache), inlink->ch_layout.nb_channels); if (!s->cache) return AVERROR(ENOMEM); if (reset) - memset(s->cache, 0, sizeof(ChanCache) * inlink->channels); + memset(s->cache, 0, sizeof(ChanCache) * inlink->ch_layout.nb_channels); switch (s->transform_type) { case DI: @@ -838,12 +838,14 @@ static int filter_channel(AVFilterContext *ctx, void *arg, int jobnr, int nb_job AVFrame *buf = td->in; AVFrame *out_buf = td->out; BiquadsContext *s = ctx->priv; - const int start = (buf->channels * jobnr) / nb_jobs; - const int end = (buf->channels * (jobnr+1)) / nb_jobs; + const int start = (buf->ch_layout.nb_channels * jobnr) / nb_jobs; + const int end = (buf->ch_layout.nb_channels * (jobnr+1)) / nb_jobs; int ch; for (ch = start; ch < end; ch++) { - if (!((av_channel_layout_extract_channel(inlink->channel_layout, ch) & s->channels))) { + if (!(av_channel_layout_channel_from_index(&inlink->ch_layout, ch) >= 0 && + av_channel_layout_channel_from_index(&s->ch_layout, ch) >= 0)) { + if (buf != out_buf) memcpy(out_buf->extended_data[ch], buf->extended_data[ch], buf->nb_samples * s->block_align); @@ -884,9 +886,9 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf) td.in = buf; td.out = out_buf; ff_filter_execute(ctx, filter_channel, &td, NULL, - FFMIN(outlink->channels, ff_filter_get_nb_threads(ctx))); + FFMIN(outlink->ch_layout.nb_channels, ff_filter_get_nb_threads(ctx))); - for (ch = 0; ch < outlink->channels; ch++) { + for (ch = 0; ch < outlink->ch_layout.nb_channels; ch++) { if (s->cache[ch].clippings > 0) av_log(ctx, AV_LOG_WARNING, "Channel %d clipping %d times. Please reduce gain.\n", ch, s->cache[ch].clippings); @@ -982,8 +984,8 @@ static const AVOption equalizer_options[] = { {"g", "set gain", OFFSET(gain), AV_OPT_TYPE_DOUBLE, {.dbl=0}, -900, 900, FLAGS}, {"mix", "set mix", OFFSET(mix), AV_OPT_TYPE_DOUBLE, {.dbl=1}, 0, 1, FLAGS}, {"m", "set mix", OFFSET(mix), AV_OPT_TYPE_DOUBLE, {.dbl=1}, 0, 1, FLAGS}, - {"channels", "set channels to filter", OFFSET(channels), AV_OPT_TYPE_CHANNEL_LAYOUT, {.i64=-1}, INT64_MIN, INT64_MAX, FLAGS}, - {"c", "set channels to filter", OFFSET(channels), AV_OPT_TYPE_CHANNEL_LAYOUT, {.i64=-1}, INT64_MIN, INT64_MAX, FLAGS}, + {"channels", "set channels to filter", OFFSET(ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str="0xFFFFFFFF"}, INT64_MIN, INT64_MAX, FLAGS}, + {"c", "set channels to filter", OFFSET(ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str="0xFFFFFFFF"}, INT64_MIN, INT64_MAX, FLAGS}, {"normalize", "normalize coefficients", OFFSET(normalize), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS}, {"n", "normalize coefficients", OFFSET(normalize), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS}, {"transform", "set transform type", OFFSET(transform_type), AV_OPT_TYPE_INT, {.i64=0}, 0, NB_TTYPE-1, AF, "transform_type"}, @@ -1024,8 +1026,8 @@ static const AVOption bass_lowshelf_options[] = { {"p", "set number of poles", OFFSET(poles), AV_OPT_TYPE_INT, {.i64=2}, 1, 2, AF}, {"mix", "set mix", OFFSET(mix), AV_OPT_TYPE_DOUBLE, {.dbl=1}, 0, 1, FLAGS}, {"m", "set mix", OFFSET(mix), AV_OPT_TYPE_DOUBLE, {.dbl=1}, 0, 1, FLAGS}, - {"channels", "set channels to filter", OFFSET(channels), AV_OPT_TYPE_CHANNEL_LAYOUT, {.i64=-1}, INT64_MIN, INT64_MAX, FLAGS}, - {"c", "set channels to filter", OFFSET(channels), AV_OPT_TYPE_CHANNEL_LAYOUT, {.i64=-1}, INT64_MIN, INT64_MAX, FLAGS}, + {"channels", "set channels to filter", OFFSET(ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str="0xFFFFFFFF"}, INT64_MIN, INT64_MAX, FLAGS}, + {"c", "set channels to filter", OFFSET(ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str="0xFFFFFFFF"}, INT64_MIN, INT64_MAX, FLAGS}, {"normalize", "normalize coefficients", OFFSET(normalize), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS}, {"n", "normalize coefficients", OFFSET(normalize), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS}, {"transform", "set transform type", OFFSET(transform_type), AV_OPT_TYPE_INT, {.i64=0}, 0, NB_TTYPE-1, AF, "transform_type"}, @@ -1073,8 +1075,8 @@ static const AVOption treble_highshelf_options[] = { {"p", "set number of poles", OFFSET(poles), AV_OPT_TYPE_INT, {.i64=2}, 1, 2, AF}, {"mix", "set mix", OFFSET(mix), AV_OPT_TYPE_DOUBLE, {.dbl=1}, 0, 1, FLAGS}, {"m", "set mix", OFFSET(mix), AV_OPT_TYPE_DOUBLE, {.dbl=1}, 0, 1, FLAGS}, - {"channels", "set channels to filter", OFFSET(channels), AV_OPT_TYPE_CHANNEL_LAYOUT, {.i64=-1}, INT64_MIN, INT64_MAX, FLAGS}, - {"c", "set channels to filter", OFFSET(channels), AV_OPT_TYPE_CHANNEL_LAYOUT, {.i64=-1}, INT64_MIN, INT64_MAX, FLAGS}, + {"channels", "set channels to filter", OFFSET(ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str="0xFFFFFFFF"}, INT64_MIN, INT64_MAX, FLAGS}, + {"c", "set channels to filter", OFFSET(ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str="0xFFFFFFFF"}, INT64_MIN, INT64_MAX, FLAGS}, {"normalize", "normalize coefficients", OFFSET(normalize), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS}, {"n", "normalize coefficients", OFFSET(normalize), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS}, {"transform", "set transform type", OFFSET(transform_type), AV_OPT_TYPE_INT, {.i64=0}, 0, NB_TTYPE-1, AF, "transform_type"}, @@ -1121,8 +1123,8 @@ static const AVOption bandpass_options[] = { {"csg", "use constant skirt gain", OFFSET(csg), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS}, {"mix", "set mix", OFFSET(mix), AV_OPT_TYPE_DOUBLE, {.dbl=1}, 0, 1, FLAGS}, {"m", "set mix", OFFSET(mix), AV_OPT_TYPE_DOUBLE, {.dbl=1}, 0, 1, FLAGS}, - {"channels", "set channels to filter", OFFSET(channels), AV_OPT_TYPE_CHANNEL_LAYOUT, {.i64=-1}, INT64_MIN, INT64_MAX, FLAGS}, - {"c", "set channels to filter", OFFSET(channels), AV_OPT_TYPE_CHANNEL_LAYOUT, {.i64=-1}, INT64_MIN, INT64_MAX, FLAGS}, + {"channels", "set channels to filter", OFFSET(ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str="0xFFFFFFFF"}, INT64_MIN, INT64_MAX, FLAGS}, + {"c", "set channels to filter", OFFSET(ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str="0xFFFFFFFF"}, INT64_MIN, INT64_MAX, FLAGS}, {"normalize", "normalize coefficients", OFFSET(normalize), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS}, {"n", "normalize coefficients", OFFSET(normalize), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS}, {"transform", "set transform type", OFFSET(transform_type), AV_OPT_TYPE_INT, {.i64=0}, 0, NB_TTYPE-1, AF, "transform_type"}, @@ -1159,8 +1161,8 @@ static const AVOption bandreject_options[] = { {"w", "set band-width", OFFSET(width), AV_OPT_TYPE_DOUBLE, {.dbl=0.5}, 0, 99999, FLAGS}, {"mix", "set mix", OFFSET(mix), AV_OPT_TYPE_DOUBLE, {.dbl=1}, 0, 1, FLAGS}, {"m", "set mix", OFFSET(mix), AV_OPT_TYPE_DOUBLE, {.dbl=1}, 0, 1, FLAGS}, - {"channels", "set channels to filter", OFFSET(channels), AV_OPT_TYPE_CHANNEL_LAYOUT, {.i64=-1}, INT64_MIN, INT64_MAX, FLAGS}, - {"c", "set channels to filter", OFFSET(channels), AV_OPT_TYPE_CHANNEL_LAYOUT, {.i64=-1}, INT64_MIN, INT64_MAX, FLAGS}, + {"channels", "set channels to filter", OFFSET(ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str="0xFFFFFFFF"}, INT64_MIN, INT64_MAX, FLAGS}, + {"c", "set channels to filter", OFFSET(ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str="0xFFFFFFFF"}, INT64_MIN, INT64_MAX, FLAGS}, {"normalize", "normalize coefficients", OFFSET(normalize), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS}, {"n", "normalize coefficients", OFFSET(normalize), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS}, {"transform", "set transform type", OFFSET(transform_type), AV_OPT_TYPE_INT, {.i64=0}, 0, NB_TTYPE-1, AF, "transform_type"}, @@ -1199,8 +1201,8 @@ static const AVOption lowpass_options[] = { {"p", "set number of poles", OFFSET(poles), AV_OPT_TYPE_INT, {.i64=2}, 1, 2, AF}, {"mix", "set mix", OFFSET(mix), AV_OPT_TYPE_DOUBLE, {.dbl=1}, 0, 1, FLAGS}, {"m", "set mix", OFFSET(mix), AV_OPT_TYPE_DOUBLE, {.dbl=1}, 0, 1, FLAGS}, - {"channels", "set channels to filter", OFFSET(channels), AV_OPT_TYPE_CHANNEL_LAYOUT, {.i64=-1}, INT64_MIN, INT64_MAX, FLAGS}, - {"c", "set channels to filter", OFFSET(channels), AV_OPT_TYPE_CHANNEL_LAYOUT, {.i64=-1}, INT64_MIN, INT64_MAX, FLAGS}, + {"channels", "set channels to filter", OFFSET(ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str="0xFFFFFFFF"}, INT64_MIN, INT64_MAX, FLAGS}, + {"c", "set channels to filter", OFFSET(ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str="0xFFFFFFFF"}, INT64_MIN, INT64_MAX, FLAGS}, {"normalize", "normalize coefficients", OFFSET(normalize), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS}, {"n", "normalize coefficients", OFFSET(normalize), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS}, {"transform", "set transform type", OFFSET(transform_type), AV_OPT_TYPE_INT, {.i64=0}, 0, NB_TTYPE-1, AF, "transform_type"}, @@ -1239,8 +1241,8 @@ static const AVOption highpass_options[] = { {"p", "set number of poles", OFFSET(poles), AV_OPT_TYPE_INT, {.i64=2}, 1, 2, AF}, {"mix", "set mix", OFFSET(mix), AV_OPT_TYPE_DOUBLE, {.dbl=1}, 0, 1, FLAGS}, {"m", "set mix", OFFSET(mix), AV_OPT_TYPE_DOUBLE, {.dbl=1}, 0, 1, FLAGS}, - {"channels", "set channels to filter", OFFSET(channels), AV_OPT_TYPE_CHANNEL_LAYOUT, {.i64=-1}, INT64_MIN, INT64_MAX, FLAGS}, - {"c", "set channels to filter", OFFSET(channels), AV_OPT_TYPE_CHANNEL_LAYOUT, {.i64=-1}, INT64_MIN, INT64_MAX, FLAGS}, + {"channels", "set channels to filter", OFFSET(ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str="0xFFFFFFFF"}, INT64_MIN, INT64_MAX, FLAGS}, + {"c", "set channels to filter", OFFSET(ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str="0xFFFFFFFF"}, INT64_MIN, INT64_MAX, FLAGS}, {"normalize", "normalize coefficients", OFFSET(normalize), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS}, {"n", "normalize coefficients", OFFSET(normalize), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS}, {"transform", "set transform type", OFFSET(transform_type), AV_OPT_TYPE_INT, {.i64=0}, 0, NB_TTYPE-1, AF, "transform_type"}, @@ -1277,8 +1279,8 @@ static const AVOption allpass_options[] = { {"w", "set filter-width", OFFSET(width), AV_OPT_TYPE_DOUBLE, {.dbl=707.1}, 0, 99999, FLAGS}, {"mix", "set mix", OFFSET(mix), AV_OPT_TYPE_DOUBLE, {.dbl=1}, 0, 1, FLAGS}, {"m", "set mix", OFFSET(mix), AV_OPT_TYPE_DOUBLE, {.dbl=1}, 0, 1, FLAGS}, - {"channels", "set channels to filter", OFFSET(channels), AV_OPT_TYPE_CHANNEL_LAYOUT, {.i64=-1}, INT64_MIN, INT64_MAX, FLAGS}, - {"c", "set channels to filter", OFFSET(channels), AV_OPT_TYPE_CHANNEL_LAYOUT, {.i64=-1}, INT64_MIN, INT64_MAX, FLAGS}, + {"channels", "set channels to filter", OFFSET(ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str="0xFFFFFFFF"}, INT64_MIN, INT64_MAX, FLAGS}, + {"c", "set channels to filter", OFFSET(ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str="0xFFFFFFFF"}, INT64_MIN, INT64_MAX, FLAGS}, {"normalize", "normalize coefficients", OFFSET(normalize), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS}, {"n", "normalize coefficients", OFFSET(normalize), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS}, {"order", "set filter order", OFFSET(order), AV_OPT_TYPE_INT, {.i64=2}, 1, 2, FLAGS}, @@ -1312,8 +1314,8 @@ static const AVOption biquad_options[] = { {"b2", NULL, OFFSET(ob2), AV_OPT_TYPE_DOUBLE, {.dbl=0}, INT32_MIN, INT32_MAX, FLAGS}, {"mix", "set mix", OFFSET(mix), AV_OPT_TYPE_DOUBLE, {.dbl=1}, 0, 1, FLAGS}, {"m", "set mix", OFFSET(mix), AV_OPT_TYPE_DOUBLE, {.dbl=1}, 0, 1, FLAGS}, - {"channels", "set channels to filter", OFFSET(channels), AV_OPT_TYPE_CHANNEL_LAYOUT, {.i64=-1}, INT64_MIN, INT64_MAX, FLAGS}, - {"c", "set channels to filter", OFFSET(channels), AV_OPT_TYPE_CHANNEL_LAYOUT, {.i64=-1}, INT64_MIN, INT64_MAX, FLAGS}, + {"channels", "set channels to filter", OFFSET(ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str="0xFFFFFFFF"}, INT64_MIN, INT64_MAX, FLAGS}, + {"c", "set channels to filter", OFFSET(ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str="0xFFFFFFFF"}, INT64_MIN, INT64_MAX, FLAGS}, {"normalize", "normalize coefficients", OFFSET(normalize), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS}, {"n", "normalize coefficients", OFFSET(normalize), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS}, {"transform", "set transform type", OFFSET(transform_type), AV_OPT_TYPE_INT, {.i64=0}, 0, NB_TTYPE-1, AF, "transform_type"}, diff --git a/libavfilter/af_bs2b.c b/libavfilter/af_bs2b.c index 90ae846d95..20e6d8141a 100644 --- a/libavfilter/af_bs2b.c +++ b/libavfilter/af_bs2b.c @@ -104,7 +104,7 @@ static int query_formats(AVFilterContext *ctx) }; int ret; - if (ff_add_channel_layout(&layouts, AV_CH_LAYOUT_STEREO) != 0) + if (ff_add_channel_layout(&layouts, &(AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO) != 0) return AVERROR(ENOMEM); ret = ff_set_common_channel_layouts(ctx, layouts); if (ret < 0) diff --git a/libavfilter/af_channelmap.c b/libavfilter/af_channelmap.c index d3ab77920f..9e6cafbc24 100644 --- a/libavfilter/af_channelmap.c +++ b/libavfilter/af_channelmap.c @@ -38,8 +38,8 @@ #include "internal.h" struct ChannelMap { - uint64_t in_channel; - uint64_t out_channel; + int in_channel; + int out_channel; int in_channel_idx; int out_channel_idx; }; @@ -59,7 +59,7 @@ typedef struct ChannelMapContext { const AVClass *class; char *mapping_str; char *channel_layout_str; - uint64_t output_layout; + AVChannelLayout output_layout; struct ChannelMap map[MAX_CH]; int nch; enum MappingMode mode; @@ -105,13 +105,13 @@ static int get_channel_idx(char **map, int *ch, char delim, int max_ch) return 0; } -static int get_channel(char **map, uint64_t *ch, char delim) +static int get_channel(char **map, int *ch, char delim) { char *next = split(*map, delim); if (!next && delim == '-') return AVERROR(EINVAL); - *ch = av_get_channel_layout(*map); - if (av_get_channel_layout_nb_channels(*ch) != 1) + *ch = av_channel_from_string(*map); + if (*ch < 0) return AVERROR(EINVAL); *map = next; return 0; @@ -167,7 +167,7 @@ static av_cold int channelmap_init(AVFilterContext *ctx) for (i = 0; i < map_entries; i++) { int in_ch_idx = -1, out_ch_idx = -1; - uint64_t in_ch = 0, out_ch = 0; + int in_ch = 0, out_ch = 0; static const char err[] = "Failed to parse channel map\n"; switch (mode) { case MAP_ONE_INT: @@ -198,13 +198,13 @@ static av_cold int channelmap_init(AVFilterContext *ctx) case MAP_PAIR_INT_STR: if (get_channel_idx(&mapping, &in_ch_idx, '-', MAX_CH) < 0 || get_channel(&mapping, &out_ch, separator) < 0 || - out_ch & out_ch_mask) { + (1ULL << out_ch) & out_ch_mask) { av_log(ctx, AV_LOG_ERROR, err); return AVERROR(EINVAL); } s->map[i].in_channel_idx = in_ch_idx; s->map[i].out_channel = out_ch; - out_ch_mask |= out_ch; + out_ch_mask |= 1ULL << out_ch; break; case MAP_PAIR_STR_INT: if (get_channel(&mapping, &in_ch, '-') < 0 || @@ -218,42 +218,57 @@ static av_cold int channelmap_init(AVFilterContext *ctx) case MAP_PAIR_STR_STR: if (get_channel(&mapping, &in_ch, '-') < 0 || get_channel(&mapping, &out_ch, separator) < 0 || - out_ch & out_ch_mask) { + (1ULL << out_ch) & out_ch_mask) { av_log(ctx, AV_LOG_ERROR, err); return AVERROR(EINVAL); } s->map[i].in_channel = in_ch; s->map[i].out_channel = out_ch; - out_ch_mask |= out_ch; + out_ch_mask |= 1ULL << out_ch; break; } } s->mode = mode; s->nch = map_entries; - s->output_layout = out_ch_mask ? out_ch_mask : - av_get_default_channel_layout(map_entries); + if (out_ch_mask) + av_channel_layout_from_mask(&s->output_layout, out_ch_mask); + else + av_channel_layout_default(&s->output_layout, map_entries); if (s->channel_layout_str) { - uint64_t fmt; - if ((fmt = av_get_channel_layout(s->channel_layout_str)) == 0) { - av_log(ctx, AV_LOG_ERROR, "Error parsing channel layout: '%s'.\n", + AVChannelLayout fmt = { 0 }; + int ret; + if ((ret = av_channel_layout_from_string(&fmt, s->channel_layout_str)) < 0) { +#if FF_API_OLD_CHANNEL_LAYOUT + uint64_t mask; +FF_DISABLE_DEPRECATION_WARNINGS + if ((mask = av_get_channel_layout(s->channel_layout_str)) == 0) { +#endif + av_log(ctx, AV_LOG_ERROR, "Error parsing channel layout: '%s'.\n", + s->channel_layout_str); + return AVERROR(EINVAL); +#if FF_API_OLD_CHANNEL_LAYOUT + } +FF_ENABLE_DEPRECATION_WARNINGS + av_log(ctx, AV_LOG_WARNING, "Channel layout '%s' uses a deprecated syntax.\n", s->channel_layout_str); - return AVERROR(EINVAL); + av_channel_layout_from_mask(&fmt, mask); +#endif } if (mode == MAP_NONE) { int i; - s->nch = av_get_channel_layout_nb_channels(fmt); + s->nch = fmt.nb_channels; for (i = 0; i < s->nch; i++) { s->map[i].in_channel_idx = i; s->map[i].out_channel_idx = i; } - } else if (out_ch_mask && out_ch_mask != fmt) { - av_get_channel_layout_string(buf, sizeof(buf), 0, out_ch_mask); + } else if (out_ch_mask && av_channel_layout_compare(&s->output_layout, &fmt)) { + av_channel_layout_describe(&s->output_layout, buf, sizeof(buf)); av_log(ctx, AV_LOG_ERROR, "Output channel layout '%s' does not match the list of channel mapped: '%s'.\n", s->channel_layout_str, buf); return AVERROR(EINVAL); - } else if (s->nch != av_get_channel_layout_nb_channels(fmt)) { + } else if (s->nch != fmt.nb_channels) { av_log(ctx, AV_LOG_ERROR, "Output channel layout %s does not match the number of channels mapped %d.\n", s->channel_layout_str, s->nch); @@ -261,7 +276,7 @@ static av_cold int channelmap_init(AVFilterContext *ctx) } s->output_layout = fmt; } - if (!s->output_layout) { + if (!s->output_layout.nb_channels) { av_log(ctx, AV_LOG_ERROR, "Output channel layout is not set and " "cannot be guessed from the maps.\n"); return AVERROR(EINVAL); @@ -269,8 +284,8 @@ static av_cold int channelmap_init(AVFilterContext *ctx) if (mode == MAP_PAIR_INT_STR || mode == MAP_PAIR_STR_STR) { for (i = 0; i < s->nch; i++) { - s->map[i].out_channel_idx = av_get_channel_layout_channel_index( - s->output_layout, s->map[i].out_channel); + s->map[i].out_channel_idx = av_channel_layout_index_from_channel( + &s->output_layout, s->map[i].out_channel); } } @@ -285,7 +300,7 @@ static int channelmap_query_formats(AVFilterContext *ctx) if ((ret = ff_set_common_formats (ctx, ff_planar_sample_fmts())) < 0 || (ret = ff_set_common_all_samplerates(ctx )) < 0 || - (ret = ff_add_channel_layout(&channel_layouts, s->output_layout)) < 0 || + (ret = ff_add_channel_layout(&channel_layouts, &s->output_layout)) < 0 || (ret = ff_channel_layouts_ref(channel_layouts, &ctx->outputs[0]->incfg.channel_layouts)) < 0) return ret; @@ -299,9 +314,9 @@ static int channelmap_filter_frame(AVFilterLink *inlink, AVFrame *buf) AVFilterContext *ctx = inlink->dst; AVFilterLink *outlink = ctx->outputs[0]; const ChannelMapContext *s = ctx->priv; - const int nch_in = inlink->channels; + const int nch_in = inlink->ch_layout.nb_channels; const int nch_out = s->nch; - int ch; + int ch, ret; uint8_t *source_planes[MAX_CH]; memcpy(source_planes, buf->extended_data, @@ -336,8 +351,14 @@ static int channelmap_filter_frame(AVFilterLink *inlink, AVFrame *buf) memcpy(buf->data, buf->extended_data, FFMIN(FF_ARRAY_ELEMS(buf->data), nch_out) * sizeof(buf->data[0])); +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + buf->ch_layout.nb_channels = outlink->ch_layout.nb_channels; buf->channel_layout = outlink->channel_layout; - buf->channels = outlink->channels; +FF_ENABLE_DEPRECATION_WARNINGS +#endif + if ((ret = av_channel_layout_copy(&buf->ch_layout, &outlink->ch_layout)) < 0) + return ret; return ff_filter_frame(outlink, buf); } @@ -346,24 +367,23 @@ static int channelmap_config_input(AVFilterLink *inlink) { AVFilterContext *ctx = inlink->dst; ChannelMapContext *s = ctx->priv; - int nb_channels = inlink->channels; + int nb_channels = inlink->ch_layout.nb_channels; int i, err = 0; - const char *channel_name; + char channel_name[64]; char layout_name[256]; for (i = 0; i < s->nch; i++) { struct ChannelMap *m = &s->map[i]; if (s->mode == MAP_PAIR_STR_INT || s->mode == MAP_PAIR_STR_STR) { - m->in_channel_idx = av_get_channel_layout_channel_index( - inlink->channel_layout, m->in_channel); + m->in_channel_idx = av_channel_layout_index_from_channel( + &inlink->ch_layout, m->in_channel); } if (m->in_channel_idx < 0 || m->in_channel_idx >= nb_channels) { - av_get_channel_layout_string(layout_name, sizeof(layout_name), - nb_channels, inlink->channel_layout); + av_channel_layout_describe(&inlink->ch_layout, layout_name, sizeof(layout_name)); if (m->in_channel) { - channel_name = av_get_channel_name(m->in_channel); + av_channel_name(channel_name, sizeof(channel_name), m->in_channel); av_log(ctx, AV_LOG_ERROR, "input channel '%s' not available from input layout '%s'\n", channel_name, layout_name); diff --git a/libavfilter/af_channelsplit.c b/libavfilter/af_channelsplit.c index 1a2519dd32..31453823c5 100644 --- a/libavfilter/af_channelsplit.c +++ b/libavfilter/af_channelsplit.c @@ -36,7 +36,7 @@ typedef struct ChannelSplitContext { const AVClass *class; - uint64_t channel_layout; + AVChannelLayout channel_layout; char *channel_layout_str; char *channels_str; @@ -57,11 +57,11 @@ AVFILTER_DEFINE_CLASS(channelsplit); static av_cold int init(AVFilterContext *ctx) { ChannelSplitContext *s = ctx->priv; - uint64_t channel_layout; + AVChannelLayout channel_layout = { 0 }; int nb_channels; int all = 0, ret = 0, i; - if (!(s->channel_layout = av_get_channel_layout(s->channel_layout_str))) { + if ((ret = av_channel_layout_from_string(&s->channel_layout, s->channel_layout_str)) < 0) { av_log(ctx, AV_LOG_ERROR, "Error parsing channel layout '%s'.\n", s->channel_layout_str); ret = AVERROR(EINVAL); @@ -70,27 +70,32 @@ static av_cold int init(AVFilterContext *ctx) if (!strcmp(s->channels_str, "all")) { - nb_channels = av_get_channel_layout_nb_channels(s->channel_layout); + nb_channels = s->channel_layout.nb_channels; channel_layout = s->channel_layout; all = 1; } else { - if ((ret = av_get_extended_channel_layout(s->channels_str, &channel_layout, &nb_channels)) < 0) + if ((ret = av_channel_layout_from_string(&channel_layout, s->channels_str)) < 0) return ret; } for (i = 0; i < nb_channels; i++) { - uint64_t channel = av_channel_layout_extract_channel(channel_layout, i); - AVFilterPad pad = { 0 }; + int channel = av_channel_layout_channel_from_index(&channel_layout, i); + char buf[64]; + AVFilterPad pad = { .flags = AVFILTERPAD_FLAG_FREE_NAME }; + av_channel_name(buf, sizeof(buf), channel); pad.type = AVMEDIA_TYPE_AUDIO; - pad.name = av_get_channel_name(channel); + pad.name = av_strdup(buf); + if (!pad.name) + return AVERROR(ENOMEM); if (all) { s->map[i] = i; } else { - if ((ret = av_get_channel_layout_channel_index(s->channel_layout, channel)) < 0) { + if ((ret = av_channel_layout_index_from_channel(&s->channel_layout, channel)) < 0) { av_log(ctx, AV_LOG_ERROR, "Channel name '%s' not present in channel layout '%s'.\n", - av_get_channel_name(channel), s->channel_layout_str); + pad.name, s->channel_layout_str); + av_freep(&pad.name); return ret; } @@ -115,15 +120,18 @@ static int query_formats(AVFilterContext *ctx) (ret = ff_set_common_all_samplerates(ctx)) < 0) return ret; - if ((ret = ff_add_channel_layout(&in_layouts, s->channel_layout)) < 0 || + if ((ret = ff_add_channel_layout(&in_layouts, &s->channel_layout)) < 0 || (ret = ff_channel_layouts_ref(in_layouts, &ctx->inputs[0]->outcfg.channel_layouts)) < 0) return ret; for (i = 0; i < ctx->nb_outputs; i++) { + AVChannelLayout channel_layout = { 0 }; AVFilterChannelLayouts *out_layouts = NULL; - uint64_t channel = av_channel_layout_extract_channel(s->channel_layout, s->map[i]); + int channel = av_channel_layout_channel_from_index(&s->channel_layout, s->map[i]); - if ((ret = ff_add_channel_layout(&out_layouts, channel)) < 0 || + if ((channel < 0) || + (ret = av_channel_layout_from_mask(&channel_layout, 1ULL << channel)) < 0 || + (ret = ff_add_channel_layout(&out_layouts, &channel_layout)) < 0 || (ret = ff_channel_layouts_ref(out_layouts, &ctx->outputs[i]->incfg.channel_layouts)) < 0) return ret; } @@ -139,6 +147,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf) for (i = 0; i < ctx->nb_outputs; i++) { AVFrame *buf_out = av_frame_clone(buf); + int channel = av_channel_layout_channel_from_index(&buf->ch_layout, s->map[i]); if (!buf_out) { ret = AVERROR(ENOMEM); @@ -146,9 +155,16 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf) } buf_out->data[0] = buf_out->extended_data[0] = buf_out->extended_data[s->map[i]]; + ret = av_channel_layout_from_mask(&buf_out->ch_layout, 1ULL << channel); + if (ret < 0) + break; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS buf_out->channel_layout = av_channel_layout_extract_channel(buf->channel_layout, s->map[i]); buf_out->channels = 1; +FF_ENABLE_DEPRECATION_WARNINGS +#endif ret = ff_filter_frame(ctx->outputs[i], buf_out); if (ret < 0) diff --git a/libavfilter/af_chorus.c b/libavfilter/af_chorus.c index 68de692c4b..19826cfb15 100644 --- a/libavfilter/af_chorus.c +++ b/libavfilter/af_chorus.c @@ -161,7 +161,7 @@ static int config_output(AVFilterLink *outlink) float sum_in_volume = 1.0; int n; - s->channels = outlink->channels; + s->channels = outlink->ch_layout.nb_channels; for (n = 0; n < s->num_chorus; n++) { int samples = (int) ((s->delays[n] + s->depths[n]) * outlink->sample_rate / 1000.0); @@ -184,15 +184,15 @@ static int config_output(AVFilterLink *outlink) if (s->in_gain * (sum_in_volume) > 1.0 / s->out_gain) av_log(ctx, AV_LOG_WARNING, "output gain can cause saturation or clipping of output\n"); - s->counter = av_calloc(outlink->channels, sizeof(*s->counter)); + s->counter = av_calloc(outlink->ch_layout.nb_channels, sizeof(*s->counter)); if (!s->counter) return AVERROR(ENOMEM); - s->phase = av_calloc(outlink->channels, sizeof(*s->phase)); + s->phase = av_calloc(outlink->ch_layout.nb_channels, sizeof(*s->phase)); if (!s->phase) return AVERROR(ENOMEM); - for (n = 0; n < outlink->channels; n++) { + for (n = 0; n < outlink->ch_layout.nb_channels; n++) { s->phase[n] = av_calloc(s->num_chorus, sizeof(int)); if (!s->phase[n]) return AVERROR(ENOMEM); @@ -201,7 +201,7 @@ static int config_output(AVFilterLink *outlink) s->fade_out = s->max_samples; return av_samples_alloc_array_and_samples(&s->chorusbuf, NULL, - outlink->channels, + outlink->ch_layout.nb_channels, s->max_samples, outlink->format, 0); } @@ -226,7 +226,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame) av_frame_copy_props(out_frame, frame); } - for (c = 0; c < inlink->channels; c++) { + for (c = 0; c < inlink->ch_layout.nb_channels; c++) { const float *src = (const float *)frame->extended_data[c]; float *dst = (float *)out_frame->extended_data[c]; float *chorusbuf = (float *)s->chorusbuf[c]; @@ -280,7 +280,7 @@ static int request_frame(AVFilterLink *outlink) av_samples_set_silence(frame->extended_data, 0, frame->nb_samples, - outlink->channels, + outlink->ch_layout.nb_channels, frame->format); frame->pts = s->next_pts; diff --git a/libavfilter/af_compand.c b/libavfilter/af_compand.c index 2f8a580279..ba90d21ced 100644 --- a/libavfilter/af_compand.c +++ b/libavfilter/af_compand.c @@ -146,7 +146,7 @@ static int compand_nodelay(AVFilterContext *ctx, AVFrame *frame) { CompandContext *s = ctx->priv; AVFilterLink *inlink = ctx->inputs[0]; - const int channels = inlink->channels; + const int channels = inlink->ch_layout.nb_channels; const int nb_samples = frame->nb_samples; AVFrame *out_frame; int chan, i; @@ -192,7 +192,7 @@ static int compand_delay(AVFilterContext *ctx, AVFrame *frame) { CompandContext *s = ctx->priv; AVFilterLink *inlink = ctx->inputs[0]; - const int channels = inlink->channels; + const int channels = inlink->ch_layout.nb_channels; const int nb_samples = frame->nb_samples; int chan, i, av_uninit(dindex), oindex, av_uninit(count); AVFrame *out_frame = NULL; @@ -264,7 +264,7 @@ static int compand_drain(AVFilterLink *outlink) { AVFilterContext *ctx = outlink->src; CompandContext *s = ctx->priv; - const int channels = outlink->channels; + const int channels = outlink->ch_layout.nb_channels; AVFrame *frame = NULL; int chan, i, dindex; @@ -302,7 +302,7 @@ static int config_output(AVFilterLink *outlink) const int sample_rate = outlink->sample_rate; double radius = s->curve_dB * M_LN10 / 20.0; char *p, *saveptr = NULL; - const int channels = outlink->channels; + const int channels = outlink->ch_layout.nb_channels; int nb_attacks, nb_decays, nb_points; int new_nb_items, num; int i; @@ -503,7 +503,13 @@ static int config_output(AVFilterLink *outlink) s->delay_frame->format = outlink->format; s->delay_frame->nb_samples = s->delay_samples; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS s->delay_frame->channel_layout = outlink->channel_layout; +FF_ENABLE_DEPRECATION_WARNINGS +#endif + if ((err = av_channel_layout_copy(&s->delay_frame->ch_layout, &outlink->ch_layout)) < 0) + return err; err = av_frame_get_buffer(s->delay_frame, 0); if (err) diff --git a/libavfilter/af_compensationdelay.c b/libavfilter/af_compensationdelay.c index 6a58fd21bd..ac5a342ddb 100644 --- a/libavfilter/af_compensationdelay.c +++ b/libavfilter/af_compensationdelay.c @@ -68,6 +68,7 @@ static int config_input(AVFilterLink *inlink) AVFilterContext *ctx = inlink->dst; CompensationDelayContext *s = ctx->priv; unsigned min_size, new_size = 1; + int ret; s->delay = (s->distance_m * 100. + s->distance_cm * 1. + s->distance_mm * .1) * COMP_DELAY_SOUND_FRONT_DELAY(s->temp) * inlink->sample_rate; @@ -83,7 +84,13 @@ static int config_input(AVFilterLink *inlink) s->buf_size = new_size; s->delay_frame->format = inlink->format; s->delay_frame->nb_samples = new_size; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS s->delay_frame->channel_layout = inlink->channel_layout; +FF_ENABLE_DEPRECATION_WARNINGS +#endif + if ((ret = av_channel_layout_copy(&s->delay_frame->ch_layout, &inlink->ch_layout)) < 0) + return ret; return av_frame_get_buffer(s->delay_frame, 0); } @@ -108,7 +115,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) } av_frame_copy_props(out, in); - for (ch = 0; ch < inlink->channels; ch++) { + for (ch = 0; ch < inlink->ch_layout.nb_channels; ch++) { const double *src = (const double *)in->extended_data[ch]; double *dst = (double *)out->extended_data[ch]; double *buffer = (double *)s->delay_frame->extended_data[ch]; diff --git a/libavfilter/af_crossfeed.c b/libavfilter/af_crossfeed.c index ecfbb978d4..15990703e1 100644 --- a/libavfilter/af_crossfeed.c +++ b/libavfilter/af_crossfeed.c @@ -46,7 +46,7 @@ static int query_formats(AVFilterContext *ctx) if ((ret = ff_add_format (&formats, AV_SAMPLE_FMT_DBL )) < 0 || (ret = ff_set_common_formats (ctx , formats )) < 0 || - (ret = ff_add_channel_layout (&layout , AV_CH_LAYOUT_STEREO)) < 0 || + (ret = ff_add_channel_layout (&layout , &(AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO)) < 0 || (ret = ff_set_common_channel_layouts (ctx , layout )) < 0 || (ret = ff_set_common_all_samplerates (ctx )) < 0) return ret; diff --git a/libavfilter/af_crystalizer.c b/libavfilter/af_crystalizer.c index 8d967fd629..2d0ec50f21 100644 --- a/libavfilter/af_crystalizer.c +++ b/libavfilter/af_crystalizer.c @@ -312,10 +312,10 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) td.s = (const void **)in->extended_data; td.p = (void **)s->prev->extended_data; td.nb_samples = in->nb_samples; - td.channels = in->channels; + td.channels = in->ch_layout.nb_channels; td.mult = ctx->is_disabled ? 0.f : s->mult; ff_filter_execute(ctx, s->filter[td.mult >= 0.f][s->clip], &td, NULL, - FFMIN(inlink->channels, ff_filter_get_nb_threads(ctx))); + FFMIN(inlink->ch_layout.nb_channels, ff_filter_get_nb_threads(ctx))); if (out != in) av_frame_free(&in); diff --git a/libavfilter/af_dcshift.c b/libavfilter/af_dcshift.c index da7c16550a..480f01f4a3 100644 --- a/libavfilter/af_dcshift.c +++ b/libavfilter/af_dcshift.c @@ -73,7 +73,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) } if (s->limitergain > 0) { - for (i = 0; i < inlink->channels; i++) { + for (i = 0; i < inlink->ch_layout.nb_channels; i++) { const int32_t *src = (int32_t *)in->extended_data[i]; int32_t *dst = (int32_t *)out->extended_data[i]; @@ -98,7 +98,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) } } } else { - for (i = 0; i < inlink->channels; i++) { + for (i = 0; i < inlink->ch_layout.nb_channels; i++) { const int32_t *src = (int32_t *)in->extended_data[i]; int32_t *dst = (int32_t *)out->extended_data[i]; diff --git a/libavfilter/af_deesser.c b/libavfilter/af_deesser.c index 1093e242d7..cdef837155 100644 --- a/libavfilter/af_deesser.c +++ b/libavfilter/af_deesser.c @@ -73,11 +73,11 @@ static int config_input(AVFilterLink *inlink) AVFilterContext *ctx = inlink->dst; DeesserContext *s = ctx->priv; - s->chan = av_calloc(inlink->channels, sizeof(*s->chan)); + s->chan = av_calloc(inlink->ch_layout.nb_channels, sizeof(*s->chan)); if (!s->chan) return AVERROR(ENOMEM); - for (int i = 0; i < inlink->channels; i++) { + for (int i = 0; i < inlink->ch_layout.nb_channels; i++) { DeesserChannel *chan = &s->chan[i]; chan->ratioA = chan->ratioB = 1.0; @@ -104,7 +104,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) av_frame_copy_props(out, in); } - for (int ch = 0; ch < inlink->channels; ch++) { + for (int ch = 0; ch < inlink->ch_layout.nb_channels; ch++) { DeesserChannel *dec = &s->chan[ch]; double *src = (double *)in->extended_data[ch]; double *dst = (double *)out->extended_data[ch]; diff --git a/libavfilter/af_drmeter.c b/libavfilter/af_drmeter.c index 2021cab143..3e80691339 100644 --- a/libavfilter/af_drmeter.c +++ b/libavfilter/af_drmeter.c @@ -59,10 +59,10 @@ static int config_output(AVFilterLink *outlink) { DRMeterContext *s = outlink->src->priv; - s->chstats = av_calloc(sizeof(*s->chstats), outlink->channels); + s->chstats = av_calloc(sizeof(*s->chstats), outlink->ch_layout.nb_channels); if (!s->chstats) return AVERROR(ENOMEM); - s->nb_channels = outlink->channels; + s->nb_channels = outlink->ch_layout.nb_channels; s->tc_samples = s->time_constant * outlink->sample_rate + .5; return 0; diff --git a/libavfilter/af_dynaudnorm.c b/libavfilter/af_dynaudnorm.c index 783266f8c1..f154f54134 100644 --- a/libavfilter/af_dynaudnorm.c +++ b/libavfilter/af_dynaudnorm.c @@ -301,17 +301,17 @@ static int config_input(AVFilterLink *inlink) uninit(ctx); - s->channels = inlink->channels; + s->channels = inlink->ch_layout.nb_channels; s->frame_len = frame_size(inlink->sample_rate, s->frame_len_msec); av_log(ctx, AV_LOG_DEBUG, "frame len %d\n", s->frame_len); - s->prev_amplification_factor = av_malloc_array(inlink->channels, sizeof(*s->prev_amplification_factor)); - s->dc_correction_value = av_calloc(inlink->channels, sizeof(*s->dc_correction_value)); - s->compress_threshold = av_calloc(inlink->channels, sizeof(*s->compress_threshold)); - s->gain_history_original = av_calloc(inlink->channels, sizeof(*s->gain_history_original)); - s->gain_history_minimum = av_calloc(inlink->channels, sizeof(*s->gain_history_minimum)); - s->gain_history_smoothed = av_calloc(inlink->channels, sizeof(*s->gain_history_smoothed)); - s->threshold_history = av_calloc(inlink->channels, sizeof(*s->threshold_history)); + s->prev_amplification_factor = av_malloc_array(inlink->ch_layout.nb_channels, sizeof(*s->prev_amplification_factor)); + s->dc_correction_value = av_calloc(inlink->ch_layout.nb_channels, sizeof(*s->dc_correction_value)); + s->compress_threshold = av_calloc(inlink->ch_layout.nb_channels, sizeof(*s->compress_threshold)); + s->gain_history_original = av_calloc(inlink->ch_layout.nb_channels, sizeof(*s->gain_history_original)); + s->gain_history_minimum = av_calloc(inlink->ch_layout.nb_channels, sizeof(*s->gain_history_minimum)); + s->gain_history_smoothed = av_calloc(inlink->ch_layout.nb_channels, sizeof(*s->gain_history_smoothed)); + s->threshold_history = av_calloc(inlink->ch_layout.nb_channels, sizeof(*s->threshold_history)); s->weights = av_malloc_array(MAX_FILTER_SIZE, sizeof(*s->weights)); s->is_enabled = cqueue_create(s->filter_size, MAX_FILTER_SIZE); if (!s->prev_amplification_factor || !s->dc_correction_value || @@ -321,7 +321,7 @@ static int config_input(AVFilterLink *inlink) !s->is_enabled || !s->weights) return AVERROR(ENOMEM); - for (c = 0; c < inlink->channels; c++) { + for (c = 0; c < inlink->ch_layout.nb_channels; c++) { s->prev_amplification_factor[c] = 1.0; s->gain_history_original[c] = cqueue_create(s->filter_size, MAX_FILTER_SIZE); @@ -364,7 +364,7 @@ static double find_peak_magnitude(AVFrame *frame, int channel) int c, i; if (channel == -1) { - for (c = 0; c < frame->channels; c++) { + for (c = 0; c < frame->ch_layout.nb_channels; c++) { double *data_ptr = (double *)frame->extended_data[c]; for (i = 0; i < frame->nb_samples; i++) @@ -386,7 +386,7 @@ static double compute_frame_rms(AVFrame *frame, int channel) int c, i; if (channel == -1) { - for (c = 0; c < frame->channels; c++) { + for (c = 0; c < frame->ch_layout.nb_channels; c++) { const double *data_ptr = (double *)frame->extended_data[c]; for (i = 0; i < frame->nb_samples; i++) { @@ -394,7 +394,7 @@ static double compute_frame_rms(AVFrame *frame, int channel) } } - rms_value /= frame->nb_samples * frame->channels; + rms_value /= frame->nb_samples * frame->ch_layout.nb_channels; } else { const double *data_ptr = (double *)frame->extended_data[channel]; for (i = 0; i < frame->nb_samples; i++) { diff --git a/libavfilter/af_earwax.c b/libavfilter/af_earwax.c index fa0162abb2..f420a5ac55 100644 --- a/libavfilter/af_earwax.c +++ b/libavfilter/af_earwax.c @@ -88,7 +88,7 @@ static int query_formats(AVFilterContext *ctx) if ((ret = ff_add_format (&formats, AV_SAMPLE_FMT_S16P )) < 0 || (ret = ff_set_common_formats (ctx , formats )) < 0 || - (ret = ff_add_channel_layout (&layout , AV_CH_LAYOUT_STEREO )) < 0 || + (ret = ff_add_channel_layout (&layout , &(AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO)) < 0 || (ret = ff_set_common_channel_layouts (ctx , layout )) < 0 || (ret = ff_set_common_samplerates_from_list(ctx, sample_rates)) < 0) return ret; diff --git a/libavfilter/af_extrastereo.c b/libavfilter/af_extrastereo.c index 1645ccb944..6f1d691d8e 100644 --- a/libavfilter/af_extrastereo.c +++ b/libavfilter/af_extrastereo.c @@ -49,7 +49,7 @@ static int query_formats(AVFilterContext *ctx) if ((ret = ff_add_format (&formats, AV_SAMPLE_FMT_FLT )) < 0 || (ret = ff_set_common_formats (ctx , formats )) < 0 || - (ret = ff_add_channel_layout (&layout , AV_CH_LAYOUT_STEREO)) < 0 || + (ret = ff_add_channel_layout (&layout , &(AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO)) < 0 || (ret = ff_set_common_channel_layouts (ctx , layout )) < 0) return ret; diff --git a/libavfilter/af_firequalizer.c b/libavfilter/af_firequalizer.c index 568b78117a..c19a2fe122 100644 --- a/libavfilter/af_firequalizer.c +++ b/libavfilter/af_firequalizer.c @@ -607,14 +607,15 @@ static int generate_kernel(AVFilterContext *ctx, const char *gain, const char *g if (s->dumpfile && (!s->dump_buf || !s->analysis_rdft || !(dump_fp = fopen(s->dumpfile, "w")))) av_log(ctx, AV_LOG_WARNING, "dumping failed.\n"); - vars[VAR_CHS] = inlink->channels; - vars[VAR_CHLAYOUT] = inlink->channel_layout; + vars[VAR_CHS] = inlink->ch_layout.nb_channels; + vars[VAR_CHLAYOUT] = inlink->ch_layout.order == AV_CHANNEL_ORDER_NATIVE ? + inlink->ch_layout.u.mask : 0; vars[VAR_SR] = inlink->sample_rate; - for (ch = 0; ch < inlink->channels; ch++) { + for (ch = 0; ch < inlink->ch_layout.nb_channels; ch++) { float *rdft_buf = s->kernel_tmp_buf + ch * s->rdft_len; double result; vars[VAR_CH] = ch; - vars[VAR_CHID] = av_channel_layout_extract_channel(inlink->channel_layout, ch); + vars[VAR_CHID] = av_channel_layout_channel_from_index(&inlink->ch_layout, ch); vars[VAR_F] = 0.0; if (xlog) vars[VAR_F] = log2(0.05 * vars[VAR_F]); @@ -715,7 +716,7 @@ static int generate_kernel(AVFilterContext *ctx, const char *gain, const char *g break; } - memcpy(s->kernel_buf, s->kernel_tmp_buf, (s->multi ? inlink->channels : 1) * s->rdft_len * sizeof(*s->kernel_buf)); + memcpy(s->kernel_buf, s->kernel_tmp_buf, (s->multi ? inlink->ch_layout.nb_channels : 1) * s->rdft_len * sizeof(*s->kernel_buf)); av_expr_free(gain_expr); if (dump_fp) fclose(dump_fp); @@ -754,7 +755,7 @@ static int config_input(AVFilterLink *inlink) if (!(s->rdft = av_rdft_init(rdft_bits, DFT_R2C)) || !(s->irdft = av_rdft_init(rdft_bits, IDFT_C2R))) return AVERROR(ENOMEM); - if (s->fft2 && !s->multi && inlink->channels > 1 && !(s->fft_ctx = av_fft_init(rdft_bits, 0))) + if (s->fft2 && !s->multi && inlink->ch_layout.nb_channels > 1 && !(s->fft_ctx = av_fft_init(rdft_bits, 0))) return AVERROR(ENOMEM); if (s->min_phase) { @@ -796,15 +797,15 @@ static int config_input(AVFilterLink *inlink) } s->analysis_buf = av_malloc_array(s->analysis_rdft_len, sizeof(*s->analysis_buf)); - s->kernel_tmp_buf = av_malloc_array(s->rdft_len * (s->multi ? inlink->channels : 1), sizeof(*s->kernel_tmp_buf)); - s->kernel_buf = av_malloc_array(s->rdft_len * (s->multi ? inlink->channels : 1), sizeof(*s->kernel_buf)); - s->conv_buf = av_calloc(2 * s->rdft_len * inlink->channels, sizeof(*s->conv_buf)); - s->conv_idx = av_calloc(inlink->channels, sizeof(*s->conv_idx)); + s->kernel_tmp_buf = av_malloc_array(s->rdft_len * (s->multi ? inlink->ch_layout.nb_channels : 1), sizeof(*s->kernel_tmp_buf)); + s->kernel_buf = av_malloc_array(s->rdft_len * (s->multi ? inlink->ch_layout.nb_channels : 1), sizeof(*s->kernel_buf)); + s->conv_buf = av_calloc(2 * s->rdft_len * inlink->ch_layout.nb_channels, sizeof(*s->conv_buf)); + s->conv_idx = av_calloc(inlink->ch_layout.nb_channels, sizeof(*s->conv_idx)); if (!s->analysis_buf || !s->kernel_tmp_buf || !s->kernel_buf || !s->conv_buf || !s->conv_idx) return AVERROR(ENOMEM); av_log(ctx, AV_LOG_DEBUG, "sample_rate = %d, channels = %d, analysis_rdft_len = %d, rdft_len = %d, fir_len = %d, nsamples_max = %d.\n", - inlink->sample_rate, inlink->channels, s->analysis_rdft_len, s->rdft_len, s->fir_len, s->nsamples_max); + inlink->sample_rate, inlink->ch_layout.nb_channels, s->analysis_rdft_len, s->rdft_len, s->fir_len, s->nsamples_max); if (s->fixed) inlink->min_samples = inlink->max_samples = s->nsamples_max; @@ -819,19 +820,19 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame) int ch; if (!s->min_phase) { - for (ch = 0; ch + 1 < inlink->channels && s->fft_ctx; ch += 2) { + for (ch = 0; ch + 1 < inlink->ch_layout.nb_channels && s->fft_ctx; ch += 2) { fast_convolute2(s, s->kernel_buf, (FFTComplex *)(s->conv_buf + 2 * ch * s->rdft_len), s->conv_idx + ch, (float *) frame->extended_data[ch], (float *) frame->extended_data[ch+1], frame->nb_samples); } - for ( ; ch < inlink->channels; ch++) { + for ( ; ch < inlink->ch_layout.nb_channels; ch++) { fast_convolute(s, s->kernel_buf + (s->multi ? ch * s->rdft_len : 0), s->conv_buf + 2 * ch * s->rdft_len, s->conv_idx + ch, (float *) frame->extended_data[ch], frame->nb_samples); } } else { - for (ch = 0; ch < inlink->channels; ch++) { + for (ch = 0; ch < inlink->ch_layout.nb_channels; ch++) { fast_convolute_nonlinear(s, s->kernel_buf + (s->multi ? ch * s->rdft_len : 0), s->conv_buf + 2 * ch * s->rdft_len, s->conv_idx + ch, (float *) frame->extended_data[ch], frame->nb_samples); @@ -861,7 +862,7 @@ static int request_frame(AVFilterLink *outlink) if (!frame) return AVERROR(ENOMEM); - av_samples_set_silence(frame->extended_data, 0, frame->nb_samples, outlink->channels, frame->format); + av_samples_set_silence(frame->extended_data, 0, frame->nb_samples, outlink->ch_layout.nb_channels, frame->format); frame->pts = s->next_pts; s->remaining -= frame->nb_samples; ret = filter_frame(ctx->inputs[0], frame); diff --git a/libavfilter/af_flanger.c b/libavfilter/af_flanger.c index ba8d033ce8..452436a4b6 100644 --- a/libavfilter/af_flanger.c +++ b/libavfilter/af_flanger.c @@ -95,7 +95,7 @@ static int config_input(AVFilterLink *inlink) s->max_samples = (s->delay_min + s->delay_depth) * inlink->sample_rate + 2.5; s->lfo_length = inlink->sample_rate / s->speed; - s->delay_last = av_calloc(inlink->channels, sizeof(*s->delay_last)); + s->delay_last = av_calloc(inlink->ch_layout.nb_channels, sizeof(*s->delay_last)); s->lfo = av_calloc(s->lfo_length, sizeof(*s->lfo)); if (!s->lfo || !s->delay_last) return AVERROR(ENOMEM); @@ -105,7 +105,7 @@ static int config_input(AVFilterLink *inlink) s->max_samples - 2., 3 * M_PI_2); return av_samples_alloc_array_and_samples(&s->delay_buffer, NULL, - inlink->channels, s->max_samples, + inlink->ch_layout.nb_channels, s->max_samples, inlink->format, 0); } @@ -131,7 +131,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame) s->delay_buf_pos = (s->delay_buf_pos + s->max_samples - 1) % s->max_samples; - for (chan = 0; chan < inlink->channels; chan++) { + for (chan = 0; chan < inlink->ch_layout.nb_channels; chan++) { double *src = (double *)frame->extended_data[chan]; double *dst = (double *)out_frame->extended_data[chan]; double delayed_0, delayed_1; diff --git a/libavfilter/af_haas.c b/libavfilter/af_haas.c index 281ec276f9..d283da7261 100644 --- a/libavfilter/af_haas.c +++ b/libavfilter/af_haas.c @@ -87,7 +87,7 @@ static int query_formats(AVFilterContext *ctx) if ((ret = ff_add_format (&formats, AV_SAMPLE_FMT_DBL )) < 0 || (ret = ff_set_common_formats (ctx , formats )) < 0 || - (ret = ff_add_channel_layout (&layout , AV_CH_LAYOUT_STEREO)) < 0 || + (ret = ff_add_channel_layout (&layout , &(AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO)) < 0 || (ret = ff_set_common_channel_layouts (ctx , layout )) < 0) return ret; diff --git a/libavfilter/af_hdcd.c b/libavfilter/af_hdcd.c index 494642106d..49bfa1bfa8 100644 --- a/libavfilter/af_hdcd.c +++ b/libavfilter/af_hdcd.c @@ -1554,27 +1554,27 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) switch (inlink->format) { case AV_SAMPLE_FMT_S16P: for (n = 0; n < in->nb_samples; n++) - for (c = 0; c < in->channels; c++) { + for (c = 0; c < in->ch_layout.nb_channels; c++) { in_data = (int16_t*)in->extended_data[c]; - out_data[(n * in->channels) + c] = in_data[n]; + out_data[(n * in->ch_layout.nb_channels) + c] = in_data[n]; } break; case AV_SAMPLE_FMT_S16: in_data = (int16_t*)in->data[0]; - for (n = 0; n < in->nb_samples * in->channels; n++) + for (n = 0; n < in->nb_samples * in->ch_layout.nb_channels; n++) out_data[n] = in_data[n]; break; case AV_SAMPLE_FMT_S32P: for (n = 0; n < in->nb_samples; n++) - for (c = 0; c < in->channels; c++) { + for (c = 0; c < in->ch_layout.nb_channels; c++) { in_data32 = (int32_t*)in->extended_data[c]; - out_data[(n * in->channels) + c] = in_data32[n] >> a; + out_data[(n * in->ch_layout.nb_channels) + c] = in_data32[n] >> a; } break; case AV_SAMPLE_FMT_S32: in_data32 = (int32_t*)in->data[0]; - for (n = 0; n < in->nb_samples * in->channels; n++) + for (n = 0; n < in->nb_samples * in->ch_layout.nb_channels; n++) out_data[n] = in_data32[n] >> a; break; } @@ -1587,14 +1587,14 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) hdcd_detect_end(&s->detect, 2); } else { hdcd_detect_start(&s->detect); - for (c = 0; c < in->channels; c++) { - hdcd_process(s, &s->state[c], out_data + c, in->nb_samples, in->channels); + for (c = 0; c < in->ch_layout.nb_channels; c++) { + hdcd_process(s, &s->state[c], out_data + c, in->nb_samples, in->ch_layout.nb_channels); hdcd_detect_onech(&s->state[c], &s->detect); } - hdcd_detect_end(&s->detect, in->channels); + hdcd_detect_end(&s->detect, in->ch_layout.nb_channels); } - s->sample_count += in->nb_samples * in->channels; + s->sample_count += in->nb_samples * in->ch_layout.nb_channels; av_frame_free(&in); return ff_filter_frame(outlink, out); @@ -1627,10 +1627,10 @@ static int query_formats(AVFilterContext *ctx) }; int ret; - ret = ff_add_channel_layout(&layouts, AV_CH_LAYOUT_MONO); + ret = ff_add_channel_layout(&layouts, &(AVChannelLayout)AV_CHANNEL_LAYOUT_MONO); if (ret < 0) return ret; - ret = ff_add_channel_layout(&layouts, AV_CH_LAYOUT_STEREO); + ret = ff_add_channel_layout(&layouts, &(AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO); if (ret < 0) return ret; @@ -1739,8 +1739,8 @@ static int config_input(AVFilterLink *inlink) { av_log(ctx, AV_LOG_VERBOSE, "CDT period: %dms (%u samples @44100Hz)\n", s->cdt_ms, s->state[0].sustain_reset ); - if (inlink->channels != 2 && s->process_stereo) { - av_log(ctx, AV_LOG_WARNING, "process_stereo disabled (channels = %d)\n", inlink->channels); + if (inlink->ch_layout.nb_channels != 2 && s->process_stereo) { + av_log(ctx, AV_LOG_WARNING, "process_stereo disabled (channels = %d)\n", inlink->ch_layout.nb_channels); s->process_stereo = 0; } av_log(ctx, AV_LOG_VERBOSE, "Process mode: %s\n", diff --git a/libavfilter/af_headphone.c b/libavfilter/af_headphone.c index b2030dbbbb..2fe36368c1 100644 --- a/libavfilter/af_headphone.c +++ b/libavfilter/af_headphone.c @@ -85,13 +85,13 @@ typedef struct HeadphoneContext { uint64_t mapping[64]; } HeadphoneContext; -static int parse_channel_name(const char *arg, uint64_t *rchannel) +static int parse_channel_name(const char *arg, int *rchannel) { - uint64_t layout = av_get_channel_layout(arg); + int channel = av_channel_from_string(arg); - if (av_get_channel_layout_nb_channels(layout) != 1) + if (channel < 0) return AVERROR(EINVAL); - *rchannel = layout; + *rchannel = channel; return 0; } @@ -103,14 +103,14 @@ static void parse_map(AVFilterContext *ctx) p = s->map; while ((arg = av_strtok(p, "|", &tokenizer))) { - uint64_t out_channel; + int out_channel; p = NULL; if (parse_channel_name(arg, &out_channel)) { av_log(ctx, AV_LOG_WARNING, "Failed to parse \'%s\' as channel name.\n", arg); continue; } - if (used_channels & out_channel) { + if (used_channels & (1ULL << out_channel)) { av_log(ctx, AV_LOG_WARNING, "Ignoring duplicate channel '%s'.\n", arg); continue; } @@ -152,7 +152,7 @@ static int headphone_convolute(AVFilterContext *ctx, void *arg, int jobnr, int n const int air_len = s->air_len; const float *src = (const float *)in->data[0]; float *dst = (float *)out->data[0]; - const int in_channels = in->channels; + const int in_channels = in->ch_layout.nb_channels; const int buffer_length = s->buffer_length; const uint32_t modulo = (uint32_t)buffer_length - 1; float *buffer[64]; @@ -221,7 +221,7 @@ static int headphone_fast_convolute(AVFilterContext *ctx, void *arg, int jobnr, const int ir_len = s->ir_len; const float *src = (const float *)in->data[0]; float *dst = (float *)out->data[0]; - const int in_channels = in->channels; + const int in_channels = in->ch_layout.nb_channels; const int buffer_length = s->buffer_length; const uint32_t modulo = (uint32_t)buffer_length - 1; AVComplexFloat *fft_out = s->out_fft[jobnr]; @@ -360,7 +360,7 @@ static int convert_coeffs(AVFilterContext *ctx, AVFilterLink *inlink) { struct HeadphoneContext *s = ctx->priv; const int ir_len = s->ir_len; - int nb_input_channels = ctx->inputs[0]->channels; + int nb_input_channels = ctx->inputs[0]->ch_layout.nb_channels; float gain_lin = expf((s->gain - 3 * nb_input_channels) / 20 * M_LN10); AVFrame *frame; int ret = 0; @@ -451,7 +451,7 @@ static int convert_coeffs(AVFilterContext *ctx, AVFilterLink *inlink) ptr = (float *)frame->extended_data[0]; if (s->hrir_fmt == HRIR_STEREO) { - int idx = av_get_channel_layout_channel_index(inlink->channel_layout, + int idx = av_channel_layout_index_from_channel(&inlink->ch_layout, s->mapping[i]); if (idx < 0) continue; @@ -478,10 +478,10 @@ static int convert_coeffs(AVFilterContext *ctx, AVFilterLink *inlink) s->tx_fn[0](s->fft[0], fft_out_r, fft_in_r, sizeof(float)); } } else { - int I, N = ctx->inputs[1]->channels; + int I, N = ctx->inputs[1]->ch_layout.nb_channels; for (k = 0; k < N / 2; k++) { - int idx = av_get_channel_layout_channel_index(inlink->channel_layout, + int idx = av_channel_layout_index_from_channel(&inlink->ch_layout, s->mapping[k]); if (idx < 0) continue; @@ -602,7 +602,7 @@ static int query_formats(AVFilterContext *ctx) if (ret) return ret; - ret = ff_add_channel_layout(&stereo_layout, AV_CH_LAYOUT_STEREO); + ret = ff_add_channel_layout(&stereo_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO); if (ret) return ret; ret = ff_channel_layouts_ref(stereo_layout, &ctx->outputs[0]->incfg.channel_layouts); @@ -632,13 +632,13 @@ static int config_input(AVFilterLink *inlink) AVFilterContext *ctx = inlink->dst; HeadphoneContext *s = ctx->priv; - if (s->nb_irs < inlink->channels) { - av_log(ctx, AV_LOG_ERROR, "Number of HRIRs must be >= %d.\n", inlink->channels); + if (s->nb_irs < inlink->ch_layout.nb_channels) { + av_log(ctx, AV_LOG_ERROR, "Number of HRIRs must be >= %d.\n", inlink->ch_layout.nb_channels); return AVERROR(EINVAL); } - s->lfe_channel = av_get_channel_layout_channel_index(inlink->channel_layout, - AV_CH_LOW_FREQUENCY); + s->lfe_channel = av_channel_layout_index_from_channel(&inlink->ch_layout, + AV_CHAN_LOW_FREQUENCY); return 0; } @@ -694,13 +694,13 @@ static int config_output(AVFilterLink *outlink) if (s->hrir_fmt == HRIR_MULTI) { AVFilterLink *hrir_link = ctx->inputs[1]; - if (hrir_link->channels < inlink->channels * 2) { - av_log(ctx, AV_LOG_ERROR, "Number of channels in HRIR stream must be >= %d.\n", inlink->channels * 2); + if (hrir_link->ch_layout.nb_channels < inlink->ch_layout.nb_channels * 2) { + av_log(ctx, AV_LOG_ERROR, "Number of channels in HRIR stream must be >= %d.\n", inlink->ch_layout.nb_channels * 2); return AVERROR(EINVAL); } } - s->gain_lfe = expf((s->gain - 3 * inlink->channels + s->lfe_gain) / 20 * M_LN10); + s->gain_lfe = expf((s->gain - 3 * inlink->ch_layout.nb_channels + s->lfe_gain) / 20 * M_LN10); return 0; } diff --git a/libavfilter/af_join.c b/libavfilter/af_join.c index 6cc21f465c..3e272d9161 100644 --- a/libavfilter/af_join.c +++ b/libavfilter/af_join.c @@ -24,6 +24,7 @@ * a single output */ +#include "libavutil/avassert.h" #include "libavutil/avstring.h" #include "libavutil/channel_layout.h" #include "libavutil/common.h" @@ -36,10 +37,10 @@ #include "internal.h" typedef struct ChannelMap { - int input; ///< input stream index - int in_channel_idx; ///< index of in_channel in the input stream data - uint64_t in_channel; ///< layout describing the input channel - uint64_t out_channel; ///< layout describing the output channel + int input; ///< input stream index + int in_channel_idx; ///< index of in_channel in the input stream data + enum AVChannel in_channel; + enum AVChannel out_channel; } ChannelMap; typedef struct JoinContext { @@ -48,11 +49,10 @@ typedef struct JoinContext { int inputs; char *map; char *channel_layout_str; - uint64_t channel_layout; + AVChannelLayout ch_layout; int64_t eof_pts; - int nb_channels; ChannelMap *channels; /** @@ -79,20 +79,21 @@ static const AVOption join_options[] = { { NULL } }; +#define MAP_SEPARATOR '|' + AVFILTER_DEFINE_CLASS(join); static int parse_maps(AVFilterContext *ctx) { JoinContext *s = ctx->priv; - char separator = '|'; char *cur = s->map; while (cur && *cur) { + ChannelMap *map; char *sep, *next, *p; - uint64_t in_channel = 0, out_channel = 0; - int input_idx, out_ch_idx, in_ch_idx; + int input_idx, out_ch_idx; - next = strchr(cur, separator); + next = strchr(cur, MAP_SEPARATOR); if (next) *next++ = 0; @@ -104,28 +105,16 @@ static int parse_maps(AVFilterContext *ctx) } *sep++ = 0; -#define PARSE_CHANNEL(str, var, inout) \ - if (!(var = av_get_channel_layout(str))) { \ - av_log(ctx, AV_LOG_ERROR, "Invalid " inout " channel: %s.\n", str);\ - return AVERROR(EINVAL); \ - } \ - if (av_get_channel_layout_nb_channels(var) != 1) { \ - av_log(ctx, AV_LOG_ERROR, "Channel map describes more than one " \ - inout " channel.\n"); \ - return AVERROR(EINVAL); \ - } - /* parse output channel */ - PARSE_CHANNEL(sep, out_channel, "output"); - if (!(out_channel & s->channel_layout)) { - av_log(ctx, AV_LOG_ERROR, "Output channel '%s' is not present in " - "requested channel layout.\n", sep); + out_ch_idx = av_channel_layout_index_from_string(&s->ch_layout, sep); + if (out_ch_idx < 0) { + av_log(ctx, AV_LOG_ERROR, "Invalid output channel: %s.\n", sep); return AVERROR(EINVAL); } - out_ch_idx = av_get_channel_layout_channel_index(s->channel_layout, - out_channel); - if (s->channels[out_ch_idx].input >= 0) { + map = &s->channels[out_ch_idx]; + + if (map->input >= 0) { av_log(ctx, AV_LOG_ERROR, "Multiple maps for output channel " "'%s'.\n", sep); return AVERROR(EINVAL); @@ -142,19 +131,21 @@ static int parse_maps(AVFilterContext *ctx) if (*cur) cur++; - in_ch_idx = strtol(cur, &p, 0); + map->input = input_idx; + map->in_channel = AV_CHAN_NONE; + map->in_channel_idx = strtol(cur, &p, 0); if (p == cur) { - /* channel specifier is not a number, - * try to parse as channel name */ - PARSE_CHANNEL(cur, in_channel, "input"); + /* channel specifier is not a number, handle as channel name */ + map->in_channel = av_channel_from_string(cur); + if (map->in_channel < 0) { + av_log(ctx, AV_LOG_ERROR, "Invalid input channel: %s.\n", cur); + return AVERROR(EINVAL); + } + } else if (map->in_channel_idx < 0) { + av_log(ctx, AV_LOG_ERROR, "Invalid input channel index: %d\n", map->in_channel_idx); + return AVERROR(EINVAL); } - s->channels[out_ch_idx].input = input_idx; - if (in_channel) - s->channels[out_ch_idx].in_channel = in_channel; - else - s->channels[out_ch_idx].in_channel_idx = in_ch_idx; - cur = next; } return 0; @@ -165,22 +156,37 @@ static av_cold int join_init(AVFilterContext *ctx) JoinContext *s = ctx->priv; int ret, i; - if (!(s->channel_layout = av_get_channel_layout(s->channel_layout_str))) { - av_log(ctx, AV_LOG_ERROR, "Error parsing channel layout '%s'.\n", + ret = av_channel_layout_from_string(&s->ch_layout, s->channel_layout_str); + if (ret < 0) { +#if FF_API_OLD_CHANNEL_LAYOUT + uint64_t mask; +FF_DISABLE_DEPRECATION_WARNINGS + mask = av_get_channel_layout(s->channel_layout_str); + if (!mask) { +#endif + av_log(ctx, AV_LOG_ERROR, "Error parsing channel layout '%s'.\n", + s->channel_layout_str); + return AVERROR(EINVAL); +#if FF_API_OLD_CHANNEL_LAYOUT + } +FF_ENABLE_DEPRECATION_WARNINGS + av_log(ctx, AV_LOG_WARNING, "Channel layout '%s' uses a deprecated syntax.\n", s->channel_layout_str); - return AVERROR(EINVAL); + av_channel_layout_from_mask(&s->ch_layout, mask); +#endif } - s->nb_channels = av_get_channel_layout_nb_channels(s->channel_layout); - s->channels = av_calloc(s->nb_channels, sizeof(*s->channels)); - s->buffers = av_calloc(s->nb_channels, sizeof(*s->buffers)); + s->channels = av_calloc(s->ch_layout.nb_channels, sizeof(*s->channels)); + s->buffers = av_calloc(s->ch_layout.nb_channels, sizeof(*s->buffers)); s->input_frames = av_calloc(s->inputs, sizeof(*s->input_frames)); if (!s->channels || !s->buffers|| !s->input_frames) return AVERROR(ENOMEM); - for (i = 0; i < s->nb_channels; i++) { - s->channels[i].out_channel = av_channel_layout_extract_channel(s->channel_layout, i); - s->channels[i].input = -1; + for (i = 0; i < s->ch_layout.nb_channels; i++) { + s->channels[i].out_channel = av_channel_layout_channel_from_index(&s->ch_layout, i); + s->channels[i].input = -1; + s->channels[i].in_channel_idx = -1; + s->channels[i].in_channel = AV_CHAN_NONE; } if ((ret = parse_maps(ctx)) < 0) @@ -221,7 +227,7 @@ static int join_query_formats(AVFilterContext *ctx) AVFilterChannelLayouts *layouts = NULL; int i, ret; - if ((ret = ff_add_channel_layout(&layouts, s->channel_layout)) < 0 || + if ((ret = ff_add_channel_layout(&layouts, &s->ch_layout)) < 0 || (ret = ff_channel_layouts_ref(layouts, &ctx->outputs[0]->incfg.channel_layouts)) < 0) return ret; @@ -238,38 +244,55 @@ static int join_query_formats(AVFilterContext *ctx) return 0; } +typedef struct ChannelList { + enum AVChannel *ch; + int nb_ch; +} ChannelList; + +static enum AVChannel channel_list_pop(ChannelList *chl, int idx) +{ + enum AVChannel ret = chl->ch[idx]; + memcpy(chl->ch + idx, chl->ch + idx + 1, + (chl->nb_ch - idx - 1) * sizeof(*chl->ch)); + chl->nb_ch--; + return ret; +} + +/* + * If ch is present in chl, remove it from the list and return it. + * Otherwise return AV_CHAN_NONE. + */ +static enum AVChannel channel_list_pop_ch(ChannelList *chl, enum AVChannel ch) +{ + for (int i = 0; i < chl->nb_ch; i++) + if (chl->ch[i] == ch) + return channel_list_pop(chl, i); + return AV_CHAN_NONE; +} + static void guess_map_matching(AVFilterContext *ctx, ChannelMap *ch, - uint64_t *inputs) + ChannelList *inputs) { int i; for (i = 0; i < ctx->nb_inputs; i++) { - AVFilterLink *link = ctx->inputs[i]; - - if (ch->out_channel & link->channel_layout && - !(ch->out_channel & inputs[i])) { + if (channel_list_pop_ch(&inputs[i], ch->out_channel) != AV_CHAN_NONE) { ch->input = i; ch->in_channel = ch->out_channel; - inputs[i] |= ch->out_channel; return; } } } static void guess_map_any(AVFilterContext *ctx, ChannelMap *ch, - uint64_t *inputs) + ChannelList *inputs) { int i; for (i = 0; i < ctx->nb_inputs; i++) { - AVFilterLink *link = ctx->inputs[i]; - - if ((inputs[i] & link->channel_layout) != link->channel_layout) { - uint64_t unused = link->channel_layout & ~inputs[i]; - + if (inputs[i].nb_ch) { ch->input = i; - ch->in_channel = av_channel_layout_extract_channel(unused, 0); - inputs[i] |= ch->in_channel; + ch->in_channel = channel_list_pop(&inputs[i], 0); return; } } @@ -279,81 +302,136 @@ static int join_config_output(AVFilterLink *outlink) { AVFilterContext *ctx = outlink->src; JoinContext *s = ctx->priv; - uint64_t *inputs; // nth element tracks which channels are used from nth input + // unused channels from each input + ChannelList *inputs_unused; + char inbuf[64], outbuf[64]; int i, ret = 0; - /* initialize inputs to user-specified mappings */ - if (!(inputs = av_calloc(ctx->nb_inputs, sizeof(*inputs)))) + /* initialize unused channel list for each input */ + inputs_unused = av_calloc(ctx->nb_inputs, sizeof(*inputs_unused)); + if (!inputs_unused) return AVERROR(ENOMEM); - for (i = 0; i < s->nb_channels; i++) { + for (i = 0; i < ctx->nb_inputs; i++) { + AVFilterLink *inlink = ctx->inputs[i]; + AVChannelLayout *chl = &inlink->ch_layout; + ChannelList *iu = &inputs_unused[i]; + + iu->nb_ch = chl->nb_channels; + iu->ch = av_malloc_array(iu->nb_ch, sizeof(*iu->ch)); + if (!iu->ch) { + ret = AVERROR(ENOMEM); + goto fail; + } + + for (int ch_idx = 0; ch_idx < iu->nb_ch; ch_idx++) { + iu->ch[ch_idx] = av_channel_layout_channel_from_index(chl, ch_idx); + if (iu->ch[ch_idx] < 0) { + /* no channel ordering information in this input, + * so don't auto-map from it */ + iu->nb_ch = 0; + break; + } + } + } + + /* process user-specified maps */ + for (i = 0; i < s->ch_layout.nb_channels; i++) { ChannelMap *ch = &s->channels[i]; AVFilterLink *inlink; + AVChannelLayout *ichl; + ChannelList *iu; if (ch->input < 0) continue; inlink = ctx->inputs[ch->input]; + ichl = &inlink->ch_layout; + iu = &inputs_unused[ch->input]; + + /* get the index for the channels defined by name */ + if (ch->in_channel != AV_CHAN_NONE) { + ch->in_channel_idx = av_channel_layout_index_from_channel(ichl, ch->in_channel); + if (ch->in_channel_idx < 0) { + av_channel_name(inbuf, sizeof(inbuf), ch->in_channel); + av_log(ctx, AV_LOG_ERROR, "Requested channel %s is not present in " + "input stream #%d.\n", inbuf, + ch->input); + ret = AVERROR(EINVAL); + goto fail; + } + } - if (!ch->in_channel) - ch->in_channel = av_channel_layout_extract_channel(inlink->channel_layout, - ch->in_channel_idx); - - if (!(ch->in_channel & inlink->channel_layout)) { - av_log(ctx, AV_LOG_ERROR, "Requested channel %s is not present in " - "input stream #%d.\n", av_get_channel_name(ch->in_channel), - ch->input); + /* make sure channels specified by index actually exist */ + if (ch->in_channel_idx >= ichl->nb_channels) { + av_log(ctx, AV_LOG_ERROR, "Requested channel with index %d is not " + "present in input stream #%d.\n", ch->in_channel_idx, ch->input); ret = AVERROR(EINVAL); goto fail; } - inputs[ch->input] |= ch->in_channel; + channel_list_pop_ch(iu, av_channel_layout_channel_from_index(ichl, ch->in_channel_idx)); } /* guess channel maps when not explicitly defined */ /* first try unused matching channels */ - for (i = 0; i < s->nb_channels; i++) { + for (i = 0; i < s->ch_layout.nb_channels; i++) { ChannelMap *ch = &s->channels[i]; if (ch->input < 0) - guess_map_matching(ctx, ch, inputs); + guess_map_matching(ctx, ch, inputs_unused); } /* if the above failed, try to find _any_ unused input channel */ - for (i = 0; i < s->nb_channels; i++) { + for (i = 0; i < s->ch_layout.nb_channels; i++) { ChannelMap *ch = &s->channels[i]; if (ch->input < 0) - guess_map_any(ctx, ch, inputs); + guess_map_any(ctx, ch, inputs_unused); if (ch->input < 0) { + av_channel_name(outbuf, sizeof(outbuf), ch->out_channel); av_log(ctx, AV_LOG_ERROR, "Could not find input channel for " "output channel '%s'.\n", - av_get_channel_name(ch->out_channel)); + outbuf); + ret = AVERROR(EINVAL); goto fail; } - ch->in_channel_idx = av_get_channel_layout_channel_index(ctx->inputs[ch->input]->channel_layout, - ch->in_channel); + if (ch->in_channel != AV_CHAN_NONE) { + ch->in_channel_idx = av_channel_layout_index_from_channel( + &ctx->inputs[ch->input]->ch_layout, ch->in_channel); + } + + av_assert0(ch->in_channel_idx >= 0); } /* print mappings */ av_log(ctx, AV_LOG_VERBOSE, "mappings: "); - for (i = 0; i < s->nb_channels; i++) { + for (i = 0; i < s->ch_layout.nb_channels; i++) { ChannelMap *ch = &s->channels[i]; - av_log(ctx, AV_LOG_VERBOSE, "%d.%s => %s ", ch->input, - av_get_channel_name(ch->in_channel), - av_get_channel_name(ch->out_channel)); + AVFilterLink *inlink = ctx->inputs[ch->input]; + AVChannelLayout *ichl = &inlink->ch_layout; + enum AVChannel in_ch = av_channel_layout_channel_from_index( + ichl, ch->in_channel_idx); + + av_channel_name(inbuf, sizeof(inbuf), in_ch); + av_channel_name(outbuf, sizeof(outbuf), ch->out_channel); + av_log(ctx, AV_LOG_VERBOSE, "%d.%s(%d) => %s(%d) ", ch->input, + inbuf, ch->in_channel_idx, + outbuf, i); } av_log(ctx, AV_LOG_VERBOSE, "\n"); for (i = 0; i < ctx->nb_inputs; i++) { - if (!inputs[i]) + if (inputs_unused[i].nb_ch == ctx->inputs[i]->ch_layout.nb_channels) av_log(ctx, AV_LOG_WARNING, "No channels are used from input " "stream %d.\n", i); } fail: - av_freep(&inputs); + for (i = 0; i < ctx->nb_inputs; i++) + av_freep(&inputs_unused[i].ch); + av_freep(&inputs_unused); return ret; } @@ -382,8 +460,8 @@ static int try_push_frame(AVFilterContext *ctx) frame = av_frame_alloc(); if (!frame) return AVERROR(ENOMEM); - if (s->nb_channels > FF_ARRAY_ELEMS(frame->data)) { - frame->extended_data = av_calloc(s->nb_channels, + if (s->ch_layout.nb_channels > FF_ARRAY_ELEMS(frame->data)) { + frame->extended_data = av_calloc(s->ch_layout.nb_channels, sizeof(*frame->extended_data)); if (!frame->extended_data) { ret = AVERROR(ENOMEM); @@ -392,7 +470,7 @@ static int try_push_frame(AVFilterContext *ctx) } /* copy the data pointers */ - for (i = 0; i < s->nb_channels; i++) { + for (i = 0; i < s->ch_layout.nb_channels; i++) { ChannelMap *ch = &s->channels[i]; AVFrame *cur = s->input_frames[ch->input]; AVBufferRef *buf; @@ -442,15 +520,21 @@ static int try_push_frame(AVFilterContext *ctx) } frame->nb_samples = nb_samples; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS frame->channel_layout = outlink->channel_layout; - frame->channels = outlink->channels; + frame->channels = outlink->ch_layout.nb_channels; +FF_ENABLE_DEPRECATION_WARNINGS +#endif + if ((ret = av_channel_layout_copy(&frame->ch_layout, &outlink->ch_layout)) < 0) + return ret; frame->sample_rate = outlink->sample_rate; frame->format = outlink->format; frame->pts = s->input_frames[0]->pts; frame->linesize[0] = linesize; if (frame->data != frame->extended_data) { memcpy(frame->data, frame->extended_data, sizeof(*frame->data) * - FFMIN(FF_ARRAY_ELEMS(frame->data), s->nb_channels)); + FFMIN(FF_ARRAY_ELEMS(frame->data), s->ch_layout.nb_channels)); } s->eof_pts = frame->pts + av_rescale_q(frame->nb_samples, diff --git a/libavfilter/af_ladspa.c b/libavfilter/af_ladspa.c index ff16388a56..46f85943e0 100644 --- a/libavfilter/af_ladspa.c +++ b/libavfilter/af_ladspa.c @@ -366,8 +366,14 @@ static int config_output(AVFilterLink *outlink) outlink->format = inlink->format; outlink->sample_rate = inlink->sample_rate; if (s->nb_inputs == s->nb_outputs) { + if ((ret = av_channel_layout_copy(&outlink->ch_layout, &inlink->ch_layout)) < 0) + return ret; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS outlink->channel_layout = inlink->channel_layout; - outlink->channels = inlink->channels; +FF_ENABLE_DEPRECATION_WARNINGS +#endif + outlink->ch_layout.nb_channels = inlink->ch_layout.nb_channels; } ret = 0; @@ -681,7 +687,7 @@ static int query_formats(AVFilterContext *ctx) return ret; } else if (s->nb_inputs == 2 && s->nb_outputs == 2) { layouts = NULL; - ret = ff_add_channel_layout(&layouts, AV_CH_LAYOUT_STEREO); + ret = ff_add_channel_layout(&layouts, &(AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO); if (ret < 0) return ret; ret = ff_set_common_channel_layouts(ctx, layouts); @@ -692,10 +698,10 @@ static int query_formats(AVFilterContext *ctx) if (s->nb_inputs >= 1) { AVFilterLink *inlink = ctx->inputs[0]; - uint64_t inlayout = FF_COUNT2LAYOUT(s->nb_inputs); + AVChannelLayout inlayout = FF_COUNT2LAYOUT(s->nb_inputs); layouts = NULL; - ret = ff_add_channel_layout(&layouts, inlayout); + ret = ff_add_channel_layout(&layouts, &inlayout); if (ret < 0) return ret; ret = ff_channel_layouts_ref(layouts, &inlink->outcfg.channel_layouts); @@ -710,10 +716,10 @@ static int query_formats(AVFilterContext *ctx) } if (s->nb_outputs >= 1) { - uint64_t outlayout = FF_COUNT2LAYOUT(s->nb_outputs); + AVChannelLayout outlayout = FF_COUNT2LAYOUT(s->nb_outputs); layouts = NULL; - ret = ff_add_channel_layout(&layouts, outlayout); + ret = ff_add_channel_layout(&layouts, &outlayout); if (ret < 0) return ret; ret = ff_channel_layouts_ref(layouts, &outlink->incfg.channel_layouts); diff --git a/libavfilter/af_loudnorm.c b/libavfilter/af_loudnorm.c index dbe7fba986..ac3cb2021d 100644 --- a/libavfilter/af_loudnorm.c +++ b/libavfilter/af_loudnorm.c @@ -446,7 +446,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) double offset, offset_tp, true_peak; ff_ebur128_loudness_global(s->r128_in, &global); - for (c = 0; c < inlink->channels; c++) { + for (c = 0; c < inlink->ch_layout.nb_channels; c++) { double tmp; ff_ebur128_sample_peak(s->r128_in, c, &tmp); if (c == 0 || tmp > true_peak) @@ -462,11 +462,11 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) switch (s->frame_type) { case FIRST_FRAME: for (n = 0; n < in->nb_samples; n++) { - for (c = 0; c < inlink->channels; c++) { + for (c = 0; c < inlink->ch_layout.nb_channels; c++) { buf[s->buf_index + c] = src[c]; } - src += inlink->channels; - s->buf_index += inlink->channels; + src += inlink->ch_layout.nb_channels; + s->buf_index += inlink->ch_layout.nb_channels; } ff_ebur128_loudness_shortterm(s->r128_in, &shortterm); @@ -486,19 +486,19 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) s->buf_index = s->limiter_buf_index = 0; - for (n = 0; n < (s->limiter_buf_size / inlink->channels); n++) { - for (c = 0; c < inlink->channels; c++) { + for (n = 0; n < (s->limiter_buf_size / inlink->ch_layout.nb_channels); n++) { + for (c = 0; c < inlink->ch_layout.nb_channels; c++) { limiter_buf[s->limiter_buf_index + c] = buf[s->buf_index + c] * s->delta[s->index] * s->offset; } - s->limiter_buf_index += inlink->channels; + s->limiter_buf_index += inlink->ch_layout.nb_channels; if (s->limiter_buf_index >= s->limiter_buf_size) s->limiter_buf_index -= s->limiter_buf_size; - s->buf_index += inlink->channels; + s->buf_index += inlink->ch_layout.nb_channels; } subframe_length = frame_size(inlink->sample_rate, 100); - true_peak_limiter(s, dst, subframe_length, inlink->channels); + true_peak_limiter(s, dst, subframe_length, inlink->ch_layout.nb_channels); ff_ebur128_add_frames_double(s->r128_out, dst, subframe_length); s->pts += @@ -514,29 +514,29 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) gain_next = gaussian_filter(s, s->index + 11 < 30 ? s->index + 11 : s->index + 11 - 30); for (n = 0; n < in->nb_samples; n++) { - for (c = 0; c < inlink->channels; c++) { + for (c = 0; c < inlink->ch_layout.nb_channels; c++) { buf[s->prev_buf_index + c] = src[c]; limiter_buf[s->limiter_buf_index + c] = buf[s->buf_index + c] * (gain + (((double) n / in->nb_samples) * (gain_next - gain))) * s->offset; } - src += inlink->channels; + src += inlink->ch_layout.nb_channels; - s->limiter_buf_index += inlink->channels; + s->limiter_buf_index += inlink->ch_layout.nb_channels; if (s->limiter_buf_index >= s->limiter_buf_size) s->limiter_buf_index -= s->limiter_buf_size; - s->prev_buf_index += inlink->channels; + s->prev_buf_index += inlink->ch_layout.nb_channels; if (s->prev_buf_index >= s->buf_size) s->prev_buf_index -= s->buf_size; - s->buf_index += inlink->channels; + s->buf_index += inlink->ch_layout.nb_channels; if (s->buf_index >= s->buf_size) s->buf_index -= s->buf_size; } - subframe_length = (frame_size(inlink->sample_rate, 100) - in->nb_samples) * inlink->channels; + subframe_length = (frame_size(inlink->sample_rate, 100) - in->nb_samples) * inlink->ch_layout.nb_channels; s->limiter_buf_index = s->limiter_buf_index + subframe_length < s->limiter_buf_size ? s->limiter_buf_index + subframe_length : s->limiter_buf_index + subframe_length - s->limiter_buf_size; - true_peak_limiter(s, dst, in->nb_samples, inlink->channels); + true_peak_limiter(s, dst, in->nb_samples, inlink->ch_layout.nb_channels); ff_ebur128_add_frames_double(s->r128_out, dst, in->nb_samples); ff_ebur128_loudness_range(s->r128_in, &lra); @@ -576,39 +576,39 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) s->limiter_buf_index = 0; src_index = 0; - for (n = 0; n < s->limiter_buf_size / inlink->channels; n++) { - for (c = 0; c < inlink->channels; c++) { + for (n = 0; n < s->limiter_buf_size / inlink->ch_layout.nb_channels; n++) { + for (c = 0; c < inlink->ch_layout.nb_channels; c++) { s->limiter_buf[s->limiter_buf_index + c] = src[src_index + c] * gain * s->offset; } - src_index += inlink->channels; + src_index += inlink->ch_layout.nb_channels; - s->limiter_buf_index += inlink->channels; + s->limiter_buf_index += inlink->ch_layout.nb_channels; if (s->limiter_buf_index >= s->limiter_buf_size) s->limiter_buf_index -= s->limiter_buf_size; } subframe_length = frame_size(inlink->sample_rate, 100); for (i = 0; i < in->nb_samples / subframe_length; i++) { - true_peak_limiter(s, dst, subframe_length, inlink->channels); + true_peak_limiter(s, dst, subframe_length, inlink->ch_layout.nb_channels); for (n = 0; n < subframe_length; n++) { - for (c = 0; c < inlink->channels; c++) { - if (src_index < (in->nb_samples * inlink->channels)) { + for (c = 0; c < inlink->ch_layout.nb_channels; c++) { + if (src_index < (in->nb_samples * inlink->ch_layout.nb_channels)) { limiter_buf[s->limiter_buf_index + c] = src[src_index + c] * gain * s->offset; } else { limiter_buf[s->limiter_buf_index + c] = 0.; } } - if (src_index < (in->nb_samples * inlink->channels)) - src_index += inlink->channels; + if (src_index < (in->nb_samples * inlink->ch_layout.nb_channels)) + src_index += inlink->ch_layout.nb_channels; - s->limiter_buf_index += inlink->channels; + s->limiter_buf_index += inlink->ch_layout.nb_channels; if (s->limiter_buf_index >= s->limiter_buf_size) s->limiter_buf_index -= s->limiter_buf_size; } - dst += (subframe_length * inlink->channels); + dst += (subframe_length * inlink->ch_layout.nb_channels); } dst = (double *)out->data[0]; @@ -617,11 +617,11 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) case LINEAR_MODE: for (n = 0; n < in->nb_samples; n++) { - for (c = 0; c < inlink->channels; c++) { + for (c = 0; c < inlink->ch_layout.nb_channels; c++) { dst[c] = src[c] * s->offset; } - src += inlink->channels; - dst += inlink->channels; + src += inlink->ch_layout.nb_channels; + dst += inlink->ch_layout.nb_channels; } dst = (double *)out->data[0]; @@ -650,7 +650,7 @@ static int request_frame(AVFilterLink *outlink) int nb_samples, n, c, offset; AVFrame *frame; - nb_samples = (s->buf_size / inlink->channels) - s->prev_nb_samples; + nb_samples = (s->buf_size / inlink->ch_layout.nb_channels) - s->prev_nb_samples; nb_samples -= (frame_size(inlink->sample_rate, 100) - s->prev_nb_samples); frame = ff_get_audio_buffer(outlink, nb_samples); @@ -661,16 +661,16 @@ static int request_frame(AVFilterLink *outlink) buf = s->buf; src = (double *)frame->data[0]; - offset = ((s->limiter_buf_size / inlink->channels) - s->prev_nb_samples) * inlink->channels; - offset -= (frame_size(inlink->sample_rate, 100) - s->prev_nb_samples) * inlink->channels; + offset = ((s->limiter_buf_size / inlink->ch_layout.nb_channels) - s->prev_nb_samples) * inlink->ch_layout.nb_channels; + offset -= (frame_size(inlink->sample_rate, 100) - s->prev_nb_samples) * inlink->ch_layout.nb_channels; s->buf_index = s->buf_index - offset < 0 ? s->buf_index - offset + s->buf_size : s->buf_index - offset; for (n = 0; n < nb_samples; n++) { - for (c = 0; c < inlink->channels; c++) { + for (c = 0; c < inlink->ch_layout.nb_channels; c++) { src[c] = buf[s->buf_index + c]; } - src += inlink->channels; - s->buf_index += inlink->channels; + src += inlink->ch_layout.nb_channels; + s->buf_index += inlink->ch_layout.nb_channels; if (s->buf_index >= s->buf_size) s->buf_index -= s->buf_size; } @@ -720,30 +720,30 @@ static int config_input(AVFilterLink *inlink) AVFilterContext *ctx = inlink->dst; LoudNormContext *s = ctx->priv; - s->r128_in = ff_ebur128_init(inlink->channels, inlink->sample_rate, 0, FF_EBUR128_MODE_I | FF_EBUR128_MODE_S | FF_EBUR128_MODE_LRA | FF_EBUR128_MODE_SAMPLE_PEAK); + s->r128_in = ff_ebur128_init(inlink->ch_layout.nb_channels, inlink->sample_rate, 0, FF_EBUR128_MODE_I | FF_EBUR128_MODE_S | FF_EBUR128_MODE_LRA | FF_EBUR128_MODE_SAMPLE_PEAK); if (!s->r128_in) return AVERROR(ENOMEM); - s->r128_out = ff_ebur128_init(inlink->channels, inlink->sample_rate, 0, FF_EBUR128_MODE_I | FF_EBUR128_MODE_S | FF_EBUR128_MODE_LRA | FF_EBUR128_MODE_SAMPLE_PEAK); + s->r128_out = ff_ebur128_init(inlink->ch_layout.nb_channels, inlink->sample_rate, 0, FF_EBUR128_MODE_I | FF_EBUR128_MODE_S | FF_EBUR128_MODE_LRA | FF_EBUR128_MODE_SAMPLE_PEAK); if (!s->r128_out) return AVERROR(ENOMEM); - if (inlink->channels == 1 && s->dual_mono) { + if (inlink->ch_layout.nb_channels == 1 && s->dual_mono) { ff_ebur128_set_channel(s->r128_in, 0, FF_EBUR128_DUAL_MONO); ff_ebur128_set_channel(s->r128_out, 0, FF_EBUR128_DUAL_MONO); } - s->buf_size = frame_size(inlink->sample_rate, 3000) * inlink->channels; + s->buf_size = frame_size(inlink->sample_rate, 3000) * inlink->ch_layout.nb_channels; s->buf = av_malloc_array(s->buf_size, sizeof(*s->buf)); if (!s->buf) return AVERROR(ENOMEM); - s->limiter_buf_size = frame_size(inlink->sample_rate, 210) * inlink->channels; + s->limiter_buf_size = frame_size(inlink->sample_rate, 210) * inlink->ch_layout.nb_channels; s->limiter_buf = av_malloc_array(s->buf_size, sizeof(*s->limiter_buf)); if (!s->limiter_buf) return AVERROR(ENOMEM); - s->prev_smp = av_malloc_array(inlink->channels, sizeof(*s->prev_smp)); + s->prev_smp = av_malloc_array(inlink->ch_layout.nb_channels, sizeof(*s->prev_smp)); if (!s->prev_smp) return AVERROR(ENOMEM); @@ -758,7 +758,7 @@ static int config_input(AVFilterLink *inlink) s->buf_index = s->prev_buf_index = s->limiter_buf_index = 0; - s->channels = inlink->channels; + s->channels = inlink->ch_layout.nb_channels; s->index = 1; s->limiter_state = OUT; s->offset = pow(10., s->offset / 20.); diff --git a/libavfilter/af_lv2.c b/libavfilter/af_lv2.c index 0f0c797989..4d96b380ff 100644 --- a/libavfilter/af_lv2.c +++ b/libavfilter/af_lv2.c @@ -288,8 +288,15 @@ static int config_output(AVFilterLink *outlink) outlink->format = inlink->format; outlink->sample_rate = sample_rate = inlink->sample_rate; if (s->nb_inputs == s->nb_outputs) { + int ret; + if ((ret = av_channel_layout_copy(&outlink->ch_layout, &inlink->ch_layout)) < 0) + return ret; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS outlink->channel_layout = inlink->channel_layout; - outlink->channels = inlink->channels; +FF_ENABLE_DEPRECATION_WARNINGS +#endif + outlink->ch_layout.nb_channels = inlink->ch_layout.nb_channels; } } else { @@ -496,7 +503,7 @@ static int query_formats(AVFilterContext *ctx) if (s->nb_inputs == 2 && s->nb_outputs == 2) { layouts = NULL; - ret = ff_add_channel_layout(&layouts, AV_CH_LAYOUT_STEREO); + ret = ff_add_channel_layout(&layouts, &(AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO); if (ret < 0) return ret; ret = ff_set_common_channel_layouts(ctx, layouts); @@ -505,10 +512,10 @@ static int query_formats(AVFilterContext *ctx) } else { if (s->nb_inputs >= 1) { AVFilterLink *inlink = ctx->inputs[0]; - uint64_t inlayout = FF_COUNT2LAYOUT(s->nb_inputs); + AVChannelLayout inlayout = FF_COUNT2LAYOUT(s->nb_inputs); layouts = NULL; - ret = ff_add_channel_layout(&layouts, inlayout); + ret = ff_add_channel_layout(&layouts, &inlayout); if (ret < 0) return ret; ret = ff_channel_layouts_ref(layouts, &inlink->outcfg.channel_layouts); @@ -523,10 +530,10 @@ static int query_formats(AVFilterContext *ctx) } if (s->nb_outputs >= 1) { - uint64_t outlayout = FF_COUNT2LAYOUT(s->nb_outputs); + AVChannelLayout outlayout = FF_COUNT2LAYOUT(s->nb_outputs); layouts = NULL; - ret = ff_add_channel_layout(&layouts, outlayout); + ret = ff_add_channel_layout(&layouts, &outlayout); if (ret < 0) return ret; ret = ff_channel_layouts_ref(layouts, &outlink->incfg.channel_layouts); diff --git a/libavfilter/af_mcompand.c b/libavfilter/af_mcompand.c index 90cfda38c9..1267cd9f34 100644 --- a/libavfilter/af_mcompand.c +++ b/libavfilter/af_mcompand.c @@ -302,7 +302,7 @@ static int crossover_setup(AVFilterLink *outlink, Crossover *p, double frequency square_quadratic(x + 3, p->coefs + 5); square_quadratic(x + 6, p->coefs + 10); - p->previous = av_calloc(outlink->channels, sizeof(*p->previous)); + p->previous = av_calloc(outlink->ch_layout.nb_channels, sizeof(*p->previous)); if (!p->previous) return AVERROR(ENOMEM); @@ -350,13 +350,13 @@ static int config_output(AVFilterLink *outlink) return AVERROR(EINVAL); } - s->bands[i].attack_rate = av_calloc(outlink->channels, sizeof(double)); - s->bands[i].decay_rate = av_calloc(outlink->channels, sizeof(double)); - s->bands[i].volume = av_calloc(outlink->channels, sizeof(double)); + s->bands[i].attack_rate = av_calloc(outlink->ch_layout.nb_channels, sizeof(double)); + s->bands[i].decay_rate = av_calloc(outlink->ch_layout.nb_channels, sizeof(double)); + s->bands[i].volume = av_calloc(outlink->ch_layout.nb_channels, sizeof(double)); if (!s->bands[i].attack_rate || !s->bands[i].decay_rate || !s->bands[i].volume) return AVERROR(ENOMEM); - for (k = 0; k < FFMIN(nb_attacks / 2, outlink->channels); k++) { + for (k = 0; k < FFMIN(nb_attacks / 2, outlink->ch_layout.nb_channels); k++) { char *tstr3 = av_strtok(p3, ",", &saveptr3); p3 = NULL; @@ -377,7 +377,7 @@ static int config_output(AVFilterLink *outlink) } } - for (ch = k; ch < outlink->channels; ch++) { + for (ch = k; ch < outlink->ch_layout.nb_channels; ch++) { s->bands[i].attack_rate[ch] = s->bands[i].attack_rate[k - 1]; s->bands[i].decay_rate[ch] = s->bands[i].decay_rate[k - 1]; } @@ -440,7 +440,7 @@ static int config_output(AVFilterLink *outlink) sscanf(tstr2, "%lf", &initial_volume); initial_volume = pow(10.0, initial_volume / 20); - for (k = 0; k < outlink->channels; k++) { + for (k = 0; k < outlink->ch_layout.nb_channels; k++) { s->bands[i].volume[k] = initial_volume; } @@ -574,7 +574,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) s->band_samples = in->nb_samples; } - for (ch = 0; ch < outlink->channels; ch++) { + for (ch = 0; ch < outlink->ch_layout.nb_channels; ch++) { double *a, *dst = (double *)out->extended_data[ch]; for (band = 0, abuf = in, bbuf = s->band_buf2, cbuf = s->band_buf1; band < s->nb_bands; band++) { diff --git a/libavfilter/af_pan.c b/libavfilter/af_pan.c index a8a18960c4..067f646805 100644 --- a/libavfilter/af_pan.c +++ b/libavfilter/af_pan.c @@ -42,7 +42,7 @@ typedef struct PanContext { const AVClass *class; char *args; - int64_t out_channel_layout; + AVChannelLayout out_channel_layout; double gain[MAX_CHANNELS][MAX_CHANNELS]; int64_t need_renorm; int need_renumber; @@ -65,23 +65,15 @@ static void skip_spaces(char **arg) static int parse_channel_name(char **arg, int *rchannel, int *rnamed) { char buf[8]; - int len, i, channel_id = 0; - int64_t layout, layout0; + int len, channel_id = 0; skip_spaces(arg); /* try to parse a channel name, e.g. "FL" */ if (sscanf(*arg, "%7[A-Z]%n", buf, &len)) { - layout0 = layout = av_get_channel_layout(buf); - /* channel_id <- first set bit in layout */ - for (i = 32; i > 0; i >>= 1) { - if (layout >= (int64_t)1 << i) { - channel_id += i; - layout >>= i; - } - } - /* reject layouts that are not a single channel */ - if (channel_id >= MAX_CHANNELS || layout0 != (int64_t)1 << channel_id) - return AVERROR(EINVAL); + channel_id = av_channel_from_string(buf); + if (channel_id < 0) + return channel_id; + *rchannel = channel_id; *rnamed = 1; *arg += len; @@ -137,17 +129,12 @@ static av_cold int init(AVFilterContext *ctx) goto fail; } if (named) { - if (!((pan->out_channel_layout >> out_ch_id) & 1)) { + if ((out_ch_id = av_channel_layout_index_from_channel(&pan->out_channel_layout, out_ch_id)) < 0) { av_log(ctx, AV_LOG_ERROR, "Channel \"%.8s\" does not exist in the chosen layout\n", arg0); ret = AVERROR(EINVAL); goto fail; } - /* get the channel number in the output channel layout: - * out_channel_layout & ((1 << out_ch_id) - 1) are all the - * channels that come before out_ch_id, - * so their count is the index of out_ch_id */ - out_ch_id = av_get_channel_layout_nb_channels(pan->out_channel_layout & (((int64_t)1 << out_ch_id) - 1)); } if (out_ch_id < 0 || out_ch_id >= pan->nb_output_channels) { av_log(ctx, AV_LOG_ERROR, @@ -269,9 +256,7 @@ static int query_formats(AVFilterContext *ctx) // outlink supports only requested output channel layout layouts = NULL; - if ((ret = ff_add_channel_layout(&layouts, - pan->out_channel_layout ? pan->out_channel_layout : - FF_COUNT2LAYOUT(pan->nb_output_channels))) < 0) + if ((ret = ff_add_channel_layout(&layouts, &pan->out_channel_layout)) < 0) return ret; return ff_channel_layouts_ref(layouts, &outlink->incfg.channel_layouts); } @@ -281,13 +266,13 @@ static int config_props(AVFilterLink *link) AVFilterContext *ctx = link->dst; PanContext *pan = ctx->priv; char buf[1024], *cur; - int i, j, k, r; + int i, j, k, r, ret; double t; if (pan->need_renumber) { // input channels were given by their name: renumber them for (i = j = 0; i < MAX_CHANNELS; i++) { - if ((link->channel_layout >> i) & 1) { + if (av_channel_layout_index_from_channel(&link->ch_layout, i) >= 0) { for (k = 0; k < pan->nb_output_channels; k++) pan->gain[k][j] = pan->gain[k][i]; j++; @@ -297,7 +282,7 @@ static int config_props(AVFilterLink *link) // sanity check; can't be done in query_formats since the inlink // channel layout is unknown at that time - if (link->channels > MAX_CHANNELS || + if (link->ch_layout.nb_channels > MAX_CHANNELS || pan->nb_output_channels > MAX_CHANNELS) { av_log(ctx, AV_LOG_ERROR, "af_pan supports a maximum of %d channels. " @@ -306,20 +291,12 @@ static int config_props(AVFilterLink *link) } // init libswresample context - pan->swr = swr_alloc_set_opts(pan->swr, - pan->out_channel_layout, link->format, link->sample_rate, - link->channel_layout, link->format, link->sample_rate, - 0, ctx); - if (!pan->swr) + ret = swr_alloc_set_opts2(&pan->swr, + &pan->out_channel_layout, link->format, link->sample_rate, + &link->ch_layout, link->format, link->sample_rate, + 0, ctx); + if (ret < 0) return AVERROR(ENOMEM); - if (!link->channel_layout) { - if (av_opt_set_int(pan->swr, "ich", link->channels, 0) < 0) - return AVERROR(EINVAL); - } - if (!pan->out_channel_layout) { - if (av_opt_set_int(pan->swr, "och", pan->nb_output_channels, 0) < 0) - return AVERROR(EINVAL); - } // gains are pure, init the channel mapping if (pan->pure_gains) { @@ -327,7 +304,7 @@ static int config_props(AVFilterLink *link) // get channel map from the pure gains for (i = 0; i < pan->nb_output_channels; i++) { int ch_id = -1; - for (j = 0; j < link->channels; j++) { + for (j = 0; j < link->ch_layout.nb_channels; j++) { if (pan->gain[i][j]) { ch_id = j; break; @@ -336,7 +313,6 @@ static int config_props(AVFilterLink *link) pan->channel_map[i] = ch_id; } - av_opt_set_int(pan->swr, "icl", pan->out_channel_layout, 0); av_opt_set_int(pan->swr, "uch", pan->nb_output_channels, 0); swr_set_channel_mapping(pan->swr, pan->channel_map); } else { @@ -345,7 +321,7 @@ static int config_props(AVFilterLink *link) if (!((pan->need_renorm >> i) & 1)) continue; t = 0; - for (j = 0; j < link->channels; j++) + for (j = 0; j < link->ch_layout.nb_channels; j++) t += fabs(pan->gain[i][j]); if (t > -1E-5 && t < 1E-5) { // t is almost 0 but not exactly, this is probably a mistake @@ -354,11 +330,9 @@ static int config_props(AVFilterLink *link) "Degenerate coefficients while renormalizing\n"); continue; } - for (j = 0; j < link->channels; j++) + for (j = 0; j < link->ch_layout.nb_channels; j++) pan->gain[i][j] /= t; } - av_opt_set_int(pan->swr, "icl", link->channel_layout, 0); - av_opt_set_int(pan->swr, "ocl", pan->out_channel_layout, 0); swr_set_matrix(pan->swr, pan->gain[0], pan->gain[1] - pan->gain[0]); } @@ -369,7 +343,7 @@ static int config_props(AVFilterLink *link) // summary for (i = 0; i < pan->nb_output_channels; i++) { cur = buf; - for (j = 0; j < link->channels; j++) { + for (j = 0; j < link->ch_layout.nb_channels; j++) { r = snprintf(cur, buf + sizeof(buf) - cur, "%s%.3g i%d", j ? " + " : "", pan->gain[i][j], j); cur += FFMIN(buf + sizeof(buf) - cur, r); @@ -405,8 +379,14 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *insamples) swr_convert(pan->swr, outsamples->extended_data, n, (void *)insamples->extended_data, n); av_frame_copy_props(outsamples, insamples); +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS outsamples->channel_layout = outlink->channel_layout; - outsamples->channels = outlink->channels; + outsamples->channels = outlink->ch_layout.nb_channels; +FF_ENABLE_DEPRECATION_WARNINGS +#endif + if ((ret = av_channel_layout_copy(&outsamples->ch_layout, &outlink->ch_layout)) < 0) + return ret; ret = ff_filter_frame(outlink, outsamples); av_frame_free(&insamples); diff --git a/libavfilter/af_replaygain.c b/libavfilter/af_replaygain.c index e9bfc5676c..53852ac8bc 100644 --- a/libavfilter/af_replaygain.c +++ b/libavfilter/af_replaygain.c @@ -327,7 +327,7 @@ static int query_formats(AVFilterContext *ctx) if ((ret = ff_add_format (&formats, AV_SAMPLE_FMT_FLT )) < 0 || (ret = ff_set_common_formats (ctx , formats )) < 0 || - (ret = ff_add_channel_layout (&layout , AV_CH_LAYOUT_STEREO)) < 0 || + (ret = ff_add_channel_layout (&layout , &(AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO)) < 0 || (ret = ff_set_common_channel_layouts (ctx , layout )) < 0) return ret; diff --git a/libavfilter/af_rubberband.c b/libavfilter/af_rubberband.c index 4a42aa8a1f..34a1605667 100644 --- a/libavfilter/af_rubberband.c +++ b/libavfilter/af_rubberband.c @@ -135,7 +135,7 @@ static int config_input(AVFilterLink *inlink) if (s->rbs) rubberband_delete(s->rbs); - s->rbs = rubberband_new(inlink->sample_rate, inlink->channels, opts, 1. / s->tempo, s->pitch); + s->rbs = rubberband_new(inlink->sample_rate, inlink->ch_layout.nb_channels, opts, 1. / s->tempo, s->pitch); if (!s->rbs) return AVERROR(ENOMEM); diff --git a/libavfilter/af_sidechaincompress.c b/libavfilter/af_sidechaincompress.c index c0ce82066b..90d2a2c726 100644 --- a/libavfilter/af_sidechaincompress.c +++ b/libavfilter/af_sidechaincompress.c @@ -177,13 +177,13 @@ static void compressor(SidechainCompressContext *s, abs_sample = fabs(scsrc[0] * level_sc); if (s->link == 1) { - for (c = 1; c < sclink->channels; c++) + for (c = 1; c < sclink->ch_layout.nb_channels; c++) abs_sample = FFMAX(fabs(scsrc[c] * level_sc), abs_sample); } else { - for (c = 1; c < sclink->channels; c++) + for (c = 1; c < sclink->ch_layout.nb_channels; c++) abs_sample += fabs(scsrc[c] * level_sc); - abs_sample /= sclink->channels; + abs_sample /= sclink->ch_layout.nb_channels; } if (s->detection) @@ -206,12 +206,12 @@ static void compressor(SidechainCompressContext *s, s->compressed_knee_stop, s->detection, s->mode); - for (c = 0; c < inlink->channels; c++) + for (c = 0; c < inlink->ch_layout.nb_channels; c++) dst[c] = src[c] * level_in * (gain * makeup * mix + (1. - mix)); - src += inlink->channels; - dst += inlink->channels; - scsrc += sclink->channels; + src += inlink->ch_layout.nb_channels; + dst += inlink->ch_layout.nb_channels; + scsrc += sclink->ch_layout.nb_channels; } } @@ -325,8 +325,8 @@ static int config_output(AVFilterLink *outlink) outlink->time_base = ctx->inputs[0]->time_base; - s->fifo[0] = av_audio_fifo_alloc(ctx->inputs[0]->format, ctx->inputs[0]->channels, 1024); - s->fifo[1] = av_audio_fifo_alloc(ctx->inputs[1]->format, ctx->inputs[1]->channels, 1024); + s->fifo[0] = av_audio_fifo_alloc(ctx->inputs[0]->format, ctx->inputs[0]->ch_layout.nb_channels, 1024); + s->fifo[1] = av_audio_fifo_alloc(ctx->inputs[1]->format, ctx->inputs[1]->ch_layout.nb_channels, 1024); if (!s->fifo[0] || !s->fifo[1]) return AVERROR(ENOMEM); diff --git a/libavfilter/af_silencedetect.c b/libavfilter/af_silencedetect.c index 0ba76469de..6518283d9f 100644 --- a/libavfilter/af_silencedetect.c +++ b/libavfilter/af_silencedetect.c @@ -136,12 +136,12 @@ static void silencedetect_##name(SilenceDetectContext *s, AVFrame *insamples, int nb_samples, int64_t nb_samples_notify, \ AVRational time_base) \ { \ - const int channels = insamples->channels; \ + const int channels = insamples->ch_layout.nb_channels; \ const type noise = s->noise; \ \ nb_samples /= channels; \ for (int i = 0; i < nb_samples; i++) { \ - for (int ch = 0; ch < insamples->channels; ch++) { \ + for (int ch = 0; ch < insamples->ch_layout.nb_channels; ch++) { \ const type *p = (const type *)insamples->extended_data[ch]; \ update(s, insamples, p[i] < noise && p[i] > -noise, \ channels * i + ch, \ @@ -166,7 +166,7 @@ static int config_input(AVFilterLink *inlink) SilenceDetectContext *s = ctx->priv; int c; - s->channels = inlink->channels; + s->channels = inlink->ch_layout.nb_channels; s->duration = av_rescale(s->duration, inlink->sample_rate, AV_TIME_BASE); s->independent_channels = s->mono ? s->channels : 1; s->nb_null_samples = av_calloc(s->independent_channels, @@ -210,7 +210,7 @@ static int config_input(AVFilterLink *inlink) static int filter_frame(AVFilterLink *inlink, AVFrame *insamples) { SilenceDetectContext *s = inlink->dst->priv; - const int nb_channels = inlink->channels; + const int nb_channels = inlink->ch_layout.nb_channels; const int srate = inlink->sample_rate; const int nb_samples = insamples->nb_samples * nb_channels; const int64_t nb_samples_notify = s->duration * (s->mono ? 1 : nb_channels); diff --git a/libavfilter/af_silenceremove.c b/libavfilter/af_silenceremove.c index a02e1de783..a6db9be9d5 100644 --- a/libavfilter/af_silenceremove.c +++ b/libavfilter/af_silenceremove.c @@ -136,10 +136,10 @@ static void copy_double(SilenceRemoveContext *s, AVFrame *out, AVFrame *in, int ch, int out_offset, int in_offset) { const double *srcp = (const double *)in->data[0]; - const double src = srcp[in->channels * in_offset + ch]; + const double src = srcp[in->ch_layout.nb_channels * in_offset + ch]; double *dstp = (double *)out->data[0]; - dstp[out->channels * out_offset + ch] = src; + dstp[out->ch_layout.nb_channels * out_offset + ch] = src; } static void copy_doublep(SilenceRemoveContext *s, AVFrame *out, AVFrame *in, @@ -156,10 +156,10 @@ static void copy_float(SilenceRemoveContext *s, AVFrame *out, AVFrame *in, int ch, int out_offset, int in_offset) { const float *srcp = (const float *)in->data[0]; - const float src = srcp[in->channels * in_offset + ch]; + const float src = srcp[in->ch_layout.nb_channels * in_offset + ch]; float *dstp = (float *)out->data[0]; - dstp[out->channels * out_offset + ch] = src; + dstp[out->ch_layout.nb_channels * out_offset + ch] = src; } static void copy_floatp(SilenceRemoveContext *s, AVFrame *out, AVFrame *in, @@ -176,8 +176,8 @@ static double compute_peak_double(SilenceRemoveContext *s, AVFrame *frame, int c { const double *samples = (const double *)frame->data[0]; const double *wsamples = (const double *)s->window->data[0]; - double sample = samples[frame->channels * offset + ch]; - double wsample = wsamples[frame->channels * s->window_offset + ch]; + double sample = samples[frame->ch_layout.nb_channels * offset + ch]; + double wsample = wsamples[frame->ch_layout.nb_channels * s->window_offset + ch]; double new_sum; new_sum = s->sum; @@ -192,8 +192,8 @@ static void update_peak_double(SilenceRemoveContext *s, AVFrame *frame, int ch, { const double *samples = (const double *)frame->data[0]; double *wsamples = (double *)s->window->data[0]; - double sample = samples[frame->channels * offset + ch]; - double *wsample = &wsamples[frame->channels * s->window_offset + ch]; + double sample = samples[frame->ch_layout.nb_channels * offset + ch]; + double *wsample = &wsamples[frame->ch_layout.nb_channels * s->window_offset + ch]; s->sum -= *wsample; s->sum = fmax(s->sum, 0.); @@ -205,8 +205,8 @@ static double compute_peak_float(SilenceRemoveContext *s, AVFrame *frame, int ch { const float *samples = (const float *)frame->data[0]; const float *wsamples = (const float *)s->window->data[0]; - float sample = samples[frame->channels * offset + ch]; - float wsample = wsamples[frame->channels * s->window_offset + ch]; + float sample = samples[frame->ch_layout.nb_channels * offset + ch]; + float wsample = wsamples[frame->ch_layout.nb_channels * s->window_offset + ch]; float new_sum; new_sum = s->sum; @@ -221,8 +221,8 @@ static void update_peak_float(SilenceRemoveContext *s, AVFrame *frame, int ch, i { const float *samples = (const float *)frame->data[0]; float *wsamples = (float *)s->window->data[0]; - float sample = samples[frame->channels * offset + ch]; - float *wsample = &wsamples[frame->channels * s->window_offset + ch]; + float sample = samples[frame->ch_layout.nb_channels * offset + ch]; + float *wsample = &wsamples[frame->ch_layout.nb_channels * s->window_offset + ch]; s->sum -= *wsample; s->sum = fmaxf(s->sum, 0.f); @@ -234,8 +234,8 @@ static double compute_rms_double(SilenceRemoveContext *s, AVFrame *frame, int ch { const double *samples = (const double *)frame->data[0]; const double *wsamples = (const double *)s->window->data[0]; - double sample = samples[frame->channels * offset + ch]; - double wsample = wsamples[frame->channels * s->window_offset + ch]; + double sample = samples[frame->ch_layout.nb_channels * offset + ch]; + double wsample = wsamples[frame->ch_layout.nb_channels * s->window_offset + ch]; double new_sum; new_sum = s->sum; @@ -251,8 +251,8 @@ static void update_rms_double(SilenceRemoveContext *s, AVFrame *frame, int ch, i { const double *samples = (const double *)frame->data[0]; double *wsamples = (double *)s->window->data[0]; - double sample = samples[frame->channels * offset + ch]; - double *wsample = &wsamples[frame->channels * s->window_offset + ch]; + double sample = samples[frame->ch_layout.nb_channels * offset + ch]; + double *wsample = &wsamples[frame->ch_layout.nb_channels * s->window_offset + ch]; s->sum -= *wsample; s->sum = fmax(s->sum, 0.); @@ -264,8 +264,8 @@ static double compute_rms_float(SilenceRemoveContext *s, AVFrame *frame, int ch, { const float *samples = (const float *)frame->data[0]; const float *wsamples = (const float *)s->window->data[0]; - float sample = samples[frame->channels * offset + ch]; - float wsample = wsamples[frame->channels * s->window_offset + ch]; + float sample = samples[frame->ch_layout.nb_channels * offset + ch]; + float wsample = wsamples[frame->ch_layout.nb_channels * s->window_offset + ch]; float new_sum; new_sum = s->sum; @@ -280,9 +280,9 @@ static double compute_rms_float(SilenceRemoveContext *s, AVFrame *frame, int ch, static void update_rms_float(SilenceRemoveContext *s, AVFrame *frame, int ch, int offset) { const float *samples = (const float *)frame->data[0]; - float sample = samples[frame->channels * offset + ch]; + float sample = samples[frame->ch_layout.nb_channels * offset + ch]; float *wsamples = (float *)s->window->data[0]; - float *wsample = &wsamples[frame->channels * s->window_offset + ch]; + float *wsample = &wsamples[frame->ch_layout.nb_channels * s->window_offset + ch]; s->sum -= *wsample; s->sum = fmaxf(s->sum, 0.f); @@ -423,7 +423,7 @@ static av_cold int init(AVFilterContext *ctx) static void clear_window(SilenceRemoveContext *s) { av_samples_set_silence(s->window->extended_data, 0, s->window_duration, - s->window->channels, s->window->format); + s->window->ch_layout.nb_channels, s->window->format); s->window_offset = 0; s->sum = 0; @@ -543,7 +543,7 @@ static int config_input(AVFilterLink *inlink) return AVERROR_BUG; } - s->fifo = av_audio_fifo_alloc(inlink->format, inlink->channels, 1024); + s->fifo = av_audio_fifo_alloc(inlink->format, inlink->ch_layout.nb_channels, 1024); if (!s->fifo) return AVERROR(ENOMEM); @@ -576,14 +576,14 @@ static void flush(SilenceRemoveContext *s, av_samples_copy(silence->extended_data, s->stop_silence_hold->extended_data, 0, s->stop_silence_offset, s->stop_silence_end - s->stop_silence_offset, - outlink->channels, outlink->format); + outlink->ch_layout.nb_channels, outlink->format); } if (s->stop_silence_offset > 0) { av_samples_copy(silence->extended_data, s->stop_silence_hold->extended_data, s->stop_silence_end - s->stop_silence_offset, 0, s->stop_silence_offset, - outlink->channels, outlink->format); + outlink->ch_layout.nb_channels, outlink->format); } s->stop_silence_offset = 0; @@ -617,18 +617,18 @@ silence_trim: for (i = 0; i < nbs; i++) { if (s->start_mode == T_ANY) { threshold = 0; - for (j = 0; j < outlink->channels; j++) { + for (j = 0; j < outlink->ch_layout.nb_channels; j++) { threshold |= s->compute(s, in, j, nb_samples_read) > s->start_threshold; } } else { threshold = 1; - for (j = 0; j < outlink->channels; j++) { + for (j = 0; j < outlink->ch_layout.nb_channels; j++) { threshold &= s->compute(s, in, j, nb_samples_read) > s->start_threshold; } } if (threshold) { - for (j = 0; j < outlink->channels; j++) { + for (j = 0; j < outlink->ch_layout.nb_channels; j++) { s->update(s, in, j, nb_samples_read); s->copy(s, s->start_holdoff, in, j, s->start_holdoff_end, nb_samples_read); } @@ -656,7 +656,7 @@ silence_trim: s->start_holdoff_end = 0; s->one_period++; - for (j = 0; j < outlink->channels; j++) { + for (j = 0; j < outlink->ch_layout.nb_channels; j++) { s->update(s, in, j, nb_samples_read); if (s->start_silence) s->copy(s, s->start_silence_hold, in, j, s->start_silence_offset, nb_samples_read); @@ -694,21 +694,21 @@ silence_trim_flush: av_samples_copy(out->extended_data, s->start_silence_hold->extended_data, 0, s->start_silence_offset, s->start_silence_end - s->start_silence_offset, - outlink->channels, outlink->format); + outlink->ch_layout.nb_channels, outlink->format); } if (s->start_silence_offset > 0) { av_samples_copy(out->extended_data, s->start_silence_hold->extended_data, s->start_silence_end - s->start_silence_offset, 0, s->start_silence_offset, - outlink->channels, outlink->format); + outlink->ch_layout.nb_channels, outlink->format); } } av_samples_copy(out->extended_data, s->start_holdoff->extended_data, s->start_silence_end, s->start_holdoff_offset, nbs, - outlink->channels, outlink->format); + outlink->ch_layout.nb_channels, outlink->format); s->start_holdoff_offset += nbs; @@ -741,12 +741,12 @@ silence_copy: for (i = 0; i < nbs; i++) { if (s->stop_mode == T_ANY) { threshold = 0; - for (j = 0; j < outlink->channels; j++) { + for (j = 0; j < outlink->ch_layout.nb_channels; j++) { threshold |= s->compute(s, in, j, nb_samples_read) > s->stop_threshold; } } else { threshold = 1; - for (j = 0; j < outlink->channels; j++) { + for (j = 0; j < outlink->ch_layout.nb_channels; j++) { threshold &= s->compute(s, in, j, nb_samples_read) > s->stop_threshold; } } @@ -757,7 +757,7 @@ silence_copy: s->one_period++; goto silence_copy_flush; } else if (threshold) { - for (j = 0; j < outlink->channels; j++) { + for (j = 0; j < outlink->ch_layout.nb_channels; j++) { s->update(s, in, j, nb_samples_read); s->copy(s, out, in, j, nb_samples_written, nb_samples_read); } @@ -769,7 +769,7 @@ silence_copy: nb_samples_written++; s->one_period++; } else if (!threshold) { - for (j = 0; j < outlink->channels; j++) { + for (j = 0; j < outlink->ch_layout.nb_channels; j++) { s->update(s, in, j, nb_samples_read); if (s->stop_silence) s->copy(s, s->stop_silence_hold, in, j, s->stop_silence_offset, nb_samples_read); @@ -827,7 +827,7 @@ silence_copy: av_samples_copy(out->extended_data, in->extended_data, nb_samples_written, nb_samples_read, nbs, - outlink->channels, outlink->format); + outlink->ch_layout.nb_channels, outlink->format); av_audio_fifo_write(s->fifo, (void **)out->extended_data, out->nb_samples); av_frame_free(&out); @@ -848,7 +848,7 @@ silence_copy_flush: av_samples_copy(out->extended_data, s->stop_holdoff->extended_data, 0, s->stop_holdoff_offset, nbs, - outlink->channels, outlink->format); + outlink->ch_layout.nb_channels, outlink->format); s->stop_holdoff_offset += nbs; @@ -909,7 +909,7 @@ static int request_frame(AVFilterLink *outlink) av_samples_copy(frame->extended_data, s->stop_holdoff->extended_data, 0, s->stop_holdoff_offset, nbs, - outlink->channels, outlink->format); + outlink->ch_layout.nb_channels, outlink->format); frame->pts = s->next_pts; s->next_pts += av_rescale_q(frame->nb_samples, diff --git a/libavfilter/af_sofalizer.c b/libavfilter/af_sofalizer.c index 20b717bdf8..246ddeffb9 100644 --- a/libavfilter/af_sofalizer.c +++ b/libavfilter/af_sofalizer.c @@ -187,25 +187,15 @@ static int preload_sofa(AVFilterContext *ctx, char *filename, int *samplingrate) static int parse_channel_name(AVFilterContext *ctx, char **arg, int *rchannel) { - int len, i, channel_id = 0; - int64_t layout, layout0; + int len, channel_id = 0; char buf[8] = {0}; /* try to parse a channel name, e.g. "FL" */ if (av_sscanf(*arg, "%7[A-Z]%n", buf, &len)) { - layout0 = layout = av_get_channel_layout(buf); - /* channel_id <- first set bit in layout */ - for (i = 32; i > 0; i >>= 1) { - if (layout >= 1LL << i) { - channel_id += i; - layout >>= i; - } - } - /* reject layouts that are not a single channel */ - if (channel_id >= 64 || layout0 != 1LL << channel_id) { - av_log(ctx, AV_LOG_WARNING, "Failed to parse \'%s\' as channel name.\n", buf); - return AVERROR(EINVAL); - } + channel_id = av_channel_from_string(buf); + if (channel_id < 0) + return channel_id; + *rchannel = channel_id; *arg += len; return 0; @@ -221,7 +211,7 @@ static int parse_channel_name(AVFilterContext *ctx, char **arg, int *rchannel) return AVERROR(EINVAL); } -static void parse_speaker_pos(AVFilterContext *ctx, int64_t in_channel_layout) +static void parse_speaker_pos(AVFilterContext *ctx) { SOFAlizerContext *s = ctx->priv; char *arg, *tokenizer, *p, *args = av_strdup(s->speakers_pos); @@ -256,10 +246,10 @@ static int get_speaker_pos(AVFilterContext *ctx, float *speaker_azim, float *speaker_elev) { struct SOFAlizerContext *s = ctx->priv; - uint64_t channels_layout = ctx->inputs[0]->channel_layout; + AVChannelLayout *channel_layout = &ctx->inputs[0]->ch_layout; float azim[64] = { 0 }; float elev[64] = { 0 }; - int m, ch, n_conv = ctx->inputs[0]->channels; /* get no. input channels */ + int m, ch, n_conv = ctx->inputs[0]->ch_layout.nb_channels; /* get no. input channels */ if (n_conv < 0 || n_conv > 64) return AVERROR(EINVAL); @@ -267,45 +257,45 @@ static int get_speaker_pos(AVFilterContext *ctx, s->lfe_channel = -1; if (s->speakers_pos) - parse_speaker_pos(ctx, channels_layout); + parse_speaker_pos(ctx); /* set speaker positions according to input channel configuration: */ for (m = 0, ch = 0; ch < n_conv && m < 64; m++) { - uint64_t mask = channels_layout & (1ULL << m); - - switch (mask) { - case AV_CH_FRONT_LEFT: azim[ch] = 30; break; - case AV_CH_FRONT_RIGHT: azim[ch] = 330; break; - case AV_CH_FRONT_CENTER: azim[ch] = 0; break; - case AV_CH_LOW_FREQUENCY: - case AV_CH_LOW_FREQUENCY_2: s->lfe_channel = ch; break; - case AV_CH_BACK_LEFT: azim[ch] = 150; break; - case AV_CH_BACK_RIGHT: azim[ch] = 210; break; - case AV_CH_BACK_CENTER: azim[ch] = 180; break; - case AV_CH_SIDE_LEFT: azim[ch] = 90; break; - case AV_CH_SIDE_RIGHT: azim[ch] = 270; break; - case AV_CH_FRONT_LEFT_OF_CENTER: azim[ch] = 15; break; - case AV_CH_FRONT_RIGHT_OF_CENTER: azim[ch] = 345; break; - case AV_CH_TOP_CENTER: azim[ch] = 0; + int chan = av_channel_layout_channel_from_index(channel_layout, m); + + switch (chan) { + case AV_CHAN_FRONT_LEFT: azim[ch] = 30; break; + case AV_CHAN_FRONT_RIGHT: azim[ch] = 330; break; + case AV_CHAN_FRONT_CENTER: azim[ch] = 0; break; + case AV_CHAN_LOW_FREQUENCY: + case AV_CHAN_LOW_FREQUENCY_2: s->lfe_channel = ch; break; + case AV_CHAN_BACK_LEFT: azim[ch] = 150; break; + case AV_CHAN_BACK_RIGHT: azim[ch] = 210; break; + case AV_CHAN_BACK_CENTER: azim[ch] = 180; break; + case AV_CHAN_SIDE_LEFT: azim[ch] = 90; break; + case AV_CHAN_SIDE_RIGHT: azim[ch] = 270; break; + case AV_CHAN_FRONT_LEFT_OF_CENTER: azim[ch] = 15; break; + case AV_CHAN_FRONT_RIGHT_OF_CENTER: azim[ch] = 345; break; + case AV_CHAN_TOP_CENTER: azim[ch] = 0; elev[ch] = 90; break; - case AV_CH_TOP_FRONT_LEFT: azim[ch] = 30; + case AV_CHAN_TOP_FRONT_LEFT: azim[ch] = 30; elev[ch] = 45; break; - case AV_CH_TOP_FRONT_CENTER: azim[ch] = 0; + case AV_CHAN_TOP_FRONT_CENTER: azim[ch] = 0; elev[ch] = 45; break; - case AV_CH_TOP_FRONT_RIGHT: azim[ch] = 330; + case AV_CHAN_TOP_FRONT_RIGHT: azim[ch] = 330; elev[ch] = 45; break; - case AV_CH_TOP_BACK_LEFT: azim[ch] = 150; + case AV_CHAN_TOP_BACK_LEFT: azim[ch] = 150; elev[ch] = 45; break; - case AV_CH_TOP_BACK_RIGHT: azim[ch] = 210; + case AV_CHAN_TOP_BACK_RIGHT: azim[ch] = 210; elev[ch] = 45; break; - case AV_CH_TOP_BACK_CENTER: azim[ch] = 180; + case AV_CHAN_TOP_BACK_CENTER: azim[ch] = 180; elev[ch] = 45; break; - case AV_CH_WIDE_LEFT: azim[ch] = 90; break; - case AV_CH_WIDE_RIGHT: azim[ch] = 270; break; - case AV_CH_SURROUND_DIRECT_LEFT: azim[ch] = 90; break; - case AV_CH_SURROUND_DIRECT_RIGHT: azim[ch] = 270; break; - case AV_CH_STEREO_LEFT: azim[ch] = 90; break; - case AV_CH_STEREO_RIGHT: azim[ch] = 270; break; + case AV_CHAN_WIDE_LEFT: azim[ch] = 90; break; + case AV_CHAN_WIDE_RIGHT: azim[ch] = 270; break; + case AV_CHAN_SURROUND_DIRECT_LEFT: azim[ch] = 90; break; + case AV_CHAN_SURROUND_DIRECT_RIGHT: azim[ch] = 270; break; + case AV_CHAN_STEREO_LEFT: azim[ch] = 90; break; + case AV_CHAN_STEREO_RIGHT: azim[ch] = 270; break; case 0: break; default: return AVERROR(EINVAL); @@ -316,7 +306,7 @@ static int get_speaker_pos(AVFilterContext *ctx, elev[ch] = s->vspkrpos[m].elev; } - if (mask) + if (chan) ch++; } @@ -668,7 +658,7 @@ static int query_formats(AVFilterContext *ctx) return ret; layouts = NULL; - ret = ff_add_channel_layout(&layouts, AV_CH_LAYOUT_STEREO); + ret = ff_add_channel_layout(&layouts, &(AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO); if (ret) return ret; @@ -733,7 +723,7 @@ static int load_data(AVFilterContext *ctx, int azim, int elev, float radius, int int n_fft; float delay_l; /* broadband delay for each IR */ float delay_r; - int nb_input_channels = ctx->inputs[0]->channels; /* no. input channels */ + int nb_input_channels = ctx->inputs[0]->ch_layout.nb_channels; /* no. input channels */ float gain_lin = expf((s->gain - 3 * nb_input_channels) / 20 * M_LN10); /* gain - 3dB/channel */ AVComplexFloat *data_hrtf_l = NULL; AVComplexFloat *data_hrtf_r = NULL; @@ -1016,16 +1006,16 @@ static int config_input(AVFilterLink *inlink) s->nb_samples = s->framesize; /* gain -3 dB per channel */ - s->gain_lfe = expf((s->gain - 3 * inlink->channels + s->lfe_gain) / 20 * M_LN10); + s->gain_lfe = expf((s->gain - 3 * inlink->ch_layout.nb_channels + s->lfe_gain) / 20 * M_LN10); - s->n_conv = inlink->channels; + s->n_conv = inlink->ch_layout.nb_channels; /* load IRs to data_ir[0] and data_ir[1] for required directions */ if ((ret = load_data(ctx, s->rotation, s->elevation, s->radius, inlink->sample_rate)) < 0) return ret; av_log(ctx, AV_LOG_DEBUG, "Samplerate: %d Channels to convolute: %d, Length of ringbuffer: %d x %d\n", - inlink->sample_rate, s->n_conv, inlink->channels, s->buffer_length); + inlink->sample_rate, s->n_conv, inlink->ch_layout.nb_channels, s->buffer_length); return 0; } diff --git a/libavfilter/af_speechnorm.c b/libavfilter/af_speechnorm.c index 212a926f36..a40abc025d 100644 --- a/libavfilter/af_speechnorm.c +++ b/libavfilter/af_speechnorm.c @@ -68,7 +68,7 @@ typedef struct SpeechNormalizerContext { double threshold_value; double raise_amount; double fall_amount; - uint64_t channels; + AVChannelLayout ch_layout; int invert; int link; @@ -103,8 +103,8 @@ static const AVOption speechnorm_options[] = { { "r", "set the expansion raising amount", OFFSET(raise_amount), AV_OPT_TYPE_DOUBLE, {.dbl=0.001}, 0.0, 1.0, FLAGS }, { "fall", "set the compression raising amount", OFFSET(fall_amount), AV_OPT_TYPE_DOUBLE, {.dbl=0.001}, 0.0, 1.0, FLAGS }, { "f", "set the compression raising amount", OFFSET(fall_amount), AV_OPT_TYPE_DOUBLE, {.dbl=0.001}, 0.0, 1.0, FLAGS }, - { "channels", "set channels to filter", OFFSET(channels), AV_OPT_TYPE_CHANNEL_LAYOUT, {.i64=-1}, INT64_MIN, INT64_MAX, FLAGS }, - { "h", "set channels to filter", OFFSET(channels), AV_OPT_TYPE_CHANNEL_LAYOUT, {.i64=-1}, INT64_MIN, INT64_MAX, FLAGS }, + { "channels", "set channels to filter", OFFSET(ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str="0xFFFFFFFF"}, INT64_MIN, INT64_MAX, FLAGS }, + { "h", "set channels to filter", OFFSET(ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str="0xFFFFFFFF"}, INT64_MIN, INT64_MAX, FLAGS }, { "invert", "set inverted filtering", OFFSET(invert), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS }, { "i", "set inverted filtering", OFFSET(invert), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS }, { "link", "set linked channels filtering", OFFSET(link), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS }, @@ -142,7 +142,7 @@ static int available_samples(AVFilterContext *ctx) int min_pi_nb_samples; min_pi_nb_samples = get_pi_samples(s->cc[0].pi, s->cc[0].pi_start, s->cc[0].pi_end, s->cc[0].pi_size); - for (int ch = 1; ch < inlink->channels && min_pi_nb_samples > 0; ch++) { + for (int ch = 1; ch < inlink->ch_layout.nb_channels && min_pi_nb_samples > 0; ch++) { ChannelContext *cc = &s->cc[ch]; min_pi_nb_samples = FFMIN(min_pi_nb_samples, get_pi_samples(cc->pi, cc->pi_start, cc->pi_end, cc->pi_size)); @@ -283,11 +283,12 @@ static void filter_channels_## name (AVFilterContext *ctx, SpeechNormalizerContext *s = ctx->priv; \ AVFilterLink *inlink = ctx->inputs[0]; \ \ - for (int ch = 0; ch < inlink->channels; ch++) { \ + for (int ch = 0; ch < inlink->ch_layout.nb_channels; ch++) { \ ChannelContext *cc = &s->cc[ch]; \ const ptype *src = (const ptype *)in->extended_data[ch]; \ ptype *dst = (ptype *)out->extended_data[ch]; \ - const int bypass = !(av_channel_layout_extract_channel(inlink->channel_layout, ch) & s->channels); \ + const int bypass = !(av_channel_layout_channel_from_index(&inlink->ch_layout, ch) >= 0 && \ + av_channel_layout_channel_from_index(&s->ch_layout, ch) >= 0); \ int n = 0; \ \ while (n < nb_samples) { \ @@ -333,10 +334,11 @@ static void filter_link_channels_## name (AVFilterContext *ctx, int max_size = 1; \ ptype gain = s->max_expansion; \ \ - for (int ch = 0; ch < inlink->channels; ch++) { \ + for (int ch = 0; ch < inlink->ch_layout.nb_channels; ch++) { \ ChannelContext *cc = &s->cc[ch]; \ \ - cc->bypass = !(av_channel_layout_extract_channel(inlink->channel_layout, ch) & s->channels); \ + cc->bypass = !(av_channel_layout_channel_from_index(&inlink->ch_layout, ch) >= 0 && \ + av_channel_layout_channel_from_index(&s->ch_layout, ch) >= 0); \ \ next_pi(ctx, cc, cc->bypass); \ min_size = FFMIN(min_size, cc->pi_size); \ @@ -344,7 +346,7 @@ static void filter_link_channels_## name (AVFilterContext *ctx, } \ \ av_assert0(min_size > 0); \ - for (int ch = 0; ch < inlink->channels; ch++) { \ + for (int ch = 0; ch < inlink->ch_layout.nb_channels; ch++) { \ ChannelContext *cc = &s->cc[ch]; \ \ if (cc->bypass) \ @@ -352,7 +354,7 @@ static void filter_link_channels_## name (AVFilterContext *ctx, gain = FFMIN(gain, min_gain(ctx, cc, max_size)); \ } \ \ - for (int ch = 0; ch < inlink->channels; ch++) { \ + for (int ch = 0; ch < inlink->ch_layout.nb_channels; ch++) { \ ChannelContext *cc = &s->cc[ch]; \ const ptype *src = (const ptype *)in->extended_data[ch]; \ ptype *dst = (ptype *)out->extended_data[ch]; \ @@ -428,7 +430,7 @@ static int filter_frame(AVFilterContext *ctx) ff_bufqueue_add(ctx, &s->queue, in); - for (int ch = 0; ch < inlink->channels; ch++) { + for (int ch = 0; ch < inlink->ch_layout.nb_channels; ch++) { ChannelContext *cc = &s->cc[ch]; s->analyze_channel(ctx, cc, in->extended_data[ch], in->nb_samples); @@ -486,11 +488,11 @@ static int config_input(AVFilterLink *inlink) s->max_period = inlink->sample_rate / 10; s->prev_gain = 1.; - s->cc = av_calloc(inlink->channels, sizeof(*s->cc)); + s->cc = av_calloc(inlink->ch_layout.nb_channels, sizeof(*s->cc)); if (!s->cc) return AVERROR(ENOMEM); - for (int ch = 0; ch < inlink->channels; ch++) { + for (int ch = 0; ch < inlink->ch_layout.nb_channels; ch++) { ChannelContext *cc = &s->cc[ch]; cc->state = -1; diff --git a/libavfilter/af_stereotools.c b/libavfilter/af_stereotools.c index 27ec4a2e4a..eedc7c68bd 100644 --- a/libavfilter/af_stereotools.c +++ b/libavfilter/af_stereotools.c @@ -107,7 +107,7 @@ static int query_formats(AVFilterContext *ctx) if ((ret = ff_add_format (&formats, AV_SAMPLE_FMT_DBL )) < 0 || (ret = ff_set_common_formats (ctx , formats )) < 0 || - (ret = ff_add_channel_layout (&layout , AV_CH_LAYOUT_STEREO)) < 0 || + (ret = ff_add_channel_layout (&layout , &(AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO)) < 0 || (ret = ff_set_common_channel_layouts (ctx , layout )) < 0) return ret; diff --git a/libavfilter/af_stereowiden.c b/libavfilter/af_stereowiden.c index 7cce1a8f28..a91ea03957 100644 --- a/libavfilter/af_stereowiden.c +++ b/libavfilter/af_stereowiden.c @@ -60,7 +60,7 @@ static int query_formats(AVFilterContext *ctx) if ((ret = ff_add_format (&formats, AV_SAMPLE_FMT_FLT )) < 0 || (ret = ff_set_common_formats (ctx , formats )) < 0 || - (ret = ff_add_channel_layout (&layout , AV_CH_LAYOUT_STEREO)) < 0 || + (ret = ff_add_channel_layout (&layout , &(AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO)) < 0 || (ret = ff_set_common_channel_layouts (ctx , layout )) < 0) return ret; diff --git a/libavfilter/af_superequalizer.c b/libavfilter/af_superequalizer.c index aa73e92039..6df8d36d0f 100644 --- a/libavfilter/af_superequalizer.c +++ b/libavfilter/af_superequalizer.c @@ -199,7 +199,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) return AVERROR(ENOMEM); } - for (ch = 0; ch < in->channels; ch++) { + for (ch = 0; ch < in->ch_layout.nb_channels; ch++) { ptr = (float *)out->extended_data[ch]; dst = (float *)s->out->extended_data[ch]; src = (float *)in->extended_data[ch]; diff --git a/libavfilter/af_surround.c b/libavfilter/af_surround.c index ccd85148e9..71d713e4ed 100644 --- a/libavfilter/af_surround.c +++ b/libavfilter/af_surround.c @@ -92,8 +92,8 @@ typedef struct AudioSurroundContext { float lowcut; float highcut; - uint64_t out_channel_layout; - uint64_t in_channel_layout; + AVChannelLayout out_channel_layout; + AVChannelLayout in_channel_layout; int nb_in_channels; int nb_out_channels; @@ -171,7 +171,7 @@ static int query_formats(AVFilterContext *ctx) return ret; layouts = NULL; - ret = ff_add_channel_layout(&layouts, s->out_channel_layout); + ret = ff_add_channel_layout(&layouts, &s->out_channel_layout); if (ret) return ret; @@ -180,7 +180,7 @@ static int query_formats(AVFilterContext *ctx) return ret; layouts = NULL; - ret = ff_add_channel_layout(&layouts, s->in_channel_layout); + ret = ff_add_channel_layout(&layouts, &s->in_channel_layout); if (ret) return ret; @@ -197,12 +197,12 @@ static int config_input(AVFilterLink *inlink) AudioSurroundContext *s = ctx->priv; int ch; - s->rdft = av_calloc(inlink->channels, sizeof(*s->rdft)); + s->rdft = av_calloc(inlink->ch_layout.nb_channels, sizeof(*s->rdft)); if (!s->rdft) return AVERROR(ENOMEM); - s->nb_in_channels = inlink->channels; + s->nb_in_channels = inlink->ch_layout.nb_channels; - for (ch = 0; ch < inlink->channels; ch++) { + for (ch = 0; ch < inlink->ch_layout.nb_channels; ch++) { s->rdft[ch] = av_rdft_init(ff_log2(s->buf_size), DFT_R2C); if (!s->rdft[ch]) return AVERROR(ENOMEM); @@ -212,31 +212,31 @@ static int config_input(AVFilterLink *inlink) return AVERROR(ENOMEM); for (ch = 0; ch < s->nb_in_channels; ch++) s->input_levels[ch] = s->level_in; - ch = av_get_channel_layout_channel_index(inlink->channel_layout, AV_CH_FRONT_CENTER); + ch = av_channel_layout_index_from_channel(&inlink->ch_layout, AV_CHAN_FRONT_CENTER); if (ch >= 0) s->input_levels[ch] *= s->fc_in; - ch = av_get_channel_layout_channel_index(inlink->channel_layout, AV_CH_FRONT_LEFT); + ch = av_channel_layout_index_from_channel(&inlink->ch_layout, AV_CHAN_FRONT_LEFT); if (ch >= 0) s->input_levels[ch] *= s->fl_in; - ch = av_get_channel_layout_channel_index(inlink->channel_layout, AV_CH_FRONT_RIGHT); + ch = av_channel_layout_index_from_channel(&inlink->ch_layout, AV_CHAN_FRONT_RIGHT); if (ch >= 0) s->input_levels[ch] *= s->fr_in; - ch = av_get_channel_layout_channel_index(inlink->channel_layout, AV_CH_SIDE_LEFT); + ch = av_channel_layout_index_from_channel(&inlink->ch_layout, AV_CHAN_SIDE_LEFT); if (ch >= 0) s->input_levels[ch] *= s->sl_in; - ch = av_get_channel_layout_channel_index(inlink->channel_layout, AV_CH_SIDE_RIGHT); + ch = av_channel_layout_index_from_channel(&inlink->ch_layout, AV_CHAN_SIDE_RIGHT); if (ch >= 0) s->input_levels[ch] *= s->sr_in; - ch = av_get_channel_layout_channel_index(inlink->channel_layout, AV_CH_BACK_LEFT); + ch = av_channel_layout_index_from_channel(&inlink->ch_layout, AV_CHAN_BACK_LEFT); if (ch >= 0) s->input_levels[ch] *= s->bl_in; - ch = av_get_channel_layout_channel_index(inlink->channel_layout, AV_CH_BACK_RIGHT); + ch = av_channel_layout_index_from_channel(&inlink->ch_layout, AV_CHAN_BACK_RIGHT); if (ch >= 0) s->input_levels[ch] *= s->br_in; - ch = av_get_channel_layout_channel_index(inlink->channel_layout, AV_CH_BACK_CENTER); + ch = av_channel_layout_index_from_channel(&inlink->ch_layout, AV_CHAN_BACK_CENTER); if (ch >= 0) s->input_levels[ch] *= s->bc_in; - ch = av_get_channel_layout_channel_index(inlink->channel_layout, AV_CH_LOW_FREQUENCY); + ch = av_channel_layout_index_from_channel(&inlink->ch_layout, AV_CHAN_LOW_FREQUENCY); if (ch >= 0) s->input_levels[ch] *= s->lfe_in; @@ -244,7 +244,7 @@ static int config_input(AVFilterLink *inlink) if (!s->input) return AVERROR(ENOMEM); - s->fifo = av_audio_fifo_alloc(inlink->format, inlink->channels, s->buf_size); + s->fifo = av_audio_fifo_alloc(inlink->format, inlink->ch_layout.nb_channels, s->buf_size); if (!s->fifo) return AVERROR(ENOMEM); @@ -260,12 +260,12 @@ static int config_output(AVFilterLink *outlink) AudioSurroundContext *s = ctx->priv; int ch; - s->irdft = av_calloc(outlink->channels, sizeof(*s->irdft)); + s->irdft = av_calloc(outlink->ch_layout.nb_channels, sizeof(*s->irdft)); if (!s->irdft) return AVERROR(ENOMEM); - s->nb_out_channels = outlink->channels; + s->nb_out_channels = outlink->ch_layout.nb_channels; - for (ch = 0; ch < outlink->channels; ch++) { + for (ch = 0; ch < outlink->ch_layout.nb_channels; ch++) { s->irdft[ch] = av_rdft_init(ff_log2(s->buf_size), IDFT_C2R); if (!s->irdft[ch]) return AVERROR(ENOMEM); @@ -275,31 +275,31 @@ static int config_output(AVFilterLink *outlink) return AVERROR(ENOMEM); for (ch = 0; ch < s->nb_out_channels; ch++) s->output_levels[ch] = s->level_out; - ch = av_get_channel_layout_channel_index(outlink->channel_layout, AV_CH_FRONT_CENTER); + ch = av_channel_layout_index_from_channel(&outlink->ch_layout, AV_CHAN_FRONT_CENTER); if (ch >= 0) s->output_levels[ch] *= s->fc_out; - ch = av_get_channel_layout_channel_index(outlink->channel_layout, AV_CH_FRONT_LEFT); + ch = av_channel_layout_index_from_channel(&outlink->ch_layout, AV_CHAN_FRONT_LEFT); if (ch >= 0) s->output_levels[ch] *= s->fl_out; - ch = av_get_channel_layout_channel_index(outlink->channel_layout, AV_CH_FRONT_RIGHT); + ch = av_channel_layout_index_from_channel(&outlink->ch_layout, AV_CHAN_FRONT_RIGHT); if (ch >= 0) s->output_levels[ch] *= s->fr_out; - ch = av_get_channel_layout_channel_index(outlink->channel_layout, AV_CH_SIDE_LEFT); + ch = av_channel_layout_index_from_channel(&outlink->ch_layout, AV_CHAN_SIDE_LEFT); if (ch >= 0) s->output_levels[ch] *= s->sl_out; - ch = av_get_channel_layout_channel_index(outlink->channel_layout, AV_CH_SIDE_RIGHT); + ch = av_channel_layout_index_from_channel(&outlink->ch_layout, AV_CHAN_SIDE_RIGHT); if (ch >= 0) s->output_levels[ch] *= s->sr_out; - ch = av_get_channel_layout_channel_index(outlink->channel_layout, AV_CH_BACK_LEFT); + ch = av_channel_layout_index_from_channel(&outlink->ch_layout, AV_CHAN_BACK_LEFT); if (ch >= 0) s->output_levels[ch] *= s->bl_out; - ch = av_get_channel_layout_channel_index(outlink->channel_layout, AV_CH_BACK_RIGHT); + ch = av_channel_layout_index_from_channel(&outlink->ch_layout, AV_CHAN_BACK_RIGHT); if (ch >= 0) s->output_levels[ch] *= s->br_out; - ch = av_get_channel_layout_channel_index(outlink->channel_layout, AV_CH_BACK_CENTER); + ch = av_channel_layout_index_from_channel(&outlink->ch_layout, AV_CHAN_BACK_CENTER); if (ch >= 0) s->output_levels[ch] *= s->bc_out; - ch = av_get_channel_layout_channel_index(outlink->channel_layout, AV_CH_LOW_FREQUENCY); + ch = av_channel_layout_index_from_channel(&outlink->ch_layout, AV_CHAN_LOW_FREQUENCY); if (ch >= 0) s->output_levels[ch] *= s->lfe_out; @@ -1373,15 +1373,16 @@ static av_cold int init(AVFilterContext *ctx) { AudioSurroundContext *s = ctx->priv; float overlap; - int i; + int64_t in_channel_layout, out_channel_layout; + int i, ret; - if (!(s->out_channel_layout = av_get_channel_layout(s->out_channel_layout_str))) { + if ((ret = av_channel_layout_from_string(&s->out_channel_layout, s->out_channel_layout_str)) < 0) { av_log(ctx, AV_LOG_ERROR, "Error parsing output channel layout '%s'.\n", s->out_channel_layout_str); - return AVERROR(EINVAL); + return ret; } - if (!(s->in_channel_layout = av_get_channel_layout(s->in_channel_layout_str))) { + if ((ret = av_channel_layout_from_string(&s->in_channel_layout, s->in_channel_layout_str)) < 0) { av_log(ctx, AV_LOG_ERROR, "Error parsing input channel layout '%s'.\n", s->in_channel_layout_str); return AVERROR(EINVAL); @@ -1393,10 +1394,15 @@ static av_cold int init(AVFilterContext *ctx) return AVERROR(EINVAL); } - switch (s->in_channel_layout) { + in_channel_layout = s->in_channel_layout.order == AV_CHANNEL_ORDER_NATIVE ? + s->in_channel_layout.u.mask : 0; + out_channel_layout = s->out_channel_layout.order == AV_CHANNEL_ORDER_NATIVE ? + s->out_channel_layout.u.mask : 0; + + switch (in_channel_layout) { case AV_CH_LAYOUT_STEREO: s->filter = filter_stereo; - switch (s->out_channel_layout) { + switch (out_channel_layout) { case AV_CH_LAYOUT_MONO: s->upmix_stereo = upmix_1_0; break; @@ -1442,7 +1448,7 @@ static av_cold int init(AVFilterContext *ctx) break; case AV_CH_LAYOUT_2POINT1: s->filter = filter_2_1; - switch (s->out_channel_layout) { + switch (out_channel_layout) { case AV_CH_LAYOUT_5POINT1_BACK: s->upmix_2_1 = upmix_5_1_back_2_1; break; @@ -1452,7 +1458,7 @@ static av_cold int init(AVFilterContext *ctx) break; case AV_CH_LAYOUT_SURROUND: s->filter = filter_surround; - switch (s->out_channel_layout) { + switch (out_channel_layout) { case AV_CH_LAYOUT_3POINT1: s->upmix_3_0 = upmix_3_1_surround; break; @@ -1465,7 +1471,7 @@ static av_cold int init(AVFilterContext *ctx) break; case AV_CH_LAYOUT_5POINT0: s->filter = filter_5_0_side; - switch (s->out_channel_layout) { + switch (out_channel_layout) { case AV_CH_LAYOUT_7POINT1: s->upmix_5_0 = upmix_7_1_5_0_side; break; @@ -1475,7 +1481,7 @@ static av_cold int init(AVFilterContext *ctx) break; case AV_CH_LAYOUT_5POINT1: s->filter = filter_5_1_side; - switch (s->out_channel_layout) { + switch (out_channel_layout) { case AV_CH_LAYOUT_7POINT1: s->upmix_5_1 = upmix_7_1_5_1; break; @@ -1485,7 +1491,7 @@ static av_cold int init(AVFilterContext *ctx) break; case AV_CH_LAYOUT_5POINT1_BACK: s->filter = filter_5_1_back; - switch (s->out_channel_layout) { + switch (out_channel_layout) { case AV_CH_LAYOUT_7POINT1: s->upmix_5_1 = upmix_7_1_5_1; break; @@ -1586,7 +1592,7 @@ static int filter_frame(AVFilterLink *inlink) if (ret < 0) return ret; - ff_filter_execute(ctx, fft_channel, NULL, NULL, inlink->channels); + ff_filter_execute(ctx, fft_channel, NULL, NULL, inlink->ch_layout.nb_channels); s->filter(ctx); @@ -1594,7 +1600,7 @@ static int filter_frame(AVFilterLink *inlink) if (!out) return AVERROR(ENOMEM); - ff_filter_execute(ctx, ifft_channel, out, NULL, outlink->channels); + ff_filter_execute(ctx, ifft_channel, out, NULL, outlink->ch_layout.nb_channels); out->pts = s->pts; if (s->pts != AV_NOPTS_VALUE) diff --git a/libavfilter/af_tremolo.c b/libavfilter/af_tremolo.c index b34a7b79f7..400549a58c 100644 --- a/libavfilter/af_tremolo.c +++ b/libavfilter/af_tremolo.c @@ -49,7 +49,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) AVFilterLink *outlink = ctx->outputs[0]; TremoloContext *s = ctx->priv; const double *src = (const double *)in->data[0]; - const int channels = inlink->channels; + const int channels = inlink->ch_layout.nb_channels; const int nb_samples = in->nb_samples; AVFrame *out; double *dst; diff --git a/libavfilter/af_vibrato.c b/libavfilter/af_vibrato.c index 2cf1364273..900f63e397 100644 --- a/libavfilter/af_vibrato.c +++ b/libavfilter/af_vibrato.c @@ -80,7 +80,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) if (s->wave_table_index >= s->wave_table_size) s->wave_table_index -= s->wave_table_size; - for (c = 0; c < inlink->channels; c++) { + for (c = 0; c < inlink->ch_layout.nb_channels; c++) { int samp1_index, samp2_index; double *buf; double this_samp; @@ -128,10 +128,10 @@ static int config_input(AVFilterLink *inlink) AVFilterContext *ctx = inlink->dst; VibratoContext *s = ctx->priv; - s->buf = av_calloc(inlink->channels, sizeof(*s->buf)); + s->buf = av_calloc(inlink->ch_layout.nb_channels, sizeof(*s->buf)); if (!s->buf) return AVERROR(ENOMEM); - s->channels = inlink->channels; + s->channels = inlink->ch_layout.nb_channels; s->buf_size = lrint(inlink->sample_rate * 0.005 + 0.5); for (c = 0; c < s->channels; c++) { s->buf[c] = av_malloc_array(s->buf_size, sizeof(*s->buf[c])); diff --git a/libavfilter/af_volume.c b/libavfilter/af_volume.c index 76ccddc316..4c9b96f17e 100644 --- a/libavfilter/af_volume.c +++ b/libavfilter/af_volume.c @@ -281,7 +281,7 @@ static int config_output(AVFilterLink *outlink) AVFilterLink *inlink = ctx->inputs[0]; vol->sample_fmt = inlink->format; - vol->channels = inlink->channels; + vol->channels = inlink->ch_layout.nb_channels; vol->planes = av_sample_fmt_is_planar(inlink->format) ? vol->channels : 1; vol->var_values[VAR_N] = @@ -294,7 +294,7 @@ static int config_output(AVFilterLink *outlink) vol->var_values[VAR_T] = vol->var_values[VAR_VOLUME] = NAN; - vol->var_values[VAR_NB_CHANNELS] = inlink->channels; + vol->var_values[VAR_NB_CHANNELS] = inlink->ch_layout.nb_channels; vol->var_values[VAR_TB] = av_q2d(inlink->time_base); vol->var_values[VAR_SAMPLE_RATE] = inlink->sample_rate; diff --git a/libavfilter/af_volumedetect.c b/libavfilter/af_volumedetect.c index 486fccc4e9..ebfad6914f 100644 --- a/libavfilter/af_volumedetect.c +++ b/libavfilter/af_volumedetect.c @@ -38,7 +38,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *samples) AVFilterContext *ctx = inlink->dst; VolDetectContext *vd = ctx->priv; int nb_samples = samples->nb_samples; - int nb_channels = samples->channels; + int nb_channels = samples->ch_layout.nb_channels; int nb_planes = nb_channels; int plane, i; int16_t *pcm; diff --git a/libavfilter/asrc_afirsrc.c b/libavfilter/asrc_afirsrc.c index 3612610e75..b3651d3862 100644 --- a/libavfilter/asrc_afirsrc.c +++ b/libavfilter/asrc_afirsrc.c @@ -109,7 +109,7 @@ static av_cold void uninit(AVFilterContext *ctx) static av_cold int query_formats(AVFilterContext *ctx) { AudioFIRSourceContext *s = ctx->priv; - static const int64_t chlayouts[] = { AV_CH_LAYOUT_MONO, -1 }; + static const AVChannelLayout chlayouts[] = { (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO, { 0 } }; int sample_rates[] = { s->sample_rate, -1 }; static const enum AVSampleFormat sample_fmts[] = { AV_SAMPLE_FMT_FLT, diff --git a/libavfilter/asrc_anoisesrc.c b/libavfilter/asrc_anoisesrc.c index 8c834492fe..8e90a420ea 100644 --- a/libavfilter/asrc_anoisesrc.c +++ b/libavfilter/asrc_anoisesrc.c @@ -84,7 +84,7 @@ AVFILTER_DEFINE_CLASS(anoisesrc); static av_cold int query_formats(AVFilterContext *ctx) { ANoiseSrcContext *s = ctx->priv; - static const int64_t chlayouts[] = { AV_CH_LAYOUT_MONO, -1 }; + static const AVChannelLayout chlayouts[] = { (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO, { 0 } }; int sample_rates[] = { s->sample_rate, -1 }; static const enum AVSampleFormat sample_fmts[] = { AV_SAMPLE_FMT_DBL, diff --git a/libavfilter/asrc_anullsrc.c b/libavfilter/asrc_anullsrc.c index 7ee2fa5a5d..17cbc5fb6c 100644 --- a/libavfilter/asrc_anullsrc.c +++ b/libavfilter/asrc_anullsrc.c @@ -37,8 +37,7 @@ typedef struct ANullContext { const AVClass *class; - char *channel_layout_str; - uint64_t channel_layout; + AVChannelLayout ch_layout; char *sample_rate_str; int sample_rate; int64_t duration; @@ -50,8 +49,8 @@ typedef struct ANullContext { #define FLAGS AV_OPT_FLAG_AUDIO_PARAM|AV_OPT_FLAG_FILTERING_PARAM static const AVOption anullsrc_options[]= { - { "channel_layout", "set channel_layout", OFFSET(channel_layout_str), AV_OPT_TYPE_STRING, {.str = "stereo"}, 0, 0, FLAGS }, - { "cl", "set channel_layout", OFFSET(channel_layout_str), AV_OPT_TYPE_STRING, {.str = "stereo"}, 0, 0, FLAGS }, + { "channel_layout", "set channel_layout", OFFSET(ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str = "stereo"}, 0, 0, FLAGS }, + { "cl", "set channel_layout", OFFSET(ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str = "stereo"}, 0, 0, FLAGS }, { "sample_rate", "set sample rate", OFFSET(sample_rate_str) , AV_OPT_TYPE_STRING, {.str = "44100"}, 0, 0, FLAGS }, { "r", "set sample rate", OFFSET(sample_rate_str) , AV_OPT_TYPE_STRING, {.str = "44100"}, 0, 0, FLAGS }, { "nb_samples", "set the number of samples per requested frame", OFFSET(nb_samples), AV_OPT_TYPE_INT, {.i64 = 1024}, 1, UINT16_MAX, FLAGS }, @@ -72,17 +71,13 @@ static av_cold int init(AVFilterContext *ctx) null->sample_rate_str, ctx)) < 0) return ret; - if ((ret = ff_parse_channel_layout(&null->channel_layout, NULL, - null->channel_layout_str, ctx)) < 0) - return ret; - return 0; } static int query_formats(AVFilterContext *ctx) { ANullContext *null = ctx->priv; - int64_t chlayouts[] = { null->channel_layout, -1 }; + const AVChannelLayout chlayouts[] = { null->ch_layout, { 0 } }; int sample_rates[] = { null->sample_rate, -1 }; int ret; diff --git a/libavfilter/asrc_flite.c b/libavfilter/asrc_flite.c index 17e7a5b9bc..5fab8086ba 100644 --- a/libavfilter/asrc_flite.c +++ b/libavfilter/asrc_flite.c @@ -225,11 +225,13 @@ static int query_formats(AVFilterContext *ctx) int ret; AVFilterChannelLayouts *chlayouts = NULL; - int64_t chlayout = av_get_default_channel_layout(flite->wave->num_channels); AVFilterFormats *sample_formats = NULL; AVFilterFormats *sample_rates = NULL; + AVChannelLayout chlayout = { 0 }; - if ((ret = ff_add_channel_layout (&chlayouts , chlayout )) < 0 || + av_channel_layout_default(&chlayout, flite->wave->num_channels); + + if ((ret = ff_add_channel_layout (&chlayouts , &chlayout )) < 0 || (ret = ff_set_common_channel_layouts (ctx , chlayouts )) < 0 || (ret = ff_add_format (&sample_formats, AV_SAMPLE_FMT_S16 )) < 0 || (ret = ff_set_common_formats (ctx , sample_formats )) < 0 || diff --git a/libavfilter/asrc_hilbert.c b/libavfilter/asrc_hilbert.c index 82996c7362..6469ea2cda 100644 --- a/libavfilter/asrc_hilbert.c +++ b/libavfilter/asrc_hilbert.c @@ -77,7 +77,7 @@ static av_cold void uninit(AVFilterContext *ctx) static av_cold int query_formats(AVFilterContext *ctx) { HilbertContext *s = ctx->priv; - static const int64_t chlayouts[] = { AV_CH_LAYOUT_MONO, -1 }; + static const AVChannelLayout chlayouts[] = { (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO, { 0 } }; int sample_rates[] = { s->sample_rate, -1 }; static const enum AVSampleFormat sample_fmts[] = { AV_SAMPLE_FMT_FLT, diff --git a/libavfilter/asrc_sinc.c b/libavfilter/asrc_sinc.c index aaa81291a8..e4ae61c406 100644 --- a/libavfilter/asrc_sinc.c +++ b/libavfilter/asrc_sinc.c @@ -76,7 +76,7 @@ static int activate(AVFilterContext *ctx) static int query_formats(AVFilterContext *ctx) { SincContext *s = ctx->priv; - static const int64_t chlayouts[] = { AV_CH_LAYOUT_MONO, -1 }; + static const AVChannelLayout chlayouts[] = { (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO, { 0 } }; int sample_rates[] = { s->sample_rate, -1 }; static const enum AVSampleFormat sample_fmts[] = { AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_NONE }; diff --git a/libavfilter/asrc_sine.c b/libavfilter/asrc_sine.c index c8995ae2c9..780070e205 100644 --- a/libavfilter/asrc_sine.c +++ b/libavfilter/asrc_sine.c @@ -180,7 +180,7 @@ static av_cold void uninit(AVFilterContext *ctx) static av_cold int query_formats(AVFilterContext *ctx) { SineContext *sine = ctx->priv; - static const int64_t chlayouts[] = { AV_CH_LAYOUT_MONO, -1 }; + static const AVChannelLayout chlayouts[] = { (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO, { 0 } }; int sample_rates[] = { sine->sample_rate, -1 }; static const enum AVSampleFormat sample_fmts[] = { AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_NONE }; diff --git a/libavfilter/audio.c b/libavfilter/audio.c index cebc9709dd..0567c3c361 100644 --- a/libavfilter/audio.c +++ b/libavfilter/audio.c @@ -39,10 +39,14 @@ AVFrame *ff_null_get_audio_buffer(AVFilterLink *link, int nb_samples) AVFrame *ff_default_get_audio_buffer(AVFilterLink *link, int nb_samples) { AVFrame *frame = NULL; - int channels = link->channels; + int channels = link->ch_layout.nb_channels; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS int channel_layout_nb_channels = av_get_channel_layout_nb_channels(link->channel_layout); av_assert0(channels == channel_layout_nb_channels || !channel_layout_nb_channels); +FF_ENABLE_DEPRECATION_WARNINGS +#endif if (!link->frame_pool) { link->frame_pool = ff_frame_pool_audio_init(av_buffer_allocz, channels, @@ -77,7 +81,17 @@ AVFrame *ff_default_get_audio_buffer(AVFilterLink *link, int nb_samples) return NULL; frame->nb_samples = nb_samples; - frame->channel_layout = link->channel_layout; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + frame->channel_layout = link->ch_layout.order == AV_CHANNEL_ORDER_NATIVE ? + link->ch_layout.u.mask : 0; +FF_ENABLE_DEPRECATION_WARNINGS +#endif + if (link->ch_layout.order != AV_CHANNEL_ORDER_UNSPEC && + av_channel_layout_copy(&frame->ch_layout, &link->ch_layout) < 0) { + av_frame_free(&frame); + return NULL; + } frame->sample_rate = link->sample_rate; av_samples_set_silence(frame->extended_data, 0, nb_samples, channels, link->format); diff --git a/libavfilter/avf_abitscope.c b/libavfilter/avf_abitscope.c index f74a6eacb0..73a8290c9e 100644 --- a/libavfilter/avf_abitscope.c +++ b/libavfilter/avf_abitscope.c @@ -96,7 +96,7 @@ static int config_input(AVFilterLink *inlink) char *colors, *saveptr = NULL; s->nb_samples = FFMAX(1, av_rescale(inlink->sample_rate, s->frame_rate.den, s->frame_rate.num)); - s->nb_channels = inlink->channels; + s->nb_channels = inlink->ch_layout.nb_channels; s->depth = inlink->format == AV_SAMPLE_FMT_S16P ? 16 : 32; s->fg = av_malloc_array(s->nb_channels, 4 * sizeof(*s->fg)); @@ -168,9 +168,9 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *insamples) switch (insamples->format) { case AV_SAMPLE_FMT_S16P: - for (ch = 0; ch < inlink->channels; ch++) { + for (ch = 0; ch < inlink->ch_layout.nb_channels; ch++) { uint16_t *in = (uint16_t *)insamples->extended_data[ch]; - int w = outpicref->width / inlink->channels; + int w = outpicref->width / inlink->ch_layout.nb_channels; int h = outpicref->height / 16; uint32_t color = AV_RN32(&s->fg[4 * ch]); @@ -191,9 +191,9 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *insamples) } break; case AV_SAMPLE_FMT_S32P: - for (ch = 0; ch < inlink->channels; ch++) { + for (ch = 0; ch < inlink->ch_layout.nb_channels; ch++) { uint32_t *in = (uint32_t *)insamples->extended_data[ch]; - int w = outpicref->width / inlink->channels; + int w = outpicref->width / inlink->ch_layout.nb_channels; int h = outpicref->height / 32; uint32_t color = AV_RN32(&s->fg[4 * ch]); diff --git a/libavfilter/avf_ahistogram.c b/libavfilter/avf_ahistogram.c index 258b062873..98606b1149 100644 --- a/libavfilter/avf_ahistogram.c +++ b/libavfilter/avf_ahistogram.c @@ -121,7 +121,7 @@ static int config_input(AVFilterLink *inlink) AudioHistogramContext *s = ctx->priv; s->nb_samples = FFMAX(1, av_rescale(inlink->sample_rate, s->frame_rate.den, s->frame_rate.num)); - s->dchannels = s->dmode == SINGLE ? 1 : inlink->channels; + s->dchannels = s->dmode == SINGLE ? 1 : inlink->ch_layout.nb_channels; s->shistogram = av_calloc(s->w, s->dchannels * sizeof(*s->shistogram)); if (!s->shistogram) return AVERROR(ENOMEM); @@ -201,7 +201,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) switch (s->ascale) { case ALINEAR: - for (c = 0; c < inlink->channels; c++) { + for (c = 0; c < inlink->ch_layout.nb_channels; c++) { const float *src = (const float *)in->extended_data[c]; uint64_t *achistogram = &s->achistogram[(s->dmode == SINGLE ? 0: c) * w]; @@ -224,7 +224,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) } break; case ALOG: - for (c = 0; c < inlink->channels; c++) { + for (c = 0; c < inlink->ch_layout.nb_channels; c++) { const float *src = (const float *)in->extended_data[c]; uint64_t *achistogram = &s->achistogram[(s->dmode == SINGLE ? 0: c) * w]; diff --git a/libavfilter/avf_aphasemeter.c b/libavfilter/avf_aphasemeter.c index d9302cf867..eae584d17f 100644 --- a/libavfilter/avf_aphasemeter.c +++ b/libavfilter/avf_aphasemeter.c @@ -101,7 +101,7 @@ static int query_formats(AVFilterContext *ctx) formats = ff_make_format_list(sample_fmts); if ((ret = ff_formats_ref (formats, &inlink->outcfg.formats )) < 0 || (ret = ff_formats_ref (formats, &outlink->incfg.formats )) < 0 || - (ret = ff_add_channel_layout (&layout, AV_CH_LAYOUT_STEREO )) < 0 || + (ret = ff_add_channel_layout (&layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO )) < 0 || (ret = ff_channel_layouts_ref (layout , &inlink->outcfg.channel_layouts)) < 0 || (ret = ff_channel_layouts_ref (layout , &outlink->incfg.channel_layouts)) < 0) return ret; diff --git a/libavfilter/avf_avectorscope.c b/libavfilter/avf_avectorscope.c index ba392153f3..c1deaa1ea0 100644 --- a/libavfilter/avf_avectorscope.c +++ b/libavfilter/avf_avectorscope.c @@ -207,7 +207,7 @@ static int query_formats(AVFilterContext *ctx) formats = ff_make_format_list(sample_fmts); if ((ret = ff_formats_ref (formats, &inlink->outcfg.formats )) < 0 || - (ret = ff_add_channel_layout (&layout, AV_CH_LAYOUT_STEREO )) < 0 || + (ret = ff_add_channel_layout (&layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO)) < 0 || (ret = ff_channel_layouts_ref (layout , &inlink->outcfg.channel_layouts)) < 0) return ret; diff --git a/libavfilter/avf_concat.c b/libavfilter/avf_concat.c index 84c2a52094..c85c17b51f 100644 --- a/libavfilter/avf_concat.c +++ b/libavfilter/avf_concat.c @@ -263,7 +263,7 @@ static int send_silence(AVFilterContext *ctx, unsigned in_no, unsigned out_no, if (!buf) return AVERROR(ENOMEM); av_samples_set_silence(buf->extended_data, 0, frame_nb_samples, - outlink->channels, outlink->format); + outlink->ch_layout.nb_channels, outlink->format); buf->pts = base_pts + av_rescale_q(sent, rate_tb, outlink->time_base); ret = ff_filter_frame(outlink, buf); if (ret < 0) diff --git a/libavfilter/avf_showcqt.c b/libavfilter/avf_showcqt.c index 6f63574a8f..057a957a2a 100644 --- a/libavfilter/avf_showcqt.c +++ b/libavfilter/avf_showcqt.c @@ -1325,7 +1325,8 @@ static int query_formats(AVFilterContext *ctx) AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_RGB24, AV_PIX_FMT_NONE }; - static const int64_t channel_layouts[] = { AV_CH_LAYOUT_STEREO, AV_CH_LAYOUT_STEREO_DOWNMIX, -1 }; + static const AVChannelLayout channel_layouts[] = { (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO, + (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO_DOWNMIX, { 0 } }; int ret; /* set input audio formats */ diff --git a/libavfilter/avf_showfreqs.c b/libavfilter/avf_showfreqs.c index 08dbce53c8..c72a464884 100644 --- a/libavfilter/avf_showfreqs.c +++ b/libavfilter/avf_showfreqs.c @@ -177,7 +177,7 @@ static int config_output(AVFilterLink *outlink) av_freep(&s->fft_input); av_freep(&s->fft_data); av_freep(&s->avg_data); - s->nb_channels = inlink->channels; + s->nb_channels = inlink->ch_layout.nb_channels; s->fft_input = av_calloc(s->nb_channels, sizeof(*s->fft_input)); if (!s->fft_input) @@ -219,7 +219,7 @@ static int config_output(AVFilterLink *outlink) outlink->w = s->w; outlink->h = s->h; - s->fifo = av_audio_fifo_alloc(inlink->format, inlink->channels, s->win_size); + s->fifo = av_audio_fifo_alloc(inlink->format, inlink->ch_layout.nb_channels, s->win_size); if (!s->fifo) return AVERROR(ENOMEM); return 0; diff --git a/libavfilter/avf_showspatial.c b/libavfilter/avf_showspatial.c index 64e5204837..7807628540 100644 --- a/libavfilter/avf_showspatial.c +++ b/libavfilter/avf_showspatial.c @@ -94,7 +94,7 @@ static int query_formats(AVFilterContext *ctx) formats = ff_make_format_list(sample_fmts); if ((ret = ff_formats_ref (formats, &inlink->outcfg.formats )) < 0 || - (ret = ff_add_channel_layout (&layout, AV_CH_LAYOUT_STEREO )) < 0 || + (ret = ff_add_channel_layout (&layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO)) < 0 || (ret = ff_channel_layouts_ref (layout , &inlink->outcfg.channel_layouts)) < 0) return ret; @@ -190,7 +190,7 @@ static int config_output(AVFilterLink *outlink) outlink->time_base = av_inv_q(outlink->frame_rate); av_audio_fifo_free(s->fifo); - s->fifo = av_audio_fifo_alloc(inlink->format, inlink->channels, s->win_size); + s->fifo = av_audio_fifo_alloc(inlink->format, inlink->ch_layout.nb_channels, s->win_size); if (!s->fifo) return AVERROR(ENOMEM); return 0; diff --git a/libavfilter/avf_showspectrum.c b/libavfilter/avf_showspectrum.c index 74d2dd758c..3defc9d05c 100644 --- a/libavfilter/avf_showspectrum.c +++ b/libavfilter/avf_showspectrum.c @@ -738,8 +738,7 @@ static int draw_legend(AVFilterContext *ctx, int samples) uint8_t *dst; char chlayout_str[128]; - av_get_channel_layout_string(chlayout_str, sizeof(chlayout_str), inlink->channels, - inlink->channel_layout); + av_channel_layout_describe(&inlink->ch_layout, chlayout_str, sizeof(chlayout_str)); text = av_asprintf("%d Hz | %s", inlink->sample_rate, chlayout_str); if (!text) @@ -1041,8 +1040,8 @@ static int config_output(AVFilterLink *outlink) outlink->h += s->start_y * 2; } - h = (s->mode == COMBINED || s->orientation == HORIZONTAL) ? s->h : s->h / inlink->channels; - w = (s->mode == COMBINED || s->orientation == VERTICAL) ? s->w : s->w / inlink->channels; + h = (s->mode == COMBINED || s->orientation == HORIZONTAL) ? s->h : s->h / inlink->ch_layout.nb_channels; + w = (s->mode == COMBINED || s->orientation == VERTICAL) ? s->w : s->w / inlink->ch_layout.nb_channels; s->channel_height = h; s->channel_width = w; @@ -1058,14 +1057,14 @@ static int config_output(AVFilterLink *outlink) s->buf_size = FFALIGN(s->win_size << (!!s->stop), av_cpu_max_align()); if (!s->fft) { - s->fft = av_calloc(inlink->channels, sizeof(*s->fft)); + s->fft = av_calloc(inlink->ch_layout.nb_channels, sizeof(*s->fft)); if (!s->fft) return AVERROR(ENOMEM); } if (s->stop) { if (!s->ifft) { - s->ifft = av_calloc(inlink->channels, sizeof(*s->ifft)); + s->ifft = av_calloc(inlink->ch_layout.nb_channels, sizeof(*s->ifft)); if (!s->ifft) return AVERROR(ENOMEM); } @@ -1091,7 +1090,7 @@ static int config_output(AVFilterLink *outlink) } av_freep(&s->fft_data); - s->nb_display_channels = inlink->channels; + s->nb_display_channels = inlink->ch_layout.nb_channels; for (i = 0; i < s->nb_display_channels; i++) { float scale; @@ -1240,7 +1239,7 @@ static int config_output(AVFilterLink *outlink) s->w, s->h, s->win_size); av_audio_fifo_free(s->fifo); - s->fifo = av_audio_fifo_alloc(inlink->format, inlink->channels, s->win_size); + s->fifo = av_audio_fifo_alloc(inlink->format, inlink->ch_layout.nb_channels, s->win_size); if (!s->fifo) return AVERROR(ENOMEM); return 0; diff --git a/libavfilter/avf_showvolume.c b/libavfilter/avf_showvolume.c index 401b65ca69..1c072a16a6 100644 --- a/libavfilter/avf_showvolume.c +++ b/libavfilter/avf_showvolume.c @@ -166,15 +166,15 @@ static int config_input(AVFilterLink *inlink) ShowVolumeContext *s = ctx->priv; s->nb_samples = FFMAX(1, av_rescale(inlink->sample_rate, s->frame_rate.den, s->frame_rate.num)); - s->values = av_calloc(inlink->channels * VAR_VARS_NB, sizeof(double)); + s->values = av_calloc(inlink->ch_layout.nb_channels * VAR_VARS_NB, sizeof(double)); if (!s->values) return AVERROR(ENOMEM); - s->color_lut = av_calloc(s->w, sizeof(*s->color_lut) * inlink->channels); + s->color_lut = av_calloc(s->w, sizeof(*s->color_lut) * inlink->ch_layout.nb_channels); if (!s->color_lut) return AVERROR(ENOMEM); - s->max = av_calloc(inlink->channels, sizeof(*s->max)); + s->max = av_calloc(inlink->ch_layout.nb_channels, sizeof(*s->max)); if (!s->max) return AVERROR(ENOMEM); @@ -188,8 +188,8 @@ static int config_input(AVFilterLink *inlink) if (s->draw_persistent_duration > 0.) { s->persistent_max_frames = (int) FFMAX(av_q2d(s->frame_rate) * s->draw_persistent_duration, 1.); - s->max_persistent = av_calloc(inlink->channels * s->persistent_max_frames, sizeof(*s->max_persistent)); - s->nb_frames_max_display = av_calloc(inlink->channels * s->persistent_max_frames, sizeof(*s->nb_frames_max_display)); + s->max_persistent = av_calloc(inlink->ch_layout.nb_channels * s->persistent_max_frames, sizeof(*s->max_persistent)); + s->nb_frames_max_display = av_calloc(inlink->ch_layout.nb_channels * s->persistent_max_frames, sizeof(*s->nb_frames_max_display)); } return 0; } @@ -202,16 +202,16 @@ static int config_output(AVFilterLink *outlink) if (s->orientation) { outlink->h = s->w; - outlink->w = s->h * inlink->channels + (inlink->channels - 1) * s->b; + outlink->w = s->h * inlink->ch_layout.nb_channels + (inlink->ch_layout.nb_channels - 1) * s->b; } else { outlink->w = s->w; - outlink->h = s->h * inlink->channels + (inlink->channels - 1) * s->b; + outlink->h = s->h * inlink->ch_layout.nb_channels + (inlink->ch_layout.nb_channels - 1) * s->b; } outlink->sample_aspect_ratio = (AVRational){1,1}; outlink->frame_rate = s->frame_rate; - for (ch = 0; ch < inlink->channels; ch++) { + for (ch = 0; ch < inlink->ch_layout.nb_channels; ch++) { int i; for (i = 0; i < s->w; i++) { @@ -322,6 +322,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *insamples) ShowVolumeContext *s = ctx->priv; const int step = s->step; int c, j, k, max_draw; + char channel_name[64]; AVFrame *out; if (!s->out || s->out->width != outlink->w || @@ -353,7 +354,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *insamples) } if (s->orientation) { /* vertical */ - for (c = 0; c < inlink->channels; c++) { + for (c = 0; c < inlink->ch_layout.nb_channels; c++) { float *src = (float *)insamples->extended_data[c]; uint32_t *lut = s->color_lut + s->w * c; float max; @@ -375,8 +376,8 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *insamples) } if (s->h >= 8 && s->draw_text) { - const char *channel_name = av_get_channel_name(av_channel_layout_extract_channel(insamples->channel_layout, c)); - if (!channel_name) + int ret = av_channel_name(channel_name, sizeof(channel_name), av_channel_layout_channel_from_index(&insamples->ch_layout, c)); + if (ret < 0) continue; drawtext(s->out, c * (s->h + s->b) + (s->h - 10) / 2, outlink->h - 35, channel_name, 1); } @@ -388,7 +389,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *insamples) } } } else { /* horizontal */ - for (c = 0; c < inlink->channels; c++) { + for (c = 0; c < inlink->ch_layout.nb_channels; c++) { float *src = (float *)insamples->extended_data[c]; uint32_t *lut = s->color_lut + s->w * c; float max; @@ -411,8 +412,8 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *insamples) } if (s->h >= 8 && s->draw_text) { - const char *channel_name = av_get_channel_name(av_channel_layout_extract_channel(insamples->channel_layout, c)); - if (!channel_name) + int ret = av_channel_name(channel_name, sizeof(channel_name), av_channel_layout_channel_from_index(&insamples->ch_layout, c)); + if (ret < 0) continue; drawtext(s->out, 2, c * (s->h + s->b) + (s->h - 8) / 2, channel_name, 0); } @@ -432,7 +433,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *insamples) av_frame_make_writable(out); /* draw volume level */ - for (c = 0; c < inlink->channels && s->h >= 8 && s->draw_volume; c++) { + for (c = 0; c < inlink->ch_layout.nb_channels && s->h >= 8 && s->draw_volume; c++) { char buf[16]; if (s->orientation) { /* vertical */ diff --git a/libavfilter/avf_showwaves.c b/libavfilter/avf_showwaves.c index 853f6bbdcb..4aa415b115 100644 --- a/libavfilter/avf_showwaves.c +++ b/libavfilter/avf_showwaves.c @@ -415,7 +415,7 @@ static int config_output(AVFilterLink *outlink) AVFilterContext *ctx = outlink->src; AVFilterLink *inlink = ctx->inputs[0]; ShowWavesContext *showwaves = ctx->priv; - int nb_channels = inlink->channels; + int nb_channels = inlink->ch_layout.nb_channels; char *colors, *saveptr = NULL; uint8_t x; int ch; @@ -551,7 +551,7 @@ inline static int push_frame(AVFilterLink *outlink) AVFilterContext *ctx = outlink->src; AVFilterLink *inlink = ctx->inputs[0]; ShowWavesContext *showwaves = outlink->src->priv; - int nb_channels = inlink->channels; + int nb_channels = inlink->ch_layout.nb_channels; int ret, i; ret = ff_filter_frame(outlink, showwaves->outpicref); @@ -572,7 +572,7 @@ static int push_single_pic(AVFilterLink *outlink) int64_t last_column_samples = column_max_samples + remaining_samples; AVFrame *out = showwaves->outpicref; struct frame_node *node; - const int nb_channels = inlink->channels; + const int nb_channels = inlink->ch_layout.nb_channels; const int ch_height = showwaves->split_channels ? outlink->h / nb_channels : outlink->h; const int linesize = out->linesize[0]; const int pixstep = showwaves->pixstep; @@ -661,7 +661,7 @@ static int alloc_out_frame(ShowWavesContext *showwaves, const int16_t *p, return AVERROR(ENOMEM); out->width = outlink->w; out->height = outlink->h; - out->pts = in->pts + av_rescale_q((p - (int16_t *)in->data[0]) / inlink->channels, + out->pts = in->pts + av_rescale_q((p - (int16_t *)in->data[0]) / inlink->ch_layout.nb_channels, av_make_q(1, inlink->sample_rate), outlink->time_base); for (j = 0; j < outlink->h; j++) @@ -692,7 +692,7 @@ static int showwaves_filter_frame(AVFilterLink *inlink, AVFrame *insamples) const int nb_samples = insamples->nb_samples; AVFrame *outpicref = showwaves->outpicref; int16_t *p = (int16_t *)insamples->data[0]; - int nb_channels = inlink->channels; + int nb_channels = inlink->ch_layout.nb_channels; int i, j, ret = 0; const int pixstep = showwaves->pixstep; const int n = showwaves->n; @@ -820,7 +820,7 @@ static int showwavespic_config_input(AVFilterLink *inlink) ShowWavesContext *showwaves = ctx->priv; if (showwaves->single_pic) { - showwaves->sum = av_calloc(inlink->channels, sizeof(*showwaves->sum)); + showwaves->sum = av_calloc(inlink->ch_layout.nb_channels, sizeof(*showwaves->sum)); if (!showwaves->sum) return AVERROR(ENOMEM); } diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c index 7362bcdab5..acb2d7db51 100644 --- a/libavfilter/avfilter.c +++ b/libavfilter/avfilter.c @@ -204,6 +204,7 @@ void avfilter_link_free(AVFilterLink **link) ff_framequeue_free(&(*link)->fifo); ff_frame_pool_uninit((FFFramePool**)&(*link)->frame_pool); + av_channel_layout_uninit(&(*link)->ch_layout); av_freep(link); } @@ -405,7 +406,7 @@ void ff_tlog_link(void *ctx, AVFilterLink *link, int end) end ? "\n" : ""); } else { char buf[128]; - av_get_channel_layout_string(buf, sizeof(buf), -1, link->channel_layout); + av_channel_layout_describe(&link->ch_layout, buf, sizeof(buf)); ff_tlog(ctx, "link[%p r:%d cl:%s fmt:%s %s->%s]%s", @@ -1036,11 +1037,21 @@ int ff_filter_frame(AVFilterLink *link, AVFrame *frame) av_log(link->dst, AV_LOG_ERROR, "Format change is not supported\n"); goto error; } - if (frame->channels != link->channels) { +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + if (frame->channels != link->ch_layout.nb_channels) { av_log(link->dst, AV_LOG_ERROR, "Channel count change is not supported\n"); goto error; } - if (frame->channel_layout != link->channel_layout) { + if (frame->channel_layout && frame->channel_layout != link->channel_layout) { + av_log(link->dst, AV_LOG_ERROR, "Channel layout change is not supported\n"); + goto error; + } +FF_ENABLE_DEPRECATION_WARNINGS + if (av_channel_layout_check(&frame->ch_layout) && av_channel_layout_compare(&frame->ch_layout, &link->ch_layout)) { +#else + if (av_channel_layout_compare(&frame->ch_layout, &link->ch_layout)) { +#endif av_log(link->dst, AV_LOG_ERROR, "Channel layout change is not supported\n"); goto error; } @@ -1117,7 +1128,7 @@ static int take_samples(AVFilterLink *link, unsigned min, unsigned max, for (i = 0; i < nb_frames; i++) { frame = ff_framequeue_take(&link->fifo); av_samples_copy(buf->extended_data, frame->extended_data, p, 0, - frame->nb_samples, link->channels, link->format); + frame->nb_samples, link->ch_layout.nb_channels, link->format); p += frame->nb_samples; av_frame_free(&frame); } @@ -1125,7 +1136,7 @@ static int take_samples(AVFilterLink *link, unsigned min, unsigned max, unsigned n = nb_samples - p; frame = ff_framequeue_peek(&link->fifo, 0); av_samples_copy(buf->extended_data, frame->extended_data, p, 0, n, - link->channels, link->format); + link->ch_layout.nb_channels, link->format); ff_framequeue_skip_samples(&link->fifo, n, link->time_base); } diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h index b105dc3159..fcde7ab7af 100644 --- a/libavfilter/avfilter.h +++ b/libavfilter/avfilter.h @@ -543,7 +543,14 @@ struct AVFilterLink { int h; ///< agreed upon image height AVRational sample_aspect_ratio; ///< agreed upon sample aspect ratio /* These parameters apply only to audio */ - uint64_t channel_layout; ///< channel layout of current buffer (see libavutil/channel_layout.h) +#if FF_API_OLD_CHANNEL_LAYOUT + /** + * channel layout of current buffer (see libavutil/channel_layout.h) + * @deprecated use ch_layout + */ + attribute_deprecated + uint64_t channel_layout; +#endif int sample_rate; ///< samples per second int format; ///< agreed upon media format @@ -557,6 +564,8 @@ struct AVFilterLink { */ AVRational time_base; + AVChannelLayout ch_layout; ///< channel layout of current buffer (see libavutil/channel_layout.h) + /***************************************************************** * All fields below this line are not part of the public API. They * may not be used outside of libavfilter and can be changed and @@ -632,11 +641,6 @@ struct AVFilterLink { */ int max_samples; - /** - * Number of channels. - */ - int channels; - /** * Number of past frames sent through the link. */ diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c index b8b432e98b..1d4343d961 100644 --- a/libavfilter/avfiltergraph.c +++ b/libavfilter/avfiltergraph.c @@ -639,6 +639,8 @@ static int pick_format(AVFilterLink *link, AVFilterLink *ref) link->format = link->incfg.formats->formats[0]; if (link->type == AVMEDIA_TYPE_AUDIO) { + int ret; + if (!link->incfg.samplerates->nb_formats) { av_log(link->src, AV_LOG_ERROR, "Cannot select sample rate for" " the link between filters %s and %s.\n", link->src->name, @@ -659,11 +661,15 @@ static int pick_format(AVFilterLink *link, AVFilterLink *ref) return AVERROR(EINVAL); } link->incfg.channel_layouts->nb_channel_layouts = 1; - link->channel_layout = link->incfg.channel_layouts->channel_layouts[0]; - if ((link->channels = FF_LAYOUT2COUNT(link->channel_layout))) - link->channel_layout = 0; - else - link->channels = av_get_channel_layout_nb_channels(link->channel_layout); + ret = av_channel_layout_copy(&link->ch_layout, &link->incfg.channel_layouts->channel_layouts[0]); + if (ret < 0) + return ret; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + link->channel_layout = link->ch_layout.order == AV_CHANNEL_ORDER_NATIVE ? + link->ch_layout.u.mask : 0; +FF_ENABLE_DEPRECATION_WARNINGS +#endif } ff_formats_unref(&link->incfg.formats); @@ -725,12 +731,12 @@ static int reduce_formats_on_filter(AVFilterContext *filter) /* reduce channel layouts */ for (i = 0; i < filter->nb_inputs; i++) { AVFilterLink *inlink = filter->inputs[i]; - uint64_t fmt; + AVChannelLayout fmt = { 0 }; if (!inlink->outcfg.channel_layouts || inlink->outcfg.channel_layouts->nb_channel_layouts != 1) continue; - fmt = inlink->outcfg.channel_layouts->channel_layouts[0]; + av_channel_layout_copy(&fmt, &inlink->outcfg.channel_layouts->channel_layouts[0]); for (j = 0; j < filter->nb_outputs; j++) { AVFilterLink *outlink = filter->outputs[j]; @@ -741,23 +747,24 @@ static int reduce_formats_on_filter(AVFilterContext *filter) continue; if (fmts->all_layouts && - (!FF_LAYOUT2COUNT(fmt) || fmts->all_counts)) { + (KNOWN(&fmt) || fmts->all_counts)) { /* Turn the infinite list into a singleton */ fmts->all_layouts = fmts->all_counts = 0; - if (ff_add_channel_layout(&outlink->incfg.channel_layouts, fmt) < 0) + if (ff_add_channel_layout(&outlink->incfg.channel_layouts, &fmt) < 0) ret = 1; break; } for (k = 0; k < outlink->incfg.channel_layouts->nb_channel_layouts; k++) { - if (fmts->channel_layouts[k] == fmt) { - fmts->channel_layouts[0] = fmt; + if (!av_channel_layout_compare(&fmts->channel_layouts[k], &fmt)) { + av_channel_layout_copy(&fmts->channel_layouts[0], &fmt); fmts->nb_channel_layouts = 1; ret = 1; break; } } } + av_channel_layout_uninit(&fmt); } return ret; @@ -887,26 +894,31 @@ static void swap_channel_layouts_on_filter(AVFilterContext *filter) continue; for (j = 0; j < outlink->incfg.channel_layouts->nb_channel_layouts; j++) { - uint64_t in_chlayout = link->outcfg.channel_layouts->channel_layouts[0]; - uint64_t out_chlayout = outlink->incfg.channel_layouts->channel_layouts[j]; - int in_channels = av_get_channel_layout_nb_channels(in_chlayout); - int out_channels = av_get_channel_layout_nb_channels(out_chlayout); - int count_diff = out_channels - in_channels; + AVChannelLayout in_chlayout = { 0 }, out_chlayout = { 0 }; + int in_channels; + int out_channels; + int count_diff; int matched_channels, extra_channels; int score = 100000; - if (FF_LAYOUT2COUNT(in_chlayout) || FF_LAYOUT2COUNT(out_chlayout)) { + av_channel_layout_copy(&in_chlayout, &link->outcfg.channel_layouts->channel_layouts[0]); + av_channel_layout_copy(&out_chlayout, &outlink->incfg.channel_layouts->channel_layouts[j]); + in_channels = in_chlayout.nb_channels; + out_channels = out_chlayout.nb_channels; + count_diff = out_channels - in_channels; + if (!KNOWN(&in_chlayout) || !KNOWN(&out_chlayout)) { /* Compute score in case the input or output layout encodes a channel count; in this case the score is not altered by the computation afterwards, as in_chlayout and out_chlayout have both been set to 0 */ - if (FF_LAYOUT2COUNT(in_chlayout)) - in_channels = FF_LAYOUT2COUNT(in_chlayout); - if (FF_LAYOUT2COUNT(out_chlayout)) - out_channels = FF_LAYOUT2COUNT(out_chlayout); + if (!KNOWN(&in_chlayout)) + in_channels = FF_LAYOUT2COUNT(&in_chlayout); + if (!KNOWN(&out_chlayout)) + out_channels = FF_LAYOUT2COUNT(&out_chlayout); score -= 10000 + FFABS(out_channels - in_channels) + (in_channels > out_channels ? 10000 : 0); - in_chlayout = out_chlayout = 0; + av_channel_layout_uninit(&in_chlayout); + av_channel_layout_uninit(&out_chlayout); /* Let the remaining computation run, even if the score value is not altered */ } @@ -915,27 +927,27 @@ static void swap_channel_layouts_on_filter(AVFilterContext *filter) for (k = 0; k < FF_ARRAY_ELEMS(ch_subst); k++) { uint64_t cmp0 = ch_subst[k][0]; uint64_t cmp1 = ch_subst[k][1]; - if (( in_chlayout & cmp0) && (!(out_chlayout & cmp0)) && - (out_chlayout & cmp1) && (!( in_chlayout & cmp1))) { - in_chlayout &= ~cmp0; - out_chlayout &= ~cmp1; + if ( av_channel_layout_subset(& in_chlayout, cmp0) && + !av_channel_layout_subset(&out_chlayout, cmp0) && + av_channel_layout_subset(&out_chlayout, cmp1) && + !av_channel_layout_subset(& in_chlayout, cmp1)) { + av_channel_layout_from_mask(&in_chlayout, av_channel_layout_subset(& in_chlayout, ~cmp0)); + av_channel_layout_from_mask(&out_chlayout, av_channel_layout_subset(&out_chlayout, ~cmp1)); /* add score for channel match, minus a deduction for having to do the substitution */ - score += 10 * av_get_channel_layout_nb_channels(cmp1) - 2; + score += 10 * av_popcount64(cmp1) - 2; } } /* no penalty for LFE channel mismatch */ - if ( (in_chlayout & AV_CH_LOW_FREQUENCY) && - (out_chlayout & AV_CH_LOW_FREQUENCY)) + if (av_channel_layout_channel_from_index(&in_chlayout, AV_CHAN_LOW_FREQUENCY) >= 0 && + av_channel_layout_channel_from_index(&out_chlayout, AV_CHAN_LOW_FREQUENCY) >= 0) score += 10; - in_chlayout &= ~AV_CH_LOW_FREQUENCY; - out_chlayout &= ~AV_CH_LOW_FREQUENCY; + av_channel_layout_from_mask(&in_chlayout, av_channel_layout_subset(&in_chlayout, ~AV_CH_LOW_FREQUENCY)); + av_channel_layout_from_mask(&out_chlayout, av_channel_layout_subset(&out_chlayout, ~AV_CH_LOW_FREQUENCY)); - matched_channels = av_get_channel_layout_nb_channels(in_chlayout & - out_chlayout); - extra_channels = av_get_channel_layout_nb_channels(out_chlayout & - (~in_chlayout)); + matched_channels = av_popcount64(in_chlayout.u.mask & out_chlayout.u.mask); + extra_channels = av_popcount64(out_chlayout.u.mask & (~in_chlayout.u.mask)); score += 10 * matched_channels - 5 * extra_channels; if (score > best_score || @@ -946,7 +958,7 @@ static void swap_channel_layouts_on_filter(AVFilterContext *filter) } } av_assert0(best_idx >= 0); - FFSWAP(uint64_t, outlink->incfg.channel_layouts->channel_layouts[0], + FFSWAP(AVChannelLayout, outlink->incfg.channel_layouts->channel_layouts[0], outlink->incfg.channel_layouts->channel_layouts[best_idx]); } diff --git a/libavfilter/buffersink.c b/libavfilter/buffersink.c index c0215669e7..c96ac1e626 100644 --- a/libavfilter/buffersink.c +++ b/libavfilter/buffersink.c @@ -74,7 +74,7 @@ static void cleanup_redundant_layouts(AVFilterContext *ctx) if (buf->channel_counts[i] < 64) counts |= (uint64_t)1 << buf->channel_counts[i]; for (i = lc = 0; i < nb_layouts; i++) { - n = av_get_channel_layout_nb_channels(buf->channel_layouts[i]); + n = av_popcount64(buf->channel_layouts[i]); if (n < 64 && (counts & ((uint64_t)1 << n))) av_log(ctx, AV_LOG_WARNING, "Removing channel layout 0x%"PRIx64", redundant with %d channels\n", @@ -217,12 +217,34 @@ MAKE_AVFILTERLINK_ACCESSOR(int , w ) MAKE_AVFILTERLINK_ACCESSOR(int , h ) MAKE_AVFILTERLINK_ACCESSOR(AVRational , sample_aspect_ratio) -MAKE_AVFILTERLINK_ACCESSOR(int , channels ) +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS MAKE_AVFILTERLINK_ACCESSOR(uint64_t , channel_layout ) +FF_ENABLE_DEPRECATION_WARNINGS +#endif MAKE_AVFILTERLINK_ACCESSOR(int , sample_rate ) MAKE_AVFILTERLINK_ACCESSOR(AVBufferRef * , hw_frames_ctx ) +int av_buffersink_get_channels(const AVFilterContext *ctx) +{ + av_assert0(ctx->filter->activate == activate); + return ctx->inputs[0]->ch_layout.nb_channels; +} + +int av_buffersink_get_ch_layout(const AVFilterContext *ctx, AVChannelLayout *out) +{ + AVChannelLayout ch_layout = { 0 }; + int ret; + + av_assert0(ctx->filter->activate == activate); + ret = av_channel_layout_copy(&ch_layout, &ctx->inputs[0]->ch_layout); + if (ret < 0) + return ret; + *out = ch_layout; + return 0; +} + #define CHECK_LIST_SIZE(field) \ if (buf->field ## _size % sizeof(*buf->field)) { \ av_log(ctx, AV_LOG_ERROR, "Invalid size for " #field ": %d, " \ @@ -256,6 +278,7 @@ static int asink_query_formats(AVFilterContext *ctx) { BufferSinkContext *buf = ctx->priv; AVFilterFormats *formats = NULL; + AVChannelLayout layout = { 0 }; AVFilterChannelLayouts *layouts = NULL; unsigned i; int ret; @@ -277,11 +300,14 @@ static int asink_query_formats(AVFilterContext *ctx) buf->all_channel_counts) { cleanup_redundant_layouts(ctx); for (i = 0; i < NB_ITEMS(buf->channel_layouts); i++) - if ((ret = ff_add_channel_layout(&layouts, buf->channel_layouts[i])) < 0) + if ((ret = av_channel_layout_from_mask(&layout, buf->channel_layouts[i])) < 0 || + (ret = ff_add_channel_layout(&layouts, &layout) < 0)) return ret; - for (i = 0; i < NB_ITEMS(buf->channel_counts); i++) - if ((ret = ff_add_channel_layout(&layouts, FF_COUNT2LAYOUT(buf->channel_counts[i]))) < 0) + for (i = 0; i < NB_ITEMS(buf->channel_counts); i++) { + layout = FF_COUNT2LAYOUT(buf->channel_counts[i]); + if ((ret = ff_add_channel_layout(&layouts, &layout)) < 0) return ret; + } if (buf->all_channel_counts) { if (layouts) av_log(ctx, AV_LOG_WARNING, diff --git a/libavfilter/buffersink.h b/libavfilter/buffersink.h index 69ed0f29a8..ae90ae87fa 100644 --- a/libavfilter/buffersink.h +++ b/libavfilter/buffersink.h @@ -46,7 +46,7 @@ * - av_buffersink_get_h(), * - av_buffersink_get_sample_aspect_ratio(), * - av_buffersink_get_channels(), - * - av_buffersink_get_channel_layout(), + * - av_buffersink_get_ch_layout(), * - av_buffersink_get_sample_rate(). * * The format can be constrained by setting options, using av_opt_set() and @@ -156,7 +156,12 @@ int av_buffersink_get_h (const AVFilterContext *c AVRational av_buffersink_get_sample_aspect_ratio (const AVFilterContext *ctx); int av_buffersink_get_channels (const AVFilterContext *ctx); +#if FF_API_OLD_CHANNEL_LAYOUT +attribute_deprecated uint64_t av_buffersink_get_channel_layout (const AVFilterContext *ctx); +#endif +int av_buffersink_get_ch_layout (const AVFilterContext *ctx, + AVChannelLayout *ch_layout); int av_buffersink_get_sample_rate (const AVFilterContext *ctx); AVBufferRef * av_buffersink_get_hw_frames_ctx (const AVFilterContext *ctx); diff --git a/libavfilter/buffersrc.c b/libavfilter/buffersrc.c index b0611872f1..a2a08a7d89 100644 --- a/libavfilter/buffersrc.c +++ b/libavfilter/buffersrc.c @@ -60,8 +60,8 @@ typedef struct BufferSourceContext { int sample_rate; enum AVSampleFormat sample_fmt; int channels; - uint64_t channel_layout; char *channel_layout_str; + AVChannelLayout ch_layout; int eof; } BufferSourceContext; @@ -73,12 +73,12 @@ typedef struct BufferSourceContext { av_log(s, AV_LOG_WARNING, "Changing video frame properties on the fly is not supported by all filters.\n");\ } -#define CHECK_AUDIO_PARAM_CHANGE(s, c, srate, ch_layout, ch_count, format, pts)\ +#define CHECK_AUDIO_PARAM_CHANGE(s, c, srate, layout, format, pts)\ if (c->sample_fmt != format || c->sample_rate != srate ||\ - c->channel_layout != ch_layout || c->channels != ch_count) {\ + av_channel_layout_compare(&c->ch_layout, &layout) || c->channels != layout.nb_channels) {\ av_log(s, AV_LOG_INFO, "filter context - fmt: %s r: %d layout: %"PRIX64" ch: %d, incoming frame - fmt: %s r: %d layout: %"PRIX64" ch: %d pts_time: %s\n",\ - av_get_sample_fmt_name(c->sample_fmt), c->sample_rate, c->channel_layout, c->channels,\ - av_get_sample_fmt_name(format), srate, ch_layout, ch_count, av_ts2timestr(pts, &s->outputs[0]->time_base));\ + av_get_sample_fmt_name(c->sample_fmt), c->sample_rate, c->ch_layout.order == AV_CHANNEL_ORDER_NATIVE ? c->ch_layout.u.mask : 0, c->channels,\ + av_get_sample_fmt_name(format), srate, layout.order == AV_CHANNEL_ORDER_NATIVE ? layout.u.mask : 0, layout.nb_channels, av_ts2timestr(pts, &s->outputs[0]->time_base));\ av_log(s, AV_LOG_ERROR, "Changing audio frame properties on the fly is not supported.\n");\ return AVERROR(EINVAL);\ } @@ -127,8 +127,20 @@ int av_buffersrc_parameters_set(AVFilterContext *ctx, AVBufferSrcParameters *par } if (param->sample_rate > 0) s->sample_rate = param->sample_rate; - if (param->channel_layout) - s->channel_layout = param->channel_layout; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS + // if the old/new fields are set inconsistently, prefer the old ones + if (param->channel_layout && (param->ch_layout.order != AV_CHANNEL_ORDER_NATIVE || + param->ch_layout.u.mask != param->channel_layout)) { + av_channel_layout_from_mask(&s->ch_layout, param->channel_layout); +FF_ENABLE_DEPRECATION_WARNINGS + } else +#endif + if (param->ch_layout.nb_channels) { + int ret = av_channel_layout_copy(&s->ch_layout, ¶m->ch_layout); + if (ret < 0) + return ret; + } break; default: return AVERROR_BUG; @@ -168,11 +180,15 @@ int attribute_align_arg av_buffersrc_add_frame_flags(AVFilterContext *ctx, AVFra AVFrame *copy; int refcounted, ret; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS if (frame && frame->channel_layout && av_get_channel_layout_nb_channels(frame->channel_layout) != frame->channels) { av_log(ctx, AV_LOG_ERROR, "Layout indicates a different number of channels than actually present\n"); return AVERROR(EINVAL); } +FF_ENABLE_DEPRECATION_WARNINGS +#endif s->nb_failed_requests = 0; @@ -192,10 +208,20 @@ int attribute_align_arg av_buffersrc_add_frame_flags(AVFilterContext *ctx, AVFra break; case AVMEDIA_TYPE_AUDIO: /* For layouts unknown on input but known on link after negotiation. */ +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS if (!frame->channel_layout) - frame->channel_layout = s->channel_layout; - CHECK_AUDIO_PARAM_CHANGE(ctx, s, frame->sample_rate, frame->channel_layout, - frame->channels, frame->format, frame->pts); + frame->channel_layout = s->ch_layout.order == AV_CHANNEL_ORDER_NATIVE ? + s->ch_layout.u.mask : 0; +FF_ENABLE_DEPRECATION_WARNINGS +#endif + if (frame->ch_layout.order == AV_CHANNEL_ORDER_UNSPEC) { + ret = av_channel_layout_copy(&frame->ch_layout, &s->ch_layout); + if (ret < 0) + return ret; + } + CHECK_AUDIO_PARAM_CHANGE(ctx, s, frame->sample_rate, frame->ch_layout, + frame->format, frame->pts); break; default: return AVERROR(EINVAL); @@ -301,6 +327,7 @@ AVFILTER_DEFINE_CLASS(abuffer); static av_cold int init_audio(AVFilterContext *ctx) { BufferSourceContext *s = ctx->priv; + char buf[128]; int ret = 0; if (s->sample_fmt == AV_SAMPLE_FMT_NONE) { @@ -308,24 +335,39 @@ static av_cold int init_audio(AVFilterContext *ctx) return AVERROR(EINVAL); } - if (s->channel_layout_str || s->channel_layout) { + if (s->channel_layout_str || s->ch_layout.nb_channels) { int n; - if (!s->channel_layout) { - s->channel_layout = av_get_channel_layout(s->channel_layout_str); - if (!s->channel_layout) { - av_log(ctx, AV_LOG_ERROR, "Invalid channel layout %s.\n", + if (!s->ch_layout.nb_channels) { + ret = av_channel_layout_from_string(&s->ch_layout, s->channel_layout_str); + if (ret < 0) { +#if FF_API_OLD_CHANNEL_LAYOUT + uint64_t mask; +FF_DISABLE_DEPRECATION_WARNINGS + mask = av_get_channel_layout(s->channel_layout_str); + if (!mask) { +#endif + av_log(ctx, AV_LOG_ERROR, "Invalid channel layout %s.\n", + s->channel_layout_str); + return AVERROR(EINVAL); +#if FF_API_OLD_CHANNEL_LAYOUT + } +FF_ENABLE_DEPRECATION_WARNINGS + av_log(ctx, AV_LOG_WARNING, "Channel layout '%s' uses a deprecated syntax.\n", s->channel_layout_str); - return AVERROR(EINVAL); + av_channel_layout_from_mask(&s->ch_layout, mask); +#endif } } - n = av_get_channel_layout_nb_channels(s->channel_layout); + + n = s->ch_layout.nb_channels; + av_channel_layout_describe(&s->ch_layout, buf, sizeof(buf)); if (s->channels) { if (n != s->channels) { av_log(ctx, AV_LOG_ERROR, "Mismatching channel count %d and layout '%s' " "(%d channels)\n", - s->channels, s->channel_layout_str, n); + s->channels, buf, n); return AVERROR(EINVAL); } } @@ -334,6 +376,9 @@ static av_cold int init_audio(AVFilterContext *ctx) av_log(ctx, AV_LOG_ERROR, "Neither number of channels nor " "channel layout specified\n"); return AVERROR(EINVAL); + } else { + s->ch_layout = FF_COUNT2LAYOUT(s->channels); + av_channel_layout_describe(&s->ch_layout, buf, sizeof(buf)); } if (!s->time_base.num) @@ -342,7 +387,7 @@ static av_cold int init_audio(AVFilterContext *ctx) av_log(ctx, AV_LOG_VERBOSE, "tb:%d/%d samplefmt:%s samplerate:%d chlayout:%s\n", s->time_base.num, s->time_base.den, av_get_sample_fmt_name(s->sample_fmt), - s->sample_rate, s->channel_layout_str); + s->sample_rate, buf); return ret; } @@ -374,9 +419,7 @@ static int query_formats(AVFilterContext *ctx) (ret = ff_set_common_samplerates (ctx , samplerates )) < 0) return ret; - if ((ret = ff_add_channel_layout(&channel_layouts, - c->channel_layout ? c->channel_layout : - FF_COUNT2LAYOUT(c->channels))) < 0) + if ((ret = ff_add_channel_layout(&channel_layouts, &c->ch_layout)) < 0) return ret; if ((ret = ff_set_common_channel_layouts(ctx, channel_layouts)) < 0) return ret; @@ -405,8 +448,11 @@ static int config_props(AVFilterLink *link) } break; case AVMEDIA_TYPE_AUDIO: - if (!c->channel_layout) - c->channel_layout = link->channel_layout; + if (!c->ch_layout.nb_channels) { + int ret = av_channel_layout_copy(&c->ch_layout, &link->ch_layout); + if (ret < 0) + return ret; + } break; default: return AVERROR(EINVAL); diff --git a/libavfilter/buffersrc.h b/libavfilter/buffersrc.h index 08fbd18a47..3b248b37cd 100644 --- a/libavfilter/buffersrc.h +++ b/libavfilter/buffersrc.h @@ -110,10 +110,19 @@ typedef struct AVBufferSrcParameters { */ int sample_rate; +#if FF_API_OLD_CHANNEL_LAYOUT /** * Audio only, the audio channel layout + * @deprecated use ch_layout */ + attribute_deprecated uint64_t channel_layout; +#endif + + /** + * Audio only, the audio channel layout + */ + AVChannelLayout ch_layout; } AVBufferSrcParameters; /** diff --git a/libavfilter/f_ebur128.c b/libavfilter/f_ebur128.c index 88d6a1fe46..2a6edba3d8 100644 --- a/libavfilter/f_ebur128.c +++ b/libavfilter/f_ebur128.c @@ -422,7 +422,7 @@ static int config_audio_output(AVFilterLink *outlink) int i; AVFilterContext *ctx = outlink->src; EBUR128Context *ebur128 = ctx->priv; - const int nb_channels = av_get_channel_layout_nb_channels(outlink->channel_layout); + const int nb_channels = outlink->ch_layout.nb_channels; #define BACK_MASK (AV_CH_BACK_LEFT |AV_CH_BACK_CENTER |AV_CH_BACK_RIGHT| \ AV_CH_TOP_BACK_LEFT|AV_CH_TOP_BACK_CENTER|AV_CH_TOP_BACK_RIGHT| \ @@ -439,8 +439,8 @@ static int config_audio_output(AVFilterLink *outlink) for (i = 0; i < nb_channels; i++) { /* channel weighting */ - const uint64_t chl = av_channel_layout_extract_channel(outlink->channel_layout, i); - if (chl & (AV_CH_LOW_FREQUENCY|AV_CH_LOW_FREQUENCY_2)) { + const int chl = av_channel_layout_channel_from_index(&outlink->ch_layout, i); + if (chl == AV_CHAN_LOW_FREQUENCY || chl == AV_CHAN_LOW_FREQUENCY_2) { ebur128->ch_weighting[i] = 0; } else if (chl & BACK_MASK) { ebur128->ch_weighting[i] = 1.41; @@ -472,11 +472,11 @@ static int config_audio_output(AVFilterLink *outlink) !ebur128->true_peaks_per_frame || !ebur128->swr_ctx) return AVERROR(ENOMEM); - av_opt_set_int(ebur128->swr_ctx, "in_channel_layout", outlink->channel_layout, 0); + av_opt_set_chlayout(ebur128->swr_ctx, "in_ch_layout", &outlink->ch_layout, 0); av_opt_set_int(ebur128->swr_ctx, "in_sample_rate", outlink->sample_rate, 0); av_opt_set_sample_fmt(ebur128->swr_ctx, "in_sample_fmt", outlink->format, 0); - av_opt_set_int(ebur128->swr_ctx, "out_channel_layout", outlink->channel_layout, 0); + av_opt_set_chlayout(ebur128->swr_ctx, "out_ch_layout", &outlink->ch_layout, 0); av_opt_set_int(ebur128->swr_ctx, "out_sample_rate", 192000, 0); av_opt_set_sample_fmt(ebur128->swr_ctx, "out_sample_fmt", outlink->format, 0); diff --git a/libavfilter/f_graphmonitor.c b/libavfilter/f_graphmonitor.c index 51d0a568e3..f20825a488 100644 --- a/libavfilter/f_graphmonitor.c +++ b/libavfilter/f_graphmonitor.c @@ -196,7 +196,7 @@ static void draw_items(AVFilterContext *ctx, AVFrame *out, if (l->type == AVMEDIA_TYPE_VIDEO) { snprintf(buffer, sizeof(buffer)-1, " | size: %dx%d", l->w, l->h); } else if (l->type == AVMEDIA_TYPE_AUDIO) { - snprintf(buffer, sizeof(buffer)-1, " | channels: %d", l->channels); + snprintf(buffer, sizeof(buffer)-1, " | channels: %d", l->ch_layout.nb_channels); } drawtext(out, xpos, ypos, buffer, s->white); xpos += strlen(buffer) * 8; diff --git a/libavfilter/f_loop.c b/libavfilter/f_loop.c index f8ae4a6a3a..c619ba85b3 100644 --- a/libavfilter/f_loop.c +++ b/libavfilter/f_loop.c @@ -70,8 +70,8 @@ static int aconfig_input(AVFilterLink *inlink) AVFilterContext *ctx = inlink->dst; LoopContext *s = ctx->priv; - s->fifo = av_audio_fifo_alloc(inlink->format, inlink->channels, 8192); - s->left = av_audio_fifo_alloc(inlink->format, inlink->channels, 8192); + s->fifo = av_audio_fifo_alloc(inlink->format, inlink->ch_layout.nb_channels, 8192); + s->left = av_audio_fifo_alloc(inlink->format, inlink->ch_layout.nb_channels, 8192); if (!s->fifo || !s->left) return AVERROR(ENOMEM); diff --git a/libavfilter/f_reverse.c b/libavfilter/f_reverse.c index f7a7e716fa..2776c83b8d 100644 --- a/libavfilter/f_reverse.c +++ b/libavfilter/f_reverse.c @@ -148,7 +148,7 @@ const AVFilter ff_vf_reverse = { static void reverse_samples_planar(AVFrame *out) { - for (int p = 0; p < out->channels; p++) { + for (int p = 0; p < out->ch_layout.nb_channels; p++) { switch (out->format) { case AV_SAMPLE_FMT_U8P: { uint8_t *dst = (uint8_t *)out->extended_data[p]; @@ -192,7 +192,7 @@ static void reverse_samples_planar(AVFrame *out) static void reverse_samples_packed(AVFrame *out) { - const int channels = out->channels; + const int channels = out->ch_layout.nb_channels; switch (out->format) { case AV_SAMPLE_FMT_U8: { diff --git a/libavfilter/f_streamselect.c b/libavfilter/f_streamselect.c index 3708d2b256..1328a842f9 100644 --- a/libavfilter/f_streamselect.c +++ b/libavfilter/f_streamselect.c @@ -118,8 +118,12 @@ static int config_output(AVFilterLink *outlink) break; case AVMEDIA_TYPE_AUDIO: outlink->sample_rate = inlink->sample_rate; - outlink->channels = inlink->channels; + outlink->ch_layout.nb_channels = inlink->ch_layout.nb_channels; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS outlink->channel_layout = inlink->channel_layout; +FF_ENABLE_DEPRECATION_WARNINGS +#endif break; } diff --git a/libavfilter/formats.c b/libavfilter/formats.c index ba62f73248..5f3e204418 100644 --- a/libavfilter/formats.c +++ b/libavfilter/formats.c @@ -28,8 +28,6 @@ #include "internal.h" #include "formats.h" -#define KNOWN(l) (!FF_LAYOUT2COUNT(l)) /* for readability */ - /** * Add all refs from a to ret and destroy a. */ @@ -215,7 +213,7 @@ static int merge_channel_layouts(void *va, void *vb) { AVFilterChannelLayouts *a = va; AVFilterChannelLayouts *b = vb; - uint64_t *channel_layouts; + AVChannelLayout *channel_layouts; unsigned a_all = a->all_layouts + a->all_counts; unsigned b_all = b->all_layouts + b->all_counts; int ret_max, ret_nb = 0, i, j, round; @@ -233,8 +231,8 @@ static int merge_channel_layouts(void *va, void *vb) if (a_all == 1 && !b_all) { /* keep only known layouts in b; works also for b_all = 1 */ for (i = j = 0; i < b->nb_channel_layouts; i++) - if (KNOWN(b->channel_layouts[i])) - b->channel_layouts[j++] = b->channel_layouts[i]; + if (KNOWN(&b->channel_layouts[i]) && i != j++) + av_channel_layout_copy(&b->channel_layouts[j], &b->channel_layouts[i]); /* Not optimal: the unknown layouts of b may become known after another merge. */ if (!j) @@ -246,17 +244,18 @@ static int merge_channel_layouts(void *va, void *vb) } ret_max = a->nb_channel_layouts + b->nb_channel_layouts; - if (!(channel_layouts = av_malloc_array(ret_max, sizeof(*channel_layouts)))) + if (!(channel_layouts = av_mallocz_array(ret_max, sizeof(*channel_layouts)))) return AVERROR(ENOMEM); /* a[known] intersect b[known] */ for (i = 0; i < a->nb_channel_layouts; i++) { - if (!KNOWN(a->channel_layouts[i])) + if (!KNOWN(&a->channel_layouts[i])) continue; for (j = 0; j < b->nb_channel_layouts; j++) { - if (a->channel_layouts[i] == b->channel_layouts[j]) { - channel_layouts[ret_nb++] = a->channel_layouts[i]; - a->channel_layouts[i] = b->channel_layouts[j] = 0; + if (!av_channel_layout_compare(&a->channel_layouts[i], &b->channel_layouts[j])) { + av_channel_layout_copy(&channel_layouts[ret_nb++], &a->channel_layouts[i]); + av_channel_layout_uninit(&a->channel_layouts[i]); + av_channel_layout_uninit(&b->channel_layouts[j]); break; } } @@ -265,24 +264,24 @@ static int merge_channel_layouts(void *va, void *vb) 2nd round: a[generic] intersect b[known] */ for (round = 0; round < 2; round++) { for (i = 0; i < a->nb_channel_layouts; i++) { - uint64_t fmt = a->channel_layouts[i], bfmt; - if (!fmt || !KNOWN(fmt)) + AVChannelLayout *fmt = &a->channel_layouts[i], bfmt = { 0 }; + if (!av_channel_layout_check(fmt) || !KNOWN(fmt)) continue; - bfmt = FF_COUNT2LAYOUT(av_get_channel_layout_nb_channels(fmt)); + bfmt = FF_COUNT2LAYOUT(fmt->nb_channels); for (j = 0; j < b->nb_channel_layouts; j++) - if (b->channel_layouts[j] == bfmt) - channel_layouts[ret_nb++] = a->channel_layouts[i]; + if (!av_channel_layout_compare(&b->channel_layouts[j], &bfmt)) + av_channel_layout_copy(&channel_layouts[ret_nb++], fmt); } /* 1st round: swap to prepare 2nd round; 2nd round: put it back */ FFSWAP(AVFilterChannelLayouts *, a, b); } /* a[generic] intersect b[generic] */ for (i = 0; i < a->nb_channel_layouts; i++) { - if (KNOWN(a->channel_layouts[i])) + if (KNOWN(&a->channel_layouts[i])) continue; for (j = 0; j < b->nb_channel_layouts; j++) - if (a->channel_layouts[i] == b->channel_layouts[j]) - channel_layouts[ret_nb++] = a->channel_layouts[i]; + if (!av_channel_layout_compare(&a->channel_layouts[i], &b->channel_layouts[j])) + av_channel_layout_copy(&channel_layouts[ret_nb++], &a->channel_layouts[i]); } if (!ret_nb) { @@ -388,15 +387,40 @@ AVFilterFormats *ff_make_format_list(const int *fmts) return formats; } -AVFilterChannelLayouts *ff_make_format64_list(const int64_t *fmts) +AVFilterChannelLayouts *ff_make_format64_list(const AVChannelLayout *fmts) { - MAKE_FORMAT_LIST(AVFilterChannelLayouts, - channel_layouts, nb_channel_layouts); - if (count) - memcpy(formats->channel_layouts, fmts, - sizeof(*formats->channel_layouts) * count); + AVFilterChannelLayouts *ch_layouts; + int count = 0; + if (fmts) + for (count = 0; fmts[count].nb_channels; count++) + ; + ch_layouts = av_mallocz(sizeof(*ch_layouts)); + if (!ch_layouts) + return NULL; + ch_layouts->nb_channel_layouts = count; + if (count) { + ch_layouts->channel_layouts = + av_mallocz_array(count, sizeof(*ch_layouts->channel_layouts)); + if (!ch_layouts->channel_layouts) { + av_freep(&ch_layouts); + return NULL; + } + for (int i = 0; i < count; i++) { + int ret = av_channel_layout_copy(&ch_layouts->channel_layouts[i], &fmts[i]); + if (ret < 0) + goto fail; + } + } - return formats; + return ch_layouts; + +fail: + for (int i = 0; i < count; i++) + av_channel_layout_uninit(&ch_layouts->channel_layouts[i]); + av_free(ch_layouts->channel_layouts); + av_freep(&ch_layouts); + + return NULL; } #define ADD_FORMAT(f, fmt, unref_fn, type, list, nb) \ @@ -415,6 +439,11 @@ do { \ } \ \ (*f)->list = fmts; \ + ASSIGN_FMT(f, fmt, list, nb); \ +} while (0) + +#define ASSIGN_FMT(f, fmt, list, nb) \ +do { \ (*f)->list[(*f)->nb++] = fmt; \ } while (0) @@ -424,10 +453,21 @@ int ff_add_format(AVFilterFormats **avff, int64_t fmt) return 0; } -int ff_add_channel_layout(AVFilterChannelLayouts **l, uint64_t channel_layout) +#undef ASSIGN_FMT +#define ASSIGN_FMT(f, fmt, list, nb) \ +do { \ + int ret; \ + memset((*f)->list + (*f)->nb, 0, sizeof(*(*f)->list)); \ + ret = av_channel_layout_copy(&(*f)->list[(*f)->nb], fmt); \ + if (ret < 0) \ + return ret; \ + (*f)->nb++; \ +} while (0) + +int ff_add_channel_layout(AVFilterChannelLayouts **l, AVChannelLayout *channel_layout) { av_assert1(!(*l && (*l)->all_layouts)); - ADD_FORMAT(l, channel_layout, ff_channel_layouts_unref, uint64_t, channel_layouts, nb_channel_layouts); + ADD_FORMAT(l, channel_layout, ff_channel_layouts_unref, AVChannelLayout, channel_layouts, nb_channel_layouts); return 0; } @@ -583,6 +623,7 @@ do { \ --(*ref)->refcount; \ } \ if (!(*ref)->refcount) { \ + FREE_LIST(ref, list); \ av_free((*ref)->list); \ av_free((*ref)->refs); \ av_free(*ref); \ @@ -590,11 +631,19 @@ do { \ *ref = NULL; \ } while (0) +#define FREE_LIST(ref, list) do { } while(0) void ff_formats_unref(AVFilterFormats **ref) { FORMATS_UNREF(ref, formats); } +#undef FREE_LIST +#define FREE_LIST(ref, list) \ + do { \ + for (int i = 0; i < (*ref)->nb_channel_layouts; i++) \ + av_channel_layout_uninit(&(*ref)->list[i]); \ + } while(0) + void ff_channel_layouts_unref(AVFilterChannelLayouts **ref) { FORMATS_UNREF(ref, channel_layouts); @@ -664,7 +713,7 @@ int ff_set_common_channel_layouts(AVFilterContext *ctx, } int ff_set_common_channel_layouts_from_list(AVFilterContext *ctx, - const int64_t *fmts) + const AVChannelLayout *fmts) { return ff_set_common_channel_layouts(ctx, ff_make_format64_list(fmts)); } @@ -787,23 +836,41 @@ int ff_parse_sample_rate(int *ret, const char *arg, void *log_ctx) return 0; } -int ff_parse_channel_layout(int64_t *ret, int *nret, const char *arg, +int ff_parse_channel_layout(AVChannelLayout *ret, int *nret, const char *arg, void *log_ctx) { - int64_t chlayout; - int nb_channels; - - if (av_get_extended_channel_layout(arg, &chlayout, &nb_channels) < 0) { - av_log(log_ctx, AV_LOG_ERROR, "Invalid channel layout '%s'\n", arg); - return AVERROR(EINVAL); + AVChannelLayout chlayout = { 0 }; + int res; + + res = av_channel_layout_from_string(&chlayout, arg); + if (res < 0) { +#if FF_API_OLD_CHANNEL_LAYOUT + int64_t mask; + int nb_channels; +FF_DISABLE_DEPRECATION_WARNINGS + if (av_get_extended_channel_layout(arg, &mask, &nb_channels) < 0) { +#endif + av_log(log_ctx, AV_LOG_ERROR, "Invalid channel layout '%s'\n", arg); + return AVERROR(EINVAL); +#if FF_API_OLD_CHANNEL_LAYOUT + } +FF_ENABLE_DEPRECATION_WARNINGS + av_log(log_ctx, AV_LOG_WARNING, "Channel layout '%s' uses a deprecated syntax.\n", + arg); + if (mask) + av_channel_layout_from_mask(&chlayout, mask); + else + chlayout = (AVChannelLayout) { .order = AV_CHANNEL_ORDER_UNSPEC, .nb_channels = nb_channels }; +#endif } - if (!chlayout && !nret) { + + if (chlayout.order == AV_CHANNEL_ORDER_UNSPEC && !nret) { av_log(log_ctx, AV_LOG_ERROR, "Unknown channel layout '%s' is not supported.\n", arg); return AVERROR(EINVAL); } *ret = chlayout; if (nret) - *nret = nb_channels; + *nret = chlayout.nb_channels; return 0; } @@ -846,11 +913,11 @@ int ff_formats_check_sample_rates(void *log, const AVFilterFormats *fmts) return check_list(log, "sample rate", fmts); } -static int layouts_compatible(uint64_t a, uint64_t b) +static int layouts_compatible(const AVChannelLayout *a, const AVChannelLayout *b) { - return a == b || - (KNOWN(a) && !KNOWN(b) && av_get_channel_layout_nb_channels(a) == FF_LAYOUT2COUNT(b)) || - (KNOWN(b) && !KNOWN(a) && av_get_channel_layout_nb_channels(b) == FF_LAYOUT2COUNT(a)); + return !av_channel_layout_compare(a, b) || + (KNOWN(a) && !KNOWN(b) && a->nb_channels == b->nb_channels) || + (KNOWN(b) && !KNOWN(a) && b->nb_channels == a->nb_channels); } int ff_formats_check_channel_layouts(void *log, const AVFilterChannelLayouts *fmts) @@ -869,7 +936,7 @@ int ff_formats_check_channel_layouts(void *log, const AVFilterChannelLayouts *fm } for (i = 0; i < fmts->nb_channel_layouts; i++) { for (j = i + 1; j < fmts->nb_channel_layouts; j++) { - if (layouts_compatible(fmts->channel_layouts[i], fmts->channel_layouts[j])) { + if (layouts_compatible(&fmts->channel_layouts[i], &fmts->channel_layouts[j])) { av_log(log, AV_LOG_ERROR, "Duplicated or redundant channel layout\n"); return AVERROR(EINVAL); } diff --git a/libavfilter/formats.h b/libavfilter/formats.h index a884d15213..e55180f45c 100644 --- a/libavfilter/formats.h +++ b/libavfilter/formats.h @@ -83,7 +83,7 @@ struct AVFilterFormats { * (e.g. AV_CH_LAYOUT_STEREO and FF_COUNT2LAYOUT(2). */ struct AVFilterChannelLayouts { - uint64_t *channel_layouts; ///< list of channel layouts + AVChannelLayout *channel_layouts; ///< list of channel layouts int nb_channel_layouts; ///< number of channel layouts char all_layouts; ///< accept any known channel layout char all_counts; ///< accept any channel layout or count @@ -99,14 +99,16 @@ struct AVFilterChannelLayouts { * The result is only valid inside AVFilterChannelLayouts and immediately * related functions. */ -#define FF_COUNT2LAYOUT(c) (0x8000000000000000ULL | (c)) +#define FF_COUNT2LAYOUT(c) ((AVChannelLayout) { .order = AV_CHANNEL_ORDER_UNSPEC, .nb_channels = c }) /** * Decode a channel count encoded as a channel layout. * Return 0 if the channel layout was a real one. */ -#define FF_LAYOUT2COUNT(l) (((l) & 0x8000000000000000ULL) ? \ - (int)((l) & 0x7FFFFFFF) : 0) +#define FF_LAYOUT2COUNT(l) (((l)->order == AV_CHANNEL_ORDER_UNSPEC) ? \ + (l)->nb_channels : 0) + +#define KNOWN(l) (!FF_LAYOUT2COUNT(l)) /* for readability */ /** * Construct an empty AVFilterChannelLayouts/AVFilterFormats struct -- @@ -126,7 +128,7 @@ av_warn_unused_result AVFilterChannelLayouts *ff_all_channel_counts(void); av_warn_unused_result -AVFilterChannelLayouts *ff_make_format64_list(const int64_t *fmts); +AVFilterChannelLayouts *ff_make_format64_list(const AVChannelLayout *fmts); /** * Helpers for query_formats() which set all free audio links to the same list @@ -141,7 +143,7 @@ int ff_set_common_channel_layouts(AVFilterContext *ctx, */ av_warn_unused_result int ff_set_common_channel_layouts_from_list(AVFilterContext *ctx, - const int64_t *fmts); + const AVChannelLayout *fmts); /** * Equivalent to ff_set_common_channel_layouts(ctx, ff_all_channel_counts()) */ @@ -178,7 +180,7 @@ av_warn_unused_result int ff_set_common_formats_from_list(AVFilterContext *ctx, const int *fmts); av_warn_unused_result -int ff_add_channel_layout(AVFilterChannelLayouts **l, uint64_t channel_layout); +int ff_add_channel_layout(AVFilterChannelLayouts **l, AVChannelLayout *channel_layout); /** * Add *ref as a new reference to f. diff --git a/libavfilter/framepool.c b/libavfilter/framepool.c index 7c63807df3..0ef41b9404 100644 --- a/libavfilter/framepool.c +++ b/libavfilter/framepool.c @@ -238,7 +238,12 @@ AVFrame *ff_frame_pool_get(FFFramePool *pool) break; case AVMEDIA_TYPE_AUDIO: frame->nb_samples = pool->nb_samples; +#if FF_API_OLD_CHANNEL_LAYOUT +FF_DISABLE_DEPRECATION_WARNINGS frame->channels = pool->channels; +FF_ENABLE_DEPRECATION_WARNINGS +#endif + frame->ch_layout.nb_channels = pool->channels; frame->format = pool->format; frame->linesize[0] = pool->linesize[0]; diff --git a/libavfilter/framequeue.c b/libavfilter/framequeue.c index fed1118975..383c195b85 100644 --- a/libavfilter/framequeue.c +++ b/libavfilter/framequeue.c @@ -134,10 +134,10 @@ void ff_framequeue_skip_samples(FFFrameQueue *fq, size_t samples, AVRational tim b = bucket(fq, 0); av_assert1(samples < b->frame->nb_samples); planar = av_sample_fmt_is_planar(b->frame->format); - planes = planar ? b->frame->channels : 1; + planes = planar ? b->frame->ch_layout.nb_channels : 1; bytes = samples * av_get_bytes_per_sample(b->frame->format); if (!planar) - bytes *= b->frame->channels; + bytes *= b->frame->ch_layout.nb_channels; if (b->frame->pts != AV_NOPTS_VALUE) b->frame->pts += av_rescale_q(samples, av_make_q(1, b->frame->sample_rate), time_base); b->frame->nb_samples -= samples; diff --git a/libavfilter/graphdump.c b/libavfilter/graphdump.c index cf8914b558..80f7bf6c98 100644 --- a/libavfilter/graphdump.c +++ b/libavfilter/graphdump.c @@ -30,6 +30,7 @@ static int print_link_prop(AVBPrint *buf, AVFilterLink *link) { const char *format; + char layout[128]; AVBPrint dummy_buffer; if (!buf) { @@ -49,7 +50,8 @@ static int print_link_prop(AVBPrint *buf, AVFilterLink *link) format = av_x_if_null(av_get_sample_fmt_name(link->format), "?"); av_bprintf(buf, "[%dHz %s:", (int)link->sample_rate, format); - av_bprint_channel_layout(buf, link->channels, link->channel_layout); + av_channel_layout_describe(&link->ch_layout, layout, sizeof(layout)); + av_bprintf(buf, "%s", layout); av_bprint_chars(buf, ']', 1); break; diff --git a/libavfilter/internal.h b/libavfilter/internal.h index 1099b82b4b..3eecaca3fb 100644 --- a/libavfilter/internal.h +++ b/libavfilter/internal.h @@ -237,7 +237,7 @@ int ff_parse_sample_rate(int *ret, const char *arg, void *log_ctx); * @return >= 0 in case of success, a negative AVERROR code on error */ av_warn_unused_result -int ff_parse_channel_layout(int64_t *ret, int *nret, const char *arg, +int ff_parse_channel_layout(AVChannelLayout *ret, int *nret, const char *arg, void *log_ctx); void ff_update_link_current_pts(AVFilterLink *link, int64_t pts); diff --git a/libavfilter/src_movie.c b/libavfilter/src_movie.c index b89a680883..3ebd279df7 100644 --- a/libavfilter/src_movie.c +++ b/libavfilter/src_movie.c @@ -189,23 +189,24 @@ static int guess_channel_layout(MovieStream *st, int st_index, void *log_ctx) { AVCodecParameters *dec_par = st->st->codecpar; char buf[256]; - int64_t chl = av_get_default_channel_layout(dec_par->channels); + AVChannelLayout chl = { 0 }; - if (!chl) { + av_channel_layout_default(&chl, dec_par->ch_layout.nb_channels); + + if (!KNOWN(&chl)) { av_log(log_ctx, AV_LOG_ERROR, "Channel layout is not set in stream %d, and could not " "be guessed from the number of channels (%d)\n", - st_index, dec_par->channels); + st_index, dec_par->ch_layout.nb_channels); return AVERROR(EINVAL); } - av_get_channel_layout_string(buf, sizeof(buf), dec_par->channels, chl); + av_channel_layout_describe(&chl, buf, sizeof(buf)); av_log(log_ctx, AV_LOG_WARNING, "Channel layout is not set in output stream %d, " "guessed channel layout is '%s'\n", st_index, buf); - dec_par->channel_layout = chl; - return 0; + return av_channel_layout_copy(&dec_par->ch_layout, &chl); } static av_cold int movie_common_init(AVFilterContext *ctx) @@ -315,7 +316,7 @@ static av_cold int movie_common_init(AVFilterContext *ctx) if ((ret = ff_append_outpad_free_name(ctx, &pad)) < 0) return ret; if ( movie->st[i].st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO && - !movie->st[i].st->codecpar->channel_layout) { + !KNOWN(&movie->st[i].st->codecpar->ch_layout)) { ret = guess_channel_layout(&movie->st[i], i, ctx); if (ret < 0) return ret; @@ -351,7 +352,7 @@ static int movie_query_formats(AVFilterContext *ctx) { MovieContext *movie = ctx->priv; int list[] = { 0, -1 }; - int64_t list64[] = { 0, -1 }; + AVChannelLayout list64[] = { { 0 }, { 0 } }; int i, ret; for (i = 0; i < ctx->nb_outputs; i++) { @@ -372,7 +373,7 @@ static int movie_query_formats(AVFilterContext *ctx) list[0] = c->sample_rate; if ((ret = ff_formats_ref(ff_make_format_list(list), &outlink->incfg.samplerates)) < 0) return ret; - list64[0] = c->channel_layout; + list64[0] = c->ch_layout; if ((ret = ff_channel_layouts_ref(ff_make_format64_list(list64), &outlink->incfg.channel_layouts)) < 0) return ret; diff --git a/libavfilter/tests/filtfmts.c b/libavfilter/tests/filtfmts.c index d793480344..909c1e8dc9 100644 --- a/libavfilter/tests/filtfmts.c +++ b/libavfilter/tests/filtfmts.c @@ -59,8 +59,7 @@ static void print_formats_internal(AVFilterLink **links, const AVFilterPad *pads for (unsigned j = 0; layouts && j < layouts->nb_channel_layouts; j++) { char buf[256]; - av_get_channel_layout_string(buf, sizeof(buf), -1, - layouts->channel_layouts[j]); + av_channel_layout_describe(&layouts->channel_layouts[j], buf, sizeof(buf)); printf("%s[%u] %s: chlayout:%s\n", inout_string, i, pad_name, buf); } diff --git a/libavfilter/tests/formats.c b/libavfilter/tests/formats.c index c1e30e73ee..a02f2b49b5 100644 --- a/libavfilter/tests/formats.c +++ b/libavfilter/tests/formats.c @@ -129,12 +129,12 @@ int main(void) } for ( i = 0; iextended_data, frame->extended_data, 0, start_sample, - out->nb_samples, inlink->channels, + out->nb_samples, inlink->ch_layout.nb_channels, frame->format); if (out->pts != AV_NOPTS_VALUE) out->pts += av_rescale_q(start_sample, (AVRational){ 1, out->sample_rate }, diff --git a/libavfilter/vaf_spectrumsynth.c b/libavfilter/vaf_spectrumsynth.c index 674e9953b2..e0baf855a8 100644 --- a/libavfilter/vaf_spectrumsynth.c +++ b/libavfilter/vaf_spectrumsynth.c @@ -112,7 +112,7 @@ static int query_formats(AVFilterContext *ctx) formats = ff_make_format_list(sample_fmts); if ((ret = ff_formats_ref (formats, &outlink->incfg.formats )) < 0 || - (ret = ff_add_channel_layout (&layout, FF_COUNT2LAYOUT(s->channels))) < 0 || + (ret = ff_add_channel_layout (&layout, &FF_COUNT2LAYOUT(s->channels))) < 0 || (ret = ff_channel_layouts_ref (layout , &outlink->incfg.channel_layouts)) < 0) return ret; diff --git a/tests/ref/fate/filter-formats b/tests/ref/fate/filter-formats index 17ff5b222f..c179b38ff0 100644 --- a/tests/ref/fate/filter-formats +++ b/tests/ref/fate/filter-formats @@ -66,20 +66,20 @@ quad(side) 7 channels (FL+FR+BC+SL+SR+DL+DR) 8 channels (FL+FR+LFE+BC+SL+SR+DL+DR) 8 channels (FL+FR+FC+BC+SL+SR+DL+DR) --1 = ff_parse_channel_layout(FFFFFFFFFFFFFFFF, -1, blah); -0 = ff_parse_channel_layout(0000000000000001, 1, 1); -0 = ff_parse_channel_layout(0000000000000002, 1, 2); --1 = ff_parse_channel_layout(FFFFFFFFFFFFFFFF, -1, -1); -0 = ff_parse_channel_layout(000000000000003C, 4, 60); -0 = ff_parse_channel_layout(0000000000000041, 2, 65); +-1 = ff_parse_channel_layout(0000000000000000, -1, blah); +0 = ff_parse_channel_layout(0000000000000000, 1, 1); +0 = ff_parse_channel_layout(0000000000000000, 2, 2); +-1 = ff_parse_channel_layout(0000000000000000, -1, -1); +0 = ff_parse_channel_layout(0000000000000000, 60, 60); +0 = ff_parse_channel_layout(0000000000000000, 65, 65); 0 = ff_parse_channel_layout(0000000000000004, 1, 1c); 0 = ff_parse_channel_layout(0000000000000003, 2, 2c); --1 = ff_parse_channel_layout(FFFFFFFFFFFFFFFF, -1, -1c); --1 = ff_parse_channel_layout(FFFFFFFFFFFFFFFF, -1, 60c); --1 = ff_parse_channel_layout(FFFFFFFFFFFFFFFF, -1, 65c); +-1 = ff_parse_channel_layout(0000000000000000, -1, -1c); +0 = ff_parse_channel_layout(0000000000000000, 60, 60c); +0 = ff_parse_channel_layout(0000000000000000, 65, 65c); 0 = ff_parse_channel_layout(0000000000000000, 2, 2C); 0 = ff_parse_channel_layout(0000000000000000, 60, 60C); --1 = ff_parse_channel_layout(FFFFFFFFFFFFFFFF, -1, 65C); +0 = ff_parse_channel_layout(0000000000000000, 65, 65C); 0 = ff_parse_channel_layout(000000000000003F, 6, 5.1); 0 = ff_parse_channel_layout(0000000000000003, 2, stereo); 0 = ff_parse_channel_layout(0000000000000001, 1, 1+1+1+1); From patchwork Thu Jan 13 02:09:08 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33535 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp47048iog; Wed, 12 Jan 2022 18:52:41 -0800 (PST) X-Google-Smtp-Source: ABdhPJxDo66JJ1OykBi6EdIxDiqZOmexgXUI1bkCskix+sGrjzJ3KshLDUnB5Y/0EOOwhn0pBoH3 X-Received: by 2002:a17:906:ae87:: with SMTP id md7mr2139409ejb.32.1642042360972; Wed, 12 Jan 2022 18:52:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642042360; cv=none; d=google.com; s=arc-20160816; b=HW6/fOGzL8Zif998evrT2Eo4F6mzLDKQDrzjVUnbDziPv+rTpqqTpQuagiB7YBXKVw FsrPhl2ovhtWUSBLN1L3RhPxEL9VL/Ny+HAKtZ39f5hRvAPzDLHrpZ2LjiXuck8b5U0s AcdrLCHZNZZHAB6eBJZnlxa9jtak1cSDON7In/JvtkNB181fuytLpr/D7Si7EJiWE6tc sIABAiHhDeIV49HZjHgLlJ7saLoU1PVzVDg4w58AZkVMB6tZV6+nj2C9nBQLSdJfKFnL z6bsEoYBq3UyG1A2tuUiJNGMaoaUOgA9qNghvfPTm8j7rAfPG5uEA4CZy/PdtSUGjHPD 5XFQ== 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=gTOA7pWlV531863aeXITJo47wR+NOCAO9IEtRy5QgwM=; b=VGi8FtIXnNHRqRmP8+d3Q6IlG1Y9tqJke5vkygnWcAR7eDVoswlJotcqHtPhQW/8SI 3bs++KCLt18GMX1tp6In9+CjEy95QbRpan4JMm88Zm0SCfE77fU2QC5P1Gv3qKT0ZOjL NILgzin4+uQZFTRyCFBBH0L8QNaSO/CplyU4+DX3FwMhFlh1nyhWfIVmLcrIT0wVgUM2 N1KU49XOFmDVp5MwhXVq6DgwvXuPc2CUOIMuuHn3CSOhSgjKTkv/BAAaa4z5wZ1NwxOD YgIsHO0i2dnhQjphDN8KTe3iFEHkVmS8N3818K6QQBPaa4sHeF41LAN5ZPowBH359ZpA Eytg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=SF4vF2vB; 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 oz24si707743ejb.754.2022.01.12.18.52.40; Wed, 12 Jan 2022 18:52:40 -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=SF4vF2vB; 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 A6B3768BAA0; Thu, 13 Jan 2022 04:09:41 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f41.google.com (mail-qv1-f41.google.com [209.85.219.41]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 271BA68BA7F for ; Thu, 13 Jan 2022 04:09:37 +0200 (EET) Received: by mail-qv1-f41.google.com with SMTP id a8so5182736qvx.2 for ; Wed, 12 Jan 2022 18:09:37 -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=LT+91aUPgidrpfbFh6TBtDGlGsW9aLVDV7w6NISVrpI=; b=SF4vF2vBslIkoKCywy7aMzhsPSkLybVFcUEsRwwx1+C5kIY/oXHTgcdoeBxY2A4r/y U9ojovFEFYU4DW5Cd20o7h+iy/o7LeFtFl0UjjtRMzofZUsJ2YtjQ76mrUZ6z8KWGahq IXBv0zT1a1iMtlYaHDlYVT/IMhhnSFU99g4YFrNP22e/lWvfQYrrV5lSFf1DjxuBNM9W Ixl/41ZHMybaRpAzoGei21aJBiV0qP8atWY2COC/d2xjE7jP4N7Y4MUNfKV3vHcyZurz 0cDOaOtJR079WnFvXvsmkytisskgD6S3E0ZY/D7wJUxfgjjR9atzXpwO3xi8yxPPMzuw XrPA== 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=LT+91aUPgidrpfbFh6TBtDGlGsW9aLVDV7w6NISVrpI=; b=eJgpMc+0jjnI2u/50S6wQFO7D6R83QiDTbq5FSCOKRkOcb2jidLCR40xAdYB3xwi4a eoHB/NqIxfUamgwSh7f+HAe9hvE8Jc6a5HOKXAuq/WaDnMhIovQOeRSSLYUXvCW9w37a bHw03ASMDLfEG5LzU/pyWvcOM2EThdMg4SwO30PRhm9NWYvUk3uymYcWIllrH40nNZlo +npOHcFKYGLXIeXKuBcqA5M2LrZKJPWPeWj/lkMMcAoRGcnEV2ZRlXzHKWZYtI9+iHu1 OCi3uCR79qqq5x9InXmOwjlpwgvQwLc+a98jBbeDqjuJwpK07UQBXiFiyw89/1ClsIpH 791g== X-Gm-Message-State: AOAM531Q21cxHTXVH9EVZhq7dy7mn8+VovPGSditpi4bV2UkW3pEXtji aFiaoQiZ+YjrnlgtAJ8mf1nhlIbBzhQ= X-Received: by 2002:ad4:5baf:: with SMTP id 15mr2281912qvq.21.1642039776446; Wed, 12 Jan 2022 18:09:36 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u6sm1068031qko.83.2022.01.12.18.09.35 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:09:36 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:09:08 -0300 Message-Id: <20220113020913.870-7-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 276/281] avdevice/lavfi: remove call to deprecated function av_buffersink_get_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: 6cb64kOoDFLW Signed-off-by: James Almer --- libavdevice/lavfi.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/libavdevice/lavfi.c b/libavdevice/lavfi.c index fdb93b835f..db5d0b94de 100644 --- a/libavdevice/lavfi.c +++ b/libavdevice/lavfi.c @@ -333,11 +333,9 @@ av_cold static int lavfi_read_header(AVFormatContext *avctx) par->sample_aspect_ratio = av_buffersink_get_sample_aspect_ratio(sink); } else if (par->codec_type == AVMEDIA_TYPE_AUDIO) { par->sample_rate = av_buffersink_get_sample_rate(sink); - ret = av_channel_layout_from_mask(&par->ch_layout, av_buffersink_get_channel_layout(sink)); - if (ret < 0) { - par->ch_layout.nb_channels = av_buffersink_get_channels(sink); - par->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; - } + ret = av_buffersink_get_ch_layout(sink, &par->ch_layout); + if (ret < 0) + goto end; par->format = av_buffersink_get_format(sink); par->codec_id = av_get_pcm_codec(par->format, -1); if (par->codec_id == AV_CODEC_ID_NONE) @@ -441,7 +439,7 @@ static int lavfi_read_packet(AVFormatContext *avctx, AVPacket *pkt) frame->format, frame->width, frame->height, 1); } else if (st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) { size = frame->nb_samples * av_get_bytes_per_sample(frame->format) * - frame->channels; + frame->ch_layout.nb_channels; if ((ret = av_new_packet(pkt, size)) < 0) goto fail; memcpy(pkt->data, frame->data[0], size); From patchwork Thu Jan 13 02:09:09 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33537 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp47294iog; Wed, 12 Jan 2022 18:53:14 -0800 (PST) X-Google-Smtp-Source: ABdhPJxTRq7K1EO9Ylgt86H79kqJBVL5eXu+je2bprv7xZZfD+L7xOklIvajLBBmAZBk6VgXvMSe X-Received: by 2002:a05:6402:2552:: with SMTP id l18mr2353595edb.124.1642042394218; Wed, 12 Jan 2022 18:53:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642042394; cv=none; d=google.com; s=arc-20160816; b=MIPFD/2cwK2r0FBsHzksm9a38ZcC70QKL4RwenND792UjFgXX12j/pql0RRNoVV5t4 TVSaCXlRiK+gP1YzekKCczQDRZIyOf9MNOgFoU2ifLhJxZ/iUtpNv6rqKgH7o9zcOYqy 62DQ+1K46YyJaZ1RNCS2q8HsDA3SEnt/mFljFx4yieJJybGybenuUEdq7bO6u20lmCWU Jm2SG0FLOynTMa9g5Ja5fdWoito7w8n8FClNhmxC1FXvnABL1ZRzFKeUE77ow4L7pJ9f nonzbl9u4xn+71RNnCJ7dBANlkEpp2Q3pCvHx3WXe4/iOVyL5HCiJzMd0ySpgHeiMkmr QlNA== 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=kPaFb2J9AeMDeYfOniCqvCKllLEfb99oBXyMCY5gJQQ=; b=VoYD/rVgIeyMR5Mw2CNkpLGDGC6UT/o0ZPZCbagxPP0VCzeqQZvfemRikJ0m82utUh bnWueOvBB9SFTRJ8lPKM7PjS70wRjK4h8gu5Cf9ZBNcVgF9uia4js1rLyFxUrgVBBRfq s6y4pqQ+UQ9JvRDQWl9ZCjC8YeJCwFnYyTNGI7uJAv3492UBrfI8zkisYpiLrNtUjQDi uB7OjmNbeEE5wUJkTsR7JRhpx7esnrapDQmFzK5n4elDxTrCgAwTGEU8dE6yIclLJfwN R6jN7CNQWWAPpj70m1Ie9VOld58LzXK2iHg13X6gSwinlIfRg84DKZKAH7K7lqhPUABx L/FA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=htTRd66B; 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 w11si998815edd.387.2022.01.12.18.53.13; Wed, 12 Jan 2022 18:53:14 -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=htTRd66B; 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 7C93268BAB1; Thu, 13 Jan 2022 04:09:43 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f51.google.com (mail-qv1-f51.google.com [209.85.219.51]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 74D4668BA88 for ; Thu, 13 Jan 2022 04:09:39 +0200 (EET) Received: by mail-qv1-f51.google.com with SMTP id iw1so5183488qvb.1 for ; Wed, 12 Jan 2022 18:09:39 -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=Q3QgIM1lxU2xQ9U6po77XNDjH0RlDmpeirh+RD+874k=; b=htTRd66BDfJaOGVacZUwoTWf6g6WxaphgsF3KCTiUzlZaI4uAh37eYdcSuDR1oWz0y NKE8o83/V2HLh61mdKvnNTFq1uBwB96S4yvXlYKkPT/YhnDKm4s7JroMeLRMFrGQY4Gi M2ctpzUXPCihH2DPiDN+qqkp3rFuvMlC967AS/5U97TQJnTrER20tJbMgZa2ZQecRiit I9gaN+Kv5b9i5gtvh9qgrQJInPfVSevZC7i1crw8Qo/pHyqBpS7hTVam57j+5GgNkmo9 L0Xp/fIpkzIcaODWXgFN/qVw/7NABCubPx0Tnm6TujVe1vfKL0I+7rojekiuFErrdSS4 qYVA== 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=Q3QgIM1lxU2xQ9U6po77XNDjH0RlDmpeirh+RD+874k=; b=mHWOi+VH9SIUhhijU7woaaBAbVYgQa+gHT8eBW57MCPjATcnTaTF9wKj8WpDS6QKhb Ze9wtIGgdrzJIfEOd8Ll4VRvt+x/90EicWYrZgMS3A3qLmTFs+Iu4CVVEEpsuyDfGZ2F JegxkqNheSgIL1DMy+wG4YmZluVbbqzjWZdPhruRnpBIz8Hiravl1194sJHcD2ZlZxaV B5XhfL2/cRIOege+owBdBNIhCDFPVKYOISVW2qtcvuWTXnUkQCwJWe48D4Z9dHth6VB0 9cwJga0ORiLUquKg1AjGkeXe2UOZPQJ8xOVN04mC/4A703IsP9365lOWcFGPGWyFBQpI EHvw== X-Gm-Message-State: AOAM533W0iY3gRA66Jzghcs2Xd+hiaBKakv4ScHl1fuxBWfYP/cgqvQv 20meKeaXMQQHbVZNy11LX8krNGVjQlA= X-Received: by 2002:ad4:4ee6:: with SMTP id dv6mr2066970qvb.77.1642039777767; Wed, 12 Jan 2022 18:09:37 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u6sm1068031qko.83.2022.01.12.18.09.36 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:09:37 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:09:09 -0300 Message-Id: <20220113020913.870-8-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 277/281] ffmpeg: 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: VW+SxPzhWWRD Signed-off-by: James Almer --- fftools/cmdutils.c | 42 +++++++++++++++--------- fftools/cmdutils.h | 8 ----- fftools/ffmpeg.c | 47 ++++++++++++++++---------- fftools/ffmpeg.h | 7 ++-- fftools/ffmpeg_filter.c | 52 ++++++++++++++++++++++------- fftools/ffmpeg_opt.c | 62 ++++++++++++++++++++++++++++++----- tests/fate/aac.mak | 2 +- tests/fate/lavf-container.mak | 2 +- 8 files changed, 155 insertions(+), 67 deletions(-) diff --git a/fftools/cmdutils.c b/fftools/cmdutils.c index 4b50e15eef..55cdbfb7a7 100644 --- a/fftools/cmdutils.c +++ b/fftools/cmdutils.c @@ -1470,8 +1470,19 @@ static void print_codec(const AVCodec *c) GET_SAMPLE_RATE_NAME); PRINT_CODEC_SUPPORTED(c, sample_fmts, enum AVSampleFormat, "sample formats", AV_SAMPLE_FMT_NONE, GET_SAMPLE_FMT_NAME); - PRINT_CODEC_SUPPORTED(c, channel_layouts, uint64_t, "channel layouts", - 0, GET_CH_LAYOUT_DESC); + + if (c->ch_layouts) { + const AVChannelLayout *p = c->ch_layouts; + + printf(" Supported channel layouts:"); + while (p->nb_channels) { + char name[128]; + av_channel_layout_describe(p, name, sizeof(name)); + printf(" %s", name); + p++; + } + printf("\n"); + } if (c->priv_class) { show_help_children(c->priv_class, @@ -1784,29 +1795,30 @@ int show_pix_fmts(void *optctx, const char *opt, const char *arg) int show_layouts(void *optctx, const char *opt, const char *arg) { + const AVChannelLayout *ch_layout; + void *iter = NULL; + char buf[128], buf2[128]; int i = 0; - uint64_t layout, j; - const char *name, *descr; printf("Individual channels:\n" "NAME DESCRIPTION\n"); for (i = 0; i < 63; i++) { - name = av_get_channel_name((uint64_t)1 << i); - if (!name) + av_channel_name(buf, sizeof(buf), i); + if (!strcmp(buf, "?")) continue; - descr = av_get_channel_description((uint64_t)1 << i); - printf("%-14s %s\n", name, descr); + av_channel_description(buf2, sizeof(buf2), i); + printf("%-14s %s\n", buf, buf2); } printf("\nStandard channel layouts:\n" "NAME DECOMPOSITION\n"); - for (i = 0; !av_get_standard_channel_layout(i, &layout, &name); i++) { - if (name) { - printf("%-14s ", name); - for (j = 1; j; j <<= 1) - if ((layout & j)) - printf("%s%s", (layout & (j - 1)) ? "+" : "", av_get_channel_name(j)); + while (ch_layout = av_channel_layout_standard(&iter)) { + av_channel_layout_describe(ch_layout, buf, sizeof(buf)); + av_channel_name(buf2, sizeof(buf2), i); + printf("%-14s ", buf); + for (i = 0; i < 63; i++) + if (av_channel_layout_index_from_channel(ch_layout, i) >= 0) + printf("%s%s", i ? "+" : "", buf2); printf("\n"); - } } return 0; } diff --git a/fftools/cmdutils.h b/fftools/cmdutils.h index 50eed9b13a..274d2e5b14 100644 --- a/fftools/cmdutils.h +++ b/fftools/cmdutils.h @@ -663,14 +663,6 @@ void *allocate_array_elem(void *array, size_t elem_size, int *nb_elems); char name[16];\ snprintf(name, sizeof(name), "%d", rate); -#define GET_CH_LAYOUT_NAME(ch_layout)\ - char name[16];\ - snprintf(name, sizeof(name), "0x%"PRIx64, ch_layout); - -#define GET_CH_LAYOUT_DESC(ch_layout)\ - char name[128];\ - av_get_channel_layout_string(name, sizeof(name), 0, ch_layout); - double get_rotation(int32_t *displaymatrix); #endif /* FFTOOLS_CMDUTILS_H */ diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c index 5d134b025f..22d6309f2a 100644 --- a/fftools/ffmpeg.c +++ b/fftools/ffmpeg.c @@ -555,6 +555,7 @@ static void ffmpeg_cleanup(int ret) avfilter_inout_free(&ofilter->out_tmp); av_freep(&ofilter->name); + av_channel_layout_uninit(&ofilter->ch_layout); av_freep(&fg->outputs[j]); } av_freep(&fg->outputs); @@ -1537,7 +1538,7 @@ static int reap_filters(int flush) break; case AVMEDIA_TYPE_AUDIO: if (!(enc->codec->capabilities & AV_CODEC_CAP_PARAM_CHANGE) && - enc->channels != filtered_frame->channels) { + enc->ch_layout.nb_channels != filtered_frame->ch_layout.nb_channels) { av_log(NULL, AV_LOG_ERROR, "Audio filter graph output is not normalized and encoder does not support parameter changes\n"); break; @@ -1883,17 +1884,22 @@ static void print_report(int is_last_report, int64_t timer_start, int64_t cur_ti print_final_stats(total_size); } -static void ifilter_parameters_from_codecpar(InputFilter *ifilter, AVCodecParameters *par) +static int ifilter_parameters_from_codecpar(InputFilter *ifilter, AVCodecParameters *par) { + int ret; + // We never got any input. Set a fake format, which will // come from libavformat. ifilter->format = par->format; ifilter->sample_rate = par->sample_rate; - ifilter->channels = par->channels; - ifilter->channel_layout = par->channel_layout; ifilter->width = par->width; ifilter->height = par->height; ifilter->sample_aspect_ratio = par->sample_aspect_ratio; + ret = av_channel_layout_copy(&ifilter->ch_layout, &par->ch_layout); + if (ret < 0) + return ret; + + return 0; } static void flush_encoders(void) @@ -1921,8 +1927,11 @@ static void flush_encoders(void) int x; for (x = 0; x < fg->nb_inputs; x++) { InputFilter *ifilter = fg->inputs[x]; - if (ifilter->format < 0) - ifilter_parameters_from_codecpar(ifilter, ifilter->ist->st->codecpar); + if (ifilter->format < 0 && + ifilter_parameters_from_codecpar(ifilter, ifilter->ist->st->codecpar) < 0) { + av_log(NULL, AV_LOG_ERROR, "Error copying paramerets from input stream\n"); + exit_program(1); + } } if (!ifilter_has_all_input_formats(fg)) @@ -2098,16 +2107,15 @@ int guess_input_channel_layout(InputStream *ist) { AVCodecContext *dec = ist->dec_ctx; - if (!dec->channel_layout) { + if (dec->ch_layout.order == AV_CHANNEL_ORDER_UNSPEC) { char layout_name[256]; - if (dec->channels > ist->guess_layout_max) + if (dec->ch_layout.nb_channels > ist->guess_layout_max) return 0; - dec->channel_layout = av_get_default_channel_layout(dec->channels); - if (!dec->channel_layout) + av_channel_layout_default(&dec->ch_layout, dec->ch_layout.nb_channels); + if (dec->ch_layout.order == AV_CHANNEL_ORDER_UNSPEC) return 0; - av_get_channel_layout_string(layout_name, sizeof(layout_name), - dec->channels, dec->channel_layout); + av_channel_layout_describe(&dec->ch_layout, layout_name, sizeof(layout_name)); av_log(NULL, AV_LOG_WARNING, "Guessed Channel Layout for Input Stream " "#%d.%d : %s\n", ist->file_index, ist->st->index, layout_name); } @@ -2160,8 +2168,7 @@ static int ifilter_send_frame(InputFilter *ifilter, AVFrame *frame, int keep_ref switch (ifilter->ist->st->codecpar->codec_type) { case AVMEDIA_TYPE_AUDIO: need_reinit |= ifilter->sample_rate != frame->sample_rate || - ifilter->channels != frame->channels || - ifilter->channel_layout != frame->channel_layout; + av_channel_layout_compare(&ifilter->ch_layout, &frame->ch_layout); break; case AVMEDIA_TYPE_VIDEO: need_reinit |= ifilter->width != frame->width || @@ -2241,8 +2248,11 @@ static int ifilter_send_eof(InputFilter *ifilter, int64_t pts) return ret; } else { // the filtergraph was never configured - if (ifilter->format < 0) - ifilter_parameters_from_codecpar(ifilter, ifilter->ist->st->codecpar); + if (ifilter->format < 0) { + ret = ifilter_parameters_from_codecpar(ifilter, ifilter->ist->st->codecpar); + if (ret < 0) + return ret; + } if (ifilter->format < 0 && (ifilter->type == AVMEDIA_TYPE_AUDIO || ifilter->type == AVMEDIA_TYPE_VIDEO)) { av_log(NULL, AV_LOG_ERROR, "Cannot determine format of input stream %d:%d after EOF\n", ifilter->ist->file_index, ifilter->ist->st->index); return AVERROR_INVALIDDATA; @@ -3316,8 +3326,9 @@ static int init_output_stream_encode(OutputStream *ost, AVFrame *frame) case AVMEDIA_TYPE_AUDIO: enc_ctx->sample_fmt = av_buffersink_get_format(ost->filter->filter); enc_ctx->sample_rate = av_buffersink_get_sample_rate(ost->filter->filter); - enc_ctx->channel_layout = av_buffersink_get_channel_layout(ost->filter->filter); - enc_ctx->channels = av_buffersink_get_channels(ost->filter->filter); + ret = av_buffersink_get_ch_layout(ost->filter->filter, &enc_ctx->ch_layout); + if (ret < 0) + return ret; if (ost->bits_per_raw_sample) enc_ctx->bits_per_raw_sample = ost->bits_per_raw_sample; diff --git a/fftools/ffmpeg.h b/fftools/ffmpeg.h index 9b200b806a..75f6f9ef72 100644 --- a/fftools/ffmpeg.h +++ b/fftools/ffmpeg.h @@ -250,8 +250,7 @@ typedef struct InputFilter { AVRational sample_aspect_ratio; int sample_rate; - int channels; - uint64_t channel_layout; + AVChannelLayout ch_layout; AVBufferRef *hw_frames_ctx; int32_t *displaymatrix; @@ -274,12 +273,12 @@ typedef struct OutputFilter { AVRational frame_rate; int format; int sample_rate; - uint64_t channel_layout; + AVChannelLayout ch_layout; // those are only set if no format is specified and the encoder gives us multiple options // They point directly to the relevant lists of the encoder. const int *formats; - const uint64_t *channel_layouts; + const AVChannelLayout *ch_layouts; const int *sample_rates; } OutputFilter; diff --git a/fftools/ffmpeg_filter.c b/fftools/ffmpeg_filter.c index 1f6cba2c04..b096196135 100644 --- a/fftools/ffmpeg_filter.c +++ b/fftools/ffmpeg_filter.c @@ -153,8 +153,29 @@ DEF_CHOOSE_FORMAT(sample_fmts, enum AVSampleFormat, format, formats, DEF_CHOOSE_FORMAT(sample_rates, int, sample_rate, sample_rates, 0, "%d", ) -DEF_CHOOSE_FORMAT(channel_layouts, uint64_t, channel_layout, channel_layouts, 0, - "0x%"PRIx64, ) +static void choose_channel_layouts(OutputFilter *ofilter, AVBPrint *bprint) +{ + AVBPrint bp; + + av_bprint_init(&bp, 0, AV_BPRINT_SIZE_UNLIMITED); + if (av_channel_layout_check(&ofilter->ch_layout)) { + av_channel_layout_describe_bprint(&ofilter->ch_layout, &bp); + av_bprintf(bprint, "channel_layouts=%s", bp.str); + } else if (ofilter->ch_layouts) { + const AVChannelLayout *p; + + av_bprintf(bprint, "channel_layouts="); + for (p = ofilter->ch_layouts; p->nb_channels; p++) { + av_channel_layout_describe_bprint(p, &bp); + av_bprintf(bprint, "%s|", bp.str); + } + if (bprint->len > 0) + bprint->str[--bprint->len] = '\0'; + } else + return; + av_bprint_finalize(&bp, NULL); + av_bprint_chars(bprint, ':', 1); +} int init_simple_filtergraph(InputStream *ist, OutputStream *ost) { @@ -541,9 +562,11 @@ static int configure_output_audio_filter(FilterGraph *fg, OutputFilter *ofilter, } while (0) av_bprint_init(&args, 0, AV_BPRINT_SIZE_UNLIMITED); if (ost->audio_channels_mapped) { + AVChannelLayout mapped_layout = { 0 }; int i; - av_bprintf(&args, "0x%"PRIx64, - av_get_default_channel_layout(ost->audio_channels_mapped)); + av_channel_layout_default(&mapped_layout, ost->audio_channels_mapped); + av_bprintf(&args, "0x%"PRIx64, mapped_layout.order == AV_CHANNEL_ORDER_NATIVE ? + mapped_layout.u.mask : 0); for (i = 0; i < ost->audio_channels_mapped; i++) if (ost->audio_channels_map[i] != -1) av_bprintf(&args, "|c%d=c%d", i, ost->audio_channels_map[i]); @@ -552,8 +575,8 @@ static int configure_output_audio_filter(FilterGraph *fg, OutputFilter *ofilter, av_bprint_clear(&args); } - if (codec->channels && !codec->channel_layout) - codec->channel_layout = av_get_default_channel_layout(codec->channels); + if (codec->ch_layout.order == AV_CHANNEL_ORDER_UNSPEC) + av_channel_layout_default(&codec->ch_layout, codec->ch_layout.nb_channels); choose_sample_fmts(ofilter, &args); choose_sample_rates(ofilter, &args); @@ -832,11 +855,11 @@ static int configure_input_audio_filter(FilterGraph *fg, InputFilter *ifilter, 1, ifilter->sample_rate, ifilter->sample_rate, av_get_sample_fmt_name(ifilter->format)); - if (ifilter->channel_layout) + if (av_channel_layout_check(&ifilter->ch_layout) && ifilter->ch_layout.order == AV_CHANNEL_ORDER_NATIVE) av_bprintf(&args, ":channel_layout=0x%"PRIx64, - ifilter->channel_layout); + ifilter->ch_layout.u.mask); else - av_bprintf(&args, ":channels=%d", ifilter->channels); + av_bprintf(&args, ":channels=%d", ifilter->ch_layout.nb_channels); snprintf(name, sizeof(name), "graph_%d_in_%d_%d", fg->index, ist->file_index, ist->st->index); @@ -1084,7 +1107,10 @@ int configure_filtergraph(FilterGraph *fg) ofilter->height = av_buffersink_get_h(sink); ofilter->sample_rate = av_buffersink_get_sample_rate(sink); - ofilter->channel_layout = av_buffersink_get_channel_layout(sink); + av_channel_layout_uninit(&ofilter->ch_layout); + ret = av_buffersink_get_ch_layout(sink, &ofilter->ch_layout); + if (ret < 0) + goto fail; } fg->reconfiguration = 1; @@ -1148,6 +1174,7 @@ fail: int ifilter_parameters_from_frame(InputFilter *ifilter, const AVFrame *frame) { AVFrameSideData *sd; + int ret; av_buffer_unref(&ifilter->hw_frames_ctx); @@ -1158,8 +1185,9 @@ int ifilter_parameters_from_frame(InputFilter *ifilter, const AVFrame *frame) ifilter->sample_aspect_ratio = frame->sample_aspect_ratio; ifilter->sample_rate = frame->sample_rate; - ifilter->channels = frame->channels; - ifilter->channel_layout = frame->channel_layout; + ret = av_channel_layout_copy(&ifilter->ch_layout, &frame->ch_layout); + if (ret < 0) + return ret; av_freep(&ifilter->displaymatrix); sd = av_frame_get_side_data(frame, AV_FRAME_DATA_DISPLAYMATRIX); diff --git a/fftools/ffmpeg_opt.c b/fftools/ffmpeg_opt.c index 9c820ab73f..0eb2c779f2 100644 --- a/fftools/ffmpeg_opt.c +++ b/fftools/ffmpeg_opt.c @@ -507,7 +507,7 @@ static int opt_map_channel(void *optctx, const char *opt, const char *arg) /* allow trailing ? to map_channel */ if (allow_unused = strchr(mapchan, '?')) *allow_unused = 0; - if (m->channel_idx < 0 || m->channel_idx >= st->codecpar->channels || + if (m->channel_idx < 0 || m->channel_idx >= st->codecpar->ch_layout.nb_channels || input_streams[input_files[m->file_idx]->ist_index + m->stream_idx]->user_set_discard == AVDISCARD_ALL) { if (allow_unused) { av_log(NULL, AV_LOG_VERBOSE, "mapchan: invalid audio channel #%d.%d.%d\n", @@ -1954,9 +1954,14 @@ static OutputStream *new_audio_stream(OptionsContext *o, AVFormatContext *oc, in MATCH_PER_STREAM_OPT(filters, str, ost->filters, oc, st); if (!ost->stream_copy) { + int channels = 0; char *sample_fmt = NULL; - MATCH_PER_STREAM_OPT(audio_channels, i, audio_enc->channels, oc, st); + 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; + } MATCH_PER_STREAM_OPT(sample_fmts, str, sample_fmt, oc, st); if (sample_fmt && @@ -2378,7 +2383,7 @@ static int open_output_file(OptionsContext *o, const char *filename) for (i = 0; i < ifile->nb_streams; i++) { int score; ist = input_streams[ifile->ist_index + i]; - score = ist->st->codecpar->channels + score = ist->st->codecpar->ch_layout.nb_channels + 100000000 * !!(ist->st->event_flags & AVSTREAM_EVENT_FLAG_NEW_PACKETS) + 5000000*!!(ist->st->disposition & AV_DISPOSITION_DEFAULT); if (ist->user_set_discard == AVDISCARD_ALL) @@ -2651,10 +2656,10 @@ loop_end: } else { f->sample_rates = ost->enc->supported_samplerates; } - if (ost->enc_ctx->channels) { - f->channel_layout = av_get_default_channel_layout(ost->enc_ctx->channels); - } else { - f->channel_layouts = ost->enc->channel_layouts; + if (ost->enc_ctx->ch_layout.nb_channels) { + av_channel_layout_default(&f->ch_layout, ost->enc_ctx->ch_layout.nb_channels); + } else if (ost->enc->ch_layouts) { + f->ch_layouts = ost->enc->ch_layouts; } break; } @@ -3237,6 +3242,41 @@ static int opt_timecode(void *optctx, const char *opt, const char *arg) return ret; } +static int opt_ch_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) { + av_log(NULL, AV_LOG_ERROR, "Unknown channel layout: %s\n", arg); + return AVERROR(EINVAL); + } + 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; +} + +#if FF_API_OLD_CHANNEL_LAYOUT static int opt_channel_layout(void *optctx, const char *opt, const char *arg) { OptionsContext *o = optctx; @@ -3272,6 +3312,7 @@ static int opt_channel_layout(void *optctx, const char *opt, const char *arg) return ret; } +#endif static int opt_audio_qscale(void *optctx, const char *opt, const char *arg) { @@ -3818,9 +3859,14 @@ 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" }, + { "ch_layout", OPT_AUDIO | HAS_ARG | OPT_EXPERT | OPT_PERFILE | + OPT_INPUT | OPT_OUTPUT, { .func_arg = opt_ch_layout }, + "set channel layout", "layout" }, +#if FF_API_OLD_CHANNEL_LAYOUT { "channel_layout", OPT_AUDIO | HAS_ARG | OPT_EXPERT | OPT_PERFILE | OPT_INPUT | OPT_OUTPUT, { .func_arg = opt_channel_layout }, - "set channel layout", "layout" }, + "deprecated, use -ch_layout", "layout" }, +#endif { "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) }, diff --git a/tests/fate/aac.mak b/tests/fate/aac.mak index 1743428f54..d8750b093a 100644 --- a/tests/fate/aac.mak +++ b/tests/fate/aac.mak @@ -237,7 +237,7 @@ fate-aac-latm_000000001180bc60: CMD = pcm -i $(TARGET_SAMPLES)/aac/latm_00000000 fate-aac-latm_000000001180bc60: REF = $(SAMPLES)/aac/latm_000000001180bc60.s16 FATE_AAC_LATM += fate-aac-latm_stereo_to_51 -fate-aac-latm_stereo_to_51: CMD = pcm -i $(TARGET_SAMPLES)/aac/latm_stereo_to_51.ts -channel_layout 5.1 +fate-aac-latm_stereo_to_51: CMD = pcm -i $(TARGET_SAMPLES)/aac/latm_stereo_to_51.ts -ch_layout 5.1 fate-aac-latm_stereo_to_51: REF = $(SAMPLES)/aac/latm_stereo_to_51_ref.s16 fate-aac-autobsf-adtstoasc: CMD = transcode "aac" $(TARGET_SAMPLES)/audiomatch/tones_afconvert_16000_mono_aac_lc.adts \ diff --git a/tests/fate/lavf-container.mak b/tests/fate/lavf-container.mak index 9e0eed4851..446a0cfbe2 100644 --- a/tests/fate/lavf-container.mak +++ b/tests/fate/lavf-container.mak @@ -26,7 +26,7 @@ $(FATE_LAVF_CONTAINER): $(AREF) $(VREF) fate-lavf-asf: CMD = lavf_container "" "-c:a mp2 -ar 44100" "-r 25" fate-lavf-avi fate-lavf-nut: CMD = lavf_container "" "-c:a mp2 -ar 44100 -threads 1" -fate-lavf-dv: CMD = lavf_container "-ar 48000 -channel_layout stereo" "-r 25 -s pal" +fate-lavf-dv: CMD = lavf_container "-ar 48000 -ch_layout stereo" "-r 25 -s pal" fate-lavf-dv_pal: CMD = lavf_container_timecode_nodrop "-ar 48000 -r 25 -s pal -ac 2 -f dv" fate-lavf-dv_ntsc: CMD = lavf_container_timecode_drop "-ar 48000 -pix_fmt yuv411p -s ntsc -ac 2 -f dv" fate-lavf-flv fate-lavf-swf: CMD = lavf_container "" "-an" From patchwork Thu Jan 13 02:09:10 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33538 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp47390iog; Wed, 12 Jan 2022 18:53:27 -0800 (PST) X-Google-Smtp-Source: ABdhPJw063eDH9d2EzUEnYdeHdEHcQ3/QnFORMkHbu3SoOYubMuxlvcVedT3Smx1XtXpV07lz77E X-Received: by 2002:a05:6402:43ca:: with SMTP id p10mr462223edc.74.1642042407012; Wed, 12 Jan 2022 18:53:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642042407; cv=none; d=google.com; s=arc-20160816; b=AFPPzPLB+2k0/g4tgaUyZ0Rc0HWAcyvHxwq7ogSwxKmni95VYHEAuFFR5v0k7zTRb1 Jg97IdCZREtkCfdnCMdC9tQC1yS9VLTNRHfYSXBHBrIMsX3bY9lk0tGYNAtDk++7HpYI 5TS6kwiIZ87Pi183oksEra16jntxckbHSQB+0BjXlxJJ9LrO5IErGIEx447Ep+kESMHB jxLCBWa12B6t9S/w3WFfc9Oe8Bz9JNhxi3Sweb6DLL1UPTcgge9GsGnCtt+lAIFILjLw Jes4IPRL0w8MI7SaBUiLYjOPUViEm9Cvt/wGi+s+oLury6rTzEsxsibdt11GEeVAz2hY pz0A== 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=TXe2sb07O/eAyAsZ5KAxAMja7OM4ilhdo0L2ErOQftg=; b=H4ffydqH5DJRxgsZHpXkGYBGHr/oI2uyMNmw4lDDqPCGyVtvbkoymyiNfa2uClJdh4 gviUhVvSlbJCKBDjYRknhxDkDRh4Nmm7OiGzPn+DtGltcDlRpVGJ+Gmghea5inMwoxt6 bJ8jN5nyZszrrc6Y+rhNUbyX5lOQVdy9kaHHbIVoPRLmEPr+sTwNx1pnAitkflNoLfnX DU8tMv1CwksfyZyvInPeNDC6jp8gMl+dk+Fn5QdCYywbYEbmXNaLNTG1QNC2aNY3DpUH KyYuoV5Zvi/p5fFj3ZxfvEUOJv8TxHdDMxSLTdhaTLolXRqSQnNNNNkvhkSYQ+ksJBqD p1Bg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=eLtRxllF; 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 gb35si784741ejc.517.2022.01.12.18.53.26; Wed, 12 Jan 2022 18:53: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=eLtRxllF; 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 39ED968A8C7; Thu, 13 Jan 2022 04:09:44 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f47.google.com (mail-qv1-f47.google.com [209.85.219.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 787F368BA83 for ; Thu, 13 Jan 2022 04:09:40 +0200 (EET) Received: by mail-qv1-f47.google.com with SMTP id kl12so5120064qvb.5 for ; Wed, 12 Jan 2022 18:09:40 -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=sbi5WL+o2jZlURapK1l8hcDArLplFL+1p2N3zJO8b1s=; b=eLtRxllFS30cNdgKD9ZztkI0hlgdqhOsy2LV8ZJ9Agpdq4XKBL/Sws1P92GfGljtix 4/pEzz7J30BzJgRfyGBkfFsB2FUQKGi2wabwVy93o1evBtwnrcaB6yDqyA+afUWWRehy pm6YSvGSSHFvQJ8r2C1y9OnQwRn26VsXWE9q2HyOcOLnMK/WNssVvgDep9hxRlxAGcr6 RNrqJe+EfPgNRRuFOsI/XTTo02t7rwuUYd2RbUuRITrChBs6wxoybba01fuK5+cdsjN9 oUvbkc7i4Je5WCPczn6TVBNUNTR+ilwecnf5ggPk5Ylf6tK6PKyICICh9bue2d3n8j1I HB3Q== 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=sbi5WL+o2jZlURapK1l8hcDArLplFL+1p2N3zJO8b1s=; b=pKU2AIoD4E0sT3ykxZn6mhh/FTI1qTSOV7S2l30FJYBFIoDwFwp/1Q18PVYGAWp873 jQHnjSP2Mlnqk5DiZ0OJhi6WYqWRU1EwGelQTO08qxtLapwGwW8LhTIC1P8xH2a+PN3s /wKJh0PEuOclBXMlc5RKO7cRIyYZiZxafwxEmPvrnnCiFzv+/0/nrXix0QFXLHtbK/fV MXZL4a+oMuU0+V1rN9CMyDI4N67Gl3qDbl8kbm7ZlhaoU2C/72f1opkt0Yg1668DW/nx 93bhlxjKtkqPrrJLuxqt1dfAm1pOt+KV9AX3BsRgqXIp0NzKa9qal5MWKFfpN1oYXc2q f7jA== X-Gm-Message-State: AOAM5336w25U4lUxDBRd0/OPGeOn/mnk/z29wKdy4PCia5KSPLMF01vJ Uq+z4tdRNKZ3bebYXwNliUcp2VoZbms= X-Received: by 2002:a05:6214:e65:: with SMTP id jz5mr2085548qvb.67.1642039779071; Wed, 12 Jan 2022 18:09:39 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u6sm1068031qko.83.2022.01.12.18.09.38 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:09:38 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:09:10 -0300 Message-Id: <20220113020913.870-9-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 278/281] ffprobe: 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: thXpKpPgfTDa Signed-off-by: James Almer --- fftools/ffprobe.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c index 20582ca7ac..aff9b880cc 100644 --- a/fftools/ffprobe.c +++ b/fftools/ffprobe.c @@ -2462,12 +2462,10 @@ static void show_frame(WriterContext *w, AVFrame *frame, AVStream *stream, if (s) print_str ("sample_fmt", s); else print_str_opt("sample_fmt", "unknown"); print_int("nb_samples", frame->nb_samples); - print_int("channels", frame->channels); - if (frame->channel_layout) { - av_bprint_clear(&pbuf); - av_bprint_channel_layout(&pbuf, frame->channels, - frame->channel_layout); - print_str ("channel_layout", pbuf.str); + print_int("channels", frame->ch_layout.nb_channels); + if (frame->ch_layout.order != AV_CHANNEL_ORDER_UNSPEC) { + av_channel_layout_describe(&frame->ch_layout, val_str, sizeof(val_str)); + print_str ("channel_layout", val_str); } else print_str_opt("channel_layout", "unknown"); break; @@ -2873,12 +2871,11 @@ static int show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_id if (s) print_str ("sample_fmt", s); else print_str_opt("sample_fmt", "unknown"); print_val("sample_rate", par->sample_rate, unit_hertz_str); - print_int("channels", par->channels); + print_int("channels", par->ch_layout.nb_channels); - if (par->channel_layout) { - av_bprint_clear(&pbuf); - av_bprint_channel_layout(&pbuf, par->channels, par->channel_layout); - print_str ("channel_layout", pbuf.str); + if (par->ch_layout.order != AV_CHANNEL_ORDER_UNSPEC) { + av_channel_layout_describe(&par->ch_layout, val_str, sizeof(val_str)); + print_str ("channel_layout", val_str); } else { print_str_opt("channel_layout", "unknown"); } From patchwork Thu Jan 13 02:09:11 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33539 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp47458iog; Wed, 12 Jan 2022 18:53:39 -0800 (PST) X-Google-Smtp-Source: ABdhPJwFvkhrVfibxh0ZK42Dd6cg+Db+zVMnsaNpUuM5+NKJdSOq01vrj5tWpzWJr3xB9pqg4sCo X-Received: by 2002:a17:906:9f06:: with SMTP id fy6mr2103944ejc.38.1642042419176; Wed, 12 Jan 2022 18:53:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642042419; cv=none; d=google.com; s=arc-20160816; b=CgI9HJ26yLn4jgVvyq/9HldDt9mmNyi/KqwevH5cvOO6om51pk/K4rxLTQWLjl0zLi ext/QCj63ZK8DIpkkqVlA7jv0/sw8Er6JDvtw/tqWcWv3iGwEzwpU/hOPs8s7x6hcJT5 navVzcb+JFJ8gnKOQ5h1jBdZhH5H5HnOwxgb1hCLOCo5XmX86MaTEnMLDdI0MIKsaXpD ol2WuCPjLAVAyv2K58DNO2WsmJ7sz4laGUgJiPKM3YhIXN9StvgrRgRnmyOIBtwv2wS1 88tFBpX+lk99fLo0sxb+SfNJKVxjiHviIHDIZrGYcV+yQFEcLHxXIg/9tWPp29eyL2je ogJA== 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=ord/U3ZbKt837qj8fDXNA3ND8qGTSkstJjrnVTfHDi4=; b=ZUYA0QKI0MMdvzAKwqGFae49QUmSsY+tkp7AuILibxctk0sxV+1hyrcPx7qOClJ5C+ Ql53xlEcH9gpI3vnvrD+WkxPKvobbzIS1Zkge0k3MWfI7SHUDXdf34OwBu6a7Yk+WjY2 3icZjtFkkdhbyyyL2YbytFXP41ibGTuBIPQMg0ZcTlPp1tmv3l5oI7RjV+HawqUobDf+ C8/DFvhAFzm2AezttdN8ZGmkYZHxnVDEkdB1JZAiTo/CjC7pD87s/WE/rlZTGdGin1uN Cs/X88ikFok0k5LsKI2p2nWGX2d/DoEhdqj0wE/DO5vffu0sCRVHWBaRqLBxsMxVu/hn CRew== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b="f5sL/Lkj"; 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 l11si811917ejo.781.2022.01.12.18.53.38; Wed, 12 Jan 2022 18:53:39 -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="f5sL/Lkj"; 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 176D568BABF; Thu, 13 Jan 2022 04:09:45 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f41.google.com (mail-qv1-f41.google.com [209.85.219.41]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1213768BA9D for ; Thu, 13 Jan 2022 04:09:41 +0200 (EET) Received: by mail-qv1-f41.google.com with SMTP id q4so5118857qvh.9 for ; Wed, 12 Jan 2022 18:09:41 -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=pIBA3Ij9WLJk57ezskvmsK9fP1jppFTM7c4FU6ARa/4=; b=f5sL/LkjkRkde0zA8dmFH13DF0pReaQeo1k2uAcGtBpuB6ijcLthfzs845u8xXAKy7 ZI9vkaOB6dcRW9TBDY/Ab6JhYFQUejBjbvA1qaCM/OoWns3/oEHKlKTtw9wTXZ5XoCAe N5Wm+tBqur0clNbFu+z6JMtNDAFcHo8P7tRjTACdN8g1CEjTiYTKRqII6bwFtRo3ZMHZ 5LA4tmybwsFvKs4D8I6+O7UaxYfJKUVDXugbEySryic6HhJ8azD8pbn/0/lJhAbzK+fZ qf1PRkWayOqk30M29476zNSZBn4c54Om2RW2Eg61VZTYjnlgkdrrRNpUUiypYzumTV3s vR1Q== 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=pIBA3Ij9WLJk57ezskvmsK9fP1jppFTM7c4FU6ARa/4=; b=ELQv86gujS1PP/09PGn3dfvhKect5osGfB0a6+0WGsCOnE9HWan6IyfQgrQ8/dSEKN bIgXsiowHzQuVljUU4lNQyFgOn46Dt4JFc1ay8UwTJajNXKNRUi7zAPue5Cs01jGgXO5 6zw8fBV2sCHgnzE6GGe8VWgAGT7f+uT3kUQpGCOuynHArrY0YRv/pVCXIV5UJqsmAw0k NPcjhEQTTIC8t44Qsbcg3GTY3zucpHLrqQknRw5YdyQJrC36DDPQrfUhNyLjdzhaAY6y ixfWlT92yPmuRz7UpSLG/xPXCJov1Xbpw1DX5rELR+P2doZ0pl4HXGa+vgHRdus2SKIF xN/g== X-Gm-Message-State: AOAM530vgpOrsWSCAbKRl3sZJCU28QXgP+cFzl4vBckIS/YYKElyThCO QjENQKZVLYLXLGtlgl/GaOYlo/H7EXo= X-Received: by 2002:a05:6214:767:: with SMTP id f7mr2421834qvz.129.1642039780438; Wed, 12 Jan 2022 18:09:40 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u6sm1068031qko.83.2022.01.12.18.09.39 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:09:40 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:09:11 -0300 Message-Id: <20220113020913.870-10-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 279/281] channel_layout: add support for Ambisonic 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: tZaVU7PmTmb2 From: Vittorio Giovara Signed-off-by: James Almer --- libavutil/channel_layout.c | 166 ++++++++++++++++++++++++++++++- libavutil/channel_layout.h | 52 +++++++++- libavutil/tests/channel_layout.c | 20 ++++ tests/ref/fate/channel_layout | 13 +++ 4 files changed, 247 insertions(+), 4 deletions(-) diff --git a/libavutil/channel_layout.c b/libavutil/channel_layout.c index 68b40cc37c..3863e50e91 100644 --- a/libavutil/channel_layout.c +++ b/libavutil/channel_layout.c @@ -31,6 +31,9 @@ #include "bprint.h" #include "common.h" +#define CHAN_IS_AMBI(x) ((x) >= AV_CHAN_AMBISONIC_BASE &&\ + (x) <= AV_CHAN_AMBISONIC_END) + struct channel_name { const char *name; const char *description; @@ -81,7 +84,10 @@ void av_channel_name_bprint(AVBPrint *bp, enum AVChannel channel_id) { av_bprint_clear(bp); - if ((unsigned)channel_id < FF_ARRAY_ELEMS(channel_names)) + if (channel_id >= AV_CHAN_AMBISONIC_BASE && + channel_id <= AV_CHAN_AMBISONIC_END) + av_bprintf(bp, "AMBI%d", channel_id - AV_CHAN_AMBISONIC_BASE); + else if ((unsigned)channel_id < FF_ARRAY_ELEMS(channel_names)) av_bprintf(bp, "%s", channel_names[channel_id].name); else av_bprintf(bp, "USR%d", channel_id); @@ -104,7 +110,10 @@ void av_channel_description_bprint(AVBPrint *bp, enum AVChannel channel_id) { av_bprint_clear(bp); - if ((unsigned)channel_id < FF_ARRAY_ELEMS(channel_names)) + if (channel_id >= AV_CHAN_AMBISONIC_BASE && + channel_id <= AV_CHAN_AMBISONIC_END) + av_bprintf(bp, "ambisonic ACN %d", channel_id - AV_CHAN_AMBISONIC_BASE); + else if ((unsigned)channel_id < FF_ARRAY_ELEMS(channel_names)) av_bprintf(bp, "%s", channel_names[channel_id].description); else av_bprintf(bp, "user %d", channel_id); @@ -128,6 +137,14 @@ enum AVChannel av_channel_from_string(const char *str) int i; char *endptr = (char *)str; enum AVChannel id = AV_CHAN_NONE; + + if (!strncmp(str, "AMBI", 4)) { + i = strtol(str + 4, NULL, 0); + if (i < 0 || i > AV_CHAN_AMBISONIC_END - AV_CHAN_AMBISONIC_BASE) + return AV_CHAN_NONE; + return AV_CHAN_AMBISONIC_BASE + i; + } + for (i = 0; i < FF_ARRAY_ELEMS(channel_names); i++) { if (channel_names[i].name && !strcmp(str, channel_names[i].name)) return i; @@ -395,6 +412,60 @@ int av_channel_layout_from_string(AVChannelLayout *channel_layout, } } + /* ambisonic */ + if (!strncmp(str, "ambisonic ", 10)) { + const char *p = str + 10; + char *endptr; + AVChannelLayout extra = {0}; + int order; + + order = strtol(p, &endptr, 0); + if (order < 0 || order + 1 > INT_MAX / (order + 1) || + (*endptr && *endptr != '+')) + return AVERROR(EINVAL); + + channel_layout->order = AV_CHANNEL_ORDER_AMBISONIC; + channel_layout->nb_channels = (order + 1) * (order + 1); + + if (*endptr) { + int ret = av_channel_layout_from_string(&extra, endptr + 1); + if (ret < 0) + return ret; + if (extra.nb_channels >= INT_MAX - channel_layout->nb_channels) { + av_channel_layout_uninit(&extra); + return AVERROR(EINVAL); + } + + if (extra.order == AV_CHANNEL_ORDER_NATIVE) { + channel_layout->u.mask = extra.u.mask; + } else { + channel_layout->order = AV_CHANNEL_ORDER_CUSTOM; + channel_layout->u.map = + av_calloc(channel_layout->nb_channels + extra.nb_channels, + sizeof(*channel_layout->u.map)); + if (!channel_layout->u.map) { + av_channel_layout_uninit(&extra); + return AVERROR(ENOMEM); + } + + for (i = 0; i < channel_layout->nb_channels; i++) + channel_layout->u.map[i].id = AV_CHAN_AMBISONIC_BASE + i; + for (i = 0; i < extra.nb_channels; i++) { + enum AVChannel ch = av_channel_layout_channel_from_index(&extra, i); + if (CHAN_IS_AMBI(ch)) { + av_channel_layout_uninit(&extra); + return AVERROR(EINVAL); + } + channel_layout->u.map[channel_layout->nb_channels + i].id = ch; + } + } + channel_layout->nb_channels += extra.nb_channels; + av_channel_layout_uninit(&extra); + } + + return 0; + } + /* channel names */ while (*dup) { char *chname = av_get_token(&dup, "+"); @@ -526,6 +597,77 @@ int av_channel_layout_copy(AVChannelLayout *dst, const AVChannelLayout *src) return 0; } +/** + * If the custom layout is n-th order standard-order ambisonic, with optional + * extra non-diegetic channels at the end, write its string description in bp. + * Return a negative error code on error. + */ +static int try_describe_ambisonic(AVBPrint *bp, const AVChannelLayout *channel_layout) +{ + int i, highest_ambi, order; + + highest_ambi = -1; + if (channel_layout->order == AV_CHANNEL_ORDER_AMBISONIC) + highest_ambi = channel_layout->nb_channels - av_popcount64(channel_layout->u.mask) - 1; + else { + const AVChannelCustom *map = channel_layout->u.map; + for (i = 0; i < channel_layout->nb_channels; i++) { + int is_ambi = CHAN_IS_AMBI(map[i].id); + + /* ambisonic following non-ambisonic */ + if (i > 0 && is_ambi && !CHAN_IS_AMBI(map[i - 1].id)) + return 0; + + /* non-default ordering */ + if (is_ambi && map[i].id - AV_CHAN_AMBISONIC_BASE != i) + return 0; + + if (CHAN_IS_AMBI(map[i].id)) + highest_ambi = i; + } + } + /* no ambisonic channels*/ + if (highest_ambi < 0) + return 0; + + order = floor(sqrt(highest_ambi)); + /* incomplete order - some harmonics are missing */ + if ((order + 1) * (order + 1) != highest_ambi + 1) + return 0; + + av_bprintf(bp, "ambisonic %d", order); + + /* extra channels present */ + if (highest_ambi < channel_layout->nb_channels - 1) { + AVChannelLayout extra = { 0 }; + char buf[128]; + + if (channel_layout->order == AV_CHANNEL_ORDER_AMBISONIC) { + extra.order = AV_CHANNEL_ORDER_NATIVE; + extra.nb_channels = av_popcount64(channel_layout->u.mask); + extra.u.mask = channel_layout->u.mask; + } else { + const AVChannelCustom *map = channel_layout->u.map; + + extra.order = AV_CHANNEL_ORDER_CUSTOM; + extra.nb_channels = channel_layout->nb_channels - highest_ambi - 1; + extra.u.map = av_calloc(extra.nb_channels, sizeof(*extra.u.map)); + if (!extra.u.map) + return AVERROR(ENOMEM); + + memcpy(extra.u.map, &map[highest_ambi + 1], + sizeof(*extra.u.map) * extra.nb_channels); + } + + av_channel_layout_describe(&extra, buf, sizeof(buf)); + av_channel_layout_uninit(&extra); + + av_bprintf(bp, "+%s", buf); + } + + return 0; +} + int av_channel_layout_describe_bprint(const AVChannelLayout *channel_layout, AVBPrint *bp) { @@ -542,6 +684,11 @@ int av_channel_layout_describe_bprint(const AVChannelLayout *channel_layout, } // fall-through case AV_CHANNEL_ORDER_CUSTOM: + if (channel_layout->order == AV_CHANNEL_ORDER_CUSTOM) { + int res = try_describe_ambisonic(bp, channel_layout); + if (res < 0 || bp->len) + return res; + } for (i = 0; i < channel_layout->nb_channels; i++) { const char *ch_name = NULL; enum AVChannel ch = AV_CHAN_NONE; @@ -567,6 +714,8 @@ int av_channel_layout_describe_bprint(const AVChannelLayout *channel_layout, case AV_CHANNEL_ORDER_UNSPEC: av_bprintf(bp, "%d channels", channel_layout->nb_channels); return 0; + case AV_CHANNEL_ORDER_AMBISONIC: + return try_describe_ambisonic(bp, channel_layout); default: return AVERROR(EINVAL); } @@ -601,6 +750,8 @@ av_channel_layout_channel_from_index(const AVChannelLayout *channel_layout, switch (channel_layout->order) { case AV_CHANNEL_ORDER_CUSTOM: return channel_layout->u.map[idx].id; + case AV_CHANNEL_ORDER_AMBISONIC: + return AV_CHAN_AMBISONIC_BASE + idx; case AV_CHANNEL_ORDER_NATIVE: for (i = 0; i < 64; i++) { if ((1ULL << i) & channel_layout->u.mask && !idx--) @@ -651,6 +802,11 @@ int av_channel_layout_index_from_channel(const AVChannelLayout *channel_layout, if (channel_layout->u.map[i].id == channel) return i; return AVERROR(EINVAL); + case AV_CHANNEL_ORDER_AMBISONIC: + if (!CHAN_IS_AMBI(channel) || + channel - AV_CHAN_AMBISONIC_BASE >= channel_layout->nb_channels) + return AVERROR(EINVAL); + return channel - AV_CHAN_AMBISONIC_BASE; case AV_CHANNEL_ORDER_NATIVE: { uint64_t mask = channel_layout->u.mask; if (!(mask & (1ULL << channel))) @@ -701,6 +857,9 @@ int av_channel_layout_check(const AVChannelLayout *channel_layout) return 0; } return 1; + case AV_CHANNEL_ORDER_AMBISONIC: + /* If non-diegetic channels are present, ensure they are taken into account */ + return av_popcount64(channel_layout->u.mask) < channel_layout->nb_channels; case AV_CHANNEL_ORDER_UNSPEC: return 1; default: @@ -725,7 +884,8 @@ int av_channel_layout_compare(const AVChannelLayout *chl, const AVChannelLayout return 0; /* can compare masks directly */ - if (chl->order != AV_CHANNEL_ORDER_CUSTOM && + if ((chl->order == AV_CHANNEL_ORDER_NATIVE || + chl->order == AV_CHANNEL_ORDER_AMBISONIC) && chl->order == chl1->order) return chl->u.mask != chl1->u.mask; diff --git a/libavutil/channel_layout.h b/libavutil/channel_layout.h index 6356a9a38a..b7e709a022 100644 --- a/libavutil/channel_layout.h +++ b/libavutil/channel_layout.h @@ -79,6 +79,23 @@ enum AVChannel { /** Channel contains data, but its position is unknown. */ AV_CHAN_UNKWNOWN = 128, + + /** + * Range of channels between AV_CHAN_AMBISONIC_BASE and + * AV_CHAN_AMBISONIC_END represent Ambisonic components using the ACN system. + * + * Given a channel id between AV_CHAN_AMBISONIC_BASE and + * AV_CHAN_AMBISONIC_END (inclusive), the ACN index of the channel is + * = - AV_CHAN_AMBISONIC_BASE. + * + * @note these values are only used for AV_CHANNEL_ORDER_CUSTOM channel + * orderings, the AV_CHANNEL_ORDER_AMBISONIC ordering orders the channels + * implicitly by their position in the stream. + */ + AV_CHAN_AMBISONIC_BASE = 0x400, + // leave space for 1024 ids, which correspond to maximum order-32 harmonics, + // which should be enough for the foreseeable use cases + AV_CHAN_AMBISONIC_END = 0x7ff, }; enum AVChannelOrder { @@ -100,6 +117,29 @@ enum AVChannelOrder { * channels at arbitrary positions. */ AV_CHANNEL_ORDER_CUSTOM, + /** + * The audio is represented as the decomposition of the sound field into + * spherical harmonics. Each channel corresponds to a single expansion + * component. Channels are ordered according to ACN (Ambisonic Channel + * Number). + * + * The channel with the index n in the stream contains the spherical + * harmonic of degree l and order m given by + * @code{.unparsed} + * l = floor(sqrt(n)), + * m = n - l * (l + 1). + * @endcode + * + * Conversely given a spherical harmonic of degree l and order m, the + * corresponding channel index n is given by + * @code{.unparsed} + * n = l * (l + 1) + m. + * @endcode + * + * Normalization is assumed to be SN3D (Schmidt Semi-Normalization) + * as defined in AmbiX format $ 2.1. + */ + AV_CHANNEL_ORDER_AMBISONIC, }; @@ -266,7 +306,8 @@ typedef struct AVChannelLayout { */ union { /** - * This member must be used for AV_CHANNEL_ORDER_NATIVE. + * This member must be used for AV_CHANNEL_ORDER_NATIVE, and may be used + * for AV_CHANNEL_ORDER_AMBISONIC to signal non-diegetic channels. * It is a bitmask, where the position of each set bit means that the * AVChannel with the corresponding value is present. * @@ -288,6 +329,11 @@ typedef struct AVChannelLayout { * I.e. when map[i].id is equal to AV_CHAN_FOO, then AV_CH_FOO is the * i-th channel in the audio data. * + * When map[i].id is in the range between AV_CHAN_AMBISONIC_BASE and + * AV_CHAN_AMBISONIC_END (inclusive), the channel contains an ambisonic + * component with ACN index (as defined above) + * n = map[i].id - AV_CHAN_AMBISONIC_BASE. + * * map[i].name may be filled with a 0-terminated string, in which case * it will be used for the purpose of identifying the channel with the * convenience functions below. Otherise it must be zeroed. @@ -359,6 +405,8 @@ typedef struct AVChannelLayout { { .order = AV_CHANNEL_ORDER_NATIVE, .nb_channels = 2, .u = { .mask = AV_CH_LAYOUT_STEREO_DOWNMIX }} #define AV_CHANNEL_LAYOUT_22POINT2 \ { .order = AV_CHANNEL_ORDER_NATIVE, .nb_channels = 24, .u = { .mask = AV_CH_LAYOUT_22POINT2 }} +#define AV_CHANNEL_LAYOUT_AMBISONIC_FIRST_ORDER \ + { .order = AV_CHANNEL_ORDER_AMBISONIC, .nb_channels = 4, .u = { .mask = 0 }} struct AVBPrint; @@ -554,6 +602,8 @@ int av_channel_layout_from_mask(AVChannelLayout *channel_layout, uint64_t mask); * - a hexadecimal value of a channel layout (eg. "0x4") * - the number of channels with default layout (eg. "5c") * - the number of unordered channels (eg. "4", "4C", or "4 channels") + * - the ambisonic order followed by optional non-diegetic channels (eg. + * "ambisonic 2+stereo") * * @param channel_layout input channel layout * @param str string describing the channel layout diff --git a/libavutil/tests/channel_layout.c b/libavutil/tests/channel_layout.c index 7e6be0be17..b3318aed27 100644 --- a/libavutil/tests/channel_layout.c +++ b/libavutil/tests/channel_layout.c @@ -66,6 +66,10 @@ int main(void) printf("With AV_CHAN_FRONT_RIGHT: %26s\n", bp.str); av_channel_name_bprint(&bp, 63); printf("With 63: %43s\n", bp.str); + av_channel_name_bprint(&bp, AV_CHAN_AMBISONIC_BASE); + printf("With AV_CHAN_AMBISONIC_BASE: %23s\n", bp.str); + av_channel_name_bprint(&bp, AV_CHAN_AMBISONIC_END); + printf("With AV_CHAN_AMBISONIC_END: %24s\n", bp.str); printf("Testing av_channel_description\n"); av_channel_description_bprint(&bp, AV_CHAN_FRONT_LEFT); @@ -74,11 +78,17 @@ int main(void) printf("With AV_CHAN_FRONT_RIGHT: %26s\n", bp.str); av_channel_description_bprint(&bp, 63); printf("With 63: %43s\n", bp.str); + av_channel_description_bprint(&bp, AV_CHAN_AMBISONIC_BASE); + printf("With AV_CHAN_AMBISONIC_BASE: %23s\n", bp.str); + av_channel_description_bprint(&bp, AV_CHAN_AMBISONIC_END); + printf("With AV_CHAN_AMBISONIC_END: %24s\n", bp.str); printf("\nTesting av_channel_from_string\n"); printf("With \"FL\": %41d\n", av_channel_from_string("FL")); printf("With \"FR\": %41d\n", av_channel_from_string("FR")); printf("With \"USR63\": %38d\n", av_channel_from_string("USR63")); + printf("With \"AMBI0\": %38d\n", av_channel_from_string("AMBI0")); + printf("With \"AMBI1023\": %35d\n", av_channel_from_string("AMBI1023")); printf("\n==Native layouts==\n"); @@ -177,6 +187,8 @@ int main(void) printf("\nTesting av_channel_layout_from_string\n"); CHANNEL_LAYOUT_FROM_STRING(custom, "FL+FR+FC+BL+BR+LFE"); printf("With \"FL+FR+FC+BL+BR+LFE\": %25s\n", bp.str); + CHANNEL_LAYOUT_FROM_STRING(custom, "ambisonic 1+FR+FL"); + printf("With \"ambisonic 1+FR+FL\": %26s\n", bp.str); CHANNEL_LAYOUT_FROM_STRING(custom, "FR+FL+USR63"); printf("With \"FR+FL+USR63\" layout: %25s\n", bp.str); @@ -225,6 +237,14 @@ int main(void) CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(custom, 3); printf("On \"FR+FL+USR63\" layout with 3: %20d\n", ret); + printf("\n==Ambisonic layouts==\n"); + + printf("\nTesting av_channel_layout_from_string\n"); + CHANNEL_LAYOUT_FROM_STRING(custom, "ambisonic 1"); + printf("With \"ambisonic 1\": %32s\n", bp.str); + CHANNEL_LAYOUT_FROM_STRING(custom, "ambisonic 2+stereo"); + printf("With \"ambisonic 2+stereo\": %25s\n", bp.str); + av_channel_layout_uninit(&surround); av_channel_layout_uninit(&custom); av_bprint_finalize(&bp, NULL); diff --git a/tests/ref/fate/channel_layout b/tests/ref/fate/channel_layout index bac00086d6..4614934028 100644 --- a/tests/ref/fate/channel_layout +++ b/tests/ref/fate/channel_layout @@ -2,15 +2,21 @@ Testing av_channel_name With AV_CHAN_FRONT_LEFT: FL With AV_CHAN_FRONT_RIGHT: FR With 63: USR63 +With AV_CHAN_AMBISONIC_BASE: AMBI0 +With AV_CHAN_AMBISONIC_END: AMBI1023 Testing av_channel_description With AV_CHAN_FRONT_LEFT: front left With AV_CHAN_FRONT_RIGHT: front right With 63: user 63 +With AV_CHAN_AMBISONIC_BASE: ambisonic ACN 0 +With AV_CHAN_AMBISONIC_END: ambisonic ACN 1023 Testing av_channel_from_string With "FL": 0 With "FR": 1 With "USR63": 63 +With "AMBI0": 1024 +With "AMBI1023": 2047 ==Native layouts== @@ -69,6 +75,7 @@ On 5.1(side) layout with "BC": -1 Testing av_channel_layout_from_string With "FL+FR+FC+BL+BR+LFE": FL+FR+FC+BL+BR+LFE +With "ambisonic 1+FR+FL": ambisonic 1+FR+FL With "FR+FL+USR63" layout: FR+FL+USR63 Testing av_channel_layout_index_from_string @@ -96,3 +103,9 @@ On "FR+FL+USR63" layout with 0: 1 On "FR+FL+USR63" layout with 1: 0 On "FR+FL+USR63" layout with 2: 63 On "FR+FL+USR63" layout with 3: -1 + +==Ambisonic layouts== + +Testing av_channel_layout_from_string +With "ambisonic 1": ambisonic 1 +With "ambisonic 2+stereo": ambisonic 2+stereo From patchwork Thu Jan 13 02:09:12 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33540 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp47548iog; Wed, 12 Jan 2022 18:53:49 -0800 (PST) X-Google-Smtp-Source: ABdhPJyEtSVvo+BzgGZCjOP8TVG0w84dxBIikHj6lwIIt5pkaEBXdpK+rNUoNz8UJRJRTBwMDmGf X-Received: by 2002:a17:906:150c:: with SMTP id b12mr1962594ejd.284.1642042429663; Wed, 12 Jan 2022 18:53:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642042429; cv=none; d=google.com; s=arc-20160816; b=N9G23fyzqMQnqp/XnH5CNHkSCUYZTuwH+dAmQtMSO4ulf5VFlAUjZ6CSFqGCWOrQLA L4gtEiw1WH3q1kZgQAhbTSJNbLLa3El538xfLHXjR78OQC3XONo6y8iXPwNJxmQTC6bR QHbQjgcwUQPxV3jZzTPibz174umJEU3MPS6PXlKgyG0a1TnzLeyBZgAcAgXJ+DLd/7nx 0HAlwSzE60q/gDRWe5RFiHgtFY2aqxr3avS1moDoOhViOObXu8V10IyrINXZxc3WE3Gs q5SyQJKgV7kmKSbjuw+eIZNKUZRToYnJOKVMUxGDW4jomMFhlbmiYUyaZvHPsWXlMPfd LDpg== 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=pfU0oDObHAP0j4EIyz0kWiVtT7Gkxni2llckN3sm3ys=; b=yQlLLOVGCCJF3Q/75Syz/or5HFS4gxSwBosMJSnQvoL5qPE0rTcrgNaxn8sPfc2N5V uZEzxJeD3ksv0i20tlYtBPZgKizInYlejMi4/faQj8qTAurYLaq9jXGZO1pNw4wCo1sp xA2lQSRpmQwBvtaKnvyAOMIf742y1Abo7uiXcHBti/+36Bf1RNa6EeN8RpvOh2wyWWK0 CCKzJvxQPMDB+zxg3KRM2yswSuxP0hszD4juhS1fOFla6YemEjxvhUpmK3H6vFz3rwJC 8B+Q9fW6ceMxIOtAwDHSRrAKD/zNERRAVULaVlH3edC7ax4yqYHtLuhXl1EolwieUwvV GfIg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=qc3pYOg6; 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 c12si771418eja.919.2022.01.12.18.53.49; Wed, 12 Jan 2022 18:53:49 -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=qc3pYOg6; 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 E31B768B1E6; Thu, 13 Jan 2022 04:09:45 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f44.google.com (mail-qv1-f44.google.com [209.85.219.44]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2F69668BAAD for ; Thu, 13 Jan 2022 04:09:43 +0200 (EET) Received: by mail-qv1-f44.google.com with SMTP id hu2so5113949qvb.8 for ; Wed, 12 Jan 2022 18:09:43 -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=2qglb6oQmYvKmXAgusFSqn2b4VhDbIHSvGzkdmR4Pu4=; b=qc3pYOg6FK0XpOxEr9FzYZnM+3EVsr3lYul8IC4F19E+b8POVePn9YHUR1bYruhRbs cXXKjaimp6N0qrzI3bn8/qyNjHH8ywpZGAWgzEJG+DeZ/r1ZTTHGJdUc+WNKkTsinSYk Dg3ahGdxCNfP4u1ELie9o/NYbwDewGwFfqigvIuZnXR95JPEt3jXxeiClgZOQyfz2IKV IXWqlmnVXYoZWZk1p7LRYGBPt71xK+zHD7N4UnqmeRa6lNgS/fcWr8veSAn5dMBY0z0p ZL8n/iCGLswX3OReM/2k7ODyRUBHTFP1eST+n+/y0VZY5Cd5S0Ppuejv2wm1C3PGXd9S M1Mg== 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=2qglb6oQmYvKmXAgusFSqn2b4VhDbIHSvGzkdmR4Pu4=; b=4FX+foBCo5Len9Q2sHM2+Q4QT8KTAizPLSEgxIY/XOjKHAkWZA6uIs/dqxRY3sM3gr col2ev86b56bu7J2TpOz/P+udbJXm3gDv9dMF8tZsh3/k3Ox1/EKf9vmRsRnvpCG/k8d KIy6GBgXeVF3ZN7Hc/k9JhEyn6YIaFINRnOpDzk3B/UDUxnmG7df6vzvP3TsxDt+CkJP EpZ92bP0EV2FQty7i9JREIFXnaJ0ZsuC6KMdDjkshYbWqfUZrYKe/84XDLqlgdlLu+hi 1E2oF3tKRtgEXzSJlUierDKNQTPBAhKP6y6UYSsXVlUfv0UMRWAcrdEo/rJjAZJYS28G 7lGA== X-Gm-Message-State: AOAM531K1zRKhpBjmWeCGs09PHA6vg/prymiRKbsb1gHgElu4Z0giVPw 9OOin/k1/80LOKIsPS6bt5JIZuenZ4Q= X-Received: by 2002:a05:6214:1ccb:: with SMTP id g11mr2145760qvd.97.1642039781720; Wed, 12 Jan 2022 18:09:41 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u6sm1068031qko.83.2022.01.12.18.09.40 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:09:41 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:09:12 -0300 Message-Id: <20220113020913.870-11-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 280/281] opus: export mapping family 2 (Ambisonic) as Ambisonic 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: CwUBZBmE5loA From: Anton Khirnov Signed-off-by: James Almer --- libavcodec/opus.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/libavcodec/opus.c b/libavcodec/opus.c index c18ff47f71..474ae427aa 100644 --- a/libavcodec/opus.c +++ b/libavcodec/opus.c @@ -398,8 +398,22 @@ av_cold int ff_opus_parse_extradata(AVCodecContext *avctx, ret = AVERROR_INVALIDDATA; goto fail; } - layout.order = AV_CHANNEL_ORDER_UNSPEC; + layout.nb_channels = channels; + if (channels == (ambisonic_order + 1) * (ambisonic_order + 1)) { + layout.order = AV_CHANNEL_ORDER_AMBISONIC; + } else { + layout.order = AV_CHANNEL_ORDER_CUSTOM; + layout.u.map = av_mallocz_array(channels, sizeof(*layout.u.map)); + if (!layout.u.map) { + ret = AVERROR(ENOMEM); + goto fail; + } + for (i = 0; i < channels - 2; i++) + layout.u.map[i].id = AV_CHAN_AMBISONIC_BASE + i; + layout.u.map[channels - 2].id = AV_CHAN_FRONT_LEFT; + layout.u.map[channels - 1].id = AV_CHAN_FRONT_RIGHT; + } } else { layout.order = AV_CHANNEL_ORDER_UNSPEC; layout.nb_channels = channels; @@ -450,8 +464,10 @@ av_cold int ff_opus_parse_extradata(AVCodecContext *avctx, } } - av_channel_layout_uninit(&avctx->ch_layout); - avctx->ch_layout = layout; + ret = av_channel_layout_copy(&avctx->ch_layout, &layout); + if (ret < 0) + goto fail; + s->nb_streams = streams; s->nb_stereo_streams = stereo_streams; From patchwork Thu Jan 13 02:09: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: 33541 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp47618iog; Wed, 12 Jan 2022 18:54:00 -0800 (PST) X-Google-Smtp-Source: ABdhPJw0ts8fkJQ29AgOnA2UMcNy0oL3gOFZHTat41L6cRcPQHO7wLr0gnHGzllBXj+CIAIF9rB3 X-Received: by 2002:a05:6402:2787:: with SMTP id b7mr2392506ede.162.1642042440402; Wed, 12 Jan 2022 18:54:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642042440; cv=none; d=google.com; s=arc-20160816; b=cquBw9oUh6ozAcLdS5AyFEYbxz3KVDHdGf+CzO7XvAvBM/YkHuxBI9A5VMbr1ChugV hwUDDkIt8LasLeZ59k6YhdvQVTpm/Ma01LwxxRmG7RxLXiGXjLvSJbHBEFazmOJb/PWf uyHZgIIG3bTxxwys5zK8dKYqwtXgcWMoHwC81wBbQmy7W+Ipxfajn913xgRUTRNvHby1 +gJx2VosvZkBuzYEkay8g0UusFGyqMAA/Uh/3+FJOGavbT7JoRrtldlvCS+1HKvXmhJE xrBNUsFEMADvIq1AFWh7MbPeG1siRsDu36NepHZc3UPlugX1WkLzinyQ7j8ICbihe5oF sKGg== 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=+qUpYmYsCPZfxhmDHkhncVXOQPzNYSM0YyMssi/wNFs=; b=WvZJw5bsJNPiuC09GzIeKS1A27v2BkVdTyVkl/ynTGJqqc1kQFBQWEgEz1c9DLMaqR vPYQLZjKSw/eWsKPHLmnaKz1170L3G8GFJYFYFh9hKiRCg4D0pxKO8OOoQZHygH+pIcG AHM3VUHuwTkikOfDgudC/YWsuDwuYuxAtdGR9EsCMTTKy6GdYdyWLoekKvPU2eK8Ru1g gcQgvZb7KSsFgcuwFHG7/Nb21kP6Zv8yQbyfZ+ri51MUtsOW+Ns+79gTo/sOQh7Fqq21 ndlOUUJD9Jz7mKkvAh+7HZmcxM9GBLOQGbjD46tglLYTw4uVt2huf3+Bnqlxmtr9ug7n I4pw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=HencLT8Q; 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 jg16si791423ejc.74.2022.01.12.18.54.00; Wed, 12 Jan 2022 18:54:00 -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=HencLT8Q; 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 B942468BACE; Thu, 13 Jan 2022 04:09:46 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f175.google.com (mail-qk1-f175.google.com [209.85.222.175]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A086E68BAB3 for ; Thu, 13 Jan 2022 04:09:44 +0200 (EET) Received: by mail-qk1-f175.google.com with SMTP id 193so4896282qkh.13 for ; Wed, 12 Jan 2022 18:09:44 -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=6izMkkDTDt+RiTuuWxI8KKpOmDWEG36v4TGqUQrMmak=; b=HencLT8Q9R2NonppA7/sszUbnp8Ty4ywwEs4PzVGoEjxQ52w8HJPeS7bPjv4lK10Mg Low3d2/ieIBQP849QzOh7kiCeuaJcbFsF6K6HsY4jm3dNvcx+oT+3keB3YUgVgWNWm16 mebaKjmrquiFOOSp1kMn3En5ydea7Jfto35uzZG91f18+i2K/Wv1ojG4hYe2RCpvxbW/ bClEHpM3OQrFyRkr4vt7mLdmMdDanRaJNUkOLMfu1rGFMlfHeMjEmYm/GPNy+jK9oqJ8 kPjy6zoBaY2v8xGjPDI82lZvnGS2GM8NbYYKZcbBCo/f/226GckUS4Flv1kIlcOI6wvk o+0w== 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=6izMkkDTDt+RiTuuWxI8KKpOmDWEG36v4TGqUQrMmak=; b=pKmK3zvqxBodg0WaWydFXi48BvuzHqh0oYbUY9CnwMaZvyv7JC8ffIqbeRBIWP/icN HsXfCfUUWNLQn98SO4K0i4CpQwSjHBr/NPBjaMIr203Yg81uRcWGrrC3W6L1UapTk4gS voH4YANyRrffTVExgQ7IQVwGxnhRG4SepOChKJDQJhdzhqU03pembUNXhOKtY3Wht/Gc jWAxRI9Pqu4DJ58JXSlJClPWonvIwwHUrzgQqXUjjeVBKR/Dq/+N1L+ZfTxHcbeREink 70jLw3FKTzDgIx+INbPbY75TQVzbZaCeZSp51aXlyYsa2b47SsbKfAW/bfn3WYHDse9v JZpA== X-Gm-Message-State: AOAM533XNIH6JZFuk24AcStwnolS7NKOem92YIH5i9mEeHMeFPd2nBEm C1E+1e2ivjHdGHFD+cpXWAL92VrWHA4= X-Received: by 2002:a05:620a:240f:: with SMTP id d15mr1861415qkn.370.1642039782919; Wed, 12 Jan 2022 18:09:42 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id u6sm1068031qko.83.2022.01.12.18.09.41 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 18:09:42 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:09:13 -0300 Message-Id: <20220113020913.870-12-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 281/281] mov: Implement spatial audio support 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: BTeBepCiFeah From: Vittorio Giovara As defined by Google's Spatial Audio RFC. Signed-off-by: Vittorio Giovara Signed-off-by: Anton Khirnov Signed-off-by: James Almer --- libavformat/mov.c | 96 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) diff --git a/libavformat/mov.c b/libavformat/mov.c index e307df8e3c..d6d287262d 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -7193,6 +7193,100 @@ cleanup: return ret; } +static int mov_read_SA3D(MOVContext *c, AVIOContext *pb, MOVAtom atom) +{ + AVStream *st; + int i, version, type; + int ambisonic_order, channel_order, normalization, channel_count; + + if (c->fc->nb_streams < 1) + return 0; + + st = c->fc->streams[c->fc->nb_streams - 1]; + + if (atom.size < 16) { + av_log(c->fc, AV_LOG_ERROR, "SA3D audio box too small\n"); + return AVERROR_INVALIDDATA; + } + + version = avio_r8(pb); + if (version) { + av_log(c->fc, AV_LOG_WARNING, "Unsupported SA3D box version %d\n", version); + return 0; + } + + type = avio_r8(pb); + if (type) { + av_log(c->fc, AV_LOG_WARNING, + "Unsupported ambisonic type %d\n", type); + return 0; + } + + ambisonic_order = avio_rb32(pb); + + channel_order = avio_r8(pb); + if (channel_order) { + av_log(c->fc, AV_LOG_WARNING, + "Unsupported channel_order %d\n", channel_order); + return 0; + } + + normalization = avio_r8(pb); + if (normalization) { + av_log(c->fc, AV_LOG_WARNING, + "Unsupported normalization %d\n", normalization); + return 0; + } + + channel_count = avio_rb32(pb); + if (channel_count != (ambisonic_order + 1) * (ambisonic_order + 1)) { + av_log(c->fc, AV_LOG_ERROR, + "Invalid number of channels (%d / %d)\n", + channel_count, ambisonic_order); + return 0; + } + + for (i = 0; i < channel_count; i++) { + if (i != avio_rb32(pb)) { + av_log(c->fc, AV_LOG_WARNING, + "Ambisonic channel reordering is not supported\n"); + return 0; + } + } + + av_channel_layout_uninit(&st->codecpar->ch_layout); + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_AMBISONIC; + st->codecpar->ch_layout.nb_channels = channel_count; + + return 0; +} + +static int mov_read_SAND(MOVContext *c, AVIOContext *pb, MOVAtom atom) +{ + AVStream *st; + int version; + + if (c->fc->nb_streams < 1) + return 0; + + st = c->fc->streams[c->fc->nb_streams - 1]; + + if (atom.size < 5) { + av_log(c->fc, AV_LOG_ERROR, "Empty SAND audio box\n"); + return AVERROR_INVALIDDATA; + } + + version = avio_r8(pb); + if (version) { + av_log(c->fc, AV_LOG_WARNING, "Unsupported SAND box version %d\n", version); + return 0; + } + + st->disposition |= AV_DISPOSITION_NON_DIEGETIC; + + return 0; +} + static const MOVParseTableEntry mov_default_parse_table[] = { { MKTAG('A','C','L','R'), mov_read_aclr }, { MKTAG('A','P','R','G'), mov_read_avid }, @@ -7292,6 +7386,8 @@ static const MOVParseTableEntry mov_default_parse_table[] = { { MKTAG('d','v','v','C'), mov_read_dvcc_dvvc }, { MKTAG('d','v','w','C'), mov_read_dvcc_dvvc }, { MKTAG('k','i','n','d'), mov_read_kind }, +{ MKTAG('S','A','3','D'), mov_read_SA3D }, /* ambisonic audio box */ +{ MKTAG('S','A','N','D'), mov_read_SAND }, /* non diegetic audio box */ { 0, NULL } };