summaryrefslogtreecommitdiff
path: root/extra/farstream-0.1
diff options
context:
space:
mode:
Diffstat (limited to 'extra/farstream-0.1')
-rw-r--r--extra/farstream-0.1/PKGBUILD40
-rw-r--r--extra/farstream-0.1/codec-discovery-intersect.patch72
-rw-r--r--extra/farstream-0.1/farstream-0.1.2-introspection-tag-order.patch132
-rw-r--r--extra/farstream-0.1/rtp-memleak.patch24
4 files changed, 119 insertions, 149 deletions
diff --git a/extra/farstream-0.1/PKGBUILD b/extra/farstream-0.1/PKGBUILD
index aa21baf76..4a33f5b39 100644
--- a/extra/farstream-0.1/PKGBUILD
+++ b/extra/farstream-0.1/PKGBUILD
@@ -1,43 +1,49 @@
-# $Id: PKGBUILD 197948 2013-10-30 11:51:24Z allan $
+# $Id: PKGBUILD 201487 2013-12-12 18:59:01Z jgc $
# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
# Contributor: Ionut Biru <ibiru@archlinux.org>
pkgname=farstream-0.1
_pkgname=farstream
pkgver=0.1.2
-pkgrel=2
+pkgrel=3
pkgdesc="Audio/Video Communications Framework (legacy version)"
arch=('i686' 'x86_64')
url="http://www.freedesktop.org/wiki/Software/Farstream"
license=('LGPL2.1')
depends=('libnice' 'gstreamer0.10-base' 'gstreamer0.10-bad-plugins'
'gstreamer0.10-good' 'gstreamer0.10-ffmpeg')
-makedepends=('gobject-introspection' 'gstreamer0.10-python' 'python2-gobject2')
-source=(http://freedesktop.org/software/$_pkgname/releases/$_pkgname/$_pkgname-$pkgver.tar.gz
+makedepends=('gobject-introspection' 'gstreamer0.10-python' 'python2-gobject2' 'git' 'gtk-doc')
+source=(git://git.collabora.co.uk/git/farstream.git#commit=54e28e95bed4f04bc95dae509c3724399c79fa29
farstream-0.1.2-prefer-vp8.patch
- farstream-0.1.2-introspection-tag-order.patch)
-sha256sums=('fa5a40597b47b59d124f7fd57f66704b030d576cdc0d90e107c7a592f05e73d9'
- '5f8f2876bde0f21383b3d059c94914a2fcd63d45a1bb1b5cd2e2208cd2536da5'
- 'f540ea6f239e291f9ffc5b806cfea9f9cd0c4f13963e900719a5ee3a3f370124')
-
-build() {
- cd "$_pkgname-$pkgver"
+ codec-discovery-intersect.patch
+ rtp-memleak.patch)
+sha256sums=('SKIP')
- patch -Np1 -i "$srcdir/farstream-0.1.2-prefer-vp8.patch"
- patch -Np1 -i "$srcdir/farstream-0.1.2-introspection-tag-order.patch"
+prepare() {
+ cd farstream
+ patch -Np1 -i ../farstream-0.1.2-prefer-vp8.patch
+ patch -Np1 -i ../codec-discovery-intersect.patch
+ patch -Np1 -i ../rtp-memleak.patch
+}
+build() {
+ cd farstream
+ NOCONFIGURE=1 ./autogen.sh
./configure \
--prefix=/usr \
--with-package-name='Arch Linux Farstream 0.1 Package' \
--with-package-origin='httpw://www.archlinux.org/' \
- --disable-static
- make
+ --enable-gtk-doc --disable-static
+ make -j1
}
package() {
- cd "$_pkgname-$pkgver"
-
+ cd farstream
make DESTDIR="$pkgdir" install
}
# vim:set ts=2 sw=2 et:
+sha256sums=('SKIP'
+ '5f8f2876bde0f21383b3d059c94914a2fcd63d45a1bb1b5cd2e2208cd2536da5'
+ '385d7c72e269bf48bd41937442d819a1e6d0f2472b903670a8a5555f5cb96586'
+ 'b966312ccad90dd30b78ee2df49e9637b3b573e498668bcc58ac208f254440db')
diff --git a/extra/farstream-0.1/codec-discovery-intersect.patch b/extra/farstream-0.1/codec-discovery-intersect.patch
new file mode 100644
index 000000000..54134e054
--- /dev/null
+++ b/extra/farstream-0.1/codec-discovery-intersect.patch
@@ -0,0 +1,72 @@
+From 50fffb08d941dce58ae48bf531faead8a4e22ed7 Mon Sep 17 00:00:00 2001
+From: Olivier CrĂȘte <olivier.crete@collabora.com>
+Date: Tue, 02 Apr 2013 23:13:06 +0000
+Subject: codec-discovery: Intersect different parts of the same caps to reduce them
+
+We do this because a caps may have the static payload in a separate structure from the encoding-name
+We just want both in the same structure
+---
+diff --git a/gst/fsrtpconference/fs-rtp-discover-codecs.c b/gst/fsrtpconference/fs-rtp-discover-codecs.c
+index 5530cc8..df316a4 100644
+--- a/gst/fsrtpconference/fs-rtp-discover-codecs.c
++++ b/gst/fsrtpconference/fs-rtp-discover-codecs.c
+@@ -384,7 +384,6 @@ validate_h263_codecs (CodecCap *codec_cap)
+ if (!rtp_struct)
+ return FALSE;
+
+- /* If there no h263version, we accept everything */
+ encoding_name = gst_structure_get_string (rtp_struct, "encoding-name");
+
+ /* If there is no encoding name, we have a problem, lets refuse it */
+@@ -1300,15 +1299,44 @@ get_plugins_filtered_from_caps (FilterFunc filter,
+ else
+ {
+ gint i;
+- for (i = 0; i < gst_caps_get_size (matched_caps); i++)
++ GPtrArray *capslist = g_ptr_array_new_with_free_func (
++ (GDestroyNotify) gst_caps_unref);
++
++ while (gst_caps_get_size (matched_caps) > 0)
+ {
+- GstCaps *cur_caps =
+- gst_caps_copy_nth (matched_caps, i);
++ GstCaps *stolencaps = gst_caps_new_full (
++ gst_caps_steal_structure (matched_caps, 0), NULL);
++ gboolean got_match = FALSE;
++
++ for (i = 0; i < capslist->len; i++)
++ {
++ GstCaps *intersect = gst_caps_intersect (stolencaps,
++ g_ptr_array_index (capslist, i));
++
++ if (gst_caps_is_empty (intersect))
++ {
++ gst_caps_unref (intersect);
++ }
++ else
++ {
++ got_match = TRUE;
++ gst_caps_unref (g_ptr_array_index (capslist, i));
++ g_ptr_array_index (capslist, i) = intersect;
++ }
++ }
++
++ if (got_match)
++ gst_caps_unref (stolencaps);
++ else
++ g_ptr_array_add (capslist, stolencaps);
+
+- list = create_codec_cap_list (factory, direction, list, cur_caps);
+- gst_caps_unref (cur_caps);
+ }
+ gst_caps_unref (matched_caps);
++
++ for (i = 0; i < capslist->len; i++)
++ list = create_codec_cap_list (factory, direction, list,
++ g_ptr_array_index (capslist, i));
++ g_ptr_array_unref (capslist);
+ }
+ }
+
+--
+cgit v0.9.0.3
diff --git a/extra/farstream-0.1/farstream-0.1.2-introspection-tag-order.patch b/extra/farstream-0.1/farstream-0.1.2-introspection-tag-order.patch
deleted file mode 100644
index 3283e1fd2..000000000
--- a/extra/farstream-0.1/farstream-0.1.2-introspection-tag-order.patch
+++ /dev/null
@@ -1,132 +0,0 @@
-From 39450457190675716c8e66700e35b05334a6a1a0 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Olivier=20Cr=C3=AAte?= <olivier.crete@collabora.com>
-Date: Fri, 25 May 2012 17:06:59 -0400
-Subject: [PATCH] Gtk-doc tags belong after the description
-
----
- farstream/fs-session.c | 16 +++++++---------
- farstream/fs-stream.c | 15 ++++++---------
- 2 files changed, 13 insertions(+), 18 deletions(-)
-
-diff --git a/farstream/fs-session.c b/farstream/fs-session.c
-index 80794d1..abb1bc3 100644
---- a/farstream/fs-session.c
-+++ b/farstream/fs-session.c
-@@ -270,9 +270,6 @@ fs_session_class_init (FsSessionClass *klass)
- /**
- * FsSession:codec-preferences:
- *
-- * Type: GLib.List(FsCodec)
-- * Transfer: full
-- *
- * This is the current preferences list for the local codecs. It is
- * set by the user to specify the codec options and priorities. The user may
- * change its value with fs_session_set_codec_preferences() at any time
-@@ -283,6 +280,9 @@ fs_session_class_init (FsSessionClass *klass)
- * or %FS_CODEC_ID_ANY. If the encoding name is "reserve-pt", then the
- * payload type of the codec will be "reserved" and not be used by any
- * dynamically assigned payload type.
-+ *
-+ * Type: GLib.List(FsCodec)
-+ * Transfer: full
- */
- g_object_class_install_property (gobject_class,
- PROP_CODEC_PREFERENCES,
-@@ -296,9 +296,6 @@ fs_session_class_init (FsSessionClass *klass)
- /**
- * FsSession:codecs:
- *
-- * Type: GLib.List(FsCodec)
-- * Transfer: full
-- *
- * This is the list of codecs used for this session. It will include the
- * codecs and payload type used to receive media on this session. It will
- * also include any configuration parameter that must be transmitted reliably
-@@ -317,6 +314,8 @@ fs_session_class_init (FsSessionClass *klass)
- * It is a #GList of #FsCodec. User must free this codec list using
- * fs_codec_list_destroy() when done.
- *
-+ * Type: GLib.List(FsCodec)
-+ * Transfer: full
- */
- g_object_class_install_property (gobject_class,
- PROP_CODECS,
-@@ -329,9 +328,6 @@ fs_session_class_init (FsSessionClass *klass)
- /**
- * FsSession:codecs-without-config:
- *
-- * Type: GLib.List(FsCodec)
-- * Transfer: full
-- *
- * This is the same list of codecs as #FsSession:codecs without
- * the configuration information that describes the data sent. It is suitable
- * for configurations where a list of codecs is shared by many senders.
-@@ -349,6 +345,8 @@ fs_session_class_init (FsSessionClass *klass)
- * It is a #GList of #FsCodec. User must free this codec list using
- * fs_codec_list_destroy() when done.
- *
-+ * Type: GLib.List(FsCodec)
-+ * Transfer: full
- */
- g_object_class_install_property (gobject_class,
- PROP_CODECS_WITHOUT_CONFIG,
-diff --git a/farstream/fs-stream.c b/farstream/fs-stream.c
-index b9e1320..110641d 100644
---- a/farstream/fs-stream.c
-+++ b/farstream/fs-stream.c
-@@ -176,13 +176,12 @@ fs_stream_class_init (FsStreamClass *klass)
- /**
- * FsStream:remote-codecs:
- *
-- * Type: GLib.List(FsCodec)
-- * Transfer: full
-- *
- * This is the list of remote codecs for this stream. They must be set by the
- * user as soon as they are known using fs_stream_set_remote_codecs()
- * (generally through external signaling). It is a #GList of #FsCodec.
- *
-+ * Type: GLib.List(FsCodec)
-+ * Transfer: full
- */
- g_object_class_install_property (gobject_class,
- PROP_REMOTE_CODECS,
-@@ -195,15 +194,14 @@ fs_stream_class_init (FsStreamClass *klass)
- /**
- * FsStream:negotiated-codecs:
- *
-- * Type: GLib.List(FsCodec)
-- * Transfer: full
-- *
- * This is the list of negotiatied codecs, it is the same list as the list
- * of #FsCodec from the parent #FsSession, except that the codec config data
- * has been replaced with the data from the remote codecs for this stream.
- * This is the list of #FsCodec used to receive data from this stream.
- * It is a #GList of #FsCodec.
- *
-+ * Type: GLib.List(FsCodec)
-+ * Transfer: full
- */
- g_object_class_install_property (gobject_class,
- PROP_NEGOTIATED_CODECS,
-@@ -216,9 +214,6 @@ fs_stream_class_init (FsStreamClass *klass)
- /**
- * FsStream:current-recv-codecs:
- *
-- * Type: GLib.List(FsCodec)
-- * Transfer: full
-- *
- * This is the list of codecs that have been received by this stream.
- * The user must free the list if fs_codec_list_destroy().
- * The "farstream-recv-codecs-changed" message is send on the #GstBus
-@@ -228,6 +223,8 @@ fs_stream_class_init (FsStreamClass *klass)
- * also be emitted if the pad already exists, but the source material that
- * will come to it is different.
- *
-+ * Type: GLib.List(FsCodec)
-+ * Transfer: full
- */
- g_object_class_install_property (gobject_class,
- PROP_CURRENT_RECV_CODECS,
---
-1.7.8.6
-
diff --git a/extra/farstream-0.1/rtp-memleak.patch b/extra/farstream-0.1/rtp-memleak.patch
new file mode 100644
index 000000000..1ec307258
--- /dev/null
+++ b/extra/farstream-0.1/rtp-memleak.patch
@@ -0,0 +1,24 @@
+From 10b3d38560ec53d980d13240559e6758c1113e21 Mon Sep 17 00:00:00 2001
+From: Havard Graff <havard.graff@gmail.com>
+Date: Thu, 21 Mar 2013 12:46:11 +0000
+Subject: fs-rtp-discover-codecs: plug memoryleak
+
+use g_list_delete_link to free the list as well
+---
+(limited to 'gst/fsrtpconference')
+
+diff --git a/gst/fsrtpconference/fs-rtp-discover-codecs.c b/gst/fsrtpconference/fs-rtp-discover-codecs.c
+index df316a4..c663225 100644
+--- a/gst/fsrtpconference/fs-rtp-discover-codecs.c
++++ b/gst/fsrtpconference/fs-rtp-discover-codecs.c
+@@ -536,7 +536,7 @@ remove_duplicates (GList *list)
+ if (gst_caps_is_equal (codec_cap1->rtp_caps, codec_cap2->rtp_caps))
+ {
+ codec_cap_free (codec_cap2);
+- walk1 = g_list_remove_link (walk1, walk2);
++ walk1 = g_list_delete_link (walk1, walk2);
+ goto again;
+ }
+ }
+--
+cgit v0.9.0.3