clip: fix issue with trimming in point of speed adjusted clip

This commit is contained in:
itsmattkc
2022-08-15 18:24:17 -07:00
parent f091ad5a47
commit 4a22bf71e7
2 changed files with 6 additions and 9 deletions
+2 -5
View File
@@ -92,7 +92,6 @@ void ClipBlock::set_length_and_media_out(const rational &length)
if (reverse()) { if (reverse()) {
// Calculate media_in adjustment // Calculate media_in adjustment
rational proposed_media_in = SequenceToMediaTime(this->length() - length, kSTMIgnoreReverse | kSTMIgnoreLoop); rational proposed_media_in = SequenceToMediaTime(this->length() - length, kSTMIgnoreReverse | kSTMIgnoreLoop);
set_media_in(proposed_media_in); set_media_in(proposed_media_in);
} }
@@ -108,11 +107,9 @@ void ClipBlock::set_length_and_media_in(const rational &length)
if (!reverse()) { if (!reverse()) {
// Calculate media_in adjustment // Calculate media_in adjustment
rational proposed_media_in = SequenceToMediaTime(this->length() - length, kSTMIgnoreSpeed | kSTMIgnoreLoop); waveform_.TrimIn(SequenceToMediaTime(this->length() - length, kSTMIgnoreSpeed | kSTMIgnoreLoop) - media_in());
waveform_.TrimIn(proposed_media_in - media_in()); set_media_in(SequenceToMediaTime(this->length() - length, kSTMIgnoreLoop));
set_media_in(proposed_media_in);
} else { } else {
// Trim waveform out point // Trim waveform out point
waveform_.TrimIn(this->length() - length); waveform_.TrimIn(this->length() - length);
+4 -4
View File
@@ -148,10 +148,10 @@ protected:
private: private:
enum SequenceToMediaTimeFlag enum SequenceToMediaTimeFlag
{ {
kSTMNone, kSTMNone = 0x0,
kSTMIgnoreReverse, kSTMIgnoreReverse = 0x1,
kSTMIgnoreSpeed, kSTMIgnoreSpeed = 0x2,
kSTMIgnoreLoop kSTMIgnoreLoop = 0x4
}; };
rational SequenceToMediaTime(const rational& sequence_time, uint64_t flags = kSTMNone) const; rational SequenceToMediaTime(const rational& sequence_time, uint64_t flags = kSTMNone) const;