itsmattkc
8945fbe5fe
began base encoder type for abstracting around exporting
...
Essentially the same principle as Decoders but somewhat different functionality.
2019-12-16 18:04:30 +11:00
itsmattkc
3d3e40d431
minor code cleanup and fixed opengl thread desync issue
2019-12-11 03:20:23 +11:00
itsmattkc
3f76f4cb00
correctly identify openimageio data as alpha associated
...
Also added note for potential concern regarding alpha association.
2019-12-09 23:45:16 +11:00
itsmattkc
8866428589
removed unnecessary debug line in ffmpegdecoder
2019-11-30 02:54:49 +11:00
itsmattkc
1a54d18862
wrote sample rate conform code into ffmpegdecoder
...
Audio no longer needs to be the same format/sample rate to play correctly. This
should be the last step to making audio work correctly (minus several
optimizations still yet to be done).
2019-11-30 02:52:31 +11:00
itsmattkc
c19cf8f8e6
fixed issue in waveinput where the format would be detected incorrectly
...
Floating point detection was backwards causing float-based audio to be
detected as integer and vice versa (for >32-bit formats)
2019-11-30 02:49:19 +11:00
itsmattkc
e5e68c8947
added parameter access to waveoutput class
2019-11-30 02:48:54 +11:00
itsmattkc
a71c03b1ed
conformed oiiodecoder to new retrieve functions
2019-11-30 02:48:14 +11:00
itsmattkc
1a9ae53181
separated decoder retrieve functions for video and audio
...
It became increasingly clear that video and audio retrieval require different
parameters so it started to make sense to separate these functions out.
2019-11-30 02:46:49 +11:00
itsmattkc
16f4ec8468
began audio conform code in ffmpegdecoder
...
For accuracy, whenever we need to perform an audio resample, we need to do it
in advance. This is in a process called "conforming" and this commit introduces
the framework by which the decoder can automatically conform an audio stream
to arbitrary parameters for accurate rendering.
2019-11-29 02:10:28 +11:00
itsmattkc
755b4233ff
fixed bug where a timecode of 0 wouldn't always return the first frame
...
Not all media starts with a timecode of 0 and the Decoder class needs to
handle such a situation. This commit corrects that.
2019-11-29 01:35:53 +11:00
itsmattkc
d5b1768d70
reimplement Q_DISABLE_COPY_MOVE for full compatibility with versions < 5.13
...
I was under the impression Q_DISABLE_COPY_MOVE was a much older function than
it is. Since we historically target 5.6 and these functions are small
convenience functions, I just implemented them in the actual codebase.
2019-11-24 14:57:57 +09:00
itsmattkc
ba191399ff
add qtglobal header to decoder class
...
This may be required for resolving Qt functions in some situations.
2019-11-24 14:39:32 +09:00
itsmattkc
59f658f73a
removed old retrieve code from ffmpegdecoder
...
Code cleanup
2019-11-24 02:04:37 +09:00
itsmattkc
60a27961c2
cache frames alongside the frame index
...
Decoder will now pre-render/decode frames in advance of needing
them
2019-11-17 12:29:53 +09:00
itsmattkc
a9660201f1
miscellaneous other changes to make audio rendering work
...
Many changes were made throughout the codebase to support audio, these are
most of the small changes necessary.
The audio support still is not perfect. I still need to write in resampling
support. After that it should work correctly with all audio types.
2019-11-15 13:57:49 +09:00
itsmattkc
336b3a8e05
added support for returning audio in the FFmpegDecoder
...
FFmpeg decoder now indexes and returns audio as expected
2019-11-15 13:53:58 +09:00
itsmattkc
9a44e656b5
added simple wave classes
...
To assist the input/output of PCM data, we use the fairly straight-forward
WAVE format. These classes simplify the input and output of such data.
2019-11-15 13:49:40 +09:00
itsmattkc
663ae56ac4
more coherent render threading for now
...
Once again, conceptually this system should work, however it does not seem to
be the most efficient and it wouldn't surprise me if the multithreading was
eventually upgraded to an even more coherent system one day. However for
"core principles" this should be fairly decent.
2019-11-03 04:05:43 +11:00
itsmattkc
133dab1666
some code cleanup
...
Removal of translations around debug messages since these waste cycles and are
likely not useful
2019-10-31 21:45:53 +11:00
itsmattkc
77bcb70dac
started porting renderer to new portable form
2019-10-31 19:14:58 +11:00
itsmattkc
3fb53586d4
updated decoder debug messages
2019-10-26 15:33:25 +11:00
itsmattkc
076f2699c5
implemented audio decoder and some of the audio node functionality
2019-10-24 21:33:46 +11:00
itsmattkc
af702835da
forked MediaInput into two derived classes for video and audio
...
Rather than convoluting the MediaInput node, te MediaInput is now an abstract
base class that provides access to a Decoder and derived classes are
responsible for handling it
2019-10-24 17:03:33 +11:00
itsmattkc
2fdf78df4a
implemented preliminary pre-cacher for audio
...
FFmpegDecoder now implements an "indexer" for audio, which actually just
extracts the raw PCM audio from an audio codec and saves it to disk
2019-10-24 16:36:26 +11:00
itsmattkc
ce20dc159e
correct duration/rate in project explorer
2019-09-26 16:00:21 +10:00
itsmattkc
9fa22938b9
work towards making timeline actions all undoable
2019-09-23 23:00:15 +10:00
itsmattkc
1207e180ec
fix for transport streams with no duration
2019-09-17 13:40:23 +10:00
itsmattkc
197cf86382
don't allow ffmpeg through oiio
2019-09-14 02:52:33 +10:00
itsmattkc
69ca2b2a50
fixed bug where an unindexed video would cache a blank first frame
2019-09-10 19:12:19 +10:00
itsmattkc
4c40475a6c
fixed flicker issue when previewing some media
2019-09-10 15:55:59 +10:00
itsmattkc
ba7a10177f
fixed various caching issues when rapidly changing values
2019-09-09 04:07:51 +10:00
itsmattkc
faa7f798ff
more or less completed OIIO decoder
2019-09-05 01:15:50 +10:00
itsmattkc
695adea562
added OIIO decoder
2019-09-05 00:03:26 +10:00
itsmattkc
e87ed9dd3d
finished hashing algorithm for cache
2019-09-02 19:51:31 +10:00
itsmattkc
b563b9e783
began node hashing for improved cache
2019-09-02 12:06:24 +10:00
itsmattkc
b9ce02a0ec
separated setting time and processing node functions
2019-08-27 23:38:24 +10:00
itsmattkc
46ea071b99
mild decoder adjustment
2019-08-26 15:15:20 +10:00
itsmattkc
438e7081f9
foundations for background caching
2019-08-24 22:16:01 +10:00
itsmattkc
c0f6ee534a
minor code cleanups
2019-08-09 10:43:14 +10:00
itsmattkc
f26eea1620
moved more objects to shared ptrs
2019-08-09 08:21:54 +10:00
itsmattkc
dfd33310a2
use qvector instead of raw array
2019-08-09 07:49:17 +10:00
itsmattkc
7a858aeca3
moved decoders to shared ptrs
2019-08-09 07:46:53 +10:00
itsmattkc
6833b18829
merged probe functions into decoder class
2019-08-08 17:22:26 +10:00
itsmattkc
c6dfab4caf
use decoder ID in media node
2019-08-08 15:52:53 +10:00
itsmattkc
f3b60369aa
use IDs for multiple decoders
2019-08-08 15:38:58 +10:00
itsmattkc
8730da4b43
improved decoder documentation and fixed error with >8bppc media
2019-08-08 14:02:12 +10:00
itsmattkc
6708eca0c1
renamed ffmpeg decoder function names
2019-08-08 13:13:01 +10:00
itsmattkc
410c1ff06c
cache frame indexes to disk
2019-08-07 12:14:48 +10:00
itsmattkc
1138600f37
indexing prototype
2019-08-06 09:34:37 +10:00