location=region
.description=Titles
.properties.markup=filter[1].producer.markup
+.properties.font=filter[1].producer.font
+.properties.size=filter[1].producer.size
.period=2
.properties.length[0]=composite.out
.composite.geometry=0,80:230x30:0;12=,:x:100
.filter[1]=watermark
.filter[1].resource=pango:
.filter[1].producer.markup=
-.filter[1].producer.font=Sans 24
+.filter[1].producer.font=Sans
+.filter[1].producer.size=24
.filter[1].composite.geometry=0,0:95%x100%
.filter[1].composite.titles=1
.filter[1].composite.halign=right
courtesy=region
.description=Courtesy
.properties.markup=filter[1].producer.markup
+.properties.font=filter[1].producer.font
+.properties.size=filter[1].producer.size
.type.markup=text
.period=2
.properties.length[0]=composite.out
.filter[1]=watermark
.filter[1].resource=pango:
.filter[1].producer.markup=ETV Exclusive
-.filter[1].producer.font=Sans 24
+.filter[1].producer.font=Sans
+.filter[1].producer.size=24
.filter[1].composite.geometry=0,0:95%x100%
.filter[1].composite.titles=1
.filter[1].composite.halign=right
exclusive=region
.description=Exclusive
.properties.markup=filter[1].producer.markup
+.properties.font=filter[1].producer.font
+.properties.size=filter[1].producer.size
.type.markup=text
.period=2
.properties.length[0]=composite.out
.filter[1]=watermark
.filter[1].resource=pango:
.filter[1].producer.markup=ETV Exclusive
-.filter[1].producer.font=Sans 24
+.filter[1].producer.font=Sans
+.filter[1].producer.size=24
.filter[1].producer.weight=700
.filter[1].composite.geometry=0,0:95%x100%
.filter[1].composite.titles=1
file_shot=region
.description=Titles
.period=2
+.properties.font=filter[1].producer.font
+.properties.size=filter[1].producer.size
.properties.length[0]=composite.out
.composite.geometry=590,160:80x25:0;12=,:x:100
.filter[0]=watermark
.filter[1]=watermark
.filter[1].resource=pango:
.filter[1].producer.markup=File Shot
-.filter[1].producer.font=Sans 18
+.filter[1].producer.font=Sans
+.filter[1].producer.size=18
.filter[1].producer.weight=700
.filter[1].composite.titles=1
.filter[1].composite.halign=centre
special=region
.description=Special
.period=2
+.properties.font=filter[1].producer.font
+.properties.size=filter[1].producer.size
.properties.length[0]=filter[0].composite.out
.properties.length[1]=filter[1].composite.out
.composite.geometry=465,375:255x35
.filter[1]=watermark
.filter[1].resource=pango:
.filter[1].producer.markup=Special
-.filter[1].producer.font=Sans 24
+.filter[1].producer.font=Sans
+.filter[1].producer.size=24
.filter[1].producer.weight=700
.filter[1].composite.geometry=100%,0%:100%x100%:0;12=0%,0%:x:100
.filter[1].composite.titles=1
ticker=region
.description=Tickertape
.properties.markup=filter[1].producer.markup
+.properties.font=filter[1].producer.font
+.properties.size=filter[1].producer.size
.type.markup=text
.properties.length[0]=filter[1].composite.out
.composite.geometry=0,500:722x75
.filter[1]=watermark
.filter[1].resource=pango:
.filter[1].producer.markup=Ticker - provided for reference
-.filter[1].producer.font=Sans 24
+.filter[1].producer.font=Sans
+.filter[1].producer.size=24
.filter[1].producer.weight=700
.filter[1].composite.titles=1
.filter[1].composite.halign=centre
.properties.1=filter[2].producer.markup
.properties.align=filter[1].composite.valign
.properties.weight=filter[1].producer.weight
+.properties.f0=filter[1].producer.font
+.properties.s0=filter[1].producer.size
+.properties.f1=filter[2].producer.font
+.properties.s1=filter[2].producer.size
.properties.length[0]=composite.out
.period=2
.composite.geometry=0,410:720x90:0;25=,:x:100
.filter[0].composite.geometry=0,0:100%:100%:70
.filter[1]=watermark
.filter[1].resource=pango:
+.filter[1].producer.encoding=iso8859-1
.filter[1].producer.markup=
-.filter[1].producer.font=Sans 32
+.filter[1].producer.font=Sans
+.filter[1].producer.size=32
.filter[1].producer.weight=700
.filter[1].producer.fgcolour=0x6c0101ff
.filter[1].composite.titles=1
.filter[1].composite.valign=top
.filter[2]=watermark
.filter[2].resource=pango:
+.filter[2].producer.encoding=iso8859-1
.filter[2].producer.markup=
-.filter[2].producer.font=Sans 32
+.filter[2].producer.font=Sans
+.filter[2].producer.size=32
.filter[2].producer.fgcolour=0x6c0101ff
.filter[2].composite.titles=1
.filter[2].composite.halign=centre
static void producer_close( mlt_producer parent );
static void pango_draw_background( GdkPixbuf *pixbuf, rgba_color bg );
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 );
+ rgba_color fg, rgba_color bg, int pad, int align, int weight, int size );
/** Return nonzero if the two strings are equal, ignoring case, up to
the first n characters.
iconv_t cd = iconv_open( "UTF-8", encoding );
if ( cd != ( iconv_t )-1 )
{
- char *inbuf_p = strdup( text );
+ char *inbuf_p = text;
size_t inbuf_n = strlen( text );
size_t outbuf_n = inbuf_n * 6;
char *outbuf = mlt_pool_alloc( outbuf_n );
char *outbuf_p = outbuf;
- if ( iconv( cd, &inbuf_p, &inbuf_n, &outbuf_p, &outbuf_n ) != -1 )
- {
- outbuf[ outbuf_n ] = 0;
+ memset( outbuf, 0, outbuf_n );
+
+ if ( text != NULL && strcmp( text, "" ) && iconv( cd, &inbuf_p, &inbuf_n, &outbuf_p, &outbuf_n ) != -1 )
mlt_properties_set( properties, prop_name, outbuf );
- result = 0;
- }
+ else
+ mlt_properties_set( properties, prop_name, "" );
+
mlt_pool_release( outbuf );
iconv_close( cd );
+ result = 0;
}
return result;
}
char *font = mlt_properties_get( producer_props, "font" );
char *encoding = mlt_properties_get( producer_props, "encoding" );
int weight = mlt_properties_get_int( producer_props, "weight" );
+ int size = mlt_properties_get_int( producer_props, "size" );
// See if any properties changed
int property_changed = ( align != this->align );
}
// Render the title
- pixbuf = pango_get_pixbuf( markup, text, font, fgcolor, bgcolor, pad, align, weight );
+ pixbuf = pango_get_pixbuf( markup, text, font, fgcolor, bgcolor, pad, align, weight, size );
if ( pixbuf != 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 )
+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();
PangoContext *context = pango_ft2_font_map_create_context( fontmap );
pango_ft2_font_map_set_resolution( fontmap, 72, 72 );
pango_layout_set_width( layout, -1 ); // set wrapping constraints
pango_font_description_set_weight( desc, ( PangoWeight ) weight );
+ if ( size != 0 )
+ pango_font_description_set_size( desc, PANGO_SCALE * size );
pango_layout_set_font_description( layout, desc );
// pango_layout_set_spacing( layout, space );
pango_layout_set_alignment( layout, ( PangoAlignment ) align );