From patchwork Fri Sep 24 16:37:10 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 30556 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:6506:0:0:0:0:0 with SMTP id z6csp1698328iob; Fri, 24 Sep 2021 09:37:41 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzXyWnPQ8ywaF/nMUkZas4GvFWDA7ygP79XSGuduaCU0yxWB6PIMWMjSdmCi3xytDJttXZl X-Received: by 2002:a50:9d48:: with SMTP id j8mr6163669edk.165.1632501461350; Fri, 24 Sep 2021 09:37: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 l3si11870626ejo.634.2021.09.24.09.37.38; Fri, 24 Sep 2021 09:37: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=foVbvpSQ; 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 6D2FB68A6E0; Fri, 24 Sep 2021 19:37:35 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2088.outbound.protection.outlook.com [40.92.91.88]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BFE8468A576 for ; Fri, 24 Sep 2021 19:37:29 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=g3HMWCP9qIly/C4CisQ+doPUWMW8+vugQSzPvZkh9dLCl8t4uhcdz5gfrUmwykkJPsJuQuavh8Vuk3GmJinntdSraQREg3TunvqpDaQ2J6D/Cr0esV3MrvSYio30m/qcXlBaO3mkF9lcPr6I3WXhch27owb+rCe6ucEjkh6MOgFmxc8RxeTjeRpkcqdKh9CrkLeW2HH5Mi7tIJOt5qArc/j2MpkKykXVxr9UZqm9GSXGGuEDsg9u1GbVao0wHSfo35zZCvlzXtKDvyVusW7ERibk777tU3Pf2eN06urmaN8nuRCldUAKKT17YnHU8m4oCHwPnkC0LJse0GOBisfPdw== 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; bh=NvrNLWXf6Ou54ds7kRCWR7/685UNQ3LH5436L3RdzII=; b=NXZQ6JzWlKO0Cg14xT/i2U97Wn+98Swj5ybM1mWxtHtefVp/PU+UhOjw3WTPihsKvY+NLoIEbmkIrjyLUruWARXMeXAlssyt5+3Ji0kFe6fEQUpe7Phjsg6ewJ/OW9QMqdgruZvEuk+Am8wbjbTdhHfja7OjaDnKhs5S+qp0cCwiG8jxDsPacx5Kem33SWIdvgNT3hOAnmf0femvwpPx4dPQxqsX/WRasIOxQ2HXZO6tCm/v9HNQpDeykdI5ey/IO2wfHx8Z9d4tHox2tW+EJmd2sYK6pDBM8rUAMjHAH9iDonzkFobn+SDtT3kRrTfBxzZ43HvgSdenLJN4hxfprg== 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=NvrNLWXf6Ou54ds7kRCWR7/685UNQ3LH5436L3RdzII=; b=foVbvpSQRlcTvPWMqIufm3apYHl6kI7jaxWp98TaT8CBdm0NaYmCehYHk4KVJgNtKQXl/M/QUeZv9QI4GEc7uSiS7MbEp90cZFqxVg0VoU2vaQoriEOxjzSR5U0Jik2DLkORawy1y3txjoOVB5SxIY08O0ITV0wny4mS8HvTodZZUuhm/tswMmPnSwxem+87Vm71snyecF8eeo3cJ1SSI7jY/vn7+FS/rVNwyNnc56Dx6O5xEELe++DBZdQ4GPKHDeO5Q9dNEocoNMsSjNGZJ7Q+gCEp2aVd0gTVK2TgZ/liASTKi+220Fu3JUKRybu8mZCZmpz4ue0XOge/pgcdng== Received: from PR3PR03MB6665.eurprd03.prod.outlook.com (2603:10a6:102:7d::6) by PA4PR03MB6847.eurprd03.prod.outlook.com (2603:10a6:102:eb::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4544.13; Fri, 24 Sep 2021 16:37:28 +0000 Received: from PR3PR03MB6665.eurprd03.prod.outlook.com ([fe80::15d4:ff2d:e607:cf68]) by PR3PR03MB6665.eurprd03.prod.outlook.com ([fe80::15d4:ff2d:e607:cf68%3]) with mapi id 15.20.4544.015; Fri, 24 Sep 2021 16:37:28 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 24 Sep 2021 18:37:10 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: X-TMN: [iuRo2tLcCX0nz2JNxfcyWnnvazVA3F2c] X-ClientProxiedBy: PR3P193CA0044.EURP193.PROD.OUTLOOK.COM (2603:10a6:102:51::19) To PR3PR03MB6665.eurprd03.prod.outlook.com (2603:10a6:102:7d::6) X-Microsoft-Original-Message-ID: <20210924163719.562217-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by PR3P193CA0044.EURP193.PROD.OUTLOOK.COM (2603:10a6:102:51::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4544.13 via Frontend Transport; Fri, 24 Sep 2021 16:37:27 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8c831a41-17bc-4638-a719-08d97f7998ba X-MS-Exchange-SLBlob-MailProps: pxu8rxgqUggP6Egsaxdw4x2opvW4nRctkaAxuZ1nYjl2+mKAkDR4vqlTBaaNXpG4M3nrD/mUpIYfYKL6+XRCJVmu3ZQqmWA76CkgNYawj/wDauEE8vlvJv8Lsdt8NfAhqiqUz94ZggeMT8uYHAlWRB3GnW29NC+qo2F2uDPFw8Q5h0SpZcI52AsOBkvMPdc99OaQqtox/yf0uNqlROTAIjnOnQDSuTg1G9isX0Qe1X3vHks4iXJeGViYkDBrgvedIxfLKzt311Q1xZ37YsvEk4B2DR8iqlvTqREBT1ZtfbL3B/+iIq/94/zroRyyCcNjvFFHG4Xwh0LvAj/M65UujuU9fjdIMSJTBYZ0vtAYgSvXIK4uRle6sfDIZQaVobL6ert9K+FeE7wfzWuxn5Lb0LW0c3ukAbRiyvRCqrpIj8xoF9Z6OXCKJXf4ReNX34ckfe59i4NrL3NOwv/XZyQ9wQGmT8HJ8z4tDe4T0hMy7OPAKW4A0HGi0ize7mJA0F6qliBkhNe/zy7T0ZeRU42HBy1PxxMUy+8LnuAbrI0r9lcIH/1Q+NgZTVU5nUBGLgAuRUGMISwTtPEeo7q+pwJgWvgDGbM1kB+4R4gCt+JlmWbHlFTwVdV8c3U6ruOCvaFw7QJCXctRXYBlLa8SyUJYuNRYqlAlcSbC+XuTWo2pCD9jSaR384U/6iDmjCsUAwWJ0A9mbZMeCGzmJPPlJWlMGQ== X-MS-TrafficTypeDiagnostic: PA4PR03MB6847: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Sb8MyrqiUug3kGWVeKLfw/WYJVfqb9fQvvmkbVD6/3wXDfn68wmRIAilzNQUIwkbtikWcjnNqx+RZCc7R0pU/Mi+sL9GQzzSLEw9oFplKA22CsCok3EAOskhUJJP1kwLEN/d+oAEqdDs01eLA2GYGFVhByUGIE1Nl/72i6I2Dr1pZj+kfkX919T4wj9MRwF/Y9R2/Nt1/J6wBOjCYKy7DBvFjMJTYe02wLVY2pVHQixvZi7+lbFc6diJBoGb0i2H9uGbtdPPDubmdsyE4/8JY75dRJG2oxIDTCwj8MNFE9vVc8zveKWjqzPpLENEacqD6CAw2K/NFW6/0lWsuML+GRTplRtqbJU2Va3+3jresJOpE33+W4WM3edOWOjGNfDwfI0L5AISW2N4nQAMUIHyEivr99HqGQc+gf4plL9mICz362hUtZZjlEucqkAageZq X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: nkdRKVrPQm2d+C8sG3BsTZiE6uEjK8cx2ujbYHv28sIfWXxz16F7mr5xQtyHVz++G932dZWCrL7LmmRD2ciM/irvDn01HUVNaVdntNkUrGlROH2stK4XjuHSSz+1Tl+VwcvctG+e/4k0tV7qE0eRdw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8c831a41-17bc-4638-a719-08d97f7998ba X-MS-Exchange-CrossTenant-AuthSource: PR3PR03MB6665.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Sep 2021 16:37:28.3300 (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: PA4PR03MB6847 Subject: [FFmpeg-devel] [PATCH 02/11] avcodec/tests/avcodec: Add basic sanity checks for AVCodec properties 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: M+RbsI6TtVJP Signed-off-by: Andreas Rheinhardt --- libavcodec/tests/avcodec.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/libavcodec/tests/avcodec.c b/libavcodec/tests/avcodec.c index 9232647ff0..22f308fafa 100644 --- a/libavcodec/tests/avcodec.c +++ b/libavcodec/tests/avcodec.c @@ -18,12 +18,48 @@ #include "libavcodec/avcodec.h" +static const char *get_type_string(enum AVMediaType type) +{ + const char *ret = av_get_media_type_string(type); + return ret ? ret : "unknown"; +} + +#define AV_LOG(...) av_log(NULL, AV_LOG_FATAL, __VA_ARGS__) +#define ERR_INTERNAL(msg, ...) \ +do { \ + AV_LOG(msg, codec->name __VA_ARGS__); \ + ret = 1; \ +} while (0) +#define ERR(msg) ERR_INTERNAL(msg, ) +#define ERR_EXT(msg, ...) ERR_INTERNAL(msg, , __VA_ARGS__) + int main(void){ void *iter = NULL; const AVCodec *codec = NULL; int ret = 0; while (codec = av_codec_iterate(&iter)) { + if (!codec->name) { + AV_LOG("Codec for format %s has no name\n", + avcodec_get_name(codec->id)); + ret = 1; + continue; + } + if (codec->type != AVMEDIA_TYPE_VIDEO && + codec->type != AVMEDIA_TYPE_AUDIO && + codec->type != AVMEDIA_TYPE_SUBTITLE) + ERR_EXT("Codec %s has unsupported type %s\n", + get_type_string(codec->type)); + if (codec->type != AVMEDIA_TYPE_AUDIO) { + if (codec->channel_layouts || codec->sample_fmts || + codec->supported_samplerates) + ERR("Non-audio codec %s has audio-only fields set\n"); + } + if (codec->type != AVMEDIA_TYPE_VIDEO) { + if (codec->pix_fmts || codec->supported_framerates) + ERR("Non-video codec %s has audio-only fields set\n"); + } + if (av_codec_is_encoder(codec)) { if (codec->type == AVMEDIA_TYPE_AUDIO) { if (!codec->sample_fmts) {