Since CMake 3.11, the supported method of integrating Doxygen into
CMake projects has been via the doxygen_add_docs() CMake function,
which (crucially) can be passed a target name to create and doesn't
rely on tons of hardcoding like our UseDoxygen.cmake and its
Doxyfile.in template did.
This means our docs (only) now require CMake 3.11 to generate, but it
allows Doxygen to be configured/used multiple times in the same CMake
configuration, removing a major barrier to superproject builds.
* reuse-managed license/copyright headers
reuse is a tool for compliance with the REUSE recommendations. See
<https://reuse.software/> for more information, and
<https://reuse.readthedocs.io/> for the online documentation.
* Set jsoncpp license
* Add MIT license for Decklink sources
* Explicitly license examples/
- Add headers to source files
- Change blanket licensing in .reuse/dep5 to only cover binary media
- Import CC-BY-3.0 license and assign to sintel_trailer
* Protect values against integer overflow
When the code multiplies integer values in an rvalue context before
it's stored in a larger type, the on-the-fly math is stored as int.
The value can overflow before it reaches the wider memory space.
To prevent this, we explicitly cast the result of the arithmetic
to the destination type.
Issues flagged by GitHub CodeQL.
* Apply these fixes correctly
- Switch to Windows lld for linking (faster)
- Exclude generated protobuf sources from coverage
- When setting EXE, SHARED linker flags, also set MODULE
- Windows clang++ builds are disabled (libopenshot-audio breaks)
- Coverage collection is disabled on macOS and Windows (path issues)
When the code multiplies integer values in an rvalue context before
it's stored in a larger type, the on-the-fly math is stored as int.
The value can overflow before it reaches the wider memory space.
To prevent this, we explicitly cast the result of the arithmetic
to the destination type.
Issues flagged by GitHub CodeQL.
Turns out, macOS's libc++ doesn't apply fill padding / alignment
the same way other libs do. (Known issue due to ambiguity in the
standard.) https://timsong-cpp.github.io/lwg-issues/2703
Reverting the "Adjusting Timeline final_cache to match the video
caching thread max_frames, so one doesn't clobber the other." part of
a previous commit.
Setting the cache size in SetMaxSize() ignores OpenShot's cache
preferences. It prevents using a cache larger than the preview
buffer, which is often a desirable thing.
This partially reverts commit 0c4e1bcce4.