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 E7E7B43809 for ; Sun, 28 Aug 2022 21:20:47 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3E71C68B991; Mon, 29 Aug 2022 00:20:28 +0300 (EEST) Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2094.outbound.protection.outlook.com [40.92.91.94]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A93AA68B9BD for ; Mon, 29 Aug 2022 00:20:21 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=U5TxgAEyxuQkAFu2rCEqGd+Us56AtsSgi53xIL5GoG5bBP6F6MHw7uN2HuHueNOKov0Ke4gEPrJGXWxOR7OGPY/7JVsmPJr8k5Qd8UuOJjdKrUxNaMJ47gqxdNMk8jPlBOw7W4Dg2aX8kwIYFgZZ6tlxkjYCohv+FnJtcWFWQKr6eQz/wYpyPsuMVCob2CA5jnlrsXWn8SbMmf7RfEZh+c5kyNN4erwgJAlw32SDkix/H3kTyUUxKHldVtovXa69ooBGI/ffEbXnK4Kl4i0SLM/OMYUbdVwuzedCF7jK21VJzyU9ZnbF1rwiCcE9vBoq0+n0cxMNTvALVUJnAV7Hfg== 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=WSD/ZqOwraaQUp7P8lVsLqj2FZAIRKVRgBfXsMVad4g=; b=SYaMFWPBWEPNQfI7R6iZoaibm6TtcgoNZvHqqxtAqj8xuC3wEckhwmgZ3jvvnRZV+LF4XvSLsJBNmRB+hX6qugIlxqc9Lergoem9IVI3M491M1IHQBu8Xa20JxUoBoUCHUKpTg8+5/iGmvmlErPqG4W5QVXQldzE6+QfxLJHeFZ3RB37avsz5PRWkpwXoUvg3GNM0hCexQ6Ke+OPzGnrwUtWLPLFGCy3F1+M2a/Tn5TYNDtn3aXYOnz0WvAOs/DX6kGnEzDY1ID1RLrP1Ww654NaV58Xjy6aTZ076jxm73+JwjYJAAntxrKJtzllI2vBQSdAwXaObsqBoYWK4P7k3w== 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=WSD/ZqOwraaQUp7P8lVsLqj2FZAIRKVRgBfXsMVad4g=; b=uRpcxl0NYYE+B1MDlZdJdePkRU14478oMaYFwwXuOEv7TZJEavZUGm3zDe8UtPvweRtti1JIWvq5jE/Cdqv3gGnQlwyVOwTPKIQwpejul+tMUUW6j5KoseQt4kaUI1vrs9e47DPRQ08sWu+RpQV06+92qaYqpfPc2HH6T1q7ZYaaw99o18Z0u+c/mkvIqQ5SqFYVUSlyJfiPpmuvqqE7RKFpVwIUuR5Wp2+NwT9bw//nPkm5P4jkZy21njOV5d107ZUUWNai3ZI7i8UDVcXfPxYnTWsKY7e3qIAk2LtrcRL9f/VIRdHUjf86xHSfwDYYkUwR7Wa+3FOcZ75t+BhZHQ== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by DU0P250MB0747.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:3cb::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5566.15; Sun, 28 Aug 2022 21:20:17 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::7d2a:d9d8:f384:4cee]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::7d2a:d9d8:f384:4cee%9]) with mapi id 15.20.5566.021; Sun, 28 Aug 2022 21:20:17 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 28 Aug 2022 23:19:51 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [wzfzNk7gK0RRaOHh5i0PfoIqHVONkrmd] X-ClientProxiedBy: AS9PR06CA0114.eurprd06.prod.outlook.com (2603:10a6:20b:465::12) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20220828211957.472263-4-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e727b562-fdc7-4ab2-fd68-08da893b1aa5 X-MS-Exchange-SLBlob-MailProps: EgT5Wr3QDKySlSM5rOKlGk6W0etq9ZOJBxPU+XXPQOcpyHs6drSRkMHxfv2ap4AgvrCBxb827cxfqX+7nhlOsIx8b/T6NLqb6QK1oVe9R4JSstqEj8PHtVzz9dUyqW8kOQlAor7HdHKQhCEEeSKo/6m2CMNXVjSF08zLsF9aMGJ3QNYHX5Gcvu1Irb6O/4sqSU+8TOrOa5zrrLFiKIYfy+WieE61B33nzo3EIGLgFHpUgYHcyGWpzRCvA6qGYhBwMBOfcnWce79TaKcWTs/+7mBiZIcLFGoQUcsn6WHj+2ELgJ/clElU8lEO8yTVuKYz95JOB57xmzdD+mGbXDwZjT/8kDioezNf0bIcOJ71474BvmpmOxtBIJAHBhxlcEmy9qH6aJw/iik7tenArDJY0vyhJH7SNUjQ3Zqn0ASPENczhPMdsCdJ+VuEIS9TExvhDMVwUgHhvBQrB8RGpawTiJ4b64/C05meQSStwhuOLlMhx8Rsyp6U0lTEMO0KAgTMHx6mPIVPxPI3Dx6DXg00gQUSHUZOSikzw5dodFfNBhOVLTju+y2tL2YpKGjCtel8kxKLBTUNBXpZ1j2zn9bnsRlur/KwmReKFTFJPfS61fN/kytcJ/sNFeqSe9RWRKrK9CguwyIJ6uOgnjpWkCR1w71QxCzZuf8wFtla1dzPWVPCbBook7tx5DJjLeKWdsKWHZDcjzMMSDdWAKWYHZr/Fe/o2dQo6uOzjRBIB4Emf1Y= X-MS-TrafficTypeDiagnostic: DU0P250MB0747:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: diO8rwmN43lCorJtFxRiCGbpXf8urHzkWTT4GGkzLN2zCO7uUsXvSJioJM3Hlp3hpFNzq7VSe0m8MFTbjV0mXeLR6KXHm+Q367aFw4GjNsLNA56BzOW2t1SEAbW9OSoFTYQyIBq05zaKOLqqJHp5bs3hiNSiIhDeOXQFdXP3hyFsP/ndkpNBktKpFfCcdD9btADwCTkaX4TCIvf/MasirH2L3BCKy3Xt01azeUKT7apE+Vg8bDDof1J0L+TXeAtV7E8SxAKDRpgCKq4Vz74J5GQ6hwK6JDM6CwJ3M8CXTUBFVpSMqAr46o7oIGdkP12ahey7NDZVhdyyf7uGcSfRHG8Jypbm3BhYiPHHC+bRTKUU45hhw6JOiNnDHxWbocKUP56jJYWg/Bt5b/dSOznQ1KBXJXUvsCMOrsh7Ut2CiHxsn0eEeq8/8mhHxoi/3VD9Y8vbQx3iZyV+eCvZZmTZT7N2Zi1if9svNUcnjbgH0yQEJD9yjjexNhS5csF6JyKRLhtUa213nn861L3MW+pjjJP44dCXHexMWI+CgFxOhCQMdPFWzPvh+xucH9BtbdZkFdbv0v93iRMTScI/kiKyv40uKqfyOZESp+rGwHEZl4BSqAIubnAYj23OzWyYaMfzwyIX4Bg09o8SOTinqXZwug== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?X/Ldn2ynuBLeOmDbQu37NZSdaBg7rHBgcgtaSTWC7ZA0b05Nd2VaVLu54aG2?= =?us-ascii?Q?CyrgAEkw9MOpIxdkdLjbIFkgD6LesGGf/t53FuAQatgp2WoQV24qlsUdwW7y?= =?us-ascii?Q?hJvNVqVoYJ/fJmnpr3VO4i6R1Yp1rxC24SxnGtnNV8tdvpJ+OMb/NYzuPPKb?= =?us-ascii?Q?C68owQyAz2MIqL1v+ZDNZPpVUfaK2kCxwXsCrKb0c2k8Fxffk24Vq6tWli8j?= =?us-ascii?Q?DAKYW+YyAtBVSb8lJGvBA6P5H4Dvk5rOxYkJ00rL99kv5n+MaQps1LN0ddnZ?= =?us-ascii?Q?Faoole6YH1SChWmIp4vHxEpaatykoQykEzKsjjYzflypoYk6wXhxSPJbv077?= =?us-ascii?Q?sfOw1tWIo20FnCz6PUDj/moDjjmaWXMMx2dAI1uI/GzOASNU1xlPLwOwDS2V?= =?us-ascii?Q?hfeftQcHs/G2CaTJeKTsru9E7I+88tKs9tPaJSlcdaQgTc5xoOrKSlB9XTk2?= =?us-ascii?Q?aerpqcrCFKhAyxlteVrdmqcE3m5i/wzVjvg8x9KOtlKJE26Hcu+pJNAvwf2c?= =?us-ascii?Q?koCE6mlhvHHdhrDXmBZZqmIDuwrz3ACnxZewdRi9U3FFUjoBHDQ+jleh4tUh?= =?us-ascii?Q?tRak7zYUZoBPAd0i/8KPvJmivZD4dSpzsJHwuz9JH1EgxfPxXl2VcKBVFxnB?= =?us-ascii?Q?TOoZr6TBoHVV06u2nWhzp2dd/DCmsJhd1wgSD2KxB5GLwA+hL9uhVQk5ZRXv?= =?us-ascii?Q?ahSE1zWosfpG+qlqBvOBtGBKm5RntxTGlXX0HXNk9QdUgP464OQtrWvYnzoh?= =?us-ascii?Q?Qypcbe1T+tnaEHUQ0e2Wy/qVQrFu3orhXHfgEXf/R+ITUHumehzoJNMmxWoK?= =?us-ascii?Q?x6XVqmVngR/N0/m0DRXtgE37lmYXAjJGHoCjtXGfw1l3HooySXfIRlrmfsz2?= =?us-ascii?Q?WeXddYL2wmwRt9xF0dU6Vo7aPiFvYR+UP33zu1PBnp+G5yEJg08M/azVqMHL?= =?us-ascii?Q?vsPXJzaFSR0lUDOH6eDM16IMmVPH7mT8RQR4pSMo+VksE3nO1DAlkdsLDlGo?= =?us-ascii?Q?7uxy9GrePyAOuHo0WIAf85lmo8oaUstiRN40kIagCswfLTMZfwTo7PH/U0XH?= =?us-ascii?Q?mhdkvMyMCo7Gqsg886jm3MA1KT5wP8IWqjxjPpQ+XbSLjeYGlqr4SVP1vmwN?= =?us-ascii?Q?N6F08TGR0DYn8JyaejXV2UCICfk+ARYfSWAZipDPJ2vfL/ENxcJJ9HV6/dCV?= =?us-ascii?Q?z8GquHj83/kuOlPpZQU6FbEl4js5dj2kRsGzMx2INzsbV0OxhlscLj7IwWXR?= =?us-ascii?Q?JkLZfGCdlHPgMtyBBOH5JhwPBLpbfuVszT5+a/oLbmO0JvcLOytBq67CSkhp?= =?us-ascii?Q?07w=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e727b562-fdc7-4ab2-fd68-08da893b1aa5 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2022 21:20:17.1069 (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: DU0P250MB0747 Subject: [FFmpeg-devel] [PATCH 05/11] avcodec/flac: Move ff_flac_get_max_frame_size() to flacenc.c 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 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: It is its only user. Signed-off-by: Andreas Rheinhardt --- libavcodec/Makefile | 2 +- libavcodec/flac.c | 21 --------------------- libavcodec/flac.h | 8 -------- libavcodec/flacenc.c | 40 ++++++++++++++++++++++++++++++++++------ 4 files changed, 35 insertions(+), 36 deletions(-) diff --git a/libavcodec/Makefile b/libavcodec/Makefile index cb80f73d99..945908e3b8 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -347,7 +347,7 @@ OBJS-$(CONFIG_FIC_DECODER) += fic.o OBJS-$(CONFIG_FITS_DECODER) += fitsdec.o fits.o OBJS-$(CONFIG_FITS_ENCODER) += fitsenc.o OBJS-$(CONFIG_FLAC_DECODER) += flacdec.o flacdata.o flacdsp.o flac.o -OBJS-$(CONFIG_FLAC_ENCODER) += flacenc.o flacdata.o flacencdsp.o flac.o +OBJS-$(CONFIG_FLAC_ENCODER) += flacenc.o flacdata.o flacencdsp.o OBJS-$(CONFIG_FLASHSV_DECODER) += flashsv.o OBJS-$(CONFIG_FLASHSV_ENCODER) += flashsvenc.o OBJS-$(CONFIG_FLASHSV2_ENCODER) += flashsv2enc.o diff --git a/libavcodec/flac.c b/libavcodec/flac.c index dd68830622..03c7bfb9e6 100644 --- a/libavcodec/flac.c +++ b/libavcodec/flac.c @@ -145,27 +145,6 @@ int ff_flac_decode_frame_header(AVCodecContext *avctx, GetBitContext *gb, return 0; } -int ff_flac_get_max_frame_size(int blocksize, int ch, int bps) -{ - /* Technically, there is no limit to FLAC frame size, but an encoder - should not write a frame that is larger than if verbatim encoding mode - were to be used. */ - - int count; - - count = 16; /* frame header */ - count += ch * ((7+bps+7)/8); /* subframe headers */ - if (ch == 2) { - /* for stereo, need to account for using decorrelation */ - count += (( 2*bps+1) * blocksize + 7) / 8; - } else { - count += ( ch*bps * blocksize + 7) / 8; - } - count += 2; /* frame footer */ - - return count; -} - int ff_flac_is_extradata_valid(AVCodecContext *avctx, enum FLACExtradataFormat *format, uint8_t **streaminfo_start) diff --git a/libavcodec/flac.h b/libavcodec/flac.h index 315df492a3..239e842716 100644 --- a/libavcodec/flac.h +++ b/libavcodec/flac.h @@ -109,14 +109,6 @@ int ff_flac_is_extradata_valid(AVCodecContext *avctx, enum FLACExtradataFormat *format, uint8_t **streaminfo_start); -/** - * Calculate an estimate for the maximum frame size based on verbatim mode. - * @param blocksize block size, in samples - * @param ch number of channels - * @param bps bits-per-sample - */ -int ff_flac_get_max_frame_size(int blocksize, int ch, int bps); - /** * Validate and decode a frame header. * @param avctx AVCodecContext to use as av_log() context diff --git a/libavcodec/flacenc.c b/libavcodec/flacenc.c index 73cf185314..0170e02ae8 100644 --- a/libavcodec/flacenc.c +++ b/libavcodec/flacenc.c @@ -157,6 +157,34 @@ static void write_streaminfo(FlacEncodeContext *s, uint8_t *header) } +/** + * Calculate an estimate for the maximum frame size based on verbatim mode. + * @param blocksize block size, in samples + * @param ch number of channels + * @param bps bits-per-sample + */ +static int flac_get_max_frame_size(int blocksize, int ch, int bps) +{ + /* Technically, there is no limit to FLAC frame size, but an encoder + should not write a frame that is larger than if verbatim encoding mode + were to be used. */ + + int count; + + count = 16; /* frame header */ + count += ch * ((7+bps+7)/8); /* subframe headers */ + if (ch == 2) { + /* for stereo, need to account for using decorrelation */ + count += (( 2*bps+1) * blocksize + 7) / 8; + } else { + count += ( ch*bps * blocksize + 7) / 8; + } + count += 2; /* frame footer */ + + return count; +} + + /** * Set blocksize based on samplerate. * Choose the closest predefined blocksize >= BLOCK_TIME_MS milliseconds. @@ -378,9 +406,9 @@ static av_cold int flac_encode_init(AVCodecContext *avctx) s->max_blocksize = s->avctx->frame_size; /* set maximum encoded frame size in verbatim mode */ - s->max_framesize = ff_flac_get_max_frame_size(s->avctx->frame_size, - s->channels, - s->avctx->bits_per_raw_sample); + s->max_framesize = flac_get_max_frame_size(s->avctx->frame_size, + s->channels, + s->avctx->bits_per_raw_sample); /* initialize MD5 context */ s->md5ctx = av_md5_alloc(); @@ -1353,9 +1381,9 @@ static int flac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, /* change max_framesize for small final frame */ if (frame->nb_samples < s->frame.blocksize) { - s->max_framesize = ff_flac_get_max_frame_size(frame->nb_samples, - s->channels, - avctx->bits_per_raw_sample); + s->max_framesize = flac_get_max_frame_size(frame->nb_samples, + s->channels, + avctx->bits_per_raw_sample); } init_frame(s, frame->nb_samples); -- 2.34.1 _______________________________________________ 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".