From patchwork Tue Jun 16 21:02:49 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Jan_Ekstr=C3=B6m?= X-Patchwork-Id: 20431 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 7CBB544B488 for ; Wed, 17 Jun 2020 00:11:17 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6475768B655; Wed, 17 Jun 2020 00:11:17 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f43.google.com (mail-wr1-f43.google.com [209.85.221.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0C97C68B643 for ; Wed, 17 Jun 2020 00:11:09 +0300 (EEST) Received: by mail-wr1-f43.google.com with SMTP id r7so143514wro.1 for ; Tue, 16 Jun 2020 14:11:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=P0NXZWGyxi2eHul2RPCJqoyvCeN2tQhyvfG/eJXTBXU=; b=nfregGtZNgDfNeVmi6td9VnvUp8UDnlNEStzOAG8AoBQKw/1FpMl10/4agcQjPGe8U ZIgjydbzNCXucXxZHAlGLSeGfIkAADI43EPLKARZsD6oz6II/RwFmvN58SxsuOEokTQ4 MokR8liQ5l4rfNjxyUXO0i8MZKSkgVGKelYpqXDSeDy+M+6ynLug7G7bN+Bv1ZjLb4WP UEhFGprGI9lKtHJSUsB8QU7x52jBjGKw3XKVU9wiQB0pewzx9o3224Skxgb7Gon3YLAA E6UPxQkNBNSqNx/jsOeC0qpk9XoI2ggZch65p7/UfUSsGL8lBS01J4zAR8Q1sfz2UxJ6 aD/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=P0NXZWGyxi2eHul2RPCJqoyvCeN2tQhyvfG/eJXTBXU=; b=Kg4EFUDEt3rxyDGrmvZojGDe9+J2Y6aTV24Zmii0eWS1lDSMEsvu+XCSMpbJ8EqimO LEdBvJD5EbNSPdhbWOZ6rQc3g2lm8AAbePdTtZRMkFUdt6FqadXjKWNwKXdnzyO8mS3v POgHIJnoExTuL6ODSEXiJnEJbFQcnQj9QzNxyyWxCWUxqZ0xtp41C6NlkgJYUT0sgA2V e6CVLsHgvE0UKK5BzgRgSFjBAHUsV5Sr4nn5A619Ta16AR08CW5X7uTdD5xr7UqbsY6V +IlTFA1LZ3NBdMK0T73pFatAzkbneG2b16QKPDt6N/Jo01ZCTduMKQfzKzhQPoEubImM sBPw== X-Gm-Message-State: AOAM531xWMstwadf08TokW6GG/IYOYtdVftWaKPhKxwEqCNrIsh2b7Dg ekW8Qyy1+iOdvoBpoYFiNNjAML2t X-Google-Smtp-Source: ABdhPJyHUfPatn+qdgcOD6rbHEizFJD15vra1rJx/DEewb33T240W11VgSV0WVhzYZ18UgWAcvFnKg== X-Received: by 2002:a19:8a07:: with SMTP id m7mr2685761lfd.31.1592341375925; Tue, 16 Jun 2020 14:02:55 -0700 (PDT) Received: from localhost.localdomain (91-159-194-103.elisa-laajakaista.fi. [91.159.194.103]) by smtp.gmail.com with ESMTPSA id c5sm4608925ljj.37.2020.06.16.14.02.55 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Jun 2020 14:02:55 -0700 (PDT) From: =?utf-8?q?Jan_Ekstr=C3=B6m?= To: ffmpeg-devel@ffmpeg.org Date: Wed, 17 Jun 2020 00:02:49 +0300 Message-Id: <20200616210253.7169-2-jeebjp@gmail.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200616210253.7169-1-jeebjp@gmail.com> References: <20200616210253.7169-1-jeebjp@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/5] avutil/channel_layout: add 22.2 layout X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Requires some extraneous top side and bottom front channels to be defined. According to STD-B59v2, the defined channel layout is: - FL - FR - FC - LFE1 - BL - BR - FLc - FRc - BC - LFE2 - SiL - SiR - TpFL - TpFR - TpFC - TpC - TpBL - TpBR - TpSiL - TpSiR - TpBC - BtFC - BtFL - BtFR --- doc/APIchanges | 5 +++++ libavutil/channel_layout.c | 6 ++++++ libavutil/channel_layout.h | 6 ++++++ libavutil/version.h | 2 +- 4 files changed, 18 insertions(+), 1 deletion(-) diff --git a/doc/APIchanges b/doc/APIchanges index 1d6cc36b8c..84fe736454 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -15,6 +15,11 @@ libavutil: 2017-10-21 API changes, most recent first: +2020-06-16 - xxxxxxxxxx - lavu 56.56.100 - channel_layout.h + Add AV_CH_LAYOUT_22POINT2 together with its newly required pieces: + AV_CH_TOP_SIDE_LEFT, AV_CH_TOP_SIDE_RIGHT, AV_CH_BOTTOM_FRONT_LEFT, + AV_CH_BOTTOM_FRONT_CENTER, AV_CH_BOTTOM_FRONT_RIGHT. + 2020-06-12 - b09fb030c1 - lavu 56.55.100 - pixdesc.h Add AV_PIX_FMT_X2RGB10. diff --git a/libavutil/channel_layout.c b/libavutil/channel_layout.c index 3bd5ee29b7..d6bfc74927 100644 --- a/libavutil/channel_layout.c +++ b/libavutil/channel_layout.c @@ -62,6 +62,11 @@ static const struct channel_name channel_names[] = { [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] = { "BFL", "bottom front left" }, + [39] = { "BFC", "bottom front center" }, + [40] = { "BFR", "bottom front right" }, }; static const char *get_channel_name(int channel_id) @@ -104,6 +109,7 @@ static const struct { { "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, }, }; static uint64_t get_channel_layout_single(const char *name, int name_len) diff --git a/libavutil/channel_layout.h b/libavutil/channel_layout.h index 50bb8f03c5..43297505cb 100644 --- a/libavutil/channel_layout.h +++ b/libavutil/channel_layout.h @@ -71,6 +71,11 @@ #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_LEFT 0x0000004000000000ULL +#define AV_CH_BOTTOM_FRONT_CENTER 0x0000008000000000ULL +#define AV_CH_BOTTOM_FRONT_RIGHT 0x0000010000000000ULL /** Channel mask value used for AVCodecContext.request_channel_layout to indicate that the user requests the channel order of the decoder output @@ -110,6 +115,7 @@ #define AV_CH_LAYOUT_OCTAGONAL (AV_CH_LAYOUT_5POINT0|AV_CH_BACK_LEFT|AV_CH_BACK_CENTER|AV_CH_BACK_RIGHT) #define AV_CH_LAYOUT_HEXADECAGONAL (AV_CH_LAYOUT_OCTAGONAL|AV_CH_WIDE_LEFT|AV_CH_WIDE_RIGHT|AV_CH_TOP_BACK_LEFT|AV_CH_TOP_BACK_RIGHT|AV_CH_TOP_BACK_CENTER|AV_CH_TOP_FRONT_CENTER|AV_CH_TOP_FRONT_LEFT|AV_CH_TOP_FRONT_RIGHT) #define AV_CH_LAYOUT_STEREO_DOWNMIX (AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT) +#define AV_CH_LAYOUT_22POINT2 (AV_CH_LAYOUT_5POINT1_BACK|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER|AV_CH_BACK_CENTER|AV_CH_LOW_FREQUENCY_2|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT|AV_CH_TOP_FRONT_LEFT|AV_CH_TOP_FRONT_RIGHT|AV_CH_TOP_FRONT_CENTER|AV_CH_TOP_CENTER|AV_CH_TOP_BACK_LEFT|AV_CH_TOP_BACK_RIGHT|AV_CH_TOP_SIDE_LEFT|AV_CH_TOP_SIDE_RIGHT|AV_CH_TOP_BACK_CENTER|AV_CH_BOTTOM_FRONT_CENTER|AV_CH_BOTTOM_FRONT_LEFT|AV_CH_BOTTOM_FRONT_RIGHT) enum AVMatrixEncoding { AV_MATRIX_ENCODING_NONE, diff --git a/libavutil/version.h b/libavutil/version.h index 3ce9b1831e..a63f79feb1 100644 --- a/libavutil/version.h +++ b/libavutil/version.h @@ -79,7 +79,7 @@ */ #define LIBAVUTIL_VERSION_MAJOR 56 -#define LIBAVUTIL_VERSION_MINOR 55 +#define LIBAVUTIL_VERSION_MINOR 56 #define LIBAVUTIL_VERSION_MICRO 100 #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ From patchwork Tue Jun 16 21:02:50 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Jan_Ekstr=C3=B6m?= X-Patchwork-Id: 20430 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 7D41944ACBE for ; Wed, 17 Jun 2020 00:10:55 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 665F368B5FC; Wed, 17 Jun 2020 00:10:55 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lf1-f66.google.com (mail-lf1-f66.google.com [209.85.167.66]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F231868B4F0 for ; Wed, 17 Jun 2020 00:10:48 +0300 (EEST) Received: by mail-lf1-f66.google.com with SMTP id z206so12651915lfc.6 for ; Tue, 16 Jun 2020 14:10:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=c5fsJJHpQBL8285Nv/kewIMqUX4bbJWzfjqTaoHB1MM=; b=II9xsb++omVeA9QjvyHyPTfPeo7sizsVa4CkKEpdCqjyoBmxtodnPjd+0TZFSfu8g2 jQhOOP4as29kspYMEHrjioCn/tajRPZIStduRHIIQ/VFWxZ9MgYn7HxJAl/yeHvzDunH IRWKyqCD6mOgpHY+cO/baz2KRtF+7F61F2WMi7ymWkl6ZT9I0snuiHU5eJWivepWzuRs Xda/PFAvblo2ae8F7hZEgMjVJ4EUSZS4UZEEWaMJg+QDlgxS+4ZnNlj1XUKfboUkphSh JNe0/skoEWF+J7WqfNxwP8ngcrD6yPMfqMZD5IUfAhP3cWcm2LEWbVKuRKJsYw+Dy5f8 pdhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=c5fsJJHpQBL8285Nv/kewIMqUX4bbJWzfjqTaoHB1MM=; b=CF193M+T9M78S7og3mAFv94CvANcO+2HlTwXWfAUznM2FhNjgRmSkeolNQL2YvsCdQ MIUUCmTh6h7hHwoJ+OLbGTaXgUehc+KM9at05VVcZLKWwrwXBR21CDeoFuddiE4+uD+V AfvEftugjYIB9g/0FAQTYWTAfwPbHKUnQQ1tw2XJ7lQsnXfgZURc1c3WgEUWX0b/1FtV Id6grbC1q5nVLMZoOcL5M9zLDLyUjHL3wjMI3ki0ktxjV6ii4m3PtR6Kz9mODchmMdl9 8Xty3vxknc6In7LzTgpEU40eM9+6PaQFyYYKRom01gO4gOEd3bKgJw0ij9ClPpvd5X+N 4MNg== X-Gm-Message-State: AOAM531wXW2LZGAtHk75LMZvyQ/zswHIf9TjF9FzwXd4WrqscDvKDyF9 iTCLU64JrYrn5qkRxfUCRmF0uiyW X-Google-Smtp-Source: ABdhPJyvez8MNGIxKqyc2CcNbB0bF/TOFesZXwYUSUqVCeUQdGW5fwuKLpM5ZkDRc4VJ2n/H8+CS5w== X-Received: by 2002:a2e:87c2:: with SMTP id v2mr2309378ljj.147.1592341376916; Tue, 16 Jun 2020 14:02:56 -0700 (PDT) Received: from localhost.localdomain (91-159-194-103.elisa-laajakaista.fi. [91.159.194.103]) by smtp.gmail.com with ESMTPSA id c5sm4608925ljj.37.2020.06.16.14.02.55 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Jun 2020 14:02:56 -0700 (PDT) From: =?utf-8?q?Jan_Ekstr=C3=B6m?= To: ffmpeg-devel@ffmpeg.org Date: Wed, 17 Jun 2020 00:02:50 +0300 Message-Id: <20200616210253.7169-3-jeebjp@gmail.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200616210253.7169-1-jeebjp@gmail.com> References: <20200616210253.7169-1-jeebjp@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/5] avcodec/mpeg4audio: add newer channel_coding mappings X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Additionally, add comments regarding their definitions. Based on ARIB STD-B32, which bases on 14496-3:2009 and 14496-3:2009/AMD4. --- libavcodec/mpeg4audio.c | 17 +++++++++++++++-- libavcodec/mpeg4audio.h | 2 +- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/libavcodec/mpeg4audio.c b/libavcodec/mpeg4audio.c index 0d83fb8d25..77cf2fb61c 100644 --- a/libavcodec/mpeg4audio.c +++ b/libavcodec/mpeg4audio.c @@ -64,8 +64,21 @@ const int avpriv_mpeg4audio_sample_rates[16] = { 24000, 22050, 16000, 12000, 11025, 8000, 7350 }; -const uint8_t ff_mpeg4audio_channels[8] = { - 0, 1, 2, 3, 4, 5, 6, 8 +const uint8_t ff_mpeg4audio_channels[14] = { + 0, + 1, // mono (1/0) + 2, // stereo (2/0) + 3, // 3/0 + 4, // 3/1 + 5, // 3/2 + 6, // 3/2.1 + 8, // 5/2.1 + 0, + 0, + 0, + 7, // 3/3.1 + 8, // 3/2/2.1 + 24 // 3/3/3 - 5/2/3 - 3/0/0.2 }; static inline int get_object_type(GetBitContext *gb) diff --git a/libavcodec/mpeg4audio.h b/libavcodec/mpeg4audio.h index 4b390e0f42..c4cdc1508c 100644 --- a/libavcodec/mpeg4audio.h +++ b/libavcodec/mpeg4audio.h @@ -46,7 +46,7 @@ typedef struct MPEG4AudioConfig { } MPEG4AudioConfig; extern av_export_avcodec const int avpriv_mpeg4audio_sample_rates[16]; -extern const uint8_t ff_mpeg4audio_channels[8]; +extern const uint8_t ff_mpeg4audio_channels[14]; /** * Parse MPEG-4 systems extradata from a potentially unaligned GetBitContext to retrieve audio configuration. From patchwork Tue Jun 16 21:02:51 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Jan_Ekstr=C3=B6m?= X-Patchwork-Id: 20427 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id F320C44A400 for ; Wed, 17 Jun 2020 00:09:15 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C22BC68B5B6; Wed, 17 Jun 2020 00:09:15 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ej1-f52.google.com (mail-ej1-f52.google.com [209.85.218.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DB3CE68B49E for ; Wed, 17 Jun 2020 00:09:09 +0300 (EEST) Received: by mail-ej1-f52.google.com with SMTP id dr13so23216312ejc.3 for ; Tue, 16 Jun 2020 14:09:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=MPwjpnkh9oaCUNeq4za/dJgIemq9IpafXt3vfCfU7Fw=; b=BkfmW5OFOW7NUZ8GS3h6BMtsbdCvB+hdL0GfRlns0p+KZKH1y8SJAqU8spahLbTB87 Y3LABlWzZfNXHszKLMidE9Zieu1Ebs8wZSK0/3YodvCB2TtdQCDmA5C2JOki27knMHRi bdrKx/NNjgqmT8UNyFeGSjTq7S9H2C7Md+Z8cOKPtZpdakqVgh/pt50XHdf6MSaHUSqP Q0biEgY+ggTVKoBHN96nzpsxHJ0Kfow4n23eHdS8z723xSQc+8JFeZgJwFLLZ9JvJU5b hGD7uIq0V1eIJYB9Nl3boAX7JcNIUqhKAfxOml3J0zUsiiDuv/qHpchkIi9R+tNEMjMr 4J9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=MPwjpnkh9oaCUNeq4za/dJgIemq9IpafXt3vfCfU7Fw=; b=m3TBDAFjAFbNl0ceycxYr4INTBDX/aI6xkoLsbz09Rw2MU4qV/xxyFZ4zdREvtVBwL RY2HHrmKff07wMXruq8IEjD+UXVLKEKzB3Cf7RWdsNqETn3KuN3JQoI2e4Lp1KNsJZhD gviceKRISNPtCet2CnSm5r9lZ90uZZj9lvp4tVUnhbSj/SKfzakgGzBXhq2QH7vCx2tO tt2x+FujM6LaaSaquk9gTe42PiL3iyAPSSDBwR2es4865xYa6jvzrZOP7Fh9Exz/RwOf wf8edS5X2hNMxpdTTLadguedJhm2t2Qx6pihQdR9ySZ99FtPa1BUlroc7guAL/eu+LUN znzw== X-Gm-Message-State: AOAM533rDBpw3P1CpDjaQz0j+MINRmvOmh0CltCvfgFoCBlU6+BrvdMI p+pVVXWiaCj08tq+p2WwWEHxSUKW X-Google-Smtp-Source: ABdhPJypat2TNUiAPDel919LyLyJAVuo1/A+QFrUc67Xxp9O0wgMET03wx/3WtB+vkZoDRDBawBqoQ== X-Received: by 2002:ac2:511d:: with SMTP id q29mr2689562lfb.24.1592341377963; Tue, 16 Jun 2020 14:02:57 -0700 (PDT) Received: from localhost.localdomain (91-159-194-103.elisa-laajakaista.fi. [91.159.194.103]) by smtp.gmail.com with ESMTPSA id c5sm4608925ljj.37.2020.06.16.14.02.56 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Jun 2020 14:02:57 -0700 (PDT) From: =?utf-8?q?Jan_Ekstr=C3=B6m?= To: ffmpeg-devel@ffmpeg.org Date: Wed, 17 Jun 2020 00:02:51 +0300 Message-Id: <20200616210253.7169-4-jeebjp@gmail.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200616210253.7169-1-jeebjp@gmail.com> References: <20200616210253.7169-1-jeebjp@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/5] avcodec/aacdectab: add mapping for 22.2 X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Utilizes the newly added 22.2 channel layout for channel_layout 13. --- libavcodec/aacdectab.h | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/libavcodec/aacdectab.h b/libavcodec/aacdectab.h index baf51a74bf..c54a3eb943 100644 --- a/libavcodec/aacdectab.h +++ b/libavcodec/aacdectab.h @@ -35,9 +35,9 @@ #include -static const int8_t tags_per_config[16] = { 0, 1, 1, 2, 3, 3, 4, 5, 0, 0, 0, 4, 5, 0, 5, 0 }; +static const int8_t tags_per_config[16] = { 0, 1, 1, 2, 3, 3, 4, 5, 0, 0, 0, 4, 5, 16, 5, 0 }; -static const uint8_t aac_channel_layout_map[16][5][3] = { +static const uint8_t aac_channel_layout_map[16][16][3] = { { { TYPE_SCE, 0, AAC_CHANNEL_FRONT }, }, { { TYPE_CPE, 0, AAC_CHANNEL_FRONT }, }, { { TYPE_SCE, 0, AAC_CHANNEL_FRONT }, { TYPE_CPE, 0, AAC_CHANNEL_FRONT }, }, @@ -50,6 +50,24 @@ static const uint8_t aac_channel_layout_map[16][5][3] = { { { 0, } }, { { TYPE_SCE, 0, AAC_CHANNEL_FRONT }, { TYPE_CPE, 0, AAC_CHANNEL_FRONT }, { TYPE_CPE, 1, AAC_CHANNEL_BACK }, { TYPE_SCE, 1, AAC_CHANNEL_BACK }, { TYPE_LFE, 0, AAC_CHANNEL_LFE }, }, { { TYPE_SCE, 0, AAC_CHANNEL_FRONT }, { TYPE_CPE, 0, AAC_CHANNEL_FRONT }, { TYPE_CPE, 1, AAC_CHANNEL_SIDE }, { TYPE_CPE, 2, AAC_CHANNEL_BACK }, { TYPE_LFE, 0, AAC_CHANNEL_LFE }, }, + { + { TYPE_SCE, 0, AAC_CHANNEL_FRONT }, // SCE1 = FC, + { TYPE_CPE, 0, AAC_CHANNEL_FRONT }, // CPE1 = FLc and FRc, + { TYPE_CPE, 1, AAC_CHANNEL_FRONT }, // CPE2 = FL and FR, + { TYPE_CPE, 2, AAC_CHANNEL_SIDE }, // CPE3 = SiL and SiR, + { TYPE_CPE, 3, AAC_CHANNEL_BACK }, // CPE4 = BL and BR, + { TYPE_SCE, 1, AAC_CHANNEL_BACK }, // SCE2 = BC, + { TYPE_LFE, 0, AAC_CHANNEL_LFE }, // LFE1 = LFE1, + { TYPE_LFE, 1, AAC_CHANNEL_LFE }, // LFE2 = LFE2, + { TYPE_SCE, 2, AAC_CHANNEL_FRONT }, // SCE3 = TpFC, + { TYPE_CPE, 4, AAC_CHANNEL_FRONT }, // CPE5 = TpFL and TpFR, + { TYPE_CPE, 5, AAC_CHANNEL_SIDE }, // CPE6 = TpSiL and TpSiR, + { TYPE_SCE, 3, AAC_CHANNEL_FRONT }, // SCE4 = TpC, + { TYPE_CPE, 6, AAC_CHANNEL_BACK }, // CPE7 = TpBL and TpBR, + { TYPE_SCE, 4, AAC_CHANNEL_BACK }, // SCE5 = TpBC, + { TYPE_SCE, 5, AAC_CHANNEL_FRONT }, // SCE6 = BtFC, + { TYPE_CPE, 7, AAC_CHANNEL_FRONT }, // CPE8 = BtFL and BtFR + }, { { 0, } }, /* TODO: Add 7+1 TOP configuration */ }; @@ -67,6 +85,7 @@ static const uint64_t aac_channel_layout[16] = { 0, AV_CH_LAYOUT_6POINT1, AV_CH_LAYOUT_7POINT1, + AV_CH_LAYOUT_22POINT2, 0, /* AV_CH_LAYOUT_7POINT1_TOP, */ }; From patchwork Tue Jun 16 21:02:52 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Jan_Ekstr=C3=B6m?= X-Patchwork-Id: 20432 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 9BE5444B747 for ; Wed, 17 Jun 2020 00:32:00 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7994568B605; Wed, 17 Jun 2020 00:32:00 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ej1-f68.google.com (mail-ej1-f68.google.com [209.85.218.68]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EF3D76880EF for ; Wed, 17 Jun 2020 00:31:53 +0300 (EEST) Received: by mail-ej1-f68.google.com with SMTP id mb16so23314102ejb.4 for ; Tue, 16 Jun 2020 14:31:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=Ei13/9oDrG4KZukU5l8cHmDc6A/TyKk/PgrPMOC/Qv4=; b=dKF/mX3Tm29nr/ofIDE7Vc5sWIzKskcGeFmIfBRSuw/Z3gsoCBcCk1cVfYCa5MB+C6 o1cvxu6CjaQ0j+dIcnUtsqf5Xeb33I9UX6F77S0Yo0K2TGlwVpnNc2aIlxSvejFK1jym 7J0qFEJJPCCurVespWGRSSNr5zOEkyQGNFqurfvvwGrKtLFuS8/AQ43zOZDkrXy6b7o+ bXNpzTSI8eNnShoIi2ts64zw01yKz9D6C2gSIC9NXxojmX5yLbOQ3zdsKzBp9745wosB TU1CT/Gj2KJtJacniEnsa351E5n+1EzgOyT8Semo5XEpGfc9+O1i2SI7Bq6dYVFoCby0 0w8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Ei13/9oDrG4KZukU5l8cHmDc6A/TyKk/PgrPMOC/Qv4=; b=ufz1OVfz+X7lFIhy2qjRXXxO8Iwu3NOqd6dNXSXbbwttIPdqfWsX3IkgKoT15Qzw+V LxRujDcnemIkTkjBjX4zvOmRaSPiQPpXwWtndv2s4hdkHOZM0SWo0i+Q5eQLKhpaZnEW NWnCe1lvvCiumVifOebdAVjZSQVw6FMHqn2H+kyOWq2IlRjI1yb+ZFfJVxNVPxZERp13 X9k/mjh1o/Kp/IARSzeM5jmqv7SZTaIJe2of00XlCRIdJ9y8tZfQ1ym0RJbzLUpmQzVE qNRG2xei5c3SkOJsqTZMUtNKIv4Caxu+8gIQnLHuiAap0anun539Tf87HSDsX9usJsY3 Om6g== X-Gm-Message-State: AOAM533Wm/clAYflwsmei+9nm1N/oMAyDcYIe7rtcLgIQ2x2ceTsb1ew vBkbRReE9Z1R0Mtp+S0mQQGZXvWJ X-Google-Smtp-Source: ABdhPJwtVal4UkSPsH+dXGY2D+4lyl+zUrlNB0bYqW4DpuT0MuD8v3LeQghLsOmlfp+WS0kbcy8y2A== X-Received: by 2002:a05:651c:1022:: with SMTP id w2mr2486740ljm.262.1592341378929; Tue, 16 Jun 2020 14:02:58 -0700 (PDT) Received: from localhost.localdomain (91-159-194-103.elisa-laajakaista.fi. [91.159.194.103]) by smtp.gmail.com with ESMTPSA id c5sm4608925ljj.37.2020.06.16.14.02.58 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Jun 2020 14:02:58 -0700 (PDT) From: =?utf-8?q?Jan_Ekstr=C3=B6m?= To: ffmpeg-devel@ffmpeg.org Date: Wed, 17 Jun 2020 00:02:52 +0300 Message-Id: <20200616210253.7169-5-jeebjp@gmail.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200616210253.7169-1-jeebjp@gmail.com> References: <20200616210253.7169-1-jeebjp@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 4/5] avcodec/aacdec_template: mark second LFE element as LFE2 X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" We now have the capability to do this. --- libavcodec/aacdec_template.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/aacdec_template.c b/libavcodec/aacdec_template.c index a473e1bad7..0590e77d75 100644 --- a/libavcodec/aacdec_template.c +++ b/libavcodec/aacdec_template.c @@ -370,7 +370,7 @@ static uint64_t sniff_channel_order(uint8_t (*layout_map)[3], int tags) } while (i < tags && layout_map[i][2] == AAC_CHANNEL_LFE) { e2c_vec[i] = (struct elem_to_channel) { - .av_position = UINT64_MAX, + .av_position = AV_CH_LOW_FREQUENCY_2, .syn_ele = TYPE_LFE, .elem_id = layout_map[i][1], .aac_position = AAC_CHANNEL_LFE From patchwork Tue Jun 16 21:02:53 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Jan_Ekstr=C3=B6m?= X-Patchwork-Id: 20429 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 78E5F44ACBE for ; Wed, 17 Jun 2020 00:10:53 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5DE2268B49A; Wed, 17 Jun 2020 00:10:53 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ej1-f67.google.com (mail-ej1-f67.google.com [209.85.218.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 49BB5687F78 for ; Wed, 17 Jun 2020 00:10:47 +0300 (EEST) Received: by mail-ej1-f67.google.com with SMTP id p20so23216669ejd.13 for ; Tue, 16 Jun 2020 14:10:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=yboz4n+EfqDEV5c7UKq7Qu6nQPmssIF4L/wTBNdqfDI=; b=SL9D6V13L65xOzdLzdWq7D7jy/mUer9Vkz9wGCJA0Fmf9n3RjT6SeD8SFqcDMdhhSB 3z+cIYDf0AWDWGQ44BPLAyRqUloIdhbLfgIdzl6Y7uMc1RFMBMbsae/ipYnVtXdcERLH ymAWMaUvzddfIi5uZzggNyTv9oIGQFEPiIS/peClpLtBcAg0Kvk6JuAwhCoZSxTMbOE2 iJLSm/R6RO/ODMVTkgcwcr76Pu9MuR9Og03xg4PArjrIfq4g6TNkvo3tUpVF8uk7P/+3 11PaX0lKTASNlspOTVxPXUnrcYVNiYsO0zxENXmvf/9PXeVkBOLuH2zvorOSO1HDsUru WZKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=yboz4n+EfqDEV5c7UKq7Qu6nQPmssIF4L/wTBNdqfDI=; b=HhyiTvg5+UJTIqWu57jxTO/vdxGS2EpaDX2sYaFKRZ2VYHjn9IflcX9xA9ojM7Ucg3 9ObeOwizGlDKhbdknkvbFwmRz/8isGqhgZjRu1qrUOLjrFRds+RtNpMgEn5r/yYjHUwk sx9WINA1DGcnSjLStHepJU5XWKmH9K8WKMc5S4uPJl6wQeNh5wZ09qnzpx8908V2WVIU 4JeywY+ESl8DHBhdBBViOVUHRwf9TrUByOObQd7C2iXyW53l44mDrWTf9oCve/8uI1pq vlhM4o8Hgm0Y53ikpEAhY1Bp65DGz8Ebu0xFAR/sKeI8LF5n7leNW46NIn+0TJ1mJD5n ohEQ== X-Gm-Message-State: AOAM531EypmrHb7xWo7I+ulmzcbFAjS2e3DIh68Bp0XQ8g/8RlTO5ovK oo2K3lq7Klw/ZnTO7F1flPWhbyhr X-Google-Smtp-Source: ABdhPJwKlW3VTlSJWnlUXX0CPnZhgiOyLO2uXfft99aEwaETUs5qErcxek4GaNg0kdTt0MKvuwtwdg== X-Received: by 2002:a2e:8055:: with SMTP id p21mr2555724ljg.80.1592341379931; Tue, 16 Jun 2020 14:02:59 -0700 (PDT) Received: from localhost.localdomain (91-159-194-103.elisa-laajakaista.fi. [91.159.194.103]) by smtp.gmail.com with ESMTPSA id c5sm4608925ljj.37.2020.06.16.14.02.59 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Jun 2020 14:02:59 -0700 (PDT) From: =?utf-8?q?Jan_Ekstr=C3=B6m?= To: ffmpeg-devel@ffmpeg.org Date: Wed, 17 Jun 2020 00:02:53 +0300 Message-Id: <20200616210253.7169-6-jeebjp@gmail.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200616210253.7169-1-jeebjp@gmail.com> References: <20200616210253.7169-1-jeebjp@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 5/5] avcodec/aacdec_template: add support for 22.2 / channel_config 13 X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" --- libavcodec/aacdec_template.c | 53 +++++++++++++++++++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/libavcodec/aacdec_template.c b/libavcodec/aacdec_template.c index 0590e77d75..0be0ad6566 100644 --- a/libavcodec/aacdec_template.c +++ b/libavcodec/aacdec_template.c @@ -378,6 +378,50 @@ static uint64_t sniff_channel_order(uint8_t (*layout_map)[3], int tags) i++; } + // The previous checks would end up at 8 at this point for 22.2 + if (tags == 16 && i == 8) { + e2c_vec[i] = (struct elem_to_channel) { + .av_position = AV_CH_TOP_FRONT_CENTER, + .syn_ele = layout_map[i][0], + .elem_id = layout_map[i][1], + .aac_position = layout_map[i][2] + }; i++; + i += assign_pair(e2c_vec, layout_map, i, + AV_CH_TOP_FRONT_LEFT, + AV_CH_TOP_FRONT_RIGHT, + AAC_CHANNEL_FRONT); + i += assign_pair(e2c_vec, layout_map, i, + AV_CH_TOP_SIDE_LEFT, + AV_CH_TOP_SIDE_RIGHT, + AAC_CHANNEL_SIDE); + e2c_vec[i] = (struct elem_to_channel) { + .av_position = AV_CH_TOP_CENTER, + .syn_ele = layout_map[i][0], + .elem_id = layout_map[i][1], + .aac_position = layout_map[i][2] + }; i++; + i += assign_pair(e2c_vec, layout_map, i, + AV_CH_TOP_BACK_LEFT, + AV_CH_TOP_BACK_RIGHT, + AAC_CHANNEL_BACK); + e2c_vec[i] = (struct elem_to_channel) { + .av_position = AV_CH_TOP_BACK_CENTER, + .syn_ele = layout_map[i][0], + .elem_id = layout_map[i][1], + .aac_position = layout_map[i][2] + }; i++; + e2c_vec[i] = (struct elem_to_channel) { + .av_position = AV_CH_BOTTOM_FRONT_CENTER, + .syn_ele = layout_map[i][0], + .elem_id = layout_map[i][1], + .aac_position = layout_map[i][2] + }; i++; + i += assign_pair(e2c_vec, layout_map, i, + AV_CH_BOTTOM_FRONT_LEFT, + AV_CH_BOTTOM_FRONT_RIGHT, + AAC_CHANNEL_FRONT); + } + // Must choose a stable sort total_non_cc_elements = n = i; do { @@ -526,7 +570,7 @@ static int set_default_channel_config(AACContext *ac, AVCodecContext *avctx, int channel_config) { if (channel_config < 1 || (channel_config > 7 && channel_config < 11) || - channel_config > 12) { + channel_config > 13) { av_log(avctx, AV_LOG_ERROR, "invalid default channel configuration (%d)\n", channel_config); @@ -606,6 +650,13 @@ static ChannelElement *get_che(AACContext *ac, int type, int elem_id) /* For indexed channel configurations map the channels solely based * on position. */ switch (ac->oc[1].m4ac.chan_config) { + case 13: + if (ac->tags_mapped > 3 && ((type == TYPE_CPE && elem_id < 8) || + (type == TYPE_SCE && elem_id < 6) || + (type == TYPE_LFE && elem_id < 2))) { + ac->tags_mapped++; + return ac->tag_che_map[type][elem_id] = ac->che[type][elem_id]; + } case 12: case 7: if (ac->tags_mapped == 3 && type == TYPE_CPE) {