Jonathan Thomas
2f8c4161df
Improved changing Reader() on the QtPlayer class, and made many thread safety improvements for the FrameMapper.GetFrame method. Also improved the destructors and Close() methods of FFmpegReader and FrameMapper. Some audio-related bug fixes also, related to audio playback.
2015-12-24 16:44:45 -06:00
Jonathan Thomas
95deda88bc
Fixing a bug for newer versions of LibAV and FFmpeg, regarding error codes
2015-10-01 13:00:50 -05:00
Jonathan Thomas
32d41e780d
Fixed many misc Windows runtime errors and memory-related crashes. Built a few macros for common FFmpeg / LibAV functions that change due to version differences.
2015-09-23 00:27:28 -05:00
Jonathan Thomas
fbc719b11f
Many Windows related fixes and tweaks. Also fixed some issues with newer versions of CMake and Swig files.
2015-08-24 23:49:45 -05:00
Jonathan Thomas
bfa050409c
Improved support for missing frames and invalid PTS (which result in gaps and duplicate frames). Also changed frame number to larger data type, and did some code clean-up and refactoring. Less crashes, and more video support!
2015-08-24 01:05:48 -05:00
Jonathan Thomas
41dceadd1f
Removed Cache::Exists method, which created all sorts of havoc when being called in quick succession (basically a frame might exist a split second before calling Cache::GetFrame, but then be missing when GetFrame is called).
...
Next Syntax:
frame = Cache::GetFrame(...)
if frame:
....
Also, fixed some issues with MP3 files having the wrong video length detected, and a few other minor issues.
2015-08-05 23:40:58 -05:00
Jonathan Thomas
03c9f06708
Fixed many audio issues with the FFmpegWriter. Planar formats were not being handled correctly. Framesize was also wrong on some formats. Also, added a new method to a Frame to fill with audio silence. Lastly, cleaned up some unused imports and C++ warnings.
2015-08-02 20:32:33 -05:00
Jonathan Thomas
3db03a4c87
Removed exception handling for audio decoding... which sometimes fails when seeking... and it can be safely ignored.
2015-07-05 22:57:46 -07:00
Jonathan Thomas
066319c155
Fixed an issue with invalid framerates on some music files
2015-06-01 02:05:17 -07:00
Jonathan Thomas
b612f3339d
Replaced ImagMagick with QImage on almost all key methods and classes. Reprogrammed all effects and the entire rendering pipeline to use QImage and QTransforms, primarily for increases in speed and stability. libopenshot is more than 10X faster on many of the most CPU heavy tasks. This was a huge change, and still has a few minor issues relating to BlackMagick Decklink and Text rendering.... which should be resolved very soon.
...
Also, much work has been done on memory management / leak detection, and optimizations with multi-threading... including a new thread cacher class used by the video playback (which is smoother than ever).
2015-06-01 00:20:14 -07:00
Jonathan Thomas
4b921b179e
Fixed a regression with audio boundries on the FFmpegReader.
2015-03-16 15:29:37 -05:00
Jonathan Thomas
d7a43f692c
Refactored out many omp critical statements related to debugging, and made them conditional based on if debug is enabled.
2015-03-15 02:35:01 -05:00
Jonathan Thomas
591cfbdb5a
Fixed some major issues with the frame mapper. openshot::FrameMapper is now fully multi-threaded. Fixed a bug in calculating the # of samples on a frame (to always be evenly divisible by the # of channels).
2015-03-08 21:42:53 -05:00
Jonathan Thomas
db4a5a7948
Fixed some more multi-threading issues with Audio Processing, including a bug with the frames auto-size-increasing JUCE container.
2015-03-07 17:07:37 -06:00
Jonathan Thomas
b703f44f7c
Fixed some big memory leaks with audio samples and ffmpeg (pprof ./openshot-example "/tmp/openshot-example.30691._main_-end.heap" --inuse_objects --lines --heapcheck --edgefraction=1e-10 --nodefraction=1e-10 --gv
2015-03-04 15:26:08 -06:00
Jonathan Thomas
c27e4a1426
Added new method to frame, to change the size of the audio container. Fixed audio resampling inside the FrameMapper. Fixed many memory leaks related to AVFrames (still have a few more).
2015-03-01 22:36:39 -06:00
Jonathan Thomas
86561aed22
Fixed a huge bug when closing a reader and re-opening it. Added some new unit tests to test for that bug, as well as check the ordering of layers and effects. Improved opening and closing of openshot::Clip->Reader() to better support multiple threads.
2015-02-19 01:03:22 -06:00
Jonathan Thomas
470853e34d
Updated compatibility with the latest LibAV API
2015-02-05 16:00:18 -06:00
Jonathan Thomas
a6087dab3a
Many improvements to FFmpegReader, including
...
Better bounds checking, and support at the end of the video file
Improved debug output, which helped resolve many issues
Implemented the newest audio decoding API (old one was depreciated)
Now support packed and planar audio data
Far superier audio resampling support
2015-02-05 00:00:52 -06:00
Jonathan Thomas
eec8e38ec2
Fixed more seek issues
2014-09-26 09:35:38 -05:00
Jonathan Thomas
663e0d4129
Fixed a big memory leak on the FFmpegReader while processing audio packets.
2014-09-22 00:40:21 -05:00
Jonathan Thomas
348ff39e87
Fixed another seek bug, and resolved some memory leaks with removing av_frames and av_packets.
2014-09-15 00:24:46 -05:00
Jonathan Thomas
f6b9ba4fa3
More tweaks to the seeking code, to increase stability while seeking.
2014-09-13 18:05:15 -05:00
Jonathan Thomas
7eb25b54fc
Fixed a bad seek bug, where the FFmpegReader would read until the end of stream looking for a frame. Also refactored a bit of cmake code.
2014-09-13 16:35:11 -05:00
Jonathan Thomas
cc7a0f41e8
Added new debug methods, and refactored the ReaderBase and WriterBase to better utilize the base class constructor. Also fixed some FFMpegReader issues related to seeking and determining when frames are actually ready.
2014-08-27 09:44:27 -05:00