diff options
Diffstat (limited to 'multimedia/gstreamer-plugins-good')
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 |