Commit Graph
117 Commits
Author SHA1 Message Date
itsmattkc ccb02d30aa colormanager: implement default config 2020-04-22 05:08:33 +10:00
itsmattkc 81ad7b5054 ffmpegdecoder: fixed deadlock when closing a decoder instance 2020-04-21 23:15:21 +10:00
itsmattkc 290c8724c4 Merge pull request #1131 from luzpaz/typos-followup
Fix typos cont.
2020-04-16 12:21:45 +10:00
itsmattkc 9f7a9d85b4 ffmpegdecoder: fixed deadlock on non-video streams 2020-04-14 23:42:31 +10:00
itsmattkc a2f954a0a7 memorypool: implemented arenas
A pool can allocate/destroy any amount of arenas during runtime, meaning it
won't run out of memory but we still get the advantages of one large allocation
as opposed to hundreds of small allocations.
2020-04-14 16:23:45 +10:00
itsmattkc feceef0d62 ffmpegdecoder: impose limit on memory frame cache 2020-04-14 15:16:38 +10:00
itsmattkc 9cc343bf13 ffmpegdecoder: share framepool with all instances
We can conserve memory by sharing our frame pool amongst instances of the same
stream.
2020-04-14 14:51:31 +10:00
itsmattkc b3bebeeef3 decoder: removed unused destructor
Very old unused code.
2020-04-14 14:51:15 +10:00
itsmattkc 7bfdf8af7c ffmpegframepool: implemented functional frame pool
Includes splitting off core functionality to a base MemoryPool class that can
be re-used later if necessary.
2020-04-14 02:43:12 +10:00
itsmattkc 2eb03bf386 various: removed constructor.h include 2020-04-14 00:53:25 +10:00
itsmattkc 6bb972b4db decoder: began implementation of a frame pool 2020-04-13 23:44:42 +10:00
itsmattkc f80a82459b ffmpegdecoder: clear cache_at_zero flag if frames are removed 2020-04-13 13:24:30 +10:00
itsmattkc cdf5a1058d ffmpegdecoder: re-use existing frame pool for memory management 2020-04-12 14:12:08 +10:00
itsmattkc 4d8af6855f ffmpegdecoder: made all instances shared
Decoders now share instances between them and can interact with other threads
to share resources and continue the work of others.
2020-04-12 01:49:10 +10:00
itsmattkc e6b47a817c ffmpegdecoder: separated instance from decoder entity
Should allow for different decoders in different threads to share a single
instance.
2020-04-11 17:37:52 +10:00
itsmattkc ce7fa12520 ffmpegdecoder: implemented basic decoder crosstalk 2020-04-11 13:18:44 +10:00
itsmattkc 8cbac84c96 samplebuffer: added an assert to ensure valid allocations occur 2020-04-06 17:07:38 +10:00
itsmattkc 1aa87cbda6 various: encapsulate all code in the olive namespace to avoid name collisions
Large-scale code cleanup. Also adds a license to the top of all files that were
missing it.
2020-04-06 15:29:53 +10:00
itsmattkc e3a8d32e4a audiorenderer: fill destination buffer with zeroes before copying samples over
Ensures no uninitialized values end up in the audio cache.
2020-04-05 13:29:04 +10:00
itsmattkc fb1cf1edaf ffmpegencoder: improvements to resampling
Updates the AVFrame's nb_samples field to the amount of samples retrieved from
swresample so it doesn't encode more or less samples than it has.
2020-04-05 00:12:23 +11:00
itsmattkc 6ea6dd810e pixelsampler: added pixel sampler panel
When visible, this panel will show the current reference and display transformed
color under the cursor of any viewer.
2020-04-01 16:57:10 +11:00
itsmattkc 4aad73a21d samplebuffer: use delete [] instead of delete for sample buffers 2020-04-01 05:17:45 +11:00
itsmattkc 922e11a23d frame: refuse to allocate if the video params are invalid 2020-04-01 05:17:24 +11:00
itsmattkc 6f0d72c05d renderer: switched audio rendering over to planar buffers
While planar audio cannot be used for playback, it's much easier for processing.
This should lead to cleaner and easier to write code in the future.
2020-03-31 18:01:20 +11:00
itsmattkc 9603f90072 ffmpegencoder: added range support to audio encoding
There isn't UI for this yet, but sending a time range to the encoder will now
encode just that range of audio.
2020-03-31 13:55:57 +11:00
itsmattkc 7328a813f9 ffmpegencoder: fixed bug that failed to flush the audio encoder
For some reason, when the encoder closed it only flushed the video encoder and
not the audio encoder. Now it does both.
2020-03-31 12:09:43 +11:00
itsmattkc 84aab543ca oiiodecoder: always add 1 frame to image sequences so the end frame is shown 2020-03-28 11:29:51 +11:00
luz.paz 4e1cd870a9 Fix typos cont. 2020-03-21 13:46:38 -04:00
itsmattkc 51f02ea01b viewer: allow switching open sequences 2020-03-21 22:18:17 +11:00
itsmattkc 6ddfd2fc8e waveinput: return actual read count when reading into an existing buffer 2020-03-18 19:06:08 +11:00
itsmattkc d4d969872f ffmpegdecoder: if data is less than duration, fill remainder with 0s
Fixes bug where random/uninitialzed audio values may appear in some
circumstances.

Also switches swr_convert_frame to swr_convert for a small
optimization/improvement, no need to use AVFrame struct when we're only
interested in samples.
2020-03-18 19:05:02 +11:00
itsmattkc 4bc5378116 ffmpegencoder: explicit cast from int64_t to int 2020-03-15 20:08:56 +11:00
itsmattkc fdfe53c700 oiiodecoder: check for sequential images in sequence heuristic 2020-03-13 16:49:59 +11:00
itsmattkc 2d57f22f3a oiiodecoder: implemented heuristic to auto-detect start and end index 2020-03-09 20:08:05 +11:00
itsmattkc 965242cb29 oiiodecoder: set flag on image sequences to identify them as such 2020-03-09 19:55:35 +11:00
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