Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
* [FFmpeg-devel] [PATCH v2 1/9] libavcodec: Split version.h
@ 2022-03-11 12:18 Martin Storsjö
  2022-03-11 12:18 ` [FFmpeg-devel] [PATCH v2 2/9] libavformat: " Martin Storsjö
                   ` (8 more replies)
  0 siblings, 9 replies; 12+ messages in thread
From: Martin Storsjö @ 2022-03-11 12:18 UTC (permalink / raw)
  To: ffmpeg-devel

This avoids including version.h in all source files, avoiding
unnecessary rebuilds when the version number is bumped. Only
version_major.h is included by the main header, which defines
availability of e.g. FF_API_* macros, and which is bumped much
less often.
---
 fftools/cmdutils.c             |  1 +
 fftools/ffmpeg.c               |  1 +
 fftools/ffprobe.c              |  1 +
 libavcodec/Makefile            |  1 +
 libavcodec/aacenc.c            |  1 +
 libavcodec/avcodec.c           |  1 +
 libavcodec/avcodec.h           |  2 +-
 libavcodec/codec.h             |  2 +-
 libavcodec/dpxenc.c            |  1 +
 libavcodec/j2kenc.c            |  1 +
 libavcodec/libvorbisenc.c      |  1 +
 libavcodec/mjpegenc_common.c   |  1 +
 libavcodec/mpeg4videoenc.c     |  1 +
 libavcodec/options_table.h     |  2 +-
 libavcodec/packet.h            |  2 +-
 libavcodec/pthread_frame.c     |  2 +-
 libavcodec/tiffenc.c           |  1 +
 libavcodec/vaapi_encode_h264.c |  1 +
 libavcodec/vc2enc.c            |  1 +
 libavcodec/version.h           | 28 ++---------------
 libavcodec/version_major.h     | 55 ++++++++++++++++++++++++++++++++++
 libavformat/movenc.c           |  1 +
 22 files changed, 77 insertions(+), 31 deletions(-)
 create mode 100644 libavcodec/version_major.h

diff --git a/fftools/cmdutils.c b/fftools/cmdutils.c
index 4b50e15eef..869b5ec012 100644
--- a/fftools/cmdutils.c
+++ b/fftools/cmdutils.c
@@ -55,6 +55,7 @@
 #include "libavutil/ffversion.h"
 #include "libavutil/version.h"
 #include "libavcodec/bsf.h"
+#include "libavcodec/version.h"
 #include "cmdutils.h"
 #if HAVE_SYS_RESOURCE_H
 #include <sys/time.h>
diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
index 9a3fdc636d..7b8342fd0e 100644
--- a/fftools/ffmpeg.c
+++ b/fftools/ffmpeg.c
@@ -64,6 +64,7 @@
 #include "libavutil/thread.h"
 #include "libavutil/threadmessage.h"
 #include "libavcodec/mathops.h"
+#include "libavcodec/version.h"
 #include "libavformat/os_support.h"
 
 # include "libavfilter/avfilter.h"
diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c
index 66206b66d9..6f4ce52eb5 100644
--- a/fftools/ffprobe.c
+++ b/fftools/ffprobe.c
@@ -30,6 +30,7 @@
 
 #include "libavformat/avformat.h"
 #include "libavcodec/avcodec.h"
+#include "libavcodec/version.h"
 #include "libavutil/avassert.h"
 #include "libavutil/avstring.h"
 #include "libavutil/bprint.h"
diff --git a/libavcodec/Makefile b/libavcodec/Makefile
index cd929da8e6..22063e43a7 100644
--- a/libavcodec/Makefile
+++ b/libavcodec/Makefile
@@ -22,6 +22,7 @@ HEADERS = ac3_parser.h                                                  \
           qsv.h                                                         \
           vdpau.h                                                       \
           version.h                                                     \
+          version_major.h                                               \
           videotoolbox.h                                                \
           vorbis_parser.h                                               \
           xvmc.h                                                        \
diff --git a/libavcodec/aacenc.c b/libavcodec/aacenc.c
index a1004c3e98..38f2d15f78 100644
--- a/libavcodec/aacenc.c
+++ b/libavcodec/aacenc.c
@@ -41,6 +41,7 @@
 #include "mpeg4audio.h"
 #include "sinewin.h"
 #include "profiles.h"
+#include "version.h"
 
 #include "aac.h"
 #include "aactab.h"
diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c
index 92639dda6b..838c009a19 100644
--- a/libavcodec/avcodec.c
+++ b/libavcodec/avcodec.c
@@ -39,6 +39,7 @@
 #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;
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index 79af8dcc05..6e2be910dc 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -43,7 +43,7 @@
 #include "codec_id.h"
 #include "defs.h"
 #include "packet.h"
-#include "version.h"
+#include "version_major.h"
 
 /**
  * @defgroup libavc libavcodec
diff --git a/libavcodec/codec.h b/libavcodec/codec.h
index a8147ec21f..42dd95d225 100644
--- a/libavcodec/codec.h
+++ b/libavcodec/codec.h
@@ -31,7 +31,7 @@
 #include "libavutil/samplefmt.h"
 
 #include "libavcodec/codec_id.h"
-#include "libavcodec/version.h"
+#include "libavcodec/version_major.h"
 
 /**
  * @addtogroup lavc_core
diff --git a/libavcodec/dpxenc.c b/libavcodec/dpxenc.c
index 0db6aa832d..c4f9ae09bb 100644
--- a/libavcodec/dpxenc.c
+++ b/libavcodec/dpxenc.c
@@ -25,6 +25,7 @@
 #include "avcodec.h"
 #include "encode.h"
 #include "internal.h"
+#include "version.h"
 
 typedef struct DPXContext {
     int big_endian;
diff --git a/libavcodec/j2kenc.c b/libavcodec/j2kenc.c
index c06752f43a..95573c6799 100644
--- a/libavcodec/j2kenc.c
+++ b/libavcodec/j2kenc.c
@@ -70,6 +70,7 @@
 #include "internal.h"
 #include "bytestream.h"
 #include "jpeg2000.h"
+#include "version.h"
 #include "libavutil/common.h"
 #include "libavutil/pixdesc.h"
 #include "libavutil/opt.h"
diff --git a/libavcodec/libvorbisenc.c b/libavcodec/libvorbisenc.c
index b657f0157a..36f3d78654 100644
--- a/libavcodec/libvorbisenc.c
+++ b/libavcodec/libvorbisenc.c
@@ -28,6 +28,7 @@
 #include "audio_frame_queue.h"
 #include "encode.h"
 #include "internal.h"
+#include "version.h"
 #include "vorbis.h"
 #include "vorbis_parser.h"
 
diff --git a/libavcodec/mjpegenc_common.c b/libavcodec/mjpegenc_common.c
index 995e2b7670..7b82644763 100644
--- a/libavcodec/mjpegenc_common.c
+++ b/libavcodec/mjpegenc_common.c
@@ -33,6 +33,7 @@
 #include "mjpegenc.h"
 #include "mjpegenc_common.h"
 #include "mjpeg.h"
+#include "version.h"
 
 /* table_class: 0 = DC coef, 1 = AC coefs */
 static int put_huffman_table(PutBitContext *p, int table_class, int table_id,
diff --git a/libavcodec/mpeg4videoenc.c b/libavcodec/mpeg4videoenc.c
index 094c4e5fb3..4a4adeb1c3 100644
--- a/libavcodec/mpeg4videoenc.c
+++ b/libavcodec/mpeg4videoenc.c
@@ -33,6 +33,7 @@
 #include "mpeg4videoenc.h"
 #include "mpegvideoenc.h"
 #include "profiles.h"
+#include "version.h"
 
 /* The uni_DCtab_* tables below contain unified bits+length tables to encode DC
  * differences in MPEG-4. Unified in the sense that the specification specifies
diff --git a/libavcodec/options_table.h b/libavcodec/options_table.h
index 130341a2ec..7eb974672e 100644
--- a/libavcodec/options_table.h
+++ b/libavcodec/options_table.h
@@ -28,7 +28,7 @@
 
 #include "libavutil/opt.h"
 #include "avcodec.h"
-#include "version.h"
+#include "version_major.h"
 
 #define OFFSET(x) offsetof(AVCodecContext,x)
 #define DEFAULT 0 //should be NAN but it does not work as it is not a constant in glibc as required by ANSI/ISO C
diff --git a/libavcodec/packet.h b/libavcodec/packet.h
index 4a349fe051..40a26db3a7 100644
--- a/libavcodec/packet.h
+++ b/libavcodec/packet.h
@@ -29,7 +29,7 @@
 #include "libavutil/dict.h"
 #include "libavutil/rational.h"
 
-#include "libavcodec/version.h"
+#include "libavcodec/version_major.h"
 
 /**
  * @defgroup lavc_packet AVPacket
diff --git a/libavcodec/pthread_frame.c b/libavcodec/pthread_frame.c
index 33b5a2e628..6c6a1342e0 100644
--- a/libavcodec/pthread_frame.c
+++ b/libavcodec/pthread_frame.c
@@ -33,7 +33,7 @@
 #include "pthread_internal.h"
 #include "thread.h"
 #include "threadframe.h"
-#include "version.h"
+#include "version_major.h"
 
 #include "libavutil/avassert.h"
 #include "libavutil/buffer.h"
diff --git a/libavcodec/tiffenc.c b/libavcodec/tiffenc.c
index a6c523364a..d350a5b826 100644
--- a/libavcodec/tiffenc.c
+++ b/libavcodec/tiffenc.c
@@ -42,6 +42,7 @@
 #include "put_bits.h"
 #include "rle.h"
 #include "tiff.h"
+#include "version.h"
 
 #define TIFF_MAX_ENTRY 32
 
diff --git a/libavcodec/vaapi_encode_h264.c b/libavcodec/vaapi_encode_h264.c
index ff37de1f7e..1ca885fdbc 100644
--- a/libavcodec/vaapi_encode_h264.c
+++ b/libavcodec/vaapi_encode_h264.c
@@ -34,6 +34,7 @@
 #include "h264_sei.h"
 #include "internal.h"
 #include "vaapi_encode.h"
+#include "version.h"
 
 enum {
     SEI_TIMING         = 0x01,
diff --git a/libavcodec/vc2enc.c b/libavcodec/vc2enc.c
index bfa43b3c03..6b77c67844 100644
--- a/libavcodec/vc2enc.c
+++ b/libavcodec/vc2enc.c
@@ -26,6 +26,7 @@
 #include "encode.h"
 #include "put_bits.h"
 #include "internal.h"
+#include "version.h"
 
 #include "vc2enc_dwt.h"
 #include "diractab.h"
diff --git a/libavcodec/version.h b/libavcodec/version.h
index 408ee978ab..728ab8839d 100644
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@ -27,7 +27,8 @@
 
 #include "libavutil/version.h"
 
-#define LIBAVCODEC_VERSION_MAJOR  59
+#include "version_major.h"
+
 #define LIBAVCODEC_VERSION_MINOR  23
 #define LIBAVCODEC_VERSION_MICRO 100
 
@@ -41,29 +42,4 @@
 
 #define LIBAVCODEC_IDENT        "Lavc" AV_STRINGIFY(LIBAVCODEC_VERSION)
 
-/**
- * FF_API_* defines may be placed below to indicate public API that will be
- * dropped at a future version bump. The defines themselves are not part of
- * the public API and may change, break or disappear at any time.
- *
- * @note, when bumping the major version it is recommended to manually
- * disable each FF_API_* in its own commit instead of disabling them all
- * at once through the bump. This improves the git bisect-ability of the change.
- */
-
-#define FF_API_OPENH264_SLICE_MODE (LIBAVCODEC_VERSION_MAJOR < 60)
-#define FF_API_OPENH264_CABAC      (LIBAVCODEC_VERSION_MAJOR < 60)
-#define FF_API_UNUSED_CODEC_CAPS   (LIBAVCODEC_VERSION_MAJOR < 60)
-#define FF_API_THREAD_SAFE_CALLBACKS (LIBAVCODEC_VERSION_MAJOR < 60)
-#define FF_API_DEBUG_MV          (LIBAVCODEC_VERSION_MAJOR < 60)
-#define FF_API_GET_FRAME_CLASS     (LIBAVCODEC_VERSION_MAJOR < 60)
-#define FF_API_AUTO_THREADS        (LIBAVCODEC_VERSION_MAJOR < 60)
-#define FF_API_INIT_PACKET         (LIBAVCODEC_VERSION_MAJOR < 60)
-#define FF_API_AVCTX_TIMEBASE    (LIBAVCODEC_VERSION_MAJOR < 60)
-#define FF_API_MPEGVIDEO_OPTS      (LIBAVCODEC_VERSION_MAJOR < 60)
-#define FF_API_FLAG_TRUNCATED      (LIBAVCODEC_VERSION_MAJOR < 60)
-#define FF_API_SUB_TEXT_FORMAT     (LIBAVCODEC_VERSION_MAJOR < 60)
-#define FF_API_MJPEG_PRED          (LIBAVCODEC_VERSION_MAJOR < 60)
-#define FF_API_IDCT_NONE           (LIBAVCODEC_VERSION_MAJOR < 60)
-
 #endif /* AVCODEC_VERSION_H */
diff --git a/libavcodec/version_major.h b/libavcodec/version_major.h
new file mode 100644
index 0000000000..56a9aff042
--- /dev/null
+++ b/libavcodec/version_major.h
@@ -0,0 +1,55 @@
+/*
+ * 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
+ */
+
+#ifndef AVCODEC_VERSION_MAJOR_H
+#define AVCODEC_VERSION_MAJOR_H
+
+/**
+ * @file
+ * @ingroup libavc
+ * Libavcodec version macros.
+ */
+
+#define LIBAVCODEC_VERSION_MAJOR  59
+
+/**
+ * FF_API_* defines may be placed below to indicate public API that will be
+ * dropped at a future version bump. The defines themselves are not part of
+ * the public API and may change, break or disappear at any time.
+ *
+ * @note, when bumping the major version it is recommended to manually
+ * disable each FF_API_* in its own commit instead of disabling them all
+ * at once through the bump. This improves the git bisect-ability of the change.
+ */
+
+#define FF_API_OPENH264_SLICE_MODE (LIBAVCODEC_VERSION_MAJOR < 60)
+#define FF_API_OPENH264_CABAC      (LIBAVCODEC_VERSION_MAJOR < 60)
+#define FF_API_UNUSED_CODEC_CAPS   (LIBAVCODEC_VERSION_MAJOR < 60)
+#define FF_API_THREAD_SAFE_CALLBACKS (LIBAVCODEC_VERSION_MAJOR < 60)
+#define FF_API_DEBUG_MV          (LIBAVCODEC_VERSION_MAJOR < 60)
+#define FF_API_GET_FRAME_CLASS     (LIBAVCODEC_VERSION_MAJOR < 60)
+#define FF_API_AUTO_THREADS        (LIBAVCODEC_VERSION_MAJOR < 60)
+#define FF_API_INIT_PACKET         (LIBAVCODEC_VERSION_MAJOR < 60)
+#define FF_API_AVCTX_TIMEBASE    (LIBAVCODEC_VERSION_MAJOR < 60)
+#define FF_API_MPEGVIDEO_OPTS      (LIBAVCODEC_VERSION_MAJOR < 60)
+#define FF_API_FLAG_TRUNCATED      (LIBAVCODEC_VERSION_MAJOR < 60)
+#define FF_API_SUB_TEXT_FORMAT     (LIBAVCODEC_VERSION_MAJOR < 60)
+#define FF_API_MJPEG_PRED          (LIBAVCODEC_VERSION_MAJOR < 60)
+#define FF_API_IDCT_NONE           (LIBAVCODEC_VERSION_MAJOR < 60)
+
+#endif /* AVCODEC_VERSION_MAJOR_H */
diff --git a/libavformat/movenc.c b/libavformat/movenc.c
index 4c868919ae..8e3f803b38 100644
--- a/libavformat/movenc.c
+++ b/libavformat/movenc.c
@@ -42,6 +42,7 @@
 #include "libavcodec/put_bits.h"
 #include "libavcodec/vc1_common.h"
 #include "libavcodec/raw.h"
+#include "libavcodec/version.h"
 #include "internal.h"
 #include "libavutil/avstring.h"
 #include "libavutil/channel_layout.h"
-- 
2.32.0 (Apple Git-132)

_______________________________________________
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".

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [FFmpeg-devel] [PATCH v2 2/9] libavformat: Split version.h
  2022-03-11 12:18 [FFmpeg-devel] [PATCH v2 1/9] libavcodec: Split version.h Martin Storsjö
@ 2022-03-11 12:18 ` Martin Storsjö
  2022-03-11 12:18 ` [FFmpeg-devel] [PATCH v2 3/9] libavdevice: " Martin Storsjö
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 12+ messages in thread
From: Martin Storsjö @ 2022-03-11 12:18 UTC (permalink / raw)
  To: ffmpeg-devel

---
 fftools/cmdutils.c            |  1 +
 fftools/ffprobe.c             |  1 +
 libavdevice/pulse_audio_dec.c |  1 +
 libavdevice/pulse_audio_enc.c |  1 +
 libavformat/Makefile          |  1 +
 libavformat/avformat.h        |  2 +-
 libavformat/avio.h            |  2 +-
 libavformat/flacenc.c         |  1 +
 libavformat/framehash.c       |  1 +
 libavformat/matroskaenc.c     |  1 +
 libavformat/mmf.c             |  1 +
 libavformat/movenc.c          |  1 +
 libavformat/mux.c             |  1 +
 libavformat/mxfenc.c          |  1 +
 libavformat/nutenc.c          |  1 +
 libavformat/oggenc.c          |  1 +
 libavformat/rtmpproto.c       |  1 +
 libavformat/rtsp.c            |  1 +
 libavformat/rtspdec.c         |  1 +
 libavformat/utils.c           |  1 +
 libavformat/version.h         | 23 ++-------------
 libavformat/version_major.h   | 53 +++++++++++++++++++++++++++++++++++
 22 files changed, 75 insertions(+), 23 deletions(-)
 create mode 100644 libavformat/version_major.h

diff --git a/fftools/cmdutils.c b/fftools/cmdutils.c
index 869b5ec012..87f410e975 100644
--- a/fftools/cmdutils.c
+++ b/fftools/cmdutils.c
@@ -32,6 +32,7 @@
 #include "config.h"
 #include "compat/va_copy.h"
 #include "libavformat/avformat.h"
+#include "libavformat/version.h"
 #include "libavfilter/avfilter.h"
 #include "libavdevice/avdevice.h"
 #include "libswscale/swscale.h"
diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c
index 6f4ce52eb5..7e70b549f3 100644
--- a/fftools/ffprobe.c
+++ b/fftools/ffprobe.c
@@ -29,6 +29,7 @@
 #include <string.h>
 
 #include "libavformat/avformat.h"
+#include "libavformat/version.h"
 #include "libavcodec/avcodec.h"
 #include "libavcodec/version.h"
 #include "libavutil/avassert.h"
diff --git a/libavdevice/pulse_audio_dec.c b/libavdevice/pulse_audio_dec.c
index b23d08e4d3..5a42f71ede 100644
--- a/libavdevice/pulse_audio_dec.c
+++ b/libavdevice/pulse_audio_dec.c
@@ -30,6 +30,7 @@
 
 #include "libavformat/avformat.h"
 #include "libavformat/internal.h"
+#include "libavformat/version.h"
 #include "pulse_audio_common.h"
 #include "timefilter.h"
 
diff --git a/libavdevice/pulse_audio_enc.c b/libavdevice/pulse_audio_enc.c
index 4ff425d33f..7b50517fc7 100644
--- a/libavdevice/pulse_audio_enc.c
+++ b/libavdevice/pulse_audio_enc.c
@@ -23,6 +23,7 @@
 #include <pulse/error.h>
 #include "libavformat/avformat.h"
 #include "libavformat/internal.h"
+#include "libavformat/version.h"
 #include "libavutil/channel_layout.h"
 #include "libavutil/internal.h"
 #include "libavutil/opt.h"
diff --git a/libavformat/Makefile b/libavformat/Makefile
index 322c8e7896..27d553c20e 100644
--- a/libavformat/Makefile
+++ b/libavformat/Makefile
@@ -4,6 +4,7 @@ DESC = FFmpeg container format library
 HEADERS = avformat.h                                                    \
           avio.h                                                        \
           version.h                                                     \
+          version_major.h                                               \
 
 OBJS = allformats.o         \
        avio.o               \
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index b4b8075ae6..d37a582838 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -319,7 +319,7 @@
 #include "libavutil/log.h"
 
 #include "avio.h"
-#include "libavformat/version.h"
+#include "libavformat/version_major.h"
 
 struct AVFormatContext;
 struct AVStream;
diff --git a/libavformat/avio.h b/libavformat/avio.h
index ca970b1ce3..3ed9175a9b 100644
--- a/libavformat/avio.h
+++ b/libavformat/avio.h
@@ -33,7 +33,7 @@
 #include "libavutil/dict.h"
 #include "libavutil/log.h"
 
-#include "libavformat/version.h"
+#include "libavformat/version_major.h"
 
 /**
  * Seeking works like for a local file.
diff --git a/libavformat/flacenc.c b/libavformat/flacenc.c
index b267197ccc..88dbe87af4 100644
--- a/libavformat/flacenc.c
+++ b/libavformat/flacenc.c
@@ -30,6 +30,7 @@
 #include "flacenc.h"
 #include "id3v2.h"
 #include "internal.h"
+#include "version.h"
 #include "vorbiscomment.h"
 
 
diff --git a/libavformat/framehash.c b/libavformat/framehash.c
index 04c40825b9..43b8ab3be2 100644
--- a/libavformat/framehash.c
+++ b/libavformat/framehash.c
@@ -20,6 +20,7 @@
 
 #include "libavutil/channel_layout.h"
 #include "internal.h"
+#include "version.h"
 
 int ff_framehash_write_header(AVFormatContext *s)
 {
diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
index 38d9485288..e8df5db3bd 100644
--- a/libavformat/matroskaenc.c
+++ b/libavformat/matroskaenc.c
@@ -35,6 +35,7 @@
 #include "isom.h"
 #include "matroska.h"
 #include "riff.h"
+#include "version.h"
 #include "vorbiscomment.h"
 #include "wv.h"
 
diff --git a/libavformat/mmf.c b/libavformat/mmf.c
index 0c067a1025..e836390bff 100644
--- a/libavformat/mmf.c
+++ b/libavformat/mmf.c
@@ -26,6 +26,7 @@
 #include "pcm.h"
 #include "rawenc.h"
 #include "riff.h"
+#include "version.h"
 
 typedef struct MMFContext {
     int64_t atrpos, atsqpos, awapos;
diff --git a/libavformat/movenc.c b/libavformat/movenc.c
index 8e3f803b38..14482abe8d 100644
--- a/libavformat/movenc.c
+++ b/libavformat/movenc.c
@@ -61,6 +61,7 @@
 #include "mov_chan.h"
 #include "movenc_ttml.h"
 #include "ttmlenc.h"
+#include "version.h"
 #include "vpcc.h"
 
 static const AVOption options[] = {
diff --git a/libavformat/mux.c b/libavformat/mux.c
index 53eb56f0af..bd85661663 100644
--- a/libavformat/mux.c
+++ b/libavformat/mux.c
@@ -21,6 +21,7 @@
 
 #include "avformat.h"
 #include "internal.h"
+#include "version.h"
 #include "libavcodec/bsf.h"
 #include "libavcodec/internal.h"
 #include "libavcodec/packet_internal.h"
diff --git a/libavformat/mxfenc.c b/libavformat/mxfenc.c
index 1e87dc6111..8ca67f52c6 100644
--- a/libavformat/mxfenc.c
+++ b/libavformat/mxfenc.c
@@ -58,6 +58,7 @@
 #include "avc.h"
 #include "mxf.h"
 #include "config.h"
+#include "version.h"
 
 extern const AVOutputFormat ff_mxf_d10_muxer;
 extern const AVOutputFormat ff_mxf_opatom_muxer;
diff --git a/libavformat/nutenc.c b/libavformat/nutenc.c
index 585ce953ca..c33c16fd44 100644
--- a/libavformat/nutenc.c
+++ b/libavformat/nutenc.c
@@ -34,6 +34,7 @@
 #include "internal.h"
 #include "avio_internal.h"
 #include "riff.h"
+#include "version.h"
 
 static int find_expected_header(AVCodecParameters *p, int size, int key_frame,
                                 uint8_t out[64])
diff --git a/libavformat/oggenc.c b/libavformat/oggenc.c
index a88dab8ccc..31f47dadf6 100644
--- a/libavformat/oggenc.c
+++ b/libavformat/oggenc.c
@@ -31,6 +31,7 @@
 #include "avformat.h"
 #include "avio_internal.h"
 #include "internal.h"
+#include "version.h"
 #include "vorbiscomment.h"
 
 #define MAX_PAGE_SIZE 65025
diff --git a/libavformat/rtmpproto.c b/libavformat/rtmpproto.c
index 34020bc383..88557140f7 100644
--- a/libavformat/rtmpproto.c
+++ b/libavformat/rtmpproto.c
@@ -42,6 +42,7 @@
 #include "rtmpcrypt.h"
 #include "rtmppkt.h"
 #include "url.h"
+#include "version.h"
 
 #if CONFIG_ZLIB
 #include <zlib.h>
diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
index 70c18941ca..f1992f193e 100644
--- a/libavformat/rtsp.c
+++ b/libavformat/rtsp.c
@@ -50,6 +50,7 @@
 #include "url.h"
 #include "rtpenc.h"
 #include "mpegts.h"
+#include "version.h"
 
 /* Default timeout values for read packet in seconds  */
 #define READ_PACKET_TIMEOUT_S 10
diff --git a/libavformat/rtspdec.c b/libavformat/rtspdec.c
index 2ada29a2d3..eee6329025 100644
--- a/libavformat/rtspdec.c
+++ b/libavformat/rtspdec.c
@@ -34,6 +34,7 @@
 #include "rdt.h"
 #include "tls.h"
 #include "url.h"
+#include "version.h"
 
 static const struct RTSPStatusMessage {
     enum RTSPStatusCode code;
diff --git a/libavformat/utils.c b/libavformat/utils.c
index ca61a97759..1ec413f198 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -46,6 +46,7 @@
 #if CONFIG_NETWORK
 #include "network.h"
 #endif
+#include "version.h"
 
 #include "libavutil/ffversion.h"
 const char av_format_ffversion[] = "FFmpeg version " FFMPEG_VERSION;
diff --git a/libavformat/version.h b/libavformat/version.h
index 44ea7c7c5d..be8ce01160 100644
--- a/libavformat/version.h
+++ b/libavformat/version.h
@@ -29,9 +29,8 @@
 
 #include "libavutil/version.h"
 
-// Major bumping may affect Ticket5467, 5421, 5451(compatibility with Chromium)
-// Also please add any ticket numbers that you believe might be affected here
-#define LIBAVFORMAT_VERSION_MAJOR  59
+#include "version_major.h"
+
 #define LIBAVFORMAT_VERSION_MINOR  18
 #define LIBAVFORMAT_VERSION_MICRO 101
 
@@ -45,22 +44,4 @@
 
 #define LIBAVFORMAT_IDENT       "Lavf" AV_STRINGIFY(LIBAVFORMAT_VERSION)
 
-/**
- * FF_API_* defines may be placed below to indicate public API that will be
- * dropped at a future version bump. The defines themselves are not part of
- * the public API and may change, break or disappear at any time.
- *
- * @note, when bumping the major version it is recommended to manually
- * disable each FF_API_* in its own commit instead of disabling them all
- * at once through the bump. This improves the git bisect-ability of the change.
- *
- */
-#define FF_API_LAVF_PRIV_OPT            (LIBAVFORMAT_VERSION_MAJOR < 60)
-#define FF_API_COMPUTE_PKT_FIELDS2      (LIBAVFORMAT_VERSION_MAJOR < 60)
-#define FF_API_AVIOCONTEXT_WRITTEN      (LIBAVFORMAT_VERSION_MAJOR < 60)
-#define FF_HLS_TS_OPTIONS               (LIBAVFORMAT_VERSION_MAJOR < 60)
-#define FF_API_AVSTREAM_CLASS           (LIBAVFORMAT_VERSION_MAJOR > 59)
-
-
-#define FF_API_R_FRAME_RATE            1
 #endif /* AVFORMAT_VERSION_H */
diff --git a/libavformat/version_major.h b/libavformat/version_major.h
new file mode 100644
index 0000000000..5f71298bcc
--- /dev/null
+++ b/libavformat/version_major.h
@@ -0,0 +1,53 @@
+/*
+ * Version macros.
+ *
+ * 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
+ */
+
+#ifndef AVFORMAT_VERSION_MAJOR_H
+#define AVFORMAT_VERSION_MAJOR_H
+
+/**
+ * @file
+ * @ingroup libavf
+ * Libavformat version macros
+ */
+
+// Major bumping may affect Ticket5467, 5421, 5451(compatibility with Chromium)
+// Also please add any ticket numbers that you believe might be affected here
+#define LIBAVFORMAT_VERSION_MAJOR  59
+
+/**
+ * FF_API_* defines may be placed below to indicate public API that will be
+ * dropped at a future version bump. The defines themselves are not part of
+ * the public API and may change, break or disappear at any time.
+ *
+ * @note, when bumping the major version it is recommended to manually
+ * disable each FF_API_* in its own commit instead of disabling them all
+ * at once through the bump. This improves the git bisect-ability of the change.
+ *
+ */
+#define FF_API_LAVF_PRIV_OPT            (LIBAVFORMAT_VERSION_MAJOR < 60)
+#define FF_API_COMPUTE_PKT_FIELDS2      (LIBAVFORMAT_VERSION_MAJOR < 60)
+#define FF_API_AVIOCONTEXT_WRITTEN      (LIBAVFORMAT_VERSION_MAJOR < 60)
+#define FF_HLS_TS_OPTIONS               (LIBAVFORMAT_VERSION_MAJOR < 60)
+#define FF_API_AVSTREAM_CLASS           (LIBAVFORMAT_VERSION_MAJOR > 59)
+
+
+#define FF_API_R_FRAME_RATE            1
+
+#endif /* AVFORMAT_VERSION_MAJOR_H */
-- 
2.32.0 (Apple Git-132)

_______________________________________________
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".

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [FFmpeg-devel] [PATCH v2 3/9] libavdevice: Split version.h
  2022-03-11 12:18 [FFmpeg-devel] [PATCH v2 1/9] libavcodec: Split version.h Martin Storsjö
  2022-03-11 12:18 ` [FFmpeg-devel] [PATCH v2 2/9] libavformat: " Martin Storsjö
@ 2022-03-11 12:18 ` Martin Storsjö
  2022-03-11 12:18 ` [FFmpeg-devel] [PATCH v2 4/9] libpostproc: " Martin Storsjö
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 12+ messages in thread
From: Martin Storsjö @ 2022-03-11 12:18 UTC (permalink / raw)
  To: ffmpeg-devel

---
 fftools/cmdutils.c          |  1 +
 fftools/ffprobe.c           |  1 +
 libavdevice/Makefile        |  1 +
 libavdevice/avdevice.c      |  1 +
 libavdevice/avdevice.h      |  2 +-
 libavdevice/version.h       | 10 ++--------
 libavdevice/version_major.h | 37 +++++++++++++++++++++++++++++++++++++
 7 files changed, 44 insertions(+), 9 deletions(-)
 create mode 100644 libavdevice/version_major.h

diff --git a/fftools/cmdutils.c b/fftools/cmdutils.c
index 87f410e975..21ec11226e 100644
--- a/fftools/cmdutils.c
+++ b/fftools/cmdutils.c
@@ -35,6 +35,7 @@
 #include "libavformat/version.h"
 #include "libavfilter/avfilter.h"
 #include "libavdevice/avdevice.h"
+#include "libavdevice/version.h"
 #include "libswscale/swscale.h"
 #include "libswresample/swresample.h"
 #include "libpostproc/postprocess.h"
diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c
index 7e70b549f3..04160d9674 100644
--- a/fftools/ffprobe.c
+++ b/fftools/ffprobe.c
@@ -53,6 +53,7 @@
 #include "libavutil/timecode.h"
 #include "libavutil/timestamp.h"
 #include "libavdevice/avdevice.h"
+#include "libavdevice/version.h"
 #include "libswscale/swscale.h"
 #include "libswresample/swresample.h"
 #include "libpostproc/postprocess.h"
diff --git a/libavdevice/Makefile b/libavdevice/Makefile
index 53efda0514..99fea7133a 100644
--- a/libavdevice/Makefile
+++ b/libavdevice/Makefile
@@ -3,6 +3,7 @@ DESC    = FFmpeg device handling library
 
 HEADERS = avdevice.h                                                    \
           version.h                                                     \
+          version_major.h                                               \
 
 OBJS    = alldevices.o                                                  \
           avdevice.o                                                    \
diff --git a/libavdevice/avdevice.c b/libavdevice/avdevice.c
index 8f460c7564..833d200054 100644
--- a/libavdevice/avdevice.c
+++ b/libavdevice/avdevice.c
@@ -22,6 +22,7 @@
 #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;
diff --git a/libavdevice/avdevice.h b/libavdevice/avdevice.h
index 6f24976dcc..6de0e33819 100644
--- a/libavdevice/avdevice.h
+++ b/libavdevice/avdevice.h
@@ -19,7 +19,7 @@
 #ifndef AVDEVICE_AVDEVICE_H
 #define AVDEVICE_AVDEVICE_H
 
-#include "version.h"
+#include "version_major.h"
 
 /**
  * @file
diff --git a/libavdevice/version.h b/libavdevice/version.h
index 05234e7f21..513c0bb1bc 100644
--- a/libavdevice/version.h
+++ b/libavdevice/version.h
@@ -27,7 +27,8 @@
 
 #include "libavutil/version.h"
 
-#define LIBAVDEVICE_VERSION_MAJOR  59
+#include "version_major.h"
+
 #define LIBAVDEVICE_VERSION_MINOR   5
 #define LIBAVDEVICE_VERSION_MICRO 100
 
@@ -41,11 +42,4 @@
 
 #define LIBAVDEVICE_IDENT       "Lavd" AV_STRINGIFY(LIBAVDEVICE_VERSION)
 
-/**
- * FF_API_* defines may be placed below to indicate public API that will be
- * dropped at a future version bump. The defines themselves are not part of
- * the public API and may change, break or disappear at any time.
- */
-#define FF_API_DEVICE_CAPABILITIES (LIBAVDEVICE_VERSION_MAJOR < 60)
-
 #endif /* AVDEVICE_VERSION_H */
diff --git a/libavdevice/version_major.h b/libavdevice/version_major.h
new file mode 100644
index 0000000000..d255ff6992
--- /dev/null
+++ b/libavdevice/version_major.h
@@ -0,0 +1,37 @@
+/*
+ * 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
+ */
+
+#ifndef AVDEVICE_VERSION_MAJOR_H
+#define AVDEVICE_VERSION_MAJOR_H
+
+/**
+ * @file
+ * @ingroup lavd
+ * Libavdevice version macros
+ */
+
+#define LIBAVDEVICE_VERSION_MAJOR  59
+
+/**
+ * FF_API_* defines may be placed below to indicate public API that will be
+ * dropped at a future version bump. The defines themselves are not part of
+ * the public API and may change, break or disappear at any time.
+ */
+#define FF_API_DEVICE_CAPABILITIES (LIBAVDEVICE_VERSION_MAJOR < 60)
+
+#endif /* AVDEVICE_VERSION_MAJOR_H */
-- 
2.32.0 (Apple Git-132)

_______________________________________________
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".

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [FFmpeg-devel] [PATCH v2 4/9] libpostproc: Split version.h
  2022-03-11 12:18 [FFmpeg-devel] [PATCH v2 1/9] libavcodec: Split version.h Martin Storsjö
  2022-03-11 12:18 ` [FFmpeg-devel] [PATCH v2 2/9] libavformat: " Martin Storsjö
  2022-03-11 12:18 ` [FFmpeg-devel] [PATCH v2 3/9] libavdevice: " Martin Storsjö
@ 2022-03-11 12:18 ` Martin Storsjö
  2022-03-11 12:18 ` [FFmpeg-devel] [PATCH v2 5/9] libswresample: " Martin Storsjö
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 12+ messages in thread
From: Martin Storsjö @ 2022-03-11 12:18 UTC (permalink / raw)
  To: ffmpeg-devel

---
 fftools/cmdutils.c          |  1 +
 fftools/ffprobe.c           |  1 +
 libpostproc/Makefile        |  1 +
 libpostproc/postprocess.c   |  1 +
 libpostproc/postprocess.h   |  2 +-
 libpostproc/version.h       |  3 ++-
 libpostproc/version_major.h | 31 +++++++++++++++++++++++++++++++
 7 files changed, 38 insertions(+), 2 deletions(-)
 create mode 100644 libpostproc/version_major.h

diff --git a/fftools/cmdutils.c b/fftools/cmdutils.c
index 21ec11226e..f52015708c 100644
--- a/fftools/cmdutils.c
+++ b/fftools/cmdutils.c
@@ -39,6 +39,7 @@
 #include "libswscale/swscale.h"
 #include "libswresample/swresample.h"
 #include "libpostproc/postprocess.h"
+#include "libpostproc/version.h"
 #include "libavutil/attributes.h"
 #include "libavutil/avassert.h"
 #include "libavutil/avstring.h"
diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c
index 04160d9674..203f062935 100644
--- a/fftools/ffprobe.c
+++ b/fftools/ffprobe.c
@@ -57,6 +57,7 @@
 #include "libswscale/swscale.h"
 #include "libswresample/swresample.h"
 #include "libpostproc/postprocess.h"
+#include "libpostproc/version.h"
 #include "cmdutils.h"
 
 #include "libavutil/thread.h"
diff --git a/libpostproc/Makefile b/libpostproc/Makefile
index 34317193a8..f7debb8eeb 100644
--- a/libpostproc/Makefile
+++ b/libpostproc/Makefile
@@ -4,6 +4,7 @@ FFLIBS = avutil
 
 HEADERS = postprocess.h        \
           version.h            \
+          version_major.h      \
 
 OBJS = postprocess.o
 
diff --git a/libpostproc/postprocess.c b/libpostproc/postprocess.c
index 2ca7a3779d..b954dc2eaa 100644
--- a/libpostproc/postprocess.c
+++ b/libpostproc/postprocess.c
@@ -89,6 +89,7 @@ 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"
 
diff --git a/libpostproc/postprocess.h b/libpostproc/postprocess.h
index ba456cf3e0..cf4e78c83a 100644
--- a/libpostproc/postprocess.h
+++ b/libpostproc/postprocess.h
@@ -34,7 +34,7 @@
  * @{
  */
 
-#include "libpostproc/version.h"
+#include "libpostproc/version_major.h"
 
 /**
  * Return the LIBPOSTPROC_VERSION_INT constant.
diff --git a/libpostproc/version.h b/libpostproc/version.h
index e8bd6afdc8..4459d251d4 100644
--- a/libpostproc/version.h
+++ b/libpostproc/version.h
@@ -28,7 +28,8 @@
 
 #include "libavutil/version.h"
 
-#define LIBPOSTPROC_VERSION_MAJOR  56
+#include "version_major.h"
+
 #define LIBPOSTPROC_VERSION_MINOR   4
 #define LIBPOSTPROC_VERSION_MICRO 100
 
diff --git a/libpostproc/version_major.h b/libpostproc/version_major.h
new file mode 100644
index 0000000000..7afc4dbb72
--- /dev/null
+++ b/libpostproc/version_major.h
@@ -0,0 +1,31 @@
+/*
+ * Version macros.
+ *
+ * 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
+ */
+
+#ifndef POSTPROC_VERSION_MAJOR_H
+#define POSTPROC_VERSION_MAJOR_H
+
+/**
+ * @file
+ * Libpostproc version macros
+ */
+
+#define LIBPOSTPROC_VERSION_MAJOR  56
+
+#endif /* POSTPROC_VERSION_MAJOR_H */
-- 
2.32.0 (Apple Git-132)

_______________________________________________
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".

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [FFmpeg-devel] [PATCH v2 5/9] libswresample: Split version.h
  2022-03-11 12:18 [FFmpeg-devel] [PATCH v2 1/9] libavcodec: Split version.h Martin Storsjö
                   ` (2 preceding siblings ...)
  2022-03-11 12:18 ` [FFmpeg-devel] [PATCH v2 4/9] libpostproc: " Martin Storsjö
@ 2022-03-11 12:18 ` Martin Storsjö
  2022-03-11 12:18 ` [FFmpeg-devel] [PATCH v2 6/9] libswscale: " Martin Storsjö
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 12+ messages in thread
From: Martin Storsjö @ 2022-03-11 12:18 UTC (permalink / raw)
  To: ffmpeg-devel

---
 fftools/cmdutils.c            |  1 +
 fftools/ffprobe.c             |  1 +
 libswresample/Makefile        |  1 +
 libswresample/swresample.c    |  1 +
 libswresample/swresample.h    |  2 +-
 libswresample/version.h       |  3 ++-
 libswresample/version_major.h | 31 +++++++++++++++++++++++++++++++
 7 files changed, 38 insertions(+), 2 deletions(-)
 create mode 100644 libswresample/version_major.h

diff --git a/fftools/cmdutils.c b/fftools/cmdutils.c
index f52015708c..dd5d4f5849 100644
--- a/fftools/cmdutils.c
+++ b/fftools/cmdutils.c
@@ -38,6 +38,7 @@
 #include "libavdevice/version.h"
 #include "libswscale/swscale.h"
 #include "libswresample/swresample.h"
+#include "libswresample/version.h"
 #include "libpostproc/postprocess.h"
 #include "libpostproc/version.h"
 #include "libavutil/attributes.h"
diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c
index 203f062935..7d8ab0392e 100644
--- a/fftools/ffprobe.c
+++ b/fftools/ffprobe.c
@@ -56,6 +56,7 @@
 #include "libavdevice/version.h"
 #include "libswscale/swscale.h"
 #include "libswresample/swresample.h"
+#include "libswresample/version.h"
 #include "libpostproc/postprocess.h"
 #include "libpostproc/version.h"
 #include "cmdutils.h"
diff --git a/libswresample/Makefile b/libswresample/Makefile
index f528427f55..b74ee20987 100644
--- a/libswresample/Makefile
+++ b/libswresample/Makefile
@@ -4,6 +4,7 @@ FFLIBS = avutil
 
 HEADERS = swresample.h                       \
           version.h                          \
+          version_major.h                    \
 
 OBJS = audioconvert.o                        \
        dither.o                              \
diff --git a/libswresample/swresample.c b/libswresample/swresample.c
index 16734c9df9..82e979c4c9 100644
--- a/libswresample/swresample.c
+++ b/libswresample/swresample.c
@@ -24,6 +24,7 @@
 #include "libavutil/avassert.h"
 #include "libavutil/channel_layout.h"
 #include "libavutil/internal.h"
+#include "version.h"
 
 #include <float.h>
 
diff --git a/libswresample/swresample.h b/libswresample/swresample.h
index c7b84fbcac..aebdbafcfc 100644
--- a/libswresample/swresample.h
+++ b/libswresample/swresample.h
@@ -124,7 +124,7 @@
 #include "libavutil/frame.h"
 #include "libavutil/samplefmt.h"
 
-#include "libswresample/version.h"
+#include "libswresample/version_major.h"
 
 /**
  * @name Option constants
diff --git a/libswresample/version.h b/libswresample/version.h
index 61d0057cf5..9a514e6d6f 100644
--- a/libswresample/version.h
+++ b/libswresample/version.h
@@ -28,7 +28,8 @@
 
 #include "libavutil/version.h"
 
-#define LIBSWRESAMPLE_VERSION_MAJOR   4
+#include "version_major.h"
+
 #define LIBSWRESAMPLE_VERSION_MINOR   4
 #define LIBSWRESAMPLE_VERSION_MICRO 100
 
diff --git a/libswresample/version_major.h b/libswresample/version_major.h
new file mode 100644
index 0000000000..7f265c2073
--- /dev/null
+++ b/libswresample/version_major.h
@@ -0,0 +1,31 @@
+/*
+ * Version macros.
+ *
+ * This file is part of libswresample
+ *
+ * libswresample 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.
+ *
+ * libswresample 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 libswresample; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef SWRESAMPLE_VERSION_MAJOR_H
+#define SWRESAMPLE_VERSION_MAJOR_H
+
+/**
+ * @file
+ * Libswresample version macros
+ */
+
+#define LIBSWRESAMPLE_VERSION_MAJOR   4
+
+#endif /* SWRESAMPLE_VERSION_MAJOR_H */
-- 
2.32.0 (Apple Git-132)

_______________________________________________
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".

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [FFmpeg-devel] [PATCH v2 6/9] libswscale: Split version.h
  2022-03-11 12:18 [FFmpeg-devel] [PATCH v2 1/9] libavcodec: Split version.h Martin Storsjö
                   ` (3 preceding siblings ...)
  2022-03-11 12:18 ` [FFmpeg-devel] [PATCH v2 5/9] libswresample: " Martin Storsjö
@ 2022-03-11 12:18 ` Martin Storsjö
  2022-03-11 12:18 ` [FFmpeg-devel] [PATCH v2 7/9] libavfilter: " Martin Storsjö
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 12+ messages in thread
From: Martin Storsjö @ 2022-03-11 12:18 UTC (permalink / raw)
  To: ffmpeg-devel

---
 fftools/cmdutils.c         |  1 +
 fftools/ffprobe.c          |  1 +
 libswscale/Makefile        |  1 +
 libswscale/swscale.h       |  2 +-
 libswscale/utils.c         |  1 +
 libswscale/version.h       |  9 ++-------
 libswscale/version_major.h | 35 +++++++++++++++++++++++++++++++++++
 7 files changed, 42 insertions(+), 8 deletions(-)
 create mode 100644 libswscale/version_major.h

diff --git a/fftools/cmdutils.c b/fftools/cmdutils.c
index dd5d4f5849..d5cadec695 100644
--- a/fftools/cmdutils.c
+++ b/fftools/cmdutils.c
@@ -37,6 +37,7 @@
 #include "libavdevice/avdevice.h"
 #include "libavdevice/version.h"
 #include "libswscale/swscale.h"
+#include "libswscale/version.h"
 #include "libswresample/swresample.h"
 #include "libswresample/version.h"
 #include "libpostproc/postprocess.h"
diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c
index 7d8ab0392e..f36397a6ff 100644
--- a/fftools/ffprobe.c
+++ b/fftools/ffprobe.c
@@ -55,6 +55,7 @@
 #include "libavdevice/avdevice.h"
 #include "libavdevice/version.h"
 #include "libswscale/swscale.h"
+#include "libswscale/version.h"
 #include "libswresample/swresample.h"
 #include "libswresample/version.h"
 #include "libpostproc/postprocess.h"
diff --git a/libswscale/Makefile b/libswscale/Makefile
index a0ec71e06f..1f02b56421 100644
--- a/libswscale/Makefile
+++ b/libswscale/Makefile
@@ -3,6 +3,7 @@ DESC = FFmpeg image rescaling library
 
 HEADERS = swscale.h                                                     \
           version.h                                                     \
+          version_major.h                                               \
 
 OBJS = alphablend.o                                     \
        hscale.o                                         \
diff --git a/libswscale/swscale.h b/libswscale/swscale.h
index daa53dc01e..07c69e1ae7 100644
--- a/libswscale/swscale.h
+++ b/libswscale/swscale.h
@@ -33,7 +33,7 @@
 #include "libavutil/frame.h"
 #include "libavutil/log.h"
 #include "libavutil/pixfmt.h"
-#include "version.h"
+#include "version_major.h"
 
 /**
  * @defgroup libsws libswscale
diff --git a/libswscale/utils.c b/libswscale/utils.c
index 34f7f0b869..e86c151f67 100644
--- a/libswscale/utils.c
+++ b/libswscale/utils.c
@@ -59,6 +59,7 @@
 #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);
diff --git a/libswscale/version.h b/libswscale/version.h
index 0e5583aa47..c13db31c43 100644
--- a/libswscale/version.h
+++ b/libswscale/version.h
@@ -26,7 +26,8 @@
 
 #include "libavutil/version.h"
 
-#define LIBSWSCALE_VERSION_MAJOR   6
+#include "version_major.h"
+
 #define LIBSWSCALE_VERSION_MINOR   5
 #define LIBSWSCALE_VERSION_MICRO 100
 
@@ -40,10 +41,4 @@
 
 #define LIBSWSCALE_IDENT        "SwS" AV_STRINGIFY(LIBSWSCALE_VERSION)
 
-/**
- * FF_API_* defines may be placed below to indicate public API that will be
- * dropped at a future version bump. The defines themselves are not part of
- * the public API and may change, break or disappear at any time.
- */
-
 #endif /* SWSCALE_VERSION_H */
diff --git a/libswscale/version_major.h b/libswscale/version_major.h
new file mode 100644
index 0000000000..2f8418780c
--- /dev/null
+++ b/libswscale/version_major.h
@@ -0,0 +1,35 @@
+/*
+ * 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
+ */
+
+#ifndef SWSCALE_VERSION_MAJOR_H
+#define SWSCALE_VERSION_MAJOR_H
+
+/**
+ * @file
+ * swscale version macros
+ */
+
+#define LIBSWSCALE_VERSION_MAJOR   6
+
+/**
+ * FF_API_* defines may be placed below to indicate public API that will be
+ * dropped at a future version bump. The defines themselves are not part of
+ * the public API and may change, break or disappear at any time.
+ */
+
+#endif /* SWSCALE_VERSION_MAJOR_H */
-- 
2.32.0 (Apple Git-132)

_______________________________________________
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".

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [FFmpeg-devel] [PATCH v2 7/9] libavfilter: Split version.h
  2022-03-11 12:18 [FFmpeg-devel] [PATCH v2 1/9] libavcodec: Split version.h Martin Storsjö
                   ` (4 preceding siblings ...)
  2022-03-11 12:18 ` [FFmpeg-devel] [PATCH v2 6/9] libswscale: " Martin Storsjö
@ 2022-03-11 12:18 ` Martin Storsjö
  2022-03-11 12:18 ` [FFmpeg-devel] [PATCH v2 8/9] doc: Add an entry to APIchanges about no longer implicitly including version.h Martin Storsjö
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 12+ messages in thread
From: Martin Storsjö @ 2022-03-11 12:18 UTC (permalink / raw)
  To: ffmpeg-devel

---
 fftools/cmdutils.c          |  1 +
 fftools/ffprobe.c           |  1 +
 libavfilter/Makefile        |  1 +
 libavfilter/avfilter.c      |  1 +
 libavfilter/avfilter.h      |  2 +-
 libavfilter/version.h       | 13 ++----------
 libavfilter/version_major.h | 42 +++++++++++++++++++++++++++++++++++++
 7 files changed, 49 insertions(+), 12 deletions(-)
 create mode 100644 libavfilter/version_major.h

diff --git a/fftools/cmdutils.c b/fftools/cmdutils.c
index d5cadec695..9cceb68412 100644
--- a/fftools/cmdutils.c
+++ b/fftools/cmdutils.c
@@ -34,6 +34,7 @@
 #include "libavformat/avformat.h"
 #include "libavformat/version.h"
 #include "libavfilter/avfilter.h"
+#include "libavfilter/version.h"
 #include "libavdevice/avdevice.h"
 #include "libavdevice/version.h"
 #include "libswscale/swscale.h"
diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c
index f36397a6ff..48c39d2540 100644
--- a/fftools/ffprobe.c
+++ b/fftools/ffprobe.c
@@ -60,6 +60,7 @@
 #include "libswresample/version.h"
 #include "libpostproc/postprocess.h"
 #include "libpostproc/version.h"
+#include "libavfilter/version.h"
 #include "cmdutils.h"
 
 #include "libavutil/thread.h"
diff --git a/libavfilter/Makefile b/libavfilter/Makefile
index 56d33e6480..d5fc27a575 100644
--- a/libavfilter/Makefile
+++ b/libavfilter/Makefile
@@ -5,6 +5,7 @@ HEADERS = avfilter.h                                                    \
           buffersink.h                                                  \
           buffersrc.h                                                   \
           version.h                                                     \
+          version_major.h                                               \
 
 OBJS = allfilters.o                                                     \
        audio.o                                                          \
diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c
index 1f37a70179..859c5b837b 100644
--- a/libavfilter/avfilter.c
+++ b/libavfilter/avfilter.c
@@ -43,6 +43,7 @@
 #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;
diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h
index b105dc3159..37effcf5cd 100644
--- a/libavfilter/avfilter.h
+++ b/libavfilter/avfilter.h
@@ -47,7 +47,7 @@
 #include "libavutil/pixfmt.h"
 #include "libavutil/rational.h"
 
-#include "libavfilter/version.h"
+#include "libavfilter/version_major.h"
 
 /**
  * Return the LIBAVFILTER_VERSION_INT constant.
diff --git a/libavfilter/version.h b/libavfilter/version.h
index 9a890c014f..40fa8d9c47 100644
--- a/libavfilter/version.h
+++ b/libavfilter/version.h
@@ -29,7 +29,8 @@
 
 #include "libavutil/version.h"
 
-#define LIBAVFILTER_VERSION_MAJOR   8
+#include "version_major.h"
+
 #define LIBAVFILTER_VERSION_MINOR  27
 #define LIBAVFILTER_VERSION_MICRO 100
 
@@ -44,14 +45,4 @@
 
 #define LIBAVFILTER_IDENT       "Lavfi" AV_STRINGIFY(LIBAVFILTER_VERSION)
 
-/**
- * FF_API_* defines may be placed below to indicate public API that will be
- * dropped at a future version bump. The defines themselves are not part of
- * the public API and may change, break or disappear at any time.
- */
-
-#define FF_API_SWS_PARAM_OPTION             (LIBAVFILTER_VERSION_MAJOR < 9)
-#define FF_API_BUFFERSINK_ALLOC             (LIBAVFILTER_VERSION_MAJOR < 9)
-#define FF_API_PAD_COUNT                    (LIBAVFILTER_VERSION_MAJOR < 9)
-
 #endif /* AVFILTER_VERSION_H */
diff --git a/libavfilter/version_major.h b/libavfilter/version_major.h
new file mode 100644
index 0000000000..de0cf6e979
--- /dev/null
+++ b/libavfilter/version_major.h
@@ -0,0 +1,42 @@
+/*
+ * Version macros.
+ *
+ * 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
+ */
+
+#ifndef AVFILTER_VERSION_MAJOR_H
+#define AVFILTER_VERSION_MAJOR_H
+
+/**
+ * @file
+ * @ingroup lavfi
+ * Libavfilter version macros
+ */
+
+#define LIBAVFILTER_VERSION_MAJOR   8
+
+/**
+ * FF_API_* defines may be placed below to indicate public API that will be
+ * dropped at a future version bump. The defines themselves are not part of
+ * the public API and may change, break or disappear at any time.
+ */
+
+#define FF_API_SWS_PARAM_OPTION             (LIBAVFILTER_VERSION_MAJOR < 9)
+#define FF_API_BUFFERSINK_ALLOC             (LIBAVFILTER_VERSION_MAJOR < 9)
+#define FF_API_PAD_COUNT                    (LIBAVFILTER_VERSION_MAJOR < 9)
+
+#endif /* AVFILTER_VERSION_MAJOR_H */
-- 
2.32.0 (Apple Git-132)

_______________________________________________
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".

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [FFmpeg-devel] [PATCH v2 8/9] doc: Add an entry to APIchanges about no longer implicitly including version.h
  2022-03-11 12:18 [FFmpeg-devel] [PATCH v2 1/9] libavcodec: Split version.h Martin Storsjö
                   ` (5 preceding siblings ...)
  2022-03-11 12:18 ` [FFmpeg-devel] [PATCH v2 7/9] libavfilter: " Martin Storsjö
@ 2022-03-11 12:18 ` Martin Storsjö
  2022-03-11 12:18 ` [FFmpeg-devel] [PATCH v2 9/9] configure: Use a separate config_components.h header for $ALL_COMPONENTS Martin Storsjö
  2022-03-12 22:34 ` [FFmpeg-devel] [PATCH v2 1/9] libavcodec: Split version.h Martin Storsjö
  8 siblings, 0 replies; 12+ messages in thread
From: Martin Storsjö @ 2022-03-11 12:18 UTC (permalink / raw)
  To: ffmpeg-devel

---
 doc/APIchanges | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/doc/APIchanges b/doc/APIchanges
index ccc4f24b28..365a9747c9 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -14,6 +14,12 @@ libavutil:     2021-04-27
 
 API changes, most recent first:
 
+2022-*-* - xxxxxxxxxx - all libraries
+  No longer implicitly include lib<name>/version.h in lib<name>/<name>.h.
+  Users who depend on defines from these files (LIB<name>_VERSION*,
+  LIB<name>_IDENT) must explicitly include these headers instead of
+  relying on them being included implicitly.
+
 2022-03-10 - xxxxxxxxxx - lavu 57.23.100 - cpu.h
   Add AV_CPU_FLAG_AVX512ICL.
 
-- 
2.32.0 (Apple Git-132)

_______________________________________________
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".

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [FFmpeg-devel] [PATCH v2 9/9] configure: Use a separate config_components.h header for $ALL_COMPONENTS
  2022-03-11 12:18 [FFmpeg-devel] [PATCH v2 1/9] libavcodec: Split version.h Martin Storsjö
                   ` (6 preceding siblings ...)
  2022-03-11 12:18 ` [FFmpeg-devel] [PATCH v2 8/9] doc: Add an entry to APIchanges about no longer implicitly including version.h Martin Storsjö
@ 2022-03-11 12:18 ` Martin Storsjö
  2022-03-11 13:53   ` [FFmpeg-devel] [PATCH v3 " Martin Storsjö
  2022-03-12 22:34 ` [FFmpeg-devel] [PATCH v2 1/9] libavcodec: Split version.h Martin Storsjö
  8 siblings, 1 reply; 12+ messages in thread
From: Martin Storsjö @ 2022-03-11 12:18 UTC (permalink / raw)
  To: ffmpeg-devel

This avoids unnecessary rebuilds of most source files if only the
list of enabled components has changed, but not the other properties
of the build, set in config.h.
---
 configure                          | 17 +++++++++++++++--
 fftools/ffplay.c                   |  1 +
 libavcodec/8svx.c                  |  2 ++
 libavcodec/a64multienc.c           |  2 ++
 libavcodec/aac_ac3_parser.c        |  2 ++
 libavcodec/aactab.c                |  1 +
 libavcodec/aarch64/h264cmc_neon.S  |  2 ++
 libavcodec/ac3_parser.c            |  1 +
 libavcodec/ac3dec.c                |  2 ++
 libavcodec/ac3enc.c                |  1 +
 libavcodec/ac3enc_template.c       |  2 ++
 libavcodec/adpcm.c                 |  3 +++
 libavcodec/adpcmenc.c              |  2 ++
 libavcodec/allcodecs.c             |  1 +
 libavcodec/aptxdec.c               |  2 ++
 libavcodec/aptxenc.c               |  2 ++
 libavcodec/arm/flacdsp_init_arm.c  |  1 +
 libavcodec/arm/h264cmc_neon.S      |  2 ++
 libavcodec/assdec.c                |  1 +
 libavcodec/assenc.c                |  2 ++
 libavcodec/asvdec.c                |  1 +
 libavcodec/asvenc.c                |  2 ++
 libavcodec/audiotoolboxdec.c       |  1 +
 libavcodec/av1dec.c                |  2 ++
 libavcodec/binkaudio.c             |  2 ++
 libavcodec/bintext.c               |  2 ++
 libavcodec/bsf.c                   |  1 +
 libavcodec/cyuv.c                  |  2 ++
 libavcodec/dxva2_av1.c             |  2 ++
 libavcodec/dxva2_h264.c            |  2 ++
 libavcodec/dxva2_hevc.c            |  2 ++
 libavcodec/dxva2_mpeg2.c           |  2 ++
 libavcodec/dxva2_vc1.c             |  2 ++
 libavcodec/dxva2_vp9.c             |  2 ++
 libavcodec/flashsv.c               |  2 ++
 libavcodec/g726.c                  |  3 +++
 libavcodec/gsmdec.c                |  2 ++
 libavcodec/h263dec.c               |  2 ++
 libavcodec/h264_slice.c            |  2 ++
 libavcodec/h264dec.c               |  2 ++
 libavcodec/hevcdec.c               |  2 ++
 libavcodec/huffyuvdec.c            |  2 ++
 libavcodec/huffyuvenc.c            |  2 ++
 libavcodec/idctdsp.c               |  1 +
 libavcodec/iff.c                   |  2 ++
 libavcodec/imc.c                   |  1 +
 libavcodec/ituh263dec.c            |  2 ++
 libavcodec/ituh263enc.c            |  2 ++
 libavcodec/lcldec.c                |  2 ++
 libavcodec/libgsmdec.c             |  1 +
 libavcodec/libgsmenc.c             |  1 +
 libavcodec/libopencore-amr.c       |  2 ++
 libavcodec/libvpx.c                |  1 +
 libavcodec/libvpxdec.c             |  2 ++
 libavcodec/libvpxenc.c             |  2 ++
 libavcodec/libx264.c               |  2 ++
 libavcodec/me_cmp.c                |  1 +
 libavcodec/metasound_data.c        |  1 +
 libavcodec/mjpegdec.c              |  2 ++
 libavcodec/mjpegenc.c              |  2 ++
 libavcodec/mlpdec.c                |  2 ++
 libavcodec/mlpenc.c                |  2 ++
 libavcodec/mpeg12dec.c             |  2 ++
 libavcodec/mpeg12enc.c             |  1 +
 libavcodec/mpeg4videodec.c         |  2 ++
 libavcodec/mpegaudiodec_fixed.c    |  1 +
 libavcodec/mpegaudiodec_float.c    |  1 +
 libavcodec/mpegvideo.c             |  2 ++
 libavcodec/mpegvideo_enc.c         |  2 ++
 libavcodec/mpegvideo_motion.c      |  2 ++
 libavcodec/msmpeg4.c               |  2 ++
 libavcodec/msmpeg4dec.c            |  2 ++
 libavcodec/mvcdec.c                |  2 ++
 libavcodec/options.c               |  2 ++
 libavcodec/opus_pvq.c              |  2 ++
 libavcodec/pcm.c                   |  1 +
 libavcodec/pngdec.c                |  2 ++
 libavcodec/pnmdec.c                |  2 ++
 libavcodec/pnmenc.c                |  2 ++
 libavcodec/proresdec2.c            |  2 ++
 libavcodec/qpeldsp.c               |  1 +
 libavcodec/r210dec.c               |  1 +
 libavcodec/r210enc.c               |  2 ++
 libavcodec/rv34_parser.c           |  2 ++
 libavcodec/sonic.c                 |  3 +++
 libavcodec/sp5xdec.c               |  2 ++
 libavcodec/speedhq.c               |  1 +
 libavcodec/speedhqenc.c            |  2 ++
 libavcodec/srtdec.c                |  2 ++
 libavcodec/srtenc.c                |  2 ++
 libavcodec/textdec.c               |  2 ++
 libavcodec/v408dec.c               |  2 ++
 libavcodec/v408enc.c               |  2 ++
 libavcodec/vc1dec.c                |  2 ++
 libavcodec/vc1dsp.c                |  2 ++
 libavcodec/videotoolbox.c          |  1 +
 libavcodec/vorbis_parser.c         |  2 ++
 libavcodec/vp3.c                   |  2 ++
 libavcodec/vp56dsp.c               |  1 +
 libavcodec/vp8.c                   |  2 ++
 libavcodec/vp8dsp.c                |  2 ++
 libavcodec/vp9.c                   |  2 ++
 libavcodec/wmadec.c                |  2 ++
 libavcodec/wmaenc.c                |  2 ++
 libavcodec/x86/flacdsp_init.c      |  1 +
 libavcodec/x86/hpeldsp_init.c      |  2 ++
 libavfilter/aeval.c                |  2 ++
 libavfilter/af_afade.c             |  2 ++
 libavfilter/af_agate.c             |  2 ++
 libavfilter/af_biquads.c           |  2 ++
 libavfilter/af_sidechaincompress.c |  2 ++
 libavfilter/avf_showspectrum.c     |  2 ++
 libavfilter/avf_showwaves.c        |  2 ++
 libavfilter/f_bench.c              |  2 ++
 libavfilter/f_cue.c                |  2 ++
 libavfilter/f_drawgraph.c          |  2 ++
 libavfilter/f_graphmonitor.c       |  2 ++
 libavfilter/f_interleave.c         |  2 ++
 libavfilter/f_latency.c            |  2 ++
 libavfilter/f_loop.c               |  2 ++
 libavfilter/f_metadata.c           |  2 ++
 libavfilter/f_perms.c              |  2 ++
 libavfilter/f_realtime.c           |  2 ++
 libavfilter/f_reverse.c            |  2 ++
 libavfilter/f_segment.c            |  2 ++
 libavfilter/f_select.c             |  2 ++
 libavfilter/f_sendcmd.c            |  2 ++
 libavfilter/f_sidedata.c           |  2 ++
 libavfilter/lut3d.h                |  2 ++
 libavfilter/setpts.c               |  2 ++
 libavfilter/settb.c                |  2 ++
 libavfilter/src_movie.c            |  2 ++
 libavfilter/trim.c                 |  1 +
 libavfilter/vf_aspect.c            |  2 ++
 libavfilter/vf_blend.c             |  2 ++
 libavfilter/vf_colorconstancy.c    |  2 ++
 libavfilter/vf_colorkey.c          |  2 ++
 libavfilter/vf_convolution.c       |  2 ++
 libavfilter/vf_convolve.c          |  2 ++
 libavfilter/vf_drawbox.c           |  2 ++
 libavfilter/vf_extractplanes.c     |  2 ++
 libavfilter/vf_format.c            |  2 ++
 libavfilter/vf_histogram.c         |  2 ++
 libavfilter/vf_identity.c          |  2 ++
 libavfilter/vf_lut.c               |  2 ++
 libavfilter/vf_lut2.c              |  2 ++
 libavfilter/vf_mix.c               |  2 ++
 libavfilter/vf_neighbor.c          |  2 ++
 libavfilter/vf_premultiply.c       |  2 ++
 libavfilter/vf_setparams.c         |  2 ++
 libavfilter/vf_stack.c             |  2 ++
 libavfilter/vf_xmedian.c           |  2 ++
 libavfilter/vsrc_testsrc.c         |  2 ++
 libavformat/ac3dec.c               |  2 ++
 libavformat/alp.c                  |  2 ++
 libavformat/amr.c                  |  2 ++
 libavformat/apm.c                  |  3 +++
 libavformat/aptxdec.c              |  2 ++
 libavformat/argo_asf.c             |  3 +++
 libavformat/argo_cvg.c             |  2 ++
 libavformat/asfenc.c               |  2 ++
 libavformat/au.c                   |  2 ++
 libavformat/av1dec.c               |  1 +
 libavformat/avidec.c               |  2 ++
 libavformat/avienc.c               |  1 +
 libavformat/bintext.c              |  2 ++
 libavformat/bit.c                  |  3 +++
 libavformat/codec2.c               |  2 ++
 libavformat/concat.c               |  2 ++
 libavformat/dashenc.c              |  1 +
 libavformat/demux.c                |  1 +
 libavformat/file.c                 |  2 ++
 libavformat/format.c               |  2 ++
 libavformat/g726.c                 |  2 ++
 libavformat/gopher.c               |  1 +
 libavformat/hashenc.c              |  2 ++
 libavformat/hls.c                  |  2 ++
 libavformat/hlsenc.c               |  1 +
 libavformat/http.c                 |  1 +
 libavformat/ilbc.c                 |  2 ++
 libavformat/img2dec.c              |  2 ++
 libavformat/img2enc.c              |  2 ++
 libavformat/kvag.c                 |  2 ++
 libavformat/matroskadec.c          |  1 +
 libavformat/matroskaenc.c          |  1 +
 libavformat/mj2kdec.c              |  2 ++
 libavformat/mlpdec.c               |  2 ++
 libavformat/mmf.c                  |  2 ++
 libavformat/mov.c                  |  2 ++
 libavformat/movenc.c               |  2 ++
 libavformat/mpeg.c                 |  2 ++
 libavformat/mpegenc.c              |  2 ++
 libavformat/mpegts.c               |  2 ++
 libavformat/network.c              |  2 ++
 libavformat/oggenc.c               |  2 ++
 libavformat/pcmdec.c               |  2 ++
 libavformat/pcmenc.c               |  2 ++
 libavformat/rawdec.c               |  2 ++
 libavformat/rawenc.c               |  2 ++
 libavformat/rawvideodec.c          |  2 ++
 libavformat/riff.c                 |  1 +
 libavformat/rtmpproto.c            |  2 ++
 libavformat/rtsp.c                 |  2 ++
 libavformat/rtspdec.c              |  2 ++
 libavformat/sdp.c                  |  2 ++
 libavformat/segment.c              |  2 ++
 libavformat/swfenc.c               |  2 ++
 libavformat/voc.c                  |  1 +
 libavformat/wavdec.c               |  1 +
 libavformat/wavenc.c               |  2 ++
 210 files changed, 399 insertions(+), 2 deletions(-)

diff --git a/configure b/configure
index 7d22c2a345..74881682d0 100755
--- a/configure
+++ b/configure
@@ -7791,17 +7791,30 @@ print_config ARCH_   "$config_files" $ARCH_LIST
 print_config HAVE_   "$config_files" $HAVE_LIST
 print_config CONFIG_ "$config_files" $CONFIG_LIST       \
                                      $CONFIG_EXTRA      \
-                                     $ALL_COMPONENTS    \
 
 echo "#endif /* FFMPEG_CONFIG_H */" >> $TMPH
-echo "endif # FFMPEG_CONFIG_MAK" >> ffbuild/config.mak
 
 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
 cp_if_changed $TMPH config.h
 touch ffbuild/.config
 
+# Copy config.asm before printing ALL_COMPONENTS; that's not needed in assembly.
 enabled x86asm && cp_if_changed $TMPASM config.asm
 
+# Reopen a new TMPH for config_components.h.
+cat > $TMPH <<EOF
+/* Automatically generated by configure - do not modify! */
+#ifndef FFMPEG_CONFIG_COMPONENTS_H
+#define FFMPEG_CONFIG_COMPONENTS_H
+EOF
+
+print_config CONFIG_ "$config_files" $ALL_COMPONENTS
+
+echo "#endif /* FFMPEG_CONFIG_COMPONENTS_H */" >> $TMPH
+echo "endif # FFMPEG_CONFIG_MAK" >> ffbuild/config.mak
+
+cp_if_changed $TMPH config_components.h
+
 cat > $TMPH <<EOF
 /* Generated by ffmpeg configure */
 #ifndef AVUTIL_AVCONFIG_H
diff --git a/fftools/ffplay.c b/fftools/ffplay.c
index ac48d8765d..b79ae8fb58 100644
--- a/fftools/ffplay.c
+++ b/fftools/ffplay.c
@@ -24,6 +24,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 #include <inttypes.h>
 #include <math.h>
 #include <limits.h>
diff --git a/libavcodec/8svx.c b/libavcodec/8svx.c
index 6ef8cd73fe..760549d54a 100644
--- a/libavcodec/8svx.c
+++ b/libavcodec/8svx.c
@@ -37,6 +37,8 @@
  * http://aminet.net/mods/smpl/
  */
 
+#include "config_components.h"
+
 #include "libavutil/avassert.h"
 #include "avcodec.h"
 #include "internal.h"
diff --git a/libavcodec/a64multienc.c b/libavcodec/a64multienc.c
index 7bdf4a61b1..a1e0d711ba 100644
--- a/libavcodec/a64multienc.c
+++ b/libavcodec/a64multienc.c
@@ -24,6 +24,8 @@
  * a64 video encoder - multicolor modes
  */
 
+#include "config_components.h"
+
 #include "a64colors.h"
 #include "a64tables.h"
 #include "elbg.h"
diff --git a/libavcodec/aac_ac3_parser.c b/libavcodec/aac_ac3_parser.c
index e84d30aea2..a42ce5a0fb 100644
--- a/libavcodec/aac_ac3_parser.c
+++ b/libavcodec/aac_ac3_parser.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/channel_layout.h"
 #include "libavutil/common.h"
 #include "parser.h"
diff --git a/libavcodec/aactab.c b/libavcodec/aactab.c
index 0553f41a61..0f4941d5df 100644
--- a/libavcodec/aactab.c
+++ b/libavcodec/aactab.c
@@ -28,6 +28,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 #include "libavutil/mem_internal.h"
 #include "libavutil/thread.h"
 #include "aac.h"
diff --git a/libavcodec/aarch64/h264cmc_neon.S b/libavcodec/aarch64/h264cmc_neon.S
index 8be7578001..f8e9407854 100644
--- a/libavcodec/aarch64/h264cmc_neon.S
+++ b/libavcodec/aarch64/h264cmc_neon.S
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/aarch64/asm.S"
 
 /* chroma_mc8(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int h, int x, int y) */
diff --git a/libavcodec/ac3_parser.c b/libavcodec/ac3_parser.c
index f3c7d27d59..86e8d417eb 100644
--- a/libavcodec/ac3_parser.c
+++ b/libavcodec/ac3_parser.c
@@ -21,6 +21,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 
 #include "libavutil/channel_layout.h"
 #include "parser.h"
diff --git a/libavcodec/ac3dec.c b/libavcodec/ac3dec.c
index ae00373dcb..9a9f202f27 100644
--- a/libavcodec/ac3dec.c
+++ b/libavcodec/ac3dec.c
@@ -24,6 +24,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include <stdio.h>
 #include <stddef.h>
 #include <math.h>
diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c
index 034aa0beb9..e9b2e5a19c 100644
--- a/libavcodec/ac3enc.c
+++ b/libavcodec/ac3enc.c
@@ -38,6 +38,7 @@
 #include "libavutil/opt.h"
 #include "libavutil/thread.h"
 #include "avcodec.h"
+#include "config_components.h"
 #include "encode.h"
 #include "internal.h"
 #include "me_cmp.h"
diff --git a/libavcodec/ac3enc_template.c b/libavcodec/ac3enc_template.c
index 5ecef3b178..fbe1dd1e04 100644
--- a/libavcodec/ac3enc_template.c
+++ b/libavcodec/ac3enc_template.c
@@ -26,6 +26,8 @@
  * AC-3 encoder float/fixed template
  */
 
+#include "config_components.h"
+
 #include <stdint.h>
 
 #include "libavutil/attributes.h"
diff --git a/libavcodec/adpcm.c b/libavcodec/adpcm.c
index cfde5f58b9..3c2f30b810 100644
--- a/libavcodec/adpcm.c
+++ b/libavcodec/adpcm.c
@@ -34,6 +34,9 @@
  * 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_components.h"
+
 #include "avcodec.h"
 #include "get_bits.h"
 #include "bytestream.h"
diff --git a/libavcodec/adpcmenc.c b/libavcodec/adpcmenc.c
index b0f6f209b7..fa7e6486ae 100644
--- a/libavcodec/adpcmenc.c
+++ b/libavcodec/adpcmenc.c
@@ -22,6 +22,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/opt.h"
 
 #include "avcodec.h"
diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c
index 628d27fd75..74049afa8f 100644
--- a/libavcodec/allcodecs.c
+++ b/libavcodec/allcodecs.c
@@ -28,6 +28,7 @@
 #include <string.h>
 
 #include "config.h"
+#include "config_components.h"
 #include "libavutil/thread.h"
 #include "codec.h"
 #include "codec_id.h"
diff --git a/libavcodec/aptxdec.c b/libavcodec/aptxdec.c
index bdcc076c41..7f76c28e3b 100644
--- a/libavcodec/aptxdec.c
+++ b/libavcodec/aptxdec.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/channel_layout.h"
 #include "aptx.h"
 
diff --git a/libavcodec/aptxenc.c b/libavcodec/aptxenc.c
index 5ea6053c26..8f96dce735 100644
--- a/libavcodec/aptxenc.c
+++ b/libavcodec/aptxenc.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/channel_layout.h"
 #include "aptx.h"
 #include "encode.h"
diff --git a/libavcodec/arm/flacdsp_init_arm.c b/libavcodec/arm/flacdsp_init_arm.c
index c4a6e3a535..bac9ff1959 100644
--- a/libavcodec/arm/flacdsp_init_arm.c
+++ b/libavcodec/arm/flacdsp_init_arm.c
@@ -21,6 +21,7 @@
 #include "libavutil/attributes.h"
 #include "libavcodec/flacdsp.h"
 #include "config.h"
+#include "config_components.h"
 
 void ff_flac_lpc_16_arm(int32_t *samples, const int coeffs[32], int order,
                         int qlevel, int len);
diff --git a/libavcodec/arm/h264cmc_neon.S b/libavcodec/arm/h264cmc_neon.S
index 5a4159eedd..3687b02ede 100644
--- a/libavcodec/arm/h264cmc_neon.S
+++ b/libavcodec/arm/h264cmc_neon.S
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/arm/asm.S"
 
 /* chroma_mc8(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int h, int x, int y) */
diff --git a/libavcodec/assdec.c b/libavcodec/assdec.c
index 319279490c..a9697d045d 100644
--- a/libavcodec/assdec.c
+++ b/libavcodec/assdec.c
@@ -23,6 +23,7 @@
 
 #include "avcodec.h"
 #include "ass.h"
+#include "config_components.h"
 #include "internal.h"
 #include "libavutil/internal.h"
 #include "libavutil/mem.h"
diff --git a/libavcodec/assenc.c b/libavcodec/assenc.c
index a6d107ded2..b7a88f9d44 100644
--- a/libavcodec/assenc.c
+++ b/libavcodec/assenc.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include <string.h>
 
 #include "avcodec.h"
diff --git a/libavcodec/asvdec.c b/libavcodec/asvdec.c
index 60a4e138c4..36bedb5928 100644
--- a/libavcodec/asvdec.c
+++ b/libavcodec/asvdec.c
@@ -30,6 +30,7 @@
 #include "asv.h"
 #include "avcodec.h"
 #include "blockdsp.h"
+#include "config_components.h"
 #include "idctdsp.h"
 #include "internal.h"
 #include "mpeg12data.h"
diff --git a/libavcodec/asvenc.c b/libavcodec/asvenc.c
index ff96338e8a..96700aa9e3 100644
--- a/libavcodec/asvenc.c
+++ b/libavcodec/asvenc.c
@@ -23,6 +23,8 @@
  * ASUS V1/V2 encoder.
  */
 
+#include "config_components.h"
+
 #include "libavutil/attributes.h"
 #include "libavutil/mem.h"
 
diff --git a/libavcodec/audiotoolboxdec.c b/libavcodec/audiotoolboxdec.c
index 9939fef218..b7c746ef6f 100644
--- a/libavcodec/audiotoolboxdec.c
+++ b/libavcodec/audiotoolboxdec.c
@@ -23,6 +23,7 @@
 #include <AudioToolbox/AudioToolbox.h>
 
 #include "config.h"
+#include "config_components.h"
 #include "avcodec.h"
 #include "ac3_parser_internal.h"
 #include "bytestream.h"
diff --git a/libavcodec/av1dec.c b/libavcodec/av1dec.c
index b354d8d03c..87f0ebb3bd 100644
--- a/libavcodec/av1dec.c
+++ b/libavcodec/av1dec.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/film_grain_params.h"
 #include "libavutil/pixdesc.h"
 #include "libavutil/opt.h"
diff --git a/libavcodec/binkaudio.c b/libavcodec/binkaudio.c
index f808141ba5..31e15a094e 100644
--- a/libavcodec/binkaudio.c
+++ b/libavcodec/binkaudio.c
@@ -28,6 +28,8 @@
  *  http://wiki.multimedia.cx/index.php?title=Bink_Audio
  */
 
+#include "config_components.h"
+
 #include "libavutil/channel_layout.h"
 #include "libavutil/intfloat.h"
 #include "libavutil/mem_internal.h"
diff --git a/libavcodec/bintext.c b/libavcodec/bintext.c
index 553f020738..d9e95a95b4 100644
--- a/libavcodec/bintext.c
+++ b/libavcodec/bintext.c
@@ -28,6 +28,8 @@
  * iCEDraw File decoder
  */
 
+#include "config_components.h"
+
 #include "libavutil/intreadwrite.h"
 #include "libavutil/xga_font_data.h"
 #include "avcodec.h"
diff --git a/libavcodec/bsf.c b/libavcodec/bsf.c
index 8ba021cb47..60761e6f7d 100644
--- a/libavcodec/bsf.c
+++ b/libavcodec/bsf.c
@@ -19,6 +19,7 @@
 #include <string.h>
 
 #include "config.h"
+#include "config_components.h"
 
 #include "libavutil/avassert.h"
 #include "libavutil/log.h"
diff --git a/libavcodec/cyuv.c b/libavcodec/cyuv.c
index cfaa5cfa66..50aa2322e9 100644
--- a/libavcodec/cyuv.c
+++ b/libavcodec/cyuv.c
@@ -28,6 +28,8 @@
  * Creative YUV (CYUV) Video Decoder.
  */
 
+#include "config_components.h"
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/libavcodec/dxva2_av1.c b/libavcodec/dxva2_av1.c
index 7b4483f855..228f72ba18 100644
--- a/libavcodec/dxva2_av1.c
+++ b/libavcodec/dxva2_av1.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avassert.h"
 #include "libavutil/pixdesc.h"
 
diff --git a/libavcodec/dxva2_h264.c b/libavcodec/dxva2_h264.c
index 5b23b28f12..6300b1418d 100644
--- a/libavcodec/dxva2_h264.c
+++ b/libavcodec/dxva2_h264.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avassert.h"
 
 #include "dxva2_internal.h"
diff --git a/libavcodec/dxva2_hevc.c b/libavcodec/dxva2_hevc.c
index dbb701fb1c..c91bcf3eeb 100644
--- a/libavcodec/dxva2_hevc.c
+++ b/libavcodec/dxva2_hevc.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avassert.h"
 
 #include "dxva2_internal.h"
diff --git a/libavcodec/dxva2_mpeg2.c b/libavcodec/dxva2_mpeg2.c
index 136f5f9e06..1989c588dc 100644
--- a/libavcodec/dxva2_mpeg2.c
+++ b/libavcodec/dxva2_mpeg2.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/log.h"
 
 #include "dxva2_internal.h"
diff --git a/libavcodec/dxva2_vc1.c b/libavcodec/dxva2_vc1.c
index 5fd6957d0c..cf660a50d2 100644
--- a/libavcodec/dxva2_vc1.c
+++ b/libavcodec/dxva2_vc1.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "dxva2_internal.h"
 #include "mpegutils.h"
 #include "mpegvideodec.h"
diff --git a/libavcodec/dxva2_vp9.c b/libavcodec/dxva2_vp9.c
index eaeab3af7a..dbe6c08ad1 100644
--- a/libavcodec/dxva2_vp9.c
+++ b/libavcodec/dxva2_vp9.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avassert.h"
 #include "libavutil/pixdesc.h"
 
diff --git a/libavcodec/flashsv.c b/libavcodec/flashsv.c
index 00f77f4902..25e431ef68 100644
--- a/libavcodec/flashsv.c
+++ b/libavcodec/flashsv.c
@@ -33,6 +33,8 @@
  * downloaded from http://www.adobe.com/devnet/swf.html.
  */
 
+#include "config_components.h"
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <zlib.h>
diff --git a/libavcodec/g726.c b/libavcodec/g726.c
index 2a0148c1d5..3d851970d2 100644
--- a/libavcodec/g726.c
+++ b/libavcodec/g726.c
@@ -21,6 +21,9 @@
  * 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_components.h"
+
 #include <limits.h>
 
 #include "libavutil/channel_layout.h"
diff --git a/libavcodec/gsmdec.c b/libavcodec/gsmdec.c
index c169112311..c0253977af 100644
--- a/libavcodec/gsmdec.c
+++ b/libavcodec/gsmdec.c
@@ -24,6 +24,8 @@
  * GSM decoder
  */
 
+#include "config_components.h"
+
 #include "libavutil/channel_layout.h"
 #include "avcodec.h"
 #include "get_bits.h"
diff --git a/libavcodec/h263dec.c b/libavcodec/h263dec.c
index 423036e97b..399b67d76b 100644
--- a/libavcodec/h263dec.c
+++ b/libavcodec/h263dec.c
@@ -27,6 +27,8 @@
 
 #define UNCHECKED_BITSTREAM_READER 1
 
+#include "config_components.h"
+
 #include "avcodec.h"
 #include "error_resilience.h"
 #include "flvdec.h"
diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c
index 110a41772a..ee84b3764d 100644
--- a/libavcodec/h264_slice.c
+++ b/libavcodec/h264_slice.c
@@ -25,6 +25,8 @@
  * @author Michael Niedermayer <michaelni@gmx.at>
  */
 
+#include "config_components.h"
+
 #include "libavutil/avassert.h"
 #include "libavutil/display.h"
 #include "libavutil/film_grain_params.h"
diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c
index 856fbca680..cc77c3169d 100644
--- a/libavcodec/h264dec.c
+++ b/libavcodec/h264dec.c
@@ -27,6 +27,8 @@
 
 #define UNCHECKED_BITSTREAM_READER 1
 
+#include "config_components.h"
+
 #include "libavutil/avassert.h"
 #include "libavutil/imgutils.h"
 #include "libavutil/opt.h"
diff --git a/libavcodec/hevcdec.c b/libavcodec/hevcdec.c
index 068750ddb6..4f49d95960 100644
--- a/libavcodec/hevcdec.c
+++ b/libavcodec/hevcdec.c
@@ -23,6 +23,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/attributes.h"
 #include "libavutil/common.h"
 #include "libavutil/display.h"
diff --git a/libavcodec/huffyuvdec.c b/libavcodec/huffyuvdec.c
index a5e0ef5818..8dc7864dd0 100644
--- a/libavcodec/huffyuvdec.c
+++ b/libavcodec/huffyuvdec.c
@@ -32,6 +32,8 @@
 
 #define UNCHECKED_BITSTREAM_READER 1
 
+#include "config_components.h"
+
 #include "avcodec.h"
 #include "get_bits.h"
 #include "huffyuv.h"
diff --git a/libavcodec/huffyuvenc.c b/libavcodec/huffyuvenc.c
index 97497a8e75..39a434c720 100644
--- a/libavcodec/huffyuvenc.c
+++ b/libavcodec/huffyuvenc.c
@@ -28,6 +28,8 @@
  * huffyuv encoder
  */
 
+#include "config_components.h"
+
 #include "avcodec.h"
 #include "encode.h"
 #include "huffyuv.h"
diff --git a/libavcodec/idctdsp.c b/libavcodec/idctdsp.c
index fbcec8436c..df3aeb0676 100644
--- a/libavcodec/idctdsp.c
+++ b/libavcodec/idctdsp.c
@@ -17,6 +17,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 #include "libavutil/attributes.h"
 #include "libavutil/common.h"
 #include "avcodec.h"
diff --git a/libavcodec/iff.c b/libavcodec/iff.c
index 1dcf0e00ed..6596130727 100644
--- a/libavcodec/iff.c
+++ b/libavcodec/iff.c
@@ -26,6 +26,8 @@
  * IFF ACBM/ANIM/DEEP/ILBM/PBM/RGB8/RGBN bitmap decoder
  */
 
+#include "config_components.h"
+
 #include <stdint.h>
 
 #include "libavutil/imgutils.h"
diff --git a/libavcodec/imc.c b/libavcodec/imc.c
index 116c273ba0..1d9685313f 100644
--- a/libavcodec/imc.c
+++ b/libavcodec/imc.c
@@ -29,6 +29,7 @@
  *  Only mono is supported.
  */
 
+#include "config_components.h"
 
 #include <math.h>
 #include <stddef.h>
diff --git a/libavcodec/ituh263dec.c b/libavcodec/ituh263dec.c
index 0c9473af56..f01c942f04 100644
--- a/libavcodec/ituh263dec.c
+++ b/libavcodec/ituh263dec.c
@@ -29,6 +29,8 @@
 
 #define UNCHECKED_BITSTREAM_READER 1
 
+#include "config_components.h"
+
 #include "libavutil/attributes.h"
 #include "libavutil/imgutils.h"
 #include "libavutil/internal.h"
diff --git a/libavcodec/ituh263enc.c b/libavcodec/ituh263enc.c
index 8bedecb36e..dc8dd8c9ea 100644
--- a/libavcodec/ituh263enc.c
+++ b/libavcodec/ituh263enc.c
@@ -27,6 +27,8 @@
  * H.263 bitstream encoder.
  */
 
+#include "config_components.h"
+
 #include <limits.h>
 
 #include "libavutil/attributes.h"
diff --git a/libavcodec/lcldec.c b/libavcodec/lcldec.c
index f3b7a8ac1b..b2ef85e5f9 100644
--- a/libavcodec/lcldec.c
+++ b/libavcodec/lcldec.c
@@ -37,6 +37,8 @@
  * Supports: BGR24 (RGB 24bpp)
  */
 
+#include "config_components.h"
+
 #include <stdio.h>
 #include <stdlib.h>
 
diff --git a/libavcodec/libgsmdec.c b/libavcodec/libgsmdec.c
index ae4a952d99..2e6aa037ea 100644
--- a/libavcodec/libgsmdec.c
+++ b/libavcodec/libgsmdec.c
@@ -28,6 +28,7 @@
 // The idiosyncrasies of GSM-in-WAV are explained at http://kbs.cs.tu-berlin.de/~jutta/toast.html
 
 #include "config.h"
+#include "config_components.h"
 #if HAVE_GSM_H
 #include <gsm.h>
 #else
diff --git a/libavcodec/libgsmenc.c b/libavcodec/libgsmenc.c
index a2f6c1c62e..fab6b0cffb 100644
--- a/libavcodec/libgsmenc.c
+++ b/libavcodec/libgsmenc.c
@@ -28,6 +28,7 @@
 // The idiosyncrasies of GSM-in-WAV are explained at http://kbs.cs.tu-berlin.de/~jutta/toast.html
 
 #include "config.h"
+#include "config_components.h"
 #if HAVE_GSM_H
 #include <gsm.h>
 #else
diff --git a/libavcodec/libopencore-amr.c b/libavcodec/libopencore-amr.c
index 2df1c5090f..0d7c449175 100644
--- a/libavcodec/libopencore-amr.c
+++ b/libavcodec/libopencore-amr.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include <inttypes.h>
 
 #include "libavutil/avstring.h"
diff --git a/libavcodec/libvpx.c b/libavcodec/libvpx.c
index cc055a0032..c2b00232d2 100644
--- a/libavcodec/libvpx.c
+++ b/libavcodec/libvpx.c
@@ -21,6 +21,7 @@
 #include <vpx/vpx_codec.h>
 #include "libvpx.h"
 #include "config.h"
+#include "config_components.h"
 
 #if CONFIG_LIBVPX_VP9_ENCODER
 #include <vpx/vpx_encoder.h>
diff --git a/libavcodec/libvpxdec.c b/libavcodec/libvpxdec.c
index b2aa205036..f59a03fc2f 100644
--- a/libavcodec/libvpxdec.c
+++ b/libavcodec/libvpxdec.c
@@ -23,6 +23,8 @@
  * VP8/9 decoder support via libvpx
  */
 
+#include "config_components.h"
+
 #define VPX_CODEC_DISABLE_COMPAT 1
 #include <vpx/vpx_decoder.h>
 #include <vpx/vpx_frame_buffer.h>
diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c
index 8f94ba15dc..77b96a5cde 100644
--- a/libavcodec/libvpxenc.c
+++ b/libavcodec/libvpxenc.c
@@ -23,6 +23,8 @@
  * VP8/9 encoder support via libvpx
  */
 
+#include "config_components.h"
+
 #define VPX_DISABLE_CTRL_TYPECHECKS 1
 #define VPX_CODEC_DISABLE_COMPAT    1
 #include <vpx/vpx_encoder.h>
diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c
index c5e0231b12..b8800db946 100644
--- a/libavcodec/libx264.c
+++ b/libavcodec/libx264.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/eval.h"
 #include "libavutil/internal.h"
 #include "libavutil/opt.h"
diff --git a/libavcodec/me_cmp.c b/libavcodec/me_cmp.c
index b2f87d2e1b..4c1de44eda 100644
--- a/libavcodec/me_cmp.c
+++ b/libavcodec/me_cmp.c
@@ -29,6 +29,7 @@
 #include "me_cmp.h"
 #include "mpegvideoenc.h"
 #include "config.h"
+#include "config_components.h"
 
 /* (i - 256) * (i - 256) */
 const uint32_t ff_square_tab[512] = {
diff --git a/libavcodec/metasound_data.c b/libavcodec/metasound_data.c
index 22b2730dda..b2044364fa 100644
--- a/libavcodec/metasound_data.c
+++ b/libavcodec/metasound_data.c
@@ -20,6 +20,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 #include "metasound_data.h"
 
 #if CONFIG_METASOUND_DECODER
diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c
index 267609d96a..7ff6985bc4 100644
--- a/libavcodec/mjpegdec.c
+++ b/libavcodec/mjpegdec.c
@@ -30,6 +30,8 @@
  * MJPEG decoder.
  */
 
+#include "config_components.h"
+
 #include "libavutil/display.h"
 #include "libavutil/imgutils.h"
 #include "libavutil/avassert.h"
diff --git a/libavcodec/mjpegenc.c b/libavcodec/mjpegenc.c
index 08671b0df7..5290bcf60c 100644
--- a/libavcodec/mjpegenc.c
+++ b/libavcodec/mjpegenc.c
@@ -30,6 +30,8 @@
  * MJPEG encoder.
  */
 
+#include "config_components.h"
+
 #include "libavutil/pixdesc.h"
 
 #include "avcodec.h"
diff --git a/libavcodec/mlpdec.c b/libavcodec/mlpdec.c
index 29fac54542..36f2e9c1ae 100644
--- a/libavcodec/mlpdec.c
+++ b/libavcodec/mlpdec.c
@@ -24,6 +24,8 @@
  * MLP decoder
  */
 
+#include "config_components.h"
+
 #include <stdint.h>
 
 #include "avcodec.h"
diff --git a/libavcodec/mlpenc.c b/libavcodec/mlpenc.c
index d8783b6f56..0552d98d89 100644
--- a/libavcodec/mlpenc.c
+++ b/libavcodec/mlpenc.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "avcodec.h"
 #include "encode.h"
 #include "internal.h"
diff --git a/libavcodec/mpeg12dec.c b/libavcodec/mpeg12dec.c
index 9e4e26aa67..7791dcb5fd 100644
--- a/libavcodec/mpeg12dec.c
+++ b/libavcodec/mpeg12dec.c
@@ -25,6 +25,8 @@
  * MPEG-1/2 decoder
  */
 
+#include "config_components.h"
+
 #define UNCHECKED_BITSTREAM_READER 1
 #include <inttypes.h>
 
diff --git a/libavcodec/mpeg12enc.c b/libavcodec/mpeg12enc.c
index 03692994b5..6110f117c6 100644
--- a/libavcodec/mpeg12enc.c
+++ b/libavcodec/mpeg12enc.c
@@ -28,6 +28,7 @@
 #include <stdint.h>
 
 #include "config.h"
+#include "config_components.h"
 #include "libavutil/attributes.h"
 #include "libavutil/avassert.h"
 #include "libavutil/log.h"
diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c
index 0e0ebb674b..8fb5ec119e 100644
--- a/libavcodec/mpeg4videodec.c
+++ b/libavcodec/mpeg4videodec.c
@@ -22,6 +22,8 @@
 
 #define UNCHECKED_BITSTREAM_READER 1
 
+#include "config_components.h"
+
 #include "libavutil/internal.h"
 #include "libavutil/opt.h"
 #include "libavutil/thread.h"
diff --git a/libavcodec/mpegaudiodec_fixed.c b/libavcodec/mpegaudiodec_fixed.c
index f9f24330fd..ac0b1f3bb3 100644
--- a/libavcodec/mpegaudiodec_fixed.c
+++ b/libavcodec/mpegaudiodec_fixed.c
@@ -19,6 +19,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 #include "libavutil/samplefmt.h"
 
 #define USE_FLOATS 0
diff --git a/libavcodec/mpegaudiodec_float.c b/libavcodec/mpegaudiodec_float.c
index c7b7839997..912e6d189a 100644
--- a/libavcodec/mpegaudiodec_float.c
+++ b/libavcodec/mpegaudiodec_float.c
@@ -20,6 +20,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 #include "libavutil/samplefmt.h"
 
 #define USE_FLOATS 1
diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c
index fc970e9614..3c793bcc22 100644
--- a/libavcodec/mpegvideo.c
+++ b/libavcodec/mpegvideo.c
@@ -27,6 +27,8 @@
  * The simplest mpeg encoder (well, it was the simplest!).
  */
 
+#include "config_components.h"
+
 #include "libavutil/attributes.h"
 #include "libavutil/avassert.h"
 #include "libavutil/imgutils.h"
diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c
index c69114ea15..71c999fab0 100644
--- a/libavcodec/mpegvideo_enc.c
+++ b/libavcodec/mpegvideo_enc.c
@@ -31,6 +31,8 @@
  * The simplest mpeg encoder (well, it was the simplest!).
  */
 
+#include "config_components.h"
+
 #include <stdint.h>
 
 #include "libavutil/internal.h"
diff --git a/libavcodec/mpegvideo_motion.c b/libavcodec/mpegvideo_motion.c
index 876a7375f8..9a450b7c8e 100644
--- a/libavcodec/mpegvideo_motion.c
+++ b/libavcodec/mpegvideo_motion.c
@@ -21,6 +21,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avassert.h"
 #include "libavutil/internal.h"
 #include "libavutil/mem_internal.h"
diff --git a/libavcodec/msmpeg4.c b/libavcodec/msmpeg4.c
index f12586dd64..455436e9c4 100644
--- a/libavcodec/msmpeg4.c
+++ b/libavcodec/msmpeg4.c
@@ -27,6 +27,8 @@
  * MSMPEG4 backend for encoder and decoder
  */
 
+#include "config_components.h"
+
 #include "libavutil/thread.h"
 
 #include "avcodec.h"
diff --git a/libavcodec/msmpeg4dec.c b/libavcodec/msmpeg4dec.c
index 29edd94427..afbeda4fac 100644
--- a/libavcodec/msmpeg4dec.c
+++ b/libavcodec/msmpeg4dec.c
@@ -22,6 +22,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/thread.h"
 
 #include "avcodec.h"
diff --git a/libavcodec/mvcdec.c b/libavcodec/mvcdec.c
index ae5ce4c0d7..410fd95875 100644
--- a/libavcodec/mvcdec.c
+++ b/libavcodec/mvcdec.c
@@ -24,6 +24,8 @@
  * Silicon Graphics Motion Video Compressor 1 & 2 decoder
  */
 
+#include "config_components.h"
+
 #include "libavutil/intreadwrite.h"
 
 #include "avcodec.h"
diff --git a/libavcodec/options.c b/libavcodec/options.c
index bba6078b62..5e396e9f29 100644
--- a/libavcodec/options.c
+++ b/libavcodec/options.c
@@ -24,6 +24,8 @@
  * Options definition for AVCodecContext.
  */
 
+#include "config_components.h"
+
 #include "avcodec.h"
 #include "internal.h"
 #include "libavutil/avassert.h"
diff --git a/libavcodec/opus_pvq.c b/libavcodec/opus_pvq.c
index a4ab7c46eb..750360d737 100644
--- a/libavcodec/opus_pvq.c
+++ b/libavcodec/opus_pvq.c
@@ -23,6 +23,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "opustab.h"
 #include "opus_pvq.h"
 
diff --git a/libavcodec/pcm.c b/libavcodec/pcm.c
index e9b8eab484..e535446765 100644
--- a/libavcodec/pcm.c
+++ b/libavcodec/pcm.c
@@ -25,6 +25,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 #include "libavutil/attributes.h"
 #include "libavutil/float_dsp.h"
 #include "libavutil/thread.h"
diff --git a/libavcodec/pngdec.c b/libavcodec/pngdec.c
index a335a29b08..bd6feeadef 100644
--- a/libavcodec/pngdec.c
+++ b/libavcodec/pngdec.c
@@ -21,6 +21,8 @@
 
 //#define DEBUG
 
+#include "config_components.h"
+
 #include "libavutil/avassert.h"
 #include "libavutil/bprint.h"
 #include "libavutil/crc.h"
diff --git a/libavcodec/pnmdec.c b/libavcodec/pnmdec.c
index 01f9dade1a..57c426b0c9 100644
--- a/libavcodec/pnmdec.c
+++ b/libavcodec/pnmdec.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "avcodec.h"
 #include "internal.h"
 #include "put_bits.h"
diff --git a/libavcodec/pnmenc.c b/libavcodec/pnmenc.c
index 8378f90d08..58337a6499 100644
--- a/libavcodec/pnmenc.c
+++ b/libavcodec/pnmenc.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/intreadwrite.h"
 #include "libavutil/imgutils.h"
 #include "libavutil/pixdesc.h"
diff --git a/libavcodec/proresdec2.c b/libavcodec/proresdec2.c
index 3ab6666f74..e3016df55d 100644
--- a/libavcodec/proresdec2.c
+++ b/libavcodec/proresdec2.c
@@ -28,6 +28,8 @@
 
 #define LONG_BITSTREAM_READER
 
+#include "config_components.h"
+
 #include "libavutil/internal.h"
 #include "libavutil/mem_internal.h"
 
diff --git a/libavcodec/qpeldsp.c b/libavcodec/qpeldsp.c
index 6e52b33657..c1eab6120d 100644
--- a/libavcodec/qpeldsp.c
+++ b/libavcodec/qpeldsp.c
@@ -29,6 +29,7 @@
 #include <stdint.h>
 
 #include "config.h"
+#include "config_components.h"
 #include "libavutil/attributes.h"
 #include "copy_block.h"
 #include "qpeldsp.h"
diff --git a/libavcodec/r210dec.c b/libavcodec/r210dec.c
index 476f1c0680..3acb5e58c7 100644
--- a/libavcodec/r210dec.c
+++ b/libavcodec/r210dec.c
@@ -21,6 +21,7 @@
  */
 
 #include "avcodec.h"
+#include "config_components.h"
 #include "internal.h"
 #include "libavutil/bswap.h"
 #include "libavutil/common.h"
diff --git a/libavcodec/r210enc.c b/libavcodec/r210enc.c
index 7a72ba4695..cd349f3b4f 100644
--- a/libavcodec/r210enc.c
+++ b/libavcodec/r210enc.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "avcodec.h"
 #include "encode.h"
 #include "internal.h"
diff --git a/libavcodec/rv34_parser.c b/libavcodec/rv34_parser.c
index 03469ed0d1..e17bc8562d 100644
--- a/libavcodec/rv34_parser.c
+++ b/libavcodec/rv34_parser.c
@@ -24,6 +24,8 @@
  * RV30/40 parser
  */
 
+#include "config_components.h"
+
 #include "parser.h"
 #include "libavutil/intreadwrite.h"
 
diff --git a/libavcodec/sonic.c b/libavcodec/sonic.c
index cf1cfb1460..560a5fc242 100644
--- a/libavcodec/sonic.c
+++ b/libavcodec/sonic.c
@@ -18,6 +18,9 @@
  * 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_components.h"
+
 #include "avcodec.h"
 #include "encode.h"
 #include "get_bits.h"
diff --git a/libavcodec/sp5xdec.c b/libavcodec/sp5xdec.c
index a1b43f8f80..e17e0d97b9 100644
--- a/libavcodec/sp5xdec.c
+++ b/libavcodec/sp5xdec.c
@@ -24,6 +24,8 @@
  * Sunplus JPEG decoder (SP5X).
  */
 
+#include "config_components.h"
+
 #include "avcodec.h"
 #include "internal.h"
 #include "mjpeg.h"
diff --git a/libavcodec/speedhq.c b/libavcodec/speedhq.c
index fd4ea0d75e..77c5e46e4b 100644
--- a/libavcodec/speedhq.c
+++ b/libavcodec/speedhq.c
@@ -27,6 +27,7 @@
 #define BITSTREAM_READER_LE
 
 #include "config.h"
+#include "config_components.h"
 #include "libavutil/attributes.h"
 #include "libavutil/mem_internal.h"
 
diff --git a/libavcodec/speedhqenc.c b/libavcodec/speedhqenc.c
index e59af7f0d3..cd7b6e1763 100644
--- a/libavcodec/speedhqenc.c
+++ b/libavcodec/speedhqenc.c
@@ -27,6 +27,8 @@
  * SpeedHQ encoder.
  */
 
+#include "config_components.h"
+
 #include "libavutil/thread.h"
 
 #include "avcodec.h"
diff --git a/libavcodec/srtdec.c b/libavcodec/srtdec.c
index 4f16226b83..f7c131ff3d 100644
--- a/libavcodec/srtdec.c
+++ b/libavcodec/srtdec.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avstring.h"
 #include "libavutil/common.h"
 #include "libavutil/intreadwrite.h"
diff --git a/libavcodec/srtenc.c b/libavcodec/srtenc.c
index 2e3ac55770..508770e319 100644
--- a/libavcodec/srtenc.c
+++ b/libavcodec/srtenc.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include <stdarg.h>
 #include "avcodec.h"
 #include "libavutil/avstring.h"
diff --git a/libavcodec/textdec.c b/libavcodec/textdec.c
index 308553660a..420fcd1b14 100644
--- a/libavcodec/textdec.c
+++ b/libavcodec/textdec.c
@@ -23,6 +23,8 @@
  * Raw subtitles decoder
  */
 
+#include "config_components.h"
+
 #include "avcodec.h"
 #include "ass.h"
 #include "internal.h"
diff --git a/libavcodec/v408dec.c b/libavcodec/v408dec.c
index 749b3b65e5..f1b84421b1 100644
--- a/libavcodec/v408dec.c
+++ b/libavcodec/v408dec.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "avcodec.h"
 #include "internal.h"
 
diff --git a/libavcodec/v408enc.c b/libavcodec/v408enc.c
index 31bf48406c..50766772c2 100644
--- a/libavcodec/v408enc.c
+++ b/libavcodec/v408enc.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/intreadwrite.h"
 #include "avcodec.h"
 #include "encode.h"
diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c
index d9939a8ba1..1c92b9d401 100644
--- a/libavcodec/vc1dec.c
+++ b/libavcodec/vc1dec.c
@@ -26,6 +26,8 @@
  * VC-1 and WMV3 decoder
  */
 
+#include "config_components.h"
+
 #include "avcodec.h"
 #include "blockdsp.h"
 #include "get_bits.h"
diff --git a/libavcodec/vc1dsp.c b/libavcodec/vc1dsp.c
index 04fc8b12f3..a29b91bf3d 100644
--- a/libavcodec/vc1dsp.c
+++ b/libavcodec/vc1dsp.c
@@ -24,6 +24,8 @@
  * VC-1 and WMV3 decoder
  */
 
+#include "config_components.h"
+
 #include "libavutil/avassert.h"
 #include "libavutil/common.h"
 #include "libavutil/intreadwrite.h"
diff --git a/libavcodec/videotoolbox.c b/libavcodec/videotoolbox.c
index 29c781cda4..9083f6ff29 100644
--- a/libavcodec/videotoolbox.c
+++ b/libavcodec/videotoolbox.c
@@ -21,6 +21,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 #include "videotoolbox.h"
 #include "libavutil/hwcontext_videotoolbox.h"
 #include "vt_internal.h"
diff --git a/libavcodec/vorbis_parser.c b/libavcodec/vorbis_parser.c
index 194ae13da3..a7d15d4ce9 100644
--- a/libavcodec/vorbis_parser.c
+++ b/libavcodec/vorbis_parser.c
@@ -25,6 +25,8 @@
  * Determines the duration for each packet.
  */
 
+#include "config_components.h"
+
 #include "libavutil/log.h"
 
 #include "get_bits.h"
diff --git a/libavcodec/vp3.c b/libavcodec/vp3.c
index e2418eb6fa..64532a70db 100644
--- a/libavcodec/vp3.c
+++ b/libavcodec/vp3.c
@@ -30,6 +30,8 @@
  * Theora decoder by Alex Beregszaszi
  */
 
+#include "config_components.h"
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/libavcodec/vp56dsp.c b/libavcodec/vp56dsp.c
index de6803e0fb..d368e3292d 100644
--- a/libavcodec/vp56dsp.c
+++ b/libavcodec/vp56dsp.c
@@ -22,6 +22,7 @@
 #include <stdint.h>
 
 #include "config.h"
+#include "config_components.h"
 #include "libavutil/attributes.h"
 #include "vp56dsp.h"
 #include "libavutil/common.h"
diff --git a/libavcodec/vp8.c b/libavcodec/vp8.c
index d779804e64..08338bc247 100644
--- a/libavcodec/vp8.c
+++ b/libavcodec/vp8.c
@@ -24,6 +24,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/imgutils.h"
 #include "libavutil/mem_internal.h"
 
diff --git a/libavcodec/vp8dsp.c b/libavcodec/vp8dsp.c
index 732a483b62..23f49b2c25 100644
--- a/libavcodec/vp8dsp.c
+++ b/libavcodec/vp8dsp.c
@@ -25,6 +25,8 @@
  * VP8 compatible video decoder
  */
 
+#include "config_components.h"
+
 #include "libavutil/common.h"
 #include "libavutil/intreadwrite.h"
 
diff --git a/libavcodec/vp9.c b/libavcodec/vp9.c
index 7ef10f7a80..5da1b8a72e 100644
--- a/libavcodec/vp9.c
+++ b/libavcodec/vp9.c
@@ -21,6 +21,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "avcodec.h"
 #include "get_bits.h"
 #include "hwconfig.h"
diff --git a/libavcodec/wmadec.c b/libavcodec/wmadec.c
index 9955aaa7d6..a27eb368e8 100644
--- a/libavcodec/wmadec.c
+++ b/libavcodec/wmadec.c
@@ -33,6 +33,8 @@
  * should be 4 extra bytes for v1 data and 6 extra bytes for v2 data.
  */
 
+#include "config_components.h"
+
 #include "libavutil/attributes.h"
 #include "libavutil/ffmath.h"
 
diff --git a/libavcodec/wmaenc.c b/libavcodec/wmaenc.c
index 66e3537cb0..7bd89556ea 100644
--- a/libavcodec/wmaenc.c
+++ b/libavcodec/wmaenc.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/attributes.h"
 #include "libavutil/ffmath.h"
 
diff --git a/libavcodec/x86/flacdsp_init.c b/libavcodec/x86/flacdsp_init.c
index 6315b6903e..ed2e5ed15b 100644
--- a/libavcodec/x86/flacdsp_init.c
+++ b/libavcodec/x86/flacdsp_init.c
@@ -22,6 +22,7 @@
 #include "libavcodec/flacdsp.h"
 #include "libavutil/x86/cpu.h"
 #include "config.h"
+#include "config_components.h"
 
 void ff_flac_lpc_32_sse4(int32_t *samples, const int coeffs[32], int order,
                          int qlevel, int len);
diff --git a/libavcodec/x86/hpeldsp_init.c b/libavcodec/x86/hpeldsp_init.c
index d89928cec6..6336587281 100644
--- a/libavcodec/x86/hpeldsp_init.c
+++ b/libavcodec/x86/hpeldsp_init.c
@@ -22,6 +22,8 @@
  * MMX optimization by Nick Kurshev <nickols_k@mail.ru>
  */
 
+#include "config_components.h"
+
 #include "libavutil/attributes.h"
 #include "libavutil/cpu.h"
 #include "libavutil/x86/cpu.h"
diff --git a/libavfilter/aeval.c b/libavfilter/aeval.c
index 42cfa81325..3717d9057a 100644
--- a/libavfilter/aeval.c
+++ b/libavfilter/aeval.c
@@ -23,6 +23,8 @@
  * eval audio source
  */
 
+#include "config_components.h"
+
 #include "libavutil/avstring.h"
 #include "libavutil/channel_layout.h"
 #include "libavutil/eval.h"
diff --git a/libavfilter/af_afade.c b/libavfilter/af_afade.c
index c57709050e..5f12b1da43 100644
--- a/libavfilter/af_afade.c
+++ b/libavfilter/af_afade.c
@@ -23,6 +23,8 @@
  * fade audio filter
  */
 
+#include "config_components.h"
+
 #include "libavutil/opt.h"
 #include "audio.h"
 #include "avfilter.h"
diff --git a/libavfilter/af_agate.c b/libavfilter/af_agate.c
index 682f17c7dd..00990056cc 100644
--- a/libavfilter/af_agate.c
+++ b/libavfilter/af_agate.c
@@ -23,6 +23,8 @@
  * Audio (Sidechain) Gate filter
  */
 
+#include "config_components.h"
+
 #include "libavutil/audio_fifo.h"
 #include "libavutil/channel_layout.h"
 #include "libavutil/opt.h"
diff --git a/libavfilter/af_biquads.c b/libavfilter/af_biquads.c
index ee42b2a034..0da2643a3b 100644
--- a/libavfilter/af_biquads.c
+++ b/libavfilter/af_biquads.c
@@ -62,6 +62,8 @@
  *               V
  */
 
+#include "config_components.h"
+
 #include "libavutil/avassert.h"
 #include "libavutil/channel_layout.h"
 #include "libavutil/ffmath.h"
diff --git a/libavfilter/af_sidechaincompress.c b/libavfilter/af_sidechaincompress.c
index c0ce82066b..f2bb55bc97 100644
--- a/libavfilter/af_sidechaincompress.c
+++ b/libavfilter/af_sidechaincompress.c
@@ -24,6 +24,8 @@
  * Audio (Sidechain) Compressor filter
  */
 
+#include "config_components.h"
+
 #include "libavutil/audio_fifo.h"
 #include "libavutil/channel_layout.h"
 #include "libavutil/common.h"
diff --git a/libavfilter/avf_showspectrum.c b/libavfilter/avf_showspectrum.c
index 610dc98c93..402868b5bb 100644
--- a/libavfilter/avf_showspectrum.c
+++ b/libavfilter/avf_showspectrum.c
@@ -26,6 +26,8 @@
  * (by Michael Niedermayer) and lavfi/avf_showwaves (by Stefano Sabatini).
  */
 
+#include "config_components.h"
+
 #include <float.h>
 #include <math.h>
 
diff --git a/libavfilter/avf_showwaves.c b/libavfilter/avf_showwaves.c
index 853f6bbdcb..cd9c96486c 100644
--- a/libavfilter/avf_showwaves.c
+++ b/libavfilter/avf_showwaves.c
@@ -23,6 +23,8 @@
  * audio to video multimedia filter
  */
 
+#include "config_components.h"
+
 #include "libavutil/avassert.h"
 #include "libavutil/avstring.h"
 #include "libavutil/channel_layout.h"
diff --git a/libavfilter/f_bench.c b/libavfilter/f_bench.c
index 109a530d7c..9b55194dbc 100644
--- a/libavfilter/f_bench.c
+++ b/libavfilter/f_bench.c
@@ -16,6 +16,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/opt.h"
 #include "libavutil/time.h"
 #include "avfilter.h"
diff --git a/libavfilter/f_cue.c b/libavfilter/f_cue.c
index d90fe54b9a..9a1b7c03b8 100644
--- a/libavfilter/f_cue.c
+++ b/libavfilter/f_cue.c
@@ -18,6 +18,8 @@
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/opt.h"
 #include "libavutil/time.h"
 #include "avfilter.h"
diff --git a/libavfilter/f_drawgraph.c b/libavfilter/f_drawgraph.c
index b6fcb3b75e..000255fc52 100644
--- a/libavfilter/f_drawgraph.c
+++ b/libavfilter/f_drawgraph.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "float.h"
 
 #include "libavutil/avstring.h"
diff --git a/libavfilter/f_graphmonitor.c b/libavfilter/f_graphmonitor.c
index 9cc5ea940e..e6a7c08360 100644
--- a/libavfilter/f_graphmonitor.c
+++ b/libavfilter/f_graphmonitor.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "float.h"
 
 #include "libavutil/pixdesc.h"
diff --git a/libavfilter/f_interleave.c b/libavfilter/f_interleave.c
index b60e89762f..74597a0ec6 100644
--- a/libavfilter/f_interleave.c
+++ b/libavfilter/f_interleave.c
@@ -23,6 +23,8 @@
  * audio and video interleaver
  */
 
+#include "config_components.h"
+
 #include "libavutil/avassert.h"
 #include "libavutil/avstring.h"
 #include "libavutil/opt.h"
diff --git a/libavfilter/f_latency.c b/libavfilter/f_latency.c
index 6f16d6677e..f04fd726f2 100644
--- a/libavfilter/f_latency.c
+++ b/libavfilter/f_latency.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/opt.h"
 #include "avfilter.h"
 #include "filters.h"
diff --git a/libavfilter/f_loop.c b/libavfilter/f_loop.c
index f8ae4a6a3a..fff503776d 100644
--- a/libavfilter/f_loop.c
+++ b/libavfilter/f_loop.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/audio_fifo.h"
 #include "libavutil/fifo.h"
 #include "libavutil/internal.h"
diff --git a/libavfilter/f_metadata.c b/libavfilter/f_metadata.c
index 5f5091e9b7..82491f2bb8 100644
--- a/libavfilter/f_metadata.c
+++ b/libavfilter/f_metadata.c
@@ -23,6 +23,8 @@
  * filter for manipulating frame metadata
  */
 
+#include "config_components.h"
+
 #include <float.h>
 
 #include "libavutil/avassert.h"
diff --git a/libavfilter/f_perms.c b/libavfilter/f_perms.c
index 5e2f4ecdf4..e26a15fd06 100644
--- a/libavfilter/f_perms.c
+++ b/libavfilter/f_perms.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/lfg.h"
 #include "libavutil/opt.h"
 #include "libavutil/random_seed.h"
diff --git a/libavfilter/f_realtime.c b/libavfilter/f_realtime.c
index 9a60ded0ca..78da5dc3a7 100644
--- a/libavfilter/f_realtime.c
+++ b/libavfilter/f_realtime.c
@@ -18,6 +18,8 @@
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/opt.h"
 #include "libavutil/time.h"
 #include "avfilter.h"
diff --git a/libavfilter/f_reverse.c b/libavfilter/f_reverse.c
index f7a7e716fa..813a32d0e9 100644
--- a/libavfilter/f_reverse.c
+++ b/libavfilter/f_reverse.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/opt.h"
 #include "avfilter.h"
 #include "formats.h"
diff --git a/libavfilter/f_segment.c b/libavfilter/f_segment.c
index dd94eb9360..03a071a05b 100644
--- a/libavfilter/f_segment.c
+++ b/libavfilter/f_segment.c
@@ -16,6 +16,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include <stdint.h>
 
 #include "libavutil/avstring.h"
diff --git a/libavfilter/f_select.c b/libavfilter/f_select.c
index b61d88f4fe..1cfe2d59e5 100644
--- a/libavfilter/f_select.c
+++ b/libavfilter/f_select.c
@@ -23,6 +23,8 @@
  * filter for selecting which frame passes in the filterchain
  */
 
+#include "config_components.h"
+
 #include "libavutil/avstring.h"
 #include "libavutil/eval.h"
 #include "libavutil/fifo.h"
diff --git a/libavfilter/f_sendcmd.c b/libavfilter/f_sendcmd.c
index 04bfc84a06..857b841313 100644
--- a/libavfilter/f_sendcmd.c
+++ b/libavfilter/f_sendcmd.c
@@ -23,6 +23,8 @@
  * send commands filter
  */
 
+#include "config_components.h"
+
 #include "libavutil/avstring.h"
 #include "libavutil/bprint.h"
 #include "libavutil/eval.h"
diff --git a/libavfilter/f_sidedata.c b/libavfilter/f_sidedata.c
index 8eccd4a06e..82bbaa0e7e 100644
--- a/libavfilter/f_sidedata.c
+++ b/libavfilter/f_sidedata.c
@@ -21,6 +21,8 @@
  * filter for manipulating frame side data
  */
 
+#include "config_components.h"
+
 #include "libavutil/avassert.h"
 #include "libavutil/internal.h"
 #include "libavutil/frame.h"
diff --git a/libavfilter/lut3d.h b/libavfilter/lut3d.h
index bc32eac91c..97cd413233 100644
--- a/libavfilter/lut3d.h
+++ b/libavfilter/lut3d.h
@@ -21,6 +21,8 @@
 #ifndef AVFILTER_LUT3D_H
 #define AVFILTER_LUT3D_H
 
+#include "config_components.h"
+
 #include "libavutil/pixdesc.h"
 #include "framesync.h"
 #include "avfilter.h"
diff --git a/libavfilter/setpts.c b/libavfilter/setpts.c
index 054feb05f1..171fae88c0 100644
--- a/libavfilter/setpts.c
+++ b/libavfilter/setpts.c
@@ -24,6 +24,8 @@
  * video presentation timestamp (PTS) modification filter
  */
 
+#include "config_components.h"
+
 #include <inttypes.h>
 
 #include "libavutil/eval.h"
diff --git a/libavfilter/settb.c b/libavfilter/settb.c
index 67d310afbd..5f589004f8 100644
--- a/libavfilter/settb.c
+++ b/libavfilter/settb.c
@@ -23,6 +23,8 @@
  * Set timebase for the output link.
  */
 
+#include "config_components.h"
+
 #include <inttypes.h>
 #include <stdio.h>
 
diff --git a/libavfilter/src_movie.c b/libavfilter/src_movie.c
index b89a680883..86b304213b 100644
--- a/libavfilter/src_movie.c
+++ b/libavfilter/src_movie.c
@@ -27,6 +27,8 @@
  * @todo support a PTS correction mechanism
  */
 
+#include "config_components.h"
+
 #include <float.h>
 #include <stdint.h>
 
diff --git a/libavfilter/trim.c b/libavfilter/trim.c
index e627903c64..06c50cd91a 100644
--- a/libavfilter/trim.c
+++ b/libavfilter/trim.c
@@ -19,6 +19,7 @@
 #include <stdint.h>
 
 #include "config.h"
+#include "config_components.h"
 
 #include "libavutil/channel_layout.h"
 #include "libavutil/common.h"
diff --git a/libavfilter/vf_aspect.c b/libavfilter/vf_aspect.c
index 2d1eaa954b..0a10a5a176 100644
--- a/libavfilter/vf_aspect.c
+++ b/libavfilter/vf_aspect.c
@@ -23,6 +23,8 @@
  * aspect ratio modification video filters
  */
 
+#include "config_components.h"
+
 #include <float.h>
 
 #include "libavutil/common.h"
diff --git a/libavfilter/vf_blend.c b/libavfilter/vf_blend.c
index 2d433e439f..c882086c51 100644
--- a/libavfilter/vf_blend.c
+++ b/libavfilter/vf_blend.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/imgutils.h"
 #include "libavutil/intfloat.h"
 #include "libavutil/eval.h"
diff --git a/libavfilter/vf_colorconstancy.c b/libavfilter/vf_colorconstancy.c
index ba6359462e..db7e20df53 100644
--- a/libavfilter/vf_colorconstancy.c
+++ b/libavfilter/vf_colorconstancy.c
@@ -28,6 +28,8 @@
  * J. van de Weijer, Th. Gevers, A. Gijsenij "Edge-Based Color Constancy".
  */
 
+#include "config_components.h"
+
 #include "libavutil/imgutils.h"
 #include "libavutil/opt.h"
 #include "libavutil/pixdesc.h"
diff --git a/libavfilter/vf_colorkey.c b/libavfilter/vf_colorkey.c
index ed43722c03..96e0f12878 100644
--- a/libavfilter/vf_colorkey.c
+++ b/libavfilter/vf_colorkey.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/opt.h"
 #include "libavutil/imgutils.h"
 #include "avfilter.h"
diff --git a/libavfilter/vf_convolution.c b/libavfilter/vf_convolution.c
index 6e6fe0d887..9a9c099e6d 100644
--- a/libavfilter/vf_convolution.c
+++ b/libavfilter/vf_convolution.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avstring.h"
 #include "libavutil/imgutils.h"
 #include "libavutil/intreadwrite.h"
diff --git a/libavfilter/vf_convolve.c b/libavfilter/vf_convolve.c
index 55afb582b4..a61a32f007 100644
--- a/libavfilter/vf_convolve.c
+++ b/libavfilter/vf_convolve.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include <float.h>
 
 #include "libavutil/imgutils.h"
diff --git a/libavfilter/vf_drawbox.c b/libavfilter/vf_drawbox.c
index 919652e50f..f1da075fe2 100644
--- a/libavfilter/vf_drawbox.c
+++ b/libavfilter/vf_drawbox.c
@@ -25,6 +25,8 @@
  * that needs to write in the input frame.
  */
 
+#include "config_components.h"
+
 #include "libavutil/colorspace.h"
 #include "libavutil/common.h"
 #include "libavutil/opt.h"
diff --git a/libavfilter/vf_extractplanes.c b/libavfilter/vf_extractplanes.c
index 0b26d92269..60b55578cf 100644
--- a/libavfilter/vf_extractplanes.c
+++ b/libavfilter/vf_extractplanes.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avstring.h"
 #include "libavutil/imgutils.h"
 #include "libavutil/opt.h"
diff --git a/libavfilter/vf_format.c b/libavfilter/vf_format.c
index c78acbf87b..24b1c9ca61 100644
--- a/libavfilter/vf_format.c
+++ b/libavfilter/vf_format.c
@@ -23,6 +23,8 @@
  * format and noformat video filters
  */
 
+#include "config_components.h"
+
 #include <string.h>
 
 #include "libavutil/internal.h"
diff --git a/libavfilter/vf_histogram.c b/libavfilter/vf_histogram.c
index bf80b2c4fc..ced7cda6f4 100644
--- a/libavfilter/vf_histogram.c
+++ b/libavfilter/vf_histogram.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/colorspace.h"
 #include "libavutil/opt.h"
 #include "libavutil/parseutils.h"
diff --git a/libavfilter/vf_identity.c b/libavfilter/vf_identity.c
index cc30761388..84def7959b 100644
--- a/libavfilter/vf_identity.c
+++ b/libavfilter/vf_identity.c
@@ -23,6 +23,8 @@
  * Calculate the Identity between two input videos.
  */
 
+#include "config_components.h"
+
 #include "libavutil/avstring.h"
 #include "libavutil/opt.h"
 #include "libavutil/pixdesc.h"
diff --git a/libavfilter/vf_lut.c b/libavfilter/vf_lut.c
index fd5b364797..621291cdad 100644
--- a/libavfilter/vf_lut.c
+++ b/libavfilter/vf_lut.c
@@ -24,6 +24,8 @@
  * value, and apply it to input video.
  */
 
+#include "config_components.h"
+
 #include "libavutil/attributes.h"
 #include "libavutil/bswap.h"
 #include "libavutil/common.h"
diff --git a/libavfilter/vf_lut2.c b/libavfilter/vf_lut2.c
index 868c0496fa..49755544b0 100644
--- a/libavfilter/vf_lut2.c
+++ b/libavfilter/vf_lut2.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/attributes.h"
 #include "libavutil/common.h"
 #include "libavutil/eval.h"
diff --git a/libavfilter/vf_mix.c b/libavfilter/vf_mix.c
index 8206517579..c04504bba0 100644
--- a/libavfilter/vf_mix.c
+++ b/libavfilter/vf_mix.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avstring.h"
 #include "libavutil/imgutils.h"
 #include "libavutil/intreadwrite.h"
diff --git a/libavfilter/vf_neighbor.c b/libavfilter/vf_neighbor.c
index f48fb306b2..d6638779e5 100644
--- a/libavfilter/vf_neighbor.c
+++ b/libavfilter/vf_neighbor.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/imgutils.h"
 #include "libavutil/intreadwrite.h"
 #include "libavutil/pixdesc.h"
diff --git a/libavfilter/vf_premultiply.c b/libavfilter/vf_premultiply.c
index 4b60de7b7b..e077d46a9a 100644
--- a/libavfilter/vf_premultiply.c
+++ b/libavfilter/vf_premultiply.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/imgutils.h"
 #include "libavutil/pixdesc.h"
 #include "libavutil/opt.h"
diff --git a/libavfilter/vf_setparams.c b/libavfilter/vf_setparams.c
index b3893adc13..95a2d15c02 100644
--- a/libavfilter/vf_setparams.c
+++ b/libavfilter/vf_setparams.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/pixfmt.h"
 #include "libavutil/opt.h"
 #include "avfilter.h"
diff --git a/libavfilter/vf_stack.c b/libavfilter/vf_stack.c
index f584e8349b..aa32a1bf5e 100644
--- a/libavfilter/vf_stack.c
+++ b/libavfilter/vf_stack.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avstring.h"
 #include "libavutil/imgutils.h"
 #include "libavutil/opt.h"
diff --git a/libavfilter/vf_xmedian.c b/libavfilter/vf_xmedian.c
index 148ab555bb..155e464ba6 100644
--- a/libavfilter/vf_xmedian.c
+++ b/libavfilter/vf_xmedian.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avstring.h"
 #include "libavutil/imgutils.h"
 #include "libavutil/intreadwrite.h"
diff --git a/libavfilter/vsrc_testsrc.c b/libavfilter/vsrc_testsrc.c
index 20b915d472..f859cf2f48 100644
--- a/libavfilter/vsrc_testsrc.c
+++ b/libavfilter/vsrc_testsrc.c
@@ -33,6 +33,8 @@
  * allyuv, smptebars and smptehdbars are by Paul B Mahol.
  */
 
+#include "config_components.h"
+
 #include <float.h>
 
 #include "libavutil/avassert.h"
diff --git a/libavformat/ac3dec.c b/libavformat/ac3dec.c
index ad9b65a9be..51461befd8 100644
--- a/libavformat/ac3dec.c
+++ b/libavformat/ac3dec.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avassert.h"
 #include "libavutil/crc.h"
 #include "libavcodec/ac3_parser.h"
diff --git a/libavformat/alp.c b/libavformat/alp.c
index f46bdb4511..d4a8db240e 100644
--- a/libavformat/alp.c
+++ b/libavformat/alp.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/channel_layout.h"
 #include "avformat.h"
 #include "internal.h"
diff --git a/libavformat/amr.c b/libavformat/amr.c
index bc22c2f84f..c366b8f1b0 100644
--- a/libavformat/amr.c
+++ b/libavformat/amr.c
@@ -23,6 +23,8 @@
 Write and read amr data according to RFC3267, http://www.ietf.org/rfc/rfc3267.txt?number=3267
 */
 
+#include "config_components.h"
+
 #include "libavutil/channel_layout.h"
 #include "libavutil/intreadwrite.h"
 #include "avformat.h"
diff --git a/libavformat/apm.c b/libavformat/apm.c
index 1ced771745..7bf399f663 100644
--- a/libavformat/apm.c
+++ b/libavformat/apm.c
@@ -19,6 +19,9 @@
  * 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_components.h"
+
 #include "avformat.h"
 #include "internal.h"
 #include "rawenc.h"
diff --git a/libavformat/aptxdec.c b/libavformat/aptxdec.c
index 7153e262a1..0fa5051785 100644
--- a/libavformat/aptxdec.c
+++ b/libavformat/aptxdec.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/opt.h"
 #include "avformat.h"
 
diff --git a/libavformat/argo_asf.c b/libavformat/argo_asf.c
index d26844d1e2..edf005c69d 100644
--- a/libavformat/argo_asf.c
+++ b/libavformat/argo_asf.c
@@ -19,6 +19,9 @@
  * 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_components.h"
+
 #include "libavutil/avstring.h"
 #include "avformat.h"
 #include "internal.h"
diff --git a/libavformat/argo_cvg.c b/libavformat/argo_cvg.c
index dfdf126c17..deca57a322 100644
--- a/libavformat/argo_cvg.c
+++ b/libavformat/argo_cvg.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avstring.h"
 #include "libavutil/channel_layout.h"
 #include "avformat.h"
diff --git a/libavformat/asfenc.c b/libavformat/asfenc.c
index 041019b186..5b34f98a2b 100644
--- a/libavformat/asfenc.c
+++ b/libavformat/asfenc.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avassert.h"
 #include "libavutil/dict.h"
 #include "libavutil/mathematics.h"
diff --git a/libavformat/au.c b/libavformat/au.c
index 9bd408f65c..4d5671f181 100644
--- a/libavformat/au.c
+++ b/libavformat/au.c
@@ -27,6 +27,8 @@
  * http://www.goice.co.jp/member/mo/formats/au.html
  */
 
+#include "config_components.h"
+
 #include "libavutil/bprint.h"
 #include "avformat.h"
 #include "internal.h"
diff --git a/libavformat/av1dec.c b/libavformat/av1dec.c
index 6e1c2a45ff..350f5360d5 100644
--- a/libavformat/av1dec.c
+++ b/libavformat/av1dec.c
@@ -20,6 +20,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 
 #include "libavutil/common.h"
 #include "libavutil/opt.h"
diff --git a/libavformat/avidec.c b/libavformat/avidec.c
index 455dce0733..3c749aec14 100644
--- a/libavformat/avidec.c
+++ b/libavformat/avidec.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include <inttypes.h>
 
 #include "libavutil/avassert.h"
diff --git a/libavformat/avienc.c b/libavformat/avienc.c
index be2493ce55..e36e88335f 100644
--- a/libavformat/avienc.c
+++ b/libavformat/avienc.c
@@ -25,6 +25,7 @@
 #include "internal.h"
 #include "avi.h"
 #include "avio_internal.h"
+#include "config_components.h"
 #include "riff.h"
 #include "mpegts.h"
 #include "libavformat/avlanguage.h"
diff --git a/libavformat/bintext.c b/libavformat/bintext.c
index 1270c7fb2c..0465b86f4b 100644
--- a/libavformat/bintext.c
+++ b/libavformat/bintext.c
@@ -30,6 +30,8 @@
  * iCEDraw File demuxer
  */
 
+#include "config_components.h"
+
 #include "libavutil/intreadwrite.h"
 #include "libavutil/opt.h"
 #include "libavutil/parseutils.h"
diff --git a/libavformat/bit.c b/libavformat/bit.c
index 380cbd37cd..b1dc237dce 100644
--- a/libavformat/bit.c
+++ b/libavformat/bit.c
@@ -18,6 +18,9 @@
  * 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_components.h"
+
 #include "avformat.h"
 #include "internal.h"
 #include "libavcodec/get_bits.h"
diff --git a/libavformat/codec2.c b/libavformat/codec2.c
index 0b992836b3..b10b5c34c4 100644
--- a/libavformat/codec2.c
+++ b/libavformat/codec2.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include <memory.h>
 #include "libavcodec/codec2utils.h"
 #include "libavutil/channel_layout.h"
diff --git a/libavformat/concat.c b/libavformat/concat.c
index faeba2293a..dc0985e40c 100644
--- a/libavformat/concat.c
+++ b/libavformat/concat.c
@@ -21,6 +21,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avstring.h"
 #include "libavutil/bprint.h"
 #include "libavutil/mem.h"
diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c
index 4709bc6615..1bd5aac956 100644
--- a/libavformat/dashenc.c
+++ b/libavformat/dashenc.c
@@ -21,6 +21,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 #if HAVE_UNISTD_H
 #include <unistd.h>
 #endif
diff --git a/libavformat/demux.c b/libavformat/demux.c
index ec34b65288..1fdee84933 100644
--- a/libavformat/demux.c
+++ b/libavformat/demux.c
@@ -22,6 +22,7 @@
 #include <stdint.h>
 
 #include "config.h"
+#include "config_components.h"
 
 #include "libavutil/avassert.h"
 #include "libavutil/avstring.h"
diff --git a/libavformat/file.c b/libavformat/file.c
index 7001750c80..063d7c5aa2 100644
--- a/libavformat/file.c
+++ b/libavformat/file.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avstring.h"
 #include "libavutil/internal.h"
 #include "libavutil/opt.h"
diff --git a/libavformat/format.c b/libavformat/format.c
index 52b85c16a2..5f8155be59 100644
--- a/libavformat/format.c
+++ b/libavformat/format.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avstring.h"
 #include "libavutil/bprint.h"
 #include "libavutil/opt.h"
diff --git a/libavformat/g726.c b/libavformat/g726.c
index 4b08d0a9f7..e64e54114c 100644
--- a/libavformat/g726.c
+++ b/libavformat/g726.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "avformat.h"
 #include "internal.h"
 #include "libavutil/opt.h"
diff --git a/libavformat/gopher.c b/libavformat/gopher.c
index 9bbe171640..9497ffacf2 100644
--- a/libavformat/gopher.c
+++ b/libavformat/gopher.c
@@ -24,6 +24,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 
 #include "libavutil/avstring.h"
 #include "avformat.h"
diff --git a/libavformat/hashenc.c b/libavformat/hashenc.c
index 622491d2e5..1aaba0b306 100644
--- a/libavformat/hashenc.c
+++ b/libavformat/hashenc.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avstring.h"
 #include "libavutil/hash.h"
 #include "libavutil/intreadwrite.h"
diff --git a/libavformat/hls.c b/libavformat/hls.c
index 06bc46c23f..cf6ef9dfb6 100644
--- a/libavformat/hls.c
+++ b/libavformat/hls.c
@@ -27,6 +27,8 @@
  * https://www.rfc-editor.org/rfc/rfc8216.txt
  */
 
+#include "config_components.h"
+
 #include "libavformat/http.h"
 #include "libavutil/avstring.h"
 #include "libavutil/avassert.h"
diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
index ef8973cea1..14eb7c4530 100644
--- a/libavformat/hlsenc.c
+++ b/libavformat/hlsenc.c
@@ -21,6 +21,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 #include <float.h>
 #include <stdint.h>
 #if HAVE_UNISTD_H
diff --git a/libavformat/http.c b/libavformat/http.c
index c79db955e8..c4eeb58cd0 100644
--- a/libavformat/http.c
+++ b/libavformat/http.c
@@ -20,6 +20,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 
 #if CONFIG_ZLIB
 #include <zlib.h>
diff --git a/libavformat/ilbc.c b/libavformat/ilbc.c
index 0cbdd3d5b8..b2ac8159a6 100644
--- a/libavformat/ilbc.c
+++ b/libavformat/ilbc.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "avformat.h"
 #include "internal.h"
 #include "rawenc.h"
diff --git a/libavformat/img2dec.c b/libavformat/img2dec.c
index 8608252d83..b9c06c5b54 100644
--- a/libavformat/img2dec.c
+++ b/libavformat/img2dec.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #define _DEFAULT_SOURCE
 #define _BSD_SOURCE
 #include <sys/stat.h>
diff --git a/libavformat/img2enc.c b/libavformat/img2enc.c
index ded91d6b98..9b3b8741c8 100644
--- a/libavformat/img2enc.c
+++ b/libavformat/img2enc.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/intreadwrite.h"
 #include "libavutil/avstring.h"
 #include "libavutil/dict.h"
diff --git a/libavformat/kvag.c b/libavformat/kvag.c
index a277c28128..3df2c4f670 100644
--- a/libavformat/kvag.c
+++ b/libavformat/kvag.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/channel_layout.h"
 #include "avformat.h"
 #include "avio_internal.h"
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index 95e49cbe7f..53cd538580 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -29,6 +29,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 
 #include <inttypes.h>
 #include <stdio.h>
diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
index e8df5db3bd..93c969bf03 100644
--- a/libavformat/matroskaenc.c
+++ b/libavformat/matroskaenc.c
@@ -22,6 +22,7 @@
 #include <stdint.h>
 
 #include "config.h"
+#include "config_components.h"
 
 #include "av1.h"
 #include "avc.h"
diff --git a/libavformat/mj2kdec.c b/libavformat/mj2kdec.c
index 703ff91efb..2373f31b94 100644
--- a/libavformat/mj2kdec.c
+++ b/libavformat/mj2kdec.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/intreadwrite.h"
 #include "avformat.h"
 #include "rawdec.h"
diff --git a/libavformat/mlpdec.c b/libavformat/mlpdec.c
index f0996fef31..4834f697f3 100644
--- a/libavformat/mlpdec.c
+++ b/libavformat/mlpdec.c
@@ -21,6 +21,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "avformat.h"
 #include "avio_internal.h"
 #include "internal.h"
diff --git a/libavformat/mmf.c b/libavformat/mmf.c
index e836390bff..2db91febb5 100644
--- a/libavformat/mmf.c
+++ b/libavformat/mmf.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/channel_layout.h"
 #include "avformat.h"
 #include "avio_internal.h"
diff --git a/libavformat/mov.c b/libavformat/mov.c
index a842bf4464..5984b73050 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -23,6 +23,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include <inttypes.h>
 #include <limits.h>
 #include <stdint.h>
diff --git a/libavformat/movenc.c b/libavformat/movenc.c
index 14482abe8d..893deceb1b 100644
--- a/libavformat/movenc.c
+++ b/libavformat/movenc.c
@@ -21,6 +21,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include <stdint.h>
 #include <inttypes.h>
 
diff --git a/libavformat/mpeg.c b/libavformat/mpeg.c
index ca15d9f241..7eb24cd5c2 100644
--- a/libavformat/mpeg.c
+++ b/libavformat/mpeg.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/channel_layout.h"
 #include "avformat.h"
 #include "avio_internal.h"
diff --git a/libavformat/mpegenc.c b/libavformat/mpegenc.c
index 64248695bd..79fd6b28b0 100644
--- a/libavformat/mpegenc.c
+++ b/libavformat/mpegenc.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include <stdint.h>
 
 #include "libavutil/attributes.h"
diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
index e23f596490..da77b50669 100644
--- a/libavformat/mpegts.c
+++ b/libavformat/mpegts.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/buffer.h"
 #include "libavutil/common.h"
 #include "libavutil/crc.h"
diff --git a/libavformat/network.c b/libavformat/network.c
index 1ced314c92..21e20b3e9a 100644
--- a/libavformat/network.c
+++ b/libavformat/network.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include <fcntl.h>
 #include "network.h"
 #include "tls.h"
diff --git a/libavformat/oggenc.c b/libavformat/oggenc.c
index 31f47dadf6..016047f616 100644
--- a/libavformat/oggenc.c
+++ b/libavformat/oggenc.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include <stdint.h>
 
 #include "libavutil/crc.h"
diff --git a/libavformat/pcmdec.c b/libavformat/pcmdec.c
index 63539a47c0..f6123ae90d 100644
--- a/libavformat/pcmdec.c
+++ b/libavformat/pcmdec.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avstring.h"
 #include "avformat.h"
 #include "internal.h"
diff --git a/libavformat/pcmenc.c b/libavformat/pcmenc.c
index cbfcee7b41..0cf497989a 100644
--- a/libavformat/pcmenc.c
+++ b/libavformat/pcmenc.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "avformat.h"
 #include "rawenc.h"
 
diff --git a/libavformat/rawdec.c b/libavformat/rawdec.c
index 15e26c03bd..17649bc077 100644
--- a/libavformat/rawdec.c
+++ b/libavformat/rawdec.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "avformat.h"
 #include "internal.h"
 #include "avio_internal.h"
diff --git a/libavformat/rawenc.c b/libavformat/rawenc.c
index f8c267c4c9..c8e7ca818b 100644
--- a/libavformat/rawenc.c
+++ b/libavformat/rawenc.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/intreadwrite.h"
 
 #include "avformat.h"
diff --git a/libavformat/rawvideodec.c b/libavformat/rawvideodec.c
index 7b1a534452..514e4e044f 100644
--- a/libavformat/rawvideodec.c
+++ b/libavformat/rawvideodec.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/imgutils.h"
 #include "libavutil/parseutils.h"
 #include "libavutil/pixdesc.h"
diff --git a/libavformat/riff.c b/libavformat/riff.c
index f098c1d580..df7e9df31b 100644
--- a/libavformat/riff.c
+++ b/libavformat/riff.c
@@ -21,6 +21,7 @@
 
 #include <stddef.h>
 #include "config.h"
+#include "config_components.h"
 #include "libavutil/macros.h"
 #include "avformat.h"
 #include "internal.h"
diff --git a/libavformat/rtmpproto.c b/libavformat/rtmpproto.c
index 88557140f7..f97e3c3b8e 100644
--- a/libavformat/rtmpproto.c
+++ b/libavformat/rtmpproto.c
@@ -24,6 +24,8 @@
  * RTMP protocol
  */
 
+#include "config_components.h"
+
 #include "libavcodec/bytestream.h"
 #include "libavutil/avstring.h"
 #include "libavutil/base64.h"
diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
index f1992f193e..f8aa3dfe1e 100644
--- a/libavformat/rtsp.c
+++ b/libavformat/rtsp.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avassert.h"
 #include "libavutil/base64.h"
 #include "libavutil/bprint.h"
diff --git a/libavformat/rtspdec.c b/libavformat/rtspdec.c
index eee6329025..bbabec7db8 100644
--- a/libavformat/rtspdec.c
+++ b/libavformat/rtspdec.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avstring.h"
 #include "libavutil/intreadwrite.h"
 #include "libavutil/mathematics.h"
diff --git a/libavformat/sdp.c b/libavformat/sdp.c
index d63a0b34c4..7644cb6c2a 100644
--- a/libavformat/sdp.c
+++ b/libavformat/sdp.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include <string.h>
 #include "libavutil/avstring.h"
 #include "libavutil/base64.h"
diff --git a/libavformat/segment.c b/libavformat/segment.c
index e9b0aa4fa8..ef0529a920 100644
--- a/libavformat/segment.c
+++ b/libavformat/segment.c
@@ -24,6 +24,8 @@
  * @url{http://tools.ietf.org/id/draft-pantos-http-live-streaming}
  */
 
+#include "config_components.h"
+
 #include <float.h>
 #include <time.h>
 
diff --git a/libavformat/swfenc.c b/libavformat/swfenc.c
index 9eb22ee9b3..3b4aa614ca 100644
--- a/libavformat/swfenc.c
+++ b/libavformat/swfenc.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavcodec/put_bits.h"
 #include "libavutil/avassert.h"
 #include "libavutil/fifo.h"
diff --git a/libavformat/voc.c b/libavformat/voc.c
index 04ec0da9ba..a836ecb79b 100644
--- a/libavformat/voc.c
+++ b/libavformat/voc.c
@@ -20,6 +20,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 #include "voc.h"
 #include "internal.h"
 
diff --git a/libavformat/wavdec.c b/libavformat/wavdec.c
index 01090b6947..c53e6a1841 100644
--- a/libavformat/wavdec.c
+++ b/libavformat/wavdec.c
@@ -28,6 +28,7 @@
 #include <stdint.h>
 
 #include "config.h"
+#include "config_components.h"
 #include "libavutil/avassert.h"
 #include "libavutil/dict.h"
 #include "libavutil/intreadwrite.h"
diff --git a/libavformat/wavenc.c b/libavformat/wavenc.c
index 2317700be1..75a97e8244 100644
--- a/libavformat/wavenc.c
+++ b/libavformat/wavenc.c
@@ -28,6 +28,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include <stdint.h>
 #include <string.h>
 
-- 
2.32.0 (Apple Git-132)

_______________________________________________
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".

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [FFmpeg-devel] [PATCH v3 9/9] configure: Use a separate config_components.h header for $ALL_COMPONENTS
  2022-03-11 12:18 ` [FFmpeg-devel] [PATCH v2 9/9] configure: Use a separate config_components.h header for $ALL_COMPONENTS Martin Storsjö
@ 2022-03-11 13:53   ` Martin Storsjö
  2022-03-17 16:29     ` Michael Niedermayer
  0 siblings, 1 reply; 12+ messages in thread
From: Martin Storsjö @ 2022-03-11 13:53 UTC (permalink / raw)
  To: ffmpeg-devel

This avoids unnecessary rebuilds of most source files if only the
list of enabled components has changed, but not the other properties
of the build, set in config.h.
---
Patchwork notified me that the previous round failed building
libavdevice/alsa.c due to missing an include of the new header.

I now did grepping for constants like CONFIG_.*{MUXER|CODER|...}
to find other files that might need including that header. Now
there should be much less risk of breaking things in configs with
components I haven't tested.
---
 configure                           | 17 +++++++++++++++--
 fftools/ffplay.c                    |  1 +
 libavcodec/8svx.c                   |  2 ++
 libavcodec/a64multienc.c            |  2 ++
 libavcodec/aac_ac3_parser.c         |  2 ++
 libavcodec/aactab.c                 |  1 +
 libavcodec/aarch64/h264cmc_neon.S   |  2 ++
 libavcodec/ac3_parser.c             |  1 +
 libavcodec/ac3dec.c                 |  2 ++
 libavcodec/ac3dec_float.c           |  3 +++
 libavcodec/ac3enc.c                 |  1 +
 libavcodec/ac3enc_template.c        |  2 ++
 libavcodec/adpcm.c                  |  3 +++
 libavcodec/adpcmenc.c               |  2 ++
 libavcodec/allcodecs.c              |  1 +
 libavcodec/amfenc.c                 |  1 +
 libavcodec/aptxdec.c                |  2 ++
 libavcodec/aptxenc.c                |  2 ++
 libavcodec/arm/flacdsp_init_arm.c   |  1 +
 libavcodec/arm/h264cmc_neon.S       |  2 ++
 libavcodec/assdec.c                 |  1 +
 libavcodec/assenc.c                 |  2 ++
 libavcodec/asvdec.c                 |  1 +
 libavcodec/asvenc.c                 |  2 ++
 libavcodec/audiotoolboxdec.c        |  1 +
 libavcodec/av1dec.c                 |  2 ++
 libavcodec/binkaudio.c              |  2 ++
 libavcodec/bintext.c                |  2 ++
 libavcodec/bsf.c                    |  1 +
 libavcodec/crystalhd.c              |  2 ++
 libavcodec/cuviddec.c               |  2 ++
 libavcodec/cyuv.c                   |  2 ++
 libavcodec/dxva2_av1.c              |  2 ++
 libavcodec/dxva2_h264.c             |  2 ++
 libavcodec/dxva2_hevc.c             |  2 ++
 libavcodec/dxva2_mpeg2.c            |  2 ++
 libavcodec/dxva2_vc1.c              |  2 ++
 libavcodec/dxva2_vp9.c              |  2 ++
 libavcodec/flashsv.c                |  2 ++
 libavcodec/g726.c                   |  3 +++
 libavcodec/gsmdec.c                 |  2 ++
 libavcodec/h263dec.c                |  2 ++
 libavcodec/h264_slice.c             |  2 ++
 libavcodec/h264dec.c                |  2 ++
 libavcodec/hevcdec.c                |  2 ++
 libavcodec/huffyuvdec.c             |  2 ++
 libavcodec/huffyuvenc.c             |  2 ++
 libavcodec/idctdsp.c                |  1 +
 libavcodec/iff.c                    |  2 ++
 libavcodec/imc.c                    |  1 +
 libavcodec/ituh263dec.c             |  2 ++
 libavcodec/ituh263enc.c             |  2 ++
 libavcodec/lcldec.c                 |  2 ++
 libavcodec/libgsmdec.c              |  1 +
 libavcodec/libgsmenc.c              |  1 +
 libavcodec/libopencore-amr.c        |  2 ++
 libavcodec/libvpx.c                 |  1 +
 libavcodec/libvpxdec.c              |  2 ++
 libavcodec/libvpxenc.c              |  2 ++
 libavcodec/libx264.c                |  2 ++
 libavcodec/me_cmp.c                 |  1 +
 libavcodec/mediacodecdec.c          |  2 ++
 libavcodec/metasound_data.c         |  1 +
 libavcodec/mjpegdec.c               |  2 ++
 libavcodec/mjpegenc.c               |  2 ++
 libavcodec/mlpdec.c                 |  2 ++
 libavcodec/mlpenc.c                 |  2 ++
 libavcodec/mpeg12dec.c              |  2 ++
 libavcodec/mpeg12enc.c              |  1 +
 libavcodec/mpeg4videodec.c          |  2 ++
 libavcodec/mpegaudiodec_fixed.c     |  1 +
 libavcodec/mpegaudiodec_float.c     |  1 +
 libavcodec/mpegaudiodec_template.c  |  2 ++
 libavcodec/mpegvideo.c              |  2 ++
 libavcodec/mpegvideo_enc.c          |  2 ++
 libavcodec/mpegvideo_motion.c       |  2 ++
 libavcodec/msmpeg4.c                |  2 ++
 libavcodec/msmpeg4dec.c             |  2 ++
 libavcodec/mvcdec.c                 |  2 ++
 libavcodec/nvdec.c                  |  1 +
 libavcodec/nvdec_mjpeg.c            |  2 ++
 libavcodec/nvdec_mpeg12.c           |  2 ++
 libavcodec/nvdec_vc1.c              |  2 ++
 libavcodec/nvenc.c                  |  1 +
 libavcodec/options.c                |  2 ++
 libavcodec/options_table.h          |  2 ++
 libavcodec/opus_pvq.c               |  2 ++
 libavcodec/pcm.c                    |  1 +
 libavcodec/pngdec.c                 |  2 ++
 libavcodec/pnmdec.c                 |  2 ++
 libavcodec/pnmenc.c                 |  2 ++
 libavcodec/proresdec2.c             |  2 ++
 libavcodec/qpeldsp.c                |  1 +
 libavcodec/qsvdec.c                 |  2 ++
 libavcodec/qsvenc.c                 |  2 ++
 libavcodec/r210dec.c                |  1 +
 libavcodec/r210enc.c                |  2 ++
 libavcodec/rv34_parser.c            |  2 ++
 libavcodec/sonic.c                  |  3 +++
 libavcodec/sp5xdec.c                |  2 ++
 libavcodec/speedhq.c                |  1 +
 libavcodec/speedhqenc.c             |  2 ++
 libavcodec/srtdec.c                 |  2 ++
 libavcodec/srtenc.c                 |  2 ++
 libavcodec/tests/dct.c              |  1 +
 libavcodec/tests/x86/dct.c          |  1 +
 libavcodec/textdec.c                |  2 ++
 libavcodec/v408dec.c                |  2 ++
 libavcodec/v408enc.c                |  2 ++
 libavcodec/vaapi_decode.c           |  2 ++
 libavcodec/vaapi_encode.c           |  2 ++
 libavcodec/vaapi_mpeg4.c            |  2 ++
 libavcodec/vaapi_vc1.c              |  2 ++
 libavcodec/vc1dec.c                 |  2 ++
 libavcodec/vc1dsp.c                 |  2 ++
 libavcodec/vdpau.c                  |  2 ++
 libavcodec/vdpau_mpeg12.c           |  2 ++
 libavcodec/vdpau_vc1.c              |  2 ++
 libavcodec/videotoolbox.c           |  1 +
 libavcodec/vorbis_parser.c          |  2 ++
 libavcodec/vp3.c                    |  2 ++
 libavcodec/vp56dsp.c                |  1 +
 libavcodec/vp8.c                    |  2 ++
 libavcodec/vp8dsp.c                 |  2 ++
 libavcodec/vp9.c                    |  2 ++
 libavcodec/wmadec.c                 |  2 ++
 libavcodec/wmaenc.c                 |  2 ++
 libavcodec/x86/flacdsp_init.c       |  1 +
 libavcodec/x86/hpeldsp_init.c       |  2 ++
 libavdevice/alsa.c                  |  2 ++
 libavdevice/iec61883.c              |  2 ++
 libavfilter/aeval.c                 |  2 ++
 libavfilter/af_afade.c              |  2 ++
 libavfilter/af_agate.c              |  2 ++
 libavfilter/af_biquads.c            |  2 ++
 libavfilter/af_sidechaincompress.c  |  2 ++
 libavfilter/avf_showspectrum.c      |  2 ++
 libavfilter/avf_showwaves.c         |  2 ++
 libavfilter/f_bench.c               |  2 ++
 libavfilter/f_cue.c                 |  2 ++
 libavfilter/f_drawgraph.c           |  2 ++
 libavfilter/f_graphmonitor.c        |  2 ++
 libavfilter/f_interleave.c          |  2 ++
 libavfilter/f_latency.c             |  2 ++
 libavfilter/f_loop.c                |  2 ++
 libavfilter/f_metadata.c            |  2 ++
 libavfilter/f_perms.c               |  2 ++
 libavfilter/f_realtime.c            |  2 ++
 libavfilter/f_reverse.c             |  2 ++
 libavfilter/f_segment.c             |  2 ++
 libavfilter/f_select.c              |  2 ++
 libavfilter/f_sendcmd.c             |  2 ++
 libavfilter/f_sidedata.c            |  2 ++
 libavfilter/f_zmq.c                 |  2 ++
 libavfilter/lut3d.h                 |  2 ++
 libavfilter/setpts.c                |  2 ++
 libavfilter/settb.c                 |  2 ++
 libavfilter/src_movie.c             |  2 ++
 libavfilter/trim.c                  |  1 +
 libavfilter/vf_aspect.c             |  2 ++
 libavfilter/vf_avgblur_opencl.c     |  2 ++
 libavfilter/vf_blend.c              |  2 ++
 libavfilter/vf_colorconstancy.c     |  2 ++
 libavfilter/vf_colorkey.c           |  2 ++
 libavfilter/vf_convolution.c        |  2 ++
 libavfilter/vf_convolution_opencl.c |  2 ++
 libavfilter/vf_convolve.c           |  2 ++
 libavfilter/vf_drawbox.c            |  2 ++
 libavfilter/vf_extractplanes.c      |  2 ++
 libavfilter/vf_format.c             |  2 ++
 libavfilter/vf_histogram.c          |  2 ++
 libavfilter/vf_identity.c           |  2 ++
 libavfilter/vf_lut.c                |  2 ++
 libavfilter/vf_lut2.c               |  2 ++
 libavfilter/vf_lut3d.c              |  2 ++
 libavfilter/vf_mix.c                |  2 ++
 libavfilter/vf_neighbor.c           |  2 ++
 libavfilter/vf_neighbor_opencl.c    |  2 ++
 libavfilter/vf_premultiply.c        |  2 ++
 libavfilter/vf_program_opencl.c     |  2 ++
 libavfilter/vf_setparams.c          |  2 ++
 libavfilter/vf_stack.c              |  2 ++
 libavfilter/vf_subtitles.c          |  1 +
 libavfilter/vf_xmedian.c            |  2 ++
 libavfilter/vsrc_testsrc.c          |  2 ++
 libavformat/ac3dec.c                |  2 ++
 libavformat/alp.c                   |  2 ++
 libavformat/amr.c                   |  2 ++
 libavformat/apm.c                   |  3 +++
 libavformat/aptxdec.c               |  2 ++
 libavformat/argo_asf.c              |  3 +++
 libavformat/argo_cvg.c              |  2 ++
 libavformat/asfenc.c                |  2 ++
 libavformat/au.c                    |  2 ++
 libavformat/av1dec.c                |  1 +
 libavformat/avidec.c                |  2 ++
 libavformat/avienc.c                |  1 +
 libavformat/bintext.c               |  2 ++
 libavformat/bit.c                   |  3 +++
 libavformat/codec2.c                |  2 ++
 libavformat/concat.c                |  2 ++
 libavformat/dashenc.c               |  1 +
 libavformat/demux.c                 |  1 +
 libavformat/file.c                  |  2 ++
 libavformat/format.c                |  2 ++
 libavformat/g726.c                  |  2 ++
 libavformat/gopher.c                |  1 +
 libavformat/hashenc.c               |  2 ++
 libavformat/hls.c                   |  2 ++
 libavformat/hlsenc.c                |  1 +
 libavformat/http.c                  |  1 +
 libavformat/ilbc.c                  |  2 ++
 libavformat/img2dec.c               |  2 ++
 libavformat/img2enc.c               |  2 ++
 libavformat/kvag.c                  |  2 ++
 libavformat/matroskadec.c           |  1 +
 libavformat/matroskaenc.c           |  1 +
 libavformat/mj2kdec.c               |  2 ++
 libavformat/mlpdec.c                |  2 ++
 libavformat/mmf.c                   |  2 ++
 libavformat/mov.c                   |  2 ++
 libavformat/movenc.c                |  2 ++
 libavformat/mpeg.c                  |  2 ++
 libavformat/mpegenc.c               |  2 ++
 libavformat/mpegts.c                |  2 ++
 libavformat/network.c               |  2 ++
 libavformat/oggenc.c                |  2 ++
 libavformat/pcmdec.c                |  2 ++
 libavformat/pcmenc.c                |  2 ++
 libavformat/rawdec.c                |  2 ++
 libavformat/rawenc.c                |  2 ++
 libavformat/rawvideodec.c           |  2 ++
 libavformat/riff.c                  |  1 +
 libavformat/rtmpproto.c             |  2 ++
 libavformat/rtsp.c                  |  2 ++
 libavformat/rtspdec.c               |  2 ++
 libavformat/sdp.c                   |  2 ++
 libavformat/segment.c               |  2 ++
 libavformat/swfenc.c                |  2 ++
 libavformat/voc.c                   |  1 +
 libavformat/wavdec.c                |  1 +
 libavformat/wavenc.c                |  2 ++
 tests/checkasm/checkasm.c           |  1 +
 243 files changed, 459 insertions(+), 2 deletions(-)

diff --git a/configure b/configure
index 82642deabe..dff53e88bc 100755
--- a/configure
+++ b/configure
@@ -7791,17 +7791,30 @@ print_config ARCH_   "$config_files" $ARCH_LIST
 print_config HAVE_   "$config_files" $HAVE_LIST
 print_config CONFIG_ "$config_files" $CONFIG_LIST       \
                                      $CONFIG_EXTRA      \
-                                     $ALL_COMPONENTS    \
 
 echo "#endif /* FFMPEG_CONFIG_H */" >> $TMPH
-echo "endif # FFMPEG_CONFIG_MAK" >> ffbuild/config.mak
 
 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
 cp_if_changed $TMPH config.h
 touch ffbuild/.config
 
+# Copy config.asm before printing ALL_COMPONENTS; that's not needed in assembly.
 enabled x86asm && cp_if_changed $TMPASM config.asm
 
+# Reopen a new TMPH for config_components.h.
+cat > $TMPH <<EOF
+/* Automatically generated by configure - do not modify! */
+#ifndef FFMPEG_CONFIG_COMPONENTS_H
+#define FFMPEG_CONFIG_COMPONENTS_H
+EOF
+
+print_config CONFIG_ "$config_files" $ALL_COMPONENTS
+
+echo "#endif /* FFMPEG_CONFIG_COMPONENTS_H */" >> $TMPH
+echo "endif # FFMPEG_CONFIG_MAK" >> ffbuild/config.mak
+
+cp_if_changed $TMPH config_components.h
+
 cat > $TMPH <<EOF
 /* Generated by ffmpeg configure */
 #ifndef AVUTIL_AVCONFIG_H
diff --git a/fftools/ffplay.c b/fftools/ffplay.c
index ac48d8765d..b79ae8fb58 100644
--- a/fftools/ffplay.c
+++ b/fftools/ffplay.c
@@ -24,6 +24,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 #include <inttypes.h>
 #include <math.h>
 #include <limits.h>
diff --git a/libavcodec/8svx.c b/libavcodec/8svx.c
index 6ef8cd73fe..760549d54a 100644
--- a/libavcodec/8svx.c
+++ b/libavcodec/8svx.c
@@ -37,6 +37,8 @@
  * http://aminet.net/mods/smpl/
  */
 
+#include "config_components.h"
+
 #include "libavutil/avassert.h"
 #include "avcodec.h"
 #include "internal.h"
diff --git a/libavcodec/a64multienc.c b/libavcodec/a64multienc.c
index 7bdf4a61b1..a1e0d711ba 100644
--- a/libavcodec/a64multienc.c
+++ b/libavcodec/a64multienc.c
@@ -24,6 +24,8 @@
  * a64 video encoder - multicolor modes
  */
 
+#include "config_components.h"
+
 #include "a64colors.h"
 #include "a64tables.h"
 #include "elbg.h"
diff --git a/libavcodec/aac_ac3_parser.c b/libavcodec/aac_ac3_parser.c
index e84d30aea2..a42ce5a0fb 100644
--- a/libavcodec/aac_ac3_parser.c
+++ b/libavcodec/aac_ac3_parser.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/channel_layout.h"
 #include "libavutil/common.h"
 #include "parser.h"
diff --git a/libavcodec/aactab.c b/libavcodec/aactab.c
index 0553f41a61..0f4941d5df 100644
--- a/libavcodec/aactab.c
+++ b/libavcodec/aactab.c
@@ -28,6 +28,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 #include "libavutil/mem_internal.h"
 #include "libavutil/thread.h"
 #include "aac.h"
diff --git a/libavcodec/aarch64/h264cmc_neon.S b/libavcodec/aarch64/h264cmc_neon.S
index 8be7578001..f8e9407854 100644
--- a/libavcodec/aarch64/h264cmc_neon.S
+++ b/libavcodec/aarch64/h264cmc_neon.S
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/aarch64/asm.S"
 
 /* chroma_mc8(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int h, int x, int y) */
diff --git a/libavcodec/ac3_parser.c b/libavcodec/ac3_parser.c
index f3c7d27d59..86e8d417eb 100644
--- a/libavcodec/ac3_parser.c
+++ b/libavcodec/ac3_parser.c
@@ -21,6 +21,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 
 #include "libavutil/channel_layout.h"
 #include "parser.h"
diff --git a/libavcodec/ac3dec.c b/libavcodec/ac3dec.c
index ae00373dcb..9a9f202f27 100644
--- a/libavcodec/ac3dec.c
+++ b/libavcodec/ac3dec.c
@@ -24,6 +24,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include <stdio.h>
 #include <stddef.h>
 #include <math.h>
diff --git a/libavcodec/ac3dec_float.c b/libavcodec/ac3dec_float.c
index 573fbe75b6..bc632e7da0 100644
--- a/libavcodec/ac3dec_float.c
+++ b/libavcodec/ac3dec_float.c
@@ -27,6 +27,9 @@
 /**
  * Upmix delay samples from stereo to original channel layout.
  */
+
+#include "config_components.h"
+
 #include "ac3dec.h"
 #include "eac3dec.c"
 #include "ac3dec.c"
diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c
index 034aa0beb9..e9b2e5a19c 100644
--- a/libavcodec/ac3enc.c
+++ b/libavcodec/ac3enc.c
@@ -38,6 +38,7 @@
 #include "libavutil/opt.h"
 #include "libavutil/thread.h"
 #include "avcodec.h"
+#include "config_components.h"
 #include "encode.h"
 #include "internal.h"
 #include "me_cmp.h"
diff --git a/libavcodec/ac3enc_template.c b/libavcodec/ac3enc_template.c
index 5ecef3b178..fbe1dd1e04 100644
--- a/libavcodec/ac3enc_template.c
+++ b/libavcodec/ac3enc_template.c
@@ -26,6 +26,8 @@
  * AC-3 encoder float/fixed template
  */
 
+#include "config_components.h"
+
 #include <stdint.h>
 
 #include "libavutil/attributes.h"
diff --git a/libavcodec/adpcm.c b/libavcodec/adpcm.c
index cfde5f58b9..3c2f30b810 100644
--- a/libavcodec/adpcm.c
+++ b/libavcodec/adpcm.c
@@ -34,6 +34,9 @@
  * 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_components.h"
+
 #include "avcodec.h"
 #include "get_bits.h"
 #include "bytestream.h"
diff --git a/libavcodec/adpcmenc.c b/libavcodec/adpcmenc.c
index b0f6f209b7..fa7e6486ae 100644
--- a/libavcodec/adpcmenc.c
+++ b/libavcodec/adpcmenc.c
@@ -22,6 +22,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/opt.h"
 
 #include "avcodec.h"
diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c
index 628d27fd75..74049afa8f 100644
--- a/libavcodec/allcodecs.c
+++ b/libavcodec/allcodecs.c
@@ -28,6 +28,7 @@
 #include <string.h>
 
 #include "config.h"
+#include "config_components.h"
 #include "libavutil/thread.h"
 #include "codec.h"
 #include "codec_id.h"
diff --git a/libavcodec/amfenc.c b/libavcodec/amfenc.c
index 0e5117c5a3..a033e1220e 100644
--- a/libavcodec/amfenc.c
+++ b/libavcodec/amfenc.c
@@ -17,6 +17,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 
 #include "libavutil/avassert.h"
 #include "libavutil/imgutils.h"
diff --git a/libavcodec/aptxdec.c b/libavcodec/aptxdec.c
index bdcc076c41..7f76c28e3b 100644
--- a/libavcodec/aptxdec.c
+++ b/libavcodec/aptxdec.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/channel_layout.h"
 #include "aptx.h"
 
diff --git a/libavcodec/aptxenc.c b/libavcodec/aptxenc.c
index 5ea6053c26..8f96dce735 100644
--- a/libavcodec/aptxenc.c
+++ b/libavcodec/aptxenc.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/channel_layout.h"
 #include "aptx.h"
 #include "encode.h"
diff --git a/libavcodec/arm/flacdsp_init_arm.c b/libavcodec/arm/flacdsp_init_arm.c
index c4a6e3a535..bac9ff1959 100644
--- a/libavcodec/arm/flacdsp_init_arm.c
+++ b/libavcodec/arm/flacdsp_init_arm.c
@@ -21,6 +21,7 @@
 #include "libavutil/attributes.h"
 #include "libavcodec/flacdsp.h"
 #include "config.h"
+#include "config_components.h"
 
 void ff_flac_lpc_16_arm(int32_t *samples, const int coeffs[32], int order,
                         int qlevel, int len);
diff --git a/libavcodec/arm/h264cmc_neon.S b/libavcodec/arm/h264cmc_neon.S
index 5a4159eedd..3687b02ede 100644
--- a/libavcodec/arm/h264cmc_neon.S
+++ b/libavcodec/arm/h264cmc_neon.S
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/arm/asm.S"
 
 /* chroma_mc8(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int h, int x, int y) */
diff --git a/libavcodec/assdec.c b/libavcodec/assdec.c
index 319279490c..a9697d045d 100644
--- a/libavcodec/assdec.c
+++ b/libavcodec/assdec.c
@@ -23,6 +23,7 @@
 
 #include "avcodec.h"
 #include "ass.h"
+#include "config_components.h"
 #include "internal.h"
 #include "libavutil/internal.h"
 #include "libavutil/mem.h"
diff --git a/libavcodec/assenc.c b/libavcodec/assenc.c
index a6d107ded2..b7a88f9d44 100644
--- a/libavcodec/assenc.c
+++ b/libavcodec/assenc.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include <string.h>
 
 #include "avcodec.h"
diff --git a/libavcodec/asvdec.c b/libavcodec/asvdec.c
index 60a4e138c4..36bedb5928 100644
--- a/libavcodec/asvdec.c
+++ b/libavcodec/asvdec.c
@@ -30,6 +30,7 @@
 #include "asv.h"
 #include "avcodec.h"
 #include "blockdsp.h"
+#include "config_components.h"
 #include "idctdsp.h"
 #include "internal.h"
 #include "mpeg12data.h"
diff --git a/libavcodec/asvenc.c b/libavcodec/asvenc.c
index ff96338e8a..96700aa9e3 100644
--- a/libavcodec/asvenc.c
+++ b/libavcodec/asvenc.c
@@ -23,6 +23,8 @@
  * ASUS V1/V2 encoder.
  */
 
+#include "config_components.h"
+
 #include "libavutil/attributes.h"
 #include "libavutil/mem.h"
 
diff --git a/libavcodec/audiotoolboxdec.c b/libavcodec/audiotoolboxdec.c
index 9939fef218..b7c746ef6f 100644
--- a/libavcodec/audiotoolboxdec.c
+++ b/libavcodec/audiotoolboxdec.c
@@ -23,6 +23,7 @@
 #include <AudioToolbox/AudioToolbox.h>
 
 #include "config.h"
+#include "config_components.h"
 #include "avcodec.h"
 #include "ac3_parser_internal.h"
 #include "bytestream.h"
diff --git a/libavcodec/av1dec.c b/libavcodec/av1dec.c
index b354d8d03c..87f0ebb3bd 100644
--- a/libavcodec/av1dec.c
+++ b/libavcodec/av1dec.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/film_grain_params.h"
 #include "libavutil/pixdesc.h"
 #include "libavutil/opt.h"
diff --git a/libavcodec/binkaudio.c b/libavcodec/binkaudio.c
index f808141ba5..31e15a094e 100644
--- a/libavcodec/binkaudio.c
+++ b/libavcodec/binkaudio.c
@@ -28,6 +28,8 @@
  *  http://wiki.multimedia.cx/index.php?title=Bink_Audio
  */
 
+#include "config_components.h"
+
 #include "libavutil/channel_layout.h"
 #include "libavutil/intfloat.h"
 #include "libavutil/mem_internal.h"
diff --git a/libavcodec/bintext.c b/libavcodec/bintext.c
index 553f020738..d9e95a95b4 100644
--- a/libavcodec/bintext.c
+++ b/libavcodec/bintext.c
@@ -28,6 +28,8 @@
  * iCEDraw File decoder
  */
 
+#include "config_components.h"
+
 #include "libavutil/intreadwrite.h"
 #include "libavutil/xga_font_data.h"
 #include "avcodec.h"
diff --git a/libavcodec/bsf.c b/libavcodec/bsf.c
index 8ba021cb47..60761e6f7d 100644
--- a/libavcodec/bsf.c
+++ b/libavcodec/bsf.c
@@ -19,6 +19,7 @@
 #include <string.h>
 
 #include "config.h"
+#include "config_components.h"
 
 #include "libavutil/avassert.h"
 #include "libavutil/log.h"
diff --git a/libavcodec/crystalhd.c b/libavcodec/crystalhd.c
index 9202a16a77..4fe34b737c 100644
--- a/libavcodec/crystalhd.c
+++ b/libavcodec/crystalhd.c
@@ -45,6 +45,8 @@
  * Includes
  ****************************************************************************/
 
+#include "config_components.h"
+
 #define _XOPEN_SOURCE 600
 #include <inttypes.h>
 #include <stdio.h>
diff --git a/libavcodec/cuviddec.c b/libavcodec/cuviddec.c
index 1b525cd804..f3a3ddda7c 100644
--- a/libavcodec/cuviddec.c
+++ b/libavcodec/cuviddec.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "compat/cuda/dynlink_loader.h"
 
 #include "libavutil/buffer.h"
diff --git a/libavcodec/cyuv.c b/libavcodec/cyuv.c
index cfaa5cfa66..50aa2322e9 100644
--- a/libavcodec/cyuv.c
+++ b/libavcodec/cyuv.c
@@ -28,6 +28,8 @@
  * Creative YUV (CYUV) Video Decoder.
  */
 
+#include "config_components.h"
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/libavcodec/dxva2_av1.c b/libavcodec/dxva2_av1.c
index 7b4483f855..228f72ba18 100644
--- a/libavcodec/dxva2_av1.c
+++ b/libavcodec/dxva2_av1.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avassert.h"
 #include "libavutil/pixdesc.h"
 
diff --git a/libavcodec/dxva2_h264.c b/libavcodec/dxva2_h264.c
index 5b23b28f12..6300b1418d 100644
--- a/libavcodec/dxva2_h264.c
+++ b/libavcodec/dxva2_h264.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avassert.h"
 
 #include "dxva2_internal.h"
diff --git a/libavcodec/dxva2_hevc.c b/libavcodec/dxva2_hevc.c
index dbb701fb1c..c91bcf3eeb 100644
--- a/libavcodec/dxva2_hevc.c
+++ b/libavcodec/dxva2_hevc.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avassert.h"
 
 #include "dxva2_internal.h"
diff --git a/libavcodec/dxva2_mpeg2.c b/libavcodec/dxva2_mpeg2.c
index 136f5f9e06..1989c588dc 100644
--- a/libavcodec/dxva2_mpeg2.c
+++ b/libavcodec/dxva2_mpeg2.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/log.h"
 
 #include "dxva2_internal.h"
diff --git a/libavcodec/dxva2_vc1.c b/libavcodec/dxva2_vc1.c
index 5fd6957d0c..cf660a50d2 100644
--- a/libavcodec/dxva2_vc1.c
+++ b/libavcodec/dxva2_vc1.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "dxva2_internal.h"
 #include "mpegutils.h"
 #include "mpegvideodec.h"
diff --git a/libavcodec/dxva2_vp9.c b/libavcodec/dxva2_vp9.c
index eaeab3af7a..dbe6c08ad1 100644
--- a/libavcodec/dxva2_vp9.c
+++ b/libavcodec/dxva2_vp9.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avassert.h"
 #include "libavutil/pixdesc.h"
 
diff --git a/libavcodec/flashsv.c b/libavcodec/flashsv.c
index 00f77f4902..25e431ef68 100644
--- a/libavcodec/flashsv.c
+++ b/libavcodec/flashsv.c
@@ -33,6 +33,8 @@
  * downloaded from http://www.adobe.com/devnet/swf.html.
  */
 
+#include "config_components.h"
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <zlib.h>
diff --git a/libavcodec/g726.c b/libavcodec/g726.c
index 2a0148c1d5..3d851970d2 100644
--- a/libavcodec/g726.c
+++ b/libavcodec/g726.c
@@ -21,6 +21,9 @@
  * 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_components.h"
+
 #include <limits.h>
 
 #include "libavutil/channel_layout.h"
diff --git a/libavcodec/gsmdec.c b/libavcodec/gsmdec.c
index c169112311..c0253977af 100644
--- a/libavcodec/gsmdec.c
+++ b/libavcodec/gsmdec.c
@@ -24,6 +24,8 @@
  * GSM decoder
  */
 
+#include "config_components.h"
+
 #include "libavutil/channel_layout.h"
 #include "avcodec.h"
 #include "get_bits.h"
diff --git a/libavcodec/h263dec.c b/libavcodec/h263dec.c
index 423036e97b..399b67d76b 100644
--- a/libavcodec/h263dec.c
+++ b/libavcodec/h263dec.c
@@ -27,6 +27,8 @@
 
 #define UNCHECKED_BITSTREAM_READER 1
 
+#include "config_components.h"
+
 #include "avcodec.h"
 #include "error_resilience.h"
 #include "flvdec.h"
diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c
index 110a41772a..ee84b3764d 100644
--- a/libavcodec/h264_slice.c
+++ b/libavcodec/h264_slice.c
@@ -25,6 +25,8 @@
  * @author Michael Niedermayer <michaelni@gmx.at>
  */
 
+#include "config_components.h"
+
 #include "libavutil/avassert.h"
 #include "libavutil/display.h"
 #include "libavutil/film_grain_params.h"
diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c
index 856fbca680..cc77c3169d 100644
--- a/libavcodec/h264dec.c
+++ b/libavcodec/h264dec.c
@@ -27,6 +27,8 @@
 
 #define UNCHECKED_BITSTREAM_READER 1
 
+#include "config_components.h"
+
 #include "libavutil/avassert.h"
 #include "libavutil/imgutils.h"
 #include "libavutil/opt.h"
diff --git a/libavcodec/hevcdec.c b/libavcodec/hevcdec.c
index 068750ddb6..4f49d95960 100644
--- a/libavcodec/hevcdec.c
+++ b/libavcodec/hevcdec.c
@@ -23,6 +23,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/attributes.h"
 #include "libavutil/common.h"
 #include "libavutil/display.h"
diff --git a/libavcodec/huffyuvdec.c b/libavcodec/huffyuvdec.c
index a5e0ef5818..8dc7864dd0 100644
--- a/libavcodec/huffyuvdec.c
+++ b/libavcodec/huffyuvdec.c
@@ -32,6 +32,8 @@
 
 #define UNCHECKED_BITSTREAM_READER 1
 
+#include "config_components.h"
+
 #include "avcodec.h"
 #include "get_bits.h"
 #include "huffyuv.h"
diff --git a/libavcodec/huffyuvenc.c b/libavcodec/huffyuvenc.c
index 97497a8e75..39a434c720 100644
--- a/libavcodec/huffyuvenc.c
+++ b/libavcodec/huffyuvenc.c
@@ -28,6 +28,8 @@
  * huffyuv encoder
  */
 
+#include "config_components.h"
+
 #include "avcodec.h"
 #include "encode.h"
 #include "huffyuv.h"
diff --git a/libavcodec/idctdsp.c b/libavcodec/idctdsp.c
index fbcec8436c..df3aeb0676 100644
--- a/libavcodec/idctdsp.c
+++ b/libavcodec/idctdsp.c
@@ -17,6 +17,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 #include "libavutil/attributes.h"
 #include "libavutil/common.h"
 #include "avcodec.h"
diff --git a/libavcodec/iff.c b/libavcodec/iff.c
index 1dcf0e00ed..6596130727 100644
--- a/libavcodec/iff.c
+++ b/libavcodec/iff.c
@@ -26,6 +26,8 @@
  * IFF ACBM/ANIM/DEEP/ILBM/PBM/RGB8/RGBN bitmap decoder
  */
 
+#include "config_components.h"
+
 #include <stdint.h>
 
 #include "libavutil/imgutils.h"
diff --git a/libavcodec/imc.c b/libavcodec/imc.c
index 116c273ba0..1d9685313f 100644
--- a/libavcodec/imc.c
+++ b/libavcodec/imc.c
@@ -29,6 +29,7 @@
  *  Only mono is supported.
  */
 
+#include "config_components.h"
 
 #include <math.h>
 #include <stddef.h>
diff --git a/libavcodec/ituh263dec.c b/libavcodec/ituh263dec.c
index 0c9473af56..f01c942f04 100644
--- a/libavcodec/ituh263dec.c
+++ b/libavcodec/ituh263dec.c
@@ -29,6 +29,8 @@
 
 #define UNCHECKED_BITSTREAM_READER 1
 
+#include "config_components.h"
+
 #include "libavutil/attributes.h"
 #include "libavutil/imgutils.h"
 #include "libavutil/internal.h"
diff --git a/libavcodec/ituh263enc.c b/libavcodec/ituh263enc.c
index 8bedecb36e..dc8dd8c9ea 100644
--- a/libavcodec/ituh263enc.c
+++ b/libavcodec/ituh263enc.c
@@ -27,6 +27,8 @@
  * H.263 bitstream encoder.
  */
 
+#include "config_components.h"
+
 #include <limits.h>
 
 #include "libavutil/attributes.h"
diff --git a/libavcodec/lcldec.c b/libavcodec/lcldec.c
index f3b7a8ac1b..b2ef85e5f9 100644
--- a/libavcodec/lcldec.c
+++ b/libavcodec/lcldec.c
@@ -37,6 +37,8 @@
  * Supports: BGR24 (RGB 24bpp)
  */
 
+#include "config_components.h"
+
 #include <stdio.h>
 #include <stdlib.h>
 
diff --git a/libavcodec/libgsmdec.c b/libavcodec/libgsmdec.c
index ae4a952d99..2e6aa037ea 100644
--- a/libavcodec/libgsmdec.c
+++ b/libavcodec/libgsmdec.c
@@ -28,6 +28,7 @@
 // The idiosyncrasies of GSM-in-WAV are explained at http://kbs.cs.tu-berlin.de/~jutta/toast.html
 
 #include "config.h"
+#include "config_components.h"
 #if HAVE_GSM_H
 #include <gsm.h>
 #else
diff --git a/libavcodec/libgsmenc.c b/libavcodec/libgsmenc.c
index a2f6c1c62e..fab6b0cffb 100644
--- a/libavcodec/libgsmenc.c
+++ b/libavcodec/libgsmenc.c
@@ -28,6 +28,7 @@
 // The idiosyncrasies of GSM-in-WAV are explained at http://kbs.cs.tu-berlin.de/~jutta/toast.html
 
 #include "config.h"
+#include "config_components.h"
 #if HAVE_GSM_H
 #include <gsm.h>
 #else
diff --git a/libavcodec/libopencore-amr.c b/libavcodec/libopencore-amr.c
index 2df1c5090f..0d7c449175 100644
--- a/libavcodec/libopencore-amr.c
+++ b/libavcodec/libopencore-amr.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include <inttypes.h>
 
 #include "libavutil/avstring.h"
diff --git a/libavcodec/libvpx.c b/libavcodec/libvpx.c
index cc055a0032..c2b00232d2 100644
--- a/libavcodec/libvpx.c
+++ b/libavcodec/libvpx.c
@@ -21,6 +21,7 @@
 #include <vpx/vpx_codec.h>
 #include "libvpx.h"
 #include "config.h"
+#include "config_components.h"
 
 #if CONFIG_LIBVPX_VP9_ENCODER
 #include <vpx/vpx_encoder.h>
diff --git a/libavcodec/libvpxdec.c b/libavcodec/libvpxdec.c
index b2aa205036..f59a03fc2f 100644
--- a/libavcodec/libvpxdec.c
+++ b/libavcodec/libvpxdec.c
@@ -23,6 +23,8 @@
  * VP8/9 decoder support via libvpx
  */
 
+#include "config_components.h"
+
 #define VPX_CODEC_DISABLE_COMPAT 1
 #include <vpx/vpx_decoder.h>
 #include <vpx/vpx_frame_buffer.h>
diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c
index 8f94ba15dc..77b96a5cde 100644
--- a/libavcodec/libvpxenc.c
+++ b/libavcodec/libvpxenc.c
@@ -23,6 +23,8 @@
  * VP8/9 encoder support via libvpx
  */
 
+#include "config_components.h"
+
 #define VPX_DISABLE_CTRL_TYPECHECKS 1
 #define VPX_CODEC_DISABLE_COMPAT    1
 #include <vpx/vpx_encoder.h>
diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c
index c5e0231b12..b8800db946 100644
--- a/libavcodec/libx264.c
+++ b/libavcodec/libx264.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/eval.h"
 #include "libavutil/internal.h"
 #include "libavutil/opt.h"
diff --git a/libavcodec/me_cmp.c b/libavcodec/me_cmp.c
index b2f87d2e1b..4c1de44eda 100644
--- a/libavcodec/me_cmp.c
+++ b/libavcodec/me_cmp.c
@@ -29,6 +29,7 @@
 #include "me_cmp.h"
 #include "mpegvideoenc.h"
 #include "config.h"
+#include "config_components.h"
 
 /* (i - 256) * (i - 256) */
 const uint32_t ff_square_tab[512] = {
diff --git a/libavcodec/mediacodecdec.c b/libavcodec/mediacodecdec.c
index e8af00ec00..fc1f6a7c4d 100644
--- a/libavcodec/mediacodecdec.c
+++ b/libavcodec/mediacodecdec.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include <stdint.h>
 #include <string.h>
 
diff --git a/libavcodec/metasound_data.c b/libavcodec/metasound_data.c
index 22b2730dda..b2044364fa 100644
--- a/libavcodec/metasound_data.c
+++ b/libavcodec/metasound_data.c
@@ -20,6 +20,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 #include "metasound_data.h"
 
 #if CONFIG_METASOUND_DECODER
diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c
index 267609d96a..7ff6985bc4 100644
--- a/libavcodec/mjpegdec.c
+++ b/libavcodec/mjpegdec.c
@@ -30,6 +30,8 @@
  * MJPEG decoder.
  */
 
+#include "config_components.h"
+
 #include "libavutil/display.h"
 #include "libavutil/imgutils.h"
 #include "libavutil/avassert.h"
diff --git a/libavcodec/mjpegenc.c b/libavcodec/mjpegenc.c
index 08671b0df7..5290bcf60c 100644
--- a/libavcodec/mjpegenc.c
+++ b/libavcodec/mjpegenc.c
@@ -30,6 +30,8 @@
  * MJPEG encoder.
  */
 
+#include "config_components.h"
+
 #include "libavutil/pixdesc.h"
 
 #include "avcodec.h"
diff --git a/libavcodec/mlpdec.c b/libavcodec/mlpdec.c
index 29fac54542..36f2e9c1ae 100644
--- a/libavcodec/mlpdec.c
+++ b/libavcodec/mlpdec.c
@@ -24,6 +24,8 @@
  * MLP decoder
  */
 
+#include "config_components.h"
+
 #include <stdint.h>
 
 #include "avcodec.h"
diff --git a/libavcodec/mlpenc.c b/libavcodec/mlpenc.c
index d8783b6f56..0552d98d89 100644
--- a/libavcodec/mlpenc.c
+++ b/libavcodec/mlpenc.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "avcodec.h"
 #include "encode.h"
 #include "internal.h"
diff --git a/libavcodec/mpeg12dec.c b/libavcodec/mpeg12dec.c
index 9e4e26aa67..7791dcb5fd 100644
--- a/libavcodec/mpeg12dec.c
+++ b/libavcodec/mpeg12dec.c
@@ -25,6 +25,8 @@
  * MPEG-1/2 decoder
  */
 
+#include "config_components.h"
+
 #define UNCHECKED_BITSTREAM_READER 1
 #include <inttypes.h>
 
diff --git a/libavcodec/mpeg12enc.c b/libavcodec/mpeg12enc.c
index 03692994b5..6110f117c6 100644
--- a/libavcodec/mpeg12enc.c
+++ b/libavcodec/mpeg12enc.c
@@ -28,6 +28,7 @@
 #include <stdint.h>
 
 #include "config.h"
+#include "config_components.h"
 #include "libavutil/attributes.h"
 #include "libavutil/avassert.h"
 #include "libavutil/log.h"
diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c
index 0e0ebb674b..8fb5ec119e 100644
--- a/libavcodec/mpeg4videodec.c
+++ b/libavcodec/mpeg4videodec.c
@@ -22,6 +22,8 @@
 
 #define UNCHECKED_BITSTREAM_READER 1
 
+#include "config_components.h"
+
 #include "libavutil/internal.h"
 #include "libavutil/opt.h"
 #include "libavutil/thread.h"
diff --git a/libavcodec/mpegaudiodec_fixed.c b/libavcodec/mpegaudiodec_fixed.c
index f9f24330fd..ac0b1f3bb3 100644
--- a/libavcodec/mpegaudiodec_fixed.c
+++ b/libavcodec/mpegaudiodec_fixed.c
@@ -19,6 +19,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 #include "libavutil/samplefmt.h"
 
 #define USE_FLOATS 0
diff --git a/libavcodec/mpegaudiodec_float.c b/libavcodec/mpegaudiodec_float.c
index c7b7839997..912e6d189a 100644
--- a/libavcodec/mpegaudiodec_float.c
+++ b/libavcodec/mpegaudiodec_float.c
@@ -20,6 +20,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 #include "libavutil/samplefmt.h"
 
 #define USE_FLOATS 1
diff --git a/libavcodec/mpegaudiodec_template.c b/libavcodec/mpegaudiodec_template.c
index bbb6ff1120..27e4fa1cc7 100644
--- a/libavcodec/mpegaudiodec_template.c
+++ b/libavcodec/mpegaudiodec_template.c
@@ -24,6 +24,8 @@
  * MPEG Audio decoder
  */
 
+#include "config_components.h"
+
 #include "libavutil/attributes.h"
 #include "libavutil/avassert.h"
 #include "libavutil/channel_layout.h"
diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c
index fc970e9614..3c793bcc22 100644
--- a/libavcodec/mpegvideo.c
+++ b/libavcodec/mpegvideo.c
@@ -27,6 +27,8 @@
  * The simplest mpeg encoder (well, it was the simplest!).
  */
 
+#include "config_components.h"
+
 #include "libavutil/attributes.h"
 #include "libavutil/avassert.h"
 #include "libavutil/imgutils.h"
diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c
index c69114ea15..71c999fab0 100644
--- a/libavcodec/mpegvideo_enc.c
+++ b/libavcodec/mpegvideo_enc.c
@@ -31,6 +31,8 @@
  * The simplest mpeg encoder (well, it was the simplest!).
  */
 
+#include "config_components.h"
+
 #include <stdint.h>
 
 #include "libavutil/internal.h"
diff --git a/libavcodec/mpegvideo_motion.c b/libavcodec/mpegvideo_motion.c
index 876a7375f8..9a450b7c8e 100644
--- a/libavcodec/mpegvideo_motion.c
+++ b/libavcodec/mpegvideo_motion.c
@@ -21,6 +21,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avassert.h"
 #include "libavutil/internal.h"
 #include "libavutil/mem_internal.h"
diff --git a/libavcodec/msmpeg4.c b/libavcodec/msmpeg4.c
index f12586dd64..455436e9c4 100644
--- a/libavcodec/msmpeg4.c
+++ b/libavcodec/msmpeg4.c
@@ -27,6 +27,8 @@
  * MSMPEG4 backend for encoder and decoder
  */
 
+#include "config_components.h"
+
 #include "libavutil/thread.h"
 
 #include "avcodec.h"
diff --git a/libavcodec/msmpeg4dec.c b/libavcodec/msmpeg4dec.c
index 29edd94427..afbeda4fac 100644
--- a/libavcodec/msmpeg4dec.c
+++ b/libavcodec/msmpeg4dec.c
@@ -22,6 +22,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/thread.h"
 
 #include "avcodec.h"
diff --git a/libavcodec/mvcdec.c b/libavcodec/mvcdec.c
index ae5ce4c0d7..410fd95875 100644
--- a/libavcodec/mvcdec.c
+++ b/libavcodec/mvcdec.c
@@ -24,6 +24,8 @@
  * Silicon Graphics Motion Video Compressor 1 & 2 decoder
  */
 
+#include "config_components.h"
+
 #include "libavutil/intreadwrite.h"
 
 #include "avcodec.h"
diff --git a/libavcodec/nvdec.c b/libavcodec/nvdec.c
index 251be039a8..edff46d310 100644
--- a/libavcodec/nvdec.c
+++ b/libavcodec/nvdec.c
@@ -21,6 +21,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 
 #include "libavutil/common.h"
 #include "libavutil/error.h"
diff --git a/libavcodec/nvdec_mjpeg.c b/libavcodec/nvdec_mjpeg.c
index be39d23bae..87f7a99a46 100644
--- a/libavcodec/nvdec_mjpeg.c
+++ b/libavcodec/nvdec_mjpeg.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "avcodec.h"
 #include "internal.h"
 #include "mjpegdec.h"
diff --git a/libavcodec/nvdec_mpeg12.c b/libavcodec/nvdec_mpeg12.c
index b8db4250bb..e10735587d 100644
--- a/libavcodec/nvdec_mpeg12.c
+++ b/libavcodec/nvdec_mpeg12.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "avcodec.h"
 #include "internal.h"
 #include "mpegvideo.h"
diff --git a/libavcodec/nvdec_vc1.c b/libavcodec/nvdec_vc1.c
index 2355f210de..fae1cb0ab2 100644
--- a/libavcodec/nvdec_vc1.c
+++ b/libavcodec/nvdec_vc1.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "avcodec.h"
 #include "internal.h"
 #include "nvdec.h"
diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c
index effd6381da..b6bcec8246 100644
--- a/libavcodec/nvenc.c
+++ b/libavcodec/nvenc.c
@@ -20,6 +20,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 
 #include "nvenc.h"
 #include "hevc_sei.h"
diff --git a/libavcodec/options.c b/libavcodec/options.c
index bba6078b62..5e396e9f29 100644
--- a/libavcodec/options.c
+++ b/libavcodec/options.c
@@ -24,6 +24,8 @@
  * Options definition for AVCodecContext.
  */
 
+#include "config_components.h"
+
 #include "avcodec.h"
 #include "internal.h"
 #include "libavutil/avassert.h"
diff --git a/libavcodec/options_table.h b/libavcodec/options_table.h
index 7eb974672e..5edd7f5ed8 100644
--- a/libavcodec/options_table.h
+++ b/libavcodec/options_table.h
@@ -22,6 +22,8 @@
 #ifndef AVCODEC_OPTIONS_TABLE_H
 #define AVCODEC_OPTIONS_TABLE_H
 
+#include "config_components.h"
+
 #include <float.h>
 #include <limits.h>
 #include <stdint.h>
diff --git a/libavcodec/opus_pvq.c b/libavcodec/opus_pvq.c
index a4ab7c46eb..750360d737 100644
--- a/libavcodec/opus_pvq.c
+++ b/libavcodec/opus_pvq.c
@@ -23,6 +23,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "opustab.h"
 #include "opus_pvq.h"
 
diff --git a/libavcodec/pcm.c b/libavcodec/pcm.c
index e9b8eab484..e535446765 100644
--- a/libavcodec/pcm.c
+++ b/libavcodec/pcm.c
@@ -25,6 +25,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 #include "libavutil/attributes.h"
 #include "libavutil/float_dsp.h"
 #include "libavutil/thread.h"
diff --git a/libavcodec/pngdec.c b/libavcodec/pngdec.c
index a335a29b08..bd6feeadef 100644
--- a/libavcodec/pngdec.c
+++ b/libavcodec/pngdec.c
@@ -21,6 +21,8 @@
 
 //#define DEBUG
 
+#include "config_components.h"
+
 #include "libavutil/avassert.h"
 #include "libavutil/bprint.h"
 #include "libavutil/crc.h"
diff --git a/libavcodec/pnmdec.c b/libavcodec/pnmdec.c
index 01f9dade1a..57c426b0c9 100644
--- a/libavcodec/pnmdec.c
+++ b/libavcodec/pnmdec.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "avcodec.h"
 #include "internal.h"
 #include "put_bits.h"
diff --git a/libavcodec/pnmenc.c b/libavcodec/pnmenc.c
index 8378f90d08..58337a6499 100644
--- a/libavcodec/pnmenc.c
+++ b/libavcodec/pnmenc.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/intreadwrite.h"
 #include "libavutil/imgutils.h"
 #include "libavutil/pixdesc.h"
diff --git a/libavcodec/proresdec2.c b/libavcodec/proresdec2.c
index 3ab6666f74..e3016df55d 100644
--- a/libavcodec/proresdec2.c
+++ b/libavcodec/proresdec2.c
@@ -28,6 +28,8 @@
 
 #define LONG_BITSTREAM_READER
 
+#include "config_components.h"
+
 #include "libavutil/internal.h"
 #include "libavutil/mem_internal.h"
 
diff --git a/libavcodec/qpeldsp.c b/libavcodec/qpeldsp.c
index 6e52b33657..c1eab6120d 100644
--- a/libavcodec/qpeldsp.c
+++ b/libavcodec/qpeldsp.c
@@ -29,6 +29,7 @@
 #include <stdint.h>
 
 #include "config.h"
+#include "config_components.h"
 #include "libavutil/attributes.h"
 #include "copy_block.h"
 #include "qpeldsp.h"
diff --git a/libavcodec/qsvdec.c b/libavcodec/qsvdec.c
index 6236391357..1b5bf85cb6 100644
--- a/libavcodec/qsvdec.c
+++ b/libavcodec/qsvdec.c
@@ -21,6 +21,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include <stdint.h>
 #include <string.h>
 #include <sys/types.h>
diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c
index 9b71487666..55ce3d2499 100644
--- a/libavcodec/qsvenc.c
+++ b/libavcodec/qsvenc.c
@@ -21,6 +21,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include <string.h>
 #include <sys/types.h>
 #include <mfx/mfxvideo.h>
diff --git a/libavcodec/r210dec.c b/libavcodec/r210dec.c
index 476f1c0680..3acb5e58c7 100644
--- a/libavcodec/r210dec.c
+++ b/libavcodec/r210dec.c
@@ -21,6 +21,7 @@
  */
 
 #include "avcodec.h"
+#include "config_components.h"
 #include "internal.h"
 #include "libavutil/bswap.h"
 #include "libavutil/common.h"
diff --git a/libavcodec/r210enc.c b/libavcodec/r210enc.c
index 7a72ba4695..cd349f3b4f 100644
--- a/libavcodec/r210enc.c
+++ b/libavcodec/r210enc.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "avcodec.h"
 #include "encode.h"
 #include "internal.h"
diff --git a/libavcodec/rv34_parser.c b/libavcodec/rv34_parser.c
index 03469ed0d1..e17bc8562d 100644
--- a/libavcodec/rv34_parser.c
+++ b/libavcodec/rv34_parser.c
@@ -24,6 +24,8 @@
  * RV30/40 parser
  */
 
+#include "config_components.h"
+
 #include "parser.h"
 #include "libavutil/intreadwrite.h"
 
diff --git a/libavcodec/sonic.c b/libavcodec/sonic.c
index cf1cfb1460..560a5fc242 100644
--- a/libavcodec/sonic.c
+++ b/libavcodec/sonic.c
@@ -18,6 +18,9 @@
  * 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_components.h"
+
 #include "avcodec.h"
 #include "encode.h"
 #include "get_bits.h"
diff --git a/libavcodec/sp5xdec.c b/libavcodec/sp5xdec.c
index a1b43f8f80..e17e0d97b9 100644
--- a/libavcodec/sp5xdec.c
+++ b/libavcodec/sp5xdec.c
@@ -24,6 +24,8 @@
  * Sunplus JPEG decoder (SP5X).
  */
 
+#include "config_components.h"
+
 #include "avcodec.h"
 #include "internal.h"
 #include "mjpeg.h"
diff --git a/libavcodec/speedhq.c b/libavcodec/speedhq.c
index fd4ea0d75e..77c5e46e4b 100644
--- a/libavcodec/speedhq.c
+++ b/libavcodec/speedhq.c
@@ -27,6 +27,7 @@
 #define BITSTREAM_READER_LE
 
 #include "config.h"
+#include "config_components.h"
 #include "libavutil/attributes.h"
 #include "libavutil/mem_internal.h"
 
diff --git a/libavcodec/speedhqenc.c b/libavcodec/speedhqenc.c
index e59af7f0d3..cd7b6e1763 100644
--- a/libavcodec/speedhqenc.c
+++ b/libavcodec/speedhqenc.c
@@ -27,6 +27,8 @@
  * SpeedHQ encoder.
  */
 
+#include "config_components.h"
+
 #include "libavutil/thread.h"
 
 #include "avcodec.h"
diff --git a/libavcodec/srtdec.c b/libavcodec/srtdec.c
index 4f16226b83..f7c131ff3d 100644
--- a/libavcodec/srtdec.c
+++ b/libavcodec/srtdec.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avstring.h"
 #include "libavutil/common.h"
 #include "libavutil/intreadwrite.h"
diff --git a/libavcodec/srtenc.c b/libavcodec/srtenc.c
index 2e3ac55770..508770e319 100644
--- a/libavcodec/srtenc.c
+++ b/libavcodec/srtenc.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include <stdarg.h>
 #include "avcodec.h"
 #include "libavutil/avstring.h"
diff --git a/libavcodec/tests/dct.c b/libavcodec/tests/dct.c
index eab39e9468..c847af2f11 100644
--- a/libavcodec/tests/dct.c
+++ b/libavcodec/tests/dct.c
@@ -26,6 +26,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
diff --git a/libavcodec/tests/x86/dct.c b/libavcodec/tests/x86/dct.c
index 104a0f8e0c..b332c9642d 100644
--- a/libavcodec/tests/x86/dct.c
+++ b/libavcodec/tests/x86/dct.c
@@ -17,6 +17,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 
 #include "libavutil/cpu.h"
 #include "libavutil/mem_internal.h"
diff --git a/libavcodec/textdec.c b/libavcodec/textdec.c
index 308553660a..420fcd1b14 100644
--- a/libavcodec/textdec.c
+++ b/libavcodec/textdec.c
@@ -23,6 +23,8 @@
  * Raw subtitles decoder
  */
 
+#include "config_components.h"
+
 #include "avcodec.h"
 #include "ass.h"
 #include "internal.h"
diff --git a/libavcodec/v408dec.c b/libavcodec/v408dec.c
index 749b3b65e5..f1b84421b1 100644
--- a/libavcodec/v408dec.c
+++ b/libavcodec/v408dec.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "avcodec.h"
 #include "internal.h"
 
diff --git a/libavcodec/v408enc.c b/libavcodec/v408enc.c
index 31bf48406c..50766772c2 100644
--- a/libavcodec/v408enc.c
+++ b/libavcodec/v408enc.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/intreadwrite.h"
 #include "avcodec.h"
 #include "encode.h"
diff --git a/libavcodec/vaapi_decode.c b/libavcodec/vaapi_decode.c
index da0e72b10b..a7abddb06b 100644
--- a/libavcodec/vaapi_decode.c
+++ b/libavcodec/vaapi_decode.c
@@ -16,6 +16,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avassert.h"
 #include "libavutil/common.h"
 #include "libavutil/pixdesc.h"
diff --git a/libavcodec/vaapi_encode.c b/libavcodec/vaapi_encode.c
index 8c6e881702..ffd6cb1c25 100644
--- a/libavcodec/vaapi_encode.c
+++ b/libavcodec/vaapi_encode.c
@@ -16,6 +16,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include <inttypes.h>
 #include <string.h>
 
diff --git a/libavcodec/vaapi_mpeg4.c b/libavcodec/vaapi_mpeg4.c
index d2d9b9b322..ca3f3b22f6 100644
--- a/libavcodec/vaapi_mpeg4.c
+++ b/libavcodec/vaapi_mpeg4.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "h263.h"
 #include "hwconfig.h"
 #include "mpeg4videodec.h"
diff --git a/libavcodec/vaapi_vc1.c b/libavcodec/vaapi_vc1.c
index 76e0a1e941..d82336a3b3 100644
--- a/libavcodec/vaapi_vc1.c
+++ b/libavcodec/vaapi_vc1.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "hwconfig.h"
 #include "mpegvideodec.h"
 #include "vaapi_decode.h"
diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c
index d9939a8ba1..1c92b9d401 100644
--- a/libavcodec/vc1dec.c
+++ b/libavcodec/vc1dec.c
@@ -26,6 +26,8 @@
  * VC-1 and WMV3 decoder
  */
 
+#include "config_components.h"
+
 #include "avcodec.h"
 #include "blockdsp.h"
 #include "get_bits.h"
diff --git a/libavcodec/vc1dsp.c b/libavcodec/vc1dsp.c
index 04fc8b12f3..a29b91bf3d 100644
--- a/libavcodec/vc1dsp.c
+++ b/libavcodec/vc1dsp.c
@@ -24,6 +24,8 @@
  * VC-1 and WMV3 decoder
  */
 
+#include "config_components.h"
+
 #include "libavutil/avassert.h"
 #include "libavutil/common.h"
 #include "libavutil/intreadwrite.h"
diff --git a/libavcodec/vdpau.c b/libavcodec/vdpau.c
index 5072071c70..0bb793c010 100644
--- a/libavcodec/vdpau.c
+++ b/libavcodec/vdpau.c
@@ -21,6 +21,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include <limits.h>
 
 #include "avcodec.h"
diff --git a/libavcodec/vdpau_mpeg12.c b/libavcodec/vdpau_mpeg12.c
index 72220ffb4e..354239cad5 100644
--- a/libavcodec/vdpau_mpeg12.c
+++ b/libavcodec/vdpau_mpeg12.c
@@ -21,6 +21,8 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include <vdpau/vdpau.h>
 
 #include "avcodec.h"
diff --git a/libavcodec/vdpau_vc1.c b/libavcodec/vdpau_vc1.c
index 96c91b58be..00b33f420b 100644
--- a/libavcodec/vdpau_vc1.c
+++ b/libavcodec/vdpau_vc1.c
@@ -21,6 +21,8 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include <vdpau/vdpau.h>
 
 #include "avcodec.h"
diff --git a/libavcodec/videotoolbox.c b/libavcodec/videotoolbox.c
index 29c781cda4..9083f6ff29 100644
--- a/libavcodec/videotoolbox.c
+++ b/libavcodec/videotoolbox.c
@@ -21,6 +21,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 #include "videotoolbox.h"
 #include "libavutil/hwcontext_videotoolbox.h"
 #include "vt_internal.h"
diff --git a/libavcodec/vorbis_parser.c b/libavcodec/vorbis_parser.c
index 194ae13da3..a7d15d4ce9 100644
--- a/libavcodec/vorbis_parser.c
+++ b/libavcodec/vorbis_parser.c
@@ -25,6 +25,8 @@
  * Determines the duration for each packet.
  */
 
+#include "config_components.h"
+
 #include "libavutil/log.h"
 
 #include "get_bits.h"
diff --git a/libavcodec/vp3.c b/libavcodec/vp3.c
index e2418eb6fa..64532a70db 100644
--- a/libavcodec/vp3.c
+++ b/libavcodec/vp3.c
@@ -30,6 +30,8 @@
  * Theora decoder by Alex Beregszaszi
  */
 
+#include "config_components.h"
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/libavcodec/vp56dsp.c b/libavcodec/vp56dsp.c
index de6803e0fb..d368e3292d 100644
--- a/libavcodec/vp56dsp.c
+++ b/libavcodec/vp56dsp.c
@@ -22,6 +22,7 @@
 #include <stdint.h>
 
 #include "config.h"
+#include "config_components.h"
 #include "libavutil/attributes.h"
 #include "vp56dsp.h"
 #include "libavutil/common.h"
diff --git a/libavcodec/vp8.c b/libavcodec/vp8.c
index d779804e64..08338bc247 100644
--- a/libavcodec/vp8.c
+++ b/libavcodec/vp8.c
@@ -24,6 +24,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/imgutils.h"
 #include "libavutil/mem_internal.h"
 
diff --git a/libavcodec/vp8dsp.c b/libavcodec/vp8dsp.c
index 732a483b62..23f49b2c25 100644
--- a/libavcodec/vp8dsp.c
+++ b/libavcodec/vp8dsp.c
@@ -25,6 +25,8 @@
  * VP8 compatible video decoder
  */
 
+#include "config_components.h"
+
 #include "libavutil/common.h"
 #include "libavutil/intreadwrite.h"
 
diff --git a/libavcodec/vp9.c b/libavcodec/vp9.c
index 7ef10f7a80..5da1b8a72e 100644
--- a/libavcodec/vp9.c
+++ b/libavcodec/vp9.c
@@ -21,6 +21,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "avcodec.h"
 #include "get_bits.h"
 #include "hwconfig.h"
diff --git a/libavcodec/wmadec.c b/libavcodec/wmadec.c
index 9955aaa7d6..a27eb368e8 100644
--- a/libavcodec/wmadec.c
+++ b/libavcodec/wmadec.c
@@ -33,6 +33,8 @@
  * should be 4 extra bytes for v1 data and 6 extra bytes for v2 data.
  */
 
+#include "config_components.h"
+
 #include "libavutil/attributes.h"
 #include "libavutil/ffmath.h"
 
diff --git a/libavcodec/wmaenc.c b/libavcodec/wmaenc.c
index 66e3537cb0..7bd89556ea 100644
--- a/libavcodec/wmaenc.c
+++ b/libavcodec/wmaenc.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/attributes.h"
 #include "libavutil/ffmath.h"
 
diff --git a/libavcodec/x86/flacdsp_init.c b/libavcodec/x86/flacdsp_init.c
index 6315b6903e..ed2e5ed15b 100644
--- a/libavcodec/x86/flacdsp_init.c
+++ b/libavcodec/x86/flacdsp_init.c
@@ -22,6 +22,7 @@
 #include "libavcodec/flacdsp.h"
 #include "libavutil/x86/cpu.h"
 #include "config.h"
+#include "config_components.h"
 
 void ff_flac_lpc_32_sse4(int32_t *samples, const int coeffs[32], int order,
                          int qlevel, int len);
diff --git a/libavcodec/x86/hpeldsp_init.c b/libavcodec/x86/hpeldsp_init.c
index d89928cec6..6336587281 100644
--- a/libavcodec/x86/hpeldsp_init.c
+++ b/libavcodec/x86/hpeldsp_init.c
@@ -22,6 +22,8 @@
  * MMX optimization by Nick Kurshev <nickols_k@mail.ru>
  */
 
+#include "config_components.h"
+
 #include "libavutil/attributes.h"
 #include "libavutil/cpu.h"
 #include "libavutil/x86/cpu.h"
diff --git a/libavdevice/alsa.c b/libavdevice/alsa.c
index ee282fac16..248298573e 100644
--- a/libavdevice/alsa.c
+++ b/libavdevice/alsa.c
@@ -28,6 +28,8 @@
  * @author Nicolas George ( nicolas george normalesup org )
  */
 
+#include "config_components.h"
+
 #include <alsa/asoundlib.h>
 #include "avdevice.h"
 #include "libavutil/avassert.h"
diff --git a/libavdevice/iec61883.c b/libavdevice/iec61883.c
index 72e14abff2..7223ba2e64 100644
--- a/libavdevice/iec61883.c
+++ b/libavdevice/iec61883.c
@@ -23,6 +23,8 @@
  * libiec61883 interface
  */
 
+#include "config_components.h"
+
 #include <poll.h>
 #include <libraw1394/raw1394.h>
 #include <libavc1394/avc1394.h>
diff --git a/libavfilter/aeval.c b/libavfilter/aeval.c
index 42cfa81325..3717d9057a 100644
--- a/libavfilter/aeval.c
+++ b/libavfilter/aeval.c
@@ -23,6 +23,8 @@
  * eval audio source
  */
 
+#include "config_components.h"
+
 #include "libavutil/avstring.h"
 #include "libavutil/channel_layout.h"
 #include "libavutil/eval.h"
diff --git a/libavfilter/af_afade.c b/libavfilter/af_afade.c
index c57709050e..5f12b1da43 100644
--- a/libavfilter/af_afade.c
+++ b/libavfilter/af_afade.c
@@ -23,6 +23,8 @@
  * fade audio filter
  */
 
+#include "config_components.h"
+
 #include "libavutil/opt.h"
 #include "audio.h"
 #include "avfilter.h"
diff --git a/libavfilter/af_agate.c b/libavfilter/af_agate.c
index 682f17c7dd..00990056cc 100644
--- a/libavfilter/af_agate.c
+++ b/libavfilter/af_agate.c
@@ -23,6 +23,8 @@
  * Audio (Sidechain) Gate filter
  */
 
+#include "config_components.h"
+
 #include "libavutil/audio_fifo.h"
 #include "libavutil/channel_layout.h"
 #include "libavutil/opt.h"
diff --git a/libavfilter/af_biquads.c b/libavfilter/af_biquads.c
index ee42b2a034..0da2643a3b 100644
--- a/libavfilter/af_biquads.c
+++ b/libavfilter/af_biquads.c
@@ -62,6 +62,8 @@
  *               V
  */
 
+#include "config_components.h"
+
 #include "libavutil/avassert.h"
 #include "libavutil/channel_layout.h"
 #include "libavutil/ffmath.h"
diff --git a/libavfilter/af_sidechaincompress.c b/libavfilter/af_sidechaincompress.c
index c0ce82066b..f2bb55bc97 100644
--- a/libavfilter/af_sidechaincompress.c
+++ b/libavfilter/af_sidechaincompress.c
@@ -24,6 +24,8 @@
  * Audio (Sidechain) Compressor filter
  */
 
+#include "config_components.h"
+
 #include "libavutil/audio_fifo.h"
 #include "libavutil/channel_layout.h"
 #include "libavutil/common.h"
diff --git a/libavfilter/avf_showspectrum.c b/libavfilter/avf_showspectrum.c
index 610dc98c93..402868b5bb 100644
--- a/libavfilter/avf_showspectrum.c
+++ b/libavfilter/avf_showspectrum.c
@@ -26,6 +26,8 @@
  * (by Michael Niedermayer) and lavfi/avf_showwaves (by Stefano Sabatini).
  */
 
+#include "config_components.h"
+
 #include <float.h>
 #include <math.h>
 
diff --git a/libavfilter/avf_showwaves.c b/libavfilter/avf_showwaves.c
index 853f6bbdcb..cd9c96486c 100644
--- a/libavfilter/avf_showwaves.c
+++ b/libavfilter/avf_showwaves.c
@@ -23,6 +23,8 @@
  * audio to video multimedia filter
  */
 
+#include "config_components.h"
+
 #include "libavutil/avassert.h"
 #include "libavutil/avstring.h"
 #include "libavutil/channel_layout.h"
diff --git a/libavfilter/f_bench.c b/libavfilter/f_bench.c
index 109a530d7c..9b55194dbc 100644
--- a/libavfilter/f_bench.c
+++ b/libavfilter/f_bench.c
@@ -16,6 +16,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/opt.h"
 #include "libavutil/time.h"
 #include "avfilter.h"
diff --git a/libavfilter/f_cue.c b/libavfilter/f_cue.c
index d90fe54b9a..9a1b7c03b8 100644
--- a/libavfilter/f_cue.c
+++ b/libavfilter/f_cue.c
@@ -18,6 +18,8 @@
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/opt.h"
 #include "libavutil/time.h"
 #include "avfilter.h"
diff --git a/libavfilter/f_drawgraph.c b/libavfilter/f_drawgraph.c
index b6fcb3b75e..000255fc52 100644
--- a/libavfilter/f_drawgraph.c
+++ b/libavfilter/f_drawgraph.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "float.h"
 
 #include "libavutil/avstring.h"
diff --git a/libavfilter/f_graphmonitor.c b/libavfilter/f_graphmonitor.c
index 9cc5ea940e..e6a7c08360 100644
--- a/libavfilter/f_graphmonitor.c
+++ b/libavfilter/f_graphmonitor.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "float.h"
 
 #include "libavutil/pixdesc.h"
diff --git a/libavfilter/f_interleave.c b/libavfilter/f_interleave.c
index b60e89762f..74597a0ec6 100644
--- a/libavfilter/f_interleave.c
+++ b/libavfilter/f_interleave.c
@@ -23,6 +23,8 @@
  * audio and video interleaver
  */
 
+#include "config_components.h"
+
 #include "libavutil/avassert.h"
 #include "libavutil/avstring.h"
 #include "libavutil/opt.h"
diff --git a/libavfilter/f_latency.c b/libavfilter/f_latency.c
index 6f16d6677e..f04fd726f2 100644
--- a/libavfilter/f_latency.c
+++ b/libavfilter/f_latency.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/opt.h"
 #include "avfilter.h"
 #include "filters.h"
diff --git a/libavfilter/f_loop.c b/libavfilter/f_loop.c
index f8ae4a6a3a..fff503776d 100644
--- a/libavfilter/f_loop.c
+++ b/libavfilter/f_loop.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/audio_fifo.h"
 #include "libavutil/fifo.h"
 #include "libavutil/internal.h"
diff --git a/libavfilter/f_metadata.c b/libavfilter/f_metadata.c
index 5f5091e9b7..82491f2bb8 100644
--- a/libavfilter/f_metadata.c
+++ b/libavfilter/f_metadata.c
@@ -23,6 +23,8 @@
  * filter for manipulating frame metadata
  */
 
+#include "config_components.h"
+
 #include <float.h>
 
 #include "libavutil/avassert.h"
diff --git a/libavfilter/f_perms.c b/libavfilter/f_perms.c
index 5e2f4ecdf4..e26a15fd06 100644
--- a/libavfilter/f_perms.c
+++ b/libavfilter/f_perms.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/lfg.h"
 #include "libavutil/opt.h"
 #include "libavutil/random_seed.h"
diff --git a/libavfilter/f_realtime.c b/libavfilter/f_realtime.c
index 9a60ded0ca..78da5dc3a7 100644
--- a/libavfilter/f_realtime.c
+++ b/libavfilter/f_realtime.c
@@ -18,6 +18,8 @@
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/opt.h"
 #include "libavutil/time.h"
 #include "avfilter.h"
diff --git a/libavfilter/f_reverse.c b/libavfilter/f_reverse.c
index f7a7e716fa..813a32d0e9 100644
--- a/libavfilter/f_reverse.c
+++ b/libavfilter/f_reverse.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/opt.h"
 #include "avfilter.h"
 #include "formats.h"
diff --git a/libavfilter/f_segment.c b/libavfilter/f_segment.c
index dd94eb9360..03a071a05b 100644
--- a/libavfilter/f_segment.c
+++ b/libavfilter/f_segment.c
@@ -16,6 +16,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include <stdint.h>
 
 #include "libavutil/avstring.h"
diff --git a/libavfilter/f_select.c b/libavfilter/f_select.c
index b61d88f4fe..1cfe2d59e5 100644
--- a/libavfilter/f_select.c
+++ b/libavfilter/f_select.c
@@ -23,6 +23,8 @@
  * filter for selecting which frame passes in the filterchain
  */
 
+#include "config_components.h"
+
 #include "libavutil/avstring.h"
 #include "libavutil/eval.h"
 #include "libavutil/fifo.h"
diff --git a/libavfilter/f_sendcmd.c b/libavfilter/f_sendcmd.c
index 04bfc84a06..857b841313 100644
--- a/libavfilter/f_sendcmd.c
+++ b/libavfilter/f_sendcmd.c
@@ -23,6 +23,8 @@
  * send commands filter
  */
 
+#include "config_components.h"
+
 #include "libavutil/avstring.h"
 #include "libavutil/bprint.h"
 #include "libavutil/eval.h"
diff --git a/libavfilter/f_sidedata.c b/libavfilter/f_sidedata.c
index 8eccd4a06e..82bbaa0e7e 100644
--- a/libavfilter/f_sidedata.c
+++ b/libavfilter/f_sidedata.c
@@ -21,6 +21,8 @@
  * filter for manipulating frame side data
  */
 
+#include "config_components.h"
+
 #include "libavutil/avassert.h"
 #include "libavutil/internal.h"
 #include "libavutil/frame.h"
diff --git a/libavfilter/f_zmq.c b/libavfilter/f_zmq.c
index 3bd195f0b2..156670dad4 100644
--- a/libavfilter/f_zmq.c
+++ b/libavfilter/f_zmq.c
@@ -23,6 +23,8 @@
  * receive commands through libzeromq and broker them to filters
  */
 
+#include "config_components.h"
+
 #include <zmq.h>
 #include "libavutil/avstring.h"
 #include "libavutil/bprint.h"
diff --git a/libavfilter/lut3d.h b/libavfilter/lut3d.h
index bc32eac91c..97cd413233 100644
--- a/libavfilter/lut3d.h
+++ b/libavfilter/lut3d.h
@@ -21,6 +21,8 @@
 #ifndef AVFILTER_LUT3D_H
 #define AVFILTER_LUT3D_H
 
+#include "config_components.h"
+
 #include "libavutil/pixdesc.h"
 #include "framesync.h"
 #include "avfilter.h"
diff --git a/libavfilter/setpts.c b/libavfilter/setpts.c
index 054feb05f1..171fae88c0 100644
--- a/libavfilter/setpts.c
+++ b/libavfilter/setpts.c
@@ -24,6 +24,8 @@
  * video presentation timestamp (PTS) modification filter
  */
 
+#include "config_components.h"
+
 #include <inttypes.h>
 
 #include "libavutil/eval.h"
diff --git a/libavfilter/settb.c b/libavfilter/settb.c
index 67d310afbd..5f589004f8 100644
--- a/libavfilter/settb.c
+++ b/libavfilter/settb.c
@@ -23,6 +23,8 @@
  * Set timebase for the output link.
  */
 
+#include "config_components.h"
+
 #include <inttypes.h>
 #include <stdio.h>
 
diff --git a/libavfilter/src_movie.c b/libavfilter/src_movie.c
index b89a680883..86b304213b 100644
--- a/libavfilter/src_movie.c
+++ b/libavfilter/src_movie.c
@@ -27,6 +27,8 @@
  * @todo support a PTS correction mechanism
  */
 
+#include "config_components.h"
+
 #include <float.h>
 #include <stdint.h>
 
diff --git a/libavfilter/trim.c b/libavfilter/trim.c
index e627903c64..06c50cd91a 100644
--- a/libavfilter/trim.c
+++ b/libavfilter/trim.c
@@ -19,6 +19,7 @@
 #include <stdint.h>
 
 #include "config.h"
+#include "config_components.h"
 
 #include "libavutil/channel_layout.h"
 #include "libavutil/common.h"
diff --git a/libavfilter/vf_aspect.c b/libavfilter/vf_aspect.c
index 2d1eaa954b..0a10a5a176 100644
--- a/libavfilter/vf_aspect.c
+++ b/libavfilter/vf_aspect.c
@@ -23,6 +23,8 @@
  * aspect ratio modification video filters
  */
 
+#include "config_components.h"
+
 #include <float.h>
 
 #include "libavutil/common.h"
diff --git a/libavfilter/vf_avgblur_opencl.c b/libavfilter/vf_avgblur_opencl.c
index 53cd1b8f48..7c0578b694 100644
--- a/libavfilter/vf_avgblur_opencl.c
+++ b/libavfilter/vf_avgblur_opencl.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/common.h"
 #include "libavutil/imgutils.h"
 #include "libavutil/opt.h"
diff --git a/libavfilter/vf_blend.c b/libavfilter/vf_blend.c
index 2d433e439f..c882086c51 100644
--- a/libavfilter/vf_blend.c
+++ b/libavfilter/vf_blend.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/imgutils.h"
 #include "libavutil/intfloat.h"
 #include "libavutil/eval.h"
diff --git a/libavfilter/vf_colorconstancy.c b/libavfilter/vf_colorconstancy.c
index ba6359462e..db7e20df53 100644
--- a/libavfilter/vf_colorconstancy.c
+++ b/libavfilter/vf_colorconstancy.c
@@ -28,6 +28,8 @@
  * J. van de Weijer, Th. Gevers, A. Gijsenij "Edge-Based Color Constancy".
  */
 
+#include "config_components.h"
+
 #include "libavutil/imgutils.h"
 #include "libavutil/opt.h"
 #include "libavutil/pixdesc.h"
diff --git a/libavfilter/vf_colorkey.c b/libavfilter/vf_colorkey.c
index ed43722c03..96e0f12878 100644
--- a/libavfilter/vf_colorkey.c
+++ b/libavfilter/vf_colorkey.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/opt.h"
 #include "libavutil/imgutils.h"
 #include "avfilter.h"
diff --git a/libavfilter/vf_convolution.c b/libavfilter/vf_convolution.c
index 6e6fe0d887..9a9c099e6d 100644
--- a/libavfilter/vf_convolution.c
+++ b/libavfilter/vf_convolution.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avstring.h"
 #include "libavutil/imgutils.h"
 #include "libavutil/intreadwrite.h"
diff --git a/libavfilter/vf_convolution_opencl.c b/libavfilter/vf_convolution_opencl.c
index d886c7aead..de3d38b553 100644
--- a/libavfilter/vf_convolution_opencl.c
+++ b/libavfilter/vf_convolution_opencl.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/common.h"
 #include "libavutil/imgutils.h"
 #include "libavutil/mem.h"
diff --git a/libavfilter/vf_convolve.c b/libavfilter/vf_convolve.c
index 55afb582b4..a61a32f007 100644
--- a/libavfilter/vf_convolve.c
+++ b/libavfilter/vf_convolve.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include <float.h>
 
 #include "libavutil/imgutils.h"
diff --git a/libavfilter/vf_drawbox.c b/libavfilter/vf_drawbox.c
index 919652e50f..f1da075fe2 100644
--- a/libavfilter/vf_drawbox.c
+++ b/libavfilter/vf_drawbox.c
@@ -25,6 +25,8 @@
  * that needs to write in the input frame.
  */
 
+#include "config_components.h"
+
 #include "libavutil/colorspace.h"
 #include "libavutil/common.h"
 #include "libavutil/opt.h"
diff --git a/libavfilter/vf_extractplanes.c b/libavfilter/vf_extractplanes.c
index 0b26d92269..60b55578cf 100644
--- a/libavfilter/vf_extractplanes.c
+++ b/libavfilter/vf_extractplanes.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avstring.h"
 #include "libavutil/imgutils.h"
 #include "libavutil/opt.h"
diff --git a/libavfilter/vf_format.c b/libavfilter/vf_format.c
index c78acbf87b..24b1c9ca61 100644
--- a/libavfilter/vf_format.c
+++ b/libavfilter/vf_format.c
@@ -23,6 +23,8 @@
  * format and noformat video filters
  */
 
+#include "config_components.h"
+
 #include <string.h>
 
 #include "libavutil/internal.h"
diff --git a/libavfilter/vf_histogram.c b/libavfilter/vf_histogram.c
index bf80b2c4fc..ced7cda6f4 100644
--- a/libavfilter/vf_histogram.c
+++ b/libavfilter/vf_histogram.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/colorspace.h"
 #include "libavutil/opt.h"
 #include "libavutil/parseutils.h"
diff --git a/libavfilter/vf_identity.c b/libavfilter/vf_identity.c
index cc30761388..84def7959b 100644
--- a/libavfilter/vf_identity.c
+++ b/libavfilter/vf_identity.c
@@ -23,6 +23,8 @@
  * Calculate the Identity between two input videos.
  */
 
+#include "config_components.h"
+
 #include "libavutil/avstring.h"
 #include "libavutil/opt.h"
 #include "libavutil/pixdesc.h"
diff --git a/libavfilter/vf_lut.c b/libavfilter/vf_lut.c
index fd5b364797..621291cdad 100644
--- a/libavfilter/vf_lut.c
+++ b/libavfilter/vf_lut.c
@@ -24,6 +24,8 @@
  * value, and apply it to input video.
  */
 
+#include "config_components.h"
+
 #include "libavutil/attributes.h"
 #include "libavutil/bswap.h"
 #include "libavutil/common.h"
diff --git a/libavfilter/vf_lut2.c b/libavfilter/vf_lut2.c
index 868c0496fa..49755544b0 100644
--- a/libavfilter/vf_lut2.c
+++ b/libavfilter/vf_lut2.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/attributes.h"
 #include "libavutil/common.h"
 #include "libavutil/eval.h"
diff --git a/libavfilter/vf_lut3d.c b/libavfilter/vf_lut3d.c
index 7ef96906fc..1880141e51 100644
--- a/libavfilter/vf_lut3d.c
+++ b/libavfilter/vf_lut3d.c
@@ -24,6 +24,8 @@
  * 3D Lookup table filter
  */
 
+#include "config_components.h"
+
 #include "float.h"
 
 #include "libavutil/opt.h"
diff --git a/libavfilter/vf_mix.c b/libavfilter/vf_mix.c
index 8206517579..c04504bba0 100644
--- a/libavfilter/vf_mix.c
+++ b/libavfilter/vf_mix.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avstring.h"
 #include "libavutil/imgutils.h"
 #include "libavutil/intreadwrite.h"
diff --git a/libavfilter/vf_neighbor.c b/libavfilter/vf_neighbor.c
index f48fb306b2..d6638779e5 100644
--- a/libavfilter/vf_neighbor.c
+++ b/libavfilter/vf_neighbor.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/imgutils.h"
 #include "libavutil/intreadwrite.h"
 #include "libavutil/pixdesc.h"
diff --git a/libavfilter/vf_neighbor_opencl.c b/libavfilter/vf_neighbor_opencl.c
index 98b04b2852..3b83cee3da 100644
--- a/libavfilter/vf_neighbor_opencl.c
+++ b/libavfilter/vf_neighbor_opencl.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/common.h"
 #include "libavutil/imgutils.h"
 #include "libavutil/opt.h"
diff --git a/libavfilter/vf_premultiply.c b/libavfilter/vf_premultiply.c
index 4b60de7b7b..e077d46a9a 100644
--- a/libavfilter/vf_premultiply.c
+++ b/libavfilter/vf_premultiply.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/imgutils.h"
 #include "libavutil/pixdesc.h"
 #include "libavutil/opt.h"
diff --git a/libavfilter/vf_program_opencl.c b/libavfilter/vf_program_opencl.c
index 5f3c71d95b..55c1e6547c 100644
--- a/libavfilter/vf_program_opencl.c
+++ b/libavfilter/vf_program_opencl.c
@@ -16,6 +16,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avstring.h"
 #include "libavutil/log.h"
 #include "libavutil/mem.h"
diff --git a/libavfilter/vf_setparams.c b/libavfilter/vf_setparams.c
index b3893adc13..95a2d15c02 100644
--- a/libavfilter/vf_setparams.c
+++ b/libavfilter/vf_setparams.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/pixfmt.h"
 #include "libavutil/opt.h"
 #include "avfilter.h"
diff --git a/libavfilter/vf_stack.c b/libavfilter/vf_stack.c
index f584e8349b..aa32a1bf5e 100644
--- a/libavfilter/vf_stack.c
+++ b/libavfilter/vf_stack.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avstring.h"
 #include "libavutil/imgutils.h"
 #include "libavutil/opt.h"
diff --git a/libavfilter/vf_subtitles.c b/libavfilter/vf_subtitles.c
index 3fc4eeb63d..84ba4c7196 100644
--- a/libavfilter/vf_subtitles.c
+++ b/libavfilter/vf_subtitles.c
@@ -30,6 +30,7 @@
 #include <ass/ass.h>
 
 #include "config.h"
+#include "config_components.h"
 #if CONFIG_SUBTITLES_FILTER
 # include "libavcodec/avcodec.h"
 # include "libavformat/avformat.h"
diff --git a/libavfilter/vf_xmedian.c b/libavfilter/vf_xmedian.c
index 148ab555bb..155e464ba6 100644
--- a/libavfilter/vf_xmedian.c
+++ b/libavfilter/vf_xmedian.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avstring.h"
 #include "libavutil/imgutils.h"
 #include "libavutil/intreadwrite.h"
diff --git a/libavfilter/vsrc_testsrc.c b/libavfilter/vsrc_testsrc.c
index 20b915d472..f859cf2f48 100644
--- a/libavfilter/vsrc_testsrc.c
+++ b/libavfilter/vsrc_testsrc.c
@@ -33,6 +33,8 @@
  * allyuv, smptebars and smptehdbars are by Paul B Mahol.
  */
 
+#include "config_components.h"
+
 #include <float.h>
 
 #include "libavutil/avassert.h"
diff --git a/libavformat/ac3dec.c b/libavformat/ac3dec.c
index ad9b65a9be..51461befd8 100644
--- a/libavformat/ac3dec.c
+++ b/libavformat/ac3dec.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avassert.h"
 #include "libavutil/crc.h"
 #include "libavcodec/ac3_parser.h"
diff --git a/libavformat/alp.c b/libavformat/alp.c
index f46bdb4511..d4a8db240e 100644
--- a/libavformat/alp.c
+++ b/libavformat/alp.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/channel_layout.h"
 #include "avformat.h"
 #include "internal.h"
diff --git a/libavformat/amr.c b/libavformat/amr.c
index bc22c2f84f..c366b8f1b0 100644
--- a/libavformat/amr.c
+++ b/libavformat/amr.c
@@ -23,6 +23,8 @@
 Write and read amr data according to RFC3267, http://www.ietf.org/rfc/rfc3267.txt?number=3267
 */
 
+#include "config_components.h"
+
 #include "libavutil/channel_layout.h"
 #include "libavutil/intreadwrite.h"
 #include "avformat.h"
diff --git a/libavformat/apm.c b/libavformat/apm.c
index 1ced771745..7bf399f663 100644
--- a/libavformat/apm.c
+++ b/libavformat/apm.c
@@ -19,6 +19,9 @@
  * 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_components.h"
+
 #include "avformat.h"
 #include "internal.h"
 #include "rawenc.h"
diff --git a/libavformat/aptxdec.c b/libavformat/aptxdec.c
index 7153e262a1..0fa5051785 100644
--- a/libavformat/aptxdec.c
+++ b/libavformat/aptxdec.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/opt.h"
 #include "avformat.h"
 
diff --git a/libavformat/argo_asf.c b/libavformat/argo_asf.c
index d26844d1e2..edf005c69d 100644
--- a/libavformat/argo_asf.c
+++ b/libavformat/argo_asf.c
@@ -19,6 +19,9 @@
  * 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_components.h"
+
 #include "libavutil/avstring.h"
 #include "avformat.h"
 #include "internal.h"
diff --git a/libavformat/argo_cvg.c b/libavformat/argo_cvg.c
index dfdf126c17..deca57a322 100644
--- a/libavformat/argo_cvg.c
+++ b/libavformat/argo_cvg.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avstring.h"
 #include "libavutil/channel_layout.h"
 #include "avformat.h"
diff --git a/libavformat/asfenc.c b/libavformat/asfenc.c
index 041019b186..5b34f98a2b 100644
--- a/libavformat/asfenc.c
+++ b/libavformat/asfenc.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avassert.h"
 #include "libavutil/dict.h"
 #include "libavutil/mathematics.h"
diff --git a/libavformat/au.c b/libavformat/au.c
index 9bd408f65c..4d5671f181 100644
--- a/libavformat/au.c
+++ b/libavformat/au.c
@@ -27,6 +27,8 @@
  * http://www.goice.co.jp/member/mo/formats/au.html
  */
 
+#include "config_components.h"
+
 #include "libavutil/bprint.h"
 #include "avformat.h"
 #include "internal.h"
diff --git a/libavformat/av1dec.c b/libavformat/av1dec.c
index 6e1c2a45ff..350f5360d5 100644
--- a/libavformat/av1dec.c
+++ b/libavformat/av1dec.c
@@ -20,6 +20,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 
 #include "libavutil/common.h"
 #include "libavutil/opt.h"
diff --git a/libavformat/avidec.c b/libavformat/avidec.c
index 455dce0733..3c749aec14 100644
--- a/libavformat/avidec.c
+++ b/libavformat/avidec.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include <inttypes.h>
 
 #include "libavutil/avassert.h"
diff --git a/libavformat/avienc.c b/libavformat/avienc.c
index be2493ce55..e36e88335f 100644
--- a/libavformat/avienc.c
+++ b/libavformat/avienc.c
@@ -25,6 +25,7 @@
 #include "internal.h"
 #include "avi.h"
 #include "avio_internal.h"
+#include "config_components.h"
 #include "riff.h"
 #include "mpegts.h"
 #include "libavformat/avlanguage.h"
diff --git a/libavformat/bintext.c b/libavformat/bintext.c
index 1270c7fb2c..0465b86f4b 100644
--- a/libavformat/bintext.c
+++ b/libavformat/bintext.c
@@ -30,6 +30,8 @@
  * iCEDraw File demuxer
  */
 
+#include "config_components.h"
+
 #include "libavutil/intreadwrite.h"
 #include "libavutil/opt.h"
 #include "libavutil/parseutils.h"
diff --git a/libavformat/bit.c b/libavformat/bit.c
index 380cbd37cd..b1dc237dce 100644
--- a/libavformat/bit.c
+++ b/libavformat/bit.c
@@ -18,6 +18,9 @@
  * 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_components.h"
+
 #include "avformat.h"
 #include "internal.h"
 #include "libavcodec/get_bits.h"
diff --git a/libavformat/codec2.c b/libavformat/codec2.c
index 0b992836b3..b10b5c34c4 100644
--- a/libavformat/codec2.c
+++ b/libavformat/codec2.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include <memory.h>
 #include "libavcodec/codec2utils.h"
 #include "libavutil/channel_layout.h"
diff --git a/libavformat/concat.c b/libavformat/concat.c
index faeba2293a..dc0985e40c 100644
--- a/libavformat/concat.c
+++ b/libavformat/concat.c
@@ -21,6 +21,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avstring.h"
 #include "libavutil/bprint.h"
 #include "libavutil/mem.h"
diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c
index 4709bc6615..1bd5aac956 100644
--- a/libavformat/dashenc.c
+++ b/libavformat/dashenc.c
@@ -21,6 +21,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 #if HAVE_UNISTD_H
 #include <unistd.h>
 #endif
diff --git a/libavformat/demux.c b/libavformat/demux.c
index ec34b65288..1fdee84933 100644
--- a/libavformat/demux.c
+++ b/libavformat/demux.c
@@ -22,6 +22,7 @@
 #include <stdint.h>
 
 #include "config.h"
+#include "config_components.h"
 
 #include "libavutil/avassert.h"
 #include "libavutil/avstring.h"
diff --git a/libavformat/file.c b/libavformat/file.c
index 7001750c80..063d7c5aa2 100644
--- a/libavformat/file.c
+++ b/libavformat/file.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avstring.h"
 #include "libavutil/internal.h"
 #include "libavutil/opt.h"
diff --git a/libavformat/format.c b/libavformat/format.c
index 52b85c16a2..5f8155be59 100644
--- a/libavformat/format.c
+++ b/libavformat/format.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avstring.h"
 #include "libavutil/bprint.h"
 #include "libavutil/opt.h"
diff --git a/libavformat/g726.c b/libavformat/g726.c
index 4b08d0a9f7..e64e54114c 100644
--- a/libavformat/g726.c
+++ b/libavformat/g726.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "avformat.h"
 #include "internal.h"
 #include "libavutil/opt.h"
diff --git a/libavformat/gopher.c b/libavformat/gopher.c
index 9bbe171640..9497ffacf2 100644
--- a/libavformat/gopher.c
+++ b/libavformat/gopher.c
@@ -24,6 +24,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 
 #include "libavutil/avstring.h"
 #include "avformat.h"
diff --git a/libavformat/hashenc.c b/libavformat/hashenc.c
index 622491d2e5..1aaba0b306 100644
--- a/libavformat/hashenc.c
+++ b/libavformat/hashenc.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avstring.h"
 #include "libavutil/hash.h"
 #include "libavutil/intreadwrite.h"
diff --git a/libavformat/hls.c b/libavformat/hls.c
index 06bc46c23f..cf6ef9dfb6 100644
--- a/libavformat/hls.c
+++ b/libavformat/hls.c
@@ -27,6 +27,8 @@
  * https://www.rfc-editor.org/rfc/rfc8216.txt
  */
 
+#include "config_components.h"
+
 #include "libavformat/http.h"
 #include "libavutil/avstring.h"
 #include "libavutil/avassert.h"
diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
index ef8973cea1..14eb7c4530 100644
--- a/libavformat/hlsenc.c
+++ b/libavformat/hlsenc.c
@@ -21,6 +21,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 #include <float.h>
 #include <stdint.h>
 #if HAVE_UNISTD_H
diff --git a/libavformat/http.c b/libavformat/http.c
index c79db955e8..c4eeb58cd0 100644
--- a/libavformat/http.c
+++ b/libavformat/http.c
@@ -20,6 +20,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 
 #if CONFIG_ZLIB
 #include <zlib.h>
diff --git a/libavformat/ilbc.c b/libavformat/ilbc.c
index 0cbdd3d5b8..b2ac8159a6 100644
--- a/libavformat/ilbc.c
+++ b/libavformat/ilbc.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "avformat.h"
 #include "internal.h"
 #include "rawenc.h"
diff --git a/libavformat/img2dec.c b/libavformat/img2dec.c
index 8608252d83..b9c06c5b54 100644
--- a/libavformat/img2dec.c
+++ b/libavformat/img2dec.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #define _DEFAULT_SOURCE
 #define _BSD_SOURCE
 #include <sys/stat.h>
diff --git a/libavformat/img2enc.c b/libavformat/img2enc.c
index ded91d6b98..9b3b8741c8 100644
--- a/libavformat/img2enc.c
+++ b/libavformat/img2enc.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/intreadwrite.h"
 #include "libavutil/avstring.h"
 #include "libavutil/dict.h"
diff --git a/libavformat/kvag.c b/libavformat/kvag.c
index a277c28128..3df2c4f670 100644
--- a/libavformat/kvag.c
+++ b/libavformat/kvag.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/channel_layout.h"
 #include "avformat.h"
 #include "avio_internal.h"
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index 95e49cbe7f..53cd538580 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -29,6 +29,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 
 #include <inttypes.h>
 #include <stdio.h>
diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
index e8df5db3bd..93c969bf03 100644
--- a/libavformat/matroskaenc.c
+++ b/libavformat/matroskaenc.c
@@ -22,6 +22,7 @@
 #include <stdint.h>
 
 #include "config.h"
+#include "config_components.h"
 
 #include "av1.h"
 #include "avc.h"
diff --git a/libavformat/mj2kdec.c b/libavformat/mj2kdec.c
index 703ff91efb..2373f31b94 100644
--- a/libavformat/mj2kdec.c
+++ b/libavformat/mj2kdec.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/intreadwrite.h"
 #include "avformat.h"
 #include "rawdec.h"
diff --git a/libavformat/mlpdec.c b/libavformat/mlpdec.c
index f0996fef31..4834f697f3 100644
--- a/libavformat/mlpdec.c
+++ b/libavformat/mlpdec.c
@@ -21,6 +21,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "avformat.h"
 #include "avio_internal.h"
 #include "internal.h"
diff --git a/libavformat/mmf.c b/libavformat/mmf.c
index e836390bff..2db91febb5 100644
--- a/libavformat/mmf.c
+++ b/libavformat/mmf.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/channel_layout.h"
 #include "avformat.h"
 #include "avio_internal.h"
diff --git a/libavformat/mov.c b/libavformat/mov.c
index a842bf4464..5984b73050 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -23,6 +23,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include <inttypes.h>
 #include <limits.h>
 #include <stdint.h>
diff --git a/libavformat/movenc.c b/libavformat/movenc.c
index 14482abe8d..893deceb1b 100644
--- a/libavformat/movenc.c
+++ b/libavformat/movenc.c
@@ -21,6 +21,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include <stdint.h>
 #include <inttypes.h>
 
diff --git a/libavformat/mpeg.c b/libavformat/mpeg.c
index ca15d9f241..7eb24cd5c2 100644
--- a/libavformat/mpeg.c
+++ b/libavformat/mpeg.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/channel_layout.h"
 #include "avformat.h"
 #include "avio_internal.h"
diff --git a/libavformat/mpegenc.c b/libavformat/mpegenc.c
index 64248695bd..79fd6b28b0 100644
--- a/libavformat/mpegenc.c
+++ b/libavformat/mpegenc.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include <stdint.h>
 
 #include "libavutil/attributes.h"
diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
index e23f596490..da77b50669 100644
--- a/libavformat/mpegts.c
+++ b/libavformat/mpegts.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/buffer.h"
 #include "libavutil/common.h"
 #include "libavutil/crc.h"
diff --git a/libavformat/network.c b/libavformat/network.c
index 1ced314c92..21e20b3e9a 100644
--- a/libavformat/network.c
+++ b/libavformat/network.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include <fcntl.h>
 #include "network.h"
 #include "tls.h"
diff --git a/libavformat/oggenc.c b/libavformat/oggenc.c
index 31f47dadf6..016047f616 100644
--- a/libavformat/oggenc.c
+++ b/libavformat/oggenc.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include <stdint.h>
 
 #include "libavutil/crc.h"
diff --git a/libavformat/pcmdec.c b/libavformat/pcmdec.c
index 63539a47c0..f6123ae90d 100644
--- a/libavformat/pcmdec.c
+++ b/libavformat/pcmdec.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avstring.h"
 #include "avformat.h"
 #include "internal.h"
diff --git a/libavformat/pcmenc.c b/libavformat/pcmenc.c
index cbfcee7b41..0cf497989a 100644
--- a/libavformat/pcmenc.c
+++ b/libavformat/pcmenc.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "avformat.h"
 #include "rawenc.h"
 
diff --git a/libavformat/rawdec.c b/libavformat/rawdec.c
index 15e26c03bd..17649bc077 100644
--- a/libavformat/rawdec.c
+++ b/libavformat/rawdec.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "avformat.h"
 #include "internal.h"
 #include "avio_internal.h"
diff --git a/libavformat/rawenc.c b/libavformat/rawenc.c
index f8c267c4c9..c8e7ca818b 100644
--- a/libavformat/rawenc.c
+++ b/libavformat/rawenc.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/intreadwrite.h"
 
 #include "avformat.h"
diff --git a/libavformat/rawvideodec.c b/libavformat/rawvideodec.c
index 7b1a534452..514e4e044f 100644
--- a/libavformat/rawvideodec.c
+++ b/libavformat/rawvideodec.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/imgutils.h"
 #include "libavutil/parseutils.h"
 #include "libavutil/pixdesc.h"
diff --git a/libavformat/riff.c b/libavformat/riff.c
index f098c1d580..df7e9df31b 100644
--- a/libavformat/riff.c
+++ b/libavformat/riff.c
@@ -21,6 +21,7 @@
 
 #include <stddef.h>
 #include "config.h"
+#include "config_components.h"
 #include "libavutil/macros.h"
 #include "avformat.h"
 #include "internal.h"
diff --git a/libavformat/rtmpproto.c b/libavformat/rtmpproto.c
index 88557140f7..f97e3c3b8e 100644
--- a/libavformat/rtmpproto.c
+++ b/libavformat/rtmpproto.c
@@ -24,6 +24,8 @@
  * RTMP protocol
  */
 
+#include "config_components.h"
+
 #include "libavcodec/bytestream.h"
 #include "libavutil/avstring.h"
 #include "libavutil/base64.h"
diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
index f1992f193e..f8aa3dfe1e 100644
--- a/libavformat/rtsp.c
+++ b/libavformat/rtsp.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avassert.h"
 #include "libavutil/base64.h"
 #include "libavutil/bprint.h"
diff --git a/libavformat/rtspdec.c b/libavformat/rtspdec.c
index eee6329025..bbabec7db8 100644
--- a/libavformat/rtspdec.c
+++ b/libavformat/rtspdec.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavutil/avstring.h"
 #include "libavutil/intreadwrite.h"
 #include "libavutil/mathematics.h"
diff --git a/libavformat/sdp.c b/libavformat/sdp.c
index d63a0b34c4..7644cb6c2a 100644
--- a/libavformat/sdp.c
+++ b/libavformat/sdp.c
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include <string.h>
 #include "libavutil/avstring.h"
 #include "libavutil/base64.h"
diff --git a/libavformat/segment.c b/libavformat/segment.c
index e9b0aa4fa8..ef0529a920 100644
--- a/libavformat/segment.c
+++ b/libavformat/segment.c
@@ -24,6 +24,8 @@
  * @url{http://tools.ietf.org/id/draft-pantos-http-live-streaming}
  */
 
+#include "config_components.h"
+
 #include <float.h>
 #include <time.h>
 
diff --git a/libavformat/swfenc.c b/libavformat/swfenc.c
index 9eb22ee9b3..3b4aa614ca 100644
--- a/libavformat/swfenc.c
+++ b/libavformat/swfenc.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include "libavcodec/put_bits.h"
 #include "libavutil/avassert.h"
 #include "libavutil/fifo.h"
diff --git a/libavformat/voc.c b/libavformat/voc.c
index 04ec0da9ba..a836ecb79b 100644
--- a/libavformat/voc.c
+++ b/libavformat/voc.c
@@ -20,6 +20,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 #include "voc.h"
 #include "internal.h"
 
diff --git a/libavformat/wavdec.c b/libavformat/wavdec.c
index 01090b6947..c53e6a1841 100644
--- a/libavformat/wavdec.c
+++ b/libavformat/wavdec.c
@@ -28,6 +28,7 @@
 #include <stdint.h>
 
 #include "config.h"
+#include "config_components.h"
 #include "libavutil/avassert.h"
 #include "libavutil/dict.h"
 #include "libavutil/intreadwrite.h"
diff --git a/libavformat/wavenc.c b/libavformat/wavenc.c
index 2317700be1..75a97e8244 100644
--- a/libavformat/wavenc.c
+++ b/libavformat/wavenc.c
@@ -28,6 +28,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config_components.h"
+
 #include <stdint.h>
 #include <string.h>
 
diff --git a/tests/checkasm/checkasm.c b/tests/checkasm/checkasm.c
index e77b4ec20f..748d6a9f3a 100644
--- a/tests/checkasm/checkasm.c
+++ b/tests/checkasm/checkasm.c
@@ -21,6 +21,7 @@
  */
 
 #include "config.h"
+#include "config_components.h"
 
 #if CONFIG_LINUX_PERF
 # ifndef _GNU_SOURCE
-- 
2.32.0 (Apple Git-132)

_______________________________________________
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".

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [FFmpeg-devel] [PATCH v2 1/9] libavcodec: Split version.h
  2022-03-11 12:18 [FFmpeg-devel] [PATCH v2 1/9] libavcodec: Split version.h Martin Storsjö
                   ` (7 preceding siblings ...)
  2022-03-11 12:18 ` [FFmpeg-devel] [PATCH v2 9/9] configure: Use a separate config_components.h header for $ALL_COMPONENTS Martin Storsjö
@ 2022-03-12 22:34 ` Martin Storsjö
  8 siblings, 0 replies; 12+ messages in thread
From: Martin Storsjö @ 2022-03-12 22:34 UTC (permalink / raw)
  To: ffmpeg-devel

On Fri, 11 Mar 2022, Martin Storsjö wrote:

> This avoids including version.h in all source files, avoiding
> unnecessary rebuilds when the version number is bumped. Only
> version_major.h is included by the main header, which defines
> availability of e.g. FF_API_* macros, and which is bumped much
> less often.
> ---
> fftools/cmdutils.c             |  1 +
> fftools/ffmpeg.c               |  1 +
> fftools/ffprobe.c              |  1 +
> libavcodec/Makefile            |  1 +
> libavcodec/aacenc.c            |  1 +
> libavcodec/avcodec.c           |  1 +
> libavcodec/avcodec.h           |  2 +-
> libavcodec/codec.h             |  2 +-
> libavcodec/dpxenc.c            |  1 +
> libavcodec/j2kenc.c            |  1 +
> libavcodec/libvorbisenc.c      |  1 +
> libavcodec/mjpegenc_common.c   |  1 +
> libavcodec/mpeg4videoenc.c     |  1 +
> libavcodec/options_table.h     |  2 +-
> libavcodec/packet.h            |  2 +-
> libavcodec/pthread_frame.c     |  2 +-
> libavcodec/tiffenc.c           |  1 +
> libavcodec/vaapi_encode_h264.c |  1 +
> libavcodec/vc2enc.c            |  1 +
> libavcodec/version.h           | 28 ++---------------
> libavcodec/version_major.h     | 55 ++++++++++++++++++++++++++++++++++
> libavformat/movenc.c           |  1 +
> 22 files changed, 77 insertions(+), 31 deletions(-)
> create mode 100644 libavcodec/version_major.h

After pushing "movenc: Use LIBAVFORMAT_IDENT instead of LIBAVCODEC_IDENT", 
I amended this patch locally to remove the change to libavformat/movenc.c.

// Martin
_______________________________________________
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".

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [FFmpeg-devel] [PATCH v3 9/9] configure: Use a separate config_components.h header for $ALL_COMPONENTS
  2022-03-11 13:53   ` [FFmpeg-devel] [PATCH v3 " Martin Storsjö
@ 2022-03-17 16:29     ` Michael Niedermayer
  0 siblings, 0 replies; 12+ messages in thread
From: Michael Niedermayer @ 2022-03-17 16:29 UTC (permalink / raw)
  To: FFmpeg development discussions and patches


[-- Attachment #1.1: Type: text/plain, Size: 946 bytes --]

On Fri, Mar 11, 2022 at 03:53:24PM +0200, Martin Storsjö wrote:
> This avoids unnecessary rebuilds of most source files if only the
> list of enabled components has changed, but not the other properties
> of the build, set in config.h.
> ---
> Patchwork notified me that the previous round failed building
> libavdevice/alsa.c due to missing an include of the new header.
> 
> I now did grepping for constants like CONFIG_.*{MUXER|CODER|...}
> to find other files that might need including that header. Now
> there should be much less risk of breaking things in configs with
> components I haven't tested.
> ---

oss-fuzz needed this:
https://github.com/google/oss-fuzz/pull/7396

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Take away the freedom of one citizen and you will be jailed, take away
the freedom of all citizens and you will be congratulated by your peers
in Parliament.

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

[-- Attachment #2: Type: text/plain, Size: 251 bytes --]

_______________________________________________
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".

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2022-03-17 16:29 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-11 12:18 [FFmpeg-devel] [PATCH v2 1/9] libavcodec: Split version.h Martin Storsjö
2022-03-11 12:18 ` [FFmpeg-devel] [PATCH v2 2/9] libavformat: " Martin Storsjö
2022-03-11 12:18 ` [FFmpeg-devel] [PATCH v2 3/9] libavdevice: " Martin Storsjö
2022-03-11 12:18 ` [FFmpeg-devel] [PATCH v2 4/9] libpostproc: " Martin Storsjö
2022-03-11 12:18 ` [FFmpeg-devel] [PATCH v2 5/9] libswresample: " Martin Storsjö
2022-03-11 12:18 ` [FFmpeg-devel] [PATCH v2 6/9] libswscale: " Martin Storsjö
2022-03-11 12:18 ` [FFmpeg-devel] [PATCH v2 7/9] libavfilter: " Martin Storsjö
2022-03-11 12:18 ` [FFmpeg-devel] [PATCH v2 8/9] doc: Add an entry to APIchanges about no longer implicitly including version.h Martin Storsjö
2022-03-11 12:18 ` [FFmpeg-devel] [PATCH v2 9/9] configure: Use a separate config_components.h header for $ALL_COMPONENTS Martin Storsjö
2022-03-11 13:53   ` [FFmpeg-devel] [PATCH v3 " Martin Storsjö
2022-03-17 16:29     ` Michael Niedermayer
2022-03-12 22:34 ` [FFmpeg-devel] [PATCH v2 1/9] libavcodec: Split version.h Martin Storsjö

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git