diff options
Diffstat (limited to 'multimedia/gstreamer-plugins/files/patch-cairo-0.5.0')
-rw-r--r-- | multimedia/gstreamer-plugins/files/patch-cairo-0.5.0 | 158 |
1 files changed, 158 insertions, 0 deletions
diff --git a/multimedia/gstreamer-plugins/files/patch-cairo-0.5.0 b/multimedia/gstreamer-plugins/files/patch-cairo-0.5.0 new file mode 100644 index 000000000..e59faa2f0 --- /dev/null +++ b/multimedia/gstreamer-plugins/files/patch-cairo-0.5.0 @@ -0,0 +1,158 @@ +--- ext/cairo/gsttextoverlay.c.orig Mon May 23 13:54:19 2005 ++++ ext/cairo/gsttextoverlay.c Mon May 23 13:54:19 2005 +@@ -223,22 +223,20 @@ + g_free (overlay->text_fill_image); + overlay->text_fill_image = + g_malloc (4 * overlay->width * overlay->text_height); +- cairo_set_target_image (overlay->cr, overlay->text_fill_image, ++ cairo_image_surface_create_for_data (overlay->text_fill_image, + CAIRO_FORMAT_ARGB32, overlay->width, overlay->text_height, + overlay->width * 4); + + cairo_save (overlay->cr); + cairo_rectangle (overlay->cr, 0, 0, overlay->width, overlay->text_height); +- cairo_set_rgb_color (overlay->cr, 0, 0, 0); +- cairo_set_alpha (overlay->cr, 1.0); +- cairo_set_operator (overlay->cr, CAIRO_OPERATOR_SRC); +- cairo_fill (overlay->cr); ++ cairo_set_source_rgba (overlay->cr, 0, 0, 0, 1.0); ++ cairo_set_operator (overlay->cr, CAIRO_OPERATOR_SOURCE); ++ cairo_paint (overlay->cr); + cairo_restore (overlay->cr); + + cairo_save (overlay->cr); + cairo_text_extents (overlay->cr, string, &extents); +- cairo_set_rgb_color (overlay->cr, 1, 1, 1); +- cairo_set_alpha (overlay->cr, 1.0); ++ cairo_set_source_rgba (overlay->cr, 1, 1, 1, 1.0); + switch (overlay->halign) { + case GST_TEXT_OVERLAY_HALIGN_LEFT: + x = overlay->x0; +@@ -261,22 +259,19 @@ + g_free (overlay->text_outline_image); + overlay->text_outline_image = + g_malloc (4 * overlay->width * overlay->text_height); +- cairo_set_target_image (overlay->cr, overlay->text_outline_image, ++ cairo_image_surface_create_for_data ( overlay->text_outline_image, + CAIRO_FORMAT_ARGB32, overlay->width, overlay->text_height, + overlay->width * 4); + + cairo_save (overlay->cr); +- cairo_rectangle (overlay->cr, 0, 0, overlay->width, overlay->text_height); +- cairo_set_rgb_color (overlay->cr, 0, 0, 0); +- cairo_set_alpha (overlay->cr, 1.0); +- cairo_set_operator (overlay->cr, CAIRO_OPERATOR_SRC); +- cairo_fill (overlay->cr); ++ cairo_set_source_rgba (overlay->cr, 0, 0, 0, 1.0); ++ cairo_set_operator (overlay->cr, CAIRO_OPERATOR_SOURCE); ++ cairo_paint (overlay->cr); + cairo_restore (overlay->cr); + + cairo_save (overlay->cr); + cairo_move_to (overlay->cr, x, y); +- cairo_set_rgb_color (overlay->cr, 1, 1, 1); +- cairo_set_alpha (overlay->cr, 1.0); ++ cairo_set_source_rgba (overlay->cr, 1, 1, 1, 1.0); + cairo_set_line_width (overlay->cr, 1.0); + cairo_text_path (overlay->cr, string); + cairo_stroke (overlay->cr); +@@ -538,11 +533,11 @@ + { + cairo_font_extents_t font_extents; + +- cairo_select_font (overlay->cr, overlay->font, overlay->slant, ++ cairo_select_font_face (overlay->cr, overlay->font, overlay->slant, + overlay->weight); +- cairo_scale_font (overlay->cr, overlay->scale); ++ cairo_set_font_size (overlay->cr, overlay->scale); + +- cairo_current_font_extents (overlay->cr, &font_extents); ++ cairo_font_extents (overlay->cr, &font_extents); + overlay->text_height = font_extents.height; + if (overlay->text_height & 1) + overlay->text_height++; +@@ -586,6 +581,7 @@ + static void + gst_textoverlay_init (GstTextOverlay * overlay) + { ++ cairo_surface_t *surface; + /* video sink */ + overlay->video_sinkpad = + gst_pad_new_from_template (gst_static_pad_template_get +@@ -606,7 +602,7 @@ + (&textoverlay_src_template_factory), "src"); + gst_element_add_pad (GST_ELEMENT (overlay), overlay->srcpad); + +- overlay->cr = cairo_create (); ++ overlay->cr = cairo_create (surface); + + overlay->halign = GST_TEXT_OVERLAY_HALIGN_CENTER; + overlay->valign = GST_TEXT_OVERLAY_VALIGN_BASELINE; +--- ext/cairo/gsttimeoverlay.c.orig Mon May 23 13:54:19 2005 ++++ ext/cairo/gsttimeoverlay.c Mon May 23 14:05:58 2005 +@@ -31,6 +31,7 @@ + #include <gsttimeoverlay.h> + #include <string.h> + #include <math.h> ++#include <inttypes.h> + + #include <cairo.h> + +@@ -196,22 +197,25 @@ + { + GstTimeoverlay *timeoverlay; + cairo_font_extents_t font_extents; ++ cairo_surface_t *surface; + + g_return_if_fail (GST_IS_TIMEOVERLAY (videofilter)); + timeoverlay = GST_TIMEOVERLAY (videofilter); + + /* if any setup needs to be done, do it here */ + +- timeoverlay->cr = cairo_create (); ++// timeoverlay->cr = cairo_create (); ++ timeoverlay->cr = cairo_create (surface); + +- cairo_set_rgb_color (timeoverlay->cr, 0, 0, 0); ++ cairo_set_source_rgba (timeoverlay->cr, 0, 0, 0, 0); + +- cairo_select_font (timeoverlay->cr, "monospace", 0, 0); +- cairo_scale_font (timeoverlay->cr, 20); ++ cairo_select_font_face (timeoverlay->cr, "monospace", 0, 0); ++ cairo_set_font_size (timeoverlay->cr, 20); + +- cairo_current_font_extents (timeoverlay->cr, &font_extents); ++ cairo_font_extents (timeoverlay->cr, &font_extents); + timeoverlay->text_height = font_extents.height; + ++ cairo_surface_destroy (surface); + } + + static char * +@@ -260,20 +264,19 @@ + + image = g_malloc (4 * width * timeoverlay->text_height); + +- cairo_set_target_image (timeoverlay->cr, image, CAIRO_FORMAT_ARGB32, ++ cairo_image_surface_create_for_data (image, CAIRO_FORMAT_ARGB32, + width, timeoverlay->text_height, width * 4); + + cairo_save (timeoverlay->cr); +- cairo_rectangle (timeoverlay->cr, 0, 0, width, timeoverlay->text_height); +- cairo_set_alpha (timeoverlay->cr, 0); +- cairo_set_operator (timeoverlay->cr, CAIRO_OPERATOR_SRC); +- cairo_fill (timeoverlay->cr); +- cairo_restore (timeoverlay->cr); ++ ++ cairo_set_source_rgba (0, 0, width, timeoverlay->text_height, 0); ++ cairo_set_operator (timeoverlay->cr, CAIRO_OPERATOR_SOURCE); ++ cairo_paint (timeoverlay->cr); + + cairo_save (timeoverlay->cr); + cairo_text_extents (timeoverlay->cr, string, &extents); + +- cairo_set_rgb_color (timeoverlay->cr, 1, 1, 1); ++ cairo_set_source_rgb (timeoverlay->cr, 1, 1, 1); + cairo_move_to (timeoverlay->cr, 0, timeoverlay->text_height - 2); + cairo_show_text (timeoverlay->cr, string); + g_free (string); |