Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-10-22Video rendering: FFMpeg AV1 codec encoding supportStephen Seo
Previously, the Blender video renderer did not have support for encoding video to AV1 (not to be confused with the container AVI). The proposed solution is to leverage the existing FFMpeg renderer to encode to AV1. Note that avcodec_find_encoder(AV_CODEC_ID_AV1) usually returns "libaom-av1" which is the "reference implementation" for AV1 encoding (the default for FFMpeg, and is slow). "libsvtav1" is faster and preferred so there is extra handling when fetching the AV1 codec for encoding such that "libsvtav1" is used when possible. This commit should only affect the options available for video rendering, which includes the additional AV1 codec to choose from, and setting "-crf". Also note that the current release of FFMpeg for ArchLinux does not support "-crf" for "libsvtav1", but the equivalent option "-qp" is supported and used as a fallback when "libsvtav1" is used (as mentioned here: https://trac.ffmpeg.org/wiki/Encode/AV1#SVT-AV1 ). (Actually, both "-crf" and "-qp" is specified with the same value in the code. When a release of FFMpeg obtains support for "-crf" for "libsvtav1" is released, the code shouldn't be needed to change.) The usage of the AV1 codec should be very similar to the usage of the H264 codec, but is limited to the "mp4" and "mkv" containers. This patch pertains to the "VFX & Video" module, as its main purpose is to supplement the Video Sequencer tool with the additional AV1 codec for encoded video output. Differential Revision: https://developer.blender.org/D14920 Reviewed By: sergey , ISS, zeddb
2022-02-22Merge branch 'blender-v3.1-release'Sebastian Parborg
2022-02-22Fix ffmpeg tests when using ffmpeg 5.0Sebastian Parborg
2022-02-11File headers: manually convert files to use SPDX headersCampbell Barton
Also add BSD-2-Clause to SPDX license list.
2022-02-11File headers: SPDX License migrationCampbell Barton
Use a shorter/simpler license convention, stops the header taking so much space. Follow the SPDX license specification: https://spdx.org/licenses - C/C++/objc/objc++ - Python - Shell Scripts - CMake, GNUmakefile While most of the source tree has been included - `./extern/` was left out. - `./intern/cycles` & `./intern/atomic` are also excluded because they use different header conventions. doc/license/SPDX-license-identifiers.txt has been added to list SPDX all used identifiers. See P2788 for the script that automated these edits. Reviewed By: brecht, mont29, sergey Ref D14069
2021-06-11Fix: VSE search in mpegts files would failSebastian Parborg
ffmpeg_generic_seek_workaround did work properly and our start pts calculation was wrong. Reviewed By: Richard Antalik Differential Revision: http://developer.blender.org/D11562
2021-06-11Fix: VSE indexer seeking not working correctlySebastian Parborg
Because of the added sanity checks in rB14508ef100c9 (D11492), seeking in proxies would not work correctly any more. This is because it wasn't working as intended before, but in most cases this wouldn't be noticeable. However now when the sanity checks are tripped it is very noticeable that something is wrong The indexer tried to use dts values for time stamps when we used pts in our decode functions to get the time positions. This would make it start in the wrong GOP frames when searching. Now that we enforce no crossing of GOP frames when decoding after seek, this would lead to issues. Now we correctly use pts (or dts if pts is not available) and thus we don't have any seeking issues because of time stamp format missmatch. Reviewed By: Richard Antalik Differential Revision: http://developer.blender.org/D11561
2021-05-28Make encoded video fps correct with ffmpeg < 4.4Sebastian Parborg
Before the FFmpeg commit: github.com/FFmpeg/FFmpeg/commit/1c0885334dda9ee8652e60c586fa2e3674056586 FFmpeg would use deprecated variables to calculate the video fps. We don't use these deprecated variables anymore, so ensure that the duration is correct in ffmpeg versions without this fix. Reviewed By: Sergey, Richard Antalik Differential Revision: http://developer.blender.org/D11417
2021-05-07Cleanup: Fix deinterlace code block styleSebastian Parborg
2021-05-07Cleanup: Remove deprecated variables and functions calls from our ffmpeg codeSebastian Parborg
There need to be more cleanup for ffmpeg 4.5 (ffmpeg master branch). However this now compiles on ffmpeg 4.4 without and deprication warnings. Reviewed By: Sergey, Richard Antalik Differential Revision: http://developer.blender.org/D10338
2021-02-05Cleanup: Remove LibAV supportSebastian Parborg
Ubuntu and Debian dropped libav in 2015 in favor of ffmpeg. Development stopped of libav in 2018, so it should be save to remove.
2020-09-17Tests: bundle tests for some modules in their own executablesBrecht Van Lommel
The ffmpeg, guardedalloc and blenlib are quite isolated and putting them in their own executable separate from blender_test is faster for development than linking the entire blender_tests executable. For Cycles, this also bundles all the unit tests into one executable. Ref T79958 Differential Revision: https://developer.blender.org/D8714
2020-08-11Cleanup: Strict compiler flagsSergey Sharybin
Mainly caused by moving tests to source folder, which brings new compiler flags. Also, no need to extend include directories (to the non-existing paths, btw) since this is done by the CmakeList.txt which is in the blenlib folder.
2020-08-10Tests: move remaining gtests into their own module foldersBrecht Van Lommel
And make them part of the blender_test runner. The one exception is blenlib performance tests, which we don't want to run by default. They remain in their own executable. Differential Revision: https://developer.blender.org/D8498
2020-03-19Cleanup: `make format` after SortedIncludes changeDalai Felinto
2019-09-19Use FFmpeg's own `av_guess_frame_rate()` function instead of guessing ourselvesSybren A. Stüvel
This was introduced in FFmpeg lavf 55.1.100 in 2013. For systems that are still on LibAV or older FFmpeg there is a fallback implementation that performs the same guess as we did before in `av_get_r_frame_rate_compat()`.
2019-08-30Cleanup: spellingCampbell Barton
2019-05-01Cleanup: comments (long lines) in various intern/ libsCampbell Barton
2019-04-17ClangFormat: apply to source, most of internCampbell Barton
Apply clang format as proposed in T53211. For details on usage and instructions for migrating branches without conflicts, see: https://wiki.blender.org/wiki/Tools/ClangFormat
2019-02-01Cleanup: remove redundant, invalid info from headersCampbell Barton
BF-admins agree to remove header information that isn't useful, to reduce noise. - BEGIN/END license blocks Developers should add non license comments as separate comment blocks. No need for separator text. - Contributors This is often invalid, outdated or misleading especially when splitting files. It's more useful to git-blame to find out who has developed the code. See P901 for script to perform these edits.
2019-01-23Fix T54834: VSE can't import OGG Theora videoSergey Sharybin
2018-05-08Fix building with latest versions of ffmpeg.Bastien Montagne
Some years-old deprecated stuff has now been removed. Correct solution is probably to use valid defines etc. in own code, but this is more FFMEPG maintainer task (since it also may change how old FFMPEG we do support...).
2018-03-09Fix T53857: Incorrect framerate for videos imported from OBSSergey Sharybin
This is an issue with which value to trust: fps vs. tbr. They both cam be somewhat broken. Currently the idea is: - If file was saved with FFmpeg AND we are decoding with FFmpeg we trust tbr. - If we are decoding with Libav we use fps (there does not seem to be tbr in Libav, unless i'm missing something). - All other cases we use fps. Seems to work all good for files from T53857, T54148 and T51153. Ideally we would need to collect some amount of regression files to make further tweaks more scientific. Reviewers: mont29 Reviewed By: mont29 Differential Revision: https://developer.blender.org/D3083
2017-05-12Fix T51153: Video duration is detected wrong after FFmpeg updateSergey Sharybin
The issue was caused by stupid workaorund for libav. Now things works for FFmpeg. There might need some tweaks needed for Libav, but that one is not really priority for support.
2017-03-06FFmpeg: Update for the deprecated API in 3.2.xSergey Sharybin
Should be no functional changes.
2016-02-20Fix compilation error with FFmpeg and Ubuntu TrustySergey Sharybin
Seems this is a confusion between Libav which was silently used by Ubuntu instead of FFmpeg.
2016-02-17Some more tweaks to make linking to a shared FFmpeg-3.0 happySergey Sharybin
2016-02-16Make Blender compilable with FFmpeg-3.0Sergey Sharybin
While it's not something we'll be using for the official release, it's nice to support new libraries at least on "it compiles" level, so it's not that many frustrated developers around. Nexyon, please have a look into Audaspace changes :)
2014-04-14Fix video FFmpeg nt being able to produce video files due to usage of ↵Sergey Sharybin
deprecated settings
2014-03-27Make blender compilable with FFmpeg-0.8.1Sergey Sharybin
Needed for some own tests.
2014-02-06Fix wrong animation duration when using older LibavSergey Sharybin
2014-02-03Fix T38455: Blenderplayer is not workingSergey Sharybin
Was a regression since avg_frame_rate changes. Didn't find reliable way to get stream duration which will work with both FFmpeg and Libav so added some freaking black magic to distinguish one from another.
2014-01-28Code cleanup: indentation of interior preprocessorSergey Sharybin
2014-01-28audaspace: use new libavcodec audio encoding API where availableAnton Khirnov
2014-01-28libavformat API usage: use avformat_close_input() instead of ↵Anton Khirnov
av_close_input_file()
2014-01-28libavcodec API usage: use new video encoding APIAnton Khirnov
avcodec_encode_video() has been replaced with avcodec_encode_video2() in new libavcodec versions.
2014-01-28Change libavcodec CODEC_ID_* to AV_CODEC_ID_*Anton Khirnov
CODEC_ID_* have been replaced with AV_CODEC_ID_* in new libavcodec versions. Update the code to use those new identifiers. Added a compatibility code to ffmpeg_compat.h
2013-12-11Attempt to fix compilation against libav-0.8.9Sergey Sharybin
2013-10-31code cleanup: spellingCampbell Barton
2013-04-29More build fixes for visual studio 2012.Brecht Van Lommel
Patch #35019, #35131 and #35152 by Jurgen Herrmann.
2013-04-19Bring back support of FFmpeg >= 0.7Sergey Sharybin
After planar codecs support minimal FFmpeg was bumped to 0.10 which was not so much nice because it was only released only later last year. Didn't find a way to make compatibility code local in ffmpeg_compat, so there're some ifdefs in audaspace and writeffmpeg. Not entirely happy, but having a bit of ifdefs in code better than lots of real PITA for platform maintainers.
2013-04-15Fix compilation with current FFmpeg trunkSergey Sharybin
AVCODEC_MAX_AUDIO_FRAME_SIZE was deprecated and finally removed from current trunk. Initial patch by Lawrence D'Oliveiro (ldo) with own modification, Thanks!
2013-04-14== FFMPEG / Canon DSLR footage workaround ==Peter Schlaile
The latest ffmpeg versions include a workaround to deal with a certain pecularity in Canon DSLR footage: instead of decoding pictures with the proper resolution of 1920x1080 they decode it with 1920x1088 and add a black bar at the bottom. Needless to say, that this screws up things in a lot of areas within blender (proxy indices, mask animations etc.) Since all blender versions besides Linux x86 32bit seem still to include older ffmpeg versions which still contain this bug, this patch adds a workaround for older versions until we have all versions on all platforms up to date. See also: http://git.libav.org/?p=libav.git;a=commit;h=30f515091c323da59c0f1b533703dedca2f4b95d
2013-04-02Fix FFMPEG build error with older versions after planar formats commit.Brecht Van Lommel
2013-04-01Hopefully compilation with FFmpeg 0.10 works fine now.Sergey Sharybin
2013-02-28Fix/workaround for newer FFmpeg 1.1.3 and MP3 decoderSergey Sharybin
FFmpeg is now using S16P sampler for MP3 which is not actually supported by audaspace, so request for S16 sampler instead.
2013-01-13Further tweaks to support libav from wheezySergey Sharybin
2013-01-13Tweak to ffmpeg compatibility layer to support debian's wheezy libavSergey Sharybin
2013-01-12Patch #33837: ffmpeg1.1 and libav9.1 compatibility updateSergey Sharybin
Patch makes it possible to compile blender with recent ffmpeg and libav libraries, mainly by getting rid of deprecated API. Original patch by Campbell Barton with own modifications to support compilation with older ffmpeg versions. This patch could break compatibility of FFV1 videos playing back in older players, mainly because of alpha support changes. Preserving compatibility with such players became a headache and think it's high time to get rid of workarounds here.
2012-11-03style cleanup: tabs & whitespaceCampbell Barton