[FFmpeg-devel] [PATCH v2] avutil/hwcontext_videotoolbox: fix use of unknown builtin '__builtin_available'
lance.lmwang at gmail.com
lance.lmwang at gmail.com
Sun Oct 31 13:44:10 EET 2021
From: Limin Wang <lance.lmwang at gmail.com>
OSX version: 10.11.6
Apple LLVM version 8.0.0 (clang-800.0.42.1)
Target: x86_64-apple-darwin15.6.0
Signed-off-by: Limin Wang <lance.lmwang at gmail.com>
---
configure | 8 ++++++
libavutil/hwcontext_videotoolbox.c | 54 +++++++++++++++++++++-----------------
2 files changed, 38 insertions(+), 24 deletions(-)
diff --git a/configure b/configure
index ede8f97..c4fb1b7 100755
--- a/configure
+++ b/configure
@@ -2329,6 +2329,10 @@ TYPES_LIST="
kCVImageBufferTransferFunction_SMPTE_ST_2084_PQ
kCVImageBufferTransferFunction_ITU_R_2100_HLG
kCVImageBufferTransferFunction_Linear
+ kCVImageBufferYCbCrMatrix_ITU_R_2020
+ kCVImageBufferColorPrimaries_ITU_R_2020
+ kCVImageBufferTransferFunction_ITU_R_2020
+ kCVImageBufferTransferFunction_SMPTE_ST_428_1
socklen_t
struct_addrinfo
struct_group_source_req
@@ -6273,6 +6277,10 @@ enabled videotoolbox && {
check_func_headers CoreVideo/CVImageBuffer.h kCVImageBufferTransferFunction_SMPTE_ST_2084_PQ "-framework CoreVideo"
check_func_headers CoreVideo/CVImageBuffer.h kCVImageBufferTransferFunction_ITU_R_2100_HLG "-framework CoreVideo"
check_func_headers CoreVideo/CVImageBuffer.h kCVImageBufferTransferFunction_Linear "-framework CoreVideo"
+ check_func_headers CoreVideo/CVImageBuffer.h kCVImageBufferYCbCrMatrix_ITU_R_2020 "-framework CoreVideo"
+ check_func_headers CoreVideo/CVImageBuffer.h kCVImageBufferColorPrimaries_ITU_R_2020 "-framework CoreVideo"
+ check_func_headers CoreVideo/CVImageBuffer.h kCVImageBufferTransferFunction_ITU_R_2020 "-framework CoreVideo"
+ check_func_headers CoreVideo/CVImageBuffer.h kCVImageBufferTransferFunction_SMPTE_ST_428_1 "-framework CoreVideo"
}
check_struct "sys/time.h sys/resource.h" "struct rusage" ru_maxrss
diff --git a/libavutil/hwcontext_videotoolbox.c b/libavutil/hwcontext_videotoolbox.c
index 58095a1..25f4e17 100644
--- a/libavutil/hwcontext_videotoolbox.c
+++ b/libavutil/hwcontext_videotoolbox.c
@@ -375,10 +375,11 @@ static int vt_pixbuf_set_colorspace(AVHWFramesContext *hwfc,
switch (src->colorspace) {
case AVCOL_SPC_BT2020_CL:
case AVCOL_SPC_BT2020_NCL:
- if (__builtin_available(macOS 10.11, *))
- colormatrix = kCVImageBufferYCbCrMatrix_ITU_R_2020;
- else
- colormatrix = CFSTR("ITU_R_2020");
+#if HAVE_KCVIMAGEBUFFERYCBCRMATRIX_ITU_R_2020
+ colormatrix = kCVImageBufferYCbCrMatrix_ITU_R_2020;
+#else
+ colormatrix = CFSTR("ITU_R_2020");
+#endif
break;
case AVCOL_SPC_BT470BG:
case AVCOL_SPC_SMPTE170M:
@@ -398,10 +399,11 @@ static int vt_pixbuf_set_colorspace(AVHWFramesContext *hwfc,
switch (src->color_primaries) {
case AVCOL_PRI_BT2020:
- if (__builtin_available(macOS 10.11, *))
- colorpri = kCVImageBufferColorPrimaries_ITU_R_2020;
- else
- colorpri = CFSTR("ITU_R_2020");
+#if HAVE_KCVIMAGEBUFFERCOLORPRIMARIES_ITU_R_2020
+ colorpri = kCVImageBufferColorPrimaries_ITU_R_2020;
+#else
+ colorpri = CFSTR("ITU_R_2020");
+#endif
break;
case AVCOL_PRI_BT709:
colorpri = kCVImageBufferColorPrimaries_ITU_R_709_2;
@@ -420,17 +422,19 @@ static int vt_pixbuf_set_colorspace(AVHWFramesContext *hwfc,
switch (src->color_trc) {
case AVCOL_TRC_SMPTE2084:
- if (__builtin_available(macOS 10.13, *))
- colortrc = kCVImageBufferTransferFunction_SMPTE_ST_2084_PQ;
- else
- colortrc = CFSTR("SMPTE_ST_2084_PQ");
+#if HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_SMPTE_ST_2084_PQ
+ colortrc = kCVImageBufferTransferFunction_SMPTE_ST_2084_PQ;
+#else
+ colortrc = CFSTR("SMPTE_ST_2084_PQ");
+#endif
break;
case AVCOL_TRC_BT2020_10:
case AVCOL_TRC_BT2020_12:
- if (__builtin_available(macOS 10.11, *))
- colortrc = kCVImageBufferTransferFunction_ITU_R_2020;
- else
- colortrc = CFSTR("ITU_R_2020");
+#if HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_ITU_R_2020
+ colortrc = kCVImageBufferTransferFunction_ITU_R_2020;
+#else
+ colortrc = CFSTR("ITU_R_2020");
+#endif
break;
case AVCOL_TRC_BT709:
colortrc = kCVImageBufferTransferFunction_ITU_R_709_2;
@@ -439,16 +443,18 @@ static int vt_pixbuf_set_colorspace(AVHWFramesContext *hwfc,
colortrc = kCVImageBufferTransferFunction_SMPTE_240M_1995;
break;
case AVCOL_TRC_SMPTE428:
- if (__builtin_available(macOS 10.12, *))
- colortrc = kCVImageBufferTransferFunction_SMPTE_ST_428_1;
- else
- colortrc = CFSTR("SMPTE_ST_428_1");
+#if HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_SMPTE_ST_428_1
+ colortrc = kCVImageBufferTransferFunction_SMPTE_ST_428_1;
+#else
+ colortrc = CFSTR("SMPTE_ST_428_1");
+#endif
break;
case AVCOL_TRC_ARIB_STD_B67:
- if (__builtin_available(macOS 10.13, *))
- colortrc = kCVImageBufferTransferFunction_ITU_R_2100_HLG;
- else
- colortrc = CFSTR("ITU_R_2100_HLG");
+#if HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_ITU_R_2100_HLG
+ colortrc = kCVImageBufferTransferFunction_ITU_R_2100_HLG;
+#else
+ colortrc = CFSTR("ITU_R_2100_HLG");
+#endif
break;
case AVCOL_TRC_GAMMA22:
gamma = 2.2;
--
1.8.3.1
More information about the ffmpeg-devel
mailing list