Commit Graph

183 Commits

Author SHA1 Message Date
Jonathan Thomas
95abdcf66b FFmpeg4 support. Compile warnings fixes. Credit goes to many people, including ferdnyc, peterM, and other awesome folks! 2018-08-11 18:22:18 -05:00
Jonathan Thomas
435932f415 Fixing another issue where larger FPS files are incorrectly changed to a different FPS 2018-08-02 00:40:44 -05:00
Jonathan Thomas
93c1e2eb49 Fixing bitrate calculation (to be in bytes instead of bits), and adding in FPS detection for files which don't have valid FPS. In those cases (streaming files for example), we iterate through all packets, and average the # of frames, duration, bit rate, etc... Not idealy, but a better fallback. 2018-07-25 02:24:01 -05:00
Jonathan Thomas
cc17315fa7 Merge branch 'develop' into release 2018-06-29 23:48:47 -05:00
Jonathan Thomas
9972600931 Default to AAC audio codec (#135)
* Adding strict experimental to FFmpegReader and Writer (hopefully allowing all the encoders to be used)

(cherry picked from commit 1bcd1e5)

* init all formats and codecs before checking if valid

(cherry picked from commit 7250226)
2018-06-29 15:06:34 -05:00
Jonathan Thomas
694ee7c24e New experimental protections for FFmpegReader::GetFrame, and better frame ordering. Thanks @PeterM! (#125) 2018-06-21 02:44:08 -05:00
Jonathan Thomas
bc5607910d Fixing audio pops due to resampling (this fixes a bunch of audio popping-related bugs). Now Frame objects track their own max_audio_sample_count, as we add audio data... so we have an accurate bounds on each frame. 2018-05-30 03:20:31 -05:00
Jonathan Thomas
a4c1b818ba Don't remove nearby working frames (trying to catch less things in our too old logic). This prevents lots of invalid cache situations during preview. 2018-05-27 00:12:50 -05:00
Rich Alloway
f6eb6ff96b Increase valid frame rates to 240 fps since many cameras now support this higher frame rate 2018-05-15 15:49:11 -04:00
Jonathan Thomas
54d6cf5995 Removing old frames from WorkingCache (when no longer needed). This helps prevent freezing looking for old frame data on certain videos. 2018-04-14 18:01:27 -05:00
Jonathan Thomas
2233496066 Changing some Seek values to be more accurate, and fixes a race condition with Timeline_Tests.cpp. Also increasing the default amount of cache in FFmpeg, based on the # of processors, to better support high framerate videos. 2018-04-14 16:25:13 -05:00
Jonathan Thomas
774eb365b3 FFMPEG 3.2 support for FFmpegReader (writer support coming soon) 2018-03-21 02:10:46 -05:00
Jonathan Thomas
f2b0f3a0f4 Adding metadata from format, audio stream, and video streams to ReaderBase.info, which in some cases includes the 'rotate' metadata added by certain cameras, and audio metadata like title, album, artist, copyright, dates, etc... Auto-Rotates any Clip with Reader metadata 'rotate' attribute. 2018-02-03 01:57:18 -06:00
Jonathan Thomas
b81696affd Fixing black frames at end of video clips, if audio stream longer than video stream, and end-of-stream is reached. 2018-01-06 16:44:54 -06:00
Jonathan Thomas
2fcb35ddcc Removing throw statements from header files (thanks Peter) 2017-10-26 18:44:35 -05:00
Jonathan Thomas
0ca3f2d663 Fixing 16 thread limit on FFmpegReader 2017-10-01 17:54:21 -05:00
Jonathan Thomas
d3225a80b5 Fixing a cast from long to int64_t 2017-09-28 16:31:13 -05:00
Jonathan Thomas
c95db460d6 Big update! Updating all "long int" frame number types to int64_t, so all 3 OSes will produce the same depth and precision on frame numbers. Also removing variable bitrate support temporarily, since it causes more problems than it solves. 2017-09-28 16:03:01 -05:00
Jonathan Thomas
f12ffe692b Migrating tr1 to std, adding C++11 support to build scripts, fixing crash in FFmpegReader (caused by shared_ptr, buffer, and last_video_frame corruption). Much improved stability with this change. Thanks to Craig and Peter for the help! 2017-08-20 17:37:39 -05:00
Jonathan Thomas
724c57680e Moving checked_count erase command inside lock protection, to prevent crash 2017-05-22 04:43:21 -05:00
Jonathan Thomas
e899cbf39a Fixing Timeline::SetJSON to use a lock, and reopen the reader if already open. This fixes an issue when trying to open another project while the current project is being accessed (i.e. during playback). 2017-05-18 17:04:34 -05:00
Jonathan Thomas
1ed5302835 Fixing a data type issues with max() 2017-05-17 01:29:32 -05:00
Jonathan Thomas
3a884e71dc Big improvement with handling invalid video and audio timestamps, defaulting to more sane values (when huge crazy timestamps are detected). Also fixing a bug when disabling video/audio tracks on FrameMappers. Also adding additional bail-out code when stuck searching for a video/audio packet that probably doesn't exist. Added improved "checked" handling, and once 1 frame is detected as invalid, clean out any other invalid ones as well. 2017-05-17 01:17:42 -05:00
Jonathan Thomas
97ec6298ff Adding frame number display options to a clip, which can be super useful when debugging issues. Options include: None, Clip, Timeline, or Both. Also improving missing frame detection, to have less false positives (i.e. flickering 1st frame) 2017-03-15 02:06:53 -05:00
Jonathan Thomas
85ac4bf6d2 Updating references to frame number / position to long int, there were still quite a few old "int" declarations, which limits the length of frame number. Also, updated precision of KeyFrames to use double (instead of float) for higher precision, which fixed lots of issues with very long videos (since our FrameMapper used a KeyFrame object to create a map to new frames) 2017-01-24 18:39:17 -06:00