From 571af07397d58b3cb4bd9248ff5d4bec906d12dd Mon Sep 17 00:00:00 2001
From: Edric Milaret <edric.ladent-milaret@savoirfairelinux.com>
Date: Thu, 12 Nov 2015 16:26:49 -0500
Subject: [PATCH] video: check consistency between size and storage

- This avoid trying to make a new image with a storage not
large enough.

Change-Id: I78a7e79fd00d49368cadd1f03002481b6898ddec
Tuleap: #136
---
 videowidget.cpp | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/videowidget.cpp b/videowidget.cpp
index 9079a92..c12c100 100644
--- a/videowidget.cpp
+++ b/videowidget.cpp
@@ -82,7 +82,9 @@ VideoWidget::paintEvent(QPaintEvent *evt) {
     if (renderer_) {
         {
             QMutexLocker lock(&mutex_);
-            if (currentDistantFrame_.storage.size() != 0) {
+            if (currentDistantFrame_.storage.size() != 0
+                && currentDistantFrame_.storage.size() ==
+                    (renderer_->size().height()*renderer_->size().width()*4)) {
                 frameDistant_ = std::move(currentDistantFrame_.storage);
                 distantImage_.reset(new QImage((uchar*)frameDistant_.data(),
                                                renderer_->size().width(),
@@ -100,7 +102,9 @@ VideoWidget::paintEvent(QPaintEvent *evt) {
     if (previewRenderer_) {
         {
             QMutexLocker lock(&mutex_);
-            if (currentPreviewFrame_.storage.size() != 0) {
+            if (currentPreviewFrame_.storage.size() != 0
+                 && currentPreviewFrame_.storage.size() ==
+                    (previewRenderer_->size().height()*previewRenderer_->size().width()*4)) {
                 framePreview_ = std::move(currentPreviewFrame_.storage);
                 previewImage_.reset(new QImage((uchar*)framePreview_.data(),
                                                previewRenderer_->size().width(),
-- 
GitLab