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 CF5E846ED7 for ; Sun, 24 Sep 2023 00:04:50 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0470068C9B8; Sun, 24 Sep 2023 03:04:47 +0300 (EEST) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01olkn2076.outbound.protection.outlook.com [40.92.65.76]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 31DA168C866 for ; Sun, 24 Sep 2023 03:04:40 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FKKdaa2yXdY407r9cKHuyYVIRlZ4wirKn3TeG48JJeATfnIXdYloE9l2ifU2XNmm7fJXiow8EyNKLsHx9F8PYUIxxJabViT2M/H+F0XAIshUmLOJr2ntxrR1UVFEEIQhwHAF4Q+PBt89nX2fMjhxB2yXKK34ctnpsKE4wfFx4vz1L3xWEQzIxI6aiWcGSOaioojszlNAktivpqh1Ql++7CeEPyLhWpBSd4uEFcEWH0aest++F+ev0wJ2pH8hxwEq5kfivrROBgBoawf0ERYUyk5uun1YWiE8cHiiUR0/u49iU7uiWqL7IvtQiieOJ1X6xHEyaNEnF5aTnCVNaFd0zQ== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=gsQV9Ud5nxhUdMkUrTm815fb6nlJBBEZITPQqK7jm2c=; b=jk0An6eE3DU8twoRb6CUgY+gLK80D6JoRTLkI3PuzG00Bl8pOELwkH7lR3DmopAxV7TCsiGqn2YTskDFwJxL7ePXiqFMFPdpOfqCx7BCd5Tt7l9R2FQSOQ8akkYhNPgG9nz052j6tXC5pOqCn3q3MoeQHOXJKiy6HQ8IEzoSJ+pKxrHwgqUEffcWXepD6W9cjkWzcRhWSHDrFwtqu5s8iWrfpfZuftE98IrzZIVhqkNPvW+UoWFgUhr+T1Kaiop2ALBw8/MFsJoQE4zz0aJqTIstybTukX4R09mHkfUXajgbGbuvqFamR3ZEscQs7+pxD/UGdtApH37SzCxXyLEj6Q== 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=gsQV9Ud5nxhUdMkUrTm815fb6nlJBBEZITPQqK7jm2c=; b=V7fmlkrPMYyEmWktFEtUGzy0uqFIvBRQ3ETATilZbLapjcFFXga4kk7yHgEjmPKBwG6XVeW9kJUqwQG5n3c71EveiV7vBKhBzo+PW4aqJio1ssAoD6VGnP+drtUnGof98xyr3vSDqdSlzerOSPlKXfKIyJ4LviKl/Z1chiAVyNYlMyCdlwFem+TVVLlobykS+UatLPEeGeRoCghEpGkiU4gjZZCSweaoY3hD3dbUQoz9KsKfiPW8xaOM7NyvYUguJqWBlURe606aX/EHHvxwaWBjEoNeM/MDbg80tf+wYde0J+xyGuGDPP9sCaUWWFyz8oVhxQ/ps0IanhxISsIQsg== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AM8P250MB0248.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:32b::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6813.26; Sun, 24 Sep 2023 00:04:37 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa%3]) with mapi id 15.20.6792.026; Sun, 24 Sep 2023 00:04:36 +0000 Message-ID: Date: Sun, 24 Sep 2023 02:05:49 +0200 To: ffmpeg-devel@ffmpeg.org References: Content-Language: en-US From: Andreas Rheinhardt In-Reply-To: X-TMN: [7tXfRFHiqc3bAgcMd5OZYX36iN/K1hNv] X-ClientProxiedBy: ZR0P278CA0149.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:41::11) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <50955240-13dc-7cc1-c70c-1742f6871719@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AM8P250MB0248:EE_ X-MS-Office365-Filtering-Correlation-Id: b3cc8f48-b827-4da5-41b9-08dbbc91d6c4 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: AJ+jRdeLH440MLkMMvcm9T67v+I0XO6kxDYhAO0OazZyjhVm73cAIJGU094Hg4Nl1RBypn5Y13mn/CDfsA+VujTCsA/bWcDECjzIv5yW0dyzXKVP2H30Ymf/hy3D7eh9m999KYRG33NESB+gqlS3LwgHmW3pY3YKqMJr253XUPnLtvXVp2/U2/O7bLm+6ogSwNv1nrhvv5C7lG4h7lqEWmX/z3DfS1etxp7+SRrgCFJVqTceCq0OyjVQgW8OMMLZvLIkRIiL20J4rvhNMAMOrMhj0QuxULOJ208A/jIT05VbHYlN2g+Mxjf8JHB+jrhpHgRLo06Sk7oJGHV2dPWmCisvj8tEPo5ycQqFzuqYlX9Tp2rjUfm2PHkpsm9hUoC2EkPkHrnB6Sl+RhkCYUEzZUCOu7ZkIynJ9SWsRCEFg5LJnAaJ2qhTmEeE8CpnmhBHWgW1Ec9scFA5HjDymjDn3BFsYY0KkdRGwn6dV7q94AL7hqV8zhPDQisI+Of18HQGHtxGLBYh8+v7oqV5bqiJNvoPR3Bd6rGDAZexarWMttVsOpU23Q4YC1SD8pswBK1T X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?TnpaV2FZTlJxaEIwVFFURCtJR0ZORjBNc0hsNEpGYW9YZFV4bkpsczhZSndK?= =?utf-8?B?VC9pZGFJVzhRcXJJZmtBeFNQOXVFTWhFdjEwb21ZNC9JSnYxYi9weEl6dHpZ?= =?utf-8?B?R1R1a0xvelgxZjhUSi83QlhwLzBFcTVpK3cyRk9WMytmcHltOUR4TStIRm13?= =?utf-8?B?NDV0QnBDSU4wdXhyeGpES1BVSm05ZElwNVRIdVhXYzh2TXQ4SnFNVnh6dFRl?= =?utf-8?B?czRmTlhQb0JWQnk1aU5CVi9KT1U4cUdTMCt0djU1NVh1QUtrL01XNFVCUWVT?= =?utf-8?B?dGVxTDgzZG1Zd2J6dFhzK1lPcWtlRHFIV28vU2txYTFWM1hGNGZqN1pFbFBR?= =?utf-8?B?SG1iVzJ5eGlPL1dUa3JWeks1cWxVWkkrNXFXM3ZmTDJUSmJQdkEwQkJOeDdU?= =?utf-8?B?SG53K0xrb2tSbzhTWmpVOWdiU0JoRWp2MlRyZG1GQUtrUVRPMEVOSi9tRHdw?= =?utf-8?B?ZDl2dUVyaGVGWnNORXZDTXlKYzRtWmZ4Q25hSWxFaWY1QWNkZUdrOGxlS2Q2?= =?utf-8?B?d0NHR1cvclJSejI4YXRFWno1V05SdTZNa0NmVFJwZER3clErM1djZkcvamdF?= =?utf-8?B?eGRhWkx0RWpjT2ZGd3kyT3dIa3Rld1BMOG9wWTIwV3N0VjNjdnMvV0pSdEl4?= =?utf-8?B?NFJiVm1nQTJNRDlUN0hvTTNxSXozcEIxQS9vZmhsdmtqS1A5OXNZaFFzbXlP?= =?utf-8?B?Q3lVVHBQUlo2bnNrT2Y4cWRVdmM5MEhDazBUbkhDV3dWNDZWZWVIRnlJRnpu?= =?utf-8?B?aGZDNjgrSDRHWVpLZnZVYlpiazJaVHkwMlhIY3ZLTHJ4K3VOZlV2c3h4NmRp?= =?utf-8?B?V0M5OUpZZEg4MFQ3TUlSMmNDRTl3ZWY5TTZORzZvSnRLU0hCSE44dEIxQmsr?= =?utf-8?B?NGJuSElBa2tXVStCMEhUZUdZajZ1Vkg2c0xCcUlqeXN4cmI2Rk51aVlPZWFR?= =?utf-8?B?VmlZWmNsVnQ4YUNPK2o0RlhsVFVacmVtTlRxbUFaVjlJVkpjTm14MjZKY2p6?= =?utf-8?B?bG00bWI3TjcxWmk2bEE1NksrK0FsMzJNY1VoT1ZzSHN5djNkRTBTQUJrUWZn?= =?utf-8?B?YnhvOXhZeGNjTFBBWmZwSkNZL1RUYjlwUTFtZThCTlUxcFg1MkdoVXdyVVZX?= =?utf-8?B?bmR3YzhwLzRzSHRJNEcvT2NtWHNtVVZyUUxNMXRHQmROK2JKdEVOQ2I5cTBW?= =?utf-8?B?dGRFUjdwcjhPOHBmYUtqbFg5NWhncjBpWkNKeTZvSThQQWpkQW0zeXV0OWxn?= =?utf-8?B?QUd4c29KbHI3NDVGTmM3Yk90Skx3Ny9sSC92aFJlRGh1UktLSkVBemsvUkth?= =?utf-8?B?QzZVbW9ldzB0bVVoL3lteXFrTFI2MHJ2dmI5c0YvMWExUkVFQXo5Z3p0elND?= =?utf-8?B?alErNERSWnJodU14TENYQThISWdOZ081V0xlbzRiV3VpVFVzMGtaYUFDZkhC?= =?utf-8?B?cHhTbE1lMHRqYkhkdk0vSk1xRlc4aWNxOFljVWQ4KzFyUGpjc2JoU1hRSE9l?= =?utf-8?B?bHhjN1FKajk1TktjaFM1ekNSVkgzeWlQLzYvb2IrekpIVFBUY0xrWUdJaUlp?= =?utf-8?B?cW5TbDFIanZ2eGhML0FpbTZrZ21BRjM0eCtSa2tkQ0hxcXpybVVzWWtHMGtY?= =?utf-8?B?eWIvV3l1ejl5emEyczFnVjhDZ1VRaDdzSmJyTG8rS1oxZDNMU29zQ1NrY3dN?= =?utf-8?Q?082kLJemi+yarjlHj2HK?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b3cc8f48-b827-4da5-41b9-08dbbc91d6c4 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Sep 2023 00:04:36.4905 (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: AM8P250MB0248 Subject: Re: [FFmpeg-devel] [PATCH] QOA decoding 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 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: Paul B Mahol: > + .flags = AVFMT_GENERIC_INDEX, > + .extensions = "qoa", > + .raw_codec_id = AV_CODEC_ID_QOA, This will not compile: The codec_id is only added in the second patch. > + .priv_data_size = sizeof(FFRawDemuxerContext), > + .priv_class = &ff_raw_demuxer_class, > > + if (!qoa->frame_size) { > + for (; i < buf_size; i++) { > + state = (state << 8) | buf[i]; > + if (((state & 0xFFFF) > 0 && (state >> 56))) { > + qoa->frame_size = state & 0xFFFF; > + qoa->duration = (state >> 16) & 0xFFFF; > + break; > + } > + } > + } So this codec uses a length field. In this case it is quite simple to avoid the parser (and its implicit memcpy) altogether and just make the demuxer directly output packets of the correct size. This is quite natural given that this format does not seem to provide any features like resyncing support (or at least the parser does not implement them). > > +#include "avcodec.h" > +#include "codec_internal.h" > +#include "decode.h" > +#include "get_bits.h" You don't use the GetBit API at all. > +#include "bytestream.h" > > + for (int sample_index = 0; sample_index < frame->nb_samples * nb_channels; > + sample_index += QOA_SLICE_LEN) { > + for (int ch = 0; ch < nb_channels; ch++) { So the number of times the second loop is executed is quadratic in nb_channels. Is this really intended? The frame_size check is not quadratic in nb_channels. In fact, it does not seem to account for this double-loop here at all. - Andreas _______________________________________________ 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".