Commit Graph

130 Commits

Author SHA1 Message Date
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
Jonathan Thomas
b1022212e3 Updated cmake build script to correctly set install_path_name, so cx_Freeze could correctly walk to the dependency chain. Also fixed a minor issue with FFmpeg on Mac, where it could not find any codecs. 2014-08-01 10:27:05 -05:00
Jonathan Thomas
e135eb5738 Changed license to LGPLv3 for all libopenshot code. 2014-07-11 16:52:14 -05:00
Jonathan Thomas
7de37cf1a6 Fixed a bug in the Seek method, which was reseting the seek_target on each recursive seek. 2014-04-05 10:19:20 -05:00
Jonathan Thomas
a229ced036 Added new usleep method for Windows, and improved speed of Seek() operation on the FFmpegReader. Also added some Seek unit tests. 2014-04-03 22:35:25 -05:00