Date: Friday, August 3, 2018 @ 04:40:07 Author: foutrelis Revision: 367477
archrelease: copy trunk to community-testing-x86_64 Added: blender/repos/community-testing-x86_64/PKGBUILD (from rev 367476, blender/trunk/PKGBUILD) blender/repos/community-testing-x86_64/ffmpeg4.0.patch (from rev 367476, blender/trunk/ffmpeg4.0.patch) blender/repos/community-testing-x86_64/openvdb3-abi.patch (from rev 367476, blender/trunk/openvdb3-abi.patch) blender/repos/community-testing-x86_64/python37.patch (from rev 367476, blender/trunk/python37.patch) blender/repos/community-testing-x86_64/tree_hpp.patch (from rev 367476, blender/trunk/tree_hpp.patch) blender/repos/community-testing-x86_64/util_sseb.patch (from rev 367476, blender/trunk/util_sseb.patch) Deleted: blender/repos/community-testing-x86_64/PKGBUILD blender/repos/community-testing-x86_64/ffmpeg4.0.patch blender/repos/community-testing-x86_64/openvdb3-abi.patch blender/repos/community-testing-x86_64/tree_hpp.patch blender/repos/community-testing-x86_64/util_sseb.patch --------------------+ PKGBUILD | 225 +++++++++++++++---------------- ffmpeg4.0.patch | 226 +++++++++++++++---------------- openvdb3-abi.patch | 56 +++---- python37.patch | 40 +++++ tree_hpp.patch | 366 +++++++++++++++++++++++++-------------------------- util_sseb.patch | 26 +-- 6 files changed, 491 insertions(+), 448 deletions(-) Deleted: PKGBUILD =================================================================== --- PKGBUILD 2018-08-03 04:39:58 UTC (rev 367476) +++ PKGBUILD 2018-08-03 04:40:07 UTC (rev 367477) @@ -1,111 +0,0 @@ -# $Id$ -# Maintainer: Sven-Hendrik Haase <s...@lutzhaase.com> -# Contributor: John Sowiak <j...@archlinux.org> -# Contributor: tobias <tob...@archlinux.org> - -# Sometimes blender.org takes some time to release patch releases and because Arch users -# are impatient, we sometimes need to build from git directly. -# Update because I get so many queries on this: -# Due to our other rolling deps, it's sometimes not possible to build Blender stable releases. -# More often than not, a new openshadinglanguage breaks it and I could either backport fixes -# or simply roll with a new version. I usually choose the latter when the former seems -# unreasonable. - -# _gittag=v2.79b -_gitcommit=32432d91bbec558cbd88e54aece61b0d641c1761 - -pkgname=blender -pkgver=2.79.b -[[ -n $_gitcommit ]] && pkgver=${pkgver}.git3.${_gitcommit:0:8} -pkgrel=2 -epoch=17 -pkgdesc="A fully integrated 3D graphics creation suite" -arch=('x86_64') -license=('GPL') -url="http://www.blender.org" -depends=('libpng' 'libtiff' 'openexr' 'python' 'desktop-file-utils' 'python-requests' - 'shared-mime-info' 'hicolor-icon-theme' 'xdg-utils' 'glew' 'openjpeg' 'python-numpy' - 'freetype2' 'openal' 'ffmpeg' 'fftw' 'boost-libs' 'opencollada' 'alembic' - 'openimageio' 'libsndfile' 'jack' 'opencolorio' 'openshadinglanguage' - 'jemalloc' 'libspnav' 'ptex' 'opensubdiv' 'openvdb' 'log4cplus' 'sdl2') -makedepends=('cmake' 'boost' 'mesa' 'git' 'llvm' 'cuda') -optdepends=('cuda: cycles renderer cuda support') -options=(!strip) -source=("git://git.blender.org/blender-addons.git" - "git://git.blender.org/blender-addons-contrib.git" - "git://git.blender.org/blender-translations.git" - "git://git.blender.org/blender-dev-tools.git" - "git://git.blender.org/scons.git" - ffmpeg4.0.patch - tree_hpp.patch - util_sseb.patch - openvdb3-abi.patch) -if [[ -n $_gittag ]]; then - source+=("${pkgname}-${pkgver}::git://git.blender.org/blender.git#tag=${_gittag}") -elif [[ -n $_gitcommit ]]; then - source+=("${pkgname}-${pkgver}::git://git.blender.org/blender.git#commit=${_gitcommit}") -fi -md5sums=('SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'da14d7cbdea1ab5499659a066658cdd2' - 'feea89510de171946c41c6208461f453' - '53da216adbc2a9d555a59c15b8f0ef08' - '3f9613fcb7ea61214982272e9c20a294' - 'SKIP') - -prepare() { - cd "$srcdir/$pkgname-$pkgver" - - git submodule init - git config submodule."release/scripts/addons".url ${srcdir}/blender-addons - git config submodule."release/scripts/addons_contrib".url ${srcdir}/blender-addons-contrib - git config submodule."release/datafiles/locale".url ${srcdir}/blender-translations - git config submodule."source/tools".url ${srcdir}/blender-dev-tools - git config submodule."scons".url ${srcdir}/scons - git submodule update - - patch -Np1 -i "$srcdir"/ffmpeg4.0.patch - patch -Np1 -i "$srcdir"/tree_hpp.patch - patch -Np1 -i "$srcdir"/util_sseb.patch - patch -Np1 -i "$srcdir"/openvdb3-abi.patch -} - -build() { - cd "$srcdir/$pkgname-$pkgver" - - [[ -d build ]] && rm -rf build - mkdir build && cd build - - cmake -C../build_files/cmake/config/blender_release.cmake .. \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DCMAKE_BUILD_TYPE=Release \ - -DWITH_INSTALL_PORTABLE=OFF \ - -DWITH_PYTHON_INSTALL=OFF \ - -DOPENIMAGEIO_ROOT_DIR=/usr \ - -DWITH_SYSTEM_OPENJPEG=ON \ - -DWITH_GL_PROFILE_CORE=OFF \ - -DWITH_GL_PROFILE_ES20=OFF \ - -DWITH_LLVM=ON \ - -DWITH_CYCLES_CUDA_BINARIES=ON \ - -DWITH_CYCLES_PTEX=OFF \ - -DCYCLES_CUDA_BINARIES_ARCH="sm_30;sm_35;sm_37;sm_50;sm_52;sm_60;sm_61;sm_62;sm_70" \ - -DPYTHON_VERSION=3.7 \ - -DPYTHON_LIBPATH=/usr/lib \ - -DPYTHON_LIBRARY=python3.7m \ - -DPYTHON_INCLUDE_DIRS=/usr/include/python3.7m - make - - # PTEX is currently broken and experimental in blender anyway -} - -package() { - cd "$srcdir/$pkgname-$pkgver/build" - - make DESTDIR="${pkgdir}" install - install -Dm755 ../release/bin/blender-softwaregl "${pkgdir}/usr/bin/blender-softwaregl" - python -m compileall "${pkgdir}/usr/share/blender" - python -O -m compileall "${pkgdir}/usr/share/blender" -} Copied: blender/repos/community-testing-x86_64/PKGBUILD (from rev 367476, blender/trunk/PKGBUILD) =================================================================== --- PKGBUILD (rev 0) +++ PKGBUILD 2018-08-03 04:40:07 UTC (rev 367477) @@ -0,0 +1,114 @@ +# $Id$ +# Maintainer: Sven-Hendrik Haase <s...@lutzhaase.com> +# Contributor: John Sowiak <j...@archlinux.org> +# Contributor: tobias <tob...@archlinux.org> + +# Sometimes blender.org takes some time to release patch releases and because Arch users +# are impatient, we sometimes need to build from git directly. +# Update because I get so many queries on this: +# Due to our other rolling deps, it's sometimes not possible to build Blender stable releases. +# More often than not, a new openshadinglanguage breaks it and I could either backport fixes +# or simply roll with a new version. I usually choose the latter when the former seems +# unreasonable. + +# _gittag=v2.79b +_gitcommit=32432d91bbec558cbd88e54aece61b0d641c1761 + +pkgname=blender +pkgver=2.79.b +[[ -n $_gitcommit ]] && pkgver=${pkgver}.git3.${_gitcommit:0:8} +pkgrel=3 +epoch=17 +pkgdesc="A fully integrated 3D graphics creation suite" +arch=('x86_64') +license=('GPL') +url="http://www.blender.org" +depends=('libpng' 'libtiff' 'openexr' 'python' 'desktop-file-utils' 'python-requests' + 'shared-mime-info' 'hicolor-icon-theme' 'xdg-utils' 'glew' 'openjpeg' 'python-numpy' + 'freetype2' 'openal' 'ffmpeg' 'fftw' 'boost-libs' 'opencollada' 'alembic' + 'openimageio' 'libsndfile' 'jack' 'opencolorio' 'openshadinglanguage' + 'jemalloc' 'libspnav' 'ptex' 'opensubdiv' 'openvdb' 'log4cplus' 'sdl2') +makedepends=('cmake' 'boost' 'mesa' 'git' 'llvm' 'cuda') +optdepends=('cuda: cycles renderer cuda support') +options=(!strip) +source=("git://git.blender.org/blender-addons.git" + "git://git.blender.org/blender-addons-contrib.git" + "git://git.blender.org/blender-translations.git" + "git://git.blender.org/blender-dev-tools.git" + "git://git.blender.org/scons.git" + python37.patch + ffmpeg4.0.patch + tree_hpp.patch + util_sseb.patch + openvdb3-abi.patch) +if [[ -n $_gittag ]]; then + source+=("${pkgname}-${pkgver}::git://git.blender.org/blender.git#tag=${_gittag}") +elif [[ -n $_gitcommit ]]; then + source+=("${pkgname}-${pkgver}::git://git.blender.org/blender.git#commit=${_gitcommit}") +fi +md5sums=('SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + '1d6d2064db0e8e4e3a52735406f5106a' + 'da14d7cbdea1ab5499659a066658cdd2' + 'feea89510de171946c41c6208461f453' + '53da216adbc2a9d555a59c15b8f0ef08' + '3f9613fcb7ea61214982272e9c20a294' + 'SKIP') + +prepare() { + cd "$srcdir/$pkgname-$pkgver" + + git submodule init + git config submodule."release/scripts/addons".url ${srcdir}/blender-addons + git config submodule."release/scripts/addons_contrib".url ${srcdir}/blender-addons-contrib + git config submodule."release/datafiles/locale".url ${srcdir}/blender-translations + git config submodule."source/tools".url ${srcdir}/blender-dev-tools + git config submodule."scons".url ${srcdir}/scons + git submodule update + + patch -Np1 -i "$srcdir"/python37.patch + patch -Np1 -i "$srcdir"/ffmpeg4.0.patch + patch -Np1 -i "$srcdir"/tree_hpp.patch + patch -Np1 -i "$srcdir"/util_sseb.patch + patch -Np1 -i "$srcdir"/openvdb3-abi.patch +} + +build() { + cd "$srcdir/$pkgname-$pkgver" + + [[ -d build ]] && rm -rf build + mkdir build && cd build + + cmake -C../build_files/cmake/config/blender_release.cmake .. \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_BUILD_TYPE=Release \ + -DWITH_INSTALL_PORTABLE=OFF \ + -DWITH_PYTHON_INSTALL=OFF \ + -DOPENIMAGEIO_ROOT_DIR=/usr \ + -DWITH_SYSTEM_OPENJPEG=ON \ + -DWITH_GL_PROFILE_CORE=OFF \ + -DWITH_GL_PROFILE_ES20=OFF \ + -DWITH_LLVM=ON \ + -DWITH_CYCLES_CUDA_BINARIES=ON \ + -DWITH_CYCLES_PTEX=OFF \ + -DCYCLES_CUDA_BINARIES_ARCH="sm_30;sm_35;sm_37;sm_50;sm_52;sm_60;sm_61;sm_62;sm_70" \ + -DPYTHON_VERSION=3.7 \ + -DPYTHON_LIBPATH=/usr/lib \ + -DPYTHON_LIBRARY=python3.7m \ + -DPYTHON_INCLUDE_DIRS=/usr/include/python3.7m + make + + # PTEX is currently broken and experimental in blender anyway +} + +package() { + cd "$srcdir/$pkgname-$pkgver/build" + + make DESTDIR="${pkgdir}" install + install -Dm755 ../release/bin/blender-softwaregl "${pkgdir}/usr/bin/blender-softwaregl" + python -m compileall "${pkgdir}/usr/share/blender" + python -O -m compileall "${pkgdir}/usr/share/blender" +} Deleted: ffmpeg4.0.patch =================================================================== --- ffmpeg4.0.patch 2018-08-03 04:39:58 UTC (rev 367476) +++ ffmpeg4.0.patch 2018-08-03 04:40:07 UTC (rev 367477) @@ -1,113 +0,0 @@ -diff --git a/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp b/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp -index e9eea195208..84aea330313 100644 ---- a/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp -+++ b/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp -@@ -264,9 +264,9 @@ AUD_FFMPEGReader::AUD_FFMPEGReader(boost::shared_ptr<AUD_Buffer> buffer) : - m_membuffer(buffer), - m_membufferpos(0) - { -- m_membuf = reinterpret_cast<data_t*>(av_malloc(FF_MIN_BUFFER_SIZE + FF_INPUT_BUFFER_PADDING_SIZE)); -+ m_membuf = reinterpret_cast<data_t*>(av_malloc(AV_INPUT_BUFFER_MIN_SIZE + AV_INPUT_BUFFER_PADDING_SIZE)); - -- m_aviocontext = avio_alloc_context(m_membuf, FF_MIN_BUFFER_SIZE, 0, this, -+ m_aviocontext = avio_alloc_context(m_membuf, AV_INPUT_BUFFER_MIN_SIZE, 0, this, - read_packet, NULL, seek_packet); - - if(!m_aviocontext) -diff --git a/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp b/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp -index 3f95ac7a4da..2c2f0916406 100644 ---- a/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp -+++ b/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp -@@ -163,7 +163,7 @@ AUD_FFMPEGWriter::AUD_FFMPEGWriter(std::string filename, AUD_DeviceSpecs specs, - try - { - if(m_formatCtx->oformat->flags & AVFMT_GLOBALHEADER) -- m_codecCtx->flags |= CODEC_FLAG_GLOBAL_HEADER; -+ m_codecCtx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER; - - AVCodec* codec = avcodec_find_encoder(m_codecCtx->codec_id); - if(!codec) -@@ -185,11 +185,11 @@ AUD_FFMPEGWriter::AUD_FFMPEGWriter(std::string filename, AUD_DeviceSpecs specs, - if(avcodec_open2(m_codecCtx, codec, NULL)) - AUD_THROW(AUD_ERROR_FFMPEG, codec_error); - -- m_output_buffer.resize(FF_MIN_BUFFER_SIZE); -+ m_output_buffer.resize(AV_INPUT_BUFFER_MIN_SIZE); - int samplesize = AUD_MAX(AUD_SAMPLE_SIZE(m_specs), AUD_DEVICE_SAMPLE_SIZE(m_specs)); - - if(m_codecCtx->frame_size <= 1) { -- m_input_size = FF_MIN_BUFFER_SIZE * 8 / m_codecCtx->bits_per_coded_sample / m_codecCtx->channels; -+ m_input_size = AV_INPUT_BUFFER_MIN_SIZE * 8 / m_codecCtx->bits_per_coded_sample / m_codecCtx->channels; - m_input_buffer.resize(m_input_size * samplesize); - } - else -diff --git a/source/blender/blenkernel/intern/writeffmpeg.c b/source/blender/blenkernel/intern/writeffmpeg.c -index d7fcd896e11..9e82df17dce 100644 ---- a/source/blender/blenkernel/intern/writeffmpeg.c -+++ b/source/blender/blenkernel/intern/writeffmpeg.c -@@ -619,8 +619,6 @@ static AVStream *alloc_video_stream(FFMpegContext *context, RenderData *rd, int - c->rc_buffer_aggressivity = 1.0; - #endif - -- c->me_method = ME_EPZS; -- - codec = avcodec_find_encoder(c->codec_id); - if (!codec) - return NULL; -@@ -682,14 +680,14 @@ static AVStream *alloc_video_stream(FFMpegContext *context, RenderData *rd, int - ) - { - PRINT("Using global header\n"); -- c->flags |= CODEC_FLAG_GLOBAL_HEADER; -+ c->flags |= AV_CODEC_FLAG_GLOBAL_HEADER; - } - - /* Determine whether we are encoding interlaced material or not */ - if (rd->mode & R_FIELDS) { - PRINT("Encoding interlaced video\n"); -- c->flags |= CODEC_FLAG_INTERLACED_DCT; -- c->flags |= CODEC_FLAG_INTERLACED_ME; -+ c->flags |= AV_CODEC_FLAG_INTERLACED_DCT; -+ c->flags |= AV_CODEC_FLAG_INTERLACED_ME; - } - - /* xasp & yasp got float lately... */ -@@ -779,7 +777,7 @@ static AVStream *alloc_audio_stream(FFMpegContext *context, RenderData *rd, int - } - - if (of->oformat->flags & AVFMT_GLOBALHEADER) { -- c->flags |= CODEC_FLAG_GLOBAL_HEADER; -+ c->flags |= AV_CODEC_FLAG_GLOBAL_HEADER; - } - - set_ffmpeg_properties(rd, c, "audio", &opts); -@@ -798,14 +796,14 @@ static AVStream *alloc_audio_stream(FFMpegContext *context, RenderData *rd, int - st->codec->time_base.den = st->codec->sample_rate; - - #ifndef FFMPEG_HAVE_ENCODE_AUDIO2 -- context->audio_outbuf_size = FF_MIN_BUFFER_SIZE; -+ context->audio_outbuf_size = AV_INPUT_BUFFER_MIN_SIZE; - #endif - - if (c->frame_size == 0) - // used to be if ((c->codec_id >= CODEC_ID_PCM_S16LE) && (c->codec_id <= CODEC_ID_PCM_DVD)) - // not sure if that is needed anymore, so let's try out if there are any - // complaints regarding some ffmpeg versions users might have -- context->audio_input_samples = FF_MIN_BUFFER_SIZE * 8 / c->bits_per_coded_sample / c->channels; -+ context->audio_input_samples = AV_INPUT_BUFFER_MIN_SIZE * 8 / c->bits_per_coded_sample / c->channels; - else { - context->audio_input_samples = c->frame_size; - #ifndef FFMPEG_HAVE_ENCODE_AUDIO2 -diff --git a/source/blender/imbuf/intern/indexer.c b/source/blender/imbuf/intern/indexer.c -index eaf4dfd84b4..9c2f42feb52 100644 ---- a/source/blender/imbuf/intern/indexer.c -+++ b/source/blender/imbuf/intern/indexer.c -@@ -537,7 +537,7 @@ static struct proxy_output_ctx *alloc_proxy_output_ffmpeg( - av_opt_set_int(rv->c, "qmax", ffmpeg_quality, 0); - - if (rv->of->flags & AVFMT_GLOBALHEADER) { -- rv->c->flags |= CODEC_FLAG_GLOBAL_HEADER; -+ rv->c->flags |= AV_CODEC_FLAG_GLOBAL_HEADER; - } - - if (avio_open(&rv->of->pb, fname, AVIO_FLAG_WRITE) < 0) { Copied: blender/repos/community-testing-x86_64/ffmpeg4.0.patch (from rev 367476, blender/trunk/ffmpeg4.0.patch) =================================================================== --- ffmpeg4.0.patch (rev 0) +++ ffmpeg4.0.patch 2018-08-03 04:40:07 UTC (rev 367477) @@ -0,0 +1,113 @@ +diff --git a/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp b/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp +index e9eea195208..84aea330313 100644 +--- a/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp ++++ b/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp +@@ -264,9 +264,9 @@ AUD_FFMPEGReader::AUD_FFMPEGReader(boost::shared_ptr<AUD_Buffer> buffer) : + m_membuffer(buffer), + m_membufferpos(0) + { +- m_membuf = reinterpret_cast<data_t*>(av_malloc(FF_MIN_BUFFER_SIZE + FF_INPUT_BUFFER_PADDING_SIZE)); ++ m_membuf = reinterpret_cast<data_t*>(av_malloc(AV_INPUT_BUFFER_MIN_SIZE + AV_INPUT_BUFFER_PADDING_SIZE)); + +- m_aviocontext = avio_alloc_context(m_membuf, FF_MIN_BUFFER_SIZE, 0, this, ++ m_aviocontext = avio_alloc_context(m_membuf, AV_INPUT_BUFFER_MIN_SIZE, 0, this, + read_packet, NULL, seek_packet); + + if(!m_aviocontext) +diff --git a/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp b/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp +index 3f95ac7a4da..2c2f0916406 100644 +--- a/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp ++++ b/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp +@@ -163,7 +163,7 @@ AUD_FFMPEGWriter::AUD_FFMPEGWriter(std::string filename, AUD_DeviceSpecs specs, + try + { + if(m_formatCtx->oformat->flags & AVFMT_GLOBALHEADER) +- m_codecCtx->flags |= CODEC_FLAG_GLOBAL_HEADER; ++ m_codecCtx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER; + + AVCodec* codec = avcodec_find_encoder(m_codecCtx->codec_id); + if(!codec) +@@ -185,11 +185,11 @@ AUD_FFMPEGWriter::AUD_FFMPEGWriter(std::string filename, AUD_DeviceSpecs specs, + if(avcodec_open2(m_codecCtx, codec, NULL)) + AUD_THROW(AUD_ERROR_FFMPEG, codec_error); + +- m_output_buffer.resize(FF_MIN_BUFFER_SIZE); ++ m_output_buffer.resize(AV_INPUT_BUFFER_MIN_SIZE); + int samplesize = AUD_MAX(AUD_SAMPLE_SIZE(m_specs), AUD_DEVICE_SAMPLE_SIZE(m_specs)); + + if(m_codecCtx->frame_size <= 1) { +- m_input_size = FF_MIN_BUFFER_SIZE * 8 / m_codecCtx->bits_per_coded_sample / m_codecCtx->channels; ++ m_input_size = AV_INPUT_BUFFER_MIN_SIZE * 8 / m_codecCtx->bits_per_coded_sample / m_codecCtx->channels; + m_input_buffer.resize(m_input_size * samplesize); + } + else +diff --git a/source/blender/blenkernel/intern/writeffmpeg.c b/source/blender/blenkernel/intern/writeffmpeg.c +index d7fcd896e11..9e82df17dce 100644 +--- a/source/blender/blenkernel/intern/writeffmpeg.c ++++ b/source/blender/blenkernel/intern/writeffmpeg.c +@@ -619,8 +619,6 @@ static AVStream *alloc_video_stream(FFMpegContext *context, RenderData *rd, int + c->rc_buffer_aggressivity = 1.0; + #endif + +- c->me_method = ME_EPZS; +- + codec = avcodec_find_encoder(c->codec_id); + if (!codec) + return NULL; +@@ -682,14 +680,14 @@ static AVStream *alloc_video_stream(FFMpegContext *context, RenderData *rd, int + ) + { + PRINT("Using global header\n"); +- c->flags |= CODEC_FLAG_GLOBAL_HEADER; ++ c->flags |= AV_CODEC_FLAG_GLOBAL_HEADER; + } + + /* Determine whether we are encoding interlaced material or not */ + if (rd->mode & R_FIELDS) { + PRINT("Encoding interlaced video\n"); +- c->flags |= CODEC_FLAG_INTERLACED_DCT; +- c->flags |= CODEC_FLAG_INTERLACED_ME; ++ c->flags |= AV_CODEC_FLAG_INTERLACED_DCT; ++ c->flags |= AV_CODEC_FLAG_INTERLACED_ME; + } + + /* xasp & yasp got float lately... */ +@@ -779,7 +777,7 @@ static AVStream *alloc_audio_stream(FFMpegContext *context, RenderData *rd, int + } + + if (of->oformat->flags & AVFMT_GLOBALHEADER) { +- c->flags |= CODEC_FLAG_GLOBAL_HEADER; ++ c->flags |= AV_CODEC_FLAG_GLOBAL_HEADER; + } + + set_ffmpeg_properties(rd, c, "audio", &opts); +@@ -798,14 +796,14 @@ static AVStream *alloc_audio_stream(FFMpegContext *context, RenderData *rd, int + st->codec->time_base.den = st->codec->sample_rate; + + #ifndef FFMPEG_HAVE_ENCODE_AUDIO2 +- context->audio_outbuf_size = FF_MIN_BUFFER_SIZE; ++ context->audio_outbuf_size = AV_INPUT_BUFFER_MIN_SIZE; + #endif + + if (c->frame_size == 0) + // used to be if ((c->codec_id >= CODEC_ID_PCM_S16LE) && (c->codec_id <= CODEC_ID_PCM_DVD)) + // not sure if that is needed anymore, so let's try out if there are any + // complaints regarding some ffmpeg versions users might have +- context->audio_input_samples = FF_MIN_BUFFER_SIZE * 8 / c->bits_per_coded_sample / c->channels; ++ context->audio_input_samples = AV_INPUT_BUFFER_MIN_SIZE * 8 / c->bits_per_coded_sample / c->channels; + else { + context->audio_input_samples = c->frame_size; + #ifndef FFMPEG_HAVE_ENCODE_AUDIO2 +diff --git a/source/blender/imbuf/intern/indexer.c b/source/blender/imbuf/intern/indexer.c +index eaf4dfd84b4..9c2f42feb52 100644 +--- a/source/blender/imbuf/intern/indexer.c ++++ b/source/blender/imbuf/intern/indexer.c +@@ -537,7 +537,7 @@ static struct proxy_output_ctx *alloc_proxy_output_ffmpeg( + av_opt_set_int(rv->c, "qmax", ffmpeg_quality, 0); + + if (rv->of->flags & AVFMT_GLOBALHEADER) { +- rv->c->flags |= CODEC_FLAG_GLOBAL_HEADER; ++ rv->c->flags |= AV_CODEC_FLAG_GLOBAL_HEADER; + } + + if (avio_open(&rv->of->pb, fname, AVIO_FLAG_WRITE) < 0) { Deleted: openvdb3-abi.patch =================================================================== --- openvdb3-abi.patch 2018-08-03 04:39:58 UTC (rev 367476) +++ openvdb3-abi.patch 2018-08-03 04:40:07 UTC (rev 367477) @@ -1,28 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index bfea2dd1a97..c59aff4c62c 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -252,6 +252,10 @@ option(WITH_OPENSUBDIV "Enable OpenSubdiv for surface subdivision" _init_OPEN - option(WITH_OPENVDB "Enable features relying on OpenVDB" OFF) - option(WITH_OPENVDB_BLOSC "Enable blosc compression for OpenVDB, only enable if OpenVDB was built with blosc support" OFF) - -+if(WITH_OPENVDB) -+ add_definitions(-DOPENVDB_3_ABI_COMPATIBLE=TRUE) -+endif() -+ - # GHOST Windowing Library Options - option(WITH_GHOST_DEBUG "Enable debugging output for the GHOST library" OFF) - mark_as_advanced(WITH_GHOST_DEBUG) -diff --git a/intern/openvdb/intern/openvdb_writer.cc b/intern/openvdb/intern/openvdb_writer.cc -index e886c5a76a8..bedcfe65552 100644 ---- a/intern/openvdb/intern/openvdb_writer.cc -+++ b/intern/openvdb/intern/openvdb_writer.cc -@@ -45,7 +45,7 @@ void OpenVDBWriter::insert(const openvdb::GridBase::Ptr &grid) - - void OpenVDBWriter::insert(const openvdb::GridBase &grid) - { --#if (OPENVDB_LIBRARY_MAJOR_VERSION_NUMBER == 3) -+#if (OPENVDB_LIBRARY_MAJOR_VERSION_NUMBER <= 3) || defined(OPENVDB_3_ABI_COMPATIBLE) - m_grids->push_back(grid.copyGrid()); - #else - m_grids->push_back(grid.copyGridWithNewTree()); Copied: blender/repos/community-testing-x86_64/openvdb3-abi.patch (from rev 367476, blender/trunk/openvdb3-abi.patch) =================================================================== --- openvdb3-abi.patch (rev 0) +++ openvdb3-abi.patch 2018-08-03 04:40:07 UTC (rev 367477) @@ -0,0 +1,28 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index bfea2dd1a97..c59aff4c62c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -252,6 +252,10 @@ option(WITH_OPENSUBDIV "Enable OpenSubdiv for surface subdivision" _init_OPEN + option(WITH_OPENVDB "Enable features relying on OpenVDB" OFF) + option(WITH_OPENVDB_BLOSC "Enable blosc compression for OpenVDB, only enable if OpenVDB was built with blosc support" OFF) + ++if(WITH_OPENVDB) ++ add_definitions(-DOPENVDB_3_ABI_COMPATIBLE=TRUE) ++endif() ++ + # GHOST Windowing Library Options + option(WITH_GHOST_DEBUG "Enable debugging output for the GHOST library" OFF) + mark_as_advanced(WITH_GHOST_DEBUG) +diff --git a/intern/openvdb/intern/openvdb_writer.cc b/intern/openvdb/intern/openvdb_writer.cc +index e886c5a76a8..bedcfe65552 100644 +--- a/intern/openvdb/intern/openvdb_writer.cc ++++ b/intern/openvdb/intern/openvdb_writer.cc +@@ -45,7 +45,7 @@ void OpenVDBWriter::insert(const openvdb::GridBase::Ptr &grid) + + void OpenVDBWriter::insert(const openvdb::GridBase &grid) + { +-#if (OPENVDB_LIBRARY_MAJOR_VERSION_NUMBER == 3) ++#if (OPENVDB_LIBRARY_MAJOR_VERSION_NUMBER <= 3) || defined(OPENVDB_3_ABI_COMPATIBLE) + m_grids->push_back(grid.copyGrid()); + #else + m_grids->push_back(grid.copyGridWithNewTree()); Copied: blender/repos/community-testing-x86_64/python37.patch (from rev 367476, blender/trunk/python37.patch) =================================================================== --- python37.patch (rev 0) +++ python37.patch 2018-08-03 04:40:07 UTC (rev 367477) @@ -0,0 +1,40 @@ +From 1db47a2ccd1e68994bf8140eba6cc2a26a2bc91f Mon Sep 17 00:00:00 2001 +From: Campbell Barton <ideasma...@gmail.com> +Date: Thu, 12 Jul 2018 08:28:06 +0200 +Subject: [PATCH] Fix PyRNA class registration w/ Python 3.7 + +In Python3.7 this now raises an error. +--- + source/blender/python/intern/bpy_rna.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c +index 9052b6f580a..80b0aa7a51b 100644 +--- a/source/blender/python/intern/bpy_rna.c ++++ b/source/blender/python/intern/bpy_rna.c +@@ -7577,10 +7577,12 @@ static int bpy_class_validate_recursive(PointerRNA *dummyptr, StructRNA *srna, v + if (!(flag & PROP_REGISTER)) + continue; + ++ /* TODO(campbell): Use Python3.7x _PyObject_LookupAttr(), also in the macro below. */ + identifier = RNA_property_identifier(prop); + item = PyObject_GetAttrString(py_class, identifier); + + if (item == NULL) { ++ PyErr_Clear(); + /* Sneaky workaround to use the class name as the bl_idname */ + + #define BPY_REPLACEMENT_STRING(rna_attr, py_attr) \ +@@ -7596,6 +7598,9 @@ static int bpy_class_validate_recursive(PointerRNA *dummyptr, StructRNA *srna, v + } \ + Py_DECREF(item); \ + } \ ++ else { \ ++ PyErr_Clear(); \ ++ } \ + } /* intentionally allow else here */ + + if (false) {} /* needed for macro */ +-- +2.18.0 + Deleted: tree_hpp.patch =================================================================== --- tree_hpp.patch 2018-08-03 04:39:58 UTC (rev 367476) +++ tree_hpp.patch 2018-08-03 04:40:07 UTC (rev 367477) @@ -1,183 +0,0 @@ -diff --git a/intern/itasc/kdl/tree.hpp b/intern/itasc/kdl/tree.hpp -index c8a253fc901..bd35f82d185 100644 ---- a/intern/itasc/kdl/tree.hpp -+++ b/intern/itasc/kdl/tree.hpp -@@ -1,177 +1,177 @@ - // Copyright (C) 2007 Ruben Smits <ruben dot smits at mech dot kuleuven dot be> - - // Version: 1.0 - // Author: Ruben Smits <ruben dot smits at mech dot kuleuven dot be> - // Maintainer: Ruben Smits <ruben dot smits at mech dot kuleuven dot be> - // URL: http://www.orocos.org/kdl - - // This library 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. - - // This library 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 this library; if not, write to the Free Software - // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - #ifndef KDL_TREE_HPP - #define KDL_TREE_HPP - - #include "segment.hpp" - #include "chain.hpp" - - #include <string> - #include <map> - #include <Eigen/Core> - - namespace KDL - { - //Forward declaration - class TreeElement; - // Eigen allocator is needed for alignment of Eigen data types -- typedef std::map<std::string,TreeElement, std::less<std::string>, Eigen::aligned_allocator<std::pair<std::string, TreeElement> > > SegmentMap; -+ typedef std::map<std::string,TreeElement, std::less<std::string>, Eigen::aligned_allocator<std::pair<const std::string, TreeElement> > > SegmentMap; - - class TreeElement - { - public: - TreeElement():q_nr(0),parent(0) - {}; - public: - Segment segment; - unsigned int q_nr; - SegmentMap::value_type const *parent; - std::vector<SegmentMap::const_iterator > children; - TreeElement(const Segment& segment_in,const SegmentMap::value_type& parent_in,unsigned int q_nr_in) - { - q_nr=q_nr_in; - segment=segment_in; - parent=&parent_in; - }; - static TreeElement Root() - { - return TreeElement(); - }; - }; - - /** - * \brief This class encapsulates a <strong>tree</strong> - * kinematic interconnection structure. It is build out of segments. - * - * @ingroup KinematicFamily - */ - class Tree - { - private: - SegmentMap segments; - unsigned int nrOfJoints; - unsigned int nrOfSegments; - - bool addTreeRecursive(SegmentMap::const_iterator root, const std::string& tree_name, const std::string& hook_name); - - public: - /** - * The constructor of a tree, a new tree is always empty - */ - Tree(); - Tree(const Tree& in); - Tree& operator= (const Tree& arg); - - /** - * Adds a new segment to the end of the segment with - * hook_name as segment_name - * - * @param segment new segment to add - * @param segment_name name of the new segment - * @param hook_name name of the segment to connect this - * segment with. - * - * @return false if hook_name could not be found. - */ - bool addSegment(const Segment& segment, const std::string& segment_name, const std::string& hook_name); - - /** - * Adds a complete chain to the end of the segment with - * hook_name as segment_name. Segment i of - * the chain will get chain_name+".Segment"+i as segment_name. - * - * @param chain Chain to add - * @param chain_name name of the chain - * @param hook_name name of the segment to connect the chain with. - * - * @return false if hook_name could not be found. - */ - bool addChain(const Chain& chain, const std::string& chain_name, const std::string& hook_name); - - /** - * Adds a complete tree to the end of the segment with - * hookname as segment_name. The segments of the tree will get - * tree_name+segment_name as segment_name. - * - * @param tree Tree to add - * @param tree_name name of the tree - * @param hook_name name of the segment to connect the tree with - * - * @return false if hook_name could not be found - */ - bool addTree(const Tree& tree, const std::string& tree_name,const std::string& hook_name); - - /** - * Request the total number of joints in the tree.\n - * <strong> Important:</strong> It is not the same as the - * total number of segments since a segment does not need to have - * a joint. - * - * @return total nr of joints - */ - unsigned int getNrOfJoints()const - { - return nrOfJoints; - }; - - /** - * Request the total number of segments in the tree. - * @return total number of segments - */ - unsigned int getNrOfSegments()const {return nrOfSegments;}; - - /** - * Request the segment of the tree with name segment_name. - * - * @param segment_name the name of the requested segment - * - * @return constant iterator pointing to the requested segment - */ - SegmentMap::const_iterator getSegment(const std::string& segment_name)const - { - return segments.find(segment_name); - }; - - SegmentMap::value_type const* getSegmentPtr(const std::string& segment_name)const - { - SegmentMap::const_iterator it = segments.find(segment_name); - - if (it == segments.end()) - return 0; - - return &*it; - }; - - const SegmentMap& getSegments()const - { - return segments; - } - - virtual ~Tree(){}; - }; - } - #endif - - - - - Copied: blender/repos/community-testing-x86_64/tree_hpp.patch (from rev 367476, blender/trunk/tree_hpp.patch) =================================================================== --- tree_hpp.patch (rev 0) +++ tree_hpp.patch 2018-08-03 04:40:07 UTC (rev 367477) @@ -0,0 +1,183 @@ +diff --git a/intern/itasc/kdl/tree.hpp b/intern/itasc/kdl/tree.hpp +index c8a253fc901..bd35f82d185 100644 +--- a/intern/itasc/kdl/tree.hpp ++++ b/intern/itasc/kdl/tree.hpp +@@ -1,177 +1,177 @@ + // Copyright (C) 2007 Ruben Smits <ruben dot smits at mech dot kuleuven dot be> + + // Version: 1.0 + // Author: Ruben Smits <ruben dot smits at mech dot kuleuven dot be> + // Maintainer: Ruben Smits <ruben dot smits at mech dot kuleuven dot be> + // URL: http://www.orocos.org/kdl + + // This library 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. + + // This library 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 this library; if not, write to the Free Software + // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + #ifndef KDL_TREE_HPP + #define KDL_TREE_HPP + + #include "segment.hpp" + #include "chain.hpp" + + #include <string> + #include <map> + #include <Eigen/Core> + + namespace KDL + { + //Forward declaration + class TreeElement; + // Eigen allocator is needed for alignment of Eigen data types +- typedef std::map<std::string,TreeElement, std::less<std::string>, Eigen::aligned_allocator<std::pair<std::string, TreeElement> > > SegmentMap; ++ typedef std::map<std::string,TreeElement, std::less<std::string>, Eigen::aligned_allocator<std::pair<const std::string, TreeElement> > > SegmentMap; + + class TreeElement + { + public: + TreeElement():q_nr(0),parent(0) + {}; + public: + Segment segment; + unsigned int q_nr; + SegmentMap::value_type const *parent; + std::vector<SegmentMap::const_iterator > children; + TreeElement(const Segment& segment_in,const SegmentMap::value_type& parent_in,unsigned int q_nr_in) + { + q_nr=q_nr_in; + segment=segment_in; + parent=&parent_in; + }; + static TreeElement Root() + { + return TreeElement(); + }; + }; + + /** + * \brief This class encapsulates a <strong>tree</strong> + * kinematic interconnection structure. It is build out of segments. + * + * @ingroup KinematicFamily + */ + class Tree + { + private: + SegmentMap segments; + unsigned int nrOfJoints; + unsigned int nrOfSegments; + + bool addTreeRecursive(SegmentMap::const_iterator root, const std::string& tree_name, const std::string& hook_name); + + public: + /** + * The constructor of a tree, a new tree is always empty + */ + Tree(); + Tree(const Tree& in); + Tree& operator= (const Tree& arg); + + /** + * Adds a new segment to the end of the segment with + * hook_name as segment_name + * + * @param segment new segment to add + * @param segment_name name of the new segment + * @param hook_name name of the segment to connect this + * segment with. + * + * @return false if hook_name could not be found. + */ + bool addSegment(const Segment& segment, const std::string& segment_name, const std::string& hook_name); + + /** + * Adds a complete chain to the end of the segment with + * hook_name as segment_name. Segment i of + * the chain will get chain_name+".Segment"+i as segment_name. + * + * @param chain Chain to add + * @param chain_name name of the chain + * @param hook_name name of the segment to connect the chain with. + * + * @return false if hook_name could not be found. + */ + bool addChain(const Chain& chain, const std::string& chain_name, const std::string& hook_name); + + /** + * Adds a complete tree to the end of the segment with + * hookname as segment_name. The segments of the tree will get + * tree_name+segment_name as segment_name. + * + * @param tree Tree to add + * @param tree_name name of the tree + * @param hook_name name of the segment to connect the tree with + * + * @return false if hook_name could not be found + */ + bool addTree(const Tree& tree, const std::string& tree_name,const std::string& hook_name); + + /** + * Request the total number of joints in the tree.\n + * <strong> Important:</strong> It is not the same as the + * total number of segments since a segment does not need to have + * a joint. + * + * @return total nr of joints + */ + unsigned int getNrOfJoints()const + { + return nrOfJoints; + }; + + /** + * Request the total number of segments in the tree. + * @return total number of segments + */ + unsigned int getNrOfSegments()const {return nrOfSegments;}; + + /** + * Request the segment of the tree with name segment_name. + * + * @param segment_name the name of the requested segment + * + * @return constant iterator pointing to the requested segment + */ + SegmentMap::const_iterator getSegment(const std::string& segment_name)const + { + return segments.find(segment_name); + }; + + SegmentMap::value_type const* getSegmentPtr(const std::string& segment_name)const + { + SegmentMap::const_iterator it = segments.find(segment_name); + + if (it == segments.end()) + return 0; + + return &*it; + }; + + const SegmentMap& getSegments()const + { + return segments; + } + + virtual ~Tree(){}; + }; + } + #endif + + + + + Deleted: util_sseb.patch =================================================================== --- util_sseb.patch 2018-08-03 04:39:58 UTC (rev 367476) +++ util_sseb.patch 2018-08-03 04:40:07 UTC (rev 367477) @@ -1,13 +0,0 @@ -diff --git a/intern/cycles/util/util_sseb.h b/intern/cycles/util/util_sseb.h -index 6e669701f3b..9ffe391666a 100644 ---- a/intern/cycles/util/util_sseb.h -+++ b/intern/cycles/util/util_sseb.h -@@ -116,7 +116,7 @@ __forceinline const sseb unpacklo( const sseb& a, const sseb& b ) { return _mm_u - __forceinline const sseb unpackhi( const sseb& a, const sseb& b ) { return _mm_unpackhi_ps(a, b); } - - template<size_t i0, size_t i1, size_t i2, size_t i3> __forceinline const sseb shuffle( const sseb& a ) { -- return _mm_shuffle_epi32(a, _MM_SHUFFLE(i3, i2, i1, i0)); -+ return _mm_castsi128_ps(_mm_shuffle_epi32(a, _MM_SHUFFLE(i3, i2, i1, i0))); - } - - template<> __forceinline const sseb shuffle<0, 1, 0, 1>( const sseb& a ) { Copied: blender/repos/community-testing-x86_64/util_sseb.patch (from rev 367476, blender/trunk/util_sseb.patch) =================================================================== --- util_sseb.patch (rev 0) +++ util_sseb.patch 2018-08-03 04:40:07 UTC (rev 367477) @@ -0,0 +1,13 @@ +diff --git a/intern/cycles/util/util_sseb.h b/intern/cycles/util/util_sseb.h +index 6e669701f3b..9ffe391666a 100644 +--- a/intern/cycles/util/util_sseb.h ++++ b/intern/cycles/util/util_sseb.h +@@ -116,7 +116,7 @@ __forceinline const sseb unpacklo( const sseb& a, const sseb& b ) { return _mm_u + __forceinline const sseb unpackhi( const sseb& a, const sseb& b ) { return _mm_unpackhi_ps(a, b); } + + template<size_t i0, size_t i1, size_t i2, size_t i3> __forceinline const sseb shuffle( const sseb& a ) { +- return _mm_shuffle_epi32(a, _MM_SHUFFLE(i3, i2, i1, i0)); ++ return _mm_castsi128_ps(_mm_shuffle_epi32(a, _MM_SHUFFLE(i3, i2, i1, i0))); + } + + template<> __forceinline const sseb shuffle<0, 1, 0, 1>( const sseb& a ) {