Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Fix crash when loading svg image in qimage producer from terminal

  • Loading branch information...
commit 1005675734ec50a29832bbe4387f3ad562ac7ba8 1 parent 911141a
@j-b-m j-b-m authored
Showing with 30 additions and 0 deletions.
  1. +30 −0 src/modules/qimage/qimage_wrapper.cpp
View
30 src/modules/qimage/qimage_wrapper.cpp
@@ -40,9 +40,11 @@
#ifdef USE_QT4
#include <QtGui/QImage>
#include <QtCore/QSysInfo>
+#include <QtGui/QApplication>
#include <QtCore/QMutex>
#include <QtCore/QtEndian>
#include <QtCore/QTemporaryFile>
+#include <QtCore/QLocale>
#endif
#ifdef USE_EXIF
@@ -63,6 +65,8 @@ static KComponentData *instance = 0L;
static KInstance *instance = 0L;
#endif
+static QApplication *app = NULL;
+
static void qimage_delete( void *data )
{
QImage *image = ( QImage * )data;
@@ -178,6 +182,32 @@ int refresh_qimage( producer_qimage self, mlt_frame frame )
sprintf( image_key, "%d", image_idx );
int disable_exif = mlt_properties_get_int( producer_props, "disable_exif" );
+
+
+ if ( app == NULL )
+ {
+ if ( qApp )
+ {
+ app = qApp;
+ }
+ else
+ {
+#ifdef linux
+ if ( getenv("DISPLAY") == 0 )
+ {
+ mlt_log_panic( MLT_PRODUCER_SERVICE( producer ), "Error, cannot render titles without an X11 environment.\nPlease either run melt from an X session or use a fake X server like xvfb:\nxvfb-run -a melt (...)\n" );
+ exit( 1 );
+ return -1;
+ }
+#endif
+ int argc = 1;
+ char* argv[1];
+ argv[0] = (char*) "xxx";
+ app = new QApplication( argc, argv );
+ const char *localename = mlt_properties_get_lcnumeric( MLT_SERVICE_PROPERTIES( MLT_PRODUCER_SERVICE( producer ) ) );
+ QLocale::setDefault( QLocale( localename ) );
+ }
+ }
if ( image_idx != self->qimage_idx )
self->qimage = NULL;
Please sign in to comment.
Something went wrong with that request. Please try again.