clip: fix issue with trimming in point of speed adjusted clip
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user