Hello community,
here is the log from the commit of package gstreamer-0_10-plugins-good for
openSUSE:Factory
checked in at Mon Apr 11 09:45:21 CEST 2011.
--------
--- GNOME/gstreamer-0_10-plugins-good/gstreamer-0_10-plugins-good.changes
2011-02-01 11:41:14.000000000 +0100
+++
/mounts/work_src_done/STABLE/gstreamer-0_10-plugins-good/gstreamer-0_10-plugins-good.changes
2011-04-08 23:35:09.000000000 +0200
@@ -1,0 +2,24 @@
+Fri Apr 8 16:33:27 CDT 2011 - [email protected]
+
+- Build against libv4l, so libv4lconvert.so gets loaded, which
+ gives Cheese et al using camerabin support for old,
+ JPEG-producing webcams (bnc#674287)
+
+-------------------------------------------------------------------
+Wed Apr 6 15:13:33 UTC 2011 - [email protected]
+
+- Updated to version 0.10.28:
+ * Fix build issue with new kernels
+
+-------------------------------------------------------------------
+Wed Apr 6 15:07:58 UTC 2011 - [email protected]
+
+- Increase the pulsesink chunk size to the buffer size for more
+ smooth playback (bnc#684781)
+
+-------------------------------------------------------------------
+Sat Mar 5 09:28:38 UTC 2011 - [email protected]
+
+- added possible fix for gstreamer crashes (bnc#673914, bgo#641330)
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
gst-plugins-good-0.10.27.tar.bz2
New:
----
gst-plugins-good-0.10.28.tar.bz2
gst-pulsesink-bufsize.diff
gstreamer-0_10-plugins-good-fix-tag-list-handling-issue.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gstreamer-0_10-plugins-good.spec ++++++
--- /var/tmp/diff_new_pack.8gfX5O/_old 2011-04-11 09:43:44.000000000 +0200
+++ /var/tmp/diff_new_pack.8gfX5O/_new 2011-04-11 09:43:44.000000000 +0200
@@ -23,7 +23,7 @@
# support completely:
%define ENABLE_AALIB 1
%define _name gst-plugins-good
-Version: 0.10.27
+Version: 0.10.28
Release: 1
%define gst_branch 0.10
%if 0%{?ENABLE_AALIB}
@@ -50,6 +50,7 @@
BuildRequires: libpulse-devel
BuildRequires: libshout-devel
BuildRequires: libtheora-devel
+BuildRequires: libv4l-devel
BuildRequires: libvorbis-devel
BuildRequires: ftgl-devel
BuildRequires: orc
@@ -68,6 +69,10 @@
License: LGPLv2.1+
Group: Productivity/Multimedia/Other
Source0:
http://gstreamer.freedesktop.org/src/gst-plugins-good/%{_name}-%{version}.tar.bz2
+# PATCH-FIX-UPSTREAM
gstreamer-0_10-plugins-good-fix-tag-list-handling-issue.patch bnc673914,
bgo641330 [email protected] -- possible fix for gstreamer crashes in Amarok
+Patch0: gstreamer-0_10-plugins-good-fix-tag-list-handling-issue.patch
+# PATCH-FIX-UPSTREAM gst-plusesink-bufsize.diff bnc684781 [email protected] --
increase the pulsesink transfer chunk size
+Patch1: gst-pulsesink-bufsize.diff
Url: http://gstreamer.freedesktop.org/
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Summary: GStreamer Streaming-Media Framework Plug-Ins
@@ -148,6 +153,8 @@
%prep
chmod 0644 %{S:0}
%setup -q -n %{_name}-%{version}
+%patch0 -p1
+%patch1 -p1
translation-update-upstream po gst-plugins-good-0.10
%build
++++++ gst-plugins-good-0.10.27.tar.bz2 -> gst-plugins-good-0.10.28.tar.bz2
++++++
++++ 7288 lines of diff (skipped)
++++++ gst-pulsesink-bufsize.diff ++++++
>From 1e2c1467ae042a3c6bb1a6bc0c07aeff13ec5edb Mon Sep 17 00:00:00 2001
From: David Henningsson <[email protected]>
Date: Mon, 31 Jan 2011 04:58:36 +0000
Subject: Pulsesink: Allow chunks up to bufsize instead of segsize
By allowing larger chunks to be sent, PulseAudio will have a
lower CPU usage. This is especially important on low-end machines,
where PulseAudio can crash if packets are coming in at a higher
rate than PulseAudio can process them.
Signed-off-by: David Henningsson <[email protected]>
---
diff --git a/ext/pulse/pulsesink.c b/ext/pulse/pulsesink.c
index 9bebfec..295d93f 100644
--- a/ext/pulse/pulsesink.c
+++ b/ext/pulse/pulsesink.c
@@ -1339,11 +1339,11 @@ gst_pulseringbuffer_commit (GstRingBuffer * buf,
guint64 * sample,
towrite = out_samples * bps;
- /* Only ever write segsize bytes at once. This will
- * also limit the PA shm buffer to segsize
+ /* Only ever write bufsize bytes at once. This will
+ * also limit the PA shm buffer to bufsize
*/
- if (towrite > buf->spec.segsize)
- towrite = buf->spec.segsize;
+ if (towrite > bufsize)
+ towrite = bufsize;
if ((pbuf->m_writable < towrite) || (offset != pbuf->m_lastoffset)) {
/* if no room left or discontinuity in offset,
@@ -1392,9 +1392,9 @@ gst_pulseringbuffer_commit (GstRingBuffer * buf, guint64
* sample,
}
/* make sure we only buffer up latency-time samples */
- if (pbuf->m_writable > buf->spec.segsize) {
+ if (pbuf->m_writable > bufsize) {
/* limit buffering to latency-time value */
- pbuf->m_writable = buf->spec.segsize;
+ pbuf->m_writable = bufsize;
GST_LOG_OBJECT (psink, "Limiting buffering to %" G_GSIZE_FORMAT,
pbuf->m_writable);
@@ -1413,9 +1413,9 @@ gst_pulseringbuffer_commit (GstRingBuffer * buf, guint64
* sample,
pbuf->m_writable);
/* Just to make sure that we didn't get more than requested */
- if (pbuf->m_writable > buf->spec.segsize) {
+ if (pbuf->m_writable > bufsize) {
/* limit buffering to latency-time value */
- pbuf->m_writable = buf->spec.segsize;
+ pbuf->m_writable = bufsize;
}
}
--
cgit v0.8.3-6-g21f6
++++++ gstreamer-0_10-plugins-good-fix-tag-list-handling-issue.patch ++++++
diff --git a/gst/icydemux/gsticydemux.c b/gst/icydemux/gsticydemux.c
index 5965500..2582959 100644
--- a/gst/icydemux/gsticydemux.c
+++ b/gst/icydemux/gsticydemux.c
@@ -301,6 +301,7 @@ gst_icydemux_unicodify (const gchar * str)
return gst_tag_freeform_string_to_utf8 (str, -1, env_vars);
}
+/* takes ownership of tag list */
static gboolean
gst_icydemux_tag_found (GstICYDemux * icydemux, GstTagList * tags)
{
@@ -309,10 +310,13 @@ gst_icydemux_tag_found (GstICYDemux * icydemux,
GstTagList * tags)
return gst_icydemux_send_tag_event (icydemux, tags);
/* if we haven't a source pad yet, cache the tags */
- if (!icydemux->cached_tags)
- icydemux->cached_tags = gst_tag_list_new ();
-
- gst_tag_list_insert (icydemux->cached_tags, tags, GST_TAG_MERGE_REPLACE_ALL);
+ if (!icydemux->cached_tags) {
+ icydemux->cached_tags = tags;
+ } else {
+ gst_tag_list_insert (icydemux->cached_tags, tags,
+ GST_TAG_MERGE_REPLACE_ALL);
+ gst_tag_list_free (tags);
+ }
return TRUE;
}
@@ -320,12 +324,11 @@ gst_icydemux_tag_found (GstICYDemux * icydemux,
GstTagList * tags)
static void
gst_icydemux_parse_and_send_tags (GstICYDemux * icydemux)
{
- GstTagList *tags = gst_tag_list_new ();
+ GstTagList *tags;
const guint8 *data;
int length, i;
gchar *buffer;
gchar **strings;
- gboolean found_tag = FALSE;
length = gst_adapter_available (icydemux->meta_adapter);
@@ -333,10 +336,9 @@ gst_icydemux_parse_and_send_tags (GstICYDemux * icydemux)
/* Now, copy this to a buffer where we can NULL-terminate it to make things
* a bit easier, then do that parsing. */
- buffer = g_malloc (length + 1);
- memcpy (buffer, data, length);
- buffer[length] = 0;
+ buffer = g_strndup ((const gchar *) data, length);
+ tags = gst_tag_list_new ();
strings = g_strsplit (buffer, "';", 0);
for (i = 0; strings[i]; i++) {
@@ -347,7 +349,6 @@ gst_icydemux_parse_and_send_tags (GstICYDemux * icydemux)
gst_tag_list_add (tags, GST_TAG_MERGE_REPLACE, GST_TAG_TITLE,
title, NULL);
g_free (title);
- found_tag = TRUE;
}
} else if (!g_ascii_strncasecmp (strings[i], "StreamUrl=", 10)) {
char *url = gst_icydemux_unicodify (strings[i] + 11);
@@ -356,7 +357,6 @@ gst_icydemux_parse_and_send_tags (GstICYDemux * icydemux)
gst_tag_list_add (tags, GST_TAG_MERGE_REPLACE, GST_TAG_HOMEPAGE,
url, NULL);
g_free (url);
- found_tag = TRUE;
}
}
}
@@ -365,8 +365,10 @@ gst_icydemux_parse_and_send_tags (GstICYDemux * icydemux)
g_free (buffer);
gst_adapter_clear (icydemux->meta_adapter);
- if (found_tag)
+ if (!gst_tag_list_is_empty (tags))
gst_icydemux_tag_found (icydemux, tags);
+ else
+ gst_tag_list_free (tags);
}
static gboolean
@@ -379,7 +381,7 @@ gst_icydemux_handle_event (GstPad * pad, GstEvent * event)
GstTagList *tags;
gst_event_parse_tag (event, &tags);
- result = gst_icydemux_tag_found (icydemux, tags);
+ result = gst_icydemux_tag_found (icydemux, gst_tag_list_copy (tags));
gst_event_unref (event);
return result;
}
@@ -617,6 +619,7 @@ gst_icydemux_change_state (GstElement * element,
GstStateChange transition)
return ret;
}
+/* takes ownership of tag list */
static gboolean
gst_icydemux_send_tag_event (GstICYDemux * icydemux, GstTagList * tags)
{
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]