Navigation Menu

Skip to content

Commit

Permalink
Merge pull request #19 from j-b-m/master
Browse files Browse the repository at this point in the history
Fix crash when loading svg in qimage producer from terminal
  • Loading branch information
ddennedy committed Nov 19, 2012
2 parents 1248276 + 598a4a1 commit ebae126
Showing 1 changed file with 31 additions and 1 deletion.
32 changes: 31 additions & 1 deletion src/modules/qimage/qimage_wrapper.cpp
Expand Up @@ -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
Expand All @@ -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;
Expand Down Expand Up @@ -178,13 +182,39 @@ 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;
if ( !self->qimage || mlt_properties_get_int( producer_props, "_disable_exif" ) != disable_exif )
{
self->current_image = NULL;
QImage *qimage = new QImage( mlt_properties_get_value( self->filenames, image_idx ) );
QImage *qimage = new QImage( QString::fromUtf8( mlt_properties_get_value( self->filenames, image_idx ) ) );
self->qimage = qimage;

if ( !qimage->isNull( ) )
Expand Down

0 comments on commit ebae126

Please sign in to comment.