From patchwork Sun Oct 2 21:18:13 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 38527 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:3b1c:b0:96:9ee8:5cfd with SMTP id c28csp963984pzh; Sun, 2 Oct 2022 14:18:42 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5O8d3stQs5OwYedceWYsTJ1LLd+P6Q1gwFh9SCnxyYem5Uw6EioIj/LCLd8Q7FD1FnJfNj X-Received: by 2002:a05:6402:5162:b0:457:6ef2:df3 with SMTP id d2-20020a056402516200b004576ef20df3mr16138770ede.128.1664745521914; Sun, 02 Oct 2022 14:18:41 -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 dm8-20020a05640222c800b00458b08cebdesi4008731edb.324.2022.10.02.14.18.41; Sun, 02 Oct 2022 14:18:41 -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="CaN/vzJZ"; 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 58EFD68BC13; Mon, 3 Oct 2022 00:18:34 +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-oln040092075047.outbound.protection.outlook.com [40.92.75.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C768B68BBC7 for ; Mon, 3 Oct 2022 00:18:28 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=V7FnHdCF0A+cKNCQrf8UlIRbNQ5KsExdsqbyf+l3ILogboJaQHOSIQOJqreVrYacboLqKiu+FZxJxgcRJbqI8vCf7mZFUAA6xVoAwAafkAp+gvPZEOnKO+YrxrF4w5V1CcFwIpLspFqhOsEqjSHhC8dhdofh1diG0cvHvCk+cyBxgout1EM2BEBcgkL0peD0DDeZDrg7/FJ3qgRoYMnYhWpgNo5ev4Nuj8UmdnOUpyvkX9qtCOZXE0wgHoTjYT1TRpgcOfYXWEPEhQhajNfmkTha8WaHFbpcL+8XMb6w/kkDkiYPGIjSH8DS3qKL0kbAmpP216/i2KdjGkzlXjArsw== 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=3KslDEf5lg4+VOGo2gCELHh4Iob9CAA4hATPVXsk4NA=; b=LZmegtxgKZ/6UZiBGw71S0Uz1FGV+v/un4rpomsmtavFqUYd9zgtSwDhePvXofK8gRlIuQPixQ7iUJTDNR64jU0KXiEMjqD8KTVVCdVOrICjUIVFAs7XJU6YS8gU6n01kBoX5kpU1CLKWMCAP/LhMLD2b8ejZRJHxXLQFQPa+S9m4STXmI7VsK3kldy0yRErOkOKOTrlhi+341qaVAc7dCen8+dC4wm2TTMW+6d/lPa7Qhfd/9XYdK1pxnSM3muDsoGW6S4iDnlpjq9b5UkpoeEMvMM9pzMfawn7gcMOecYP2FQTIidHb12EK9+FJuLSX/5eCU7zV+Cc5fk09lU5Bg== 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=3KslDEf5lg4+VOGo2gCELHh4Iob9CAA4hATPVXsk4NA=; b=CaN/vzJZG3UhddlFi8u/FkoFADjQQBQ4DJv6pMrzGTDHnGt8l6p0GkhblFgpdJLUgvOJlG/McfUsBTFLC7rF93jObxW8ZyaV2FBTzp6zSSJaLa5E0QbyrE2mYYPsPZ47KmaM9xih7XdQoAG3vyotAtcj/bTe9YJO1pTVYFluV01aqPOsouZJBJ8QUXlbOXOs9AN+7XwB9MNu0hhSBbYXh/ZB7N1yNF03qjjmnN8lJz8mabCOitQHRFugk9f7ZUK4A4B6VQ818uKxUqou5WC8YG9L+BVb/XvFkcpC5uM6ZiCbCe32iPuF2N1AJynexU5XiP3Up9ek+1FzHzm2XJk/Uw== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by PR3P250MB0290.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:17d::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.28; Sun, 2 Oct 2022 21:18:23 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::68bd:2fc7:ac52:38f8]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::68bd:2fc7:ac52:38f8%9]) with mapi id 15.20.5676.023; Sun, 2 Oct 2022 21:18:23 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 2 Oct 2022 23:18:13 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [ku+HYi/DodjKNjAShBaUV6Ki/dcEtDDiKchCflfdsT8=] X-ClientProxiedBy: ZR0P278CA0180.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:45::7) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20221002211815.959423-3-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|PR3P250MB0290:EE_ X-MS-Office365-Filtering-Correlation-Id: b143edab-1235-49bb-ad1c-08daa4bba385 X-MS-Exchange-SLBlob-MailProps: AZnQBsB9Xmq9S+lyC0Rq4VBpsdMYmcOktbIn1qoMd3Nq33ViCgb/evCtrlbryXCRTaiOw1xGua0r87AiMZSBdcI90wN4Z0T3pfeHrkJHgqiQAbm0w2MAprZQxOChiujJzOl/FAPFiAFUxQvWk6GRr8d3HNAQpeYafw+pp0WxHIRyCLD/8TwRCUMx7CUdwtLloCco7r5IwDOK9zcQIkRfiWhd4GG02FiMgwefwop5AFlXVM31Vpz4hPNaYbt1FZcTiVpmTxmCS4eU5oZlgNqweAMgcOtFa7t44qvZIVu2LZKkIYviKXpIoHAeiBjDaFMgnZaW9jdoJHjcBujns9IfUPCBD4nMGDkJr5WQSgFSl1EO3LPNoolN8w3XOJ4NANiXlb9NeEy9UPLwK5k+2jl4ImMA40l0UbRKgV5CGj1MuaFVD0wj3kPyEc7U5NcgO2pfLfFMtv6NMQdIpikuL8qzNU2Ce0kuYI4geOIWRRm//YaAu2RrV5A1pEWxH5DztKELw70wdnpJ1NQZazfq8yQ17Q/a2EQkPlbaTg+AESfzeARQN22e6nfB5/NK2mvx7rQ7I+addwNJX1ZMaAjt99o2T9w30/069gmPe3HfFvtvBO639FJs3byC1V+iQPR9eotix49JaC3p+b8ZOil3cPcV2JL8+xBJrirDQNt89zMrcl2/lxcZUbx80vrmbZz7zN9A7d4xEAxR/o337yR9vqfR8zG/9+RsjRtDVVxWvE+exBd9MBVDAvGj2feWhK9h8DIK8unvnlrQ9N8= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: vQXMQqf5xAoOpqXEnxL0O1fQSZiyRe3Cicr1ubNdsXRffarIuKG3m20eVpNDgDjTw5b9aYITgXZJf2+/QsjObTMi0HMEh4sD1SATUD/uqzFs64CrzNf+k6FY5qSy7QcYKRMyVXSpjaVMkflYEpq5leGcYD2L/BOBi6PUDzmRG3J/Ak6VE/SsDmOPusuDqXEJiI+wZUoCshDgrLMYboAX218EtyTkurO2JtgQBhxCxTbIuecuUSS+670OSm8aoTHXeP7RvCZZ13GQ9euhxjR17Eqe8CnLGAxtTthStQw37M0zzY2YAJsUC+DBdIncY0KCfuioyoE/Sky8TQ2pLCLztyi+BTbytptGdDwQdpAO7lOMuQzVRM8HK4fuhOibN65Pjuvu+B8NWk9BYV7mtsJV9nWdFXjpNwyAvDVMdD4x6zUUgnkJuJuXmf2ZWt8tngwAqTeRX7paQNOlIIPAEVJuabwr6510ZgGVQtPsn9F0H+v95JhW/EQkzNS1aen0tGJQOJSQocYkaHBWRxzISJzUiH+TXptyKm8wbMXqOebfkX3WnkIlzb9ufZunccRz/ZUeNFrP6E3PXiHolhjh8STipkYFOry37vL72C5jpXmJXDMxVj4lY/oq/3RzX2XjMUxgqUEbMuXDy8FvTn00pYtvsWibD4CqPH8rT3NY/kIH+XRJU5OR0LpkVmRTOKWk2jRC X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: EZhhu77TF0eew6xdee5L7ITXMtmPxFv6QyEOwMu+F5rm2C+769fwpj/uQCS8E1eTTyYHCL0ZxQwe0JNzX4ZfhWmBJmlCH5WM2MF39W0fhzZF/psyXw2saIL3uS304DWUv2lkFM0rJUeBCTGfMmbdDpz2kU1gFcTlLXRR+aojhZDnFmBC/u+fTU5mVjI83c0o026Xa/1xY3PGlBSy3g6ZroI/yfTsL7h+EbJcBlXQ8DwUtlhHSnPHDbuWqkukrD3tiXI8MLdXGSpWPqH8lVqCS9CW/jUfGxREa7fcQWpFNNtVXXO99uO7IieVhlzA654Dn2zuRJkpY5EHX/0yQAXu3Z2erHJzMO3UcJ0bwHBt0miK3n/qSgwEyHURka4wsscnAyNbrMNH+6pAgV5wJ/EP3Px6m2gTlkVjzUtcS+JBiDCq1f93fS29gxWdkomT2ON/0KpQxcaruOLCwToYVolNh/lFqpkVW8/Tehoh54jDQ4069dj+QEjS+uP4EQvDKQuL2O8yWA4OhlI8yU5nVINOrz5onhrl5S4/LuMPu2bTd3gHSQSm16lVhfj8CVYaw93U9K82scwRQcXPHaihFzH/+toTvwKtpJe02czOl7cRXQiFeTVwsoMnuIQwAPAktBZXFDGXM0Ii0jYwiOxd9qlPBir6PVP14tz4i9jWWDllfaTRVgeyhN04HEBaom7DczxAZ1h7SNIpVPJuIZd7d7BQc43ZA4lEv1/zu8kh3TLAnpL5y9LypXTsLSgf2BH3wepfJ1cgwq5oLdalj0V1HJdYB4pTu71LDKDNO2mY8SnOeTo/0kqXFQ4s8Q4uuLBx8MHrZ7wS6hLZf6ybdW3HMyLZps21earptgy4O8ukz1521JE9NmuzJXKeKjJBzri11D9m8NyLT9jj4itdyoC73ZysgSfJEe3C3qWA13PpIMm+E/SLQ3nIiQJd1ZUjDhLF15An5aAzKMXRR2O+t4vvwMroVg4c+DyIol/oQi0nXuGjlK+s4Nc8CDpJbYGrBLL5CGF3rdrmgPIkB83p1b+uQ67j3teyfHQmsCnPJoXRwBMGAk/B4Q/+9VKaauh+ITcrMNPrXc6Ok9Pj9kjAs0lO0bto6/JUscqe7ToNCWaGxdvmpYmM+Joih0SqLcXb0yV+iQxH+xL2qigkQULstQc+7QRfoJsVNckej04tggUv0hmI5+h0auC3xUcq2h9ChPweP4VBeBQF7JqwgFojT+Dgd2L7eY+cJPoEqM8E+aw57J5cNFKK0DIt/5xw4brMkHWuNOAQyZffetOB4LsHJHBBsOV093E7ceAUV6l6gClXzu9mjug= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b143edab-1235-49bb-ad1c-08daa4bba385 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Oct 2022 21:18:23.7676 (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: PR3P250MB0290 Subject: [FFmpeg-devel] [PATCH 4/6] avcodec/mpegvideo_enc: Move H.261 size check to h261enc.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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: rVs6PCvz41D4 Signed-off-by: Andreas Rheinhardt --- libavcodec/h261enc.c | 11 ++++++++++- libavcodec/h261enc.h | 2 +- libavcodec/mpegvideo_enc.c | 11 +++-------- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/libavcodec/h261enc.c b/libavcodec/h261enc.c index b868827160..7aa548c39d 100644 --- a/libavcodec/h261enc.c +++ b/libavcodec/h261enc.c @@ -382,11 +382,18 @@ static av_cold void h261_encode_init_static(void) init_uni_h261_rl_tab(&ff_h261_rl_tcoeff, uni_h261_rl_len); } -av_cold void ff_h261_encode_init(MpegEncContext *s) +av_cold int ff_h261_encode_init(MpegEncContext *s) { H261EncContext *const h = (H261EncContext*)s; static AVOnce init_static_once = AV_ONCE_INIT; + if (ff_h261_get_picture_format(s->width, s->height) < 0) { + av_log(s->avctx, AV_LOG_ERROR, + "The specified picture size of %dx%d is not valid for the " + "H.261 codec.\nValid sizes are 176x144, 352x288\n", + s->width, s->height); + return AVERROR(EINVAL); + } s->private_ctx = &h->common; s->min_qcoeff = -127; @@ -398,6 +405,8 @@ av_cold void ff_h261_encode_init(MpegEncContext *s) s->intra_ac_vlc_length = s->inter_ac_vlc_length = uni_h261_rl_len; s->intra_ac_vlc_last_length = s->inter_ac_vlc_last_length = uni_h261_rl_len + 128*64; ff_thread_once(&init_static_once, h261_encode_init_static); + + return 0; } const FFCodec ff_h261_encoder = { diff --git a/libavcodec/h261enc.h b/libavcodec/h261enc.h index 0a01858be5..088cd9f4e0 100644 --- a/libavcodec/h261enc.h +++ b/libavcodec/h261enc.h @@ -35,6 +35,6 @@ void ff_h261_reorder_mb_index(MpegEncContext *s); void ff_h261_encode_mb(MpegEncContext *s, int16_t block[6][64], int motion_x, int motion_y); void ff_h261_encode_picture_header(MpegEncContext *s, int picture_number); -void ff_h261_encode_init(MpegEncContext *s); +int ff_h261_encode_init(MpegEncContext *s); #endif diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index e7e2e60a9a..8d74f9e978 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -682,14 +682,9 @@ av_cold int ff_mpv_encode_init(AVCodecContext *avctx) case AV_CODEC_ID_H261: if (!CONFIG_H261_ENCODER) return AVERROR_ENCODER_NOT_FOUND; - if (ff_h261_get_picture_format(s->width, s->height) < 0) { - av_log(avctx, AV_LOG_ERROR, - "The specified picture size of %dx%d is not valid for the " - "H.261 codec.\nValid sizes are 176x144, 352x288\n", - s->width, s->height); - return AVERROR(EINVAL); - } - ff_h261_encode_init(s); + ret = ff_h261_encode_init(s); + if (ret < 0) + return ret; s->out_format = FMT_H261; avctx->delay = 0; s->low_delay = 1;