diff options
Diffstat (limited to 'extra/gstreamer0.10-base')
3 files changed, 57 insertions, 6 deletions
diff --git a/extra/gstreamer0.10-base/PKGBUILD b/extra/gstreamer0.10-base/PKGBUILD index f1bb35503..ad59c539c 100644 --- a/extra/gstreamer0.10-base/PKGBUILD +++ b/extra/gstreamer0.10-base/PKGBUILD @@ -1,20 +1,28 @@ -# $Id: PKGBUILD 124029 2011-05-16 08:07:30Z jgc $ +# $Id: PKGBUILD 135097 2011-08-10 09:35:11Z jgc $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgbase=('gstreamer0.10-base') pkgname=('gstreamer0.10-base' 'gstreamer0.10-base-plugins') -pkgver=0.10.34 +pkgver=0.10.35 pkgrel=1 arch=('i686' 'x86_64') license=('LGPL') -makedepends=('pkgconfig' 'gstreamer0.10>=0.10.34' 'orc' 'libxv' 'alsa-lib' 'cdparanoia' 'libvisual' 'libvorbis' 'libtheora' 'pango' 'gobject-introspection') +makedepends=('pkgconfig' 'gstreamer0.10>=0.10.35' 'orc' 'libxv' 'alsa-lib' 'cdparanoia' 'libvisual' 'libvorbis' 'libtheora' 'pango' 'gobject-introspection') options=(!libtool !emptydirs) url="http://gstreamer.freedesktop.org/" -source=(${url}/src/gst-plugins-base/gst-plugins-base-${pkgver}.tar.bz2) -sha256sums=('7f347a60cd4317c7ea44c23e52d6e6233d2fa278b3fe3df7cbefe2bc2e253989') +source=(${url}/src/gst-plugins-base/gst-plugins-base-${pkgver}.tar.bz2 + oggstream-fix-crashes-with-0-byte-vorbis-packets.patch + theoradec-segfault-on-0-byte-ogg_packet-in-_chain_reverse.patch) +sha256sums=('cd24f01bb5258a1f400bc4f2c212bb7cee9ee23c9ffb80d537a24ef366d17103' + '2e9d001dbe0ed598c8e86b0081c6ecdf28a1a6b45ffafc639f5cf52fdf0d467f' + '8da16aed8c098251903208cc7ac233b7a9df3f024f78c6970e71f3c2e2bdaa17') build() { cd "${srcdir}/gst-plugins-base-${pkgver}" + + patch -Np1 -i "${srcdir}/oggstream-fix-crashes-with-0-byte-vorbis-packets.patch" + patch -Np1 -i "${srcdir}/theoradec-segfault-on-0-byte-ogg_packet-in-_chain_reverse.patch" + sed -i '/AC_PATH_XTRA/d' configure.ac autoreconf ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \ @@ -28,7 +36,7 @@ build() { package_gstreamer0.10-base() { pkgdesc="GStreamer Multimedia Framework Base plugin libraries" - depends=('gstreamer0.10>=0.10.34' 'orc' 'libxv') + depends=('gstreamer0.10>=0.10.35' 'orc' 'libxv') cd "${srcdir}/gst-plugins-base-${pkgver}" make DESTDIR="${pkgdir}" install diff --git a/extra/gstreamer0.10-base/oggstream-fix-crashes-with-0-byte-vorbis-packets.patch b/extra/gstreamer0.10-base/oggstream-fix-crashes-with-0-byte-vorbis-packets.patch new file mode 100644 index 000000000..8ba4c8ed3 --- /dev/null +++ b/extra/gstreamer0.10-base/oggstream-fix-crashes-with-0-byte-vorbis-packets.patch @@ -0,0 +1,22 @@ +From 8bd3bdaf3768b3fb6adc85b3bc681fdce07b786e Mon Sep 17 00:00:00 2001 +From: Jonathan Liu <net147@gmail.com> +Date: Wed, 03 Aug 2011 08:18:29 +0000 +Subject: oggstream: Fix crashes with 0-byte vorbis packets + +Fixes bug #655574. +--- +diff --git a/ext/ogg/gstoggstream.c b/ext/ogg/gstoggstream.c +index e843f48..77f39d4 100644 +--- a/ext/ogg/gstoggstream.c ++++ b/ext/ogg/gstoggstream.c +@@ -792,7 +792,7 @@ packet_duration_vorbis (GstOggStream * pad, ogg_packet * packet) + int size; + int duration; + +- if (packet->packet[0] & 1) ++ if (packet->bytes == 0 || packet->packet[0] & 1) + return 0; + + mode = (packet->packet[0] >> 1) & ((1 << pad->vorbis_log2_num_modes) - 1); +-- +cgit v0.8.3-6-g21f6 diff --git a/extra/gstreamer0.10-base/theoradec-segfault-on-0-byte-ogg_packet-in-_chain_reverse.patch b/extra/gstreamer0.10-base/theoradec-segfault-on-0-byte-ogg_packet-in-_chain_reverse.patch new file mode 100644 index 000000000..b9883d407 --- /dev/null +++ b/extra/gstreamer0.10-base/theoradec-segfault-on-0-byte-ogg_packet-in-_chain_reverse.patch @@ -0,0 +1,21 @@ +From 7d22d91fca6b9f24ca205eef98031f1ed6a44d33 Mon Sep 17 00:00:00 2001 +From: Philip Jägenstedt <philipj@opera.com> +Date: Tue, 26 Jul 2011 14:10:17 +0000 +Subject: theoradec: segfault on 0-byte ogg_packet in _chain_reverse + +--- +diff --git a/ext/theora/gsttheoradec.c b/ext/theora/gsttheoradec.c +index 96e12ee..25d68db 100644 +--- a/ext/theora/gsttheoradec.c ++++ b/ext/theora/gsttheoradec.c +@@ -1440,7 +1440,7 @@ theora_dec_chain_reverse (GstTheoraDec * dec, gboolean discont, GstBuffer * buf) + + /* if we copied a keyframe, flush and decode the decode queue */ + data = GST_BUFFER_DATA (gbuf); +- if ((data[0] & 0x40) == 0) { ++ if (data && (data[0] & 0x40) == 0) { + GST_DEBUG_OBJECT (dec, "copied keyframe"); + res = theora_dec_flush_decode (dec); + } +-- +cgit v0.8.3-6-g21f6 |