timeline: heavily optimized and improved nearly all timeline optimizations

Features a lot of timeline-related cache optimizations as well as general
optimizations and improvements in timeline behavior. Should improve
usability significantly.
This commit is contained in:
itsmattkc
2020-06-01 04:42:59 +10:00
parent 93f8b4f79c
commit c2e47a296c
35 changed files with 1496 additions and 939 deletions
+1 -1
View File
@@ -62,7 +62,7 @@ NodeInput *ClipBlock::texture_input() const
void ClipBlock::InvalidateCache(const TimeRange &range, NodeInput *from, NodeInput *source)
{
// If signal is from texture input, transform all times from media time to sequence time
if (from == texture_input_) {
if (from == texture_input_ || from == media_in_input()) {
rational start = MediaToSequenceTime(range.in());
rational end = MediaToSequenceTime(range.out());
+15
View File
@@ -21,6 +21,7 @@
#ifndef CLIPBLOCK_H
#define CLIPBLOCK_H
#include "audio/audiovisualwaveform.h"
#include "node/block/block.h"
OLIVE_NAMESPACE_ENTER
@@ -56,12 +57,26 @@ public:
virtual void Hash(QCryptographicHash &hash, const rational &time) const override;
AudioVisualWaveform& waveform()
{
return waveform_;
}
void set_waveform(const AudioVisualWaveform& wave)
{
waveform_ = wave;
emit PreviewUpdated();
}
signals:
void PreviewUpdated();
private:
NodeInput* texture_input_;
AudioVisualWaveform waveform_;
};
OLIVE_NAMESPACE_EXIT