diff --git a/graphics/blender-lts29/Makefile b/graphics/blender-lts29/Makefile index 5a2b1eadf526..bb5a991821b2 100644 --- a/graphics/blender-lts29/Makefile +++ b/graphics/blender-lts29/Makefile @@ -1,229 +1,227 @@ PORTNAME= blender -DISTVERSION= 2.93.17 -PORTREVISION= 1 +DISTVERSION= 2.93.18 CATEGORIES= graphics multimedia MASTER_SITES= http://download.blender.org/source/ \ http://mirror.cs.umn.edu/blender.org/source/ \ http://public.planetmirror.com/pub/blender/source/ # long term support v2.9x PKGNAMESUFFIX= -lts29 MAINTAINER= FreeBSD@Shaneware.biz COMMENT= 3D modeling/rendering/animation package - LTS WWW= https://www.blender.org/ LICENSE= GPLv3+ LICENSE_FILE= ${WRKSRC}/doc/license/GPL3-license.txt -#BROKEN= fails to build NOT_FOR_ARCHS= i386 NOT_FOR_ARCHS_REASON= uses 64bit atomic functions BUILD_DEPENDS= ${PYNUMPY} LIB_DEPENDS= libpng.so:graphics/png \ libfreetype.so:print/freetype2 \ libboost_regex.so:devel/boost-libs RUN_DEPENDS= ${PYNUMPY} # libboost_regex.so just acts as a placeholder; several boost # libraries are used, if either of the most common options in blender # are set. We will pull boost in just to be on the safe side. USES= cmake compiler:c++17-lang cpe gl jpeg python:3.9 shebangfix \ tar:xz xorg USE_XORG= x11 xext xfixes xmu xrender USE_GL= gl glu glew CMAKE_OFF= WITH_PYTHON_INSTALL \ WITH_PYTHON_INSTALL_NUMPY WITH_INSTALL_PORTABLE \ WITH_CYCLES_LOGGING SHEBANG_FILES= release/bin/blender-thumbnailer.py \ release/scripts/modules/bl_i18n_utils/merge_po.py \ release/scripts/modules/bl_i18n_utils/utils_rtl.py \ release/scripts/modules/blend_render_info.py CFLAGS+= ${CFLAGS_${CHOSEN_COMPILER_TYPE}} CFLAGS_gcc= -Wno-float-conversion CFLAGS_i386= -march=i586 CXXFLAGS_i386= -march=i586 # prevent conflict with other blender versions DATADIR= ${PREFIX}/share/${PORTNAME}${PKGNAMESUFFIX} DOCSDIR= ${PREFIX}/share/doc/${PORTNAME}${PKGNAMESUFFIX} PLIST_SUB+= VER=${DISTVERSION:R} SUFFIX=${PKGNAMESUFFIX} SUB_FILES= blender SUB_LIST= PYTHON_SITELIBDIR=${PYTHON_SITELIBDIR} VER=${DISTVERSION:R} \ SUFFIX=${PKGNAMESUFFIX} OPTIONS_SUB= yes .include "${.CURDIR}/Makefile.options" ALEMBIC_CMAKE_BOOL= WITH_ALEMBIC ALEMBIC_LIB_DEPENDS= libAlembic.so:graphics/alembic # note that this needs to be set to match alembics hdf5 option ALEMBIC_HDF5_REQUIRES= ALEMBIC ALEMBIC_HDF5_CMAKE_BOOL= WITH_ALEMBIC_HDF5 ALEMBIC_HDF5_LIB_DEPENDS= libhdf5.so:science/hdf5 AVI_CMAKE_BOOL= WITH_CODEC_AVI BULLET_CMAKE_BOOL= WITH_BULLET CAMERATRACK_CMAKE_BOOL= WITH_LIBMV WITH_SYSTEM_GLOG CAMERATRACK_LIB_DEPENDS= libunwind.so:devel/libunwind \ libglog.so:devel/glog CAMERATRACK_ONLY_FOR_ARCHS= i386 amd64 aarch64 powerpc64 powerpc64le CAMERATRACK_ONLY_FOR_ARCHS_REASON= libunwind only supports x86/amd64/aarch64/powerpc64/powerpc64le CINEON_CMAKE_BOOL= WITH_IMAGE_CINEON COLLADA_CMAKE_BOOL= WITH_OPENCOLLADA COLLADA_LIB_DEPENDS= libOpenCOLLADABaseUtils.so:graphics/opencollada \ libpcre.so:devel/pcre COLLADA_USE= GNOME=libxml2 COLLADA_USES= gnome COMPOSITOR_CMAKE_BOOL= WITH_COMPOSITOR CYCLES_IMPLIES= OPENIMAGEIO TBB CYCLES_CMAKE_BOOL= WITH_CYCLES CYCLES_LIB_DEPENDS= libpugixml.so:textproc/pugixml CYCLESEMBR_IMPLIES= CYCLES CYCLESEMBR_CMAKE_BOOL= WITH_CYCLES_EMBREE CYCLESEMBR_LIB_DEPENDS= libembree3.so:graphics/embree CYCLESEMBR_ONLY_FOR_ARCHS= amd64 CYCLESEMBR_ONLY_FOR_ARCHS_REASON= embree only supports amd64 CYCLESOSL_IMPLIES= CYCLES CYCLESOSL_CMAKE_BOOL= WITH_CYCLES_OSL WITH_LLVM CYCLESOSL_CMAKE_ON= -DLLVM_STATIC:BOOL=OFF \ -DLLVM_CONFIG:STRING="${LOCALBASE}/bin/llvm-config${LLVM_DEFAULT}" \ -DOSL_SHADER_DIR:STRING="${LOCALBASE}/share/openshadinglanguage/shaders" CYCLESOSL_BUILD_DEPENDS= llvm-config${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT} CYCLESOSL_LIB_DEPENDS= liboslcomp.so:graphics/openshadinglanguage CYCLESOSL_RUN_DEPENDS= llvm-config${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT} DDS_CMAKE_BOOL= WITH_IMAGE_DDS DRACO_CMAKE_BOOL= WITH_DRACO DRACO_USE= LDCONFIG=${PYTHON_SITELIBDIR} EBOOL_CMAKE_BOOL= WITH_GMP EBOOL_LIB_DEPENDS= libgmp.so:math/gmp FFMPEG_CMAKE_BOOL= WITH_CODEC_FFMPEG FFMPEG_LIB_DEPENDS= libavutil.so:multimedia/ffmpeg \ libflite.so:audio/flite \ libpulse.so:audio/pulseaudio FFMPEG_LDFLAGS= -L${LOCALBASE}/lib -lflite -lflite_cmu_us_kal -lflite_cmulex -lflite_usenglish FFTW3_CMAKE_BOOL= WITH_FFTW3 FFTW3_LIB_DEPENDS= libfftw3.so:math/fftw3 FRAMESERVER_CMAKE_BOOL= WITH_IMAGE_FRAMESERVER FREESTYLE_CMAKE_BOOL= WITH_FREESTYLE HDR_CMAKE_BOOL= WITH_IMAGE_HDR HEADLESS_PREVENTS= MENU XINPUT XF86VMODE HEADLESS_PREVENTS_MSG= X11 options can't be used in headless mode HEADLESS_CMAKE_BOOL= WITH_HEADLESS INPUT_NDOF_CMAKE_BOOL= WITH_INPUT_NDOF JACK_CMAKE_BOOL= WITH_JACK JACK_LIB_DEPENDS= libjack.so:audio/jack LZO_CMAKE_BOOL= WITH_LZO LZMA_CMAKE_BOOL= WITH_LZMA MENU_USES= desktop-file-utils MOD_BOOLEAN_CMAKE_BOOL= WITH_MOD_BOOLEAN MOD_FLUID_IMPLIES= TBB MOD_FLUID_CMAKE_BOOL= WITH_MOD_FLUID MOD_OCEANSIM_IMPLIES= FFTW3 MOD_OCEANSIM_CMAKE_BOOL= WITH_MOD_OCEANSIM MOD_REMESH_CMAKE_BOOL= WITH_MOD_REMESH MOD_SMOKE_CMAKE_BOOL= WITH_MOD_SMOKE NLS_CMAKE_BOOL= WITH_INTERNATIONAL # Use iconv:wchar_t to force the usage of iconv from ports. # libboost_locale.so uses libiconv_open, while we only provide # iconv_open in 10.x+ NLS_USES= gettext iconv:lib,wchar_t OPENAL_CMAKE_BOOL= WITH_OPENAL OPENAL_USES= openal:al,alut OPENCOLORIO_CMAKE_BOOL= WITH_OPENCOLORIO OPENCOLORIO_LIB_DEPENDS= libOpenColorIO.so:graphics/opencolorio \ libyaml-cpp.so:devel/yaml-cpp \ libtinyxml.so:textproc/tinyxml \ libexpat.so:textproc/expat2 \ libpystring.so:devel/pystring OPENEXR_CMAKE_BOOL= WITH_IMAGE_OPENEXR OPENEXR_CFLAGS= -I${LOCALBASE}/include/Imath OPENEXR_LIB_DEPENDS= libImath.so:math/Imath \ libOpenEXR.so:graphics/openexr OPENIMAGEIO_IMPLIES= OPENEXR TIFF OPENIMAGEIO_CMAKE_BOOL= WITH_OPENIMAGEIO OPENIMAGEIO_LIB_DEPENDS= libOpenImageIO.so:graphics/openimageio OPENIMAGEIO_LDFLAGS= -lOpenImageIO_Util OPENIMAGEDN_IMPLIES= TBB OPENIMAGEDN_CMAKE_BOOL= WITH_OPENIMAGEDENOISE OPENIMAGEDN_LIB_DEPENDS= libOpenImageDenoise.so:graphics/oidn OPENIMAGEDN_ONLY_FOR_ARCHS= amd64 OPENIMAGEDN_ONLY_FOR_ARCHS_REASON= oidn only supports amd64 OPENJPEG_CMAKE_BOOL= WITH_IMAGE_OPENJPEG OPENJPEG_LIB_DEPENDS= libopenjp2.so:graphics/openjpeg # openmp usually works on amd64 OPENMP_CMAKE_BOOL= WITH_OPENMP OPENSUBDIV_CMAKE_BOOL= WITH_OPENSUBDIV OPENSUBDIV_LIB_DEPENDS= libosdCPU.so:graphics/opensubdiv OPENVDB_IMPLIES= TBB OPENVDB_CMAKE_BOOL= WITH_OPENVDB WITH_OPENVDB_BLOSC OPENVDB_LIB_DEPENDS= libblosc.so:archivers/c-blosc \ libopenvdb.so:misc/openvdb OPENVDB_BROKEN= not compatible with OpenVDB-10 RAYOPTIMIZATION_CMAKE_BOOL= WITH_RAYOPTIMIZATION SDL_CMAKE_BOOL= WITH_SDL SDL_USE= SDL=sdl2 SDL_USES= sdl SNDFILE_CMAKE_BOOL= WITH_CODEC_SNDFILE SNDFILE_LIB_DEPENDS= libsndfile.so:audio/libsndfile TBB_CMAKE_BOOL= WITH_TBB TBB_LIB_DEPENDS= libtbb.so:devel/onetbb TIFF_CMAKE_BOOL= WITH_IMAGE_TIFF TIFF_LIB_DEPENDS= libtiff.so:graphics/tiff TRACE_CMAKE_BOOL= WITH_POTRACE TRACE_LIB_DEPENDS= libpotrace.so:graphics/libpotrace XINPUT_CMAKE_BOOL= WITH_X11_XINPUT XINPUT_USE= XORG=xi XF86VMODE_CMAKE_BOOL= WITH_X11_XF86VMODE XF86VMODE_USE= XORG=xi,xxf86vm .if defined(WITH_DEBUG) CMAKE_ARGS+= -DWITH_GHOST_DEBUG:BOOL=ON .endif .include .if ${ARCH:Mpowerpc*} || ${ARCH:Mriscv64*} CMAKE_ARGS+= -DWITH_CPU_SIMD:BOOL=OFF .endif post-build: @(cd ${WRKSRC}/doc/manpage && \ ${PYTHON_CMD} blender.1.py \ --blender ${INSTALL_WRKSRC}/bin/blender \ --output ${INSTALL_WRKSRC}/bin/${PORTNAME}.1) post-install: ${INSTALL_MAN} ${INSTALL_WRKSRC}/bin/${PORTNAME}.1 \ ${STAGEDIR}${MAN1PREFIX}/share/man/man1 # rename files to prevent conflict with other blender versions ${MV} ${STAGEDIR}${PREFIX}/share/blender \ ${STAGEDIR}${PREFIX}/share/blender${PKGNAMESUFFIX} ${MV} ${STAGEDIR}${PREFIX}/share/doc/blender \ ${STAGEDIR}${PREFIX}/share/doc/blender${PKGNAMESUFFIX} ${MV} ${STAGEDIR}${PREFIX}/bin/blender \ ${STAGEDIR}${PREFIX}/bin/blender-bin${PKGNAMESUFFIX} ${INSTALL_SCRIPT} ${WRKDIR}/blender ${STAGEDIR}/${PREFIX}/bin/blender${PKGNAMESUFFIX} ${MV} ${STAGEDIR}${PREFIX}/bin/blender-thumbnailer.py \ ${STAGEDIR}${PREFIX}/bin/blender${PKGNAMESUFFIX}-thumbnailer.py ${MV} ${STAGEDIR}${PREFIX}/share/man/man1/blender.1 \ ${STAGEDIR}${PREFIX}/share/man/man1/blender${PKGNAMESUFFIX}.1 ${MV} ${STAGEDIR}${PREFIX}/share/applications/blender.desktop \ ${STAGEDIR}${PREFIX}/share/applications/blender${PKGNAMESUFFIX}.desktop ${MV} ${STAGEDIR}${PREFIX}/share/icons/hicolor/scalable/apps/blender.svg \ ${STAGEDIR}${PREFIX}/share/icons/hicolor/scalable/apps/blender${PKGNAMESUFFIX}.svg ${MV} ${STAGEDIR}${PREFIX}/share/icons/hicolor/symbolic/apps/blender-symbolic.svg \ ${STAGEDIR}${PREFIX}/share/icons/hicolor/symbolic/apps/blender${PKGNAMESUFFIX}-symbolic.svg post-install-DRACO-on: # move draco pylib into site-packages ${MKDIR} ${STAGEDIR}/${PYTHON_SITELIBDIR}/ ${INSTALL_LIB} ${INSTALL_WRKSRC}/lib/libextern_draco.so ${STAGEDIR}/${PYTHON_SITELIBDIR}/ ${STRIP_CMD} ${STAGEDIR}/${PYTHON_SITELIBDIR}/libextern_draco.so @${RM} -R ${STAGEDIR}/${DATADIR}/${DISTVERSION:R}/python post-install-MENU-on: @-update-desktop-database -q .include diff --git a/graphics/blender-lts29/Makefile.options b/graphics/blender-lts29/Makefile.options index 1cd86ee348f0..c14cad208a00 100644 --- a/graphics/blender-lts29/Makefile.options +++ b/graphics/blender-lts29/Makefile.options @@ -1,132 +1,131 @@ OPTIONS_DEFINE= \ ALEMBIC \ ALEMBIC_HDF5 \ AVI \ BULLET \ CAMERATRACK \ CINEON \ COLLADA \ COMPOSITOR \ CYCLES \ CYCLESEMBR \ CYCLESOSL \ DDS \ DRACO \ EBOOL \ FFMPEG \ FFTW3 \ FRAMESERVER \ FREESTYLE \ HDR \ HEADLESS \ INPUT_NDOF \ JACK \ LZO \ LZMA \ MENU \ MOD_BOOLEAN \ MOD_FLUID \ MOD_OCEANSIM \ MOD_REMESH \ MOD_SMOKE \ NLS \ OPENAL \ OPENCOLORIO \ OPENEXR \ OPENIMAGEIO \ OPENIMAGEDN \ OPENJPEG \ OPENMP \ OPENSUBDIV \ OPENVDB \ RAYOPTIMIZATION \ SDL \ SNDFILE \ TBB \ TIFF \ TRACE \ XINPUT \ XF86VMODE OPTIONS_DEFAULT= \ ALEMBIC \ ALEMBIC_HDF5 \ AVI \ BULLET \ CINEON \ COLLADA \ COMPOSITOR \ CYCLES \ DDS \ DRACO \ EBOOL \ - FFMPEG \ FFTW3 \ FRAMESERVER \ FREESTYLE \ HDR \ INPUT_NDOF \ LZO \ LZMA \ MENU \ MOD_BOOLEAN \ MOD_FLUID \ MOD_OCEANSIM \ MOD_REMESH \ MOD_SMOKE \ OPENAL \ OPENCOLORIO \ OPENEXR \ OPENIMAGEIO \ OPENJPEG \ OPENSUBDIV \ RAYOPTIMIZATION \ SDL \ TBB \ TIFF \ TRACE \ XINPUT \ XF86VMODE OPTIONS_DEFAULT_amd64= CAMERATRACK CYCLESEMBR OPENIMAGEDN ALEMBIC_DESC= Enable Alembic file support ALEMBIC_HDF5_DESC= Enable Alembic hdf5 file support AVI_DESC= Enable Blender's own AVI file support BULLET_DESC= Bullet physics engine CINEON_DESC= CINEON and DPX graphics format support CAMERATRACK_DESC= Camera tracking support COLLADA_DESC= Enable read/write support for COLLADA files COMPOSITOR_DESC= Use the tile-based nodal compositor CYCLES_DESC= Cycles render engine support CYCLESEMBR_DESC= Embree support (amd64 only) CYCLESOSL_DESC= Shading support for the cycles render engine DDS_DESC= DDS graphics format support # this is required to support gltf import/export DRACO_DESC= Install draco python module EBOOL_DESC= Enable exact boolean support FFTW3_DESC= Use fftw for smoke and audio effects FRAMESERVER_DESC= Image FrameServer support for rendering FREESTYLE_DESC= Enable advanced edges rendering HDR_DESC= Generic high dynamic-range (HDR) support HEADLESS_DESC= Disable user interface (for render-farms) INPUT_NDOF_DESC= Enable NDOF input device support LZO_DESC= Fast compression support LZMA_DESC= Best compression support MENU_DESC= Install desktop menu MOD_BOOLEAN_DESC= Boolean modifier support MOD_FLUID_DESC= Fluid simulation support MOD_OCEANSIM_DESC= Ocean simulation support MOD_REMESH_DESC= Remesh modifier support MOD_SMOKE_DESC= Smoke simulation support OPENCOLORIO_DESC= OpenColorIO-based color management support OPENIMAGEIO_DESC= OpenImageIO image processing support OPENIMAGEDN_DESC= OpenImageDenoise support OPENSUBDIV_DESC= Use the OpenSubDiv library for surface subdivision OPENVDB_DESC= Use openVDB library for volumetric data RAYOPTIMIZATION_DESC= Enable SSE optimizatons for raytracing SDL_DESC= Audio and Joystick support using SDL TBB_DESC= Enable use of Intel's tbb TRACE_DESC= Enable tracing image to GP stroke XINPUT_DESC= X11 Xinput (tablet) support XF86VMODE_DESC= X11 video mode switching support diff --git a/graphics/blender-lts29/distinfo b/graphics/blender-lts29/distinfo index bb4094d283f7..0771c541f379 100644 --- a/graphics/blender-lts29/distinfo +++ b/graphics/blender-lts29/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1682621230 -SHA256 (blender-2.93.17.tar.xz) = 040e1381c8a37bb22e684b15ba4fecb78817fd13f1e4709d6d8c20800ac7cbfb -SIZE (blender-2.93.17.tar.xz) = 43033860 +TIMESTAMP = 1685053190 +SHA256 (blender-2.93.18.tar.xz) = f485da9fa9bdaabb7c1133e74e717d09468feec6db455595b03c02201a2081dd +SIZE (blender-2.93.18.tar.xz) = 43030152 diff --git a/graphics/blender-lts29/files/patch-extern_audaspace_plugins_ffmpeg_FFMPEGReader.cpp b/graphics/blender-lts29/files/patch-extern_audaspace_plugins_ffmpeg_FFMPEGReader.cpp new file mode 100644 index 000000000000..515c8b00191c --- /dev/null +++ b/graphics/blender-lts29/files/patch-extern_audaspace_plugins_ffmpeg_FFMPEGReader.cpp @@ -0,0 +1,11 @@ +--- extern/audaspace/plugins/ffmpeg/FFMPEGReader.cpp.orig 2023-05-12 23:31:30 UTC ++++ extern/audaspace/plugins/ffmpeg/FFMPEGReader.cpp +@@ -182,7 +182,7 @@ void FFMPEGReader::init() + + // get a decoder and open it + #ifndef FFMPEG_OLD_CODE +- AVCodec* aCodec = avcodec_find_decoder(m_formatCtx->streams[m_stream]->codecpar->codec_id); ++ const AVCodec* aCodec = avcodec_find_decoder(m_formatCtx->streams[m_stream]->codecpar->codec_id); + + if(!aCodec) + AUD_THROW(FileException, "File couldn't be read, no decoder found with ffmpeg."); diff --git a/graphics/blender-lts29/files/patch-extern_audaspace_plugins_ffmpeg_FFMPEGWriter.cpp b/graphics/blender-lts29/files/patch-extern_audaspace_plugins_ffmpeg_FFMPEGWriter.cpp new file mode 100644 index 000000000000..8a95a35b12cf --- /dev/null +++ b/graphics/blender-lts29/files/patch-extern_audaspace_plugins_ffmpeg_FFMPEGWriter.cpp @@ -0,0 +1,28 @@ +--- extern/audaspace/plugins/ffmpeg/FFMPEGWriter.cpp.orig 2023-05-12 23:31:30 UTC ++++ extern/audaspace/plugins/ffmpeg/FFMPEGWriter.cpp +@@ -23,6 +23,7 @@ extern "C" { + extern "C" { + #include + #include ++#include + } + + AUD_NAMESPACE_BEGIN +@@ -171,7 +172,7 @@ FFMPEGWriter::FFMPEGWriter(std::string filename, Devic + if(avformat_alloc_output_context2(&m_formatCtx, nullptr, formats[format], filename.c_str()) < 0) + AUD_THROW(FileException, "File couldn't be written, format couldn't be found with ffmpeg."); + +- AVOutputFormat* outputFmt = m_formatCtx->oformat; ++ AVOutputFormat* outputFmt = const_cast(m_formatCtx->oformat); + + if(!outputFmt) { + avformat_free_context(m_formatCtx); +@@ -271,7 +272,7 @@ FFMPEGWriter::FFMPEGWriter(std::string filename, Devic + if(outputFmt->audio_codec == AV_CODEC_ID_NONE) + AUD_THROW(FileException, "File couldn't be written, audio codec not found with ffmpeg."); + +- AVCodec* codec = avcodec_find_encoder(outputFmt->audio_codec); ++ const AVCodec* codec = avcodec_find_encoder(outputFmt->audio_codec); + if(!codec) + AUD_THROW(FileException, "File couldn't be written, audio encoder couldn't be found with ffmpeg."); + diff --git a/graphics/blender-lts29/files/patch-intern_cycles_CMakeLists.txt b/graphics/blender-lts29/files/patch-intern_cycles_CMakeLists.txt index 0c94a20879db..620be16a2b15 100644 --- a/graphics/blender-lts29/files/patch-intern_cycles_CMakeLists.txt +++ b/graphics/blender-lts29/files/patch-intern_cycles_CMakeLists.txt @@ -1,14 +1,14 @@ ---- intern/cycles/CMakeLists.txt.orig 2019-07-31 13:03:30 UTC +--- intern/cycles/CMakeLists.txt.orig 2023-05-12 23:31:31 UTC +++ intern/cycles/CMakeLists.txt -@@ -260,9 +260,9 @@ if(WITH_CYCLES_DEBUG) +@@ -312,9 +312,9 @@ endif() add_definitions(-DWITH_CYCLES_DEBUG) endif() -if(NOT OPENIMAGEIO_PUGIXML_FOUND) +#if(NOT OPENIMAGEIO_PUGIXML_FOUND) add_definitions(-DWITH_SYSTEM_PUGIXML) -endif() +#endif() include_directories( SYSTEM diff --git a/graphics/blender-lts29/files/patch-intern_ffmpeg_ffmpeg__compat.h b/graphics/blender-lts29/files/patch-intern_ffmpeg_ffmpeg__compat.h new file mode 100644 index 000000000000..2557a06bd68f --- /dev/null +++ b/graphics/blender-lts29/files/patch-intern_ffmpeg_ffmpeg__compat.h @@ -0,0 +1,12 @@ +--- intern/ffmpeg/ffmpeg_compat.h.orig 2023-05-12 23:31:31 UTC ++++ intern/ffmpeg/ffmpeg_compat.h +@@ -20,7 +20,9 @@ + #ifndef __FFMPEG_COMPAT_H__ + #define __FFMPEG_COMPAT_H__ + ++#include + #include ++#define AV_CODEC_CAP_AUTO_THREADS AV_CODEC_CAP_OTHER_THREADS + + /* Check if our ffmpeg is new enough, avoids user complaints. + * Minimum supported version is currently 3.2.0 which mean the following library versions: diff --git a/graphics/blender-lts29/files/patch-source_blender_blenkernel_intern_writeffmpeg.c b/graphics/blender-lts29/files/patch-source_blender_blenkernel_intern_writeffmpeg.c index 5c4ce5259791..1f738c6e485b 100644 --- a/graphics/blender-lts29/files/patch-source_blender_blenkernel_intern_writeffmpeg.c +++ b/graphics/blender-lts29/files/patch-source_blender_blenkernel_intern_writeffmpeg.c @@ -1,11 +1,82 @@ ---- source/blender/blenkernel/intern/writeffmpeg.c.orig 2022-11-08 13:50:16 UTC +--- source/blender/blenkernel/intern/writeffmpeg.c.orig 2023-05-25 22:43:31 UTC +++ source/blender/blenkernel/intern/writeffmpeg.c -@@ -855,7 +855,7 @@ static AVStream *alloc_video_stream(FFMpegContext *con - 255); - st->avg_frame_rate = av_inv_q(c->time_base); +@@ -59,6 +59,7 @@ + # include + # include + # include ++# include + # include -- if (codec->capabilities & AV_CODEC_CAP_AUTO_THREADS) { -+ if (codec->capabilities & AV_CODEC_CAP_OTHER_THREADS) { - c->thread_count = 0; + # include "ffmpeg_compat.h" +@@ -574,7 +575,7 @@ static AVStream *alloc_video_stream(FFMpegContext *con + int error_size) + { + AVStream *st; +- AVCodec *codec; ++ const AVCodec *codec; + AVDictionary *opts = NULL; + + error[0] = '\0'; +@@ -601,7 +602,7 @@ static AVStream *alloc_video_stream(FFMpegContext *con + } + + /* Load codec defaults into 'c'. */ +- avcodec_get_context_defaults3(c, codec); ++ //avcodec_get_context_defaults3(c, codec); + + /* Get some values from the current render settings */ + +@@ -814,7 +815,7 @@ static AVStream *alloc_audio_stream(FFMpegContext *con + int error_size) + { + AVStream *st; +- AVCodec *codec; ++ const AVCodec *codec; + AVDictionary *opts = NULL; + + error[0] = '\0'; +@@ -842,7 +843,7 @@ static AVStream *alloc_audio_stream(FFMpegContext *con } - else { + + /* Load codec defaults into 'c'. */ +- avcodec_get_context_defaults3(c, codec); ++ //avcodec_get_context_defaults3(c, codec); + + c->sample_rate = rd->ffcodecdata.audio_mixrate; + c->bit_rate = context->ffmpeg_audio_bitrate * 1000; +@@ -1038,7 +1039,7 @@ static int start_ffmpeg_impl(FFMpegContext *context, + BKE_report(reports, RPT_ERROR, "No valid formats found"); + return 0; + } +- fmt = av_guess_format(NULL, exts[0], NULL); ++ fmt = (AVOutputFormat*)(av_guess_format(NULL, exts[0], NULL)); + if (!fmt) { + BKE_report(reports, RPT_ERROR, "No valid formats found"); + return 0; +@@ -1554,7 +1555,7 @@ static IDProperty *BKE_ffmpeg_property_add(RenderData + const AVOption *o, + const AVOption *parent) + { +- AVCodecContext c; ++ //AVCodecContext c; + IDProperty *group; + IDProperty *prop; + IDPropertyTemplate val; +@@ -1563,7 +1564,7 @@ static IDProperty *BKE_ffmpeg_property_add(RenderData + + val.i = 0; + +- avcodec_get_context_defaults3(&c, NULL); ++ //avcodec_get_context_defaults3(&c, NULL); + + if (!rd->ffcodecdata.properties) { + rd->ffcodecdata.properties = IDP_New(IDP_GROUP, &val, "ffmpeg"); +@@ -1632,7 +1633,7 @@ int BKE_ffmpeg_property_add_string(RenderData *rd, con + char *param; + IDProperty *prop = NULL; + +- avcodec_get_context_defaults3(&c, NULL); ++ //avcodec_get_context_defaults3(&c, NULL); + + BLI_strncpy(name_, str, sizeof(name_)); + diff --git a/graphics/blender-lts29/files/patch-source_blender_imbuf_intern_anim__movie.c b/graphics/blender-lts29/files/patch-source_blender_imbuf_intern_anim__movie.c index eff908405e1e..db8863597462 100644 --- a/graphics/blender-lts29/files/patch-source_blender_imbuf_intern_anim__movie.c +++ b/graphics/blender-lts29/files/patch-source_blender_imbuf_intern_anim__movie.c @@ -1,11 +1,11 @@ ---- source/blender/imbuf/intern/anim_movie.c.orig 2022-11-04 00:33:07 UTC +--- source/blender/imbuf/intern/anim_movie.c.orig 2023-05-12 23:31:38 UTC +++ source/blender/imbuf/intern/anim_movie.c -@@ -554,7 +554,7 @@ static int startffmpeg(struct anim *anim) +@@ -574,7 +574,7 @@ static int startffmpeg(struct anim *anim) avcodec_parameters_to_context(pCodecCtx, video_stream->codecpar); pCodecCtx->workaround_bugs = FF_BUG_AUTODETECT; - if (pCodec->capabilities & AV_CODEC_CAP_AUTO_THREADS) { + if (pCodec->capabilities & AV_CODEC_CAP_OTHER_THREADS) { pCodecCtx->thread_count = 0; } else { diff --git a/graphics/blender-lts29/files/patch-source_blender_imbuf_intern_indexer.c b/graphics/blender-lts29/files/patch-source_blender_imbuf_intern_indexer.c index 401562c353dd..79b4b3f6f3eb 100644 --- a/graphics/blender-lts29/files/patch-source_blender_imbuf_intern_indexer.c +++ b/graphics/blender-lts29/files/patch-source_blender_imbuf_intern_indexer.c @@ -1,20 +1,20 @@ ---- source/blender/imbuf/intern/indexer.c.orig 2022-11-04 00:33:07 UTC +--- source/blender/imbuf/intern/indexer.c.orig 2023-05-25 22:43:31 UTC +++ source/blender/imbuf/intern/indexer.c -@@ -559,7 +559,7 @@ static struct proxy_output_ctx *alloc_proxy_output_ffm - av_dict_set(&codec_opts, "preset", "veryfast", 0); - av_dict_set(&codec_opts, "tune", "fastdecode", 0); +@@ -527,7 +527,7 @@ static struct proxy_output_ctx *alloc_proxy_output_ffm + rv->c->codec_type = AVMEDIA_TYPE_VIDEO; + rv->c->codec_id = AV_CODEC_ID_H264; -- if (rv->codec->capabilities & AV_CODEC_CAP_AUTO_THREADS) { -+ if (rv->codec->capabilities & AV_CODEC_CAP_OTHER_THREADS) { - rv->c->thread_count = 0; - } - else { -@@ -872,7 +872,7 @@ static IndexBuildContext *index_ffmpeg_create_context( - avcodec_parameters_to_context(context->iCodecCtx, context->iStream->codecpar); - context->iCodecCtx->workaround_bugs = FF_BUG_AUTODETECT; +- rv->of->oformat->video_codec = rv->c->codec_id; ++ ((struct AVOutputFormat*)(rv->of->oformat))->video_codec = rv->c->codec_id; + rv->codec = avcodec_find_encoder(rv->c->codec_id); -- if (context->iCodec->capabilities & AV_CODEC_CAP_AUTO_THREADS) { -+ if (context->iCodec->capabilities & AV_CODEC_CAP_OTHER_THREADS) { - context->iCodecCtx->thread_count = 0; + if (!rv->codec) { +@@ -540,7 +540,7 @@ static struct proxy_output_ctx *alloc_proxy_output_ffm + return NULL; } - else { + +- avcodec_get_context_defaults3(rv->c, rv->codec); ++ //avcodec_get_context_defaults3(rv->c, rv->codec); + + rv->c->width = width; + rv->c->height = height;