From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 6900044192 for ; Sun, 30 Oct 2022 18:19:14 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id F1FD668BD13; Sun, 30 Oct 2022 20:19:11 +0200 (EET) Received: from mail-ua1-f45.google.com (mail-ua1-f45.google.com [209.85.222.45]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 019D868B883 for ; Sun, 30 Oct 2022 20:19:05 +0200 (EET) Received: by mail-ua1-f45.google.com with SMTP id e26so4303871uaa.7 for ; Sun, 30 Oct 2022 11:19:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:subject:message-id:date:from:references:in-reply-to:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=RD9FCwANmToEmEtTyawEE2jKJ3gWw2FPZXEZ4znXyNM=; b=AHQEWEUefd9TJw9Zlqu4yNQnSknYQ9g66YvsR1KHnzjaqWeFMwiLb0NLfoA0YNAwSt qViZmeQNFg/AGKJ8QEzIy6F1voU86vrEQMLcv04fyMtjRS+QWFNtVbyl/0tZwQd0KWRJ 9oHLwRnjY1PQttv5RckaeA/qtX+Tw6A7LbruQiHIGv+NJLh+wM9H8wXeaA+5gxJrqjBu fPGOO95RDAjxfrDXXSt63/zx4ylaircp7cl0s7sE3gC2o8oDzal/SgKhRR8QuqpUFX84 cZ9x/DjX02Nhi9G+lnTVPT0TUdg1Q5K8wj2pwKKkvWhe+7ZrHB1DXjUjNr9ffs6ddTE1 cCYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:references:in-reply-to:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=RD9FCwANmToEmEtTyawEE2jKJ3gWw2FPZXEZ4znXyNM=; b=jmcO2Yln+oEpnhA1b2nx80mfuaG5sOWq6UF9052kzHiJd6bEJ3+UDD1T9NQjjA+Wnv WCof7/gVg8G5cYoUJMDYJkow2CVlI/VBJrDVtwZ4M2FKcPF5Sra+5lITlYcEVvt1SfnH JvVg7GQZlGNBcVTS/ZVSquTnBMp9o8yfvguV+ePl7G0Yg7qpY4ATxPb+g+K8u1hyabGB GuvwdRx7O0sPk2atcUTqVcpOXpkTdfCvS6hncr91HtLXvluX7NSxIuz4g4NtOsLc0lMJ dIANZ9e7IVjqAcoxYmqB88iXdaGc5b/doee2mITuyiKtHnIeYuu+oWyitvJN3z3yilIh tuuA== X-Gm-Message-State: ACrzQf1QLrg9evtVxaJfY4Lq9JPpxaQvLYpFoC/1hqrBqM3WR02lrxmh yo+WlMwbOWkJLssR51EtfLqXgc2eVDS0CQYNBx49ESe5 X-Google-Smtp-Source: AMsMyM4NNEZsH9AqGyrnn45cVNWluy7kldKre4qlU7VvTLrdhAsV1OSPYGrZfmQyuMC/gd2fu5vVD9juS7z04/FTsHI= X-Received: by 2002:ab0:2755:0:b0:411:3d6f:fe18 with SMTP id c21-20020ab02755000000b004113d6ffe18mr2999845uap.41.1667153944434; Sun, 30 Oct 2022 11:19:04 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a05:612c:612:b0:314:ac6a:1eb7 with HTTP; Sun, 30 Oct 2022 11:19:03 -0700 (PDT) In-Reply-To: <103b6b6c-5c56-2af7-bde6-1e1706d21930@gmail.com> References: <103b6b6c-5c56-2af7-bde6-1e1706d21930@gmail.com> From: Paul B Mahol Date: Sun, 30 Oct 2022 19:19:03 +0100 Message-ID: To: FFmpeg development discussions and patches Subject: Re: [FFmpeg-devel] [PATCH] avfilter: add ambisonic decoder filter X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: On 10/30/22, James Almer wrote: > On 10/30/2022 12:34 PM, Paul B Mahol wrote: >> +static const struct { >> + const int order; >> + const int inputs; >> + const int speakers; >> + const int near_field; >> + const int type; >> + const double xover; >> + const AVChannelLayout outlayout; >> + const double *speakers_azimuth; >> + const double *speakers_elevation; >> + const double *speakers_distance; >> +} ambisonic_tab[] = { >> + [MONO] = { >> + .order = 0, >> + .inputs = 1, >> + .speakers = 1, >> + .near_field = NF_NONE, >> + .xover = 0., >> + .outlayout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO, >> + .speakers_azimuth = (const double[1]){ 0. }, >> + .speakers_distance = (const double[1]){ 1. }, >> + }, >> + [STEREO] = { >> + .order = 1, >> + .inputs = 4, >> + .speakers = 2, >> + .near_field = NF_NONE, >> + .xover = 0., >> + .outlayout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO, >> + .speakers_azimuth = (const double[2]){ -30, 30}, >> + .speakers_distance = same_distance, >> + }, >> + [STEREO_DOWNMIX] = { >> + .order = 1, >> + .inputs = 4, >> + .speakers = 2, >> + .near_field = NF_NONE, >> + .xover = 0., >> + .outlayout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO_DOWNMIX, >> + .speakers_azimuth = (const double[2]){ -90, 90 }, >> + .speakers_distance = same_distance, >> + }, >> + [SURROUND] = { >> + .order = 1, >> + .inputs = 4, >> + .speakers = 3, >> + .near_field = NF_NONE, >> + .xover = 0., >> + .outlayout = (AVChannelLayout)AV_CHANNEL_LAYOUT_SURROUND, >> + .speakers_azimuth = (const double[3]){ -45, 45, 0 }, >> + .speakers_distance = same_distance, >> + }, >> + [L2_1] = { >> + .order = 1, >> + .inputs = 4, >> + .speakers = 3, >> + .near_field = NF_NONE, >> + .xover = 0., >> + .outlayout = (AVChannelLayout)AV_CHANNEL_LAYOUT_2_1, >> + .speakers_azimuth = (const double[3]){ -45, 45, 180 }, >> + .speakers_distance = same_distance, >> + }, >> + [TRIANGLE] = { >> + .order = 1, >> + .inputs = 4, >> + .speakers = 3, >> + .type = 1, >> + .near_field = NF_NONE, >> + .xover = 0., >> + .outlayout = (AVChannelLayout)AV_CHANNEL_LAYOUT_SURROUND, >> + .speakers_azimuth = (const double[3]){ -120, 120, 0 }, >> + .speakers_distance = same_distance, >> + }, >> + [QUAD] = { >> + .order = 1, >> + .inputs = 4, >> + .speakers = 4, >> + .near_field = NF_NONE, >> + .xover = 0., >> + .outlayout = (AVChannelLayout)AV_CHANNEL_LAYOUT_QUAD, >> + .speakers_azimuth = (const double[4]){ -45, 45, -135, 135 }, >> + .speakers_distance = same_distance, >> + }, >> + [SQUARE] = { >> + .order = 1, >> + .inputs = 4, >> + .speakers = 4, >> + .type = 1, >> + .near_field = NF_NONE, >> + .xover = 0., >> + .outlayout = (AVChannelLayout)AV_CHANNEL_LAYOUT_4POINT0, >> + .speakers_azimuth = (const double[4]){ 0, -90, 180, 90 }, >> + .speakers_distance = same_distance, >> + }, >> + [L4_0] = { >> + .order = 1, >> + .inputs = 4, >> + .speakers = 4, >> + .near_field = NF_NONE, >> + .xover = 0., >> + .outlayout = (AVChannelLayout)AV_CHANNEL_LAYOUT_4POINT0, >> + .speakers_azimuth = (const double[4]){ -30, 30, 0, 180 }, >> + .speakers_distance = same_distance, >> + }, >> + [L5_0] = { >> + .order = 1, >> + .inputs = 4, >> + .speakers = 5, >> + .near_field = NF_NONE, >> + .xover = 0., >> + .outlayout = (AVChannelLayout)AV_CHANNEL_LAYOUT_5POINT0_BACK, >> + .speakers_azimuth = (const double[5]){ -30, 30, 0, -145, 145 }, >> + .speakers_distance = same_distance, >> + }, >> + [L5_0_SIDE] = { >> + .order = 1, >> + .inputs = 4, >> + .speakers = 5, >> + .near_field = NF_NONE, >> + .xover = 0., >> + .outlayout = (AVChannelLayout)AV_CHANNEL_LAYOUT_5POINT0, >> + .speakers_azimuth = (const double[5]){ -30, 30, 0, -110, 110 }, >> + .speakers_distance = same_distance, >> + }, >> + [L6_0] = { >> + .order = 1, >> + .inputs = 4, >> + .speakers = 6, >> + .near_field = NF_NONE, >> + .xover = 0., >> + .outlayout = (AVChannelLayout)AV_CHANNEL_LAYOUT_6POINT0, >> + .speakers_azimuth = (const double[6]){ -30, 30, 0, 180, -110, 110 >> }, >> + .speakers_distance = same_distance, >> + }, >> + [L7_0] = { >> + .order = 1, >> + .inputs = 4, >> + .speakers = 7, >> + .near_field = NF_NONE, >> + .xover = 0., >> + .outlayout = (AVChannelLayout)AV_CHANNEL_LAYOUT_7POINT0, >> + .speakers_azimuth = (const double[7]){ -30, 30, 0, -145, 145, >> -110, 110 }, >> + .speakers_distance = same_distance, >> + }, >> + [TETRA] = { >> + .order = 1, >> + .inputs = 4, >> + .speakers = 4, >> + .type = 2, >> + .near_field = NF_NONE, >> + .xover = 0., >> + .outlayout = (AVChannelLayout)AV_CHANNEL_LAYOUT_QUAD, >> + .speakers_azimuth = (const double[4]){ -90, 90, 0, 180 }, >> + .speakers_elevation = (const double[4]){ -35.3, -35.3, 35.3, 35.3 >> }, >> + .speakers_distance = same_distance, >> + }, >> + [CUBE] = { >> + .order = 1, >> + .inputs = 4, >> + .speakers = 8, >> + .type = 2, >> + .near_field = NF_NONE, >> + .xover = 0., >> + .outlayout = (AVChannelLayout)AV_CHANNEL_LAYOUT_7POINT1, > > 7.1 defines an LFE channel, which is clearly not intended here, so it > should be either: > > .outlayout = (AVChannelLayout)AV_CHANNEL_LAYOUT_MASK(8, > AV_CH_LAYOUT_QUAD | > AV_CH_TOP_FRONT_LEFT | > AV_CH_TOP_FRONT_RIGHT | > AV_CH_TOP_BACK_LEFT | > AV_CH_TOP_BACK_RIGHT), > > Or the AV_CHANNEL_LAYOUT_CUBE layout (using the exact same bitmask as > above) after the patch i sent just now is committed. CUBE is as real cube in 3d space. No current layout in API can be described correctly. > >> + .speakers_azimuth = cube_azimuth, >> + .speakers_elevation = cube_elevation, >> + .speakers_distance = same_distance, >> + }, > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". > _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".