diff --git a/app/render/playbackcache.cpp b/app/render/playbackcache.cpp index b94ed08e0..9bce6a504 100644 --- a/app/render/playbackcache.cpp +++ b/app/render/playbackcache.cpp @@ -71,6 +71,7 @@ void PlaybackCache::SetLength(const rational &r) } else if (r > length_) { // If new length is greater, simply extend the invalidated range for now invalidated_.InsertTimeRange(range_diff); + jobs_.append({range_diff, QDateTime::currentMSecsSinceEpoch()}); } else { // If new length is smaller, removed hashes invalidated_.RemoveTimeRange(range_diff); diff --git a/app/task/export/export.cpp b/app/task/export/export.cpp index 25b65aa27..5cc667a9e 100644 --- a/app/task/export/export.cpp +++ b/app/task/export/export.cpp @@ -96,21 +96,13 @@ bool ExportTask::Run() if (params_.audio_enabled()) { audio_range.append(range); + audio_data_.SetLength(range.length()); } Render(video_range, audio_range, mat, false); bool success = true; - foreach (QFuture f, write_frame_futures_) { - f.waitForFinished(); - - if (!f.result()) { - SetError(tr("Failed to write AVFrame")); - success = false; - } - } - if (params_.audio_enabled()) { // Write audio data now encoder_->WriteAudio(audio_params(), audio_data_.GetCacheFilename()); @@ -165,7 +157,7 @@ void ExportTask::FrameDownloaded(const QByteArray &hash, const std::listWriteFrame(time_map_.value(real_time), real_time); + encoder_->WriteFrame(time_map_.take(real_time), real_time); frame_time_++; @@ -180,7 +172,7 @@ void ExportTask::AudioDownloaded(const TimeRange &range, SampleBufferPtr samples adjusted_range -= params_.custom_range().in(); } - audio_data_.WritePCM(adjusted_range, samples, job_time()); + audio_data_.WritePCM(adjusted_range, samples, QDateTime::currentMSecsSinceEpoch()); } OLIVE_NAMESPACE_EXIT diff --git a/app/task/export/export.h b/app/task/export/export.h index dcbae30f0..5c92adea3 100644 --- a/app/task/export/export.h +++ b/app/task/export/export.h @@ -49,8 +49,6 @@ private: QHash time_map_; - QList< QFuture > write_frame_futures_; - ColorManager* color_manager_; ExportParams params_;