* Refactor of Coorindate and Keyframe optimized for performance (much faster than previously). Also refactored FrameMapper to not use a Keyframe, and to only process frame mapping when needed... speeding up Json loading of project files.
* Fixing FrameMapper linear calculation to match existing Keyframe calculation
* Fixing Keyframe to pass original unit tests, and correctly calculate the Keyframe repeat fractions and deltas.
* Small refactor of time mapped logic in Clip.cpp
* Handle MP3 files with special logic, since they typically only have 1 frame of video
* Better support for missing frames (handling of missing audio and missing video data separated), and fixed a missing audio regression.
nVidia card don't use the DX API like intel or AMD cards.
If ffmpeg and the libraries are compiled with nvenc and
nvdec support on WIndows this should(!) now work.
* First implementation of CRF (Constant Rate Factor)
* Include AV1 in the codecs that can use crf
* First version that uses SetOption to set crf quality
* Clarify comments
* Delete setting the bitrate for crf in SetVideoOption because it
is not needed, it is set later with SetOptions.
* Search for libresvg.so in RESVGDIR also
This means that RESVGDIR can be pointed to the `target/release` dir
where resvg was built, and both `libresvg.so` and `include/resvg.h` will
be found.
* ReSVG: Fix up discovery module
`find_package_handle_standard_args` is supposed to set the `_FOUND`
variable automatically (as the comment right above it says), as well as
handling things like REQUIRED, QUIETLY, etc. It should always be run at
the end of a module, for this reason.
This change removes the conditionals around the call, lets it handle
what it's meant to handle, and defines a custom failure message for
discovery that replaces the one in `src/CMakeList.txt`.
In addition, the `REQRUIRED` is removed from `tests/CMakeLists.txt`,
since it's _supposed_ to mark the module as required (which ReSVG is
not), and was only working due to the aforementioned improper
conditional wrapping of the module's cleanup.
* FindRESVG.cmake does not set RESVG_DEFINITIONS
Remove the comment that claims it does.
* Integration of libresvg SVG library (optional during build)
* Major refactor of max_width and max_height for preview optimization
* Fixed many bugs related to preview resizing, with regards to cached frames
* Updating gitlab CI to find RESVGDIR correctly for windows, and adding svgz support
* Updating cmake findresvg module to search for windows locations first, to prevent an issue on our windows builders and updating some CMake output.
* Removing folder path from resvg header, since it could be installed in different named folders. This is an attempt to fix Windows include issues.
* Making call to AV_FREE_FRAME conditional for non windows systems (because it crashes on Windows for seemingly no reason). Needs more investigation.