Commit Graph

2731 Commits

Author SHA1 Message Date
Jonathan Thomas
52a9e3be5d - Clip reader init should consider paths with a % to use FFmpegReader by default (i.e. image sequences)
- FFmpegReader info struct should not be initialized during Open() after it is initially populated - so our SetJson() method can properly override it's values
- FrameMapper Json() method should include it's mapped Reader JSON - even though it is not yet possible to read it back in yet
- New unit tests for Timeline ApplyJsonDiff, and verification that we can override FFmpegReader info struct (i.e. updating FPS, time bases, etc...)
- Some whitespace fixes
2023-02-13 16:42:21 -06:00
Jonathan Thomas
2f08ac0c1c Allow waveform generation to happen before Clip effects are processed. Also, allow the Caption effect to add image data (i.e. waveform graphic) and allow Clip to detect that image to output it correctly. The result of all this: audio-only files now support the Caption effect, on top of the generated waveform image. Lastly, generated waveforms should use the entire Timeline size - and not a pre-determined 720x480 size. 2023-02-10 15:16:56 -06:00
Jonathan Thomas
06c140c23c Improvement to Caption effect, including Caption unit-tests, and the following fixes:
- improved regex, which now detects lines without blank lines separating them, and detects captions that start with numbers
- line wrapping fixed for languages that don't use spaces
- forced line wrapping of long strings of characters
2023-02-10 15:14:10 -06:00
Jonathan Thomas
70e86ef044 Improved Profile Class (Helper methods, Sortable, Unit tests) (#895)
* Removing legacy profile property. Add new operators for Profile classes (for comparison). Also added new functions to generate different variations of the Profile data (key, short name, long name, long name w/description).

* Add empty constructor for Profile class, and new Profile unit tets

* Adding zero padding to profile Key function, for easier sorting: 01920x1080i2997_16:09

* Clear setfill flag after creating Key() output

* Updating example exe to load an *.osp project file via C++, which makes debugging complex broken projects much easier.

* - Add new unit test to FFmpegWriter to create an animated GIF and verify it can be wrapped with a FrameMapper (with no audio track)
- Improve FrameMapper to ignore missing audio data (i.e. when no audio samples present, don't try and find them or resample them)

* Fix some whitespace issues

* Fix inline documentation mistype

* Fixed missing reuse licensing on new example profile files

* Changing Profile::Key() format to exclude the : character, since Windows file names cannot contain that

* - Large memory leak fixed in FFmpegWriter when closing the video & audio contexts
- Reducing # of cached frames and rescalers to 1, since we no longer use OMP and this is unneeded - we need to refactor much of this code out eventually

* - Fixing whitespace issues
- Code clean-up / line wrapping / etc...
2023-02-02 16:29:38 -06:00
Frank Dana
510a7690f6 Remove CODEOWNERS file (#841) 2023-01-10 15:02:04 -06:00
Jonathan Thomas
99aab0a12b Fix Brightness, Hue, and Saturation effects (#889)
* Fix Brightness, Hue, and Saturation effects to fully support pre-multiplied colors (when alpha channel found)

* Fixing whitespace on effects
2022-12-21 22:18:42 -06:00
Jonathan Thomas
4fbb4392ba Fix Transition/Mask replace_image Property (#888)
* Fix ColorShift bug when only adjusting the Y keyframes

* Fixing 'replace-image' functionality of the  Mask / Transition effect - used for debugging masks
2022-12-20 15:48:13 -06:00
Jonathan Thomas
3001d1b059 Fix ColorShift bug when only adjusting the Y keyframes (#887) 2022-12-20 12:24:16 -06:00
Jonathan Thomas
94e5f740f1 Update README.md copyright and license info, to be more clear. Also updating dates. (#886) 2022-12-19 17:08:45 -06:00
Jonathan Thomas
31a1abb557 Add COPYING file back to repository, to make it clear the primary license which affects libopenshot source code (so GitHub will display it), and fix typo in reuse dep5 file. (#885) 2022-12-19 16:46:32 -06:00
Jonathan Thomas
186a4ca5c1 Refactoring Audio Device detection (don't crash on Windows, find actual sample rate and device details) (#883)
* Close down ZMQ context to stop the zmq threads (related to sentry bug: OPENSHOT-3X)

* Add Support for Windows 7/8.1 (#881)

Adding protection around getting current sample rate for win 7, if audio device not found. Also added mutex for Singleton method. Also, making whitespace consistent on AudioPlaybackThread.cpp

* Big refactor of audio device opening - with multiple sample rates attempted, for better recovery from a missing or unsupported sample rate. Debug logs added for testing.

* Additional failure logging for windows audio device init

* Refactor of Audio Device Initialization (#882)

* Huge refactor of audio device initialization:
- Attempt requested audio device first, and then iterate through all known audio types and devices, and common sample rates. The idea is to ignore an invalid default or invalid requested device, and keep looking until we find a valid one
- New public method to return active, open audio device
- Added methods for AudioDeviceInfo struct, to make it callable from Python
- Some code clean-up and whitespace fixes
- New unit tests for AudioDeviceManagerSingleton

* Ignore audio device unit tests on systems with "No Driver" returned in the audio error message

* Ignore audio device unit tests if any error is found during initialization (i.e. build servers don't have audio cards)

* Trying to update GitHub libomp errors during build checks

* Remove zmq context shutdown call, due to the method missing on newer versions of zmq.hpp

* Downgrading GitHub Ubuntu latest image to Ubuntu 20.04, for compatibility with Catchv2

* Initialize all audio device manager variables correctly, and ignore unit test on low or missing sample rate systems (i.e. GitHub build servers)
2022-12-19 13:15:43 -06:00
Jonathan Thomas
89e4b1dabd Merge pull request #879 from OpenShot/release-20221201
Bumping version to 0.3.0, SO 23
2022-12-10 15:31:55 -06:00
Jonathan Thomas
264205da9f Bumping version to 0.3.0, SO 23, and minimum libopenshot-audio dependency to 0.3.0. v0.3.0 2022-12-01 16:04:03 -06:00
Jonathan Thomas
5493ea9afd Merge pull request #878 from OpenShot/new-linux-appimage
Support for New Linux Build Server + glibc Wrapping
2022-11-30 09:09:17 -06:00
Jonathan Thomas
5e5e052b26 Experimental AppImage glibc wrapping for backwards compatibility (older distros) 2022-11-28 16:31:35 -06:00
Jonathan Thomas
49d02bad19 Prevent divide by zero in Fraction 2022-11-28 16:31:20 -06:00
Jonathan Thomas
6acee2aec4 Updating linux runner to focal 2022-11-27 17:32:11 -06:00
Jonathan Thomas
6f800117b1 Merge pull request #876 from OpenShot/fix-double-avcodec-open
Fix a huge regression which invokes the avcodec_open() twice
2022-11-27 00:13:00 -06:00
Jonathan Thomas
520446c5e4 Fix whitespace 2022-11-26 22:47:28 -06:00
Jonathan Thomas
d8ff69c6ed Fix a huge regression which invokes the avcodec_open() method twice for every call to FFmpegReader::Open(), leaving many threads running and never joined/closed. Also, adding some additional error message when attempting to call avcodec_open(). 2022-11-26 22:47:04 -06:00
Jonathan Thomas
bcd54c0270 Merge pull request #875 from OpenShot/seek-past-end-of-stream
Prevent seeking past EOF
2022-11-23 16:07:49 -06:00
Jonathan Thomas
5a380485da Fixing whitespace 2022-11-23 14:01:43 -06:00
Jonathan Thomas
1bd1fdcb2a Silence audio data if repeating last frame in FFmpegReader (to prevent audio glitch for files with invalid durations) 2022-11-23 13:56:57 -06:00
Jonathan Thomas
2defcc58d0 Remove example changes 2022-11-23 12:52:32 -06:00
Jonathan Thomas
70db06947d Prevent seeking past end of stream, which causes a huge # of Seeks once EOF is reached, if we try and request frame #s too large for the file 2022-11-23 12:45:10 -06:00