summaryrefslogtreecommitdiffstats
path: root/multimedia/gstreamer-plugins-good
diff options
context:
space:
mode:
Diffstat (limited to 'multimedia/gstreamer-plugins-good')
-rw-r--r--multimedia/gstreamer-plugins-good/Makefile42
-rw-r--r--multimedia/gstreamer-plugins-good/files/patch-gst_id3demux_id3v2frames.c174
-rw-r--r--multimedia/gstreamer-plugins-good/files/patch-sys_oss_gstosshelper.c20
-rw-r--r--multimedia/gstreamer-plugins-good/pkg-plist93
4 files changed, 329 insertions, 0 deletions
diff --git a/multimedia/gstreamer-plugins-good/Makefile b/multimedia/gstreamer-plugins-good/Makefile
new file mode 100644
index 000000000..cde50b127
--- /dev/null
+++ b/multimedia/gstreamer-plugins-good/Makefile
@@ -0,0 +1,42 @@
+# New ports collection makefile for: gstreamer-plugins-good
+# Date created: 20 Jan 2006
+# Whom: Michael Johnson <ahze@FreeBSD.org>
+#
+# $FreeBSD$
+# $MCom: ports/multimedia/gstreamer-plugins-good/Makefile,v 1.7 2006/06/08 01:14:31 ahze Exp $
+#
+
+PORTREVISION= 4
+CATEGORIES= multimedia
+
+COMMENT= Good gstreamer-plugins
+
+GST_PLUGIN= good
+GST_PLUGIN_SUFFIX= -good
+
+MASTERDIR= ${.CURDIR}/../../multimedia/gstreamer-plugins
+
+BUILD_DEPENDS+= gstreamer-plugins>=${GST_VERSION}${GST_MINOR_VERSION}:${PORTSDIR}/multimedia/gstreamer-plugins
+RUN_DEPENDS+= gstreamer-plugins>=${GST_VERSION}${GST_MINOR_VERSION}:${PORTSDIR}/multimedia/gstreamer-plugins
+
+gst_good_DIST= good
+GOOD_GST_DIRS= gst sys
+PLIST_SUB= VERSION="${GST_VERSION}"
+
+PLIST= ${.CURDIR}/pkg-plist
+FILESDIR=${.CURDIR}/files
+PATCHDIR=${.CURDIR}/files
+NO_GSTREAMER_COMMON= yes
+
+do-build:
+.for dir in ${GOOD_GST_DIRS}
+ @(cd ${BUILD_WRKSRC}/${dir}; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${ALL_TARGET})
+.endfor
+
+do-install:
+.for dir in ${GOOD_GST_DIRS}
+ @(cd ${INSTALL_WRKSRC}/${dir} && ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${INSTALL_TARGET})
+
+.endfor
+
+.include "${MASTERDIR}/Makefile"
diff --git a/multimedia/gstreamer-plugins-good/files/patch-gst_id3demux_id3v2frames.c b/multimedia/gstreamer-plugins-good/files/patch-gst_id3demux_id3v2frames.c
new file mode 100644
index 000000000..acdb3db8c
--- /dev/null
+++ b/multimedia/gstreamer-plugins-good/files/patch-gst_id3demux_id3v2frames.c
@@ -0,0 +1,174 @@
+diff -u -r1.16 id3v2frames.c
+--- gst/id3demux/id3v2frames.c 10 May 2006 13:51:01 -0000 1.16
++++ gst/id3demux/id3v2frames.c 15 May 2006 09:48:46 -0000
+@@ -667,33 +667,21 @@
+ return result;
+ }
+
+-static void
+-parse_insert_string_field (const gchar * encoding, gchar * data, gint data_size,
+- GArray * fields)
+-{
+- gchar *field;
+-
+- field = g_convert (data, data_size, "UTF-8", encoding, NULL, NULL, NULL);
+- if (field && !g_utf8_validate (field, -1, NULL)) {
+- GST_DEBUG ("%s was bad UTF-8. Ignoring", field);
+- g_free (field);
+- field = NULL;
+- }
+- if (field)
+- g_array_append_val (fields, field);
+-}
++static const gchar utf16enc[] = "UTF-16";
++static const gchar utf16leenc[] = "UTF-16LE";
++static const gchar utf16beenc[] = "UTF-16BE";
+
+ static gboolean
+-has_utf16_bom (gchar * data, const gchar ** p_in_encoding)
++find_utf16_bom (gchar * data, const gchar ** p_in_encoding)
+ {
+ guint16 marker = (GST_READ_UINT8 (data) << 8) | GST_READ_UINT8 (data + 1);
+
+ switch (marker) {
+ case 0xFFFE:
+- *p_in_encoding = "UTF16LE";
++ *p_in_encoding = utf16leenc;
+ return TRUE;
+ case 0xFEFF:
+- *p_in_encoding = "UTF16BE";
++ *p_in_encoding = utf16beenc;
+ return TRUE;
+ default:
+ break;
+@@ -702,6 +690,63 @@
+ }
+
+ static void
++parse_insert_string_field (guint8 encoding, gchar * data, gint data_size,
++ GArray * fields)
++{
++ gchar *field = NULL;
++
++ switch (encoding) {
++ case ID3V2_ENCODING_UTF16:
++ case ID3V2_ENCODING_UTF16BE:
++ {
++ const gchar *in_encode;
++
++ if (encoding == ID3V2_ENCODING_UTF16)
++ in_encode = utf16enc;
++ else
++ in_encode = utf16beenc;
++
++ /* Sometimes we see strings with multiple BOM markers at the start.
++ * In that case, we assume the innermost one is correct. If that fails
++ * to produce valid UTF-8, we try the other endianness anyway */
++ while (data_size > 2 && find_utf16_bom (data, &in_encode)) {
++ data += 2; /* skip BOM */
++ data_size -= 2;
++ }
++
++ field = g_convert (data, data_size, "UTF-8", in_encode, NULL, NULL, NULL);
++
++ if (field == NULL || g_utf8_validate (field, -1, NULL) == FALSE) {
++ /* As a fallback, try interpreting UTF-16 in the other endianness */
++ if (in_encode == utf16beenc)
++ field = g_convert (data, data_size, "UTF-8", utf16leenc,
++ NULL, NULL, NULL);
++ }
++ }
++
++ break;
++ case ID3V2_ENCODING_ISO8859:
++ field = g_convert (data, data_size, "UTF-8", "ISO-8859-1",
++ NULL, NULL, NULL);
++ break;
++ default:
++ field = g_strndup (data, data_size);
++ break;
++ }
++
++ if (field) {
++ if (g_utf8_validate (field, -1, NULL)) {
++ g_array_append_val (fields, field);
++ return;
++ }
++
++ GST_DEBUG ("%s was bad UTF-8 after conversion from encoding %d. Ignoring",
++ field, encoding);
++ g_free (field);
++ }
++}
++
++static void
+ parse_split_strings (guint8 encoding, gchar * data, gint data_size,
+ GArray ** out_fields)
+ {
+@@ -715,13 +760,13 @@
+ case ID3V2_ENCODING_ISO8859:
+ for (text_pos = 0; text_pos < data_size; text_pos++) {
+ if (data[text_pos] == 0) {
+- parse_insert_string_field ("ISO-8859-1", data + prev,
++ parse_insert_string_field (encoding, data + prev,
+ text_pos - prev + 1, fields);
+ prev = text_pos + 1;
+ }
+ }
+ if (data_size - prev > 0 && data[prev] != 0x00) {
+- parse_insert_string_field ("ISO-8859-1", data + prev,
++ parse_insert_string_field (encoding, data + prev,
+ data_size - prev, fields);
+ }
+
+@@ -729,34 +774,24 @@
+ case ID3V2_ENCODING_UTF8:
+ for (prev = 0, text_pos = 0; text_pos < data_size; text_pos++) {
+ if (data[text_pos] == '\0') {
+- parse_insert_string_field ("UTF-8", data + prev,
++ parse_insert_string_field (encoding, data + prev,
+ text_pos - prev + 1, fields);
+ prev = text_pos + 1;
+ }
+ }
+ if (data_size - prev > 0 && data[prev] != 0x00) {
+- parse_insert_string_field ("UTF-8", data + prev,
++ parse_insert_string_field (encoding, data + prev,
+ data_size - prev, fields);
+ }
+ break;
+ case ID3V2_ENCODING_UTF16:
+ case ID3V2_ENCODING_UTF16BE:
+ {
+- const gchar *in_encode;
+-
+- if (encoding == ID3V2_ENCODING_UTF16)
+- in_encode = "UTF-16";
+- else
+- in_encode = "UTF-16BE";
+-
+ /* Find '\0\0' terminator */
+ for (text_pos = 0; text_pos < data_size - 1; text_pos += 2) {
+ if (data[text_pos] == '\0' && data[text_pos + 1] == '\0') {
+- if (has_utf16_bom (data + prev, &in_encode)) {
+- prev += 2; /* skip BOM */
+- }
+ /* found a delimiter */
+- parse_insert_string_field (in_encode, data + prev,
++ parse_insert_string_field (encoding, data + prev,
+ text_pos - prev + 2, fields);
+ text_pos++; /* Advance to the 2nd NULL terminator */
+ prev = text_pos + 1;
+@@ -765,11 +800,8 @@
+ }
+ if (data_size - prev > 1 &&
+ (data[prev] != 0x00 || data[prev + 1] != 0x00)) {
+- if (has_utf16_bom (data + prev, &in_encode)) {
+- prev += 2; /* skip BOM */
+- }
+ /* There were 2 or more non-null chars left, convert those too */
+- parse_insert_string_field (in_encode, data + prev,
++ parse_insert_string_field (encoding, data + prev,
+ data_size - prev, fields);
+ }
+ break;
diff --git a/multimedia/gstreamer-plugins-good/files/patch-sys_oss_gstosshelper.c b/multimedia/gstreamer-plugins-good/files/patch-sys_oss_gstosshelper.c
new file mode 100644
index 000000000..34fdd3119
--- /dev/null
+++ b/multimedia/gstreamer-plugins-good/files/patch-sys_oss_gstosshelper.c
@@ -0,0 +1,20 @@
+--- sys/oss/gstosshelper.c.orig Sun Apr 2 03:23:53 2006
++++ sys/oss/gstosshelper.c Sun Apr 2 03:25:44 2006
+@@ -343,13 +344,17 @@ gst_oss_helper_rate_check_rate (GstOssPr
+ int format;
+ int n_channels;
+ int ret;
++ int rst;
+
+ rate = irate;
+ format = probe->format;
+ n_channels = probe->n_channels;
++ rst = 4000; /* XXX Lowest supported rate for FreeBSD. */
+
+ GST_LOG ("checking format %d, channels %d, rate %d",
+ format, n_channels, rate);
++ /* Reset rate to lowest supported rate. */
++ ioctl (probe->fd, SNDCTL_DSP_SPEED, &rst);
+ ret = ioctl (probe->fd, SNDCTL_DSP_SETFMT, &format);
+ if (ret < 0)
+ return -1;
diff --git a/multimedia/gstreamer-plugins-good/pkg-plist b/multimedia/gstreamer-plugins-good/pkg-plist
new file mode 100644
index 000000000..88a6c9279
--- /dev/null
+++ b/multimedia/gstreamer-plugins-good/pkg-plist
@@ -0,0 +1,93 @@
+lib/gstreamer-%%VERSION%%/libgstalaw.a
+lib/gstreamer-%%VERSION%%/libgstalaw.la
+lib/gstreamer-%%VERSION%%/libgstalaw.so
+lib/gstreamer-%%VERSION%%/libgstalpha.a
+lib/gstreamer-%%VERSION%%/libgstalpha.la
+lib/gstreamer-%%VERSION%%/libgstalpha.so
+lib/gstreamer-%%VERSION%%/libgstalphacolor.a
+lib/gstreamer-%%VERSION%%/libgstalphacolor.la
+lib/gstreamer-%%VERSION%%/libgstalphacolor.so
+lib/gstreamer-%%VERSION%%/libgstapetag.a
+lib/gstreamer-%%VERSION%%/libgstapetag.la
+lib/gstreamer-%%VERSION%%/libgstapetag.so
+lib/gstreamer-%%VERSION%%/libgstauparse.a
+lib/gstreamer-%%VERSION%%/libgstauparse.la
+lib/gstreamer-%%VERSION%%/libgstauparse.so
+lib/gstreamer-%%VERSION%%/libgstautodetect.a
+lib/gstreamer-%%VERSION%%/libgstautodetect.la
+lib/gstreamer-%%VERSION%%/libgstautodetect.so
+lib/gstreamer-%%VERSION%%/libgstavi.a
+lib/gstreamer-%%VERSION%%/libgstavi.la
+lib/gstreamer-%%VERSION%%/libgstavi.so
+lib/gstreamer-%%VERSION%%/libgstcutter.a
+lib/gstreamer-%%VERSION%%/libgstcutter.la
+lib/gstreamer-%%VERSION%%/libgstcutter.so
+lib/gstreamer-%%VERSION%%/libgstdebug.a
+lib/gstreamer-%%VERSION%%/libgstdebug.la
+lib/gstreamer-%%VERSION%%/libgstdebug.so
+lib/gstreamer-%%VERSION%%/libgsteffectv.a
+lib/gstreamer-%%VERSION%%/libgsteffectv.la
+lib/gstreamer-%%VERSION%%/libgsteffectv.so
+lib/gstreamer-%%VERSION%%/libgstflxdec.a
+lib/gstreamer-%%VERSION%%/libgstflxdec.la
+lib/gstreamer-%%VERSION%%/libgstflxdec.so
+lib/gstreamer-%%VERSION%%/libgstgoom.a
+lib/gstreamer-%%VERSION%%/libgstgoom.la
+lib/gstreamer-%%VERSION%%/libgstgoom.so
+lib/gstreamer-%%VERSION%%/libgsticydemux.a
+lib/gstreamer-%%VERSION%%/libgsticydemux.la
+lib/gstreamer-%%VERSION%%/libgsticydemux.so
+lib/gstreamer-%%VERSION%%/libgstid3demux.a
+lib/gstreamer-%%VERSION%%/libgstid3demux.la
+lib/gstreamer-%%VERSION%%/libgstid3demux.so
+lib/gstreamer-%%VERSION%%/libgstlevel.a
+lib/gstreamer-%%VERSION%%/libgstlevel.la
+lib/gstreamer-%%VERSION%%/libgstlevel.so
+lib/gstreamer-%%VERSION%%/libgstmatroska.a
+lib/gstreamer-%%VERSION%%/libgstmatroska.la
+lib/gstreamer-%%VERSION%%/libgstmatroska.so
+lib/gstreamer-%%VERSION%%/libgstmulaw.a
+lib/gstreamer-%%VERSION%%/libgstmulaw.la
+lib/gstreamer-%%VERSION%%/libgstmulaw.so
+lib/gstreamer-%%VERSION%%/libgstmultipart.a
+lib/gstreamer-%%VERSION%%/libgstmultipart.la
+lib/gstreamer-%%VERSION%%/libgstmultipart.so
+lib/gstreamer-%%VERSION%%/libgstnavigationtest.a
+lib/gstreamer-%%VERSION%%/libgstnavigationtest.la
+lib/gstreamer-%%VERSION%%/libgstnavigationtest.so
+lib/gstreamer-%%VERSION%%/libgstossaudio.a
+lib/gstreamer-%%VERSION%%/libgstossaudio.la
+lib/gstreamer-%%VERSION%%/libgstossaudio.so
+lib/gstreamer-%%VERSION%%/libgstrtp.a
+lib/gstreamer-%%VERSION%%/libgstrtp.la
+lib/gstreamer-%%VERSION%%/libgstrtp.so
+lib/gstreamer-%%VERSION%%/libgstrtsp.a
+lib/gstreamer-%%VERSION%%/libgstrtsp.la
+lib/gstreamer-%%VERSION%%/libgstrtsp.so
+lib/gstreamer-%%VERSION%%/libgstsmpte.a
+lib/gstreamer-%%VERSION%%/libgstsmpte.la
+lib/gstreamer-%%VERSION%%/libgstsmpte.so
+lib/gstreamer-%%VERSION%%/libgstudp.a
+lib/gstreamer-%%VERSION%%/libgstudp.la
+lib/gstreamer-%%VERSION%%/libgstudp.so
+lib/gstreamer-%%VERSION%%/libgstvideobalance.a
+lib/gstreamer-%%VERSION%%/libgstvideobalance.la
+lib/gstreamer-%%VERSION%%/libgstvideobalance.so
+lib/gstreamer-%%VERSION%%/libgstvideobox.a
+lib/gstreamer-%%VERSION%%/libgstvideobox.la
+lib/gstreamer-%%VERSION%%/libgstvideobox.so
+lib/gstreamer-%%VERSION%%/libgstvideoflip.a
+lib/gstreamer-%%VERSION%%/libgstvideoflip.la
+lib/gstreamer-%%VERSION%%/libgstvideoflip.so
+lib/gstreamer-%%VERSION%%/libgstvideomixer.a
+lib/gstreamer-%%VERSION%%/libgstvideomixer.la
+lib/gstreamer-%%VERSION%%/libgstvideomixer.so
+lib/gstreamer-%%VERSION%%/libgstwavenc.a
+lib/gstreamer-%%VERSION%%/libgstwavenc.la
+lib/gstreamer-%%VERSION%%/libgstwavenc.so
+lib/gstreamer-%%VERSION%%/libgstwavparse.a
+lib/gstreamer-%%VERSION%%/libgstwavparse.la
+lib/gstreamer-%%VERSION%%/libgstwavparse.so
+lib/gstreamer-%%VERSION%%/libgstximagesrc.a
+lib/gstreamer-%%VERSION%%/libgstximagesrc.la
+lib/gstreamer-%%VERSION%%/libgstximagesrc.so