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:
itsmattkc
2019-11-17 13:44:50 +09:00
parent b1f4bf3dbb
commit 9d154e1909
8 changed files with 48 additions and 20 deletions
+7 -1
View File
@@ -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);
}
+5 -1
View File
@@ -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);