Fix by Ninpo <ninpo@qap.la>
When tests are run in parallel it's possible for ImageWriter
and FFmpegWriter Gif tests to truncate/overwrite the other's
output1.gif. This change makes use of test file names unique
to the tests themselves.
Because cmake defaults to Makefiles and make does not -j$(nproc)
by default, this bug can't show up unless part of a build with parallel
make with tests included.
https://github.com/OpenShot/libopenshot/issues/933
The Stabilize_Video test fails on platforms that doesn't support
accelerated colorspace conversion from yuv420p to rgba.
e8e4863325/libswscale/yuv2rgb.c (L678-L696)
This PR fixes it by rounding the result that caused the test failure.
On x86_64, y = -0.001074643496478603
On riscv64, y = -0.0009904620157904118
- Fixed some unit tests
- Added new convenience methods for SampleRange, to extend either side, or shift it left or right
- Added new SampleRange unit tests
- No more audio pops at the beginning of clips which are being resampled!!!
- Time remapping now works perfectly smoothly, no more pops or crashes!!!
- Added new Frame::ReverseAudio() helper method - for time keyframe support playing backwards audio
- Fixed math rounding error on time keyframe Resampler, to use the rounded source samples value
- Removed some unused args and Frame audio methods
- Reset FrameMapper resample context when non-adjacent frames are requested
- Correctly reverse Frame audio if a time keyframe is present, and reversing audio
- Rewrite Keyframe::IsIncreasing() function, to give accurate direction of time keyframes at any index (special logic to support first and last indexes)
- Fixed Keyframe unit tests - since logic has changed a bit
- Improved time mapping unit tests
- Replace many c-style casts with static_cast
- Added new sine.wav test file
- Refactor AudioLocation into own header
- AudioResampler now supports variable channels
- Adding cache back to Clips - to prevent the cost of multiple calls for the same GetFrame() frame, used in time-remapping
- Large refactor of Clip::GetFrame, to prevent multiple code paths, and much improved time-remapping
- Clip's time keyframe now supports Bezier and sub-frame precision - to you can curve audio speed using any curve shape
- Fixing # of audio samples on Clip frame's, based on timeline position (to predictably divide samples per frame)
- New Clip unit tests for time remapping and resampling audio, and reversing audio
- New Frame::GetAudioSamples arg, to allow for reversing the direction of audio samples
- Fix bug in Frame::AddAudioSilence() to correctly cache the # of audio samples
- FrameMapper clean up resample context (when changing frame rate)
- FrameMapper refactor to optimize # of calls to Reader()::GetFrame(), since calls to Clip::GetFrame are quite expensive
- Removing RepeatingFraction functionality from Keyframe object (since it was a bad implementation detail from our previous time remapping)
- Making Keyframe GetDelta method a float, and no longer an int - to allow for more precision on time remapping
- Large amount of white space fixing (to make things consistent)
* Experimental test for unit tests without display
* Ignore unit tests running on an invalid QT Platform (i.e. offscreen - running as a test on GitHub)
* Fix whitespace on Caption effect
* Check for env variable for QT_QPA_PLATFORM == offscreen, and ignore Caption unit tests (for GitHub checks)