Commit Graph
82 Commits
Author SHA1 Message Date
itsmattkc d12a0dca23 oiiodecoder: fixed mistake when using OIIO 1.x 2020-03-06 17:02:51 +11:00
itsmattkc 9e8a384f14 encoder/exportdialog: add compression options for H264 exporting 2020-03-03 01:47:04 +11:00
itsmattkc d7f5584374 oiiodecoder: various improvements
Use start_time in VideoStream to determine the starting number of an image
sequence and use ImageBufAlgo::resample instead of ImageBufAlgo::resize for
faster image processing (since the quality with a divider is always expected
to be draft quality).
2020-03-02 14:32:36 +11:00
itsmattkc de5955b403 oiiodecoder: implemented rudimentary image sequence support 2020-03-02 14:06:44 +11:00
itsmattkc 597f50fa37 ffmpeg: print more debug information, less useless information 2020-02-29 17:22:19 +11:00
itsmattkc 139c14f941 footage: fixed appearance of some metadata, particularly audio metadata 2020-02-29 17:19:47 +11:00
itsmattkc adcab06d4e fixed faulty while loop break 2020-02-27 18:15:55 +11:00
itsmattkc 83c5cd2bc1 oiiodecoder: made line backwards compatible with OIIO < 2.1.x 2020-02-27 16:03:56 +11:00
itsmattkc d87b4fde8c renderer/decoder: use divider at the footage level
Optimizes rendering if a divider is being used.
2020-02-27 15:47:08 +11:00
itsmattkc 02ce48d0c6 various: pixel optimizations
Several things are accomplished in this commit, including:

- Use OIIO instead of our own functions for pixel format conversions
  (cleaner code/less for us to maintain)

- Fold all PixelService functions into the PixelFormat class
  (cleaner code)

- Moved OpenGL pixel definitions to OpenGL classes and out of the
  global classes.

- Add support for RGB buffers as well as RGBA (optimization)
2020-02-27 13:54:38 +11:00
itsmattkc 0fbffc9b8f ffmpegdecoder: mild code cleanup 2020-02-27 01:05:22 +11:00
itsmattkc 0bef116020 oiiodecoder: set correct image stream
Fixes bug where loading a saved project with still images could crash.
2020-02-26 11:37:57 +11:00
itsmattkc faffbb0f38 renderer: re-use already created textures if the images are known not to change 2020-02-25 14:57:49 +11:00
itsmattkc 6239107670 ffmpegdecoder: run timer in main thread at all times 2020-02-24 11:56:48 +11:00
itsmattkc 412ea9cede ffmpegdecoder: fixed bug with frame identification 2020-02-24 02:01:42 +11:00
itsmattkc 8f5a92af9c ffmpegframecache: removed unnecessary debug line 2020-02-24 02:01:21 +11:00
itsmattkc 6956e159e6 ffmpegdecoder: remove debug messages 2020-02-23 22:18:59 +11:00
itsmattkc d3bc12b2f5 ffmpegdecoder: use stricted memory interval 2020-02-23 22:18:10 +11:00
itsmattkc c7cb227abb ffmpegdecoder: fixed memory leak introduced in previous commit 2020-02-23 21:24:07 +11:00
itsmattkc b1cb8489df memory: try caching frameptrs instead of avframes so we have more control 2020-02-23 21:20:33 +11:00
itsmattkc 48cdb3a6dd memorymanager: rewrote entire memory management system 2020-02-23 20:29:51 +11:00
itsmattkc 547990b920 ffmpegdecoder/memorymanager: fixed race condition in garbage collection 2020-02-21 23:15:09 +11:00
itsmattkc b0c9711974 ffmpegdecoder: fixed double mutex lock
Error() would call Close() getting stuck in a double mutex lock that could
stall workers. This commit fixes that.
2020-02-21 20:04:36 +11:00
itsmattkc 6c33e85162 decoder: don't start indexing any stream that doesn't need to be 2020-02-21 20:04:08 +11:00
itsmattkc dcedf12dbe ffmpegdecoder: stop clear_timer on deconstruction 2020-02-21 14:25:27 +11:00
itsmattkc befaf34a4c oiiodecoder: use QStringLiteral()
Minor code improvement/optimization.
2020-02-21 14:21:53 +11:00
itsmattkc e74c4c2d1c global: implemented rudimentary memory manager to use available system memory
without forcing the OS to page swap
2020-02-21 14:20:57 +11:00
itsmattkc 2e38e7e3fb indexmanager: moved files 2020-02-21 10:47:41 +11:00
itsmattkc 7797bf4971 ffmpegdecoder: added helper functions for memory handling 2020-02-21 01:18:21 +11:00
itsmattkc 4532c3884e ffmpegdecoder: fixed cast issue on gcc 2020-02-21 00:21:31 +11:00
itsmattkc 2299fda73a ffmpegdecoder: handle media that starts at a non-zero pts 2020-02-21 00:09:45 +11:00
itsmattkc 162c91ec52 ffmpegdecoder: allow probe duration pickup to be cancelled 2020-02-20 23:54:40 +11:00
itsmattkc bc2be7a2a4 ffmpegdecoder: use simpler loop to find duration if the container doesn't
provide one
2020-02-20 23:52:23 +11:00
itsmattkc 73e639757e ffmpegdecoder: fix bug that slowed down low fps footage unnecessarily 2020-02-20 23:34:49 +11:00
itsmattkc 3bd1c885cf decoder: round double to int 2020-02-20 19:24:59 +11:00
itsmattkc e373c40853 ffmpegdecoder: handle eof in retrieve 2020-02-20 16:50:03 +11:00
itsmattkc 3e776b62e1 oiiodecoder: added new mutex structures 2020-02-20 16:38:23 +11:00
itsmattkc 1cce8abd85 frame: added bool function returning whether the frame is allocated or not 2020-02-20 16:37:43 +11:00
itsmattkc 2145efa2a0 decoder/renderer: use memory cache and single decoder to optimize frames for
cycles
2020-02-20 15:32:12 +11:00
itsmattkc 71048f40a8 ffmpegdecoder: removed all old code to clean up 2020-02-20 02:22:59 +11:00
itsmattkc 95ca19d547 ffmpegdecoder: began work on the index process working in tandem with the
retrieval process
2020-02-20 00:06:20 +11:00
itsmattkc e68e89c40b renderer/decoder: use same background mechanism to conform audio as well 2020-02-19 16:45:34 +11:00
itsmattkc a719618b31 waveinput: better handling of WAV data sections 2020-02-19 12:45:21 +11:00
itsmattkc 56adf5005f decoder: provide conform progress signal 2020-02-19 12:45:01 +11:00
itsmattkc 08e6c6ffc0 decoder: move conform function to base class
There's no reason the Conform() function can't live in the base class since its
functionality isn't necessarily specific to FFmpeg.
2020-02-19 12:28:37 +11:00
itsmattkc 53551246da decoder: signal indexing progress
Better UI interactions, actually shows the progress of the index function in
the task manager now.
2020-02-19 12:19:42 +11:00
itsmattkc 03bdf01357 decoder/renderer: no longer index automatically as part of the retrieve
functions

Indexing is a lengthy process and had a high chance of getting RenderWorkers
stuck doing it rather than being responsive to cache requests. This commit
introduces a system where workers never index media, but instead signal that
media is not ready to their RenderBackends which ensure that the media gets
indexed and re-queues the affected frames when those indexes are ready.
2020-02-19 11:44:29 +11:00
itsmattkc 5e75e9b3b0 waveinput/output: allowed external access to data length value 2020-02-19 11:40:54 +11:00
itsmattkc 22046535ca various: added hooks so that various lengthy functions could be cancelled from another thread 2020-02-17 02:10:12 +11:00
itsmattkc 35ab379e9f ffmpegdecoder: updated comment to better describe error handling 2020-02-16 10:28:18 +11:00