fixed crash when deleting media while it's being processed

This commit is contained in:
itsmattkc
2018-10-11 09:48:40 +11:00
parent 275cf5e92b
commit 7612a7646e
6 changed files with 28 additions and 6 deletions
+14 -2
View File
@@ -26,9 +26,10 @@ PreviewGenerator::PreviewGenerator(QTreeWidgetItem* i, Media* m, bool r) :
media(m),
retrieve_duration(false),
contains_still_image(false),
replace(r)
replace(r),
cancelled(false)
{
connect(this, SIGNAL(finished()), this, SLOT(deleteLater()));
connect(this, SIGNAL(finished()), this, SLOT(deleteLater()));
}
void PreviewGenerator::parse_media() {
@@ -227,12 +228,18 @@ void PreviewGenerator::generate_waveform() {
}
s->audio_preview.append(min >> 8);
s->audio_preview.append(max >> 8);
if (cancelled) break;
}
}
swr_free(&swr_ctx);
av_frame_unref(swr_frame);
av_frame_free(&swr_frame);
if (cancelled) {
end_of_file = true;
break;
}
}
}
@@ -314,4 +321,9 @@ void PreviewGenerator::run() {
item->setToolTip(0, QString());
}
delete [] filename;
media->preview_gen = NULL;
}
void PreviewGenerator::cancel() {
cancelled = true;
}