diff --git a/src/moodbar/moodbarbuilder.cpp b/src/moodbar/moodbarbuilder.cpp index f19386e42..30fa9962d 100644 --- a/src/moodbar/moodbarbuilder.cpp +++ b/src/moodbar/moodbarbuilder.cpp @@ -158,13 +158,15 @@ void MoodbarBuilder::Normalize(QList* vals, double Rgb::*member) { } QByteArray MoodbarBuilder::Finish(int width) { - Normalize(&frames_, &Rgb::r); - Normalize(&frames_, &Rgb::g); - Normalize(&frames_, &Rgb::b); - QByteArray ret; ret.resize(width * 3); char* data = ret.data(); + if (frames_.count() == 0) + return ret; + + Normalize(&frames_, &Rgb::r); + Normalize(&frames_, &Rgb::g); + Normalize(&frames_, &Rgb::b); for (int i = 0; i < width; ++i) { Rgb rgb; diff --git a/src/moodbar/moodbarpipeline.cpp b/src/moodbar/moodbarpipeline.cpp index 9f3bee927..92cf1a8e5 100644 --- a/src/moodbar/moodbarpipeline.cpp +++ b/src/moodbar/moodbarpipeline.cpp @@ -181,8 +181,10 @@ GstBusSyncReply MoodbarPipeline::BusCallbackSync(GstBus*, GstMessage* msg, void MoodbarPipeline::Stop(bool success) { success_ = success; - data_ = builder_->Finish(1000); - builder_.reset(); + if (builder_ != nullptr) { + data_ = builder_->Finish(1000); + builder_.reset(); + } emit Finished(success); }