Merge branch 'pause-audio-on-playback'

This commit is contained in:
itsmattkc
2021-10-13 16:01:39 -07:00
3 changed files with 20 additions and 1 deletions
+10 -1
View File
@@ -41,6 +41,7 @@ const bool PreviewAutoCacher::kRealTimeWaveformsEnabled = true;
PreviewAutoCacher::PreviewAutoCacher() :
viewer_node_(nullptr),
use_custom_range_(false),
pause_audio_(false),
single_frame_render_(nullptr)
{
// Set defaults
@@ -532,6 +533,14 @@ void PreviewAutoCacher::CancelAudioTasks(bool and_wait_for_them_to_finish)
CancelTasks(audio_tasks_, and_wait_for_them_to_finish);
}
void PreviewAutoCacher::SetAudioPaused(bool e)
{
pause_audio_ = e;
if (!e) {
TryRender();
}
}
void PreviewAutoCacher::NodeAdded(Node *node)
{
graph_update_queue_.append({QueuedJob::kNodeAdded, node, NodeInput(), nullptr});
@@ -672,7 +681,7 @@ void PreviewAutoCacher::TryRender()
}
// Handle audio tasks
while (!audio_iterator_.isEmpty() && audio_tasks_.size() < max_tasks) {
while (!audio_iterator_.isEmpty() && audio_tasks_.size() < max_tasks && !pause_audio_) {
// Copy first range in list
TimeRange r = audio_iterator_.first();
+4
View File
@@ -99,6 +99,8 @@ public:
return queued_frame_iterator_.IsCustomRange() && queued_frame_iterator_.HasNext();
}
void SetAudioPaused(bool e);
signals:
void StopCacheProxyTasks();
@@ -182,6 +184,8 @@ private:
TimeRangeList invalidated_video_;
TimeRangeList invalidated_audio_;
bool pause_audio_;
RenderTicketPtr single_frame_render_;
QList<QFutureWatcher< QVector<HashData> >*> hash_tasks_;
+6
View File
@@ -634,6 +634,8 @@ void ViewerWidget::PlayInternal(int speed, bool in_to_out_only)
viewer->PauseInternal();
viewer->ClearVideoAutoCacherQueue();
}
viewer->auto_cacher_.SetAudioPaused(true);
}
// If the playhead is beyond the end, restart at 0
@@ -722,6 +724,10 @@ void ViewerWidget::PauseInternal()
tempo_processor_.Close();
}
foreach (ViewerWidget* viewer, instances_) {
viewer->auto_cacher_.SetAudioPaused(false);
}
UpdateTextureFromNode();
}