Commit 104edd0777 for ffmpeg
commit 104edd0777c089a7e4b4ae15b82feae2dad831ad
Author: Michael Niedermayer <michael@niedermayer.cc>
Date: Mon Sep 7 00:14:03 2026 +0000
configure: validate DeckLink headers with the C++ compiler
After CFLAGS stopped being passed to the C++ compiler, supplying the
DeckLink SDK include path only through --extra-cflags still passed
configure but failed when building the DeckLink C++ sources.
Compile the DeckLinkAPI.h check as C++ and check the SDK version in both
languages. The C wrappers also include DeckLinkAPIVersion.h, so document
that both --extra-cflags and --extra-cxxflags need the SDK include path.
Fixes: 0ce413af9cc8040095a6b714600d6a8dceaca514
Fixes: #23072
Assisted-by: Fairy
diff --git a/configure b/configure
index 759cb8da10..08ff6892fb 100755
--- a/configure
+++ b/configure
@@ -7193,8 +7193,9 @@ enabled cairo && require_pkg_config cairo cairo "cairo.h" cairo_crea
enabled cuda_nvcc && { check_nvcc cuda_nvcc || die "ERROR: failed checking for nvcc."; }
enabled chromaprint && { check_pkg_config chromaprint libchromaprint "chromaprint.h" chromaprint_get_version ||
require chromaprint chromaprint.h chromaprint_get_version -lchromaprint; }
-enabled decklink && { require_headers DeckLinkAPI.h &&
- { test_cpp_condition DeckLinkAPIVersion.h "BLACKMAGIC_DECKLINK_API_VERSION >= 0x0a0b0000" || die "ERROR: Decklink API version must be >= 10.11"; } }
+enabled decklink && { { test_cxxflags_cc "" DeckLinkAPI.h 1 || die "ERROR: DeckLinkAPI.h not found"; } &&
+ { test_cpp_condition DeckLinkAPIVersion.h "BLACKMAGIC_DECKLINK_API_VERSION >= 0x0a0b0000" &&
+ test_cxxflags_cc "" DeckLinkAPIVersion.h "BLACKMAGIC_DECKLINK_API_VERSION >= 0x0a0b0000" || die "ERROR: Decklink API version must be >= 10.11"; } }
enabled frei0r && require_headers "frei0r.h"
enabled gmp && require gmp gmp.h mpz_export -lgmp
enabled gnutls && require_pkg_config gnutls gnutls gnutls/gnutls.h gnutls_global_init
diff --git a/doc/indevs.texi b/doc/indevs.texi
index 31dfc098bb..dc4b92a0a0 100644
--- a/doc/indevs.texi
+++ b/doc/indevs.texi
@@ -240,8 +240,9 @@ The decklink input device provides capture capabilities for Blackmagic
DeckLink devices.
To enable this input device, you need the Blackmagic DeckLink SDK and you
-need to configure with the appropriate @code{--extra-cflags}
-and @code{--extra-ldflags}.
+need to configure with the appropriate @code{--extra-cflags},
+@code{--extra-cxxflags} and @code{--extra-ldflags}. The SDK include directory
+must be available to both the C and C++ compilers.
On Windows, you need to run the IDL files through @command{widl}.
DeckLink is very picky about the formats it supports. Pixel format of the
diff --git a/doc/outdevs.texi b/doc/outdevs.texi
index 86c78f31b7..0c730ff992 100644
--- a/doc/outdevs.texi
+++ b/doc/outdevs.texi
@@ -172,8 +172,9 @@ The decklink output device provides playback capabilities for Blackmagic
DeckLink devices.
To enable this output device, you need the Blackmagic DeckLink SDK and you
-need to configure with the appropriate @code{--extra-cflags}
-and @code{--extra-ldflags}.
+need to configure with the appropriate @code{--extra-cflags},
+@code{--extra-cxxflags} and @code{--extra-ldflags}. The SDK include directory
+must be available to both the C and C++ compilers.
On Windows, you need to run the IDL files through @command{widl}.
DeckLink is very picky about the formats it supports. Pixel format is always