Доброго времени суток! Проблема такая, имеется программа которая воспроизводит видео при нажатии
IplImage* frame = 0;
CvCapture* capture; // Кадр видеопотока
// Показ заданного кадра
void QtGuiApp4::showFrameVideo(CvCapture* captureT, IplImage* frameT) {
cvGrabFrame(captureT);
frameT = cvRetrieveFrame(captureT);
cvCvtColor(frameT, frameT, CV_BGR2RGB);
QImage gimgOriginal((uchar*)frameT->imageData, frameT->width,
frameT->height, QImage::Format_RGB888);
gimgOriginal = gimgOriginal.scaled(QSize(ui.video->width(),
ui.video->height()), Qt::KeepAspectRatio);
// Вывод кадра
ui.video->setScaledContents(false);
ui.video->setPixmap(QPixmap::fromImage(gimgOriginal));
}
Данный метод вызывается в цикле
// Пройтись по всем кадрам на видео
for (size_t i = 1; i < frameEnd; i++) {
showFrameVideo(capture, frame);
// Вывод количества показанных кадров
framesT = QString::number(i) + "/" + QString::number(frameEnd);
ui.statusBar->showMessage(framesT, 0);
for (; time.elapsed() < 10;) { qApp->processEvents(0); }
}
При запуске программы воспроизведение происходит на ура. Однако также имеется перезапуск программы с другими настройками
// Режим изменен
if (currentIndexInit != currentIndexInitOld) {
qApp->quit(); // Перезапуск системы
QProcess::startDetached(qApp->arguments()[0], newArguments);
return;
}
И вот тут самое интересное, при достижения скажем в среднем 500-600 кадра, программа зависает на время, а потом показывает что конец воспроизведения. В чем проблема?