fixed transition regression
This commit is contained in:
@@ -21,6 +21,7 @@
|
|||||||
#include "clip.h"
|
#include "clip.h"
|
||||||
|
|
||||||
#include "config/config.h"
|
#include "config/config.h"
|
||||||
|
#include "node/block/transition/transition.h"
|
||||||
#include "node/output/track/track.h"
|
#include "node/output/track/track.h"
|
||||||
#include "node/output/viewer/viewer.h"
|
#include "node/output/viewer/viewer.h"
|
||||||
#include "widget/slider/floatslider.h"
|
#include "widget/slider/floatslider.h"
|
||||||
@@ -467,8 +468,19 @@ TimeRange ClipBlock::InputTimeAdjustment(const QString& input, int element, cons
|
|||||||
rational out = input_time.out();
|
rational out = input_time.out();
|
||||||
|
|
||||||
if (clamp) {
|
if (clamp) {
|
||||||
in = std::max(in, rational(0));
|
rational minimum = 0;
|
||||||
out = std::min(out, length());
|
rational maximum = length();
|
||||||
|
|
||||||
|
if (in_transition_) {
|
||||||
|
minimum -= in_transition_->length();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (out_transition_) {
|
||||||
|
maximum += out_transition_->length();
|
||||||
|
}
|
||||||
|
|
||||||
|
in = std::max(in, minimum);
|
||||||
|
out = std::min(out, maximum);
|
||||||
}
|
}
|
||||||
|
|
||||||
in = SequenceToMediaTime(in);
|
in = SequenceToMediaTime(in);
|
||||||
|
|||||||
@@ -292,7 +292,12 @@ TimeRange TransitionBlock::InputTimeAdjustment(const QString &input, int element
|
|||||||
if (input == kInBlockInput || input == kOutBlockInput) {
|
if (input == kInBlockInput || input == kOutBlockInput) {
|
||||||
Block* block = dynamic_cast<Block*>(GetConnectedOutput(input));
|
Block* block = dynamic_cast<Block*>(GetConnectedOutput(input));
|
||||||
if (block) {
|
if (block) {
|
||||||
return input_time + in() - block->in();
|
TimeRange range = input_time;
|
||||||
|
if (clamp) {
|
||||||
|
range.set_range(std::max(rational(0), range.in()), std::min(this->length(), range.out()));
|
||||||
|
}
|
||||||
|
range = range + in() - block->in();
|
||||||
|
return range;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user