From patchwork Sun Aug 29 21:27:39 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 29854 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp3402400iov; Sun, 29 Aug 2021 14:28:39 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxYyEY5juBMXlOYTAlfG8ti4+TV8IliEsjxSAXyRNg4EtsliGEGW2U08H5RjbdElkDmdsFn X-Received: by 2002:aa7:da8c:: with SMTP id q12mr20753090eds.380.1630272519636; Sun, 29 Aug 2021 14:28:39 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id lv10si11681253ejb.316.2021.08.29.14.28.39; Sun, 29 Aug 2021 14:28:39 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@outlook.com header.s=selector1 header.b=D5jQLnln; arc=fail (body hash mismatch); spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 76AD268A360; Mon, 30 Aug 2021 00:28:20 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075055.outbound.protection.outlook.com [40.92.75.55]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 19B1468A1EF for ; Mon, 30 Aug 2021 00:28:14 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VSPXTfTwMA0VaLTONVrXv7NloPw+yg9rQbE9VINVhVEtXWKzgsQiWQ3m+ysqMhrhc9sK7Jd3KBeBlc619vSakzH2UtH63q5bZLOyuZdUvSsAY//Q0jM46xZjuj7KEgC8d1CDPu2jCwueD63OZupNryKEnnKQ6Zg8TPhRtHs57s3pcMv6k1UZVx4Tb1d9e/i4XsNfsJkdMNS27iF8XTM2TZXu1N5UhM3zikwyRjYHx/AvJFyTHRIkJN+Cl3LThNaQAvGCs6F64u6pP/8MVBHWKuj2hc9K1aqfZ3VRkrgiAc4VlY09lUy02FaWZ+4tSDzS59d5i1p53uZB7Y5bui/e6Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Upjm4wC9VyQsuP35oNrhB80PR3iYKxFH9VPPCEcpeTQ=; b=KVCrVG/ktF+b3O7JUlhrqt6gwurz+MIhNwDqZC2TKsb1XcwyYe4FpEwH1vb7GXoL1MoQPOpSz7LbgsUdPc4GKNNDkdzjFpUjJ/432KisVpemx6GEtRzd3qQoZ6mJFtj2GGh4Mw/T7KD1je7d5PGFQPC6LwcgXvBF5SsekqW+697VzHC36UB0QUas1g0wTWKTNHI/pebLvwa1qdVlxxydgOefc6mb6GGC/+UViJ3IjzsSUfC3LFplGeGiEEDmNZH5nJnckYr9ej3BcRrHl+zHzdKdOkwDAbVVXQoBn66VPKEDUiWg6V9lWFzkXk3gsIdJdZPWAUjWmyqvlBIQeBh66A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Upjm4wC9VyQsuP35oNrhB80PR3iYKxFH9VPPCEcpeTQ=; b=D5jQLnln3wQw60j4DOKV5hsnoLPRUuMbSSEm8xLeY0MZ5QGZswI4eXhHc7oG4zNMiXxUca9kI87ng2J/rVcgjlxsBMPcj1/f/kzxJIzfIbPMoYIbqmucmrwXNnQAPu+g9xlgLFtZKlZW2VF1eNiKxjP875+HIalyAKNjPSNcAXNA9AazZ+0x/ee48lOzgV9mqlYclSf5pXHKbcH8fCJZJTU7vsDmxX7Jb3FWSWltjmMnMH8gvBqDy8HrXZFwrtKtNFo7/3w//B+vN9vFYQIMspLw7/oHpFDp+5hgYWEPxmn31515koYIUGQaoRC/TgNpK1qU5FVA5aD3jTiMMAy0EA== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM6PR03MB5927.eurprd03.prod.outlook.com (2603:10a6:20b:e3::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4457.23; Sun, 29 Aug 2021 21:28:07 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f8b5:1ef2:89b2:f8c5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f8b5:1ef2:89b2:f8c5%7]) with mapi id 15.20.4457.024; Sun, 29 Aug 2021 21:28:07 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 29 Aug 2021 23:27:39 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: X-TMN: [cedNoYqyPOteCkV4QBHpOm2eSK9W4GKK] X-ClientProxiedBy: PR0P264CA0178.FRAP264.PROD.OUTLOOK.COM (2603:10a6:100:1c::22) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210829212744.1505779-4-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by PR0P264CA0178.FRAP264.PROD.OUTLOOK.COM (2603:10a6:100:1c::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4457.19 via Frontend Transport; Sun, 29 Aug 2021 21:28:06 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4cdcac92-e95e-4c59-d323-08d96b33e461 X-MS-Exchange-SLBlob-MailProps: +LiGfBxqLEtNCKoPT6rtVE5PzvjguT+v5L4D8usth2It83qDWLbgYiljIAdi09XIeo738ewXxN27Devr5PoyI6BLHc0ibL5uf5ZVgKP+U5KsiI6gzIVMJK9/EaK9b7fAB4bWdecIMgIvwg9D9+vcJg9OfTi+YWmcacNE/h0KyJ8G52wmkrHIOYe4SYxUK+FfgIEhMu+9G844QJnMKTXkEsezSJDmU97myGZErWkb/eb6ONKBBH3YeDS+TH25CQXxkWhDQBI7w91+PUSXWrEzX5YJDx0BghiW4rTI/dRsoVREYbX2pgA7mW9KuduoqNK/PXKHH4VmKbHxo8me1e9uscCmoQlzCtGLH9oBFj/cFFSmmQ4dFTh9JY/6fxn+r16fSA0DY5g3GkU3TYKYKk0A4FkaZhXeQKRAegcoZcwB5fFNMkp03gKicHNLPXBMRzyluouZSnfp0Tf18yFsF0PE3vYCaNtCDvl13Hgpeyb9KiQxaj4+RuwrduXhajXjSg6XEPHTELpjwi6KVykDQaWGs7qUpxiittcbeJaNbayVdUynDg5nFsYrMgLD65dsFPVNkEeb2vy0bHhFG4ngVpFBnpDVyG4ZBahlz+p18GwT8U+ol3uQzvnVMEETl5tMcCugYJbIEHTPp/6hk7qX9FmOtDHMf+IEiQowYdD1nIGx4fsc3JkRt/3wP2DNNdAm/PkOlRIwrpF+QG4N8pwWqmMpB68mGdQsMONdJF2sOXEOqkthzwnUVMYmE9NT4OvNbuzx9qbkzboXDK2TN9cD+3GGgyNImAqz9iJj X-MS-TrafficTypeDiagnostic: AM6PR03MB5927: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: uCc0eiuX+wLlubgUEgC2hDnedZlzLVVPc6V37egw8QKEV/zWDqlwtDt4tSnyUmh8g5IYtPDDFklt1OcBumdtubSNRa8RweHi44gwab34Qc2rUesMavORn/lIs1jp0l/Lbkw3Z6FwfpHnSGGRBzU8qHQmeJXAAX8DuNsA/iZlWNMasT6uz2HREB7Q59b1C30LSepRSI2fnFKuUC/CG/gkhIxiWTNot4TQxq5P/R0QFwdVBpV7fkXGrVhecbpry2EOP7fzKdO6kLF5b492Yksknvd5DxGDNiqJ7z7s2/5C3FbNSR/P//CU+gik5moyxeycH1A+Vl2CXGKpdxBtXn3WEIAUKRWjcWU40DyRCcSobD11QqPvEs0AG1xW9ulWg6qkBtVGy0bkKI+n+MCof7C3CB2Al3qXOsnyE49mxOSQDMgAAu5qj+8RQ/REWvQrZhqz X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: rsm0iQrpRCLnlNoVOHFc5F6ZqHoMVmkUasW8hq1EEqi0FpwAS0ilbxIxtlIMIS1FOSr7kfgaiNlhhq7C8xg/RmrZ4QxEPtxdWhx3/8H5VNBVik60GIQSR+dTepx6epcmjDzSKt32zRiR4U9/tWFviA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4cdcac92-e95e-4c59-d323-08d96b33e461 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Aug 2021 21:28:07.0538 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR03MB5927 Subject: [FFmpeg-devel] [PATCH 06/11] avcodec/utils: Support APTX (HD) in av_get_audio_frame_duration() X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 2HZVJYuBiS2Q APTX decodes four bytes of input to four stereo samples; APTX HD does the same with six bytes of input. So it can be easily supported in av_get_audio_frame_duration(). This fixes invalid durations and (derived) timestamps of demuxed APTX HD packets and therefore fixed the timestamp in the aptx-hd FATE test. Signed-off-by: Andreas Rheinhardt --- libavcodec/utils.c | 4 ++++ tests/ref/fate/aptx-hd | 18 +++++++++++------- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/libavcodec/utils.c b/libavcodec/utils.c index cfc07cbcb8..9090638385 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -678,6 +678,10 @@ static int get_audio_frame_duration(enum AVCodecID id, int sr, int ch, int ba, return 256 * (frame_bytes / 64); if (id == AV_CODEC_ID_RA_144) return 160 * (frame_bytes / 20); + if (id == AV_CODEC_ID_APTX) + return 4 * (frame_bytes / 4); + if (id == AV_CODEC_ID_APTX_HD) + return 4 * (frame_bytes / 6); if (bps > 0) { /* calc from frame_bytes and bits_per_coded_sample */ diff --git a/tests/ref/fate/aptx-hd b/tests/ref/fate/aptx-hd index 825d0439b1..c924186ef8 100644 --- a/tests/ref/fate/aptx-hd +++ b/tests/ref/fate/aptx-hd @@ -7,10 +7,14 @@ #channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1024, 8192, 0x85791bdb -0, 1536, 1536, 1024, 8192, 0x8db6dfa9 -0, 3072, 3072, 1024, 8192, 0x617b2190 -0, 4608, 4608, 1024, 8192, 0x733c4d71 -0, 6144, 6144, 1024, 8192, 0xb254420c -0, 7680, 7680, 1024, 8192, 0xc166b305 -0, 9216, 9216, 1024, 8192, 0x93e8a20e -0, 10752, 10752, 1024, 8192, 0xd91c6790 +0, 1024, 1024, 1024, 8192, 0x8db6dfa9 +0, 2048, 2048, 1024, 8192, 0x617b2190 +0, 3072, 3072, 1024, 8192, 0x733c4d71 +0, 4096, 4096, 1024, 8192, 0xb254420c +0, 5120, 5120, 1024, 8192, 0xc166b305 +0, 6144, 6144, 1024, 8192, 0x93e8a20e +0, 7168, 7168, 1024, 8192, 0xd91c6790 +0, 8192, 8192, 1024, 8192, 0xee6584ae +0, 9216, 9216, 1024, 8192, 0x74a6246d +0, 10240, 10240, 1024, 8192, 0xa20e6fb6 +0, 11264, 11264, 736, 5888, 0x06a6f058