use different signals when the audio invalidates vs the video
Both audio and video renderers were working off the same invalidation signal (i.e. changing audio would also trigger a re-render of the video). This is obviously suboptimal and now they are separate.
This commit is contained in:
@@ -74,7 +74,13 @@ void ViewerOutput::InvalidateCache(const rational &start_range, const rational &
|
||||
{
|
||||
Node::InvalidateCache(start_range, end_range, from);
|
||||
|
||||
emit TextureChangedBetween(start_range, end_range);
|
||||
if (from == texture_input()) {
|
||||
emit VideoChangedBetween(start_range, end_range);
|
||||
} else if (from == samples_input()) {
|
||||
emit AudioChangedBetween(start_range, end_range);
|
||||
} else if (from == length_input()) {
|
||||
emit LengthChanged(Length());
|
||||
}
|
||||
|
||||
SendInvalidateCache(start_range, end_range);
|
||||
}
|
||||
|
||||
@@ -58,7 +58,11 @@ public:
|
||||
signals:
|
||||
void TimebaseChanged(const rational&);
|
||||
|
||||
void TextureChangedBetween(const rational&, const rational&);
|
||||
void VideoChangedBetween(const rational&, const rational&);
|
||||
|
||||
void AudioChangedBetween(const rational&, const rational&);
|
||||
|
||||
void LengthChanged(const rational& length);
|
||||
|
||||
void SizeChanged(int width, int height);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user