summaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
authorCliff Brake <cbrake@bec-systems.com>2007-06-19 18:11:13 +0000
committerCliff Brake <cbrake@bec-systems.com>2007-06-19 18:11:13 +0000
commiteea9477a88453e89d37859d970e8062d7fc0efd4 (patch)
treed8b3c7df18f17aa2b920f9e895a965d93aaf9dcb /packages
parent60398274eb238b5a2a3e0b596f0f0e5c00bc1c21 (diff)
parent9fb7cb53d84ce29d236f714cce314b60df1c9d56 (diff)
merge of '68f002bfdbf7c0cfe2a043b7055f5ae81fb10a62'
and 'e84ce1973d13c28e9abaac44f883e1bc85782101'
Diffstat (limited to 'packages')
-rw-r--r--packages/gstreamer/gst-common.inc32
-rw-r--r--packages/gstreamer/gst-plugins-bad_0.10.1.bb4
-rw-r--r--packages/gstreamer/gst-plugins-bad_0.10.3.bb2
-rw-r--r--packages/gstreamer/gst-plugins-base_0.10.11.bb9
-rw-r--r--packages/gstreamer/gst-plugins-base_0.10.12.bb6
-rw-r--r--packages/gstreamer/gst-plugins-base_0.10.5.bb3
-rw-r--r--packages/gstreamer/gst-plugins-base_0.10.6.bb4
-rw-r--r--packages/gstreamer/gst-plugins-base_0.10.7.bb9
-rw-r--r--packages/gstreamer/gst-plugins-good_0.10.2.bb4
-rw-r--r--packages/gstreamer/gst-plugins-good_0.10.4.bb4
-rw-r--r--packages/gstreamer/gst-plugins-good_0.10.5.bb2
-rw-r--r--packages/gstreamer/gst-plugins-ugly_0.10.2.bb4
-rw-r--r--packages/gstreamer/gst-plugins-ugly_0.10.4.bb5
-rw-r--r--packages/gstreamer/gst-plugins-ugly_0.10.5.bb2
-rw-r--r--packages/gstreamer/gst-plugins.inc13
-rw-r--r--packages/gstreamer/gst-plugins/.mtn2git_empty0
-rw-r--r--packages/gstreamer/gst-plugins/gst-plugins-0.8.7-httpsrc1.patch853
-rw-r--r--packages/gstreamer/gst-plugins/lame-autoconf.patch21
-rw-r--r--packages/gstreamer/gst-plugins/try-esdsink.patch22
-rw-r--r--packages/gstreamer/gstreamer.inc23
-rw-r--r--packages/gstreamer/gstreamer_0.10.11.bb29
-rw-r--r--packages/gstreamer/gstreamer_0.10.12.bb25
-rw-r--r--packages/gstreamer/gstreamer_0.10.4.bb3
-rw-r--r--packages/gstreamer/gstreamer_0.10.5.bb3
-rw-r--r--packages/gstreamer/gstreamer_0.10.6.bb3
-rw-r--r--packages/gstreamer/gstreamer_0.10.8.bb3
-rw-r--r--packages/tremor/tremor_20041119.bb10
27 files changed, 43 insertions, 1055 deletions
diff --git a/packages/gstreamer/gst-common.inc b/packages/gstreamer/gst-common.inc
new file mode 100644
index 0000000000..31629d7572
--- /dev/null
+++ b/packages/gstreamer/gst-common.inc
@@ -0,0 +1,32 @@
+SECTION = "multimedia"
+PRIORITY = "optional"
+LICENSE = "LGPL"
+HOMEPAGE = "http://www.gstreamer.net/"
+
+DEFAULT_PREFERENCE = "-1"
+
+inherit autotools pkgconfig
+
+do_stage() {
+ rm -rf ${STAGE_TEMP}
+ mkdir -p ${STAGE_TEMP}
+ oe_runmake DESTDIR="${STAGE_TEMP}" install
+ if [ -d ${STAGE_TEMP}/${includedir} ]; then
+ cp -fpPR ${STAGE_TEMP}/${includedir}/* ${STAGING_INCDIR}
+ fi
+ for i in $(find ${STAGE_TEMP}/${libdir} -name "*.la")
+ do
+
+ destdir=$(dirname $(echo $i | sed -e s,${STAGE_TEMP}/${libdir},${STAGING_LIBDIR},g))
+ oenote "Installing library $i to $destdir"
+ oe_libinstall -s -so $(basename $i .la) $destdir
+ done
+
+ if [ -d ${STAGE_TEMP}/${datadir}/aclocal ]; then
+ install -d ${STAGING_DATADIR}/aclocal
+ cp -fpPR ${STAGE_TEMP}/${datadir}/aclocal/* ${STAGING_DATADIR}/aclocal
+ fi
+ rm -rf ${STAGE_TEMP}
+}
+
+
diff --git a/packages/gstreamer/gst-plugins-bad_0.10.1.bb b/packages/gstreamer/gst-plugins-bad_0.10.1.bb
deleted file mode 100644
index 42f6df4d9d..0000000000
--- a/packages/gstreamer/gst-plugins-bad_0.10.1.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-require gst-plugins.inc
-
-DEPENDS += "gst-plugins-base"
-PR = "r2"
diff --git a/packages/gstreamer/gst-plugins-bad_0.10.3.bb b/packages/gstreamer/gst-plugins-bad_0.10.3.bb
index d8906733a5..51ce56dc1f 100644
--- a/packages/gstreamer/gst-plugins-bad_0.10.3.bb
+++ b/packages/gstreamer/gst-plugins-bad_0.10.3.bb
@@ -2,4 +2,4 @@ require gst-plugins.inc
DEPENDS += "gst-plugins-base"
SRC_URI += "file://cross-compile.patch;patch=1"
-PR = "r3"
+PR = "r4"
diff --git a/packages/gstreamer/gst-plugins-base_0.10.11.bb b/packages/gstreamer/gst-plugins-base_0.10.11.bb
deleted file mode 100644
index c2f022f283..0000000000
--- a/packages/gstreamer/gst-plugins-base_0.10.11.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-require gst-plugins.inc
-
-PROVIDES += "gst-plugins"
-PR = "r2"
-
-do_stage() {
- autotools_stage_all
-}
-
diff --git a/packages/gstreamer/gst-plugins-base_0.10.12.bb b/packages/gstreamer/gst-plugins-base_0.10.12.bb
index cb6b524a7c..69a9a6e515 100644
--- a/packages/gstreamer/gst-plugins-base_0.10.12.bb
+++ b/packages/gstreamer/gst-plugins-base_0.10.12.bb
@@ -1,9 +1,5 @@
require gst-plugins.inc
PROVIDES += "gst-plugins"
-PR = "r0"
-
-do_stage() {
- autotools_stage_all
-}
+PR = "r1"
diff --git a/packages/gstreamer/gst-plugins-base_0.10.5.bb b/packages/gstreamer/gst-plugins-base_0.10.5.bb
deleted file mode 100644
index afb0657964..0000000000
--- a/packages/gstreamer/gst-plugins-base_0.10.5.bb
+++ /dev/null
@@ -1,3 +0,0 @@
-require gst-plugins.inc
-
-PR = "r2"
diff --git a/packages/gstreamer/gst-plugins-base_0.10.6.bb b/packages/gstreamer/gst-plugins-base_0.10.6.bb
deleted file mode 100644
index 84bd2a9fe6..0000000000
--- a/packages/gstreamer/gst-plugins-base_0.10.6.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-require gst-plugins.inc
-
-PROVIDES_${PN} += "gst-plugins"
-PR = "r2"
diff --git a/packages/gstreamer/gst-plugins-base_0.10.7.bb b/packages/gstreamer/gst-plugins-base_0.10.7.bb
deleted file mode 100644
index c2f022f283..0000000000
--- a/packages/gstreamer/gst-plugins-base_0.10.7.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-require gst-plugins.inc
-
-PROVIDES += "gst-plugins"
-PR = "r2"
-
-do_stage() {
- autotools_stage_all
-}
-
diff --git a/packages/gstreamer/gst-plugins-good_0.10.2.bb b/packages/gstreamer/gst-plugins-good_0.10.2.bb
deleted file mode 100644
index 42f6df4d9d..0000000000
--- a/packages/gstreamer/gst-plugins-good_0.10.2.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-require gst-plugins.inc
-
-DEPENDS += "gst-plugins-base"
-PR = "r2"
diff --git a/packages/gstreamer/gst-plugins-good_0.10.4.bb b/packages/gstreamer/gst-plugins-good_0.10.4.bb
deleted file mode 100644
index 42f6df4d9d..0000000000
--- a/packages/gstreamer/gst-plugins-good_0.10.4.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-require gst-plugins.inc
-
-DEPENDS += "gst-plugins-base"
-PR = "r2"
diff --git a/packages/gstreamer/gst-plugins-good_0.10.5.bb b/packages/gstreamer/gst-plugins-good_0.10.5.bb
index be5dad78e7..e009145ead 100644
--- a/packages/gstreamer/gst-plugins-good_0.10.5.bb
+++ b/packages/gstreamer/gst-plugins-good_0.10.5.bb
@@ -2,4 +2,4 @@ require gst-plugins.inc
EXTRA_OECONF += "--with-check=no"
DEPENDS += "gst-plugins-base"
-PR = "r2"
+PR = "r3"
diff --git a/packages/gstreamer/gst-plugins-ugly_0.10.2.bb b/packages/gstreamer/gst-plugins-ugly_0.10.2.bb
deleted file mode 100644
index 42f6df4d9d..0000000000
--- a/packages/gstreamer/gst-plugins-ugly_0.10.2.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-require gst-plugins.inc
-
-DEPENDS += "gst-plugins-base"
-PR = "r2"
diff --git a/packages/gstreamer/gst-plugins-ugly_0.10.4.bb b/packages/gstreamer/gst-plugins-ugly_0.10.4.bb
deleted file mode 100644
index d8906733a5..0000000000
--- a/packages/gstreamer/gst-plugins-ugly_0.10.4.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-require gst-plugins.inc
-
-DEPENDS += "gst-plugins-base"
-SRC_URI += "file://cross-compile.patch;patch=1"
-PR = "r3"
diff --git a/packages/gstreamer/gst-plugins-ugly_0.10.5.bb b/packages/gstreamer/gst-plugins-ugly_0.10.5.bb
index d8906733a5..51ce56dc1f 100644
--- a/packages/gstreamer/gst-plugins-ugly_0.10.5.bb
+++ b/packages/gstreamer/gst-plugins-ugly_0.10.5.bb
@@ -2,4 +2,4 @@ require gst-plugins.inc
DEPENDS += "gst-plugins-base"
SRC_URI += "file://cross-compile.patch;patch=1"
-PR = "r3"
+PR = "r4"
diff --git a/packages/gstreamer/gst-plugins.inc b/packages/gstreamer/gst-plugins.inc
index b600eafcfe..2acf1997c8 100644
--- a/packages/gstreamer/gst-plugins.inc
+++ b/packages/gstreamer/gst-plugins.inc
@@ -1,16 +1,9 @@
+require gst-common.inc
DESCRIPTION = "Plugins for GStreamer"
-SECTION = "multimedia"
-PRIORITY = "optional"
DEPENDS = "gstreamer libmikmod libmad liboil libogg tremor libvorbis libid3tag esound"
PACKAGES_DYNAMIC = "gst-plugin-*"
-# until we have decided for a final naming scheme,
-# keep using version 0.8
-DEFAULT_PREFERENCE = "-1"
-
-inherit autotools pkgconfig
-
SRC_URI = "http://gstreamer.freedesktop.org/src/${PN}/${PN}-${PV}.tar.bz2"
EXTRA_OECONF = "--disable-aalib --disable-shout2 --disable-sdl"
@@ -27,8 +20,4 @@ python populate_packages_prepend () {
do_split_packages(d, gst_libdir, '^libgst(.*)\.l?a$', 'gst-plugin-%s-dev', 'GStreamer plugin for %s (development files)')
}
-#do_stage() {
-# autotools_stage_all
-#}
-
ALLOW_EMPTY = "1"
diff --git a/packages/gstreamer/gst-plugins/.mtn2git_empty b/packages/gstreamer/gst-plugins/.mtn2git_empty
deleted file mode 100644
index e69de29bb2..0000000000
--- a/packages/gstreamer/gst-plugins/.mtn2git_empty
+++ /dev/null
diff --git a/packages/gstreamer/gst-plugins/gst-plugins-0.8.7-httpsrc1.patch b/packages/gstreamer/gst-plugins/gst-plugins-0.8.7-httpsrc1.patch
deleted file mode 100644
index 59b9ebbf73..0000000000
--- a/packages/gstreamer/gst-plugins/gst-plugins-0.8.7-httpsrc1.patch
+++ /dev/null
@@ -1,853 +0,0 @@
-diff -urN gst-plugins-0.8.7/gst/tcp/gsthttpclientsrc.c gst-plugins-0.8.7-httpsrc1/gst/tcp/gsthttpclientsrc.c
---- gst-plugins-0.8.7/gst/tcp/gsthttpclientsrc.c 1969-12-31 19:00:00.000000000 -0500
-+++ gst-plugins-0.8.7-httpsrc1/gst/tcp/gsthttpclientsrc.c 2005-03-02 11:08:24.546323513 -0500
-@@ -0,0 +1,655 @@
-+/* GStreamer
-+ * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
-+ * Copyright (C) <2004> Thomas Vander Stichele <thomas at apestaart dot org>
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Library General Public
-+ * License as published by the Free Software Foundation; either
-+ * version 2 of the License, or (at your option) any later version.
-+ *
-+ * This library is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ * Library General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU Library General Public
-+ * License along with this library; if not, write to the
-+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-+ * Boston, MA 02111-1307, USA.
-+ */
-+
-+
-+#ifdef HAVE_CONFIG_H
-+#include "config.h"
-+#endif
-+
-+#include <gst/gst-i18n-plugin.h>
-+#include "gsttcp.h"
-+#include "gsthttpclientsrc.h"
-+#include <string.h> /* memset */
-+#include <unistd.h>
-+#include <sys/types.h>
-+#include <sys/socket.h>
-+#include <netinet/in.h>
-+#include <arpa/inet.h>
-+#include <sys/ioctl.h>
-+#include <netdb.h>
-+
-+#ifdef HAVE_FIONREAD_IN_SYS_FILIO
-+#include <sys/filio.h>
-+#endif
-+
-+GST_DEBUG_CATEGORY (httpclientsrc_debug);
-+#define GST_CAT_DEFAULT httpclientsrc_debug
-+
-+#define MAX_READ_SIZE 4 * 1024
-+
-+/* elementfactory information */
-+static GstElementDetails gst_httpclientsrc_details =
-+GST_ELEMENT_DETAILS ("HTTP Client source",
-+ "Source/Network",
-+ "Receive data as a client over the network via HTTP",
-+ "Jamey Hicks <jamey dot hicks at hp dot com> based on tcpclientsrc by Thomas Vander Stichele <thomas at apestaart dot org>");
-+
-+/* HttpclientSrc signals and args */
-+enum
-+{
-+ LAST_SIGNAL
-+};
-+
-+enum
-+{
-+ ARG_0,
-+ ARG_LOCATION,
-+ ARG_METHOD,
-+ ARG_PROTOCOL
-+};
-+
-+#define HTTP_DEFAULT_METHOD "GET"
-+
-+static void gst_httpclientsrc_base_init (gpointer g_class);
-+static void gst_httpclientsrc_class_init (GstHttpclientSrc * klass);
-+static void gst_httpclientsrc_init (GstHttpclientSrc * httpclientsrc);
-+
-+static GstCaps *gst_httpclientsrc_getcaps (GstPad * pad);
-+
-+static GstData *gst_httpclientsrc_get (GstPad * pad);
-+static GstElementStateReturn gst_httpclientsrc_change_state (GstElement *
-+ element);
-+
-+static void gst_httpclientsrc_set_property (GObject * object, guint prop_id,
-+ const GValue * value, GParamSpec * pspec);
-+static void gst_httpclientsrc_get_property (GObject * object, guint prop_id,
-+ GValue * value, GParamSpec * pspec);
-+static void gst_httpclientsrc_set_clock (GstElement * element, GstClock * clock);
-+
-+static GstElementClass *parent_class = NULL;
-+
-+/*static guint gst_httpclientsrc_signals[LAST_SIGNAL] = { 0 }; */
-+
-+GType
-+gst_httpclientsrc_get_type (void)
-+{
-+ static GType httpclientsrc_type = 0;
-+
-+
-+ if (!httpclientsrc_type) {
-+ static const GTypeInfo httpclientsrc_info = {
-+ sizeof (GstHttpclientSrcClass),
-+ gst_httpclientsrc_base_init,
-+ NULL,
-+ (GClassInitFunc) gst_httpclientsrc_class_init,
-+ NULL,
-+ NULL,
-+ sizeof (GstHttpclientSrc),
-+ 0,
-+ (GInstanceInitFunc) gst_httpclientsrc_init,
-+ NULL
-+ };
-+
-+ httpclientsrc_type =
-+ g_type_register_static (GST_TYPE_ELEMENT, "GstHttpclientSrc",
-+ &httpclientsrc_info, 0);
-+ }
-+ return httpclientsrc_type;
-+}
-+
-+static void
-+gst_httpclientsrc_base_init (gpointer g_class)
-+{
-+ GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
-+
-+ gst_element_class_set_details (element_class, &gst_httpclientsrc_details);
-+}
-+
-+static void
-+gst_httpclientsrc_class_init (GstHttpclientSrc * klass)
-+{
-+ GObjectClass *gobject_class;
-+ GstElementClass *gstelement_class;
-+
-+ gobject_class = (GObjectClass *) klass;
-+ gstelement_class = (GstElementClass *) klass;
-+
-+ parent_class = g_type_class_ref (GST_TYPE_ELEMENT);
-+
-+ g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_LOCATION,
-+ g_param_spec_string ("location", "Source Location (URL)",
-+ "URL of the data to read", NULL, G_PARAM_READWRITE));
-+ g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_METHOD,
-+ g_param_spec_string ("method", "HTTP METHOD, defaults to GET",
-+ "Method of the read request", NULL, G_PARAM_READWRITE));
-+ g_object_class_install_property (gobject_class, ARG_PROTOCOL,
-+ g_param_spec_enum ("protocol", "Protocol", "The protocol to wrap data in",
-+ GST_TYPE_TCP_PROTOCOL_TYPE, GST_TCP_PROTOCOL_TYPE_NONE,
-+ G_PARAM_READWRITE));
-+
-+ gobject_class->set_property = gst_httpclientsrc_set_property;
-+ gobject_class->get_property = gst_httpclientsrc_get_property;
-+
-+ gstelement_class->change_state = gst_httpclientsrc_change_state;
-+ gstelement_class->set_clock = gst_httpclientsrc_set_clock;
-+
-+ GST_DEBUG_CATEGORY_INIT (httpclientsrc_debug, "httpclientsrc", 0,
-+ "HTTP Client Source");
-+}
-+
-+static void
-+gst_httpclientsrc_set_clock (GstElement * element, GstClock * clock)
-+{
-+ GstHttpclientSrc *httpclientsrc;
-+
-+ httpclientsrc = GST_HTTPCLIENTSRC (element);
-+
-+ httpclientsrc->clock = clock;
-+}
-+
-+static void
-+gst_httpclientsrc_init (GstHttpclientSrc * this)
-+{
-+ /* create the src pad */
-+ this->srcpad = gst_pad_new ("src", GST_PAD_SRC);
-+ gst_element_add_pad (GST_ELEMENT (this), this->srcpad);
-+ gst_pad_set_get_function (this->srcpad, gst_httpclientsrc_get);
-+ gst_pad_set_getcaps_function (this->srcpad, gst_httpclientsrc_getcaps);
-+
-+ this->port = TCP_DEFAULT_PORT;
-+ this->method = g_strdup(HTTP_DEFAULT_METHOD);
-+ this->location = NULL;
-+ this->host = NULL;
-+ this->clock = NULL;
-+ this->sock_fd = -1;
-+ this->protocol = GST_TCP_PROTOCOL_TYPE_NONE;
-+ this->curoffset = 0;
-+ this->caps = NULL;
-+
-+ GST_FLAG_UNSET (this, GST_HTTPCLIENTSRC_OPEN);
-+}
-+
-+static GstCaps *
-+gst_httpclientsrc_getcaps (GstPad * pad)
-+{
-+ GstHttpclientSrc *src;
-+ GstCaps *caps = NULL;
-+
-+ src = GST_HTTPCLIENTSRC (GST_OBJECT_PARENT (pad));
-+
-+ if (!GST_FLAG_IS_SET (src, GST_HTTPCLIENTSRC_OPEN))
-+ caps = gst_caps_new_any ();
-+ else if (src->caps)
-+ caps = gst_caps_copy (src->caps);
-+ else
-+ caps = gst_caps_new_any ();
-+ GST_DEBUG_OBJECT (src, "returning caps %" GST_PTR_FORMAT, caps);
-+ g_assert (GST_IS_CAPS (caps));
-+ return caps;
-+}
-+
-+static GstData *
-+gst_httpclientsrc_get (GstPad * pad)
-+{
-+ GstHttpclientSrc *src;
-+ size_t readsize;
-+ int ret;
-+
-+ GstData *data = NULL;
-+ GstBuffer *buf = NULL;
-+
-+ g_return_val_if_fail (pad != NULL, NULL);
-+ g_return_val_if_fail (GST_IS_PAD (pad), NULL);
-+ src = GST_HTTPCLIENTSRC (GST_OBJECT_PARENT (pad));
-+ g_return_val_if_fail (GST_FLAG_IS_SET (src, GST_HTTPCLIENTSRC_OPEN), NULL);
-+
-+ /* try to negotiate here */
-+ if (!gst_pad_is_negotiated (pad)) {
-+ if (GST_PAD_LINK_FAILED (gst_pad_renegotiate (pad))) {
-+ GST_ELEMENT_ERROR (src, CORE, NEGOTIATION, (NULL), GST_ERROR_SYSTEM);
-+ gst_buffer_unref (buf);
-+ return GST_DATA (gst_event_new (GST_EVENT_EOS));
-+ }
-+ }
-+
-+ /* if we have a left over buffer after a discont, return that */
-+ if (src->buffer_after_discont) {
-+ buf = src->buffer_after_discont;
-+ GST_LOG_OBJECT (src,
-+ "Returning buffer after discont of size %d, ts %"
-+ GST_TIME_FORMAT ", dur %" GST_TIME_FORMAT
-+ ", offset %" G_GINT64_FORMAT ", offset_end %" G_GINT64_FORMAT,
-+ GST_BUFFER_SIZE (buf), GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)),
-+ GST_TIME_ARGS (GST_BUFFER_DURATION (buf)),
-+ GST_BUFFER_OFFSET (buf), GST_BUFFER_OFFSET_END (buf));
-+ src->buffer_after_discont = NULL;
-+ return GST_DATA (buf);
-+ }
-+
-+ /* read the buffer header if we're using a protocol */
-+ switch (src->protocol) {
-+ fd_set testfds;
-+
-+ case GST_TCP_PROTOCOL_TYPE_NONE:
-+ /* do a blocking select on the socket */
-+ FD_ZERO (&testfds);
-+ FD_SET (src->sock_fd, &testfds);
-+ ret = select (src->sock_fd + 1, &testfds, (fd_set *) 0, (fd_set *) 0, 0);
-+ /* no action (0) is an error too in our case */
-+ if (ret <= 0) {
-+ GST_ELEMENT_ERROR (src, RESOURCE, READ, (NULL),
-+ ("select failed: %s", g_strerror (errno)));
-+ return GST_DATA (gst_event_new (GST_EVENT_EOS));
-+ }
-+
-+ /* ask how much is available for reading on the socket */
-+ ret = ioctl (src->sock_fd, FIONREAD, &readsize);
-+ if (ret < 0) {
-+ GST_ELEMENT_ERROR (src, RESOURCE, READ, (NULL),
-+ ("ioctl failed: %s", g_strerror (errno)));
-+ return GST_DATA (gst_event_new (GST_EVENT_EOS));
-+ }
-+ GST_LOG_OBJECT (src, "ioctl says %d bytes available", readsize);
-+ buf = gst_buffer_new_and_alloc (readsize);
-+ break;
-+ case GST_TCP_PROTOCOL_TYPE_GDP:
-+ if (!(data = gst_tcp_gdp_read_header (GST_ELEMENT (src), src->sock_fd))) {
-+ GST_ELEMENT_ERROR (src, RESOURCE, READ, (NULL),
-+ ("Could not read data header through GDP"));
-+ return GST_DATA (gst_event_new (GST_EVENT_EOS));
-+ }
-+ if (GST_IS_EVENT (data))
-+ return data;
-+ buf = GST_BUFFER (data);
-+
-+ GST_LOG_OBJECT (src, "Going to read data from socket into buffer %p",
-+ buf);
-+ /* use this new buffer to read data into */
-+ readsize = GST_BUFFER_SIZE (buf);
-+ break;
-+ default:
-+ g_warning ("Unhandled protocol type");
-+ break;
-+ }
-+
-+ GST_LOG_OBJECT (src, "Reading %d bytes", readsize);
-+ ret = gst_tcp_socket_read (src->sock_fd, GST_BUFFER_DATA (buf), readsize);
-+ if (ret < 0) {
-+ GST_ELEMENT_ERROR (src, RESOURCE, READ, (NULL), GST_ERROR_SYSTEM);
-+ gst_buffer_unref (buf);
-+ return GST_DATA (gst_event_new (GST_EVENT_EOS));
-+ }
-+
-+ /* if we read 0 bytes, and we're blocking, we hit eos */
-+ if (ret == 0) {
-+ GST_DEBUG ("blocking read returns 0, EOS");
-+ gst_buffer_unref (buf);
-+ gst_element_set_eos (GST_ELEMENT (src));
-+ return GST_DATA (gst_event_new (GST_EVENT_EOS));
-+ }
-+
-+ readsize = ret;
-+ GST_BUFFER_SIZE (buf) = readsize;
-+ GST_BUFFER_MAXSIZE (buf) = readsize;
-+
-+ /* FIXME: we could decide to set OFFSET and OFFSET_END for non-protocol
-+ * streams to mean the bytes processed */
-+
-+ /* if this is our first buffer, we need to send a discont with the
-+ * given timestamp or the current offset, and store the buffer for
-+ * the next iteration through the get loop */
-+ if (src->send_discont) {
-+ GstClockTime timestamp;
-+ GstEvent *event;
-+
-+ src->send_discont = FALSE;
-+ src->buffer_after_discont = buf;
-+ /* if the timestamp is valid, send a timed discont
-+ * taking into account the incoming buffer's timestamps */
-+ timestamp = GST_BUFFER_TIMESTAMP (buf);
-+ if (GST_CLOCK_TIME_IS_VALID (timestamp)) {
-+ GST_DEBUG_OBJECT (src,
-+ "sending discontinuous with timestamp %" GST_TIME_FORMAT,
-+ GST_TIME_ARGS (timestamp));
-+ event =
-+ gst_event_new_discontinuous (FALSE, GST_FORMAT_TIME, timestamp, NULL);
-+ return GST_DATA (event);
-+ }
-+ /* otherwise, send an offset discont */
-+ GST_DEBUG_OBJECT (src, "sending discontinuous with offset %d",
-+ src->curoffset);
-+ event =
-+ gst_event_new_discontinuous (FALSE, GST_FORMAT_BYTES, src->curoffset,
-+ NULL);
-+ return GST_DATA (event);
-+ }
-+
-+ src->curoffset += readsize;
-+ GST_LOG_OBJECT (src,
-+ "Returning buffer from _get of size %d, ts %"
-+ GST_TIME_FORMAT ", dur %" GST_TIME_FORMAT
-+ ", offset %" G_GINT64_FORMAT ", offset_end %" G_GINT64_FORMAT,
-+ GST_BUFFER_SIZE (buf), GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)),
-+ GST_TIME_ARGS (GST_BUFFER_DURATION (buf)),
-+ GST_BUFFER_OFFSET (buf), GST_BUFFER_OFFSET_END (buf));
-+ return GST_DATA (buf);
-+}
-+
-+static void
-+gst_httpclientsrc_set_property (GObject * object, guint prop_id,
-+ const GValue * value, GParamSpec * pspec)
-+{
-+ GstHttpclientSrc *httpclientsrc;
-+
-+
-+ /* it's not null if we got it, but it might not be ours */
-+ g_return_if_fail (GST_IS_HTTPCLIENTSRC (object));
-+ httpclientsrc = GST_HTTPCLIENTSRC (object);
-+
-+ GST_DEBUG_OBJECT (httpclientsrc, "setting property %d", prop_id);
-+
-+ switch (prop_id) {
-+ case ARG_LOCATION: {
-+ gchar *pathstart = NULL;
-+ gchar *location = NULL;
-+ gchar *hostport = NULL;
-+ gchar *portstart = NULL;
-+ int locationlen;
-+ g_free (httpclientsrc->location);
-+ g_free (httpclientsrc->host);
-+ g_free (httpclientsrc->path);
-+ httpclientsrc->location = location = g_strdup (g_value_get_string (value));
-+ GST_DEBUG_OBJECT (httpclientsrc, "setting location=%s", location);
-+
-+ if (strncmp(location, "http://", 7) != 0)
-+ return;
-+ locationlen = strlen(location);
-+ hostport = location + 7;
-+ GST_DEBUG_OBJECT (httpclientsrc, " hostport=%s", hostport);
-+
-+ pathstart = strchr(hostport, '/');
-+ GST_DEBUG_OBJECT (httpclientsrc, " pathstart=%s", pathstart);
-+
-+ if (pathstart) {
-+ httpclientsrc->path = g_strdup(pathstart);
-+ } else {
-+ httpclientsrc->path = g_strdup("/");
-+ pathstart = location+locationlen;
-+ }
-+ hostport = g_strndup(hostport, pathstart - hostport);
-+ portstart = strrchr(hostport, ':');
-+ GST_DEBUG_OBJECT (httpclientsrc, " hostport=%s portstart=%s", hostport, portstart);
-+ if (portstart != NULL) {
-+ httpclientsrc->host = g_strndup(hostport, portstart - hostport);
-+ httpclientsrc->port = strtoul(portstart+1, NULL, 0);
-+ g_free(hostport);
-+ } else {
-+ httpclientsrc->host = hostport;
-+ httpclientsrc->port = 80;
-+ }
-+ GST_DEBUG_OBJECT (httpclientsrc, " host=%s port=%d path=%s", httpclientsrc->host, httpclientsrc->port, httpclientsrc->path);
-+ } break;
-+ case ARG_METHOD:
-+ g_free (httpclientsrc->method);
-+ httpclientsrc->method = g_strdup (g_value_get_string (value));
-+ break;
-+ case ARG_PROTOCOL:
-+ httpclientsrc->protocol = g_value_get_enum (value);
-+ break;
-+
-+ default:
-+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-+ break;
-+ }
-+}
-+
-+static void
-+gst_httpclientsrc_get_property (GObject * object, guint prop_id, GValue * value,
-+ GParamSpec * pspec)
-+{
-+ GstHttpclientSrc *httpclientsrc;
-+
-+ g_return_if_fail (GST_IS_HTTPCLIENTSRC (object));
-+ httpclientsrc = GST_HTTPCLIENTSRC (object);
-+
-+ switch (prop_id) {
-+ case ARG_LOCATION:
-+ g_value_set_string (value, httpclientsrc->location);
-+ break;
-+ case ARG_METHOD:
-+ g_value_set_string (value, httpclientsrc->method);
-+ break;
-+ case ARG_PROTOCOL:
-+ g_value_set_enum (value, httpclientsrc->protocol);
-+ break;
-+
-+ default:
-+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-+ break;
-+ }
-+}
-+
-+/* create a socket for connecting to remote server */
-+static gboolean
-+gst_httpclientsrc_init_receive (GstHttpclientSrc * this)
-+{
-+ int ret;
-+ gchar ip[256];
-+ struct addrinfo *addrinfo, *top_addrinfo;
-+ int addr_family;
-+ gchar *request = NULL;
-+
-+ GST_DEBUG_OBJECT (this, "getaddrinfo %s", this->host);
-+ ret = getaddrinfo(this->host, "http", NULL, &addrinfo);
-+ top_addrinfo = addrinfo;
-+
-+ retry:
-+ this->addr_family = addr_family = addrinfo->ai_family;
-+ this->server_addrlen = addrinfo->ai_addrlen;
-+ memset(&this->server_sockaddr, 0, sizeof(this->server_sockaddr));
-+ memcpy(&this->server_sockaddr, addrinfo->ai_addr, addrinfo->ai_addrlen);
-+
-+ /* create receiving client socket */
-+ GST_DEBUG_OBJECT (this, "opening receiving client socket to %s:%d\n",
-+ this->host, this->port);
-+ if ((this->sock_fd = socket (this->addr_family, SOCK_STREAM, 0)) == -1) {
-+ GST_ELEMENT_ERROR (this, RESOURCE, OPEN_READ, (NULL), GST_ERROR_SYSTEM);
-+ return FALSE;
-+ }
-+ GST_DEBUG_OBJECT (this, "opened receiving client socket with fd %d",
-+ this->sock_fd);
-+
-+ /* look up name if we need to */
-+ GST_DEBUG_OBJECT (this, "IP address for host %s is %s", this->host, ip);
-+
-+ /* fill in port */
-+ switch (this->addr_family) {
-+ case AF_INET:
-+ ((struct sockaddr_in *)&this->server_sockaddr)->sin_port = htons(this->port);
-+ inet_ntop(this->addr_family, &(((struct sockaddr_in *)&this->server_sockaddr)->sin_addr), ip, sizeof(ip));
-+ break;
-+ case AF_INET6:
-+ ((struct sockaddr_in6 *)&this->server_sockaddr)->sin6_port = htons(this->port);
-+ inet_ntop(this->addr_family, &(((struct sockaddr_in6 *)&this->server_sockaddr)->sin6_addr), ip, sizeof(ip));
-+ break;
-+ }
-+ if (this->addr_family == AF_INET6) {
-+ int offset = 0;
-+ int i;
-+ struct in6_addr *in6_addr = &(((struct sockaddr_in6 *)&this->server_sockaddr)->sin6_addr);
-+ for (i = 0; i < sizeof(struct in6_addr); i++) {
-+ int b = in6_addr->s6_addr[i];
-+ offset += sprintf(ip+offset, ":%02x", b);
-+ }
-+ }
-+
-+ /* connect to server */
-+ GST_DEBUG_OBJECT (this, "connecting to server family=%d ip=%s port=%d sockaddrlen=%d",
-+ this->addr_family, ip, this->port, this->server_addrlen);
-+ ret = connect (this->sock_fd, (struct sockaddr *) &this->server_sockaddr, this->server_addrlen);
-+
-+ if (ret) {
-+ switch (errno) {
-+ case ECONNREFUSED:
-+ GST_ELEMENT_ERROR (this, RESOURCE, OPEN_READ,
-+ (_("Connection to %s:%d refused."), this->host, this->port),
-+ (NULL));
-+ if (addrinfo->ai_next == NULL)
-+ return FALSE;
-+ break;
-+ default:
-+ GST_ELEMENT_ERROR (this, RESOURCE, OPEN_READ, (NULL),
-+ ("connect to %s:%d failed: %s", this->host, this->port,
-+ g_strerror (errno)));
-+ if (addrinfo->ai_next == NULL)
-+ return FALSE;
-+ break;
-+ }
-+ addrinfo = addrinfo->ai_next;
-+ if (addrinfo) {
-+ GST_DEBUG_OBJECT(this, "retrying with addrinfo %p", addrinfo);
-+ goto retry;
-+ }
-+ }
-+
-+ /* send request and headers */