From patchwork Fri May 6 10:31:35 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 35617 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:a885:b0:7f:4be2:bd17 with SMTP id ca5csp1585505pzb; Fri, 6 May 2022 03:32:06 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx6U1oR4z6TAnfqfKlRkWIBOyUwZ9KvM5AcHQtCT/n3O/OLkMLLKdOCkFmaYww1ij8hLfC8 X-Received: by 2002:a17:906:3101:b0:6d6:5b64:906f with SMTP id 1-20020a170906310100b006d65b64906fmr2248286ejx.513.1651833125975; Fri, 06 May 2022 03:32:05 -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 v1-20020a50c401000000b0041d70e6ea5bsi3871380edf.533.2022.05.06.03.32.04; Fri, 06 May 2022 03:32:05 -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=tDiJ+n4o; 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 392FF68B278; Fri, 6 May 2022 13:32:00 +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-oln040092075068.outbound.protection.outlook.com [40.92.75.68]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0CD4C68B278 for ; Fri, 6 May 2022 13:31:52 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=R31VgPG+M+P+Z0pL3WVQ7xP/tYwIhsBIs2ng/M/+9+9Q4cFrPnawswp3FBOERpzgO3zRWywIxEpnCU/CWTg0/zGG4NZZt1URFmp3qsCjLR1ZNGAuSV/mV/Z1KKNXkTIyB30gPj/aARw1G7fOahtOs5YQOsKCzJm5UJunFN6VpfWO1ONUy7UqISXXQJFHrTL6rv3IASGh9eeG1LpvLIqlCL8t5P84yb7uanHcqzsERxIf8nVlh84dKrcyQhE/Mfdfe1m6fOOo5MCc8kiADTLdIe9NbdbDOBtJ9gh/fQaeSyOv9z64zxkoQFMQoVrE1LGXjMgIEoQbl0xDThQ4BSHyhg== 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=IMp5H6PhC4PGyg7ES1G16JAyg/BBkpRk3Fid4ocfzGA=; b=mTYmebUkE0RH/qgzZ+QTN5iJKTZm3WXL1Q4nOEytH6k7QfEG9vQu8pHau49GgLCA1W8FiW7JuT1PrD5JtZj5EL9j5TI89epHvSZVNCgaTsstzjTdR8oibcHKgn4V45Cym+ow0sXq3gSHu9Iz+FpqZjvMOAO+FnPGVcT9rC+qHxfKJtV92jqfJPU/9JP5Ze5KSA/VLQnAskoSTHKIzeHrJyUb/UWJD8V/ROvIdBGE6+wdgnRqzMmEhCFMTxDXvGmwniEUduo5IudF9UGT00iK4LO7Kgyk09gKkQpvssrfULoIFu9y6VVhbEjSWMwPGgEorWJbKhP0AnhQWuqRUE1YOg== 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=IMp5H6PhC4PGyg7ES1G16JAyg/BBkpRk3Fid4ocfzGA=; b=tDiJ+n4oFmheeM1yfeuEJ1LTUbkQyx5Rh6oG3mqjtOI+W7+hEyK42DSt39BNWhklq9sfHfco4pddlRqeGXdmeZfLoKhRrEgTbwpapzyNRz959s9aFzU9NlI4LIif4D27kW59//NDneQXKXS8dSVEMTARJSgt5oMklVgzhWZMExehWa89nbFBfHF5QeuxHiYtg+oTS6PZQDOmDbBi2hUYOoiojQWuz7MZ+9OxnFkQ5o+uwSRTV9xQMi9GJWj/NoZBXN6E0wr6BjE1d9MrdcUTQL/qIXauhGSWytn7GUwGYSrvpcp1US2ixxwqcwedbWb/xbKJifPinPzJObrJazznRQ== Received: from AS8PR01MB7944.eurprd01.prod.exchangelabs.com (2603:10a6:20b:373::5) by PAXPR01MB8884.eurprd01.prod.exchangelabs.com (2603:10a6:102:2ba::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.25; Fri, 6 May 2022 10:31:50 +0000 Received: from AS8PR01MB7944.eurprd01.prod.exchangelabs.com ([fe80::1854:2c30:7ba1:c431]) by AS8PR01MB7944.eurprd01.prod.exchangelabs.com ([fe80::1854:2c30:7ba1:c431%6]) with mapi id 15.20.5206.024; Fri, 6 May 2022 10:31:50 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 6 May 2022 12:31:35 +0200 Message-ID: X-Mailer: git-send-email 2.32.0 X-TMN: [d1PpiNAd9hrGMK2hcfWEUJYvxrn/OdMb] X-ClientProxiedBy: ZR0P278CA0083.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:22::16) To AS8PR01MB7944.eurprd01.prod.exchangelabs.com (2603:10a6:20b:373::5) X-Microsoft-Original-Message-ID: <20220506103135.116363-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: eb3202d4-723c-48ae-25db-08da2f4b9da9 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNV5xbDn+Qw+qpR/iYrwAecbfWnEA0sqNpYrnuDPXPLZVT9tN4cWurEuum9KPYEXDdC/8FbMe3uYVI0eMUCnxJCp9pCeVwK02DpY6O/4iCI8f+0dNO/mGfyGrPcMml+YJEiy1iA67HdOwUVShZqK2S3Z82+texf1kKdoGLUCgCcEoJXth7gUT+TiAaaGebY+MCrxAN7hfAcrhP37MJiEX+0vR/kDRGV8P842B4iyWKdSY8I3hA0JoGT2fNi4gsqkTXQXhTNHYLCVpQgrqmWlOygf0d2sDeyRQTk0BJVnJMeFU74nKwCdi3kPsigFgThXRJ7wCXe9SV9UB11wOcjkt/VO+T0h7yiG8LT90az28Z23Tx+A5i+1YoSHMQdHcVswWW8jR3EA5xhpI4WoZNYU+U/z3wcviWYBmCAMJ/1THYdxMXsiX/Xj0ZBW6NJjErY1wOJYEebUi3IgjFOKqB2wc4rxAWhUQ5mgCFPu/owKR37ZZErFfXNdL9s/ilvXkv9hUNaNOaTSUP+tt09LrrHzE0VUBHZBQxa5K2gtvR1KeuU+slEORnoN2RAcRsUoPEjO2oZIbiSaHZA3cXrpSd3MPyrFPzRD+zqCLm03+29x+lhE30BbM9fn9SZGMwf/0aEIBMwL6jLsYDRxN87DHgXq984ciUyukhgteDEP7Y3n3/eLow5o75wLbJ/hn7xoWyHfyoN293xa8fNdwsOsHReA4MZdd+ODsS0H5l4= X-MS-TrafficTypeDiagnostic: PAXPR01MB8884:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: cGuVUknrpe4uYJjTh6QPXm9Ki8NtMuoFybtb2E6YpzMNd+LZKJqaLtGHyDGAO1wmsnREM1nSQEEgXNvGesVV1xkbWpmgHukl5r44EQZpqRoIgGw149vT88Y3tc6y7i+OkcBEj8ZmeEobjphHctIxhG45CgHWIGiY4Tb3qgvdgn1jRLz6Z0EnoxLDW05V07mmHHxWAkGhcn5eykfGmuxVMM5y+z8oxtZbdbfsulYF+MzUcD+0a+GRw0h/2oEppyWxUSLEihubqon5ISWK+E5fS1wI3BoV02XeHCB3KnPZNQ7WusuhxhD1XXBiONJ0ABl2TCQrwo+N1FBr8Z23m9IDMwkgQksGVfJEoy72cH+KpKHffalB3PlUP/tJHiNUJd8lTTOoz4AoYAsexRJo++MZApIZpFjlRITal2ryCUI3UsQJJH3kdtAaVLfSQHprkZsPW2DDY1opbPNioqf6lJL3jefJF6L1h73XoWdrvWawmFcflnN96MM3urQ8Do6mU82vmPhxrRGtD7vLGb4lDURnPrpO/KE2c4CAbPFZgCFCdhKUO89WZvmM2HtfxbajfbOj5+STMymAgarpl1K8W+aw0IZBbudfLuZY0CJrNcFerj/51eRpII1kEOKrABBSh+RRpWH6mkgoa4FO6TwS5SA28A== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: /tkEnMnILURAbebJP07RzAMJiHQB++fSJbQ4N0HzimwcapK+FVwY/OEKvYVJmlz3NwZXGaaTgYNL8BbwwVx3MVWtVsB15j7DD0aGbqHmuUmdJRBYg0EWaGwg+BdFOeZPEGaIt/texcYX8/wZA0+bx29YSkySpz+AWM6s4q0JbLatdkJ/r4jgBnjKMzyOI6hJxlro2vC0nCUqEr8rLFb0fM/qB3sRmuPMUvEF64Y3CU+3SWr/cTeiGI9uZfl9gUxEwKn8v/+AP4ywTdIkirRivOxeVMz5UxYTXeq4S16Ci8ifHEjaLVmcBn5gioW4LKhI9O6bWpofm/8S5f2rS99z6q3MmHVXeY2oyiHy2W/l4Gw8UT/M0csKz7lt7Ng9ofuIzeS0bpHPOEnwQU5LDkM5ow9AFEIGdWD2fS0bpEd+k5+zfw0IqayBNTZ1UaDsXly8EzygKlmS63kcIRU3WKWeDJ34ga5xoqPTDPNZCnVVFVmH2HSZcCjJH8OkP5B04yIwbKqupxevbk6rDZ4krwd4t8+0VeKsK7ZjjtSkGK8FkvIdfrf1tAvFkSaX6NenNvL/HtNm1zKyAJTBs18/k9dxD5z0NPy1IteoXe4ws2uiwjzIjVj+TKeiG6s3J5DJm5GEAdQxAKNDz8EhNTSlyOxEoR8pc1sP+JTQwWTfOwID2b9kaUw1jS6/Axhwjyyqh9S4+8Nz470H2A+8jcpsNvBZXEmxR85PJyvdbDialGlxzB2B6K7+p/T57ORccG2nrfyFNmQf5K1UcIdpJvpwFOJxN00cDO8hCCdsPuYZQCf9Rw7gwDb1BG3/cXTzzYpoV+c+/qa6YHpHME7K80xDpu5Cm5dGIKCDtsRpZuoEXPgXnkZRICGBNXnMKgz3wmXUiUsBK/8tKhTPgHqqIgQ51CaF2DmNGChtTBiW1TwlVfszLgPahbWsluEfFbS1fbm+Fmq1qlGijsJyxqdndtdWJ6QW0OCWHwTV2ukUOP1tG2BS3FqiLDrSFLX1HvvFo2bjTMMCri0eI0TxDItzxIS1A2TPrHutUcIG5oag9Sj2cu9W8v1n0SjIgJC8vYmmGMgEqGLaSuBC4dc9Fm7gdX2EeIJSzPMXQkO/5gDmwu4gxzhM2ID34XCcNfQcSD3J167rpSAr4L9cIkCFuDfR0sQ58ybmmaaroxDbyV/uyPztrIa9LZZb6aTxg+jzDfxJWCC09HpA3jh6sJmkfwyUWAsAyMiuNH1CsXKeS8UqBhFf+hVKU7meZBJH6qGwmuRpy3apaf68xza8q6Fd5wovhlmy0wtPhT1Rh+yfZIEtC0fMeynHUWHJANONfF5F9MSY6KUFa0HrBjyhel21GypTN//JY/r3HsRgV5zbLce252PF3vSIXQ9H3Aq5VnB6IpTkITvvw4+1fxrNuC04hYzgcIqUz35pwqNcfG4tr77HuvGqnsMz5xHuuQxpqHkE0ieJ2CNt31Gl0wTIb5C37egHmznS/RzAYQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: eb3202d4-723c-48ae-25db-08da2f4b9da9 X-MS-Exchange-CrossTenant-AuthSource: AS8PR01MB7944.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2022 10:31:50.2403 (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: PAXPR01MB8884 Subject: [FFmpeg-devel] [PATCH] lib*/version: Move library version functions into files of their own 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: Cd029H6WJ9XH This avoids having to rebuild big files every time FFMPEG_VERSION changes (which it does with every commit). Signed-off-by: Andreas Rheinhardt --- Makefile | 4 ++- ffbuild/common.mak | 2 -- libavcodec/Makefile | 1 + libavcodec/avcodec.c | 25 -------------- libavcodec/version.c | 50 +++++++++++++++++++++++++++ libavdevice/Makefile | 1 + libavdevice/avdevice.c | 24 ------------- libavdevice/version.c | 45 ++++++++++++++++++++++++ libavfilter/Makefile | 1 + libavfilter/avfilter.c | 23 ------------ libavfilter/version.c | 44 +++++++++++++++++++++++ libavformat/Makefile | 1 + libavformat/utils.c | 21 ----------- libavformat/version.c | 45 ++++++++++++++++++++++++ libavutil/Makefile | 1 + libavutil/utils.c | 43 ----------------------- libavutil/version.c | 71 ++++++++++++++++++++++++++++++++++++++ libpostproc/Makefile | 3 +- libpostproc/postprocess.c | 21 ----------- libpostproc/version.c | 44 +++++++++++++++++++++++ libswresample/Makefile | 1 + libswresample/swresample.c | 21 ----------- libswresample/version.c | 45 ++++++++++++++++++++++++ libswscale/Makefile | 1 + libswscale/utils.c | 20 ----------- libswscale/version.c | 41 ++++++++++++++++++++++ 26 files changed, 397 insertions(+), 202 deletions(-) create mode 100644 libavcodec/version.c create mode 100644 libavdevice/version.c create mode 100644 libavfilter/version.c create mode 100644 libavformat/version.c create mode 100644 libavutil/version.c create mode 100644 libpostproc/version.c create mode 100644 libswresample/version.c create mode 100644 libswscale/version.c diff --git a/Makefile b/Makefile index 48cfb6e240..f38b521765 100644 --- a/Makefile +++ b/Makefile @@ -19,6 +19,8 @@ vpath %/fate_config.sh.template $(SRC_PATH) TESTTOOLS = audiogen videogen rotozoom tiny_psnr tiny_ssim base64 audiomatch HOSTPROGS := $(TESTTOOLS:%=tests/%) doc/print_options +ALLFFLIBS = avcodec avdevice avfilter avformat avutil postproc swscale swresample + # $(FFLIBS-yes) needs to be in linking order FFLIBS-$(CONFIG_AVDEVICE) += avdevice FFLIBS-$(CONFIG_AVFILTER) += avfilter @@ -113,7 +115,7 @@ include $(SRC_PATH)/fftools/Makefile include $(SRC_PATH)/doc/Makefile include $(SRC_PATH)/doc/examples/Makefile -libavcodec/avcodec.o libavformat/utils.o libavdevice/avdevice.o libavfilter/avfilter.o libavutil/utils.o libpostproc/postprocess.o libswresample/swresample.o libswscale/utils.o : libavutil/ffversion.h +$(ALLFFLIBS:%=lib%/version.o): libavutil/ffversion.h $(PROGS): %$(PROGSSUF)$(EXESUF): %$(PROGSSUF)_g$(EXESUF) ifeq ($(STRIPTYPE),direct) diff --git a/ffbuild/common.mak b/ffbuild/common.mak index 42f7b23641..24113c59eb 100644 --- a/ffbuild/common.mak +++ b/ffbuild/common.mak @@ -29,8 +29,6 @@ $(foreach VAR,$(SILENT),$(eval override $(VAR) = @$($(VAR)))) $(eval INSTALL = @$(call ECHO,INSTALL,$$(^:$(SRC_DIR)/%=%)); $(INSTALL)) endif -ALLFFLIBS = avcodec avdevice avfilter avformat avutil postproc swscale swresample - # NASM requires -I path terminated with / IFLAGS := -I. -I$(SRC_LINK)/ CPPFLAGS := $(IFLAGS) $(CPPFLAGS) diff --git a/libavcodec/Makefile b/libavcodec/Makefile index cfaa6f196a..1b60e0e1d4 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -56,6 +56,7 @@ OBJS = ac3_parser.o \ qsv_api.o \ raw.o \ utils.o \ + version.o \ vlc.o \ vorbis_parser.o \ xiph.o \ diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c index d11f035481..8afb6cd62e 100644 --- a/libavcodec/avcodec.c +++ b/libavcodec/avcodec.c @@ -40,31 +40,6 @@ #include "frame_thread_encoder.h" #include "internal.h" #include "thread.h" -#include "version.h" - -#include "libavutil/ffversion.h" -const char av_codec_ffversion[] = "FFmpeg version " FFMPEG_VERSION; - -unsigned avcodec_version(void) -{ - av_assert0(AV_CODEC_ID_PCM_S8_PLANAR==65563); - av_assert0(AV_CODEC_ID_ADPCM_G722==69660); - av_assert0(AV_CODEC_ID_SRT==94216); - av_assert0(LIBAVCODEC_VERSION_MICRO >= 100); - - return LIBAVCODEC_VERSION_INT; -} - -const char *avcodec_configuration(void) -{ - return FFMPEG_CONFIGURATION; -} - -const char *avcodec_license(void) -{ -#define LICENSE_PREFIX "libavcodec license: " - return &LICENSE_PREFIX FFMPEG_LICENSE[sizeof(LICENSE_PREFIX) - 1]; -} int avcodec_default_execute(AVCodecContext *c, int (*func)(AVCodecContext *c2, void *arg2), void *arg, int *ret, int count, int size) { diff --git a/libavcodec/version.c b/libavcodec/version.c new file mode 100644 index 0000000000..d7966b2015 --- /dev/null +++ b/libavcodec/version.c @@ -0,0 +1,50 @@ +/* + * Version functions. + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "config.h" + +#include "libavutil/avassert.h" +#include "avcodec.h" +#include "codec_id.h" +#include "version.h" + +#include "libavutil/ffversion.h" +const char av_codec_ffversion[] = "FFmpeg version " FFMPEG_VERSION; + +unsigned avcodec_version(void) +{ + av_assert0(AV_CODEC_ID_PCM_S8_PLANAR==65563); + av_assert0(AV_CODEC_ID_ADPCM_G722==69660); + av_assert0(AV_CODEC_ID_SRT==94216); + av_assert0(LIBAVCODEC_VERSION_MICRO >= 100); + + return LIBAVCODEC_VERSION_INT; +} + +const char *avcodec_configuration(void) +{ + return FFMPEG_CONFIGURATION; +} + +const char *avcodec_license(void) +{ +#define LICENSE_PREFIX "libavcodec license: " + return &LICENSE_PREFIX FFMPEG_LICENSE[sizeof(LICENSE_PREFIX) - 1]; +} diff --git a/libavdevice/Makefile b/libavdevice/Makefile index 99fea7133a..bbe2f69dcc 100644 --- a/libavdevice/Makefile +++ b/libavdevice/Makefile @@ -8,6 +8,7 @@ HEADERS = avdevice.h \ OBJS = alldevices.o \ avdevice.o \ utils.o \ + version.o \ OBJS-$(HAVE_LIBC_MSVCRT) += file_open.o diff --git a/libavdevice/avdevice.c b/libavdevice/avdevice.c index 833d200054..b4fb272eb6 100644 --- a/libavdevice/avdevice.c +++ b/libavdevice/avdevice.c @@ -17,15 +17,8 @@ */ #include "libavutil/avassert.h" -#include "libavutil/samplefmt.h" -#include "libavutil/pixfmt.h" #include "avdevice.h" #include "internal.h" -#include "config.h" -#include "version.h" - -#include "libavutil/ffversion.h" -const char av_device_ffversion[] = "FFmpeg version " FFMPEG_VERSION; #if FF_API_DEVICE_CAPABILITIES const AVOption av_device_capabilities[] = { @@ -33,23 +26,6 @@ const AVOption av_device_capabilities[] = { }; #endif -unsigned avdevice_version(void) -{ - av_assert0(LIBAVDEVICE_VERSION_MICRO >= 100); - return LIBAVDEVICE_VERSION_INT; -} - -const char * avdevice_configuration(void) -{ - return FFMPEG_CONFIGURATION; -} - -const char * avdevice_license(void) -{ -#define LICENSE_PREFIX "libavdevice license: " - return &LICENSE_PREFIX FFMPEG_LICENSE[sizeof(LICENSE_PREFIX) - 1]; -} - int avdevice_app_to_dev_control_message(struct AVFormatContext *s, enum AVAppToDevMessageType type, void *data, size_t data_size) { diff --git a/libavdevice/version.c b/libavdevice/version.c new file mode 100644 index 0000000000..92d7f2d159 --- /dev/null +++ b/libavdevice/version.c @@ -0,0 +1,45 @@ +/* + * Version functions. + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "config.h" + +#include "libavutil/avassert.h" +#include "avdevice.h" +#include "version.h" + +#include "libavutil/ffversion.h" +const char av_device_ffversion[] = "FFmpeg version " FFMPEG_VERSION; + +unsigned avdevice_version(void) +{ + av_assert0(LIBAVDEVICE_VERSION_MICRO >= 100); + return LIBAVDEVICE_VERSION_INT; +} + +const char * avdevice_configuration(void) +{ + return FFMPEG_CONFIGURATION; +} + +const char * avdevice_license(void) +{ +#define LICENSE_PREFIX "libavdevice license: " + return &LICENSE_PREFIX FFMPEG_LICENSE[sizeof(LICENSE_PREFIX) - 1]; +} diff --git a/libavfilter/Makefile b/libavfilter/Makefile index 41bab96aab..ee2ea51e69 100644 --- a/libavfilter/Makefile +++ b/libavfilter/Makefile @@ -20,6 +20,7 @@ OBJS = allfilters.o \ framequeue.o \ graphdump.o \ graphparser.o \ + version.o \ video.o \ OBJS-$(HAVE_THREADS) += pthread.o diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c index a6d486bd66..a987dfe7b4 100644 --- a/libavfilter/avfilter.c +++ b/libavfilter/avfilter.c @@ -29,10 +29,8 @@ #include "libavutil/hwcontext.h" #include "libavutil/internal.h" #include "libavutil/opt.h" -#include "libavutil/pixdesc.h" #include "libavutil/rational.h" #include "libavutil/samplefmt.h" -#include "libavutil/thread.h" #define FF_INTERNAL_FIELDS 1 #include "framequeue.h" @@ -43,10 +41,6 @@ #include "formats.h" #include "framepool.h" #include "internal.h" -#include "version.h" - -#include "libavutil/ffversion.h" -const char av_filter_ffversion[] = "FFmpeg version " FFMPEG_VERSION; static void tlog_ref(void *ctx, AVFrame *ref, int end) { @@ -75,23 +69,6 @@ static void tlog_ref(void *ctx, AVFrame *ref, int end) ff_tlog(ctx, "]%s", end ? "\n" : ""); } -unsigned avfilter_version(void) -{ - av_assert0(LIBAVFILTER_VERSION_MICRO >= 100); - return LIBAVFILTER_VERSION_INT; -} - -const char *avfilter_configuration(void) -{ - return FFMPEG_CONFIGURATION; -} - -const char *avfilter_license(void) -{ -#define LICENSE_PREFIX "libavfilter license: " - return &LICENSE_PREFIX FFMPEG_LICENSE[sizeof(LICENSE_PREFIX) - 1]; -} - void ff_command_queue_pop(AVFilterContext *filter) { AVFilterCommand *c= filter->command_queue; diff --git a/libavfilter/version.c b/libavfilter/version.c new file mode 100644 index 0000000000..db1a2511e7 --- /dev/null +++ b/libavfilter/version.c @@ -0,0 +1,44 @@ +/* + * Version functions. + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "config.h" +#include "libavutil/avassert.h" +#include "avfilter.h" +#include "version.h" + +#include "libavutil/ffversion.h" +const char av_filter_ffversion[] = "FFmpeg version " FFMPEG_VERSION; + +unsigned avfilter_version(void) +{ + av_assert0(LIBAVFILTER_VERSION_MICRO >= 100); + return LIBAVFILTER_VERSION_INT; +} + +const char *avfilter_configuration(void) +{ + return FFMPEG_CONFIGURATION; +} + +const char *avfilter_license(void) +{ +#define LICENSE_PREFIX "libavfilter license: " + return &LICENSE_PREFIX FFMPEG_LICENSE[sizeof(LICENSE_PREFIX) - 1]; +} diff --git a/libavformat/Makefile b/libavformat/Makefile index f16634a418..537f5a1124 100644 --- a/libavformat/Makefile +++ b/libavformat/Makefile @@ -25,6 +25,7 @@ OBJS = allformats.o \ seek.o \ url.o \ utils.o \ + version.o \ OBJS-$(HAVE_LIBC_MSVCRT) += file_open.o diff --git a/libavformat/utils.c b/libavformat/utils.c index 3f253c2045..19f5ae720c 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -46,10 +46,6 @@ #if CONFIG_NETWORK #include "network.h" #endif -#include "version.h" - -#include "libavutil/ffversion.h" -const char av_format_ffversion[] = "FFmpeg version " FFMPEG_VERSION; static AVMutex avformat_mutex = AV_MUTEX_INITIALIZER; @@ -58,23 +54,6 @@ static AVMutex avformat_mutex = AV_MUTEX_INITIALIZER; * various utility functions for use within FFmpeg */ -unsigned avformat_version(void) -{ - av_assert0(LIBAVFORMAT_VERSION_MICRO >= 100); - return LIBAVFORMAT_VERSION_INT; -} - -const char *avformat_configuration(void) -{ - return FFMPEG_CONFIGURATION; -} - -const char *avformat_license(void) -{ -#define LICENSE_PREFIX "libavformat license: " - return &LICENSE_PREFIX FFMPEG_LICENSE[sizeof(LICENSE_PREFIX) - 1]; -} - int ff_lock_avformat(void) { return ff_mutex_lock(&avformat_mutex) ? -1 : 0; diff --git a/libavformat/version.c b/libavformat/version.c new file mode 100644 index 0000000000..5f321d847e --- /dev/null +++ b/libavformat/version.c @@ -0,0 +1,45 @@ +/* + * Version functions. + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "config.h" + +#include "libavutil/avassert.h" +#include "avformat.h" +#include "version.h" + +#include "libavutil/ffversion.h" +const char av_format_ffversion[] = "FFmpeg version " FFMPEG_VERSION; + +unsigned avformat_version(void) +{ + av_assert0(LIBAVFORMAT_VERSION_MICRO >= 100); + return LIBAVFORMAT_VERSION_INT; +} + +const char *avformat_configuration(void) +{ + return FFMPEG_CONFIGURATION; +} + +const char *avformat_license(void) +{ +#define LICENSE_PREFIX "libavformat license: " + return &LICENSE_PREFIX FFMPEG_LICENSE[sizeof(LICENSE_PREFIX) - 1]; +} diff --git a/libavutil/Makefile b/libavutil/Makefile index 81df3b0640..234de62a4b 100644 --- a/libavutil/Makefile +++ b/libavutil/Makefile @@ -174,6 +174,7 @@ OBJS = adler32.o \ tx_float.o \ tx_double.o \ tx_int32.o \ + version.o \ video_enc_params.o \ film_grain_params.o \ diff --git a/libavutil/utils.c b/libavutil/utils.c index ea9b5097b8..94d247bbee 100644 --- a/libavutil/utils.c +++ b/libavutil/utils.c @@ -19,55 +19,12 @@ #include "config.h" #include "avutil.h" #include "avassert.h" -#include "samplefmt.h" -#include "internal.h" /** * @file * various utility functions */ -#include "libavutil/ffversion.h" -const char av_util_ffversion[] = "FFmpeg version " FFMPEG_VERSION; - -const char *av_version_info(void) -{ - return FFMPEG_VERSION; -} - -unsigned avutil_version(void) -{ - av_assert0(AV_SAMPLE_FMT_DBLP == 9); - av_assert0(AVMEDIA_TYPE_ATTACHMENT == 4); - av_assert0(AV_PICTURE_TYPE_BI == 7); - av_assert0(LIBAVUTIL_VERSION_MICRO >= 100); - av_assert0(HAVE_MMX2 == HAVE_MMXEXT); - - av_assert0(((size_t)-1) > 0); // C guarantees this but if false on a platform we care about revert at least b284e1ffe343d6697fb950d1ee517bafda8a9844 - - if (av_sat_dadd32(1, 2) != 5) { - av_log(NULL, AV_LOG_FATAL, "Libavutil has been built with a broken binutils, please upgrade binutils and rebuild\n"); - abort(); - } - - if (llrint(1LL<<60) != 1LL<<60) { - av_log(NULL, AV_LOG_ERROR, "Libavutil has been linked to a broken llrint()\n"); - } - - return LIBAVUTIL_VERSION_INT; -} - -const char *avutil_configuration(void) -{ - return FFMPEG_CONFIGURATION; -} - -const char *avutil_license(void) -{ -#define LICENSE_PREFIX "libavutil license: " - return &LICENSE_PREFIX FFMPEG_LICENSE[sizeof(LICENSE_PREFIX) - 1]; -} - const char *av_get_media_type_string(enum AVMediaType media_type) { switch (media_type) { diff --git a/libavutil/version.c b/libavutil/version.c new file mode 100644 index 0000000000..b0f4f94a7a --- /dev/null +++ b/libavutil/version.c @@ -0,0 +1,71 @@ +/* + * Version functions. + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +#include "config.h" +#include "avassert.h" +#include "avutil.h" +#include "common.h" +#include "libm.h" +#include "log.h" +#include "samplefmt.h" +#include "version.h" + +#include "libavutil/ffversion.h" +const char av_util_ffversion[] = "FFmpeg version " FFMPEG_VERSION; + +const char *av_version_info(void) +{ + return FFMPEG_VERSION; +} + +unsigned avutil_version(void) +{ + av_assert0(AV_SAMPLE_FMT_DBLP == 9); + av_assert0(AVMEDIA_TYPE_ATTACHMENT == 4); + av_assert0(AV_PICTURE_TYPE_BI == 7); + av_assert0(LIBAVUTIL_VERSION_MICRO >= 100); + av_assert0(HAVE_MMX2 == HAVE_MMXEXT); + + av_assert0(((size_t)-1) > 0); // C guarantees this but if false on a platform we care about revert at least b284e1ffe343d6697fb950d1ee517bafda8a9844 + + if (av_sat_dadd32(1, 2) != 5) { + av_log(NULL, AV_LOG_FATAL, "Libavutil has been built with a broken binutils, please upgrade binutils and rebuild\n"); + abort(); + } + + if (llrint(1LL<<60) != 1LL<<60) { + av_log(NULL, AV_LOG_ERROR, "Libavutil has been linked to a broken llrint()\n"); + } + + return LIBAVUTIL_VERSION_INT; +} + +const char *avutil_configuration(void) +{ + return FFMPEG_CONFIGURATION; +} + +const char *avutil_license(void) +{ +#define LICENSE_PREFIX "libavutil license: " + return &LICENSE_PREFIX FFMPEG_LICENSE[sizeof(LICENSE_PREFIX) - 1]; +} diff --git a/libpostproc/Makefile b/libpostproc/Makefile index f7debb8eeb..d3f3b27f35 100644 --- a/libpostproc/Makefile +++ b/libpostproc/Makefile @@ -6,7 +6,8 @@ HEADERS = postprocess.h \ version.h \ version_major.h \ -OBJS = postprocess.o +OBJS = postprocess.o \ + version.o \ # Windows resource file SLIBOBJS-$(HAVE_GNU_WINDRES) += postprocres.o diff --git a/libpostproc/postprocess.c b/libpostproc/postprocess.c index b954dc2eaa..383c691cb4 100644 --- a/libpostproc/postprocess.c +++ b/libpostproc/postprocess.c @@ -89,30 +89,9 @@ try to unroll inner for(x=0 ... loop to avoid these damn if(x ... checks //#define DEBUG_BRIGHTNESS #include "postprocess.h" #include "postprocess_internal.h" -#include "version.h" #include "libavutil/avstring.h" #include "libavutil/ppc/util_altivec.h" -#include "libavutil/ffversion.h" -const char postproc_ffversion[] = "FFmpeg version " FFMPEG_VERSION; - -unsigned postproc_version(void) -{ - av_assert0(LIBPOSTPROC_VERSION_MICRO >= 100); - return LIBPOSTPROC_VERSION_INT; -} - -const char *postproc_configuration(void) -{ - return FFMPEG_CONFIGURATION; -} - -const char *postproc_license(void) -{ -#define LICENSE_PREFIX "libpostproc license: " - return &LICENSE_PREFIX FFMPEG_LICENSE[sizeof(LICENSE_PREFIX) - 1]; -} - #define GET_MODE_BUFFER_SIZE 500 #define OPTIONS_ARRAY_SIZE 10 #define BLOCK_SIZE 8 diff --git a/libpostproc/version.c b/libpostproc/version.c new file mode 100644 index 0000000000..494575ae67 --- /dev/null +++ b/libpostproc/version.c @@ -0,0 +1,44 @@ +/* + * Version functions. + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "config.h" +#include "libavutil/avassert.h" +#include "postprocess.h" +#include "version.h" + +#include "libavutil/ffversion.h" +const char postproc_ffversion[] = "FFmpeg version " FFMPEG_VERSION; + +unsigned postproc_version(void) +{ + av_assert0(LIBPOSTPROC_VERSION_MICRO >= 100); + return LIBPOSTPROC_VERSION_INT; +} + +const char *postproc_configuration(void) +{ + return FFMPEG_CONFIGURATION; +} + +const char *postproc_license(void) +{ +#define LICENSE_PREFIX "libpostproc license: " + return &LICENSE_PREFIX FFMPEG_LICENSE[sizeof(LICENSE_PREFIX) - 1]; +} diff --git a/libswresample/Makefile b/libswresample/Makefile index b74ee20987..dc80027c35 100644 --- a/libswresample/Makefile +++ b/libswresample/Makefile @@ -14,6 +14,7 @@ OBJS = audioconvert.o \ resample_dsp.o \ swresample.o \ swresample_frame.o \ + version.o \ OBJS-$(CONFIG_LIBSOXR) += soxr_resample.o diff --git a/libswresample/swresample.c b/libswresample/swresample.c index be59b69b73..9b77ef65bf 100644 --- a/libswresample/swresample.c +++ b/libswresample/swresample.c @@ -24,32 +24,11 @@ #include "libavutil/avassert.h" #include "libavutil/channel_layout.h" #include "libavutil/internal.h" -#include "version.h" #include #define ALIGN 32 -#include "libavutil/ffversion.h" -const char swr_ffversion[] = "FFmpeg version " FFMPEG_VERSION; - -unsigned swresample_version(void) -{ - av_assert0(LIBSWRESAMPLE_VERSION_MICRO >= 100); - return LIBSWRESAMPLE_VERSION_INT; -} - -const char *swresample_configuration(void) -{ - return FFMPEG_CONFIGURATION; -} - -const char *swresample_license(void) -{ -#define LICENSE_PREFIX "libswresample license: " - return &LICENSE_PREFIX FFMPEG_LICENSE[sizeof(LICENSE_PREFIX) - 1]; -} - int swr_set_channel_mapping(struct SwrContext *s, const int *channel_map){ if(!s || s->in_convert) // s needs to be allocated but not initialized return AVERROR(EINVAL); diff --git a/libswresample/version.c b/libswresample/version.c new file mode 100644 index 0000000000..00f71e3393 --- /dev/null +++ b/libswresample/version.c @@ -0,0 +1,45 @@ +/* + * Version functions. + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "config.h" +#include "libavutil/avassert.h" +#include "swresample.h" +#include "version.h" + +#include "libavutil/ffversion.h" +const char swr_ffversion[] = "FFmpeg version " FFMPEG_VERSION; + +unsigned swresample_version(void) +{ + av_assert0(LIBSWRESAMPLE_VERSION_MICRO >= 100); + return LIBSWRESAMPLE_VERSION_INT; +} + +const char *swresample_configuration(void) +{ + return FFMPEG_CONFIGURATION; +} + +const char *swresample_license(void) +{ +#define LICENSE_PREFIX "libswresample license: " + return &LICENSE_PREFIX FFMPEG_LICENSE[sizeof(LICENSE_PREFIX) - 1]; +} + diff --git a/libswscale/Makefile b/libswscale/Makefile index 1f02b56421..8e95f74c6b 100644 --- a/libswscale/Makefile +++ b/libswscale/Makefile @@ -17,6 +17,7 @@ OBJS = alphablend.o \ swscale.o \ swscale_unscaled.o \ utils.o \ + version.o \ yuv2rgb.o \ vscale.o \ diff --git a/libswscale/utils.c b/libswscale/utils.c index e86c151f67..ffa130524a 100644 --- a/libswscale/utils.c +++ b/libswscale/utils.c @@ -40,8 +40,6 @@ #include "libavutil/attributes.h" #include "libavutil/avassert.h" -#include "libavutil/avutil.h" -#include "libavutil/bswap.h" #include "libavutil/cpu.h" #include "libavutil/imgutils.h" #include "libavutil/intreadwrite.h" @@ -59,7 +57,6 @@ #include "rgb2rgb.h" #include "swscale.h" #include "swscale_internal.h" -#include "version.h" static SwsVector *sws_getIdentityVec(void); static void sws_addVec(SwsVector *a, SwsVector *b); @@ -68,23 +65,6 @@ static void sws_printVec2(SwsVector *a, AVClass *log_ctx, int log_level); static void handle_formats(SwsContext *c); -unsigned swscale_version(void) -{ - av_assert0(LIBSWSCALE_VERSION_MICRO >= 100); - return LIBSWSCALE_VERSION_INT; -} - -const char *swscale_configuration(void) -{ - return FFMPEG_CONFIGURATION; -} - -const char *swscale_license(void) -{ -#define LICENSE_PREFIX "libswscale license: " - return &LICENSE_PREFIX FFMPEG_LICENSE[sizeof(LICENSE_PREFIX) - 1]; -} - typedef struct FormatEntry { uint8_t is_supported_in :1; uint8_t is_supported_out :1; diff --git a/libswscale/version.c b/libswscale/version.c new file mode 100644 index 0000000000..b165e2563e --- /dev/null +++ b/libswscale/version.c @@ -0,0 +1,41 @@ +/* + * Version functions. + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "config.h" +#include "libavutil/avassert.h" +#include "swscale.h" +#include "version.h" + +unsigned swscale_version(void) +{ + av_assert0(LIBSWSCALE_VERSION_MICRO >= 100); + return LIBSWSCALE_VERSION_INT; +} + +const char *swscale_configuration(void) +{ + return FFMPEG_CONFIGURATION; +} + +const char *swscale_license(void) +{ +#define LICENSE_PREFIX "libswscale license: " + return &LICENSE_PREFIX FFMPEG_LICENSE[sizeof(LICENSE_PREFIX) - 1]; +}