Commit Graph

186 Commits

Author SHA1 Message Date
Jonathan Thomas
5ee38518da Experimental: Adding some fsanitize flags, a new example exe, a mutex on FFmpegReader::Close, and some additional clean-up code on AddImage (when a previous image exists) 2022-07-27 15:33:40 -05:00
Jonathan Thomas
01d16fe04a Experimental: Adding more QImage clean-up logging, to track buffer addresses 2022-07-26 21:40:28 -05:00
Jonathan Thomas
89321d3bae Experimental: adding debug logging to Frame destructor and QImage cleanup. Also, preventing processing of empty samples 2022-07-26 15:09:57 -05:00
Frank Dana
f8a73791a1 Merge branch 'develop' into move-magick-code 2021-11-10 23:26:27 -05:00
FeRD (Frank Dana)
59108504e3 Code changes for compatibility with JUCE 6.x
- Replace all juce::CriticalSection with std::recursive_mutex
- Replace all juce::AudioSampleBuffer with juce::AudioBuffer<float>
- Eliminate implicit reliance on 'using namespace juce;'
- Replace OpenShotAudio.h includes with targeted juce modules
2021-11-09 06:22:25 -05:00
FeRD (Frank Dana)
5da5adc3f8 Move ImageMagick code out of Frame class 2021-11-02 12:58:45 -04:00
FeRD (Frank Dana)
fe58e8028d Move some headers around 2021-11-01 11:04:31 -04:00
FeRD (Frank Dana)
9133389b92 Clip: Fix has_video, add unit test 2021-10-27 00:26:56 -04:00
Frank Dana
59138ea3e4 Adopt license management via Reuse project/tool (#711)
* 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
2021-10-16 01:26:26 -04:00
Jonathan Thomas
15e5285206 Support for anamorphic profiles, i.e. non-square pixels. Fixes include Frame::Display, Frame::Save, and Timeline::SetMaxSize, all which had various issues. Added sample_aspect_ratio to FFmpegWriter, so the exported videos will continue to be anamorphic.
Also fixed some waveform issues, which were not appearing, or appearing squished, and sometimes containing gaps.
2021-10-07 13:45:16 -05:00
Frank Dana
3d18347e71 Protect values against integer overflow (#743)
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.
2021-09-27 20:36:56 -04:00
FeRD (Frank Dana)
369555b4b0 Fix pedantic warnings (unnecessary ;s) 2021-08-10 23:47:18 -04:00
Frank Dana
4e4a95c648 Gitlab-CI: Update Windows builder configs, OpenShotAudio linking; enable Windows unit tests (#657)
* Remove no-longer-used cmake Modules

* Don't use OpenShot.h in ExampleHtml.cpp

When `#include`-ing the whole mess, building the file was leading
to what looked like out-of-memory errors. Replacing the monolithic
header with just the necessary ones cleared it up.

* .gitlab-ci.yml: Update for new Windows setup

* Make unit tests work under Windows

- Copying the built and depended (libopenshot-audio) DLLs into
  the unit test dir before building the tests ensures that when
  the test executables are run by the Catch.cmake module to
  discover their contents, the executables will find the DLLs
  they need in order to run.

* Gitlab-ci: Run unit tests on Windows

* Rename openshot-html-example

(The former name, openshot-html-test, was too close to the new
name format for all of our unit test executables, making things
unnecessarily confusing.)

* Rename JuceHeader.h to OpenShotAudio.h

* Github Actions: Install ALSA libs

With the switch to an EXPORTED CMake configuration for
libopenshot-audio, its dependencies become our dependencies.
Which means that CMake now correctly requires that the ALSA
libs be installed.
2021-04-19 15:59:52 -04:00
Jonathan Thomas
563c8fd5da Fixing regression with Waveform generation. 2021-02-18 16:05:08 -06:00
Jonathan Thomas
66eb3d5ed6 Disabling Clip caching and fixing a bug with waveform() 2021-02-17 20:40:32 -06:00
Jonathan Thomas
3daa5bdb7b Large refactor of OpenMP integration (or rather the removal of OpenMP on the Timeline and FFmpeg-related classes). The logic behind this decision, was based on profiling libopenshot and the amount of wasted CPU idle time on all the various threads. The slow code is still synchronous, and all the threads must wait on each other, adding additional overhead. So, removing lots of unneeded threads, and simplifying the underlying Timeline->Clip->FFmpegReader flow. Also, removed 2 calls to QPainter::drawImage, by improving the flexibility of Clip->GetFrame. 2021-02-17 19:44:44 -06:00
Brenno
f6de53350f Minor fixes
- Moved TimeUtil from header to src
- Fixed issue with Qimage -> Mat conversion
2021-01-13 20:22:17 -03:00
Brenno A. C. Caldato
73bf7390e9 Apply suggestions from code review
Co-authored-by: Frank Dana <ferdnyc@gmail.com>
2021-01-13 19:30:46 -03:00
Jonathan Thomas
df154c3844 Fixing color format for opencv conversion 2020-10-30 18:23:45 -05:00
Brenno
b48025cd1f Apply suggestions from code review
Applying suggestions from @jonoomph
2020-10-29 00:21:28 -03:00
Brenno
a9274df96b Resolving conflicts 2020-10-20 01:04:59 -03:00
Brenno
1626e1eeba Merge branch 'clip-refactor-keyframes' into opencv 2020-10-19 22:29:48 -03:00
FeRD (Frank Dana)
a1e44edad4 Merge branch 'develop' into clip-refactor-keyframes 2020-10-19 16:28:49 -04:00
FeRD (Frank Dana)
aa40ea29e0 Update include paths in all source/header files 2020-10-18 07:43:37 -04:00
Jonathan Thomas
1dfbb0e771 Merge branch 'develop' into clip-refactor-keyframes
# Conflicts:
#	src/CacheDisk.cpp
#	src/Clip.cpp
#	src/Frame.cpp
#	src/QtHtmlReader.cpp
#	src/QtImageReader.cpp
#	src/QtTextReader.cpp
#	src/effects/Bars.cpp
#	src/effects/Crop.cpp
2020-10-16 15:32:43 -05:00