From patchwork Tue Aug 31 12:42:53 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 29913 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp4888714iov; Tue, 31 Aug 2021 05:43:50 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwcykhfR41ITxqX5ApQjiNO1wfCcZ3jIgS9KmroNJd7oZc69rgBYyP9ZT3EWYDWBThrWsCj X-Received: by 2002:a17:906:39d5:: with SMTP id i21mr30657233eje.529.1630413830659; Tue, 31 Aug 2021 05:43:50 -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 e18si6575015edj.207.2021.08.31.05.43.50; Tue, 31 Aug 2021 05:43:50 -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=nHaq2bLT; 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 D9E6568A2BD; Tue, 31 Aug 2021 15:43:28 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-oln040092073025.outbound.protection.outlook.com [40.92.73.25]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BADE968A2BD for ; Tue, 31 Aug 2021 15:43:20 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mHP7obKil/xn9jbaMo1EnU7JWHInmTMjyODhtDMrNTAcMeQ49B8arues4bwA9iQNW3Cbn2hs5aCtVKcRig7mvufLedjlizmz0nwtA46SXHXt/u38LQC6HWCK00+e/ku2Urvsiw5y7Gue499ghUl/W1GFUh8WYZRFfkUQL/M2CV3bMQUIjxj9nkmJBlNHehROp8WX7yqfoWLvkMpFc7BMx2BybfXwTV6s4XecTAd03Wa39/ETGDeQhMTbUb1sCUO7mpWjAppZv/975XAzLmwW4DZs7eHcHIWXbRYv92FBugSkoQ+hV4Uk6/ezQf5VTOIZ+q53XN4pAecjlCJPgcWo7g== 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=eaCiy9bza/L2jqziwGoer5CO9mlp22rC8q19tLZABYA=; b=YptGE9cunNOrdLuc5GHvVgQD5S5MIhNH4xtzyZBK7N1s7XVptbFMJtW+EtROvN7iRgBG4dTf3TrMZ/gGyRIC2aOYwJcIcP6PmBqw2dNUeUZ40gGC/PyrIAgWgxDBJMQctBy5Jl5tkq+ach390nDuwsu718cyOgjkdXnJRaWa+a4NsB+M4aLcM35T6p+Lcwoiv1MUD8QVHumbNeCeMKG4bS8uXgaMzxjyB1U7I/q7HoNn0RhUmQIcMnAJl3rpMENPIs8nW6XBZJXhzQ6lhdsG0480RQu14QdCeRNF3K1X2td10xe17ctmpu4pPZGhtfnztu1FIRvAeEnm+IzguN549g== 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=eaCiy9bza/L2jqziwGoer5CO9mlp22rC8q19tLZABYA=; b=nHaq2bLTbgmI9PDbbWEOgrIVZXyf2S0JLGhSL0VuF22iVQGAcmEQSnMrfEUPXmYSANL3oAdEcIoKyRdRFlBQALHqfXY21ax7fz03LDAxvqDBsNyiIwHMtt9hqwxwRnTOW1+EC9QubFWU2DN6ea+WMHLp0eor3xGH6cgK/vccU44/RNB1EfoNJQDQOMqv0vYpMxryxH0EqKFkkobYbzkUxShIHkFyU4aBeZfjbc2Wthl5CZkOMJy1CIFWaF0l37IYMtxjAiRaP6j6wYLMKVQyiVV3aRWwfQ9vII9oEgGkEYWjI2Ag8DbdX3dbpctuZlXrHaJevlH3dL3JxXj2T97zJQ== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (10.141.218.86) by AS8PR03MB7270.eurprd03.prod.outlook.com (20.183.133.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4457.17; Tue, 31 Aug 2021 12:43:19 +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; Tue, 31 Aug 2021 12:43:19 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 31 Aug 2021 14:42:53 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: X-TMN: [CWZ5J2LhiTWikjn3lB7riwxbjLQpxGkC] X-ClientProxiedBy: AM9P250CA0014.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:21c::19) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210831124258.1715917-4-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by AM9P250CA0014.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:21c::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4457.23 via Frontend Transport; Tue, 31 Aug 2021 12:43:19 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d2252d05-9801-4e3d-b92a-08d96c7ce93d X-MS-Exchange-SLBlob-MailProps: +LiGfBxqLEvWcunD+UIW0Hguvzll3NV2vhXjSUy55EWYHT/Pl5HEPS76umKcjhMxTS6OMFNNNmUw5hLV9SbdgKWCBnZi4HC+JF/i3T8G/y0oM1rrTopXALWsKoH3Vic1eNa6TwEZVsOrWI/MW6lrE9fcUaOiyh86DX9ssFfS9/wAKDReUaBJgHrEXeB4NIY4gGmCwWvx+ZwQS3u19awhqK5LCyszmFp8hpricXpE3+xW5+mi8bsoG5Z0v+DtD6C2EWdTqjr+f07kyhU1JDCT/bK7V9++icjSdvBT9sJPQssrovifglciFmsi0SqR804edhwSX1y1vwvoRD89PAobjQtMUwJAhIw6/uEK7jESH2UYBDEvh+Z4ApdpDBU5T7KU2pwDRcl/lvyzTGrt6PYwYga6aSNANWGuVwiszCDuc4MB3BBqbbM35dm768pe3eOzWXheheBy9FzRNR9rZ1KqQ6hJCBZclghbm5+Yd9oBqYqV1aePdxIEwztgHLTA17ZP9ZItfuZoG9M/b/oqohAcvQdZh0K6XmIfEiwuOJd3byEqNIix0xmlustCNCsha5pY2RyAlDYh0bNBzo0qw0GxlU5R/Fx2hFDSkZYBQU9QGSPWbgayBVd41RPQU9Iv0PVpLlR07hICKMyv91oeqUKKdDZaHDP5nSY067kqTc7MvvXjGUx6r3lOoZ8/YtCFcvsyD5HDoXrXZoaLJq7Cxt3MfQz2IIErX54sSlh4yQe87wJTBI0XgDmXQQHwreAJOllfEF8pjPpGOZw7H2ttiKLy2CowzJ0xPEjT X-MS-TrafficTypeDiagnostic: AS8PR03MB7270: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: n4FNRwBbLRC3O0V7YRsBOa4UxviZsu/AHetoYAeCsc+/on2xo51gcy28R/A1Dk9IPnhvQ31tS5fQi6eakedsLrkefPniUvcrBxgJqOCAOQ18F5+294J6Fqvc2oFbk9yneM4xJJ4DkUnJiHh2Kr2CNblQV4XBjbFj9Pnus4TarXEBF4Q190roe9aFNj5jKOjtWmewt6x/kVKycsBaDh8/7dztcexAWbugY9gpKoMEID1je0EjEp3PdkPQmWUDpgE+7Wsj7ygz/gwJaNWXZOWYlOFMCiT8B6GjzPbu/F3rUB5LXLIXDdZCY9Y3XoL+92Sfz/iqsc69vvh8jzX4+yRE/kRuZ3j0nq1oajQa529P19/FZQCOQqipu1jiPyJLfpQGd3NcTuP3k1WxckCmyDJYTRqEScOllj3+Y0s0oOBK8Zoeoprgeab1J36XrGrf0giD X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: gqMjvAxtBdgNC61oBGzkl1acFU2IMhlu9Z8DnyIeODbHN6zU96xiUBJPjB2HC4WkS2078hv7jYJhPiGaovmhT4xLukeypwHVLF0+S+BMv4/74HGOWM390P7jgtEqqzjlD775p/lVL3SMQzviKEzbSw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d2252d05-9801-4e3d-b92a-08d96c7ce93d X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2021 12:43:19.6358 (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: AS8PR03MB7270 Subject: [FFmpeg-devel] [PATCH v2 05/10] 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: evdfFy8rJ73K 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 | 17 ++++++++++------- 2 files changed, 14 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 f0cd72ee90..8b62ea1611 100644 --- a/tests/ref/fate/aptx-hd +++ b/tests/ref/fate/aptx-hd @@ -7,10 +7,13 @@ #channel_layout 0: 3 #channel_layout_name 0: stereo 0, 0, 0, 1024, 8192, 0xa99888c6 -0, 1536, 1536, 1024, 8192, 0xc3e03a3c -0, 3072, 3072, 1024, 8192, 0x3f06e090 -0, 4608, 4608, 1024, 8192, 0x92fb18f3 -0, 6144, 6144, 1024, 8192, 0x3d5603a2 -0, 7680, 7680, 1024, 8192, 0xcc3d3101 -0, 9216, 9216, 1024, 8192, 0xbcc022ef -0, 10752, 10752, 273, 2184, 0x9873af57 +0, 1024, 1024, 1024, 8192, 0xc3e03a3c +0, 2048, 2048, 1024, 8192, 0x3f06e090 +0, 3072, 3072, 1024, 8192, 0x92fb18f3 +0, 4096, 4096, 1024, 8192, 0x3d5603a2 +0, 5120, 5120, 1024, 8192, 0xcc3d3101 +0, 6144, 6144, 1024, 8192, 0xbcc022ef +0, 7168, 7168, 1024, 8192, 0x600cbb73 +0, 8192, 8192, 1024, 8192, 0xdc938cbb +0, 9216, 9216, 1024, 8192, 0x37d968bc +0, 10240, 10240, 785, 6280, 0x48243144