summaryrefslogtreecommitdiffstats
path: root/multimedia/gstreamer-plugins80
diff options
context:
space:
mode:
authorkwm <kwm@df743ca5-7f9a-e211-a948-0013205c9059>2005-06-12 17:05:57 +0800
committerkwm <kwm@df743ca5-7f9a-e211-a948-0013205c9059>2005-06-12 17:05:57 +0800
commit3d0dca5f6df1b14e03008c238a17495fa889fd71 (patch)
tree659646024e6fb4def042eed0fe39d840c3d271c4 /multimedia/gstreamer-plugins80
parent86b5598bd7c7c49949d84431e1b64de7dfade480 (diff)
downloadmarcuscom-ports-3d0dca5f6df1b14e03008c238a17495fa889fd71.tar
marcuscom-ports-3d0dca5f6df1b14e03008c238a17495fa889fd71.tar.gz
marcuscom-ports-3d0dca5f6df1b14e03008c238a17495fa889fd71.tar.bz2
marcuscom-ports-3d0dca5f6df1b14e03008c238a17495fa889fd71.tar.lz
marcuscom-ports-3d0dca5f6df1b14e03008c238a17495fa889fd71.tar.xz
marcuscom-ports-3d0dca5f6df1b14e03008c238a17495fa889fd71.tar.zst
marcuscom-ports-3d0dca5f6df1b14e03008c238a17495fa889fd71.zip
Update to 0.8.9.
Fix the cairo plugin with offical patches for cairo 0.5.0 [1]. Obtained from: Gstreamer cvs git-svn-id: svn://creme-brulee.marcuscom.com/ports/trunk@4079 df743ca5-7f9a-e211-a948-0013205c9059
Diffstat (limited to 'multimedia/gstreamer-plugins80')
-rw-r--r--multimedia/gstreamer-plugins80/Makefile3
-rw-r--r--multimedia/gstreamer-plugins80/Makefile.common9
-rw-r--r--multimedia/gstreamer-plugins80/distinfo4
-rw-r--r--multimedia/gstreamer-plugins80/files/patch-cairo-0.5.0158
-rw-r--r--multimedia/gstreamer-plugins80/files/patch-ext_cairo_gstcairo.c10
-rw-r--r--multimedia/gstreamer-plugins80/files/patch-ext_cairo_gsttextoverlay.c249
-rw-r--r--multimedia/gstreamer-plugins80/files/patch-ext_cairo_gsttextoverlay.h28
-rw-r--r--multimedia/gstreamer-plugins80/files/patch-ext_cairo_gsttimeoverlay.c233
-rw-r--r--multimedia/gstreamer-plugins80/files/patch-ext_cairo_gsttimeoverlay.h30
-rw-r--r--multimedia/gstreamer-plugins80/files/patch-ext_cdparanoia_gstcdparanoia.c18
-rw-r--r--multimedia/gstreamer-plugins80/files/patch-gst_librfb_gstrfbsrc.c10
-rw-r--r--multimedia/gstreamer-plugins80/pkg-plist4
12 files changed, 588 insertions, 168 deletions
diff --git a/multimedia/gstreamer-plugins80/Makefile b/multimedia/gstreamer-plugins80/Makefile
index 0fe186d23..eee7ff11d 100644
--- a/multimedia/gstreamer-plugins80/Makefile
+++ b/multimedia/gstreamer-plugins80/Makefile
@@ -6,8 +6,7 @@
#
PORTNAME= gstreamer
-PORTVERSION= 0.8.8
-PORTREVISION?= 3
+PORTVERSION= 0.8.9
CATEGORIES?= multimedia audio
MASTER_SITES= ${MASTER_SITE_GNOME} \
http://gstreamer.freedesktop.org/src/gst-plugins/
diff --git a/multimedia/gstreamer-plugins80/Makefile.common b/multimedia/gstreamer-plugins80/Makefile.common
index 287243726..f5f5602d0 100644
--- a/multimedia/gstreamer-plugins80/Makefile.common
+++ b/multimedia/gstreamer-plugins80/Makefile.common
@@ -74,7 +74,6 @@ GST_ALL_PLUGINS= \
theora \
vcd \
vorbis \
- xine \
vorbistest \
xvid
@@ -95,9 +94,12 @@ CONFIGURE_ARGS+=--disable-tests \
--disable-osx_audio \
--disable-osx_video \
--enable-static \
+ --disable-spc \
--disable-sunaudio \
--disable-gst_v4l \
--disable-gst_v4l2 \
+ --enable-wavepack \
+ --disable-xine \
--enable-x \
--enable-xshm \
--enable-xvideo
@@ -441,11 +443,6 @@ LIB_DEPENDS+= vorbis.3:${PORTSDIR}/audio/libvorbis
LIB_DEPENDS+= vorbisidec.1:${PORTSDIR}/audio/libtremor
.endif
-# xine
-.if ${GST_PLUGIN}=="xine"
-LIB_DEPENDS+= xine.13:${PORTSDIR}/multimedia/libxine
-.endif
-
# xvid
.if ${GST_PLUGIN}=="xvid"
LIB_DEPENDS+= xvidcore.4:${PORTSDIR}/multimedia/xvid
diff --git a/multimedia/gstreamer-plugins80/distinfo b/multimedia/gstreamer-plugins80/distinfo
index 1b58081ff..a0b5018d8 100644
--- a/multimedia/gstreamer-plugins80/distinfo
+++ b/multimedia/gstreamer-plugins80/distinfo
@@ -1,2 +1,2 @@
-MD5 (gnome2/gst-plugins-0.8.8.tar.bz2) = 4f6e7e730fa674ecd6ec713f937b8acb
-SIZE (gnome2/gst-plugins-0.8.8.tar.bz2) = 2214274
+MD5 (gnome2/gst-plugins-0.8.9.tar.bz2) = 663461ef7b16e9bd7f2605e4ed0db5ba
+SIZE (gnome2/gst-plugins-0.8.9.tar.bz2) = 2356958
diff --git a/multimedia/gstreamer-plugins80/files/patch-cairo-0.5.0 b/multimedia/gstreamer-plugins80/files/patch-cairo-0.5.0
deleted file mode 100644
index b20dacb60..000000000
--- a/multimedia/gstreamer-plugins80/files/patch-cairo-0.5.0
+++ /dev/null
@@ -1,158 +0,0 @@
---- 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_rgb (timeoverlay->cr, 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);
diff --git a/multimedia/gstreamer-plugins80/files/patch-ext_cairo_gstcairo.c b/multimedia/gstreamer-plugins80/files/patch-ext_cairo_gstcairo.c
new file mode 100644
index 000000000..788e2df28
--- /dev/null
+++ b/multimedia/gstreamer-plugins80/files/patch-ext_cairo_gstcairo.c
@@ -0,0 +1,10 @@
+--- ext/cairo/gstcairo.c.orig Sun Jun 12 10:43:25 2005
++++ ext/cairo/gstcairo.c Sun Jun 12 10:44:04 2005
+@@ -46,5 +46,5 @@
+ return TRUE;
+ }
+
+-GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, GST_VERSION_MINOR, "timeoverlay",
+- "Time overlay", plugin_init, VERSION, GST_LICENSE, GST_PACKAGE, GST_ORIGIN)
++GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, GST_VERSION_MINOR, "cairo",
++ "Cairo", plugin_init, VERSION, GST_LICENSE, GST_PACKAGE, GST_ORIGIN)
diff --git a/multimedia/gstreamer-plugins80/files/patch-ext_cairo_gsttextoverlay.c b/multimedia/gstreamer-plugins80/files/patch-ext_cairo_gsttextoverlay.c
new file mode 100644
index 000000000..7da96c50b
--- /dev/null
+++ b/multimedia/gstreamer-plugins80/files/patch-ext_cairo_gsttextoverlay.c
@@ -0,0 +1,249 @@
+--- ext/cairo/gsttextoverlay.c.orig Sun Jun 12 10:43:32 2005
++++ ext/cairo/gsttextoverlay.c Sun Jun 12 10:44:04 2005
+@@ -84,18 +84,9 @@
+
+ static GstElementClass *parent_class = NULL;
+
+-/*static guint gst_textoverlay_signals[LAST_SIGNAL] = { 0 }; */
+-
+-/* This is for cairo 0.4, remove once we require 0.5 */
+-#ifndef CAIRO_API_SHAKEUP_FLAG_DAY
+-#define cairo_set_source_rgba(cr,red,green,blue,alpha) {\
+- cairo_set_rgb_color(cr,red,green,blue); \
+- cairo_set_alpha(cr,alpha); }
+-#endif
+-
+
+ GType
+-gst_textoverlay_get_type (void)
++gst_cairotextoverlay_get_type (void)
+ {
+ static GType textoverlay_type = 0;
+
+@@ -113,7 +104,7 @@
+ };
+
+ textoverlay_type =
+- g_type_register_static (GST_TYPE_ELEMENT, "GstTextOverlay",
++ g_type_register_static (GST_TYPE_ELEMENT, "GstCairoTextOverlay",
+ &textoverlay_info, 0);
+ }
+ return textoverlay_type;
+@@ -221,30 +212,37 @@
+ int textlen)
+ {
+ cairo_text_extents_t extents;
++ cairo_surface_t *surface;
++ cairo_t *cr;
+ char *string;
+ double x, y;
+
+ string = g_strndup (text, textlen);
+
+- if (overlay->text_fill_image)
+- g_free (overlay->text_fill_image);
+ overlay->text_fill_image =
+- g_malloc (4 * overlay->width * overlay->text_height);
+- cairo_set_target_image (overlay->cr, (gchar *) overlay->text_fill_image,
++ g_realloc (overlay->text_fill_image,
++ 4 * overlay->width * overlay->text_height);
++
++ surface = 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_source_rgba (overlay->cr, 0, 0, 0, 1.0);
+-
+- cairo_set_operator (overlay->cr, CAIRO_OPERATOR_SRC);
+- cairo_fill (overlay->cr);
+- cairo_restore (overlay->cr);
+-
+- cairo_save (overlay->cr);
+- cairo_text_extents (overlay->cr, (guchar *) string, &extents);
+- cairo_set_source_rgba (overlay->cr, 1, 1, 1, 1.0);
++ cr = cairo_create (surface);
++
++ cairo_select_font_face (cr, overlay->font, overlay->slant, overlay->weight);
++ cairo_set_font_size (cr, overlay->scale);
++
++ cairo_save (cr);
++ cairo_rectangle (cr, 0, 0, overlay->width, overlay->text_height);
++ cairo_set_source_rgba (cr, 0, 0, 0, 1.0);
++
++ cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
++ cairo_fill (cr);
++ cairo_restore (cr);
++
++ cairo_save (cr);
++ cairo_text_extents (cr, string, &extents);
++ cairo_set_source_rgba (cr, 1, 1, 1, 1.0);
+
+ switch (overlay->halign) {
+ case GST_TEXT_OVERLAY_HALIGN_LEFT:
+@@ -260,42 +258,53 @@
+ x = 0;
+ }
+ y = overlay->text_height - 2;
+- cairo_move_to (overlay->cr, x, y);
+- cairo_show_text (overlay->cr, (guchar *) string);
+- cairo_restore (overlay->cr);
++ cairo_move_to (cr, x, y);
++ cairo_show_text (cr, string);
++ cairo_restore (cr);
++
++ cairo_destroy (cr);
++ cairo_surface_destroy (surface);
++
++ /* ----------- */
+
+- if (overlay->text_outline_image)
+- g_free (overlay->text_outline_image);
+ overlay->text_outline_image =
+- g_malloc (4 * overlay->width * overlay->text_height);
+- cairo_set_target_image (overlay->cr, (gchar *) overlay->text_outline_image,
++ g_realloc (overlay->text_outline_image,
++ 4 * overlay->width * overlay->text_height);
++
++ surface = 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_source_rgba (overlay->cr, 0, 0, 0, 1.0);
+- cairo_set_operator (overlay->cr, CAIRO_OPERATOR_SRC);
+- cairo_fill (overlay->cr);
+- cairo_restore (overlay->cr);
+-
+- cairo_save (overlay->cr);
+- cairo_move_to (overlay->cr, x, y);
+- cairo_set_source_rgba (overlay->cr, 1, 1, 1, 1.0);
+- cairo_set_line_width (overlay->cr, 1.0);
+- cairo_text_path (overlay->cr, (guchar *) string);
+- cairo_stroke (overlay->cr);
+- cairo_restore (overlay->cr);
++ cr = cairo_create (surface);
+
+- g_free (string);
+-}
++ cairo_select_font_face (cr, overlay->font, overlay->slant, overlay->weight);
++ cairo_set_font_size (cr, overlay->scale);
+
+-/* static GstPadLinkReturn */
+-/* gst_textoverlay_text_sinkconnect (GstPad *pad, GstCaps *caps) */
+-/* { */
+-/* return GST_PAD_LINK_DONE; */
+-/* } */
++/*
++ cairo_set_target_image (cr, (gchar*) overlay->text_outline_image,
++ CAIRO_FORMAT_ARGB32, overlay->width, overlay->text_height,
++ overlay->width * 4);
++*/
++ cairo_save (cr);
++ cairo_rectangle (cr, 0, 0, overlay->width, overlay->text_height);
++ cairo_set_source_rgba (cr, 0, 0, 0, 1.0);
++ cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
++ cairo_fill (cr);
++ cairo_restore (cr);
++
++ cairo_save (cr);
++ cairo_move_to (cr, x, y);
++ cairo_set_source_rgba (cr, 1, 1, 1, 1.0);
++ cairo_set_line_width (cr, 1.0);
++ cairo_text_path (cr, (guchar *) string);
++ cairo_stroke (cr);
++ cairo_restore (cr);
++
++ g_free (string);
+
++ cairo_destroy (cr);
++ cairo_surface_destroy (surface);
++}
+
+ static GstPadLinkReturn
+ gst_textoverlay_video_sinkconnect (GstPad * pad, const GstCaps * caps)
+@@ -542,17 +551,24 @@
+ gst_textoverlay_font_init (GstTextOverlay * overlay)
+ {
+ cairo_font_extents_t font_extents;
++ cairo_surface_t *surface;
++ cairo_t *cr;
++
++ surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 64, 64);
++ cr = cairo_create (surface);
+
+- cairo_select_font (overlay->cr, overlay->font, overlay->slant,
+- overlay->weight);
+- cairo_scale_font (overlay->cr, overlay->scale);
++ cairo_select_font_face (cr, overlay->font, overlay->slant, overlay->weight);
++ cairo_set_font_size (cr, overlay->scale);
+
+- cairo_current_font_extents (overlay->cr, &font_extents);
++ cairo_font_extents (cr, &font_extents);
+ overlay->text_height = font_extents.height;
+ if (overlay->text_height & 1)
+ overlay->text_height++;
+
+ overlay->need_render = TRUE;
++
++ cairo_destroy (cr);
++ cairo_surface_destroy (surface);
+ }
+
+ static GstElementStateReturn
+@@ -581,10 +597,8 @@
+ {
+ GstTextOverlay *overlay = GST_TEXTOVERLAY (object);
+
+- if (overlay->cr) {
+- cairo_destroy (overlay->cr);
+- }
+-
++ g_free (overlay->font);
++ g_free (overlay->default_text);
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+ }
+
+@@ -611,8 +625,6 @@
+ (&textoverlay_src_template_factory), "src");
+ gst_element_add_pad (GST_ELEMENT (overlay), overlay->srcpad);
+
+- overlay->cr = cairo_create ();
+-
+ overlay->halign = GST_TEXT_OVERLAY_HALIGN_CENTER;
+ overlay->valign = GST_TEXT_OVERLAY_VALIGN_BASELINE;
+ overlay->x0 = overlay->y0 = 25;
+@@ -635,17 +647,14 @@
+ {
+ GstTextOverlay *overlay;
+
+- /* it's not null if we got it, but it might not be ours */
+ g_return_if_fail (GST_IS_TEXTOVERLAY (object));
+ overlay = GST_TEXTOVERLAY (object);
+
+ switch (prop_id) {
+
+ case ARG_TEXT:
+- if (overlay->default_text) {
+- g_free (overlay->default_text);
+- }
+- overlay->default_text = g_strdup (g_value_get_string (value));
++ g_free (overlay->default_text);
++ overlay->default_text = g_value_dup_string (value);
+ overlay->need_render = TRUE;
+ break;
+
+@@ -684,9 +693,8 @@
+ break;
+
+ case ARG_FONT_DESC:
+- if (overlay->font)
+- g_free (overlay->font);
+- overlay->font = g_strdup (g_value_get_string (value));
++ g_free (overlay->font);
++ overlay->font = g_value_dup_string (value);
+ gst_textoverlay_font_init (overlay);
+ break;
+
diff --git a/multimedia/gstreamer-plugins80/files/patch-ext_cairo_gsttextoverlay.h b/multimedia/gstreamer-plugins80/files/patch-ext_cairo_gsttextoverlay.h
new file mode 100644
index 000000000..a27e832a9
--- /dev/null
+++ b/multimedia/gstreamer-plugins80/files/patch-ext_cairo_gsttextoverlay.h
@@ -0,0 +1,28 @@
+--- ext/cairo/gsttextoverlay.h.orig Sun Jun 12 10:43:36 2005
++++ ext/cairo/gsttextoverlay.h Sun Jun 12 10:44:04 2005
+@@ -10,7 +10,7 @@
+ GST_DEBUG_CATEGORY_EXTERN (cairo_debug);
+ #define GST_CAT_DEFAULT cairo_debug
+
+-#define GST_TYPE_TEXTOVERLAY (gst_textoverlay_get_type())
++#define GST_TYPE_TEXTOVERLAY (gst_cairotextoverlay_get_type())
+ #define GST_TEXTOVERLAY(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),\
+ GST_TYPE_TEXTOVERLAY, GstTextOverlay))
+ #define GST_TEXTOVERLAY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),\
+@@ -56,7 +56,6 @@
+ gint y0;
+ gchar *default_text;
+
+- cairo_t *cr;
+ guchar *text_fill_image;
+ guchar *text_outline_image;
+ int text_height;
+@@ -75,7 +74,7 @@
+ GstElementClass parent_class;
+ };
+
+-GType gst_textoverlay_get_type(void) G_GNUC_CONST;
++GType gst_cairotextoverlay_get_type(void) G_GNUC_CONST;
+
+ G_END_DECLS
+
diff --git a/multimedia/gstreamer-plugins80/files/patch-ext_cairo_gsttimeoverlay.c b/multimedia/gstreamer-plugins80/files/patch-ext_cairo_gsttimeoverlay.c
new file mode 100644
index 000000000..355f4ec32
--- /dev/null
+++ b/multimedia/gstreamer-plugins80/files/patch-ext_cairo_gsttimeoverlay.c
@@ -0,0 +1,233 @@
+--- ext/cairo/gsttimeoverlay.c.orig Sun Jun 12 10:43:45 2005
++++ ext/cairo/gsttimeoverlay.c Sun Jun 12 10:44:04 2005
+@@ -34,41 +34,16 @@
+
+ #include <cairo.h>
+
+-/* This is for cairo 0.4, remove once we require 0.5 */
+-#ifndef CAIRO_API_SHAKEUP_FLAG_DAY
+-#define cairo_set_source_rgba(cr,red,green,blue,alpha) {\
+- cairo_set_rgb_color(cr,red,green,blue); \
+- cairo_set_alpha(cr,alpha); }
+-#endif
+-
+-/* GstTimeoverlay signals and args */
+-enum
+-{
+- /* FILL ME */
+- LAST_SIGNAL
+-};
+-
+-enum
+-{
+- ARG_0
+- /* FILL ME */
+-};
+-
+ static void gst_timeoverlay_base_init (gpointer g_class);
+ static void gst_timeoverlay_class_init (gpointer g_class, gpointer class_data);
+ static void gst_timeoverlay_init (GTypeInstance * instance, gpointer g_class);
+
+-static void gst_timeoverlay_set_property (GObject * object, guint prop_id,
+- const GValue * value, GParamSpec * pspec);
+-static void gst_timeoverlay_get_property (GObject * object, guint prop_id,
+- GValue * value, GParamSpec * pspec);
+-
+ static void gst_timeoverlay_planar411 (GstVideofilter * videofilter, void *dest,
+ void *src);
+ static void gst_timeoverlay_setup (GstVideofilter * videofilter);
+
+ GType
+-gst_timeoverlay_get_type (void)
++gst_cairotimeoverlay_get_type (void)
+ {
+ static GType timeoverlay_type = 0;
+
+@@ -86,7 +61,7 @@
+ };
+
+ timeoverlay_type = g_type_register_static (GST_TYPE_VIDEOFILTER,
+- "GstTimeoverlay", &timeoverlay_info, 0);
++ "GstCairoTimeOverlay", &timeoverlay_info, 0);
+ }
+ return timeoverlay_type;
+ }
+@@ -127,16 +102,6 @@
+ gobject_class = G_OBJECT_CLASS (g_class);
+ videofilter_class = GST_VIDEOFILTER_CLASS (g_class);
+
+-#if 0
+- g_object_class_install_property (gobject_class, ARG_METHOD,
+- g_param_spec_enum ("method", "method", "method",
+- GST_TYPE_TIMEOVERLAY_METHOD, GST_TIMEOVERLAY_METHOD_1,
+- G_PARAM_READWRITE));
+-#endif
+-
+- gobject_class->set_property = gst_timeoverlay_set_property;
+- gobject_class->get_property = gst_timeoverlay_get_property;
+-
+ videofilter_class->setup = gst_timeoverlay_setup;
+ }
+
+@@ -154,70 +119,29 @@
+ }
+
+ static void
+-gst_timeoverlay_set_property (GObject * object, guint prop_id,
+- const GValue * value, GParamSpec * pspec)
+-{
+- GstTimeoverlay *src;
+-
+- /* it's not null if we got it, but it might not be ours */
+- g_return_if_fail (GST_IS_TIMEOVERLAY (object));
+- src = GST_TIMEOVERLAY (object);
+-
+- GST_DEBUG ("gst_timeoverlay_set_property");
+- switch (prop_id) {
+-#if 0
+- case ARG_METHOD:
+- src->method = g_value_get_enum (value);
+- break;
+-#endif
+- default:
+- break;
+- }
+-}
+-
+-static void
+-gst_timeoverlay_get_property (GObject * object, guint prop_id, GValue * value,
+- GParamSpec * pspec)
+-{
+- GstTimeoverlay *src;
+-
+- /* it's not null if we got it, but it might not be ours */
+- g_return_if_fail (GST_IS_TIMEOVERLAY (object));
+- src = GST_TIMEOVERLAY (object);
+-
+- switch (prop_id) {
+-#if 0
+- case ARG_METHOD:
+- g_value_set_enum (value, src->method);
+- break;
+-#endif
+- default:
+- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+- break;
+- }
+-}
+-
+-static void
+ gst_timeoverlay_setup (GstVideofilter * videofilter)
+ {
+ GstTimeoverlay *timeoverlay;
+ cairo_font_extents_t font_extents;
++ cairo_surface_t *surface;
++ cairo_t *cr;
+
+ 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 ();
++ surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 64, 64);
++ cr = cairo_create (surface);
+
+- cairo_set_rgb_color (timeoverlay->cr, 0, 0, 0);
++ cairo_set_source_rgb (cr, 0, 0, 0);
+
+- cairo_select_font (timeoverlay->cr, "monospace", 0, 0);
+- cairo_scale_font (timeoverlay->cr, 20);
++ cairo_select_font_face (cr, "monospace", 0, 0);
++ cairo_set_font_size (cr, 20);
+
+- cairo_current_font_extents (timeoverlay->cr, &font_extents);
++ cairo_font_extents (cr, &font_extents);
+ timeoverlay->text_height = font_extents.height;
+
++ cairo_destroy (cr);
++ cairo_surface_destroy (surface);
+ }
+
+ static char *
+@@ -251,8 +175,10 @@
+ int b_width;
+ char *string;
+ int i, j;
+- char *image;
++ unsigned char *image;
+ cairo_text_extents_t extents;
++ cairo_surface_t *surface;
++ cairo_t *cr;
+
+ g_return_if_fail (GST_IS_TIMEOVERLAY (videofilter));
+ timeoverlay = GST_TIMEOVERLAY (videofilter);
+@@ -266,32 +192,40 @@
+
+ image = g_malloc (4 * width * timeoverlay->text_height);
+
+- cairo_set_target_image (timeoverlay->cr, image, CAIRO_FORMAT_ARGB32,
++ surface = 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_source_rgba (timeoverlay->cr, 0, 0, 0, 0);
+-
+- cairo_set_operator (timeoverlay->cr, CAIRO_OPERATOR_SRC);
+- cairo_fill (timeoverlay->cr);
+- cairo_restore (timeoverlay->cr);
+-
+- cairo_save (timeoverlay->cr);
+- cairo_text_extents (timeoverlay->cr, (guchar *) string, &extents);
+-
+- cairo_set_rgb_color (timeoverlay->cr, 1, 1, 1);
+- cairo_move_to (timeoverlay->cr, 0, timeoverlay->text_height - 2);
+- cairo_show_text (timeoverlay->cr, (guchar *) string);
++ cr = cairo_create (surface);
++
++ cairo_set_source_rgb (cr, 0, 0, 0);
++ cairo_select_font_face (cr, "monospace", 0, 0);
++ cairo_set_font_size (cr, 20);
++
++ cairo_save (cr);
++
++ cairo_rectangle (cr, 0, 0, width, timeoverlay->text_height);
++ cairo_set_source_rgba (cr, 0, 0, 0, 0);
++
++ cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
++ cairo_fill (cr);
++ cairo_restore (cr);
++
++ cairo_save (cr);
++ cairo_text_extents (cr, string, &extents);
++
++ cairo_set_source_rgb (cr, 1, 1, 1);
++ cairo_move_to (cr, 0, timeoverlay->text_height - 2);
++ cairo_show_text (cr, string);
+ g_free (string);
++
+ #if 0
+- cairo_text_path (timeoverlay->cr, string);
+- cairo_set_rgb_color (timeoverlay->cr, 1, 1, 1);
+- cairo_set_line_width (timeoverlay->cr, 1.0);
+- cairo_stroke (timeoverlay->cr);
++ cairo_text_path (cr, string);
++ cairo_set_source_rgb (cr, 1, 1, 1);
++ cairo_set_line_width (cr, 1.0);
++ cairo_stroke (cr);
+ #endif
+
+- cairo_restore (timeoverlay->cr);
++ cairo_restore (cr);
+
+ b_width = extents.width;
+ if (b_width > width)
+@@ -310,4 +244,7 @@
+ }
+
+ g_free (image);
++
++ cairo_destroy (cr);
++ cairo_surface_destroy (surface);
+ }
diff --git a/multimedia/gstreamer-plugins80/files/patch-ext_cairo_gsttimeoverlay.h b/multimedia/gstreamer-plugins80/files/patch-ext_cairo_gsttimeoverlay.h
new file mode 100644
index 000000000..1c2c4e70f
--- /dev/null
+++ b/multimedia/gstreamer-plugins80/files/patch-ext_cairo_gsttimeoverlay.h
@@ -0,0 +1,30 @@
+--- ext/cairo/gsttimeoverlay.h.orig Sun Jun 12 10:43:50 2005
++++ ext/cairo/gsttimeoverlay.h Sun Jun 12 10:44:04 2005
+@@ -31,7 +31,7 @@
+ G_BEGIN_DECLS
+
+ #define GST_TYPE_TIMEOVERLAY \
+- (gst_timeoverlay_get_type())
++ (gst_cairotimeoverlay_get_type())
+ #define GST_TIMEOVERLAY(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_TIMEOVERLAY,GstTimeoverlay))
+ #define GST_TIMEOVERLAY_CLASS(klass) \
+@@ -46,17 +46,14 @@
+
+ struct _GstTimeoverlay {
+ GstVideofilter videofilter;
+-
+- cairo_t *cr;
+ int text_height;
+-
+ };
+
+ struct _GstTimeoverlayClass {
+ GstVideofilterClass parent_class;
+ };
+
+-GType gst_timeoverlay_get_type(void);
++GType gst_cairotimeoverlay_get_type(void);
+
+ G_END_DECLS
+
diff --git a/multimedia/gstreamer-plugins80/files/patch-ext_cdparanoia_gstcdparanoia.c b/multimedia/gstreamer-plugins80/files/patch-ext_cdparanoia_gstcdparanoia.c
new file mode 100644
index 000000000..17e8469ad
--- /dev/null
+++ b/multimedia/gstreamer-plugins80/files/patch-ext_cdparanoia_gstcdparanoia.c
@@ -0,0 +1,18 @@
+--- ext/cdparanoia/gstcdparanoia.c.orig Fri Jun 3 06:59:43 2005
++++ ext/cdparanoia/gstcdparanoia.c Fri Jun 3 07:00:13 2005
+@@ -561,6 +561,7 @@
+ gint16 *cdda_buf;
+ gint64 timestamp;
+ GstFormat format;
++ GstEvent *discont_ev;
+
+ /* convert the sequence sector number to a timestamp */
+ format = GST_FORMAT_TIME;
+@@ -574,7 +575,6 @@
+ gst_pad_convert (src->srcpad, sector_format,
+ get_relative (src, src->cur_track, src->cur_sector), &format,
+ &timestamp);
+- GstEvent *discont_ev;
+
+ if (src->flush_pending) {
+ src->flush_pending = FALSE;
diff --git a/multimedia/gstreamer-plugins80/files/patch-gst_librfb_gstrfbsrc.c b/multimedia/gstreamer-plugins80/files/patch-gst_librfb_gstrfbsrc.c
new file mode 100644
index 000000000..e83f13650
--- /dev/null
+++ b/multimedia/gstreamer-plugins80/files/patch-gst_librfb_gstrfbsrc.c
@@ -0,0 +1,10 @@
+--- gst/librfb/gstrfbsrc.c.orig Fri Jun 3 06:06:43 2005
++++ gst/librfb/gstrfbsrc.c Fri Jun 3 06:08:21 2005
+@@ -28,6 +28,7 @@
+ #include <string.h>
+ #include <stdlib.h>
+ #include <unistd.h>
++#include <sys/time.h>
+
+ #include <librfb/rfb.h>
+
diff --git a/multimedia/gstreamer-plugins80/pkg-plist b/multimedia/gstreamer-plugins80/pkg-plist
index 34c1cb992..5bf665b1f 100644
--- a/multimedia/gstreamer-plugins80/pkg-plist
+++ b/multimedia/gstreamer-plugins80/pkg-plist
@@ -63,6 +63,7 @@ lib/gstreamer-%%VERSION%%/libgstfestival.so
lib/gstreamer-%%VERSION%%/libgstffmpegcolorspace.so
lib/gstreamer-%%VERSION%%/libgstfilter.so
lib/gstreamer-%%VERSION%%/libgstflxdec.so
+lib/gstreamer-%%VERSION%%/libgstfreeze.so
lib/gstreamer-%%VERSION%%/libgstgamma.so
lib/gstreamer-%%VERSION%%/libgstgoom.so
lib/gstreamer-%%VERSION%%/libgstidct.so
@@ -100,6 +101,7 @@ lib/gstreamer-%%VERSION%%/libgstsilence.so
lib/gstreamer-%%VERSION%%/libgstsinesrc.so
lib/gstreamer-%%VERSION%%/libgstsmooth.so
lib/gstreamer-%%VERSION%%/libgstsmpte.so
+@comment lib/gstreamer-%%VERSION%%/libgstspc.so
lib/gstreamer-%%VERSION%%/libgstspectrum.so
lib/gstreamer-%%VERSION%%/libgstspeed.so
lib/gstreamer-%%VERSION%%/libgststereo.so
@@ -127,6 +129,7 @@ lib/gstreamer-%%VERSION%%/libgstvideotestsrc.so
lib/gstreamer-%%VERSION%%/libgstvolenv.so
lib/gstreamer-%%VERSION%%/libgstvolume.so
lib/gstreamer-%%VERSION%%/libgstwavenc.so
+lib/gstreamer-%%VERSION%%/libgstwavpack.so
lib/gstreamer-%%VERSION%%/libgstwavparse.so
lib/gstreamer-%%VERSION%%/libgstximagesink.so
lib/gstreamer-%%VERSION%%/libgstxvimagesink.so
@@ -160,6 +163,7 @@ share/locale/sr/LC_MESSAGES/gst-plugins-%%VERSION%%.mo
share/locale/sv/LC_MESSAGES/gst-plugins-%%VERSION%%.mo
share/locale/uk/LC_MESSAGES/gst-plugins-%%VERSION%%.mo
share/locale/vi/LC_MESSAGES/gst-plugins-%%VERSION%%.mo
+share/locale/zh_TW/LC_MESSAGES/gst-plugins-%%VERSION%%.mo
@dirrm lib/gstreamer-%%VERSION%%
@dirrm include/gstreamer-%%VERSION%%/gst/xwindowlistener
@dirrm include/gstreamer-%%VERSION%%/gst/xoverlay