{
// Clone our image
uint8_t *copy = mlt_pool_alloc( size );
- if ( copy != NULL )
+ if ( copy != NULL && image != NULL )
memcpy( copy, image, size );
// We're going to pass the copy on
}
}
+static PangoFT2FontMap *fontmap = NULL;
+
static GdkPixbuf *pango_get_pixbuf( const char *markup, const char *text, const char *font, rgba_color fg, rgba_color bg, int pad, int align, int weight, int size )
{
- PangoFT2FontMap *fontmap = (PangoFT2FontMap*) pango_ft2_font_map_new();
+ if ( fontmap == NULL )
+ fontmap = (PangoFT2FontMap*) pango_ft2_font_map_new();
+
PangoContext *context = pango_ft2_font_map_create_context( fontmap );
PangoLayout *layout = pango_layout_new( context );
int w, h, x;
src += bitmap.pitch;
}
mlt_pool_release( bitmap.buffer );
+ pango_font_description_free( desc );
g_object_unref( layout );
g_object_unref( context );
- g_object_unref( fontmap );
return pixbuf;
}