Commit Graph

2605 Commits

Author SHA1 Message Date
Jonathan Thomas
02c256cda5 Fixed FrameMapper::info::video_length after calling FrameMapper::ChangeMapping(). Added some unit tests to verify. 2022-08-03 16:14:00 -05:00
Jonathan Thomas
2f145234da Fixing more whitespace and wrapping issues. Also removed some audio pts debug code. 2022-07-27 16:54:59 -05:00
Jonathan Thomas
c5f166a472 Removing debug log lines and more whitespace issues 2022-07-27 16:44:01 -05:00
Jonathan Thomas
7c6e20d551 Removing test code from CMaketest 2022-07-27 16:37:04 -05:00
Jonathan Thomas
694d86a41b Cleanup of debug logs and other whitespace issues 2022-07-27 16:33:01 -05:00
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
2c193463ce Experimental: No QImage cleanup 2022-07-26 17:07:54 -05:00
Jonathan Thomas
0164bd28be Experimental: Change method of copying QImage from previous frames to use qimage.copy method. 2022-07-26 15:40:57 -05:00
Jonathan Thomas
f2852e8c34 Experimental: additional logging around AddImage() calls 2022-07-26 15:21:25 -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
Jonathan Thomas
285059baad Experimental: adding debug symbols 2022-07-25 17:24:35 -05:00
Jonathan Thomas
297349033e Experimental FFmpegReader::Close changes, adding new drain decoder logic on Close 2022-07-25 16:27:31 -05:00
Jonathan Thomas
68f273d9d1 Experimental FFmpegReader::Close changes 2022-07-23 19:44:01 -05:00
Jonathan Thomas
3883d2d8aa Experimental FFmpegReader::Close changes 2022-07-23 18:47:42 -05:00
Jonathan Thomas
70bf0ade98 Refactoring FFmpegReader::Close, trying to prevent a crash on Windows 2022-07-22 18:00:28 -05:00
Jonathan Thomas
54971bac84 Removing some logic in FFmpegReader::Close which clears the video and audio stream - which can cause a crash if the decoder is still working on a packet. Reverting this code. 2022-07-22 17:04:52 -05:00
Jonathan Thomas
156fed2f49 Adding debugging to FFmpegReader::Close and removing a discard property that is probably unneeded 2022-07-22 16:50:02 -05:00
Jonathan Thomas
671e8ce455 Clean up of whitespace, and removal of unneeded logic on CheckWorkingFrames() method. It is okay to finalize a frame from a stream that has not decoded a packet yet... although it would be unlikely. 2022-07-21 16:50:23 -05:00
Jonathan Thomas
dd25b7835d Removing failing macos from our GitHub build CI 2022-07-21 15:25:26 -05:00
Jonathan Thomas
9202d94ee6 Fixing whitespace issues (converting spaces back to tabs... for now) 2022-07-21 15:00:08 -05:00
Jonathan Thomas
f200c00e4c Fixing Codacy issues 2022-07-21 14:21:44 -05:00
Jonathan Thomas
f4966b2567 Large refactor of timestamps on FFmpegReader (PTS / presentation time stamps):
- Improved PTS offset logic (to offset our streams so that at least one of them starts at position 0.0)
- Removed missing frame detection (no needed anymore)
- Use timestamps to reason about missing frames
- Fixed many async decoding issues (jumbled frames, missing beginning or ending frames)
- Much improved support for video/audio files with missing chunks/gaps (i.e. missing timestamps)
- Improved CheckWorkingFrames() method, to determine when working frames are ready to be finalized
- Improved FPS detection for invalid or missing FPS
2022-07-21 13:56:29 -05:00
Jonathan Thomas
d093004dcf Fixing timeline tests. Recent FrameMapper bug fixes changed the mapping slightly, for certain tests 2022-07-21 10:07:34 -05:00
Jonathan Thomas
cba676463d Fixing invalid frame mapping calculation (when using a linear algorithm to map framerates). We were accidentally adding +1 to the video_length, causing a slight rounding error, causing some random frames to be skipped.
For example, if a video with 100 frames was mapped to the same framerate, we would calculate the frame increment: 101 / 100 (instead of 100 / 100). In this simple example, the value increment should be 1.0, matching the source frames exactly.
2022-06-25 17:42:30 -05:00