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 2226C492B9 for ; Sun, 7 Apr 2024 21:10:12 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 045F568D194; Mon, 8 Apr 2024 00:09:52 +0300 (EEST) Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01olkn2083.outbound.protection.outlook.com [40.92.64.83]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 99B7668D1B0 for ; Mon, 8 Apr 2024 00:09:49 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nqyf1DUDaMtgU1/Ads1+yq9Dcl9hW3lh2N+yDpOIF9MzS7c7h5mslBdRYK6rOSq/4Bg6Kz6W8HsWxripViP/cdNswyRBHzzgbfA2M0CuSuv/AAgFluVS1nqTW/w2Re1s0ZycdolpwDhSnbldf2KKJZCQilYGKG82ynmqnwcl2WY4pDhrJ03yEbaou1HN5eED8reQsj4LDAsL6yyDN6vfuGxpa7IgxWd+Pq61xShawmeGCO5FmdnJhBO7tK9HEQ3yvCb5QbDcF/V30iDfBFKM7sth8Riwc/Bc60mVMa2kIcw3V4M7A4q8pPV5fEqX/saup8m9mDPVOM/3vCXzTmR01Q== 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=cZZ/26sMi0K+fewJFMhi/nxM7nrLx7MQ4ctwPi/+nvo=; b=mneudttqSfoz8CWRQYd2QqqCmJRl8Nm3rLtMC+Kgwd2FkSdlHTrEkq9RatEdsCAHnDTUKSdyJXs8daN0E8sfGTGY4KwfVGgiVQAO7pzb31CymEo7BnYzytaalq2Dm4fmSdhuqcnjr8YGaYGk5waFgcyGVByNIJTuDWvzNl+HdnW6V4onFADbZpugr67qpnYjnMSNIc0rjESmwsQInqPMHTaftiVhi2bxbFe80ExnYrpaI3OmJZThWfeZShTCSxOyNBY4P1ICSqP5jJLvhbadGc3krHgFkUrsEcgwMLgp8VCiSl8BC+tshMmW75glTj2mAgDJYo2lET3HI9BvnQ6cjA== 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=cZZ/26sMi0K+fewJFMhi/nxM7nrLx7MQ4ctwPi/+nvo=; b=S17Mu8Mf5YAARD3xX2yKpR+CrK85d3GJzKdZeKzGkMltnUW5qe9jfNXMT/B3dz4iiHccp4ycbS5YgqYYlF6ucQNuDT4X3xRBWxFSCy4jXNwwRwJw7xWnbhJdxVVmnzY1VMnuRvqGIVsynCwMXPD3+4g3MHlQcSCNAMQel5/HM7++4TV3waNyHSbDm6jJ7EfAloddiJLyHrscT9c+nj2OQgYckZctBYdwtYnfupG9a1wKcpaS3N27Z+5ARfZsDh8fn342aU5sC5cym2yGcM+1PDW/Lz5l5sJ2R1gUMM0rmbJ/tc9SsCpA8ycBanvlVr93Dq3Q0MZ2HVCLcO/VPiuHgw== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AS8P250MB0234.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:379::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.55; Sun, 7 Apr 2024 21:09:38 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d%4]) with mapi id 15.20.7409.042; Sun, 7 Apr 2024 21:09:38 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 7 Apr 2024 23:09:06 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [7pz+Ekxb20y9e0k29ZbZWdV2rTVCHedWT9/bTMuIgrI=] X-ClientProxiedBy: ZR0P278CA0038.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:1d::7) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20240407210915.895619-7-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AS8P250MB0234:EE_ X-MS-Office365-Filtering-Correlation-Id: e163d367-aa9d-49cd-f1b2-08dc574708a1 X-MS-Exchange-SLBlob-MailProps: quCBMN2EvO+2u7sZ7OSLhMIkTSfckR5UA0Z6p4tebnK/X/kOv7UpD7lSpKQf4Dshc5oJsQYCOnzgjx9VFcjMOzYgXOBSqbrPh6vqO0eq3G1XK40cohg9oEprI72LMBZrDdhGRQBDaoRp0orOEnTFZmM4WKzAaTUEV5KlJG3x0AANo0WAxqCmHfh1qnr9XdCnyEHoy4fBkKZoT2VxV/BlOuwQkWZrxtRLNJkEMY14rJJZyGCz1/CKgsslUdoXDv7QGEw6z/0ImAJI8Nn23pzVYVx9BwuAPs8Q9IKiN4Qb/Vpx6/bKFnoFX02uj0Uq4L/BDDD0A8jtD6Sl3DkhfUQBxIhgbeqHUBUD0RyHz38rOOqhWxFWcck2KzctvhK2h+IXc4nc+vxjcZs37YSqjf1H2T57fovqJUC+yrem4qeYOAifls7psRW9RV8koikfdcr89kkfD3Vd6YrYZvJmuHXHi+Jf5Oe/lQOfuiEsCOqB5PbLchWvQ9QX9PmH9R9n13iX0Wx8unIgoxhw7DH4fLn/z9DwyFgUbtYKSnbyiCN0Px8SpmHyCGLGvFzna4Et0FLyuy2n+Hk7sHVXLclbK2BQqzSSaswar50qFi1Bwc8LNcVl6k5yx4gpODAft1ui0GZVVjFZCN6uUe0mrugu7x4d3CAJywp1wZRUiRXoT2zH7zW/uKoMWeRKM5y6jde6TWXhaDOIn2CPM92+yGhJRBg1xw== X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: XvSgoe2ffcSCz9dKRCdK24Ae8lwXnV2w09Ohx6SHIIY1Wz8rg0OkIvylceT/vIlj1mfyToNZDk8yf4KcFcL7sKp7MYMcbcbML8fd/1gtEGu6JLIRqDYRVD4kALCM2iCiWR89m5pWAYWugnJXZlwXtYXXvuJYInQ6JmSnBjrceQXR4usTG14TefwNPkfh+5UB538+5SsBYpSCbwetjUQYWQfsPYir5PIedfBJsejpfjWa0K8djz6/GExTUSmpN/rDB0WqXGesTugwVe9+0+J5VfjUGIY+DzmaVzJX8O8MLaYXaMpudedLHZAwEvqZ4zdagWG6lRZj8w3bYmLx/WXJb1WxRHKLv3bURTiscgEI0d7UcitIw4tGi+MGDUjEcmcZuS2/m1YS+pPNzrj/Jqlt36/ipTKzpoI3FCp7ZvT7ggEQUd5FxpFu4QCj0LQba7iI+GKlSdwg3s8gadgbxRD5QBo1sYJ30sb8crCdgQvQS06Knmfw4WY1LCh1osE1hHutiBhE5sPDi3mhCPW7LjglYaf4D9mX+b9wv0GYeb7tcMGhmJ/Ft7G+Tose1dBiFP5NJBAqyxxGaDaagxGnRiUFmqgSfAHGvOLCPM3XTRFB+e0+JGUrp4OAXQaoX1ZKePh2 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?UD8OATgkQzSlYsCKZ3zw4F6TWcQpiUS/fu9vaurLRuq49UX8u2CaTj54I8sc?= =?us-ascii?Q?82AD3eRnwMsLjUOH3p02yGwUYkqhkygoB4QNhT+CmcdoHhnkPNXmnm2gbrfA?= =?us-ascii?Q?tmWcHu0jh7vozYEc6+h3SCgNXt356sRX9mzrAVzM64nMiO5sWD162v26FWgh?= =?us-ascii?Q?Q6CgJPKvcMIXVSUC5y62ALbz+1G/NTs27n4q7VCFpRwH4VjOBc5j8XOGubC1?= =?us-ascii?Q?XTDHOTE02BapUZvsbl5Gzzb4V9hMepd3Kskw1+HkICqWo/DYLIsvHfzXig9Y?= =?us-ascii?Q?C8zc2PLtWbAI0t/t0FSYfIIanFGMBu/6eDjPcubSqcHkCyDLJ7olk0ch5iQ7?= =?us-ascii?Q?8/YJJi2xikLCY34Cqjs53i6l4kh4r3wICtip1cZrrYEYbNdqAQbtt44rgO/c?= =?us-ascii?Q?0xDofQXTjRg0I2UE6+ejXGYDxRTxyQNYO8PT6rmUpqL7wrjCulT7m0r7ndgC?= =?us-ascii?Q?+aZd7MXyYL0q2IW92v0FJz4FHB3/t20Si9wPAuud3DH2lhRknjleVyKVk9Hf?= =?us-ascii?Q?4uh7TnnAO6oOcb3JPZAmKuZnzCbBrlcUz1h3zx3OoPj9MDb4iAOWUz7mh0NM?= =?us-ascii?Q?Ao3ieDCk4FsPjy5XHgVWpl7fXAguXYAww8k47wJ8Upu1k7XiW+/Su9SXyUBq?= =?us-ascii?Q?qafG+KLxBw/odTCfKrt1K6yR5twr4dXHyVPK63B0bQSDInQKSePHf1WgleNr?= =?us-ascii?Q?GEviSPMHJI3gjxRdpgA5nM4DY43JXP0NrggXp5580SkoYXR+nbA81Vskm+ta?= =?us-ascii?Q?IzdoHTXwPcAylWj/vgC4vsMChL2d3XE/LrDr3X7VLX+Xzxxy5AYjvEleMInD?= =?us-ascii?Q?6IQpuO4HkveprPosHvjBi9miTtlRGbH0N0mwukjwc2ANDwvqRTqj7coutUZD?= =?us-ascii?Q?ptxm7+nucmIlvv1hzNF5pglf75E1Aeik6aVZqEPXSc8C0VUGG7vlkc2gkl8e?= =?us-ascii?Q?ff/apx4JiA+YmczXtRXtNsH9S7da4GFabmrXsLlnkFmrDI+J9Cx070vqz6i9?= =?us-ascii?Q?Dp/Yf4m6lGeeNfg3P1sfj2+tnhjAbWZFNtWI0KFBEJybEmbfsFNn9mtQ4XT1?= =?us-ascii?Q?g/XTwTgiOYX73m1GxoeNTqnFKX1SdVkASJ+8QR0Uq3wrWOXVwx6z/2I6wh6l?= =?us-ascii?Q?epccaTRD3mU9AVk+zVfAg5aC1jKkyeNIzIFviK2XXXg+GScQM7Gmyf2yhqRl?= =?us-ascii?Q?9ZtiSlBshG1sLefk0sX2SiqzGFlt57Vw5kcudig1nHGVz/AOtX5ih94Rdtwk?= =?us-ascii?Q?BmnBeej//dXYJCLSzwU7ujZ8fLBVYed9hyFOlfXqDA=3D=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e163d367-aa9d-49cd-f1b2-08dc574708a1 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2024 21:09:38.0630 (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: AS8P250MB0234 Subject: [FFmpeg-devel] [PATCH 08/17] avcodec/ac3enc: Use common encode_frame function 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: This is in preparation for sharing even more stuff common to the fixed and floating-point encoders. Signed-off-by: Andreas Rheinhardt --- libavcodec/ac3enc.c | 8 ++++++-- libavcodec/ac3enc.h | 16 +++++----------- libavcodec/ac3enc_fixed.c | 3 ++- libavcodec/ac3enc_float.c | 4 +++- libavcodec/ac3enc_template.c | 6 ++---- libavcodec/eac3enc.c | 2 +- 6 files changed, 19 insertions(+), 20 deletions(-) diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c index 12bd3b25f3..c19837e88f 100644 --- a/libavcodec/ac3enc.c +++ b/libavcodec/ac3enc.c @@ -1769,12 +1769,16 @@ static void ac3_output_frame(AC3EncodeContext *s, unsigned char *frame) output_frame_end(s); } -int ff_ac3_encode_frame_common_end(AVCodecContext *avctx, AVPacket *avpkt, - const AVFrame *frame, int *got_packet_ptr) +int ff_ac3_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, + const AVFrame *frame, int *got_packet_ptr) { AC3EncodeContext *const s = avctx->priv_data; int ret; + ret = s->encode_frame(s, frame); + if (ret < 0) + return ret; + ac3_apply_rematrixing(s); ac3_process_exponents(s); diff --git a/libavcodec/ac3enc.h b/libavcodec/ac3enc.h index dad53cc4bb..1a51423ac1 100644 --- a/libavcodec/ac3enc.h +++ b/libavcodec/ac3enc.h @@ -49,7 +49,6 @@ #if AC3ENC_FLOAT #include "libavutil/float_dsp.h" -#define AC3_NAME(x) ff_ac3_float_ ## x #define MAC_COEF(d,a,b) ((d)+=(a)*(b)) #define COEF_MIN (-16777215.0/16777216.0) #define COEF_MAX ( 16777215.0/16777216.0) @@ -59,7 +58,6 @@ typedef float CoefType; typedef float CoefSumType; #else #include "libavutil/fixed_dsp.h" -#define AC3_NAME(x) ff_ac3_fixed_ ## x #define MAC_COEF(d,a,b) MAC64(d,a,b) #define COEF_MIN -16777215 #define COEF_MAX 16777215 @@ -256,6 +254,9 @@ typedef struct AC3EncodeContext { uint8_t *ref_bap [AC3_MAX_CHANNELS][AC3_MAX_BLOCKS]; ///< bit allocation pointers (bap) int ref_bap_set; ///< indicates if ref_bap pointers have been set + /** fixed vs. float function pointers */ + int (*encode_frame)(struct AC3EncodeContext *s, const AVFrame *frame); + /* fixed vs. float function pointers */ int (*mdct_init)(struct AC3EncodeContext *s); @@ -282,14 +283,7 @@ void ff_ac3_adjust_frame_size(AC3EncodeContext *s); void ff_ac3_compute_coupling_strategy(AC3EncodeContext *s); -int ff_ac3_encode_frame_common_end(AVCodecContext *avctx, AVPacket *avpkt, - const AVFrame *frame, int *got_packet_ptr); - -/* prototypes for functions in ac3enc_template.c */ - -int ff_ac3_fixed_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, - const AVFrame *frame, int *got_packet_ptr); -int ff_ac3_float_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, - const AVFrame *frame, int *got_packet_ptr); +int ff_ac3_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, + const AVFrame *frame, int *got_packet_ptr); #endif /* AVCODEC_AC3ENC_H */ diff --git a/libavcodec/ac3enc_fixed.c b/libavcodec/ac3enc_fixed.c index c399d6cd09..4a24cce833 100644 --- a/libavcodec/ac3enc_fixed.c +++ b/libavcodec/ac3enc_fixed.c @@ -102,6 +102,7 @@ static av_cold int ac3_fixed_encode_init(AVCodecContext *avctx) { AC3EncodeContext *s = avctx->priv_data; s->fixed_point = 1; + s->encode_frame = encode_frame; s->mdct_init = ac3_fixed_mdct_init; s->allocate_sample_buffers = allocate_sample_buffers; return ff_ac3_encode_init(avctx); @@ -116,7 +117,7 @@ const FFCodec ff_ac3_fixed_encoder = { .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE, .priv_data_size = sizeof(AC3EncodeContext), .init = ac3_fixed_encode_init, - FF_CODEC_ENCODE_CB(ff_ac3_fixed_encode_frame), + FF_CODEC_ENCODE_CB(ff_ac3_encode_frame), .close = ff_ac3_encode_close, .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S32P, AV_SAMPLE_FMT_NONE }, diff --git a/libavcodec/ac3enc_float.c b/libavcodec/ac3enc_float.c index 24960f318b..e0907fed05 100644 --- a/libavcodec/ac3enc_float.c +++ b/libavcodec/ac3enc_float.c @@ -104,6 +104,8 @@ static av_cold int ac3_float_mdct_init(AC3EncodeContext *s) av_cold int ff_ac3_float_encode_init(AVCodecContext *avctx) { AC3EncodeContext *s = avctx->priv_data; + + s->encode_frame = encode_frame; s->mdct_init = ac3_float_mdct_init; s->allocate_sample_buffers = allocate_sample_buffers; s->fdsp = avpriv_float_dsp_alloc(avctx->flags & AV_CODEC_FLAG_BITEXACT); @@ -120,7 +122,7 @@ const FFCodec ff_ac3_encoder = { .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE, .priv_data_size = sizeof(AC3EncodeContext), .init = ff_ac3_float_encode_init, - FF_CODEC_ENCODE_CB(ff_ac3_float_encode_frame), + FF_CODEC_ENCODE_CB(ff_ac3_encode_frame), .close = ff_ac3_encode_close, .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_NONE }, diff --git a/libavcodec/ac3enc_template.c b/libavcodec/ac3enc_template.c index 45dbc98804..2e0fb9e85a 100644 --- a/libavcodec/ac3enc_template.c +++ b/libavcodec/ac3enc_template.c @@ -371,10 +371,8 @@ static void compute_rematrixing_strategy(AC3EncodeContext *s) } -int AC3_NAME(encode_frame)(AVCodecContext *avctx, AVPacket *avpkt, - const AVFrame *frame, int *got_packet_ptr) +static int encode_frame(AC3EncodeContext *s, const AVFrame *frame) { - AC3EncodeContext *s = avctx->priv_data; int ret; if (s->options.allow_per_frame_metadata) { @@ -402,5 +400,5 @@ int AC3_NAME(encode_frame)(AVCodecContext *avctx, AVPacket *avpkt, scale_coefficients(s); #endif - return ff_ac3_encode_frame_common_end(avctx, avpkt, frame, got_packet_ptr); + return 0; } diff --git a/libavcodec/eac3enc.c b/libavcodec/eac3enc.c index 5deda083c3..1ee140f13a 100644 --- a/libavcodec/eac3enc.c +++ b/libavcodec/eac3enc.c @@ -252,7 +252,7 @@ const FFCodec ff_eac3_encoder = { .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE, .priv_data_size = sizeof(AC3EncodeContext), .init = ff_ac3_float_encode_init, - FF_CODEC_ENCODE_CB(ff_ac3_float_encode_frame), + FF_CODEC_ENCODE_CB(ff_ac3_encode_frame), .close = ff_ac3_encode_close, .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_NONE }, -- 2.40.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".