fix ci
This commit is contained in:
@@ -210,6 +210,33 @@ list(APPEND OLIVE_LIBRARIES
|
||||
FFMPEG::swresample
|
||||
)
|
||||
|
||||
# Detect FFmpeg pixel formats that may not exist in all versions
|
||||
include(CheckCXXSourceCompiles)
|
||||
set(CMAKE_REQUIRED_INCLUDES ${FFMPEG_INCLUDE_DIRS})
|
||||
check_cxx_source_compiles("
|
||||
#include <libavutil/pixfmt.h>
|
||||
int main() { AVPixelFormat f = AV_PIX_FMT_GRAYF16; (void)f; return 0; }
|
||||
" HAVE_AV_PIX_FMT_GRAYF16)
|
||||
check_cxx_source_compiles("
|
||||
#include <libavutil/pixfmt.h>
|
||||
int main() { AVPixelFormat f = AV_PIX_FMT_RGBF16; (void)f; return 0; }
|
||||
" HAVE_AV_PIX_FMT_RGBF16)
|
||||
check_cxx_source_compiles("
|
||||
#include <libavutil/pixfmt.h>
|
||||
int main() { AVPixelFormat f = AV_PIX_FMT_RGBAF16; (void)f; return 0; }
|
||||
" HAVE_AV_PIX_FMT_RGBAF16)
|
||||
unset(CMAKE_REQUIRED_INCLUDES)
|
||||
|
||||
if(HAVE_AV_PIX_FMT_GRAYF16)
|
||||
add_compile_definitions(HAVE_AV_PIX_FMT_GRAYF16)
|
||||
endif()
|
||||
if(HAVE_AV_PIX_FMT_RGBF16)
|
||||
add_compile_definitions(HAVE_AV_PIX_FMT_RGBF16)
|
||||
endif()
|
||||
if(HAVE_AV_PIX_FMT_RGBAF16)
|
||||
add_compile_definitions(HAVE_AV_PIX_FMT_RGBAF16)
|
||||
endif()
|
||||
|
||||
# Static FFmpeg (e.g. our Linux CI build) needs system libs for libavcodec/libavformat.
|
||||
find_package(ZLIB REQUIRED)
|
||||
list(APPEND OLIVE_LIBRARIES ZLIB::ZLIB)
|
||||
|
||||
@@ -170,7 +170,11 @@ AVPixelFormat FFmpegUtils::GetFFmpegPixelFormat(const PixelFormat &pix_fmt,
|
||||
case PixelFormat::U16:
|
||||
return AV_PIX_FMT_RGB48;
|
||||
case PixelFormat::F16:
|
||||
#ifdef HAVE_AV_PIX_FMT_RGBF16
|
||||
return AV_PIX_FMT_RGBF16;
|
||||
#else
|
||||
return AV_PIX_FMT_RGB48;
|
||||
#endif
|
||||
case PixelFormat::F32:
|
||||
return AV_PIX_FMT_RGBF32;
|
||||
case PixelFormat::INVALID:
|
||||
@@ -184,7 +188,11 @@ AVPixelFormat FFmpegUtils::GetFFmpegPixelFormat(const PixelFormat &pix_fmt,
|
||||
case PixelFormat::U16:
|
||||
return AV_PIX_FMT_RGBA64;
|
||||
case PixelFormat::F16:
|
||||
#ifdef HAVE_AV_PIX_FMT_RGBAF16
|
||||
return AV_PIX_FMT_RGBAF16;
|
||||
#else
|
||||
return AV_PIX_FMT_RGBA64;
|
||||
#endif
|
||||
case PixelFormat::F32:
|
||||
return AV_PIX_FMT_RGBAF32;
|
||||
case PixelFormat::INVALID:
|
||||
|
||||
@@ -93,7 +93,11 @@ static AVPixelFormat GetOfxAVPixelFormat(const OFX::Host::ImageEffect::Image &im
|
||||
} else if (pixel_format == olive::core::PixelFormat::U16) {
|
||||
pix_fmt = AV_PIX_FMT_GRAY16LE;
|
||||
} else if (pixel_format == olive::core::PixelFormat::F16) {
|
||||
#ifdef HAVE_AV_PIX_FMT_GRAYF16
|
||||
pix_fmt = AV_PIX_FMT_GRAYF16;
|
||||
#else
|
||||
pix_fmt = AV_PIX_FMT_GRAY16LE;
|
||||
#endif
|
||||
} else if (pixel_format == olive::core::PixelFormat::F32) {
|
||||
pix_fmt = AV_PIX_FMT_GRAYF32;
|
||||
}
|
||||
@@ -871,7 +875,11 @@ static AVPixelFormat GetDestinationAVPixelFormat(const olive::VideoParams ¶m
|
||||
} else if (params.format() == olive::core::PixelFormat::U16) {
|
||||
pix_fmt = AV_PIX_FMT_GRAY16LE;
|
||||
} else if (params.format() == olive::core::PixelFormat::F16) {
|
||||
#ifdef HAVE_AV_PIX_FMT_GRAYF16
|
||||
pix_fmt = AV_PIX_FMT_GRAYF16;
|
||||
#else
|
||||
pix_fmt = AV_PIX_FMT_GRAY16LE;
|
||||
#endif
|
||||
} else if (params.format() == olive::core::PixelFormat::F32) {
|
||||
pix_fmt = AV_PIX_FMT_GRAYF32;
|
||||
}
|
||||
|
||||
@@ -65,7 +65,12 @@ TEST(PluginIntegration, ChromaKeyerCreateAndRender)
|
||||
}
|
||||
}
|
||||
|
||||
olive::plugin::loadPlugins(QString::fromUtf8(path));
|
||||
QString raw = QString::fromUtf8(path);
|
||||
const QChar separator = QDir::listSeparator();
|
||||
const QStringList paths = raw.split(separator, Qt::SkipEmptyParts);
|
||||
for (const QString &p : paths) {
|
||||
olive::plugin::loadPlugins(p);
|
||||
}
|
||||
|
||||
auto *cache = OFX::Host::PluginCache::getPluginCache();
|
||||
OFX::Host::Plugin *found = nullptr;
|
||||
|
||||
@@ -215,7 +215,12 @@ bool ShouldSkipTest() {
|
||||
|
||||
static bool plugins_loaded = false;
|
||||
if (!plugins_loaded) {
|
||||
loadPlugins(QString::fromUtf8(path));
|
||||
QString raw = QString::fromUtf8(path);
|
||||
const QChar separator = QDir::listSeparator();
|
||||
const QStringList paths = raw.split(separator, Qt::SkipEmptyParts);
|
||||
for (const QString &p : paths) {
|
||||
loadPlugins(p);
|
||||
}
|
||||
plugins_loaded = true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user