From patchwork Wed Sep 21 01:30:19 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 38122 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:3b1c:b0:96:9ee8:5cfd with SMTP id c28csp2313417pzh; Tue, 20 Sep 2022 18:31:42 -0700 (PDT) X-Google-Smtp-Source: AMsMyM676I+FBiyvPdJRiOu8nKRL6yWy93AhxdG73DARvzo0aiQq0ikoQYRargMvjk009OGDW2Jf X-Received: by 2002:a17:907:97c3:b0:780:40ca:503a with SMTP id js3-20020a17090797c300b0078040ca503amr19885828ejc.18.1663723902055; Tue, 20 Sep 2022 18:31:42 -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 t12-20020a056402524c00b00454474269dbsi1549316edd.154.2022.09.20.18.31.40; Tue, 20 Sep 2022 18:31:42 -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=msPRbOP2; 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 60ABD68BB0A; Wed, 21 Sep 2022 04:31:37 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-oln040092064015.outbound.protection.outlook.com [40.92.64.15]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4FDA868B6AC for ; Wed, 21 Sep 2022 04:31:31 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mITbh8l9/15BJTcB6AFue1ZqYDsnczL4iMJmfX8ZsBrRKQMYVUUp4X0119SIg9Zk46tATZEfqSuiJbw8yajhcIF6E9tbh4RrLqpHA7DkOIGKk8Ob+wKokRX/U8tJ9v40IpR/MEF01T5QY1TAZUCLf7vwFwtIVmCRAdg9VJpLVcgeuo3rzI8UYfbn5LPiWSLNzpIp2xMmrrcv1ITwkxUlPTH4Z/QXlhC5QWr6oBwOjtg8wmYZW6DJK/paiQQRbICj52G6RakzrqHTezhuIxeFBQ7LY6YNyFPeZwiGazv1ttyWQTx+B1VkI8iYBiMAbg7WVYVIDUDz/H37i14EOTVwqg== 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=tgyjOT9zHA32JHJaZXzrlXF35xn3x9coTtv4kpSB+0U=; b=T2DFtDy2gKv5f/2Vl6M2WoG9DwAVg7MHhTSxfakiZ+b7ukYIUUQxVXvZ9xeTZpPs3kUQoMqQZftN7d854gyGbf54mdXwxDiCdKQ8lqFb2W1Lp9OeehUWX0wU08AVhDgSBdcVUGEVmfzsIl3qA2VqILCk/i8IC/1GlNqclUZtAVWWkad6w6Tp80Ox/DdgJs1mNX4pTqJdmemfuHXETX7UeufPVbg3pOocV1U1UIx3Xt1P8jsR/7pC0quBvTxJcBRDhN42qnuiUiJmq9sKiILM4Hc7adv1CByqRHUE4DYl7oynCFbccRph/x/UA+MZGXfE6rdsw5xiAxSxU2Tzm002iQ== 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=tgyjOT9zHA32JHJaZXzrlXF35xn3x9coTtv4kpSB+0U=; b=msPRbOP2Z3H41lGiDehjbaN1RGl5yLcC7M370Kc0g65MVx0ls1xfAPBz4kTtbFzE3g9z6KrXXOZWLLwGVx+PKMnl9adhwrNqkqysiWhBvV/4MTLhcWYCPkxD0iUlpZJqGIvddqHyOONASTbIdIt5Wu4oVZcd5oZJPwTS+bfzx39DxAOBBe9AOPEuCLFDB9tmoMB2uXe7B/Ib5F7v771QKgNYfIao75Qu95tJ8l0zEEDQkwO3/H6idNcZ4Oky5Tt8Z2PoUGsi/lEkm3hnzOhwivdgc7yLMRtJfVTqtofyjsDd/ra9ohdJ24ftPlucmHxqgx9G2wuXeWFSC1O4g9xsNQ== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by DU2P250MB0206.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:277::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5654.16; Wed, 21 Sep 2022 01:31:29 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::f3f2:4362:56:4785]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::f3f2:4362:56:4785%8]) with mapi id 15.20.5632.019; Wed, 21 Sep 2022 01:31:28 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 21 Sep 2022 03:30:19 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 X-TMN: [3ebgdVRJDNuHHmTo+EmNFZhG7WueFbmg] X-ClientProxiedBy: ZR0P278CA0013.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:16::23) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20220921013023.105212-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|DU2P250MB0206:EE_ X-MS-Office365-Filtering-Correlation-Id: 202a706b-7a17-4f7b-e139-08da9b710157 X-MS-Exchange-SLBlob-MailProps: EgT5Wr3QDKxVFFkeyUnvb1Noxh1UgBQicqmy1WC6a4l26WmSw5hjPOtGkGm1szYpPkzGkI0z8GHDSHDD7njh2qhS1ikEYsnheWtPiAUVn3T8E86g3A6I3kGgWgyzw4RoYchePYwtatlijtCDvSzozmoBE4hFGXdJnyEHqxvcbtqOmFcXsi1WGm8lUV4G9/d6R74DPeSnf00gjUAArU3JDx+7yuDrIIwbcd0Rz1/PLZ7LyZ1KkEXBtNDfnAMxc9FoDyPchEqa0GQ9BtnBXhTcOdoQUAAq1uvc2tg1eaUdIlN2/vnPK5lwm2fR7gNWN6UxxjPePNXKWJn6nnsuJmSuAdihMCH4Om6lNYGRg/TghAAq2e9oBsZv/AgvHwt/G1sFqx/qPfn5fwi7B/8o9dpUHz9ix7qxDvvJ2uEvzodnhfwRnOFo11K6lUaJBuUOgccPJFxpF/nJx3y8wOYA7v+A45SRSNsWT/ERhzBugS+LwDTsHd8aJ1Pc/5Ns5IpY6jR/GYUbPZtGQqLCGB/Ym0aJRx3bUQj771zo9zBs0+IjRuWr8vEo0kysLXuQRWwZkpw1npcLAp0FiRBqWzlZsxpMKw0MexgmVXWYbi3dZmLDPCiYI+hPdEl7xV7gytgrfHhjglC/KBdgOfuOfAD0CVw8is5bJLqEvVxO7jbM3y4Ulr6H+aNyroq+/x7ky8HSBsb6Q1TNadE+8IR95gZKsSv76dKt0k5ogWV6hmiixfb0Cvg= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: O8zWSI6+QRvEe5TpsOt59rgulw3MzBqlsOn4/10FXofCSEzjkHQnsLsknRxGLL0sMfS+JVyKGpeDiiDbNzp98OO6vyQKvS/BX+Kw23a1WX7+cBo3Wenw/yltnby51C7Xyex3PSlAgry94/xPPv4w9b4G2+xsMQ7gN8dOhrxvN7mqrT/i3n1f6b366y5IIt1u4oqWRZDrKNJ6acS2BMuc9wfaQ9NMS8CXYLMRk3gotgSYc0/WNsrkfV1S/SmQKRCR9GC4umbzThZplSaJFBTAbhNxeV8Q/DUaNBGNdWdzdRLMsEvlRxhwIMQG7OuXz5J+/abY9de8jTWN0EsCSrZWx4lwWYGWRjY16eVxN3MryTMulZikDeM45Jad5DtFSd4KB2oMW/455KPcHWl+ameVitRqgakBnaTo38t7gJelGp11WLcmNmM01LBuN4Utuj0OMGCW/J1OCdoXFwBV/b1Ba2c80W0cI3pJKWZeNEt1lh3ZOSbY3sS+U0C5pfsjYYdb1NPBHDCh3B+4Cy/WpiEyeJ7OfNB5MCvceGz/xLf0i0P4oatcz4m91WJLVjGNErmVGxaofoBdoH27PHaPsFEuqv8XMlipBIJ+fFhYOaPaWhyiFoTdIe4tLMQrkadqF7dWnBQWCdkA8uR3QGu0yMVfrA== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: xyU9YAPpX+bb9gKK4tdi8eI9Tiz8OnQeJu9k5CII90cfktucDmVbxWIlcG+QNvauM9pz5WIhVwD0aIBpmudpddX6I5Lq1HbNJF1PLxjCVQWl0+Bvf8o40WqIv1eotElOzYhGpuxPP6tR3lEJPlgm/WhbxYK0VablAM8Ga9H66e7monY+jsyd5w/31phG5RvuYSxMA5vSYJQnp3rY5gwl9r3p6fabnl2IT9JMLz99okWHKdZnsRCLQGr3rGZKcGsFwzKiE4LBMk/JDikfQdatDM8feMJmQg4tiIB0+s5SB9rYvE+u++YJ5f1f0nre6PchGwBfs9AHTgSM9+zPj268jtndaGJPoDw8w95xPcVubVkCVzezZ2EvGajQWUwcX4yzEZQ8lAhU6bFA8mQID3od5Zb/PdCvdhFOkZjfba6Vo1YQWmGDmtwvXMMlAItCoIEyLJTBm3sO6/TzksMGr1o/oF2W83XIRYBZboDUBtwfOoveKLoApG6jUvPAdRRFrlijemaB0Uf4lqZQD3d6+IZ56YavdMGgdmQHTERklo0El3lvB+802OTSgpQchxSet1prU6oQOfg1bLFNdoBtLZVEPacCtcHKsBujVXlwtJVY+R/FwHvY99YHc6F58doUEcbi6Rx8TnpskhnZOLLnWZnTmvDQn0WN9bj3KI+IWyVhBfmifW8Zn+nh2Cu8qFp6Nj/QoDPtC6g1qc0lLQK3s5qK39mW1BXDuN8oM4ajUZzznwRM0ZPoV96bJeiRQ48VTIGlnNHdTU2BjVcYsNaACa6F/hD+8fXb//jDKHHH44pJ333/OafU6+75GEf8w61zBhog6NwQZJfIB6illUIkrnMhvBhNJZmX3WtNOadRXNkVk5vTDE9PWsrC4Bdbk4NgJqNT3zCYVGLk78VnWn2khx0ZiE0BU84Kcj38Su7A+eMivWGVPpVuqeWZJLimqag70VjIsizp/BbAX+qYaBAyvz0LwW+1gsLfnWv0LWDGwDZQ9qf1E6pFQKpDPLPUEV2QSqEoqvTVBQYhXjoCXOuq154MTbYDmJbUDrHOf7LUpS/URBMH4mDM21Q44njzQhJqLetAvweauDS0ePEk4d/N2H6GMeszLYCbT663PNGS4Op+TbmcQKEsnu+e+NiPqBIUqiEhMLKOIbO/KaKjIHlZ8a4t/Rd24YqJ/ub7El+1TUEQTMo040o0D/GAcjDp85KNl3Zxa3FPBXitVt9g+Ug5VbMvzKgX6zHYRgVHAYtuLYdNhya74rHTTHtZpLWGURti3YRGvUUn4hTiNj4Dz/jWSaeGDJIx6WA3RgC24fDaVxtiJy0aBaRltPITfuKuXZLh/mRH X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 202a706b-7a17-4f7b-e139-08da9b710157 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2022 01:31:28.4679 (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: DU2P250MB0206 Subject: [FFmpeg-devel] [PATCH 1/5] avcodec/avcodec: Move AV_ER_* and FF_COMPLIANCE_* to defs.h 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: a6ZxBe8OoYNV They are also frequently used in libavformat. This change does not cause any breakage as avcodec.h includes defs.h. Signed-off-by: Andreas Rheinhardt --- doc/APIchanges | 3 +++ libavcodec/avcodec.h | 25 +++---------------------- libavcodec/defs.h | 22 ++++++++++++++++++++++ libavcodec/version.h | 2 +- 4 files changed, 29 insertions(+), 23 deletions(-) diff --git a/doc/APIchanges b/doc/APIchanges index 729f56be7b..cb7592bb64 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -14,6 +14,9 @@ libavutil: 2021-04-27 API changes, most recent first: +2022-09-21 - xxxxxxxxxx - lavc 59.45.100 - avcodec.h defs.h + Move the AV_EF_* and FF_COMPLIANCE_* defines from avcodec.h to defs.h. + 2022-09-03 - xxxxxxxxxx - lavu 57.36.100 - pixfmt.h Add AV_PIX_FMT_P012, AV_PIX_FMT_Y212, AV_PIX_FMT_XV30, AV_PIX_FMT_XV36 diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 7db5d1b1c5..0769577338 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -1305,13 +1305,9 @@ typedef struct AVCodecContext { * unofficial and experimental (that is, they always try to decode things * when they can) unless they are explicitly asked to behave stupidly * (=strictly conform to the specs) + * This may only be set to one of the FF_COMPLIANCE_* values in defs.h. */ int strict_std_compliance; -#define FF_COMPLIANCE_VERY_STRICT 2 ///< Strictly conform to an older more strict version of the spec or reference software. -#define FF_COMPLIANCE_STRICT 1 ///< Strictly conform to all the things in the spec no matter what consequences. -#define FF_COMPLIANCE_NORMAL 0 -#define FF_COMPLIANCE_UNOFFICIAL -1 ///< Allow unofficial extensions -#define FF_COMPLIANCE_EXPERIMENTAL -2 ///< Allow nonstandardized experimental things. /** * error concealment flags @@ -1347,28 +1343,13 @@ typedef struct AVCodecContext { /** * Error recognition; may misdetect some more or less valid parts as errors. + * This is a bitfield of the AV_EF_* values defined in defs.h. + * * - encoding: Set by user. * - decoding: Set by user. */ int err_recognition; -/** - * Verify checksums embedded in the bitstream (could be of either encoded or - * decoded data, depending on the codec) and print an error message on mismatch. - * If AV_EF_EXPLODE is also set, a mismatching checksum will result in the - * decoder returning an error. - */ -#define AV_EF_CRCCHECK (1<<0) -#define AV_EF_BITSTREAM (1<<1) ///< detect bitstream specification deviations -#define AV_EF_BUFFER (1<<2) ///< detect improper bitstream length -#define AV_EF_EXPLODE (1<<3) ///< abort decoding on minor error detection - -#define AV_EF_IGNORE_ERR (1<<15) ///< ignore errors and continue -#define AV_EF_CAREFUL (1<<16) ///< consider things that violate the spec, are fast to calculate and have not been seen in the wild as errors -#define AV_EF_COMPLIANT (1<<17) ///< consider all spec non compliances as errors -#define AV_EF_AGGRESSIVE (1<<18) ///< consider things that a sane encoder should not do as an error - - /** * opaque 64-bit number (generally a PTS) that will be reordered and * output in AVFrame.reordered_opaque diff --git a/libavcodec/defs.h b/libavcodec/defs.h index 420a042b8f..fbe3254db2 100644 --- a/libavcodec/defs.h +++ b/libavcodec/defs.h @@ -39,6 +39,28 @@ */ #define AV_INPUT_BUFFER_PADDING_SIZE 64 +/** + * Verify checksums embedded in the bitstream (could be of either encoded or + * decoded data, depending on the format) and print an error message on mismatch. + * If AV_EF_EXPLODE is also set, a mismatching checksum will result in the + * decoder/demuxer returning an error. + */ +#define AV_EF_CRCCHECK (1<<0) +#define AV_EF_BITSTREAM (1<<1) ///< detect bitstream specification deviations +#define AV_EF_BUFFER (1<<2) ///< detect improper bitstream length +#define AV_EF_EXPLODE (1<<3) ///< abort decoding on minor error detection + +#define AV_EF_IGNORE_ERR (1<<15) ///< ignore errors and continue +#define AV_EF_CAREFUL (1<<16) ///< consider things that violate the spec, are fast to calculate and have not been seen in the wild as errors +#define AV_EF_COMPLIANT (1<<17) ///< consider all spec non compliances as errors +#define AV_EF_AGGRESSIVE (1<<18) ///< consider things that a sane encoder/muxer should not do as an error + +#define FF_COMPLIANCE_VERY_STRICT 2 ///< Strictly conform to an older more strict version of the spec or reference software. +#define FF_COMPLIANCE_STRICT 1 ///< Strictly conform to all the things in the spec no matter what consequences. +#define FF_COMPLIANCE_NORMAL 0 +#define FF_COMPLIANCE_UNOFFICIAL -1 ///< Allow unofficial extensions +#define FF_COMPLIANCE_EXPERIMENTAL -2 ///< Allow nonstandardized experimental things. + /** * @ingroup lavc_decoding */ diff --git a/libavcodec/version.h b/libavcodec/version.h index 2cad78e640..a3441795e0 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -29,7 +29,7 @@ #include "version_major.h" -#define LIBAVCODEC_VERSION_MINOR 44 +#define LIBAVCODEC_VERSION_MINOR 45 #define LIBAVCODEC_VERSION_MICRO 100 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \