Merge branch 'pause-audio-on-playback'
This commit is contained in:
@@ -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();
|
||||
|
||||
|
||||
@@ -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_;
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user