public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/pandaboard:2.6.38 commit in: media-libs/gst-plugins-base/files/, media-plugins/gst-openmax/files/, ...
@ 2011-04-17 17:18 Raúl Porcel
  2011-05-13 19:49 ` [gentoo-commits] proj/pandaboard:master " Raúl Porcel
  0 siblings, 1 reply; 2+ messages in thread
From: Raúl Porcel @ 2011-04-17 17:18 UTC (permalink / raw
  To: gentoo-commits

commit:     18f87cb140ef5e299af0bb6576f20fd5834f508a
Author:     Raúl Porcel <armin76 <AT> gentoo <DOT> org>
AuthorDate: Sun Apr 17 17:18:10 2011 +0000
Commit:     Raúl Porcel <armin76 <AT> gentoo <DOT> org>
CommitDate: Sun Apr 17 17:18:10 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pandaboard.git;a=commit;h=18f87cb1

Add 2.6.38 ebuilds

---
 eclass/gst-plugins-good.eclass                     |  129 ---
 media-libs/domx/Manifest                           |    2 -
 media-libs/domx/domx-24.11-r0.ebuild               |   31 -
 media-libs/domx/domx-24.11_p1-r0.ebuild            |   31 -
 media-libs/gst-plugins-base/Manifest               |   26 -
 ...stride-support-to-video-utility-functions.patch |  536 ---------
 ...form-skeletal-implementation-of-stridetra.patch |  368 -------
 ...form-implement-caps-negotiation-and-relat.patch |  379 -------
 ...idetransform-implement-transform-function.patch |  215 ----
 ...5-add-gst_stride_transform_transform_size.patch |  143 ---
 ...-typo.-need-to-use-the-smaller-of-new_wid.patch |   36 -
 ...-0007-Add-NV12-support-in-stridetransform.patch |   77 --
 ...upport-for-I420-NV12-colorspace-conversio.patch |  186 ----
 ...-fix-to-avoid-parsing-caps-on-every-frame.patch |   35 -
 ...ridetransform-to-make-it-easier-to-add-ne.patch |  759 -------------
 .../files/gst-0.10.32-0011-add-some-neon.patch     |  293 -----
 ...port-to-convert-to-YUY2-YUYV-color-format.patch |  197 ----
 ...Add-support-for-RGB565-to-stridetransform.patch |  336 ------
 ...form-updates-for-new-extra-anal-compiler-.patch |   61 --
 ...form-fix-problem-transforming-caps-with-l.patch |  544 ----------
 ...016-modify-playbin-to-use-stridetransform.patch |   62 --
 ...2-0017-playbin-disable-interlaced-support.patch |   33 -
 ...10.32-0018-textoverlay-add-stride-support.patch |  132 ---
 ...19-video-more-flexible-video-caps-utility.patch |  228 ----
 ...fix-endianess-issue-for-16bit-RGB-formats.patch |   41 -
 ...ide-more-flexible-stride-color-conversion.patch | 1131 --------------------
 ...0022-stride-support-for-32bit-RGB-formats.patch |   54 -
 ...23-ffmpegcolorspace-support-for-rowstride.patch |  410 -------
 ...0.10.32-0024-discoverer-rowstride-support.patch |   45 -
 .../gst-plugins-base-0.10.32_p20110127.ebuild      |   78 --
 media-libs/gst-plugins-good/Manifest               |   14 -
 ...-v4l2-fix-handling-of-RGB32-BGR32-formats.patch |   53 -
 ....10.27-0002-v4l2sink-Add-rotation-support.patch |  128 ---
 ...t-0.10.27-0003-v4l2sink-Add-flip-property.patch |  187 ----
 ...2sink-Add-support-for-omap24xxvout-driver.patch |   59 -
 ...v4l2sink-Add-support-for-omap_vout-driver.patch |   34 -
 ...-0006-v4l2-increase-v4l2sink-element-rank.patch |   26 -
 ...stQueryBuffers-to-get-buffer-requirements.patch |   97 --
 .../gst-0.10.27-0008-add-rowstride-support.patch   |  572 ----------
 ...27-0009-use-GstEventCrop-to-get-crop-info.patch |  119 --
 .../files/gst-0.10.27-0010-v4l2-prefer-NV12.patch  |   28 -
 ...-v4l2sink-fix-issue-seen-with-autoconvert.patch |   49 -
 ...sink-Disable-rotation-code-when-not-found.patch |  103 --
 .../gst-plugins-good-0.10.27_p20110127.ebuild      |   84 --
 media-libs/gstreamer/Manifest                      |    7 -
 ...0.10.32-0001-gst-launch-add-loop-argument.patch |   54 -
 ...to-make-it-possible-to-LD_PRELOAD-libttif.patch |  262 -----
 ...st-0.10.32-0003-add-GstQueryBuffers-query.patch |  258 -----
 .../gst-0.10.32-0004-Add-GstEventCrop-event.patch  |  161 ---
 ...etransform-don-t-do-unnecessary-pad_alloc.patch |   52 -
 .../gstreamer/gstreamer-0.10.32_p20110127.ebuild   |   68 --
 media-libs/syslink-d2c/Manifest                    |    1 -
 .../syslink-d2c/syslink-d2c-24.11_p1-r0.ebuild     |   38 -
 media-libs/syslink/Manifest                        |    2 -
 .../files/add-missing-libraries-to-linker.patch    |   52 -
 media-libs/syslink/syslink-24.11_p1-r0.ebuild      |   39 -
 media-libs/tiler/Manifest                          |    1 -
 media-libs/tiler/tiler-24.11-r0.ebuild             |   38 -
 media-plugins/gst-openmax/Manifest                 |    5 -
 ...ideoenc-use-shared-buffers-on-output-port.patch |   27 -
 ...ce-deprecated-vstab-event-with-crop-event.patch |   64 --
 .../files/0099-temp-32k-header-dec10.patch         |   81 --
 .../files/0099-temp-32k-header-nov10.patch         |   82 --
 media-plugins/gst-openmax/gst-openmax-9999.ebuild  |   38 -
 media-plugins/gst-plugins-v4l2/Manifest            |   14 -
 ...-v4l2-fix-handling-of-RGB32-BGR32-formats.patch |   53 -
 ....10.27-0002-v4l2sink-Add-rotation-support.patch |  128 ---
 ...t-0.10.27-0003-v4l2sink-Add-flip-property.patch |  187 ----
 ...2sink-Add-support-for-omap24xxvout-driver.patch |   59 -
 ...v4l2sink-Add-support-for-omap_vout-driver.patch |   34 -
 ...-0006-v4l2-increase-v4l2sink-element-rank.patch |   26 -
 ...stQueryBuffers-to-get-buffer-requirements.patch |   97 --
 .../gst-0.10.27-0008-add-rowstride-support.patch   |  572 ----------
 ...27-0009-use-GstEventCrop-to-get-crop-info.patch |  119 --
 .../files/gst-0.10.27-0010-v4l2-prefer-NV12.patch  |   28 -
 ...-v4l2sink-fix-issue-seen-with-autoconvert.patch |   49 -
 ...k-Define-rotation-if-kernel-header-doesnt.patch |   27 -
 .../gst-plugins-v4l2-0.10.27_p20110127.ebuild      |   32 -
 net-wireless/tibtfm-wl1271-firmware/Manifest       |    3 -
 net-wireless/tibtfm-wl1271-firmware/metadata.xml   |    8 -
 .../tibtfm-wl1271-firmware-0.24.9.2.ebuild         |   22 -
 net-wireless/tibtfm-wl1271/Manifest                |    5 -
 .../tibtfm-wl1271/files/tibtfm-wl1271.init         |   26 -
 net-wireless/tibtfm-wl1271/metadata.xml            |    8 -
 .../tibtfm-wl1271/tibtfm-wl1271-0.24.9.ebuild      |   45 -
 net-wireless/tiwlan-wl1271-firmware/Manifest       |    3 -
 net-wireless/tiwlan-wl1271-firmware/metadata.xml   |    8 -
 .../tiwlan-wl1271-firmware-0.24.9.1.ebuild         |   23 -
 net-wireless/tiwlan-wl1271/ChangeLog               |    8 -
 net-wireless/tiwlan-wl1271/Manifest                |    5 -
 net-wireless/tiwlan-wl1271/metadata.xml            |    8 -
 .../tiwlan-wl1271/tiwlan-wl1271-0.24.9.ebuild      |   70 --
 sys-kernel/omap4-sources/Manifest                  |    6 +-
 ....ebuild => omap4-sources-2.6.38.1207.10.ebuild} |    2 +-
 x11-drivers/pvr-omap4-kernel/Manifest              |    6 +-
 ...l-0.24.9.ebuild => pvr-omap4-kernel-1.7.ebuild} |   19 +-
 x11-drivers/pvr-omap4/Manifest                     |    6 +-
 x11-drivers/pvr-omap4/pvr-omap4-0.24.9c.ebuild     |   39 -
 x11-drivers/pvr-omap4/pvr-omap4-1.7.ebuild         |   50 +
 99 files changed, 70 insertions(+), 11206 deletions(-)

diff --git a/eclass/gst-plugins-good.eclass b/eclass/gst-plugins-good.eclass
deleted file mode 100644
index e421744..0000000
--- a/eclass/gst-plugins-good.eclass
+++ /dev/null
@@ -1,129 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-# Author : foser <foser@gentoo.org>, zaheerm <zaheerm@gentoo.org>
-
-# gst-plugins-good eclass for pandaboard overlay
-#
-# eclass to make external gst-plugins emergable on a per-plugin basis
-# to solve the problem with gst-plugins generating far too much unneeded deps
-#
-# 3rd party applications using gstreamer now should depend on a set of plugins as
-# defined in the source, obtain recommended plugins to use from
-# Gentoo developers responsible for gstreamer <gnome@gentoo.org>, the application developer
-# or the gstreamer team.
-
-inherit eutils versionator gst-plugins10
-
-
-###
-# variable declarations
-###
-
-MY_PN=gst-plugins-good
-MY_PV=${PV%%_*}
-MY_P=${MY_PN}-${MY_PV}
-
-# All relevant configure options for gst-plugins
-# need a better way to extract these
-
-# First line for non-plugin build related configure options; second line for
-# sys/ plugins; rest is split plugin options in order of ./configure --help output.
-# Good ways of validation are seeing diff of old and new configure.ac, and ./configure --help
-#
-# This list is current to gst-plugins-good-0.10.23:
-my_gst_plugins_good="gconftool zlib bz2
-directsound oss sunaudio osx_audio osx_video gst_v4l2 x xshm xvideo
-aalib aalibtest annodex cairo esd esdtest flac gconf gdk_pixbuf hal jpeg
-libcaca libdv libpng pulse dv1394 shout2 shout2test soup speex taglib wavpack"
-
-# When adding conditionals like below, be careful about having leading spaces in concat
-
-# sys/oss4 moved here since 0.10.23
-if version_is_at_least "0.10.23"; then
-	my_gst_plugins_good+=" oss4"
-fi
-
-
-#SRC_URI="mirror://gnome/sources/gst-plugins/${PV_MAJ_MIN}/${MY_P}.tar.bz2"
-SRC_URI="http://gstreamer.freedesktop.org/src/gst-plugins-good/${MY_P}.tar.bz2"
-
-S=${WORKDIR}/${MY_P}
-# added to remove circular deps
-# 6/2/2006 - zaheerm
-if [ "${PN}" != "${MY_PN}" ]; then
-RDEPEND="=media-libs/gst-plugins-base-0.10*"
-DEPEND="${RDEPEND}
-	>=sys-apps/sed-4
-	dev-util/pkgconfig"
-RESTRICT=test
-fi
-
-###
-# public functions
-###
-
-gst-plugins-good_src_configure() {
-
-	# disable any external plugin besides the plugin we want
-	local plugin gst_conf
-
-	einfo "Configuring to build ${GST_PLUGINS_BUILD} plugin(s) ..."
-
-	for plugin in ${my_gst_plugins_good}; do
-		gst_conf="${gst_conf} --disable-${plugin} "
-	done
-
-	for plugin in ${GST_PLUGINS_BUILD}; do
-		gst_conf="${gst_conf} --enable-${plugin} "
-	done
-
-	cd ${S}
-	econf ${@} --with-package-name="Gentoo GStreamer Ebuild" --with-package-origin="http://www.gentoo.org" --enable-experimental ${gst_conf} || die "./configure failure"
-
-}
-
-###
-# public inheritable functions
-###
-
-gst-plugins-good_src_unpack() {
-
-#	local makefiles
-
-	unpack ${A}
-
-	# Link with the syswide installed gst-libs if needed
-#	gst-plugins10_find_plugin_dir
-#	cd ${S}
-
-	# Remove generation of any other Makefiles except the plugin's Makefile
-#	if [ -d "${S}/sys/${GST_PLUGINS_BUILD_DIR}" ]; then
-#		makefiles="Makefile sys/Makefile sys/${GST_PLUGINS_BUILD_DIR}/Makefile"
-#	elif [ -d "${S}/ext/${GST_PLUGINS_BUILD_DIR}" ]; then
-#		makefiles="Makefile ext/Makefile ext/${GST_PLUGINS_BUILD_DIR}/Makefile"
-#	fi
-#	sed -e "s:ac_config_files=.*:ac_config_files='${makefiles}':" \
-#		-i ${S}/configure
-
-}
-
-gst-plugins-good_src_compile() {
-
-	gst-plugins-good_src_configure ${@}
-
-	gst-plugins10_find_plugin_dir
-	emake || die "compile failure"
-
-}
-
-gst-plugins-good_src_install() {
-
-	gst-plugins10_find_plugin_dir
-	einstall || die
-
-	[[ -e README ]] && dodoc README
-}
-
-EXPORT_FUNCTIONS src_unpack src_compile src_install

diff --git a/media-libs/domx/Manifest b/media-libs/domx/Manifest
deleted file mode 100644
index 1b6e6ab..0000000
--- a/media-libs/domx/Manifest
+++ /dev/null
@@ -1,2 +0,0 @@
-EBUILD domx-24.11-r0.ebuild 664 RMD160 f5b1510694b3e8ed851224226ff5d38ff2c1c39c SHA1 49a47849fda2cfb620e18481e7e66733f2e084fb SHA256 eac709f65366afc1ad9d0d1267d79d506e57d88e632f2da1d799a7900c5dce52
-EBUILD domx-24.11_p1-r0.ebuild 665 RMD160 82bcdb6d4f2b838b97f13e04392aaec8b70a4726 SHA1 5d4f965726cc83329d1d7bfabfe95ddbaa6c21da SHA256 c802c5b2084cfe5185663253ff9db9b84b03297f4ac7a2fd539174ed389576d7

diff --git a/media-libs/domx/domx-24.11-r0.ebuild b/media-libs/domx/domx-24.11-r0.ebuild
deleted file mode 100644
index 15633ee..0000000
--- a/media-libs/domx/domx-24.11-r0.ebuild
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI=2
-
-inherit git autotools eutils
-
-DESCRIPTION="Distributed OpenMAX for OMAP4 processors"
-HOMEPAGE="http://github.com/mrchapp/domx"
-DEPEND=">=media-libs/syslink-24.11 >=media-libs/syslink-d2c-24.11"
-LICENSE="BSD"
-KEYWORDS="arm"
-SLOT="0"
-IUSE=""
-
-SRC_URI=""
-NPV=${PV/_/-}; NPV=${NPV^^}
-EGIT_REPO_URI="git://github.com/mrchapp/domx.git"
-EGIT_BRANCH="master"
-# FIXME: Can't use tags?
-#EGIT_COMMIT="L${NPV}"
-EGIT_COMMIT="1378fb8e1b8304f401dfb1d6787ae13294d518ef"
-
-src_prepare() {
-	eautoreconf
-}
-
-src_install() {
-	emake install DESTDIR="${D}"
-}

diff --git a/media-libs/domx/domx-24.11_p1-r0.ebuild b/media-libs/domx/domx-24.11_p1-r0.ebuild
deleted file mode 100644
index 08bd72e..0000000
--- a/media-libs/domx/domx-24.11_p1-r0.ebuild
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI=2
-
-inherit git autotools eutils
-
-DESCRIPTION="Distributed OpenMAX for OMAP4 processors"
-HOMEPAGE="http://github.com/mrchapp/domx"
-DEPEND=">=media-libs/syslink-24.11 >=media-libs/syslink-d2c-24.11"
-LICENSE="BSD"
-KEYWORDS="~arm"
-SLOT="0"
-IUSE=""
-
-SRC_URI=""
-NPV=${PV/_/-}; NPV=${NPV^^}
-EGIT_REPO_URI="git://github.com/mrchapp/domx.git"
-EGIT_BRANCH="master"
-# FIXME: Can't use tags?
-#EGIT_COMMIT="L${NPV}"
-EGIT_COMMIT="858802175f65b99ff64329800400642d9b44aabf"
-
-src_prepare() {
-	eautoreconf
-}
-
-src_install() {
-	emake install DESTDIR="${D}"
-}

diff --git a/media-libs/gst-plugins-base/Manifest b/media-libs/gst-plugins-base/Manifest
deleted file mode 100644
index 0cba68e..0000000
--- a/media-libs/gst-plugins-base/Manifest
+++ /dev/null
@@ -1,26 +0,0 @@
-AUX gst-0.10.32-0001-add-rowstride-support-to-video-utility-functions.patch 19478 RMD160 3314aa44215803242a9cd1b2f33987066b2d9255 SHA1 960ce8f2c0c12c1d79cac4ba667236ab5dc9c4a9 SHA256 453f54b8b2a00df3038b96096f65720ad09f78a83db356bbd3018a6dae519c56
-AUX gst-0.10.32-0002-stridetransform-skeletal-implementation-of-stridetra.patch 12038 RMD160 ae601020715b8049423418dd51c97ffd4cd84da6 SHA1 b0210b381c97a94b7542b3e103a0071bbce14cf6 SHA256 a8cbdef59063369c4bae3c87dc9d197fc950c9fb588ad9a3dcfcbca7f1ea02c9
-AUX gst-0.10.32-0003-stridetransform-implement-caps-negotiation-and-relat.patch 13666 RMD160 cd97b88ec464c8e8055c93a443ff7a0d31aa0d41 SHA1 500b157dca39a60751fd89edd29d23224b287fd9 SHA256 a2685bd2928796756e5217d10bee09679b99458e5c33ea90498725b379c060a6
-AUX gst-0.10.32-0004-stridetransform-implement-transform-function.patch 7985 RMD160 f246b2f9a27a6d94a7d21f2594bbb65f9dba08be SHA1 62174bf74b1b1086a3585df0178db703c8ddb108 SHA256 efcf08ac81ce74fedab80318db7e20eef0abda36ef9e03aed6c823426199bad8
-AUX gst-0.10.32-0005-add-gst_stride_transform_transform_size.patch 5629 RMD160 01a147ca359509d478aa69c40697735f3b339d4d SHA1 1e7a520e85b9364797764be5a755478e4becbb3b SHA256 3ca3bfac1d14ce43c2c1211038275a22b41b370bbfcadd06224bd68b6f79608b
-AUX gst-0.10.32-0006-fix-a-small-typo.-need-to-use-the-smaller-of-new_wid.patch 1398 RMD160 fff110733e415d3a62b887ac5155d3200f821daa SHA1 0e331030afdf5be917c71f7b2d0a3961450159ef SHA256 e4ffd2ceefcb6bdf851d897ca63f57f5b33bc80210fcd2e70e8337738857a823
-AUX gst-0.10.32-0007-Add-NV12-support-in-stridetransform.patch 2909 RMD160 f77e0f781af75021ba4dbbc19fc181c38f5e7a7d SHA1 8eebe554050a4e7239e2d3c886f2d71e92c481ad SHA256 ee77cd62a3af64ab453d14e563ac142e1cc9a78422158d548fa412c3e6a5c6e1
-AUX gst-0.10.32-0008-add-basic-support-for-I420-NV12-colorspace-conversio.patch 6976 RMD160 e8c645b0a55e39cc70547eeb6eaed361b93f7770 SHA1 2fb572546b90b9e1566f8dd38854d307ea5fa897 SHA256 55c669534771130dbaf5bdd94a4a08031faf27900fb3d7981d4b5934510c5f11
-AUX gst-0.10.32-0009-fix-to-avoid-parsing-caps-on-every-frame.patch 1087 RMD160 ee3a3bbf77ad5c5726a30115caeb373c430553f9 SHA1 cfb3b914b88a278131d91e2dd48865765302d947 SHA256 52f163890b09cc2133739adb18788441329c71c10359a0a1a2e5bcee918bff1c
-AUX gst-0.10.32-0010-refactor-stridetransform-to-make-it-easier-to-add-ne.patch 26534 RMD160 ccc77aef354ecc2f506dfe73d485a1edd5910e2a SHA1 837fdc52c72c09105356c12b361480b1ff03eb54 SHA256 1abf8e19bdbd7d4b404cc8803dce83da77be4fd98e1c940d6842f2ae3c6e29fd
-AUX gst-0.10.32-0011-add-some-neon.patch 9024 RMD160 48388eea9e42f4a156cae6090f34c1732eec717f SHA1 dfe6de8382322ccab6889c3afb228fc3512f9816 SHA256 d9f3e1fbb8cfbcda0fa49cf976e7b318c55780a3f4216c030e4a6b1e1ec207c1
-AUX gst-0.10.32-0012-add-support-to-convert-to-YUY2-YUYV-color-format.patch 6307 RMD160 37c8cfdc0850f8b163747b029ce6ef7125a92bcf SHA1 5385dfa1622cc4b8639e03adc99dbb91d6de8b49 SHA256 f26b61b6c92bd064c423eadcc7b35dcd3573c7e313b0ecc142473124f37240ec
-AUX gst-0.10.32-0013-Add-support-for-RGB565-to-stridetransform.patch 13641 RMD160 51386f4ebb999d90eff5ef786e27d07fa37e159a SHA1 1b0f6ee44a24c32247e165f357100d9a6a0cac6b SHA256 f8013cdb9943559fa14491c8e253f7c51a7a061e16c76acabe10f057f9066b6a
-AUX gst-0.10.32-0014-stridetransform-updates-for-new-extra-anal-compiler-.patch 2398 RMD160 2fc97ee99088fb484f728d9d0c6ea0ae2509c32d SHA1 0b5aed4e09b7dad068d7048e9960ca980e46fd18 SHA256 749859c06913a633ead030f69d9cc5076d9425a95e720111876c8abf464a3d57
-AUX gst-0.10.32-0015-stridetransform-fix-problem-transforming-caps-with-l.patch 20488 RMD160 f5d8a82c2313dcde45b2220ead8bd2f1c356a2dd SHA1 c02b4ee4468134fd9eb27a755a031a0e113a509e SHA256 6313ea19aa2496f2e14e91c2d3812d6f9d9c82035635d4a978a8e7b963a8be6a
-AUX gst-0.10.32-0016-modify-playbin-to-use-stridetransform.patch 2485 RMD160 cb93726b58319d71c95abc8195d1535785fbde85 SHA1 afcc848f8ab059452a68b1eea13735c5c431de89 SHA256 9e55a7d20b269d947875aba1e3ed66579a866696afda99e754093ff74b5d4fe5
-AUX gst-0.10.32-0017-playbin-disable-interlaced-support.patch 1108 RMD160 9d759f6f3028811150df8aa01ccb114e73b3f2df SHA1 63802de92a41aec3a210615f9c7750621c9cd20c SHA256 31d306b25a4edf00b65146a92c74f8f1f6bf6aaf001b81b8df70affdddd2b5ab
-AUX gst-0.10.32-0018-textoverlay-add-stride-support.patch 5213 RMD160 f1a10c218e9cc25b232f48e1cf890cf6a108dce4 SHA1 3d79d8b3f2037c807d61c427943e3a2cb1a0cf1d SHA256 cf0facafdf762e114c5ea56a5ad6420dd6a6269c674eb2f06af0eec17a4a0d9d
-AUX gst-0.10.32-0019-video-more-flexible-video-caps-utility.patch 8691 RMD160 5b22d8a8f74bcf46e08671a160b6bce314f50b82 SHA1 862be817be2a3a6fdac3073efa2d6e53b161aa00 SHA256 a6b85a91555daf21c4228ea708be91de875997158b393b8e99422bc02c05f835
-AUX gst-0.10.32-0020-video-fix-endianess-issue-for-16bit-RGB-formats.patch 1343 RMD160 4fa95c02bfaf97dadf504f3aee2a7397afd4ac41 SHA1 bdc1d37a88cd3ce562a411474474608d7d1b9084 SHA256 3f8a7bf670e54af9bd3fdf8d56b22f5c9e6ff00616472e1c0b0b2493f6a561c8
-AUX gst-0.10.32-0021-stride-more-flexible-stride-color-conversion.patch 40158 RMD160 1d45d8b1e3084ac125b733e57bece2b1de01b096 SHA1 621a2f39835043114e08b4420c1d6e3731b568b9 SHA256 a38d4f60b3e38d45c38044133fe2ad1e799dc966e53c1dd292e63ad897101037
-AUX gst-0.10.32-0022-stride-support-for-32bit-RGB-formats.patch 1818 RMD160 d5a3ade8595272586ab934cc10ba7658fbc9121a SHA1 42f14b868bc68e2554e96d4ff8d94faa79863fbf SHA256 a74ac22cb796fc175fa2362fe48b7d2554f41e39228a993197a09e5002fc4fe1
-AUX gst-0.10.32-0023-ffmpegcolorspace-support-for-rowstride.patch 15546 RMD160 c389743544f5881bf7be1ce8df5682a0a8556285 SHA1 975b92fa352e3210b1013f5c6e98f6994b5737e7 SHA256 3843c61f9d49ba75dc6a20c9b7d57bcdc3bfbdf784ea93619ee68dd8bab72c6c
-AUX gst-0.10.32-0024-discoverer-rowstride-support.patch 1552 RMD160 4e662a66b724a19dcb71e614a71198edd9d5fe5b SHA1 153a14d26dc2f90e0d060d78244e10ab54d7912d SHA256 434643810dde2d6afc8d712563afbcd588d49cdb6bec7edec9545d2c7e375ee8
-DIST gst-plugins-base-0.10.32.tar.bz2 2720103 RMD160 b267e3138e40e3646efed0baa662d40775eca1ea SHA1 c1c149272b7ab6cbe5f648532f74525c6541eea5 SHA256 e9aabfac83f6480896da0686e9c911989f896fbad634821b7771ed84a446172b
-EBUILD gst-plugins-base-0.10.32_p20110127.ebuild 3386 RMD160 366819facffe23ed35617ff106ac81411824103c SHA1 2efdfad7c81709078ff142410917d092b34ad112 SHA256 8fa605d70e03f9f52680a5d46334a9ad9cc055e84578fb440ddc74174670fa64

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0001-add-rowstride-support-to-video-utility-functions.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0001-add-rowstride-support-to-video-utility-functions.patch
deleted file mode 100644
index 6f25b71..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0001-add-rowstride-support-to-video-utility-functions.patch
+++ /dev/null
@@ -1,536 +0,0 @@
-From 481cda8686336999ccccbdbf239bcbd520bcdfc7 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Thu, 30 Jul 2009 14:50:05 -0500
-Subject: [PATCH 01/24] add rowstride support to video utility functions
-
----
- gst-libs/gst/video/gstvideofilter.c |    8 +-
- gst-libs/gst/video/video.c          |  244 ++++++++++++++++++++++++++++-------
- gst-libs/gst/video/video.h          |   27 +++--
- 3 files changed, 220 insertions(+), 59 deletions(-)
-
-diff --git a/gst-libs/gst/video/gstvideofilter.c b/gst-libs/gst/video/gstvideofilter.c
-index 2d08a60..6b2d7b7 100644
---- a/gst-libs/gst/video/gstvideofilter.c
-+++ b/gst-libs/gst/video/gstvideofilter.c
-@@ -21,7 +21,7 @@
-  /**
-  * SECTION:gstvideofilter
-  * @short_description: Base class for video filters
-- * 
-+ *
-  * <refsect2>
-  * <para>
-  * Provides useful functions and a base class for video filters.
-@@ -78,14 +78,14 @@ gst_video_filter_get_unit_size (GstBaseTransform * btrans, GstCaps * caps,
-     guint * size)
- {
-   GstVideoFormat fmt;
--  gint width, height;
-+  gint width, height, rowstride;
- 
--  if (!gst_video_format_parse_caps (caps, &fmt, &width, &height)) {
-+  if (!gst_video_format_parse_caps_strided (caps, &fmt, &width, &height, &rowstride)) {
-     GST_WARNING_OBJECT (btrans, "Failed to parse caps %" GST_PTR_FORMAT, caps);
-     return FALSE;
-   }
- 
--  *size = gst_video_format_get_size (fmt, width, height);
-+  *size = gst_video_format_get_size_strided (fmt, width, height, rowstride);
- 
-   GST_DEBUG_OBJECT (btrans, "Returning size %u bytes for caps %"
-       GST_PTR_FORMAT, *size, caps);
-diff --git a/gst-libs/gst/video/video.c b/gst-libs/gst/video/video.c
-index d9fa50b..24f1ac8 100644
---- a/gst-libs/gst/video/video.c
-+++ b/gst-libs/gst/video/video.c
-@@ -31,7 +31,7 @@
-  *
-  * <refsect2>
-  * <para>
-- * This library contains some helper functions and includes the 
-+ * This library contains some helper functions and includes the
-  * videosink and videofilter base classes.
-  * </para>
-  * </refsect2>
-@@ -53,7 +53,7 @@ static GstVideoFormat gst_video_format_from_rgb16_masks (int red_mask,
-  *
-  * A convenience function to retrieve a GValue holding the framerate
-  * from the caps on a pad.
-- * 
-+ *
-  * The pad needs to have negotiated caps containing a framerate property.
-  *
-  * Returns: NULL if the pad has no configured caps or the configured caps
-@@ -106,7 +106,7 @@ gst_video_frame_rate (GstPad * pad)
-  *
-  * Inspect the caps of the provided pad and retrieve the width and height of
-  * the video frames it is configured for.
-- * 
-+ *
-  * The pad needs to have negotiated caps containing width and height properties.
-  *
-  * Returns: TRUE if the width and height could be retrieved.
-@@ -158,13 +158,13 @@ gst_video_get_size (GstPad * pad, gint * width, gint * height)
-  * @display_par_n: Numerator of the pixel aspect ratio of the display device
-  * @display_par_d: Denominator of the pixel aspect ratio of the display device
-  *
-- * Given the Pixel Aspect Ratio and size of an input video frame, and the 
-- * pixel aspect ratio of the intended display device, calculates the actual 
-+ * Given the Pixel Aspect Ratio and size of an input video frame, and the
-+ * pixel aspect ratio of the intended display device, calculates the actual
-  * display ratio the video will be rendered with.
-  *
-- * Returns: A boolean indicating success and a calculated Display Ratio in the 
-- * dar_n and dar_d parameters. 
-- * The return value is FALSE in the case of integer overflow or other error. 
-+ * Returns: A boolean indicating success and a calculated Display Ratio in the
-+ * dar_n and dar_d parameters.
-+ * The return value is FALSE in the case of integer overflow or other error.
-  *
-  * Since: 0.10.7
-  */
-@@ -308,28 +308,15 @@ gst_video_parse_caps_chroma_site (GstCaps * caps)
- }
- 
- /**
-- * gst_video_format_parse_caps:
-- * @caps: the #GstCaps to parse
-- * @format: the #GstVideoFormat of the video represented by @caps (output)
-- * @width: the width of the video represented by @caps, may be NULL (output)
-- * @height: the height of the video represented by @caps, may be NULL (output)
-- *
-- * Determines the #GstVideoFormat of @caps and places it in the location
-- * pointed to by @format.  Extracts the size of the video and places it
-- * in the location pointed to by @width and @height.  If @caps does not
-- * represent one of the raw video formats listed in #GstVideoFormat, the
-- * function will fail and return FALSE.
-- *
-- * Since: 0.10.16
-- *
-- * Returns: TRUE if @caps was parsed correctly.
-+ * see gst_video_format_parse_caps_strided and gst_video_format_parse_caps
-  */
--gboolean
--gst_video_format_parse_caps (GstCaps * caps, GstVideoFormat * format,
--    int *width, int *height)
-+static gboolean
-+parse_caps (GstCaps * caps, GstVideoFormat * format, gint *width, gint *height,
-+    gboolean stride_ok, gint *rowstride)
- {
-   GstStructure *structure;
-   gboolean ok = TRUE;
-+  gboolean strided = FALSE;
- 
-   if (!gst_caps_is_fixed (caps))
-     return FALSE;
-@@ -337,7 +324,10 @@ gst_video_format_parse_caps (GstCaps * caps, GstVideoFormat * format,
-   structure = gst_caps_get_structure (caps, 0);
- 
-   if (format) {
--    if (gst_structure_has_name (structure, "video/x-raw-yuv")) {
-+    if (gst_structure_has_name (structure, "video/x-raw-yuv") ||
-+        (stride_ok &&
-+            gst_structure_has_name (structure, "video/x-raw-yuv-strided") &&
-+            (strided=TRUE) /* single '=' intentional */)) {
-       guint32 fourcc;
- 
-       ok &= gst_structure_get_fourcc (structure, "format", &fourcc);
-@@ -346,7 +336,10 @@ gst_video_format_parse_caps (GstCaps * caps, GstVideoFormat * format,
-       if (*format == GST_VIDEO_FORMAT_UNKNOWN) {
-         ok = FALSE;
-       }
--    } else if (gst_structure_has_name (structure, "video/x-raw-rgb")) {
-+    } else if (gst_structure_has_name (structure, "video/x-raw-rgb") ||
-+        (stride_ok &&
-+            gst_structure_has_name (structure, "video/x-raw-rgb-strided") &&
-+            (strided=TRUE) /* single '=' intentional */)) {
-       int depth;
-       int bpp;
-       int endianness = 0;
-@@ -423,6 +416,10 @@ gst_video_format_parse_caps (GstCaps * caps, GstVideoFormat * format,
-     }
-   }
- 
-+  /* note: should we require that the caps have these fields, even if
-+   * the caller does not particularly request them??
-+   */
-+
-   if (width) {
-     ok &= gst_structure_get_int (structure, "width", width);
-   }
-@@ -431,11 +428,70 @@ gst_video_format_parse_caps (GstCaps * caps, GstVideoFormat * format,
-     ok &= gst_structure_get_int (structure, "height", height);
-   }
- 
-+  if (rowstride) {
-+    if (strided) {
-+      ok &= gst_structure_get_int (structure, "rowstride", rowstride);
-+    } else {
-+      *rowstride = 0;  /* not a strided format */
-+    }
-+  }
-+
-   return ok;
- }
- 
- 
- /**
-+ * gst_video_format_parse_caps_strided:
-+ * @caps: the #GstCaps to parse
-+ * @format: the #GstVideoFormat of the video represented by @caps (output)
-+ * @width: the width of the video represented by @caps, may be NULL (output)
-+ * @height: the height of the video represented by @caps, may be NULL (output)
-+ * @rowstride: the rowstride (in bytes) represented by @caps, or 0 if there
-+ *    is no rowstride, may be NULL (output)
-+ *
-+ * Determines the #GstVideoFormat of @caps and places it in the location
-+ * pointed to by @format.  Extracts the size of the video and places it
-+ * in the location pointed to by @width and @height.  Extracts the row-
-+ * stride and places it in the location pointed to by @rowstride.  If
-+ * @caps does not represent one of the raw video formats listed in
-+ * #GstVideoFormat, the function will fail and return FALSE.
-+ *
-+ * Since: ???
-+ *
-+ * Returns: TRUE if @caps was parsed correctly.
-+ */
-+gboolean
-+gst_video_format_parse_caps_strided (GstCaps * caps, GstVideoFormat * format,
-+    int *width, int *height, int *rowstride)
-+{
-+  return parse_caps (caps, format, width, height, TRUE, rowstride);
-+}
-+
-+/**
-+ * gst_video_format_parse_caps:
-+ * @caps: the #GstCaps to parse
-+ * @format: the #GstVideoFormat of the video represented by @caps (output)
-+ * @width: the width of the video represented by @caps, may be NULL (output)
-+ * @height: the height of the video represented by @caps, may be NULL (output)
-+ *
-+ * Determines the #GstVideoFormat of @caps and places it in the location
-+ * pointed to by @format.  Extracts the size of the video and places it
-+ * in the location pointed to by @width and @height.  If @caps does not
-+ * represent one of the raw video formats listed in #GstVideoFormat, the
-+ * function will fail and return FALSE.
-+ *
-+ * Since: 0.10.16
-+ *
-+ * Returns: TRUE if @caps was parsed correctly.
-+ */
-+gboolean
-+gst_video_format_parse_caps (GstCaps * caps, GstVideoFormat * format,
-+    int *width, int *height)
-+{
-+  return parse_caps (caps, format, width, height, FALSE, NULL);
-+}
-+
-+/**
-  * gst_video_parse_caps_framerate:
-  * @caps: pointer to a #GstCaps instance
-  * @fps_n: pointer to integer to hold numerator of frame rate (output)
-@@ -534,10 +590,11 @@ gst_video_format_new_caps_interlaced (GstVideoFormat format,
- }
- 
- /**
-- * gst_video_format_new_caps:
-+ * gst_video_format_new_caps_strided:
-  * @format: the #GstVideoFormat describing the raw video format
-  * @width: width of video
-  * @height: height of video
-+ * @rowstride: the rowstride (in bytes), or 0 if no rowstride
-  * @framerate_n: numerator of frame rate
-  * @framerate_d: denominator of frame rate
-  * @par_n: numerator of pixel aspect ratio
-@@ -545,26 +602,29 @@ gst_video_format_new_caps_interlaced (GstVideoFormat format,
-  *
-  * Creates a new #GstCaps object based on the parameters provided.
-  *
-- * Since: 0.10.16
-+ * Since: ???
-  *
-  * Returns: a new #GstCaps object, or NULL if there was an error
-  */
- GstCaps *
--gst_video_format_new_caps (GstVideoFormat format, int width,
--    int height, int framerate_n, int framerate_d, int par_n, int par_d)
-+gst_video_format_new_caps_strided (GstVideoFormat format,
-+    int width, int height, int rowstride,
-+    int framerate_n, int framerate_d, int par_n, int par_d)
- {
-+  GstCaps *caps = NULL;
-+
-   g_return_val_if_fail (format != GST_VIDEO_FORMAT_UNKNOWN, NULL);
-   g_return_val_if_fail (width > 0 && height > 0, NULL);
- 
-   if (gst_video_format_is_yuv (format)) {
--    return gst_caps_new_simple ("video/x-raw-yuv",
-+    caps = gst_caps_new_simple (
-+        rowstride ? "video/x-raw-yuv-strided" : "video/x-raw-yuv",
-         "format", GST_TYPE_FOURCC, gst_video_format_to_fourcc (format),
-         "width", G_TYPE_INT, width,
-         "height", G_TYPE_INT, height,
-         "framerate", GST_TYPE_FRACTION, framerate_n, framerate_d,
-         "pixel-aspect-ratio", GST_TYPE_FRACTION, par_n, par_d, NULL);
--  }
--  if (gst_video_format_is_rgb (format)) {
-+  } else if (gst_video_format_is_rgb (format)) {
-     GstCaps *caps;
-     int red_mask = 0;
-     int blue_mask = 0;
-@@ -663,7 +723,8 @@ gst_video_format_new_caps (GstVideoFormat format, int width,
-       return NULL;
-     }
- 
--    caps = gst_caps_new_simple ("video/x-raw-rgb",
-+    caps = gst_caps_new_simple (
-+        rowstride ? "video/x-raw-rgb-strided" : "video/x-raw-rgb",
-         "bpp", G_TYPE_INT, bpp,
-         "depth", G_TYPE_INT, depth,
-         "width", G_TYPE_INT, width,
-@@ -685,11 +746,7 @@ gst_video_format_new_caps (GstVideoFormat format, int width,
-               width, height));
-       gst_caps_set_simple (caps, "alpha_mask", G_TYPE_INT, alpha_mask, NULL);
-     }
--    return caps;
--  }
--
--  if (gst_video_format_is_gray (format)) {
--    GstCaps *caps;
-+  } else if (gst_video_format_is_gray (format)) {
-     int bpp;
-     int depth;
-     int endianness;
-@@ -730,11 +787,39 @@ gst_video_format_new_caps (GstVideoFormat format, int width,
-           "framerate", GST_TYPE_FRACTION, framerate_n, framerate_d,
-           "pixel-aspect-ratio", GST_TYPE_FRACTION, par_n, par_d, NULL);
-     }
-+  } else {
-+    return NULL;
-+  }
- 
--    return caps;
-+  if (rowstride) {
-+    gst_caps_set_simple (caps, "rowstride", G_TYPE_INT, rowstride, NULL);
-   }
- 
--  return NULL;
-+  return caps;
-+}
-+
-+/**
-+ * gst_video_format_new_caps:
-+ * @format: the #GstVideoFormat describing the raw video format
-+ * @width: width of video
-+ * @height: height of video
-+ * @framerate_n: numerator of frame rate
-+ * @framerate_d: denominator of frame rate
-+ * @par_n: numerator of pixel aspect ratio
-+ * @par_d: denominator of pixel aspect ratio
-+ *
-+ * Creates a new #GstCaps object based on the parameters provided.
-+ *
-+ * Since: 0.10.16
-+ *
-+ * Returns: a new #GstCaps object, or NULL if there was an error
-+ */
-+GstCaps *
-+gst_video_format_new_caps (GstVideoFormat format, int width, int height,
-+    int framerate_n, int framerate_d, int par_n, int par_d)
-+{
-+  return gst_video_format_new_caps_strided (format, width, height, 0,
-+      framerate_n, framerate_d, par_n, par_d);
- }
- 
- /**
-@@ -874,7 +959,7 @@ gst_video_format_to_fourcc (GstVideoFormat format)
-  * @blue_mask: blue bit mask
-  *
-  * Converts red, green, blue bit masks into the corresponding
-- * #GstVideoFormat.  
-+ * #GstVideoFormat.
-  *
-  * Since: 0.10.16
-  *
-@@ -1107,7 +1192,7 @@ gst_video_format_is_gray (GstVideoFormat format)
- /**
-  * gst_video_format_has_alpha:
-  * @format: a #GstVideoFormat
-- * 
-+ *
-  * Returns TRUE or FALSE depending on if the video format provides an
-  * alpha channel.
-  *
-@@ -1877,6 +1962,75 @@ gst_video_format_get_size (GstVideoFormat format, int width, int height)
- }
- 
- /**
-+ * gst_video_format_get_size_strided:
-+ * @format: a #GstVideoFormat
-+ * @width: the width of video (in pixels)
-+ * @height: the height of video (in pixels)
-+ * @rowstride: the rowstride (in bytes), or 0 if no rowstride (in which
-+ *    case the returned value is same as #gst_video_format_get_size())
-+ *
-+ * Calculates the total number of bytes in the raw video format, for a buffer
-+ * which may have a rowstride in bytes
-+ *
-+ * Since: ???
-+ *
-+ * Returns: size (in bytes) of raw video format
-+ */
-+int
-+gst_video_format_get_size_strided (GstVideoFormat format,
-+    int width, int height, int rowstride)
-+{
-+  if(!rowstride)
-+    return gst_video_format_get_size (format, width, height);
-+
-+  g_return_val_if_fail (format != GST_VIDEO_FORMAT_UNKNOWN, 0);
-+  g_return_val_if_fail (width > 0 && height > 0, 0);
-+
-+  switch (format) {
-+    /* all packed formats have the same calculation, ie. rowstride * height
-+     */
-+    case GST_VIDEO_FORMAT_RGBx:
-+    case GST_VIDEO_FORMAT_BGRx:
-+    case GST_VIDEO_FORMAT_xRGB:
-+    case GST_VIDEO_FORMAT_xBGR:
-+    case GST_VIDEO_FORMAT_RGBA:
-+    case GST_VIDEO_FORMAT_BGRA:
-+    case GST_VIDEO_FORMAT_ARGB:
-+    case GST_VIDEO_FORMAT_ABGR:
-+    case GST_VIDEO_FORMAT_RGB16:
-+    case GST_VIDEO_FORMAT_BGR16:
-+    case GST_VIDEO_FORMAT_RGB15:
-+    case GST_VIDEO_FORMAT_BGR15:
-+    case GST_VIDEO_FORMAT_RGB:
-+    case GST_VIDEO_FORMAT_BGR:
-+    case GST_VIDEO_FORMAT_YUY2:
-+    case GST_VIDEO_FORMAT_YVYU:
-+    case GST_VIDEO_FORMAT_UYVY:
-+    case GST_VIDEO_FORMAT_AYUV:
-+    case GST_VIDEO_FORMAT_v210:
-+    case GST_VIDEO_FORMAT_v216:
-+      return GST_ROUND_UP_4 (rowstride * height);
-+
-+    /* these planar formats have 2x sub-sampling in the vertical direction,
-+     * so U/V have half as many rows as Y:
-+     */
-+    case GST_VIDEO_FORMAT_I420:
-+    case GST_VIDEO_FORMAT_YV12:
-+      return GST_ROUND_UP_4 (2 * rowstride * height);
-+
-+    /* these planar formats have no sub-sampling in the vertical direction,
-+     * so each plane has 'height' number of rows
-+     */
-+    case GST_VIDEO_FORMAT_Y41B:
-+    case GST_VIDEO_FORMAT_Y42B:
-+    case GST_VIDEO_FORMAT_Y444:
-+      return GST_ROUND_UP_4 (3 * rowstride * height);
-+    default:
-+      return 0;
-+  }
-+}
-+
-+/**
-  * gst_video_format_convert:
-  * @format: a #GstVideoFormat
-  * @width: the width of video
-diff --git a/gst-libs/gst/video/video.h b/gst-libs/gst/video/video.h
-index 96c5a85..a6a2293 100644
---- a/gst-libs/gst/video/video.h
-+++ b/gst-libs/gst/video/video.h
-@@ -33,7 +33,7 @@ G_BEGIN_DECLS
-  * @GST_VIDEO_FORMAT_I420: planar 4:2:0 YUV
-  * @GST_VIDEO_FORMAT_YV12: planar 4:2:0 YVU (like I420 but UV planes swapped)
-  * @GST_VIDEO_FORMAT_YUY2: packed 4:2:2 YUV (Y0-U0-Y1-V0 Y2-U2-Y3-V2 Y4 ...)
-- * @GST_VIDEO_FORMAT_UYVY: packed 4:2:2 YUV (U0-Y0-V0-Y1 U2-Y2-V2-Y3 U4 ...) 
-+ * @GST_VIDEO_FORMAT_UYVY: packed 4:2:2 YUV (U0-Y0-V0-Y1 U2-Y2-V2-Y3 U4 ...)
-  * @GST_VIDEO_FORMAT_AYUV: packed 4:4:4 YUV with alpha channel (A0-Y0-U0-V0 ...)
-  * @GST_VIDEO_FORMAT_RGBx: sparse rgb packed into 32 bit, space last
-  * @GST_VIDEO_FORMAT_BGRx: sparse reverse rgb packed into 32 bit, space last
-@@ -245,13 +245,13 @@ typedef enum {
- 
- #define GST_VIDEO_CAPS_RGBx \
-     __GST_VIDEO_CAPS_MAKE_32 (1, 2, 3)
--  
-+
- #define GST_VIDEO_CAPS_xRGB \
-     __GST_VIDEO_CAPS_MAKE_32 (2, 3, 4)
--  
-+
- #define GST_VIDEO_CAPS_BGRx \
-     __GST_VIDEO_CAPS_MAKE_32 (3, 2, 1)
--  
-+
- #define GST_VIDEO_CAPS_xBGR \
-     __GST_VIDEO_CAPS_MAKE_32 (4, 3, 2)
- 
-@@ -259,13 +259,13 @@ typedef enum {
- 
- #define GST_VIDEO_CAPS_RGBA \
-     __GST_VIDEO_CAPS_MAKE_32A (1, 2, 3, 4)
--  
-+
- #define GST_VIDEO_CAPS_ARGB \
-     __GST_VIDEO_CAPS_MAKE_32A (2, 3, 4, 1)
--  
-+
- #define GST_VIDEO_CAPS_BGRA \
-     __GST_VIDEO_CAPS_MAKE_32A (3, 2, 1, 4)
--  
-+
- #define GST_VIDEO_CAPS_ABGR \
-     __GST_VIDEO_CAPS_MAKE_32A (4, 3, 2, 1)
- 
-@@ -281,7 +281,7 @@ typedef enum {
-   #define GST_VIDEO_CAPS_BGRx_HOST_ENDIAN \
-       GST_VIDEO_CAPS_xRGB
- #endif
--      
-+
- /* 15/16 bit */
-   
- #define GST_VIDEO_CAPS_RGB_16 \
-@@ -395,13 +395,15 @@ gboolean gst_video_get_size   (GstPad *pad,
-                                gint   *height);
- 
- gboolean gst_video_calculate_display_ratio (guint *dar_n, guint *dar_d,
--            guint video_width, guint video_height, 
--            guint video_par_n, guint video_par_d, 
-+            guint video_width, guint video_height,
-+            guint video_par_n, guint video_par_d,
-             guint display_par_n, guint display_par_d);
- 
- gboolean gst_video_format_parse_caps (GstCaps *caps, GstVideoFormat *format,
-     int *width, int *height);
- gboolean gst_video_format_parse_caps_interlaced (GstCaps *caps, gboolean *interlaced);
-+gboolean gst_video_format_parse_caps_strided (GstCaps * caps, GstVideoFormat * format,
-+    int *width, int *height, int *rowstride);
- gboolean gst_video_parse_caps_framerate (GstCaps *caps,
-     int *fps_n, int *fps_d);
- gboolean gst_video_parse_caps_pixel_aspect_ratio (GstCaps *caps,
-@@ -415,6 +417,9 @@ GstCaps * gst_video_format_new_caps (GstVideoFormat format,
- GstCaps * gst_video_format_new_caps_interlaced (GstVideoFormat format,
-     int width, int height, int framerate_n, int framerate_d,
- 						int par_n, int par_d, gboolean interlaced);
-+GstCaps * gst_video_format_new_caps_strided (GstVideoFormat format,
-+    int width, int height, int rowstride,
-+    int framerate_n, int framerate_d, int par_n, int par_d);
- GstVideoFormat gst_video_format_from_fourcc (guint32 fourcc);
- guint32 gst_video_format_to_fourcc (GstVideoFormat format);
- gboolean gst_video_format_is_rgb (GstVideoFormat format);
-@@ -431,6 +436,8 @@ int gst_video_format_get_component_height (GstVideoFormat format, int component,
- int gst_video_format_get_component_offset (GstVideoFormat format, int component,
-     int width, int height);
- int gst_video_format_get_size (GstVideoFormat format, int width, int height);
-+int gst_video_format_get_size_strided (GstVideoFormat format,
-+    int width, int height, int rowstride);
- gboolean gst_video_format_convert (GstVideoFormat format, int width, int height,
-     int fps_n, int fps_d,
-     GstFormat src_format, gint64 src_value,
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0002-stridetransform-skeletal-implementation-of-stridetra.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0002-stridetransform-skeletal-implementation-of-stridetra.patch
deleted file mode 100644
index 6e88172..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0002-stridetransform-skeletal-implementation-of-stridetra.patch
+++ /dev/null
@@ -1,368 +0,0 @@
-From 9820616aad713a23aa9d0e2afe44835d9e9278e5 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Thu, 30 Jul 2009 20:41:18 -0500
-Subject: [PATCH 02/24] stridetransform: skeletal implementation of stridetransform element
-
----
- configure.ac                    |    2 +
- gst/stride/Makefile.am          |   15 ++++
- gst/stride/gststridetransform.c |  178 +++++++++++++++++++++++++++++++++++++++
- gst/stride/gststridetransform.h |   66 ++++++++++++++
- gst/stride/plugin.c             |   45 ++++++++++
- 5 files changed, 306 insertions(+), 0 deletions(-)
- create mode 100644 gst/stride/Makefile.am
- create mode 100644 gst/stride/gststridetransform.c
- create mode 100644 gst/stride/gststridetransform.h
- create mode 100644 gst/stride/plugin.c
-
-diff --git a/configure.ac b/configure.ac
-index 3325abc..af6cd52 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -427,6 +427,7 @@ AG_GST_CHECK_PLUGIN(ffmpegcolorspace)
- AG_GST_CHECK_PLUGIN(gdp)
- AG_GST_CHECK_PLUGIN(playback)
- AG_GST_CHECK_PLUGIN(audioresample)
-+AG_GST_CHECK_PLUGIN(stride)
- AG_GST_CHECK_PLUGIN(subparse)
- AG_GST_CHECK_PLUGIN(tcp)
- AG_GST_CHECK_PLUGIN(typefind)
-@@ -925,6 +926,7 @@ gst/ffmpegcolorspace/Makefile
- gst/gdp/Makefile
- gst/playback/Makefile
- gst/audioresample/Makefile
-+gst/stride/Makefile
- gst/subparse/Makefile
- gst/tcp/Makefile
- gst/typefind/Makefile
-diff --git a/gst/stride/Makefile.am b/gst/stride/Makefile.am
-new file mode 100644
-index 0000000..1adc197
---- /dev/null
-+++ b/gst/stride/Makefile.am
-@@ -0,0 +1,15 @@
-+plugin_LTLIBRARIES = libgststridetransform.la
-+
-+libgststridetransform_la_SOURCES = \
-+	gststridetransform.c \
-+	plugin.c
-+
-+libgststridetransform_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
-+libgststridetransform_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-+libgststridetransform_la_LIBADD = \
-+	$(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_MAJORMINOR@.la \
-+	$(GST_BASE_LIBS) $(GST_LIBS) $(LIBM)
-+libgststridetransform_la_LIBTOOLFLAGS = --tag=disable-static
-+
-+noinst_HEADERS = \
-+	gststridetransform.h
-diff --git a/gst/stride/gststridetransform.c b/gst/stride/gststridetransform.c
-new file mode 100644
-index 0000000..21f2d6e
---- /dev/null
-+++ b/gst/stride/gststridetransform.c
-@@ -0,0 +1,178 @@
-+/* GStreamer
-+ *
-+ * Copyright (C) 2009 Texas Instruments, Inc - http://www.ti.com/
-+ *
-+ * Description: V4L2 sink element
-+ *  Created on: Jul 30, 2009
-+ *      Author: Rob Clark <rob@ti.com>
-+ *
-+ * 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.
-+ */
-+
-+
-+/**
-+ * SECTION:element-stridetransform
-+ *
-+ * stridetransform can be used to convert between video buffers
-+ * with and without stride, or between buffers with differing
-+ * stride
-+ *
-+ * <refsect2>
-+ * <title>Example launch lines</title>
-+ * |[
-+ * gst-launch ???? TODO
-+ * ]| This pipeline ???? TODO
-+ * </refsect2>
-+ */
-+
-+
-+#ifdef HAVE_CONFIG_H
-+#include <config.h>
-+#endif
-+
-+#include "gststridetransform.h"
-+#include "gst/gst-i18n-plugin.h"
-+
-+
-+static const GstElementDetails stridetransform_details =
-+GST_ELEMENT_DETAILS ("Stride transform",
-+    "Filter/Converter/Video",
-+    "Convert between video buffers with and without stride, or with differing stride",
-+    "Rob Clark <rob@ti.com>,");
-+
-+GST_DEBUG_CATEGORY (stridetransform_debug);
-+#define GST_CAT_DEFAULT stridetransform_debug
-+
-+/* type functions */
-+static void gst_stride_transform_dispose (GObject * obj);
-+
-+/* GstBaseTransform functions */
-+static gboolean gst_stride_transform_get_unit_size (GstBaseTransform * base,
-+    GstCaps * caps, guint * size);
-+static GstCaps *gst_stride_transform_transform_caps (GstBaseTransform * base,
-+    GstPadDirection direction, GstCaps * caps);
-+static void gst_stride_transform_fixate_caps (GstBaseTransform * base,
-+    GstPadDirection direction, GstCaps * caps, GstCaps * othercaps);
-+static gboolean gst_stride_transform_set_caps (GstBaseTransform * base,
-+    GstCaps * incaps, GstCaps * outcaps);
-+static GstFlowReturn gst_stride_transform_transform (GstBaseTransform * base,
-+    GstBuffer * inbuf, GstBuffer * outbuf);
-+static GstFlowReturn gst_stride_transform_transform_ip (GstBaseTransform * base,
-+    GstBuffer * buf);
-+
-+GST_BOILERPLATE (GstStrideTransform, gst_stride_transform, GstVideoFilter, GST_TYPE_VIDEO_FILTER);
-+
-+
-+static void
-+gst_stride_transform_base_init (gpointer g_class)
-+{
-+  GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class);
-+
-+  GST_DEBUG_CATEGORY_INIT (stridetransform_debug, "stride", 0, "stride transform element");
-+
-+  gst_element_class_set_details (gstelement_class, &stridetransform_details);
-+}
-+
-+static void
-+gst_stride_transform_class_init (GstStrideTransformClass * klass)
-+{
-+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-+  GstBaseTransformClass *basetransform_class = GST_BASE_TRANSFORM_CLASS (klass);
-+
-+  gobject_class->dispose = gst_stride_transform_dispose;
-+
-+  basetransform_class->get_unit_size =
-+      GST_DEBUG_FUNCPTR (gst_stride_transform_get_unit_size);
-+  basetransform_class->transform_caps =
-+      GST_DEBUG_FUNCPTR (gst_stride_transform_transform_caps);
-+  basetransform_class->fixate_caps =
-+      GST_DEBUG_FUNCPTR (gst_stride_transform_fixate_caps);
-+  basetransform_class->set_caps =
-+      GST_DEBUG_FUNCPTR (gst_stride_transform_set_caps);
-+  basetransform_class->transform_ip =
-+      GST_DEBUG_FUNCPTR (gst_stride_transform_transform_ip);
-+  basetransform_class->transform =
-+      GST_DEBUG_FUNCPTR (gst_stride_transform_transform);
-+
-+  basetransform_class->passthrough_on_same_caps = TRUE;
-+}
-+
-+static void
-+gst_stride_transform_init (GstStrideTransform * self, GstStrideTransformClass * klass)
-+{
-+  GST_DEBUG_OBJECT (self, "not implemented");
-+}
-+
-+
-+static void
-+gst_stride_transform_dispose (GObject * object)
-+{
-+  GstStrideTransform *self = GST_STRIDE_TRANSFORM (object);
-+  GST_DEBUG_OBJECT (self, "not implemented");
-+  G_OBJECT_CLASS (parent_class)->dispose (object);
-+}
-+
-+static gboolean
-+gst_stride_transform_get_unit_size (GstBaseTransform * base,
-+    GstCaps * caps, guint * size)
-+{
-+  GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
-+  GST_DEBUG_OBJECT (self, "not implemented");
-+  return FALSE;
-+}
-+
-+static GstCaps *
-+gst_stride_transform_transform_caps (GstBaseTransform * base,
-+    GstPadDirection direction, GstCaps * caps)
-+{
-+  GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
-+  GST_DEBUG_OBJECT (self, "not implemented");
-+  return NULL;
-+}
-+
-+static void
-+gst_stride_transform_fixate_caps (GstBaseTransform * base,
-+    GstPadDirection direction, GstCaps * caps, GstCaps * othercaps)
-+{
-+  GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
-+  GST_DEBUG_OBJECT (self, "not implemented");
-+}
-+
-+static gboolean
-+gst_stride_transform_set_caps (GstBaseTransform * base,
-+    GstCaps * incaps, GstCaps * outcaps)
-+{
-+  GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
-+  GST_DEBUG_OBJECT (self, "not implemented");
-+  return FALSE;
-+}
-+
-+static GstFlowReturn gst_stride_transform_transform (GstBaseTransform * base,
-+    GstBuffer * inbuf, GstBuffer * outbuf)
-+{
-+  GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
-+  GST_DEBUG_OBJECT (self, "not implemented");
-+  return GST_FLOW_ERROR;
-+}
-+
-+static GstFlowReturn
-+gst_stride_transform_transform_ip (GstBaseTransform * base,
-+    GstBuffer * buf)
-+{
-+  GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
-+  GST_DEBUG_OBJECT (self, "not implemented");
-+  return GST_FLOW_ERROR;
-+}
-diff --git a/gst/stride/gststridetransform.h b/gst/stride/gststridetransform.h
-new file mode 100644
-index 0000000..b4f7d59
---- /dev/null
-+++ b/gst/stride/gststridetransform.h
-@@ -0,0 +1,66 @@
-+/* GStreamer
-+ *
-+ * Copyright (C) 2009 Texas Instruments, Inc - http://www.ti.com/
-+ *
-+ * Description: V4L2 sink element
-+ *  Created on: Jul 2, 2009
-+ *      Author: Rob Clark <rob@ti.com>
-+ *
-+ * 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.
-+ */
-+
-+#ifndef __GSTSTRIDETRANSFORM_H__
-+#define __GSTSTRIDETRANSFORM_H__
-+
-+
-+#include <gst/video/gstvideofilter.h>
-+
-+G_BEGIN_DECLS
-+
-+#define GST_TYPE_STRIDE_TRANSFORM \
-+  (gst_stride_transform_get_type())
-+#define GST_STRIDE_TRANSFORM(obj) \
-+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_STRIDE_TRANSFORM,GstStrideTransform))
-+#define GST_STRIDE_TRANSFORM_CLASS(klass) \
-+  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_STRIDE_TRANSFORM,GstStrideTransformClass))
-+#define GST_IS_STRIDE_TRANSFORM(obj) \
-+  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_STRIDE_TRANSFORM))
-+#define GST_IS_STRIDE_TRANSFORM_CLASS(klass) \
-+  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_STRIDE_TRANSFORM))
-+
-+typedef struct _GstStrideTransform GstStrideTransform;
-+typedef struct _GstStrideTransformClass GstStrideTransformClass;
-+
-+/**
-+ * GstStrideTransform:
-+ *
-+ * Opaque datastructure.
-+ */
-+struct _GstStrideTransform {
-+  GstVideoFilter videofilter;
-+
-+};
-+
-+struct _GstStrideTransformClass {
-+  GstVideoFilterClass parent_class;
-+};
-+
-+GType gst_stride_transform_get_type (void);
-+
-+G_END_DECLS
-+
-+
-+#endif /* __GSTSTRIDETRANSFORM_H__ */
-diff --git a/gst/stride/plugin.c b/gst/stride/plugin.c
-new file mode 100644
-index 0000000..7672bdc
---- /dev/null
-+++ b/gst/stride/plugin.c
-@@ -0,0 +1,45 @@
-+/* GStreamer
-+ *
-+ * Copyright (C) 2009 Texas Instruments, Inc - http://www.ti.com/
-+ *
-+ * Description: V4L2 sink element
-+ *  Created on: Jul 30, 2009
-+ *      Author: Rob Clark <rob@ti.com>
-+ *
-+ * 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 "gststridetransform.h"
-+
-+static gboolean
-+plugin_init (GstPlugin * plugin)
-+{
-+  if (!gst_element_register (plugin, "stridetransform",
-+          GST_RANK_PRIMARY, gst_stride_transform_get_type ()))
-+    return FALSE;
-+
-+  return TRUE;
-+}
-+
-+GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
-+    GST_VERSION_MINOR,
-+    "stridetransform",
-+    "Convert video from strided to non-strided, or between different row-strides",
-+    plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN)
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0003-stridetransform-implement-caps-negotiation-and-relat.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0003-stridetransform-implement-caps-negotiation-and-relat.patch
deleted file mode 100644
index faf97a1..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0003-stridetransform-implement-caps-negotiation-and-relat.patch
+++ /dev/null
@@ -1,379 +0,0 @@
-From c235770f9e1c73dc75d6873166bc1ef69770a6c1 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Fri, 31 Jul 2009 16:31:42 -0500
-Subject: [PATCH 03/24] stridetransform: implement caps negotiation and related parts
-
-now all that is left is to implement the actual transform functions
----
- gst-libs/gst/video/video.h      |   10 ++
- gst/stride/gststridetransform.c |  190 ++++++++++++++++++++++++++++++---------
- gst/stride/gststridetransform.h |   38 ++++++++
- 3 files changed, 196 insertions(+), 42 deletions(-)
-
-diff --git a/gst-libs/gst/video/video.h b/gst-libs/gst/video/video.h
-index a6a2293..5bac21f 100644
---- a/gst-libs/gst/video/video.h
-+++ b/gst-libs/gst/video/video.h
-@@ -356,6 +356,16 @@ typedef enum {
-         "height = " GST_VIDEO_SIZE_RANGE ", "                           \
-         "framerate = " GST_VIDEO_FPS_RANGE
- 
-+
-+#define GST_VIDEO_CAPS_YUV_STRIDED(fourcc, rowstride)                   \
-+        GST_VIDEO_CAPS_YUV(fourcc) "; "                                 \
-+        "video/x-raw-yuv-strided, "                                     \
-+        "format = (fourcc) " fourcc ", "                                \
-+        "rowstride = (int) " rowstride ", "                             \
-+        "width = " GST_VIDEO_SIZE_RANGE ", "                            \
-+        "height = " GST_VIDEO_SIZE_RANGE ", "                           \
-+        "framerate = " GST_VIDEO_FPS_RANGE
-+
- /* buffer flags */
- 
- /**
-diff --git a/gst/stride/gststridetransform.c b/gst/stride/gststridetransform.c
-index 21f2d6e..e31bf11 100644
---- a/gst/stride/gststridetransform.c
-+++ b/gst/stride/gststridetransform.c
-@@ -33,7 +33,10 @@
-  * <refsect2>
-  * <title>Example launch lines</title>
-  * |[
-- * gst-launch ???? TODO
-+ * gst-launch videotestsrc ! video/x-raw-yuv,format=(fourcc)YUY2,width=320,height=240,framerate=30/1 !
-+ * stridetransform ! video/x-raw-yuv-strided,format=(fourcc)YUY2,width=320,height=240,rowstride=700,framerate=30/1 !
-+ * stridetransform ! video/x-raw-yuv,format=(fourcc)YUY2,width=320,height=240,framerate=30/1 !
-+ * v4l2sink
-  * ]| This pipeline ???? TODO
-  * </refsect2>
-  */
-@@ -43,8 +46,11 @@
- #include <config.h>
- #endif
- 
--#include "gststridetransform.h"
-+#include <string.h>
-+#include <gst/video/video.h>
-+
- #include "gst/gst-i18n-plugin.h"
-+#include "gststridetransform.h"
- 
- 
- static const GstElementDetails stridetransform_details =
-@@ -53,25 +59,44 @@ GST_ELEMENT_DETAILS ("Stride transform",
-     "Convert between video buffers with and without stride, or with differing stride",
-     "Rob Clark <rob@ti.com>,");
- 
-+
-+/* TODO: add rgb formats too! */
-+#define SUPPORTED_CAPS                                                        \
-+  GST_VIDEO_CAPS_YUV_STRIDED ("{ I420, YV12, YUY2 }", "[ 0, max ]")
-+
-+
-+static GstStaticPadTemplate src_template =
-+GST_STATIC_PAD_TEMPLATE ("src",
-+    GST_PAD_SRC,
-+    GST_PAD_ALWAYS,
-+    GST_STATIC_CAPS (SUPPORTED_CAPS)
-+    );
-+
-+static GstStaticPadTemplate sink_template =
-+GST_STATIC_PAD_TEMPLATE ("sink",
-+    GST_PAD_SINK,
-+    GST_PAD_ALWAYS,
-+    GST_STATIC_CAPS (SUPPORTED_CAPS)
-+    );
-+
-+
- GST_DEBUG_CATEGORY (stridetransform_debug);
- #define GST_CAT_DEFAULT stridetransform_debug
- 
- /* type functions */
--static void gst_stride_transform_dispose (GObject * obj);
-+static void gst_stride_transform_dispose (GObject *obj);
- 
- /* GstBaseTransform functions */
--static gboolean gst_stride_transform_get_unit_size (GstBaseTransform * base,
--    GstCaps * caps, guint * size);
--static GstCaps *gst_stride_transform_transform_caps (GstBaseTransform * base,
--    GstPadDirection direction, GstCaps * caps);
--static void gst_stride_transform_fixate_caps (GstBaseTransform * base,
--    GstPadDirection direction, GstCaps * caps, GstCaps * othercaps);
--static gboolean gst_stride_transform_set_caps (GstBaseTransform * base,
--    GstCaps * incaps, GstCaps * outcaps);
--static GstFlowReturn gst_stride_transform_transform (GstBaseTransform * base,
--    GstBuffer * inbuf, GstBuffer * outbuf);
--static GstFlowReturn gst_stride_transform_transform_ip (GstBaseTransform * base,
--    GstBuffer * buf);
-+static gboolean gst_stride_transform_get_unit_size (GstBaseTransform *base,
-+    GstCaps *caps, guint *size);
-+static GstCaps *gst_stride_transform_transform_caps (GstBaseTransform *base,
-+    GstPadDirection direction, GstCaps *caps);
-+static gboolean gst_stride_transform_set_caps (GstBaseTransform *base,
-+    GstCaps *incaps, GstCaps *outcaps);
-+static GstFlowReturn gst_stride_transform_transform (GstBaseTransform *base,
-+    GstBuffer *inbuf, GstBuffer *outbuf);
-+static GstFlowReturn gst_stride_transform_transform_ip (GstBaseTransform *base,
-+    GstBuffer *buf);
- 
- GST_BOILERPLATE (GstStrideTransform, gst_stride_transform, GstVideoFilter, GST_TYPE_VIDEO_FILTER);
- 
-@@ -84,10 +109,15 @@ gst_stride_transform_base_init (gpointer g_class)
-   GST_DEBUG_CATEGORY_INIT (stridetransform_debug, "stride", 0, "stride transform element");
- 
-   gst_element_class_set_details (gstelement_class, &stridetransform_details);
-+
-+  gst_element_class_add_pad_template (gstelement_class,
-+      gst_static_pad_template_get (&sink_template));
-+  gst_element_class_add_pad_template (gstelement_class,
-+      gst_static_pad_template_get (&src_template));
- }
- 
- static void
--gst_stride_transform_class_init (GstStrideTransformClass * klass)
-+gst_stride_transform_class_init (GstStrideTransformClass *klass)
- {
-   GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-   GstBaseTransformClass *basetransform_class = GST_BASE_TRANSFORM_CLASS (klass);
-@@ -98,8 +128,6 @@ gst_stride_transform_class_init (GstStrideTransformClass * klass)
-       GST_DEBUG_FUNCPTR (gst_stride_transform_get_unit_size);
-   basetransform_class->transform_caps =
-       GST_DEBUG_FUNCPTR (gst_stride_transform_transform_caps);
--  basetransform_class->fixate_caps =
--      GST_DEBUG_FUNCPTR (gst_stride_transform_fixate_caps);
-   basetransform_class->set_caps =
-       GST_DEBUG_FUNCPTR (gst_stride_transform_set_caps);
-   basetransform_class->transform_ip =
-@@ -111,57 +139,135 @@ gst_stride_transform_class_init (GstStrideTransformClass * klass)
- }
- 
- static void
--gst_stride_transform_init (GstStrideTransform * self, GstStrideTransformClass * klass)
-+gst_stride_transform_init (GstStrideTransform *self, GstStrideTransformClass *klass)
- {
-   GST_DEBUG_OBJECT (self, "not implemented");
- }
- 
- 
- static void
--gst_stride_transform_dispose (GObject * object)
-+gst_stride_transform_dispose (GObject *object)
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (object);
-   GST_DEBUG_OBJECT (self, "not implemented");
-   G_OBJECT_CLASS (parent_class)->dispose (object);
- }
- 
-+/**
-+ * figure out the required buffer size based on @caps
-+ */
- static gboolean
--gst_stride_transform_get_unit_size (GstBaseTransform * base,
--    GstCaps * caps, guint * size)
-+gst_stride_transform_get_unit_size (GstBaseTransform *base,
-+    GstCaps *caps, guint *size)
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
--  GST_DEBUG_OBJECT (self, "not implemented");
--  return FALSE;
-+  GstVideoFormat format;
-+  gint width, height, rowstride;
-+
-+  g_return_val_if_fail (gst_video_format_parse_caps_strided (
-+      caps, &format, &width, &height, &rowstride), FALSE);
-+
-+  *size = gst_video_format_get_size_strided (format, width, height, rowstride);
-+
-+  GST_DEBUG_OBJECT (self,
-+      "format=%d, width=%d, height=%d, rowstride=%d -> size=%d",
-+      format, width, height, rowstride, *size);
-+
-+  return TRUE;
- }
- 
--static GstCaps *
--gst_stride_transform_transform_caps (GstBaseTransform * base,
--    GstPadDirection direction, GstCaps * caps)
-+
-+/**
-+ * helper to add all fields, other than rowstride to @caps, copied from @s.
-+ */
-+static void
-+add_all_fields (GstCaps *caps, const gchar *name, GstStructure *s, gboolean rowstride)
- {
--  GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
--  GST_DEBUG_OBJECT (self, "not implemented");
--  return NULL;
-+  gint idx;
-+  GstStructure *new_s = gst_structure_new (name, NULL);
-+
-+  if (rowstride) {
-+    gst_structure_set (new_s, "rowstride", GST_TYPE_INT_RANGE, 1, 1000, NULL);  // XXX
-+  }
-+
-+  idx = gst_structure_n_fields (s) - 1;
-+  while (idx >= 0) {
-+    const gchar *name = gst_structure_nth_field_name (s, idx);
-+    if (strcmp ("rowstride", name)) {
-+      const GValue *val = gst_structure_get_value (s, name);
-+      gst_structure_set_value (new_s, name, val);
-+    }
-+    idx--;
-+  }
-+
-+  gst_caps_merge_structure (caps, new_s);
- }
- 
--static void
--gst_stride_transform_fixate_caps (GstBaseTransform * base,
--    GstPadDirection direction, GstCaps * caps, GstCaps * othercaps)
-+
-+/**
-+ * we can transform @caps to strided or non-strided caps with otherwise
-+ * identical parameters
-+ */
-+static GstCaps *
-+gst_stride_transform_transform_caps (GstBaseTransform *base,
-+    GstPadDirection direction, GstCaps *caps)
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
--  GST_DEBUG_OBJECT (self, "not implemented");
-+  GstCaps *ret;
-+  GstStructure *s;
-+
-+  g_return_val_if_fail (GST_CAPS_IS_SIMPLE (caps), NULL);
-+
-+  GST_DEBUG_OBJECT (self, "direction=%d, caps=%p", direction, caps);
-+  LOG_CAPS (self, caps);
-+
-+  ret = gst_caps_new_empty ();
-+  s = gst_caps_get_structure (caps, 0);
-+
-+  if (gst_structure_has_name (s, "video/x-raw-yuv") ||
-+      gst_structure_has_name (s, "video/x-raw-yuv-strided")) {
-+
-+    add_all_fields (ret, "video/x-raw-yuv", s, FALSE);
-+    add_all_fields (ret, "video/x-raw-yuv-strided", s, TRUE);
-+
-+  } else if (gst_structure_has_name (s, "video/x-raw-rgb") ||
-+      gst_structure_has_name (s, "video/x-raw-rgb-strided")) {
-+
-+    add_all_fields (ret, "video/x-raw-rgb", s, FALSE);
-+    add_all_fields (ret, "video/x-raw-rgb-strided", s, TRUE);
-+
-+  }
-+
-+  LOG_CAPS (self, ret);
-+
-+  return ret;
- }
- 
-+/**
-+ * at this point, we have identical fourcc, width, and height for @incaps
-+ * and @outcaps..  so we need to extract these to use for transforming,
-+ * plus the requested rowstride of the @incaps and @outcaps
-+ */
- static gboolean
--gst_stride_transform_set_caps (GstBaseTransform * base,
--    GstCaps * incaps, GstCaps * outcaps)
-+gst_stride_transform_set_caps (GstBaseTransform *base,
-+    GstCaps *incaps, GstCaps *outcaps)
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
--  GST_DEBUG_OBJECT (self, "not implemented");
--  return FALSE;
-+
-+  LOG_CAPS (self, incaps);
-+  LOG_CAPS (self, outcaps);
-+
-+  g_return_val_if_fail (gst_video_format_parse_caps_strided (incaps,
-+      &self->format, &self->width, &self->height, &self->in_rowstride), FALSE);
-+  g_return_val_if_fail (gst_video_format_parse_caps_strided (outcaps,
-+      NULL, NULL, NULL, &self->out_rowstride), FALSE);
-+
-+  return TRUE;
- }
- 
--static GstFlowReturn gst_stride_transform_transform (GstBaseTransform * base,
--    GstBuffer * inbuf, GstBuffer * outbuf)
-+static GstFlowReturn
-+gst_stride_transform_transform (GstBaseTransform *base,
-+    GstBuffer *inbuf, GstBuffer *outbuf)
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
-   GST_DEBUG_OBJECT (self, "not implemented");
-@@ -169,8 +275,8 @@ static GstFlowReturn gst_stride_transform_transform (GstBaseTransform * base,
- }
- 
- static GstFlowReturn
--gst_stride_transform_transform_ip (GstBaseTransform * base,
--    GstBuffer * buf)
-+gst_stride_transform_transform_ip (GstBaseTransform *base,
-+    GstBuffer *buf)
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
-   GST_DEBUG_OBJECT (self, "not implemented");
-diff --git a/gst/stride/gststridetransform.h b/gst/stride/gststridetransform.h
-index b4f7d59..d80197f 100644
---- a/gst/stride/gststridetransform.h
-+++ b/gst/stride/gststridetransform.h
-@@ -27,6 +27,8 @@
- 
- 
- #include <gst/video/gstvideofilter.h>
-+#include <gst/video/video.h>
-+
- 
- G_BEGIN_DECLS
- 
-@@ -52,6 +54,11 @@ typedef struct _GstStrideTransformClass GstStrideTransformClass;
- struct _GstStrideTransform {
-   GstVideoFilter videofilter;
- 
-+  /*< private >*/
-+  GstVideoFormat format;
-+  gint width, height;
-+  gint in_rowstride;
-+  gint out_rowstride;
- };
- 
- struct _GstStrideTransformClass {
-@@ -63,4 +70,35 @@ GType gst_stride_transform_get_type (void);
- G_END_DECLS
- 
- 
-+
-+
-+/* note:  in case this is a build with TTIF logging, we can optimize slightly
-+ * and avoid the gst_caps_to_string() in case logging isn't enabled by using
-+ * the TTIF_TRACE_ARG_PROCESSOR feature of ttif_trace_fprintf():
-+ */
-+#ifdef GST_LOG_OVER_TTIF
-+#  define LOG_CAPS(obj, caps)    G_STMT_START {                 \
-+    if (caps) {                                                 \
-+      static TTIF_TRACE_ARG_PROCESSOR proc = {                  \
-+        .convert = (char (*)(void *))gst_caps_to_string,        \
-+        .free    = (void (*)(char *))g_free                     \
-+      };                                                        \
-+      GST_DEBUG_OBJECT (obj, "%s: %qs", #caps, &proc, (caps));  \
-+    } else {                                                    \
-+      GST_DEBUG_OBJECT (obj, "null");                           \
-+    }                                                           \
-+  } G_STMT_END
-+#else
-+#  define LOG_CAPS(obj, caps)    G_STMT_START {                 \
-+    if (caps) {                                                 \
-+      gchar *capstr = gst_caps_to_string (caps);                \
-+      GST_DEBUG_OBJECT (obj, "%s: %s", #caps, capstr);          \
-+      g_free (capstr);                                          \
-+    } else {                                                    \
-+      GST_DEBUG_OBJECT (obj, "null");                           \
-+    }                                                           \
-+  } G_STMT_END
-+#endif
-+
-+
- #endif /* __GSTSTRIDETRANSFORM_H__ */
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0004-stridetransform-implement-transform-function.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0004-stridetransform-implement-transform-function.patch
deleted file mode 100644
index b948c02..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0004-stridetransform-implement-transform-function.patch
+++ /dev/null
@@ -1,215 +0,0 @@
-From 44d68a183355bce2dd7b6c890f67420ab300e0b4 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Fri, 31 Jul 2009 17:39:47 -0500
-Subject: [PATCH 04/24] stridetransform: implement transform function
-
-Still needed are a few details, like conversion from one stride to another (instead of just strided->nonstrided or visa versa), and support for RGB and more YUV color formats.
----
- gst/stride/gststridetransform.c |  163 +++++++++++++++++++++++++++++++++++++--
- 1 files changed, 157 insertions(+), 6 deletions(-)
-
-diff --git a/gst/stride/gststridetransform.c b/gst/stride/gststridetransform.c
-index e31bf11..a911cd0 100644
---- a/gst/stride/gststridetransform.c
-+++ b/gst/stride/gststridetransform.c
-@@ -187,7 +187,7 @@ add_all_fields (GstCaps *caps, const gchar *name, GstStructure *s, gboolean rows
-   GstStructure *new_s = gst_structure_new (name, NULL);
- 
-   if (rowstride) {
--    gst_structure_set (new_s, "rowstride", GST_TYPE_INT_RANGE, 1, 1000, NULL);  // XXX
-+    gst_structure_set (new_s, "rowstride", GST_TYPE_INT_RANGE, 1, 1000, NULL);  // TODO
-   }
- 
-   idx = gst_structure_n_fields (s) - 1;
-@@ -253,6 +253,8 @@ gst_stride_transform_set_caps (GstBaseTransform *base,
-     GstCaps *incaps, GstCaps *outcaps)
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
-+  GstVideoFormat format;
-+  gint width, height;
- 
-   LOG_CAPS (self, incaps);
-   LOG_CAPS (self, outcaps);
-@@ -260,17 +262,166 @@ gst_stride_transform_set_caps (GstBaseTransform *base,
-   g_return_val_if_fail (gst_video_format_parse_caps_strided (incaps,
-       &self->format, &self->width, &self->height, &self->in_rowstride), FALSE);
-   g_return_val_if_fail (gst_video_format_parse_caps_strided (outcaps,
--      NULL, NULL, NULL, &self->out_rowstride), FALSE);
-+      &format, &width, &height, &self->out_rowstride), FALSE);
-+
-+  g_return_val_if_fail (self->format == format, FALSE);
-+  g_return_val_if_fail (self->width  == width,  FALSE);
-+  g_return_val_if_fail (self->height == height, FALSE);
- 
-   return TRUE;
- }
- 
-+/* ************************************************************************* */
-+
-+/**
-+ * Convert from one stride to another... like memmove, but can convert stride in
-+ * the process.  This function is not aware of pixels, only of bytes.  So widths
-+ * are given in bytes, not pixels.  The new_buf and orig_buf can point to the
-+ * same buffers to do an in-place conversion, but the buffer should be large
-+ * enough.
-+ */
-+static void
-+stridemove (guchar *new_buf, guchar *orig_buf, gint new_width, gint orig_width, gint height)
-+{
-+  int row;
-+
-+  GST_DEBUG ("new_buf=%p, orig_buf=%p, new_width=%d, orig_width=%d, height=%d",
-+      new_buf, orig_buf, new_width, orig_width, height);
-+  /* if increasing the stride, work from bottom-up to avoid overwriting data
-+   * that has not been moved yet.. otherwise, work in the opposite order,
-+   * for the same reason.
-+   */
-+  if (new_width > orig_width) {
-+    for (row=height-1; row>=0; row--) {
-+      memmove (new_buf+(new_width*row), orig_buf+(orig_width*row), orig_width);
-+    }
-+  } else {
-+    for (row=0; row<height; row++) {
-+      memmove (new_buf+(new_width*row), orig_buf+(orig_width*row), orig_width);
-+    }
-+  }
-+}
-+
-+
-+/**
-+ * Convert from a non-strided buffer to strided.  The two buffer pointers could
-+ * be pointing to the same memory block for in-place transform.. assuming that
-+ * the buffer is large enough
-+ *
-+ * @strided:    the pointer to the resulting strided buffer
-+ * @unstrided:  the pointer to the initial unstrided buffer
-+ * @fourcc:     the color format
-+ * @stride:     the stride, in bytes
-+ * @width:      the width in pixels
-+ * @height:     the height in pixels
-+ */
-+static GstFlowReturn
-+stridify (GstStrideTransform *self, guchar *strided, guchar *unstrided)
-+{
-+  gint width  = self->width;
-+  gint height = self->height;
-+  gint stride = self->out_rowstride;
-+
-+  switch (self->format) {
-+#if 0 /* TODO */
-+    case GST_VIDEO_FORMAT_NV12:
-+      g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-+      stridemove (strided, unstrided, stride, width, height * 1.5);
-+      return GST_FLOW_OK;
-+#endif
-+    case GST_VIDEO_FORMAT_I420:
-+    case GST_VIDEO_FORMAT_YV12:
-+      g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-+      stridemove (
-+          strided + (int)(height*stride*1.5),
-+          unstrided + (int)(height*width*1.5),
-+          stride, width/2, height);                             /* move U/V */
-+      stridemove (
-+          strided + (height*stride),
-+          unstrided + (height*width),
-+          stride, width/2, height);                             /* move V/U */
-+      stridemove (strided, unstrided, stride, width, height);   /* move Y */
-+      return GST_FLOW_OK;
-+    case GST_VIDEO_FORMAT_YUY2:
-+    case GST_VIDEO_FORMAT_UYVY:
-+      g_return_val_if_fail (stride >= (width*2), GST_FLOW_ERROR);
-+      stridemove (strided, unstrided, stride, width*2, height);
-+      return GST_FLOW_OK;
-+    default:
-+      GST_WARNING ("unknown color format!\n");
-+      return GST_FLOW_ERROR;
-+  }
-+}
-+
-+
-+/**
-+ * Convert from a strided buffer to non-strided.  The two buffer pointers could
-+ * be pointing to the same memory block for in-place transform..
-+ *
-+ * @unstrided:  the pointer to the resulting unstrided buffer
-+ * @strided:    the pointer to the initial strided buffer
-+ */
-+static GstFlowReturn
-+unstridify (GstStrideTransform *self, guchar *unstrided, guchar *strided)
-+{
-+  gint width  = self->width;
-+  gint height = self->height;
-+  gint stride = self->in_rowstride;
-+
-+  switch (self->format) {
-+#if 0 /* TODO */
-+    case GST_VIDEO_FORMAT_NV12:
-+      g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-+      stridemove (unstrided, strided, width, stride, height * 1.5);
-+      return GST_FLOW_OK;
-+#endif
-+    case GST_VIDEO_FORMAT_I420:
-+    case GST_VIDEO_FORMAT_YV12:
-+      g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-+      stridemove (unstrided, strided, width, stride, height);   /* move Y */
-+      stridemove (
-+          unstrided + (height*width),
-+          strided + (height*stride),
-+          width/2, stride, height);                             /* move V/U */
-+      stridemove (
-+          unstrided + (int)(height*width*1.5),
-+          strided + (int)(height*stride*1.5),
-+          width/2, stride, height);                             /* move U/V */
-+      return GST_FLOW_OK;
-+    case GST_VIDEO_FORMAT_YUY2:
-+    case GST_VIDEO_FORMAT_UYVY:
-+      g_return_val_if_fail (stride >= (width*2), GST_FLOW_ERROR);
-+      stridemove (unstrided, strided, width*2, stride, height);
-+      return GST_FLOW_OK;
-+    default:
-+      GST_WARNING ("unknown color format!\n");
-+      return GST_FLOW_ERROR;
-+  }
-+}
-+
-+
- static GstFlowReturn
- gst_stride_transform_transform (GstBaseTransform *base,
-     GstBuffer *inbuf, GstBuffer *outbuf)
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
--  GST_DEBUG_OBJECT (self, "not implemented");
-+
-+  GST_DEBUG_OBJECT (self, "inbuf=%p, outbuf=%p", inbuf, outbuf);
-+
-+  if (self->in_rowstride && self->out_rowstride) {
-+    GST_DEBUG_OBJECT (self, "not implemented");  // TODO
-+    return GST_FLOW_ERROR;
-+  } else if (self->in_rowstride) {
-+    return unstridify (self,
-+        GST_BUFFER_DATA (outbuf), GST_BUFFER_DATA (inbuf));
-+  } else if (self->out_rowstride) {
-+    return stridify (self,
-+        GST_BUFFER_DATA (outbuf), GST_BUFFER_DATA (inbuf));
-+  }
-+
-+  GST_DEBUG_OBJECT (self, "this shouldn't happen!  in_rowstride=%d, out_rowstride=%d",
-+      self->in_rowstride, self->out_rowstride);
-+
-   return GST_FLOW_ERROR;
- }
- 
-@@ -278,7 +429,7 @@ static GstFlowReturn
- gst_stride_transform_transform_ip (GstBaseTransform *base,
-     GstBuffer *buf)
- {
--  GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
--  GST_DEBUG_OBJECT (self, "not implemented");
--  return GST_FLOW_ERROR;
-+  /* transform function is safe to call with same buffer ptr:
-+   */
-+  return gst_stride_transform_transform (base, buf, buf);
- }
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0005-add-gst_stride_transform_transform_size.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0005-add-gst_stride_transform_transform_size.patch
deleted file mode 100644
index 2a791d0..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0005-add-gst_stride_transform_transform_size.patch
+++ /dev/null
@@ -1,143 +0,0 @@
-From c1b33e01fa6fa867b950ba0e6f4426e5a878cbe7 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Sun, 16 Aug 2009 21:04:40 -0500
-Subject: [PATCH 05/24] add gst_stride_transform_transform_size()
-
-input buffer size and output buffer size many not be multiples of a common unit size, so the transform_size() method should be used
----
- gst/stride/gststridetransform.c |   38 ++++++++++++++++++++++++++++++++++++--
- gst/stride/gststridetransform.h |   34 +++++-----------------------------
- 2 files changed, 41 insertions(+), 31 deletions(-)
-
-diff --git a/gst/stride/gststridetransform.c b/gst/stride/gststridetransform.c
-index a911cd0..adc22ce 100644
---- a/gst/stride/gststridetransform.c
-+++ b/gst/stride/gststridetransform.c
-@@ -62,7 +62,7 @@ GST_ELEMENT_DETAILS ("Stride transform",
- 
- /* TODO: add rgb formats too! */
- #define SUPPORTED_CAPS                                                        \
--  GST_VIDEO_CAPS_YUV_STRIDED ("{ I420, YV12, YUY2 }", "[ 0, max ]")
-+  GST_VIDEO_CAPS_YUV_STRIDED ("{ I420, YV12, YUY2, UYVY }", "[ 0, max ]")
- 
- 
- static GstStaticPadTemplate src_template =
-@@ -89,6 +89,10 @@ static void gst_stride_transform_dispose (GObject *obj);
- /* GstBaseTransform functions */
- static gboolean gst_stride_transform_get_unit_size (GstBaseTransform *base,
-     GstCaps *caps, guint *size);
-+static gboolean gst_stride_transform_transform_size (GstBaseTransform *base,
-+    GstPadDirection direction,
-+    GstCaps *caps, guint size,
-+    GstCaps *othercaps, guint *othersize);
- static GstCaps *gst_stride_transform_transform_caps (GstBaseTransform *base,
-     GstPadDirection direction, GstCaps *caps);
- static gboolean gst_stride_transform_set_caps (GstBaseTransform *base,
-@@ -126,6 +130,8 @@ gst_stride_transform_class_init (GstStrideTransformClass *klass)
- 
-   basetransform_class->get_unit_size =
-       GST_DEBUG_FUNCPTR (gst_stride_transform_get_unit_size);
-+  basetransform_class->transform_size =
-+      GST_DEBUG_FUNCPTR (gst_stride_transform_transform_size);
-   basetransform_class->transform_caps =
-       GST_DEBUG_FUNCPTR (gst_stride_transform_transform_caps);
-   basetransform_class->set_caps =
-@@ -176,6 +182,34 @@ gst_stride_transform_get_unit_size (GstBaseTransform *base,
-   return TRUE;
- }
- 
-+/**
-+ * Default transform_size function is no good, as it assumes that the output
-+ * buffer size is a multiple of the unit size.. which doesn't hold true.
-+ */
-+static gboolean
-+gst_stride_transform_transform_size (GstBaseTransform *base,
-+    GstPadDirection direction,
-+    GstCaps *caps, guint size,
-+    GstCaps *othercaps, guint *othersize)
-+{
-+  GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
-+  guint idx = (direction == GST_PAD_SINK) ? 0 : 1;
-+
-+  if (self->cached_caps[idx] != othercaps)
-+  {
-+    if (!gst_stride_transform_get_unit_size (base, othercaps,
-+        &(self->cached_size[idx])))
-+    {
-+      return FALSE;
-+    }
-+  }
-+
-+  *othersize = self->cached_size[idx];
-+
-+  return TRUE;
-+}
-+
-+
- 
- /**
-  * helper to add all fields, other than rowstride to @caps, copied from @s.
-@@ -187,7 +221,7 @@ add_all_fields (GstCaps *caps, const gchar *name, GstStructure *s, gboolean rows
-   GstStructure *new_s = gst_structure_new (name, NULL);
- 
-   if (rowstride) {
--    gst_structure_set (new_s, "rowstride", GST_TYPE_INT_RANGE, 1, 1000, NULL);  // TODO
-+    gst_structure_set (new_s, "rowstride", GST_TYPE_INT_RANGE, 1, G_MAXINT, NULL);
-   }
- 
-   idx = gst_structure_n_fields (s) - 1;
-diff --git a/gst/stride/gststridetransform.h b/gst/stride/gststridetransform.h
-index d80197f..481959e 100644
---- a/gst/stride/gststridetransform.h
-+++ b/gst/stride/gststridetransform.h
-@@ -59,6 +59,10 @@ struct _GstStrideTransform {
-   gint width, height;
-   gint in_rowstride;
-   gint out_rowstride;
-+
-+  /* for caching the tranform_size() results.. */
-+  GstCaps *cached_caps[2];
-+  guint cached_size[2];
- };
- 
- struct _GstStrideTransformClass {
-@@ -70,35 +74,7 @@ GType gst_stride_transform_get_type (void);
- G_END_DECLS
- 
- 
--
--
--/* note:  in case this is a build with TTIF logging, we can optimize slightly
-- * and avoid the gst_caps_to_string() in case logging isn't enabled by using
-- * the TTIF_TRACE_ARG_PROCESSOR feature of ttif_trace_fprintf():
-- */
--#ifdef GST_LOG_OVER_TTIF
--#  define LOG_CAPS(obj, caps)    G_STMT_START {                 \
--    if (caps) {                                                 \
--      static TTIF_TRACE_ARG_PROCESSOR proc = {                  \
--        .convert = (char (*)(void *))gst_caps_to_string,        \
--        .free    = (void (*)(char *))g_free                     \
--      };                                                        \
--      GST_DEBUG_OBJECT (obj, "%s: %qs", #caps, &proc, (caps));  \
--    } else {                                                    \
--      GST_DEBUG_OBJECT (obj, "null");                           \
--    }                                                           \
--  } G_STMT_END
--#else
--#  define LOG_CAPS(obj, caps)    G_STMT_START {                 \
--    if (caps) {                                                 \
--      gchar *capstr = gst_caps_to_string (caps);                \
--      GST_DEBUG_OBJECT (obj, "%s: %s", #caps, capstr);          \
--      g_free (capstr);                                          \
--    } else {                                                    \
--      GST_DEBUG_OBJECT (obj, "null");                           \
--    }                                                           \
--  } G_STMT_END
--#endif
-+#define LOG_CAPS(obj, caps)  GST_DEBUG_OBJECT (obj, "%s: %"GST_PTR_FORMAT, #caps, caps)
- 
- 
- #endif /* __GSTSTRIDETRANSFORM_H__ */
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0006-fix-a-small-typo.-need-to-use-the-smaller-of-new_wid.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0006-fix-a-small-typo.-need-to-use-the-smaller-of-new_wid.patch
deleted file mode 100644
index 14f7d3f..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0006-fix-a-small-typo.-need-to-use-the-smaller-of-new_wid.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From db7698656e71dc4a898fec9e46ae6c9d04352447 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Wed, 19 Aug 2009 15:33:50 -0500
-Subject: [PATCH 06/24] fix a small typo.. need to use the smaller of {new_width, orig_width} for the line-by-line copy to avoid overwriting past end of buffer
-
----
- gst/stride/gststridetransform.c |    6 ++++--
- 1 files changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/gst/stride/gststridetransform.c b/gst/stride/gststridetransform.c
-index adc22ce..ea52500 100644
---- a/gst/stride/gststridetransform.c
-+++ b/gst/stride/gststridetransform.c
-@@ -331,7 +331,7 @@ stridemove (guchar *new_buf, guchar *orig_buf, gint new_width, gint orig_width,
-     }
-   } else {
-     for (row=0; row<height; row++) {
--      memmove (new_buf+(new_width*row), orig_buf+(orig_width*row), orig_width);
-+      memmove (new_buf+(new_width*row), orig_buf+(orig_width*row), new_width);
-     }
-   }
- }
-@@ -440,7 +440,9 @@ gst_stride_transform_transform (GstBaseTransform *base,
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
- 
--  GST_DEBUG_OBJECT (self, "inbuf=%p, outbuf=%p", inbuf, outbuf);
-+  GST_DEBUG_OBJECT (self, "inbuf=%p (size=%d), outbuf=%p (size=%d)",
-+      inbuf, GST_BUFFER_SIZE (inbuf),
-+      outbuf, GST_BUFFER_SIZE (outbuf));
- 
-   if (self->in_rowstride && self->out_rowstride) {
-     GST_DEBUG_OBJECT (self, "not implemented");  // TODO
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0007-Add-NV12-support-in-stridetransform.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0007-Add-NV12-support-in-stridetransform.patch
deleted file mode 100644
index fae77f7..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0007-Add-NV12-support-in-stridetransform.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From f392c3f35052b57343e814d8f2d52b4f788d5d45 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Fri, 20 Nov 2009 18:43:12 -0600
-Subject: [PATCH 07/24] Add NV12 support in stridetransform
-
----
- gst-libs/gst/video/video.c      |    3 +++
- gst/stride/gststridetransform.c |   12 ++++--------
- 2 files changed, 7 insertions(+), 8 deletions(-)
-
-diff --git a/gst-libs/gst/video/video.c b/gst-libs/gst/video/video.c
-index 24f1ac8..ff9c4fb 100644
---- a/gst-libs/gst/video/video.c
-+++ b/gst-libs/gst/video/video.c
-@@ -2025,6 +2025,9 @@ gst_video_format_get_size_strided (GstVideoFormat format,
-     case GST_VIDEO_FORMAT_Y42B:
-     case GST_VIDEO_FORMAT_Y444:
-       return GST_ROUND_UP_4 (3 * rowstride * height);
-+    case GST_VIDEO_FORMAT_NV12:
-+    case GST_VIDEO_FORMAT_NV21:
-+      return GST_ROUND_UP_4 (rowstride) * GST_ROUND_UP_2 (height) * 3 / 2;
-     default:
-       return 0;
-   }
-diff --git a/gst/stride/gststridetransform.c b/gst/stride/gststridetransform.c
-index ea52500..56207d0 100644
---- a/gst/stride/gststridetransform.c
-+++ b/gst/stride/gststridetransform.c
-@@ -2,7 +2,7 @@
-  *
-  * Copyright (C) 2009 Texas Instruments, Inc - http://www.ti.com/
-  *
-- * Description: V4L2 sink element
-+ * Description: stride transform element
-  *  Created on: Jul 30, 2009
-  *      Author: Rob Clark <rob@ti.com>
-  *
-@@ -62,7 +62,7 @@ GST_ELEMENT_DETAILS ("Stride transform",
- 
- /* TODO: add rgb formats too! */
- #define SUPPORTED_CAPS                                                        \
--  GST_VIDEO_CAPS_YUV_STRIDED ("{ I420, YV12, YUY2, UYVY }", "[ 0, max ]")
-+  GST_VIDEO_CAPS_YUV_STRIDED ("{ I420, YV12, YUY2, UYVY, NV12 }", "[ 0, max ]")
- 
- 
- static GstStaticPadTemplate src_template =
-@@ -357,12 +357,10 @@ stridify (GstStrideTransform *self, guchar *strided, guchar *unstrided)
-   gint stride = self->out_rowstride;
- 
-   switch (self->format) {
--#if 0 /* TODO */
-     case GST_VIDEO_FORMAT_NV12:
-       g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
--      stridemove (strided, unstrided, stride, width, height * 1.5);
-+      stridemove (strided, unstrided, stride, width, (GST_ROUND_UP_2 (height) * 3) / 2);
-       return GST_FLOW_OK;
--#endif
-     case GST_VIDEO_FORMAT_I420:
-     case GST_VIDEO_FORMAT_YV12:
-       g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-@@ -403,12 +401,10 @@ unstridify (GstStrideTransform *self, guchar *unstrided, guchar *strided)
-   gint stride = self->in_rowstride;
- 
-   switch (self->format) {
--#if 0 /* TODO */
-     case GST_VIDEO_FORMAT_NV12:
-       g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
--      stridemove (unstrided, strided, width, stride, height * 1.5);
-+      stridemove (unstrided, strided, width, stride, (GST_ROUND_UP_2 (height) * 3) / 2);
-       return GST_FLOW_OK;
--#endif
-     case GST_VIDEO_FORMAT_I420:
-     case GST_VIDEO_FORMAT_YV12:
-       g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0008-add-basic-support-for-I420-NV12-colorspace-conversio.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0008-add-basic-support-for-I420-NV12-colorspace-conversio.patch
deleted file mode 100644
index 5898e0a..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0008-add-basic-support-for-I420-NV12-colorspace-conversio.patch
+++ /dev/null
@@ -1,186 +0,0 @@
-From 4b74d1b679855e8c709fde124fd9f0027ba8d916 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Fri, 27 Nov 2009 11:13:47 -0600
-Subject: [PATCH 08/24] add basic support for I420->NV12 colorspace conversion
-
----
- gst/stride/gststridetransform.c |  109 ++++++++++++++++++++++++++++++++++++---
- gst/stride/gststridetransform.h |    2 +-
- 2 files changed, 103 insertions(+), 8 deletions(-)
-
-diff --git a/gst/stride/gststridetransform.c b/gst/stride/gststridetransform.c
-index 56207d0..03deeb1 100644
---- a/gst/stride/gststridetransform.c
-+++ b/gst/stride/gststridetransform.c
-@@ -227,11 +227,43 @@ add_all_fields (GstCaps *caps, const gchar *name, GstStructure *s, gboolean rows
-   idx = gst_structure_n_fields (s) - 1;
-   while (idx >= 0) {
-     const gchar *name = gst_structure_nth_field_name (s, idx);
-+    idx--;
-+    if (!strcmp ("format", name)) {
-+      // we can do simple color format translations, such as converting from one
-+      // YUV420 format to another:
-+      GValue formats = {0};
-+      GValue fourccval = {0};
-+      guint fourcc;
-+      if (gst_structure_get_fourcc (s, name, &fourcc)) {
-+        switch (gst_video_format_from_fourcc (fourcc)) {
-+          case GST_VIDEO_FORMAT_NV12:
-+          case GST_VIDEO_FORMAT_I420:
-+GST_DEBUG ("Hmm, let's say I can convert I420<-->NV12..");
-+            g_value_init (&formats, GST_TYPE_LIST);
-+            g_value_init (&fourccval, GST_TYPE_FOURCC);
-+            gst_value_set_fourcc (&fourccval,
-+                GST_MAKE_FOURCC ('I', '4', '2', '0'));
-+            gst_value_list_append_value (&formats, &fourccval);
-+            gst_value_set_fourcc (&fourccval,
-+                GST_MAKE_FOURCC ('N', 'V', '1', '2'));
-+            gst_value_list_append_value (&formats, &fourccval);
-+            gst_structure_set_value (new_s, "format", &formats);
-+            continue;
-+/* maybe handle other cases later..
-+          case GST_VIDEO_FORMAT_YV12:
-+          case GST_VIDEO_FORMAT_YUY2:
-+          case GST_VIDEO_FORMAT_UYVY:
-+*/
-+          default:
-+            break;
-+        }
-+      }
-+    }
-+
-     if (strcmp ("rowstride", name)) {
-       const GValue *val = gst_structure_get_value (s, name);
-       gst_structure_set_value (new_s, name, val);
-     }
--    idx--;
-   }
- 
-   gst_caps_merge_structure (caps, new_s);
-@@ -287,18 +319,16 @@ gst_stride_transform_set_caps (GstBaseTransform *base,
-     GstCaps *incaps, GstCaps *outcaps)
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
--  GstVideoFormat format;
-   gint width, height;
- 
-   LOG_CAPS (self, incaps);
-   LOG_CAPS (self, outcaps);
- 
-   g_return_val_if_fail (gst_video_format_parse_caps_strided (incaps,
--      &self->format, &self->width, &self->height, &self->in_rowstride), FALSE);
-+      &self->in_format, &self->width, &self->height, &self->in_rowstride), FALSE);
-   g_return_val_if_fail (gst_video_format_parse_caps_strided (outcaps,
--      &format, &width, &height, &self->out_rowstride), FALSE);
-+      &self->out_format, &width, &height, &self->out_rowstride), FALSE);
- 
--  g_return_val_if_fail (self->format == format, FALSE);
-   g_return_val_if_fail (self->width  == width,  FALSE);
-   g_return_val_if_fail (self->height == height, FALSE);
- 
-@@ -307,6 +337,49 @@ gst_stride_transform_set_caps (GstBaseTransform *base,
- 
- /* ************************************************************************* */
- 
-+static void
-+memmove_demux (guchar *new_buf, guchar *orig_buf, gint sz, gint pxstride)
-+{
-+  if (new_buf > orig_buf) {
-+    /* copy backwards */
-+    new_buf += (sz * pxstride);
-+    orig_buf += sz;
-+    while(sz--) {
-+      *new_buf = *orig_buf;
-+      new_buf -= pxstride;
-+      orig_buf--;
-+    }
-+  } else {
-+    while(sz--) {
-+      *new_buf = *orig_buf;
-+      new_buf += pxstride;
-+      orig_buf++;
-+    }
-+  }
-+}
-+
-+static void
-+stridemove_demux (guchar *new_buf, guchar *orig_buf, gint new_width, gint orig_width, gint height, gint pxstride)
-+{
-+  int row;
-+
-+  GST_DEBUG ("new_buf=%p, orig_buf=%p, new_width=%d, orig_width=%d, height=%d",
-+      new_buf, orig_buf, new_width, orig_width, height);
-+  /* if increasing the stride, work from bottom-up to avoid overwriting data
-+   * that has not been moved yet.. otherwise, work in the opposite order,
-+   * for the same reason.
-+   */
-+  if (new_width > orig_width) {
-+    for (row=height-1; row>=0; row--) {
-+      memmove_demux (new_buf+(new_width*row), orig_buf+(orig_width*row), orig_width, pxstride);
-+    }
-+  } else {
-+    for (row=0; row<height; row++) {
-+      memmove_demux (new_buf+(new_width*row), orig_buf+(orig_width*row), new_width, pxstride);
-+    }
-+  }
-+}
-+
- /**
-  * Convert from one stride to another... like memmove, but can convert stride in
-  * the process.  This function is not aware of pixels, only of bytes.  So widths
-@@ -356,7 +429,29 @@ stridify (GstStrideTransform *self, guchar *strided, guchar *unstrided)
-   gint height = self->height;
-   gint stride = self->out_rowstride;
- 
--  switch (self->format) {
-+  if (self->out_format != self->in_format) {
-+
-+    if ((self->in_format == GST_VIDEO_FORMAT_I420) &&
-+        (self->out_format == GST_VIDEO_FORMAT_NV12)) {
-+      /* note: if not an in-place conversion, then doing the U&V in one pass
-+       * would be more efficient... but if it is an in-place conversion, I'd
-+       * need to think about whether it is potential for the new UV plane to
-+       * corrupt the V plane before it is done copying..
-+       */
-+      stridemove_demux (
-+          strided + (height*stride) + 1,
-+          unstrided + (int)(height*width*1.25),
-+          stride, width/2, height/2, 2);                        /* move V */
-+      stridemove_demux (
-+          strided + (height*stride),
-+          unstrided + (height*width),
-+          stride, width/2, height/2, 2);                        /* move U */
-+      stridemove (strided, unstrided, stride, width, height);   /* move Y */
-+      return GST_FLOW_OK;
-+    }
-+  }
-+
-+  switch (self->out_format) {
-     case GST_VIDEO_FORMAT_NV12:
-       g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-       stridemove (strided, unstrided, stride, width, (GST_ROUND_UP_2 (height) * 3) / 2);
-@@ -400,7 +495,7 @@ unstridify (GstStrideTransform *self, guchar *unstrided, guchar *strided)
-   gint height = self->height;
-   gint stride = self->in_rowstride;
- 
--  switch (self->format) {
-+  switch (self->out_format) {
-     case GST_VIDEO_FORMAT_NV12:
-       g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-       stridemove (unstrided, strided, width, stride, (GST_ROUND_UP_2 (height) * 3) / 2);
-diff --git a/gst/stride/gststridetransform.h b/gst/stride/gststridetransform.h
-index 481959e..0141571 100644
---- a/gst/stride/gststridetransform.h
-+++ b/gst/stride/gststridetransform.h
-@@ -55,7 +55,7 @@ struct _GstStrideTransform {
-   GstVideoFilter videofilter;
- 
-   /*< private >*/
--  GstVideoFormat format;
-+  GstVideoFormat in_format, out_format;
-   gint width, height;
-   gint in_rowstride;
-   gint out_rowstride;
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0009-fix-to-avoid-parsing-caps-on-every-frame.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0009-fix-to-avoid-parsing-caps-on-every-frame.patch
deleted file mode 100644
index b67789f..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0009-fix-to-avoid-parsing-caps-on-every-frame.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 8132aecf99071faab59739ebabd7bcd41a2ab581 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Fri, 27 Nov 2009 11:14:58 -0600
-Subject: [PATCH 09/24] fix to avoid parsing caps on every frame
-
----
- gst/stride/gststridetransform.c |   10 +++++++---
- 1 files changed, 7 insertions(+), 3 deletions(-)
-
-diff --git a/gst/stride/gststridetransform.c b/gst/stride/gststridetransform.c
-index 03deeb1..143a9f7 100644
---- a/gst/stride/gststridetransform.c
-+++ b/gst/stride/gststridetransform.c
-@@ -197,11 +197,15 @@ gst_stride_transform_transform_size (GstBaseTransform *base,
- 
-   if (self->cached_caps[idx] != othercaps)
-   {
--    if (!gst_stride_transform_get_unit_size (base, othercaps,
--        &(self->cached_size[idx])))
--    {
-+    guint sz;
-+    if (!gst_stride_transform_get_unit_size (base, othercaps, &sz)) {
-       return FALSE;
-     }
-+    if (self->cached_caps[idx]) {
-+      gst_caps_unref (self->cached_caps[idx]);
-+    }
-+    self->cached_size[idx] = sz;
-+    self->cached_caps[idx] = gst_caps_ref (othercaps);
-   }
- 
-   *othersize = self->cached_size[idx];
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0010-refactor-stridetransform-to-make-it-easier-to-add-ne.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0010-refactor-stridetransform-to-make-it-easier-to-add-ne.patch
deleted file mode 100644
index f8c3612..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0010-refactor-stridetransform-to-make-it-easier-to-add-ne.patch
+++ /dev/null
@@ -1,759 +0,0 @@
-From c854bfe87a39d640dfd3381bcba83281d9316b50 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Fri, 27 Nov 2009 15:05:56 -0600
-Subject: [PATCH 10/24] refactor stridetransform to make it easier to add new transforms (stride and/or colorspace)
-
----
- gst/stride/Makefile.am          |    1 +
- gst/stride/convert.c            |  267 +++++++++++++++++++++++++++++++++++
- gst/stride/gststridetransform.c |  295 ++++++++-------------------------------
- gst/stride/gststridetransform.h |   18 ++-
- 4 files changed, 340 insertions(+), 241 deletions(-)
- create mode 100644 gst/stride/convert.c
-
-diff --git a/gst/stride/Makefile.am b/gst/stride/Makefile.am
-index 1adc197..0b61d55 100644
---- a/gst/stride/Makefile.am
-+++ b/gst/stride/Makefile.am
-@@ -2,6 +2,7 @@ plugin_LTLIBRARIES = libgststridetransform.la
- 
- libgststridetransform_la_SOURCES = \
- 	gststridetransform.c \
-+	convert.c \
- 	plugin.c
- 
- libgststridetransform_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
-diff --git a/gst/stride/convert.c b/gst/stride/convert.c
-new file mode 100644
-index 0000000..860f16c
---- /dev/null
-+++ b/gst/stride/convert.c
-@@ -0,0 +1,267 @@
-+/* GStreamer
-+ *
-+ * Copyright (C) 2009 Texas Instruments, Inc - http://www.ti.com/
-+ *
-+ * Description: stride transform conversion utilities
-+ *  Created on: Nov 27, 2009
-+ *      Author: Rob Clark <rob@ti.com>
-+ *
-+ * 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 <string.h>
-+#include <gst/video/video.h>
-+
-+#include "gststridetransform.h"
-+
-+
-+GST_DEBUG_CATEGORY_EXTERN (stridetransform_debug);
-+#define GST_CAT_DEFAULT stridetransform_debug
-+
-+
-+/*
-+ * Conversion utilities:
-+ */
-+
-+static void
-+memmove_demux (guchar *new_buf, guchar *orig_buf, gint sz, gint pxstride)
-+{
-+  if (new_buf > orig_buf) {
-+    /* copy backwards */
-+    new_buf += ((sz - 1) * pxstride);
-+    orig_buf += sz - 1;
-+    while(sz--) {
-+      *new_buf = *orig_buf;
-+      new_buf -= pxstride;
-+      orig_buf--;
-+    }
-+  } else {
-+    while(sz--) {
-+      *new_buf = *orig_buf;
-+      new_buf += pxstride;
-+      orig_buf++;
-+    }
-+  }
-+}
-+
-+static void
-+stridemove_demux (guchar *new_buf, guchar *orig_buf, gint new_width, gint orig_width, gint height, gint pxstride)
-+{
-+  int row;
-+
-+  GST_DEBUG ("new_buf=%p, orig_buf=%p, new_width=%d, orig_width=%d, height=%d",
-+      new_buf, orig_buf, new_width, orig_width, height);
-+
-+  /* if increasing the stride, work from bottom-up to avoid overwriting data
-+   * that has not been moved yet.. otherwise, work in the opposite order,
-+   * for the same reason.
-+   */
-+  if (new_width > orig_width) {
-+    for (row=height-1; row>=0; row--) {
-+      memmove_demux (new_buf+(new_width*row), orig_buf+(orig_width*row), orig_width, pxstride);
-+    }
-+  } else {
-+    for (row=0; row<height; row++) {
-+      memmove_demux (new_buf+(new_width*row), orig_buf+(orig_width*row), new_width, pxstride);
-+    }
-+  }
-+}
-+
-+/**
-+ * Convert from one stride to another... like memmove, but can convert stride in
-+ * the process.  This function is not aware of pixels, only of bytes.  So widths
-+ * are given in bytes, not pixels.  The new_buf and orig_buf can point to the
-+ * same buffers to do an in-place conversion, but the buffer should be large
-+ * enough.
-+ */
-+static void
-+stridemove (guchar *new_buf, guchar *orig_buf, gint new_width, gint orig_width, gint height)
-+{
-+  int row;
-+
-+  GST_DEBUG ("new_buf=%p, orig_buf=%p, new_width=%d, orig_width=%d, height=%d",
-+      new_buf, orig_buf, new_width, orig_width, height);
-+
-+  /* if increasing the stride, work from bottom-up to avoid overwriting data
-+   * that has not been moved yet.. otherwise, work in the opposite order,
-+   * for the same reason.
-+   */
-+  if (new_width > orig_width) {
-+    for (row=height-1; row>=0; row--) {
-+      memmove (new_buf+(new_width*row), orig_buf+(orig_width*row), orig_width);
-+    }
-+  } else {
-+    for (row=0; row<height; row++) {
-+      memmove (new_buf+(new_width*row), orig_buf+(orig_width*row), new_width);
-+    }
-+  }
-+}
-+
-+/*
-+ * Conversion Functions:
-+ */
-+
-+/** convert 4:2:0 semiplanar to same 4:2:0 semiplanar */
-+static GstFlowReturn
-+unstridify_420sp_420sp (GstStrideTransform *self, guchar *unstrided, guchar *strided)
-+{
-+  gint width  = self->width;
-+  gint height = self->height;
-+  gint stride = self->in_rowstride;
-+
-+  g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-+
-+  stridemove (unstrided, strided, width, stride,
-+      (GST_ROUND_UP_2 (height) * 3) / 2);
-+
-+  return GST_FLOW_OK;
-+}
-+static GstFlowReturn
-+stridify_420sp_420sp (GstStrideTransform *self, guchar *strided, guchar *unstrided)
-+{
-+  gint width  = self->width;
-+  gint height = self->height;
-+  gint stride = self->out_rowstride;
-+
-+  g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-+
-+  g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-+  stridemove (strided, unstrided, stride, width,
-+      (GST_ROUND_UP_2 (height) * 3) / 2);
-+
-+  return GST_FLOW_OK;
-+}
-+
-+/** convert 4:2:0 planar to same 4:2:0 planar */
-+static GstFlowReturn
-+unstridify_420p_420p (GstStrideTransform *self, guchar *unstrided, guchar *strided)
-+{
-+  gint width  = self->width;
-+  gint height = self->height;
-+  gint stride = self->in_rowstride;
-+
-+  g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-+
-+  stridemove (unstrided, strided, width, stride, height);   /* move Y */
-+  stridemove (
-+      unstrided + (height*width),
-+      strided + (height*stride),
-+      width/2, stride, height);                             /* move V/U */
-+  /* XXX odd widths/heights/strides: */
-+  stridemove (
-+      unstrided + (int)(height*width*1.5),
-+      strided + (int)(height*stride*1.5),
-+      width/2, stride, height);                             /* move U/V */
-+
-+  return GST_FLOW_OK;
-+}
-+static GstFlowReturn
-+stridify_420p_420p (GstStrideTransform *self, guchar *strided, guchar *unstrided)
-+{
-+  gint width  = self->width;
-+  gint height = self->height;
-+  gint stride = self->out_rowstride;
-+
-+  g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-+
-+  /* XXX odd widths/heights/strides: */
-+  stridemove (
-+      strided + (int)(height*stride*1.5),
-+      unstrided + (int)(height*width*1.5),
-+      stride, width/2, height);                             /* move U/V */
-+  stridemove (
-+      strided + (height*stride),
-+      unstrided + (height*width),
-+      stride, width/2, height);                             /* move V/U */
-+  stridemove (strided, unstrided, stride, width, height);   /* move Y */
-+
-+  return GST_FLOW_OK;
-+}
-+
-+/** convert 4:2:2 packed to same 4:2:2 packed */
-+static GstFlowReturn
-+unstridify_422i_422i (GstStrideTransform *self, guchar *unstrided, guchar *strided)
-+{
-+  gint width  = self->width;
-+  gint height = self->height;
-+  gint stride = self->in_rowstride;
-+
-+  g_return_val_if_fail (stride >= (width*2), GST_FLOW_ERROR);
-+
-+  stridemove (unstrided, strided, width*2, stride, height);
-+
-+  return GST_FLOW_OK;
-+}
-+static GstFlowReturn
-+stridify_422i_422i (GstStrideTransform *self, guchar *strided, guchar *unstrided)
-+{
-+  gint width  = self->width;
-+  gint height = self->height;
-+  gint stride = self->out_rowstride;
-+
-+  g_return_val_if_fail (stride >= (width*2), GST_FLOW_ERROR);
-+
-+  stridemove (strided, unstrided, stride, width*2, height);
-+
-+  return GST_FLOW_OK;
-+}
-+
-+/** convert I420 unstrided to NV12 strided */
-+static GstFlowReturn
-+stridify_i420_nv12 (GstStrideTransform *self, guchar *strided, guchar *unstrided)
-+{
-+  gint width  = self->width;
-+  gint height = self->height;
-+  gint stride = self->out_rowstride;
-+
-+  g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-+
-+  /* note: if not an in-place conversion, then doing the U&V in one pass
-+   * would be more efficient... but if it is an in-place conversion, I'd
-+   * need to think about whether it is potential for the new UV plane to
-+   * corrupt the V plane before it is done copying..
-+   */
-+  stridemove_demux (
-+      strided + (height*stride) + 1,
-+      unstrided + (int)(height*width*1.25),
-+      stride, width/2, height/2, 2);                        /* move V */
-+  stridemove_demux (
-+      strided + (height*stride),
-+      unstrided + (height*width),
-+      stride, width/2, height/2, 2);                        /* move U */
-+  stridemove (strided, unstrided, stride, width, height);   /* move Y */
-+
-+  return GST_FLOW_OK;
-+}
-+
-+/* last entry has GST_VIDEO_FORMAT_UNKNOWN for in/out formats */
-+Conversion stride_conversions[] = {
-+  { { GST_VIDEO_FORMAT_NV12, GST_VIDEO_FORMAT_NV12 }, stridify_420sp_420sp, unstridify_420sp_420sp },
-+  { { GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_I420 }, stridify_420p_420p,   unstridify_420p_420p },
-+  { { GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_YV12 }, stridify_420p_420p,   unstridify_420p_420p },
-+  { { GST_VIDEO_FORMAT_YUY2, GST_VIDEO_FORMAT_YUY2 }, stridify_422i_422i,   unstridify_422i_422i },
-+  { { GST_VIDEO_FORMAT_UYVY, GST_VIDEO_FORMAT_UYVY }, stridify_422i_422i,   unstridify_422i_422i },
-+  { { GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_NV12 }, stridify_i420_nv12,   NULL },
-+  /* add new entries before here */
-+  { { GST_VIDEO_FORMAT_UNKNOWN } }
-+};
-+
-+
-diff --git a/gst/stride/gststridetransform.c b/gst/stride/gststridetransform.c
-index 143a9f7..6ab0479 100644
---- a/gst/stride/gststridetransform.c
-+++ b/gst/stride/gststridetransform.c
-@@ -47,12 +47,17 @@
- #endif
- 
- #include <string.h>
-+
- #include <gst/video/video.h>
- 
- #include "gst/gst-i18n-plugin.h"
- #include "gststridetransform.h"
- 
- 
-+/* last entry has GST_VIDEO_FORMAT_UNKNOWN for in/out formats */
-+extern const Conversion stride_conversions[];
-+
-+
- static const GstElementDetails stridetransform_details =
- GST_ELEMENT_DETAILS ("Stride transform",
-     "Filter/Converter/Video",
-@@ -70,14 +75,14 @@ GST_STATIC_PAD_TEMPLATE ("src",
-     GST_PAD_SRC,
-     GST_PAD_ALWAYS,
-     GST_STATIC_CAPS (SUPPORTED_CAPS)
--    );
-+);
- 
- static GstStaticPadTemplate sink_template =
- GST_STATIC_PAD_TEMPLATE ("sink",
-     GST_PAD_SINK,
-     GST_PAD_ALWAYS,
-     GST_STATIC_CAPS (SUPPORTED_CAPS)
--    );
-+);
- 
- 
- GST_DEBUG_CATEGORY (stridetransform_debug);
-@@ -99,8 +104,6 @@ static gboolean gst_stride_transform_set_caps (GstBaseTransform *base,
-     GstCaps *incaps, GstCaps *outcaps);
- static GstFlowReturn gst_stride_transform_transform (GstBaseTransform *base,
-     GstBuffer *inbuf, GstBuffer *outbuf);
--static GstFlowReturn gst_stride_transform_transform_ip (GstBaseTransform *base,
--    GstBuffer *buf);
- 
- GST_BOILERPLATE (GstStrideTransform, gst_stride_transform, GstVideoFilter, GST_TYPE_VIDEO_FILTER);
- 
-@@ -136,8 +139,6 @@ gst_stride_transform_class_init (GstStrideTransformClass *klass)
-       GST_DEBUG_FUNCPTR (gst_stride_transform_transform_caps);
-   basetransform_class->set_caps =
-       GST_DEBUG_FUNCPTR (gst_stride_transform_set_caps);
--  basetransform_class->transform_ip =
--      GST_DEBUG_FUNCPTR (gst_stride_transform_transform_ip);
-   basetransform_class->transform =
-       GST_DEBUG_FUNCPTR (gst_stride_transform_transform);
- 
-@@ -219,7 +220,7 @@ gst_stride_transform_transform_size (GstBaseTransform *base,
-  * helper to add all fields, other than rowstride to @caps, copied from @s.
-  */
- static void
--add_all_fields (GstCaps *caps, const gchar *name, GstStructure *s, gboolean rowstride)
-+add_all_fields (GstCaps *caps, const gchar *name, GstStructure *s, gboolean rowstride, GstPadDirection direction)
- {
-   gint idx;
-   GstStructure *new_s = gst_structure_new (name, NULL);
-@@ -232,38 +233,39 @@ add_all_fields (GstCaps *caps, const gchar *name, GstStructure *s, gboolean rows
-   while (idx >= 0) {
-     const gchar *name = gst_structure_nth_field_name (s, idx);
-     idx--;
-+
-+    /* for format field, check the stride_conversions table to see what
-+     * we can support:
-+     */
-     if (!strcmp ("format", name)) {
--      // we can do simple color format translations, such as converting from one
--      // YUV420 format to another:
--      GValue formats = {0};
--      GValue fourccval = {0};
-       guint fourcc;
--      if (gst_structure_get_fourcc (s, name, &fourcc)) {
--        switch (gst_video_format_from_fourcc (fourcc)) {
--          case GST_VIDEO_FORMAT_NV12:
--          case GST_VIDEO_FORMAT_I420:
--GST_DEBUG ("Hmm, let's say I can convert I420<-->NV12..");
--            g_value_init (&formats, GST_TYPE_LIST);
--            g_value_init (&fourccval, GST_TYPE_FOURCC);
--            gst_value_set_fourcc (&fourccval,
--                GST_MAKE_FOURCC ('I', '4', '2', '0'));
--            gst_value_list_append_value (&formats, &fourccval);
--            gst_value_set_fourcc (&fourccval,
--                GST_MAKE_FOURCC ('N', 'V', '1', '2'));
-+
-+      /* XXX double check this: */
-+      gint to_format = (direction == GST_PAD_SINK) ? 1 : 0;
-+      gint from_format = (direction == GST_PAD_SRC) ? 1 : 0;
-+
-+      if (gst_structure_get_fourcc (s, "format", &fourcc)) {
-+        GValue formats = {0};
-+        GValue fourccval = {0};
-+        gint i;
-+        GstVideoFormat format = gst_video_format_from_fourcc (fourcc);
-+
-+        g_value_init (&formats, GST_TYPE_LIST);
-+        g_value_init (&fourccval, GST_TYPE_FOURCC);
-+
-+        for (i=0; stride_conversions[i].format[0]!=GST_VIDEO_FORMAT_UNKNOWN; i++) {
-+          if (stride_conversions[i].format[from_format] == format) {
-+            gst_value_set_fourcc (&fourccval, gst_video_format_to_fourcc
-+                (stride_conversions[i].format[to_format]));
-             gst_value_list_append_value (&formats, &fourccval);
--            gst_structure_set_value (new_s, "format", &formats);
--            continue;
--/* maybe handle other cases later..
--          case GST_VIDEO_FORMAT_YV12:
--          case GST_VIDEO_FORMAT_YUY2:
--          case GST_VIDEO_FORMAT_UYVY:
--*/
--          default:
--            break;
-+          }
-         }
-+
-+        continue;
-       }
-     }
- 
-+    /* copy over all other non-rowstride fields: */
-     if (strcmp ("rowstride", name)) {
-       const GValue *val = gst_structure_get_value (s, name);
-       gst_structure_set_value (new_s, name, val);
-@@ -297,14 +299,14 @@ gst_stride_transform_transform_caps (GstBaseTransform *base,
-   if (gst_structure_has_name (s, "video/x-raw-yuv") ||
-       gst_structure_has_name (s, "video/x-raw-yuv-strided")) {
- 
--    add_all_fields (ret, "video/x-raw-yuv", s, FALSE);
--    add_all_fields (ret, "video/x-raw-yuv-strided", s, TRUE);
-+    add_all_fields (ret, "video/x-raw-yuv", s, FALSE, direction);
-+    add_all_fields (ret, "video/x-raw-yuv-strided", s, TRUE, direction);
- 
-   } else if (gst_structure_has_name (s, "video/x-raw-rgb") ||
-       gst_structure_has_name (s, "video/x-raw-rgb-strided")) {
- 
--    add_all_fields (ret, "video/x-raw-rgb", s, FALSE);
--    add_all_fields (ret, "video/x-raw-rgb-strided", s, TRUE);
-+    add_all_fields (ret, "video/x-raw-rgb", s, FALSE, direction);
-+    add_all_fields (ret, "video/x-raw-rgb-strided", s, TRUE, direction);
- 
-   }
- 
-@@ -324,211 +326,37 @@ gst_stride_transform_set_caps (GstBaseTransform *base,
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
-   gint width, height;
-+  GstVideoFormat in_format, out_format;
-+  gint i;
- 
-   LOG_CAPS (self, incaps);
-   LOG_CAPS (self, outcaps);
- 
-   g_return_val_if_fail (gst_video_format_parse_caps_strided (incaps,
--      &self->in_format, &self->width, &self->height, &self->in_rowstride), FALSE);
-+      &in_format, &self->width, &self->height, &self->in_rowstride), FALSE);
-   g_return_val_if_fail (gst_video_format_parse_caps_strided (outcaps,
--      &self->out_format, &width, &height, &self->out_rowstride), FALSE);
--
--  g_return_val_if_fail (self->width  == width,  FALSE);
--  g_return_val_if_fail (self->height == height, FALSE);
--
--  return TRUE;
--}
--
--/* ************************************************************************* */
--
--static void
--memmove_demux (guchar *new_buf, guchar *orig_buf, gint sz, gint pxstride)
--{
--  if (new_buf > orig_buf) {
--    /* copy backwards */
--    new_buf += (sz * pxstride);
--    orig_buf += sz;
--    while(sz--) {
--      *new_buf = *orig_buf;
--      new_buf -= pxstride;
--      orig_buf--;
--    }
--  } else {
--    while(sz--) {
--      *new_buf = *orig_buf;
--      new_buf += pxstride;
--      orig_buf++;
--    }
--  }
--}
--
--static void
--stridemove_demux (guchar *new_buf, guchar *orig_buf, gint new_width, gint orig_width, gint height, gint pxstride)
--{
--  int row;
--
--  GST_DEBUG ("new_buf=%p, orig_buf=%p, new_width=%d, orig_width=%d, height=%d",
--      new_buf, orig_buf, new_width, orig_width, height);
--  /* if increasing the stride, work from bottom-up to avoid overwriting data
--   * that has not been moved yet.. otherwise, work in the opposite order,
--   * for the same reason.
--   */
--  if (new_width > orig_width) {
--    for (row=height-1; row>=0; row--) {
--      memmove_demux (new_buf+(new_width*row), orig_buf+(orig_width*row), orig_width, pxstride);
--    }
--  } else {
--    for (row=0; row<height; row++) {
--      memmove_demux (new_buf+(new_width*row), orig_buf+(orig_width*row), new_width, pxstride);
--    }
--  }
--}
-+      &out_format, &width, &height, &self->out_rowstride), FALSE);
- 
--/**
-- * Convert from one stride to another... like memmove, but can convert stride in
-- * the process.  This function is not aware of pixels, only of bytes.  So widths
-- * are given in bytes, not pixels.  The new_buf and orig_buf can point to the
-- * same buffers to do an in-place conversion, but the buffer should be large
-- * enough.
-- */
--static void
--stridemove (guchar *new_buf, guchar *orig_buf, gint new_width, gint orig_width, gint height)
--{
--  int row;
--
--  GST_DEBUG ("new_buf=%p, orig_buf=%p, new_width=%d, orig_width=%d, height=%d",
--      new_buf, orig_buf, new_width, orig_width, height);
--  /* if increasing the stride, work from bottom-up to avoid overwriting data
--   * that has not been moved yet.. otherwise, work in the opposite order,
--   * for the same reason.
--   */
--  if (new_width > orig_width) {
--    for (row=height-1; row>=0; row--) {
--      memmove (new_buf+(new_width*row), orig_buf+(orig_width*row), orig_width);
--    }
--  } else {
--    for (row=0; row<height; row++) {
--      memmove (new_buf+(new_width*row), orig_buf+(orig_width*row), new_width);
--    }
--  }
--}
-+  self->conversion = NULL;
- 
--
--/**
-- * Convert from a non-strided buffer to strided.  The two buffer pointers could
-- * be pointing to the same memory block for in-place transform.. assuming that
-- * the buffer is large enough
-- *
-- * @strided:    the pointer to the resulting strided buffer
-- * @unstrided:  the pointer to the initial unstrided buffer
-- * @fourcc:     the color format
-- * @stride:     the stride, in bytes
-- * @width:      the width in pixels
-- * @height:     the height in pixels
-- */
--static GstFlowReturn
--stridify (GstStrideTransform *self, guchar *strided, guchar *unstrided)
--{
--  gint width  = self->width;
--  gint height = self->height;
--  gint stride = self->out_rowstride;
--
--  if (self->out_format != self->in_format) {
--
--    if ((self->in_format == GST_VIDEO_FORMAT_I420) &&
--        (self->out_format == GST_VIDEO_FORMAT_NV12)) {
--      /* note: if not an in-place conversion, then doing the U&V in one pass
--       * would be more efficient... but if it is an in-place conversion, I'd
--       * need to think about whether it is potential for the new UV plane to
--       * corrupt the V plane before it is done copying..
--       */
--      stridemove_demux (
--          strided + (height*stride) + 1,
--          unstrided + (int)(height*width*1.25),
--          stride, width/2, height/2, 2);                        /* move V */
--      stridemove_demux (
--          strided + (height*stride),
--          unstrided + (height*width),
--          stride, width/2, height/2, 2);                        /* move U */
--      stridemove (strided, unstrided, stride, width, height);   /* move Y */
--      return GST_FLOW_OK;
-+  for (i=0; stride_conversions[i].format[0]!=GST_VIDEO_FORMAT_UNKNOWN; i++) {
-+    if ((stride_conversions[i].format[0] == in_format) &&
-+        (stride_conversions[i].format[1] == out_format)) {
-+      GST_DEBUG_OBJECT (self, "found stride_conversion: %d", i);
-+      self->conversion = &stride_conversions[i];
-+      break;
-     }
-   }
- 
--  switch (self->out_format) {
--    case GST_VIDEO_FORMAT_NV12:
--      g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
--      stridemove (strided, unstrided, stride, width, (GST_ROUND_UP_2 (height) * 3) / 2);
--      return GST_FLOW_OK;
--    case GST_VIDEO_FORMAT_I420:
--    case GST_VIDEO_FORMAT_YV12:
--      g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
--      stridemove (
--          strided + (int)(height*stride*1.5),
--          unstrided + (int)(height*width*1.5),
--          stride, width/2, height);                             /* move U/V */
--      stridemove (
--          strided + (height*stride),
--          unstrided + (height*width),
--          stride, width/2, height);                             /* move V/U */
--      stridemove (strided, unstrided, stride, width, height);   /* move Y */
--      return GST_FLOW_OK;
--    case GST_VIDEO_FORMAT_YUY2:
--    case GST_VIDEO_FORMAT_UYVY:
--      g_return_val_if_fail (stride >= (width*2), GST_FLOW_ERROR);
--      stridemove (strided, unstrided, stride, width*2, height);
--      return GST_FLOW_OK;
--    default:
--      GST_WARNING ("unknown color format!\n");
--      return GST_FLOW_ERROR;
--  }
--}
--
-+  g_return_val_if_fail (self->conversion, FALSE);
-+  g_return_val_if_fail (self->conversion->unstridify || !self->in_rowstride, FALSE);
-+  g_return_val_if_fail (self->conversion->stridify || !self->out_rowstride, FALSE);
-+  g_return_val_if_fail (self->width  == width,  FALSE);
-+  g_return_val_if_fail (self->height == height, FALSE);
- 
--/**
-- * Convert from a strided buffer to non-strided.  The two buffer pointers could
-- * be pointing to the same memory block for in-place transform..
-- *
-- * @unstrided:  the pointer to the resulting unstrided buffer
-- * @strided:    the pointer to the initial strided buffer
-- */
--static GstFlowReturn
--unstridify (GstStrideTransform *self, guchar *unstrided, guchar *strided)
--{
--  gint width  = self->width;
--  gint height = self->height;
--  gint stride = self->in_rowstride;
--
--  switch (self->out_format) {
--    case GST_VIDEO_FORMAT_NV12:
--      g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
--      stridemove (unstrided, strided, width, stride, (GST_ROUND_UP_2 (height) * 3) / 2);
--      return GST_FLOW_OK;
--    case GST_VIDEO_FORMAT_I420:
--    case GST_VIDEO_FORMAT_YV12:
--      g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
--      stridemove (unstrided, strided, width, stride, height);   /* move Y */
--      stridemove (
--          unstrided + (height*width),
--          strided + (height*stride),
--          width/2, stride, height);                             /* move V/U */
--      stridemove (
--          unstrided + (int)(height*width*1.5),
--          strided + (int)(height*stride*1.5),
--          width/2, stride, height);                             /* move U/V */
--      return GST_FLOW_OK;
--    case GST_VIDEO_FORMAT_YUY2:
--    case GST_VIDEO_FORMAT_UYVY:
--      g_return_val_if_fail (stride >= (width*2), GST_FLOW_ERROR);
--      stridemove (unstrided, strided, width*2, stride, height);
--      return GST_FLOW_OK;
--    default:
--      GST_WARNING ("unknown color format!\n");
--      return GST_FLOW_ERROR;
--  }
-+  return TRUE;
- }
- 
--
- static GstFlowReturn
- gst_stride_transform_transform (GstBaseTransform *base,
-     GstBuffer *inbuf, GstBuffer *outbuf)
-@@ -543,10 +371,10 @@ gst_stride_transform_transform (GstBaseTransform *base,
-     GST_DEBUG_OBJECT (self, "not implemented");  // TODO
-     return GST_FLOW_ERROR;
-   } else if (self->in_rowstride) {
--    return unstridify (self,
-+    return self->conversion->unstridify (self,
-         GST_BUFFER_DATA (outbuf), GST_BUFFER_DATA (inbuf));
-   } else if (self->out_rowstride) {
--    return stridify (self,
-+    return self->conversion->stridify (self,
-         GST_BUFFER_DATA (outbuf), GST_BUFFER_DATA (inbuf));
-   }
- 
-@@ -555,12 +383,3 @@ gst_stride_transform_transform (GstBaseTransform *base,
- 
-   return GST_FLOW_ERROR;
- }
--
--static GstFlowReturn
--gst_stride_transform_transform_ip (GstBaseTransform *base,
--    GstBuffer *buf)
--{
--  /* transform function is safe to call with same buffer ptr:
--   */
--  return gst_stride_transform_transform (base, buf, buf);
--}
-diff --git a/gst/stride/gststridetransform.h b/gst/stride/gststridetransform.h
-index 0141571..bce2526 100644
---- a/gst/stride/gststridetransform.h
-+++ b/gst/stride/gststridetransform.h
-@@ -2,7 +2,7 @@
-  *
-  * Copyright (C) 2009 Texas Instruments, Inc - http://www.ti.com/
-  *
-- * Description: V4L2 sink element
-+ * Description: stride transform element
-  *  Created on: Jul 2, 2009
-  *      Author: Rob Clark <rob@ti.com>
-  *
-@@ -29,7 +29,6 @@
- #include <gst/video/gstvideofilter.h>
- #include <gst/video/video.h>
- 
--
- G_BEGIN_DECLS
- 
- #define GST_TYPE_STRIDE_TRANSFORM \
-@@ -47,6 +46,19 @@ typedef struct _GstStrideTransform GstStrideTransform;
- typedef struct _GstStrideTransformClass GstStrideTransformClass;
- 
- /**
-+ * stride/colorspace conversion table (used internally)
-+ */
-+typedef struct {
-+
-+  GstVideoFormat format[2];   /* in_format, out_format */
-+
-+  GstFlowReturn (*stridify) (GstStrideTransform *self, guchar *strided, guchar *unstrided);
-+  GstFlowReturn (*unstridify) (GstStrideTransform *self, guchar *unstrided, guchar *strided);
-+
-+} Conversion;
-+
-+
-+/**
-  * GstStrideTransform:
-  *
-  * Opaque datastructure.
-@@ -55,10 +67,10 @@ struct _GstStrideTransform {
-   GstVideoFilter videofilter;
- 
-   /*< private >*/
--  GstVideoFormat in_format, out_format;
-   gint width, height;
-   gint in_rowstride;
-   gint out_rowstride;
-+  const Conversion *conversion;
- 
-   /* for caching the tranform_size() results.. */
-   GstCaps *cached_caps[2];
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0011-add-some-neon.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0011-add-some-neon.patch
deleted file mode 100644
index 6737811..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0011-add-some-neon.patch
+++ /dev/null
@@ -1,293 +0,0 @@
-From 537d185b9e9b25f7dacb5e5c4dab47bb8524da34 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Thu, 8 Apr 2010 00:30:25 -0500
-Subject: [PATCH 11/24] add some neon
-
----
- configure.ac           |    1 +
- gst/stride/Makefile.am |    1 +
- gst/stride/armv7.s     |  119 ++++++++++++++++++++++++++++++++++++++++++++++++
- gst/stride/convert.c   |   76 ++++++++++++++++--------------
- 4 files changed, 162 insertions(+), 35 deletions(-)
- create mode 100644 gst/stride/armv7.s
-
-diff --git a/configure.ac b/configure.ac
-index af6cd52..8e7ba18 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -58,6 +58,7 @@ dnl AS_LIBTOOL_TAGS
- 
- AC_LIBTOOL_WIN32_DLL
- AM_PROG_LIBTOOL
-+AM_PROG_AS
- 
- dnl *** required versions of GStreamer stuff ***
- GST_REQ=0.10.32
-diff --git a/gst/stride/Makefile.am b/gst/stride/Makefile.am
-index 0b61d55..3b466de 100644
---- a/gst/stride/Makefile.am
-+++ b/gst/stride/Makefile.am
-@@ -3,6 +3,7 @@ plugin_LTLIBRARIES = libgststridetransform.la
- libgststridetransform_la_SOURCES = \
- 	gststridetransform.c \
- 	convert.c \
-+	armv7.s \
- 	plugin.c
- 
- libgststridetransform_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
-diff --git a/gst/stride/armv7.s b/gst/stride/armv7.s
-new file mode 100644
-index 0000000..ed636f7
---- /dev/null
-+++ b/gst/stride/armv7.s
-@@ -0,0 +1,119 @@
-+@ GStreamer
-+@
-+@ Copyright (C) 2009 Texas Instruments, Inc - http://www.ti.com/
-+@
-+@ Description: NEON/VFP accelerated functions for armv7 architecture
-+@  Created on: Nov 27, 2009
-+@      Author: Rob Clark <rob@ti.com>
-+@
-+@ 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.
-+
-+       .fpu neon
-+       .text
-+
-+       .align
-+       .global stride_copy_zip2
-+       .type   stride_copy_zip2, %function
-+@void
-+@stride_copy_zip2 (guchar *new_buf, guchar *orig_buf1, guchar *orig_buf2, gint sz)
-+@{
-+@@@@ note: r0-r3, q0-3, and q8-q15 do not need to be preserved
-+stride_copy_zip2:
-+@ interleave remaining >= 16 bytes:
-+       pld [r1, #64]
-+       pld [r2, #64]
-+       cmp r3, #16
-+       blt stride_copy_zip2_2
-+stride_copy_zip2_1:
-+       vld1.8 {q8}, [r1]!
-+       vld1.8 {q9}, [r2]!
-+
-+       vzip.8 q8, q9
-+
-+       pld [r1, #64]
-+       vst1.8 {q8,q9}, [r0]!
-+       pld [r2, #64]
-+       sub r3, r3, #16
-+
-+       cmp r3, #16
-+       bge stride_copy_zip2_1
-+@ interleave remaining >= 8 bytes:
-+stride_copy_zip2_2:
-+       cmp r3, #8
-+       blt stride_copy_zip2_3
-+
-+       vld1.8 {d16}, [r1]!
-+       vld1.8 {d17}, [r2]!
-+
-+       vzip.8 d16, d17
-+
-+       vst1.8 {d16,d17}, [r0]!
-+       sub r3, r3, #8
-+
-+@ interleave remaining < 8 bytes:
-+stride_copy_zip2_3:
-+@XXX
-+       bx lr
-+@}
-+
-+       .align
-+       .global stride_copy
-+       .type   stride_copy, %function
-+@void
-+@stride_copy (guchar *new_buf, guchar *orig_buf, gint sz)
-+@{
-+@@@@ note: r0-r3, q0-3, and q8-q15 do not need to be preserved
-+stride_copy:
-+@ copy remaining >= 64 bytes:
-+       pld [r1, #64]
-+       cmp r2, #64
-+       blt stride_copy_2
-+stride_copy_1:
-+       vld1.8 {q8-q9},  [r1]!
-+       sub r2, r2, #64
-+       vld1.8 {q10-q11},[r1]!
-+       vst1.8 {q8-q9},  [r0]!
-+       pld [r1, #64]
-+       cmp r2, #64
-+       vst1.8 {q10-q11},[r0]!
-+       bge stride_copy_1
-+@ copy remaining >= 32 bytes:
-+stride_copy_2:
-+       cmp r2, #32
-+       blt stride_copy_3
-+       vld1.8 {q8-q9}, [r1]!
-+       sub r2, r2, #32
-+       vst1.8 {q8-q9}, [r0]!
-+@ copy remaining >= 16 bytes:
-+stride_copy_3:
-+       cmp r2, #16
-+       blt stride_copy_4
-+       vld1.8 {q8}, [r1]!
-+       sub r2, r2, #16
-+       vst1.8 {q8}, [r0]!
-+@ copy remaining >= 8 bytes:
-+stride_copy_4:
-+       cmp r2, #8
-+       blt stride_copy_5
-+       vld1.8 {d16}, [r1]!
-+       sub r2, r2, #8
-+       vst1.8 {d16}, [r0]!
-+@ copy remaining < 8 bytes:
-+stride_copy_5:
-+@XXX
-+       bx lr
-+@}
-+
-diff --git a/gst/stride/convert.c b/gst/stride/convert.c
-index 860f16c..a15063b 100644
---- a/gst/stride/convert.c
-+++ b/gst/stride/convert.c
-@@ -37,38 +37,43 @@ GST_DEBUG_CATEGORY_EXTERN (stridetransform_debug);
- #define GST_CAT_DEFAULT stridetransform_debug
- 
- 
-+/* note: some parts of code support in-place transform.. some do not..  I'm
-+ * not sure if zip/interleave functions could really support in-place copy..
-+ * I need to think about this after having some sleep ;-)
-+ */
-+
-+#define WEAK __attribute__((weak))
-+
- /*
-  * Conversion utilities:
-  */
- 
--static void
--memmove_demux (guchar *new_buf, guchar *orig_buf, gint sz, gint pxstride)
-+WEAK void
-+stride_copy_zip2 (guchar *new_buf, guchar *orig_buf1, guchar *orig_buf2, gint sz)
- {
--  if (new_buf > orig_buf) {
--    /* copy backwards */
--    new_buf += ((sz - 1) * pxstride);
--    orig_buf += sz - 1;
--    while(sz--) {
--      *new_buf = *orig_buf;
--      new_buf -= pxstride;
--      orig_buf--;
--    }
--  } else {
--    while(sz--) {
--      *new_buf = *orig_buf;
--      new_buf += pxstride;
--      orig_buf++;
--    }
-+  while (sz--) {
-+    *new_buf++ = *orig_buf1++;
-+    *new_buf++ = *orig_buf2++;
-   }
- }
- 
-+WEAK void
-+stride_copy (guchar *new_buf, guchar *orig_buf, gint sz)
-+{
-+  memcpy (new_buf, orig_buf, sz);
-+}
-+
-+
-+/**
-+ * move to strided buffer, interleaving two planes of identical dimensions
-+ */
- static void
--stridemove_demux (guchar *new_buf, guchar *orig_buf, gint new_width, gint orig_width, gint height, gint pxstride)
-+stridemove_zip2 (guchar *new_buf, guchar *orig_buf1, guchar *orig_buf2, gint new_width, gint orig_width, gint height)
- {
-   int row;
- 
--  GST_DEBUG ("new_buf=%p, orig_buf=%p, new_width=%d, orig_width=%d, height=%d",
--      new_buf, orig_buf, new_width, orig_width, height);
-+  GST_DEBUG ("new_buf=%p, orig_buf1=%p, orig_buf2=%p, new_width=%d, orig_width=%d, height=%d",
-+      new_buf, orig_buf1, orig_buf2, new_width, orig_width, height);
- 
-   /* if increasing the stride, work from bottom-up to avoid overwriting data
-    * that has not been moved yet.. otherwise, work in the opposite order,
-@@ -76,11 +81,19 @@ stridemove_demux (guchar *new_buf, guchar *orig_buf, gint new_width, gint orig_w
-    */
-   if (new_width > orig_width) {
-     for (row=height-1; row>=0; row--) {
--      memmove_demux (new_buf+(new_width*row), orig_buf+(orig_width*row), orig_width, pxstride);
-+      stride_copy_zip2 (
-+          new_buf+(new_width*row),
-+          orig_buf1+(orig_width*row),
-+          orig_buf2+(orig_width*row),
-+          orig_width);
-     }
-   } else {
-     for (row=0; row<height; row++) {
--      memmove_demux (new_buf+(new_width*row), orig_buf+(orig_width*row), new_width, pxstride);
-+      stride_copy_zip2 (
-+          new_buf+(new_width*row),
-+          orig_buf1+(orig_width*row),
-+          orig_buf2+(orig_width*row),
-+          new_width);
-     }
-   }
- }
-@@ -106,11 +119,11 @@ stridemove (guchar *new_buf, guchar *orig_buf, gint new_width, gint orig_width,
-    */
-   if (new_width > orig_width) {
-     for (row=height-1; row>=0; row--) {
--      memmove (new_buf+(new_width*row), orig_buf+(orig_width*row), orig_width);
-+      stride_copy (new_buf+(new_width*row), orig_buf+(orig_width*row), orig_width);
-     }
-   } else {
-     for (row=0; row<height; row++) {
--      memmove (new_buf+(new_width*row), orig_buf+(orig_width*row), new_width);
-+      stride_copy (new_buf+(new_width*row), orig_buf+(orig_width*row), new_width);
-     }
-   }
- }
-@@ -234,19 +247,12 @@ stridify_i420_nv12 (GstStrideTransform *self, guchar *strided, guchar *unstrided
- 
-   g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
- 
--  /* note: if not an in-place conversion, then doing the U&V in one pass
--   * would be more efficient... but if it is an in-place conversion, I'd
--   * need to think about whether it is potential for the new UV plane to
--   * corrupt the V plane before it is done copying..
--   */
--  stridemove_demux (
--      strided + (height*stride) + 1,
--      unstrided + (int)(height*width*1.25),
--      stride, width/2, height/2, 2);                        /* move V */
--  stridemove_demux (
-+  /* XXX widths/heights/strides that are not multiple of four??: */
-+  stridemove_zip2 (
-       strided + (height*stride),
-       unstrided + (height*width),
--      stride, width/2, height/2, 2);                        /* move U */
-+      unstrided + (int)(height*width*1.25),
-+      stride, width/2, height/2);                           /* interleave U&V */
-   stridemove (strided, unstrided, stride, width, height);   /* move Y */
- 
-   return GST_FLOW_OK;
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0012-add-support-to-convert-to-YUY2-YUYV-color-format.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0012-add-support-to-convert-to-YUY2-YUYV-color-format.patch
deleted file mode 100644
index 1156754..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0012-add-support-to-convert-to-YUY2-YUYV-color-format.patch
+++ /dev/null
@@ -1,197 +0,0 @@
-From 2f3ab39353cb9dde02ba64ab89b7c7725b25ae3b Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Tue, 1 Dec 2009 22:42:43 -0600
-Subject: [PATCH 12/24] add support to convert to YUY2/YUYV color format
-
----
- gst/stride/armv7.s   |   63 ++++++++++++++++++++++++++++++++++++++++++
- gst/stride/convert.c |   74 +++++++++++++++++++++++++++++++++++++++++++++++---
- 2 files changed, 133 insertions(+), 4 deletions(-)
-
-diff --git a/gst/stride/armv7.s b/gst/stride/armv7.s
-index ed636f7..2697a14 100644
---- a/gst/stride/armv7.s
-+++ b/gst/stride/armv7.s
-@@ -69,6 +69,69 @@ stride_copy_zip2_3:
-        bx lr
- @}
- 
-+
-+       .align
-+       .global stride_copy_zip3a
-+       .type   stride_copy_zip3a, %function
-+@void
-+@stride_copy_zip3a (guchar *new_buf,
-+@    guchar *orig_buf1, guchar *orig_buf2, guchar *orig_buf3, gint sz)
-+@{
-+@@@@ note: r0-r3, q0-3, and q8-q15 do not need to be preserved
-+stride_copy_zip3a:
-+       pld [r1, #64]
-+       pld [r2, #64]
-+       pld [r3, #64]
-+       ldr ip, [sp]     @ the sz arg
-+@ interleave remaining >= 32 bytes:
-+       cmp ip, #32
-+       blt stride_copy_zip3a_2
-+stride_copy_zip3a_1:
-+       vld1.8 {q8},      [r1]!  @ Y
-+       vld1.8 {q10},     [r1]!  @ Y
-+       vld1.8 {q9},      [r2]!  @ U
-+       vld1.8 {q11},     [r3]!  @ V
-+
-+       pld [r1, #64]
-+       pld [r2, #64]
-+       pld [r3, #64]
-+
-+       vzip.8 q9, q11           @ interleave U&V
-+       vzip.8 q8, q9            @ interleave Y1UV1
-+       vzip.8 q10, q11          @ interleave Y2UV2
-+
-+       vst1.8 {q8,q9},   [r0]!
-+       vst1.8 {q10,q11}, [r0]!
-+
-+       sub ip, ip, #32
-+
-+       cmp ip, #32
-+       bge stride_copy_zip3a_1
-+@ interleave remaining >= 16 bytes:
-+stride_copy_zip3a_2:
-+       cmp ip, #16
-+       blt stride_copy_zip3a_3
-+
-+       vld1.8 {d16},     [r1]!  @ Y
-+       vld1.8 {d18},     [r1]!  @ Y
-+       vld1.8 {d17},     [r2]!  @ U
-+       vld1.8 {d19},     [r3]!  @ V
-+
-+       vzip.8 d17, d19          @ interleave U&V
-+       vzip.8 d16, d17          @ interleave Y1UV1
-+       vzip.8 d18, d19          @ interleave Y2UV2
-+
-+       vst1.8 {d16,d17}, [r0]!
-+       vst1.8 {d18,d19}, [r0]!
-+
-+       sub ip, ip, #16
-+@ copy remaining >= 8 bytes:
-+stride_copy_zip3a_3:
-+@XXX
-+       bx lr
-+@}
-+
-+
-        .align
-        .global stride_copy
-        .type   stride_copy, %function
-diff --git a/gst/stride/convert.c b/gst/stride/convert.c
-index a15063b..0f59e78 100644
---- a/gst/stride/convert.c
-+++ b/gst/stride/convert.c
-@@ -58,6 +58,19 @@ stride_copy_zip2 (guchar *new_buf, guchar *orig_buf1, guchar *orig_buf2, gint sz
- }
- 
- WEAK void
-+stride_copy_zip3a (guchar *new_buf,
-+    guchar *orig_buf1, guchar *orig_buf2, guchar *orig_buf3, gint sz)
-+{
-+  while (sz > 1) {
-+    *new_buf++ = *orig_buf1++;
-+    *new_buf++ = *orig_buf2++;
-+    *new_buf++ = *orig_buf1++;
-+    *new_buf++ = *orig_buf3++;
-+    sz -= 2;
-+  }
-+}
-+
-+WEAK void
- stride_copy (guchar *new_buf, guchar *orig_buf, gint sz)
- {
-   memcpy (new_buf, orig_buf, sz);
-@@ -99,6 +112,36 @@ stridemove_zip2 (guchar *new_buf, guchar *orig_buf1, guchar *orig_buf2, gint new
- }
- 
- /**
-+ * move to strided buffer, interleaving three planes, where the first plane
-+ * (orig_buf1) has 2x as many samples.. Ie. ABACABAC..
-+ */
-+static void
-+stridemove_zip3a (guchar *new_buf,
-+    guchar *orig_buf1, guchar *orig_buf2, guchar *orig_buf3,
-+    guint new_width, gint orig_width, gint height)
-+{
-+  gint copy_width = (new_width < orig_width) ? new_width : orig_width;
-+
-+  while (height > 0) {
-+
-+    /* even row */
-+    stride_copy_zip3a (new_buf, orig_buf1, orig_buf2, orig_buf3, copy_width);
-+    new_buf += new_width;
-+    orig_buf1 += orig_width;
-+
-+    /* odd row, recycles same U & V */
-+    stride_copy_zip3a (new_buf, orig_buf1, orig_buf2, orig_buf3, copy_width);
-+    new_buf += new_width;
-+    orig_buf1 += orig_width;
-+
-+    orig_buf2 += orig_width/2;
-+    orig_buf3 += orig_width/2;
-+
-+    height -= 2;
-+  }
-+}
-+
-+/**
-  * Convert from one stride to another... like memmove, but can convert stride in
-  * the process.  This function is not aware of pixels, only of bytes.  So widths
-  * are given in bytes, not pixels.  The new_buf and orig_buf can point to the
-@@ -250,14 +293,36 @@ stridify_i420_nv12 (GstStrideTransform *self, guchar *strided, guchar *unstrided
-   /* XXX widths/heights/strides that are not multiple of four??: */
-   stridemove_zip2 (
-       strided + (height*stride),
--      unstrided + (height*width),
--      unstrided + (int)(height*width*1.25),
--      stride, width/2, height/2);                           /* interleave U&V */
--  stridemove (strided, unstrided, stride, width, height);   /* move Y */
-+      unstrided + (height*width),                           /* U */
-+      unstrided + (int)(height*width*1.25),                 /* V */
-+      stride, width/2, height/2);
-+  stridemove (strided, unstrided, stride, width, height);   /* Y */
-+
-+  return GST_FLOW_OK;
-+}
-+
-+/** convert I420 unstrided to YUY2 strided */
-+static GstFlowReturn
-+stridify_i420_yuy2 (GstStrideTransform *self, guchar *strided, guchar *unstrided)
-+{
-+  gint width  = self->width;
-+  gint height = self->height;
-+  gint stride = self->out_rowstride;
-+
-+  g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-+
-+  /* XXX widths/heights/strides that are not multiple of four??: */
-+  stridemove_zip3a (
-+      strided,
-+      unstrided,                                            /* Y */
-+      unstrided + (height*width),                           /* U */
-+      unstrided + (int)(height*width*1.25),                 /* V */
-+      stride, width, height);
- 
-   return GST_FLOW_OK;
- }
- 
-+
- /* last entry has GST_VIDEO_FORMAT_UNKNOWN for in/out formats */
- Conversion stride_conversions[] = {
-   { { GST_VIDEO_FORMAT_NV12, GST_VIDEO_FORMAT_NV12 }, stridify_420sp_420sp, unstridify_420sp_420sp },
-@@ -266,6 +331,7 @@ Conversion stride_conversions[] = {
-   { { GST_VIDEO_FORMAT_YUY2, GST_VIDEO_FORMAT_YUY2 }, stridify_422i_422i,   unstridify_422i_422i },
-   { { GST_VIDEO_FORMAT_UYVY, GST_VIDEO_FORMAT_UYVY }, stridify_422i_422i,   unstridify_422i_422i },
-   { { GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_NV12 }, stridify_i420_nv12,   NULL },
-+  { { GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_YUY2 }, stridify_i420_yuy2,   NULL },
-   /* add new entries before here */
-   { { GST_VIDEO_FORMAT_UNKNOWN } }
- };
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0013-Add-support-for-RGB565-to-stridetransform.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0013-Add-support-for-RGB565-to-stridetransform.patch
deleted file mode 100644
index d07c1b9..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0013-Add-support-for-RGB565-to-stridetransform.patch
+++ /dev/null
@@ -1,336 +0,0 @@
-From 28a5ad7c5ccfa98ffa7bb1425dc38ab16535fc26 Mon Sep 17 00:00:00 2001
-From: Castaneda Sheissa, Roberto <rsheissa@ti.com>
-Date: Sun, 3 Jan 2010 13:40:30 -0600
-Subject: [PATCH 13/24] Add support for RGB565 to stridetransform
-
----
- gst/stride/convert.c            |   30 ++++++++++
- gst/stride/gststridetransform.c |  120 ++++++++++++++++++++------------------
- 2 files changed, 93 insertions(+), 57 deletions(-)
-
-diff --git a/gst/stride/convert.c b/gst/stride/convert.c
-index 0f59e78..fdb02ae 100644
---- a/gst/stride/convert.c
-+++ b/gst/stride/convert.c
-@@ -322,6 +322,35 @@ stridify_i420_yuy2 (GstStrideTransform *self, guchar *strided, guchar *unstrided
-   return GST_FLOW_OK;
- }
- 
-+/** convert RGB565 to RGB565 strided **/
-+static GstFlowReturn
-+stridify_rgb565_rgb565 (GstStrideTransform *self, guchar *strided, guchar *unstrided)
-+{
-+    gint width  = self->width;
-+    gint height = self->height;
-+    gint stride = self->out_rowstride;
-+
-+    g_return_val_if_fail (stride >= (width*2), GST_FLOW_ERROR);
-+
-+    stridemove (strided, unstrided, stride, width*2, height);
-+
-+    return GST_FLOW_OK;
-+}
-+
-+/** convert RGB565 strided to RGB565 **/
-+static GstFlowReturn
-+unstridify_rgb565_rgb565 (GstStrideTransform *self, guchar *strided, guchar *unstrided)
-+{
-+    gint width  = self->width;
-+    gint height = self->height;
-+    gint stride = self->in_rowstride;
-+
-+    g_return_val_if_fail (stride >= (width*2), GST_FLOW_ERROR);
-+
-+    stridemove (unstrided, strided, width*2, stride, height);
-+    return GST_FLOW_OK;
-+}
-+
- 
- /* last entry has GST_VIDEO_FORMAT_UNKNOWN for in/out formats */
- Conversion stride_conversions[] = {
-@@ -332,6 +361,7 @@ Conversion stride_conversions[] = {
-   { { GST_VIDEO_FORMAT_UYVY, GST_VIDEO_FORMAT_UYVY }, stridify_422i_422i,   unstridify_422i_422i },
-   { { GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_NV12 }, stridify_i420_nv12,   NULL },
-   { { GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_YUY2 }, stridify_i420_yuy2,   NULL },
-+  { { GST_VIDEO_FORMAT_RGB16, GST_VIDEO_FORMAT_RGB16 }, stridify_rgb565_rgb565, unstridify_rgb565_rgb565 },
-   /* add new entries before here */
-   { { GST_VIDEO_FORMAT_UNKNOWN } }
- };
-diff --git a/gst/stride/gststridetransform.c b/gst/stride/gststridetransform.c
-index 6ab0479..c35be73 100644
---- a/gst/stride/gststridetransform.c
-+++ b/gst/stride/gststridetransform.c
-@@ -66,46 +66,47 @@ GST_ELEMENT_DETAILS ("Stride transform",
- 
- 
- /* TODO: add rgb formats too! */
--#define SUPPORTED_CAPS                                                        \
--  GST_VIDEO_CAPS_YUV_STRIDED ("{ I420, YV12, YUY2, UYVY, NV12 }", "[ 0, max ]")
-+#define YUV_SUPPORTED_CAPS                                                        \
-+  GST_VIDEO_CAPS_YUV_STRIDED ("{I420, YV12, YUY2, UYVY, NV12 }", "[ 0, max ]")
- 
-+#define RGB_SUPPORTED_CAPS                                                        \
-+  GST_VIDEO_CAPS_RGB_16_STRIDED ("[ 0, max ]")
- 
--static GstStaticPadTemplate src_template =
--GST_STATIC_PAD_TEMPLATE ("src",
-+
-+static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src",
-     GST_PAD_SRC,
-     GST_PAD_ALWAYS,
--    GST_STATIC_CAPS (SUPPORTED_CAPS)
--);
-+    GST_STATIC_CAPS (YUV_SUPPORTED_CAPS ";" RGB_SUPPORTED_CAPS)
-+    );
- 
--static GstStaticPadTemplate sink_template =
--GST_STATIC_PAD_TEMPLATE ("sink",
-+static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
-     GST_PAD_SINK,
-     GST_PAD_ALWAYS,
--    GST_STATIC_CAPS (SUPPORTED_CAPS)
--);
-+    GST_STATIC_CAPS (YUV_SUPPORTED_CAPS ";" RGB_SUPPORTED_CAPS)
-+    );
- 
- 
- GST_DEBUG_CATEGORY (stridetransform_debug);
- #define GST_CAT_DEFAULT stridetransform_debug
- 
- /* type functions */
--static void gst_stride_transform_dispose (GObject *obj);
-+static void gst_stride_transform_dispose (GObject * obj);
- 
- /* GstBaseTransform functions */
--static gboolean gst_stride_transform_get_unit_size (GstBaseTransform *base,
--    GstCaps *caps, guint *size);
--static gboolean gst_stride_transform_transform_size (GstBaseTransform *base,
-+static gboolean gst_stride_transform_get_unit_size (GstBaseTransform * base,
-+    GstCaps * caps, guint * size);
-+static gboolean gst_stride_transform_transform_size (GstBaseTransform * base,
-     GstPadDirection direction,
--    GstCaps *caps, guint size,
--    GstCaps *othercaps, guint *othersize);
--static GstCaps *gst_stride_transform_transform_caps (GstBaseTransform *base,
--    GstPadDirection direction, GstCaps *caps);
--static gboolean gst_stride_transform_set_caps (GstBaseTransform *base,
--    GstCaps *incaps, GstCaps *outcaps);
--static GstFlowReturn gst_stride_transform_transform (GstBaseTransform *base,
--    GstBuffer *inbuf, GstBuffer *outbuf);
-+    GstCaps * caps, guint size, GstCaps * othercaps, guint * othersize);
-+static GstCaps *gst_stride_transform_transform_caps (GstBaseTransform * base,
-+    GstPadDirection direction, GstCaps * caps);
-+static gboolean gst_stride_transform_set_caps (GstBaseTransform * base,
-+    GstCaps * incaps, GstCaps * outcaps);
-+static GstFlowReturn gst_stride_transform_transform (GstBaseTransform * base,
-+    GstBuffer * inbuf, GstBuffer * outbuf);
- 
--GST_BOILERPLATE (GstStrideTransform, gst_stride_transform, GstVideoFilter, GST_TYPE_VIDEO_FILTER);
-+GST_BOILERPLATE (GstStrideTransform, gst_stride_transform, GstVideoFilter,
-+    GST_TYPE_VIDEO_FILTER);
- 
- 
- static void
-@@ -113,7 +114,8 @@ gst_stride_transform_base_init (gpointer g_class)
- {
-   GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class);
- 
--  GST_DEBUG_CATEGORY_INIT (stridetransform_debug, "stride", 0, "stride transform element");
-+  GST_DEBUG_CATEGORY_INIT (stridetransform_debug, "stride", 0,
-+      "stride transform element");
- 
-   gst_element_class_set_details (gstelement_class, &stridetransform_details);
- 
-@@ -124,7 +126,7 @@ gst_stride_transform_base_init (gpointer g_class)
- }
- 
- static void
--gst_stride_transform_class_init (GstStrideTransformClass *klass)
-+gst_stride_transform_class_init (GstStrideTransformClass * klass)
- {
-   GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-   GstBaseTransformClass *basetransform_class = GST_BASE_TRANSFORM_CLASS (klass);
-@@ -146,14 +148,15 @@ gst_stride_transform_class_init (GstStrideTransformClass *klass)
- }
- 
- static void
--gst_stride_transform_init (GstStrideTransform *self, GstStrideTransformClass *klass)
-+gst_stride_transform_init (GstStrideTransform * self,
-+    GstStrideTransformClass * klass)
- {
-   GST_DEBUG_OBJECT (self, "not implemented");
- }
- 
- 
- static void
--gst_stride_transform_dispose (GObject *object)
-+gst_stride_transform_dispose (GObject * object)
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (object);
-   GST_DEBUG_OBJECT (self, "not implemented");
-@@ -164,15 +167,15 @@ gst_stride_transform_dispose (GObject *object)
-  * figure out the required buffer size based on @caps
-  */
- static gboolean
--gst_stride_transform_get_unit_size (GstBaseTransform *base,
--    GstCaps *caps, guint *size)
-+gst_stride_transform_get_unit_size (GstBaseTransform * base,
-+    GstCaps * caps, guint * size)
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
-   GstVideoFormat format;
-   gint width, height, rowstride;
- 
--  g_return_val_if_fail (gst_video_format_parse_caps_strided (
--      caps, &format, &width, &height, &rowstride), FALSE);
-+  g_return_val_if_fail (gst_video_format_parse_caps_strided (caps, &format,
-+          &width, &height, &rowstride), FALSE);
- 
-   *size = gst_video_format_get_size_strided (format, width, height, rowstride);
- 
-@@ -188,16 +191,14 @@ gst_stride_transform_get_unit_size (GstBaseTransform *base,
-  * buffer size is a multiple of the unit size.. which doesn't hold true.
-  */
- static gboolean
--gst_stride_transform_transform_size (GstBaseTransform *base,
-+gst_stride_transform_transform_size (GstBaseTransform * base,
-     GstPadDirection direction,
--    GstCaps *caps, guint size,
--    GstCaps *othercaps, guint *othersize)
-+    GstCaps * caps, guint size, GstCaps * othercaps, guint * othersize)
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
-   guint idx = (direction == GST_PAD_SINK) ? 0 : 1;
- 
--  if (self->cached_caps[idx] != othercaps)
--  {
-+  if (self->cached_caps[idx] != othercaps) {
-     guint sz;
-     if (!gst_stride_transform_get_unit_size (base, othercaps, &sz)) {
-       return FALSE;
-@@ -220,13 +221,15 @@ gst_stride_transform_transform_size (GstBaseTransform *base,
-  * helper to add all fields, other than rowstride to @caps, copied from @s.
-  */
- static void
--add_all_fields (GstCaps *caps, const gchar *name, GstStructure *s, gboolean rowstride, GstPadDirection direction)
-+add_all_fields (GstCaps * caps, const gchar * name, GstStructure * s,
-+    gboolean rowstride, GstPadDirection direction)
- {
-   gint idx;
-   GstStructure *new_s = gst_structure_new (name, NULL);
- 
-   if (rowstride) {
--    gst_structure_set (new_s, "rowstride", GST_TYPE_INT_RANGE, 1, G_MAXINT, NULL);
-+    gst_structure_set (new_s, "rowstride", GST_TYPE_INT_RANGE, 1, G_MAXINT,
-+        NULL);
-   }
- 
-   idx = gst_structure_n_fields (s) - 1;
-@@ -245,15 +248,16 @@ add_all_fields (GstCaps *caps, const gchar *name, GstStructure *s, gboolean rows
-       gint from_format = (direction == GST_PAD_SRC) ? 1 : 0;
- 
-       if (gst_structure_get_fourcc (s, "format", &fourcc)) {
--        GValue formats = {0};
--        GValue fourccval = {0};
-+        GValue formats = { 0 };
-+        GValue fourccval = { 0 };
-         gint i;
-         GstVideoFormat format = gst_video_format_from_fourcc (fourcc);
- 
-         g_value_init (&formats, GST_TYPE_LIST);
-         g_value_init (&fourccval, GST_TYPE_FOURCC);
- 
--        for (i=0; stride_conversions[i].format[0]!=GST_VIDEO_FORMAT_UNKNOWN; i++) {
-+        for (i = 0; stride_conversions[i].format[0] != GST_VIDEO_FORMAT_UNKNOWN;
-+            i++) {
-           if (stride_conversions[i].format[from_format] == format) {
-             gst_value_set_fourcc (&fourccval, gst_video_format_to_fourcc
-                 (stride_conversions[i].format[to_format]));
-@@ -281,8 +285,8 @@ add_all_fields (GstCaps *caps, const gchar *name, GstStructure *s, gboolean rows
-  * identical parameters
-  */
- static GstCaps *
--gst_stride_transform_transform_caps (GstBaseTransform *base,
--    GstPadDirection direction, GstCaps *caps)
-+gst_stride_transform_transform_caps (GstBaseTransform * base,
-+    GstPadDirection direction, GstCaps * caps)
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
-   GstCaps *ret;
-@@ -321,8 +325,8 @@ gst_stride_transform_transform_caps (GstBaseTransform *base,
-  * plus the requested rowstride of the @incaps and @outcaps
-  */
- static gboolean
--gst_stride_transform_set_caps (GstBaseTransform *base,
--    GstCaps *incaps, GstCaps *outcaps)
-+gst_stride_transform_set_caps (GstBaseTransform * base,
-+    GstCaps * incaps, GstCaps * outcaps)
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
-   gint width, height;
-@@ -333,13 +337,13 @@ gst_stride_transform_set_caps (GstBaseTransform *base,
-   LOG_CAPS (self, outcaps);
- 
-   g_return_val_if_fail (gst_video_format_parse_caps_strided (incaps,
--      &in_format, &self->width, &self->height, &self->in_rowstride), FALSE);
-+          &in_format, &self->width, &self->height, &self->in_rowstride), FALSE);
-   g_return_val_if_fail (gst_video_format_parse_caps_strided (outcaps,
--      &out_format, &width, &height, &self->out_rowstride), FALSE);
-+          &out_format, &width, &height, &self->out_rowstride), FALSE);
- 
-   self->conversion = NULL;
- 
--  for (i=0; stride_conversions[i].format[0]!=GST_VIDEO_FORMAT_UNKNOWN; i++) {
-+  for (i = 0; stride_conversions[i].format[0] != GST_VIDEO_FORMAT_UNKNOWN; i++) {
-     if ((stride_conversions[i].format[0] == in_format) &&
-         (stride_conversions[i].format[1] == out_format)) {
-       GST_DEBUG_OBJECT (self, "found stride_conversion: %d", i);
-@@ -349,26 +353,27 @@ gst_stride_transform_set_caps (GstBaseTransform *base,
-   }
- 
-   g_return_val_if_fail (self->conversion, FALSE);
--  g_return_val_if_fail (self->conversion->unstridify || !self->in_rowstride, FALSE);
--  g_return_val_if_fail (self->conversion->stridify || !self->out_rowstride, FALSE);
--  g_return_val_if_fail (self->width  == width,  FALSE);
-+  g_return_val_if_fail (self->conversion->unstridify
-+      || !self->in_rowstride, FALSE);
-+  g_return_val_if_fail (self->conversion->stridify
-+      || !self->out_rowstride, FALSE);
-+  g_return_val_if_fail (self->width == width, FALSE);
-   g_return_val_if_fail (self->height == height, FALSE);
- 
-   return TRUE;
- }
- 
- static GstFlowReturn
--gst_stride_transform_transform (GstBaseTransform *base,
--    GstBuffer *inbuf, GstBuffer *outbuf)
-+gst_stride_transform_transform (GstBaseTransform * base,
-+    GstBuffer * inbuf, GstBuffer * outbuf)
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
- 
-   GST_DEBUG_OBJECT (self, "inbuf=%p (size=%d), outbuf=%p (size=%d)",
--      inbuf, GST_BUFFER_SIZE (inbuf),
--      outbuf, GST_BUFFER_SIZE (outbuf));
-+      inbuf, GST_BUFFER_SIZE (inbuf), outbuf, GST_BUFFER_SIZE (outbuf));
- 
-   if (self->in_rowstride && self->out_rowstride) {
--    GST_DEBUG_OBJECT (self, "not implemented");  // TODO
-+    GST_DEBUG_OBJECT (self, "not implemented"); // TODO
-     return GST_FLOW_ERROR;
-   } else if (self->in_rowstride) {
-     return self->conversion->unstridify (self,
-@@ -378,7 +383,8 @@ gst_stride_transform_transform (GstBaseTransform *base,
-         GST_BUFFER_DATA (outbuf), GST_BUFFER_DATA (inbuf));
-   }
- 
--  GST_DEBUG_OBJECT (self, "this shouldn't happen!  in_rowstride=%d, out_rowstride=%d",
-+  GST_DEBUG_OBJECT (self,
-+      "this shouldn't happen!  in_rowstride=%d, out_rowstride=%d",
-       self->in_rowstride, self->out_rowstride);
- 
-   return GST_FLOW_ERROR;
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0014-stridetransform-updates-for-new-extra-anal-compiler-.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0014-stridetransform-updates-for-new-extra-anal-compiler-.patch
deleted file mode 100644
index 4e60f32..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0014-stridetransform-updates-for-new-extra-anal-compiler-.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From e97373aac252f312c5ac69305228db50886a7c5c Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Thu, 8 Apr 2010 03:30:35 -0500
-Subject: [PATCH 14/24] stridetransform: updates for new extra-anal compiler warning flags
-
----
- gst/stride/convert.c            |    6 ++++++
- gst/stride/gststridetransform.c |   13 ++++---------
- 2 files changed, 10 insertions(+), 9 deletions(-)
-
-diff --git a/gst/stride/convert.c b/gst/stride/convert.c
-index fdb02ae..ad9c0aa 100644
---- a/gst/stride/convert.c
-+++ b/gst/stride/convert.c
-@@ -48,6 +48,12 @@ GST_DEBUG_CATEGORY_EXTERN (stridetransform_debug);
-  * Conversion utilities:
-  */
- 
-+void stride_copy_zip2 (guchar * new_buf, guchar * orig_buf1,
-+    guchar * orig_buf2, gint sz);
-+void stride_copy_zip3a (guchar * new_buf, guchar * orig_buf1,
-+    guchar * orig_buf2, guchar * orig_buf3, gint sz);
-+void stride_copy (guchar * new_buf, guchar * orig_buf, gint sz);
-+
- WEAK void
- stride_copy_zip2 (guchar *new_buf, guchar *orig_buf1, guchar *orig_buf2, gint sz)
- {
-diff --git a/gst/stride/gststridetransform.c b/gst/stride/gststridetransform.c
-index c35be73..de07c11 100644
---- a/gst/stride/gststridetransform.c
-+++ b/gst/stride/gststridetransform.c
-@@ -57,14 +57,6 @@
- /* last entry has GST_VIDEO_FORMAT_UNKNOWN for in/out formats */
- extern const Conversion stride_conversions[];
- 
--
--static const GstElementDetails stridetransform_details =
--GST_ELEMENT_DETAILS ("Stride transform",
--    "Filter/Converter/Video",
--    "Convert between video buffers with and without stride, or with differing stride",
--    "Rob Clark <rob@ti.com>,");
--
--
- /* TODO: add rgb formats too! */
- #define YUV_SUPPORTED_CAPS                                                        \
-   GST_VIDEO_CAPS_YUV_STRIDED ("{I420, YV12, YUY2, UYVY, NV12 }", "[ 0, max ]")
-@@ -117,7 +109,10 @@ gst_stride_transform_base_init (gpointer g_class)
-   GST_DEBUG_CATEGORY_INIT (stridetransform_debug, "stride", 0,
-       "stride transform element");
- 
--  gst_element_class_set_details (gstelement_class, &stridetransform_details);
-+  gst_element_class_set_details_simple (gstelement_class,
-+      "Stride transform", "Filter/Converter/Video",
-+      "Convert between video buffers with and without stride, or with differing stride",
-+      "Rob Clark <rob@ti.com>,");
- 
-   gst_element_class_add_pad_template (gstelement_class,
-       gst_static_pad_template_get (&sink_template));
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0015-stridetransform-fix-problem-transforming-caps-with-l.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0015-stridetransform-fix-problem-transforming-caps-with-l.patch
deleted file mode 100644
index 0d757d9..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0015-stridetransform-fix-problem-transforming-caps-with-l.patch
+++ /dev/null
@@ -1,544 +0,0 @@
-From c8db3522e32ca6afbbd117b816068516eed8c594 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Sat, 30 Jan 2010 14:32:42 -0600
-Subject: [PATCH 15/24] stridetransform: fix problem transforming caps with list of fourcc's
-
-previous logic assumed that the format field would contain just a single fourcc
----
- gst/stride/convert.c            |  206 ++++++++++++++++++++-------------------
- gst/stride/gststridetransform.c |   78 +++++++++++-----
- 2 files changed, 159 insertions(+), 125 deletions(-)
-
-diff --git a/gst/stride/convert.c b/gst/stride/convert.c
-index ad9c0aa..17f9e2a 100644
---- a/gst/stride/convert.c
-+++ b/gst/stride/convert.c
-@@ -55,7 +55,8 @@ void stride_copy_zip3a (guchar * new_buf, guchar * orig_buf1,
- void stride_copy (guchar * new_buf, guchar * orig_buf, gint sz);
- 
- WEAK void
--stride_copy_zip2 (guchar *new_buf, guchar *orig_buf1, guchar *orig_buf2, gint sz)
-+stride_copy_zip2 (guchar * new_buf, guchar * orig_buf1, guchar * orig_buf2,
-+    gint sz)
- {
-   while (sz--) {
-     *new_buf++ = *orig_buf1++;
-@@ -64,8 +65,8 @@ stride_copy_zip2 (guchar *new_buf, guchar *orig_buf1, guchar *orig_buf2, gint sz
- }
- 
- WEAK void
--stride_copy_zip3a (guchar *new_buf,
--    guchar *orig_buf1, guchar *orig_buf2, guchar *orig_buf3, gint sz)
-+stride_copy_zip3a (guchar * new_buf,
-+    guchar * orig_buf1, guchar * orig_buf2, guchar * orig_buf3, gint sz)
- {
-   while (sz > 1) {
-     *new_buf++ = *orig_buf1++;
-@@ -77,7 +78,7 @@ stride_copy_zip3a (guchar *new_buf,
- }
- 
- WEAK void
--stride_copy (guchar *new_buf, guchar *orig_buf, gint sz)
-+stride_copy (guchar * new_buf, guchar * orig_buf, gint sz)
- {
-   memcpy (new_buf, orig_buf, sz);
- }
-@@ -87,11 +88,13 @@ stride_copy (guchar *new_buf, guchar *orig_buf, gint sz)
-  * move to strided buffer, interleaving two planes of identical dimensions
-  */
- static void
--stridemove_zip2 (guchar *new_buf, guchar *orig_buf1, guchar *orig_buf2, gint new_width, gint orig_width, gint height)
-+stridemove_zip2 (guchar * new_buf, guchar * orig_buf1, guchar * orig_buf2,
-+    gint new_width, gint orig_width, gint height)
- {
-   int row;
- 
--  GST_DEBUG ("new_buf=%p, orig_buf1=%p, orig_buf2=%p, new_width=%d, orig_width=%d, height=%d",
-+  GST_DEBUG
-+      ("new_buf=%p, orig_buf1=%p, orig_buf2=%p, new_width=%d, orig_width=%d, height=%d",
-       new_buf, orig_buf1, orig_buf2, new_width, orig_width, height);
- 
-   /* if increasing the stride, work from bottom-up to avoid overwriting data
-@@ -99,20 +102,16 @@ stridemove_zip2 (guchar *new_buf, guchar *orig_buf1, guchar *orig_buf2, gint new
-    * for the same reason.
-    */
-   if (new_width > orig_width) {
--    for (row=height-1; row>=0; row--) {
--      stride_copy_zip2 (
--          new_buf+(new_width*row),
--          orig_buf1+(orig_width*row),
--          orig_buf2+(orig_width*row),
--          orig_width);
-+    for (row = height - 1; row >= 0; row--) {
-+      stride_copy_zip2 (new_buf + (new_width * row),
-+          orig_buf1 + (orig_width * row),
-+          orig_buf2 + (orig_width * row), orig_width);
-     }
-   } else {
--    for (row=0; row<height; row++) {
--      stride_copy_zip2 (
--          new_buf+(new_width*row),
--          orig_buf1+(orig_width*row),
--          orig_buf2+(orig_width*row),
--          new_width);
-+    for (row = 0; row < height; row++) {
-+      stride_copy_zip2 (new_buf + (new_width * row),
-+          orig_buf1 + (orig_width * row),
-+          orig_buf2 + (orig_width * row), new_width);
-     }
-   }
- }
-@@ -122,8 +121,8 @@ stridemove_zip2 (guchar *new_buf, guchar *orig_buf1, guchar *orig_buf2, gint new
-  * (orig_buf1) has 2x as many samples.. Ie. ABACABAC..
-  */
- static void
--stridemove_zip3a (guchar *new_buf,
--    guchar *orig_buf1, guchar *orig_buf2, guchar *orig_buf3,
-+stridemove_zip3a (guchar * new_buf,
-+    guchar * orig_buf1, guchar * orig_buf2, guchar * orig_buf3,
-     guint new_width, gint orig_width, gint height)
- {
-   gint copy_width = (new_width < orig_width) ? new_width : orig_width;
-@@ -140,8 +139,8 @@ stridemove_zip3a (guchar *new_buf,
-     new_buf += new_width;
-     orig_buf1 += orig_width;
- 
--    orig_buf2 += orig_width/2;
--    orig_buf3 += orig_width/2;
-+    orig_buf2 += orig_width / 2;
-+    orig_buf3 += orig_width / 2;
- 
-     height -= 2;
-   }
-@@ -155,7 +154,8 @@ stridemove_zip3a (guchar *new_buf,
-  * enough.
-  */
- static void
--stridemove (guchar *new_buf, guchar *orig_buf, gint new_width, gint orig_width, gint height)
-+stridemove (guchar * new_buf, guchar * orig_buf, gint new_width,
-+    gint orig_width, gint height)
- {
-   int row;
- 
-@@ -167,12 +167,14 @@ stridemove (guchar *new_buf, guchar *orig_buf, gint new_width, gint orig_width,
-    * for the same reason.
-    */
-   if (new_width > orig_width) {
--    for (row=height-1; row>=0; row--) {
--      stride_copy (new_buf+(new_width*row), orig_buf+(orig_width*row), orig_width);
-+    for (row = height - 1; row >= 0; row--) {
-+      stride_copy (new_buf + (new_width * row), orig_buf + (orig_width * row),
-+          orig_width);
-     }
-   } else {
--    for (row=0; row<height; row++) {
--      stride_copy (new_buf+(new_width*row), orig_buf+(orig_width*row), new_width);
-+    for (row = 0; row < height; row++) {
-+      stride_copy (new_buf + (new_width * row), orig_buf + (orig_width * row),
-+          new_width);
-     }
-   }
- }
-@@ -183,9 +185,10 @@ stridemove (guchar *new_buf, guchar *orig_buf, gint new_width, gint orig_width,
- 
- /** convert 4:2:0 semiplanar to same 4:2:0 semiplanar */
- static GstFlowReturn
--unstridify_420sp_420sp (GstStrideTransform *self, guchar *unstrided, guchar *strided)
-+unstridify_420sp_420sp (GstStrideTransform * self, guchar * unstrided,
-+    guchar * strided)
- {
--  gint width  = self->width;
-+  gint width = self->width;
-   gint height = self->height;
-   gint stride = self->in_rowstride;
- 
-@@ -196,10 +199,12 @@ unstridify_420sp_420sp (GstStrideTransform *self, guchar *unstrided, guchar *str
- 
-   return GST_FLOW_OK;
- }
-+
- static GstFlowReturn
--stridify_420sp_420sp (GstStrideTransform *self, guchar *strided, guchar *unstrided)
-+stridify_420sp_420sp (GstStrideTransform * self, guchar * strided,
-+    guchar * unstrided)
- {
--  gint width  = self->width;
-+  gint width = self->width;
-   gint height = self->height;
-   gint stride = self->out_rowstride;
- 
-@@ -214,115 +219,107 @@ stridify_420sp_420sp (GstStrideTransform *self, guchar *strided, guchar *unstrid
- 
- /** convert 4:2:0 planar to same 4:2:0 planar */
- static GstFlowReturn
--unstridify_420p_420p (GstStrideTransform *self, guchar *unstrided, guchar *strided)
-+unstridify_420p_420p (GstStrideTransform * self, guchar * unstrided,
-+    guchar * strided)
- {
--  gint width  = self->width;
-+  gint width = self->width;
-   gint height = self->height;
-   gint stride = self->in_rowstride;
- 
-   g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
- 
--  stridemove (unstrided, strided, width, stride, height);   /* move Y */
--  stridemove (
--      unstrided + (height*width),
--      strided + (height*stride),
--      width/2, stride, height);                             /* move V/U */
-+  stridemove (unstrided, strided, width, stride, height);       /* move Y */
-+  stridemove (unstrided + (height * width), strided + (height * stride), width / 2, stride, height);    /* move V/U */
-   /* XXX odd widths/heights/strides: */
--  stridemove (
--      unstrided + (int)(height*width*1.5),
--      strided + (int)(height*stride*1.5),
--      width/2, stride, height);                             /* move U/V */
-+  stridemove (unstrided + (int) (height * width * 1.5), strided + (int) (height * stride * 1.5), width / 2, stride, height);    /* move U/V */
- 
-   return GST_FLOW_OK;
- }
-+
- static GstFlowReturn
--stridify_420p_420p (GstStrideTransform *self, guchar *strided, guchar *unstrided)
-+stridify_420p_420p (GstStrideTransform * self, guchar * strided,
-+    guchar * unstrided)
- {
--  gint width  = self->width;
-+  gint width = self->width;
-   gint height = self->height;
-   gint stride = self->out_rowstride;
- 
-   g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
- 
-   /* XXX odd widths/heights/strides: */
--  stridemove (
--      strided + (int)(height*stride*1.5),
--      unstrided + (int)(height*width*1.5),
--      stride, width/2, height);                             /* move U/V */
--  stridemove (
--      strided + (height*stride),
--      unstrided + (height*width),
--      stride, width/2, height);                             /* move V/U */
--  stridemove (strided, unstrided, stride, width, height);   /* move Y */
-+  stridemove (strided + (int) (height * stride * 1.5), unstrided + (int) (height * width * 1.5), stride, width / 2, height);    /* move U/V */
-+  stridemove (strided + (height * stride), unstrided + (height * width), stride, width / 2, height);    /* move V/U */
-+  stridemove (strided, unstrided, stride, width, height);       /* move Y */
- 
-   return GST_FLOW_OK;
- }
- 
- /** convert 4:2:2 packed to same 4:2:2 packed */
- static GstFlowReturn
--unstridify_422i_422i (GstStrideTransform *self, guchar *unstrided, guchar *strided)
-+unstridify_422i_422i (GstStrideTransform * self, guchar * unstrided,
-+    guchar * strided)
- {
--  gint width  = self->width;
-+  gint width = self->width;
-   gint height = self->height;
-   gint stride = self->in_rowstride;
- 
--  g_return_val_if_fail (stride >= (width*2), GST_FLOW_ERROR);
-+  g_return_val_if_fail (stride >= (width * 2), GST_FLOW_ERROR);
- 
--  stridemove (unstrided, strided, width*2, stride, height);
-+  stridemove (unstrided, strided, width * 2, stride, height);
- 
-   return GST_FLOW_OK;
- }
-+
- static GstFlowReturn
--stridify_422i_422i (GstStrideTransform *self, guchar *strided, guchar *unstrided)
-+stridify_422i_422i (GstStrideTransform * self, guchar * strided,
-+    guchar * unstrided)
- {
--  gint width  = self->width;
-+  gint width = self->width;
-   gint height = self->height;
-   gint stride = self->out_rowstride;
- 
--  g_return_val_if_fail (stride >= (width*2), GST_FLOW_ERROR);
-+  g_return_val_if_fail (stride >= (width * 2), GST_FLOW_ERROR);
- 
--  stridemove (strided, unstrided, stride, width*2, height);
-+  stridemove (strided, unstrided, stride, width * 2, height);
- 
-   return GST_FLOW_OK;
- }
- 
- /** convert I420 unstrided to NV12 strided */
- static GstFlowReturn
--stridify_i420_nv12 (GstStrideTransform *self, guchar *strided, guchar *unstrided)
-+stridify_i420_nv12 (GstStrideTransform * self, guchar * strided,
-+    guchar * unstrided)
- {
--  gint width  = self->width;
-+  gint width = self->width;
-   gint height = self->height;
-   gint stride = self->out_rowstride;
- 
-   g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
- 
-   /* XXX widths/heights/strides that are not multiple of four??: */
--  stridemove_zip2 (
--      strided + (height*stride),
--      unstrided + (height*width),                           /* U */
--      unstrided + (int)(height*width*1.25),                 /* V */
--      stride, width/2, height/2);
--  stridemove (strided, unstrided, stride, width, height);   /* Y */
-+  stridemove_zip2 (strided + (height * stride), unstrided + (height * width),   /* U */
-+      unstrided + (int) (height * width * 1.25),        /* V */
-+      stride, width / 2, height / 2);
-+  stridemove (strided, unstrided, stride, width, height);       /* Y */
- 
-   return GST_FLOW_OK;
- }
- 
- /** convert I420 unstrided to YUY2 strided */
- static GstFlowReturn
--stridify_i420_yuy2 (GstStrideTransform *self, guchar *strided, guchar *unstrided)
-+stridify_i420_yuy2 (GstStrideTransform * self, guchar * strided,
-+    guchar * unstrided)
- {
--  gint width  = self->width;
-+  gint width = self->width;
-   gint height = self->height;
-   gint stride = self->out_rowstride;
- 
-   g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
- 
-   /* XXX widths/heights/strides that are not multiple of four??: */
--  stridemove_zip3a (
--      strided,
--      unstrided,                                            /* Y */
--      unstrided + (height*width),                           /* U */
--      unstrided + (int)(height*width*1.25),                 /* V */
-+  stridemove_zip3a (strided, unstrided, /* Y */
-+      unstrided + (height * width),     /* U */
-+      unstrided + (int) (height * width * 1.25),        /* V */
-       stride, width, height);
- 
-   return GST_FLOW_OK;
-@@ -330,46 +327,51 @@ stridify_i420_yuy2 (GstStrideTransform *self, guchar *strided, guchar *unstrided
- 
- /** convert RGB565 to RGB565 strided **/
- static GstFlowReturn
--stridify_rgb565_rgb565 (GstStrideTransform *self, guchar *strided, guchar *unstrided)
-+stridify_rgb565_rgb565 (GstStrideTransform * self, guchar * strided,
-+    guchar * unstrided)
- {
--    gint width  = self->width;
--    gint height = self->height;
--    gint stride = self->out_rowstride;
-+  gint width = self->width;
-+  gint height = self->height;
-+  gint stride = self->out_rowstride;
- 
--    g_return_val_if_fail (stride >= (width*2), GST_FLOW_ERROR);
-+  g_return_val_if_fail (stride >= (width * 2), GST_FLOW_ERROR);
- 
--    stridemove (strided, unstrided, stride, width*2, height);
-+  stridemove (strided, unstrided, stride, width * 2, height);
- 
--    return GST_FLOW_OK;
-+  return GST_FLOW_OK;
- }
- 
- /** convert RGB565 strided to RGB565 **/
- static GstFlowReturn
--unstridify_rgb565_rgb565 (GstStrideTransform *self, guchar *strided, guchar *unstrided)
-+unstridify_rgb565_rgb565 (GstStrideTransform * self, guchar * strided,
-+    guchar * unstrided)
- {
--    gint width  = self->width;
--    gint height = self->height;
--    gint stride = self->in_rowstride;
-+  gint width = self->width;
-+  gint height = self->height;
-+  gint stride = self->in_rowstride;
- 
--    g_return_val_if_fail (stride >= (width*2), GST_FLOW_ERROR);
-+  g_return_val_if_fail (stride >= (width * 2), GST_FLOW_ERROR);
- 
--    stridemove (unstrided, strided, width*2, stride, height);
--    return GST_FLOW_OK;
-+  stridemove (unstrided, strided, width * 2, stride, height);
-+  return GST_FLOW_OK;
- }
- 
-+#define CONVERT(tofmt, fromfmt, stridify, unstridify)           \
-+		{                                                           \
-+      { GST_VIDEO_FORMAT_##tofmt, GST_VIDEO_FORMAT_##fromfmt }, \
-+      stridify, unstridify                                      \
-+    }
- 
- /* last entry has GST_VIDEO_FORMAT_UNKNOWN for in/out formats */
--Conversion stride_conversions[] = {
--  { { GST_VIDEO_FORMAT_NV12, GST_VIDEO_FORMAT_NV12 }, stridify_420sp_420sp, unstridify_420sp_420sp },
--  { { GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_I420 }, stridify_420p_420p,   unstridify_420p_420p },
--  { { GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_YV12 }, stridify_420p_420p,   unstridify_420p_420p },
--  { { GST_VIDEO_FORMAT_YUY2, GST_VIDEO_FORMAT_YUY2 }, stridify_422i_422i,   unstridify_422i_422i },
--  { { GST_VIDEO_FORMAT_UYVY, GST_VIDEO_FORMAT_UYVY }, stridify_422i_422i,   unstridify_422i_422i },
--  { { GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_NV12 }, stridify_i420_nv12,   NULL },
--  { { GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_YUY2 }, stridify_i420_yuy2,   NULL },
--  { { GST_VIDEO_FORMAT_RGB16, GST_VIDEO_FORMAT_RGB16 }, stridify_rgb565_rgb565, unstridify_rgb565_rgb565 },
-+const Conversion stride_conversions[] = {
-+  CONVERT (NV12, NV12, stridify_420sp_420sp, unstridify_420sp_420sp),
-+  CONVERT (I420, I420, stridify_420p_420p, unstridify_420p_420p),
-+  CONVERT (YV12, YV12, stridify_420p_420p, unstridify_420p_420p),
-+  CONVERT (YUY2, YUY2, stridify_422i_422i, unstridify_422i_422i),
-+  CONVERT (UYVY, UYVY, stridify_422i_422i, unstridify_422i_422i),
-+  CONVERT (I420, NV12, stridify_i420_nv12, NULL),
-+  CONVERT (I420, YUY2, stridify_i420_yuy2, NULL),
-+  CONVERT (RGB16, RGB16, stridify_rgb565_rgb565, unstridify_rgb565_rgb565),
-   /* add new entries before here */
--  { { GST_VIDEO_FORMAT_UNKNOWN } }
-+  {{GST_VIDEO_FORMAT_UNKNOWN}}
- };
--
--
-diff --git a/gst/stride/gststridetransform.c b/gst/stride/gststridetransform.c
-index de07c11..4469e7f 100644
---- a/gst/stride/gststridetransform.c
-+++ b/gst/stride/gststridetransform.c
-@@ -146,7 +146,9 @@ static void
- gst_stride_transform_init (GstStrideTransform * self,
-     GstStrideTransformClass * klass)
- {
--  GST_DEBUG_OBJECT (self, "not implemented");
-+  GST_DEBUG_OBJECT (self, "ENTER");
-+  self->cached_caps[0] = NULL;
-+  self->cached_caps[1] = NULL;
- }
- 
- 
-@@ -154,7 +156,7 @@ static void
- gst_stride_transform_dispose (GObject * object)
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (object);
--  GST_DEBUG_OBJECT (self, "not implemented");
-+  GST_DEBUG_OBJECT (self, "ENTER");
-   G_OBJECT_CLASS (parent_class)->dispose (object);
- }
- 
-@@ -210,7 +212,30 @@ gst_stride_transform_transform_size (GstBaseTransform * base,
-   return TRUE;
- }
- 
-+/**
-+ * helper to check possible @fourcc conversions to the list @formats
-+ */
-+static void
-+add_all_fourcc_conversions (GValue * formats, guint32 fourcc,
-+    GstPadDirection direction)
-+{
-+  gint to_format = (direction == GST_PAD_SINK) ? 1 : 0;
-+  gint from_format = (direction == GST_PAD_SRC) ? 1 : 0;
-+  GValue fourccval = { 0 };
-+  gint i;
-+  GstVideoFormat format = gst_video_format_from_fourcc (fourcc);
- 
-+  g_value_init (&fourccval, GST_TYPE_FOURCC);
-+
-+  for (i = 0; stride_conversions[i].format[0] != GST_VIDEO_FORMAT_UNKNOWN; i++) {
-+    if (stride_conversions[i].format[from_format] == format) {
-+      guint result_fourcc =
-+          gst_video_format_to_fourcc (stride_conversions[i].format[to_format]);
-+      gst_value_set_fourcc (&fourccval, result_fourcc);
-+      gst_value_list_append_value (formats, &fourccval);
-+    }
-+  }
-+}
- 
- /**
-  * helper to add all fields, other than rowstride to @caps, copied from @s.
-@@ -230,43 +255,44 @@ add_all_fields (GstCaps * caps, const gchar * name, GstStructure * s,
-   idx = gst_structure_n_fields (s) - 1;
-   while (idx >= 0) {
-     const gchar *name = gst_structure_nth_field_name (s, idx);
-+    const GValue *val = gst_structure_get_value (s, name);
-+
-     idx--;
- 
-     /* for format field, check the stride_conversions table to see what
-      * we can support:
-      */
-     if (!strcmp ("format", name)) {
--      guint fourcc;
-+      GValue formats = { 0 };
- 
--      /* XXX double check this: */
--      gint to_format = (direction == GST_PAD_SINK) ? 1 : 0;
--      gint from_format = (direction == GST_PAD_SRC) ? 1 : 0;
-+      g_value_init (&formats, GST_TYPE_LIST);
- 
--      if (gst_structure_get_fourcc (s, "format", &fourcc)) {
--        GValue formats = { 0 };
--        GValue fourccval = { 0 };
-+      if (GST_VALUE_HOLDS_FOURCC (val)) {
-+        add_all_fourcc_conversions (&formats,
-+            gst_value_get_fourcc (val), direction);
-+      } else if (GST_VALUE_HOLDS_LIST (val)) {
-         gint i;
--        GstVideoFormat format = gst_video_format_from_fourcc (fourcc);
--
--        g_value_init (&formats, GST_TYPE_LIST);
--        g_value_init (&fourccval, GST_TYPE_FOURCC);
--
--        for (i = 0; stride_conversions[i].format[0] != GST_VIDEO_FORMAT_UNKNOWN;
--            i++) {
--          if (stride_conversions[i].format[from_format] == format) {
--            gst_value_set_fourcc (&fourccval, gst_video_format_to_fourcc
--                (stride_conversions[i].format[to_format]));
--            gst_value_list_append_value (&formats, &fourccval);
-+        for (i = 0; i < gst_value_list_get_size (val); i++) {
-+          const GValue *list_val = gst_value_list_get_value (val, i);
-+          if (GST_VALUE_HOLDS_FOURCC (list_val)) {
-+            add_all_fourcc_conversions (&formats,
-+                gst_value_get_fourcc (list_val), direction);
-+          } else {
-+            GST_WARNING ("malformed caps!!");
-+            break;
-           }
-         }
--
--        continue;
-+      } else {
-+        GST_WARNING ("malformed caps!!");
-       }
-+
-+      gst_structure_set_value (new_s, "format", &formats);
-+
-+      continue;
-     }
- 
-     /* copy over all other non-rowstride fields: */
-     if (strcmp ("rowstride", name)) {
--      const GValue *val = gst_structure_get_value (s, name);
-       gst_structure_set_value (new_s, name, val);
-     }
-   }
-@@ -347,6 +373,10 @@ gst_stride_transform_set_caps (GstBaseTransform * base,
-     }
-   }
- 
-+  GST_DEBUG_OBJECT (self,
-+      "conversion[%d]=%p, in_rowstride=%d, out_rowstride=%d",
-+      i, self->conversion, self->in_rowstride, self->out_rowstride);
-+
-   g_return_val_if_fail (self->conversion, FALSE);
-   g_return_val_if_fail (self->conversion->unstridify
-       || !self->in_rowstride, FALSE);
-@@ -355,6 +385,8 @@ gst_stride_transform_set_caps (GstBaseTransform * base,
-   g_return_val_if_fail (self->width == width, FALSE);
-   g_return_val_if_fail (self->height == height, FALSE);
- 
-+  GST_DEBUG_OBJECT (self, "caps are ok");
-+
-   return TRUE;
- }
- 
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0016-modify-playbin-to-use-stridetransform.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0016-modify-playbin-to-use-stridetransform.patch
deleted file mode 100644
index 82c9b25..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0016-modify-playbin-to-use-stridetransform.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From eb2753337944d24419dc13968137bf06a5e8f77c Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Sat, 6 Feb 2010 22:10:16 -0600
-Subject: [PATCH 16/24] modify playbin to use stridetransform
-
----
- gst/playback/gstplaysink.c |   29 ++++-------------------------
- 1 files changed, 4 insertions(+), 25 deletions(-)
-
-diff --git a/gst/playback/gstplaysink.c b/gst/playback/gstplaysink.c
-index bb41a03..dedd3be 100644
---- a/gst/playback/gstplaysink.c
-+++ b/gst/playback/gstplaysink.c
-@@ -1267,13 +1267,13 @@ gen_video_chain (GstPlaySink * playsink, gboolean raw, gboolean async)
-   }
- 
-   if (raw && !(playsink->flags & GST_PLAY_FLAG_NATIVE_VIDEO)) {
--    GST_DEBUG_OBJECT (playsink, "creating ffmpegcolorspace");
--    chain->conv = gst_element_factory_make ("ffmpegcolorspace", "vconv");
-+    GST_DEBUG_OBJECT (playsink, "creating stridetransform");
-+    chain->conv = gst_element_factory_make ("stridetransform", "vconv");
-     if (chain->conv == NULL) {
--      post_missing_element_message (playsink, "ffmpegcolorspace");
-+      post_missing_element_message (playsink, "stridetransform");
-       GST_ELEMENT_WARNING (playsink, CORE, MISSING_PLUGIN,
-           (_("Missing element '%s' - check your GStreamer installation."),
--              "ffmpegcolorspace"), ("video rendering might fail"));
-+              "stridetransform"), ("video rendering might fail"));
-     } else {
-       gst_bin_add (bin, chain->conv);
-       if (prev) {
-@@ -1285,27 +1285,6 @@ gen_video_chain (GstPlaySink * playsink, gboolean raw, gboolean async)
-       }
-       prev = chain->conv;
-     }
--
--    GST_DEBUG_OBJECT (playsink, "creating videoscale");
--    chain->scale = gst_element_factory_make ("videoscale", "vscale");
--    if (chain->scale == NULL) {
--      post_missing_element_message (playsink, "videoscale");
--      GST_ELEMENT_WARNING (playsink, CORE, MISSING_PLUGIN,
--          (_("Missing element '%s' - check your GStreamer installation."),
--              "videoscale"), ("possibly a liboil version mismatch?"));
--    } else {
--      /* Add black borders if necessary to keep the DAR */
--      g_object_set (chain->scale, "add-borders", TRUE, NULL);
--      gst_bin_add (bin, chain->scale);
--      if (prev) {
--        if (!gst_element_link_pads_full (prev, "src", chain->scale, "sink",
--                GST_PAD_LINK_CHECK_TEMPLATE_CAPS))
--          goto link_failed;
--      } else {
--        head = chain->scale;
--      }
--      prev = chain->scale;
--    }
-   }
- 
-   if (prev) {
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0017-playbin-disable-interlaced-support.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0017-playbin-disable-interlaced-support.patch
deleted file mode 100644
index 44bb868..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0017-playbin-disable-interlaced-support.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 82d8f741f626ed449c84e0ae4c8e27219557149e Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Thu, 19 Aug 2010 10:32:52 -0500
-Subject: [PATCH 17/24] playbin: disable interlaced support
-
-Latest totem is enabling interlaced support, which causes similar issues
-to when native-video is not used.. for now, since none of the codecs
-support it, disable interlaced support.
----
- gst/playback/gstplaysink.c |    2 ++
- 1 files changed, 2 insertions(+), 0 deletions(-)
-
-diff --git a/gst/playback/gstplaysink.c b/gst/playback/gstplaysink.c
-index dedd3be..957f288 100644
---- a/gst/playback/gstplaysink.c
-+++ b/gst/playback/gstplaysink.c
-@@ -2118,11 +2118,13 @@ gst_play_sink_reconfigure (GstPlaySink * playsink)
-     /* we have video and we are requested to show it */
-     need_video = TRUE;
- 
-+#if 0
-     /* we only deinterlace if native video is not requested and
-      * we have raw video */
-     if ((flags & GST_PLAY_FLAG_DEINTERLACE)
-         && !(flags & GST_PLAY_FLAG_NATIVE_VIDEO) && playsink->video_pad_raw)
-       need_deinterlace = TRUE;
-+#endif
-   }
- 
-   if (playsink->audio_pad) {
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0018-textoverlay-add-stride-support.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0018-textoverlay-add-stride-support.patch
deleted file mode 100644
index 8c0c423..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0018-textoverlay-add-stride-support.patch
+++ /dev/null
@@ -1,132 +0,0 @@
-From 8cd575c6c2f46464d7704e07102a648bba08a6c6 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Mon, 23 Aug 2010 14:01:14 -0500
-Subject: [PATCH 18/24] textoverlay: add stride support
-
----
- ext/pango/gsttextoverlay.c |   37 +++++++++++++++++++++++++------------
- ext/pango/gsttextoverlay.h |    1 +
- 2 files changed, 26 insertions(+), 12 deletions(-)
-
-diff --git a/ext/pango/gsttextoverlay.c b/ext/pango/gsttextoverlay.c
-index 915a59c..1bf3638 100644
---- a/ext/pango/gsttextoverlay.c
-+++ b/ext/pango/gsttextoverlay.c
-@@ -187,7 +187,7 @@ static GstStaticPadTemplate src_template_factory =
-     GST_PAD_ALWAYS,
-     GST_STATIC_CAPS (GST_VIDEO_CAPS_BGRx ";"
-         GST_VIDEO_CAPS_xRGB ";"
--        GST_VIDEO_CAPS_YUV ("{AYUV, I420, UYVY, NV12, NV21}"))
-+        GST_VIDEO_CAPS_YUV_STRIDED ("{AYUV, I420, UYVY, NV12, NV21}", "[0, max]"))
-     );
- 
- static GstStaticPadTemplate video_sink_template_factory =
-@@ -196,7 +196,7 @@ static GstStaticPadTemplate video_sink_template_factory =
-     GST_PAD_ALWAYS,
-     GST_STATIC_CAPS (GST_VIDEO_CAPS_BGRx ";"
-         GST_VIDEO_CAPS_xRGB ";"
--        GST_VIDEO_CAPS_YUV ("{AYUV, I420, UYVY, NV12, NV21}"))
-+        GST_VIDEO_CAPS_YUV_STRIDED ("{AYUV, I420, UYVY, NV12, NV21}", "[0, max]"))
-     );
- 
- static GstStaticPadTemplate text_sink_template_factory =
-@@ -724,12 +724,13 @@ gst_text_overlay_setcaps (GstPad * pad, GstCaps * caps)
- 
-   overlay->width = 0;
-   overlay->height = 0;
-+  overlay->rowstride = 0;
-   structure = gst_caps_get_structure (caps, 0);
-   fps = gst_structure_get_value (structure, "framerate");
- 
-   if (fps
--      && gst_video_format_parse_caps (caps, &overlay->format, &overlay->width,
--          &overlay->height)) {
-+      && gst_video_format_parse_caps_strided (caps, &overlay->format, &overlay->width,
-+          &overlay->height, &overlay->rowstride)) {
-     ret = gst_pad_set_caps (overlay->srcpad, caps);
-   }
- 
-@@ -1364,14 +1365,21 @@ gst_text_overlay_render_pangocairo (GstTextOverlay * overlay,
- #define BOX_XPAD         6
- #define BOX_YPAD         6
- 
-+static gint
-+gst_text_overlay_get_stride (GstTextOverlay * overlay, gint component)
-+{
-+  if (overlay->rowstride)
-+    return overlay->rowstride;
-+  return gst_video_format_get_row_stride (overlay->format, 0, overlay->width);
-+}
-+
- static inline void
- gst_text_overlay_shade_planar_Y (GstTextOverlay * overlay, guchar * dest,
-     gint x0, gint x1, gint y0, gint y1)
- {
-   gint i, j, dest_stride;
- 
--  dest_stride = gst_video_format_get_row_stride (overlay->format, 0,
--      overlay->width);
-+  dest_stride = gst_text_overlay_get_stride (overlay, 0);
- 
-   x0 = CLAMP (x0 - BOX_XPAD, 0, overlay->width);
-   x1 = CLAMP (x1 + BOX_XPAD, 0, overlay->width);
-@@ -1436,7 +1444,9 @@ static inline void
- gst_text_overlay_shade_xRGB (GstTextOverlay * overlay, guchar * dest,
-     gint x0, gint x1, gint y0, gint y1)
- {
--  gint i, j;
-+  gint i, j, dest_stride;
-+
-+  dest_stride = gst_text_overlay_get_stride (overlay, 0);
- 
-   x0 = CLAMP (x0 - BOX_XPAD, 0, overlay->width);
-   x1 = CLAMP (x1 + BOX_XPAD, 0, overlay->width);
-@@ -1448,7 +1458,7 @@ gst_text_overlay_shade_xRGB (GstTextOverlay * overlay, guchar * dest,
-     for (j = x0; j < x1; j++) {
-       gint y, y_pos, k;
- 
--      y_pos = (i * 4 * overlay->width) + j * 4;
-+      y_pos = (i * dest_stride) + j * 4;
-       for (k = 0; k < 4; k++) {
-         y = dest[y_pos + k] + overlay->shading_value;
-         dest[y_pos + k] = CLAMP (y, 0, 255);
-@@ -1480,10 +1490,10 @@ gst_text_overlay_blit_NV12_NV21 (GstTextOverlay * overlay,
-   w = overlay->width;
-   h = overlay->height;
- 
--  y_stride = gst_video_format_get_row_stride (overlay->format, 0, w);
--  uv_stride = gst_video_format_get_row_stride (overlay->format, 1, w);
--  u_offset = gst_video_format_get_component_offset (overlay->format, 1, w, h);
--  v_offset = gst_video_format_get_component_offset (overlay->format, 2, w, h);
-+  y_stride = gst_text_overlay_get_stride (overlay, 0);
-+  uv_stride = gst_text_overlay_get_stride (overlay, 1);
-+  u_offset = gst_video_format_get_component_offset (overlay->format, 1, y_stride, h);
-+  v_offset = gst_video_format_get_component_offset (overlay->format, 2, y_stride, h);
- 
-   gst_text_overlay_blit_1 (overlay, yuv_pixels, xpos, ypos, overlay->text_image,
-       y_stride);
-@@ -1509,6 +1519,9 @@ gst_text_overlay_blit_I420 (GstTextOverlay * overlay,
-   w = overlay->width;
-   h = overlay->height;
- 
-+  /* XXX this is not updated for rowstride.. but rowstride could be
-+   * ambiguous for I420.. is the U and V plane rowstride or rowstride/2?
-+   */
-   y_stride = gst_video_format_get_row_stride (GST_VIDEO_FORMAT_I420, 0, w);
-   u_stride = gst_video_format_get_row_stride (GST_VIDEO_FORMAT_I420, 1, w);
-   v_stride = gst_video_format_get_row_stride (GST_VIDEO_FORMAT_I420, 2, w);
-diff --git a/ext/pango/gsttextoverlay.h b/ext/pango/gsttextoverlay.h
-index 5fddf3a..bc2940b 100644
---- a/ext/pango/gsttextoverlay.h
-+++ b/ext/pango/gsttextoverlay.h
-@@ -112,6 +112,7 @@ struct _GstTextOverlay {
- 
-     gint                     width;
-     gint                     height;
-+    gint                     rowstride;
-     gint                     fps_n;
-     gint                     fps_d;
-     GstVideoFormat           format;
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0019-video-more-flexible-video-caps-utility.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0019-video-more-flexible-video-caps-utility.patch
deleted file mode 100644
index fcf4fd6..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0019-video-more-flexible-video-caps-utility.patch
+++ /dev/null
@@ -1,228 +0,0 @@
-From ecac5f6e2cab295e742784f6d4d11800b1f37c6d Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Mon, 13 Sep 2010 19:04:47 -0500
-Subject: [PATCH 19/24] video: more flexible video caps utility
-
-Add gst_video_format_new_caps_simple() to allow for more flexible video
-caps builder, which could be used for template caps and non-fixed caps.
----
- gst-libs/gst/video/video.c |  129 ++++++++++++++++++++++++++------------------
- gst-libs/gst/video/video.h |    2 +
- 2 files changed, 78 insertions(+), 53 deletions(-)
-
-diff --git a/gst-libs/gst/video/video.c b/gst-libs/gst/video/video.c
-index ff9c4fb..ef8edcc 100644
---- a/gst-libs/gst/video/video.c
-+++ b/gst-libs/gst/video/video.c
-@@ -590,15 +590,12 @@ gst_video_format_new_caps_interlaced (GstVideoFormat format,
- }
- 
- /**
-- * gst_video_format_new_caps_strided:
-+ * gst_video_format_new_caps_simple:
-  * @format: the #GstVideoFormat describing the raw video format
-- * @width: width of video
-- * @height: height of video
-- * @rowstride: the rowstride (in bytes), or 0 if no rowstride
-- * @framerate_n: numerator of frame rate
-- * @framerate_d: denominator of frame rate
-- * @par_n: numerator of pixel aspect ratio
-- * @par_d: denominator of pixel aspect ratio
-+ * @rowstride: 0 for unstrided, -1 for any stride (unfixed), or other
-+ *     for fixed stride
-+ * @fieldname: first field to set
-+ * @...: additional arguments
-  *
-  * Creates a new #GstCaps object based on the parameters provided.
-  *
-@@ -607,25 +604,20 @@ gst_video_format_new_caps_interlaced (GstVideoFormat format,
-  * Returns: a new #GstCaps object, or NULL if there was an error
-  */
- GstCaps *
--gst_video_format_new_caps_strided (GstVideoFormat format,
--    int width, int height, int rowstride,
--    int framerate_n, int framerate_d, int par_n, int par_d)
-+gst_video_format_new_caps_simple (GstVideoFormat format, int rowstride,
-+    const char *fieldname, ...)
- {
--  GstCaps *caps = NULL;
-+  va_list varargs;
-+  GstStructure *s;
- 
-   g_return_val_if_fail (format != GST_VIDEO_FORMAT_UNKNOWN, NULL);
--  g_return_val_if_fail (width > 0 && height > 0, NULL);
- 
-   if (gst_video_format_is_yuv (format)) {
--    caps = gst_caps_new_simple (
--        rowstride ? "video/x-raw-yuv-strided" : "video/x-raw-yuv",
-+    s = gst_structure_new (rowstride ?
-+        "video/x-raw-yuv-strided" : "video/x-raw-yuv",
-         "format", GST_TYPE_FOURCC, gst_video_format_to_fourcc (format),
--        "width", G_TYPE_INT, width,
--        "height", G_TYPE_INT, height,
--        "framerate", GST_TYPE_FRACTION, framerate_n, framerate_d,
--        "pixel-aspect-ratio", GST_TYPE_FRACTION, par_n, par_d, NULL);
-+        NULL);
-   } else if (gst_video_format_is_rgb (format)) {
--    GstCaps *caps;
-     int red_mask = 0;
-     int blue_mask = 0;
-     int green_mask = 0;
-@@ -684,15 +676,12 @@ gst_video_format_new_caps_strided (GstVideoFormat format,
-       } else {
-         mask = 0xff0000;
-       }
--      red_mask =
--          mask >> (8 * gst_video_format_get_component_offset (format, 0,
--              width, height));
--      green_mask =
--          mask >> (8 * gst_video_format_get_component_offset (format, 1,
--              width, height));
--      blue_mask =
--          mask >> (8 * gst_video_format_get_component_offset (format, 2,
--              width, height));
-+      red_mask = mask >>
-+          (8 * gst_video_format_get_component_offset (format, 0, 1, 1));
-+      green_mask = mask >>
-+          (8 * gst_video_format_get_component_offset (format, 1, 1, 1));
-+      blue_mask = mask >>
-+          (8 * gst_video_format_get_component_offset (format, 2, 1, 1));
-     } else if (bpp == 16) {
-       switch (format) {
-         case GST_VIDEO_FORMAT_RGB16:
-@@ -723,17 +712,13 @@ gst_video_format_new_caps_strided (GstVideoFormat format,
-       return NULL;
-     }
- 
--    caps = gst_caps_new_simple (
-+    s = gst_structure_new (
-         rowstride ? "video/x-raw-rgb-strided" : "video/x-raw-rgb",
-         "bpp", G_TYPE_INT, bpp,
--        "depth", G_TYPE_INT, depth,
--        "width", G_TYPE_INT, width,
--        "height", G_TYPE_INT, height,
--        "framerate", GST_TYPE_FRACTION, framerate_n, framerate_d,
--        "pixel-aspect-ratio", GST_TYPE_FRACTION, par_n, par_d, NULL);
-+        "depth", G_TYPE_INT, depth, NULL);
- 
-     if (bpp != 8) {
--      gst_caps_set_simple (caps,
-+      gst_structure_set (s,
-           "endianness", G_TYPE_INT, G_BIG_ENDIAN,
-           "red_mask", G_TYPE_INT, red_mask,
-           "green_mask", G_TYPE_INT, green_mask,
-@@ -741,10 +726,12 @@ gst_video_format_new_caps_strided (GstVideoFormat format,
-     }
- 
-     if (have_alpha) {
--      alpha_mask =
--          mask >> (8 * gst_video_format_get_component_offset (format, 3,
--              width, height));
--      gst_caps_set_simple (caps, "alpha_mask", G_TYPE_INT, alpha_mask, NULL);
-+      /* note: we are passing a bogus width/height to get_component_offset(),
-+       * but those parameters are ignored for the packed formats so it is ok
-+       */
-+      alpha_mask = mask >>
-+          (8 * gst_video_format_get_component_offset (format, 3, 1, 1));
-+      gst_structure_set (s, "alpha_mask", G_TYPE_INT, alpha_mask, NULL);
-     }
-   } else if (gst_video_format_is_gray (format)) {
-     int bpp;
-@@ -770,32 +757,68 @@ gst_video_format_new_caps_strided (GstVideoFormat format,
-     }
- 
-     if (bpp > 8) {
--      caps = gst_caps_new_simple ("video/x-raw-gray",
-+      s = gst_structure_new (rowstride ?
-+          "video/x-raw-gray-strided" : "video/x-raw-gray",
-           "bpp", G_TYPE_INT, bpp,
-           "depth", G_TYPE_INT, depth,
--          "width", G_TYPE_INT, width,
--          "height", G_TYPE_INT, height,
--          "framerate", GST_TYPE_FRACTION, framerate_n, framerate_d,
--          "pixel-aspect-ratio", GST_TYPE_FRACTION, par_n, par_d, NULL);
-+          NULL);
-     } else {
--      caps = gst_caps_new_simple ("video/x-raw-gray",
-+      s = gst_structure_new (rowstride ?
-+          "video/x-raw-gray-strided" : "video/x-raw-gray",
-           "bpp", G_TYPE_INT, bpp,
-           "depth", G_TYPE_INT, depth,
-           "endianness", G_TYPE_INT, G_BIG_ENDIAN,
--          "width", G_TYPE_INT, width,
--          "height", G_TYPE_INT, height,
--          "framerate", GST_TYPE_FRACTION, framerate_n, framerate_d,
--          "pixel-aspect-ratio", GST_TYPE_FRACTION, par_n, par_d, NULL);
-+          NULL);
-     }
-   } else {
-     return NULL;
-   }
- 
--  if (rowstride) {
--    gst_caps_set_simple (caps, "rowstride", G_TYPE_INT, rowstride, NULL);
-+  if (rowstride > 0) {
-+    gst_structure_set (s, "rowstride",
-+        G_TYPE_INT, rowstride, NULL);
-+  } else if (rowstride < 0) {
-+    gst_structure_set (s, "rowstride",
-+        GST_TYPE_INT_RANGE, 1, G_MAXINT, NULL);
-   }
- 
--  return caps;
-+  va_start (varargs, fieldname);
-+  gst_structure_set_valist (s, fieldname, varargs);
-+  va_end (varargs);
-+
-+  return gst_caps_new_full (s, NULL);
-+}
-+
-+/**
-+ * gst_video_format_new_caps_strided:
-+ * @format: the #GstVideoFormat describing the raw video format
-+ * @width: width of video
-+ * @height: height of video
-+ * @rowstride: the rowstride (in bytes), or 0 if no rowstride
-+ * @framerate_n: numerator of frame rate
-+ * @framerate_d: denominator of frame rate
-+ * @par_n: numerator of pixel aspect ratio
-+ * @par_d: denominator of pixel aspect ratio
-+ *
-+ * Creates a new #GstCaps object based on the parameters provided.
-+ *
-+ * Since: ???
-+ *
-+ * Returns: a new #GstCaps object, or NULL if there was an error
-+ */
-+GstCaps *
-+gst_video_format_new_caps_strided (GstVideoFormat format,
-+    int width, int height, int rowstride,
-+    int framerate_n, int framerate_d, int par_n, int par_d)
-+{
-+  g_return_val_if_fail (width > 0 && height > 0, NULL);
-+
-+  return gst_video_format_new_caps_simple (format, rowstride,
-+      "width", G_TYPE_INT, width,
-+      "height", G_TYPE_INT, height,
-+      "framerate", GST_TYPE_FRACTION, framerate_n, framerate_d,
-+      "pixel-aspect-ratio", GST_TYPE_FRACTION, par_n, par_d,
-+      NULL);
- }
- 
- /**
-diff --git a/gst-libs/gst/video/video.h b/gst-libs/gst/video/video.h
-index 5bac21f..bbd33f7 100644
---- a/gst-libs/gst/video/video.h
-+++ b/gst-libs/gst/video/video.h
-@@ -430,6 +430,8 @@ GstCaps * gst_video_format_new_caps_interlaced (GstVideoFormat format,
- GstCaps * gst_video_format_new_caps_strided (GstVideoFormat format,
-     int width, int height, int rowstride,
-     int framerate_n, int framerate_d, int par_n, int par_d);
-+GstCaps * gst_video_format_new_caps_simple (GstVideoFormat format,
-+    int rowstride, const char *fieldname, ...);
- GstVideoFormat gst_video_format_from_fourcc (guint32 fourcc);
- guint32 gst_video_format_to_fourcc (GstVideoFormat format);
- gboolean gst_video_format_is_rgb (GstVideoFormat format);
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0020-video-fix-endianess-issue-for-16bit-RGB-formats.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0020-video-fix-endianess-issue-for-16bit-RGB-formats.patch
deleted file mode 100644
index bf07cea..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0020-video-fix-endianess-issue-for-16bit-RGB-formats.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 569f9ca7a8ce923d43956771e8a142a9b31114f1 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Mon, 13 Sep 2010 19:05:56 -0500
-Subject: [PATCH 20/24] video: fix endianess issue for 16bit RGB formats
-
----
- gst-libs/gst/video/video.c |    4 +++-
- 1 files changed, 3 insertions(+), 1 deletions(-)
-
-diff --git a/gst-libs/gst/video/video.c b/gst-libs/gst/video/video.c
-index ef8edcc..a5ec6b7 100644
---- a/gst-libs/gst/video/video.c
-+++ b/gst-libs/gst/video/video.c
-@@ -625,6 +625,7 @@ gst_video_format_new_caps_simple (GstVideoFormat format, int rowstride,
-     int depth;
-     int bpp;
-     gboolean have_alpha;
-+    int endianness = G_BIG_ENDIAN;
-     unsigned int mask = 0;
- 
-     switch (format) {
-@@ -708,6 +709,7 @@ gst_video_format_new_caps_simple (GstVideoFormat format, int rowstride,
-         default:
-           return NULL;
-       }
-+      endianness = G_BYTE_ORDER;
-     } else if (bpp != 8) {
-       return NULL;
-     }
-@@ -719,7 +721,7 @@ gst_video_format_new_caps_simple (GstVideoFormat format, int rowstride,
- 
-     if (bpp != 8) {
-       gst_structure_set (s,
--          "endianness", G_TYPE_INT, G_BIG_ENDIAN,
-+          "endianness", G_TYPE_INT, endianness,
-           "red_mask", G_TYPE_INT, red_mask,
-           "green_mask", G_TYPE_INT, green_mask,
-           "blue_mask", G_TYPE_INT, blue_mask, NULL);
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0021-stride-more-flexible-stride-color-conversion.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0021-stride-more-flexible-stride-color-conversion.patch
deleted file mode 100644
index b897c5e..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0021-stride-more-flexible-stride-color-conversion.patch
+++ /dev/null
@@ -1,1131 +0,0 @@
-From e8e3c9ae037daa4abd60f08bc49f370dd5f7b3c6 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Mon, 13 Sep 2010 19:10:36 -0500
-Subject: [PATCH 21/24] stride: more flexible stride/color conversion
-
-Refactor stride transform element to address a number of limitations:
-1) support converting buffers from one rowstride to another, in addition to
-just handling conversion from strided <-> unstrided.
-2) refactor convert code to make it easier to add new formats
-3) refactor caps handling code to build template caps based upon color
-formats listed in convert (stride_conversions table).
-4) refactor caps parsing/building to correctly handle RGB formats
-5) add support for crop.. currently we optimize by just only copying the
-uncropped part of the frame, but this is the first step to true handling of
-cropping, so that we can crop out padding for the benefit of sink elements
-that don't understand crop or stride.  (The convert code handles it fine..
-the caps parsing/building in gststridetransform.c would need to handle caps
-re-negotiation when the crop changes for this to be complete.)
----
- gst/stride/armv7.s              |    8 +-
- gst/stride/convert.c            |  400 ++++++++++++++++++++-------------------
- gst/stride/gststridetransform.c |  375 +++++++++++++++++++++++++------------
- gst/stride/gststridetransform.h |   25 +++-
- 4 files changed, 490 insertions(+), 318 deletions(-)
-
-diff --git a/gst/stride/armv7.s b/gst/stride/armv7.s
-index 2697a14..5f4200d 100644
---- a/gst/stride/armv7.s
-+++ b/gst/stride/armv7.s
-@@ -28,7 +28,7 @@
-        .global stride_copy_zip2
-        .type   stride_copy_zip2, %function
- @void
--@stride_copy_zip2 (guchar *new_buf, guchar *orig_buf1, guchar *orig_buf2, gint sz)
-+@stride_copy_zip2 (guchar * out, guchar * in1, guchar * in2, gint sz)
- @{
- @@@@ note: r0-r3, q0-3, and q8-q15 do not need to be preserved
- stride_copy_zip2:
-@@ -74,8 +74,8 @@ stride_copy_zip2_3:
-        .global stride_copy_zip3a
-        .type   stride_copy_zip3a, %function
- @void
--@stride_copy_zip3a (guchar *new_buf,
--@    guchar *orig_buf1, guchar *orig_buf2, guchar *orig_buf3, gint sz)
-+@stride_copy_zip3a (guchar * out,
-+@    guchar * in1, guchar * in2, guchar * in3, gint sz)
- @{
- @@@@ note: r0-r3, q0-3, and q8-q15 do not need to be preserved
- stride_copy_zip3a:
-@@ -136,7 +136,7 @@ stride_copy_zip3a_3:
-        .global stride_copy
-        .type   stride_copy, %function
- @void
--@stride_copy (guchar *new_buf, guchar *orig_buf, gint sz)
-+@stride_copy (guchar *out, guchar *in, gint sz)
- @{
- @@@@ note: r0-r3, q0-3, and q8-q15 do not need to be preserved
- stride_copy:
-diff --git a/gst/stride/convert.c b/gst/stride/convert.c
-index 17f9e2a..5d392ac 100644
---- a/gst/stride/convert.c
-+++ b/gst/stride/convert.c
-@@ -55,32 +55,31 @@ void stride_copy_zip3a (guchar * new_buf, guchar * orig_buf1,
- void stride_copy (guchar * new_buf, guchar * orig_buf, gint sz);
- 
- WEAK void
--stride_copy_zip2 (guchar * new_buf, guchar * orig_buf1, guchar * orig_buf2,
--    gint sz)
-+stride_copy_zip2 (guchar * out, guchar * in1, guchar * in2, gint sz)
- {
-   while (sz--) {
--    *new_buf++ = *orig_buf1++;
--    *new_buf++ = *orig_buf2++;
-+    *out++ = *in1++;
-+    *out++ = *in2++;
-   }
- }
- 
- WEAK void
--stride_copy_zip3a (guchar * new_buf,
--    guchar * orig_buf1, guchar * orig_buf2, guchar * orig_buf3, gint sz)
-+stride_copy_zip3a (guchar * out,
-+    guchar * in1, guchar * in2, guchar * in3, gint sz)
- {
-   while (sz > 1) {
--    *new_buf++ = *orig_buf1++;
--    *new_buf++ = *orig_buf2++;
--    *new_buf++ = *orig_buf1++;
--    *new_buf++ = *orig_buf3++;
-+    *out++ = *in1++;
-+    *out++ = *in2++;
-+    *out++ = *in1++;
-+    *out++ = *in3++;
-     sz -= 2;
-   }
- }
- 
- WEAK void
--stride_copy (guchar * new_buf, guchar * orig_buf, gint sz)
-+stride_copy (guchar * out, guchar * in, gint sz)
- {
--  memcpy (new_buf, orig_buf, sz);
-+  memcpy (out, in, sz);
- }
- 
- 
-@@ -88,31 +87,19 @@ stride_copy (guchar * new_buf, guchar * orig_buf, gint sz)
-  * move to strided buffer, interleaving two planes of identical dimensions
-  */
- static void
--stridemove_zip2 (guchar * new_buf, guchar * orig_buf1, guchar * orig_buf2,
--    gint new_width, gint orig_width, gint height)
-+stridemove_zip2 (guchar * out, guchar * in1, guchar * in2,
-+    gint out_bpl, gint in_bpl, gint width, gint height)
- {
-   int row;
- 
-   GST_DEBUG
--      ("new_buf=%p, orig_buf1=%p, orig_buf2=%p, new_width=%d, orig_width=%d, height=%d",
--      new_buf, orig_buf1, orig_buf2, new_width, orig_width, height);
--
--  /* if increasing the stride, work from bottom-up to avoid overwriting data
--   * that has not been moved yet.. otherwise, work in the opposite order,
--   * for the same reason.
--   */
--  if (new_width > orig_width) {
--    for (row = height - 1; row >= 0; row--) {
--      stride_copy_zip2 (new_buf + (new_width * row),
--          orig_buf1 + (orig_width * row),
--          orig_buf2 + (orig_width * row), orig_width);
--    }
--  } else {
--    for (row = 0; row < height; row++) {
--      stride_copy_zip2 (new_buf + (new_width * row),
--          orig_buf1 + (orig_width * row),
--          orig_buf2 + (orig_width * row), new_width);
--    }
-+      ("out=%p, in1=%p, in2=%p, out_bpl=%d, in_bpl=%d, width=%d, height=%d",
-+      out, in1, in2, out_bpl, in_bpl, width, height);
-+
-+  for (row = 0; row < height; row++) {
-+    stride_copy_zip2 (out + (out_bpl * row),
-+        in1 + (in_bpl * row),
-+        in2 + (in_bpl * row), width);
-   }
- }
- 
-@@ -121,26 +108,28 @@ stridemove_zip2 (guchar * new_buf, guchar * orig_buf1, guchar * orig_buf2,
-  * (orig_buf1) has 2x as many samples.. Ie. ABACABAC..
-  */
- static void
--stridemove_zip3a (guchar * new_buf,
--    guchar * orig_buf1, guchar * orig_buf2, guchar * orig_buf3,
--    guint new_width, gint orig_width, gint height)
-+stridemove_zip3a (guchar * out,
-+    guchar * in1, guchar * in2, guchar * in3,
-+    guint out_bpl, gint in_bpl, gint width, gint height)
- {
--  gint copy_width = (new_width < orig_width) ? new_width : orig_width;
-+  GST_DEBUG
-+      ("out=%p, in1=%p, in2=%p, in3=%p, out_bpl=%d, in_bpl=%d, width=%d, height=%d",
-+      out, in1, in2, in3, out_bpl, in_bpl, width, height);
- 
-   while (height > 0) {
- 
-     /* even row */
--    stride_copy_zip3a (new_buf, orig_buf1, orig_buf2, orig_buf3, copy_width);
--    new_buf += new_width;
--    orig_buf1 += orig_width;
-+    stride_copy_zip3a (out, in1, in2, in3, width);
-+    out += out_bpl;
-+    in1 += in_bpl;
- 
-     /* odd row, recycles same U & V */
--    stride_copy_zip3a (new_buf, orig_buf1, orig_buf2, orig_buf3, copy_width);
--    new_buf += new_width;
--    orig_buf1 += orig_width;
-+    stride_copy_zip3a (out, in1, in2, in3, width);
-+    out += out_bpl;
-+    in1 += in_bpl;
- 
--    orig_buf2 += orig_width / 2;
--    orig_buf3 += orig_width / 2;
-+    in2 += in_bpl / 2;
-+    in3 += in_bpl / 2;
- 
-     height -= 2;
-   }
-@@ -154,28 +143,18 @@ stridemove_zip3a (guchar * new_buf,
-  * enough.
-  */
- static void
--stridemove (guchar * new_buf, guchar * orig_buf, gint new_width,
--    gint orig_width, gint height)
-+stridemove (guchar * out, guchar * in, gint out_bpl, gint in_bpl,
-+    gint width, gint height)
- {
-   int row;
- 
--  GST_DEBUG ("new_buf=%p, orig_buf=%p, new_width=%d, orig_width=%d, height=%d",
--      new_buf, orig_buf, new_width, orig_width, height);
--
--  /* if increasing the stride, work from bottom-up to avoid overwriting data
--   * that has not been moved yet.. otherwise, work in the opposite order,
--   * for the same reason.
--   */
--  if (new_width > orig_width) {
--    for (row = height - 1; row >= 0; row--) {
--      stride_copy (new_buf + (new_width * row), orig_buf + (orig_width * row),
--          orig_width);
--    }
--  } else {
--    for (row = 0; row < height; row++) {
--      stride_copy (new_buf + (new_width * row), orig_buf + (orig_width * row),
--          new_width);
--    }
-+  GST_DEBUG ("out=%p, in=%p, out_bpl=%d, in_bpl=%d, width=%d, height=%d",
-+      out, in, out_bpl, in_bpl, width, height);
-+
-+  for (row = 0; row < height; row++) {
-+    stride_copy (out, in, width);
-+    out += out_bpl;
-+    in  += in_bpl;
-   }
- }
- 
-@@ -183,195 +162,232 @@ stridemove (guchar * new_buf, guchar * orig_buf, gint new_width,
-  * Conversion Functions:
-  */
- 
--/** convert 4:2:0 semiplanar to same 4:2:0 semiplanar */
--static GstFlowReturn
--unstridify_420sp_420sp (GstStrideTransform * self, guchar * unstrided,
--    guchar * strided)
-+/**
-+ * helper to calculate offsets/sizes that are re-used for each frame (until
-+ * caps or crop changes)
-+ * @isx:  input sub-sampling in x direction
-+ * @osx:  output sub-sampling in x direction
-+ * @isy:  input sub-sampling in y direction
-+ * @isx:  input sub-sampling in y direction
-+ */
-+static inline gboolean refresh_cache(GstStrideTransform * self,
-+    gint nplanes, gint bpp, gint * isx, gint * osx, gint * isy, gint * osy)
- {
--  gint width = self->width;
--  gint height = self->height;
--  gint stride = self->in_rowstride;
-+  gint in_off, out_off;
-+  int i;
- 
--  g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-+  if (((self->crop_top + self->crop_height) > self->height) ||
-+      ((self->crop_left + self->crop_width) > self->width)) {
-+    GST_ERROR_OBJECT (self, "invalid crop parameter");
-+    return GST_FLOW_ERROR;
-+  }
- 
--  stridemove (unstrided, strided, width, stride,
--      (GST_ROUND_UP_2 (height) * 3) / 2);
-+  in_off = out_off = 0;
- 
--  return GST_FLOW_OK;
--}
-+  for (i = 0; i < nplanes; i++) {
-+    Cache * cache = &self->cache[i];
- 
--static GstFlowReturn
--stridify_420sp_420sp (GstStrideTransform * self, guchar * strided,
--    guchar * unstrided)
--{
--  gint width = self->width;
--  gint height = self->height;
--  gint stride = self->out_rowstride;
-+    cache->in_bpl = self->in_rowstride ?
-+        self->in_rowstride : bpp * self->width;
- 
--  g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-+    cache->out_bpl = self->out_rowstride ?
-+        self->out_rowstride : bpp * self->width;
- 
--  g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
--  stridemove (strided, unstrided, stride, width,
--      (GST_ROUND_UP_2 (height) * 3) / 2);
-+    if ((cache->in_bpl < (self->width * bpp)) ||
-+        (cache->out_bpl < (self->width * bpp))) {
-+      GST_ERROR_OBJECT (self, "invalid stride parameter");
-+      return GST_FLOW_ERROR;
-+    }
- 
--  return GST_FLOW_OK;
--}
-+    cache->width = self->crop_width ?
-+        self->crop_width : self->width;
- 
--/** convert 4:2:0 planar to same 4:2:0 planar */
--static GstFlowReturn
--unstridify_420p_420p (GstStrideTransform * self, guchar * unstrided,
--    guchar * strided)
--{
--  gint width = self->width;
--  gint height = self->height;
--  gint stride = self->in_rowstride;
-+    cache->height = self->crop_height ?
-+        self->crop_height : self->height;
- 
--  g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-+    if ((cache->width > self->width) ||
-+        (cache->height > self->height)) {
-+      GST_ERROR_OBJECT (self, "invalid crop width/height parameter");
-+      return GST_FLOW_ERROR;
-+    }
- 
--  stridemove (unstrided, strided, width, stride, height);       /* move Y */
--  stridemove (unstrided + (height * width), strided + (height * stride), width / 2, stride, height);    /* move V/U */
--  /* XXX odd widths/heights/strides: */
--  stridemove (unstrided + (int) (height * width * 1.5), strided + (int) (height * stride * 1.5), width / 2, stride, height);    /* move U/V */
-+    /* note: everything above here is same for each plane, so in theory we
-+     * could only calculate on first plane, and copy on subsequent planes
-+     */
-+
-+    /* adjust for sub-sampling and bytes per pixel (bpp): */
-+    cache->in_bpl /= *isx;
-+    cache->out_bpl /= *osx;
-+    cache->width *= bpp;
-+    cache->width /= *isx;
-+    cache->height /= *isy;
-+
-+    /* calculate offset to beginning of data to copy/transform: */
-+    cache->in_off = in_off;
-+    cache->in_off += (bpp * self->crop_left / *isx) +
-+        (cache->in_bpl * self->crop_top / *isy);
-+
-+    cache->out_off = out_off;
-+    cache->out_off += (bpp * self->crop_left / *osx) +
-+        (cache->out_bpl * self->crop_top / *osy);
-+
-+    in_off += (self->height / *isy) * cache->in_bpl;
-+    out_off += (self->height / *osy) * cache->out_bpl;
-+
-+    osx++;
-+    isx++;
-+    osy++;
-+    isy++;
-+  }
- 
-   return GST_FLOW_OK;
- }
- 
--static GstFlowReturn
--stridify_420p_420p (GstStrideTransform * self, guchar * strided,
--    guchar * unstrided)
-+/** perform simple convert between buffers of same format */
-+static inline GstFlowReturn convert_n_n (GstStrideTransform *self,
-+    guchar * out, guchar * in, gint nplanes)
- {
--  gint width = self->width;
--  gint height = self->height;
--  gint stride = self->out_rowstride;
--
--  g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-+  int i;
- 
--  /* XXX odd widths/heights/strides: */
--  stridemove (strided + (int) (height * stride * 1.5), unstrided + (int) (height * width * 1.5), stride, width / 2, height);    /* move U/V */
--  stridemove (strided + (height * stride), unstrided + (height * width), stride, width / 2, height);    /* move V/U */
--  stridemove (strided, unstrided, stride, width, height);       /* move Y */
-+  for (i = 0; i < nplanes; i++) {
-+    stridemove (out + self->cache[i].out_off, in + self->cache[i].in_off,
-+        self->cache[i].out_bpl, self->cache[i].in_bpl,
-+        self->cache[i].width, self->cache[i].height);
-+  }
- 
-   return GST_FLOW_OK;
- }
- 
--/** convert 4:2:2 packed to same 4:2:2 packed */
-+/** convert 4:2:0 semiplanar to same 4:2:0 semiplanar */
- static GstFlowReturn
--unstridify_422i_422i (GstStrideTransform * self, guchar * unstrided,
--    guchar * strided)
-+convert_420sp_420sp (GstStrideTransform * self,
-+    guchar * out, guchar * in)
- {
--  gint width = self->width;
--  gint height = self->height;
--  gint stride = self->in_rowstride;
--
--  g_return_val_if_fail (stride >= (width * 2), GST_FLOW_ERROR);
--
--  stridemove (unstrided, strided, width * 2, stride, height);
-+  if (G_UNLIKELY (self->needs_refresh)) {
-+    gint sx[] = {1, 1};
-+    gint sy[] = {1, 2};
-+    if (refresh_cache (self, 2, 1, sx, sx, sy, sy))
-+      return GST_FLOW_ERROR;
-+    self->needs_refresh = FALSE;
-+  }
- 
--  return GST_FLOW_OK;
-+  return convert_n_n (self, out, in, 2);
- }
- 
-+/** convert 4:2:0 planar to same 4:2:0 planar */
- static GstFlowReturn
--stridify_422i_422i (GstStrideTransform * self, guchar * strided,
--    guchar * unstrided)
-+convert_420p_420p (GstStrideTransform * self,
-+    guchar * out, guchar * in)
- {
--  gint width = self->width;
--  gint height = self->height;
--  gint stride = self->out_rowstride;
--
--  g_return_val_if_fail (stride >= (width * 2), GST_FLOW_ERROR);
--
--  stridemove (strided, unstrided, stride, width * 2, height);
-+  if (G_UNLIKELY (self->needs_refresh)) {
-+    gint sx[] = {1, 2, 2};
-+    gint sy[] = {1, 2, 2};
-+    if (refresh_cache (self, 3, 1, sx, sx, sy, sy))
-+      return GST_FLOW_ERROR;
-+    self->needs_refresh = FALSE;
-+  }
- 
--  return GST_FLOW_OK;
-+  return convert_n_n (self, out, in, 3);
- }
- 
--/** convert I420 unstrided to NV12 strided */
-+/** convert 4:2:2 packed to same 4:2:2 packed */
-+
- static GstFlowReturn
--stridify_i420_nv12 (GstStrideTransform * self, guchar * strided,
--    guchar * unstrided)
-+convert_422i_422i (GstStrideTransform * self,
-+    guchar * out, guchar * in)
- {
--  gint width = self->width;
--  gint height = self->height;
--  gint stride = self->out_rowstride;
--
--  g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
--
--  /* XXX widths/heights/strides that are not multiple of four??: */
--  stridemove_zip2 (strided + (height * stride), unstrided + (height * width),   /* U */
--      unstrided + (int) (height * width * 1.25),        /* V */
--      stride, width / 2, height / 2);
--  stridemove (strided, unstrided, stride, width, height);       /* Y */
-+  if (G_UNLIKELY (self->needs_refresh)) {
-+    gint sx[] = {1};
-+    gint sy[] = {1};
-+    if (refresh_cache (self, 1, 2, sx, sx, sy, sy))
-+      return GST_FLOW_ERROR;
-+    self->needs_refresh = FALSE;
-+  }
- 
--  return GST_FLOW_OK;
-+  return convert_n_n (self, out, in, 1);
- }
- 
--/** convert I420 unstrided to YUY2 strided */
-+/** convert I420 unstrided to NV12 strided */
- static GstFlowReturn
--stridify_i420_yuy2 (GstStrideTransform * self, guchar * strided,
--    guchar * unstrided)
-+convert_i420_nv12 (GstStrideTransform * self,
-+    guchar * out, guchar * in)
- {
--  gint width = self->width;
--  gint height = self->height;
--  gint stride = self->out_rowstride;
-+  GstFlowReturn ret;
-+
-+  if (G_UNLIKELY (self->needs_refresh)) {
-+    gint isx[] = {1, 2, 2};
-+    gint osx[] = {1, 1, 1};
-+    gint sy[]  = {1, 2, 2};
-+    if (refresh_cache (self, 3, 1, isx, osx, sy, sy))
-+      return GST_FLOW_ERROR;
-+    self->needs_refresh = FALSE;
-+  }
- 
--  g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-+  ret = convert_n_n (self, out, in, 1);
-+  if (ret != GST_FLOW_OK)
-+    return ret;
- 
--  /* XXX widths/heights/strides that are not multiple of four??: */
--  stridemove_zip3a (strided, unstrided, /* Y */
--      unstrided + (height * width),     /* U */
--      unstrided + (int) (height * width * 1.25),        /* V */
--      stride, width, height);
-+  stridemove_zip2 (out + self->cache[1].out_off,
-+      in + self->cache[1].in_off,      /* U */
-+      in + self->cache[2].in_off,      /* V */
-+      self->cache[2].out_bpl,
-+      self->cache[1].in_bpl,
-+      self->cache[1].width,
-+      self->cache[1].height);
- 
-   return GST_FLOW_OK;
- }
- 
--/** convert RGB565 to RGB565 strided **/
-+/** convert I420 unstrided to YUY2 strided */
- static GstFlowReturn
--stridify_rgb565_rgb565 (GstStrideTransform * self, guchar * strided,
--    guchar * unstrided)
-+convert_i420_yuy2 (GstStrideTransform * self,
-+    guchar * out, guchar * in)
- {
--  gint width = self->width;
--  gint height = self->height;
--  gint stride = self->out_rowstride;
--
--  g_return_val_if_fail (stride >= (width * 2), GST_FLOW_ERROR);
-+  if (G_UNLIKELY (self->needs_refresh)) {
-+    gint sx[] = {1, 2, 2};
-+    gint sy[] = {1, 2, 2};
-+    if (refresh_cache (self, 3, 1, sx, sx, sy, sy))
-+      return GST_FLOW_ERROR;
-+    self->needs_refresh = FALSE;
-+  }
- 
--  stridemove (strided, unstrided, stride, width * 2, height);
-+  stridemove_zip3a (out,
-+      in + self->cache[0].in_off,      /* Y */
-+      in + self->cache[1].in_off,      /* U */
-+      in + self->cache[2].in_off,      /* V */
-+      self->cache[0].out_bpl,
-+      self->cache[0].in_bpl,
-+      self->cache[0].width,
-+      self->cache[0].height);
- 
-   return GST_FLOW_OK;
- }
- 
--/** convert RGB565 strided to RGB565 **/
-+/** convert 16bpp rgb formats */
- static GstFlowReturn
--unstridify_rgb565_rgb565 (GstStrideTransform * self, guchar * strided,
--    guchar * unstrided)
-+convert_rgb16_rgb16 (GstStrideTransform * self,
-+    guchar * out, guchar * in)
- {
--  gint width = self->width;
--  gint height = self->height;
--  gint stride = self->in_rowstride;
--
--  g_return_val_if_fail (stride >= (width * 2), GST_FLOW_ERROR);
--
--  stridemove (unstrided, strided, width * 2, stride, height);
--  return GST_FLOW_OK;
-+  /* format is same 2-bytes per pixel */
-+  return convert_422i_422i (self, out, in);
- }
- 
--#define CONVERT(tofmt, fromfmt, stridify, unstridify)           \
-+#define CONVERT(tofmt, fromfmt, convert)                        \
- 		{                                                           \
-       { GST_VIDEO_FORMAT_##tofmt, GST_VIDEO_FORMAT_##fromfmt }, \
--      stridify, unstridify                                      \
-+      convert                                                   \
-     }
- 
- /* last entry has GST_VIDEO_FORMAT_UNKNOWN for in/out formats */
- const Conversion stride_conversions[] = {
--  CONVERT (NV12, NV12, stridify_420sp_420sp, unstridify_420sp_420sp),
--  CONVERT (I420, I420, stridify_420p_420p, unstridify_420p_420p),
--  CONVERT (YV12, YV12, stridify_420p_420p, unstridify_420p_420p),
--  CONVERT (YUY2, YUY2, stridify_422i_422i, unstridify_422i_422i),
--  CONVERT (UYVY, UYVY, stridify_422i_422i, unstridify_422i_422i),
--  CONVERT (I420, NV12, stridify_i420_nv12, NULL),
--  CONVERT (I420, YUY2, stridify_i420_yuy2, NULL),
--  CONVERT (RGB16, RGB16, stridify_rgb565_rgb565, unstridify_rgb565_rgb565),
-+  CONVERT (NV12, NV12, convert_420sp_420sp),
-+  CONVERT (I420, I420, convert_420p_420p),
-+  CONVERT (YV12, YV12, convert_420p_420p),
-+  CONVERT (YUY2, YUY2, convert_422i_422i),
-+  CONVERT (UYVY, UYVY, convert_422i_422i),
-+  CONVERT (I420, NV12, convert_i420_nv12),
-+  CONVERT (I420, YUY2, convert_i420_yuy2),
-+  CONVERT (RGB16, RGB16, convert_rgb16_rgb16),
-   /* add new entries before here */
-   {{GST_VIDEO_FORMAT_UNKNOWN}}
- };
-diff --git a/gst/stride/gststridetransform.c b/gst/stride/gststridetransform.c
-index 4469e7f..7874ed4 100644
---- a/gst/stride/gststridetransform.c
-+++ b/gst/stride/gststridetransform.c
-@@ -57,27 +57,6 @@
- /* last entry has GST_VIDEO_FORMAT_UNKNOWN for in/out formats */
- extern const Conversion stride_conversions[];
- 
--/* TODO: add rgb formats too! */
--#define YUV_SUPPORTED_CAPS                                                        \
--  GST_VIDEO_CAPS_YUV_STRIDED ("{I420, YV12, YUY2, UYVY, NV12 }", "[ 0, max ]")
--
--#define RGB_SUPPORTED_CAPS                                                        \
--  GST_VIDEO_CAPS_RGB_16_STRIDED ("[ 0, max ]")
--
--
--static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src",
--    GST_PAD_SRC,
--    GST_PAD_ALWAYS,
--    GST_STATIC_CAPS (YUV_SUPPORTED_CAPS ";" RGB_SUPPORTED_CAPS)
--    );
--
--static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
--    GST_PAD_SINK,
--    GST_PAD_ALWAYS,
--    GST_STATIC_CAPS (YUV_SUPPORTED_CAPS ";" RGB_SUPPORTED_CAPS)
--    );
--
--
- GST_DEBUG_CATEGORY (stridetransform_debug);
- #define GST_CAT_DEFAULT stridetransform_debug
- 
-@@ -85,6 +64,8 @@ GST_DEBUG_CATEGORY (stridetransform_debug);
- static void gst_stride_transform_dispose (GObject * obj);
- 
- /* GstBaseTransform functions */
-+static gboolean gst_stride_transform_event (GstBaseTransform * trans,
-+    GstEvent * event);
- static gboolean gst_stride_transform_get_unit_size (GstBaseTransform * base,
-     GstCaps * caps, guint * size);
- static gboolean gst_stride_transform_transform_size (GstBaseTransform * base,
-@@ -96,6 +77,7 @@ static gboolean gst_stride_transform_set_caps (GstBaseTransform * base,
-     GstCaps * incaps, GstCaps * outcaps);
- static GstFlowReturn gst_stride_transform_transform (GstBaseTransform * base,
-     GstBuffer * inbuf, GstBuffer * outbuf);
-+static GstCaps * get_all_templ_caps (GstPadDirection direction);
- 
- GST_BOILERPLATE (GstStrideTransform, gst_stride_transform, GstVideoFilter,
-     GST_TYPE_VIDEO_FILTER);
-@@ -115,9 +97,11 @@ gst_stride_transform_base_init (gpointer g_class)
-       "Rob Clark <rob@ti.com>,");
- 
-   gst_element_class_add_pad_template (gstelement_class,
--      gst_static_pad_template_get (&sink_template));
-+      gst_pad_template_new ("sink", GST_PAD_SINK, GST_PAD_ALWAYS,
-+          get_all_templ_caps (GST_PAD_SINK)));
-   gst_element_class_add_pad_template (gstelement_class,
--      gst_static_pad_template_get (&src_template));
-+      gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS,
-+          get_all_templ_caps (GST_PAD_SRC)));
- }
- 
- static void
-@@ -128,6 +112,8 @@ gst_stride_transform_class_init (GstStrideTransformClass * klass)
- 
-   gobject_class->dispose = gst_stride_transform_dispose;
- 
-+  basetransform_class->event =
-+      GST_DEBUG_FUNCPTR (gst_stride_transform_event);
-   basetransform_class->get_unit_size =
-       GST_DEBUG_FUNCPTR (gst_stride_transform_get_unit_size);
-   basetransform_class->transform_size =
-@@ -160,6 +146,35 @@ gst_stride_transform_dispose (GObject * object)
-   G_OBJECT_CLASS (parent_class)->dispose (object);
- }
- 
-+static gboolean
-+gst_stride_transform_event (GstBaseTransform * trans, GstEvent * event)
-+{
-+  GstStrideTransform *self = GST_STRIDE_TRANSFORM (trans);
-+
-+  GST_DEBUG_OBJECT (self, "event %" GST_PTR_FORMAT, event);
-+
-+  switch (GST_EVENT_TYPE (event)) {
-+    /* if we get a crop, we don't change output size (yet, although it
-+     * would be nice to be able to figure out if the sink supported
-+     * cropping and if it does not perform the crop ourselves.. which
-+     * would involve adjusting output caps appropriately).  For now
-+     * we just treat it as an optimization and avoid copying the data
-+     * that will be later cropped out by the sink.
-+     */
-+    case GST_EVENT_CROP:
-+      gst_event_parse_crop (event, &self->crop_top, &self->crop_left,
-+          &self->crop_width, &self->crop_height);
-+      self->needs_refresh = TRUE;
-+      GST_DEBUG_OBJECT (self, "cropping at %d,%d %dx%d", self->crop_top,
-+          self->crop_left, self->crop_width, self->crop_height);
-+    default:
-+      break;
-+  }
-+
-+  /* forward all events */
-+  return TRUE;
-+}
-+
- /**
-  * figure out the required buffer size based on @caps
-  */
-@@ -212,95 +227,205 @@ gst_stride_transform_transform_size (GstBaseTransform * base,
-   return TRUE;
- }
- 
-+static inline GstCaps *
-+get_templ_caps (GstVideoFormat fmt, gboolean strided)
-+{
-+  return gst_video_format_new_caps_simple (fmt,
-+      strided ? -1 : 0,
-+      "width", GST_TYPE_INT_RANGE, 1, G_MAXINT,
-+      "height", GST_TYPE_INT_RANGE, 1, G_MAXINT,
-+      "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT, 1,
-+      NULL);
-+}
-+
- /**
-- * helper to check possible @fourcc conversions to the list @formats
-+ * Utility to get all possible template caps for given direction
-  */
--static void
--add_all_fourcc_conversions (GValue * formats, guint32 fourcc,
--    GstPadDirection direction)
-+static GstCaps *
-+get_all_templ_caps (GstPadDirection direction)
- {
-+  int i;
-   gint to_format = (direction == GST_PAD_SINK) ? 1 : 0;
--  gint from_format = (direction == GST_PAD_SRC) ? 1 : 0;
--  GValue fourccval = { 0 };
--  gint i;
--  GstVideoFormat format = gst_video_format_from_fourcc (fourcc);
--
--  g_value_init (&fourccval, GST_TYPE_FOURCC);
-+  GstCaps *templ = gst_caps_new_empty ();
- 
--  for (i = 0; stride_conversions[i].format[0] != GST_VIDEO_FORMAT_UNKNOWN; i++) {
--    if (stride_conversions[i].format[from_format] == format) {
--      guint result_fourcc =
--          gst_video_format_to_fourcc (stride_conversions[i].format[to_format]);
--      gst_value_set_fourcc (&fourccval, result_fourcc);
--      gst_value_list_append_value (formats, &fourccval);
--    }
-+  for (i = 0; stride_conversions[i].format[0]; i++) {
-+    const Conversion *c = &stride_conversions[i];
-+    gst_caps_append (templ, get_templ_caps (c->format[to_format], TRUE));
-+    gst_caps_append (templ, get_templ_caps (c->format[to_format], FALSE));
-   }
-+
-+  gst_caps_do_simplify (templ);
-+
-+  GST_DEBUG ("template %s caps: %"GST_PTR_FORMAT,
-+      (direction == GST_PAD_SINK) ? "sink" : "src", templ);
-+
-+  return templ;
- }
- 
--/**
-- * helper to add all fields, other than rowstride to @caps, copied from @s.
-- */
--static void
--add_all_fields (GstCaps * caps, const gchar * name, GstStructure * s,
--    gboolean rowstride, GstPadDirection direction)
-+static inline gboolean
-+is_filtered_field (const gchar *name)
- {
--  gint idx;
--  GstStructure *new_s = gst_structure_new (name, NULL);
-+  static const gchar * filtered_fields[] = {
-+      "rowstride", "format", "bpp", "depth", "endianness",
-+      "red_mask", "green_mask", "blue_mask"
-+  };
-+  gint i;
-+  for (i = 0; i < G_N_ELEMENTS (filtered_fields); i++)
-+    if (!strcmp (filtered_fields[i], name))
-+      return TRUE;
-+  return FALSE;
-+}
- 
--  if (rowstride) {
--    gst_structure_set (new_s, "rowstride", GST_TYPE_INT_RANGE, 1, G_MAXINT,
--        NULL);
--  }
-+static inline GstCaps *
-+get_caps (GstVideoFormat fmt, gboolean strided, GstStructure *s)
-+{
-+  gint idx;
-+  GstCaps *ret =
-+      gst_video_format_new_caps_simple (fmt, strided ? -1 : 0, NULL);
- 
-   idx = gst_structure_n_fields (s) - 1;
-   while (idx >= 0) {
-     const gchar *name = gst_structure_nth_field_name (s, idx);
--    const GValue *val = gst_structure_get_value (s, name);
- 
-     idx--;
- 
--    /* for format field, check the stride_conversions table to see what
--     * we can support:
-+    /* filter out certain format specific fields.. copy everything else
-+     * from the original struct
-      */
--    if (!strcmp ("format", name)) {
--      GValue formats = { 0 };
--
--      g_value_init (&formats, GST_TYPE_LIST);
-+    if (!is_filtered_field (name)) {
-+      const GValue *val = gst_structure_get_value (s, name);
-+      gst_caps_set_value (ret, name, val);
-+    }
-+  }
- 
--      if (GST_VALUE_HOLDS_FOURCC (val)) {
--        add_all_fourcc_conversions (&formats,
--            gst_value_get_fourcc (val), direction);
--      } else if (GST_VALUE_HOLDS_LIST (val)) {
--        gint i;
--        for (i = 0; i < gst_value_list_get_size (val); i++) {
--          const GValue *list_val = gst_value_list_get_value (val, i);
--          if (GST_VALUE_HOLDS_FOURCC (list_val)) {
--            add_all_fourcc_conversions (&formats,
--                gst_value_get_fourcc (list_val), direction);
--          } else {
--            GST_WARNING ("malformed caps!!");
--            break;
--          }
--        }
--      } else {
--        GST_WARNING ("malformed caps!!");
--      }
-+  return ret;
-+}
- 
--      gst_structure_set_value (new_s, "format", &formats);
-+/**
-+ * Utility to get all possible caps that can be converted to/from (depending
-+ * on 'direction') the specified 'fmt'.  The rest of the fields are populated
-+ * from 's'
-+ */
-+static GstCaps *
-+get_all_caps (GstPadDirection direction, GstVideoFormat fmt, GstStructure *s)
-+{
-+  GstCaps *ret = gst_caps_new_empty ();
-+  gint to_format = (direction == GST_PAD_SINK) ? 1 : 0;
-+  gint from_format = (direction == GST_PAD_SRC) ? 1 : 0;
-+  gint i;
- 
--      continue;
-+  for (i = 0; stride_conversions[i].format[0]; i++) {
-+    const Conversion *c = &stride_conversions[i];
-+    if (c->format[from_format] == fmt) {
-+      gst_caps_append (ret, get_caps (c->format[to_format], TRUE, s));
-+      gst_caps_append (ret, get_caps (c->format[to_format], FALSE, s));
-     }
-+  }
-+
-+  return ret;
-+}
- 
--    /* copy over all other non-rowstride fields: */
--    if (strcmp ("rowstride", name)) {
--      gst_structure_set_value (new_s, name, val);
-+/** convert GValue holding fourcc to GstVideoFormat (for YUV) */
-+static inline GstVideoFormat
-+fmt_from_val (const GValue *val)
-+{
-+  return gst_video_format_from_fourcc (gst_value_get_fourcc (val));
-+}
-+
-+/** convert structure to GstVideoFormat (for RGB) */
-+static inline GstVideoFormat
-+fmt_from_struct (const GstStructure *s)
-+{
-+  /* hmm.. this is not supporting any case where ranges/lists are used
-+   * for any of the rgb related fields in the caps.  But I'm not quite
-+   * sure a sane way to handle that..  rgb caps suck
-+   */
-+  gint depth, bpp, endianness;
-+  gint red_mask, green_mask, blue_mask, alpha_mask;
-+  gboolean have_alpha, ok = TRUE;
-+
-+  ok &= gst_structure_get_int (s, "depth", &depth);
-+  ok &= gst_structure_get_int (s, "bpp", &bpp);
-+  ok &= gst_structure_get_int (s, "endianness", &endianness);
-+  ok &= gst_structure_get_int (s, "red_mask", &red_mask);
-+  ok &= gst_structure_get_int (s, "green_mask", &green_mask);
-+  ok &= gst_structure_get_int (s, "blue_mask", &blue_mask);
-+  have_alpha = gst_structure_get_int (s, "alpha_mask", &alpha_mask);
-+
-+  if (!ok)
-+    return GST_VIDEO_FORMAT_UNKNOWN;
-+
-+  if (depth == 24 && bpp == 32 && endianness == G_BIG_ENDIAN) {
-+    if (red_mask == 0xff000000 && green_mask == 0x00ff0000 &&
-+        blue_mask == 0x0000ff00) {
-+      return GST_VIDEO_FORMAT_RGBx;
-+    }
-+    if (red_mask == 0x0000ff00 && green_mask == 0x00ff0000 &&
-+        blue_mask == 0xff000000) {
-+      return GST_VIDEO_FORMAT_BGRx;
-+    }
-+    if (red_mask == 0x00ff0000 && green_mask == 0x0000ff00 &&
-+        blue_mask == 0x000000ff) {
-+      return GST_VIDEO_FORMAT_xRGB;
-+    }
-+    if (red_mask == 0x000000ff && green_mask == 0x0000ff00 &&
-+        blue_mask == 0x00ff0000) {
-+      return GST_VIDEO_FORMAT_xBGR;
-+    }
-+  } else if (depth == 32 && bpp == 32 && endianness == G_BIG_ENDIAN &&
-+      have_alpha) {
-+    if (red_mask == 0xff000000 && green_mask == 0x00ff0000 &&
-+        blue_mask == 0x0000ff00 && alpha_mask == 0x000000ff) {
-+      return GST_VIDEO_FORMAT_RGBA;
-+    }
-+    if (red_mask == 0x0000ff00 && green_mask == 0x00ff0000 &&
-+        blue_mask == 0xff000000 && alpha_mask == 0x000000ff) {
-+      return GST_VIDEO_FORMAT_BGRA;
-+    }
-+    if (red_mask == 0x00ff0000 && green_mask == 0x0000ff00 &&
-+        blue_mask == 0x000000ff && alpha_mask == 0xff000000) {
-+      return GST_VIDEO_FORMAT_ARGB;
-+    }
-+    if (red_mask == 0x000000ff && green_mask == 0x0000ff00 &&
-+        blue_mask == 0x00ff0000 && alpha_mask == 0xff000000) {
-+      return GST_VIDEO_FORMAT_ABGR;
-+    }
-+  } else if (depth == 24 && bpp == 24 && endianness == G_BIG_ENDIAN) {
-+    if (red_mask == 0xff0000 && green_mask == 0x00ff00 &&
-+        blue_mask == 0x0000ff) {
-+      return GST_VIDEO_FORMAT_RGB;
-+    }
-+    if (red_mask == 0x0000ff && green_mask == 0x00ff00 &&
-+        blue_mask == 0xff0000) {
-+      return GST_VIDEO_FORMAT_BGR;
-+    }
-+  } else if ((depth == 15 || depth == 16) && bpp == 16 &&
-+      endianness == G_BYTE_ORDER) {
-+    if (red_mask == GST_VIDEO_COMP1_MASK_16_INT
-+        && green_mask == GST_VIDEO_COMP2_MASK_16_INT
-+        && blue_mask == GST_VIDEO_COMP3_MASK_16_INT) {
-+      return GST_VIDEO_FORMAT_RGB16;
-+    }
-+    if (red_mask == GST_VIDEO_COMP3_MASK_16_INT
-+        && green_mask == GST_VIDEO_COMP2_MASK_16_INT
-+        && blue_mask == GST_VIDEO_COMP1_MASK_16_INT) {
-+      return GST_VIDEO_FORMAT_BGR16;
-+    }
-+    if (red_mask == GST_VIDEO_COMP1_MASK_15_INT
-+        && green_mask == GST_VIDEO_COMP2_MASK_15_INT
-+        && blue_mask == GST_VIDEO_COMP3_MASK_15_INT) {
-+      return GST_VIDEO_FORMAT_RGB15;
-+    }
-+    if (red_mask == GST_VIDEO_COMP3_MASK_15_INT
-+        && green_mask == GST_VIDEO_COMP2_MASK_15_INT
-+        && blue_mask == GST_VIDEO_COMP1_MASK_15_INT) {
-+      return GST_VIDEO_FORMAT_BGR15;
-     }
-   }
- 
--  gst_caps_merge_structure (caps, new_s);
-+  return GST_VIDEO_FORMAT_UNKNOWN;
- }
- 
--
- /**
-  * we can transform @caps to strided or non-strided caps with otherwise
-  * identical parameters
-@@ -310,31 +435,50 @@ gst_stride_transform_transform_caps (GstBaseTransform * base,
-     GstPadDirection direction, GstCaps * caps)
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
--  GstCaps *ret;
--  GstStructure *s;
--
--  g_return_val_if_fail (GST_CAPS_IS_SIMPLE (caps), NULL);
--
--  GST_DEBUG_OBJECT (self, "direction=%d, caps=%p", direction, caps);
--  LOG_CAPS (self, caps);
--
--  ret = gst_caps_new_empty ();
--  s = gst_caps_get_structure (caps, 0);
--
--  if (gst_structure_has_name (s, "video/x-raw-yuv") ||
--      gst_structure_has_name (s, "video/x-raw-yuv-strided")) {
--
--    add_all_fields (ret, "video/x-raw-yuv", s, FALSE, direction);
--    add_all_fields (ret, "video/x-raw-yuv-strided", s, TRUE, direction);
--
--  } else if (gst_structure_has_name (s, "video/x-raw-rgb") ||
--      gst_structure_has_name (s, "video/x-raw-rgb-strided")) {
--
--    add_all_fields (ret, "video/x-raw-rgb", s, FALSE, direction);
--    add_all_fields (ret, "video/x-raw-rgb-strided", s, TRUE, direction);
-+  GstCaps *ret = gst_caps_new_empty ();
-+  int i;
-+
-+  for (i = 0; i < gst_caps_get_size (caps); i++) {
-+    GstStructure *s = gst_caps_get_structure (caps, i);
-+    const char *name = gst_structure_get_name (s);
-+
-+    /* this is a bit ugly.. ideally it would be easier to parse caps
-+     * a bit more generically without having to care so much about
-+     * difference between RGB and YUV.. but YUV can be specified as
-+     * a list of format params, whereas RGB is a combination of many
-+     * fields..
-+     */
-+    if (g_str_has_prefix (name, "video/x-raw-yuv")) {
-+      const GValue *val = gst_structure_get_value (s, "format");
- 
-+      if (GST_VALUE_HOLDS_FOURCC (val)) {
-+        gst_caps_append (ret,
-+            get_all_caps (direction, fmt_from_val (val), s));
-+      } else if (GST_VALUE_HOLDS_LIST (val)) {
-+        gint j;
-+        for (j = 0; j < gst_value_list_get_size (val); j++) {
-+          const GValue *list_val = gst_value_list_get_value (val, j);
-+          if (GST_VALUE_HOLDS_FOURCC (list_val)) {
-+            gst_caps_append (ret,
-+                get_all_caps (direction, fmt_from_val (list_val), s));
-+          } else {
-+            GST_WARNING_OBJECT (self,
-+                "malformed format in caps: %"GST_PTR_FORMAT, s);
-+            break;
-+          }
-+        }
-+      } else {
-+        GST_WARNING_OBJECT (self, "malformed yuv caps: %"GST_PTR_FORMAT, s);
-+      }
-+    } else if (g_str_has_prefix (name, "video/x-raw-rgb")) {
-+      gst_caps_append (ret, get_all_caps (direction, fmt_from_struct (s), s));
-+    } else {
-+      GST_WARNING_OBJECT (self, "ignoring: %"GST_PTR_FORMAT, s);
-+    }
-   }
- 
-+  gst_caps_do_simplify (ret);
-+
-   LOG_CAPS (self, ret);
- 
-   return ret;
-@@ -369,6 +513,7 @@ gst_stride_transform_set_caps (GstBaseTransform * base,
-         (stride_conversions[i].format[1] == out_format)) {
-       GST_DEBUG_OBJECT (self, "found stride_conversion: %d", i);
-       self->conversion = &stride_conversions[i];
-+      self->needs_refresh = TRUE;
-       break;
-     }
-   }
-@@ -378,10 +523,6 @@ gst_stride_transform_set_caps (GstBaseTransform * base,
-       i, self->conversion, self->in_rowstride, self->out_rowstride);
- 
-   g_return_val_if_fail (self->conversion, FALSE);
--  g_return_val_if_fail (self->conversion->unstridify
--      || !self->in_rowstride, FALSE);
--  g_return_val_if_fail (self->conversion->stridify
--      || !self->out_rowstride, FALSE);
-   g_return_val_if_fail (self->width == width, FALSE);
-   g_return_val_if_fail (self->height == height, FALSE);
- 
-@@ -399,20 +540,14 @@ gst_stride_transform_transform (GstBaseTransform * base,
-   GST_DEBUG_OBJECT (self, "inbuf=%p (size=%d), outbuf=%p (size=%d)",
-       inbuf, GST_BUFFER_SIZE (inbuf), outbuf, GST_BUFFER_SIZE (outbuf));
- 
--  if (self->in_rowstride && self->out_rowstride) {
--    GST_DEBUG_OBJECT (self, "not implemented"); // TODO
--    return GST_FLOW_ERROR;
--  } else if (self->in_rowstride) {
--    return self->conversion->unstridify (self,
--        GST_BUFFER_DATA (outbuf), GST_BUFFER_DATA (inbuf));
--  } else if (self->out_rowstride) {
--    return self->conversion->stridify (self,
-+  if (self->conversion) {
-+    return self->conversion->convert (self,
-         GST_BUFFER_DATA (outbuf), GST_BUFFER_DATA (inbuf));
-   }
- 
-   GST_DEBUG_OBJECT (self,
--      "this shouldn't happen!  in_rowstride=%d, out_rowstride=%d",
--      self->in_rowstride, self->out_rowstride);
-+      "this shouldn't happen!  in_rowstride=%d, out_rowstride=%d, conversion=%p",
-+      self->in_rowstride, self->out_rowstride, self->conversion);
- 
-   return GST_FLOW_ERROR;
- }
-diff --git a/gst/stride/gststridetransform.h b/gst/stride/gststridetransform.h
-index bce2526..34733cd 100644
---- a/gst/stride/gststridetransform.h
-+++ b/gst/stride/gststridetransform.h
-@@ -52,11 +52,18 @@ typedef struct {
- 
-   GstVideoFormat format[2];   /* in_format, out_format */
- 
--  GstFlowReturn (*stridify) (GstStrideTransform *self, guchar *strided, guchar *unstrided);
--  GstFlowReturn (*unstridify) (GstStrideTransform *self, guchar *unstrided, guchar *strided);
-+  GstFlowReturn (*convert) (GstStrideTransform *self, guchar *out, guchar *in);
- 
- } Conversion;
- 
-+typedef struct {
-+  gint in_bpl;               /* bytes per line in input */
-+  gint out_bpl;              /* bytes per line in output */
-+  gint in_off;
-+  gint out_off;
-+  gint width;
-+  gint height;
-+} Cache;
- 
- /**
-  * GstStrideTransform:
-@@ -67,9 +74,23 @@ struct _GstStrideTransform {
-   GstVideoFilter videofilter;
- 
-   /*< private >*/
-+
-+  /* values set from caps: */
-   gint width, height;
-   gint in_rowstride;
-   gint out_rowstride;
-+
-+  /* values set from set from crop event: */
-+  gint crop_width, crop_height, crop_top, crop_left;
-+
-+  /* cached values used for each conversion, indexed by plane in case of
-+   * multi-planar formats.  These won't have zero values meaning not-used
-+   * (as long as !needs_refresh), but will be set to whatever byte width/
-+   * offset is appropriate for the format.
-+   */
-+  Cache cache[3];
-+  gboolean needs_refresh;
-+
-   const Conversion *conversion;
- 
-   /* for caching the tranform_size() results.. */
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0022-stride-support-for-32bit-RGB-formats.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0022-stride-support-for-32bit-RGB-formats.patch
deleted file mode 100644
index ac56a08..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0022-stride-support-for-32bit-RGB-formats.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 30b32e864e9a77b66a36d27d3b071f59633d08b7 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Mon, 13 Sep 2010 19:16:02 -0500
-Subject: [PATCH 22/24] stride: support for 32bit RGB formats
-
----
- gst/stride/convert.c |   24 ++++++++++++++++++++++++
- 1 files changed, 24 insertions(+), 0 deletions(-)
-
-diff --git a/gst/stride/convert.c b/gst/stride/convert.c
-index 5d392ac..7f976a5 100644
---- a/gst/stride/convert.c
-+++ b/gst/stride/convert.c
-@@ -372,6 +372,22 @@ convert_rgb16_rgb16 (GstStrideTransform * self,
-   return convert_422i_422i (self, out, in);
- }
- 
-+/** convert 32bbp rgb formats */
-+static GstFlowReturn
-+convert_rgb32_rgb32 (GstStrideTransform * self,
-+    guchar * out, guchar * in)
-+{
-+  if (G_UNLIKELY (self->needs_refresh)) {
-+    gint sx[] = {1};
-+    gint sy[] = {1};
-+    if (refresh_cache (self, 1, 4, sx, sx, sy, sy))
-+      return GST_FLOW_ERROR;
-+    self->needs_refresh = FALSE;
-+  }
-+
-+  return convert_n_n (self, out, in, 1);
-+}
-+
- #define CONVERT(tofmt, fromfmt, convert)                        \
- 		{                                                           \
-       { GST_VIDEO_FORMAT_##tofmt, GST_VIDEO_FORMAT_##fromfmt }, \
-@@ -388,6 +404,14 @@ const Conversion stride_conversions[] = {
-   CONVERT (I420, NV12, convert_i420_nv12),
-   CONVERT (I420, YUY2, convert_i420_yuy2),
-   CONVERT (RGB16, RGB16, convert_rgb16_rgb16),
-+  CONVERT (RGBx, RGBx, convert_rgb32_rgb32),
-+  CONVERT (BGRx, BGRx, convert_rgb32_rgb32),
-+  CONVERT (xRGB, xRGB, convert_rgb32_rgb32),
-+  CONVERT (xBGR, xBGR, convert_rgb32_rgb32),
-+  CONVERT (RGBA, RGBA, convert_rgb32_rgb32),
-+  CONVERT (BGRA, BGRA, convert_rgb32_rgb32),
-+  CONVERT (ARGB, ARGB, convert_rgb32_rgb32),
-+  CONVERT (ABGR, ABGR, convert_rgb32_rgb32),
-   /* add new entries before here */
-   {{GST_VIDEO_FORMAT_UNKNOWN}}
- };
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0023-ffmpegcolorspace-support-for-rowstride.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0023-ffmpegcolorspace-support-for-rowstride.patch
deleted file mode 100644
index d81de9c..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0023-ffmpegcolorspace-support-for-rowstride.patch
+++ /dev/null
@@ -1,410 +0,0 @@
-From 379447918aafc7f38a79219511764f6c04a2cbf9 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Fri, 24 Dec 2010 20:55:43 -0600
-Subject: [PATCH 23/24] ffmpegcolorspace: support for rowstride
-
----
- gst/ffmpegcolorspace/avcodec.h             |    2 +-
- gst/ffmpegcolorspace/gstffmpegcodecmap.c   |   85 +++++++++++++++++++--------
- gst/ffmpegcolorspace/gstffmpegcodecmap.h   |    1 +
- gst/ffmpegcolorspace/gstffmpegcolorspace.c |   30 ++++++++--
- gst/ffmpegcolorspace/gstffmpegcolorspace.h |    1 +
- gst/ffmpegcolorspace/imgconvert.c          |   12 ++--
- 6 files changed, 93 insertions(+), 38 deletions(-)
-
-diff --git a/gst/ffmpegcolorspace/avcodec.h b/gst/ffmpegcolorspace/avcodec.h
-index 57f551c..a4928ee 100644
---- a/gst/ffmpegcolorspace/avcodec.h
-+++ b/gst/ffmpegcolorspace/avcodec.h
-@@ -217,7 +217,7 @@ typedef struct AVPaletteControl {
- 
- } AVPaletteControl;
- 
--int avpicture_get_size(int pix_fmt, int width, int height);
-+int avpicture_get_size(int pix_fmt, int width, int height, int stride);
- 
- void avcodec_get_chroma_sub_sample(int pix_fmt, int *h_shift, int *v_shift);
- const char *avcodec_get_pix_fmt_name(int pix_fmt);
-diff --git a/gst/ffmpegcolorspace/gstffmpegcodecmap.c b/gst/ffmpegcolorspace/gstffmpegcodecmap.c
-index 318a90e..9c6a123 100644
---- a/gst/ffmpegcolorspace/gstffmpegcodecmap.c
-+++ b/gst/ffmpegcolorspace/gstffmpegcodecmap.c
-@@ -619,7 +619,8 @@ gst_ffmpeg_caps_to_pixfmt (const GstCaps * caps,
-   if (!raw)
-     return;
- 
--  if (gst_structure_has_name (structure, "video/x-raw-yuv")) {
-+  if (gst_structure_has_name (structure, "video/x-raw-yuv") ||
-+      gst_structure_has_name (structure, "video/x-raw-yuv-strided")) {
-     guint32 fourcc;
- 
-     if (gst_structure_get_fourcc (structure, "format", &fourcc)) {
-@@ -828,10 +829,10 @@ gst_ffmpegcsp_caps_with_codectype (enum CodecType type,
- int
- gst_ffmpegcsp_avpicture_fill (AVPicture * picture,
-     uint8_t * ptr, enum PixelFormat pix_fmt, int width, int height,
--    int interlaced)
-+    int stride, int interlaced)
- {
-   int size, w2, h2, size2;
--  int stride, stride2;
-+  int stride2;
-   PixFmtInfo *pinfo;
- 
-   pinfo = get_pix_fmt_info (pix_fmt);
-@@ -847,11 +848,15 @@ gst_ffmpegcsp_avpicture_fill (AVPicture * picture,
-     case PIX_FMT_YUVJ420P:
-     case PIX_FMT_YUVJ422P:
-     case PIX_FMT_YUVJ444P:
--      stride = GST_ROUND_UP_4 (width);
-       h2 = ROUND_UP_X (height, pinfo->y_chroma_shift);
--      size = stride * h2;
-       w2 = DIV_ROUND_UP_X (width, pinfo->x_chroma_shift);
--      stride2 = GST_ROUND_UP_4 (w2);
-+      if (stride) {
-+        stride2 = stride;
-+      } else {
-+        stride = GST_ROUND_UP_4 (width);
-+        stride2 = GST_ROUND_UP_4 (w2);
-+      }
-+      size = stride * h2;
-       h2 = DIV_ROUND_UP_X (height, pinfo->y_chroma_shift);
-       size2 = stride2 * h2;
-       picture->data[0] = ptr;
-@@ -864,11 +869,15 @@ gst_ffmpegcsp_avpicture_fill (AVPicture * picture,
-       /* PIX_FMT_YVU420P = YV12: same as PIX_FMT_YUV420P, but
-        *  with U and V plane swapped. Strides as in videotestsrc */
-     case PIX_FMT_YUVA420P:
--      stride = GST_ROUND_UP_4 (width);
-       h2 = ROUND_UP_X (height, pinfo->y_chroma_shift);
--      size = stride * h2;
-       w2 = DIV_ROUND_UP_X (width, pinfo->x_chroma_shift);
--      stride2 = GST_ROUND_UP_4 (w2);
-+      if (stride) {
-+        stride2 = stride;
-+      } else {
-+        stride = GST_ROUND_UP_4 (width);
-+        stride2 = GST_ROUND_UP_4 (w2);
-+      }
-+      size = stride * h2;
-       h2 = DIV_ROUND_UP_X (height, pinfo->y_chroma_shift);
-       size2 = stride2 * h2;
-       picture->data[0] = ptr;
-@@ -882,11 +891,15 @@ gst_ffmpegcsp_avpicture_fill (AVPicture * picture,
-       return 2 * size + 2 * size2;
-     case PIX_FMT_YVU410P:
-     case PIX_FMT_YVU420P:
--      stride = GST_ROUND_UP_4 (width);
-       h2 = ROUND_UP_X (height, pinfo->y_chroma_shift);
--      size = stride * h2;
-       w2 = DIV_ROUND_UP_X (width, pinfo->x_chroma_shift);
--      stride2 = GST_ROUND_UP_4 (w2);
-+      if (stride) {
-+        stride2 = stride;
-+      } else {
-+        stride = GST_ROUND_UP_4 (width);
-+        stride2 = GST_ROUND_UP_4 (w2);
-+      }
-+      size = stride * h2;
-       h2 = DIV_ROUND_UP_X (height, pinfo->y_chroma_shift);
-       size2 = stride2 * h2;
-       picture->data[0] = ptr;
-@@ -898,11 +911,15 @@ gst_ffmpegcsp_avpicture_fill (AVPicture * picture,
-       return size + 2 * size2;
-     case PIX_FMT_NV12:
-     case PIX_FMT_NV21:
--      stride = GST_ROUND_UP_4 (width);
-       h2 = ROUND_UP_X (height, pinfo->y_chroma_shift);
--      size = stride * h2;
-       w2 = 2 * DIV_ROUND_UP_X (width, pinfo->x_chroma_shift);
--      stride2 = GST_ROUND_UP_4 (w2);
-+      if (stride) {
-+        stride2 = stride;
-+      } else {
-+        stride = GST_ROUND_UP_4 (width);
-+        stride2 = GST_ROUND_UP_4 (w2);
-+      }
-+      size = stride * h2;
-       h2 = DIV_ROUND_UP_X (height, pinfo->y_chroma_shift);
-       size2 = stride2 * h2;
-       picture->data[0] = ptr;
-@@ -914,7 +931,9 @@ gst_ffmpegcsp_avpicture_fill (AVPicture * picture,
-       return size + size2;
-     case PIX_FMT_RGB24:
-     case PIX_FMT_BGR24:
--      stride = GST_ROUND_UP_4 (width * 3);
-+      if (!stride) {
-+        stride = GST_ROUND_UP_4 (width * 3);
-+      }
-       size = stride * height;
-       picture->data[0] = ptr;
-       picture->data[1] = NULL;
-@@ -930,7 +949,9 @@ gst_ffmpegcsp_avpicture_fill (AVPicture * picture,
-     case PIX_FMT_ABGR32:
-     case PIX_FMT_xRGB32:
-     case PIX_FMT_BGRx32:
--      stride = width * 4;
-+      if (!stride) {
-+        stride = width * 4;
-+      }
-       size = stride * height;
-       picture->data[0] = ptr;
-       picture->data[1] = NULL;
-@@ -942,7 +963,9 @@ gst_ffmpegcsp_avpicture_fill (AVPicture * picture,
-     case PIX_FMT_YUV422:
-     case PIX_FMT_UYVY422:
-     case PIX_FMT_YVYU422:
--      stride = GST_ROUND_UP_4 (width * 2);
-+      if (!stride) {
-+        stride = GST_ROUND_UP_4 (width * 2);
-+      }
-       size = stride * height;
-       picture->data[0] = ptr;
-       picture->data[1] = NULL;
-@@ -950,7 +973,9 @@ gst_ffmpegcsp_avpicture_fill (AVPicture * picture,
-       picture->linesize[0] = stride;
-       return size;
-     case PIX_FMT_V308:
--      stride = GST_ROUND_UP_4 (width * 3);
-+      if (!stride) {
-+        stride = GST_ROUND_UP_4 (width * 3);
-+      }
-       size = stride * height;
-       picture->data[0] = ptr;
-       picture->data[1] = NULL;
-@@ -958,8 +983,10 @@ gst_ffmpegcsp_avpicture_fill (AVPicture * picture,
-       picture->linesize[0] = stride;
-       return size;
-     case PIX_FMT_UYVY411:
--      stride =
--          GST_ROUND_UP_4 (GST_ROUND_UP_4 (width) + GST_ROUND_UP_4 (width) / 2);
-+      if (!stride) {
-+        stride = GST_ROUND_UP_4 (GST_ROUND_UP_4 (width) +
-+            GST_ROUND_UP_4 (width) / 2);
-+      }
-       size = stride * height;
-       picture->data[0] = ptr;
-       picture->data[1] = NULL;
-@@ -968,7 +995,9 @@ gst_ffmpegcsp_avpicture_fill (AVPicture * picture,
-       return size;
-     case PIX_FMT_Y800:
-     case PIX_FMT_GRAY8:
--      stride = GST_ROUND_UP_4 (width);
-+      if (!stride) {
-+        stride = GST_ROUND_UP_4 (width);
-+      }
-       size = stride * height;
-       picture->data[0] = ptr;
-       picture->data[1] = NULL;
-@@ -978,7 +1007,9 @@ gst_ffmpegcsp_avpicture_fill (AVPicture * picture,
-     case PIX_FMT_Y16:
-     case PIX_FMT_GRAY16_L:
-     case PIX_FMT_GRAY16_B:
--      stride = GST_ROUND_UP_4 (width * 2);
-+      if (!stride) {
-+        stride = GST_ROUND_UP_4 (width * 2);
-+      }
-       size = stride * height;
-       picture->data[0] = ptr;
-       picture->data[1] = NULL;
-@@ -987,7 +1018,9 @@ gst_ffmpegcsp_avpicture_fill (AVPicture * picture,
-       return size;
-     case PIX_FMT_MONOWHITE:
-     case PIX_FMT_MONOBLACK:
--      stride = GST_ROUND_UP_4 ((width + 7) >> 3);
-+      if (!stride) {
-+        stride = GST_ROUND_UP_4 ((width + 7) >> 3);
-+      }
-       size = stride * height;
-       picture->data[0] = ptr;
-       picture->data[1] = NULL;
-@@ -996,7 +1029,9 @@ gst_ffmpegcsp_avpicture_fill (AVPicture * picture,
-       return size;
-     case PIX_FMT_PAL8:
-       /* already forced to be with stride, so same result as other function */
--      stride = GST_ROUND_UP_4 (width);
-+      if (!stride) {
-+        stride = GST_ROUND_UP_4 (width);
-+      }
-       size = stride * height;
-       picture->data[0] = ptr;
-       picture->data[1] = ptr + size;    /* palette is stored here as 256 32 bit words */
-diff --git a/gst/ffmpegcolorspace/gstffmpegcodecmap.h b/gst/ffmpegcolorspace/gstffmpegcodecmap.h
-index 515f530..bcd212a 100644
---- a/gst/ffmpegcolorspace/gstffmpegcodecmap.h
-+++ b/gst/ffmpegcolorspace/gstffmpegcodecmap.h
-@@ -52,6 +52,7 @@ gst_ffmpegcsp_avpicture_fill (AVPicture * picture,
-                               enum PixelFormat pix_fmt,
-                               int         width,
-                               int         height,
-+                              int         stride,
- 			      int         interlaced);
- 
- #endif /* __GST_FFMPEG_CODECMAP_H__ */
-diff --git a/gst/ffmpegcolorspace/gstffmpegcolorspace.c b/gst/ffmpegcolorspace/gstffmpegcolorspace.c
-index 4ba0204..63430a0 100644
---- a/gst/ffmpegcolorspace/gstffmpegcolorspace.c
-+++ b/gst/ffmpegcolorspace/gstffmpegcolorspace.c
-@@ -48,6 +48,10 @@ GST_DEBUG_CATEGORY (ffmpegcolorspace_performance);
-   "video/x-raw-yuv, width = "GST_VIDEO_SIZE_RANGE" , "			\
-   "height="GST_VIDEO_SIZE_RANGE",framerate="GST_VIDEO_FPS_RANGE","	\
-   "format= (fourcc) { I420 , NV12 , NV21 , YV12 , YUY2 , Y42B , Y444 , YUV9 , YVU9 , Y41B , Y800 , Y8 , GREY , Y16 , UYVY , YVYU , IYU1 , v308 , AYUV, A420} ;" \
-+  "video/x-raw-yuv-strided, width = "GST_VIDEO_SIZE_RANGE" , "      \
-+  "height="GST_VIDEO_SIZE_RANGE",framerate="GST_VIDEO_FPS_RANGE","  \
-+  "rowstride="GST_VIDEO_SIZE_RANGE"," \
-+  "format= (fourcc) { I420 , NV12 , NV21 , YV12 , YUY2 , Y42B , Y444 , YUV9 , YVU9 , Y41B , Y800 , Y8 , GREY , Y16 , UYVY , YVYU , IYU1 , v308 , AYUV, A420} ;" \
-   GST_VIDEO_CAPS_RGB";"							\
-   GST_VIDEO_CAPS_BGR";"							\
-   GST_VIDEO_CAPS_RGBx";"						\
-@@ -205,8 +209,8 @@ gst_ffmpegcsp_set_caps (GstBaseTransform * btrans, GstCaps * incaps,
- {
-   GstFFMpegCsp *space;
-   GstStructure *structure;
--  gint in_height, in_width;
--  gint out_height, out_width;
-+  gint in_height, in_width, in_stride = 0;
-+  gint out_height, out_width, out_stride = 0;
-   const GValue *in_framerate = NULL;
-   const GValue *out_framerate = NULL;
-   const GValue *in_par = NULL;
-@@ -225,6 +229,10 @@ gst_ffmpegcsp_set_caps (GstBaseTransform * btrans, GstCaps * incaps,
-   if (!res)
-     goto no_width_height;
- 
-+  /* stride is optional: */
-+  if (gst_structure_has_name (structure, "video/x-raw-yuv-strided"))
-+    gst_structure_get_int (structure, "rowstride", &in_stride);
-+
-   /* and framerate */
-   in_framerate = gst_structure_get_value (structure, "framerate");
-   if (in_framerate == NULL || !GST_VALUE_HOLDS_FRACTION (in_framerate))
-@@ -241,6 +249,10 @@ gst_ffmpegcsp_set_caps (GstBaseTransform * btrans, GstCaps * incaps,
-   if (!res)
-     goto no_width_height;
- 
-+  /* stride is optional: */
-+  if (gst_structure_has_name (structure, "video/x-raw-yuv-strided"))
-+    gst_structure_get_int (structure, "rowstride", &out_stride);
-+
-   /* and framerate */
-   out_framerate = gst_structure_get_value (structure, "framerate");
-   if (out_framerate == NULL || !GST_VALUE_HOLDS_FRACTION (out_framerate))
-@@ -263,6 +275,8 @@ gst_ffmpegcsp_set_caps (GstBaseTransform * btrans, GstCaps * incaps,
- 
-   space->width = ctx->width = in_width;
-   space->height = ctx->height = in_height;
-+  space->in_stride = in_stride;
-+  space->out_stride = out_stride;
- 
-   space->interlaced = FALSE;
-   gst_structure_get_boolean (structure, "interlaced", &space->interlaced);
-@@ -401,7 +415,7 @@ gst_ffmpegcsp_get_unit_size (GstBaseTransform * btrans, GstCaps * caps,
-   GstStructure *structure = NULL;
-   AVCodecContext *ctx = NULL;
-   gboolean ret = TRUE;
--  gint width, height;
-+  gint width, height, stride = 0;
- 
-   g_assert (size);
- 
-@@ -409,6 +423,10 @@ gst_ffmpegcsp_get_unit_size (GstBaseTransform * btrans, GstCaps * caps,
-   gst_structure_get_int (structure, "width", &width);
-   gst_structure_get_int (structure, "height", &height);
- 
-+  /* stride is optional: */
-+  if (gst_structure_has_name (structure, "video/x-raw-yuv-strided"))
-+    gst_structure_get_int (structure, "rowstride", &stride);
-+
-   ctx = avcodec_alloc_context ();
- 
-   g_assert (ctx != NULL);
-@@ -422,7 +440,7 @@ gst_ffmpegcsp_get_unit_size (GstBaseTransform * btrans, GstCaps * caps,
-     goto beach;
-   }
- 
--  *size = avpicture_get_size (ctx->pix_fmt, width, height);
-+  *size = avpicture_get_size (ctx->pix_fmt, width, height, stride);
- 
-   /* ffmpeg frames have the palette after the frame data, whereas
-    * GStreamer currently puts it into the caps as 'palette_data' field,
-@@ -460,7 +478,7 @@ gst_ffmpegcsp_transform (GstBaseTransform * btrans, GstBuffer * inbuf,
-   /* fill from with source data */
-   gst_ffmpegcsp_avpicture_fill (&space->from_frame,
-       GST_BUFFER_DATA (inbuf), space->from_pixfmt, space->width, space->height,
--      space->interlaced);
-+      space->in_stride, space->interlaced);
- 
-   /* fill optional palette */
-   if (space->palette)
-@@ -469,7 +487,7 @@ gst_ffmpegcsp_transform (GstBaseTransform * btrans, GstBuffer * inbuf,
-   /* fill target frame */
-   gst_ffmpegcsp_avpicture_fill (&space->to_frame,
-       GST_BUFFER_DATA (outbuf), space->to_pixfmt, space->width, space->height,
--      space->interlaced);
-+      space->out_stride, space->interlaced);
- 
-   /* and convert */
-   result = img_convert (&space->to_frame, space->to_pixfmt,
-diff --git a/gst/ffmpegcolorspace/gstffmpegcolorspace.h b/gst/ffmpegcolorspace/gstffmpegcolorspace.h
-index 198ab8a..bd5e01c 100644
---- a/gst/ffmpegcolorspace/gstffmpegcolorspace.h
-+++ b/gst/ffmpegcolorspace/gstffmpegcolorspace.h
-@@ -46,6 +46,7 @@ struct _GstFFMpegCsp {
-   GstVideoFilter element;
- 
-   gint width, height;
-+  gint in_stride, out_stride;
-   gboolean interlaced;
-   gfloat fps;
-   enum PixelFormat from_pixfmt, to_pixfmt;
-diff --git a/gst/ffmpegcolorspace/imgconvert.c b/gst/ffmpegcolorspace/imgconvert.c
-index cb145bb..414c4a0 100644
---- a/gst/ffmpegcolorspace/imgconvert.c
-+++ b/gst/ffmpegcolorspace/imgconvert.c
-@@ -594,12 +594,12 @@ avpicture_layout (const AVPicture * src, int pix_fmt, int width, int height,
- #endif
- 
- int
--avpicture_get_size (int pix_fmt, int width, int height)
-+avpicture_get_size (int pix_fmt, int width, int height, int stride)
- {
-   AVPicture dummy_pict;
- 
-   return gst_ffmpegcsp_avpicture_fill (&dummy_pict, NULL, pix_fmt, width,
--      height, FALSE);
-+      height, stride, FALSE);
- }
- 
- /**
-@@ -3518,16 +3518,16 @@ get_convert_table_entry (int src_pix_fmt, int dst_pix_fmt)
- 
- static int
- avpicture_alloc (AVPicture * picture, int pix_fmt, int width, int height,
--    int interlaced)
-+    int stride, int interlaced)
- {
-   unsigned int size;
-   void *ptr;
- 
--  size = avpicture_get_size (pix_fmt, width, height);
-+  size = avpicture_get_size (pix_fmt, width, height, stride);
-   ptr = av_malloc (size);
-   if (!ptr)
-     goto fail;
--  gst_ffmpegcsp_avpicture_fill (picture, ptr, pix_fmt, width, height,
-+  gst_ffmpegcsp_avpicture_fill (picture, ptr, pix_fmt, width, height, stride,
-       interlaced);
-   return 0;
- fail:
-@@ -3775,7 +3775,7 @@ no_chroma_filter:
-     else
-       int_pix_fmt = PIX_FMT_RGB24;
-   }
--  if (avpicture_alloc (tmp, int_pix_fmt, dst_width, dst_height,
-+  if (avpicture_alloc (tmp, int_pix_fmt, dst_width, dst_height, 0,
-           dst->interlaced) < 0)
-     return -1;
-   ret = -1;
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0024-discoverer-rowstride-support.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0024-discoverer-rowstride-support.patch
deleted file mode 100644
index ebe1b6f..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0024-discoverer-rowstride-support.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 3bb025f5ba20aeb5d2fa575e4a78ea61e3bf5c1b Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Wed, 5 Jan 2011 11:40:03 -0600
-Subject: [PATCH 24/24] discoverer: rowstride support
-
----
- gst-libs/gst/pbutils/gstdiscoverer.c |    8 ++++----
- 1 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/gst-libs/gst/pbutils/gstdiscoverer.c b/gst-libs/gst/pbutils/gstdiscoverer.c
-index 8422d8f..2176196 100644
---- a/gst-libs/gst/pbutils/gstdiscoverer.c
-+++ b/gst-libs/gst/pbutils/gstdiscoverer.c
-@@ -558,7 +558,7 @@ collect_information (GstDiscoverer * dc, const GstStructure * st,
-   GstCaps *caps;
-   GstStructure *caps_st, *tags_st;
-   const gchar *name;
--  int tmp, tmp2;
-+  int tmp, tmp2, tmp3;
-   guint utmp;
-   gboolean btmp;
- 
-@@ -626,7 +626,7 @@ collect_information (GstDiscoverer * dc, const GstStructure * st,
-       info->parent.caps = caps;
-     }
- 
--    if (gst_video_format_parse_caps (caps, &format, &tmp, &tmp2)) {
-+    if (gst_video_format_parse_caps_strided (caps, &format, &tmp, &tmp2, &tmp3)) {
-       info->width = (guint) tmp;
-       info->height = (guint) tmp2;
-     }
-@@ -930,8 +930,8 @@ discoverer_collect (GstDiscoverer * dc)
-           gst_caps_get_structure (dc->priv->current_info->stream_info->caps, 0);
- 
-       if (g_str_has_prefix (gst_structure_get_name (st), "image/"))
--        ((GstDiscovererVideoInfo *) dc->priv->current_info->
--            stream_info)->is_image = TRUE;
-+        ((GstDiscovererVideoInfo *) dc->priv->current_info->stream_info)->
-+            is_image = TRUE;
-     }
-   }
- 
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/gst-plugins-base-0.10.32_p20110127.ebuild b/media-libs/gst-plugins-base/gst-plugins-base-0.10.32_p20110127.ebuild
deleted file mode 100644
index 93160d5..0000000
--- a/media-libs/gst-plugins-base/gst-plugins-base-0.10.32_p20110127.ebuild
+++ /dev/null
@@ -1,78 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI=1
-
-# order is important, gnome2 after gst-plugins
-inherit gst-plugins-base gst-plugins10 gnome2 flag-o-matic autotools eutils
-# libtool
-
-DESCRIPTION="Basepack of plugins for gstreamer"
-HOMEPAGE="http://gstreamer.sourceforge.net"
-MY_P=${P%%_*}
-SRC_URI="http://gstreamer.freedesktop.org/src/${PN}/${MY_P}.tar.bz2"
-S="${WORKDIR}/${MY_P}"
-
-LICENSE="GPL-2"
-KEYWORDS="~alpha ~amd64 arm ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
-IUSE="+introspection +orc"
-
-RDEPEND=">=dev-libs/glib-2.20
-	=media-libs/gstreamer-0.10.32_p20110127
-	dev-libs/libxml2
-	app-text/iso-codes
-	orc? ( >=dev-lang/orc-0.4.5 )
-	!<media-libs/gst-plugins-bad-0.10.10"
-DEPEND="${RDEPEND}
-	dev-util/pkgconfig
-	dev-util/gtk-doc-am"
-
-GST_PLUGINS_BUILD=""
-
-DOCS="AUTHORS NEWS README RELEASE"
-
-src_unpack() {
-	unpack ${A}
-	cd "${S}"
-	epatch "${FILESDIR}"/gst-0.10.32-0001-add-rowstride-support-to-video-utility-functions.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0002-stridetransform-skeletal-implementation-of-stridetra.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0003-stridetransform-implement-caps-negotiation-and-relat.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0004-stridetransform-implement-transform-function.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0005-add-gst_stride_transform_transform_size.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0006-fix-a-small-typo.-need-to-use-the-smaller-of-new_wid.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0007-Add-NV12-support-in-stridetransform.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0008-add-basic-support-for-I420-NV12-colorspace-conversio.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0009-fix-to-avoid-parsing-caps-on-every-frame.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0010-refactor-stridetransform-to-make-it-easier-to-add-ne.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0011-add-some-neon.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0012-add-support-to-convert-to-YUY2-YUYV-color-format.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0013-Add-support-for-RGB565-to-stridetransform.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0014-stridetransform-updates-for-new-extra-anal-compiler-.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0015-stridetransform-fix-problem-transforming-caps-with-l.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0016-modify-playbin-to-use-stridetransform.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0017-playbin-disable-interlaced-support.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0018-textoverlay-add-stride-support.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0019-video-more-flexible-video-caps-utility.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0020-video-fix-endianess-issue-for-16bit-RGB-formats.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0021-stride-more-flexible-stride-color-conversion.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0022-stride-support-for-32bit-RGB-formats.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0023-ffmpegcolorspace-support-for-rowstride.patch
-	eautoreconf
-}
-
-src_compile() {
-	# gst doesnt handle opts well, last tested with 0.10.15
-	strip-flags
-	replace-flags "-O3" "-O2"
-
-	gst-plugins-base_src_configure \
-		--disable-nls \
-		$(use_enable introspection) \
-		$(use_enable orc)
-	emake || die "emake failed."
-}
-
-src_install() {
-	gnome2_src_install
-}

diff --git a/media-libs/gst-plugins-good/Manifest b/media-libs/gst-plugins-good/Manifest
deleted file mode 100644
index 6f92a4e..0000000
--- a/media-libs/gst-plugins-good/Manifest
+++ /dev/null
@@ -1,14 +0,0 @@
-AUX gst-0.10.27-0001-v4l2-fix-handling-of-RGB32-BGR32-formats.patch 1699 RMD160 ee58e52c89ed3ac10ece5f24b2607461f693abb3 SHA1 5f93921349aa383b9f9a70f1ce62128eda6d9411 SHA256 b99e9322ba836e6de4df144ff5a6454bb4175a84713a9610fce3ff83402f82d5
-AUX gst-0.10.27-0002-v4l2sink-Add-rotation-support.patch 4255 RMD160 fe2024baf7398c83cec0c0adfdd649733a967482 SHA1 483ec498ce795764475b7e486560ae43ac12737c SHA256 08595843b8fddb76661aaec9b3d84791edf72226dc323050ca94ed1aebc49949
-AUX gst-0.10.27-0003-v4l2sink-Add-flip-property.patch 5880 RMD160 1fc14e374dc56b52cc16d189c3b87e0508b323fb SHA1 8475701469ea33dc355a0a030dc20a5d9a2a0e2f SHA256 42864937012aaede7fbd0ebd78b06be6b6326f99a0770ec6ec6ac57426004445
-AUX gst-0.10.27-0004-v4l2sink-Add-support-for-omap24xxvout-driver.patch 2205 RMD160 da01e8eb31d528971113679984e51f9e7d7e0326 SHA1 07ad77fe137d8c4548320f582d3cc88928e943c2 SHA256 7cca5ec0adf3ac20c7a400bf209523c9135cadb9292cbd219b631d588a3800af
-AUX gst-0.10.27-0005-v4l2sink-Add-support-for-omap_vout-driver.patch 1136 RMD160 2ba17fb3194790c60ab297a3cfbde4089575555d SHA1 f18af7103413df180b3eab08c4abe655d7a63ed3 SHA256 fa8486abf8bd9c12d2d29fe3077485e1ca77af9e39ef4a9b48a7d1ea696c2d85
-AUX gst-0.10.27-0006-v4l2-increase-v4l2sink-element-rank.patch 884 RMD160 5e18ee173f9749a46de9a146a4c6e0113f02281d SHA1 1bfab5660c9f5354eb6daed48a965824675bc07a SHA256 1cfcd14afba356fd6c6180b8f1018174e392d9cc9690870f5dd06918ef3454e5
-AUX gst-0.10.27-0007-use-GstQueryBuffers-to-get-buffer-requirements.patch 3392 RMD160 a7a197667a9fd0ca8d47125a8205f58f81e110cb SHA1 b650b0474355775a5bcb5b89090798e226786632 SHA256 5621c6c3c1a4a49c62faeffbe320e76a4c45d5ecf6c3ecb29adbe2eed25c64b4
-AUX gst-0.10.27-0008-add-rowstride-support.patch 20547 RMD160 cb4bf8074160cad277ba5754427a79cf42a139ed SHA1 60ac23640e799e558fce406e650ebe47b27645c4 SHA256 7ba17339344fe2f0b8e665cd1fd41e96c6543f2d38c4eeffbd071c6c2c21d407
-AUX gst-0.10.27-0009-use-GstEventCrop-to-get-crop-info.patch 4209 RMD160 7b827d6d1cb40f10bb25e0dedf8791884bd60bb5 SHA1 f1c47e70898c8480ce25e5ec6c90308c45cb77f7 SHA256 877141058a3662aa6c065003a048908eb5459206dd7d4cd68d46ba51bfd448a8
-AUX gst-0.10.27-0010-v4l2-prefer-NV12.patch 955 RMD160 1f8da679aa6562a8b7838a301dc98767f543ee12 SHA1 0fe801306c6dad176ef78f4269ecf99f6b270cb5 SHA256 2ddf29274b7f7d8b1ac1f2ed68c56485dddb000e82d12288e50b0acc12ffb0ec
-AUX gst-0.10.27-0011-v4l2sink-fix-issue-seen-with-autoconvert.patch 1938 RMD160 edb01fb57a548a6a6af67f016eea16d47337d0e0 SHA1 c80bbe19a4f6ad44967d077e4ee109094b5061bd SHA256 ad26b737d21721882a6c0de9011ac30984450b4ba213dc5045e9dfff9d2180fc
-AUX gst-0.10.27-0099-v4l2sink-Disable-rotation-code-when-not-found.patch 3484 RMD160 42b0d964871066c9203cdaf8aa79c4a08f8bef33 SHA1 2502fd3e41ecda556868785540d993e45872d7bc SHA256 a7981181b78cbbf2b717d2b09a177859a99f2a75f76f1c146549955d0bc300b9
-DIST gst-plugins-good-0.10.27.tar.bz2 3096221 RMD160 6486fca87a6394577ab1f0a4e94a19b1c3e2ca5e SHA1 49964ad3b8fbee9caa0b3fc437dd9169aafad79d SHA256 a9d801c3d42b456a6ebc0b95f68c44f153f756ec0fbd4877197c469cc67771fa
-EBUILD gst-plugins-good-0.10.27_p20110127.ebuild 2912 RMD160 9b8e627d4d2383464f1090c97fc3dd68b9a2c4ba SHA1 f4392e673c6c878c505e2ab33072a54d1d9fd12f SHA256 203dfad6d89aaa3860810d0eefd6d518e0cbe91757542d28519e719e65a11327

diff --git a/media-libs/gst-plugins-good/files/gst-0.10.27-0001-v4l2-fix-handling-of-RGB32-BGR32-formats.patch b/media-libs/gst-plugins-good/files/gst-0.10.27-0001-v4l2-fix-handling-of-RGB32-BGR32-formats.patch
deleted file mode 100644
index f2d85ef..0000000
--- a/media-libs/gst-plugins-good/files/gst-0.10.27-0001-v4l2-fix-handling-of-RGB32-BGR32-formats.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 194aa8513c02fbfcabf04b45ff4c81bf8a94527f Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Tue, 14 Sep 2010 07:42:50 -0500
-Subject: [PATCH 01/11] v4l2: fix handling of RGB32/BGR32 formats
-
-bpp is 32, but depth is only 24..
----
- sys/v4l2/gstv4l2object.c |   12 +++++++-----
- 1 files changed, 7 insertions(+), 5 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2object.c b/sys/v4l2/gstv4l2object.c
-index 7e15489..f5672b5 100644
---- a/sys/v4l2/gstv4l2object.c
-+++ b/sys/v4l2/gstv4l2object.c
-@@ -1132,14 +1132,16 @@ gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc)
-           b_mask = 0xff0000;
-           break;
-         case V4L2_PIX_FMT_RGB32:
--          bpp = depth = 32;
-+          depth = 24;
-+          bpp = 32;
-           endianness = G_BIG_ENDIAN;
-           r_mask = 0xff000000;
-           g_mask = 0x00ff0000;
-           b_mask = 0x0000ff00;
-           break;
-         case V4L2_PIX_FMT_BGR32:
--          bpp = depth = 32;
-+          depth = 24;
-+          bpp = 32;
-           endianness = G_BIG_ENDIAN;
-           r_mask = 0x000000ff;
-           g_mask = 0x0000ff00;
-@@ -1404,13 +1406,13 @@ gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps,
- #endif
-     }
-   } else if (!strcmp (mimetype, "video/x-raw-rgb")) {
--    gint depth, endianness, r_mask;
-+    gint bpp, endianness, r_mask;
- 
--    gst_structure_get_int (structure, "depth", &depth);
-+    gst_structure_get_int (structure, "bpp", &bpp);
-     gst_structure_get_int (structure, "endianness", &endianness);
-     gst_structure_get_int (structure, "red_mask", &r_mask);
- 
--    switch (depth) {
-+    switch (bpp) {
-       case 8:
-         fourcc = V4L2_PIX_FMT_RGB332;
-         break;
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-good/files/gst-0.10.27-0002-v4l2sink-Add-rotation-support.patch b/media-libs/gst-plugins-good/files/gst-0.10.27-0002-v4l2sink-Add-rotation-support.patch
deleted file mode 100644
index 11b777c..0000000
--- a/media-libs/gst-plugins-good/files/gst-0.10.27-0002-v4l2sink-Add-rotation-support.patch
+++ /dev/null
@@ -1,128 +0,0 @@
-From d43a9444fc5f7655a8acd2978039667a04222ba0 Mon Sep 17 00:00:00 2001
-From: Kiran Nataraju <knataraju@ti.com>
-Date: Fri, 27 Aug 2010 09:00:57 +0200
-Subject: [PATCH 02/11] v4l2sink: Add rotation support.
-
-Signed-off-by: Kiran Nataraju <knataraju@ti.com>
-Signed-off-by: Daniel Diaz <ddiaz@ti.com>
----
- sys/v4l2/gstv4l2sink.c |   34 ++++++++++++++++++++++++++++++++++
- sys/v4l2/gstv4l2sink.h |    1 +
- 2 files changed, 35 insertions(+), 0 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
-index aa6785c..5abf915 100644
---- a/sys/v4l2/gstv4l2sink.c
-+++ b/sys/v4l2/gstv4l2sink.c
-@@ -72,6 +72,10 @@ GST_DEBUG_CATEGORY (v4l2sink_debug);
- #define PROP_DEF_MIN_QUEUED_BUFS    1
- #define DEFAULT_PROP_DEVICE   "/dev/video1"
- 
-+#define MIN_ROTATION_ANGLE 0
-+#define MAX_ROTATION_ANGLE 360
-+#define DEFAULT_ROTATION_ANGLE 0
-+
- enum
- {
-   PROP_0,
-@@ -86,6 +90,7 @@ enum
-   PROP_CROP_LEFT,
-   PROP_CROP_WIDTH,
-   PROP_CROP_HEIGHT,
-+  PROP_ROTATION,
- };
- 
- 
-@@ -220,6 +225,7 @@ static GstFlowReturn gst_v4l2sink_buffer_alloc (GstBaseSink * bsink,
-     guint64 offset, guint size, GstCaps * caps, GstBuffer ** buf);
- static GstFlowReturn gst_v4l2sink_show_frame (GstBaseSink * bsink,
-     GstBuffer * buf);
-+static void gst_v4l2sink_set_rotation (GstV4l2Sink * v4l2sink);
- 
- static void
- gst_v4l2sink_base_init (gpointer g_class)
-@@ -306,6 +312,11 @@ gst_v4l2sink_class_init (GstV4l2SinkClass * klass)
-           "The height of the video crop; default is equal to negotiated image height",
-           0, 0xffffffff, 0, G_PARAM_READWRITE));
- 
-+  g_object_class_install_property (gobject_class, PROP_ROTATION,
-+      g_param_spec_int ("rotation", "Rotation angle",
-+          "Rotation angle for the image", MIN_ROTATION_ANGLE,
-+          MAX_ROTATION_ANGLE, DEFAULT_ROTATION_ANGLE, G_PARAM_READWRITE));
-+
-   basesink_class->get_caps = GST_DEBUG_FUNCPTR (gst_v4l2sink_get_caps);
-   basesink_class->set_caps = GST_DEBUG_FUNCPTR (gst_v4l2sink_set_caps);
-   basesink_class->buffer_alloc = GST_DEBUG_FUNCPTR (gst_v4l2sink_buffer_alloc);
-@@ -336,6 +347,7 @@ gst_v4l2sink_init (GstV4l2Sink * v4l2sink, GstV4l2SinkClass * klass)
-   v4l2sink->overlay_fields_set = 0;
-   v4l2sink->crop_fields_set = 0;
-   v4l2sink->state = 0;
-+  v4l2sink->rotation = 0;
- }
- 
- 
-@@ -475,6 +487,20 @@ gst_v4l2sink_sync_crop_fields (GstV4l2Sink * v4l2sink)
-   }
- }
- 
-+static void
-+gst_v4l2sink_set_rotation (GstV4l2Sink * v4l2sink)
-+{
-+  if (GST_V4L2_IS_OPEN (v4l2sink->v4l2object)) {
-+    struct v4l2_control control;
-+    gint fd = v4l2sink->v4l2object->video_fd;
-+
-+    memset (&control, 0x00, sizeof (struct v4l2_control));
-+    control.id = V4L2_CID_ROTATE;
-+    control.value = v4l2sink->rotation;
-+    g_return_if_fail (v4l2_ioctl (fd, VIDIOC_S_CTRL, &control) >= 0);
-+  }
-+}
-+
- 
- static void
- gst_v4l2sink_set_property (GObject * object,
-@@ -531,6 +557,10 @@ gst_v4l2sink_set_property (GObject * object,
-         v4l2sink->crop_fields_set |= RECT_HEIGHT_SET;
-         gst_v4l2sink_sync_crop_fields (v4l2sink);
-         break;
-+      case PROP_ROTATION:
-+        v4l2sink->rotation = g_value_get_int (value);
-+        gst_v4l2sink_set_rotation (v4l2sink);
-+        break;
-       default:
-         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-         break;
-@@ -578,6 +608,9 @@ gst_v4l2sink_get_property (GObject * object,
-       case PROP_CROP_HEIGHT:
-         g_value_set_uint (value, v4l2sink->crop.height);
-         break;
-+      case PROP_ROTATION:
-+        g_value_set_int (value, v4l2sink->rotation);
-+        break;
-       default:
-         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-         break;
-@@ -600,6 +633,7 @@ gst_v4l2sink_change_state (GstElement * element, GstStateChange transition)
-       /* open the device */
-       if (!gst_v4l2_object_start (v4l2sink->v4l2object))
-         return GST_STATE_CHANGE_FAILURE;
-+      gst_v4l2sink_set_rotation (v4l2sink);
-       break;
-     default:
-       break;
-diff --git a/sys/v4l2/gstv4l2sink.h b/sys/v4l2/gstv4l2sink.h
-index 8fe8222..1239621 100644
---- a/sys/v4l2/gstv4l2sink.h
-+++ b/sys/v4l2/gstv4l2sink.h
-@@ -75,6 +75,7 @@ struct _GstV4l2Sink {
-   guint8 overlay_fields_set, crop_fields_set;
- 
-   guint8 state;
-+  gint rotation;
- };
- 
- struct _GstV4l2SinkClass {
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-good/files/gst-0.10.27-0003-v4l2sink-Add-flip-property.patch b/media-libs/gst-plugins-good/files/gst-0.10.27-0003-v4l2sink-Add-flip-property.patch
deleted file mode 100644
index 9bdfa51..0000000
--- a/media-libs/gst-plugins-good/files/gst-0.10.27-0003-v4l2sink-Add-flip-property.patch
+++ /dev/null
@@ -1,187 +0,0 @@
-From 1381c64fd606d8ab7169eef52386139a4848c439 Mon Sep 17 00:00:00 2001
-From: Kiran Nataraju <knataraju@ti.com>
-Date: Tue, 21 Sep 2010 06:21:23 +0200
-Subject: [PATCH 03/11] v4l2sink: Add flip property.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: Kiran Nataraju <knataraju@ti.com>
-Signed-off-by: Daniel Díaz <yosoy@danieldiaz.org>
----
- sys/v4l2/gstv4l2sink.c |   88 +++++++++++++++++++++++++++++++++++++++++++++--
- sys/v4l2/gstv4l2sink.h |    1 +
- 2 files changed, 85 insertions(+), 4 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
-index 5abf915..6163747 100644
---- a/sys/v4l2/gstv4l2sink.c
-+++ b/sys/v4l2/gstv4l2sink.c
-@@ -91,6 +91,7 @@ enum
-   PROP_CROP_WIDTH,
-   PROP_CROP_HEIGHT,
-   PROP_ROTATION,
-+  PROP_FLIP,
- };
- 
- 
-@@ -129,6 +130,34 @@ gst_v4l2sink_iface_supported (GstImplementsInterface * iface, GType iface_type)
-   return TRUE;
- }
- 
-+/*
-+ * Flip state
-+ */
-+enum
-+{
-+  FLIP_NONE = 0,
-+  FLIP_HORIZONTAL = 1,
-+  FLIP_VERTICAL = 2,
-+};
-+
-+#define GST_TYPE_V4L2_FLIP (gst_v4l2_flip_get_type ())
-+static GType
-+gst_v4l2_flip_get_type (void)
-+{
-+  static GType type = 0;
-+
-+  if (!type) {
-+    static GEnumValue vals[] = {
-+      {FLIP_NONE, "No Flip", "none"},
-+      {FLIP_HORIZONTAL, "Horizontal Flip", "horiz"},
-+      {FLIP_VERTICAL, "Vertical Flip", "vert"},
-+      {0, NULL, NULL},
-+    };
-+    type = g_enum_register_static ("GstV4l2SinkFlip", vals);
-+  }
-+  return type;
-+}
-+
- static void
- gst_v4l2sink_interface_init (GstImplementsInterfaceClass * klass)
- {
-@@ -225,7 +254,7 @@ static GstFlowReturn gst_v4l2sink_buffer_alloc (GstBaseSink * bsink,
-     guint64 offset, guint size, GstCaps * caps, GstBuffer ** buf);
- static GstFlowReturn gst_v4l2sink_show_frame (GstBaseSink * bsink,
-     GstBuffer * buf);
--static void gst_v4l2sink_set_rotation (GstV4l2Sink * v4l2sink);
-+static void gst_v4l2sink_sync_rotation (GstV4l2Sink * v4l2sink);
- 
- static void
- gst_v4l2sink_base_init (gpointer g_class)
-@@ -317,6 +346,11 @@ gst_v4l2sink_class_init (GstV4l2SinkClass * klass)
-           "Rotation angle for the image", MIN_ROTATION_ANGLE,
-           MAX_ROTATION_ANGLE, DEFAULT_ROTATION_ANGLE, G_PARAM_READWRITE));
- 
-+  g_object_class_install_property (gobject_class, PROP_FLIP,
-+      g_param_spec_enum ("flip", "Flip State",
-+          "Flip horizontal/vertical",
-+          GST_TYPE_V4L2_FLIP, FLIP_NONE, G_PARAM_READWRITE));
-+
-   basesink_class->get_caps = GST_DEBUG_FUNCPTR (gst_v4l2sink_get_caps);
-   basesink_class->set_caps = GST_DEBUG_FUNCPTR (gst_v4l2sink_set_caps);
-   basesink_class->buffer_alloc = GST_DEBUG_FUNCPTR (gst_v4l2sink_buffer_alloc);
-@@ -348,8 +382,46 @@ gst_v4l2sink_init (GstV4l2Sink * v4l2sink, GstV4l2SinkClass * klass)
-   v4l2sink->crop_fields_set = 0;
-   v4l2sink->state = 0;
-   v4l2sink->rotation = 0;
-+  v4l2sink->flip = FLIP_NONE;
- }
- 
-+static void
-+gst_v4l2sink_sync_flip (GstV4l2Sink * v4l2sink)
-+{
-+  if (GST_V4L2_IS_OPEN (v4l2sink->v4l2object)) {
-+    struct v4l2_control control;
-+    gint fd = v4l2sink->v4l2object->video_fd;
-+
-+    memset (&control, 0x00, sizeof (struct v4l2_control));
-+
-+    switch (v4l2sink->flip) {
-+      case FLIP_VERTICAL:
-+        v4l2sink->rotation = 0;
-+        control.value = 1;
-+        break;
-+      case FLIP_HORIZONTAL:
-+        /* Horizontal Flip = Vertical Flip + 180 rotation */
-+        v4l2sink->rotation = 180;
-+        control.value = 1;
-+        break;
-+      case FLIP_NONE:
-+        /* In the below switch case logic we need to handle FLIP_NONE
-+         * case since the v4l2 driver holds on to the last configured
-+         * flip value even after the device file is closed.
-+         */
-+        control.value = 0;
-+        break;
-+      default:
-+        GST_WARNING_OBJECT (v4l2sink, "Invalid flip property");
-+        control.value = 0;
-+        break;
-+    }
-+
-+    gst_v4l2sink_sync_rotation (v4l2sink);
-+    control.id = V4L2_CID_VFLIP;
-+    g_return_if_fail (v4l2_ioctl (fd, VIDIOC_S_CTRL, &control) >= 0);
-+  }
-+}
- 
- static void
- gst_v4l2sink_dispose (GObject * object)
-@@ -488,7 +560,7 @@ gst_v4l2sink_sync_crop_fields (GstV4l2Sink * v4l2sink)
- }
- 
- static void
--gst_v4l2sink_set_rotation (GstV4l2Sink * v4l2sink)
-+gst_v4l2sink_sync_rotation (GstV4l2Sink * v4l2sink)
- {
-   if (GST_V4L2_IS_OPEN (v4l2sink->v4l2object)) {
-     struct v4l2_control control;
-@@ -559,7 +631,11 @@ gst_v4l2sink_set_property (GObject * object,
-         break;
-       case PROP_ROTATION:
-         v4l2sink->rotation = g_value_get_int (value);
--        gst_v4l2sink_set_rotation (v4l2sink);
-+        gst_v4l2sink_sync_rotation (v4l2sink);
-+        break;
-+      case PROP_FLIP:
-+        v4l2sink->flip = g_value_get_enum (value);
-+        gst_v4l2sink_sync_flip (v4l2sink);
-         break;
-       default:
-         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-@@ -611,6 +687,9 @@ gst_v4l2sink_get_property (GObject * object,
-       case PROP_ROTATION:
-         g_value_set_int (value, v4l2sink->rotation);
-         break;
-+      case PROP_FLIP:
-+        g_value_set_enum (value, v4l2sink->flip);
-+        break;
-       default:
-         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-         break;
-@@ -633,7 +712,8 @@ gst_v4l2sink_change_state (GstElement * element, GstStateChange transition)
-       /* open the device */
-       if (!gst_v4l2_object_start (v4l2sink->v4l2object))
-         return GST_STATE_CHANGE_FAILURE;
--      gst_v4l2sink_set_rotation (v4l2sink);
-+      gst_v4l2sink_sync_rotation (v4l2sink);
-+      gst_v4l2sink_sync_flip (v4l2sink);
-       break;
-     default:
-       break;
-diff --git a/sys/v4l2/gstv4l2sink.h b/sys/v4l2/gstv4l2sink.h
-index 1239621..907973a 100644
---- a/sys/v4l2/gstv4l2sink.h
-+++ b/sys/v4l2/gstv4l2sink.h
-@@ -76,6 +76,7 @@ struct _GstV4l2Sink {
- 
-   guint8 state;
-   gint rotation;
-+  gint flip;
- };
- 
- struct _GstV4l2SinkClass {
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-good/files/gst-0.10.27-0004-v4l2sink-Add-support-for-omap24xxvout-driver.patch b/media-libs/gst-plugins-good/files/gst-0.10.27-0004-v4l2sink-Add-support-for-omap24xxvout-driver.patch
deleted file mode 100644
index 38601f8..0000000
--- a/media-libs/gst-plugins-good/files/gst-0.10.27-0004-v4l2sink-Add-support-for-omap24xxvout-driver.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 39de525898eea073c1f2486b99b56ef25b6df289 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Sun, 4 Apr 2010 06:46:21 -0500
-Subject: [PATCH 04/11] v4l2sink: Add support for omap24xxvout driver
-
----
- sys/v4l2/gstv4l2sink.c |   22 +++++++++++++++++++++-
- 1 files changed, 21 insertions(+), 1 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
-index 6163747..4408428 100644
---- a/sys/v4l2/gstv4l2sink.c
-+++ b/sys/v4l2/gstv4l2sink.c
-@@ -888,6 +888,18 @@ gst_v4l2sink_buffer_alloc (GstBaseSink * bsink, guint64 offset, guint size,
-     /* initialize the buffer pool if not initialized yet (first buffer): */
-     if (G_UNLIKELY (!v4l2sink->pool)) {
- 
-+      gboolean no_pending_streamon = FALSE;
-+      char *driver = (char *) v4l2sink->v4l2object->vcap.driver;
-+
-+      /* the omap24xxvout driver wants us to start streaming before we
-+       * queue the first buffer:
-+       */
-+      if (!strcmp ("omap24xxvout", driver)) {
-+        GST_DEBUG_OBJECT (v4l2sink,
-+            "enabling no_pending_streamon hack for omap24xxvout driver");
-+        no_pending_streamon = TRUE;
-+      }
-+
-       /* set_caps() might not be called yet.. so just to make sure: */
-       if (!gst_v4l2sink_set_caps (bsink, caps)) {
-         return GST_FLOW_ERROR;
-@@ -909,7 +921,14 @@ gst_v4l2sink_buffer_alloc (GstBaseSink * bsink, guint64 offset, guint size,
-       gst_v4l2_xoverlay_prepare_xwindow_id (v4l2sink->v4l2object, TRUE);
- #endif
- 
--      v4l2sink->state = STATE_PENDING_STREAMON;
-+      if (no_pending_streamon) {
-+        if (!gst_v4l2_object_start_streaming (v4l2sink->v4l2object)) {
-+          return GST_FLOW_ERROR;
-+        }
-+        v4l2sink->state = STATE_STREAMING;
-+      } else {
-+        v4l2sink->state = STATE_PENDING_STREAMON;
-+      }
- 
-       GST_INFO_OBJECT (v4l2sink, "outputting buffers via mmap()");
- 
-@@ -996,6 +1015,7 @@ gst_v4l2sink_show_frame (GstBaseSink * bsink, GstBuffer * buf)
-   if (!gst_v4l2_buffer_pool_qbuf (v4l2sink->pool, GST_V4L2_BUFFER (buf))) {
-     return GST_FLOW_ERROR;
-   }
-+
-   if (v4l2sink->state == STATE_PENDING_STREAMON) {
-     if (!gst_v4l2_object_start_streaming (v4l2sink->v4l2object)) {
-       return GST_FLOW_ERROR;
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-good/files/gst-0.10.27-0005-v4l2sink-Add-support-for-omap_vout-driver.patch b/media-libs/gst-plugins-good/files/gst-0.10.27-0005-v4l2sink-Add-support-for-omap_vout-driver.patch
deleted file mode 100644
index 04b67bc..0000000
--- a/media-libs/gst-plugins-good/files/gst-0.10.27-0005-v4l2sink-Add-support-for-omap_vout-driver.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 1fabe36f40e872942c80041225bdbf41db561bea Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Sun, 4 Apr 2010 06:47:55 -0500
-Subject: [PATCH 05/11] v4l2sink: Add support for omap_vout driver
-
----
- sys/v4l2/gstv4l2sink.c |   11 +++++++++++
- 1 files changed, 11 insertions(+), 0 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
-index 4408428..66dda8e 100644
---- a/sys/v4l2/gstv4l2sink.c
-+++ b/sys/v4l2/gstv4l2sink.c
-@@ -900,6 +900,17 @@ gst_v4l2sink_buffer_alloc (GstBaseSink * bsink, guint64 offset, guint size,
-         no_pending_streamon = TRUE;
-       }
- 
-+      /* workaround for bug in omap_vout driver, when we ask for more
-+       * than four buffers:
-+       */
-+      if (!strcmp ("omap_vout", driver)) {
-+        if (v4l2sink->num_buffers > 4) {
-+          v4l2sink->num_buffers = 4;
-+          GST_DEBUG_OBJECT (v4l2sink,
-+              "limiting to 4 buffers to work-around omap_vout driver bug");
-+        }
-+      }
-+
-       /* set_caps() might not be called yet.. so just to make sure: */
-       if (!gst_v4l2sink_set_caps (bsink, caps)) {
-         return GST_FLOW_ERROR;
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-good/files/gst-0.10.27-0006-v4l2-increase-v4l2sink-element-rank.patch b/media-libs/gst-plugins-good/files/gst-0.10.27-0006-v4l2-increase-v4l2sink-element-rank.patch
deleted file mode 100644
index 8f5a21c..0000000
--- a/media-libs/gst-plugins-good/files/gst-0.10.27-0006-v4l2-increase-v4l2sink-element-rank.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 14d6f0fac0875981c418ac6577d23eafb5ff3f01 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Wed, 14 Apr 2010 03:29:20 -0500
-Subject: [PATCH 06/11] v4l2: increase v4l2sink element rank
-
-Increase rank so that it is autoplugged.
----
- sys/v4l2/gstv4l2.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2.c b/sys/v4l2/gstv4l2.c
-index 4a7056f..cba4157 100644
---- a/sys/v4l2/gstv4l2.c
-+++ b/sys/v4l2/gstv4l2.c
-@@ -55,7 +55,7 @@ plugin_init (GstPlugin * plugin)
-   if (!gst_element_register (plugin, "v4l2src", GST_RANK_PRIMARY,
-           GST_TYPE_V4L2SRC) ||
- #ifdef HAVE_EXPERIMENTAL
--      !gst_element_register (plugin, "v4l2sink", GST_RANK_NONE,
-+      !gst_element_register (plugin, "v4l2sink", GST_RANK_PRIMARY,
-           GST_TYPE_V4L2SINK) ||
- #endif
-       /*       !gst_element_register (plugin, "v4l2jpegsrc", */
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-good/files/gst-0.10.27-0007-use-GstQueryBuffers-to-get-buffer-requirements.patch b/media-libs/gst-plugins-good/files/gst-0.10.27-0007-use-GstQueryBuffers-to-get-buffer-requirements.patch
deleted file mode 100644
index 345f9df..0000000
--- a/media-libs/gst-plugins-good/files/gst-0.10.27-0007-use-GstQueryBuffers-to-get-buffer-requirements.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From 15c17ea368079fd5de19868af6d9ffad1cb09f3a Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Wed, 19 May 2010 17:33:46 -0500
-Subject: [PATCH 07/11] use GstQueryBuffers to get buffer requirements
-
----
- sys/v4l2/gstv4l2sink.c |   40 ++++++++++++++++++++++++++++++++++++++++
- sys/v4l2/gstv4l2sink.h |    1 +
- 2 files changed, 41 insertions(+), 0 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
-index 66dda8e..12323f7 100644
---- a/sys/v4l2/gstv4l2sink.c
-+++ b/sys/v4l2/gstv4l2sink.c
-@@ -373,6 +373,7 @@ gst_v4l2sink_init (GstV4l2Sink * v4l2sink, GstV4l2SinkClass * klass)
- 
-   /* number of buffers requested */
-   v4l2sink->num_buffers = PROP_DEF_QUEUE_SIZE;
-+  v4l2sink->num_buffers_can_change = TRUE;
-   v4l2sink->min_queued_bufs = PROP_DEF_MIN_QUEUED_BUFS;
- 
-   v4l2sink->probed_caps = NULL;
-@@ -808,6 +809,7 @@ static gboolean
- gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
- {
-   GstV4l2Sink *v4l2sink = GST_V4L2SINK (bsink);
-+  GstQuery *query;
-   gint w = 0, h = 0;
-   gboolean interlaced;
-   struct v4l2_fmtdesc *format;
-@@ -855,6 +857,39 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
-     return FALSE;
-   }
- 
-+  /* query to find if anyone upstream using these buffers has any
-+   * minimum requirements:
-+   */
-+  query = gst_query_new_buffers (caps);
-+  if (gst_element_query (GST_ELEMENT (v4l2sink), query)) {
-+    gint min_buffers, min_width, min_height;
-+
-+    gst_query_parse_buffers_count (query, &min_buffers);
-+
-+    /* XXX need to account for some buffers used by queue, etc.. probably
-+     * queue should handle query, pass on to sink pad, and then add some
-+     * number of buffers to the min, so this value is dynamic depending
-+     * on the pipeline?
-+     */
-+    if (min_buffers != -1) {
-+      min_buffers += 3 + v4l2sink->min_queued_bufs;
-+    }
-+
-+    if (min_buffers > v4l2sink->num_buffers) {
-+      v4l2sink->num_buffers_can_change = FALSE;
-+      v4l2sink->num_buffers = min_buffers;
-+    }
-+
-+    gst_query_parse_buffers_dimensions (query, &min_width, &min_height);
-+    if (min_width > w) {
-+      w = min_width;
-+    }
-+    if (min_height > h) {
-+      h = min_height;
-+    }
-+  }
-+  gst_query_unref (query);
-+
-   if (!gst_v4l2_object_set_format (v4l2sink->v4l2object, format->pixelformat,
-           w, h, interlaced)) {
-     /* error already posted */
-@@ -944,6 +979,11 @@ gst_v4l2sink_buffer_alloc (GstBaseSink * bsink, guint64 offset, guint size,
-       GST_INFO_OBJECT (v4l2sink, "outputting buffers via mmap()");
- 
-       if (v4l2sink->num_buffers != v4l2sink->pool->buffer_count) {
-+        if (!v4l2sink->num_buffers_can_change) {
-+          GST_WARNING_OBJECT (v4l2sink,
-+              "I can't handle a differing number of buffers!!!!");
-+          return GST_FLOW_ERROR;
-+        }
-         v4l2sink->num_buffers = v4l2sink->pool->buffer_count;
-         g_object_notify (G_OBJECT (v4l2sink), "queue-size");
-       }
-diff --git a/sys/v4l2/gstv4l2sink.h b/sys/v4l2/gstv4l2sink.h
-index 907973a..7649fa1 100644
---- a/sys/v4l2/gstv4l2sink.h
-+++ b/sys/v4l2/gstv4l2sink.h
-@@ -58,6 +58,7 @@ struct _GstV4l2Sink {
-   GstCaps *current_caps;        /* the current negotiated caps */
-   GstV4l2BufferPool *pool;
-   guint32 num_buffers;
-+  gboolean num_buffers_can_change;
-   guint32 min_queued_bufs;
- 
-   gint video_width, video_height;      /* original (unscaled) video w/h */
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-good/files/gst-0.10.27-0008-add-rowstride-support.patch b/media-libs/gst-plugins-good/files/gst-0.10.27-0008-add-rowstride-support.patch
deleted file mode 100644
index f4ff893..0000000
--- a/media-libs/gst-plugins-good/files/gst-0.10.27-0008-add-rowstride-support.patch
+++ /dev/null
@@ -1,572 +0,0 @@
-From a86d0326df31103c2ee38ee1e0c62802a758ef13 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Fri, 21 May 2010 15:21:32 -0500
-Subject: [PATCH 08/11] add rowstride support
-
----
- sys/v4l2/gstv4l2object.c |  141 +++++++++++++++++++++++++++++++++++++---------
- sys/v4l2/gstv4l2object.h |    6 +-
- sys/v4l2/gstv4l2sink.c   |   61 +++++++++++++-------
- sys/v4l2/gstv4l2src.c    |   28 +++++----
- 4 files changed, 174 insertions(+), 62 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2object.c b/sys/v4l2/gstv4l2object.c
-index f5672b5..5e34456 100644
---- a/sys/v4l2/gstv4l2object.c
-+++ b/sys/v4l2/gstv4l2object.c
-@@ -1064,16 +1064,23 @@ gst_v4l2_object_get_format_list (GstV4l2Object * v4l2object)
-   return v4l2object->formats;
- }
- 
--
--GstStructure *
--gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc)
-+/*
-+ * gst_v4l2_object_v4l2fourcc_to_structures:
-+ * @fourcc: requested format
-+ * @structures: an array of at least MAX_STRUCTS_PER_FOURCC to return the
-+ *   results in
-+ *
-+ * Returns the number of structures returned via structures
-+ */
-+gint
-+gst_v4l2_object_v4l2fourcc_to_structures (guint32 fourcc,
-+    GstStructure ** structures)
- {
--  GstStructure *structure = NULL;
--
-+  gint count = 0;
-   switch (fourcc) {
-     case V4L2_PIX_FMT_MJPEG:   /* Motion-JPEG */
-     case V4L2_PIX_FMT_JPEG:    /* JFIF JPEG */
--      structure = gst_structure_new ("image/jpeg", NULL);
-+      structures[count++] = gst_structure_new ("image/jpeg", NULL);
-       break;
-     case V4L2_PIX_FMT_RGB332:
-     case V4L2_PIX_FMT_RGB555:
-@@ -1151,17 +1158,25 @@ gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc)
-           g_assert_not_reached ();
-           break;
-       }
--      structure = gst_structure_new ("video/x-raw-rgb",
-+      structures[count++] = gst_structure_new ("video/x-raw-rgb",
-           "bpp", G_TYPE_INT, bpp,
-           "depth", G_TYPE_INT, depth,
-           "red_mask", G_TYPE_INT, r_mask,
-           "green_mask", G_TYPE_INT, g_mask,
-           "blue_mask", G_TYPE_INT, b_mask,
-           "endianness", G_TYPE_INT, endianness, NULL);
-+      structures[count++] = gst_structure_new ("video/x-raw-rgb-strided",
-+          "bpp", G_TYPE_INT, bpp,
-+          "depth", G_TYPE_INT, depth,
-+          "red_mask", G_TYPE_INT, r_mask,
-+          "green_mask", G_TYPE_INT, g_mask,
-+          "blue_mask", G_TYPE_INT, b_mask,
-+          "endianness", G_TYPE_INT, endianness,
-+          "rowstride", GST_TYPE_INT_RANGE, 1, G_MAXINT, NULL);
-       break;
-     }
-     case V4L2_PIX_FMT_GREY:    /*  8  Greyscale     */
--      structure = gst_structure_new ("video/x-raw-gray",
-+      structures[count++] = gst_structure_new ("video/x-raw-gray",
-           "bpp", G_TYPE_INT, 8, NULL);
-       break;
-     case V4L2_PIX_FMT_YYUV:    /* 16  YUV 4:2:2     */
-@@ -1227,38 +1242,41 @@ gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc)
-           g_assert_not_reached ();
-           break;
-       }
--      structure = gst_structure_new ("video/x-raw-yuv",
-+      structures[count++] = gst_structure_new ("video/x-raw-yuv",
-           "format", GST_TYPE_FOURCC, fcc, NULL);
-+      structures[count++] = gst_structure_new ("video/x-raw-yuv-strided",
-+          "format", GST_TYPE_FOURCC, fcc,
-+          "rowstride", GST_TYPE_INT_RANGE, 1, G_MAXINT, NULL);
-       break;
-     }
-     case V4L2_PIX_FMT_DV:
--      structure =
-+      structures[count++] =
-           gst_structure_new ("video/x-dv", "systemstream", G_TYPE_BOOLEAN, TRUE,
-           NULL);
-       break;
-     case V4L2_PIX_FMT_MPEG:    /* MPEG          */
--      structure = gst_structure_new ("video/mpegts", NULL);
-+      structures[count++] = gst_structure_new ("video/mpegts", NULL);
-       break;
-     case V4L2_PIX_FMT_WNVA:    /* Winnov hw compres */
-       break;
- #ifdef V4L2_PIX_FMT_SBGGR8
-     case V4L2_PIX_FMT_SBGGR8:
--      structure = gst_structure_new ("video/x-raw-bayer", NULL);
-+      structures[count++] = gst_structure_new ("video/x-raw-bayer", NULL);
-       break;
- #endif
- #ifdef V4L2_PIX_FMT_SN9C10X
-     case V4L2_PIX_FMT_SN9C10X:
--      structure = gst_structure_new ("video/x-sonix", NULL);
-+      structures[count++] = gst_structure_new ("video/x-sonix", NULL);
-       break;
- #endif
- #ifdef V4L2_PIX_FMT_PWC1
-     case V4L2_PIX_FMT_PWC1:
--      structure = gst_structure_new ("video/x-pwc1", NULL);
-+      structures[count++] = gst_structure_new ("video/x-pwc1", NULL);
-       break;
- #endif
- #ifdef V4L2_PIX_FMT_PWC2
-     case V4L2_PIX_FMT_PWC2:
--      structure = gst_structure_new ("video/x-pwc2", NULL);
-+      structures[count++] = gst_structure_new ("video/x-pwc2", NULL);
-       break;
- #endif
-     default:
-@@ -1267,7 +1285,7 @@ gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc)
-       break;
-   }
- 
--  return structure;
-+  return count;
- }
- 
- 
-@@ -1278,22 +1296,23 @@ gst_v4l2_object_get_all_caps (void)
-   static GstCaps *caps = NULL;
- 
-   if (caps == NULL) {
--    GstStructure *structure;
--
-     guint i;
- 
-     caps = gst_caps_new_empty ();
-     for (i = 0; i < GST_V4L2_FORMAT_COUNT; i++) {
--      structure =
--          gst_v4l2_object_v4l2fourcc_to_structure (gst_v4l2_formats[i].format);
--      if (structure) {
-+      GstStructure *structures[MAX_STRUCTS_PER_FOURCC];
-+      gint count, j;
-+      count =
-+          gst_v4l2_object_v4l2fourcc_to_structures (gst_v4l2_formats[i].format,
-+          structures);
-+      for (j = 0; j < count; j++) {
-         if (gst_v4l2_formats[i].dimensions) {
--          gst_structure_set (structure,
-+          gst_structure_set (structures[j],
-               "width", GST_TYPE_INT_RANGE, 1, GST_V4L2_MAX_SIZE,
-               "height", GST_TYPE_INT_RANGE, 1, GST_V4L2_MAX_SIZE,
-               "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, 100, 1, NULL);
-         }
--        gst_caps_append_structure (caps, structure);
-+        gst_caps_append_structure (caps, structures[j]);
-       }
-     }
-   }
-@@ -1306,12 +1325,14 @@ gst_v4l2_object_get_all_caps (void)
-  * @caps: given input caps
-  * @format: location for the v4l format
-  * @w/@h: location for width and height
-+ * @rs: required rowstride in bytes, or 0 if natural stride (based on format
-+ *   and width) or not-applicable
-  * @fps_n/@fps_d: location for framerate
-  * @size: location for expected size of the frame or 0 if unknown
-  */
- gboolean
- gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps,
--    struct v4l2_fmtdesc ** format, gint * w, gint * h,
-+    struct v4l2_fmtdesc ** format, gint * w, gint * h, gint * rs,
-     gboolean * interlaced, guint * fps_n, guint * fps_d, guint * size)
- {
-   GstStructure *structure;
-@@ -1319,10 +1340,12 @@ gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps,
-   guint32 fourcc;
-   const gchar *mimetype;
-   guint outsize;
-+  struct v4l2_format fmt = { 0, };
- 
-   /* default unknown values */
-   fourcc = 0;
-   outsize = 0;
-+  *rs = 0;
- 
-   structure = gst_caps_get_structure (caps, 0);
- 
-@@ -1351,61 +1374,73 @@ gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps,
-   *fps_n = gst_value_get_fraction_numerator (framerate);
-   *fps_d = gst_value_get_fraction_denominator (framerate);
- 
--  if (!strcmp (mimetype, "video/x-raw-yuv")) {
-+  if (!strcmp (mimetype, "video/x-raw-yuv") ||
-+      !strcmp (mimetype, "video/x-raw-yuv-strided")) {
-     gst_structure_get_fourcc (structure, "format", &fourcc);
- 
-     switch (fourcc) {
-       case GST_MAKE_FOURCC ('I', '4', '2', '0'):
-       case GST_MAKE_FOURCC ('I', 'Y', 'U', 'V'):
-         fourcc = V4L2_PIX_FMT_YUV420;
-+        *rs = GST_ROUND_UP_4 (*w);
-         outsize = GST_ROUND_UP_4 (*w) * GST_ROUND_UP_2 (*h);
-         outsize += 2 * ((GST_ROUND_UP_8 (*w) / 2) * (GST_ROUND_UP_2 (*h) / 2));
-         break;
-       case GST_MAKE_FOURCC ('Y', 'U', 'Y', '2'):
-         fourcc = V4L2_PIX_FMT_YUYV;
-+        *rs = GST_ROUND_UP_2 (*w) * 2;
-         outsize = (GST_ROUND_UP_2 (*w) * 2) * *h;
-         break;
-       case GST_MAKE_FOURCC ('Y', '4', '1', 'P'):
-         fourcc = V4L2_PIX_FMT_Y41P;
-+        *rs = GST_ROUND_UP_2 (*w) * 2;
-         outsize = (GST_ROUND_UP_2 (*w) * 2) * *h;
-         break;
-       case GST_MAKE_FOURCC ('U', 'Y', 'V', 'Y'):
-         fourcc = V4L2_PIX_FMT_UYVY;
-+        *rs = GST_ROUND_UP_2 (*w) * 2;
-         outsize = (GST_ROUND_UP_2 (*w) * 2) * *h;
-         break;
-       case GST_MAKE_FOURCC ('Y', 'V', '1', '2'):
-         fourcc = V4L2_PIX_FMT_YVU420;
-+        *rs = GST_ROUND_UP_4 (*w);
-         outsize = GST_ROUND_UP_4 (*w) * GST_ROUND_UP_2 (*h);
-         outsize += 2 * ((GST_ROUND_UP_8 (*w) / 2) * (GST_ROUND_UP_2 (*h) / 2));
-         break;
-       case GST_MAKE_FOURCC ('Y', '4', '1', 'B'):
-         fourcc = V4L2_PIX_FMT_YUV411P;
-+        *rs = GST_ROUND_UP_4 (*w);
-         outsize = GST_ROUND_UP_4 (*w) * *h;
-         outsize += 2 * ((GST_ROUND_UP_8 (*w) / 4) * *h);
-         break;
-       case GST_MAKE_FOURCC ('Y', '4', '2', 'B'):
-         fourcc = V4L2_PIX_FMT_YUV422P;
-+        *rs = GST_ROUND_UP_4 (*w);
-         outsize = GST_ROUND_UP_4 (*w) * *h;
-         outsize += 2 * ((GST_ROUND_UP_8 (*w) / 2) * *h);
-         break;
-       case GST_MAKE_FOURCC ('N', 'V', '1', '2'):
-         fourcc = V4L2_PIX_FMT_NV12;
-+        *rs = GST_ROUND_UP_4 (*w);
-         outsize = GST_ROUND_UP_4 (*w) * GST_ROUND_UP_2 (*h);
-         outsize += (GST_ROUND_UP_4 (*w) * *h) / 2;
-         break;
-       case GST_MAKE_FOURCC ('N', 'V', '2', '1'):
-         fourcc = V4L2_PIX_FMT_NV21;
-+        *rs = GST_ROUND_UP_4 (*w);
-         outsize = GST_ROUND_UP_4 (*w) * GST_ROUND_UP_2 (*h);
-         outsize += (GST_ROUND_UP_4 (*w) * *h) / 2;
-         break;
- #ifdef V4L2_PIX_FMT_YVYU
-       case GST_MAKE_FOURCC ('Y', 'V', 'Y', 'U'):
-         fourcc = V4L2_PIX_FMT_YVYU;
-+        *rs = GST_ROUND_UP_2 (*w) * 2;
-         outsize = (GST_ROUND_UP_2 (*w) * 2) * *h;
-         break;
- #endif
-     }
--  } else if (!strcmp (mimetype, "video/x-raw-rgb")) {
-+  } else if (!strcmp (mimetype, "video/x-raw-rgb") ||
-+      !strcmp (mimetype, "video/x-raw-rgb-strided")) {
-     gint bpp, endianness, r_mask;
- 
-     gst_structure_get_int (structure, "bpp", &bpp);
-@@ -1415,20 +1450,25 @@ gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps,
-     switch (bpp) {
-       case 8:
-         fourcc = V4L2_PIX_FMT_RGB332;
-+        *rs = *w;
-         break;
-       case 15:
-         fourcc = (endianness == G_LITTLE_ENDIAN) ?
-             V4L2_PIX_FMT_RGB555 : V4L2_PIX_FMT_RGB555X;
-+        *rs = 2 * *w;
-         break;
-       case 16:
-         fourcc = (endianness == G_LITTLE_ENDIAN) ?
-             V4L2_PIX_FMT_RGB565 : V4L2_PIX_FMT_RGB565X;
-+        *rs = 2 * *w;
-         break;
-       case 24:
-         fourcc = (r_mask == 0xFF) ? V4L2_PIX_FMT_BGR24 : V4L2_PIX_FMT_RGB24;
-+        *rs = 3 * *w;
-         break;
-       case 32:
-         fourcc = (r_mask == 0xFF) ? V4L2_PIX_FMT_BGR32 : V4L2_PIX_FMT_RGB32;
-+        *rs = 4 * *w;
-         break;
-     }
-   } else if (strcmp (mimetype, "video/x-dv") == 0) {
-@@ -1458,6 +1498,25 @@ gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps,
-   if (fourcc == 0)
-     return FALSE;
- 
-+  /* check what stride the driver supports */
-+  fmt.type = v4l2object->type;
-+  fmt.fmt.pix.width = *w;
-+  fmt.fmt.pix.height = *h;
-+  fmt.fmt.pix.pixelformat = fourcc;
-+  fmt.fmt.pix.field = V4L2_FIELD_ANY;
-+  fmt.fmt.pix.bytesperline = *rs;
-+  if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_TRY_FMT, &fmt) >= 0) {
-+    if (fmt.fmt.pix.bytesperline == *rs) {
-+      *rs = 0;
-+    } else {
-+      *rs = fmt.fmt.pix.bytesperline;
-+    }
-+    GST_INFO_OBJECT (v4l2object->element, "rowstride: %d", *rs);
-+  } else {
-+    GST_WARNING_OBJECT (v4l2object->element,
-+        "VIDIOC_TRY_FMT should not fail.. driver problem?");
-+  }
-+
- done:
-   *format = gst_v4l2_object_get_format_from_fourcc (v4l2object, fourcc);
-   *size = outsize;
-@@ -1465,6 +1524,36 @@ done:
-   return TRUE;
- }
- 
-+/* Update caps to reflect rowstride that has been requested by the
-+ * driver
-+ */
-+GstCaps *
-+gst_v4l2_object_update_rowstride (GstV4l2Object * v4l2object,
-+    GstCaps * caps, gint rs)
-+{
-+  GstStructure *structure;
-+  const gchar *mimetype;
-+
-+  caps = gst_caps_make_writable (caps);
-+
-+  structure = gst_caps_get_structure (caps, 0);
-+  mimetype = gst_structure_get_name (structure);
-+
-+  if (!strcmp (mimetype, "video/x-raw-yuv")) {
-+    mimetype = "video/x-raw-yuv-strided";
-+    gst_structure_set_name (structure, mimetype);
-+  } else if (!strcmp (mimetype, "video/x-raw-rgb")) {
-+    mimetype = "video/x-raw-rgb-strided";
-+    gst_structure_set_name (structure, mimetype);
-+  }
-+
-+  if (!strcmp (mimetype, "video/x-raw-yuv-strided") ||
-+      !strcmp (mimetype, "video/x-raw-rgb-strided")) {
-+    gst_structure_set (structure, "rowstride", G_TYPE_INT, rs, NULL);
-+  }
-+
-+  return caps;
-+}
- 
- static gboolean
- gst_v4l2_object_get_nearest_size (GstV4l2Object * v4l2object,
-diff --git a/sys/v4l2/gstv4l2object.h b/sys/v4l2/gstv4l2object.h
-index a0dd41c..228e7c7 100644
---- a/sys/v4l2/gstv4l2object.h
-+++ b/sys/v4l2/gstv4l2object.h
-@@ -179,15 +179,17 @@ GstCaps*      gst_v4l2_object_probe_caps_for_format (GstV4l2Object *v4l2object,
-                                              const GstStructure * template);
- 
- gboolean      gst_v4l2_object_get_caps_info (GstV4l2Object *v4l2object, GstCaps *caps,
--                                             struct v4l2_fmtdesc **format, gint *w, gint *h,
-+                                             struct v4l2_fmtdesc **format, gint *w, gint *h, gint *rs,
-                                              gboolean * interlaced, guint *fps_n, guint *fps_d, guint *size);
- 
-+GstCaps *     gst_v4l2_object_update_rowstride (GstV4l2Object * v4l2object, GstCaps * caps, gint rs);
- 
- GSList*       gst_v4l2_object_get_format_list  (GstV4l2Object *v4l2object);
- 
- GstCaps*      gst_v4l2_object_get_all_caps (void);
- 
--GstStructure* gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc);
-+#define MAX_STRUCTS_PER_FOURCC 2
-+gint          gst_v4l2_object_v4l2fourcc_to_structures (guint32 fourcc, GstStructure ** structures);
- 
- gboolean      gst_v4l2_object_set_format (GstV4l2Object *v4l2object, guint32 pixelformat, guint32 width, guint32 height, gboolean interlaced);
- 
-diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
-index 12323f7..a1f78cf 100644
---- a/sys/v4l2/gstv4l2sink.c
-+++ b/sys/v4l2/gstv4l2sink.c
-@@ -776,24 +776,23 @@ gst_v4l2sink_get_caps (GstBaseSink * bsink)
-   for (walk = v4l2sink->v4l2object->formats; walk; walk = walk->next) {
-     struct v4l2_fmtdesc *format;
- 
--    GstStructure *template;
-+    GstStructure *templates[MAX_STRUCTS_PER_FOURCC];
-+    gint count, i;
- 
-     format = (struct v4l2_fmtdesc *) walk->data;
- 
--    template = gst_v4l2_object_v4l2fourcc_to_structure (format->pixelformat);
-+    count = gst_v4l2_object_v4l2fourcc_to_structures (format->pixelformat,
-+        templates);
- 
--    if (template) {
-+    for (i = 0; i < count; i++) {
-       GstCaps *tmp;
- 
--      tmp =
--          gst_v4l2_object_probe_caps_for_format (v4l2sink->v4l2object,
--          format->pixelformat, template);
-+      tmp = gst_v4l2_object_probe_caps_for_format (v4l2sink->v4l2object,
-+          format->pixelformat, templates[i]);
-       if (tmp)
-         gst_caps_append (ret, tmp);
- 
--      gst_structure_free (template);
--    } else {
--      GST_DEBUG_OBJECT (v4l2sink, "unknown format %u", format->pixelformat);
-+      gst_structure_free (templates[i]);
-     }
-   }
- 
-@@ -810,7 +809,7 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
- {
-   GstV4l2Sink *v4l2sink = GST_V4L2SINK (bsink);
-   GstQuery *query;
--  gint w = 0, h = 0;
-+  gint w = 0, h = 0, rs = 0;
-   gboolean interlaced;
-   struct v4l2_fmtdesc *format;
-   guint fps_n, fps_d;
-@@ -823,11 +822,36 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
-     return FALSE;
-   }
- 
-+  /* we want our own v4l2 type of fourcc codes */
-+  if (!gst_v4l2_object_get_caps_info (v4l2sink->v4l2object, caps,
-+          &format, &w, &h, &rs, &interlaced, &fps_n, &fps_d, &size)) {
-+    GST_DEBUG_OBJECT (v4l2sink, "can't get capture format from caps %p", caps);
-+    return FALSE;
-+  }
-+
-+  if (!format) {
-+    GST_DEBUG_OBJECT (v4l2sink, "unrecognized caps!!");
-+    return FALSE;
-+  }
-+
-+  /* we need to make our own ref before we potentially update the
-+   * caps, to avoid that we release a ref that is not owned by us
-+   * when we make the caps writable
-+   */
-+  caps = gst_caps_ref (caps);
-+
-+  /* if necessary, update caps for rowstride */
-+  if (rs) {
-+    caps = gst_v4l2_object_update_rowstride (v4l2sink->v4l2object, caps, rs);
-+    GST_DEBUG_OBJECT (v4l2sink, "updated caps: %" GST_PTR_FORMAT, caps);
-+  }
-+
-   if (v4l2sink->current_caps) {
-     GST_DEBUG_OBJECT (v4l2sink, "already have caps set.. are they equal?");
-     LOG_CAPS (v4l2sink, v4l2sink->current_caps);
-     if (gst_caps_is_equal (v4l2sink->current_caps, caps)) {
-       GST_DEBUG_OBJECT (v4l2sink, "yes they are!");
-+      gst_caps_unref (caps);
-       return TRUE;
-     }
-     GST_DEBUG_OBJECT (v4l2sink, "no they aren't!");
-@@ -842,18 +866,7 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
-      *
-      */
-     GST_DEBUG_OBJECT (v4l2sink, "warning, changing caps not supported yet");
--    return FALSE;
--  }
--
--  /* we want our own v4l2 type of fourcc codes */
--  if (!gst_v4l2_object_get_caps_info (v4l2sink->v4l2object, caps,
--          &format, &w, &h, &interlaced, &fps_n, &fps_d, &size)) {
--    GST_DEBUG_OBJECT (v4l2sink, "can't get capture format from caps %p", caps);
--    return FALSE;
--  }
--
--  if (!format) {
--    GST_DEBUG_OBJECT (v4l2sink, "unrecognized caps!!");
-+    gst_caps_unref (caps);
-     return FALSE;
-   }
- 
-@@ -893,6 +906,7 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
-   if (!gst_v4l2_object_set_format (v4l2sink->v4l2object, format->pixelformat,
-           w, h, interlaced)) {
-     /* error already posted */
-+    gst_caps_unref (caps);
-     return FALSE;
-   }
- 
-@@ -951,6 +965,9 @@ gst_v4l2sink_buffer_alloc (GstBaseSink * bsink, guint64 offset, guint size,
-         return GST_FLOW_ERROR;
-       }
- 
-+      /* caps may have changed in _set_caps() if we need rowstride */
-+      caps = v4l2sink->current_caps;
-+
-       GST_V4L2_CHECK_OPEN (v4l2sink->v4l2object);
- 
-       if (!(v4l2sink->pool = gst_v4l2_buffer_pool_new (GST_ELEMENT (v4l2sink),
-diff --git a/sys/v4l2/gstv4l2src.c b/sys/v4l2/gstv4l2src.c
-index 4a37d35..a9a7787 100644
---- a/sys/v4l2/gstv4l2src.c
-+++ b/sys/v4l2/gstv4l2src.c
-@@ -581,24 +581,23 @@ gst_v4l2src_get_caps (GstBaseSrc * src)
-   for (walk = v4l2src->v4l2object->formats; walk; walk = walk->next) {
-     struct v4l2_fmtdesc *format;
- 
--    GstStructure *template;
-+    GstStructure *templates[MAX_STRUCTS_PER_FOURCC];
-+    gint count, i;
- 
-     format = (struct v4l2_fmtdesc *) walk->data;
- 
--    template = gst_v4l2_object_v4l2fourcc_to_structure (format->pixelformat);
-+    count = gst_v4l2_object_v4l2fourcc_to_structures (format->pixelformat,
-+        templates);
- 
--    if (template) {
-+    for (i = 0; i < count; i++) {
-       GstCaps *tmp;
- 
--      tmp =
--          gst_v4l2_object_probe_caps_for_format (v4l2src->v4l2object,
--          format->pixelformat, template);
-+      tmp = gst_v4l2_object_probe_caps_for_format (v4l2src->v4l2object,
-+          format->pixelformat, templates[i]);
-       if (tmp)
-         gst_caps_append (ret, tmp);
- 
--      gst_structure_free (template);
--    } else {
--      GST_DEBUG_OBJECT (v4l2src, "unknown format %u", format->pixelformat);
-+      gst_structure_free (templates[i]);
-     }
-   }
- 
-@@ -613,7 +612,7 @@ static gboolean
- gst_v4l2src_set_caps (GstBaseSrc * src, GstCaps * caps)
- {
-   GstV4l2Src *v4l2src;
--  gint w = 0, h = 0;
-+  gint w = 0, h = 0, rs = 0;
-   gboolean interlaced;
-   struct v4l2_fmtdesc *format;
-   guint fps_n, fps_d;
-@@ -635,13 +634,18 @@ gst_v4l2src_set_caps (GstBaseSrc * src, GstCaps * caps)
-   }
- 
-   /* we want our own v4l2 type of fourcc codes */
--  if (!gst_v4l2_object_get_caps_info (v4l2src->v4l2object, caps, &format, &w,
--          &h, &interlaced, &fps_n, &fps_d, &size)) {
-+  if (!gst_v4l2_object_get_caps_info (v4l2src->v4l2object, caps, &format,
-+      &w, &h, &rs, &interlaced, &fps_n, &fps_d, &size)) {
-     GST_INFO_OBJECT (v4l2src,
-         "can't get capture format from caps %" GST_PTR_FORMAT, caps);
-     return FALSE;
-   }
- 
-+  /* if necessary, update caps for rowstride */
-+  if (rs) {
-+    caps = gst_v4l2_object_update_rowstride (v4l2src->v4l2object, caps, rs);
-+  }
-+
-   GST_DEBUG_OBJECT (v4l2src, "trying to set_capture %dx%d at %d/%d fps, "
-       "format %s", w, h, fps_n, fps_d, format->description);
- 
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-good/files/gst-0.10.27-0009-use-GstEventCrop-to-get-crop-info.patch b/media-libs/gst-plugins-good/files/gst-0.10.27-0009-use-GstEventCrop-to-get-crop-info.patch
deleted file mode 100644
index c5d3197..0000000
--- a/media-libs/gst-plugins-good/files/gst-0.10.27-0009-use-GstEventCrop-to-get-crop-info.patch
+++ /dev/null
@@ -1,119 +0,0 @@
-From e7497b9f0c6c88b764d8f95e01197e2a2ea0dd95 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Tue, 25 May 2010 11:02:45 -0500
-Subject: [PATCH 09/11] use GstEventCrop to get crop info
-
----
- sys/v4l2/gstv4l2sink.c |   63 +++++++++++++++++++++++++++++++++++++++++++++++-
- 1 files changed, 62 insertions(+), 1 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
-index a1f78cf..feafe7a 100644
---- a/sys/v4l2/gstv4l2sink.c
-+++ b/sys/v4l2/gstv4l2sink.c
-@@ -252,6 +252,7 @@ static GstCaps *gst_v4l2sink_get_caps (GstBaseSink * bsink);
- static gboolean gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps);
- static GstFlowReturn gst_v4l2sink_buffer_alloc (GstBaseSink * bsink,
-     guint64 offset, guint size, GstCaps * caps, GstBuffer ** buf);
-+static gboolean gst_v4l2sink_event (GstBaseSink * bsink, GstEvent * event);
- static GstFlowReturn gst_v4l2sink_show_frame (GstBaseSink * bsink,
-     GstBuffer * buf);
- static void gst_v4l2sink_sync_rotation (GstV4l2Sink * v4l2sink);
-@@ -354,6 +355,7 @@ gst_v4l2sink_class_init (GstV4l2SinkClass * klass)
-   basesink_class->get_caps = GST_DEBUG_FUNCPTR (gst_v4l2sink_get_caps);
-   basesink_class->set_caps = GST_DEBUG_FUNCPTR (gst_v4l2sink_set_caps);
-   basesink_class->buffer_alloc = GST_DEBUG_FUNCPTR (gst_v4l2sink_buffer_alloc);
-+  basesink_class->event = GST_DEBUG_FUNCPTR (gst_v4l2sink_event);
-   basesink_class->render = GST_DEBUG_FUNCPTR (gst_v4l2sink_show_frame);
- }
- 
-@@ -895,11 +897,22 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
- 
-     gst_query_parse_buffers_dimensions (query, &min_width, &min_height);
-     if (min_width > w) {
-+      v4l2sink->crop.width = w;
-+      v4l2sink->crop_fields_set |= RECT_WIDTH_SET;
-       w = min_width;
-     }
-     if (min_height > h) {
-+      v4l2sink->crop.height = h;
-+      v4l2sink->crop_fields_set |= RECT_HEIGHT_SET;
-       h = min_height;
-     }
-+
-+    /* clear top/left crop values.. otherwise by default display will try
-+     * to center, rather than scale, the image if it is too big to fit on
-+     * display
-+     */
-+    v4l2sink->crop.top = v4l2sink->crop.left = 0;
-+    v4l2sink->crop_fields_set |= RECT_TOP_SET | RECT_LEFT_SET;
-   }
-   gst_query_unref (query);
- 
-@@ -919,7 +932,13 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
-   GST_VIDEO_SINK_WIDTH (v4l2sink) = w;
-   GST_VIDEO_SINK_HEIGHT (v4l2sink) = h;
- 
--  v4l2sink->current_caps = gst_caps_ref (caps);
-+  /* this needs to go after gst_v4l2_object_set_format() to ensure driver
-+   * has proper width/height (so we don't confuse it's error checking by
-+   * setting a crop larger than the picture size)
-+   */
-+  gst_v4l2sink_sync_crop_fields (v4l2sink);
-+
-+  v4l2sink->current_caps = caps;
- 
-   return TRUE;
- }
-@@ -1023,6 +1042,48 @@ gst_v4l2sink_buffer_alloc (GstBaseSink * bsink, guint64 offset, guint size,
-   }
- }
- 
-+/* called to handle events */
-+static gboolean
-+gst_v4l2sink_event (GstBaseSink * bsink, GstEvent * event)
-+{
-+  GstV4l2Sink *v4l2sink = GST_V4L2SINK (bsink);
-+  GstEventType type = GST_EVENT_TYPE (event);
-+
-+  GST_DEBUG_OBJECT (v4l2sink, "event %" GST_PTR_FORMAT, event);
-+
-+  switch (type) {
-+    case GST_EVENT_CROP:{
-+      gint top, left, width, height;
-+      gst_event_parse_crop (event, &top, &left, &width, &height);
-+      if (top >= 0) {
-+        v4l2sink->crop.top = top;
-+        v4l2sink->crop_fields_set |= RECT_TOP_SET;
-+      }
-+      if (left >= 0) {
-+        v4l2sink->crop.left = left;
-+        v4l2sink->crop_fields_set |= RECT_LEFT_SET;
-+      }
-+      if (width >= 0) {
-+        v4l2sink->crop.width = width;
-+        v4l2sink->crop_fields_set |= RECT_WIDTH_SET;
-+      }
-+      if (height >= 0) {
-+        v4l2sink->crop.height = height;
-+        v4l2sink->crop_fields_set |= RECT_HEIGHT_SET;
-+      }
-+      gst_v4l2sink_sync_crop_fields (v4l2sink);
-+      return TRUE;
-+    }
-+    default:{
-+      if (GST_BASE_SINK_CLASS (parent_class)->event) {
-+        return GST_BASE_SINK_CLASS (parent_class)->event (bsink, event);
-+      } else {
-+        return TRUE;
-+      }
-+    }
-+  }
-+}
-+
- /* called after A/V sync to render frame */
- static GstFlowReturn
- gst_v4l2sink_show_frame (GstBaseSink * bsink, GstBuffer * buf)
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-good/files/gst-0.10.27-0010-v4l2-prefer-NV12.patch b/media-libs/gst-plugins-good/files/gst-0.10.27-0010-v4l2-prefer-NV12.patch
deleted file mode 100644
index 301056a..0000000
--- a/media-libs/gst-plugins-good/files/gst-0.10.27-0010-v4l2-prefer-NV12.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 107c18830342c69229857f968dff33071d07992d Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Tue, 14 Sep 2010 07:44:01 -0500
-Subject: [PATCH 10/11] v4l2: prefer NV12
-
-All else being equal, the buffer sizes are smaller compared to a 422 format
-like YUY2/UYVY..  although ideally rank would come from driver.
----
- sys/v4l2/gstv4l2object.c |    3 +++
- 1 files changed, 3 insertions(+), 0 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2object.c b/sys/v4l2/gstv4l2object.c
-index 5e34456..644edcf 100644
---- a/sys/v4l2/gstv4l2object.c
-+++ b/sys/v4l2/gstv4l2object.c
-@@ -886,6 +886,9 @@ gst_v4l2_object_format_get_rank (const struct v4l2_fmtdesc *fmt)
-       break;
- 
-     case V4L2_PIX_FMT_NV12:    /* 12  Y/CbCr 4:2:0  */
-+      rank = YUV_BASE_RANK + 11;
-+      break;
-+
-     case V4L2_PIX_FMT_NV21:    /* 12  Y/CrCb 4:2:0  */
-     case V4L2_PIX_FMT_YYUV:    /* 16  YUV 4:2:2     */
-     case V4L2_PIX_FMT_HI240:   /*  8  8-bit color   */
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-good/files/gst-0.10.27-0011-v4l2sink-fix-issue-seen-with-autoconvert.patch b/media-libs/gst-plugins-good/files/gst-0.10.27-0011-v4l2sink-fix-issue-seen-with-autoconvert.patch
deleted file mode 100644
index 3384de7..0000000
--- a/media-libs/gst-plugins-good/files/gst-0.10.27-0011-v4l2sink-fix-issue-seen-with-autoconvert.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 4e319948c62aafd5339c38d065fd8dbfa5a09ced Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Thu, 13 Jan 2011 09:43:08 -0600
-Subject: [PATCH 11/11] v4l2sink: fix issue seen with autoconvert
-
-In this scenario _set_caps() will get called earlier than _buffer_alloc()
-so we need to not override the number of buffers in the case that the
-upstream element answers the query about number of requested buffers.
----
- sys/v4l2/gstv4l2sink.c |    6 ++++--
- 1 files changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
-index feafe7a..ca6ae15 100644
---- a/sys/v4l2/gstv4l2sink.c
-+++ b/sys/v4l2/gstv4l2sink.c
-@@ -881,6 +881,8 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
- 
-     gst_query_parse_buffers_count (query, &min_buffers);
- 
-+    GST_DEBUG_OBJECT (v4l2sink, "min_buffers=%d", min_buffers);
-+
-     /* XXX need to account for some buffers used by queue, etc.. probably
-      * queue should handle query, pass on to sink pad, and then add some
-      * number of buffers to the min, so this value is dynamic depending
-@@ -888,10 +890,10 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
-      */
-     if (min_buffers != -1) {
-       min_buffers += 3 + v4l2sink->min_queued_bufs;
-+      v4l2sink->num_buffers_can_change = FALSE;
-     }
- 
-     if (min_buffers > v4l2sink->num_buffers) {
--      v4l2sink->num_buffers_can_change = FALSE;
-       v4l2sink->num_buffers = min_buffers;
-     }
- 
-@@ -972,7 +974,7 @@ gst_v4l2sink_buffer_alloc (GstBaseSink * bsink, guint64 offset, guint size,
-        * than four buffers:
-        */
-       if (!strcmp ("omap_vout", driver)) {
--        if (v4l2sink->num_buffers > 4) {
-+        if (v4l2sink->num_buffers_can_change && v4l2sink->num_buffers > 4) {
-           v4l2sink->num_buffers = 4;
-           GST_DEBUG_OBJECT (v4l2sink,
-               "limiting to 4 buffers to work-around omap_vout driver bug");
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-good/files/gst-0.10.27-0099-v4l2sink-Disable-rotation-code-when-not-found.patch b/media-libs/gst-plugins-good/files/gst-0.10.27-0099-v4l2sink-Disable-rotation-code-when-not-found.patch
deleted file mode 100644
index 4a2b992..0000000
--- a/media-libs/gst-plugins-good/files/gst-0.10.27-0099-v4l2sink-Disable-rotation-code-when-not-found.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-From 606df19aa1230d0c6081e85d914c866eb7674a5a Mon Sep 17 00:00:00 2001
-From: Daniel Diaz <ddiaz@ti.com>
-Date: Fri, 28 Jan 2011 15:23:26 -0600
-Subject: [PATCH] v4l2sink: Disable rotation code when not found.
-
-Kernel headers might not include support for V4L2 rotation.
-
-Signed-off-by: Daniel Diaz <ddiaz@ti.com>
----
- sys/v4l2/gstv4l2sink.c |   14 ++++++++++++++
- 1 files changed, 14 insertions(+), 0 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
-index ca6ae15..374de88 100644
---- a/sys/v4l2/gstv4l2sink.c
-+++ b/sys/v4l2/gstv4l2sink.c
-@@ -255,7 +255,9 @@ static GstFlowReturn gst_v4l2sink_buffer_alloc (GstBaseSink * bsink,
- static gboolean gst_v4l2sink_event (GstBaseSink * bsink, GstEvent * event);
- static GstFlowReturn gst_v4l2sink_show_frame (GstBaseSink * bsink,
-     GstBuffer * buf);
-+#ifdef V4L2_CID_ROTATE
- static void gst_v4l2sink_sync_rotation (GstV4l2Sink * v4l2sink);
-+#endif
- 
- static void
- gst_v4l2sink_base_init (gpointer g_class)
-@@ -342,10 +344,12 @@ gst_v4l2sink_class_init (GstV4l2SinkClass * klass)
-           "The height of the video crop; default is equal to negotiated image height",
-           0, 0xffffffff, 0, G_PARAM_READWRITE));
- 
-+#ifdef V4L2_CID_ROTATE
-   g_object_class_install_property (gobject_class, PROP_ROTATION,
-       g_param_spec_int ("rotation", "Rotation angle",
-           "Rotation angle for the image", MIN_ROTATION_ANGLE,
-           MAX_ROTATION_ANGLE, DEFAULT_ROTATION_ANGLE, G_PARAM_READWRITE));
-+#endif
- 
-   g_object_class_install_property (gobject_class, PROP_FLIP,
-       g_param_spec_enum ("flip", "Flip State",
-@@ -420,7 +424,9 @@ gst_v4l2sink_sync_flip (GstV4l2Sink * v4l2sink)
-         break;
-     }
- 
-+#ifdef V4L2_CID_ROTATE
-     gst_v4l2sink_sync_rotation (v4l2sink);
-+#endif
-     control.id = V4L2_CID_VFLIP;
-     g_return_if_fail (v4l2_ioctl (fd, VIDIOC_S_CTRL, &control) >= 0);
-   }
-@@ -562,6 +568,7 @@ gst_v4l2sink_sync_crop_fields (GstV4l2Sink * v4l2sink)
-   }
- }
- 
-+#ifdef V4L2_CID_ROTATE
- static void
- gst_v4l2sink_sync_rotation (GstV4l2Sink * v4l2sink)
- {
-@@ -575,6 +582,7 @@ gst_v4l2sink_sync_rotation (GstV4l2Sink * v4l2sink)
-     g_return_if_fail (v4l2_ioctl (fd, VIDIOC_S_CTRL, &control) >= 0);
-   }
- }
-+#endif
- 
- 
- static void
-@@ -632,10 +640,12 @@ gst_v4l2sink_set_property (GObject * object,
-         v4l2sink->crop_fields_set |= RECT_HEIGHT_SET;
-         gst_v4l2sink_sync_crop_fields (v4l2sink);
-         break;
-+#ifdef V4L2_CID_ROTATE
-       case PROP_ROTATION:
-         v4l2sink->rotation = g_value_get_int (value);
-         gst_v4l2sink_sync_rotation (v4l2sink);
-         break;
-+#endif
-       case PROP_FLIP:
-         v4l2sink->flip = g_value_get_enum (value);
-         gst_v4l2sink_sync_flip (v4l2sink);
-@@ -687,9 +697,11 @@ gst_v4l2sink_get_property (GObject * object,
-       case PROP_CROP_HEIGHT:
-         g_value_set_uint (value, v4l2sink->crop.height);
-         break;
-+#ifdef V4L2_CID_ROTATE
-       case PROP_ROTATION:
-         g_value_set_int (value, v4l2sink->rotation);
-         break;
-+#endif
-       case PROP_FLIP:
-         g_value_set_enum (value, v4l2sink->flip);
-         break;
-@@ -715,7 +727,9 @@ gst_v4l2sink_change_state (GstElement * element, GstStateChange transition)
-       /* open the device */
-       if (!gst_v4l2_object_start (v4l2sink->v4l2object))
-         return GST_STATE_CHANGE_FAILURE;
-+#ifdef V4L2_CID_ROTATE
-       gst_v4l2sink_sync_rotation (v4l2sink);
-+#endif
-       gst_v4l2sink_sync_flip (v4l2sink);
-       break;
-     default:
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-good/gst-plugins-good-0.10.27_p20110127.ebuild b/media-libs/gst-plugins-good/gst-plugins-good-0.10.27_p20110127.ebuild
deleted file mode 100644
index 272f98a..0000000
--- a/media-libs/gst-plugins-good/gst-plugins-good-0.10.27_p20110127.ebuild
+++ /dev/null
@@ -1,84 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-# order is important, gnome2 after gst-plugins
-inherit gst-plugins-good gst-plugins10 gnome2 eutils flag-o-matic libtool
-
-DESCRIPTION="Set of Good plug-ins for GStreamer"
-HOMEPAGE="http://gstreamer.net/"
-MY_P=${P%%_*}
-SRC_URI="http://gstreamer.freedesktop.org/src/${PN}/${MY_P}.tar.bz2"
-S="${WORKDIR}/${MY_P}"
-
-LICENSE="LGPL-2.1"
-KEYWORDS="~alpha ~amd64 arm ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd"
-IUSE=""
-
-RDEPEND=">=media-libs/gst-plugins-base-0.10.32
-	>=media-libs/gstreamer-0.10.32
-	>=dev-libs/liboil-0.3.14
-	sys-libs/zlib
-	app-arch/bzip2"
-DEPEND="${RDEPEND}
-	>=sys-devel/gettext-0.11.5
-	dev-util/pkgconfig
-	!<media-libs/gst-plugins-bad-0.10.19"
-
-# Always enable optional bz2 support for matroska
-# Always enable optional zlib support for qtdemux, id3demux and matroska
-# Many media files require these to work, as some container headers are often compressed, bug 291154
-GST_PLUGINS_BUILD="bz2 zlib"
-
-src_unpack() {
-	unpack ${A}
-	cd "${S}"
-	epatch "${FILESDIR}"/gst-0.10.27-0001-v4l2-fix-handling-of-RGB32-BGR32-formats.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0002-v4l2sink-Add-rotation-support.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0003-v4l2sink-Add-flip-property.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0004-v4l2sink-Add-support-for-omap24xxvout-driver.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0005-v4l2sink-Add-support-for-omap_vout-driver.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0006-v4l2-increase-v4l2sink-element-rank.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0007-use-GstQueryBuffers-to-get-buffer-requirements.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0008-add-rowstride-support.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0009-use-GstEventCrop-to-get-crop-info.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0010-v4l2-prefer-NV12.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0011-v4l2sink-fix-issue-seen-with-autoconvert.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0099-v4l2sink-Disable-rotation-code-when-not-found.patch
-}
-
-src_compile() {
-	# gst doesnt handle optimisations well
-	strip-flags
-	replace-flags "-O3" "-O2"
-	filter-flags "-fprefetch-loop-arrays" # see bug 22249
-
-	gst-plugins-good_src_configure \
-		--with-default-audiosink=autoaudiosink \
-		--with-default-visualizer=goom
-
-	emake || die "emake failed."
-}
-
-# override eclass
-src_install() {
-	gnome2_src_install
-}
-
-DOCS="AUTHORS ChangeLog NEWS README RELEASE"
-
-pkg_postinst () {
-	gnome2_pkg_postinst
-
-	echo
-	elog "The GStreamer plugins setup has changed quite a bit on Gentoo,"
-	elog "applications now should provide the basic plugins needed."
-	echo
-	elog "The new seperate plugins are all named 'gst-plugins-<plugin>'."
-	elog "To get a listing of currently available plugins execute 'emerge -s gst-plugins-'."
-	elog "In most cases it shouldn't be needed though to emerge extra plugins."
-}
-
-pkg_postrm() {
-	gnome2_pkg_postrm
-}

diff --git a/media-libs/gstreamer/Manifest b/media-libs/gstreamer/Manifest
deleted file mode 100644
index 82ecc0c..0000000
--- a/media-libs/gstreamer/Manifest
+++ /dev/null
@@ -1,7 +0,0 @@
-AUX gst-0.10.32-0001-gst-launch-add-loop-argument.patch 2042 RMD160 13e1dbf1e7b19d2a065ad2e2e60aa35214461c02 SHA1 178ebe1b011a8bf216b9a1ea42e9f3492d6020fa SHA256 2904a8fa9c847d5608328b52ef9d76e90d9fb88161a3fd5ac07a67c7df1b6dbb
-AUX gst-0.10.32-0002-Changes-to-make-it-possible-to-LD_PRELOAD-libttif.patch 10451 RMD160 97c13f0ebf4b62615e053f37484797a3cc53df66 SHA1 235c410bc00f247ad2f6f250d5f042dcae891c49 SHA256 a6dcd34798f6b327f2681cb37ac1ef105e260f365bf50791197b43a55fa00b00
-AUX gst-0.10.32-0003-add-GstQueryBuffers-query.patch 8548 RMD160 534925365ec7d7ddcffcf72d1f5de13697b1e608 SHA1 11a7aa6257d0d301636957e5e3f946db21201fa5 SHA256 1a8daee3c8f53a7aa566384d1e327120e05aed095c15e9b34a4f9f29a971779f
-AUX gst-0.10.32-0004-Add-GstEventCrop-event.patch 6061 RMD160 99498d853d4bed0cd3dffe4baa25feed743fce7e SHA1 3096b37936659c522e3f8e16d310092d7cadf666 SHA256 f6b568bb9e903d3135f88a0442be89e5376f8475e633fe7d9cb7cda7482da5a3
-AUX gst-0.10.32-0005-basetransform-don-t-do-unnecessary-pad_alloc.patch 2278 RMD160 726964b4a12f6b1fe928796e977f59019224e354 SHA1 d7d5239ecb93d353edbb67bd5aa050c91ff084b3 SHA256 e7fc825d541621980f46b3a58bc5d208c2e2facd60bdc70c0c45207c1e88cf7c
-DIST gstreamer-0.10.32.tar.bz2 3529980 RMD160 447fa2b8b4c622a628763805cb65006d54919e54 SHA1 95477044ed23cf94669e56ea43607de05c2a0cb3 SHA256 3bf4e46a186ee9a1f5e212aaf651d67cffb4f5f05345a7c99ae71d5d992be133
-EBUILD gstreamer-0.10.32_p20110127.ebuild 2181 RMD160 66581f42aabf63a23753081fdf29f6111406673f SHA1 1c2f9201a7883c127d3c10e3ce0a5b05db23927b SHA256 1c64a6fd9859e1347caa039eab89034808981646477dc68eec08b1801206bb38

diff --git a/media-libs/gstreamer/files/gst-0.10.32-0001-gst-launch-add-loop-argument.patch b/media-libs/gstreamer/files/gst-0.10.32-0001-gst-launch-add-loop-argument.patch
deleted file mode 100644
index bc592ed..0000000
--- a/media-libs/gstreamer/files/gst-0.10.32-0001-gst-launch-add-loop-argument.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 23dbd4ce2e492152a4d21b8043f353d224dfe355 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Sat, 13 Feb 2010 15:29:13 -0600
-Subject: [PATCH 1/5] gst-launch: add --loop argument
-
-if --loop is specified, automatically seek to beginning of clip when EOS is received
----
- tools/gst-launch.c |   16 +++++++++++++++-
- 1 files changed, 15 insertions(+), 1 deletions(-)
-
-diff --git a/tools/gst-launch.c b/tools/gst-launch.c
-index 10b7fae..d5b17f8 100644
---- a/tools/gst-launch.c
-+++ b/tools/gst-launch.c
-@@ -716,6 +716,7 @@ main (int argc, char *argv[])
-   gboolean no_sigusr_handler = FALSE;
-   gboolean trace = FALSE;
-   gboolean eos_on_shutdown = FALSE;
-+  gboolean loop = FALSE;
-   gchar *savefile = NULL;
-   gchar *exclude_args = NULL;
- #ifndef GST_DISABLE_OPTION_PARSING
-@@ -742,6 +743,8 @@ main (int argc, char *argv[])
-         N_("Print alloc trace (if enabled at compile time)"), NULL},
-     {"eos-on-shutdown", 'e', 0, G_OPTION_ARG_NONE, &eos_on_shutdown,
-         N_("Force EOS on sources before shutting the pipeline down"), NULL},
-+    {"loop", 'l', 0, G_OPTION_ARG_NONE, &loop,
-+        N_("Repeat clip in loop without rebuilding pipeline"), NULL},
-     GST_TOOLS_GOPTION_VERSION,
-     {NULL}
-   };
-@@ -926,7 +929,18 @@ main (int argc, char *argv[])
-       }
- 
-       tfthen = gst_util_get_timestamp ();
--      caught_error = event_loop (pipeline, TRUE, GST_STATE_PLAYING);
-+      do {
-+        caught_error = event_loop (pipeline, TRUE, GST_STATE_PLAYING);
-+        if (loop && (caught_error == ELR_NO_ERROR)) {
-+          PRINT (_("Looping ...\n"));
-+          gst_element_seek (pipeline, 1.0,
-+              GST_FORMAT_TIME,
-+              GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_KEY_UNIT,
-+              GST_SEEK_TYPE_SET, 0, GST_SEEK_TYPE_NONE, GST_CLOCK_TIME_NONE);
-+        } else {
-+          break;
-+        }
-+      } while (TRUE);
-       if (eos_on_shutdown && caught_error == ELR_INTERRUPT) {
-         PRINT (_("EOS on shutdown enabled -- Forcing EOS on the pipeline\n"));
-         waiting_eos = TRUE;
--- 
-1.7.1
-

diff --git a/media-libs/gstreamer/files/gst-0.10.32-0002-Changes-to-make-it-possible-to-LD_PRELOAD-libttif.patch b/media-libs/gstreamer/files/gst-0.10.32-0002-Changes-to-make-it-possible-to-LD_PRELOAD-libttif.patch
deleted file mode 100644
index 724bd58..0000000
--- a/media-libs/gstreamer/files/gst-0.10.32-0002-Changes-to-make-it-possible-to-LD_PRELOAD-libttif.patch
+++ /dev/null
@@ -1,262 +0,0 @@
-From ac55210758bdd06fe0dec6ef67a60a96a86b39f4 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Sun, 4 Apr 2010 09:14:34 -0500
-Subject: [PATCH 2/5] Changes to make it possible to LD_PRELOAD libttif
-
-1) if GST_USING_PRINTF_EXTENSION, then prepend the fmt string with "<%P> " and
-pass object as a normal arg.  When using TTIF, you want the whole fmt string,
-including the object name prefix, to be constant.  This way, only the fmt
-string pointer needs to be logged.
-2) GstDebugTraceLocation: small optimization to stash __FILE__, __LINE__, and
-GST_FUNCTION together and pass as a single ptr.. the optimization is probably
-lost in the noise with the default printf() based traces, but makes more of a
-difference with faster trace systems
----
- gst/gstinfo.c |   64 +++++++++++++++++++++++++++++++++++++++++++++++-----
- gst/gstinfo.h |   70 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
- 2 files changed, 123 insertions(+), 11 deletions(-)
-
-diff --git a/gst/gstinfo.c b/gst/gstinfo.c
-index 3688120..dfa8650 100644
---- a/gst/gstinfo.c
-+++ b/gst/gstinfo.c
-@@ -494,6 +494,31 @@ gst_path_basename (const gchar * file_name)
- #endif
- 
- /**
-+ * gst_debug_log2:
-+ * @category: category to log
-+ * @level: level of the message is in
-+ * @location: the file, function name, and line number of the location that
-+ *    emitted the message
-+ * @object: the object this message relates to or NULL if none
-+ * @format: a printf style format string
-+ * @...: optional arguments for the format
-+ *
-+ * Logs the given message using the currently registered debugging handlers.
-+ */
-+void
-+gst_debug_log2 (GstDebugCategory * category, GstDebugLevel level,
-+    const GstDebugTraceLocation * location,
-+    GObject * object, const gchar * format, ...)
-+{
-+  va_list var_args;
-+
-+  va_start (var_args, format);
-+  gst_debug_log_valist2 (category, level, location, object, format, var_args);
-+  va_end (var_args);
-+}
-+
-+
-+/**
-  * gst_debug_log_valist:
-  * @category: category to log
-  * @level: level of the message is in
-@@ -512,13 +537,39 @@ gst_debug_log_valist (GstDebugCategory * category, GstDebugLevel level,
-     const gchar * file, const gchar * function, gint line,
-     GObject * object, const gchar * format, va_list args)
- {
-+  GstDebugTraceLocation location = {
-+    .file = file,
-+    .function = function,
-+    .line = line
-+  };
-+  gst_debug_log_valist2 (category, level, &location, object, format, args);
-+}
-+
-+/**
-+ * gst_debug_log_valist2:
-+ * @category: category to log
-+ * @level: level of the message is in
-+ * @location: the file, function name, and line number of the location that
-+ *    emitted the message
-+ * @object: the object this message relates to or NULL if none
-+ * @format: a printf style format string
-+ * @args: optional arguments for the format
-+ *
-+ * Logs the given message using the currently registered debugging handlers.
-+ */
-+void
-+gst_debug_log_valist2 (GstDebugCategory * category, GstDebugLevel level,
-+    const GstDebugTraceLocation * location,
-+    GObject * object, const gchar * format, va_list args)
-+{
-   GstDebugMessage message;
-   LogFuncEntry *entry;
-   GSList *handler;
- 
-   g_return_if_fail (category != NULL);
--  g_return_if_fail (file != NULL);
--  g_return_if_fail (function != NULL);
-+  g_return_if_fail (location != NULL);
-+  g_return_if_fail (location->file != NULL);
-+  g_return_if_fail (location->function != NULL);
-   g_return_if_fail (format != NULL);
- 
-   /* The predefined macro __FILE__ is always the exact path given to the
-@@ -536,8 +587,9 @@ gst_debug_log_valist (GstDebugCategory * category, GstDebugLevel level,
-   while (handler) {
-     entry = handler->data;
-     handler = g_slist_next (handler);
--    entry->func (category, level, file, function, line, object, &message,
--        entry->user_data);
-+    // TODO: change GstLogFunction and pass GstDebugTraceLocation ptr instead..
-+    entry->func (category, level, location->file, location->function,
-+        location->line, object, &message, entry->user_data);
-   }
-   g_free (message.message);
-   va_end (message.arguments);
-@@ -610,7 +662,7 @@ gst_info_structure_to_string (GstStructure * s)
-     return gst_structure_to_string (s);
- }
- 
--static gchar *
-+gchar *
- gst_debug_print_object (gpointer ptr)
- {
-   GObject *object = (GObject *) ptr;
-@@ -708,7 +760,7 @@ gst_debug_print_object (gpointer ptr)
- 
- #ifdef HAVE_PRINTF_EXTENSION
- 
--static gchar *
-+gchar *
- gst_debug_print_segment (gpointer ptr)
- {
-   GstSegment *segment = (GstSegment *) ptr;
-diff --git a/gst/gstinfo.h b/gst/gstinfo.h
-index 7c2d86f..24ca706 100644
---- a/gst/gstinfo.h
-+++ b/gst/gstinfo.h
-@@ -177,6 +177,8 @@ struct _GstDebugCategory {
- 
-   const gchar *		name;
-   const gchar *		description;
-+
-+  void *ext;                /**< for use by LD_PRELOADED trace extension */
- };
- 
- /********** some convenience macros for debugging **********/
-@@ -260,6 +262,14 @@ typedef void (*GstLogFunction)  (GstDebugCategory * category,
- /* FIXME 0.11: move this into private headers */
- void            _gst_debug_init (void);
- 
-+typedef struct {
-+	const gchar *file;
-+	const gchar *function;
-+	const gint   line;
-+} GstDebugTraceLocation;
-+
-+#define GST_DEBUG_TRACE_LOCATION() \
-+	{ __FILE__, GST_FUNCTION, __LINE__ }
- 
- #ifdef GST_USING_PRINTF_EXTENSION
- 
-@@ -273,6 +283,13 @@ void		    gst_debug_log            (GstDebugCategory * category,
-                                           const gchar      * format,
-                                           ...) G_GNUC_NO_INSTRUMENT;
- 
-+void		    gst_debug_log2           (GstDebugCategory * category,
-+                                          GstDebugLevel      level,
-+                                          const GstDebugTraceLocation *location,
-+                                          GObject          * object,
-+                                          const gchar      * format,
-+                                          ...) G_GNUC_NO_INSTRUMENT;
-+
- #else /* GST_USING_PRINTF_EXTENSION */
- 
- void		    gst_debug_log            (GstDebugCategory * category,
-@@ -284,6 +301,13 @@ void		    gst_debug_log            (GstDebugCategory * category,
-                                           const gchar      * format,
-                                           ...) G_GNUC_PRINTF (7, 8) G_GNUC_NO_INSTRUMENT;
- 
-+void		    gst_debug_log2           (GstDebugCategory * category,
-+                                          GstDebugLevel      level,
-+                                          const GstDebugTraceLocation *location,
-+                                          GObject          * object,
-+                                          const gchar      * format,
-+                                          ...) G_GNUC_PRINTF (5, 6) G_GNUC_NO_INSTRUMENT;
-+
- #endif /* GST_USING_PRINTF_EXTENSION */
- 
- void            gst_debug_log_valist     (GstDebugCategory * category,
-@@ -321,8 +345,21 @@ G_CONST_RETURN gchar *
- 	_gst_debug_nameof_funcptr	(GstDebugFuncPtr	func) G_GNUC_NO_INSTRUMENT;
- 
- 
-+void            gst_debug_log_valist2    (GstDebugCategory * category,
-+                                          GstDebugLevel      level,
-+                                          const GstDebugTraceLocation *location,
-+                                          GObject          * object,
-+                                          const gchar      * format,
-+                                          va_list            args) G_GNUC_NO_INSTRUMENT;
-+
- const gchar   * gst_debug_message_get    (GstDebugMessage  * message);
- 
-+gchar *         gst_debug_print_object (gpointer ptr);
-+
-+#ifdef HAVE_PRINTF_EXTENSION
-+gchar *         gst_debug_print_segment (gpointer ptr);
-+#endif
-+
- void            gst_debug_log_default    (GstDebugCategory * category,
-                                           GstDebugLevel      level,
-                                           const gchar      * file,
-@@ -495,19 +532,41 @@ GST_EXPORT GstDebugLevel            __gst_debug_min;
-  * debugging messages. You will probably want to use one of the ones described
-  * below.
-  */
-+#if defined(GST_USING_PRINTF_EXTENSION) && defined(G_HAVE_GNUC_VARARGS)
-+#define GST_CAT_LEVEL_LOG_obj(cat,level,object,str,args...) G_STMT_START{  \
-+  if (G_UNLIKELY (level <= __gst_debug_min)) {                             \
-+    const GstDebugTraceLocation loc = GST_DEBUG_TRACE_LOCATION();          \
-+    gst_debug_log2 ((cat), (level), &loc, NULL, "%"GST_PTR_FORMAT" "str,   \
-+        (object), ##args );                                                \
-+  }                                                                        \
-+}G_STMT_END
-+#define GST_CAT_LEVEL_LOG_noobj(cat,level,object,str,args...) G_STMT_START{\
-+  if (G_UNLIKELY (level <= __gst_debug_min)) {                             \
-+    const GstDebugTraceLocation loc = GST_DEBUG_TRACE_LOCATION();          \
-+    gst_debug_log2 ((cat), (level), &loc, NULL, (str), ##args );           \
-+  }                                                                        \
-+}G_STMT_END
-+#else
-+#  define GST_CAT_LEVEL_LOG_obj   GST_CAT_LEVEL_LOG
-+#  define GST_CAT_LEVEL_LOG_noobj GST_CAT_LEVEL_LOG
-+#endif
-+
-+
- #ifdef G_HAVE_ISO_VARARGS
- #define GST_CAT_LEVEL_LOG(cat,level,object,...) G_STMT_START{		\
--  if (G_UNLIKELY (level <= __gst_debug_min)) {						\
--    gst_debug_log ((cat), (level), __FILE__, GST_FUNCTION, __LINE__,	\
--        (GObject *) (object), __VA_ARGS__);				\
-+  if (G_UNLIKELY (level <= __gst_debug_min)) {	\
-+	const GstDebugTraceLocation loc = GST_DEBUG_TRACE_LOCATION();	\
-+    gst_debug_log2 ((cat), (level), &loc, (GObject *) (object),		\
-+            __VA_ARGS__);											\
-   }									\
- }G_STMT_END
- #else /* G_HAVE_GNUC_VARARGS */
- #ifdef G_HAVE_GNUC_VARARGS
- #define GST_CAT_LEVEL_LOG(cat,level,object,args...) G_STMT_START{	\
-   if (G_UNLIKELY (level <= __gst_debug_min)) {						\
--    gst_debug_log ((cat), (level), __FILE__, GST_FUNCTION, __LINE__,	\
--        (GObject *) (object), ##args );					\
-+    const GstDebugTraceLocation loc = GST_DEBUG_TRACE_LOCATION();	\
-+    gst_debug_log2 ((cat), (level), &loc, (GObject *) (object),		\
-+            ##args );											    \
-   }									\
- }G_STMT_END
- #else /* no variadic macros, use inline */
-@@ -1244,6 +1303,7 @@ GST_TRACE (const char *format, ...)
- 
- #if defined(__GNUC__) && __GNUC__ >= 3
- #  pragma GCC poison gst_debug_log
-+#  pragma GCC poison gst_debug_log2
- #  pragma GCC poison gst_debug_log_valist
- #  pragma GCC poison _gst_debug_category_new
- #endif
--- 
-1.7.1
-

diff --git a/media-libs/gstreamer/files/gst-0.10.32-0003-add-GstQueryBuffers-query.patch b/media-libs/gstreamer/files/gst-0.10.32-0003-add-GstQueryBuffers-query.patch
deleted file mode 100644
index 4c54083..0000000
--- a/media-libs/gstreamer/files/gst-0.10.32-0003-add-GstQueryBuffers-query.patch
+++ /dev/null
@@ -1,258 +0,0 @@
-From 7f071cf72491a9f60c886f4779c7d14d924bc43d Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Wed, 19 May 2010 15:48:09 -0500
-Subject: [PATCH 3/5] add GstQueryBuffers query
-
-This query is used by buffer allocator, for example a video sink element,
-to find out any minimum buffer requirements of upstream elements that uses
-pad_alloc() to allocate buffers.  For example, some cameras may have need
-for additional padding/boarder around the frame (for vstab), or some video
-decoders may have requirements for a certain minimum number of buffers (so
-they can hold refs to reference-frames)
----
- gst/gstquark.c |    3 +-
- gst/gstquark.h |    7 ++-
- gst/gstquery.c |  141 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- gst/gstquery.h |   16 ++++++-
- 4 files changed, 164 insertions(+), 3 deletions(-)
-
-diff --git a/gst/gstquark.c b/gst/gstquark.c
-index 4073eb4..58badca 100644
---- a/gst/gstquark.c
-+++ b/gst/gstquark.c
-@@ -49,7 +49,8 @@ static const gchar *_quark_strings[] = {
-   "GstQueryURI", "GstEventStep", "GstMessageStepDone", "amount", "flush",
-   "intermediate", "GstMessageStepStart", "active", "eos", "sink-message",
-   "message", "GstMessageQOS", "running-time", "stream-time", "jitter",
--  "quality", "processed", "dropped", "buffering-ranges"
-+  "quality", "processed", "dropped", "buffering-ranges", "GstQueryBuffers",
-+  "caps", "count", "width", "height"
- };
- 
- GQuark _priv_gst_quark_table[GST_QUARK_MAX];
-diff --git a/gst/gstquark.h b/gst/gstquark.h
-index c95d9cd..f4c8e0f 100644
---- a/gst/gstquark.h
-+++ b/gst/gstquark.h
-@@ -127,8 +127,13 @@ typedef enum _GstQuarkId
-   GST_QUARK_PROCESSED = 98,
-   GST_QUARK_DROPPED = 99,
-   GST_QUARK_BUFFERING_RANGES = 100,
-+  GST_QUARK_QUERY_BUFFERS = 101,
-+  GST_QUARK_CAPS = 102,
-+  GST_QUARK_COUNT = 103,
-+  GST_QUARK_WIDTH = 104,
-+  GST_QUARK_HEIGHT = 105,
- 
--  GST_QUARK_MAX = 101
-+  GST_QUARK_MAX = 106
- } GstQuarkId;
- 
- extern GQuark _priv_gst_quark_table[GST_QUARK_MAX];
-diff --git a/gst/gstquery.c b/gst/gstquery.c
-index 9373175..4823ff0 100644
---- a/gst/gstquery.c
-+++ b/gst/gstquery.c
-@@ -96,6 +96,7 @@ static GstQueryTypeDefinition standard_definitions[] = {
-   {GST_QUERY_BUFFERING, "buffering", "Buffering status", 0},
-   {GST_QUERY_CUSTOM, "custom", "Custom query", 0},
-   {GST_QUERY_URI, "uri", "URI of the source or sink", 0},
-+  {GST_QUERY_BUFFERS, "buffers", "Minimum buffer requirements", 0},
-   {0, NULL, NULL, 0}
- };
- 
-@@ -1480,3 +1481,143 @@ gst_query_parse_uri (GstQuery * query, gchar ** uri)
-     *uri = g_value_dup_string (gst_structure_id_get_value (query->structure,
-             GST_QUARK (URI)));
- }
-+
-+/**
-+ * gst_query_new_buffers:
-+ * @caps: the #GstCaps for the buffers that are going to be allocated
-+ *
-+ * Constructs a new buffer requirements query object to query buffer
-+ * requirements for a particular caps.  Use gst_query_unref() when done
-+ * with it.
-+ *
-+ * Returns: A #GstQuery
-+ */
-+GstQuery *
-+gst_query_new_buffers (GstCaps * caps)
-+{
-+  GstQuery *query;
-+  GstStructure *structure;
-+
-+  /* XXX could add size here, for linear (non YUV/RGB) buffers?  But I'm not
-+   * entirely sure what is the use-case for that.. it should be easy enough
-+   * to add more optional reply fields later
-+   */
-+  structure = gst_structure_id_new (GST_QUARK (QUERY_BUFFERS),
-+      GST_QUARK (CAPS), GST_TYPE_CAPS, caps,
-+      GST_QUARK (COUNT), G_TYPE_INT, -1,
-+      GST_QUARK (WIDTH), G_TYPE_INT, -1,
-+      GST_QUARK (HEIGHT), G_TYPE_INT, -1, NULL);
-+
-+  query = gst_query_new (GST_QUERY_BUFFERS, structure);
-+
-+  return query;
-+}
-+
-+/**
-+ * gst_query_set_buffers_count:
-+ * @count: minimum number of buffers required
-+ *
-+ * Answer a buffers query by setting the minimum number of buffers required.
-+ * If there is no minimum buffer count requirement, don't set this field in
-+ * the query.
-+ */
-+void
-+gst_query_set_buffers_count (GstQuery * query, gint count)
-+{
-+  GstStructure *structure;
-+
-+  g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_BUFFERS);
-+
-+  structure = gst_query_get_structure (query);
-+  gst_structure_id_set (structure, GST_QUARK (COUNT), G_TYPE_INT, count, NULL);
-+}
-+
-+/**
-+ * gst_query_set_buffers_dimensions:
-+ * @width: minimum buffer width
-+ * @height: minimum buffer height
-+ *
-+ * Answer a buffers query by setting the minimum buffer dimensions required.
-+ * If there is no minimum buffer dimensions (beyond the width/height specified
-+ * in the #GstCaps), don't set this field in the query.
-+ */
-+void
-+gst_query_set_buffers_dimensions (GstQuery * query, gint width, gint height)
-+{
-+  GstStructure *structure;
-+
-+  g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_BUFFERS);
-+
-+  structure = gst_query_get_structure (query);
-+  gst_structure_id_set (structure,
-+      GST_QUARK (WIDTH), G_TYPE_INT, width,
-+      GST_QUARK (HEIGHT), G_TYPE_INT, height, NULL);
-+}
-+
-+/**
-+ * gst_query_parse_buffers_caps:
-+ * @query: a #GstQuery
-+ * @caps: the storage for the #GstCaps pointer, or NULL
-+ *
-+ * Parse a buffers query.
-+ */
-+void
-+gst_query_parse_buffers_caps (GstQuery * query, const GstCaps ** caps)
-+{
-+  GstStructure *structure;
-+
-+  g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_BUFFERS);
-+
-+  structure = gst_query_get_structure (query);
-+  if (caps)
-+    *caps = gst_value_get_caps (gst_structure_id_get_value (structure,
-+            GST_QUARK (CAPS)));
-+}
-+
-+/**
-+ * gst_query_parse_buffers_count:
-+ * @query: a #GstQuery
-+ * @count: the storage for minimum number of buffers, or NULL
-+ *
-+ * Parse a buffers query answer to see the minimum number of buffers
-+ * required.  A returned value of -1 means there is no minimum requirement
-+ */
-+void
-+gst_query_parse_buffers_count (GstQuery * query, gint * count)
-+{
-+  GstStructure *structure;
-+
-+  g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_BUFFERS);
-+
-+  structure = gst_query_get_structure (query);
-+  if (count)
-+    *count = g_value_get_int (gst_structure_id_get_value (structure,
-+            GST_QUARK (COUNT)));
-+}
-+
-+/**
-+ * gst_query_parse_buffers_dimensions:
-+ * @query: a #GstQuery
-+ * @width: the storage for minimum width, or NULL
-+ * @height: the storage for minimum height, or NULL
-+ *
-+ * Parse a buffers query answer to see the minimum buffer dimensions required.
-+ * A returned value of -1 for either dimension means there is no minimum
-+ * requirement in that axis
-+ */
-+void
-+gst_query_parse_buffers_dimensions (GstQuery * query, gint * width,
-+    gint * height)
-+{
-+  GstStructure *structure;
-+
-+  g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_BUFFERS);
-+
-+  structure = gst_query_get_structure (query);
-+  if (width)
-+    *width = g_value_get_int (gst_structure_id_get_value (structure,
-+            GST_QUARK (WIDTH)));
-+  if (height)
-+    *height = g_value_get_int (gst_structure_id_get_value (structure,
-+            GST_QUARK (HEIGHT)));
-+}
-diff --git a/gst/gstquery.h b/gst/gstquery.h
-index 09d0225..ae1f5cd 100644
---- a/gst/gstquery.h
-+++ b/gst/gstquery.h
-@@ -31,6 +31,7 @@
- #include <gst/gstminiobject.h>
- #include <gst/gststructure.h>
- #include <gst/gstformat.h>
-+#include <gst/gstcaps.h>
- 
- G_BEGIN_DECLS
- 
-@@ -51,6 +52,9 @@ G_BEGIN_DECLS
-  * @GST_QUERY_CUSTOM: a custom application or element defined query. Since
-  * 0.10.22.
-  * @GST_QUERY_URI: query the URI of the source or sink. Since 0.10.22.
-+ * @GST_QUERY_BUFFERS: query the upstream users of pad_alloc()'d buffers to
-+ * find any particular requirements about buffer size (padding) or numbers of
-+ * buffers. Since ?.?.?.
-  *
-  * Standard predefined Query types
-  */
-@@ -69,7 +73,8 @@ typedef enum {
-   GST_QUERY_FORMATS,
-   GST_QUERY_BUFFERING,
-   GST_QUERY_CUSTOM,
--  GST_QUERY_URI
-+  GST_QUERY_URI,
-+  GST_QUERY_BUFFERS
- } GstQueryType;
- 
- /**
-@@ -336,6 +341,15 @@ GstQuery *      gst_query_new_uri                 (void);
- void            gst_query_parse_uri               (GstQuery *query, gchar **uri);
- void            gst_query_set_uri                 (GstQuery *query, const gchar *uri);
- 
-+/* buffer requirements query */
-+GstQuery *      gst_query_new_buffers             (GstCaps * caps);
-+void            gst_query_set_buffers_count       (GstQuery * query, gint count);
-+void            gst_query_set_buffers_dimensions  (GstQuery * query, gint width, gint height);
-+void            gst_query_parse_buffers_caps      (GstQuery * query, const GstCaps ** caps);
-+void            gst_query_parse_buffers_count     (GstQuery * query, gint * count);
-+void            gst_query_parse_buffers_dimensions (GstQuery * query, gint * width, gint * height);
-+
-+
- G_END_DECLS
- 
- #endif /* __GST_QUERY_H__ */
--- 
-1.7.1
-

diff --git a/media-libs/gstreamer/files/gst-0.10.32-0004-Add-GstEventCrop-event.patch b/media-libs/gstreamer/files/gst-0.10.32-0004-Add-GstEventCrop-event.patch
deleted file mode 100644
index 0730dd4..0000000
--- a/media-libs/gstreamer/files/gst-0.10.32-0004-Add-GstEventCrop-event.patch
+++ /dev/null
@@ -1,161 +0,0 @@
-From 20378daaef4f4adb36d879879d6ab6d007a82636 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Mon, 24 May 2010 16:49:20 -0500
-Subject: [PATCH 4/5] Add GstEventCrop event
-
-This event can be used to set cropping / region-of-interest to take effect
-on the following buffer.
----
- gst/gstevent.c |   63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- gst/gstevent.h |   11 +++++++++
- gst/gstquark.c |    2 +-
- gst/gstquark.h |    5 +++-
- 4 files changed, 79 insertions(+), 2 deletions(-)
-
-diff --git a/gst/gstevent.c b/gst/gstevent.c
-index 6d2cc8b..d04df79 100644
---- a/gst/gstevent.c
-+++ b/gst/gstevent.c
-@@ -116,6 +116,7 @@ static GstEventQuarks event_quarks[] = {
-   {GST_EVENT_TAG, "tag", 0},
-   {GST_EVENT_BUFFERSIZE, "buffersize", 0},
-   {GST_EVENT_SINK_MESSAGE, "sink-message", 0},
-+  {GST_EVENT_CROP, "crop", 0},
-   {GST_EVENT_QOS, "qos", 0},
-   {GST_EVENT_SEEK, "seek", 0},
-   {GST_EVENT_NAVIGATION, "navigation", 0},
-@@ -1231,3 +1232,65 @@ gst_event_parse_sink_message (GstEvent * event, GstMessage ** msg)
-         GST_MESSAGE (gst_value_dup_mini_object (gst_structure_id_get_value
-             (event->structure, GST_QUARK (MESSAGE))));
- }
-+
-+/**
-+ * gst_event_new_crop:
-+ * @top:  the new offset to top of sub-image
-+ * @left:  the new offset to left of sub-image
-+ * @width:  the new width
-+ * @height:  the new height
-+ *
-+ * Create a new crop event.
-+ */
-+GstEvent *
-+gst_event_new_crop (gint top, gint left, gint width, gint height)
-+{
-+  GstEvent *event;
-+  GstStructure *structure;
-+
-+  GST_CAT_INFO (GST_CAT_EVENT, "creating crop event: %d,%d %dx%d",
-+      top, left, width, height);
-+
-+  structure = gst_structure_id_new (GST_QUARK (EVENT_CROP),
-+      GST_QUARK (TOP), G_TYPE_INT, top,
-+      GST_QUARK (LEFT), G_TYPE_INT, left,
-+      GST_QUARK (WIDTH), G_TYPE_INT, width,
-+      GST_QUARK (HEIGHT), G_TYPE_INT, height, NULL);
-+  event = gst_event_new_custom (GST_EVENT_CROP, structure);
-+
-+  return event;
-+}
-+
-+/**
-+ * gst_event_parse_crop:
-+ * @event: The event to query
-+ * @top: A pointer to store top offset in
-+ * @left: A pointer to store left offset in
-+ * @width: A pointer to store width in
-+ * @height: A pointer to store height in
-+ *
-+ * Parse the crop event.
-+ */
-+void
-+gst_event_parse_crop (GstEvent * event, gint * top, gint * left,
-+    gint * width, gint * height)
-+{
-+  const GstStructure *structure;
-+
-+  g_return_if_fail (GST_IS_EVENT (event));
-+  g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_CROP);
-+
-+  structure = gst_event_get_structure (event);
-+  if (top)
-+    *top = g_value_get_int (gst_structure_id_get_value (structure,
-+            GST_QUARK (TOP)));
-+  if (left)
-+    *left = g_value_get_int (gst_structure_id_get_value (structure,
-+            GST_QUARK (LEFT)));
-+  if (width)
-+    *width = g_value_get_int (gst_structure_id_get_value (structure,
-+            GST_QUARK (WIDTH)));
-+  if (height)
-+    *height = g_value_get_int (gst_structure_id_get_value (structure,
-+            GST_QUARK (HEIGHT)));
-+}
-diff --git a/gst/gstevent.h b/gst/gstevent.h
-index 9568514..ae08829 100644
---- a/gst/gstevent.h
-+++ b/gst/gstevent.h
-@@ -93,6 +93,10 @@ typedef enum {
-  * @GST_EVENT_SINK_MESSAGE: An event that sinks turn into a message. Used to
-  *                          send messages that should be emitted in sync with
-  *                          rendering.
-+ * @GST_EVENT_CROP: An event that can set horizontal (pan/scan) and vertical
-+ *                   (tilt/scan) offset and width/height within a larger
-+ *                   image.  This event precedes the buffer to which it
-+ *                   applies.
-  * @GST_EVENT_QOS: A quality message. Used to indicate to upstream elements
-  *                 that the downstream elements are being starved of or
-  *                 flooded with data.
-@@ -133,6 +137,7 @@ typedef enum {
-   GST_EVENT_TAG                   = GST_EVENT_MAKE_TYPE (7, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
-   GST_EVENT_BUFFERSIZE            = GST_EVENT_MAKE_TYPE (8, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
-   GST_EVENT_SINK_MESSAGE          = GST_EVENT_MAKE_TYPE (9, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
-+  GST_EVENT_CROP                  = GST_EVENT_MAKE_TYPE (10, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
-   /* upstream events */
-   GST_EVENT_QOS                   = GST_EVENT_MAKE_TYPE (15, FLAG(UPSTREAM)),
-   GST_EVENT_SEEK                  = GST_EVENT_MAKE_TYPE (16, FLAG(UPSTREAM)),
-@@ -484,6 +489,12 @@ GstEvent*       gst_event_new_step              (GstFormat format, guint64 amoun
- void            gst_event_parse_step            (GstEvent *event, GstFormat *format, guint64 *amount,
-                                                  gdouble *rate, gboolean *flush, gboolean *intermediate);
- 
-+/* crop event */
-+GstEvent *      gst_event_new_crop              (gint top, gint left, gint width, gint height);
-+void            gst_event_parse_crop            (GstEvent * event, gint * top, gint * left,
-+                                                 gint * width, gint * height);
-+
-+
- G_END_DECLS
- 
- #endif /* __GST_EVENT_H__ */
-diff --git a/gst/gstquark.c b/gst/gstquark.c
-index 58badca..f8716cc 100644
---- a/gst/gstquark.c
-+++ b/gst/gstquark.c
-@@ -50,7 +50,7 @@ static const gchar *_quark_strings[] = {
-   "intermediate", "GstMessageStepStart", "active", "eos", "sink-message",
-   "message", "GstMessageQOS", "running-time", "stream-time", "jitter",
-   "quality", "processed", "dropped", "buffering-ranges", "GstQueryBuffers",
--  "caps", "count", "width", "height"
-+  "caps", "count", "width", "height", "GstEventCrop", "top", "left"
- };
- 
- GQuark _priv_gst_quark_table[GST_QUARK_MAX];
-diff --git a/gst/gstquark.h b/gst/gstquark.h
-index f4c8e0f..6eeb77f 100644
---- a/gst/gstquark.h
-+++ b/gst/gstquark.h
-@@ -132,8 +132,11 @@ typedef enum _GstQuarkId
-   GST_QUARK_COUNT = 103,
-   GST_QUARK_WIDTH = 104,
-   GST_QUARK_HEIGHT = 105,
-+  GST_QUARK_EVENT_CROP = 106,
-+  GST_QUARK_TOP = 107,
-+  GST_QUARK_LEFT = 108,
- 
--  GST_QUARK_MAX = 106
-+  GST_QUARK_MAX = 109
- } GstQuarkId;
- 
- extern GQuark _priv_gst_quark_table[GST_QUARK_MAX];
--- 
-1.7.1
-

diff --git a/media-libs/gstreamer/files/gst-0.10.32-0005-basetransform-don-t-do-unnecessary-pad_alloc.patch b/media-libs/gstreamer/files/gst-0.10.32-0005-basetransform-don-t-do-unnecessary-pad_alloc.patch
deleted file mode 100644
index 27c7daa..0000000
--- a/media-libs/gstreamer/files/gst-0.10.32-0005-basetransform-don-t-do-unnecessary-pad_alloc.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 45650b7b1dfcaaa2b165a6d263b6dc74449c501c Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Wed, 26 May 2010 14:42:40 -0500
-Subject: [PATCH 5/5] basetransform: don't do unnecessary pad_alloc()
-
-Don't allocate a buffer in passthrough mode.
----
- libs/gst/base/gstbasetransform.c |   28 ++++++++++++++++++++--------
- 1 files changed, 20 insertions(+), 8 deletions(-)
-
-diff --git a/libs/gst/base/gstbasetransform.c b/libs/gst/base/gstbasetransform.c
-index 57192ab..1416b8e 100644
---- a/libs/gst/base/gstbasetransform.c
-+++ b/libs/gst/base/gstbasetransform.c
-@@ -2188,14 +2188,26 @@ gst_base_transform_handle_buffer (GstBaseTransform * trans, GstBuffer * inbuf,
- 
- no_qos:
- 
--  /* first try to allocate an output buffer based on the currently negotiated
--   * format. While we call pad-alloc we could renegotiate the srcpad format or
--   * have a new suggestion for upstream buffer-alloc. 
--   * In any case, outbuf will contain a buffer suitable for doing the configured
--   * transform after this function. */
--  ret = gst_base_transform_prepare_output_buffer (trans, inbuf, outbuf);
--  if (G_UNLIKELY (ret != GST_FLOW_OK))
--    goto no_buffer;
-+  if (trans->passthrough) {
-+    /* I'm not yet sure if we should bypass allocating output buffer in case of
-+     * passthrough, or if I should override the prepare_output_buffer vmethod..
-+     * I think the argument for always doing buffer allocation is to give a
-+     * chance for upstream caps-renegotiation.. except I think the existing
-+     * gst_base_transform_buffer_alloc() which itself does a pad_alloc() should
-+     * be sufficient..
-+     */
-+    GST_DEBUG_OBJECT (trans, "reuse input buffer");
-+    *outbuf = inbuf;
-+  } else {
-+    /* first try to allocate an output buffer based on the currently negotiated
-+     * format. While we call pad-alloc we could renegotiate the srcpad format or
-+     * have a new suggestion for upstream buffer-alloc.
-+     * In any case, outbuf will contain a buffer suitable for doing the configured
-+     * transform after this function. */
-+    ret = gst_base_transform_prepare_output_buffer (trans, inbuf, outbuf);
-+    if (G_UNLIKELY (ret != GST_FLOW_OK))
-+      goto no_buffer;
-+  }
- 
-   /* now perform the needed transform */
-   if (trans->passthrough) {
--- 
-1.7.1
-

diff --git a/media-libs/gstreamer/gstreamer-0.10.32_p20110127.ebuild b/media-libs/gstreamer/gstreamer-0.10.32_p20110127.ebuild
deleted file mode 100644
index f6879a1..0000000
--- a/media-libs/gstreamer/gstreamer-0.10.32_p20110127.ebuild
+++ /dev/null
@@ -1,68 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI=2
-
-inherit eutils multilib versionator
-
-# Create a major/minor combo for our SLOT and executables suffix
-PV_MAJ_MIN=$(get_version_component_range '1-2')
-
-DESCRIPTION="Streaming media framework"
-HOMEPAGE="http://gstreamer.sourceforge.net"
-MY_P=${P%%_*}
-SRC_URI="http://${PN}.freedesktop.org/src/${PN}/${MY_P}.tar.bz2"
-S="${WORKDIR}/${MY_P}"
-
-LICENSE="LGPL-2"
-SLOT=${PV_MAJ_MIN}
-KEYWORDS="~alpha ~amd64 arm ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd"
-IUSE="+introspection nls test"
-
-RDEPEND=">=dev-libs/glib-2.20:2
-	dev-libs/libxml2
-	introspection? ( >=dev-libs/gobject-introspection-0.6.3 )
-	!<media-libs/gst-plugins-base-0.10.26"
-	# ^^ queue2 move, mustn't have both libgstcoreleements.so and libgstqueue2.so at runtime providing the element at once
-DEPEND="${RDEPEND}
-	dev-util/pkgconfig
-	dev-util/gtk-doc-am
-	nls? ( sys-devel/gettext )"
-
-src_configure() {
-	# Disable static archives, dependency tracking and examples
-	# to speed up build time
-	econf \
-		--disable-static \
-		--disable-dependency-tracking \
-		$(use_enable nls) \
-		--disable-valgrind \
-		--disable-examples \
-		--enable-check \
-		$(use_enable introspection) \
-		$(use_enable test tests) \
-		--with-package-name="GStreamer ebuild for Gentoo" \
-		--with-package-origin="http://packages.gentoo.org/package/media-libs/gstreamer"
-}
-
-src_prepare() {
-	cd ${S}
-	epatch "${FILESDIR}"/gst-0.10.32-0001-gst-launch-add-loop-argument.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0002-Changes-to-make-it-possible-to-LD_PRELOAD-libttif.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0003-add-GstQueryBuffers-query.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0004-Add-GstEventCrop-event.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0005-basetransform-don-t-do-unnecessary-pad_alloc.patch
-}
-
-src_install() {
-	emake DESTDIR="${D}" install || die "emake install failed."
-	dodoc AUTHORS ChangeLog NEWS MAINTAINERS README RELEASE
-
-	# Remove unversioned binaries to allow SLOT installations in future
-	cd "${D}"/usr/bin
-	local gst_bins
-	for gst_bins in $(ls *-${PV_MAJ_MIN}); do
-		rm -f ${gst_bins/-${PV_MAJ_MIN}/}
-	done
-}

diff --git a/media-libs/syslink-d2c/Manifest b/media-libs/syslink-d2c/Manifest
deleted file mode 100644
index 8a6d7ac..0000000
--- a/media-libs/syslink-d2c/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-EBUILD syslink-d2c-24.11_p1-r0.ebuild 843 RMD160 bfe6b5ecfb5a6acae52e236dc67b6dfc8f38ff36 SHA1 1370b7482e35cbbde3b7e6e4b79571975b36ec62 SHA256 3ce24272aa527c1fc8daa5f5b1f0076ec58902b46ffda27e5b4806cd4494c591

diff --git a/media-libs/syslink-d2c/syslink-d2c-24.11_p1-r0.ebuild b/media-libs/syslink-d2c/syslink-d2c-24.11_p1-r0.ebuild
deleted file mode 100644
index 01ed095..0000000
--- a/media-libs/syslink-d2c/syslink-d2c-24.11_p1-r0.ebuild
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI=2
-
-inherit git autotools eutils
-
-DESCRIPTION="Distributed OpenMAX for OMAP4 processors"
-HOMEPAGE="http://dev.omapzoom.org/?p=tisyslink/userspace-syslink.git;a=summary"
-DEPEND=">=media-libs/syslink-24.11"
-LICENSE="BSD"
-KEYWORDS="arm"
-SLOT="0"
-IUSE=""
-
-SRC_URI=""
-NPV=${PV/_/-}; NPV=${NPV^^}
-EGIT_REPO_URI="git://git.omapzoom.org/platform/hardware/ti/syslink.git"
-EGIT_BRANCH="syslink-2.0"
-# FIXME: Can't use tags?
-#EGIT_COMMIT="ti-syslink-mpu-rls-${NPV}"
-EGIT_COMMIT="16f0cebd8b5a430d943bc6bcfa0fe592bad425b9"
-S="${WORKDIR}/${P}/syslink/d2c"
-
-src_unpack() {
-	MY_S="${WORKDIR}/${P}"
-	S=${MY_S} git_src_unpack
-}
-
-src_prepare() {
-	cd ${S} && ./bootstrap.sh
-	eautoreconf
-}
-
-src_install() {
-	emake install DESTDIR="${D}"
-}

diff --git a/media-libs/syslink/Manifest b/media-libs/syslink/Manifest
deleted file mode 100644
index 5e525fc..0000000
--- a/media-libs/syslink/Manifest
+++ /dev/null
@@ -1,2 +0,0 @@
-AUX add-missing-libraries-to-linker.patch 1941 RMD160 b3508605749e7b83261a851d836c217f01aeaa65 SHA1 52ecbe1f189f8a3b53cf55463f71a9f64481e5ab SHA256 8ed1ac4ee5318c3420491bb72690b9fdb20f47510e44437c7187cf998bcfd9ee
-EBUILD syslink-24.11_p1-r0.ebuild 879 RMD160 0f3f74c0b79f68adcce999ce46d43a4437b04d67 SHA1 90e0825579d887b4eaa6f962f5d802920f8c8de8 SHA256 0faec0c8a51cfb9938bc110018007e4f9a11cb639fca087edacbff27af11d8de

diff --git a/media-libs/syslink/files/add-missing-libraries-to-linker.patch b/media-libs/syslink/files/add-missing-libraries-to-linker.patch
deleted file mode 100644
index 070933b..0000000
--- a/media-libs/syslink/files/add-missing-libraries-to-linker.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From e483e75b27c7cb0bef5d11892963a115689845c8 Mon Sep 17 00:00:00 2001
-From: Daniel Diaz <ddiaz@ti.com>
-Date: Fri, 21 Jan 2011 17:03:14 -0600
-Subject: [PATCH] Add missing libraries to linker.
-
-An undefined symbol appears on run-time:
-  gst-launch-0.10: symbol lookup error: /usr/lib/libsysmgr.so.0:
-  undefined symbol: Notify_getConfig
-
-This is also shown when building with --as-needed during the
-linking stage.
-
-Signed-off-by: Daniel Diaz <ddiaz@ti.com>
----
- syslink/api/src/ipc/Makefile.am    |    1 +
- syslink/api/src/notify/Makefile.am |    2 +-
- syslink/api/src/sysmgr/Makefile.am |    2 +-
- 3 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/syslink/api/src/ipc/Makefile.am b/syslink/api/src/ipc/Makefile.am
-index ba698f1..173b334 100644
---- a/syslink/api/src/ipc/Makefile.am
-+++ b/syslink/api/src/ipc/Makefile.am
-@@ -59,3 +59,4 @@ libipc_la_LIBTOOLFLAGS = --tag=disable-static
- libipc_la_CFLAGS = \
- 	-I$(PROJROOT)/api/include
- 
-+libipc_la_LDFLAGS = -lipcutils
-diff --git a/syslink/api/src/notify/Makefile.am b/syslink/api/src/notify/Makefile.am
-index 5c80c78..659fd4f 100644
---- a/syslink/api/src/notify/Makefile.am
-+++ b/syslink/api/src/notify/Makefile.am
-@@ -47,5 +47,5 @@ libsyslinknotify_la_CFLAGS = \
- 	-I$(PROJROOT)/api/include/linux
- 
- libsyslinknotify_la_LIBTOOLFLAGS = --tag=disable-static
--libsyslinknotify_la_LDFLAGS = -version-info 0:0:0
-+libsyslinknotify_la_LDFLAGS = -version-info 0:0:0 -lipc
- libsyslinknotify_la_LIBADD = ../../src/utils/libipcutils.la
-diff --git a/syslink/api/src/sysmgr/Makefile.am b/syslink/api/src/sysmgr/Makefile.am
-index ea958b5..0c5dfbf 100644
---- a/syslink/api/src/sysmgr/Makefile.am
-+++ b/syslink/api/src/sysmgr/Makefile.am
-@@ -45,4 +45,4 @@ libsysmgr_la_CFLAGS = \
- 	-I$(PROJROOT)/api/include
- 
- libsysmgr_la_LIBTOOLFLAGS = --tag=disable-static
--libsysmgr_la_LDFLAGS = -version-info 0:0:0
-+libsysmgr_la_LDFLAGS = -version-info 0:0:0 -lsyslinknotify -lipc -lprocmgr
--- 
-1.7.3.4
-

diff --git a/media-libs/syslink/syslink-24.11_p1-r0.ebuild b/media-libs/syslink/syslink-24.11_p1-r0.ebuild
deleted file mode 100644
index 578ef58..0000000
--- a/media-libs/syslink/syslink-24.11_p1-r0.ebuild
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI=2
-
-inherit git autotools eutils
-
-DESCRIPTION="Distributed OpenMAX for OMAP4 processors"
-HOMEPAGE="http://dev.omapzoom.org/?p=tisyslink/userspace-syslink.git;a=summary"
-DEPEND=">=media-libs/tiler-24.11"
-LICENSE="BSD"
-KEYWORDS="arm"
-SLOT="0"
-IUSE=""
-
-SRC_URI=""
-NPV=${PV/_/-}; NPV=${NPV^^}
-EGIT_REPO_URI="git://git.omapzoom.org/platform/hardware/ti/syslink.git"
-EGIT_BRANCH="syslink-2.0"
-# FIXME: Can't use tags?
-#EGIT_COMMIT="ti-syslink-mpu-rls-${NPV}"
-EGIT_COMMIT="16f0cebd8b5a430d943bc6bcfa0fe592bad425b9"
-S="${WORKDIR}/${P}/syslink"
-
-src_unpack() {
-	MY_S="${WORKDIR}/${P}"
-	S=${MY_S} git_src_unpack
-	cd ${S}
-	epatch "${FILESDIR}"/add-missing-libraries-to-linker.patch
-}
-
-src_prepare() {
-	eautoreconf
-}
-
-src_install() {
-	emake install DESTDIR="${D}"
-}

diff --git a/media-libs/tiler/Manifest b/media-libs/tiler/Manifest
deleted file mode 100644
index dd0556d..0000000
--- a/media-libs/tiler/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-EBUILD tiler-24.11-r0.ebuild 776 RMD160 e9aa02bdb189806c7af3a62d5e1001afe8c5cb24 SHA1 8abb2ca2f7036ec1f436eb6c4cd664584355281f SHA256 76cf528272302c11db4f0ece3dbb6d194952c2762f6ae5c81f68647cea61d7fc

diff --git a/media-libs/tiler/tiler-24.11-r0.ebuild b/media-libs/tiler/tiler-24.11-r0.ebuild
deleted file mode 100644
index f78ef5c..0000000
--- a/media-libs/tiler/tiler-24.11-r0.ebuild
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI=2
-
-inherit git autotools eutils libtool
-
-DESCRIPTION="TI TILER Memory Manager"
-HOMEPAGE="http://dev.omapzoom.org/?p=tiler/tiler-userspace.git;a=summary"
-#DEPEND=""
-LICENSE="BSD"
-KEYWORDS="arm"
-SLOT="0"
-IUSE=""
-
-SRC_URI=""
-NPV=${PV/_/-}; NPV=${NPV^^}
-EGIT_REPO_URI="git://git.omapzoom.org/platform/hardware/ti/tiler.git"
-EGIT_BRANCH="memmgr_1.0"
-# FIXME: Can't use tags?
-#EGIT_COMMIT="${NPV}"
-EGIT_COMMIT="d74be6020e970228f6bd25112fde12ecb4322f65"
-S="${WORKDIR}/${P}/memmgr"
-
-src_unpack() {
-	MY_S="${WORKDIR}/${P}"
-	S=${MY_S} git_src_unpack
-}
-
-src_prepare() {
-	cd ${S} && ./bootstrap.sh
-	eautoreconf
-}
-
-src_install() {
-	emake DESTDIR="${D}" install
-}

diff --git a/media-plugins/gst-openmax/Manifest b/media-plugins/gst-openmax/Manifest
deleted file mode 100644
index 267cb15..0000000
--- a/media-plugins/gst-openmax/Manifest
+++ /dev/null
@@ -1,5 +0,0 @@
-AUX 0001-videoenc-use-shared-buffers-on-output-port.patch 1030 RMD160 9bc17ddad4dc11c4441c48c90a2be9911bca8f8a SHA1 f3d45516e503c499c1e9b923cbe580abfe480328 SHA256 0c2b74ab2450ef6844e56e9a5a71f7b5243e305883c71a6da4867068f53039ff
-AUX 0002-Replace-deprecated-vstab-event-with-crop-event.patch 2428 RMD160 291b42e0f784dc7d6e3a492606ead5da072274bc SHA1 5aef9bcb25dbd3337f4b7bf6800652188335e880 SHA256 6298e7fd9291e2909c156828cec712417c8e908bf431e08d8668ceb162899ead
-AUX 0099-temp-32k-header-dec10.patch 1930 RMD160 743ce70a08f6927ee472acc719d138d58d9f23dd SHA1 c71328428a9bfeb63f53796ad305a4a08730fa5c SHA256 07b53f8b658281a231d134897ad9c0b94e6273304bf22b47ae658244144b2d1a
-AUX 0099-temp-32k-header-nov10.patch 1954 RMD160 abe12ee817de3f04dd47c0eebcff90ff1d7605ac SHA1 39f6d0eeda27c40fe44b8a6a95d6b360d86fd4f0 SHA256 18a081eee5edc65a73eb9f0be4565586ea6a67581c5bc914a439e0ef92e33e9c
-EBUILD gst-openmax-9999.ebuild 1003 RMD160 afd1226abe7fdd72c1f6c27933514573bc077f49 SHA1 e1446fa76e546b116115a96f57ae10658b01dccf SHA256 050c35b1cc8b92a9203263ce9a5b1ef7899c580c94737c512140a3abe3fa216c

diff --git a/media-plugins/gst-openmax/files/0001-videoenc-use-shared-buffers-on-output-port.patch b/media-plugins/gst-openmax/files/0001-videoenc-use-shared-buffers-on-output-port.patch
deleted file mode 100644
index ff10376..0000000
--- a/media-plugins/gst-openmax/files/0001-videoenc-use-shared-buffers-on-output-port.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From: Alejandro Gonzalez <a-gonzalez@ti.com>
-Date: Sat, 1 Jan 2000 00:03:26 +0000 (-0600)
-Subject: videoenc: Use shared buffers on output port.
-X-Git-Url: http://dev.omapzoom.org/?p=gstreamer%2Fgst-openmax.git;a=commitdiff_plain;h=0a0543a76ff2989d070693490b78625657a6c684
-
-videoenc: Use shared buffers on output port.
-
-Acked-by: Kiran Nataraju <knataraju@ti.com>
-Signed-off-by: Daniel Diaz <ddiaz@ti.com>
----
-
-diff --git a/omx/gstomx_base_videoenc.c b/omx/gstomx_base_videoenc.c
-index bdbd59b..c550e5e 100644
---- a/omx/gstomx_base_videoenc.c
-+++ b/omx/gstomx_base_videoenc.c
-@@ -332,9 +332,9 @@ type_instance_init (GTypeInstance *instance,
-     omx_base->omx_setup = omx_setup;
- 
-     omx_base->in_port->omx_allocate = FALSE;
--    omx_base->out_port->omx_allocate = TRUE;
-+    omx_base->out_port->omx_allocate = FALSE;
-     omx_base->in_port->share_buffer = TRUE;
--    omx_base->out_port->share_buffer = FALSE;
-+    omx_base->out_port->share_buffer = TRUE;
- 
-     gst_pad_set_setcaps_function (omx_base->sinkpad, sink_setcaps);
- 

diff --git a/media-plugins/gst-openmax/files/0002-Replace-deprecated-vstab-event-with-crop-event.patch b/media-plugins/gst-openmax/files/0002-Replace-deprecated-vstab-event-with-crop-event.patch
deleted file mode 100644
index cc6bea2..0000000
--- a/media-plugins/gst-openmax/files/0002-Replace-deprecated-vstab-event-with-crop-event.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From 74e364b3a4f6d64d14a56c0b527cd1530e0df917 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Fri, 24 Dec 2010 21:01:06 -0600
-Subject: [PATCH] Replace deprecated vstab event with crop event.
-
-Signed-off-by: Daniel Diaz <ddiaz@ti.com>
----
- omx/gstomx_base_videodec.c |    5 +++--
- omx/gstomx_base_videoenc.c |    4 ++--
- omx/gstomx_camera.c        |    5 +++--
- 3 files changed, 8 insertions(+), 6 deletions(-)
-
-diff --git a/omx/gstomx_base_videodec.c b/omx/gstomx_base_videodec.c
-index dd35c8c..299a947 100644
---- a/omx/gstomx_base_videodec.c
-+++ b/omx/gstomx_base_videodec.c
-@@ -77,8 +77,9 @@ push_buffer (GstOmxBaseFilter *omx_base, GstBuffer *buf)
-     if (n_offset)
-     {
-         gst_pad_push_event (omx_base->srcpad,
--                gst_event_new_vstab (n_offset / self->rowstride, /* top */
--                        n_offset % self->rowstride)); /* left */
-+                gst_event_new_crop (n_offset / self->rowstride, /* top */
-+                        n_offset % self->rowstride, /* left */
-+                        -1, -1)); /* width/height: can be invalid for now */
-     }
-     return parent_class->push_buffer (omx_base, buf);
- }
-diff --git a/omx/gstomx_base_videoenc.c b/omx/gstomx_base_videoenc.c
-index c550e5e..a83eb3d 100644
---- a/omx/gstomx_base_videoenc.c
-+++ b/omx/gstomx_base_videoenc.c
-@@ -303,10 +303,10 @@ pad_event (GstPad *pad, GstEvent *event)
- 
-     switch (GST_EVENT_TYPE (event))
-     {
--        case GST_EVENT_VSTAB:
-+        case GST_EVENT_CROP:
-         {
-             gint top, left;
--            gst_event_parse_vstab (event, &top, &left);
-+            gst_event_parse_crop (event, &top, &left, NULL, NULL);
- 
-             omx_base->in_port->n_offset = (self->rowstride * top) + left;
- 
-diff --git a/omx/gstomx_camera.c b/omx/gstomx_camera.c
-index ca03de4..dc3130e 100644
---- a/omx/gstomx_camera.c
-+++ b/omx/gstomx_camera.c
-@@ -1509,8 +1509,9 @@ create (GstBaseSrc *gst_base,
- 
-     if (n_offset)
-     {
--        vstab_evt = gst_event_new_vstab (n_offset / self->rowstride, /* top */
--                n_offset % self->rowstride); /* left */
-+        vstab_evt = gst_event_new_crop (n_offset / self->rowstride, /* top */
-+                n_offset % self->rowstride, /* left */
-+                -1, -1); /* width/height: we can just give invalid for now */
-         gst_pad_push_event (GST_BASE_SRC (self)->srcpad,
-                 gst_event_ref (vstab_evt));
-     }
--- 
-1.7.1
-

diff --git a/media-plugins/gst-openmax/files/0099-temp-32k-header-dec10.patch b/media-plugins/gst-openmax/files/0099-temp-32k-header-dec10.patch
deleted file mode 100644
index e85ad31..0000000
--- a/media-plugins/gst-openmax/files/0099-temp-32k-header-dec10.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From 45d23a18eb366220992e367422b958699be55623 Mon Sep 17 00:00:00 2001
-From: Olivier Naudan <o-naudan@ti.com>
-Date: Thu, 16 Dec 2010 13:10:03 +0100
-Subject: [PATCH] Temporary patch to access OMAP 32K timer (not yet exported by the kernel)
-
----
- omx/gstomx_camera.c |    2 +-
- omx/timer-32k.h     |   48 ++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 49 insertions(+), 1 deletions(-)
- create mode 100644 omx/timer-32k.h
-
-diff --git a/omx/gstomx_camera.c b/omx/gstomx_camera.c
-index 9a33cfb..fc73422 100644
---- a/omx/gstomx_camera.c
-+++ b/omx/gstomx_camera.c
-@@ -34,7 +34,7 @@
- #include <stdint.h>
- #include <fcntl.h>
- #include <sys/ioctl.h>
--#include <linux/timer-32k.h>
-+#include "timer-32k.h"
- #include <OMX_CoreExt.h>
- #include <OMX_IndexExt.h>
- 
-diff --git a/omx/timer-32k.h b/omx/timer-32k.h
-new file mode 100644
-index 0000000..98fc2dc
---- /dev/null
-+++ b/omx/timer-32k.h
-@@ -0,0 +1,48 @@
-+/*
-+ * OMAP2/3/4 timer32k driver interface
-+ *
-+ * Copyright (C) 2010 Texas Instruments, Inc
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ */
-+
-+#ifndef __LINUX_TIMER_32_H__
-+#define __LINUX_TIMER_32_H__
-+
-+#include <linux/ioctl.h>
-+#define OMAP_32K_READ       _IOWR('t', 0, uint32_t)
-+#define OMAP_32K_READRAW    _IOWR('t', 1, uint32_t)
-+
-+#ifndef __KERNEL__
-+
-+#include <stdint.h>
-+#include <fcntl.h>
-+#include <sys/ioctl.h>
-+
-+static inline uint32_t __omap_32k_call(int nr)
-+{
-+	static int fd;
-+	if (!fd)
-+		fd = open("/dev/timer32k", 0);
-+
-+	if (fd) {
-+		uint32_t t;
-+		if (ioctl(fd, nr, &t) >= 0)
-+			return t;
-+	}
-+	return 0;
-+}
-+static inline uint32_t omap_32k_read(void)
-+{
-+	return __omap_32k_call(OMAP_32K_READ);
-+}
-+static inline uint32_t omap_32k_readraw(void)
-+{
-+	return __omap_32k_call(OMAP_32K_READRAW);
-+}
-+#endif
-+
-+#endif /* __LINUX_TIMER_32_H__ */
-+
--- 
-1.7.1
-

diff --git a/media-plugins/gst-openmax/files/0099-temp-32k-header-nov10.patch b/media-plugins/gst-openmax/files/0099-temp-32k-header-nov10.patch
deleted file mode 100644
index 2851032..0000000
--- a/media-plugins/gst-openmax/files/0099-temp-32k-header-nov10.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 1c2c1413e6777865c037ba3d849da69cf9342b0a Mon Sep 17 00:00:00 2001
-From: Daniel Diaz <ddiaz@ti.com>
-Date: Thu, 20 Jan 2011 16:21:18 -0600
-Subject: [PATCH] Temporary patch to access OMAP 32K timer (not yet exported by the kernel)
-
-Signed-off-by: Daniel Diaz <ddiaz@ti.com>
----
- omx/gstomx_camera.c |    2 +-
- omx/timer-32k.h     |   48 ++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 49 insertions(+), 1 deletions(-)
- create mode 100644 omx/timer-32k.h
-
-diff --git a/omx/gstomx_camera.c b/omx/gstomx_camera.c
-index 8e3983e..eb101fd 100644
---- a/omx/gstomx_camera.c
-+++ b/omx/gstomx_camera.c
-@@ -34,7 +34,7 @@
- #include <stdint.h>
- #include <fcntl.h>
- #include <sys/ioctl.h>
--#include <linux/timer-32k.h>
-+#include "timer-32k.h"
- 
- /**
-  * SECTION:element-omx_camerasrc
-diff --git a/omx/timer-32k.h b/omx/timer-32k.h
-new file mode 100644
-index 0000000..98fc2dc
---- /dev/null
-+++ b/omx/timer-32k.h
-@@ -0,0 +1,48 @@
-+/*
-+ * OMAP2/3/4 timer32k driver interface
-+ *
-+ * Copyright (C) 2010 Texas Instruments, Inc
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ */
-+
-+#ifndef __LINUX_TIMER_32_H__
-+#define __LINUX_TIMER_32_H__
-+
-+#include <linux/ioctl.h>
-+#define OMAP_32K_READ       _IOWR('t', 0, uint32_t)
-+#define OMAP_32K_READRAW    _IOWR('t', 1, uint32_t)
-+
-+#ifndef __KERNEL__
-+
-+#include <stdint.h>
-+#include <fcntl.h>
-+#include <sys/ioctl.h>
-+
-+static inline uint32_t __omap_32k_call(int nr)
-+{
-+	static int fd;
-+	if (!fd)
-+		fd = open("/dev/timer32k", 0);
-+
-+	if (fd) {
-+		uint32_t t;
-+		if (ioctl(fd, nr, &t) >= 0)
-+			return t;
-+	}
-+	return 0;
-+}
-+static inline uint32_t omap_32k_read(void)
-+{
-+	return __omap_32k_call(OMAP_32K_READ);
-+}
-+static inline uint32_t omap_32k_readraw(void)
-+{
-+	return __omap_32k_call(OMAP_32K_READRAW);
-+}
-+#endif
-+
-+#endif /* __LINUX_TIMER_32_H__ */
-+
--- 
-1.7.3.4
-

diff --git a/media-plugins/gst-openmax/gst-openmax-9999.ebuild b/media-plugins/gst-openmax/gst-openmax-9999.ebuild
deleted file mode 100644
index 8589fe5..0000000
--- a/media-plugins/gst-openmax/gst-openmax-9999.ebuild
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI=3
-
-inherit git autotools
-
-DESCRIPTION="GStreamer plug-in that allows communication with OpenMAX IL components"
-HOMEPAGE="http://freedesktop.org/wiki/GstOpenMAX"
-EGIT_REPO_URI="git://github.com/mrchapp/gst-openmax.git"
-EGIT_BRANCH="gst-24.11-rc"
-EGIT_COMMIT="3214d731aefae7d2b5f0b69f126dc993a972cfd4"
-
-LICENSE="LGPL"
-SLOT="0"
-KEYWORDS="~arm"
-IUSE=""
-
-DEPEND=">=media-libs/gst-plugins-base-0.10.31 >=media-libs/gstreamer-0.10.31 >=media-libs/domx-24.11"
-RDEPEND="${DEPEND}"
-
-src_unpack() {
-	git_src_unpack
-	cd ${S}
-	epatch "${FILESDIR}"/0001-videoenc-use-shared-buffers-on-output-port.patch
-	epatch "${FILESDIR}"/0002-Replace-deprecated-vstab-event-with-crop-event.patch
-	epatch "${FILESDIR}"/0099-temp-32k-header-nov10.patch
-}
-
-src_prepare() {
-	git describe --tags --always > .version
-	eautoreconf
-}
-
-src_install() {
-	emake DESTDIR=${D} install || die 'emake install failed.'
-}

diff --git a/media-plugins/gst-plugins-v4l2/Manifest b/media-plugins/gst-plugins-v4l2/Manifest
deleted file mode 100644
index 4a10510..0000000
--- a/media-plugins/gst-plugins-v4l2/Manifest
+++ /dev/null
@@ -1,14 +0,0 @@
-AUX gst-0.10.27-0001-v4l2-fix-handling-of-RGB32-BGR32-formats.patch 1699 RMD160 ee58e52c89ed3ac10ece5f24b2607461f693abb3 SHA1 5f93921349aa383b9f9a70f1ce62128eda6d9411 SHA256 b99e9322ba836e6de4df144ff5a6454bb4175a84713a9610fce3ff83402f82d5
-AUX gst-0.10.27-0002-v4l2sink-Add-rotation-support.patch 4255 RMD160 fe2024baf7398c83cec0c0adfdd649733a967482 SHA1 483ec498ce795764475b7e486560ae43ac12737c SHA256 08595843b8fddb76661aaec9b3d84791edf72226dc323050ca94ed1aebc49949
-AUX gst-0.10.27-0003-v4l2sink-Add-flip-property.patch 5880 RMD160 1fc14e374dc56b52cc16d189c3b87e0508b323fb SHA1 8475701469ea33dc355a0a030dc20a5d9a2a0e2f SHA256 42864937012aaede7fbd0ebd78b06be6b6326f99a0770ec6ec6ac57426004445
-AUX gst-0.10.27-0004-v4l2sink-Add-support-for-omap24xxvout-driver.patch 2205 RMD160 da01e8eb31d528971113679984e51f9e7d7e0326 SHA1 07ad77fe137d8c4548320f582d3cc88928e943c2 SHA256 7cca5ec0adf3ac20c7a400bf209523c9135cadb9292cbd219b631d588a3800af
-AUX gst-0.10.27-0005-v4l2sink-Add-support-for-omap_vout-driver.patch 1136 RMD160 2ba17fb3194790c60ab297a3cfbde4089575555d SHA1 f18af7103413df180b3eab08c4abe655d7a63ed3 SHA256 fa8486abf8bd9c12d2d29fe3077485e1ca77af9e39ef4a9b48a7d1ea696c2d85
-AUX gst-0.10.27-0006-v4l2-increase-v4l2sink-element-rank.patch 884 RMD160 5e18ee173f9749a46de9a146a4c6e0113f02281d SHA1 1bfab5660c9f5354eb6daed48a965824675bc07a SHA256 1cfcd14afba356fd6c6180b8f1018174e392d9cc9690870f5dd06918ef3454e5
-AUX gst-0.10.27-0007-use-GstQueryBuffers-to-get-buffer-requirements.patch 3392 RMD160 a7a197667a9fd0ca8d47125a8205f58f81e110cb SHA1 b650b0474355775a5bcb5b89090798e226786632 SHA256 5621c6c3c1a4a49c62faeffbe320e76a4c45d5ecf6c3ecb29adbe2eed25c64b4
-AUX gst-0.10.27-0008-add-rowstride-support.patch 20547 RMD160 cb4bf8074160cad277ba5754427a79cf42a139ed SHA1 60ac23640e799e558fce406e650ebe47b27645c4 SHA256 7ba17339344fe2f0b8e665cd1fd41e96c6543f2d38c4eeffbd071c6c2c21d407
-AUX gst-0.10.27-0009-use-GstEventCrop-to-get-crop-info.patch 4209 RMD160 7b827d6d1cb40f10bb25e0dedf8791884bd60bb5 SHA1 f1c47e70898c8480ce25e5ec6c90308c45cb77f7 SHA256 877141058a3662aa6c065003a048908eb5459206dd7d4cd68d46ba51bfd448a8
-AUX gst-0.10.27-0010-v4l2-prefer-NV12.patch 955 RMD160 1f8da679aa6562a8b7838a301dc98767f543ee12 SHA1 0fe801306c6dad176ef78f4269ecf99f6b270cb5 SHA256 2ddf29274b7f7d8b1ac1f2ed68c56485dddb000e82d12288e50b0acc12ffb0ec
-AUX gst-0.10.27-0011-v4l2sink-fix-issue-seen-with-autoconvert.patch 1938 RMD160 edb01fb57a548a6a6af67f016eea16d47337d0e0 SHA1 c80bbe19a4f6ad44967d077e4ee109094b5061bd SHA256 ad26b737d21721882a6c0de9011ac30984450b4ba213dc5045e9dfff9d2180fc
-AUX gst-0.10.27-0099-v4l2sink-Define-rotation-if-kernel-header-doesnt.patch 851 RMD160 547630bebcffaa01a08415f544b05e7bd5131541 SHA1 d98f5524e9da8a54b338d5f97c46036996a47431 SHA256 6f3efdcdbaeb633d240473c192b487166bc56aaad9e49b6b1269a64aef50437f
-DIST gst-plugins-good-0.10.27.tar.bz2 3096221 RMD160 6486fca87a6394577ab1f0a4e94a19b1c3e2ca5e SHA1 49964ad3b8fbee9caa0b3fc437dd9169aafad79d SHA256 a9d801c3d42b456a6ebc0b95f68c44f153f756ec0fbd4877197c469cc67771fa
-EBUILD gst-plugins-v4l2-0.10.27_p20110127.ebuild 1433 RMD160 3bdbf19a55231ee506b86e81e32715e0d1866ccc SHA1 680039bb2a9ddacf9e718c4e3a4adc797158e310 SHA256 cae04719e242406fb8744765010cef913afee37621259deef63e8d3f8973a51c

diff --git a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0001-v4l2-fix-handling-of-RGB32-BGR32-formats.patch b/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0001-v4l2-fix-handling-of-RGB32-BGR32-formats.patch
deleted file mode 100644
index f2d85ef..0000000
--- a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0001-v4l2-fix-handling-of-RGB32-BGR32-formats.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 194aa8513c02fbfcabf04b45ff4c81bf8a94527f Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Tue, 14 Sep 2010 07:42:50 -0500
-Subject: [PATCH 01/11] v4l2: fix handling of RGB32/BGR32 formats
-
-bpp is 32, but depth is only 24..
----
- sys/v4l2/gstv4l2object.c |   12 +++++++-----
- 1 files changed, 7 insertions(+), 5 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2object.c b/sys/v4l2/gstv4l2object.c
-index 7e15489..f5672b5 100644
---- a/sys/v4l2/gstv4l2object.c
-+++ b/sys/v4l2/gstv4l2object.c
-@@ -1132,14 +1132,16 @@ gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc)
-           b_mask = 0xff0000;
-           break;
-         case V4L2_PIX_FMT_RGB32:
--          bpp = depth = 32;
-+          depth = 24;
-+          bpp = 32;
-           endianness = G_BIG_ENDIAN;
-           r_mask = 0xff000000;
-           g_mask = 0x00ff0000;
-           b_mask = 0x0000ff00;
-           break;
-         case V4L2_PIX_FMT_BGR32:
--          bpp = depth = 32;
-+          depth = 24;
-+          bpp = 32;
-           endianness = G_BIG_ENDIAN;
-           r_mask = 0x000000ff;
-           g_mask = 0x0000ff00;
-@@ -1404,13 +1406,13 @@ gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps,
- #endif
-     }
-   } else if (!strcmp (mimetype, "video/x-raw-rgb")) {
--    gint depth, endianness, r_mask;
-+    gint bpp, endianness, r_mask;
- 
--    gst_structure_get_int (structure, "depth", &depth);
-+    gst_structure_get_int (structure, "bpp", &bpp);
-     gst_structure_get_int (structure, "endianness", &endianness);
-     gst_structure_get_int (structure, "red_mask", &r_mask);
- 
--    switch (depth) {
-+    switch (bpp) {
-       case 8:
-         fourcc = V4L2_PIX_FMT_RGB332;
-         break;
--- 
-1.7.1
-

diff --git a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0002-v4l2sink-Add-rotation-support.patch b/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0002-v4l2sink-Add-rotation-support.patch
deleted file mode 100644
index 11b777c..0000000
--- a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0002-v4l2sink-Add-rotation-support.patch
+++ /dev/null
@@ -1,128 +0,0 @@
-From d43a9444fc5f7655a8acd2978039667a04222ba0 Mon Sep 17 00:00:00 2001
-From: Kiran Nataraju <knataraju@ti.com>
-Date: Fri, 27 Aug 2010 09:00:57 +0200
-Subject: [PATCH 02/11] v4l2sink: Add rotation support.
-
-Signed-off-by: Kiran Nataraju <knataraju@ti.com>
-Signed-off-by: Daniel Diaz <ddiaz@ti.com>
----
- sys/v4l2/gstv4l2sink.c |   34 ++++++++++++++++++++++++++++++++++
- sys/v4l2/gstv4l2sink.h |    1 +
- 2 files changed, 35 insertions(+), 0 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
-index aa6785c..5abf915 100644
---- a/sys/v4l2/gstv4l2sink.c
-+++ b/sys/v4l2/gstv4l2sink.c
-@@ -72,6 +72,10 @@ GST_DEBUG_CATEGORY (v4l2sink_debug);
- #define PROP_DEF_MIN_QUEUED_BUFS    1
- #define DEFAULT_PROP_DEVICE   "/dev/video1"
- 
-+#define MIN_ROTATION_ANGLE 0
-+#define MAX_ROTATION_ANGLE 360
-+#define DEFAULT_ROTATION_ANGLE 0
-+
- enum
- {
-   PROP_0,
-@@ -86,6 +90,7 @@ enum
-   PROP_CROP_LEFT,
-   PROP_CROP_WIDTH,
-   PROP_CROP_HEIGHT,
-+  PROP_ROTATION,
- };
- 
- 
-@@ -220,6 +225,7 @@ static GstFlowReturn gst_v4l2sink_buffer_alloc (GstBaseSink * bsink,
-     guint64 offset, guint size, GstCaps * caps, GstBuffer ** buf);
- static GstFlowReturn gst_v4l2sink_show_frame (GstBaseSink * bsink,
-     GstBuffer * buf);
-+static void gst_v4l2sink_set_rotation (GstV4l2Sink * v4l2sink);
- 
- static void
- gst_v4l2sink_base_init (gpointer g_class)
-@@ -306,6 +312,11 @@ gst_v4l2sink_class_init (GstV4l2SinkClass * klass)
-           "The height of the video crop; default is equal to negotiated image height",
-           0, 0xffffffff, 0, G_PARAM_READWRITE));
- 
-+  g_object_class_install_property (gobject_class, PROP_ROTATION,
-+      g_param_spec_int ("rotation", "Rotation angle",
-+          "Rotation angle for the image", MIN_ROTATION_ANGLE,
-+          MAX_ROTATION_ANGLE, DEFAULT_ROTATION_ANGLE, G_PARAM_READWRITE));
-+
-   basesink_class->get_caps = GST_DEBUG_FUNCPTR (gst_v4l2sink_get_caps);
-   basesink_class->set_caps = GST_DEBUG_FUNCPTR (gst_v4l2sink_set_caps);
-   basesink_class->buffer_alloc = GST_DEBUG_FUNCPTR (gst_v4l2sink_buffer_alloc);
-@@ -336,6 +347,7 @@ gst_v4l2sink_init (GstV4l2Sink * v4l2sink, GstV4l2SinkClass * klass)
-   v4l2sink->overlay_fields_set = 0;
-   v4l2sink->crop_fields_set = 0;
-   v4l2sink->state = 0;
-+  v4l2sink->rotation = 0;
- }
- 
- 
-@@ -475,6 +487,20 @@ gst_v4l2sink_sync_crop_fields (GstV4l2Sink * v4l2sink)
-   }
- }
- 
-+static void
-+gst_v4l2sink_set_rotation (GstV4l2Sink * v4l2sink)
-+{
-+  if (GST_V4L2_IS_OPEN (v4l2sink->v4l2object)) {
-+    struct v4l2_control control;
-+    gint fd = v4l2sink->v4l2object->video_fd;
-+
-+    memset (&control, 0x00, sizeof (struct v4l2_control));
-+    control.id = V4L2_CID_ROTATE;
-+    control.value = v4l2sink->rotation;
-+    g_return_if_fail (v4l2_ioctl (fd, VIDIOC_S_CTRL, &control) >= 0);
-+  }
-+}
-+
- 
- static void
- gst_v4l2sink_set_property (GObject * object,
-@@ -531,6 +557,10 @@ gst_v4l2sink_set_property (GObject * object,
-         v4l2sink->crop_fields_set |= RECT_HEIGHT_SET;
-         gst_v4l2sink_sync_crop_fields (v4l2sink);
-         break;
-+      case PROP_ROTATION:
-+        v4l2sink->rotation = g_value_get_int (value);
-+        gst_v4l2sink_set_rotation (v4l2sink);
-+        break;
-       default:
-         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-         break;
-@@ -578,6 +608,9 @@ gst_v4l2sink_get_property (GObject * object,
-       case PROP_CROP_HEIGHT:
-         g_value_set_uint (value, v4l2sink->crop.height);
-         break;
-+      case PROP_ROTATION:
-+        g_value_set_int (value, v4l2sink->rotation);
-+        break;
-       default:
-         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-         break;
-@@ -600,6 +633,7 @@ gst_v4l2sink_change_state (GstElement * element, GstStateChange transition)
-       /* open the device */
-       if (!gst_v4l2_object_start (v4l2sink->v4l2object))
-         return GST_STATE_CHANGE_FAILURE;
-+      gst_v4l2sink_set_rotation (v4l2sink);
-       break;
-     default:
-       break;
-diff --git a/sys/v4l2/gstv4l2sink.h b/sys/v4l2/gstv4l2sink.h
-index 8fe8222..1239621 100644
---- a/sys/v4l2/gstv4l2sink.h
-+++ b/sys/v4l2/gstv4l2sink.h
-@@ -75,6 +75,7 @@ struct _GstV4l2Sink {
-   guint8 overlay_fields_set, crop_fields_set;
- 
-   guint8 state;
-+  gint rotation;
- };
- 
- struct _GstV4l2SinkClass {
--- 
-1.7.1
-

diff --git a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0003-v4l2sink-Add-flip-property.patch b/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0003-v4l2sink-Add-flip-property.patch
deleted file mode 100644
index 9bdfa51..0000000
--- a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0003-v4l2sink-Add-flip-property.patch
+++ /dev/null
@@ -1,187 +0,0 @@
-From 1381c64fd606d8ab7169eef52386139a4848c439 Mon Sep 17 00:00:00 2001
-From: Kiran Nataraju <knataraju@ti.com>
-Date: Tue, 21 Sep 2010 06:21:23 +0200
-Subject: [PATCH 03/11] v4l2sink: Add flip property.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: Kiran Nataraju <knataraju@ti.com>
-Signed-off-by: Daniel Díaz <yosoy@danieldiaz.org>
----
- sys/v4l2/gstv4l2sink.c |   88 +++++++++++++++++++++++++++++++++++++++++++++--
- sys/v4l2/gstv4l2sink.h |    1 +
- 2 files changed, 85 insertions(+), 4 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
-index 5abf915..6163747 100644
---- a/sys/v4l2/gstv4l2sink.c
-+++ b/sys/v4l2/gstv4l2sink.c
-@@ -91,6 +91,7 @@ enum
-   PROP_CROP_WIDTH,
-   PROP_CROP_HEIGHT,
-   PROP_ROTATION,
-+  PROP_FLIP,
- };
- 
- 
-@@ -129,6 +130,34 @@ gst_v4l2sink_iface_supported (GstImplementsInterface * iface, GType iface_type)
-   return TRUE;
- }
- 
-+/*
-+ * Flip state
-+ */
-+enum
-+{
-+  FLIP_NONE = 0,
-+  FLIP_HORIZONTAL = 1,
-+  FLIP_VERTICAL = 2,
-+};
-+
-+#define GST_TYPE_V4L2_FLIP (gst_v4l2_flip_get_type ())
-+static GType
-+gst_v4l2_flip_get_type (void)
-+{
-+  static GType type = 0;
-+
-+  if (!type) {
-+    static GEnumValue vals[] = {
-+      {FLIP_NONE, "No Flip", "none"},
-+      {FLIP_HORIZONTAL, "Horizontal Flip", "horiz"},
-+      {FLIP_VERTICAL, "Vertical Flip", "vert"},
-+      {0, NULL, NULL},
-+    };
-+    type = g_enum_register_static ("GstV4l2SinkFlip", vals);
-+  }
-+  return type;
-+}
-+
- static void
- gst_v4l2sink_interface_init (GstImplementsInterfaceClass * klass)
- {
-@@ -225,7 +254,7 @@ static GstFlowReturn gst_v4l2sink_buffer_alloc (GstBaseSink * bsink,
-     guint64 offset, guint size, GstCaps * caps, GstBuffer ** buf);
- static GstFlowReturn gst_v4l2sink_show_frame (GstBaseSink * bsink,
-     GstBuffer * buf);
--static void gst_v4l2sink_set_rotation (GstV4l2Sink * v4l2sink);
-+static void gst_v4l2sink_sync_rotation (GstV4l2Sink * v4l2sink);
- 
- static void
- gst_v4l2sink_base_init (gpointer g_class)
-@@ -317,6 +346,11 @@ gst_v4l2sink_class_init (GstV4l2SinkClass * klass)
-           "Rotation angle for the image", MIN_ROTATION_ANGLE,
-           MAX_ROTATION_ANGLE, DEFAULT_ROTATION_ANGLE, G_PARAM_READWRITE));
- 
-+  g_object_class_install_property (gobject_class, PROP_FLIP,
-+      g_param_spec_enum ("flip", "Flip State",
-+          "Flip horizontal/vertical",
-+          GST_TYPE_V4L2_FLIP, FLIP_NONE, G_PARAM_READWRITE));
-+
-   basesink_class->get_caps = GST_DEBUG_FUNCPTR (gst_v4l2sink_get_caps);
-   basesink_class->set_caps = GST_DEBUG_FUNCPTR (gst_v4l2sink_set_caps);
-   basesink_class->buffer_alloc = GST_DEBUG_FUNCPTR (gst_v4l2sink_buffer_alloc);
-@@ -348,8 +382,46 @@ gst_v4l2sink_init (GstV4l2Sink * v4l2sink, GstV4l2SinkClass * klass)
-   v4l2sink->crop_fields_set = 0;
-   v4l2sink->state = 0;
-   v4l2sink->rotation = 0;
-+  v4l2sink->flip = FLIP_NONE;
- }
- 
-+static void
-+gst_v4l2sink_sync_flip (GstV4l2Sink * v4l2sink)
-+{
-+  if (GST_V4L2_IS_OPEN (v4l2sink->v4l2object)) {
-+    struct v4l2_control control;
-+    gint fd = v4l2sink->v4l2object->video_fd;
-+
-+    memset (&control, 0x00, sizeof (struct v4l2_control));
-+
-+    switch (v4l2sink->flip) {
-+      case FLIP_VERTICAL:
-+        v4l2sink->rotation = 0;
-+        control.value = 1;
-+        break;
-+      case FLIP_HORIZONTAL:
-+        /* Horizontal Flip = Vertical Flip + 180 rotation */
-+        v4l2sink->rotation = 180;
-+        control.value = 1;
-+        break;
-+      case FLIP_NONE:
-+        /* In the below switch case logic we need to handle FLIP_NONE
-+         * case since the v4l2 driver holds on to the last configured
-+         * flip value even after the device file is closed.
-+         */
-+        control.value = 0;
-+        break;
-+      default:
-+        GST_WARNING_OBJECT (v4l2sink, "Invalid flip property");
-+        control.value = 0;
-+        break;
-+    }
-+
-+    gst_v4l2sink_sync_rotation (v4l2sink);
-+    control.id = V4L2_CID_VFLIP;
-+    g_return_if_fail (v4l2_ioctl (fd, VIDIOC_S_CTRL, &control) >= 0);
-+  }
-+}
- 
- static void
- gst_v4l2sink_dispose (GObject * object)
-@@ -488,7 +560,7 @@ gst_v4l2sink_sync_crop_fields (GstV4l2Sink * v4l2sink)
- }
- 
- static void
--gst_v4l2sink_set_rotation (GstV4l2Sink * v4l2sink)
-+gst_v4l2sink_sync_rotation (GstV4l2Sink * v4l2sink)
- {
-   if (GST_V4L2_IS_OPEN (v4l2sink->v4l2object)) {
-     struct v4l2_control control;
-@@ -559,7 +631,11 @@ gst_v4l2sink_set_property (GObject * object,
-         break;
-       case PROP_ROTATION:
-         v4l2sink->rotation = g_value_get_int (value);
--        gst_v4l2sink_set_rotation (v4l2sink);
-+        gst_v4l2sink_sync_rotation (v4l2sink);
-+        break;
-+      case PROP_FLIP:
-+        v4l2sink->flip = g_value_get_enum (value);
-+        gst_v4l2sink_sync_flip (v4l2sink);
-         break;
-       default:
-         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-@@ -611,6 +687,9 @@ gst_v4l2sink_get_property (GObject * object,
-       case PROP_ROTATION:
-         g_value_set_int (value, v4l2sink->rotation);
-         break;
-+      case PROP_FLIP:
-+        g_value_set_enum (value, v4l2sink->flip);
-+        break;
-       default:
-         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-         break;
-@@ -633,7 +712,8 @@ gst_v4l2sink_change_state (GstElement * element, GstStateChange transition)
-       /* open the device */
-       if (!gst_v4l2_object_start (v4l2sink->v4l2object))
-         return GST_STATE_CHANGE_FAILURE;
--      gst_v4l2sink_set_rotation (v4l2sink);
-+      gst_v4l2sink_sync_rotation (v4l2sink);
-+      gst_v4l2sink_sync_flip (v4l2sink);
-       break;
-     default:
-       break;
-diff --git a/sys/v4l2/gstv4l2sink.h b/sys/v4l2/gstv4l2sink.h
-index 1239621..907973a 100644
---- a/sys/v4l2/gstv4l2sink.h
-+++ b/sys/v4l2/gstv4l2sink.h
-@@ -76,6 +76,7 @@ struct _GstV4l2Sink {
- 
-   guint8 state;
-   gint rotation;
-+  gint flip;
- };
- 
- struct _GstV4l2SinkClass {
--- 
-1.7.1
-

diff --git a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0004-v4l2sink-Add-support-for-omap24xxvout-driver.patch b/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0004-v4l2sink-Add-support-for-omap24xxvout-driver.patch
deleted file mode 100644
index 38601f8..0000000
--- a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0004-v4l2sink-Add-support-for-omap24xxvout-driver.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 39de525898eea073c1f2486b99b56ef25b6df289 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Sun, 4 Apr 2010 06:46:21 -0500
-Subject: [PATCH 04/11] v4l2sink: Add support for omap24xxvout driver
-
----
- sys/v4l2/gstv4l2sink.c |   22 +++++++++++++++++++++-
- 1 files changed, 21 insertions(+), 1 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
-index 6163747..4408428 100644
---- a/sys/v4l2/gstv4l2sink.c
-+++ b/sys/v4l2/gstv4l2sink.c
-@@ -888,6 +888,18 @@ gst_v4l2sink_buffer_alloc (GstBaseSink * bsink, guint64 offset, guint size,
-     /* initialize the buffer pool if not initialized yet (first buffer): */
-     if (G_UNLIKELY (!v4l2sink->pool)) {
- 
-+      gboolean no_pending_streamon = FALSE;
-+      char *driver = (char *) v4l2sink->v4l2object->vcap.driver;
-+
-+      /* the omap24xxvout driver wants us to start streaming before we
-+       * queue the first buffer:
-+       */
-+      if (!strcmp ("omap24xxvout", driver)) {
-+        GST_DEBUG_OBJECT (v4l2sink,
-+            "enabling no_pending_streamon hack for omap24xxvout driver");
-+        no_pending_streamon = TRUE;
-+      }
-+
-       /* set_caps() might not be called yet.. so just to make sure: */
-       if (!gst_v4l2sink_set_caps (bsink, caps)) {
-         return GST_FLOW_ERROR;
-@@ -909,7 +921,14 @@ gst_v4l2sink_buffer_alloc (GstBaseSink * bsink, guint64 offset, guint size,
-       gst_v4l2_xoverlay_prepare_xwindow_id (v4l2sink->v4l2object, TRUE);
- #endif
- 
--      v4l2sink->state = STATE_PENDING_STREAMON;
-+      if (no_pending_streamon) {
-+        if (!gst_v4l2_object_start_streaming (v4l2sink->v4l2object)) {
-+          return GST_FLOW_ERROR;
-+        }
-+        v4l2sink->state = STATE_STREAMING;
-+      } else {
-+        v4l2sink->state = STATE_PENDING_STREAMON;
-+      }
- 
-       GST_INFO_OBJECT (v4l2sink, "outputting buffers via mmap()");
- 
-@@ -996,6 +1015,7 @@ gst_v4l2sink_show_frame (GstBaseSink * bsink, GstBuffer * buf)
-   if (!gst_v4l2_buffer_pool_qbuf (v4l2sink->pool, GST_V4L2_BUFFER (buf))) {
-     return GST_FLOW_ERROR;
-   }
-+
-   if (v4l2sink->state == STATE_PENDING_STREAMON) {
-     if (!gst_v4l2_object_start_streaming (v4l2sink->v4l2object)) {
-       return GST_FLOW_ERROR;
--- 
-1.7.1
-

diff --git a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0005-v4l2sink-Add-support-for-omap_vout-driver.patch b/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0005-v4l2sink-Add-support-for-omap_vout-driver.patch
deleted file mode 100644
index 04b67bc..0000000
--- a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0005-v4l2sink-Add-support-for-omap_vout-driver.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 1fabe36f40e872942c80041225bdbf41db561bea Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Sun, 4 Apr 2010 06:47:55 -0500
-Subject: [PATCH 05/11] v4l2sink: Add support for omap_vout driver
-
----
- sys/v4l2/gstv4l2sink.c |   11 +++++++++++
- 1 files changed, 11 insertions(+), 0 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
-index 4408428..66dda8e 100644
---- a/sys/v4l2/gstv4l2sink.c
-+++ b/sys/v4l2/gstv4l2sink.c
-@@ -900,6 +900,17 @@ gst_v4l2sink_buffer_alloc (GstBaseSink * bsink, guint64 offset, guint size,
-         no_pending_streamon = TRUE;
-       }
- 
-+      /* workaround for bug in omap_vout driver, when we ask for more
-+       * than four buffers:
-+       */
-+      if (!strcmp ("omap_vout", driver)) {
-+        if (v4l2sink->num_buffers > 4) {
-+          v4l2sink->num_buffers = 4;
-+          GST_DEBUG_OBJECT (v4l2sink,
-+              "limiting to 4 buffers to work-around omap_vout driver bug");
-+        }
-+      }
-+
-       /* set_caps() might not be called yet.. so just to make sure: */
-       if (!gst_v4l2sink_set_caps (bsink, caps)) {
-         return GST_FLOW_ERROR;
--- 
-1.7.1
-

diff --git a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0006-v4l2-increase-v4l2sink-element-rank.patch b/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0006-v4l2-increase-v4l2sink-element-rank.patch
deleted file mode 100644
index 8f5a21c..0000000
--- a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0006-v4l2-increase-v4l2sink-element-rank.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 14d6f0fac0875981c418ac6577d23eafb5ff3f01 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Wed, 14 Apr 2010 03:29:20 -0500
-Subject: [PATCH 06/11] v4l2: increase v4l2sink element rank
-
-Increase rank so that it is autoplugged.
----
- sys/v4l2/gstv4l2.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2.c b/sys/v4l2/gstv4l2.c
-index 4a7056f..cba4157 100644
---- a/sys/v4l2/gstv4l2.c
-+++ b/sys/v4l2/gstv4l2.c
-@@ -55,7 +55,7 @@ plugin_init (GstPlugin * plugin)
-   if (!gst_element_register (plugin, "v4l2src", GST_RANK_PRIMARY,
-           GST_TYPE_V4L2SRC) ||
- #ifdef HAVE_EXPERIMENTAL
--      !gst_element_register (plugin, "v4l2sink", GST_RANK_NONE,
-+      !gst_element_register (plugin, "v4l2sink", GST_RANK_PRIMARY,
-           GST_TYPE_V4L2SINK) ||
- #endif
-       /*       !gst_element_register (plugin, "v4l2jpegsrc", */
--- 
-1.7.1
-

diff --git a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0007-use-GstQueryBuffers-to-get-buffer-requirements.patch b/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0007-use-GstQueryBuffers-to-get-buffer-requirements.patch
deleted file mode 100644
index 345f9df..0000000
--- a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0007-use-GstQueryBuffers-to-get-buffer-requirements.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From 15c17ea368079fd5de19868af6d9ffad1cb09f3a Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Wed, 19 May 2010 17:33:46 -0500
-Subject: [PATCH 07/11] use GstQueryBuffers to get buffer requirements
-
----
- sys/v4l2/gstv4l2sink.c |   40 ++++++++++++++++++++++++++++++++++++++++
- sys/v4l2/gstv4l2sink.h |    1 +
- 2 files changed, 41 insertions(+), 0 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
-index 66dda8e..12323f7 100644
---- a/sys/v4l2/gstv4l2sink.c
-+++ b/sys/v4l2/gstv4l2sink.c
-@@ -373,6 +373,7 @@ gst_v4l2sink_init (GstV4l2Sink * v4l2sink, GstV4l2SinkClass * klass)
- 
-   /* number of buffers requested */
-   v4l2sink->num_buffers = PROP_DEF_QUEUE_SIZE;
-+  v4l2sink->num_buffers_can_change = TRUE;
-   v4l2sink->min_queued_bufs = PROP_DEF_MIN_QUEUED_BUFS;
- 
-   v4l2sink->probed_caps = NULL;
-@@ -808,6 +809,7 @@ static gboolean
- gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
- {
-   GstV4l2Sink *v4l2sink = GST_V4L2SINK (bsink);
-+  GstQuery *query;
-   gint w = 0, h = 0;
-   gboolean interlaced;
-   struct v4l2_fmtdesc *format;
-@@ -855,6 +857,39 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
-     return FALSE;
-   }
- 
-+  /* query to find if anyone upstream using these buffers has any
-+   * minimum requirements:
-+   */
-+  query = gst_query_new_buffers (caps);
-+  if (gst_element_query (GST_ELEMENT (v4l2sink), query)) {
-+    gint min_buffers, min_width, min_height;
-+
-+    gst_query_parse_buffers_count (query, &min_buffers);
-+
-+    /* XXX need to account for some buffers used by queue, etc.. probably
-+     * queue should handle query, pass on to sink pad, and then add some
-+     * number of buffers to the min, so this value is dynamic depending
-+     * on the pipeline?
-+     */
-+    if (min_buffers != -1) {
-+      min_buffers += 3 + v4l2sink->min_queued_bufs;
-+    }
-+
-+    if (min_buffers > v4l2sink->num_buffers) {
-+      v4l2sink->num_buffers_can_change = FALSE;
-+      v4l2sink->num_buffers = min_buffers;
-+    }
-+
-+    gst_query_parse_buffers_dimensions (query, &min_width, &min_height);
-+    if (min_width > w) {
-+      w = min_width;
-+    }
-+    if (min_height > h) {
-+      h = min_height;
-+    }
-+  }
-+  gst_query_unref (query);
-+
-   if (!gst_v4l2_object_set_format (v4l2sink->v4l2object, format->pixelformat,
-           w, h, interlaced)) {
-     /* error already posted */
-@@ -944,6 +979,11 @@ gst_v4l2sink_buffer_alloc (GstBaseSink * bsink, guint64 offset, guint size,
-       GST_INFO_OBJECT (v4l2sink, "outputting buffers via mmap()");
- 
-       if (v4l2sink->num_buffers != v4l2sink->pool->buffer_count) {
-+        if (!v4l2sink->num_buffers_can_change) {
-+          GST_WARNING_OBJECT (v4l2sink,
-+              "I can't handle a differing number of buffers!!!!");
-+          return GST_FLOW_ERROR;
-+        }
-         v4l2sink->num_buffers = v4l2sink->pool->buffer_count;
-         g_object_notify (G_OBJECT (v4l2sink), "queue-size");
-       }
-diff --git a/sys/v4l2/gstv4l2sink.h b/sys/v4l2/gstv4l2sink.h
-index 907973a..7649fa1 100644
---- a/sys/v4l2/gstv4l2sink.h
-+++ b/sys/v4l2/gstv4l2sink.h
-@@ -58,6 +58,7 @@ struct _GstV4l2Sink {
-   GstCaps *current_caps;        /* the current negotiated caps */
-   GstV4l2BufferPool *pool;
-   guint32 num_buffers;
-+  gboolean num_buffers_can_change;
-   guint32 min_queued_bufs;
- 
-   gint video_width, video_height;      /* original (unscaled) video w/h */
--- 
-1.7.1
-

diff --git a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0008-add-rowstride-support.patch b/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0008-add-rowstride-support.patch
deleted file mode 100644
index f4ff893..0000000
--- a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0008-add-rowstride-support.patch
+++ /dev/null
@@ -1,572 +0,0 @@
-From a86d0326df31103c2ee38ee1e0c62802a758ef13 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Fri, 21 May 2010 15:21:32 -0500
-Subject: [PATCH 08/11] add rowstride support
-
----
- sys/v4l2/gstv4l2object.c |  141 +++++++++++++++++++++++++++++++++++++---------
- sys/v4l2/gstv4l2object.h |    6 +-
- sys/v4l2/gstv4l2sink.c   |   61 +++++++++++++-------
- sys/v4l2/gstv4l2src.c    |   28 +++++----
- 4 files changed, 174 insertions(+), 62 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2object.c b/sys/v4l2/gstv4l2object.c
-index f5672b5..5e34456 100644
---- a/sys/v4l2/gstv4l2object.c
-+++ b/sys/v4l2/gstv4l2object.c
-@@ -1064,16 +1064,23 @@ gst_v4l2_object_get_format_list (GstV4l2Object * v4l2object)
-   return v4l2object->formats;
- }
- 
--
--GstStructure *
--gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc)
-+/*
-+ * gst_v4l2_object_v4l2fourcc_to_structures:
-+ * @fourcc: requested format
-+ * @structures: an array of at least MAX_STRUCTS_PER_FOURCC to return the
-+ *   results in
-+ *
-+ * Returns the number of structures returned via structures
-+ */
-+gint
-+gst_v4l2_object_v4l2fourcc_to_structures (guint32 fourcc,
-+    GstStructure ** structures)
- {
--  GstStructure *structure = NULL;
--
-+  gint count = 0;
-   switch (fourcc) {
-     case V4L2_PIX_FMT_MJPEG:   /* Motion-JPEG */
-     case V4L2_PIX_FMT_JPEG:    /* JFIF JPEG */
--      structure = gst_structure_new ("image/jpeg", NULL);
-+      structures[count++] = gst_structure_new ("image/jpeg", NULL);
-       break;
-     case V4L2_PIX_FMT_RGB332:
-     case V4L2_PIX_FMT_RGB555:
-@@ -1151,17 +1158,25 @@ gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc)
-           g_assert_not_reached ();
-           break;
-       }
--      structure = gst_structure_new ("video/x-raw-rgb",
-+      structures[count++] = gst_structure_new ("video/x-raw-rgb",
-           "bpp", G_TYPE_INT, bpp,
-           "depth", G_TYPE_INT, depth,
-           "red_mask", G_TYPE_INT, r_mask,
-           "green_mask", G_TYPE_INT, g_mask,
-           "blue_mask", G_TYPE_INT, b_mask,
-           "endianness", G_TYPE_INT, endianness, NULL);
-+      structures[count++] = gst_structure_new ("video/x-raw-rgb-strided",
-+          "bpp", G_TYPE_INT, bpp,
-+          "depth", G_TYPE_INT, depth,
-+          "red_mask", G_TYPE_INT, r_mask,
-+          "green_mask", G_TYPE_INT, g_mask,
-+          "blue_mask", G_TYPE_INT, b_mask,
-+          "endianness", G_TYPE_INT, endianness,
-+          "rowstride", GST_TYPE_INT_RANGE, 1, G_MAXINT, NULL);
-       break;
-     }
-     case V4L2_PIX_FMT_GREY:    /*  8  Greyscale     */
--      structure = gst_structure_new ("video/x-raw-gray",
-+      structures[count++] = gst_structure_new ("video/x-raw-gray",
-           "bpp", G_TYPE_INT, 8, NULL);
-       break;
-     case V4L2_PIX_FMT_YYUV:    /* 16  YUV 4:2:2     */
-@@ -1227,38 +1242,41 @@ gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc)
-           g_assert_not_reached ();
-           break;
-       }
--      structure = gst_structure_new ("video/x-raw-yuv",
-+      structures[count++] = gst_structure_new ("video/x-raw-yuv",
-           "format", GST_TYPE_FOURCC, fcc, NULL);
-+      structures[count++] = gst_structure_new ("video/x-raw-yuv-strided",
-+          "format", GST_TYPE_FOURCC, fcc,
-+          "rowstride", GST_TYPE_INT_RANGE, 1, G_MAXINT, NULL);
-       break;
-     }
-     case V4L2_PIX_FMT_DV:
--      structure =
-+      structures[count++] =
-           gst_structure_new ("video/x-dv", "systemstream", G_TYPE_BOOLEAN, TRUE,
-           NULL);
-       break;
-     case V4L2_PIX_FMT_MPEG:    /* MPEG          */
--      structure = gst_structure_new ("video/mpegts", NULL);
-+      structures[count++] = gst_structure_new ("video/mpegts", NULL);
-       break;
-     case V4L2_PIX_FMT_WNVA:    /* Winnov hw compres */
-       break;
- #ifdef V4L2_PIX_FMT_SBGGR8
-     case V4L2_PIX_FMT_SBGGR8:
--      structure = gst_structure_new ("video/x-raw-bayer", NULL);
-+      structures[count++] = gst_structure_new ("video/x-raw-bayer", NULL);
-       break;
- #endif
- #ifdef V4L2_PIX_FMT_SN9C10X
-     case V4L2_PIX_FMT_SN9C10X:
--      structure = gst_structure_new ("video/x-sonix", NULL);
-+      structures[count++] = gst_structure_new ("video/x-sonix", NULL);
-       break;
- #endif
- #ifdef V4L2_PIX_FMT_PWC1
-     case V4L2_PIX_FMT_PWC1:
--      structure = gst_structure_new ("video/x-pwc1", NULL);
-+      structures[count++] = gst_structure_new ("video/x-pwc1", NULL);
-       break;
- #endif
- #ifdef V4L2_PIX_FMT_PWC2
-     case V4L2_PIX_FMT_PWC2:
--      structure = gst_structure_new ("video/x-pwc2", NULL);
-+      structures[count++] = gst_structure_new ("video/x-pwc2", NULL);
-       break;
- #endif
-     default:
-@@ -1267,7 +1285,7 @@ gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc)
-       break;
-   }
- 
--  return structure;
-+  return count;
- }
- 
- 
-@@ -1278,22 +1296,23 @@ gst_v4l2_object_get_all_caps (void)
-   static GstCaps *caps = NULL;
- 
-   if (caps == NULL) {
--    GstStructure *structure;
--
-     guint i;
- 
-     caps = gst_caps_new_empty ();
-     for (i = 0; i < GST_V4L2_FORMAT_COUNT; i++) {
--      structure =
--          gst_v4l2_object_v4l2fourcc_to_structure (gst_v4l2_formats[i].format);
--      if (structure) {
-+      GstStructure *structures[MAX_STRUCTS_PER_FOURCC];
-+      gint count, j;
-+      count =
-+          gst_v4l2_object_v4l2fourcc_to_structures (gst_v4l2_formats[i].format,
-+          structures);
-+      for (j = 0; j < count; j++) {
-         if (gst_v4l2_formats[i].dimensions) {
--          gst_structure_set (structure,
-+          gst_structure_set (structures[j],
-               "width", GST_TYPE_INT_RANGE, 1, GST_V4L2_MAX_SIZE,
-               "height", GST_TYPE_INT_RANGE, 1, GST_V4L2_MAX_SIZE,
-               "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, 100, 1, NULL);
-         }
--        gst_caps_append_structure (caps, structure);
-+        gst_caps_append_structure (caps, structures[j]);
-       }
-     }
-   }
-@@ -1306,12 +1325,14 @@ gst_v4l2_object_get_all_caps (void)
-  * @caps: given input caps
-  * @format: location for the v4l format
-  * @w/@h: location for width and height
-+ * @rs: required rowstride in bytes, or 0 if natural stride (based on format
-+ *   and width) or not-applicable
-  * @fps_n/@fps_d: location for framerate
-  * @size: location for expected size of the frame or 0 if unknown
-  */
- gboolean
- gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps,
--    struct v4l2_fmtdesc ** format, gint * w, gint * h,
-+    struct v4l2_fmtdesc ** format, gint * w, gint * h, gint * rs,
-     gboolean * interlaced, guint * fps_n, guint * fps_d, guint * size)
- {
-   GstStructure *structure;
-@@ -1319,10 +1340,12 @@ gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps,
-   guint32 fourcc;
-   const gchar *mimetype;
-   guint outsize;
-+  struct v4l2_format fmt = { 0, };
- 
-   /* default unknown values */
-   fourcc = 0;
-   outsize = 0;
-+  *rs = 0;
- 
-   structure = gst_caps_get_structure (caps, 0);
- 
-@@ -1351,61 +1374,73 @@ gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps,
-   *fps_n = gst_value_get_fraction_numerator (framerate);
-   *fps_d = gst_value_get_fraction_denominator (framerate);
- 
--  if (!strcmp (mimetype, "video/x-raw-yuv")) {
-+  if (!strcmp (mimetype, "video/x-raw-yuv") ||
-+      !strcmp (mimetype, "video/x-raw-yuv-strided")) {
-     gst_structure_get_fourcc (structure, "format", &fourcc);
- 
-     switch (fourcc) {
-       case GST_MAKE_FOURCC ('I', '4', '2', '0'):
-       case GST_MAKE_FOURCC ('I', 'Y', 'U', 'V'):
-         fourcc = V4L2_PIX_FMT_YUV420;
-+        *rs = GST_ROUND_UP_4 (*w);
-         outsize = GST_ROUND_UP_4 (*w) * GST_ROUND_UP_2 (*h);
-         outsize += 2 * ((GST_ROUND_UP_8 (*w) / 2) * (GST_ROUND_UP_2 (*h) / 2));
-         break;
-       case GST_MAKE_FOURCC ('Y', 'U', 'Y', '2'):
-         fourcc = V4L2_PIX_FMT_YUYV;
-+        *rs = GST_ROUND_UP_2 (*w) * 2;
-         outsize = (GST_ROUND_UP_2 (*w) * 2) * *h;
-         break;
-       case GST_MAKE_FOURCC ('Y', '4', '1', 'P'):
-         fourcc = V4L2_PIX_FMT_Y41P;
-+        *rs = GST_ROUND_UP_2 (*w) * 2;
-         outsize = (GST_ROUND_UP_2 (*w) * 2) * *h;
-         break;
-       case GST_MAKE_FOURCC ('U', 'Y', 'V', 'Y'):
-         fourcc = V4L2_PIX_FMT_UYVY;
-+        *rs = GST_ROUND_UP_2 (*w) * 2;
-         outsize = (GST_ROUND_UP_2 (*w) * 2) * *h;
-         break;
-       case GST_MAKE_FOURCC ('Y', 'V', '1', '2'):
-         fourcc = V4L2_PIX_FMT_YVU420;
-+        *rs = GST_ROUND_UP_4 (*w);
-         outsize = GST_ROUND_UP_4 (*w) * GST_ROUND_UP_2 (*h);
-         outsize += 2 * ((GST_ROUND_UP_8 (*w) / 2) * (GST_ROUND_UP_2 (*h) / 2));
-         break;
-       case GST_MAKE_FOURCC ('Y', '4', '1', 'B'):
-         fourcc = V4L2_PIX_FMT_YUV411P;
-+        *rs = GST_ROUND_UP_4 (*w);
-         outsize = GST_ROUND_UP_4 (*w) * *h;
-         outsize += 2 * ((GST_ROUND_UP_8 (*w) / 4) * *h);
-         break;
-       case GST_MAKE_FOURCC ('Y', '4', '2', 'B'):
-         fourcc = V4L2_PIX_FMT_YUV422P;
-+        *rs = GST_ROUND_UP_4 (*w);
-         outsize = GST_ROUND_UP_4 (*w) * *h;
-         outsize += 2 * ((GST_ROUND_UP_8 (*w) / 2) * *h);
-         break;
-       case GST_MAKE_FOURCC ('N', 'V', '1', '2'):
-         fourcc = V4L2_PIX_FMT_NV12;
-+        *rs = GST_ROUND_UP_4 (*w);
-         outsize = GST_ROUND_UP_4 (*w) * GST_ROUND_UP_2 (*h);
-         outsize += (GST_ROUND_UP_4 (*w) * *h) / 2;
-         break;
-       case GST_MAKE_FOURCC ('N', 'V', '2', '1'):
-         fourcc = V4L2_PIX_FMT_NV21;
-+        *rs = GST_ROUND_UP_4 (*w);
-         outsize = GST_ROUND_UP_4 (*w) * GST_ROUND_UP_2 (*h);
-         outsize += (GST_ROUND_UP_4 (*w) * *h) / 2;
-         break;
- #ifdef V4L2_PIX_FMT_YVYU
-       case GST_MAKE_FOURCC ('Y', 'V', 'Y', 'U'):
-         fourcc = V4L2_PIX_FMT_YVYU;
-+        *rs = GST_ROUND_UP_2 (*w) * 2;
-         outsize = (GST_ROUND_UP_2 (*w) * 2) * *h;
-         break;
- #endif
-     }
--  } else if (!strcmp (mimetype, "video/x-raw-rgb")) {
-+  } else if (!strcmp (mimetype, "video/x-raw-rgb") ||
-+      !strcmp (mimetype, "video/x-raw-rgb-strided")) {
-     gint bpp, endianness, r_mask;
- 
-     gst_structure_get_int (structure, "bpp", &bpp);
-@@ -1415,20 +1450,25 @@ gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps,
-     switch (bpp) {
-       case 8:
-         fourcc = V4L2_PIX_FMT_RGB332;
-+        *rs = *w;
-         break;
-       case 15:
-         fourcc = (endianness == G_LITTLE_ENDIAN) ?
-             V4L2_PIX_FMT_RGB555 : V4L2_PIX_FMT_RGB555X;
-+        *rs = 2 * *w;
-         break;
-       case 16:
-         fourcc = (endianness == G_LITTLE_ENDIAN) ?
-             V4L2_PIX_FMT_RGB565 : V4L2_PIX_FMT_RGB565X;
-+        *rs = 2 * *w;
-         break;
-       case 24:
-         fourcc = (r_mask == 0xFF) ? V4L2_PIX_FMT_BGR24 : V4L2_PIX_FMT_RGB24;
-+        *rs = 3 * *w;
-         break;
-       case 32:
-         fourcc = (r_mask == 0xFF) ? V4L2_PIX_FMT_BGR32 : V4L2_PIX_FMT_RGB32;
-+        *rs = 4 * *w;
-         break;
-     }
-   } else if (strcmp (mimetype, "video/x-dv") == 0) {
-@@ -1458,6 +1498,25 @@ gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps,
-   if (fourcc == 0)
-     return FALSE;
- 
-+  /* check what stride the driver supports */
-+  fmt.type = v4l2object->type;
-+  fmt.fmt.pix.width = *w;
-+  fmt.fmt.pix.height = *h;
-+  fmt.fmt.pix.pixelformat = fourcc;
-+  fmt.fmt.pix.field = V4L2_FIELD_ANY;
-+  fmt.fmt.pix.bytesperline = *rs;
-+  if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_TRY_FMT, &fmt) >= 0) {
-+    if (fmt.fmt.pix.bytesperline == *rs) {
-+      *rs = 0;
-+    } else {
-+      *rs = fmt.fmt.pix.bytesperline;
-+    }
-+    GST_INFO_OBJECT (v4l2object->element, "rowstride: %d", *rs);
-+  } else {
-+    GST_WARNING_OBJECT (v4l2object->element,
-+        "VIDIOC_TRY_FMT should not fail.. driver problem?");
-+  }
-+
- done:
-   *format = gst_v4l2_object_get_format_from_fourcc (v4l2object, fourcc);
-   *size = outsize;
-@@ -1465,6 +1524,36 @@ done:
-   return TRUE;
- }
- 
-+/* Update caps to reflect rowstride that has been requested by the
-+ * driver
-+ */
-+GstCaps *
-+gst_v4l2_object_update_rowstride (GstV4l2Object * v4l2object,
-+    GstCaps * caps, gint rs)
-+{
-+  GstStructure *structure;
-+  const gchar *mimetype;
-+
-+  caps = gst_caps_make_writable (caps);
-+
-+  structure = gst_caps_get_structure (caps, 0);
-+  mimetype = gst_structure_get_name (structure);
-+
-+  if (!strcmp (mimetype, "video/x-raw-yuv")) {
-+    mimetype = "video/x-raw-yuv-strided";
-+    gst_structure_set_name (structure, mimetype);
-+  } else if (!strcmp (mimetype, "video/x-raw-rgb")) {
-+    mimetype = "video/x-raw-rgb-strided";
-+    gst_structure_set_name (structure, mimetype);
-+  }
-+
-+  if (!strcmp (mimetype, "video/x-raw-yuv-strided") ||
-+      !strcmp (mimetype, "video/x-raw-rgb-strided")) {
-+    gst_structure_set (structure, "rowstride", G_TYPE_INT, rs, NULL);
-+  }
-+
-+  return caps;
-+}
- 
- static gboolean
- gst_v4l2_object_get_nearest_size (GstV4l2Object * v4l2object,
-diff --git a/sys/v4l2/gstv4l2object.h b/sys/v4l2/gstv4l2object.h
-index a0dd41c..228e7c7 100644
---- a/sys/v4l2/gstv4l2object.h
-+++ b/sys/v4l2/gstv4l2object.h
-@@ -179,15 +179,17 @@ GstCaps*      gst_v4l2_object_probe_caps_for_format (GstV4l2Object *v4l2object,
-                                              const GstStructure * template);
- 
- gboolean      gst_v4l2_object_get_caps_info (GstV4l2Object *v4l2object, GstCaps *caps,
--                                             struct v4l2_fmtdesc **format, gint *w, gint *h,
-+                                             struct v4l2_fmtdesc **format, gint *w, gint *h, gint *rs,
-                                              gboolean * interlaced, guint *fps_n, guint *fps_d, guint *size);
- 
-+GstCaps *     gst_v4l2_object_update_rowstride (GstV4l2Object * v4l2object, GstCaps * caps, gint rs);
- 
- GSList*       gst_v4l2_object_get_format_list  (GstV4l2Object *v4l2object);
- 
- GstCaps*      gst_v4l2_object_get_all_caps (void);
- 
--GstStructure* gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc);
-+#define MAX_STRUCTS_PER_FOURCC 2
-+gint          gst_v4l2_object_v4l2fourcc_to_structures (guint32 fourcc, GstStructure ** structures);
- 
- gboolean      gst_v4l2_object_set_format (GstV4l2Object *v4l2object, guint32 pixelformat, guint32 width, guint32 height, gboolean interlaced);
- 
-diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
-index 12323f7..a1f78cf 100644
---- a/sys/v4l2/gstv4l2sink.c
-+++ b/sys/v4l2/gstv4l2sink.c
-@@ -776,24 +776,23 @@ gst_v4l2sink_get_caps (GstBaseSink * bsink)
-   for (walk = v4l2sink->v4l2object->formats; walk; walk = walk->next) {
-     struct v4l2_fmtdesc *format;
- 
--    GstStructure *template;
-+    GstStructure *templates[MAX_STRUCTS_PER_FOURCC];
-+    gint count, i;
- 
-     format = (struct v4l2_fmtdesc *) walk->data;
- 
--    template = gst_v4l2_object_v4l2fourcc_to_structure (format->pixelformat);
-+    count = gst_v4l2_object_v4l2fourcc_to_structures (format->pixelformat,
-+        templates);
- 
--    if (template) {
-+    for (i = 0; i < count; i++) {
-       GstCaps *tmp;
- 
--      tmp =
--          gst_v4l2_object_probe_caps_for_format (v4l2sink->v4l2object,
--          format->pixelformat, template);
-+      tmp = gst_v4l2_object_probe_caps_for_format (v4l2sink->v4l2object,
-+          format->pixelformat, templates[i]);
-       if (tmp)
-         gst_caps_append (ret, tmp);
- 
--      gst_structure_free (template);
--    } else {
--      GST_DEBUG_OBJECT (v4l2sink, "unknown format %u", format->pixelformat);
-+      gst_structure_free (templates[i]);
-     }
-   }
- 
-@@ -810,7 +809,7 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
- {
-   GstV4l2Sink *v4l2sink = GST_V4L2SINK (bsink);
-   GstQuery *query;
--  gint w = 0, h = 0;
-+  gint w = 0, h = 0, rs = 0;
-   gboolean interlaced;
-   struct v4l2_fmtdesc *format;
-   guint fps_n, fps_d;
-@@ -823,11 +822,36 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
-     return FALSE;
-   }
- 
-+  /* we want our own v4l2 type of fourcc codes */
-+  if (!gst_v4l2_object_get_caps_info (v4l2sink->v4l2object, caps,
-+          &format, &w, &h, &rs, &interlaced, &fps_n, &fps_d, &size)) {
-+    GST_DEBUG_OBJECT (v4l2sink, "can't get capture format from caps %p", caps);
-+    return FALSE;
-+  }
-+
-+  if (!format) {
-+    GST_DEBUG_OBJECT (v4l2sink, "unrecognized caps!!");
-+    return FALSE;
-+  }
-+
-+  /* we need to make our own ref before we potentially update the
-+   * caps, to avoid that we release a ref that is not owned by us
-+   * when we make the caps writable
-+   */
-+  caps = gst_caps_ref (caps);
-+
-+  /* if necessary, update caps for rowstride */
-+  if (rs) {
-+    caps = gst_v4l2_object_update_rowstride (v4l2sink->v4l2object, caps, rs);
-+    GST_DEBUG_OBJECT (v4l2sink, "updated caps: %" GST_PTR_FORMAT, caps);
-+  }
-+
-   if (v4l2sink->current_caps) {
-     GST_DEBUG_OBJECT (v4l2sink, "already have caps set.. are they equal?");
-     LOG_CAPS (v4l2sink, v4l2sink->current_caps);
-     if (gst_caps_is_equal (v4l2sink->current_caps, caps)) {
-       GST_DEBUG_OBJECT (v4l2sink, "yes they are!");
-+      gst_caps_unref (caps);
-       return TRUE;
-     }
-     GST_DEBUG_OBJECT (v4l2sink, "no they aren't!");
-@@ -842,18 +866,7 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
-      *
-      */
-     GST_DEBUG_OBJECT (v4l2sink, "warning, changing caps not supported yet");
--    return FALSE;
--  }
--
--  /* we want our own v4l2 type of fourcc codes */
--  if (!gst_v4l2_object_get_caps_info (v4l2sink->v4l2object, caps,
--          &format, &w, &h, &interlaced, &fps_n, &fps_d, &size)) {
--    GST_DEBUG_OBJECT (v4l2sink, "can't get capture format from caps %p", caps);
--    return FALSE;
--  }
--
--  if (!format) {
--    GST_DEBUG_OBJECT (v4l2sink, "unrecognized caps!!");
-+    gst_caps_unref (caps);
-     return FALSE;
-   }
- 
-@@ -893,6 +906,7 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
-   if (!gst_v4l2_object_set_format (v4l2sink->v4l2object, format->pixelformat,
-           w, h, interlaced)) {
-     /* error already posted */
-+    gst_caps_unref (caps);
-     return FALSE;
-   }
- 
-@@ -951,6 +965,9 @@ gst_v4l2sink_buffer_alloc (GstBaseSink * bsink, guint64 offset, guint size,
-         return GST_FLOW_ERROR;
-       }
- 
-+      /* caps may have changed in _set_caps() if we need rowstride */
-+      caps = v4l2sink->current_caps;
-+
-       GST_V4L2_CHECK_OPEN (v4l2sink->v4l2object);
- 
-       if (!(v4l2sink->pool = gst_v4l2_buffer_pool_new (GST_ELEMENT (v4l2sink),
-diff --git a/sys/v4l2/gstv4l2src.c b/sys/v4l2/gstv4l2src.c
-index 4a37d35..a9a7787 100644
---- a/sys/v4l2/gstv4l2src.c
-+++ b/sys/v4l2/gstv4l2src.c
-@@ -581,24 +581,23 @@ gst_v4l2src_get_caps (GstBaseSrc * src)
-   for (walk = v4l2src->v4l2object->formats; walk; walk = walk->next) {
-     struct v4l2_fmtdesc *format;
- 
--    GstStructure *template;
-+    GstStructure *templates[MAX_STRUCTS_PER_FOURCC];
-+    gint count, i;
- 
-     format = (struct v4l2_fmtdesc *) walk->data;
- 
--    template = gst_v4l2_object_v4l2fourcc_to_structure (format->pixelformat);
-+    count = gst_v4l2_object_v4l2fourcc_to_structures (format->pixelformat,
-+        templates);
- 
--    if (template) {
-+    for (i = 0; i < count; i++) {
-       GstCaps *tmp;
- 
--      tmp =
--          gst_v4l2_object_probe_caps_for_format (v4l2src->v4l2object,
--          format->pixelformat, template);
-+      tmp = gst_v4l2_object_probe_caps_for_format (v4l2src->v4l2object,
-+          format->pixelformat, templates[i]);
-       if (tmp)
-         gst_caps_append (ret, tmp);
- 
--      gst_structure_free (template);
--    } else {
--      GST_DEBUG_OBJECT (v4l2src, "unknown format %u", format->pixelformat);
-+      gst_structure_free (templates[i]);
-     }
-   }
- 
-@@ -613,7 +612,7 @@ static gboolean
- gst_v4l2src_set_caps (GstBaseSrc * src, GstCaps * caps)
- {
-   GstV4l2Src *v4l2src;
--  gint w = 0, h = 0;
-+  gint w = 0, h = 0, rs = 0;
-   gboolean interlaced;
-   struct v4l2_fmtdesc *format;
-   guint fps_n, fps_d;
-@@ -635,13 +634,18 @@ gst_v4l2src_set_caps (GstBaseSrc * src, GstCaps * caps)
-   }
- 
-   /* we want our own v4l2 type of fourcc codes */
--  if (!gst_v4l2_object_get_caps_info (v4l2src->v4l2object, caps, &format, &w,
--          &h, &interlaced, &fps_n, &fps_d, &size)) {
-+  if (!gst_v4l2_object_get_caps_info (v4l2src->v4l2object, caps, &format,
-+      &w, &h, &rs, &interlaced, &fps_n, &fps_d, &size)) {
-     GST_INFO_OBJECT (v4l2src,
-         "can't get capture format from caps %" GST_PTR_FORMAT, caps);
-     return FALSE;
-   }
- 
-+  /* if necessary, update caps for rowstride */
-+  if (rs) {
-+    caps = gst_v4l2_object_update_rowstride (v4l2src->v4l2object, caps, rs);
-+  }
-+
-   GST_DEBUG_OBJECT (v4l2src, "trying to set_capture %dx%d at %d/%d fps, "
-       "format %s", w, h, fps_n, fps_d, format->description);
- 
--- 
-1.7.1
-

diff --git a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0009-use-GstEventCrop-to-get-crop-info.patch b/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0009-use-GstEventCrop-to-get-crop-info.patch
deleted file mode 100644
index c5d3197..0000000
--- a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0009-use-GstEventCrop-to-get-crop-info.patch
+++ /dev/null
@@ -1,119 +0,0 @@
-From e7497b9f0c6c88b764d8f95e01197e2a2ea0dd95 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Tue, 25 May 2010 11:02:45 -0500
-Subject: [PATCH 09/11] use GstEventCrop to get crop info
-
----
- sys/v4l2/gstv4l2sink.c |   63 +++++++++++++++++++++++++++++++++++++++++++++++-
- 1 files changed, 62 insertions(+), 1 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
-index a1f78cf..feafe7a 100644
---- a/sys/v4l2/gstv4l2sink.c
-+++ b/sys/v4l2/gstv4l2sink.c
-@@ -252,6 +252,7 @@ static GstCaps *gst_v4l2sink_get_caps (GstBaseSink * bsink);
- static gboolean gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps);
- static GstFlowReturn gst_v4l2sink_buffer_alloc (GstBaseSink * bsink,
-     guint64 offset, guint size, GstCaps * caps, GstBuffer ** buf);
-+static gboolean gst_v4l2sink_event (GstBaseSink * bsink, GstEvent * event);
- static GstFlowReturn gst_v4l2sink_show_frame (GstBaseSink * bsink,
-     GstBuffer * buf);
- static void gst_v4l2sink_sync_rotation (GstV4l2Sink * v4l2sink);
-@@ -354,6 +355,7 @@ gst_v4l2sink_class_init (GstV4l2SinkClass * klass)
-   basesink_class->get_caps = GST_DEBUG_FUNCPTR (gst_v4l2sink_get_caps);
-   basesink_class->set_caps = GST_DEBUG_FUNCPTR (gst_v4l2sink_set_caps);
-   basesink_class->buffer_alloc = GST_DEBUG_FUNCPTR (gst_v4l2sink_buffer_alloc);
-+  basesink_class->event = GST_DEBUG_FUNCPTR (gst_v4l2sink_event);
-   basesink_class->render = GST_DEBUG_FUNCPTR (gst_v4l2sink_show_frame);
- }
- 
-@@ -895,11 +897,22 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
- 
-     gst_query_parse_buffers_dimensions (query, &min_width, &min_height);
-     if (min_width > w) {
-+      v4l2sink->crop.width = w;
-+      v4l2sink->crop_fields_set |= RECT_WIDTH_SET;
-       w = min_width;
-     }
-     if (min_height > h) {
-+      v4l2sink->crop.height = h;
-+      v4l2sink->crop_fields_set |= RECT_HEIGHT_SET;
-       h = min_height;
-     }
-+
-+    /* clear top/left crop values.. otherwise by default display will try
-+     * to center, rather than scale, the image if it is too big to fit on
-+     * display
-+     */
-+    v4l2sink->crop.top = v4l2sink->crop.left = 0;
-+    v4l2sink->crop_fields_set |= RECT_TOP_SET | RECT_LEFT_SET;
-   }
-   gst_query_unref (query);
- 
-@@ -919,7 +932,13 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
-   GST_VIDEO_SINK_WIDTH (v4l2sink) = w;
-   GST_VIDEO_SINK_HEIGHT (v4l2sink) = h;
- 
--  v4l2sink->current_caps = gst_caps_ref (caps);
-+  /* this needs to go after gst_v4l2_object_set_format() to ensure driver
-+   * has proper width/height (so we don't confuse it's error checking by
-+   * setting a crop larger than the picture size)
-+   */
-+  gst_v4l2sink_sync_crop_fields (v4l2sink);
-+
-+  v4l2sink->current_caps = caps;
- 
-   return TRUE;
- }
-@@ -1023,6 +1042,48 @@ gst_v4l2sink_buffer_alloc (GstBaseSink * bsink, guint64 offset, guint size,
-   }
- }
- 
-+/* called to handle events */
-+static gboolean
-+gst_v4l2sink_event (GstBaseSink * bsink, GstEvent * event)
-+{
-+  GstV4l2Sink *v4l2sink = GST_V4L2SINK (bsink);
-+  GstEventType type = GST_EVENT_TYPE (event);
-+
-+  GST_DEBUG_OBJECT (v4l2sink, "event %" GST_PTR_FORMAT, event);
-+
-+  switch (type) {
-+    case GST_EVENT_CROP:{
-+      gint top, left, width, height;
-+      gst_event_parse_crop (event, &top, &left, &width, &height);
-+      if (top >= 0) {
-+        v4l2sink->crop.top = top;
-+        v4l2sink->crop_fields_set |= RECT_TOP_SET;
-+      }
-+      if (left >= 0) {
-+        v4l2sink->crop.left = left;
-+        v4l2sink->crop_fields_set |= RECT_LEFT_SET;
-+      }
-+      if (width >= 0) {
-+        v4l2sink->crop.width = width;
-+        v4l2sink->crop_fields_set |= RECT_WIDTH_SET;
-+      }
-+      if (height >= 0) {
-+        v4l2sink->crop.height = height;
-+        v4l2sink->crop_fields_set |= RECT_HEIGHT_SET;
-+      }
-+      gst_v4l2sink_sync_crop_fields (v4l2sink);
-+      return TRUE;
-+    }
-+    default:{
-+      if (GST_BASE_SINK_CLASS (parent_class)->event) {
-+        return GST_BASE_SINK_CLASS (parent_class)->event (bsink, event);
-+      } else {
-+        return TRUE;
-+      }
-+    }
-+  }
-+}
-+
- /* called after A/V sync to render frame */
- static GstFlowReturn
- gst_v4l2sink_show_frame (GstBaseSink * bsink, GstBuffer * buf)
--- 
-1.7.1
-

diff --git a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0010-v4l2-prefer-NV12.patch b/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0010-v4l2-prefer-NV12.patch
deleted file mode 100644
index 301056a..0000000
--- a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0010-v4l2-prefer-NV12.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 107c18830342c69229857f968dff33071d07992d Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Tue, 14 Sep 2010 07:44:01 -0500
-Subject: [PATCH 10/11] v4l2: prefer NV12
-
-All else being equal, the buffer sizes are smaller compared to a 422 format
-like YUY2/UYVY..  although ideally rank would come from driver.
----
- sys/v4l2/gstv4l2object.c |    3 +++
- 1 files changed, 3 insertions(+), 0 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2object.c b/sys/v4l2/gstv4l2object.c
-index 5e34456..644edcf 100644
---- a/sys/v4l2/gstv4l2object.c
-+++ b/sys/v4l2/gstv4l2object.c
-@@ -886,6 +886,9 @@ gst_v4l2_object_format_get_rank (const struct v4l2_fmtdesc *fmt)
-       break;
- 
-     case V4L2_PIX_FMT_NV12:    /* 12  Y/CbCr 4:2:0  */
-+      rank = YUV_BASE_RANK + 11;
-+      break;
-+
-     case V4L2_PIX_FMT_NV21:    /* 12  Y/CrCb 4:2:0  */
-     case V4L2_PIX_FMT_YYUV:    /* 16  YUV 4:2:2     */
-     case V4L2_PIX_FMT_HI240:   /*  8  8-bit color   */
--- 
-1.7.1
-

diff --git a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0011-v4l2sink-fix-issue-seen-with-autoconvert.patch b/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0011-v4l2sink-fix-issue-seen-with-autoconvert.patch
deleted file mode 100644
index 3384de7..0000000
--- a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0011-v4l2sink-fix-issue-seen-with-autoconvert.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 4e319948c62aafd5339c38d065fd8dbfa5a09ced Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Thu, 13 Jan 2011 09:43:08 -0600
-Subject: [PATCH 11/11] v4l2sink: fix issue seen with autoconvert
-
-In this scenario _set_caps() will get called earlier than _buffer_alloc()
-so we need to not override the number of buffers in the case that the
-upstream element answers the query about number of requested buffers.
----
- sys/v4l2/gstv4l2sink.c |    6 ++++--
- 1 files changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
-index feafe7a..ca6ae15 100644
---- a/sys/v4l2/gstv4l2sink.c
-+++ b/sys/v4l2/gstv4l2sink.c
-@@ -881,6 +881,8 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
- 
-     gst_query_parse_buffers_count (query, &min_buffers);
- 
-+    GST_DEBUG_OBJECT (v4l2sink, "min_buffers=%d", min_buffers);
-+
-     /* XXX need to account for some buffers used by queue, etc.. probably
-      * queue should handle query, pass on to sink pad, and then add some
-      * number of buffers to the min, so this value is dynamic depending
-@@ -888,10 +890,10 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
-      */
-     if (min_buffers != -1) {
-       min_buffers += 3 + v4l2sink->min_queued_bufs;
-+      v4l2sink->num_buffers_can_change = FALSE;
-     }
- 
-     if (min_buffers > v4l2sink->num_buffers) {
--      v4l2sink->num_buffers_can_change = FALSE;
-       v4l2sink->num_buffers = min_buffers;
-     }
- 
-@@ -972,7 +974,7 @@ gst_v4l2sink_buffer_alloc (GstBaseSink * bsink, guint64 offset, guint size,
-        * than four buffers:
-        */
-       if (!strcmp ("omap_vout", driver)) {
--        if (v4l2sink->num_buffers > 4) {
-+        if (v4l2sink->num_buffers_can_change && v4l2sink->num_buffers > 4) {
-           v4l2sink->num_buffers = 4;
-           GST_DEBUG_OBJECT (v4l2sink,
-               "limiting to 4 buffers to work-around omap_vout driver bug");
--- 
-1.7.1
-

diff --git a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0099-v4l2sink-Define-rotation-if-kernel-header-doesnt.patch b/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0099-v4l2sink-Define-rotation-if-kernel-header-doesnt.patch
deleted file mode 100644
index 82917b8..0000000
--- a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0099-v4l2sink-Define-rotation-if-kernel-header-doesnt.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 97e06ec24aa68f94bdd75f02d7026490c6080e96 Mon Sep 17 00:00:00 2001
-From: Daniel Diaz <ddiaz@ti.com>
-Date: Fri, 28 Jan 2011 15:23:26 -0600
-Subject: [PATCH] v4l2sink: Define rotation if kernel header doesn't.
-
-Signed-off-by: Daniel Diaz <ddiaz@ti.com>
----
- sys/v4l2/gstv4l2sink.c |    4 ++++
- 1 files changed, 4 insertions(+), 0 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
-index ca6ae15..0438de9 100644
---- a/sys/v4l2/gstv4l2sink.c
-+++ b/sys/v4l2/gstv4l2sink.c
-@@ -102,6 +102,10 @@ GST_IMPLEMENT_V4L2_XOVERLAY_METHODS (GstV4l2Sink, gst_v4l2sink);
- #endif
- GST_IMPLEMENT_V4L2_VIDORIENT_METHODS (GstV4l2Sink, gst_v4l2sink);
- 
-+#ifndef V4L2_CID_ROTATE
-+#  define V4L2_CID_ROTATE (V4L2_CID_BASE+34)
-+#endif
-+
- static gboolean
- gst_v4l2sink_iface_supported (GstImplementsInterface * iface, GType iface_type)
- {
--- 
-1.7.3.4

diff --git a/media-plugins/gst-plugins-v4l2/gst-plugins-v4l2-0.10.27_p20110127.ebuild b/media-plugins/gst-plugins-v4l2/gst-plugins-v4l2-0.10.27_p20110127.ebuild
deleted file mode 100644
index 7f93109..0000000
--- a/media-plugins/gst-plugins-v4l2/gst-plugins-v4l2-0.10.27_p20110127.ebuild
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-inherit gst-plugins-good
-
-DESCRIPION="Plug-in to allow capture from video4linux2 (V4L2) devices"
-KEYWORDS="~alpha ~amd64 arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
-IUSE=""
-
-RDEPEND=">=media-libs/gst-plugins-base-0.10.32_p20110127"
-DEPEND="${RDEPEND}
-	virtual/os-headers"
-
-GST_PLUGINS_BUILD="gst_v4l2"
-
-src_unpack() {
-	unpack ${A}
-	cd "${S}"
-	epatch "${FILESDIR}"/gst-0.10.27-0001-v4l2-fix-handling-of-RGB32-BGR32-formats.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0002-v4l2sink-Add-rotation-support.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0003-v4l2sink-Add-flip-property.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0004-v4l2sink-Add-support-for-omap24xxvout-driver.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0005-v4l2sink-Add-support-for-omap_vout-driver.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0006-v4l2-increase-v4l2sink-element-rank.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0007-use-GstQueryBuffers-to-get-buffer-requirements.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0008-add-rowstride-support.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0009-use-GstEventCrop-to-get-crop-info.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0010-v4l2-prefer-NV12.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0011-v4l2sink-fix-issue-seen-with-autoconvert.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0099-v4l2sink-Define-rotation-if-kernel-header-doesnt.patch
-}

diff --git a/net-wireless/tibtfm-wl1271-firmware/Manifest b/net-wireless/tibtfm-wl1271-firmware/Manifest
deleted file mode 100644
index 0f1098e..0000000
--- a/net-wireless/tibtfm-wl1271-firmware/Manifest
+++ /dev/null
@@ -1,3 +0,0 @@
-DIST tibtfm-wl1271-firmware_0.24.9.2.orig.tar.gz 44187 RMD160 c3575822eca64849f892c5063f973a702a0429fe SHA1 76b6e33f11845d61360dea04770231901a29323a SHA256 12320157d91b40d3917cc48046b0ab47ef840576b0b6b899d1bc6bff1ef687f2
-EBUILD tibtfm-wl1271-firmware-0.24.9.2.ebuild 592 RMD160 c5b9ae40e0b1ecacc4b8536fa70863a0e63bed81 SHA1 7ba732cbc9e402f25a7c5d1ae8ecfe40c8c6d218 SHA256 9b99575e66c144616fd9759b2ff56c497eeacbffb7e237e6e5cc12a781b8268b
-MISC metadata.xml 222 RMD160 3f50aa50f95905f1387e67bc72c80b4c1b63aab4 SHA1 b5ad6eab5a55d57fd25fa68a46d1359cc25759aa SHA256 b8f80af5f2e9d409535bd1e3981b685a013f820ec82b504d82d5c9c077cd9fa6

diff --git a/net-wireless/tibtfm-wl1271-firmware/metadata.xml b/net-wireless/tibtfm-wl1271-firmware/metadata.xml
deleted file mode 100644
index f6b1086..0000000
--- a/net-wireless/tibtfm-wl1271-firmware/metadata.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
-<herd>no-herd</herd>
-<maintainer>
-	<email>armin76@gentoo.org</email>
-</maintainer>
-</pkgmetadata>

diff --git a/net-wireless/tibtfm-wl1271-firmware/tibtfm-wl1271-firmware-0.24.9.2.ebuild b/net-wireless/tibtfm-wl1271-firmware/tibtfm-wl1271-firmware-0.24.9.2.ebuild
deleted file mode 100644
index 6569755..0000000
--- a/net-wireless/tibtfm-wl1271-firmware/tibtfm-wl1271-firmware-0.24.9.2.ebuild
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 1999-2007 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-wireless/zd1211-firmware/zd1211-firmware-1.4.ebuild,v 1.2 2007/11/03 12:03:19 dsd Exp $
-
-DESCRIPTION="Firmware for Texas Instruments WiLinkTM solution (WL1271)"
-
-HOMEPAGE="https://gforge.ti.com/gf/project/wilink_drivers/"
-SRC_URI="https://launchpad.net/~tiomap-dev/+archive/release/+files/${PN}_${PV}.orig.tar.gz"
-
-
-LICENSE="TI-TSPA-v1"
-SLOT="0"
-KEYWORDS="arm"
-
-IUSE=""
-DEPEND=""
-
-
-src_install() {
-	insinto /lib/firmware/
-	doins init_scripts/*
-}

diff --git a/net-wireless/tibtfm-wl1271/Manifest b/net-wireless/tibtfm-wl1271/Manifest
deleted file mode 100644
index d92ac24..0000000
--- a/net-wireless/tibtfm-wl1271/Manifest
+++ /dev/null
@@ -1,5 +0,0 @@
-AUX tibtfm-wl1271.init 704 RMD160 2a0b45c33f6a0bca00c6f62917caa2b05981f70b SHA1 e0db3f00841a075445ffe02b759547f2b7bb7462 SHA256 c31555c50d7d2520b9a1716382e3405b3e376ac1be05311c73dd2e8ac4197377
-DIST tibtfm-wl1271_0.24.9-0ubuntu6.diff.gz 4110 RMD160 4b6a9c13c9765458cf6d65a417de0ceb48c99de4 SHA1 3be118bee561efe59af28e1164b4a99ce8aff74d SHA256 d97315e1ffe66c1fc625726aff6a18fc67183e3def28616fb819ea2466e1487b
-DIST tibtfm-wl1271_0.24.9.orig.tar.gz 12032 RMD160 2c7fed1bf8d09f38f86d6443d4139713043397e3 SHA1 a28ae4d05d7730ea6d07576531059067e3374fca SHA256 9e243042c48fb2591735b0526d265f4f03af779acc8a31f6c847a45138d041b0
-EBUILD tibtfm-wl1271-0.24.9.ebuild 942 RMD160 0efa3e09faea04f1430708e6440311435c536b50 SHA1 17a75550d8864e36444268a22876513bf384416a SHA256 ba397eb8836afb8ec7c5e18a8d48dfca32dc2a2eba0926e736944342eefa571c
-MISC metadata.xml 222 RMD160 3f50aa50f95905f1387e67bc72c80b4c1b63aab4 SHA1 b5ad6eab5a55d57fd25fa68a46d1359cc25759aa SHA256 b8f80af5f2e9d409535bd1e3981b685a013f820ec82b504d82d5c9c077cd9fa6

diff --git a/net-wireless/tibtfm-wl1271/files/tibtfm-wl1271.init b/net-wireless/tibtfm-wl1271/files/tibtfm-wl1271.init
deleted file mode 100755
index 8975be6..0000000
--- a/net-wireless/tibtfm-wl1271/files/tibtfm-wl1271.init
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/sbin/runscript
-# Copyright 1999-2008 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-wireless/bluez/files/4.60/bluetooth-init.d,v 1.2 2010/06/11 10:14:00 pacho Exp $
-
-depend() {
-	after coldplug
-	need dbus localmount
-}
-
-start() {
-   	ebegin "Initializing BT module of wl1271"
-
-	start-stop-daemon --start --oknodo --background \
-	--name tibtfm-wl1271 --pidfile /var/run/tibtfm-wl1271.pid --make-pidfile \
-	--exec /usr/bin/uim -- /dev/ttyO1 3686400 1 22 
-
-	eend $?
-}
-
-stop() {
-	ebegin "Deinitializing BT module of wl1271"
-	start-stop-daemon --stop  \
-        --name tibtfm-wl1271 --pidfile /var/run/tibtfm-wl1271.pid
-	eend $?
-}

diff --git a/net-wireless/tibtfm-wl1271/metadata.xml b/net-wireless/tibtfm-wl1271/metadata.xml
deleted file mode 100644
index f6b1086..0000000
--- a/net-wireless/tibtfm-wl1271/metadata.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
-<herd>no-herd</herd>
-<maintainer>
-	<email>armin76@gentoo.org</email>
-</maintainer>
-</pkgmetadata>

diff --git a/net-wireless/tibtfm-wl1271/tibtfm-wl1271-0.24.9.ebuild b/net-wireless/tibtfm-wl1271/tibtfm-wl1271-0.24.9.ebuild
deleted file mode 100644
index 5a70f52..0000000
--- a/net-wireless/tibtfm-wl1271/tibtfm-wl1271-0.24.9.ebuild
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright 1999-2007 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-wireless/zd1211-firmware/zd1211-firmware-1.4.ebuild,v 1.2 2007/11/03 12:03:19 dsd Exp $
-
-EAPI="2"
-
-inherit eutils
-
-MY_P="${PN}_${PV}"
-
-DESCRIPTION="Texas Instruments WiLinkTM solution (WL1271) applications"
-HOMEPAGE="https://gforge.ti.com/gf/project/wilink_drivers/"
-BASE_URI="https://launchpad.net/~tiomap-dev/+archive/release/+files"
-SRC_URI="${BASE_URI}/${MY_P}.orig.tar.gz"
-SRC_URI="${SRC_URI} ${BASE_URI}/${MY_P}-0ubuntu6.diff.gz"
-
-
-
-LICENSE="TI-TSPA-v1"
-SLOT="0"
-KEYWORDS="arm"
-
-IUSE=""
-RDEPEND="net-wireless/tibtfm-wl1271-firmware"
-DEPEND="${RDEPEND}"
-
-src_prepare() {
-	cd ${WORKDIR}
-
-	epatch ${MY_P}*.diff
-	cd "${S}"
-	epatch "${S}"/debian/patches/*.patch
-}
-
-src_compile() {
-	cd "${S}"/uim
-	make -j1
-}
-
-src_install() {
-	cd "${S}"
-	dobin uim/uim
-
-	newinitd "${FILESDIR}"/${PN}.init ${PN}
-}

diff --git a/net-wireless/tiwlan-wl1271-firmware/Manifest b/net-wireless/tiwlan-wl1271-firmware/Manifest
deleted file mode 100644
index a2a82bc..0000000
--- a/net-wireless/tiwlan-wl1271-firmware/Manifest
+++ /dev/null
@@ -1,3 +0,0 @@
-DIST tiwlan-wl1271-firmware_0.24.9.1.orig.tar.gz 167524 RMD160 b094c1d787c889369d91f4b8c30bcaef5c6fdc5c SHA1 39a52b01792109f9fb9014fcc11f06bf2e74259b SHA256 b1641e294f1838911c39936c3e3cc23822dab32f42f84754e47c3b7f7cf1fe79
-EBUILD tiwlan-wl1271-firmware-0.24.9.1.ebuild 641 RMD160 4301708ec5ece7f8a7cb4b028de90b7a00d5e0ce SHA1 5cce61a3473f40970f41e0d8b820247588883351 SHA256 036ccbeb1ae1ce8bf9fb4870820bb68da8abab062c4042051f1440ceba156b84
-MISC metadata.xml 222 RMD160 3f50aa50f95905f1387e67bc72c80b4c1b63aab4 SHA1 b5ad6eab5a55d57fd25fa68a46d1359cc25759aa SHA256 b8f80af5f2e9d409535bd1e3981b685a013f820ec82b504d82d5c9c077cd9fa6

diff --git a/net-wireless/tiwlan-wl1271-firmware/metadata.xml b/net-wireless/tiwlan-wl1271-firmware/metadata.xml
deleted file mode 100644
index f6b1086..0000000
--- a/net-wireless/tiwlan-wl1271-firmware/metadata.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
-<herd>no-herd</herd>
-<maintainer>
-	<email>armin76@gentoo.org</email>
-</maintainer>
-</pkgmetadata>

diff --git a/net-wireless/tiwlan-wl1271-firmware/tiwlan-wl1271-firmware-0.24.9.1.ebuild b/net-wireless/tiwlan-wl1271-firmware/tiwlan-wl1271-firmware-0.24.9.1.ebuild
deleted file mode 100644
index eb00465..0000000
--- a/net-wireless/tiwlan-wl1271-firmware/tiwlan-wl1271-firmware-0.24.9.1.ebuild
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 1999-2007 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-wireless/zd1211-firmware/zd1211-firmware-1.4.ebuild,v 1.2 2007/11/03 12:03:19 dsd Exp $
-
-DESCRIPTION="Firmware for Texas Instruments WiLinkTM solution (WL1271)"
-
-HOMEPAGE="https://gforge.ti.com/gf/project/wilink_drivers/"
-SRC_URI="https://launchpad.net/~tiomap-dev/+archive/release/+files/tiwlan-wl1271-firmware_${PV}.orig.tar.gz"
-
-
-LICENSE="TI-TSPA-v1"
-SLOT="0"
-KEYWORDS="arm"
-
-IUSE=""
-DEPEND=""
-
-
-src_install() {
-#	cd "${S}"
-	insinto /lib/firmware/tiwlan-wl1271
-	doins firmware/firmware.bin
-}

diff --git a/net-wireless/tiwlan-wl1271/ChangeLog b/net-wireless/tiwlan-wl1271/ChangeLog
deleted file mode 100644
index 625d23e..0000000
--- a/net-wireless/tiwlan-wl1271/ChangeLog
+++ /dev/null
@@ -1,8 +0,0 @@
-# ChangeLog for net-wireless/tiwlan-wl1271
-# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: $
-
-  24 Dec 2010; Raúl Porcel <armin76@gentoo.org>
-  tiwlan-wl1271-0.24.9.ebuild:
-  Enhanced ebuild
-

diff --git a/net-wireless/tiwlan-wl1271/Manifest b/net-wireless/tiwlan-wl1271/Manifest
deleted file mode 100644
index 1f156f6..0000000
--- a/net-wireless/tiwlan-wl1271/Manifest
+++ /dev/null
@@ -1,5 +0,0 @@
-DIST tiwlan-wl1271_0.24.9-0ubuntu6.diff.gz 5228 RMD160 3dc0bb430d8e9b4cc12bbef050880b36c3af48af SHA1 72d21447f83b9113aa059c66db351a132c86dcb6 SHA256 bd9c72409a2cd79ff14c05f4e1d258840af68ef359edb8cbb3baf2f8c8d1c12c
-DIST tiwlan-wl1271_0.24.9.orig.tar.gz 1251415 RMD160 f10c004a0770de6efd61eb5b6a7d4f20147b15ea SHA1 6fbfd5b8bb382ed68e66116e061e41a41bec5d98 SHA256 60a64c8c3daee9dc897a8918e2f082bcfcb4a3dbd66c013978e331e1c8e6127b
-EBUILD tiwlan-wl1271-0.24.9.ebuild 1520 RMD160 1a480eb6cb864e704b0eacf932aca587b1c692fa SHA1 52bc6789e61fa3693e4c00012675ded6a51b34fc SHA256 30371da654faa299ae034fbdc14d6da7df6531b12db1eaa97981062b57f186df
-MISC ChangeLog 226 RMD160 865cb82d56f68a03ebadb5952c5c81e31eb42987 SHA1 2db2fe47296b2ef3c65853077ea7b63308384a6c SHA256 60eb2847621f2908efd00cdedcfea3bf52e84d26143facafa0136841d79c7f53
-MISC metadata.xml 222 RMD160 3f50aa50f95905f1387e67bc72c80b4c1b63aab4 SHA1 b5ad6eab5a55d57fd25fa68a46d1359cc25759aa SHA256 b8f80af5f2e9d409535bd1e3981b685a013f820ec82b504d82d5c9c077cd9fa6

diff --git a/net-wireless/tiwlan-wl1271/metadata.xml b/net-wireless/tiwlan-wl1271/metadata.xml
deleted file mode 100644
index f6b1086..0000000
--- a/net-wireless/tiwlan-wl1271/metadata.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
-<herd>no-herd</herd>
-<maintainer>
-	<email>armin76@gentoo.org</email>
-</maintainer>
-</pkgmetadata>

diff --git a/net-wireless/tiwlan-wl1271/tiwlan-wl1271-0.24.9.ebuild b/net-wireless/tiwlan-wl1271/tiwlan-wl1271-0.24.9.ebuild
deleted file mode 100644
index 2e90a53..0000000
--- a/net-wireless/tiwlan-wl1271/tiwlan-wl1271-0.24.9.ebuild
+++ /dev/null
@@ -1,70 +0,0 @@
-# Copyright 1999-2010 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-wireless/zd1211-firmware/zd1211-firmware-1.4.ebuild,v 1.2 2007/11/03 12:03:19 dsd Exp $
-
-EAPI="2"
-
-inherit eutils linux-mod
-
-MY_P="${PN}_${PV}"
-
-DESCRIPTION="Texas Instruments WiLinkTM solution (WL1271) applications"
-HOMEPAGE="https://gforge.ti.com/gf/project/wilink_drivers/"
-BASE_URI="https://launchpad.net/~tiomap-dev/+archive/release/+files"
-SRC_URI="${BASE_URI}/${MY_P}.orig.tar.gz"
-SRC_URI="${SRC_URI} ${BASE_URI}/${MY_P}-0ubuntu6.diff.gz"
-
-
-
-LICENSE="TI-TSPA-v1"
-SLOT="0"
-KEYWORDS="arm"
-
-IUSE=""
-RDEPEND="net-wireless/tiwlan-wl1271-firmware"
-DEPEND="${RDEPEND}"
-
-
-pkg_setup() {
-    linux-mod_pkg_setup
-
-}
-
-src_prepare() {
-	cd ${WORKDIR}
-
-	epatch ${MY_P}*.diff
-	cd "${S}"
-	epatch "${S}"/debian/patches/*.patch
-
-	cd wlan
-	cp wlan/Makefile .
-}
-
-src_compile() {
-	cd wlan
-        # compile modules
-        emake -j1 KERNEL_HEADERS=${KV_DIR} || die
-
-        # compile utils
-        cd CUDK
-        emake -j1 || die
-}
-
-src_install() {
-#	cd "${S}"
-	insinto /etc/udev/rules.d/
-	newins debian/tiwlan-wl1271-dkms.udev 40-tiwlan-wl1271.rules
-	
-	cd wlan/CUDK/output/
-	newbin tiwlan_loader tiwlan_loader_wl1271
-	newbin wlan_cu wlan_cu_wl1271
-	cd ../../platforms/os/linux/
-	insinto /lib/firmware/tiwlan-wl1271
-	doins tiwlan.ini tiwlan_dual.ini
-
-	cd "${S}"/wlan
-        insinto /lib/modules/${KV_FULL}/kernel/drivers/net/wireless/tiwlan-wl1271
-        doins sdio.ko tiwlan_drv.ko
-
-}

diff --git a/sys-kernel/omap4-sources/Manifest b/sys-kernel/omap4-sources/Manifest
index c929c9a..8d9571d 100644
--- a/sys-kernel/omap4-sources/Manifest
+++ b/sys-kernel/omap4-sources/Manifest
@@ -1,3 +1,5 @@
-DIST linux-ti-omap4_2.6.35-903.21.tar.gz 92525616 RMD160 270560330295d8821c3fd97786311a3c3b368dc3 SHA1 b1d687914035c1791f12ef008523a14257e9cf05 SHA256 4c17428854800e17cf66d702a552c79614edc247280e2eb8d40383d3f61c8c7e
-EBUILD omap4-sources-2.6.35.903.21.ebuild 577 RMD160 9fab1a35337dcfda1b55920d65bb5040fc5e7176 SHA1 8d628288133b0aa38a10f804957224c6a41ee62b SHA256 c7163f7c53b1d447bc23216b5d4d0847b409faa7c0897d08c9d77f1f12433acc
+DIST linux-ti-omap4_2.6.35-980.1release9.tar.gz 96864653 RMD160 43f6842b80da45f30424730da6c1036bc4b27115 SHA1 b63641ac0f1211e8f1bdfa586f350d0c17fa2267 SHA256 bf36a5746e282c839365010fb3908ba41768fcc54ceb6d67e28168fe0f350ef3
+DIST linux-ti-omap4_2.6.38-1207.10.tar.gz 100113866 RMD160 31cf5ebbd5be67ec75583bce91d32462ce24e827 SHA1 71ff4f2e020d1798a02fe153bfa26f96e495c4cc SHA256 a0b7a54e3362d1a2077088d3ae4213e800b394b75e187977c5fdf0d142c355ee
+EBUILD omap4-sources-2.6.35.980.1.9.ebuild 702 RMD160 52fe25f51123e0455e9ecc80f2051a04e04c6e0b SHA1 75bd9e8aec3e7bdeffd133e38b2f03218d9d0920 SHA256 da64086b86e45ac322048eb03fbe5d535af6cad9fb8208143683c6514ab5ef49
+EBUILD omap4-sources-2.6.38.1207.10.ebuild 574 RMD160 b4edddcc5e2d91c70ed7741d2968ac398c026f9f SHA1 64b28882fc92be7addf33ea0790c0fbe659fb95f SHA256 b74586ce37057dd1d0c40ee00ae80fe6dac5fda4ecd5f7083293e08ef5ff8efa
 MISC ChangeLog 663 RMD160 19c9debc73af5d511129a3826392ffed45fe8c59 SHA1 4ef0771489f535703215d31d88844eaf4939e499 SHA256 73e1c0fc7d1a00c7ea9a1171826d8920d36517757aa8e6a3b76ed5a1b54d4329

diff --git a/sys-kernel/omap4-sources/omap4-sources-2.6.35.903.21.ebuild b/sys-kernel/omap4-sources/omap4-sources-2.6.38.1207.10.ebuild
similarity index 93%
rename from sys-kernel/omap4-sources/omap4-sources-2.6.35.903.21.ebuild
rename to sys-kernel/omap4-sources/omap4-sources-2.6.38.1207.10.ebuild
index 4bffafe..e07ed9b 100644
--- a/sys-kernel/omap4-sources/omap4-sources-2.6.35.903.21.ebuild
+++ b/sys-kernel/omap4-sources/omap4-sources-2.6.38.1207.10.ebuild
@@ -21,7 +21,7 @@ S="${WORKDIR}"
 
 src_unpack() {
 	unpack ${A}
-	mv ubuntu-maverick linux-${PV}-omap4
+	mv ubuntu-natty linux-${PV}-omap4
 
 }
 

diff --git a/x11-drivers/pvr-omap4-kernel/Manifest b/x11-drivers/pvr-omap4-kernel/Manifest
index 330388b..df27fe3 100644
--- a/x11-drivers/pvr-omap4-kernel/Manifest
+++ b/x11-drivers/pvr-omap4-kernel/Manifest
@@ -1,4 +1,4 @@
-DIST pvr-omap4-kernel_0.24.9-2.diff.gz 5198 RMD160 851c03ecf256bf5b48ee6999036ea3b4aaa55853 SHA1 cf10d0f0df7db2443ba0abadb040be404f504a7d SHA256 e8f26952e588dfe0d009df909faa4d9cceaaacecf48fc5902544c71506a2c81d
-DIST pvr-omap4-kernel_0.24.9.orig.tar.gz 325677 RMD160 337236a41bc6d8a19b61214873bc80fcacea4151 SHA1 9b05cc80e93ee8eac34c73068386efeb417c3cf0 SHA256 0b404586a23eaebaa586ec18fd1da8cb3eed7682b1887823527ac62195e104bb
-EBUILD pvr-omap4-kernel-0.24.9.ebuild 998 RMD160 6b42cd3f6b27acc99e6a1b2d5157111408a71f96 SHA1 6d60f97d3aae672c1b8b5b8afcbf9d47b55e9003 SHA256 f35b29f7befd00746d7b56e6a312295f140efd1d78cb10f1d9e9f9f9460a0beb
+DIST pvr-omap4-kernel_1.7~git0f0b25f-2natty2.diff.gz 13621 RMD160 6399193111e475d79f579536f93885a83bd088b8 SHA1 e931e78cdb2abe23355c13656b915b7deb83ded3 SHA256 fd00668d34b698af60d0d62454a268a6aa98da522ab265153fb4f2310ba308fb
+DIST pvr-omap4-kernel_1.7~git0f0b25f.orig.tar.gz 379145 RMD160 a22e28d016bd5f0e3e8684ef8f315b8e6e2f0155 SHA1 c03dde4b540238526fd17df2705961db29871d4e SHA256 f0302437c159224cb591d41f29c44404941e97dc106cdfe588357b449545b18a
+EBUILD pvr-omap4-kernel-1.7.ebuild 948 RMD160 b3d20bbda4d9c22991ce213c29a5aecf4c70aa60 SHA1 5e78bc484dd28925e335a4879f070e551f2ba40e SHA256 92a181e281a946148438fc80372bb36ade820b67931e1e147e7674f0761f0813
 MISC ChangeLog 282 RMD160 0855c8692ee9341c2362eced70bf4572b58316f5 SHA1 5a1a636c8e89b3d701126445f4bb167c4c3bbdda SHA256 be2697730c16019faba9e3440abca06ea219ef08744be943e97b5c9e2240a2d2

diff --git a/x11-drivers/pvr-omap4-kernel/pvr-omap4-kernel-0.24.9.ebuild b/x11-drivers/pvr-omap4-kernel/pvr-omap4-kernel-1.7.ebuild
similarity index 60%
rename from x11-drivers/pvr-omap4-kernel/pvr-omap4-kernel-0.24.9.ebuild
rename to x11-drivers/pvr-omap4-kernel/pvr-omap4-kernel-1.7.ebuild
index 816fad5..46a4f3e 100644
--- a/x11-drivers/pvr-omap4-kernel/pvr-omap4-kernel-0.24.9.ebuild
+++ b/x11-drivers/pvr-omap4-kernel/pvr-omap4-kernel-1.7.ebuild
@@ -9,8 +9,8 @@ inherit eutils linux-mod
 DESCRIPTION="PowerVR SGX540 kernel driver for OMAP4"
 
 HOMEPAGE=""
-SRC_URI="https://launchpad.net/~tiomap-dev/+archive/release/+files/${PN}_${PV}.orig.tar.gz
-https://launchpad.net/~tiomap-dev/+archive/release/+files/${PN}_${PV}-2.diff.gz"
+SRC_URI="https://launchpad.net/~tiomap-dev/+archive/omap-trunk/+files/${PN}_1.7~git0f0b25f.orig.tar.gz
+https://launchpad.net/~tiomap-dev/+archive/omap-trunk/+files/${PN}_1.7~git0f0b25f-2natty2.diff.gz"
 
 
 LICENSE="TI"
@@ -21,25 +21,24 @@ IUSE=""
 DEPEND=""
 
 S="${WORKDIR}/${P}/sgx"
-RESTRICT="strip"
+#RESTRICT="strip"
 
 src_prepare() {
 	cd "${WORKDIR}"
 	epatch *.diff
-	
-	cd "${S}/.."
+
+	mv pvr-omap4-kernel-1.7~git0f0b25f ${P}
+
+	cd "${P}"
+
 	epatch debian/patches/*.patch
 }
 
 src_compile() {
-#	cd eurasiacon/build/linux/omap4430_linux/kbuild/
-	
-	export SUPPORT_XORG=1
-	emake -j1 KERNELDIR="${KV_DIR}" LDFLAGS="" || die
+	emake -j1 KERNELDIR="${KV_DIR}" LDFLAGS="" FLAVOUR=release  || die
 }
 
 src_install() {
 	insinto /lib/modules/${KV_FULL}/kernel/extra
-#	doins eurasiacon/binary_omap4430_linux_release/pvrsrvkm.ko
 	doins pvrsrvkm.ko
 }

diff --git a/x11-drivers/pvr-omap4/Manifest b/x11-drivers/pvr-omap4/Manifest
index 957970d..313b896 100644
--- a/x11-drivers/pvr-omap4/Manifest
+++ b/x11-drivers/pvr-omap4/Manifest
@@ -1,4 +1,4 @@
-DIST pvr-omap4_0.24.9c-1.diff.gz 9093 RMD160 88a2bea866a1b79d530289b6db5aa25644724e1e SHA1 911e8f9923449aa42a5df5f7fb3483d4b5431863 SHA256 ec75aba62209e86e0489427aead6619ab31b387a08f8575efc53cf60add773c6
-DIST pvr-omap4_0.24.9c.orig.tar.gz 1149685 RMD160 a6653bbd91746e1f8e8322614772cd96409cc8b2 SHA1 d3b6b0424a2fec88a5a3a16a0203f953e79f10ff SHA256 6b8e5904579ec3bae1467b5950d915bbad63ef3d0e54972370b9fddf9124852c
-EBUILD pvr-omap4-0.24.9c.ebuild 875 RMD160 00ebd4e7e9e437032fa405df0324ed0e73402da2 SHA1 76aee2463ffa13de0038b2ceedb65b4e45be340a SHA256 9a90022025d4b654d4cf8e5f8766a84a8162f6bf256633bb6cbcb2df01db655b
+DIST pvr-omap4_1.7~git0f0b25f.2natty5-1.diff.gz 9772 RMD160 139c944be520f0a405d10951821816e9fe407f10 SHA1 3fd724cb2c2b7a821a1f82a34d92e3766aab9432 SHA256 62776a6470ea3e921f130a3599d2f09ac9fcf7bf713920a10092be10b0616e6e
+DIST pvr-omap4_1.7~git0f0b25f.2natty5.orig.tar.gz 1852247 RMD160 a9ed7cd33145bc1436b209801ab737df2474de65 SHA1 99c460048fdcdf66da3b6a7f91f463f597856df2 SHA256 e64e98ba3cd75a629390b22828295d7901dd844da5a4a73c91a360eb0d9ed9ef
+EBUILD pvr-omap4-1.7.ebuild 1108 RMD160 c2371f0d41c65208b6d1713e1a34493d1e84b795 SHA1 b58a8db296c22a70e5fcd4ddee9fa2f25f0b0700 SHA256 d09706607e8fd39c1f70f0422b8f92287ba7450ad5240a1ef7ddd5f2b9a6f035
 MISC ChangeLog 564 RMD160 e24f6483546ce946be8605a4950b8c92eb30cad2 SHA1 5be113fcf58be034eee14679ffeda3b73c00a9f1 SHA256 fa5dac271f0034d161be3e8abd4840db38242f9d3f911ff1e8680a2d4c97f631

diff --git a/x11-drivers/pvr-omap4/pvr-omap4-0.24.9c.ebuild b/x11-drivers/pvr-omap4/pvr-omap4-0.24.9c.ebuild
deleted file mode 100644
index ac962ff..0000000
--- a/x11-drivers/pvr-omap4/pvr-omap4-0.24.9c.ebuild
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-wireless/zd1211-firmware/zd1211-firmware-1.4.ebuild,v 1.2 2007/11/03 12:03:19 dsd Exp $
-
-EAPI="3"
-
-inherit eutils
-
-DESCRIPTION="PowerVR SGX540 libraries for OMAP4"
-
-HOMEPAGE=""
-SRC_URI="https://launchpad.net/~tiomap-dev/+archive/release/+files/${PN}_${PV}.orig.tar.gz
-https://launchpad.net/~tiomap-dev/+archive/release/+files/${PN}_${PV}-1.diff.gz"
-
-
-LICENSE="TI"
-SLOT="0"
-KEYWORDS="arm"
-
-IUSE=""
-DEPEND=">=x11-base/xorg-server-1.9
-	x11-libs/libdrm
-	=x11-drivers/pvr-omap4-kernel-0.24.9"
-RDEPEND="${DEPEND}"
-
-S="${WORKDIR}"
-RESTRICT="strip"
-
-src_prepare() {
-	epatch *.diff
-	mv ${P}/Makefile .
-}
-
-src_install() {
-	make DESTDIR="${D}" install
-	rm -rf "${D}"/usr/lib/libEGL.so.1 \
-		"${D}"/etc/init "${D}"/usr/lib/libOpenVG.so.1
-
-}

diff --git a/x11-drivers/pvr-omap4/pvr-omap4-1.7.ebuild b/x11-drivers/pvr-omap4/pvr-omap4-1.7.ebuild
new file mode 100644
index 0000000..ce11a8e
--- /dev/null
+++ b/x11-drivers/pvr-omap4/pvr-omap4-1.7.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-wireless/zd1211-firmware/zd1211-firmware-1.4.ebuild,v 1.2 2007/11/03 12:03:19 dsd Exp $
+
+EAPI="3"
+
+inherit eutils
+
+DESCRIPTION="PowerVR SGX540 libraries for OMAP4"
+
+HOMEPAGE=""
+SRC_URI="https://launchpad.net/~tiomap-dev/+archive/omap-trunk/+files/${PN}_1.7~git0f0b25f.2natty5.orig.tar.gz
+https://launchpad.net/~tiomap-dev/+archive/omap-trunk/+files/${PN}_1.7~git0f0b25f.2natty5-1.diff.gz"
+
+
+LICENSE="TI"
+SLOT="0"
+KEYWORDS="arm"
+
+IUSE=""
+DEPEND=">=x11-base/xorg-server-1.10
+	x11-libs/libdrm
+	=x11-drivers/pvr-omap4-kernel-1.7"
+RDEPEND="${DEPEND}"
+
+#S="${WORKDIR}"
+RESTRICT="strip"
+
+src_prepare() {
+	cd "${WORKDIR}"
+	epatch *.diff
+
+	mv pvr-omap4-1.7~git0f0b25f.2natty5 ${P}
+}
+
+src_install() {
+	make DESTDIR="${D}" install
+
+	cd "${D}"
+	rm -rf usr/include/EGL \
+		usr/include/KHR \
+		usr/include/VG \
+		usr/lib/libEGL.so \
+		usr/lib/libOpenVG.so{,.1} \
+		usr/lib/pkgconfig \
+#	rm -rf "${D}"/usr/lib/libEGL.so.1 \
+#		"${D}"/etc/init "${D}"/usr/lib/libOpenVG.so.1
+
+}
+



^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [gentoo-commits] proj/pandaboard:master commit in: media-libs/gst-plugins-base/files/, media-plugins/gst-openmax/files/, ...
  2011-04-17 17:18 [gentoo-commits] proj/pandaboard:2.6.38 commit in: media-libs/gst-plugins-base/files/, media-plugins/gst-openmax/files/, Raúl Porcel
@ 2011-05-13 19:49 ` Raúl Porcel
  0 siblings, 0 replies; 2+ messages in thread
From: Raúl Porcel @ 2011-05-13 19:49 UTC (permalink / raw
  To: gentoo-commits

commit:     18f87cb140ef5e299af0bb6576f20fd5834f508a
Author:     Raúl Porcel <armin76 <AT> gentoo <DOT> org>
AuthorDate: Sun Apr 17 17:18:10 2011 +0000
Commit:     Raúl Porcel <armin76 <AT> gentoo <DOT> org>
CommitDate: Sun Apr 17 17:18:10 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pandaboard.git;a=commit;h=18f87cb1

Add 2.6.38 ebuilds

---
 eclass/gst-plugins-good.eclass                     |  129 ---
 media-libs/domx/Manifest                           |    2 -
 media-libs/domx/domx-24.11-r0.ebuild               |   31 -
 media-libs/domx/domx-24.11_p1-r0.ebuild            |   31 -
 media-libs/gst-plugins-base/Manifest               |   26 -
 ...stride-support-to-video-utility-functions.patch |  536 ---------
 ...form-skeletal-implementation-of-stridetra.patch |  368 -------
 ...form-implement-caps-negotiation-and-relat.patch |  379 -------
 ...idetransform-implement-transform-function.patch |  215 ----
 ...5-add-gst_stride_transform_transform_size.patch |  143 ---
 ...-typo.-need-to-use-the-smaller-of-new_wid.patch |   36 -
 ...-0007-Add-NV12-support-in-stridetransform.patch |   77 --
 ...upport-for-I420-NV12-colorspace-conversio.patch |  186 ----
 ...-fix-to-avoid-parsing-caps-on-every-frame.patch |   35 -
 ...ridetransform-to-make-it-easier-to-add-ne.patch |  759 -------------
 .../files/gst-0.10.32-0011-add-some-neon.patch     |  293 -----
 ...port-to-convert-to-YUY2-YUYV-color-format.patch |  197 ----
 ...Add-support-for-RGB565-to-stridetransform.patch |  336 ------
 ...form-updates-for-new-extra-anal-compiler-.patch |   61 --
 ...form-fix-problem-transforming-caps-with-l.patch |  544 ----------
 ...016-modify-playbin-to-use-stridetransform.patch |   62 --
 ...2-0017-playbin-disable-interlaced-support.patch |   33 -
 ...10.32-0018-textoverlay-add-stride-support.patch |  132 ---
 ...19-video-more-flexible-video-caps-utility.patch |  228 ----
 ...fix-endianess-issue-for-16bit-RGB-formats.patch |   41 -
 ...ide-more-flexible-stride-color-conversion.patch | 1131 --------------------
 ...0022-stride-support-for-32bit-RGB-formats.patch |   54 -
 ...23-ffmpegcolorspace-support-for-rowstride.patch |  410 -------
 ...0.10.32-0024-discoverer-rowstride-support.patch |   45 -
 .../gst-plugins-base-0.10.32_p20110127.ebuild      |   78 --
 media-libs/gst-plugins-good/Manifest               |   14 -
 ...-v4l2-fix-handling-of-RGB32-BGR32-formats.patch |   53 -
 ....10.27-0002-v4l2sink-Add-rotation-support.patch |  128 ---
 ...t-0.10.27-0003-v4l2sink-Add-flip-property.patch |  187 ----
 ...2sink-Add-support-for-omap24xxvout-driver.patch |   59 -
 ...v4l2sink-Add-support-for-omap_vout-driver.patch |   34 -
 ...-0006-v4l2-increase-v4l2sink-element-rank.patch |   26 -
 ...stQueryBuffers-to-get-buffer-requirements.patch |   97 --
 .../gst-0.10.27-0008-add-rowstride-support.patch   |  572 ----------
 ...27-0009-use-GstEventCrop-to-get-crop-info.patch |  119 --
 .../files/gst-0.10.27-0010-v4l2-prefer-NV12.patch  |   28 -
 ...-v4l2sink-fix-issue-seen-with-autoconvert.patch |   49 -
 ...sink-Disable-rotation-code-when-not-found.patch |  103 --
 .../gst-plugins-good-0.10.27_p20110127.ebuild      |   84 --
 media-libs/gstreamer/Manifest                      |    7 -
 ...0.10.32-0001-gst-launch-add-loop-argument.patch |   54 -
 ...to-make-it-possible-to-LD_PRELOAD-libttif.patch |  262 -----
 ...st-0.10.32-0003-add-GstQueryBuffers-query.patch |  258 -----
 .../gst-0.10.32-0004-Add-GstEventCrop-event.patch  |  161 ---
 ...etransform-don-t-do-unnecessary-pad_alloc.patch |   52 -
 .../gstreamer/gstreamer-0.10.32_p20110127.ebuild   |   68 --
 media-libs/syslink-d2c/Manifest                    |    1 -
 .../syslink-d2c/syslink-d2c-24.11_p1-r0.ebuild     |   38 -
 media-libs/syslink/Manifest                        |    2 -
 .../files/add-missing-libraries-to-linker.patch    |   52 -
 media-libs/syslink/syslink-24.11_p1-r0.ebuild      |   39 -
 media-libs/tiler/Manifest                          |    1 -
 media-libs/tiler/tiler-24.11-r0.ebuild             |   38 -
 media-plugins/gst-openmax/Manifest                 |    5 -
 ...ideoenc-use-shared-buffers-on-output-port.patch |   27 -
 ...ce-deprecated-vstab-event-with-crop-event.patch |   64 --
 .../files/0099-temp-32k-header-dec10.patch         |   81 --
 .../files/0099-temp-32k-header-nov10.patch         |   82 --
 media-plugins/gst-openmax/gst-openmax-9999.ebuild  |   38 -
 media-plugins/gst-plugins-v4l2/Manifest            |   14 -
 ...-v4l2-fix-handling-of-RGB32-BGR32-formats.patch |   53 -
 ....10.27-0002-v4l2sink-Add-rotation-support.patch |  128 ---
 ...t-0.10.27-0003-v4l2sink-Add-flip-property.patch |  187 ----
 ...2sink-Add-support-for-omap24xxvout-driver.patch |   59 -
 ...v4l2sink-Add-support-for-omap_vout-driver.patch |   34 -
 ...-0006-v4l2-increase-v4l2sink-element-rank.patch |   26 -
 ...stQueryBuffers-to-get-buffer-requirements.patch |   97 --
 .../gst-0.10.27-0008-add-rowstride-support.patch   |  572 ----------
 ...27-0009-use-GstEventCrop-to-get-crop-info.patch |  119 --
 .../files/gst-0.10.27-0010-v4l2-prefer-NV12.patch  |   28 -
 ...-v4l2sink-fix-issue-seen-with-autoconvert.patch |   49 -
 ...k-Define-rotation-if-kernel-header-doesnt.patch |   27 -
 .../gst-plugins-v4l2-0.10.27_p20110127.ebuild      |   32 -
 net-wireless/tibtfm-wl1271-firmware/Manifest       |    3 -
 net-wireless/tibtfm-wl1271-firmware/metadata.xml   |    8 -
 .../tibtfm-wl1271-firmware-0.24.9.2.ebuild         |   22 -
 net-wireless/tibtfm-wl1271/Manifest                |    5 -
 .../tibtfm-wl1271/files/tibtfm-wl1271.init         |   26 -
 net-wireless/tibtfm-wl1271/metadata.xml            |    8 -
 .../tibtfm-wl1271/tibtfm-wl1271-0.24.9.ebuild      |   45 -
 net-wireless/tiwlan-wl1271-firmware/Manifest       |    3 -
 net-wireless/tiwlan-wl1271-firmware/metadata.xml   |    8 -
 .../tiwlan-wl1271-firmware-0.24.9.1.ebuild         |   23 -
 net-wireless/tiwlan-wl1271/ChangeLog               |    8 -
 net-wireless/tiwlan-wl1271/Manifest                |    5 -
 net-wireless/tiwlan-wl1271/metadata.xml            |    8 -
 .../tiwlan-wl1271/tiwlan-wl1271-0.24.9.ebuild      |   70 --
 sys-kernel/omap4-sources/Manifest                  |    6 +-
 ....ebuild => omap4-sources-2.6.38.1207.10.ebuild} |    2 +-
 x11-drivers/pvr-omap4-kernel/Manifest              |    6 +-
 ...l-0.24.9.ebuild => pvr-omap4-kernel-1.7.ebuild} |   19 +-
 x11-drivers/pvr-omap4/Manifest                     |    6 +-
 x11-drivers/pvr-omap4/pvr-omap4-0.24.9c.ebuild     |   39 -
 x11-drivers/pvr-omap4/pvr-omap4-1.7.ebuild         |   50 +
 99 files changed, 70 insertions(+), 11206 deletions(-)

diff --git a/eclass/gst-plugins-good.eclass b/eclass/gst-plugins-good.eclass
deleted file mode 100644
index e421744..0000000
--- a/eclass/gst-plugins-good.eclass
+++ /dev/null
@@ -1,129 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-# Author : foser <foser@gentoo.org>, zaheerm <zaheerm@gentoo.org>
-
-# gst-plugins-good eclass for pandaboard overlay
-#
-# eclass to make external gst-plugins emergable on a per-plugin basis
-# to solve the problem with gst-plugins generating far too much unneeded deps
-#
-# 3rd party applications using gstreamer now should depend on a set of plugins as
-# defined in the source, obtain recommended plugins to use from
-# Gentoo developers responsible for gstreamer <gnome@gentoo.org>, the application developer
-# or the gstreamer team.
-
-inherit eutils versionator gst-plugins10
-
-
-###
-# variable declarations
-###
-
-MY_PN=gst-plugins-good
-MY_PV=${PV%%_*}
-MY_P=${MY_PN}-${MY_PV}
-
-# All relevant configure options for gst-plugins
-# need a better way to extract these
-
-# First line for non-plugin build related configure options; second line for
-# sys/ plugins; rest is split plugin options in order of ./configure --help output.
-# Good ways of validation are seeing diff of old and new configure.ac, and ./configure --help
-#
-# This list is current to gst-plugins-good-0.10.23:
-my_gst_plugins_good="gconftool zlib bz2
-directsound oss sunaudio osx_audio osx_video gst_v4l2 x xshm xvideo
-aalib aalibtest annodex cairo esd esdtest flac gconf gdk_pixbuf hal jpeg
-libcaca libdv libpng pulse dv1394 shout2 shout2test soup speex taglib wavpack"
-
-# When adding conditionals like below, be careful about having leading spaces in concat
-
-# sys/oss4 moved here since 0.10.23
-if version_is_at_least "0.10.23"; then
-	my_gst_plugins_good+=" oss4"
-fi
-
-
-#SRC_URI="mirror://gnome/sources/gst-plugins/${PV_MAJ_MIN}/${MY_P}.tar.bz2"
-SRC_URI="http://gstreamer.freedesktop.org/src/gst-plugins-good/${MY_P}.tar.bz2"
-
-S=${WORKDIR}/${MY_P}
-# added to remove circular deps
-# 6/2/2006 - zaheerm
-if [ "${PN}" != "${MY_PN}" ]; then
-RDEPEND="=media-libs/gst-plugins-base-0.10*"
-DEPEND="${RDEPEND}
-	>=sys-apps/sed-4
-	dev-util/pkgconfig"
-RESTRICT=test
-fi
-
-###
-# public functions
-###
-
-gst-plugins-good_src_configure() {
-
-	# disable any external plugin besides the plugin we want
-	local plugin gst_conf
-
-	einfo "Configuring to build ${GST_PLUGINS_BUILD} plugin(s) ..."
-
-	for plugin in ${my_gst_plugins_good}; do
-		gst_conf="${gst_conf} --disable-${plugin} "
-	done
-
-	for plugin in ${GST_PLUGINS_BUILD}; do
-		gst_conf="${gst_conf} --enable-${plugin} "
-	done
-
-	cd ${S}
-	econf ${@} --with-package-name="Gentoo GStreamer Ebuild" --with-package-origin="http://www.gentoo.org" --enable-experimental ${gst_conf} || die "./configure failure"
-
-}
-
-###
-# public inheritable functions
-###
-
-gst-plugins-good_src_unpack() {
-
-#	local makefiles
-
-	unpack ${A}
-
-	# Link with the syswide installed gst-libs if needed
-#	gst-plugins10_find_plugin_dir
-#	cd ${S}
-
-	# Remove generation of any other Makefiles except the plugin's Makefile
-#	if [ -d "${S}/sys/${GST_PLUGINS_BUILD_DIR}" ]; then
-#		makefiles="Makefile sys/Makefile sys/${GST_PLUGINS_BUILD_DIR}/Makefile"
-#	elif [ -d "${S}/ext/${GST_PLUGINS_BUILD_DIR}" ]; then
-#		makefiles="Makefile ext/Makefile ext/${GST_PLUGINS_BUILD_DIR}/Makefile"
-#	fi
-#	sed -e "s:ac_config_files=.*:ac_config_files='${makefiles}':" \
-#		-i ${S}/configure
-
-}
-
-gst-plugins-good_src_compile() {
-
-	gst-plugins-good_src_configure ${@}
-
-	gst-plugins10_find_plugin_dir
-	emake || die "compile failure"
-
-}
-
-gst-plugins-good_src_install() {
-
-	gst-plugins10_find_plugin_dir
-	einstall || die
-
-	[[ -e README ]] && dodoc README
-}
-
-EXPORT_FUNCTIONS src_unpack src_compile src_install

diff --git a/media-libs/domx/Manifest b/media-libs/domx/Manifest
deleted file mode 100644
index 1b6e6ab..0000000
--- a/media-libs/domx/Manifest
+++ /dev/null
@@ -1,2 +0,0 @@
-EBUILD domx-24.11-r0.ebuild 664 RMD160 f5b1510694b3e8ed851224226ff5d38ff2c1c39c SHA1 49a47849fda2cfb620e18481e7e66733f2e084fb SHA256 eac709f65366afc1ad9d0d1267d79d506e57d88e632f2da1d799a7900c5dce52
-EBUILD domx-24.11_p1-r0.ebuild 665 RMD160 82bcdb6d4f2b838b97f13e04392aaec8b70a4726 SHA1 5d4f965726cc83329d1d7bfabfe95ddbaa6c21da SHA256 c802c5b2084cfe5185663253ff9db9b84b03297f4ac7a2fd539174ed389576d7

diff --git a/media-libs/domx/domx-24.11-r0.ebuild b/media-libs/domx/domx-24.11-r0.ebuild
deleted file mode 100644
index 15633ee..0000000
--- a/media-libs/domx/domx-24.11-r0.ebuild
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI=2
-
-inherit git autotools eutils
-
-DESCRIPTION="Distributed OpenMAX for OMAP4 processors"
-HOMEPAGE="http://github.com/mrchapp/domx"
-DEPEND=">=media-libs/syslink-24.11 >=media-libs/syslink-d2c-24.11"
-LICENSE="BSD"
-KEYWORDS="arm"
-SLOT="0"
-IUSE=""
-
-SRC_URI=""
-NPV=${PV/_/-}; NPV=${NPV^^}
-EGIT_REPO_URI="git://github.com/mrchapp/domx.git"
-EGIT_BRANCH="master"
-# FIXME: Can't use tags?
-#EGIT_COMMIT="L${NPV}"
-EGIT_COMMIT="1378fb8e1b8304f401dfb1d6787ae13294d518ef"
-
-src_prepare() {
-	eautoreconf
-}
-
-src_install() {
-	emake install DESTDIR="${D}"
-}

diff --git a/media-libs/domx/domx-24.11_p1-r0.ebuild b/media-libs/domx/domx-24.11_p1-r0.ebuild
deleted file mode 100644
index 08bd72e..0000000
--- a/media-libs/domx/domx-24.11_p1-r0.ebuild
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI=2
-
-inherit git autotools eutils
-
-DESCRIPTION="Distributed OpenMAX for OMAP4 processors"
-HOMEPAGE="http://github.com/mrchapp/domx"
-DEPEND=">=media-libs/syslink-24.11 >=media-libs/syslink-d2c-24.11"
-LICENSE="BSD"
-KEYWORDS="~arm"
-SLOT="0"
-IUSE=""
-
-SRC_URI=""
-NPV=${PV/_/-}; NPV=${NPV^^}
-EGIT_REPO_URI="git://github.com/mrchapp/domx.git"
-EGIT_BRANCH="master"
-# FIXME: Can't use tags?
-#EGIT_COMMIT="L${NPV}"
-EGIT_COMMIT="858802175f65b99ff64329800400642d9b44aabf"
-
-src_prepare() {
-	eautoreconf
-}
-
-src_install() {
-	emake install DESTDIR="${D}"
-}

diff --git a/media-libs/gst-plugins-base/Manifest b/media-libs/gst-plugins-base/Manifest
deleted file mode 100644
index 0cba68e..0000000
--- a/media-libs/gst-plugins-base/Manifest
+++ /dev/null
@@ -1,26 +0,0 @@
-AUX gst-0.10.32-0001-add-rowstride-support-to-video-utility-functions.patch 19478 RMD160 3314aa44215803242a9cd1b2f33987066b2d9255 SHA1 960ce8f2c0c12c1d79cac4ba667236ab5dc9c4a9 SHA256 453f54b8b2a00df3038b96096f65720ad09f78a83db356bbd3018a6dae519c56
-AUX gst-0.10.32-0002-stridetransform-skeletal-implementation-of-stridetra.patch 12038 RMD160 ae601020715b8049423418dd51c97ffd4cd84da6 SHA1 b0210b381c97a94b7542b3e103a0071bbce14cf6 SHA256 a8cbdef59063369c4bae3c87dc9d197fc950c9fb588ad9a3dcfcbca7f1ea02c9
-AUX gst-0.10.32-0003-stridetransform-implement-caps-negotiation-and-relat.patch 13666 RMD160 cd97b88ec464c8e8055c93a443ff7a0d31aa0d41 SHA1 500b157dca39a60751fd89edd29d23224b287fd9 SHA256 a2685bd2928796756e5217d10bee09679b99458e5c33ea90498725b379c060a6
-AUX gst-0.10.32-0004-stridetransform-implement-transform-function.patch 7985 RMD160 f246b2f9a27a6d94a7d21f2594bbb65f9dba08be SHA1 62174bf74b1b1086a3585df0178db703c8ddb108 SHA256 efcf08ac81ce74fedab80318db7e20eef0abda36ef9e03aed6c823426199bad8
-AUX gst-0.10.32-0005-add-gst_stride_transform_transform_size.patch 5629 RMD160 01a147ca359509d478aa69c40697735f3b339d4d SHA1 1e7a520e85b9364797764be5a755478e4becbb3b SHA256 3ca3bfac1d14ce43c2c1211038275a22b41b370bbfcadd06224bd68b6f79608b
-AUX gst-0.10.32-0006-fix-a-small-typo.-need-to-use-the-smaller-of-new_wid.patch 1398 RMD160 fff110733e415d3a62b887ac5155d3200f821daa SHA1 0e331030afdf5be917c71f7b2d0a3961450159ef SHA256 e4ffd2ceefcb6bdf851d897ca63f57f5b33bc80210fcd2e70e8337738857a823
-AUX gst-0.10.32-0007-Add-NV12-support-in-stridetransform.patch 2909 RMD160 f77e0f781af75021ba4dbbc19fc181c38f5e7a7d SHA1 8eebe554050a4e7239e2d3c886f2d71e92c481ad SHA256 ee77cd62a3af64ab453d14e563ac142e1cc9a78422158d548fa412c3e6a5c6e1
-AUX gst-0.10.32-0008-add-basic-support-for-I420-NV12-colorspace-conversio.patch 6976 RMD160 e8c645b0a55e39cc70547eeb6eaed361b93f7770 SHA1 2fb572546b90b9e1566f8dd38854d307ea5fa897 SHA256 55c669534771130dbaf5bdd94a4a08031faf27900fb3d7981d4b5934510c5f11
-AUX gst-0.10.32-0009-fix-to-avoid-parsing-caps-on-every-frame.patch 1087 RMD160 ee3a3bbf77ad5c5726a30115caeb373c430553f9 SHA1 cfb3b914b88a278131d91e2dd48865765302d947 SHA256 52f163890b09cc2133739adb18788441329c71c10359a0a1a2e5bcee918bff1c
-AUX gst-0.10.32-0010-refactor-stridetransform-to-make-it-easier-to-add-ne.patch 26534 RMD160 ccc77aef354ecc2f506dfe73d485a1edd5910e2a SHA1 837fdc52c72c09105356c12b361480b1ff03eb54 SHA256 1abf8e19bdbd7d4b404cc8803dce83da77be4fd98e1c940d6842f2ae3c6e29fd
-AUX gst-0.10.32-0011-add-some-neon.patch 9024 RMD160 48388eea9e42f4a156cae6090f34c1732eec717f SHA1 dfe6de8382322ccab6889c3afb228fc3512f9816 SHA256 d9f3e1fbb8cfbcda0fa49cf976e7b318c55780a3f4216c030e4a6b1e1ec207c1
-AUX gst-0.10.32-0012-add-support-to-convert-to-YUY2-YUYV-color-format.patch 6307 RMD160 37c8cfdc0850f8b163747b029ce6ef7125a92bcf SHA1 5385dfa1622cc4b8639e03adc99dbb91d6de8b49 SHA256 f26b61b6c92bd064c423eadcc7b35dcd3573c7e313b0ecc142473124f37240ec
-AUX gst-0.10.32-0013-Add-support-for-RGB565-to-stridetransform.patch 13641 RMD160 51386f4ebb999d90eff5ef786e27d07fa37e159a SHA1 1b0f6ee44a24c32247e165f357100d9a6a0cac6b SHA256 f8013cdb9943559fa14491c8e253f7c51a7a061e16c76acabe10f057f9066b6a
-AUX gst-0.10.32-0014-stridetransform-updates-for-new-extra-anal-compiler-.patch 2398 RMD160 2fc97ee99088fb484f728d9d0c6ea0ae2509c32d SHA1 0b5aed4e09b7dad068d7048e9960ca980e46fd18 SHA256 749859c06913a633ead030f69d9cc5076d9425a95e720111876c8abf464a3d57
-AUX gst-0.10.32-0015-stridetransform-fix-problem-transforming-caps-with-l.patch 20488 RMD160 f5d8a82c2313dcde45b2220ead8bd2f1c356a2dd SHA1 c02b4ee4468134fd9eb27a755a031a0e113a509e SHA256 6313ea19aa2496f2e14e91c2d3812d6f9d9c82035635d4a978a8e7b963a8be6a
-AUX gst-0.10.32-0016-modify-playbin-to-use-stridetransform.patch 2485 RMD160 cb93726b58319d71c95abc8195d1535785fbde85 SHA1 afcc848f8ab059452a68b1eea13735c5c431de89 SHA256 9e55a7d20b269d947875aba1e3ed66579a866696afda99e754093ff74b5d4fe5
-AUX gst-0.10.32-0017-playbin-disable-interlaced-support.patch 1108 RMD160 9d759f6f3028811150df8aa01ccb114e73b3f2df SHA1 63802de92a41aec3a210615f9c7750621c9cd20c SHA256 31d306b25a4edf00b65146a92c74f8f1f6bf6aaf001b81b8df70affdddd2b5ab
-AUX gst-0.10.32-0018-textoverlay-add-stride-support.patch 5213 RMD160 f1a10c218e9cc25b232f48e1cf890cf6a108dce4 SHA1 3d79d8b3f2037c807d61c427943e3a2cb1a0cf1d SHA256 cf0facafdf762e114c5ea56a5ad6420dd6a6269c674eb2f06af0eec17a4a0d9d
-AUX gst-0.10.32-0019-video-more-flexible-video-caps-utility.patch 8691 RMD160 5b22d8a8f74bcf46e08671a160b6bce314f50b82 SHA1 862be817be2a3a6fdac3073efa2d6e53b161aa00 SHA256 a6b85a91555daf21c4228ea708be91de875997158b393b8e99422bc02c05f835
-AUX gst-0.10.32-0020-video-fix-endianess-issue-for-16bit-RGB-formats.patch 1343 RMD160 4fa95c02bfaf97dadf504f3aee2a7397afd4ac41 SHA1 bdc1d37a88cd3ce562a411474474608d7d1b9084 SHA256 3f8a7bf670e54af9bd3fdf8d56b22f5c9e6ff00616472e1c0b0b2493f6a561c8
-AUX gst-0.10.32-0021-stride-more-flexible-stride-color-conversion.patch 40158 RMD160 1d45d8b1e3084ac125b733e57bece2b1de01b096 SHA1 621a2f39835043114e08b4420c1d6e3731b568b9 SHA256 a38d4f60b3e38d45c38044133fe2ad1e799dc966e53c1dd292e63ad897101037
-AUX gst-0.10.32-0022-stride-support-for-32bit-RGB-formats.patch 1818 RMD160 d5a3ade8595272586ab934cc10ba7658fbc9121a SHA1 42f14b868bc68e2554e96d4ff8d94faa79863fbf SHA256 a74ac22cb796fc175fa2362fe48b7d2554f41e39228a993197a09e5002fc4fe1
-AUX gst-0.10.32-0023-ffmpegcolorspace-support-for-rowstride.patch 15546 RMD160 c389743544f5881bf7be1ce8df5682a0a8556285 SHA1 975b92fa352e3210b1013f5c6e98f6994b5737e7 SHA256 3843c61f9d49ba75dc6a20c9b7d57bcdc3bfbdf784ea93619ee68dd8bab72c6c
-AUX gst-0.10.32-0024-discoverer-rowstride-support.patch 1552 RMD160 4e662a66b724a19dcb71e614a71198edd9d5fe5b SHA1 153a14d26dc2f90e0d060d78244e10ab54d7912d SHA256 434643810dde2d6afc8d712563afbcd588d49cdb6bec7edec9545d2c7e375ee8
-DIST gst-plugins-base-0.10.32.tar.bz2 2720103 RMD160 b267e3138e40e3646efed0baa662d40775eca1ea SHA1 c1c149272b7ab6cbe5f648532f74525c6541eea5 SHA256 e9aabfac83f6480896da0686e9c911989f896fbad634821b7771ed84a446172b
-EBUILD gst-plugins-base-0.10.32_p20110127.ebuild 3386 RMD160 366819facffe23ed35617ff106ac81411824103c SHA1 2efdfad7c81709078ff142410917d092b34ad112 SHA256 8fa605d70e03f9f52680a5d46334a9ad9cc055e84578fb440ddc74174670fa64

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0001-add-rowstride-support-to-video-utility-functions.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0001-add-rowstride-support-to-video-utility-functions.patch
deleted file mode 100644
index 6f25b71..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0001-add-rowstride-support-to-video-utility-functions.patch
+++ /dev/null
@@ -1,536 +0,0 @@
-From 481cda8686336999ccccbdbf239bcbd520bcdfc7 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Thu, 30 Jul 2009 14:50:05 -0500
-Subject: [PATCH 01/24] add rowstride support to video utility functions
-
----
- gst-libs/gst/video/gstvideofilter.c |    8 +-
- gst-libs/gst/video/video.c          |  244 ++++++++++++++++++++++++++++-------
- gst-libs/gst/video/video.h          |   27 +++--
- 3 files changed, 220 insertions(+), 59 deletions(-)
-
-diff --git a/gst-libs/gst/video/gstvideofilter.c b/gst-libs/gst/video/gstvideofilter.c
-index 2d08a60..6b2d7b7 100644
---- a/gst-libs/gst/video/gstvideofilter.c
-+++ b/gst-libs/gst/video/gstvideofilter.c
-@@ -21,7 +21,7 @@
-  /**
-  * SECTION:gstvideofilter
-  * @short_description: Base class for video filters
-- * 
-+ *
-  * <refsect2>
-  * <para>
-  * Provides useful functions and a base class for video filters.
-@@ -78,14 +78,14 @@ gst_video_filter_get_unit_size (GstBaseTransform * btrans, GstCaps * caps,
-     guint * size)
- {
-   GstVideoFormat fmt;
--  gint width, height;
-+  gint width, height, rowstride;
- 
--  if (!gst_video_format_parse_caps (caps, &fmt, &width, &height)) {
-+  if (!gst_video_format_parse_caps_strided (caps, &fmt, &width, &height, &rowstride)) {
-     GST_WARNING_OBJECT (btrans, "Failed to parse caps %" GST_PTR_FORMAT, caps);
-     return FALSE;
-   }
- 
--  *size = gst_video_format_get_size (fmt, width, height);
-+  *size = gst_video_format_get_size_strided (fmt, width, height, rowstride);
- 
-   GST_DEBUG_OBJECT (btrans, "Returning size %u bytes for caps %"
-       GST_PTR_FORMAT, *size, caps);
-diff --git a/gst-libs/gst/video/video.c b/gst-libs/gst/video/video.c
-index d9fa50b..24f1ac8 100644
---- a/gst-libs/gst/video/video.c
-+++ b/gst-libs/gst/video/video.c
-@@ -31,7 +31,7 @@
-  *
-  * <refsect2>
-  * <para>
-- * This library contains some helper functions and includes the 
-+ * This library contains some helper functions and includes the
-  * videosink and videofilter base classes.
-  * </para>
-  * </refsect2>
-@@ -53,7 +53,7 @@ static GstVideoFormat gst_video_format_from_rgb16_masks (int red_mask,
-  *
-  * A convenience function to retrieve a GValue holding the framerate
-  * from the caps on a pad.
-- * 
-+ *
-  * The pad needs to have negotiated caps containing a framerate property.
-  *
-  * Returns: NULL if the pad has no configured caps or the configured caps
-@@ -106,7 +106,7 @@ gst_video_frame_rate (GstPad * pad)
-  *
-  * Inspect the caps of the provided pad and retrieve the width and height of
-  * the video frames it is configured for.
-- * 
-+ *
-  * The pad needs to have negotiated caps containing width and height properties.
-  *
-  * Returns: TRUE if the width and height could be retrieved.
-@@ -158,13 +158,13 @@ gst_video_get_size (GstPad * pad, gint * width, gint * height)
-  * @display_par_n: Numerator of the pixel aspect ratio of the display device
-  * @display_par_d: Denominator of the pixel aspect ratio of the display device
-  *
-- * Given the Pixel Aspect Ratio and size of an input video frame, and the 
-- * pixel aspect ratio of the intended display device, calculates the actual 
-+ * Given the Pixel Aspect Ratio and size of an input video frame, and the
-+ * pixel aspect ratio of the intended display device, calculates the actual
-  * display ratio the video will be rendered with.
-  *
-- * Returns: A boolean indicating success and a calculated Display Ratio in the 
-- * dar_n and dar_d parameters. 
-- * The return value is FALSE in the case of integer overflow or other error. 
-+ * Returns: A boolean indicating success and a calculated Display Ratio in the
-+ * dar_n and dar_d parameters.
-+ * The return value is FALSE in the case of integer overflow or other error.
-  *
-  * Since: 0.10.7
-  */
-@@ -308,28 +308,15 @@ gst_video_parse_caps_chroma_site (GstCaps * caps)
- }
- 
- /**
-- * gst_video_format_parse_caps:
-- * @caps: the #GstCaps to parse
-- * @format: the #GstVideoFormat of the video represented by @caps (output)
-- * @width: the width of the video represented by @caps, may be NULL (output)
-- * @height: the height of the video represented by @caps, may be NULL (output)
-- *
-- * Determines the #GstVideoFormat of @caps and places it in the location
-- * pointed to by @format.  Extracts the size of the video and places it
-- * in the location pointed to by @width and @height.  If @caps does not
-- * represent one of the raw video formats listed in #GstVideoFormat, the
-- * function will fail and return FALSE.
-- *
-- * Since: 0.10.16
-- *
-- * Returns: TRUE if @caps was parsed correctly.
-+ * see gst_video_format_parse_caps_strided and gst_video_format_parse_caps
-  */
--gboolean
--gst_video_format_parse_caps (GstCaps * caps, GstVideoFormat * format,
--    int *width, int *height)
-+static gboolean
-+parse_caps (GstCaps * caps, GstVideoFormat * format, gint *width, gint *height,
-+    gboolean stride_ok, gint *rowstride)
- {
-   GstStructure *structure;
-   gboolean ok = TRUE;
-+  gboolean strided = FALSE;
- 
-   if (!gst_caps_is_fixed (caps))
-     return FALSE;
-@@ -337,7 +324,10 @@ gst_video_format_parse_caps (GstCaps * caps, GstVideoFormat * format,
-   structure = gst_caps_get_structure (caps, 0);
- 
-   if (format) {
--    if (gst_structure_has_name (structure, "video/x-raw-yuv")) {
-+    if (gst_structure_has_name (structure, "video/x-raw-yuv") ||
-+        (stride_ok &&
-+            gst_structure_has_name (structure, "video/x-raw-yuv-strided") &&
-+            (strided=TRUE) /* single '=' intentional */)) {
-       guint32 fourcc;
- 
-       ok &= gst_structure_get_fourcc (structure, "format", &fourcc);
-@@ -346,7 +336,10 @@ gst_video_format_parse_caps (GstCaps * caps, GstVideoFormat * format,
-       if (*format == GST_VIDEO_FORMAT_UNKNOWN) {
-         ok = FALSE;
-       }
--    } else if (gst_structure_has_name (structure, "video/x-raw-rgb")) {
-+    } else if (gst_structure_has_name (structure, "video/x-raw-rgb") ||
-+        (stride_ok &&
-+            gst_structure_has_name (structure, "video/x-raw-rgb-strided") &&
-+            (strided=TRUE) /* single '=' intentional */)) {
-       int depth;
-       int bpp;
-       int endianness = 0;
-@@ -423,6 +416,10 @@ gst_video_format_parse_caps (GstCaps * caps, GstVideoFormat * format,
-     }
-   }
- 
-+  /* note: should we require that the caps have these fields, even if
-+   * the caller does not particularly request them??
-+   */
-+
-   if (width) {
-     ok &= gst_structure_get_int (structure, "width", width);
-   }
-@@ -431,11 +428,70 @@ gst_video_format_parse_caps (GstCaps * caps, GstVideoFormat * format,
-     ok &= gst_structure_get_int (structure, "height", height);
-   }
- 
-+  if (rowstride) {
-+    if (strided) {
-+      ok &= gst_structure_get_int (structure, "rowstride", rowstride);
-+    } else {
-+      *rowstride = 0;  /* not a strided format */
-+    }
-+  }
-+
-   return ok;
- }
- 
- 
- /**
-+ * gst_video_format_parse_caps_strided:
-+ * @caps: the #GstCaps to parse
-+ * @format: the #GstVideoFormat of the video represented by @caps (output)
-+ * @width: the width of the video represented by @caps, may be NULL (output)
-+ * @height: the height of the video represented by @caps, may be NULL (output)
-+ * @rowstride: the rowstride (in bytes) represented by @caps, or 0 if there
-+ *    is no rowstride, may be NULL (output)
-+ *
-+ * Determines the #GstVideoFormat of @caps and places it in the location
-+ * pointed to by @format.  Extracts the size of the video and places it
-+ * in the location pointed to by @width and @height.  Extracts the row-
-+ * stride and places it in the location pointed to by @rowstride.  If
-+ * @caps does not represent one of the raw video formats listed in
-+ * #GstVideoFormat, the function will fail and return FALSE.
-+ *
-+ * Since: ???
-+ *
-+ * Returns: TRUE if @caps was parsed correctly.
-+ */
-+gboolean
-+gst_video_format_parse_caps_strided (GstCaps * caps, GstVideoFormat * format,
-+    int *width, int *height, int *rowstride)
-+{
-+  return parse_caps (caps, format, width, height, TRUE, rowstride);
-+}
-+
-+/**
-+ * gst_video_format_parse_caps:
-+ * @caps: the #GstCaps to parse
-+ * @format: the #GstVideoFormat of the video represented by @caps (output)
-+ * @width: the width of the video represented by @caps, may be NULL (output)
-+ * @height: the height of the video represented by @caps, may be NULL (output)
-+ *
-+ * Determines the #GstVideoFormat of @caps and places it in the location
-+ * pointed to by @format.  Extracts the size of the video and places it
-+ * in the location pointed to by @width and @height.  If @caps does not
-+ * represent one of the raw video formats listed in #GstVideoFormat, the
-+ * function will fail and return FALSE.
-+ *
-+ * Since: 0.10.16
-+ *
-+ * Returns: TRUE if @caps was parsed correctly.
-+ */
-+gboolean
-+gst_video_format_parse_caps (GstCaps * caps, GstVideoFormat * format,
-+    int *width, int *height)
-+{
-+  return parse_caps (caps, format, width, height, FALSE, NULL);
-+}
-+
-+/**
-  * gst_video_parse_caps_framerate:
-  * @caps: pointer to a #GstCaps instance
-  * @fps_n: pointer to integer to hold numerator of frame rate (output)
-@@ -534,10 +590,11 @@ gst_video_format_new_caps_interlaced (GstVideoFormat format,
- }
- 
- /**
-- * gst_video_format_new_caps:
-+ * gst_video_format_new_caps_strided:
-  * @format: the #GstVideoFormat describing the raw video format
-  * @width: width of video
-  * @height: height of video
-+ * @rowstride: the rowstride (in bytes), or 0 if no rowstride
-  * @framerate_n: numerator of frame rate
-  * @framerate_d: denominator of frame rate
-  * @par_n: numerator of pixel aspect ratio
-@@ -545,26 +602,29 @@ gst_video_format_new_caps_interlaced (GstVideoFormat format,
-  *
-  * Creates a new #GstCaps object based on the parameters provided.
-  *
-- * Since: 0.10.16
-+ * Since: ???
-  *
-  * Returns: a new #GstCaps object, or NULL if there was an error
-  */
- GstCaps *
--gst_video_format_new_caps (GstVideoFormat format, int width,
--    int height, int framerate_n, int framerate_d, int par_n, int par_d)
-+gst_video_format_new_caps_strided (GstVideoFormat format,
-+    int width, int height, int rowstride,
-+    int framerate_n, int framerate_d, int par_n, int par_d)
- {
-+  GstCaps *caps = NULL;
-+
-   g_return_val_if_fail (format != GST_VIDEO_FORMAT_UNKNOWN, NULL);
-   g_return_val_if_fail (width > 0 && height > 0, NULL);
- 
-   if (gst_video_format_is_yuv (format)) {
--    return gst_caps_new_simple ("video/x-raw-yuv",
-+    caps = gst_caps_new_simple (
-+        rowstride ? "video/x-raw-yuv-strided" : "video/x-raw-yuv",
-         "format", GST_TYPE_FOURCC, gst_video_format_to_fourcc (format),
-         "width", G_TYPE_INT, width,
-         "height", G_TYPE_INT, height,
-         "framerate", GST_TYPE_FRACTION, framerate_n, framerate_d,
-         "pixel-aspect-ratio", GST_TYPE_FRACTION, par_n, par_d, NULL);
--  }
--  if (gst_video_format_is_rgb (format)) {
-+  } else if (gst_video_format_is_rgb (format)) {
-     GstCaps *caps;
-     int red_mask = 0;
-     int blue_mask = 0;
-@@ -663,7 +723,8 @@ gst_video_format_new_caps (GstVideoFormat format, int width,
-       return NULL;
-     }
- 
--    caps = gst_caps_new_simple ("video/x-raw-rgb",
-+    caps = gst_caps_new_simple (
-+        rowstride ? "video/x-raw-rgb-strided" : "video/x-raw-rgb",
-         "bpp", G_TYPE_INT, bpp,
-         "depth", G_TYPE_INT, depth,
-         "width", G_TYPE_INT, width,
-@@ -685,11 +746,7 @@ gst_video_format_new_caps (GstVideoFormat format, int width,
-               width, height));
-       gst_caps_set_simple (caps, "alpha_mask", G_TYPE_INT, alpha_mask, NULL);
-     }
--    return caps;
--  }
--
--  if (gst_video_format_is_gray (format)) {
--    GstCaps *caps;
-+  } else if (gst_video_format_is_gray (format)) {
-     int bpp;
-     int depth;
-     int endianness;
-@@ -730,11 +787,39 @@ gst_video_format_new_caps (GstVideoFormat format, int width,
-           "framerate", GST_TYPE_FRACTION, framerate_n, framerate_d,
-           "pixel-aspect-ratio", GST_TYPE_FRACTION, par_n, par_d, NULL);
-     }
-+  } else {
-+    return NULL;
-+  }
- 
--    return caps;
-+  if (rowstride) {
-+    gst_caps_set_simple (caps, "rowstride", G_TYPE_INT, rowstride, NULL);
-   }
- 
--  return NULL;
-+  return caps;
-+}
-+
-+/**
-+ * gst_video_format_new_caps:
-+ * @format: the #GstVideoFormat describing the raw video format
-+ * @width: width of video
-+ * @height: height of video
-+ * @framerate_n: numerator of frame rate
-+ * @framerate_d: denominator of frame rate
-+ * @par_n: numerator of pixel aspect ratio
-+ * @par_d: denominator of pixel aspect ratio
-+ *
-+ * Creates a new #GstCaps object based on the parameters provided.
-+ *
-+ * Since: 0.10.16
-+ *
-+ * Returns: a new #GstCaps object, or NULL if there was an error
-+ */
-+GstCaps *
-+gst_video_format_new_caps (GstVideoFormat format, int width, int height,
-+    int framerate_n, int framerate_d, int par_n, int par_d)
-+{
-+  return gst_video_format_new_caps_strided (format, width, height, 0,
-+      framerate_n, framerate_d, par_n, par_d);
- }
- 
- /**
-@@ -874,7 +959,7 @@ gst_video_format_to_fourcc (GstVideoFormat format)
-  * @blue_mask: blue bit mask
-  *
-  * Converts red, green, blue bit masks into the corresponding
-- * #GstVideoFormat.  
-+ * #GstVideoFormat.
-  *
-  * Since: 0.10.16
-  *
-@@ -1107,7 +1192,7 @@ gst_video_format_is_gray (GstVideoFormat format)
- /**
-  * gst_video_format_has_alpha:
-  * @format: a #GstVideoFormat
-- * 
-+ *
-  * Returns TRUE or FALSE depending on if the video format provides an
-  * alpha channel.
-  *
-@@ -1877,6 +1962,75 @@ gst_video_format_get_size (GstVideoFormat format, int width, int height)
- }
- 
- /**
-+ * gst_video_format_get_size_strided:
-+ * @format: a #GstVideoFormat
-+ * @width: the width of video (in pixels)
-+ * @height: the height of video (in pixels)
-+ * @rowstride: the rowstride (in bytes), or 0 if no rowstride (in which
-+ *    case the returned value is same as #gst_video_format_get_size())
-+ *
-+ * Calculates the total number of bytes in the raw video format, for a buffer
-+ * which may have a rowstride in bytes
-+ *
-+ * Since: ???
-+ *
-+ * Returns: size (in bytes) of raw video format
-+ */
-+int
-+gst_video_format_get_size_strided (GstVideoFormat format,
-+    int width, int height, int rowstride)
-+{
-+  if(!rowstride)
-+    return gst_video_format_get_size (format, width, height);
-+
-+  g_return_val_if_fail (format != GST_VIDEO_FORMAT_UNKNOWN, 0);
-+  g_return_val_if_fail (width > 0 && height > 0, 0);
-+
-+  switch (format) {
-+    /* all packed formats have the same calculation, ie. rowstride * height
-+     */
-+    case GST_VIDEO_FORMAT_RGBx:
-+    case GST_VIDEO_FORMAT_BGRx:
-+    case GST_VIDEO_FORMAT_xRGB:
-+    case GST_VIDEO_FORMAT_xBGR:
-+    case GST_VIDEO_FORMAT_RGBA:
-+    case GST_VIDEO_FORMAT_BGRA:
-+    case GST_VIDEO_FORMAT_ARGB:
-+    case GST_VIDEO_FORMAT_ABGR:
-+    case GST_VIDEO_FORMAT_RGB16:
-+    case GST_VIDEO_FORMAT_BGR16:
-+    case GST_VIDEO_FORMAT_RGB15:
-+    case GST_VIDEO_FORMAT_BGR15:
-+    case GST_VIDEO_FORMAT_RGB:
-+    case GST_VIDEO_FORMAT_BGR:
-+    case GST_VIDEO_FORMAT_YUY2:
-+    case GST_VIDEO_FORMAT_YVYU:
-+    case GST_VIDEO_FORMAT_UYVY:
-+    case GST_VIDEO_FORMAT_AYUV:
-+    case GST_VIDEO_FORMAT_v210:
-+    case GST_VIDEO_FORMAT_v216:
-+      return GST_ROUND_UP_4 (rowstride * height);
-+
-+    /* these planar formats have 2x sub-sampling in the vertical direction,
-+     * so U/V have half as many rows as Y:
-+     */
-+    case GST_VIDEO_FORMAT_I420:
-+    case GST_VIDEO_FORMAT_YV12:
-+      return GST_ROUND_UP_4 (2 * rowstride * height);
-+
-+    /* these planar formats have no sub-sampling in the vertical direction,
-+     * so each plane has 'height' number of rows
-+     */
-+    case GST_VIDEO_FORMAT_Y41B:
-+    case GST_VIDEO_FORMAT_Y42B:
-+    case GST_VIDEO_FORMAT_Y444:
-+      return GST_ROUND_UP_4 (3 * rowstride * height);
-+    default:
-+      return 0;
-+  }
-+}
-+
-+/**
-  * gst_video_format_convert:
-  * @format: a #GstVideoFormat
-  * @width: the width of video
-diff --git a/gst-libs/gst/video/video.h b/gst-libs/gst/video/video.h
-index 96c5a85..a6a2293 100644
---- a/gst-libs/gst/video/video.h
-+++ b/gst-libs/gst/video/video.h
-@@ -33,7 +33,7 @@ G_BEGIN_DECLS
-  * @GST_VIDEO_FORMAT_I420: planar 4:2:0 YUV
-  * @GST_VIDEO_FORMAT_YV12: planar 4:2:0 YVU (like I420 but UV planes swapped)
-  * @GST_VIDEO_FORMAT_YUY2: packed 4:2:2 YUV (Y0-U0-Y1-V0 Y2-U2-Y3-V2 Y4 ...)
-- * @GST_VIDEO_FORMAT_UYVY: packed 4:2:2 YUV (U0-Y0-V0-Y1 U2-Y2-V2-Y3 U4 ...) 
-+ * @GST_VIDEO_FORMAT_UYVY: packed 4:2:2 YUV (U0-Y0-V0-Y1 U2-Y2-V2-Y3 U4 ...)
-  * @GST_VIDEO_FORMAT_AYUV: packed 4:4:4 YUV with alpha channel (A0-Y0-U0-V0 ...)
-  * @GST_VIDEO_FORMAT_RGBx: sparse rgb packed into 32 bit, space last
-  * @GST_VIDEO_FORMAT_BGRx: sparse reverse rgb packed into 32 bit, space last
-@@ -245,13 +245,13 @@ typedef enum {
- 
- #define GST_VIDEO_CAPS_RGBx \
-     __GST_VIDEO_CAPS_MAKE_32 (1, 2, 3)
--  
-+
- #define GST_VIDEO_CAPS_xRGB \
-     __GST_VIDEO_CAPS_MAKE_32 (2, 3, 4)
--  
-+
- #define GST_VIDEO_CAPS_BGRx \
-     __GST_VIDEO_CAPS_MAKE_32 (3, 2, 1)
--  
-+
- #define GST_VIDEO_CAPS_xBGR \
-     __GST_VIDEO_CAPS_MAKE_32 (4, 3, 2)
- 
-@@ -259,13 +259,13 @@ typedef enum {
- 
- #define GST_VIDEO_CAPS_RGBA \
-     __GST_VIDEO_CAPS_MAKE_32A (1, 2, 3, 4)
--  
-+
- #define GST_VIDEO_CAPS_ARGB \
-     __GST_VIDEO_CAPS_MAKE_32A (2, 3, 4, 1)
--  
-+
- #define GST_VIDEO_CAPS_BGRA \
-     __GST_VIDEO_CAPS_MAKE_32A (3, 2, 1, 4)
--  
-+
- #define GST_VIDEO_CAPS_ABGR \
-     __GST_VIDEO_CAPS_MAKE_32A (4, 3, 2, 1)
- 
-@@ -281,7 +281,7 @@ typedef enum {
-   #define GST_VIDEO_CAPS_BGRx_HOST_ENDIAN \
-       GST_VIDEO_CAPS_xRGB
- #endif
--      
-+
- /* 15/16 bit */
-   
- #define GST_VIDEO_CAPS_RGB_16 \
-@@ -395,13 +395,15 @@ gboolean gst_video_get_size   (GstPad *pad,
-                                gint   *height);
- 
- gboolean gst_video_calculate_display_ratio (guint *dar_n, guint *dar_d,
--            guint video_width, guint video_height, 
--            guint video_par_n, guint video_par_d, 
-+            guint video_width, guint video_height,
-+            guint video_par_n, guint video_par_d,
-             guint display_par_n, guint display_par_d);
- 
- gboolean gst_video_format_parse_caps (GstCaps *caps, GstVideoFormat *format,
-     int *width, int *height);
- gboolean gst_video_format_parse_caps_interlaced (GstCaps *caps, gboolean *interlaced);
-+gboolean gst_video_format_parse_caps_strided (GstCaps * caps, GstVideoFormat * format,
-+    int *width, int *height, int *rowstride);
- gboolean gst_video_parse_caps_framerate (GstCaps *caps,
-     int *fps_n, int *fps_d);
- gboolean gst_video_parse_caps_pixel_aspect_ratio (GstCaps *caps,
-@@ -415,6 +417,9 @@ GstCaps * gst_video_format_new_caps (GstVideoFormat format,
- GstCaps * gst_video_format_new_caps_interlaced (GstVideoFormat format,
-     int width, int height, int framerate_n, int framerate_d,
- 						int par_n, int par_d, gboolean interlaced);
-+GstCaps * gst_video_format_new_caps_strided (GstVideoFormat format,
-+    int width, int height, int rowstride,
-+    int framerate_n, int framerate_d, int par_n, int par_d);
- GstVideoFormat gst_video_format_from_fourcc (guint32 fourcc);
- guint32 gst_video_format_to_fourcc (GstVideoFormat format);
- gboolean gst_video_format_is_rgb (GstVideoFormat format);
-@@ -431,6 +436,8 @@ int gst_video_format_get_component_height (GstVideoFormat format, int component,
- int gst_video_format_get_component_offset (GstVideoFormat format, int component,
-     int width, int height);
- int gst_video_format_get_size (GstVideoFormat format, int width, int height);
-+int gst_video_format_get_size_strided (GstVideoFormat format,
-+    int width, int height, int rowstride);
- gboolean gst_video_format_convert (GstVideoFormat format, int width, int height,
-     int fps_n, int fps_d,
-     GstFormat src_format, gint64 src_value,
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0002-stridetransform-skeletal-implementation-of-stridetra.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0002-stridetransform-skeletal-implementation-of-stridetra.patch
deleted file mode 100644
index 6e88172..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0002-stridetransform-skeletal-implementation-of-stridetra.patch
+++ /dev/null
@@ -1,368 +0,0 @@
-From 9820616aad713a23aa9d0e2afe44835d9e9278e5 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Thu, 30 Jul 2009 20:41:18 -0500
-Subject: [PATCH 02/24] stridetransform: skeletal implementation of stridetransform element
-
----
- configure.ac                    |    2 +
- gst/stride/Makefile.am          |   15 ++++
- gst/stride/gststridetransform.c |  178 +++++++++++++++++++++++++++++++++++++++
- gst/stride/gststridetransform.h |   66 ++++++++++++++
- gst/stride/plugin.c             |   45 ++++++++++
- 5 files changed, 306 insertions(+), 0 deletions(-)
- create mode 100644 gst/stride/Makefile.am
- create mode 100644 gst/stride/gststridetransform.c
- create mode 100644 gst/stride/gststridetransform.h
- create mode 100644 gst/stride/plugin.c
-
-diff --git a/configure.ac b/configure.ac
-index 3325abc..af6cd52 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -427,6 +427,7 @@ AG_GST_CHECK_PLUGIN(ffmpegcolorspace)
- AG_GST_CHECK_PLUGIN(gdp)
- AG_GST_CHECK_PLUGIN(playback)
- AG_GST_CHECK_PLUGIN(audioresample)
-+AG_GST_CHECK_PLUGIN(stride)
- AG_GST_CHECK_PLUGIN(subparse)
- AG_GST_CHECK_PLUGIN(tcp)
- AG_GST_CHECK_PLUGIN(typefind)
-@@ -925,6 +926,7 @@ gst/ffmpegcolorspace/Makefile
- gst/gdp/Makefile
- gst/playback/Makefile
- gst/audioresample/Makefile
-+gst/stride/Makefile
- gst/subparse/Makefile
- gst/tcp/Makefile
- gst/typefind/Makefile
-diff --git a/gst/stride/Makefile.am b/gst/stride/Makefile.am
-new file mode 100644
-index 0000000..1adc197
---- /dev/null
-+++ b/gst/stride/Makefile.am
-@@ -0,0 +1,15 @@
-+plugin_LTLIBRARIES = libgststridetransform.la
-+
-+libgststridetransform_la_SOURCES = \
-+	gststridetransform.c \
-+	plugin.c
-+
-+libgststridetransform_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
-+libgststridetransform_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-+libgststridetransform_la_LIBADD = \
-+	$(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_MAJORMINOR@.la \
-+	$(GST_BASE_LIBS) $(GST_LIBS) $(LIBM)
-+libgststridetransform_la_LIBTOOLFLAGS = --tag=disable-static
-+
-+noinst_HEADERS = \
-+	gststridetransform.h
-diff --git a/gst/stride/gststridetransform.c b/gst/stride/gststridetransform.c
-new file mode 100644
-index 0000000..21f2d6e
---- /dev/null
-+++ b/gst/stride/gststridetransform.c
-@@ -0,0 +1,178 @@
-+/* GStreamer
-+ *
-+ * Copyright (C) 2009 Texas Instruments, Inc - http://www.ti.com/
-+ *
-+ * Description: V4L2 sink element
-+ *  Created on: Jul 30, 2009
-+ *      Author: Rob Clark <rob@ti.com>
-+ *
-+ * 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.
-+ */
-+
-+
-+/**
-+ * SECTION:element-stridetransform
-+ *
-+ * stridetransform can be used to convert between video buffers
-+ * with and without stride, or between buffers with differing
-+ * stride
-+ *
-+ * <refsect2>
-+ * <title>Example launch lines</title>
-+ * |[
-+ * gst-launch ???? TODO
-+ * ]| This pipeline ???? TODO
-+ * </refsect2>
-+ */
-+
-+
-+#ifdef HAVE_CONFIG_H
-+#include <config.h>
-+#endif
-+
-+#include "gststridetransform.h"
-+#include "gst/gst-i18n-plugin.h"
-+
-+
-+static const GstElementDetails stridetransform_details =
-+GST_ELEMENT_DETAILS ("Stride transform",
-+    "Filter/Converter/Video",
-+    "Convert between video buffers with and without stride, or with differing stride",
-+    "Rob Clark <rob@ti.com>,");
-+
-+GST_DEBUG_CATEGORY (stridetransform_debug);
-+#define GST_CAT_DEFAULT stridetransform_debug
-+
-+/* type functions */
-+static void gst_stride_transform_dispose (GObject * obj);
-+
-+/* GstBaseTransform functions */
-+static gboolean gst_stride_transform_get_unit_size (GstBaseTransform * base,
-+    GstCaps * caps, guint * size);
-+static GstCaps *gst_stride_transform_transform_caps (GstBaseTransform * base,
-+    GstPadDirection direction, GstCaps * caps);
-+static void gst_stride_transform_fixate_caps (GstBaseTransform * base,
-+    GstPadDirection direction, GstCaps * caps, GstCaps * othercaps);
-+static gboolean gst_stride_transform_set_caps (GstBaseTransform * base,
-+    GstCaps * incaps, GstCaps * outcaps);
-+static GstFlowReturn gst_stride_transform_transform (GstBaseTransform * base,
-+    GstBuffer * inbuf, GstBuffer * outbuf);
-+static GstFlowReturn gst_stride_transform_transform_ip (GstBaseTransform * base,
-+    GstBuffer * buf);
-+
-+GST_BOILERPLATE (GstStrideTransform, gst_stride_transform, GstVideoFilter, GST_TYPE_VIDEO_FILTER);
-+
-+
-+static void
-+gst_stride_transform_base_init (gpointer g_class)
-+{
-+  GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class);
-+
-+  GST_DEBUG_CATEGORY_INIT (stridetransform_debug, "stride", 0, "stride transform element");
-+
-+  gst_element_class_set_details (gstelement_class, &stridetransform_details);
-+}
-+
-+static void
-+gst_stride_transform_class_init (GstStrideTransformClass * klass)
-+{
-+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-+  GstBaseTransformClass *basetransform_class = GST_BASE_TRANSFORM_CLASS (klass);
-+
-+  gobject_class->dispose = gst_stride_transform_dispose;
-+
-+  basetransform_class->get_unit_size =
-+      GST_DEBUG_FUNCPTR (gst_stride_transform_get_unit_size);
-+  basetransform_class->transform_caps =
-+      GST_DEBUG_FUNCPTR (gst_stride_transform_transform_caps);
-+  basetransform_class->fixate_caps =
-+      GST_DEBUG_FUNCPTR (gst_stride_transform_fixate_caps);
-+  basetransform_class->set_caps =
-+      GST_DEBUG_FUNCPTR (gst_stride_transform_set_caps);
-+  basetransform_class->transform_ip =
-+      GST_DEBUG_FUNCPTR (gst_stride_transform_transform_ip);
-+  basetransform_class->transform =
-+      GST_DEBUG_FUNCPTR (gst_stride_transform_transform);
-+
-+  basetransform_class->passthrough_on_same_caps = TRUE;
-+}
-+
-+static void
-+gst_stride_transform_init (GstStrideTransform * self, GstStrideTransformClass * klass)
-+{
-+  GST_DEBUG_OBJECT (self, "not implemented");
-+}
-+
-+
-+static void
-+gst_stride_transform_dispose (GObject * object)
-+{
-+  GstStrideTransform *self = GST_STRIDE_TRANSFORM (object);
-+  GST_DEBUG_OBJECT (self, "not implemented");
-+  G_OBJECT_CLASS (parent_class)->dispose (object);
-+}
-+
-+static gboolean
-+gst_stride_transform_get_unit_size (GstBaseTransform * base,
-+    GstCaps * caps, guint * size)
-+{
-+  GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
-+  GST_DEBUG_OBJECT (self, "not implemented");
-+  return FALSE;
-+}
-+
-+static GstCaps *
-+gst_stride_transform_transform_caps (GstBaseTransform * base,
-+    GstPadDirection direction, GstCaps * caps)
-+{
-+  GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
-+  GST_DEBUG_OBJECT (self, "not implemented");
-+  return NULL;
-+}
-+
-+static void
-+gst_stride_transform_fixate_caps (GstBaseTransform * base,
-+    GstPadDirection direction, GstCaps * caps, GstCaps * othercaps)
-+{
-+  GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
-+  GST_DEBUG_OBJECT (self, "not implemented");
-+}
-+
-+static gboolean
-+gst_stride_transform_set_caps (GstBaseTransform * base,
-+    GstCaps * incaps, GstCaps * outcaps)
-+{
-+  GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
-+  GST_DEBUG_OBJECT (self, "not implemented");
-+  return FALSE;
-+}
-+
-+static GstFlowReturn gst_stride_transform_transform (GstBaseTransform * base,
-+    GstBuffer * inbuf, GstBuffer * outbuf)
-+{
-+  GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
-+  GST_DEBUG_OBJECT (self, "not implemented");
-+  return GST_FLOW_ERROR;
-+}
-+
-+static GstFlowReturn
-+gst_stride_transform_transform_ip (GstBaseTransform * base,
-+    GstBuffer * buf)
-+{
-+  GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
-+  GST_DEBUG_OBJECT (self, "not implemented");
-+  return GST_FLOW_ERROR;
-+}
-diff --git a/gst/stride/gststridetransform.h b/gst/stride/gststridetransform.h
-new file mode 100644
-index 0000000..b4f7d59
---- /dev/null
-+++ b/gst/stride/gststridetransform.h
-@@ -0,0 +1,66 @@
-+/* GStreamer
-+ *
-+ * Copyright (C) 2009 Texas Instruments, Inc - http://www.ti.com/
-+ *
-+ * Description: V4L2 sink element
-+ *  Created on: Jul 2, 2009
-+ *      Author: Rob Clark <rob@ti.com>
-+ *
-+ * 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.
-+ */
-+
-+#ifndef __GSTSTRIDETRANSFORM_H__
-+#define __GSTSTRIDETRANSFORM_H__
-+
-+
-+#include <gst/video/gstvideofilter.h>
-+
-+G_BEGIN_DECLS
-+
-+#define GST_TYPE_STRIDE_TRANSFORM \
-+  (gst_stride_transform_get_type())
-+#define GST_STRIDE_TRANSFORM(obj) \
-+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_STRIDE_TRANSFORM,GstStrideTransform))
-+#define GST_STRIDE_TRANSFORM_CLASS(klass) \
-+  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_STRIDE_TRANSFORM,GstStrideTransformClass))
-+#define GST_IS_STRIDE_TRANSFORM(obj) \
-+  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_STRIDE_TRANSFORM))
-+#define GST_IS_STRIDE_TRANSFORM_CLASS(klass) \
-+  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_STRIDE_TRANSFORM))
-+
-+typedef struct _GstStrideTransform GstStrideTransform;
-+typedef struct _GstStrideTransformClass GstStrideTransformClass;
-+
-+/**
-+ * GstStrideTransform:
-+ *
-+ * Opaque datastructure.
-+ */
-+struct _GstStrideTransform {
-+  GstVideoFilter videofilter;
-+
-+};
-+
-+struct _GstStrideTransformClass {
-+  GstVideoFilterClass parent_class;
-+};
-+
-+GType gst_stride_transform_get_type (void);
-+
-+G_END_DECLS
-+
-+
-+#endif /* __GSTSTRIDETRANSFORM_H__ */
-diff --git a/gst/stride/plugin.c b/gst/stride/plugin.c
-new file mode 100644
-index 0000000..7672bdc
---- /dev/null
-+++ b/gst/stride/plugin.c
-@@ -0,0 +1,45 @@
-+/* GStreamer
-+ *
-+ * Copyright (C) 2009 Texas Instruments, Inc - http://www.ti.com/
-+ *
-+ * Description: V4L2 sink element
-+ *  Created on: Jul 30, 2009
-+ *      Author: Rob Clark <rob@ti.com>
-+ *
-+ * 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 "gststridetransform.h"
-+
-+static gboolean
-+plugin_init (GstPlugin * plugin)
-+{
-+  if (!gst_element_register (plugin, "stridetransform",
-+          GST_RANK_PRIMARY, gst_stride_transform_get_type ()))
-+    return FALSE;
-+
-+  return TRUE;
-+}
-+
-+GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
-+    GST_VERSION_MINOR,
-+    "stridetransform",
-+    "Convert video from strided to non-strided, or between different row-strides",
-+    plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN)
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0003-stridetransform-implement-caps-negotiation-and-relat.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0003-stridetransform-implement-caps-negotiation-and-relat.patch
deleted file mode 100644
index faf97a1..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0003-stridetransform-implement-caps-negotiation-and-relat.patch
+++ /dev/null
@@ -1,379 +0,0 @@
-From c235770f9e1c73dc75d6873166bc1ef69770a6c1 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Fri, 31 Jul 2009 16:31:42 -0500
-Subject: [PATCH 03/24] stridetransform: implement caps negotiation and related parts
-
-now all that is left is to implement the actual transform functions
----
- gst-libs/gst/video/video.h      |   10 ++
- gst/stride/gststridetransform.c |  190 ++++++++++++++++++++++++++++++---------
- gst/stride/gststridetransform.h |   38 ++++++++
- 3 files changed, 196 insertions(+), 42 deletions(-)
-
-diff --git a/gst-libs/gst/video/video.h b/gst-libs/gst/video/video.h
-index a6a2293..5bac21f 100644
---- a/gst-libs/gst/video/video.h
-+++ b/gst-libs/gst/video/video.h
-@@ -356,6 +356,16 @@ typedef enum {
-         "height = " GST_VIDEO_SIZE_RANGE ", "                           \
-         "framerate = " GST_VIDEO_FPS_RANGE
- 
-+
-+#define GST_VIDEO_CAPS_YUV_STRIDED(fourcc, rowstride)                   \
-+        GST_VIDEO_CAPS_YUV(fourcc) "; "                                 \
-+        "video/x-raw-yuv-strided, "                                     \
-+        "format = (fourcc) " fourcc ", "                                \
-+        "rowstride = (int) " rowstride ", "                             \
-+        "width = " GST_VIDEO_SIZE_RANGE ", "                            \
-+        "height = " GST_VIDEO_SIZE_RANGE ", "                           \
-+        "framerate = " GST_VIDEO_FPS_RANGE
-+
- /* buffer flags */
- 
- /**
-diff --git a/gst/stride/gststridetransform.c b/gst/stride/gststridetransform.c
-index 21f2d6e..e31bf11 100644
---- a/gst/stride/gststridetransform.c
-+++ b/gst/stride/gststridetransform.c
-@@ -33,7 +33,10 @@
-  * <refsect2>
-  * <title>Example launch lines</title>
-  * |[
-- * gst-launch ???? TODO
-+ * gst-launch videotestsrc ! video/x-raw-yuv,format=(fourcc)YUY2,width=320,height=240,framerate=30/1 !
-+ * stridetransform ! video/x-raw-yuv-strided,format=(fourcc)YUY2,width=320,height=240,rowstride=700,framerate=30/1 !
-+ * stridetransform ! video/x-raw-yuv,format=(fourcc)YUY2,width=320,height=240,framerate=30/1 !
-+ * v4l2sink
-  * ]| This pipeline ???? TODO
-  * </refsect2>
-  */
-@@ -43,8 +46,11 @@
- #include <config.h>
- #endif
- 
--#include "gststridetransform.h"
-+#include <string.h>
-+#include <gst/video/video.h>
-+
- #include "gst/gst-i18n-plugin.h"
-+#include "gststridetransform.h"
- 
- 
- static const GstElementDetails stridetransform_details =
-@@ -53,25 +59,44 @@ GST_ELEMENT_DETAILS ("Stride transform",
-     "Convert between video buffers with and without stride, or with differing stride",
-     "Rob Clark <rob@ti.com>,");
- 
-+
-+/* TODO: add rgb formats too! */
-+#define SUPPORTED_CAPS                                                        \
-+  GST_VIDEO_CAPS_YUV_STRIDED ("{ I420, YV12, YUY2 }", "[ 0, max ]")
-+
-+
-+static GstStaticPadTemplate src_template =
-+GST_STATIC_PAD_TEMPLATE ("src",
-+    GST_PAD_SRC,
-+    GST_PAD_ALWAYS,
-+    GST_STATIC_CAPS (SUPPORTED_CAPS)
-+    );
-+
-+static GstStaticPadTemplate sink_template =
-+GST_STATIC_PAD_TEMPLATE ("sink",
-+    GST_PAD_SINK,
-+    GST_PAD_ALWAYS,
-+    GST_STATIC_CAPS (SUPPORTED_CAPS)
-+    );
-+
-+
- GST_DEBUG_CATEGORY (stridetransform_debug);
- #define GST_CAT_DEFAULT stridetransform_debug
- 
- /* type functions */
--static void gst_stride_transform_dispose (GObject * obj);
-+static void gst_stride_transform_dispose (GObject *obj);
- 
- /* GstBaseTransform functions */
--static gboolean gst_stride_transform_get_unit_size (GstBaseTransform * base,
--    GstCaps * caps, guint * size);
--static GstCaps *gst_stride_transform_transform_caps (GstBaseTransform * base,
--    GstPadDirection direction, GstCaps * caps);
--static void gst_stride_transform_fixate_caps (GstBaseTransform * base,
--    GstPadDirection direction, GstCaps * caps, GstCaps * othercaps);
--static gboolean gst_stride_transform_set_caps (GstBaseTransform * base,
--    GstCaps * incaps, GstCaps * outcaps);
--static GstFlowReturn gst_stride_transform_transform (GstBaseTransform * base,
--    GstBuffer * inbuf, GstBuffer * outbuf);
--static GstFlowReturn gst_stride_transform_transform_ip (GstBaseTransform * base,
--    GstBuffer * buf);
-+static gboolean gst_stride_transform_get_unit_size (GstBaseTransform *base,
-+    GstCaps *caps, guint *size);
-+static GstCaps *gst_stride_transform_transform_caps (GstBaseTransform *base,
-+    GstPadDirection direction, GstCaps *caps);
-+static gboolean gst_stride_transform_set_caps (GstBaseTransform *base,
-+    GstCaps *incaps, GstCaps *outcaps);
-+static GstFlowReturn gst_stride_transform_transform (GstBaseTransform *base,
-+    GstBuffer *inbuf, GstBuffer *outbuf);
-+static GstFlowReturn gst_stride_transform_transform_ip (GstBaseTransform *base,
-+    GstBuffer *buf);
- 
- GST_BOILERPLATE (GstStrideTransform, gst_stride_transform, GstVideoFilter, GST_TYPE_VIDEO_FILTER);
- 
-@@ -84,10 +109,15 @@ gst_stride_transform_base_init (gpointer g_class)
-   GST_DEBUG_CATEGORY_INIT (stridetransform_debug, "stride", 0, "stride transform element");
- 
-   gst_element_class_set_details (gstelement_class, &stridetransform_details);
-+
-+  gst_element_class_add_pad_template (gstelement_class,
-+      gst_static_pad_template_get (&sink_template));
-+  gst_element_class_add_pad_template (gstelement_class,
-+      gst_static_pad_template_get (&src_template));
- }
- 
- static void
--gst_stride_transform_class_init (GstStrideTransformClass * klass)
-+gst_stride_transform_class_init (GstStrideTransformClass *klass)
- {
-   GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-   GstBaseTransformClass *basetransform_class = GST_BASE_TRANSFORM_CLASS (klass);
-@@ -98,8 +128,6 @@ gst_stride_transform_class_init (GstStrideTransformClass * klass)
-       GST_DEBUG_FUNCPTR (gst_stride_transform_get_unit_size);
-   basetransform_class->transform_caps =
-       GST_DEBUG_FUNCPTR (gst_stride_transform_transform_caps);
--  basetransform_class->fixate_caps =
--      GST_DEBUG_FUNCPTR (gst_stride_transform_fixate_caps);
-   basetransform_class->set_caps =
-       GST_DEBUG_FUNCPTR (gst_stride_transform_set_caps);
-   basetransform_class->transform_ip =
-@@ -111,57 +139,135 @@ gst_stride_transform_class_init (GstStrideTransformClass * klass)
- }
- 
- static void
--gst_stride_transform_init (GstStrideTransform * self, GstStrideTransformClass * klass)
-+gst_stride_transform_init (GstStrideTransform *self, GstStrideTransformClass *klass)
- {
-   GST_DEBUG_OBJECT (self, "not implemented");
- }
- 
- 
- static void
--gst_stride_transform_dispose (GObject * object)
-+gst_stride_transform_dispose (GObject *object)
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (object);
-   GST_DEBUG_OBJECT (self, "not implemented");
-   G_OBJECT_CLASS (parent_class)->dispose (object);
- }
- 
-+/**
-+ * figure out the required buffer size based on @caps
-+ */
- static gboolean
--gst_stride_transform_get_unit_size (GstBaseTransform * base,
--    GstCaps * caps, guint * size)
-+gst_stride_transform_get_unit_size (GstBaseTransform *base,
-+    GstCaps *caps, guint *size)
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
--  GST_DEBUG_OBJECT (self, "not implemented");
--  return FALSE;
-+  GstVideoFormat format;
-+  gint width, height, rowstride;
-+
-+  g_return_val_if_fail (gst_video_format_parse_caps_strided (
-+      caps, &format, &width, &height, &rowstride), FALSE);
-+
-+  *size = gst_video_format_get_size_strided (format, width, height, rowstride);
-+
-+  GST_DEBUG_OBJECT (self,
-+      "format=%d, width=%d, height=%d, rowstride=%d -> size=%d",
-+      format, width, height, rowstride, *size);
-+
-+  return TRUE;
- }
- 
--static GstCaps *
--gst_stride_transform_transform_caps (GstBaseTransform * base,
--    GstPadDirection direction, GstCaps * caps)
-+
-+/**
-+ * helper to add all fields, other than rowstride to @caps, copied from @s.
-+ */
-+static void
-+add_all_fields (GstCaps *caps, const gchar *name, GstStructure *s, gboolean rowstride)
- {
--  GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
--  GST_DEBUG_OBJECT (self, "not implemented");
--  return NULL;
-+  gint idx;
-+  GstStructure *new_s = gst_structure_new (name, NULL);
-+
-+  if (rowstride) {
-+    gst_structure_set (new_s, "rowstride", GST_TYPE_INT_RANGE, 1, 1000, NULL);  // XXX
-+  }
-+
-+  idx = gst_structure_n_fields (s) - 1;
-+  while (idx >= 0) {
-+    const gchar *name = gst_structure_nth_field_name (s, idx);
-+    if (strcmp ("rowstride", name)) {
-+      const GValue *val = gst_structure_get_value (s, name);
-+      gst_structure_set_value (new_s, name, val);
-+    }
-+    idx--;
-+  }
-+
-+  gst_caps_merge_structure (caps, new_s);
- }
- 
--static void
--gst_stride_transform_fixate_caps (GstBaseTransform * base,
--    GstPadDirection direction, GstCaps * caps, GstCaps * othercaps)
-+
-+/**
-+ * we can transform @caps to strided or non-strided caps with otherwise
-+ * identical parameters
-+ */
-+static GstCaps *
-+gst_stride_transform_transform_caps (GstBaseTransform *base,
-+    GstPadDirection direction, GstCaps *caps)
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
--  GST_DEBUG_OBJECT (self, "not implemented");
-+  GstCaps *ret;
-+  GstStructure *s;
-+
-+  g_return_val_if_fail (GST_CAPS_IS_SIMPLE (caps), NULL);
-+
-+  GST_DEBUG_OBJECT (self, "direction=%d, caps=%p", direction, caps);
-+  LOG_CAPS (self, caps);
-+
-+  ret = gst_caps_new_empty ();
-+  s = gst_caps_get_structure (caps, 0);
-+
-+  if (gst_structure_has_name (s, "video/x-raw-yuv") ||
-+      gst_structure_has_name (s, "video/x-raw-yuv-strided")) {
-+
-+    add_all_fields (ret, "video/x-raw-yuv", s, FALSE);
-+    add_all_fields (ret, "video/x-raw-yuv-strided", s, TRUE);
-+
-+  } else if (gst_structure_has_name (s, "video/x-raw-rgb") ||
-+      gst_structure_has_name (s, "video/x-raw-rgb-strided")) {
-+
-+    add_all_fields (ret, "video/x-raw-rgb", s, FALSE);
-+    add_all_fields (ret, "video/x-raw-rgb-strided", s, TRUE);
-+
-+  }
-+
-+  LOG_CAPS (self, ret);
-+
-+  return ret;
- }
- 
-+/**
-+ * at this point, we have identical fourcc, width, and height for @incaps
-+ * and @outcaps..  so we need to extract these to use for transforming,
-+ * plus the requested rowstride of the @incaps and @outcaps
-+ */
- static gboolean
--gst_stride_transform_set_caps (GstBaseTransform * base,
--    GstCaps * incaps, GstCaps * outcaps)
-+gst_stride_transform_set_caps (GstBaseTransform *base,
-+    GstCaps *incaps, GstCaps *outcaps)
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
--  GST_DEBUG_OBJECT (self, "not implemented");
--  return FALSE;
-+
-+  LOG_CAPS (self, incaps);
-+  LOG_CAPS (self, outcaps);
-+
-+  g_return_val_if_fail (gst_video_format_parse_caps_strided (incaps,
-+      &self->format, &self->width, &self->height, &self->in_rowstride), FALSE);
-+  g_return_val_if_fail (gst_video_format_parse_caps_strided (outcaps,
-+      NULL, NULL, NULL, &self->out_rowstride), FALSE);
-+
-+  return TRUE;
- }
- 
--static GstFlowReturn gst_stride_transform_transform (GstBaseTransform * base,
--    GstBuffer * inbuf, GstBuffer * outbuf)
-+static GstFlowReturn
-+gst_stride_transform_transform (GstBaseTransform *base,
-+    GstBuffer *inbuf, GstBuffer *outbuf)
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
-   GST_DEBUG_OBJECT (self, "not implemented");
-@@ -169,8 +275,8 @@ static GstFlowReturn gst_stride_transform_transform (GstBaseTransform * base,
- }
- 
- static GstFlowReturn
--gst_stride_transform_transform_ip (GstBaseTransform * base,
--    GstBuffer * buf)
-+gst_stride_transform_transform_ip (GstBaseTransform *base,
-+    GstBuffer *buf)
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
-   GST_DEBUG_OBJECT (self, "not implemented");
-diff --git a/gst/stride/gststridetransform.h b/gst/stride/gststridetransform.h
-index b4f7d59..d80197f 100644
---- a/gst/stride/gststridetransform.h
-+++ b/gst/stride/gststridetransform.h
-@@ -27,6 +27,8 @@
- 
- 
- #include <gst/video/gstvideofilter.h>
-+#include <gst/video/video.h>
-+
- 
- G_BEGIN_DECLS
- 
-@@ -52,6 +54,11 @@ typedef struct _GstStrideTransformClass GstStrideTransformClass;
- struct _GstStrideTransform {
-   GstVideoFilter videofilter;
- 
-+  /*< private >*/
-+  GstVideoFormat format;
-+  gint width, height;
-+  gint in_rowstride;
-+  gint out_rowstride;
- };
- 
- struct _GstStrideTransformClass {
-@@ -63,4 +70,35 @@ GType gst_stride_transform_get_type (void);
- G_END_DECLS
- 
- 
-+
-+
-+/* note:  in case this is a build with TTIF logging, we can optimize slightly
-+ * and avoid the gst_caps_to_string() in case logging isn't enabled by using
-+ * the TTIF_TRACE_ARG_PROCESSOR feature of ttif_trace_fprintf():
-+ */
-+#ifdef GST_LOG_OVER_TTIF
-+#  define LOG_CAPS(obj, caps)    G_STMT_START {                 \
-+    if (caps) {                                                 \
-+      static TTIF_TRACE_ARG_PROCESSOR proc = {                  \
-+        .convert = (char (*)(void *))gst_caps_to_string,        \
-+        .free    = (void (*)(char *))g_free                     \
-+      };                                                        \
-+      GST_DEBUG_OBJECT (obj, "%s: %qs", #caps, &proc, (caps));  \
-+    } else {                                                    \
-+      GST_DEBUG_OBJECT (obj, "null");                           \
-+    }                                                           \
-+  } G_STMT_END
-+#else
-+#  define LOG_CAPS(obj, caps)    G_STMT_START {                 \
-+    if (caps) {                                                 \
-+      gchar *capstr = gst_caps_to_string (caps);                \
-+      GST_DEBUG_OBJECT (obj, "%s: %s", #caps, capstr);          \
-+      g_free (capstr);                                          \
-+    } else {                                                    \
-+      GST_DEBUG_OBJECT (obj, "null");                           \
-+    }                                                           \
-+  } G_STMT_END
-+#endif
-+
-+
- #endif /* __GSTSTRIDETRANSFORM_H__ */
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0004-stridetransform-implement-transform-function.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0004-stridetransform-implement-transform-function.patch
deleted file mode 100644
index b948c02..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0004-stridetransform-implement-transform-function.patch
+++ /dev/null
@@ -1,215 +0,0 @@
-From 44d68a183355bce2dd7b6c890f67420ab300e0b4 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Fri, 31 Jul 2009 17:39:47 -0500
-Subject: [PATCH 04/24] stridetransform: implement transform function
-
-Still needed are a few details, like conversion from one stride to another (instead of just strided->nonstrided or visa versa), and support for RGB and more YUV color formats.
----
- gst/stride/gststridetransform.c |  163 +++++++++++++++++++++++++++++++++++++--
- 1 files changed, 157 insertions(+), 6 deletions(-)
-
-diff --git a/gst/stride/gststridetransform.c b/gst/stride/gststridetransform.c
-index e31bf11..a911cd0 100644
---- a/gst/stride/gststridetransform.c
-+++ b/gst/stride/gststridetransform.c
-@@ -187,7 +187,7 @@ add_all_fields (GstCaps *caps, const gchar *name, GstStructure *s, gboolean rows
-   GstStructure *new_s = gst_structure_new (name, NULL);
- 
-   if (rowstride) {
--    gst_structure_set (new_s, "rowstride", GST_TYPE_INT_RANGE, 1, 1000, NULL);  // XXX
-+    gst_structure_set (new_s, "rowstride", GST_TYPE_INT_RANGE, 1, 1000, NULL);  // TODO
-   }
- 
-   idx = gst_structure_n_fields (s) - 1;
-@@ -253,6 +253,8 @@ gst_stride_transform_set_caps (GstBaseTransform *base,
-     GstCaps *incaps, GstCaps *outcaps)
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
-+  GstVideoFormat format;
-+  gint width, height;
- 
-   LOG_CAPS (self, incaps);
-   LOG_CAPS (self, outcaps);
-@@ -260,17 +262,166 @@ gst_stride_transform_set_caps (GstBaseTransform *base,
-   g_return_val_if_fail (gst_video_format_parse_caps_strided (incaps,
-       &self->format, &self->width, &self->height, &self->in_rowstride), FALSE);
-   g_return_val_if_fail (gst_video_format_parse_caps_strided (outcaps,
--      NULL, NULL, NULL, &self->out_rowstride), FALSE);
-+      &format, &width, &height, &self->out_rowstride), FALSE);
-+
-+  g_return_val_if_fail (self->format == format, FALSE);
-+  g_return_val_if_fail (self->width  == width,  FALSE);
-+  g_return_val_if_fail (self->height == height, FALSE);
- 
-   return TRUE;
- }
- 
-+/* ************************************************************************* */
-+
-+/**
-+ * Convert from one stride to another... like memmove, but can convert stride in
-+ * the process.  This function is not aware of pixels, only of bytes.  So widths
-+ * are given in bytes, not pixels.  The new_buf and orig_buf can point to the
-+ * same buffers to do an in-place conversion, but the buffer should be large
-+ * enough.
-+ */
-+static void
-+stridemove (guchar *new_buf, guchar *orig_buf, gint new_width, gint orig_width, gint height)
-+{
-+  int row;
-+
-+  GST_DEBUG ("new_buf=%p, orig_buf=%p, new_width=%d, orig_width=%d, height=%d",
-+      new_buf, orig_buf, new_width, orig_width, height);
-+  /* if increasing the stride, work from bottom-up to avoid overwriting data
-+   * that has not been moved yet.. otherwise, work in the opposite order,
-+   * for the same reason.
-+   */
-+  if (new_width > orig_width) {
-+    for (row=height-1; row>=0; row--) {
-+      memmove (new_buf+(new_width*row), orig_buf+(orig_width*row), orig_width);
-+    }
-+  } else {
-+    for (row=0; row<height; row++) {
-+      memmove (new_buf+(new_width*row), orig_buf+(orig_width*row), orig_width);
-+    }
-+  }
-+}
-+
-+
-+/**
-+ * Convert from a non-strided buffer to strided.  The two buffer pointers could
-+ * be pointing to the same memory block for in-place transform.. assuming that
-+ * the buffer is large enough
-+ *
-+ * @strided:    the pointer to the resulting strided buffer
-+ * @unstrided:  the pointer to the initial unstrided buffer
-+ * @fourcc:     the color format
-+ * @stride:     the stride, in bytes
-+ * @width:      the width in pixels
-+ * @height:     the height in pixels
-+ */
-+static GstFlowReturn
-+stridify (GstStrideTransform *self, guchar *strided, guchar *unstrided)
-+{
-+  gint width  = self->width;
-+  gint height = self->height;
-+  gint stride = self->out_rowstride;
-+
-+  switch (self->format) {
-+#if 0 /* TODO */
-+    case GST_VIDEO_FORMAT_NV12:
-+      g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-+      stridemove (strided, unstrided, stride, width, height * 1.5);
-+      return GST_FLOW_OK;
-+#endif
-+    case GST_VIDEO_FORMAT_I420:
-+    case GST_VIDEO_FORMAT_YV12:
-+      g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-+      stridemove (
-+          strided + (int)(height*stride*1.5),
-+          unstrided + (int)(height*width*1.5),
-+          stride, width/2, height);                             /* move U/V */
-+      stridemove (
-+          strided + (height*stride),
-+          unstrided + (height*width),
-+          stride, width/2, height);                             /* move V/U */
-+      stridemove (strided, unstrided, stride, width, height);   /* move Y */
-+      return GST_FLOW_OK;
-+    case GST_VIDEO_FORMAT_YUY2:
-+    case GST_VIDEO_FORMAT_UYVY:
-+      g_return_val_if_fail (stride >= (width*2), GST_FLOW_ERROR);
-+      stridemove (strided, unstrided, stride, width*2, height);
-+      return GST_FLOW_OK;
-+    default:
-+      GST_WARNING ("unknown color format!\n");
-+      return GST_FLOW_ERROR;
-+  }
-+}
-+
-+
-+/**
-+ * Convert from a strided buffer to non-strided.  The two buffer pointers could
-+ * be pointing to the same memory block for in-place transform..
-+ *
-+ * @unstrided:  the pointer to the resulting unstrided buffer
-+ * @strided:    the pointer to the initial strided buffer
-+ */
-+static GstFlowReturn
-+unstridify (GstStrideTransform *self, guchar *unstrided, guchar *strided)
-+{
-+  gint width  = self->width;
-+  gint height = self->height;
-+  gint stride = self->in_rowstride;
-+
-+  switch (self->format) {
-+#if 0 /* TODO */
-+    case GST_VIDEO_FORMAT_NV12:
-+      g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-+      stridemove (unstrided, strided, width, stride, height * 1.5);
-+      return GST_FLOW_OK;
-+#endif
-+    case GST_VIDEO_FORMAT_I420:
-+    case GST_VIDEO_FORMAT_YV12:
-+      g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-+      stridemove (unstrided, strided, width, stride, height);   /* move Y */
-+      stridemove (
-+          unstrided + (height*width),
-+          strided + (height*stride),
-+          width/2, stride, height);                             /* move V/U */
-+      stridemove (
-+          unstrided + (int)(height*width*1.5),
-+          strided + (int)(height*stride*1.5),
-+          width/2, stride, height);                             /* move U/V */
-+      return GST_FLOW_OK;
-+    case GST_VIDEO_FORMAT_YUY2:
-+    case GST_VIDEO_FORMAT_UYVY:
-+      g_return_val_if_fail (stride >= (width*2), GST_FLOW_ERROR);
-+      stridemove (unstrided, strided, width*2, stride, height);
-+      return GST_FLOW_OK;
-+    default:
-+      GST_WARNING ("unknown color format!\n");
-+      return GST_FLOW_ERROR;
-+  }
-+}
-+
-+
- static GstFlowReturn
- gst_stride_transform_transform (GstBaseTransform *base,
-     GstBuffer *inbuf, GstBuffer *outbuf)
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
--  GST_DEBUG_OBJECT (self, "not implemented");
-+
-+  GST_DEBUG_OBJECT (self, "inbuf=%p, outbuf=%p", inbuf, outbuf);
-+
-+  if (self->in_rowstride && self->out_rowstride) {
-+    GST_DEBUG_OBJECT (self, "not implemented");  // TODO
-+    return GST_FLOW_ERROR;
-+  } else if (self->in_rowstride) {
-+    return unstridify (self,
-+        GST_BUFFER_DATA (outbuf), GST_BUFFER_DATA (inbuf));
-+  } else if (self->out_rowstride) {
-+    return stridify (self,
-+        GST_BUFFER_DATA (outbuf), GST_BUFFER_DATA (inbuf));
-+  }
-+
-+  GST_DEBUG_OBJECT (self, "this shouldn't happen!  in_rowstride=%d, out_rowstride=%d",
-+      self->in_rowstride, self->out_rowstride);
-+
-   return GST_FLOW_ERROR;
- }
- 
-@@ -278,7 +429,7 @@ static GstFlowReturn
- gst_stride_transform_transform_ip (GstBaseTransform *base,
-     GstBuffer *buf)
- {
--  GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
--  GST_DEBUG_OBJECT (self, "not implemented");
--  return GST_FLOW_ERROR;
-+  /* transform function is safe to call with same buffer ptr:
-+   */
-+  return gst_stride_transform_transform (base, buf, buf);
- }
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0005-add-gst_stride_transform_transform_size.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0005-add-gst_stride_transform_transform_size.patch
deleted file mode 100644
index 2a791d0..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0005-add-gst_stride_transform_transform_size.patch
+++ /dev/null
@@ -1,143 +0,0 @@
-From c1b33e01fa6fa867b950ba0e6f4426e5a878cbe7 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Sun, 16 Aug 2009 21:04:40 -0500
-Subject: [PATCH 05/24] add gst_stride_transform_transform_size()
-
-input buffer size and output buffer size many not be multiples of a common unit size, so the transform_size() method should be used
----
- gst/stride/gststridetransform.c |   38 ++++++++++++++++++++++++++++++++++++--
- gst/stride/gststridetransform.h |   34 +++++-----------------------------
- 2 files changed, 41 insertions(+), 31 deletions(-)
-
-diff --git a/gst/stride/gststridetransform.c b/gst/stride/gststridetransform.c
-index a911cd0..adc22ce 100644
---- a/gst/stride/gststridetransform.c
-+++ b/gst/stride/gststridetransform.c
-@@ -62,7 +62,7 @@ GST_ELEMENT_DETAILS ("Stride transform",
- 
- /* TODO: add rgb formats too! */
- #define SUPPORTED_CAPS                                                        \
--  GST_VIDEO_CAPS_YUV_STRIDED ("{ I420, YV12, YUY2 }", "[ 0, max ]")
-+  GST_VIDEO_CAPS_YUV_STRIDED ("{ I420, YV12, YUY2, UYVY }", "[ 0, max ]")
- 
- 
- static GstStaticPadTemplate src_template =
-@@ -89,6 +89,10 @@ static void gst_stride_transform_dispose (GObject *obj);
- /* GstBaseTransform functions */
- static gboolean gst_stride_transform_get_unit_size (GstBaseTransform *base,
-     GstCaps *caps, guint *size);
-+static gboolean gst_stride_transform_transform_size (GstBaseTransform *base,
-+    GstPadDirection direction,
-+    GstCaps *caps, guint size,
-+    GstCaps *othercaps, guint *othersize);
- static GstCaps *gst_stride_transform_transform_caps (GstBaseTransform *base,
-     GstPadDirection direction, GstCaps *caps);
- static gboolean gst_stride_transform_set_caps (GstBaseTransform *base,
-@@ -126,6 +130,8 @@ gst_stride_transform_class_init (GstStrideTransformClass *klass)
- 
-   basetransform_class->get_unit_size =
-       GST_DEBUG_FUNCPTR (gst_stride_transform_get_unit_size);
-+  basetransform_class->transform_size =
-+      GST_DEBUG_FUNCPTR (gst_stride_transform_transform_size);
-   basetransform_class->transform_caps =
-       GST_DEBUG_FUNCPTR (gst_stride_transform_transform_caps);
-   basetransform_class->set_caps =
-@@ -176,6 +182,34 @@ gst_stride_transform_get_unit_size (GstBaseTransform *base,
-   return TRUE;
- }
- 
-+/**
-+ * Default transform_size function is no good, as it assumes that the output
-+ * buffer size is a multiple of the unit size.. which doesn't hold true.
-+ */
-+static gboolean
-+gst_stride_transform_transform_size (GstBaseTransform *base,
-+    GstPadDirection direction,
-+    GstCaps *caps, guint size,
-+    GstCaps *othercaps, guint *othersize)
-+{
-+  GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
-+  guint idx = (direction == GST_PAD_SINK) ? 0 : 1;
-+
-+  if (self->cached_caps[idx] != othercaps)
-+  {
-+    if (!gst_stride_transform_get_unit_size (base, othercaps,
-+        &(self->cached_size[idx])))
-+    {
-+      return FALSE;
-+    }
-+  }
-+
-+  *othersize = self->cached_size[idx];
-+
-+  return TRUE;
-+}
-+
-+
- 
- /**
-  * helper to add all fields, other than rowstride to @caps, copied from @s.
-@@ -187,7 +221,7 @@ add_all_fields (GstCaps *caps, const gchar *name, GstStructure *s, gboolean rows
-   GstStructure *new_s = gst_structure_new (name, NULL);
- 
-   if (rowstride) {
--    gst_structure_set (new_s, "rowstride", GST_TYPE_INT_RANGE, 1, 1000, NULL);  // TODO
-+    gst_structure_set (new_s, "rowstride", GST_TYPE_INT_RANGE, 1, G_MAXINT, NULL);
-   }
- 
-   idx = gst_structure_n_fields (s) - 1;
-diff --git a/gst/stride/gststridetransform.h b/gst/stride/gststridetransform.h
-index d80197f..481959e 100644
---- a/gst/stride/gststridetransform.h
-+++ b/gst/stride/gststridetransform.h
-@@ -59,6 +59,10 @@ struct _GstStrideTransform {
-   gint width, height;
-   gint in_rowstride;
-   gint out_rowstride;
-+
-+  /* for caching the tranform_size() results.. */
-+  GstCaps *cached_caps[2];
-+  guint cached_size[2];
- };
- 
- struct _GstStrideTransformClass {
-@@ -70,35 +74,7 @@ GType gst_stride_transform_get_type (void);
- G_END_DECLS
- 
- 
--
--
--/* note:  in case this is a build with TTIF logging, we can optimize slightly
-- * and avoid the gst_caps_to_string() in case logging isn't enabled by using
-- * the TTIF_TRACE_ARG_PROCESSOR feature of ttif_trace_fprintf():
-- */
--#ifdef GST_LOG_OVER_TTIF
--#  define LOG_CAPS(obj, caps)    G_STMT_START {                 \
--    if (caps) {                                                 \
--      static TTIF_TRACE_ARG_PROCESSOR proc = {                  \
--        .convert = (char (*)(void *))gst_caps_to_string,        \
--        .free    = (void (*)(char *))g_free                     \
--      };                                                        \
--      GST_DEBUG_OBJECT (obj, "%s: %qs", #caps, &proc, (caps));  \
--    } else {                                                    \
--      GST_DEBUG_OBJECT (obj, "null");                           \
--    }                                                           \
--  } G_STMT_END
--#else
--#  define LOG_CAPS(obj, caps)    G_STMT_START {                 \
--    if (caps) {                                                 \
--      gchar *capstr = gst_caps_to_string (caps);                \
--      GST_DEBUG_OBJECT (obj, "%s: %s", #caps, capstr);          \
--      g_free (capstr);                                          \
--    } else {                                                    \
--      GST_DEBUG_OBJECT (obj, "null");                           \
--    }                                                           \
--  } G_STMT_END
--#endif
-+#define LOG_CAPS(obj, caps)  GST_DEBUG_OBJECT (obj, "%s: %"GST_PTR_FORMAT, #caps, caps)
- 
- 
- #endif /* __GSTSTRIDETRANSFORM_H__ */
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0006-fix-a-small-typo.-need-to-use-the-smaller-of-new_wid.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0006-fix-a-small-typo.-need-to-use-the-smaller-of-new_wid.patch
deleted file mode 100644
index 14f7d3f..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0006-fix-a-small-typo.-need-to-use-the-smaller-of-new_wid.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From db7698656e71dc4a898fec9e46ae6c9d04352447 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Wed, 19 Aug 2009 15:33:50 -0500
-Subject: [PATCH 06/24] fix a small typo.. need to use the smaller of {new_width, orig_width} for the line-by-line copy to avoid overwriting past end of buffer
-
----
- gst/stride/gststridetransform.c |    6 ++++--
- 1 files changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/gst/stride/gststridetransform.c b/gst/stride/gststridetransform.c
-index adc22ce..ea52500 100644
---- a/gst/stride/gststridetransform.c
-+++ b/gst/stride/gststridetransform.c
-@@ -331,7 +331,7 @@ stridemove (guchar *new_buf, guchar *orig_buf, gint new_width, gint orig_width,
-     }
-   } else {
-     for (row=0; row<height; row++) {
--      memmove (new_buf+(new_width*row), orig_buf+(orig_width*row), orig_width);
-+      memmove (new_buf+(new_width*row), orig_buf+(orig_width*row), new_width);
-     }
-   }
- }
-@@ -440,7 +440,9 @@ gst_stride_transform_transform (GstBaseTransform *base,
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
- 
--  GST_DEBUG_OBJECT (self, "inbuf=%p, outbuf=%p", inbuf, outbuf);
-+  GST_DEBUG_OBJECT (self, "inbuf=%p (size=%d), outbuf=%p (size=%d)",
-+      inbuf, GST_BUFFER_SIZE (inbuf),
-+      outbuf, GST_BUFFER_SIZE (outbuf));
- 
-   if (self->in_rowstride && self->out_rowstride) {
-     GST_DEBUG_OBJECT (self, "not implemented");  // TODO
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0007-Add-NV12-support-in-stridetransform.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0007-Add-NV12-support-in-stridetransform.patch
deleted file mode 100644
index fae77f7..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0007-Add-NV12-support-in-stridetransform.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From f392c3f35052b57343e814d8f2d52b4f788d5d45 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Fri, 20 Nov 2009 18:43:12 -0600
-Subject: [PATCH 07/24] Add NV12 support in stridetransform
-
----
- gst-libs/gst/video/video.c      |    3 +++
- gst/stride/gststridetransform.c |   12 ++++--------
- 2 files changed, 7 insertions(+), 8 deletions(-)
-
-diff --git a/gst-libs/gst/video/video.c b/gst-libs/gst/video/video.c
-index 24f1ac8..ff9c4fb 100644
---- a/gst-libs/gst/video/video.c
-+++ b/gst-libs/gst/video/video.c
-@@ -2025,6 +2025,9 @@ gst_video_format_get_size_strided (GstVideoFormat format,
-     case GST_VIDEO_FORMAT_Y42B:
-     case GST_VIDEO_FORMAT_Y444:
-       return GST_ROUND_UP_4 (3 * rowstride * height);
-+    case GST_VIDEO_FORMAT_NV12:
-+    case GST_VIDEO_FORMAT_NV21:
-+      return GST_ROUND_UP_4 (rowstride) * GST_ROUND_UP_2 (height) * 3 / 2;
-     default:
-       return 0;
-   }
-diff --git a/gst/stride/gststridetransform.c b/gst/stride/gststridetransform.c
-index ea52500..56207d0 100644
---- a/gst/stride/gststridetransform.c
-+++ b/gst/stride/gststridetransform.c
-@@ -2,7 +2,7 @@
-  *
-  * Copyright (C) 2009 Texas Instruments, Inc - http://www.ti.com/
-  *
-- * Description: V4L2 sink element
-+ * Description: stride transform element
-  *  Created on: Jul 30, 2009
-  *      Author: Rob Clark <rob@ti.com>
-  *
-@@ -62,7 +62,7 @@ GST_ELEMENT_DETAILS ("Stride transform",
- 
- /* TODO: add rgb formats too! */
- #define SUPPORTED_CAPS                                                        \
--  GST_VIDEO_CAPS_YUV_STRIDED ("{ I420, YV12, YUY2, UYVY }", "[ 0, max ]")
-+  GST_VIDEO_CAPS_YUV_STRIDED ("{ I420, YV12, YUY2, UYVY, NV12 }", "[ 0, max ]")
- 
- 
- static GstStaticPadTemplate src_template =
-@@ -357,12 +357,10 @@ stridify (GstStrideTransform *self, guchar *strided, guchar *unstrided)
-   gint stride = self->out_rowstride;
- 
-   switch (self->format) {
--#if 0 /* TODO */
-     case GST_VIDEO_FORMAT_NV12:
-       g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
--      stridemove (strided, unstrided, stride, width, height * 1.5);
-+      stridemove (strided, unstrided, stride, width, (GST_ROUND_UP_2 (height) * 3) / 2);
-       return GST_FLOW_OK;
--#endif
-     case GST_VIDEO_FORMAT_I420:
-     case GST_VIDEO_FORMAT_YV12:
-       g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-@@ -403,12 +401,10 @@ unstridify (GstStrideTransform *self, guchar *unstrided, guchar *strided)
-   gint stride = self->in_rowstride;
- 
-   switch (self->format) {
--#if 0 /* TODO */
-     case GST_VIDEO_FORMAT_NV12:
-       g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
--      stridemove (unstrided, strided, width, stride, height * 1.5);
-+      stridemove (unstrided, strided, width, stride, (GST_ROUND_UP_2 (height) * 3) / 2);
-       return GST_FLOW_OK;
--#endif
-     case GST_VIDEO_FORMAT_I420:
-     case GST_VIDEO_FORMAT_YV12:
-       g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0008-add-basic-support-for-I420-NV12-colorspace-conversio.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0008-add-basic-support-for-I420-NV12-colorspace-conversio.patch
deleted file mode 100644
index 5898e0a..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0008-add-basic-support-for-I420-NV12-colorspace-conversio.patch
+++ /dev/null
@@ -1,186 +0,0 @@
-From 4b74d1b679855e8c709fde124fd9f0027ba8d916 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Fri, 27 Nov 2009 11:13:47 -0600
-Subject: [PATCH 08/24] add basic support for I420->NV12 colorspace conversion
-
----
- gst/stride/gststridetransform.c |  109 ++++++++++++++++++++++++++++++++++++---
- gst/stride/gststridetransform.h |    2 +-
- 2 files changed, 103 insertions(+), 8 deletions(-)
-
-diff --git a/gst/stride/gststridetransform.c b/gst/stride/gststridetransform.c
-index 56207d0..03deeb1 100644
---- a/gst/stride/gststridetransform.c
-+++ b/gst/stride/gststridetransform.c
-@@ -227,11 +227,43 @@ add_all_fields (GstCaps *caps, const gchar *name, GstStructure *s, gboolean rows
-   idx = gst_structure_n_fields (s) - 1;
-   while (idx >= 0) {
-     const gchar *name = gst_structure_nth_field_name (s, idx);
-+    idx--;
-+    if (!strcmp ("format", name)) {
-+      // we can do simple color format translations, such as converting from one
-+      // YUV420 format to another:
-+      GValue formats = {0};
-+      GValue fourccval = {0};
-+      guint fourcc;
-+      if (gst_structure_get_fourcc (s, name, &fourcc)) {
-+        switch (gst_video_format_from_fourcc (fourcc)) {
-+          case GST_VIDEO_FORMAT_NV12:
-+          case GST_VIDEO_FORMAT_I420:
-+GST_DEBUG ("Hmm, let's say I can convert I420<-->NV12..");
-+            g_value_init (&formats, GST_TYPE_LIST);
-+            g_value_init (&fourccval, GST_TYPE_FOURCC);
-+            gst_value_set_fourcc (&fourccval,
-+                GST_MAKE_FOURCC ('I', '4', '2', '0'));
-+            gst_value_list_append_value (&formats, &fourccval);
-+            gst_value_set_fourcc (&fourccval,
-+                GST_MAKE_FOURCC ('N', 'V', '1', '2'));
-+            gst_value_list_append_value (&formats, &fourccval);
-+            gst_structure_set_value (new_s, "format", &formats);
-+            continue;
-+/* maybe handle other cases later..
-+          case GST_VIDEO_FORMAT_YV12:
-+          case GST_VIDEO_FORMAT_YUY2:
-+          case GST_VIDEO_FORMAT_UYVY:
-+*/
-+          default:
-+            break;
-+        }
-+      }
-+    }
-+
-     if (strcmp ("rowstride", name)) {
-       const GValue *val = gst_structure_get_value (s, name);
-       gst_structure_set_value (new_s, name, val);
-     }
--    idx--;
-   }
- 
-   gst_caps_merge_structure (caps, new_s);
-@@ -287,18 +319,16 @@ gst_stride_transform_set_caps (GstBaseTransform *base,
-     GstCaps *incaps, GstCaps *outcaps)
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
--  GstVideoFormat format;
-   gint width, height;
- 
-   LOG_CAPS (self, incaps);
-   LOG_CAPS (self, outcaps);
- 
-   g_return_val_if_fail (gst_video_format_parse_caps_strided (incaps,
--      &self->format, &self->width, &self->height, &self->in_rowstride), FALSE);
-+      &self->in_format, &self->width, &self->height, &self->in_rowstride), FALSE);
-   g_return_val_if_fail (gst_video_format_parse_caps_strided (outcaps,
--      &format, &width, &height, &self->out_rowstride), FALSE);
-+      &self->out_format, &width, &height, &self->out_rowstride), FALSE);
- 
--  g_return_val_if_fail (self->format == format, FALSE);
-   g_return_val_if_fail (self->width  == width,  FALSE);
-   g_return_val_if_fail (self->height == height, FALSE);
- 
-@@ -307,6 +337,49 @@ gst_stride_transform_set_caps (GstBaseTransform *base,
- 
- /* ************************************************************************* */
- 
-+static void
-+memmove_demux (guchar *new_buf, guchar *orig_buf, gint sz, gint pxstride)
-+{
-+  if (new_buf > orig_buf) {
-+    /* copy backwards */
-+    new_buf += (sz * pxstride);
-+    orig_buf += sz;
-+    while(sz--) {
-+      *new_buf = *orig_buf;
-+      new_buf -= pxstride;
-+      orig_buf--;
-+    }
-+  } else {
-+    while(sz--) {
-+      *new_buf = *orig_buf;
-+      new_buf += pxstride;
-+      orig_buf++;
-+    }
-+  }
-+}
-+
-+static void
-+stridemove_demux (guchar *new_buf, guchar *orig_buf, gint new_width, gint orig_width, gint height, gint pxstride)
-+{
-+  int row;
-+
-+  GST_DEBUG ("new_buf=%p, orig_buf=%p, new_width=%d, orig_width=%d, height=%d",
-+      new_buf, orig_buf, new_width, orig_width, height);
-+  /* if increasing the stride, work from bottom-up to avoid overwriting data
-+   * that has not been moved yet.. otherwise, work in the opposite order,
-+   * for the same reason.
-+   */
-+  if (new_width > orig_width) {
-+    for (row=height-1; row>=0; row--) {
-+      memmove_demux (new_buf+(new_width*row), orig_buf+(orig_width*row), orig_width, pxstride);
-+    }
-+  } else {
-+    for (row=0; row<height; row++) {
-+      memmove_demux (new_buf+(new_width*row), orig_buf+(orig_width*row), new_width, pxstride);
-+    }
-+  }
-+}
-+
- /**
-  * Convert from one stride to another... like memmove, but can convert stride in
-  * the process.  This function is not aware of pixels, only of bytes.  So widths
-@@ -356,7 +429,29 @@ stridify (GstStrideTransform *self, guchar *strided, guchar *unstrided)
-   gint height = self->height;
-   gint stride = self->out_rowstride;
- 
--  switch (self->format) {
-+  if (self->out_format != self->in_format) {
-+
-+    if ((self->in_format == GST_VIDEO_FORMAT_I420) &&
-+        (self->out_format == GST_VIDEO_FORMAT_NV12)) {
-+      /* note: if not an in-place conversion, then doing the U&V in one pass
-+       * would be more efficient... but if it is an in-place conversion, I'd
-+       * need to think about whether it is potential for the new UV plane to
-+       * corrupt the V plane before it is done copying..
-+       */
-+      stridemove_demux (
-+          strided + (height*stride) + 1,
-+          unstrided + (int)(height*width*1.25),
-+          stride, width/2, height/2, 2);                        /* move V */
-+      stridemove_demux (
-+          strided + (height*stride),
-+          unstrided + (height*width),
-+          stride, width/2, height/2, 2);                        /* move U */
-+      stridemove (strided, unstrided, stride, width, height);   /* move Y */
-+      return GST_FLOW_OK;
-+    }
-+  }
-+
-+  switch (self->out_format) {
-     case GST_VIDEO_FORMAT_NV12:
-       g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-       stridemove (strided, unstrided, stride, width, (GST_ROUND_UP_2 (height) * 3) / 2);
-@@ -400,7 +495,7 @@ unstridify (GstStrideTransform *self, guchar *unstrided, guchar *strided)
-   gint height = self->height;
-   gint stride = self->in_rowstride;
- 
--  switch (self->format) {
-+  switch (self->out_format) {
-     case GST_VIDEO_FORMAT_NV12:
-       g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-       stridemove (unstrided, strided, width, stride, (GST_ROUND_UP_2 (height) * 3) / 2);
-diff --git a/gst/stride/gststridetransform.h b/gst/stride/gststridetransform.h
-index 481959e..0141571 100644
---- a/gst/stride/gststridetransform.h
-+++ b/gst/stride/gststridetransform.h
-@@ -55,7 +55,7 @@ struct _GstStrideTransform {
-   GstVideoFilter videofilter;
- 
-   /*< private >*/
--  GstVideoFormat format;
-+  GstVideoFormat in_format, out_format;
-   gint width, height;
-   gint in_rowstride;
-   gint out_rowstride;
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0009-fix-to-avoid-parsing-caps-on-every-frame.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0009-fix-to-avoid-parsing-caps-on-every-frame.patch
deleted file mode 100644
index b67789f..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0009-fix-to-avoid-parsing-caps-on-every-frame.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 8132aecf99071faab59739ebabd7bcd41a2ab581 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Fri, 27 Nov 2009 11:14:58 -0600
-Subject: [PATCH 09/24] fix to avoid parsing caps on every frame
-
----
- gst/stride/gststridetransform.c |   10 +++++++---
- 1 files changed, 7 insertions(+), 3 deletions(-)
-
-diff --git a/gst/stride/gststridetransform.c b/gst/stride/gststridetransform.c
-index 03deeb1..143a9f7 100644
---- a/gst/stride/gststridetransform.c
-+++ b/gst/stride/gststridetransform.c
-@@ -197,11 +197,15 @@ gst_stride_transform_transform_size (GstBaseTransform *base,
- 
-   if (self->cached_caps[idx] != othercaps)
-   {
--    if (!gst_stride_transform_get_unit_size (base, othercaps,
--        &(self->cached_size[idx])))
--    {
-+    guint sz;
-+    if (!gst_stride_transform_get_unit_size (base, othercaps, &sz)) {
-       return FALSE;
-     }
-+    if (self->cached_caps[idx]) {
-+      gst_caps_unref (self->cached_caps[idx]);
-+    }
-+    self->cached_size[idx] = sz;
-+    self->cached_caps[idx] = gst_caps_ref (othercaps);
-   }
- 
-   *othersize = self->cached_size[idx];
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0010-refactor-stridetransform-to-make-it-easier-to-add-ne.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0010-refactor-stridetransform-to-make-it-easier-to-add-ne.patch
deleted file mode 100644
index f8c3612..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0010-refactor-stridetransform-to-make-it-easier-to-add-ne.patch
+++ /dev/null
@@ -1,759 +0,0 @@
-From c854bfe87a39d640dfd3381bcba83281d9316b50 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Fri, 27 Nov 2009 15:05:56 -0600
-Subject: [PATCH 10/24] refactor stridetransform to make it easier to add new transforms (stride and/or colorspace)
-
----
- gst/stride/Makefile.am          |    1 +
- gst/stride/convert.c            |  267 +++++++++++++++++++++++++++++++++++
- gst/stride/gststridetransform.c |  295 ++++++++-------------------------------
- gst/stride/gststridetransform.h |   18 ++-
- 4 files changed, 340 insertions(+), 241 deletions(-)
- create mode 100644 gst/stride/convert.c
-
-diff --git a/gst/stride/Makefile.am b/gst/stride/Makefile.am
-index 1adc197..0b61d55 100644
---- a/gst/stride/Makefile.am
-+++ b/gst/stride/Makefile.am
-@@ -2,6 +2,7 @@ plugin_LTLIBRARIES = libgststridetransform.la
- 
- libgststridetransform_la_SOURCES = \
- 	gststridetransform.c \
-+	convert.c \
- 	plugin.c
- 
- libgststridetransform_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
-diff --git a/gst/stride/convert.c b/gst/stride/convert.c
-new file mode 100644
-index 0000000..860f16c
---- /dev/null
-+++ b/gst/stride/convert.c
-@@ -0,0 +1,267 @@
-+/* GStreamer
-+ *
-+ * Copyright (C) 2009 Texas Instruments, Inc - http://www.ti.com/
-+ *
-+ * Description: stride transform conversion utilities
-+ *  Created on: Nov 27, 2009
-+ *      Author: Rob Clark <rob@ti.com>
-+ *
-+ * 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 <string.h>
-+#include <gst/video/video.h>
-+
-+#include "gststridetransform.h"
-+
-+
-+GST_DEBUG_CATEGORY_EXTERN (stridetransform_debug);
-+#define GST_CAT_DEFAULT stridetransform_debug
-+
-+
-+/*
-+ * Conversion utilities:
-+ */
-+
-+static void
-+memmove_demux (guchar *new_buf, guchar *orig_buf, gint sz, gint pxstride)
-+{
-+  if (new_buf > orig_buf) {
-+    /* copy backwards */
-+    new_buf += ((sz - 1) * pxstride);
-+    orig_buf += sz - 1;
-+    while(sz--) {
-+      *new_buf = *orig_buf;
-+      new_buf -= pxstride;
-+      orig_buf--;
-+    }
-+  } else {
-+    while(sz--) {
-+      *new_buf = *orig_buf;
-+      new_buf += pxstride;
-+      orig_buf++;
-+    }
-+  }
-+}
-+
-+static void
-+stridemove_demux (guchar *new_buf, guchar *orig_buf, gint new_width, gint orig_width, gint height, gint pxstride)
-+{
-+  int row;
-+
-+  GST_DEBUG ("new_buf=%p, orig_buf=%p, new_width=%d, orig_width=%d, height=%d",
-+      new_buf, orig_buf, new_width, orig_width, height);
-+
-+  /* if increasing the stride, work from bottom-up to avoid overwriting data
-+   * that has not been moved yet.. otherwise, work in the opposite order,
-+   * for the same reason.
-+   */
-+  if (new_width > orig_width) {
-+    for (row=height-1; row>=0; row--) {
-+      memmove_demux (new_buf+(new_width*row), orig_buf+(orig_width*row), orig_width, pxstride);
-+    }
-+  } else {
-+    for (row=0; row<height; row++) {
-+      memmove_demux (new_buf+(new_width*row), orig_buf+(orig_width*row), new_width, pxstride);
-+    }
-+  }
-+}
-+
-+/**
-+ * Convert from one stride to another... like memmove, but can convert stride in
-+ * the process.  This function is not aware of pixels, only of bytes.  So widths
-+ * are given in bytes, not pixels.  The new_buf and orig_buf can point to the
-+ * same buffers to do an in-place conversion, but the buffer should be large
-+ * enough.
-+ */
-+static void
-+stridemove (guchar *new_buf, guchar *orig_buf, gint new_width, gint orig_width, gint height)
-+{
-+  int row;
-+
-+  GST_DEBUG ("new_buf=%p, orig_buf=%p, new_width=%d, orig_width=%d, height=%d",
-+      new_buf, orig_buf, new_width, orig_width, height);
-+
-+  /* if increasing the stride, work from bottom-up to avoid overwriting data
-+   * that has not been moved yet.. otherwise, work in the opposite order,
-+   * for the same reason.
-+   */
-+  if (new_width > orig_width) {
-+    for (row=height-1; row>=0; row--) {
-+      memmove (new_buf+(new_width*row), orig_buf+(orig_width*row), orig_width);
-+    }
-+  } else {
-+    for (row=0; row<height; row++) {
-+      memmove (new_buf+(new_width*row), orig_buf+(orig_width*row), new_width);
-+    }
-+  }
-+}
-+
-+/*
-+ * Conversion Functions:
-+ */
-+
-+/** convert 4:2:0 semiplanar to same 4:2:0 semiplanar */
-+static GstFlowReturn
-+unstridify_420sp_420sp (GstStrideTransform *self, guchar *unstrided, guchar *strided)
-+{
-+  gint width  = self->width;
-+  gint height = self->height;
-+  gint stride = self->in_rowstride;
-+
-+  g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-+
-+  stridemove (unstrided, strided, width, stride,
-+      (GST_ROUND_UP_2 (height) * 3) / 2);
-+
-+  return GST_FLOW_OK;
-+}
-+static GstFlowReturn
-+stridify_420sp_420sp (GstStrideTransform *self, guchar *strided, guchar *unstrided)
-+{
-+  gint width  = self->width;
-+  gint height = self->height;
-+  gint stride = self->out_rowstride;
-+
-+  g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-+
-+  g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-+  stridemove (strided, unstrided, stride, width,
-+      (GST_ROUND_UP_2 (height) * 3) / 2);
-+
-+  return GST_FLOW_OK;
-+}
-+
-+/** convert 4:2:0 planar to same 4:2:0 planar */
-+static GstFlowReturn
-+unstridify_420p_420p (GstStrideTransform *self, guchar *unstrided, guchar *strided)
-+{
-+  gint width  = self->width;
-+  gint height = self->height;
-+  gint stride = self->in_rowstride;
-+
-+  g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-+
-+  stridemove (unstrided, strided, width, stride, height);   /* move Y */
-+  stridemove (
-+      unstrided + (height*width),
-+      strided + (height*stride),
-+      width/2, stride, height);                             /* move V/U */
-+  /* XXX odd widths/heights/strides: */
-+  stridemove (
-+      unstrided + (int)(height*width*1.5),
-+      strided + (int)(height*stride*1.5),
-+      width/2, stride, height);                             /* move U/V */
-+
-+  return GST_FLOW_OK;
-+}
-+static GstFlowReturn
-+stridify_420p_420p (GstStrideTransform *self, guchar *strided, guchar *unstrided)
-+{
-+  gint width  = self->width;
-+  gint height = self->height;
-+  gint stride = self->out_rowstride;
-+
-+  g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-+
-+  /* XXX odd widths/heights/strides: */
-+  stridemove (
-+      strided + (int)(height*stride*1.5),
-+      unstrided + (int)(height*width*1.5),
-+      stride, width/2, height);                             /* move U/V */
-+  stridemove (
-+      strided + (height*stride),
-+      unstrided + (height*width),
-+      stride, width/2, height);                             /* move V/U */
-+  stridemove (strided, unstrided, stride, width, height);   /* move Y */
-+
-+  return GST_FLOW_OK;
-+}
-+
-+/** convert 4:2:2 packed to same 4:2:2 packed */
-+static GstFlowReturn
-+unstridify_422i_422i (GstStrideTransform *self, guchar *unstrided, guchar *strided)
-+{
-+  gint width  = self->width;
-+  gint height = self->height;
-+  gint stride = self->in_rowstride;
-+
-+  g_return_val_if_fail (stride >= (width*2), GST_FLOW_ERROR);
-+
-+  stridemove (unstrided, strided, width*2, stride, height);
-+
-+  return GST_FLOW_OK;
-+}
-+static GstFlowReturn
-+stridify_422i_422i (GstStrideTransform *self, guchar *strided, guchar *unstrided)
-+{
-+  gint width  = self->width;
-+  gint height = self->height;
-+  gint stride = self->out_rowstride;
-+
-+  g_return_val_if_fail (stride >= (width*2), GST_FLOW_ERROR);
-+
-+  stridemove (strided, unstrided, stride, width*2, height);
-+
-+  return GST_FLOW_OK;
-+}
-+
-+/** convert I420 unstrided to NV12 strided */
-+static GstFlowReturn
-+stridify_i420_nv12 (GstStrideTransform *self, guchar *strided, guchar *unstrided)
-+{
-+  gint width  = self->width;
-+  gint height = self->height;
-+  gint stride = self->out_rowstride;
-+
-+  g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-+
-+  /* note: if not an in-place conversion, then doing the U&V in one pass
-+   * would be more efficient... but if it is an in-place conversion, I'd
-+   * need to think about whether it is potential for the new UV plane to
-+   * corrupt the V plane before it is done copying..
-+   */
-+  stridemove_demux (
-+      strided + (height*stride) + 1,
-+      unstrided + (int)(height*width*1.25),
-+      stride, width/2, height/2, 2);                        /* move V */
-+  stridemove_demux (
-+      strided + (height*stride),
-+      unstrided + (height*width),
-+      stride, width/2, height/2, 2);                        /* move U */
-+  stridemove (strided, unstrided, stride, width, height);   /* move Y */
-+
-+  return GST_FLOW_OK;
-+}
-+
-+/* last entry has GST_VIDEO_FORMAT_UNKNOWN for in/out formats */
-+Conversion stride_conversions[] = {
-+  { { GST_VIDEO_FORMAT_NV12, GST_VIDEO_FORMAT_NV12 }, stridify_420sp_420sp, unstridify_420sp_420sp },
-+  { { GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_I420 }, stridify_420p_420p,   unstridify_420p_420p },
-+  { { GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_YV12 }, stridify_420p_420p,   unstridify_420p_420p },
-+  { { GST_VIDEO_FORMAT_YUY2, GST_VIDEO_FORMAT_YUY2 }, stridify_422i_422i,   unstridify_422i_422i },
-+  { { GST_VIDEO_FORMAT_UYVY, GST_VIDEO_FORMAT_UYVY }, stridify_422i_422i,   unstridify_422i_422i },
-+  { { GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_NV12 }, stridify_i420_nv12,   NULL },
-+  /* add new entries before here */
-+  { { GST_VIDEO_FORMAT_UNKNOWN } }
-+};
-+
-+
-diff --git a/gst/stride/gststridetransform.c b/gst/stride/gststridetransform.c
-index 143a9f7..6ab0479 100644
---- a/gst/stride/gststridetransform.c
-+++ b/gst/stride/gststridetransform.c
-@@ -47,12 +47,17 @@
- #endif
- 
- #include <string.h>
-+
- #include <gst/video/video.h>
- 
- #include "gst/gst-i18n-plugin.h"
- #include "gststridetransform.h"
- 
- 
-+/* last entry has GST_VIDEO_FORMAT_UNKNOWN for in/out formats */
-+extern const Conversion stride_conversions[];
-+
-+
- static const GstElementDetails stridetransform_details =
- GST_ELEMENT_DETAILS ("Stride transform",
-     "Filter/Converter/Video",
-@@ -70,14 +75,14 @@ GST_STATIC_PAD_TEMPLATE ("src",
-     GST_PAD_SRC,
-     GST_PAD_ALWAYS,
-     GST_STATIC_CAPS (SUPPORTED_CAPS)
--    );
-+);
- 
- static GstStaticPadTemplate sink_template =
- GST_STATIC_PAD_TEMPLATE ("sink",
-     GST_PAD_SINK,
-     GST_PAD_ALWAYS,
-     GST_STATIC_CAPS (SUPPORTED_CAPS)
--    );
-+);
- 
- 
- GST_DEBUG_CATEGORY (stridetransform_debug);
-@@ -99,8 +104,6 @@ static gboolean gst_stride_transform_set_caps (GstBaseTransform *base,
-     GstCaps *incaps, GstCaps *outcaps);
- static GstFlowReturn gst_stride_transform_transform (GstBaseTransform *base,
-     GstBuffer *inbuf, GstBuffer *outbuf);
--static GstFlowReturn gst_stride_transform_transform_ip (GstBaseTransform *base,
--    GstBuffer *buf);
- 
- GST_BOILERPLATE (GstStrideTransform, gst_stride_transform, GstVideoFilter, GST_TYPE_VIDEO_FILTER);
- 
-@@ -136,8 +139,6 @@ gst_stride_transform_class_init (GstStrideTransformClass *klass)
-       GST_DEBUG_FUNCPTR (gst_stride_transform_transform_caps);
-   basetransform_class->set_caps =
-       GST_DEBUG_FUNCPTR (gst_stride_transform_set_caps);
--  basetransform_class->transform_ip =
--      GST_DEBUG_FUNCPTR (gst_stride_transform_transform_ip);
-   basetransform_class->transform =
-       GST_DEBUG_FUNCPTR (gst_stride_transform_transform);
- 
-@@ -219,7 +220,7 @@ gst_stride_transform_transform_size (GstBaseTransform *base,
-  * helper to add all fields, other than rowstride to @caps, copied from @s.
-  */
- static void
--add_all_fields (GstCaps *caps, const gchar *name, GstStructure *s, gboolean rowstride)
-+add_all_fields (GstCaps *caps, const gchar *name, GstStructure *s, gboolean rowstride, GstPadDirection direction)
- {
-   gint idx;
-   GstStructure *new_s = gst_structure_new (name, NULL);
-@@ -232,38 +233,39 @@ add_all_fields (GstCaps *caps, const gchar *name, GstStructure *s, gboolean rows
-   while (idx >= 0) {
-     const gchar *name = gst_structure_nth_field_name (s, idx);
-     idx--;
-+
-+    /* for format field, check the stride_conversions table to see what
-+     * we can support:
-+     */
-     if (!strcmp ("format", name)) {
--      // we can do simple color format translations, such as converting from one
--      // YUV420 format to another:
--      GValue formats = {0};
--      GValue fourccval = {0};
-       guint fourcc;
--      if (gst_structure_get_fourcc (s, name, &fourcc)) {
--        switch (gst_video_format_from_fourcc (fourcc)) {
--          case GST_VIDEO_FORMAT_NV12:
--          case GST_VIDEO_FORMAT_I420:
--GST_DEBUG ("Hmm, let's say I can convert I420<-->NV12..");
--            g_value_init (&formats, GST_TYPE_LIST);
--            g_value_init (&fourccval, GST_TYPE_FOURCC);
--            gst_value_set_fourcc (&fourccval,
--                GST_MAKE_FOURCC ('I', '4', '2', '0'));
--            gst_value_list_append_value (&formats, &fourccval);
--            gst_value_set_fourcc (&fourccval,
--                GST_MAKE_FOURCC ('N', 'V', '1', '2'));
-+
-+      /* XXX double check this: */
-+      gint to_format = (direction == GST_PAD_SINK) ? 1 : 0;
-+      gint from_format = (direction == GST_PAD_SRC) ? 1 : 0;
-+
-+      if (gst_structure_get_fourcc (s, "format", &fourcc)) {
-+        GValue formats = {0};
-+        GValue fourccval = {0};
-+        gint i;
-+        GstVideoFormat format = gst_video_format_from_fourcc (fourcc);
-+
-+        g_value_init (&formats, GST_TYPE_LIST);
-+        g_value_init (&fourccval, GST_TYPE_FOURCC);
-+
-+        for (i=0; stride_conversions[i].format[0]!=GST_VIDEO_FORMAT_UNKNOWN; i++) {
-+          if (stride_conversions[i].format[from_format] == format) {
-+            gst_value_set_fourcc (&fourccval, gst_video_format_to_fourcc
-+                (stride_conversions[i].format[to_format]));
-             gst_value_list_append_value (&formats, &fourccval);
--            gst_structure_set_value (new_s, "format", &formats);
--            continue;
--/* maybe handle other cases later..
--          case GST_VIDEO_FORMAT_YV12:
--          case GST_VIDEO_FORMAT_YUY2:
--          case GST_VIDEO_FORMAT_UYVY:
--*/
--          default:
--            break;
-+          }
-         }
-+
-+        continue;
-       }
-     }
- 
-+    /* copy over all other non-rowstride fields: */
-     if (strcmp ("rowstride", name)) {
-       const GValue *val = gst_structure_get_value (s, name);
-       gst_structure_set_value (new_s, name, val);
-@@ -297,14 +299,14 @@ gst_stride_transform_transform_caps (GstBaseTransform *base,
-   if (gst_structure_has_name (s, "video/x-raw-yuv") ||
-       gst_structure_has_name (s, "video/x-raw-yuv-strided")) {
- 
--    add_all_fields (ret, "video/x-raw-yuv", s, FALSE);
--    add_all_fields (ret, "video/x-raw-yuv-strided", s, TRUE);
-+    add_all_fields (ret, "video/x-raw-yuv", s, FALSE, direction);
-+    add_all_fields (ret, "video/x-raw-yuv-strided", s, TRUE, direction);
- 
-   } else if (gst_structure_has_name (s, "video/x-raw-rgb") ||
-       gst_structure_has_name (s, "video/x-raw-rgb-strided")) {
- 
--    add_all_fields (ret, "video/x-raw-rgb", s, FALSE);
--    add_all_fields (ret, "video/x-raw-rgb-strided", s, TRUE);
-+    add_all_fields (ret, "video/x-raw-rgb", s, FALSE, direction);
-+    add_all_fields (ret, "video/x-raw-rgb-strided", s, TRUE, direction);
- 
-   }
- 
-@@ -324,211 +326,37 @@ gst_stride_transform_set_caps (GstBaseTransform *base,
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
-   gint width, height;
-+  GstVideoFormat in_format, out_format;
-+  gint i;
- 
-   LOG_CAPS (self, incaps);
-   LOG_CAPS (self, outcaps);
- 
-   g_return_val_if_fail (gst_video_format_parse_caps_strided (incaps,
--      &self->in_format, &self->width, &self->height, &self->in_rowstride), FALSE);
-+      &in_format, &self->width, &self->height, &self->in_rowstride), FALSE);
-   g_return_val_if_fail (gst_video_format_parse_caps_strided (outcaps,
--      &self->out_format, &width, &height, &self->out_rowstride), FALSE);
--
--  g_return_val_if_fail (self->width  == width,  FALSE);
--  g_return_val_if_fail (self->height == height, FALSE);
--
--  return TRUE;
--}
--
--/* ************************************************************************* */
--
--static void
--memmove_demux (guchar *new_buf, guchar *orig_buf, gint sz, gint pxstride)
--{
--  if (new_buf > orig_buf) {
--    /* copy backwards */
--    new_buf += (sz * pxstride);
--    orig_buf += sz;
--    while(sz--) {
--      *new_buf = *orig_buf;
--      new_buf -= pxstride;
--      orig_buf--;
--    }
--  } else {
--    while(sz--) {
--      *new_buf = *orig_buf;
--      new_buf += pxstride;
--      orig_buf++;
--    }
--  }
--}
--
--static void
--stridemove_demux (guchar *new_buf, guchar *orig_buf, gint new_width, gint orig_width, gint height, gint pxstride)
--{
--  int row;
--
--  GST_DEBUG ("new_buf=%p, orig_buf=%p, new_width=%d, orig_width=%d, height=%d",
--      new_buf, orig_buf, new_width, orig_width, height);
--  /* if increasing the stride, work from bottom-up to avoid overwriting data
--   * that has not been moved yet.. otherwise, work in the opposite order,
--   * for the same reason.
--   */
--  if (new_width > orig_width) {
--    for (row=height-1; row>=0; row--) {
--      memmove_demux (new_buf+(new_width*row), orig_buf+(orig_width*row), orig_width, pxstride);
--    }
--  } else {
--    for (row=0; row<height; row++) {
--      memmove_demux (new_buf+(new_width*row), orig_buf+(orig_width*row), new_width, pxstride);
--    }
--  }
--}
-+      &out_format, &width, &height, &self->out_rowstride), FALSE);
- 
--/**
-- * Convert from one stride to another... like memmove, but can convert stride in
-- * the process.  This function is not aware of pixels, only of bytes.  So widths
-- * are given in bytes, not pixels.  The new_buf and orig_buf can point to the
-- * same buffers to do an in-place conversion, but the buffer should be large
-- * enough.
-- */
--static void
--stridemove (guchar *new_buf, guchar *orig_buf, gint new_width, gint orig_width, gint height)
--{
--  int row;
--
--  GST_DEBUG ("new_buf=%p, orig_buf=%p, new_width=%d, orig_width=%d, height=%d",
--      new_buf, orig_buf, new_width, orig_width, height);
--  /* if increasing the stride, work from bottom-up to avoid overwriting data
--   * that has not been moved yet.. otherwise, work in the opposite order,
--   * for the same reason.
--   */
--  if (new_width > orig_width) {
--    for (row=height-1; row>=0; row--) {
--      memmove (new_buf+(new_width*row), orig_buf+(orig_width*row), orig_width);
--    }
--  } else {
--    for (row=0; row<height; row++) {
--      memmove (new_buf+(new_width*row), orig_buf+(orig_width*row), new_width);
--    }
--  }
--}
-+  self->conversion = NULL;
- 
--
--/**
-- * Convert from a non-strided buffer to strided.  The two buffer pointers could
-- * be pointing to the same memory block for in-place transform.. assuming that
-- * the buffer is large enough
-- *
-- * @strided:    the pointer to the resulting strided buffer
-- * @unstrided:  the pointer to the initial unstrided buffer
-- * @fourcc:     the color format
-- * @stride:     the stride, in bytes
-- * @width:      the width in pixels
-- * @height:     the height in pixels
-- */
--static GstFlowReturn
--stridify (GstStrideTransform *self, guchar *strided, guchar *unstrided)
--{
--  gint width  = self->width;
--  gint height = self->height;
--  gint stride = self->out_rowstride;
--
--  if (self->out_format != self->in_format) {
--
--    if ((self->in_format == GST_VIDEO_FORMAT_I420) &&
--        (self->out_format == GST_VIDEO_FORMAT_NV12)) {
--      /* note: if not an in-place conversion, then doing the U&V in one pass
--       * would be more efficient... but if it is an in-place conversion, I'd
--       * need to think about whether it is potential for the new UV plane to
--       * corrupt the V plane before it is done copying..
--       */
--      stridemove_demux (
--          strided + (height*stride) + 1,
--          unstrided + (int)(height*width*1.25),
--          stride, width/2, height/2, 2);                        /* move V */
--      stridemove_demux (
--          strided + (height*stride),
--          unstrided + (height*width),
--          stride, width/2, height/2, 2);                        /* move U */
--      stridemove (strided, unstrided, stride, width, height);   /* move Y */
--      return GST_FLOW_OK;
-+  for (i=0; stride_conversions[i].format[0]!=GST_VIDEO_FORMAT_UNKNOWN; i++) {
-+    if ((stride_conversions[i].format[0] == in_format) &&
-+        (stride_conversions[i].format[1] == out_format)) {
-+      GST_DEBUG_OBJECT (self, "found stride_conversion: %d", i);
-+      self->conversion = &stride_conversions[i];
-+      break;
-     }
-   }
- 
--  switch (self->out_format) {
--    case GST_VIDEO_FORMAT_NV12:
--      g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
--      stridemove (strided, unstrided, stride, width, (GST_ROUND_UP_2 (height) * 3) / 2);
--      return GST_FLOW_OK;
--    case GST_VIDEO_FORMAT_I420:
--    case GST_VIDEO_FORMAT_YV12:
--      g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
--      stridemove (
--          strided + (int)(height*stride*1.5),
--          unstrided + (int)(height*width*1.5),
--          stride, width/2, height);                             /* move U/V */
--      stridemove (
--          strided + (height*stride),
--          unstrided + (height*width),
--          stride, width/2, height);                             /* move V/U */
--      stridemove (strided, unstrided, stride, width, height);   /* move Y */
--      return GST_FLOW_OK;
--    case GST_VIDEO_FORMAT_YUY2:
--    case GST_VIDEO_FORMAT_UYVY:
--      g_return_val_if_fail (stride >= (width*2), GST_FLOW_ERROR);
--      stridemove (strided, unstrided, stride, width*2, height);
--      return GST_FLOW_OK;
--    default:
--      GST_WARNING ("unknown color format!\n");
--      return GST_FLOW_ERROR;
--  }
--}
--
-+  g_return_val_if_fail (self->conversion, FALSE);
-+  g_return_val_if_fail (self->conversion->unstridify || !self->in_rowstride, FALSE);
-+  g_return_val_if_fail (self->conversion->stridify || !self->out_rowstride, FALSE);
-+  g_return_val_if_fail (self->width  == width,  FALSE);
-+  g_return_val_if_fail (self->height == height, FALSE);
- 
--/**
-- * Convert from a strided buffer to non-strided.  The two buffer pointers could
-- * be pointing to the same memory block for in-place transform..
-- *
-- * @unstrided:  the pointer to the resulting unstrided buffer
-- * @strided:    the pointer to the initial strided buffer
-- */
--static GstFlowReturn
--unstridify (GstStrideTransform *self, guchar *unstrided, guchar *strided)
--{
--  gint width  = self->width;
--  gint height = self->height;
--  gint stride = self->in_rowstride;
--
--  switch (self->out_format) {
--    case GST_VIDEO_FORMAT_NV12:
--      g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
--      stridemove (unstrided, strided, width, stride, (GST_ROUND_UP_2 (height) * 3) / 2);
--      return GST_FLOW_OK;
--    case GST_VIDEO_FORMAT_I420:
--    case GST_VIDEO_FORMAT_YV12:
--      g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
--      stridemove (unstrided, strided, width, stride, height);   /* move Y */
--      stridemove (
--          unstrided + (height*width),
--          strided + (height*stride),
--          width/2, stride, height);                             /* move V/U */
--      stridemove (
--          unstrided + (int)(height*width*1.5),
--          strided + (int)(height*stride*1.5),
--          width/2, stride, height);                             /* move U/V */
--      return GST_FLOW_OK;
--    case GST_VIDEO_FORMAT_YUY2:
--    case GST_VIDEO_FORMAT_UYVY:
--      g_return_val_if_fail (stride >= (width*2), GST_FLOW_ERROR);
--      stridemove (unstrided, strided, width*2, stride, height);
--      return GST_FLOW_OK;
--    default:
--      GST_WARNING ("unknown color format!\n");
--      return GST_FLOW_ERROR;
--  }
-+  return TRUE;
- }
- 
--
- static GstFlowReturn
- gst_stride_transform_transform (GstBaseTransform *base,
-     GstBuffer *inbuf, GstBuffer *outbuf)
-@@ -543,10 +371,10 @@ gst_stride_transform_transform (GstBaseTransform *base,
-     GST_DEBUG_OBJECT (self, "not implemented");  // TODO
-     return GST_FLOW_ERROR;
-   } else if (self->in_rowstride) {
--    return unstridify (self,
-+    return self->conversion->unstridify (self,
-         GST_BUFFER_DATA (outbuf), GST_BUFFER_DATA (inbuf));
-   } else if (self->out_rowstride) {
--    return stridify (self,
-+    return self->conversion->stridify (self,
-         GST_BUFFER_DATA (outbuf), GST_BUFFER_DATA (inbuf));
-   }
- 
-@@ -555,12 +383,3 @@ gst_stride_transform_transform (GstBaseTransform *base,
- 
-   return GST_FLOW_ERROR;
- }
--
--static GstFlowReturn
--gst_stride_transform_transform_ip (GstBaseTransform *base,
--    GstBuffer *buf)
--{
--  /* transform function is safe to call with same buffer ptr:
--   */
--  return gst_stride_transform_transform (base, buf, buf);
--}
-diff --git a/gst/stride/gststridetransform.h b/gst/stride/gststridetransform.h
-index 0141571..bce2526 100644
---- a/gst/stride/gststridetransform.h
-+++ b/gst/stride/gststridetransform.h
-@@ -2,7 +2,7 @@
-  *
-  * Copyright (C) 2009 Texas Instruments, Inc - http://www.ti.com/
-  *
-- * Description: V4L2 sink element
-+ * Description: stride transform element
-  *  Created on: Jul 2, 2009
-  *      Author: Rob Clark <rob@ti.com>
-  *
-@@ -29,7 +29,6 @@
- #include <gst/video/gstvideofilter.h>
- #include <gst/video/video.h>
- 
--
- G_BEGIN_DECLS
- 
- #define GST_TYPE_STRIDE_TRANSFORM \
-@@ -47,6 +46,19 @@ typedef struct _GstStrideTransform GstStrideTransform;
- typedef struct _GstStrideTransformClass GstStrideTransformClass;
- 
- /**
-+ * stride/colorspace conversion table (used internally)
-+ */
-+typedef struct {
-+
-+  GstVideoFormat format[2];   /* in_format, out_format */
-+
-+  GstFlowReturn (*stridify) (GstStrideTransform *self, guchar *strided, guchar *unstrided);
-+  GstFlowReturn (*unstridify) (GstStrideTransform *self, guchar *unstrided, guchar *strided);
-+
-+} Conversion;
-+
-+
-+/**
-  * GstStrideTransform:
-  *
-  * Opaque datastructure.
-@@ -55,10 +67,10 @@ struct _GstStrideTransform {
-   GstVideoFilter videofilter;
- 
-   /*< private >*/
--  GstVideoFormat in_format, out_format;
-   gint width, height;
-   gint in_rowstride;
-   gint out_rowstride;
-+  const Conversion *conversion;
- 
-   /* for caching the tranform_size() results.. */
-   GstCaps *cached_caps[2];
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0011-add-some-neon.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0011-add-some-neon.patch
deleted file mode 100644
index 6737811..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0011-add-some-neon.patch
+++ /dev/null
@@ -1,293 +0,0 @@
-From 537d185b9e9b25f7dacb5e5c4dab47bb8524da34 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Thu, 8 Apr 2010 00:30:25 -0500
-Subject: [PATCH 11/24] add some neon
-
----
- configure.ac           |    1 +
- gst/stride/Makefile.am |    1 +
- gst/stride/armv7.s     |  119 ++++++++++++++++++++++++++++++++++++++++++++++++
- gst/stride/convert.c   |   76 ++++++++++++++++--------------
- 4 files changed, 162 insertions(+), 35 deletions(-)
- create mode 100644 gst/stride/armv7.s
-
-diff --git a/configure.ac b/configure.ac
-index af6cd52..8e7ba18 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -58,6 +58,7 @@ dnl AS_LIBTOOL_TAGS
- 
- AC_LIBTOOL_WIN32_DLL
- AM_PROG_LIBTOOL
-+AM_PROG_AS
- 
- dnl *** required versions of GStreamer stuff ***
- GST_REQ=0.10.32
-diff --git a/gst/stride/Makefile.am b/gst/stride/Makefile.am
-index 0b61d55..3b466de 100644
---- a/gst/stride/Makefile.am
-+++ b/gst/stride/Makefile.am
-@@ -3,6 +3,7 @@ plugin_LTLIBRARIES = libgststridetransform.la
- libgststridetransform_la_SOURCES = \
- 	gststridetransform.c \
- 	convert.c \
-+	armv7.s \
- 	plugin.c
- 
- libgststridetransform_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
-diff --git a/gst/stride/armv7.s b/gst/stride/armv7.s
-new file mode 100644
-index 0000000..ed636f7
---- /dev/null
-+++ b/gst/stride/armv7.s
-@@ -0,0 +1,119 @@
-+@ GStreamer
-+@
-+@ Copyright (C) 2009 Texas Instruments, Inc - http://www.ti.com/
-+@
-+@ Description: NEON/VFP accelerated functions for armv7 architecture
-+@  Created on: Nov 27, 2009
-+@      Author: Rob Clark <rob@ti.com>
-+@
-+@ 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.
-+
-+       .fpu neon
-+       .text
-+
-+       .align
-+       .global stride_copy_zip2
-+       .type   stride_copy_zip2, %function
-+@void
-+@stride_copy_zip2 (guchar *new_buf, guchar *orig_buf1, guchar *orig_buf2, gint sz)
-+@{
-+@@@@ note: r0-r3, q0-3, and q8-q15 do not need to be preserved
-+stride_copy_zip2:
-+@ interleave remaining >= 16 bytes:
-+       pld [r1, #64]
-+       pld [r2, #64]
-+       cmp r3, #16
-+       blt stride_copy_zip2_2
-+stride_copy_zip2_1:
-+       vld1.8 {q8}, [r1]!
-+       vld1.8 {q9}, [r2]!
-+
-+       vzip.8 q8, q9
-+
-+       pld [r1, #64]
-+       vst1.8 {q8,q9}, [r0]!
-+       pld [r2, #64]
-+       sub r3, r3, #16
-+
-+       cmp r3, #16
-+       bge stride_copy_zip2_1
-+@ interleave remaining >= 8 bytes:
-+stride_copy_zip2_2:
-+       cmp r3, #8
-+       blt stride_copy_zip2_3
-+
-+       vld1.8 {d16}, [r1]!
-+       vld1.8 {d17}, [r2]!
-+
-+       vzip.8 d16, d17
-+
-+       vst1.8 {d16,d17}, [r0]!
-+       sub r3, r3, #8
-+
-+@ interleave remaining < 8 bytes:
-+stride_copy_zip2_3:
-+@XXX
-+       bx lr
-+@}
-+
-+       .align
-+       .global stride_copy
-+       .type   stride_copy, %function
-+@void
-+@stride_copy (guchar *new_buf, guchar *orig_buf, gint sz)
-+@{
-+@@@@ note: r0-r3, q0-3, and q8-q15 do not need to be preserved
-+stride_copy:
-+@ copy remaining >= 64 bytes:
-+       pld [r1, #64]
-+       cmp r2, #64
-+       blt stride_copy_2
-+stride_copy_1:
-+       vld1.8 {q8-q9},  [r1]!
-+       sub r2, r2, #64
-+       vld1.8 {q10-q11},[r1]!
-+       vst1.8 {q8-q9},  [r0]!
-+       pld [r1, #64]
-+       cmp r2, #64
-+       vst1.8 {q10-q11},[r0]!
-+       bge stride_copy_1
-+@ copy remaining >= 32 bytes:
-+stride_copy_2:
-+       cmp r2, #32
-+       blt stride_copy_3
-+       vld1.8 {q8-q9}, [r1]!
-+       sub r2, r2, #32
-+       vst1.8 {q8-q9}, [r0]!
-+@ copy remaining >= 16 bytes:
-+stride_copy_3:
-+       cmp r2, #16
-+       blt stride_copy_4
-+       vld1.8 {q8}, [r1]!
-+       sub r2, r2, #16
-+       vst1.8 {q8}, [r0]!
-+@ copy remaining >= 8 bytes:
-+stride_copy_4:
-+       cmp r2, #8
-+       blt stride_copy_5
-+       vld1.8 {d16}, [r1]!
-+       sub r2, r2, #8
-+       vst1.8 {d16}, [r0]!
-+@ copy remaining < 8 bytes:
-+stride_copy_5:
-+@XXX
-+       bx lr
-+@}
-+
-diff --git a/gst/stride/convert.c b/gst/stride/convert.c
-index 860f16c..a15063b 100644
---- a/gst/stride/convert.c
-+++ b/gst/stride/convert.c
-@@ -37,38 +37,43 @@ GST_DEBUG_CATEGORY_EXTERN (stridetransform_debug);
- #define GST_CAT_DEFAULT stridetransform_debug
- 
- 
-+/* note: some parts of code support in-place transform.. some do not..  I'm
-+ * not sure if zip/interleave functions could really support in-place copy..
-+ * I need to think about this after having some sleep ;-)
-+ */
-+
-+#define WEAK __attribute__((weak))
-+
- /*
-  * Conversion utilities:
-  */
- 
--static void
--memmove_demux (guchar *new_buf, guchar *orig_buf, gint sz, gint pxstride)
-+WEAK void
-+stride_copy_zip2 (guchar *new_buf, guchar *orig_buf1, guchar *orig_buf2, gint sz)
- {
--  if (new_buf > orig_buf) {
--    /* copy backwards */
--    new_buf += ((sz - 1) * pxstride);
--    orig_buf += sz - 1;
--    while(sz--) {
--      *new_buf = *orig_buf;
--      new_buf -= pxstride;
--      orig_buf--;
--    }
--  } else {
--    while(sz--) {
--      *new_buf = *orig_buf;
--      new_buf += pxstride;
--      orig_buf++;
--    }
-+  while (sz--) {
-+    *new_buf++ = *orig_buf1++;
-+    *new_buf++ = *orig_buf2++;
-   }
- }
- 
-+WEAK void
-+stride_copy (guchar *new_buf, guchar *orig_buf, gint sz)
-+{
-+  memcpy (new_buf, orig_buf, sz);
-+}
-+
-+
-+/**
-+ * move to strided buffer, interleaving two planes of identical dimensions
-+ */
- static void
--stridemove_demux (guchar *new_buf, guchar *orig_buf, gint new_width, gint orig_width, gint height, gint pxstride)
-+stridemove_zip2 (guchar *new_buf, guchar *orig_buf1, guchar *orig_buf2, gint new_width, gint orig_width, gint height)
- {
-   int row;
- 
--  GST_DEBUG ("new_buf=%p, orig_buf=%p, new_width=%d, orig_width=%d, height=%d",
--      new_buf, orig_buf, new_width, orig_width, height);
-+  GST_DEBUG ("new_buf=%p, orig_buf1=%p, orig_buf2=%p, new_width=%d, orig_width=%d, height=%d",
-+      new_buf, orig_buf1, orig_buf2, new_width, orig_width, height);
- 
-   /* if increasing the stride, work from bottom-up to avoid overwriting data
-    * that has not been moved yet.. otherwise, work in the opposite order,
-@@ -76,11 +81,19 @@ stridemove_demux (guchar *new_buf, guchar *orig_buf, gint new_width, gint orig_w
-    */
-   if (new_width > orig_width) {
-     for (row=height-1; row>=0; row--) {
--      memmove_demux (new_buf+(new_width*row), orig_buf+(orig_width*row), orig_width, pxstride);
-+      stride_copy_zip2 (
-+          new_buf+(new_width*row),
-+          orig_buf1+(orig_width*row),
-+          orig_buf2+(orig_width*row),
-+          orig_width);
-     }
-   } else {
-     for (row=0; row<height; row++) {
--      memmove_demux (new_buf+(new_width*row), orig_buf+(orig_width*row), new_width, pxstride);
-+      stride_copy_zip2 (
-+          new_buf+(new_width*row),
-+          orig_buf1+(orig_width*row),
-+          orig_buf2+(orig_width*row),
-+          new_width);
-     }
-   }
- }
-@@ -106,11 +119,11 @@ stridemove (guchar *new_buf, guchar *orig_buf, gint new_width, gint orig_width,
-    */
-   if (new_width > orig_width) {
-     for (row=height-1; row>=0; row--) {
--      memmove (new_buf+(new_width*row), orig_buf+(orig_width*row), orig_width);
-+      stride_copy (new_buf+(new_width*row), orig_buf+(orig_width*row), orig_width);
-     }
-   } else {
-     for (row=0; row<height; row++) {
--      memmove (new_buf+(new_width*row), orig_buf+(orig_width*row), new_width);
-+      stride_copy (new_buf+(new_width*row), orig_buf+(orig_width*row), new_width);
-     }
-   }
- }
-@@ -234,19 +247,12 @@ stridify_i420_nv12 (GstStrideTransform *self, guchar *strided, guchar *unstrided
- 
-   g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
- 
--  /* note: if not an in-place conversion, then doing the U&V in one pass
--   * would be more efficient... but if it is an in-place conversion, I'd
--   * need to think about whether it is potential for the new UV plane to
--   * corrupt the V plane before it is done copying..
--   */
--  stridemove_demux (
--      strided + (height*stride) + 1,
--      unstrided + (int)(height*width*1.25),
--      stride, width/2, height/2, 2);                        /* move V */
--  stridemove_demux (
-+  /* XXX widths/heights/strides that are not multiple of four??: */
-+  stridemove_zip2 (
-       strided + (height*stride),
-       unstrided + (height*width),
--      stride, width/2, height/2, 2);                        /* move U */
-+      unstrided + (int)(height*width*1.25),
-+      stride, width/2, height/2);                           /* interleave U&V */
-   stridemove (strided, unstrided, stride, width, height);   /* move Y */
- 
-   return GST_FLOW_OK;
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0012-add-support-to-convert-to-YUY2-YUYV-color-format.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0012-add-support-to-convert-to-YUY2-YUYV-color-format.patch
deleted file mode 100644
index 1156754..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0012-add-support-to-convert-to-YUY2-YUYV-color-format.patch
+++ /dev/null
@@ -1,197 +0,0 @@
-From 2f3ab39353cb9dde02ba64ab89b7c7725b25ae3b Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Tue, 1 Dec 2009 22:42:43 -0600
-Subject: [PATCH 12/24] add support to convert to YUY2/YUYV color format
-
----
- gst/stride/armv7.s   |   63 ++++++++++++++++++++++++++++++++++++++++++
- gst/stride/convert.c |   74 +++++++++++++++++++++++++++++++++++++++++++++++---
- 2 files changed, 133 insertions(+), 4 deletions(-)
-
-diff --git a/gst/stride/armv7.s b/gst/stride/armv7.s
-index ed636f7..2697a14 100644
---- a/gst/stride/armv7.s
-+++ b/gst/stride/armv7.s
-@@ -69,6 +69,69 @@ stride_copy_zip2_3:
-        bx lr
- @}
- 
-+
-+       .align
-+       .global stride_copy_zip3a
-+       .type   stride_copy_zip3a, %function
-+@void
-+@stride_copy_zip3a (guchar *new_buf,
-+@    guchar *orig_buf1, guchar *orig_buf2, guchar *orig_buf3, gint sz)
-+@{
-+@@@@ note: r0-r3, q0-3, and q8-q15 do not need to be preserved
-+stride_copy_zip3a:
-+       pld [r1, #64]
-+       pld [r2, #64]
-+       pld [r3, #64]
-+       ldr ip, [sp]     @ the sz arg
-+@ interleave remaining >= 32 bytes:
-+       cmp ip, #32
-+       blt stride_copy_zip3a_2
-+stride_copy_zip3a_1:
-+       vld1.8 {q8},      [r1]!  @ Y
-+       vld1.8 {q10},     [r1]!  @ Y
-+       vld1.8 {q9},      [r2]!  @ U
-+       vld1.8 {q11},     [r3]!  @ V
-+
-+       pld [r1, #64]
-+       pld [r2, #64]
-+       pld [r3, #64]
-+
-+       vzip.8 q9, q11           @ interleave U&V
-+       vzip.8 q8, q9            @ interleave Y1UV1
-+       vzip.8 q10, q11          @ interleave Y2UV2
-+
-+       vst1.8 {q8,q9},   [r0]!
-+       vst1.8 {q10,q11}, [r0]!
-+
-+       sub ip, ip, #32
-+
-+       cmp ip, #32
-+       bge stride_copy_zip3a_1
-+@ interleave remaining >= 16 bytes:
-+stride_copy_zip3a_2:
-+       cmp ip, #16
-+       blt stride_copy_zip3a_3
-+
-+       vld1.8 {d16},     [r1]!  @ Y
-+       vld1.8 {d18},     [r1]!  @ Y
-+       vld1.8 {d17},     [r2]!  @ U
-+       vld1.8 {d19},     [r3]!  @ V
-+
-+       vzip.8 d17, d19          @ interleave U&V
-+       vzip.8 d16, d17          @ interleave Y1UV1
-+       vzip.8 d18, d19          @ interleave Y2UV2
-+
-+       vst1.8 {d16,d17}, [r0]!
-+       vst1.8 {d18,d19}, [r0]!
-+
-+       sub ip, ip, #16
-+@ copy remaining >= 8 bytes:
-+stride_copy_zip3a_3:
-+@XXX
-+       bx lr
-+@}
-+
-+
-        .align
-        .global stride_copy
-        .type   stride_copy, %function
-diff --git a/gst/stride/convert.c b/gst/stride/convert.c
-index a15063b..0f59e78 100644
---- a/gst/stride/convert.c
-+++ b/gst/stride/convert.c
-@@ -58,6 +58,19 @@ stride_copy_zip2 (guchar *new_buf, guchar *orig_buf1, guchar *orig_buf2, gint sz
- }
- 
- WEAK void
-+stride_copy_zip3a (guchar *new_buf,
-+    guchar *orig_buf1, guchar *orig_buf2, guchar *orig_buf3, gint sz)
-+{
-+  while (sz > 1) {
-+    *new_buf++ = *orig_buf1++;
-+    *new_buf++ = *orig_buf2++;
-+    *new_buf++ = *orig_buf1++;
-+    *new_buf++ = *orig_buf3++;
-+    sz -= 2;
-+  }
-+}
-+
-+WEAK void
- stride_copy (guchar *new_buf, guchar *orig_buf, gint sz)
- {
-   memcpy (new_buf, orig_buf, sz);
-@@ -99,6 +112,36 @@ stridemove_zip2 (guchar *new_buf, guchar *orig_buf1, guchar *orig_buf2, gint new
- }
- 
- /**
-+ * move to strided buffer, interleaving three planes, where the first plane
-+ * (orig_buf1) has 2x as many samples.. Ie. ABACABAC..
-+ */
-+static void
-+stridemove_zip3a (guchar *new_buf,
-+    guchar *orig_buf1, guchar *orig_buf2, guchar *orig_buf3,
-+    guint new_width, gint orig_width, gint height)
-+{
-+  gint copy_width = (new_width < orig_width) ? new_width : orig_width;
-+
-+  while (height > 0) {
-+
-+    /* even row */
-+    stride_copy_zip3a (new_buf, orig_buf1, orig_buf2, orig_buf3, copy_width);
-+    new_buf += new_width;
-+    orig_buf1 += orig_width;
-+
-+    /* odd row, recycles same U & V */
-+    stride_copy_zip3a (new_buf, orig_buf1, orig_buf2, orig_buf3, copy_width);
-+    new_buf += new_width;
-+    orig_buf1 += orig_width;
-+
-+    orig_buf2 += orig_width/2;
-+    orig_buf3 += orig_width/2;
-+
-+    height -= 2;
-+  }
-+}
-+
-+/**
-  * Convert from one stride to another... like memmove, but can convert stride in
-  * the process.  This function is not aware of pixels, only of bytes.  So widths
-  * are given in bytes, not pixels.  The new_buf and orig_buf can point to the
-@@ -250,14 +293,36 @@ stridify_i420_nv12 (GstStrideTransform *self, guchar *strided, guchar *unstrided
-   /* XXX widths/heights/strides that are not multiple of four??: */
-   stridemove_zip2 (
-       strided + (height*stride),
--      unstrided + (height*width),
--      unstrided + (int)(height*width*1.25),
--      stride, width/2, height/2);                           /* interleave U&V */
--  stridemove (strided, unstrided, stride, width, height);   /* move Y */
-+      unstrided + (height*width),                           /* U */
-+      unstrided + (int)(height*width*1.25),                 /* V */
-+      stride, width/2, height/2);
-+  stridemove (strided, unstrided, stride, width, height);   /* Y */
-+
-+  return GST_FLOW_OK;
-+}
-+
-+/** convert I420 unstrided to YUY2 strided */
-+static GstFlowReturn
-+stridify_i420_yuy2 (GstStrideTransform *self, guchar *strided, guchar *unstrided)
-+{
-+  gint width  = self->width;
-+  gint height = self->height;
-+  gint stride = self->out_rowstride;
-+
-+  g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-+
-+  /* XXX widths/heights/strides that are not multiple of four??: */
-+  stridemove_zip3a (
-+      strided,
-+      unstrided,                                            /* Y */
-+      unstrided + (height*width),                           /* U */
-+      unstrided + (int)(height*width*1.25),                 /* V */
-+      stride, width, height);
- 
-   return GST_FLOW_OK;
- }
- 
-+
- /* last entry has GST_VIDEO_FORMAT_UNKNOWN for in/out formats */
- Conversion stride_conversions[] = {
-   { { GST_VIDEO_FORMAT_NV12, GST_VIDEO_FORMAT_NV12 }, stridify_420sp_420sp, unstridify_420sp_420sp },
-@@ -266,6 +331,7 @@ Conversion stride_conversions[] = {
-   { { GST_VIDEO_FORMAT_YUY2, GST_VIDEO_FORMAT_YUY2 }, stridify_422i_422i,   unstridify_422i_422i },
-   { { GST_VIDEO_FORMAT_UYVY, GST_VIDEO_FORMAT_UYVY }, stridify_422i_422i,   unstridify_422i_422i },
-   { { GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_NV12 }, stridify_i420_nv12,   NULL },
-+  { { GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_YUY2 }, stridify_i420_yuy2,   NULL },
-   /* add new entries before here */
-   { { GST_VIDEO_FORMAT_UNKNOWN } }
- };
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0013-Add-support-for-RGB565-to-stridetransform.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0013-Add-support-for-RGB565-to-stridetransform.patch
deleted file mode 100644
index d07c1b9..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0013-Add-support-for-RGB565-to-stridetransform.patch
+++ /dev/null
@@ -1,336 +0,0 @@
-From 28a5ad7c5ccfa98ffa7bb1425dc38ab16535fc26 Mon Sep 17 00:00:00 2001
-From: Castaneda Sheissa, Roberto <rsheissa@ti.com>
-Date: Sun, 3 Jan 2010 13:40:30 -0600
-Subject: [PATCH 13/24] Add support for RGB565 to stridetransform
-
----
- gst/stride/convert.c            |   30 ++++++++++
- gst/stride/gststridetransform.c |  120 ++++++++++++++++++++------------------
- 2 files changed, 93 insertions(+), 57 deletions(-)
-
-diff --git a/gst/stride/convert.c b/gst/stride/convert.c
-index 0f59e78..fdb02ae 100644
---- a/gst/stride/convert.c
-+++ b/gst/stride/convert.c
-@@ -322,6 +322,35 @@ stridify_i420_yuy2 (GstStrideTransform *self, guchar *strided, guchar *unstrided
-   return GST_FLOW_OK;
- }
- 
-+/** convert RGB565 to RGB565 strided **/
-+static GstFlowReturn
-+stridify_rgb565_rgb565 (GstStrideTransform *self, guchar *strided, guchar *unstrided)
-+{
-+    gint width  = self->width;
-+    gint height = self->height;
-+    gint stride = self->out_rowstride;
-+
-+    g_return_val_if_fail (stride >= (width*2), GST_FLOW_ERROR);
-+
-+    stridemove (strided, unstrided, stride, width*2, height);
-+
-+    return GST_FLOW_OK;
-+}
-+
-+/** convert RGB565 strided to RGB565 **/
-+static GstFlowReturn
-+unstridify_rgb565_rgb565 (GstStrideTransform *self, guchar *strided, guchar *unstrided)
-+{
-+    gint width  = self->width;
-+    gint height = self->height;
-+    gint stride = self->in_rowstride;
-+
-+    g_return_val_if_fail (stride >= (width*2), GST_FLOW_ERROR);
-+
-+    stridemove (unstrided, strided, width*2, stride, height);
-+    return GST_FLOW_OK;
-+}
-+
- 
- /* last entry has GST_VIDEO_FORMAT_UNKNOWN for in/out formats */
- Conversion stride_conversions[] = {
-@@ -332,6 +361,7 @@ Conversion stride_conversions[] = {
-   { { GST_VIDEO_FORMAT_UYVY, GST_VIDEO_FORMAT_UYVY }, stridify_422i_422i,   unstridify_422i_422i },
-   { { GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_NV12 }, stridify_i420_nv12,   NULL },
-   { { GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_YUY2 }, stridify_i420_yuy2,   NULL },
-+  { { GST_VIDEO_FORMAT_RGB16, GST_VIDEO_FORMAT_RGB16 }, stridify_rgb565_rgb565, unstridify_rgb565_rgb565 },
-   /* add new entries before here */
-   { { GST_VIDEO_FORMAT_UNKNOWN } }
- };
-diff --git a/gst/stride/gststridetransform.c b/gst/stride/gststridetransform.c
-index 6ab0479..c35be73 100644
---- a/gst/stride/gststridetransform.c
-+++ b/gst/stride/gststridetransform.c
-@@ -66,46 +66,47 @@ GST_ELEMENT_DETAILS ("Stride transform",
- 
- 
- /* TODO: add rgb formats too! */
--#define SUPPORTED_CAPS                                                        \
--  GST_VIDEO_CAPS_YUV_STRIDED ("{ I420, YV12, YUY2, UYVY, NV12 }", "[ 0, max ]")
-+#define YUV_SUPPORTED_CAPS                                                        \
-+  GST_VIDEO_CAPS_YUV_STRIDED ("{I420, YV12, YUY2, UYVY, NV12 }", "[ 0, max ]")
- 
-+#define RGB_SUPPORTED_CAPS                                                        \
-+  GST_VIDEO_CAPS_RGB_16_STRIDED ("[ 0, max ]")
- 
--static GstStaticPadTemplate src_template =
--GST_STATIC_PAD_TEMPLATE ("src",
-+
-+static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src",
-     GST_PAD_SRC,
-     GST_PAD_ALWAYS,
--    GST_STATIC_CAPS (SUPPORTED_CAPS)
--);
-+    GST_STATIC_CAPS (YUV_SUPPORTED_CAPS ";" RGB_SUPPORTED_CAPS)
-+    );
- 
--static GstStaticPadTemplate sink_template =
--GST_STATIC_PAD_TEMPLATE ("sink",
-+static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
-     GST_PAD_SINK,
-     GST_PAD_ALWAYS,
--    GST_STATIC_CAPS (SUPPORTED_CAPS)
--);
-+    GST_STATIC_CAPS (YUV_SUPPORTED_CAPS ";" RGB_SUPPORTED_CAPS)
-+    );
- 
- 
- GST_DEBUG_CATEGORY (stridetransform_debug);
- #define GST_CAT_DEFAULT stridetransform_debug
- 
- /* type functions */
--static void gst_stride_transform_dispose (GObject *obj);
-+static void gst_stride_transform_dispose (GObject * obj);
- 
- /* GstBaseTransform functions */
--static gboolean gst_stride_transform_get_unit_size (GstBaseTransform *base,
--    GstCaps *caps, guint *size);
--static gboolean gst_stride_transform_transform_size (GstBaseTransform *base,
-+static gboolean gst_stride_transform_get_unit_size (GstBaseTransform * base,
-+    GstCaps * caps, guint * size);
-+static gboolean gst_stride_transform_transform_size (GstBaseTransform * base,
-     GstPadDirection direction,
--    GstCaps *caps, guint size,
--    GstCaps *othercaps, guint *othersize);
--static GstCaps *gst_stride_transform_transform_caps (GstBaseTransform *base,
--    GstPadDirection direction, GstCaps *caps);
--static gboolean gst_stride_transform_set_caps (GstBaseTransform *base,
--    GstCaps *incaps, GstCaps *outcaps);
--static GstFlowReturn gst_stride_transform_transform (GstBaseTransform *base,
--    GstBuffer *inbuf, GstBuffer *outbuf);
-+    GstCaps * caps, guint size, GstCaps * othercaps, guint * othersize);
-+static GstCaps *gst_stride_transform_transform_caps (GstBaseTransform * base,
-+    GstPadDirection direction, GstCaps * caps);
-+static gboolean gst_stride_transform_set_caps (GstBaseTransform * base,
-+    GstCaps * incaps, GstCaps * outcaps);
-+static GstFlowReturn gst_stride_transform_transform (GstBaseTransform * base,
-+    GstBuffer * inbuf, GstBuffer * outbuf);
- 
--GST_BOILERPLATE (GstStrideTransform, gst_stride_transform, GstVideoFilter, GST_TYPE_VIDEO_FILTER);
-+GST_BOILERPLATE (GstStrideTransform, gst_stride_transform, GstVideoFilter,
-+    GST_TYPE_VIDEO_FILTER);
- 
- 
- static void
-@@ -113,7 +114,8 @@ gst_stride_transform_base_init (gpointer g_class)
- {
-   GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class);
- 
--  GST_DEBUG_CATEGORY_INIT (stridetransform_debug, "stride", 0, "stride transform element");
-+  GST_DEBUG_CATEGORY_INIT (stridetransform_debug, "stride", 0,
-+      "stride transform element");
- 
-   gst_element_class_set_details (gstelement_class, &stridetransform_details);
- 
-@@ -124,7 +126,7 @@ gst_stride_transform_base_init (gpointer g_class)
- }
- 
- static void
--gst_stride_transform_class_init (GstStrideTransformClass *klass)
-+gst_stride_transform_class_init (GstStrideTransformClass * klass)
- {
-   GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-   GstBaseTransformClass *basetransform_class = GST_BASE_TRANSFORM_CLASS (klass);
-@@ -146,14 +148,15 @@ gst_stride_transform_class_init (GstStrideTransformClass *klass)
- }
- 
- static void
--gst_stride_transform_init (GstStrideTransform *self, GstStrideTransformClass *klass)
-+gst_stride_transform_init (GstStrideTransform * self,
-+    GstStrideTransformClass * klass)
- {
-   GST_DEBUG_OBJECT (self, "not implemented");
- }
- 
- 
- static void
--gst_stride_transform_dispose (GObject *object)
-+gst_stride_transform_dispose (GObject * object)
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (object);
-   GST_DEBUG_OBJECT (self, "not implemented");
-@@ -164,15 +167,15 @@ gst_stride_transform_dispose (GObject *object)
-  * figure out the required buffer size based on @caps
-  */
- static gboolean
--gst_stride_transform_get_unit_size (GstBaseTransform *base,
--    GstCaps *caps, guint *size)
-+gst_stride_transform_get_unit_size (GstBaseTransform * base,
-+    GstCaps * caps, guint * size)
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
-   GstVideoFormat format;
-   gint width, height, rowstride;
- 
--  g_return_val_if_fail (gst_video_format_parse_caps_strided (
--      caps, &format, &width, &height, &rowstride), FALSE);
-+  g_return_val_if_fail (gst_video_format_parse_caps_strided (caps, &format,
-+          &width, &height, &rowstride), FALSE);
- 
-   *size = gst_video_format_get_size_strided (format, width, height, rowstride);
- 
-@@ -188,16 +191,14 @@ gst_stride_transform_get_unit_size (GstBaseTransform *base,
-  * buffer size is a multiple of the unit size.. which doesn't hold true.
-  */
- static gboolean
--gst_stride_transform_transform_size (GstBaseTransform *base,
-+gst_stride_transform_transform_size (GstBaseTransform * base,
-     GstPadDirection direction,
--    GstCaps *caps, guint size,
--    GstCaps *othercaps, guint *othersize)
-+    GstCaps * caps, guint size, GstCaps * othercaps, guint * othersize)
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
-   guint idx = (direction == GST_PAD_SINK) ? 0 : 1;
- 
--  if (self->cached_caps[idx] != othercaps)
--  {
-+  if (self->cached_caps[idx] != othercaps) {
-     guint sz;
-     if (!gst_stride_transform_get_unit_size (base, othercaps, &sz)) {
-       return FALSE;
-@@ -220,13 +221,15 @@ gst_stride_transform_transform_size (GstBaseTransform *base,
-  * helper to add all fields, other than rowstride to @caps, copied from @s.
-  */
- static void
--add_all_fields (GstCaps *caps, const gchar *name, GstStructure *s, gboolean rowstride, GstPadDirection direction)
-+add_all_fields (GstCaps * caps, const gchar * name, GstStructure * s,
-+    gboolean rowstride, GstPadDirection direction)
- {
-   gint idx;
-   GstStructure *new_s = gst_structure_new (name, NULL);
- 
-   if (rowstride) {
--    gst_structure_set (new_s, "rowstride", GST_TYPE_INT_RANGE, 1, G_MAXINT, NULL);
-+    gst_structure_set (new_s, "rowstride", GST_TYPE_INT_RANGE, 1, G_MAXINT,
-+        NULL);
-   }
- 
-   idx = gst_structure_n_fields (s) - 1;
-@@ -245,15 +248,16 @@ add_all_fields (GstCaps *caps, const gchar *name, GstStructure *s, gboolean rows
-       gint from_format = (direction == GST_PAD_SRC) ? 1 : 0;
- 
-       if (gst_structure_get_fourcc (s, "format", &fourcc)) {
--        GValue formats = {0};
--        GValue fourccval = {0};
-+        GValue formats = { 0 };
-+        GValue fourccval = { 0 };
-         gint i;
-         GstVideoFormat format = gst_video_format_from_fourcc (fourcc);
- 
-         g_value_init (&formats, GST_TYPE_LIST);
-         g_value_init (&fourccval, GST_TYPE_FOURCC);
- 
--        for (i=0; stride_conversions[i].format[0]!=GST_VIDEO_FORMAT_UNKNOWN; i++) {
-+        for (i = 0; stride_conversions[i].format[0] != GST_VIDEO_FORMAT_UNKNOWN;
-+            i++) {
-           if (stride_conversions[i].format[from_format] == format) {
-             gst_value_set_fourcc (&fourccval, gst_video_format_to_fourcc
-                 (stride_conversions[i].format[to_format]));
-@@ -281,8 +285,8 @@ add_all_fields (GstCaps *caps, const gchar *name, GstStructure *s, gboolean rows
-  * identical parameters
-  */
- static GstCaps *
--gst_stride_transform_transform_caps (GstBaseTransform *base,
--    GstPadDirection direction, GstCaps *caps)
-+gst_stride_transform_transform_caps (GstBaseTransform * base,
-+    GstPadDirection direction, GstCaps * caps)
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
-   GstCaps *ret;
-@@ -321,8 +325,8 @@ gst_stride_transform_transform_caps (GstBaseTransform *base,
-  * plus the requested rowstride of the @incaps and @outcaps
-  */
- static gboolean
--gst_stride_transform_set_caps (GstBaseTransform *base,
--    GstCaps *incaps, GstCaps *outcaps)
-+gst_stride_transform_set_caps (GstBaseTransform * base,
-+    GstCaps * incaps, GstCaps * outcaps)
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
-   gint width, height;
-@@ -333,13 +337,13 @@ gst_stride_transform_set_caps (GstBaseTransform *base,
-   LOG_CAPS (self, outcaps);
- 
-   g_return_val_if_fail (gst_video_format_parse_caps_strided (incaps,
--      &in_format, &self->width, &self->height, &self->in_rowstride), FALSE);
-+          &in_format, &self->width, &self->height, &self->in_rowstride), FALSE);
-   g_return_val_if_fail (gst_video_format_parse_caps_strided (outcaps,
--      &out_format, &width, &height, &self->out_rowstride), FALSE);
-+          &out_format, &width, &height, &self->out_rowstride), FALSE);
- 
-   self->conversion = NULL;
- 
--  for (i=0; stride_conversions[i].format[0]!=GST_VIDEO_FORMAT_UNKNOWN; i++) {
-+  for (i = 0; stride_conversions[i].format[0] != GST_VIDEO_FORMAT_UNKNOWN; i++) {
-     if ((stride_conversions[i].format[0] == in_format) &&
-         (stride_conversions[i].format[1] == out_format)) {
-       GST_DEBUG_OBJECT (self, "found stride_conversion: %d", i);
-@@ -349,26 +353,27 @@ gst_stride_transform_set_caps (GstBaseTransform *base,
-   }
- 
-   g_return_val_if_fail (self->conversion, FALSE);
--  g_return_val_if_fail (self->conversion->unstridify || !self->in_rowstride, FALSE);
--  g_return_val_if_fail (self->conversion->stridify || !self->out_rowstride, FALSE);
--  g_return_val_if_fail (self->width  == width,  FALSE);
-+  g_return_val_if_fail (self->conversion->unstridify
-+      || !self->in_rowstride, FALSE);
-+  g_return_val_if_fail (self->conversion->stridify
-+      || !self->out_rowstride, FALSE);
-+  g_return_val_if_fail (self->width == width, FALSE);
-   g_return_val_if_fail (self->height == height, FALSE);
- 
-   return TRUE;
- }
- 
- static GstFlowReturn
--gst_stride_transform_transform (GstBaseTransform *base,
--    GstBuffer *inbuf, GstBuffer *outbuf)
-+gst_stride_transform_transform (GstBaseTransform * base,
-+    GstBuffer * inbuf, GstBuffer * outbuf)
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
- 
-   GST_DEBUG_OBJECT (self, "inbuf=%p (size=%d), outbuf=%p (size=%d)",
--      inbuf, GST_BUFFER_SIZE (inbuf),
--      outbuf, GST_BUFFER_SIZE (outbuf));
-+      inbuf, GST_BUFFER_SIZE (inbuf), outbuf, GST_BUFFER_SIZE (outbuf));
- 
-   if (self->in_rowstride && self->out_rowstride) {
--    GST_DEBUG_OBJECT (self, "not implemented");  // TODO
-+    GST_DEBUG_OBJECT (self, "not implemented"); // TODO
-     return GST_FLOW_ERROR;
-   } else if (self->in_rowstride) {
-     return self->conversion->unstridify (self,
-@@ -378,7 +383,8 @@ gst_stride_transform_transform (GstBaseTransform *base,
-         GST_BUFFER_DATA (outbuf), GST_BUFFER_DATA (inbuf));
-   }
- 
--  GST_DEBUG_OBJECT (self, "this shouldn't happen!  in_rowstride=%d, out_rowstride=%d",
-+  GST_DEBUG_OBJECT (self,
-+      "this shouldn't happen!  in_rowstride=%d, out_rowstride=%d",
-       self->in_rowstride, self->out_rowstride);
- 
-   return GST_FLOW_ERROR;
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0014-stridetransform-updates-for-new-extra-anal-compiler-.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0014-stridetransform-updates-for-new-extra-anal-compiler-.patch
deleted file mode 100644
index 4e60f32..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0014-stridetransform-updates-for-new-extra-anal-compiler-.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From e97373aac252f312c5ac69305228db50886a7c5c Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Thu, 8 Apr 2010 03:30:35 -0500
-Subject: [PATCH 14/24] stridetransform: updates for new extra-anal compiler warning flags
-
----
- gst/stride/convert.c            |    6 ++++++
- gst/stride/gststridetransform.c |   13 ++++---------
- 2 files changed, 10 insertions(+), 9 deletions(-)
-
-diff --git a/gst/stride/convert.c b/gst/stride/convert.c
-index fdb02ae..ad9c0aa 100644
---- a/gst/stride/convert.c
-+++ b/gst/stride/convert.c
-@@ -48,6 +48,12 @@ GST_DEBUG_CATEGORY_EXTERN (stridetransform_debug);
-  * Conversion utilities:
-  */
- 
-+void stride_copy_zip2 (guchar * new_buf, guchar * orig_buf1,
-+    guchar * orig_buf2, gint sz);
-+void stride_copy_zip3a (guchar * new_buf, guchar * orig_buf1,
-+    guchar * orig_buf2, guchar * orig_buf3, gint sz);
-+void stride_copy (guchar * new_buf, guchar * orig_buf, gint sz);
-+
- WEAK void
- stride_copy_zip2 (guchar *new_buf, guchar *orig_buf1, guchar *orig_buf2, gint sz)
- {
-diff --git a/gst/stride/gststridetransform.c b/gst/stride/gststridetransform.c
-index c35be73..de07c11 100644
---- a/gst/stride/gststridetransform.c
-+++ b/gst/stride/gststridetransform.c
-@@ -57,14 +57,6 @@
- /* last entry has GST_VIDEO_FORMAT_UNKNOWN for in/out formats */
- extern const Conversion stride_conversions[];
- 
--
--static const GstElementDetails stridetransform_details =
--GST_ELEMENT_DETAILS ("Stride transform",
--    "Filter/Converter/Video",
--    "Convert between video buffers with and without stride, or with differing stride",
--    "Rob Clark <rob@ti.com>,");
--
--
- /* TODO: add rgb formats too! */
- #define YUV_SUPPORTED_CAPS                                                        \
-   GST_VIDEO_CAPS_YUV_STRIDED ("{I420, YV12, YUY2, UYVY, NV12 }", "[ 0, max ]")
-@@ -117,7 +109,10 @@ gst_stride_transform_base_init (gpointer g_class)
-   GST_DEBUG_CATEGORY_INIT (stridetransform_debug, "stride", 0,
-       "stride transform element");
- 
--  gst_element_class_set_details (gstelement_class, &stridetransform_details);
-+  gst_element_class_set_details_simple (gstelement_class,
-+      "Stride transform", "Filter/Converter/Video",
-+      "Convert between video buffers with and without stride, or with differing stride",
-+      "Rob Clark <rob@ti.com>,");
- 
-   gst_element_class_add_pad_template (gstelement_class,
-       gst_static_pad_template_get (&sink_template));
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0015-stridetransform-fix-problem-transforming-caps-with-l.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0015-stridetransform-fix-problem-transforming-caps-with-l.patch
deleted file mode 100644
index 0d757d9..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0015-stridetransform-fix-problem-transforming-caps-with-l.patch
+++ /dev/null
@@ -1,544 +0,0 @@
-From c8db3522e32ca6afbbd117b816068516eed8c594 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Sat, 30 Jan 2010 14:32:42 -0600
-Subject: [PATCH 15/24] stridetransform: fix problem transforming caps with list of fourcc's
-
-previous logic assumed that the format field would contain just a single fourcc
----
- gst/stride/convert.c            |  206 ++++++++++++++++++++-------------------
- gst/stride/gststridetransform.c |   78 +++++++++++-----
- 2 files changed, 159 insertions(+), 125 deletions(-)
-
-diff --git a/gst/stride/convert.c b/gst/stride/convert.c
-index ad9c0aa..17f9e2a 100644
---- a/gst/stride/convert.c
-+++ b/gst/stride/convert.c
-@@ -55,7 +55,8 @@ void stride_copy_zip3a (guchar * new_buf, guchar * orig_buf1,
- void stride_copy (guchar * new_buf, guchar * orig_buf, gint sz);
- 
- WEAK void
--stride_copy_zip2 (guchar *new_buf, guchar *orig_buf1, guchar *orig_buf2, gint sz)
-+stride_copy_zip2 (guchar * new_buf, guchar * orig_buf1, guchar * orig_buf2,
-+    gint sz)
- {
-   while (sz--) {
-     *new_buf++ = *orig_buf1++;
-@@ -64,8 +65,8 @@ stride_copy_zip2 (guchar *new_buf, guchar *orig_buf1, guchar *orig_buf2, gint sz
- }
- 
- WEAK void
--stride_copy_zip3a (guchar *new_buf,
--    guchar *orig_buf1, guchar *orig_buf2, guchar *orig_buf3, gint sz)
-+stride_copy_zip3a (guchar * new_buf,
-+    guchar * orig_buf1, guchar * orig_buf2, guchar * orig_buf3, gint sz)
- {
-   while (sz > 1) {
-     *new_buf++ = *orig_buf1++;
-@@ -77,7 +78,7 @@ stride_copy_zip3a (guchar *new_buf,
- }
- 
- WEAK void
--stride_copy (guchar *new_buf, guchar *orig_buf, gint sz)
-+stride_copy (guchar * new_buf, guchar * orig_buf, gint sz)
- {
-   memcpy (new_buf, orig_buf, sz);
- }
-@@ -87,11 +88,13 @@ stride_copy (guchar *new_buf, guchar *orig_buf, gint sz)
-  * move to strided buffer, interleaving two planes of identical dimensions
-  */
- static void
--stridemove_zip2 (guchar *new_buf, guchar *orig_buf1, guchar *orig_buf2, gint new_width, gint orig_width, gint height)
-+stridemove_zip2 (guchar * new_buf, guchar * orig_buf1, guchar * orig_buf2,
-+    gint new_width, gint orig_width, gint height)
- {
-   int row;
- 
--  GST_DEBUG ("new_buf=%p, orig_buf1=%p, orig_buf2=%p, new_width=%d, orig_width=%d, height=%d",
-+  GST_DEBUG
-+      ("new_buf=%p, orig_buf1=%p, orig_buf2=%p, new_width=%d, orig_width=%d, height=%d",
-       new_buf, orig_buf1, orig_buf2, new_width, orig_width, height);
- 
-   /* if increasing the stride, work from bottom-up to avoid overwriting data
-@@ -99,20 +102,16 @@ stridemove_zip2 (guchar *new_buf, guchar *orig_buf1, guchar *orig_buf2, gint new
-    * for the same reason.
-    */
-   if (new_width > orig_width) {
--    for (row=height-1; row>=0; row--) {
--      stride_copy_zip2 (
--          new_buf+(new_width*row),
--          orig_buf1+(orig_width*row),
--          orig_buf2+(orig_width*row),
--          orig_width);
-+    for (row = height - 1; row >= 0; row--) {
-+      stride_copy_zip2 (new_buf + (new_width * row),
-+          orig_buf1 + (orig_width * row),
-+          orig_buf2 + (orig_width * row), orig_width);
-     }
-   } else {
--    for (row=0; row<height; row++) {
--      stride_copy_zip2 (
--          new_buf+(new_width*row),
--          orig_buf1+(orig_width*row),
--          orig_buf2+(orig_width*row),
--          new_width);
-+    for (row = 0; row < height; row++) {
-+      stride_copy_zip2 (new_buf + (new_width * row),
-+          orig_buf1 + (orig_width * row),
-+          orig_buf2 + (orig_width * row), new_width);
-     }
-   }
- }
-@@ -122,8 +121,8 @@ stridemove_zip2 (guchar *new_buf, guchar *orig_buf1, guchar *orig_buf2, gint new
-  * (orig_buf1) has 2x as many samples.. Ie. ABACABAC..
-  */
- static void
--stridemove_zip3a (guchar *new_buf,
--    guchar *orig_buf1, guchar *orig_buf2, guchar *orig_buf3,
-+stridemove_zip3a (guchar * new_buf,
-+    guchar * orig_buf1, guchar * orig_buf2, guchar * orig_buf3,
-     guint new_width, gint orig_width, gint height)
- {
-   gint copy_width = (new_width < orig_width) ? new_width : orig_width;
-@@ -140,8 +139,8 @@ stridemove_zip3a (guchar *new_buf,
-     new_buf += new_width;
-     orig_buf1 += orig_width;
- 
--    orig_buf2 += orig_width/2;
--    orig_buf3 += orig_width/2;
-+    orig_buf2 += orig_width / 2;
-+    orig_buf3 += orig_width / 2;
- 
-     height -= 2;
-   }
-@@ -155,7 +154,8 @@ stridemove_zip3a (guchar *new_buf,
-  * enough.
-  */
- static void
--stridemove (guchar *new_buf, guchar *orig_buf, gint new_width, gint orig_width, gint height)
-+stridemove (guchar * new_buf, guchar * orig_buf, gint new_width,
-+    gint orig_width, gint height)
- {
-   int row;
- 
-@@ -167,12 +167,14 @@ stridemove (guchar *new_buf, guchar *orig_buf, gint new_width, gint orig_width,
-    * for the same reason.
-    */
-   if (new_width > orig_width) {
--    for (row=height-1; row>=0; row--) {
--      stride_copy (new_buf+(new_width*row), orig_buf+(orig_width*row), orig_width);
-+    for (row = height - 1; row >= 0; row--) {
-+      stride_copy (new_buf + (new_width * row), orig_buf + (orig_width * row),
-+          orig_width);
-     }
-   } else {
--    for (row=0; row<height; row++) {
--      stride_copy (new_buf+(new_width*row), orig_buf+(orig_width*row), new_width);
-+    for (row = 0; row < height; row++) {
-+      stride_copy (new_buf + (new_width * row), orig_buf + (orig_width * row),
-+          new_width);
-     }
-   }
- }
-@@ -183,9 +185,10 @@ stridemove (guchar *new_buf, guchar *orig_buf, gint new_width, gint orig_width,
- 
- /** convert 4:2:0 semiplanar to same 4:2:0 semiplanar */
- static GstFlowReturn
--unstridify_420sp_420sp (GstStrideTransform *self, guchar *unstrided, guchar *strided)
-+unstridify_420sp_420sp (GstStrideTransform * self, guchar * unstrided,
-+    guchar * strided)
- {
--  gint width  = self->width;
-+  gint width = self->width;
-   gint height = self->height;
-   gint stride = self->in_rowstride;
- 
-@@ -196,10 +199,12 @@ unstridify_420sp_420sp (GstStrideTransform *self, guchar *unstrided, guchar *str
- 
-   return GST_FLOW_OK;
- }
-+
- static GstFlowReturn
--stridify_420sp_420sp (GstStrideTransform *self, guchar *strided, guchar *unstrided)
-+stridify_420sp_420sp (GstStrideTransform * self, guchar * strided,
-+    guchar * unstrided)
- {
--  gint width  = self->width;
-+  gint width = self->width;
-   gint height = self->height;
-   gint stride = self->out_rowstride;
- 
-@@ -214,115 +219,107 @@ stridify_420sp_420sp (GstStrideTransform *self, guchar *strided, guchar *unstrid
- 
- /** convert 4:2:0 planar to same 4:2:0 planar */
- static GstFlowReturn
--unstridify_420p_420p (GstStrideTransform *self, guchar *unstrided, guchar *strided)
-+unstridify_420p_420p (GstStrideTransform * self, guchar * unstrided,
-+    guchar * strided)
- {
--  gint width  = self->width;
-+  gint width = self->width;
-   gint height = self->height;
-   gint stride = self->in_rowstride;
- 
-   g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
- 
--  stridemove (unstrided, strided, width, stride, height);   /* move Y */
--  stridemove (
--      unstrided + (height*width),
--      strided + (height*stride),
--      width/2, stride, height);                             /* move V/U */
-+  stridemove (unstrided, strided, width, stride, height);       /* move Y */
-+  stridemove (unstrided + (height * width), strided + (height * stride), width / 2, stride, height);    /* move V/U */
-   /* XXX odd widths/heights/strides: */
--  stridemove (
--      unstrided + (int)(height*width*1.5),
--      strided + (int)(height*stride*1.5),
--      width/2, stride, height);                             /* move U/V */
-+  stridemove (unstrided + (int) (height * width * 1.5), strided + (int) (height * stride * 1.5), width / 2, stride, height);    /* move U/V */
- 
-   return GST_FLOW_OK;
- }
-+
- static GstFlowReturn
--stridify_420p_420p (GstStrideTransform *self, guchar *strided, guchar *unstrided)
-+stridify_420p_420p (GstStrideTransform * self, guchar * strided,
-+    guchar * unstrided)
- {
--  gint width  = self->width;
-+  gint width = self->width;
-   gint height = self->height;
-   gint stride = self->out_rowstride;
- 
-   g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
- 
-   /* XXX odd widths/heights/strides: */
--  stridemove (
--      strided + (int)(height*stride*1.5),
--      unstrided + (int)(height*width*1.5),
--      stride, width/2, height);                             /* move U/V */
--  stridemove (
--      strided + (height*stride),
--      unstrided + (height*width),
--      stride, width/2, height);                             /* move V/U */
--  stridemove (strided, unstrided, stride, width, height);   /* move Y */
-+  stridemove (strided + (int) (height * stride * 1.5), unstrided + (int) (height * width * 1.5), stride, width / 2, height);    /* move U/V */
-+  stridemove (strided + (height * stride), unstrided + (height * width), stride, width / 2, height);    /* move V/U */
-+  stridemove (strided, unstrided, stride, width, height);       /* move Y */
- 
-   return GST_FLOW_OK;
- }
- 
- /** convert 4:2:2 packed to same 4:2:2 packed */
- static GstFlowReturn
--unstridify_422i_422i (GstStrideTransform *self, guchar *unstrided, guchar *strided)
-+unstridify_422i_422i (GstStrideTransform * self, guchar * unstrided,
-+    guchar * strided)
- {
--  gint width  = self->width;
-+  gint width = self->width;
-   gint height = self->height;
-   gint stride = self->in_rowstride;
- 
--  g_return_val_if_fail (stride >= (width*2), GST_FLOW_ERROR);
-+  g_return_val_if_fail (stride >= (width * 2), GST_FLOW_ERROR);
- 
--  stridemove (unstrided, strided, width*2, stride, height);
-+  stridemove (unstrided, strided, width * 2, stride, height);
- 
-   return GST_FLOW_OK;
- }
-+
- static GstFlowReturn
--stridify_422i_422i (GstStrideTransform *self, guchar *strided, guchar *unstrided)
-+stridify_422i_422i (GstStrideTransform * self, guchar * strided,
-+    guchar * unstrided)
- {
--  gint width  = self->width;
-+  gint width = self->width;
-   gint height = self->height;
-   gint stride = self->out_rowstride;
- 
--  g_return_val_if_fail (stride >= (width*2), GST_FLOW_ERROR);
-+  g_return_val_if_fail (stride >= (width * 2), GST_FLOW_ERROR);
- 
--  stridemove (strided, unstrided, stride, width*2, height);
-+  stridemove (strided, unstrided, stride, width * 2, height);
- 
-   return GST_FLOW_OK;
- }
- 
- /** convert I420 unstrided to NV12 strided */
- static GstFlowReturn
--stridify_i420_nv12 (GstStrideTransform *self, guchar *strided, guchar *unstrided)
-+stridify_i420_nv12 (GstStrideTransform * self, guchar * strided,
-+    guchar * unstrided)
- {
--  gint width  = self->width;
-+  gint width = self->width;
-   gint height = self->height;
-   gint stride = self->out_rowstride;
- 
-   g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
- 
-   /* XXX widths/heights/strides that are not multiple of four??: */
--  stridemove_zip2 (
--      strided + (height*stride),
--      unstrided + (height*width),                           /* U */
--      unstrided + (int)(height*width*1.25),                 /* V */
--      stride, width/2, height/2);
--  stridemove (strided, unstrided, stride, width, height);   /* Y */
-+  stridemove_zip2 (strided + (height * stride), unstrided + (height * width),   /* U */
-+      unstrided + (int) (height * width * 1.25),        /* V */
-+      stride, width / 2, height / 2);
-+  stridemove (strided, unstrided, stride, width, height);       /* Y */
- 
-   return GST_FLOW_OK;
- }
- 
- /** convert I420 unstrided to YUY2 strided */
- static GstFlowReturn
--stridify_i420_yuy2 (GstStrideTransform *self, guchar *strided, guchar *unstrided)
-+stridify_i420_yuy2 (GstStrideTransform * self, guchar * strided,
-+    guchar * unstrided)
- {
--  gint width  = self->width;
-+  gint width = self->width;
-   gint height = self->height;
-   gint stride = self->out_rowstride;
- 
-   g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
- 
-   /* XXX widths/heights/strides that are not multiple of four??: */
--  stridemove_zip3a (
--      strided,
--      unstrided,                                            /* Y */
--      unstrided + (height*width),                           /* U */
--      unstrided + (int)(height*width*1.25),                 /* V */
-+  stridemove_zip3a (strided, unstrided, /* Y */
-+      unstrided + (height * width),     /* U */
-+      unstrided + (int) (height * width * 1.25),        /* V */
-       stride, width, height);
- 
-   return GST_FLOW_OK;
-@@ -330,46 +327,51 @@ stridify_i420_yuy2 (GstStrideTransform *self, guchar *strided, guchar *unstrided
- 
- /** convert RGB565 to RGB565 strided **/
- static GstFlowReturn
--stridify_rgb565_rgb565 (GstStrideTransform *self, guchar *strided, guchar *unstrided)
-+stridify_rgb565_rgb565 (GstStrideTransform * self, guchar * strided,
-+    guchar * unstrided)
- {
--    gint width  = self->width;
--    gint height = self->height;
--    gint stride = self->out_rowstride;
-+  gint width = self->width;
-+  gint height = self->height;
-+  gint stride = self->out_rowstride;
- 
--    g_return_val_if_fail (stride >= (width*2), GST_FLOW_ERROR);
-+  g_return_val_if_fail (stride >= (width * 2), GST_FLOW_ERROR);
- 
--    stridemove (strided, unstrided, stride, width*2, height);
-+  stridemove (strided, unstrided, stride, width * 2, height);
- 
--    return GST_FLOW_OK;
-+  return GST_FLOW_OK;
- }
- 
- /** convert RGB565 strided to RGB565 **/
- static GstFlowReturn
--unstridify_rgb565_rgb565 (GstStrideTransform *self, guchar *strided, guchar *unstrided)
-+unstridify_rgb565_rgb565 (GstStrideTransform * self, guchar * strided,
-+    guchar * unstrided)
- {
--    gint width  = self->width;
--    gint height = self->height;
--    gint stride = self->in_rowstride;
-+  gint width = self->width;
-+  gint height = self->height;
-+  gint stride = self->in_rowstride;
- 
--    g_return_val_if_fail (stride >= (width*2), GST_FLOW_ERROR);
-+  g_return_val_if_fail (stride >= (width * 2), GST_FLOW_ERROR);
- 
--    stridemove (unstrided, strided, width*2, stride, height);
--    return GST_FLOW_OK;
-+  stridemove (unstrided, strided, width * 2, stride, height);
-+  return GST_FLOW_OK;
- }
- 
-+#define CONVERT(tofmt, fromfmt, stridify, unstridify)           \
-+		{                                                           \
-+      { GST_VIDEO_FORMAT_##tofmt, GST_VIDEO_FORMAT_##fromfmt }, \
-+      stridify, unstridify                                      \
-+    }
- 
- /* last entry has GST_VIDEO_FORMAT_UNKNOWN for in/out formats */
--Conversion stride_conversions[] = {
--  { { GST_VIDEO_FORMAT_NV12, GST_VIDEO_FORMAT_NV12 }, stridify_420sp_420sp, unstridify_420sp_420sp },
--  { { GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_I420 }, stridify_420p_420p,   unstridify_420p_420p },
--  { { GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_YV12 }, stridify_420p_420p,   unstridify_420p_420p },
--  { { GST_VIDEO_FORMAT_YUY2, GST_VIDEO_FORMAT_YUY2 }, stridify_422i_422i,   unstridify_422i_422i },
--  { { GST_VIDEO_FORMAT_UYVY, GST_VIDEO_FORMAT_UYVY }, stridify_422i_422i,   unstridify_422i_422i },
--  { { GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_NV12 }, stridify_i420_nv12,   NULL },
--  { { GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_YUY2 }, stridify_i420_yuy2,   NULL },
--  { { GST_VIDEO_FORMAT_RGB16, GST_VIDEO_FORMAT_RGB16 }, stridify_rgb565_rgb565, unstridify_rgb565_rgb565 },
-+const Conversion stride_conversions[] = {
-+  CONVERT (NV12, NV12, stridify_420sp_420sp, unstridify_420sp_420sp),
-+  CONVERT (I420, I420, stridify_420p_420p, unstridify_420p_420p),
-+  CONVERT (YV12, YV12, stridify_420p_420p, unstridify_420p_420p),
-+  CONVERT (YUY2, YUY2, stridify_422i_422i, unstridify_422i_422i),
-+  CONVERT (UYVY, UYVY, stridify_422i_422i, unstridify_422i_422i),
-+  CONVERT (I420, NV12, stridify_i420_nv12, NULL),
-+  CONVERT (I420, YUY2, stridify_i420_yuy2, NULL),
-+  CONVERT (RGB16, RGB16, stridify_rgb565_rgb565, unstridify_rgb565_rgb565),
-   /* add new entries before here */
--  { { GST_VIDEO_FORMAT_UNKNOWN } }
-+  {{GST_VIDEO_FORMAT_UNKNOWN}}
- };
--
--
-diff --git a/gst/stride/gststridetransform.c b/gst/stride/gststridetransform.c
-index de07c11..4469e7f 100644
---- a/gst/stride/gststridetransform.c
-+++ b/gst/stride/gststridetransform.c
-@@ -146,7 +146,9 @@ static void
- gst_stride_transform_init (GstStrideTransform * self,
-     GstStrideTransformClass * klass)
- {
--  GST_DEBUG_OBJECT (self, "not implemented");
-+  GST_DEBUG_OBJECT (self, "ENTER");
-+  self->cached_caps[0] = NULL;
-+  self->cached_caps[1] = NULL;
- }
- 
- 
-@@ -154,7 +156,7 @@ static void
- gst_stride_transform_dispose (GObject * object)
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (object);
--  GST_DEBUG_OBJECT (self, "not implemented");
-+  GST_DEBUG_OBJECT (self, "ENTER");
-   G_OBJECT_CLASS (parent_class)->dispose (object);
- }
- 
-@@ -210,7 +212,30 @@ gst_stride_transform_transform_size (GstBaseTransform * base,
-   return TRUE;
- }
- 
-+/**
-+ * helper to check possible @fourcc conversions to the list @formats
-+ */
-+static void
-+add_all_fourcc_conversions (GValue * formats, guint32 fourcc,
-+    GstPadDirection direction)
-+{
-+  gint to_format = (direction == GST_PAD_SINK) ? 1 : 0;
-+  gint from_format = (direction == GST_PAD_SRC) ? 1 : 0;
-+  GValue fourccval = { 0 };
-+  gint i;
-+  GstVideoFormat format = gst_video_format_from_fourcc (fourcc);
- 
-+  g_value_init (&fourccval, GST_TYPE_FOURCC);
-+
-+  for (i = 0; stride_conversions[i].format[0] != GST_VIDEO_FORMAT_UNKNOWN; i++) {
-+    if (stride_conversions[i].format[from_format] == format) {
-+      guint result_fourcc =
-+          gst_video_format_to_fourcc (stride_conversions[i].format[to_format]);
-+      gst_value_set_fourcc (&fourccval, result_fourcc);
-+      gst_value_list_append_value (formats, &fourccval);
-+    }
-+  }
-+}
- 
- /**
-  * helper to add all fields, other than rowstride to @caps, copied from @s.
-@@ -230,43 +255,44 @@ add_all_fields (GstCaps * caps, const gchar * name, GstStructure * s,
-   idx = gst_structure_n_fields (s) - 1;
-   while (idx >= 0) {
-     const gchar *name = gst_structure_nth_field_name (s, idx);
-+    const GValue *val = gst_structure_get_value (s, name);
-+
-     idx--;
- 
-     /* for format field, check the stride_conversions table to see what
-      * we can support:
-      */
-     if (!strcmp ("format", name)) {
--      guint fourcc;
-+      GValue formats = { 0 };
- 
--      /* XXX double check this: */
--      gint to_format = (direction == GST_PAD_SINK) ? 1 : 0;
--      gint from_format = (direction == GST_PAD_SRC) ? 1 : 0;
-+      g_value_init (&formats, GST_TYPE_LIST);
- 
--      if (gst_structure_get_fourcc (s, "format", &fourcc)) {
--        GValue formats = { 0 };
--        GValue fourccval = { 0 };
-+      if (GST_VALUE_HOLDS_FOURCC (val)) {
-+        add_all_fourcc_conversions (&formats,
-+            gst_value_get_fourcc (val), direction);
-+      } else if (GST_VALUE_HOLDS_LIST (val)) {
-         gint i;
--        GstVideoFormat format = gst_video_format_from_fourcc (fourcc);
--
--        g_value_init (&formats, GST_TYPE_LIST);
--        g_value_init (&fourccval, GST_TYPE_FOURCC);
--
--        for (i = 0; stride_conversions[i].format[0] != GST_VIDEO_FORMAT_UNKNOWN;
--            i++) {
--          if (stride_conversions[i].format[from_format] == format) {
--            gst_value_set_fourcc (&fourccval, gst_video_format_to_fourcc
--                (stride_conversions[i].format[to_format]));
--            gst_value_list_append_value (&formats, &fourccval);
-+        for (i = 0; i < gst_value_list_get_size (val); i++) {
-+          const GValue *list_val = gst_value_list_get_value (val, i);
-+          if (GST_VALUE_HOLDS_FOURCC (list_val)) {
-+            add_all_fourcc_conversions (&formats,
-+                gst_value_get_fourcc (list_val), direction);
-+          } else {
-+            GST_WARNING ("malformed caps!!");
-+            break;
-           }
-         }
--
--        continue;
-+      } else {
-+        GST_WARNING ("malformed caps!!");
-       }
-+
-+      gst_structure_set_value (new_s, "format", &formats);
-+
-+      continue;
-     }
- 
-     /* copy over all other non-rowstride fields: */
-     if (strcmp ("rowstride", name)) {
--      const GValue *val = gst_structure_get_value (s, name);
-       gst_structure_set_value (new_s, name, val);
-     }
-   }
-@@ -347,6 +373,10 @@ gst_stride_transform_set_caps (GstBaseTransform * base,
-     }
-   }
- 
-+  GST_DEBUG_OBJECT (self,
-+      "conversion[%d]=%p, in_rowstride=%d, out_rowstride=%d",
-+      i, self->conversion, self->in_rowstride, self->out_rowstride);
-+
-   g_return_val_if_fail (self->conversion, FALSE);
-   g_return_val_if_fail (self->conversion->unstridify
-       || !self->in_rowstride, FALSE);
-@@ -355,6 +385,8 @@ gst_stride_transform_set_caps (GstBaseTransform * base,
-   g_return_val_if_fail (self->width == width, FALSE);
-   g_return_val_if_fail (self->height == height, FALSE);
- 
-+  GST_DEBUG_OBJECT (self, "caps are ok");
-+
-   return TRUE;
- }
- 
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0016-modify-playbin-to-use-stridetransform.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0016-modify-playbin-to-use-stridetransform.patch
deleted file mode 100644
index 82c9b25..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0016-modify-playbin-to-use-stridetransform.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From eb2753337944d24419dc13968137bf06a5e8f77c Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Sat, 6 Feb 2010 22:10:16 -0600
-Subject: [PATCH 16/24] modify playbin to use stridetransform
-
----
- gst/playback/gstplaysink.c |   29 ++++-------------------------
- 1 files changed, 4 insertions(+), 25 deletions(-)
-
-diff --git a/gst/playback/gstplaysink.c b/gst/playback/gstplaysink.c
-index bb41a03..dedd3be 100644
---- a/gst/playback/gstplaysink.c
-+++ b/gst/playback/gstplaysink.c
-@@ -1267,13 +1267,13 @@ gen_video_chain (GstPlaySink * playsink, gboolean raw, gboolean async)
-   }
- 
-   if (raw && !(playsink->flags & GST_PLAY_FLAG_NATIVE_VIDEO)) {
--    GST_DEBUG_OBJECT (playsink, "creating ffmpegcolorspace");
--    chain->conv = gst_element_factory_make ("ffmpegcolorspace", "vconv");
-+    GST_DEBUG_OBJECT (playsink, "creating stridetransform");
-+    chain->conv = gst_element_factory_make ("stridetransform", "vconv");
-     if (chain->conv == NULL) {
--      post_missing_element_message (playsink, "ffmpegcolorspace");
-+      post_missing_element_message (playsink, "stridetransform");
-       GST_ELEMENT_WARNING (playsink, CORE, MISSING_PLUGIN,
-           (_("Missing element '%s' - check your GStreamer installation."),
--              "ffmpegcolorspace"), ("video rendering might fail"));
-+              "stridetransform"), ("video rendering might fail"));
-     } else {
-       gst_bin_add (bin, chain->conv);
-       if (prev) {
-@@ -1285,27 +1285,6 @@ gen_video_chain (GstPlaySink * playsink, gboolean raw, gboolean async)
-       }
-       prev = chain->conv;
-     }
--
--    GST_DEBUG_OBJECT (playsink, "creating videoscale");
--    chain->scale = gst_element_factory_make ("videoscale", "vscale");
--    if (chain->scale == NULL) {
--      post_missing_element_message (playsink, "videoscale");
--      GST_ELEMENT_WARNING (playsink, CORE, MISSING_PLUGIN,
--          (_("Missing element '%s' - check your GStreamer installation."),
--              "videoscale"), ("possibly a liboil version mismatch?"));
--    } else {
--      /* Add black borders if necessary to keep the DAR */
--      g_object_set (chain->scale, "add-borders", TRUE, NULL);
--      gst_bin_add (bin, chain->scale);
--      if (prev) {
--        if (!gst_element_link_pads_full (prev, "src", chain->scale, "sink",
--                GST_PAD_LINK_CHECK_TEMPLATE_CAPS))
--          goto link_failed;
--      } else {
--        head = chain->scale;
--      }
--      prev = chain->scale;
--    }
-   }
- 
-   if (prev) {
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0017-playbin-disable-interlaced-support.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0017-playbin-disable-interlaced-support.patch
deleted file mode 100644
index 44bb868..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0017-playbin-disable-interlaced-support.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 82d8f741f626ed449c84e0ae4c8e27219557149e Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Thu, 19 Aug 2010 10:32:52 -0500
-Subject: [PATCH 17/24] playbin: disable interlaced support
-
-Latest totem is enabling interlaced support, which causes similar issues
-to when native-video is not used.. for now, since none of the codecs
-support it, disable interlaced support.
----
- gst/playback/gstplaysink.c |    2 ++
- 1 files changed, 2 insertions(+), 0 deletions(-)
-
-diff --git a/gst/playback/gstplaysink.c b/gst/playback/gstplaysink.c
-index dedd3be..957f288 100644
---- a/gst/playback/gstplaysink.c
-+++ b/gst/playback/gstplaysink.c
-@@ -2118,11 +2118,13 @@ gst_play_sink_reconfigure (GstPlaySink * playsink)
-     /* we have video and we are requested to show it */
-     need_video = TRUE;
- 
-+#if 0
-     /* we only deinterlace if native video is not requested and
-      * we have raw video */
-     if ((flags & GST_PLAY_FLAG_DEINTERLACE)
-         && !(flags & GST_PLAY_FLAG_NATIVE_VIDEO) && playsink->video_pad_raw)
-       need_deinterlace = TRUE;
-+#endif
-   }
- 
-   if (playsink->audio_pad) {
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0018-textoverlay-add-stride-support.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0018-textoverlay-add-stride-support.patch
deleted file mode 100644
index 8c0c423..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0018-textoverlay-add-stride-support.patch
+++ /dev/null
@@ -1,132 +0,0 @@
-From 8cd575c6c2f46464d7704e07102a648bba08a6c6 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Mon, 23 Aug 2010 14:01:14 -0500
-Subject: [PATCH 18/24] textoverlay: add stride support
-
----
- ext/pango/gsttextoverlay.c |   37 +++++++++++++++++++++++++------------
- ext/pango/gsttextoverlay.h |    1 +
- 2 files changed, 26 insertions(+), 12 deletions(-)
-
-diff --git a/ext/pango/gsttextoverlay.c b/ext/pango/gsttextoverlay.c
-index 915a59c..1bf3638 100644
---- a/ext/pango/gsttextoverlay.c
-+++ b/ext/pango/gsttextoverlay.c
-@@ -187,7 +187,7 @@ static GstStaticPadTemplate src_template_factory =
-     GST_PAD_ALWAYS,
-     GST_STATIC_CAPS (GST_VIDEO_CAPS_BGRx ";"
-         GST_VIDEO_CAPS_xRGB ";"
--        GST_VIDEO_CAPS_YUV ("{AYUV, I420, UYVY, NV12, NV21}"))
-+        GST_VIDEO_CAPS_YUV_STRIDED ("{AYUV, I420, UYVY, NV12, NV21}", "[0, max]"))
-     );
- 
- static GstStaticPadTemplate video_sink_template_factory =
-@@ -196,7 +196,7 @@ static GstStaticPadTemplate video_sink_template_factory =
-     GST_PAD_ALWAYS,
-     GST_STATIC_CAPS (GST_VIDEO_CAPS_BGRx ";"
-         GST_VIDEO_CAPS_xRGB ";"
--        GST_VIDEO_CAPS_YUV ("{AYUV, I420, UYVY, NV12, NV21}"))
-+        GST_VIDEO_CAPS_YUV_STRIDED ("{AYUV, I420, UYVY, NV12, NV21}", "[0, max]"))
-     );
- 
- static GstStaticPadTemplate text_sink_template_factory =
-@@ -724,12 +724,13 @@ gst_text_overlay_setcaps (GstPad * pad, GstCaps * caps)
- 
-   overlay->width = 0;
-   overlay->height = 0;
-+  overlay->rowstride = 0;
-   structure = gst_caps_get_structure (caps, 0);
-   fps = gst_structure_get_value (structure, "framerate");
- 
-   if (fps
--      && gst_video_format_parse_caps (caps, &overlay->format, &overlay->width,
--          &overlay->height)) {
-+      && gst_video_format_parse_caps_strided (caps, &overlay->format, &overlay->width,
-+          &overlay->height, &overlay->rowstride)) {
-     ret = gst_pad_set_caps (overlay->srcpad, caps);
-   }
- 
-@@ -1364,14 +1365,21 @@ gst_text_overlay_render_pangocairo (GstTextOverlay * overlay,
- #define BOX_XPAD         6
- #define BOX_YPAD         6
- 
-+static gint
-+gst_text_overlay_get_stride (GstTextOverlay * overlay, gint component)
-+{
-+  if (overlay->rowstride)
-+    return overlay->rowstride;
-+  return gst_video_format_get_row_stride (overlay->format, 0, overlay->width);
-+}
-+
- static inline void
- gst_text_overlay_shade_planar_Y (GstTextOverlay * overlay, guchar * dest,
-     gint x0, gint x1, gint y0, gint y1)
- {
-   gint i, j, dest_stride;
- 
--  dest_stride = gst_video_format_get_row_stride (overlay->format, 0,
--      overlay->width);
-+  dest_stride = gst_text_overlay_get_stride (overlay, 0);
- 
-   x0 = CLAMP (x0 - BOX_XPAD, 0, overlay->width);
-   x1 = CLAMP (x1 + BOX_XPAD, 0, overlay->width);
-@@ -1436,7 +1444,9 @@ static inline void
- gst_text_overlay_shade_xRGB (GstTextOverlay * overlay, guchar * dest,
-     gint x0, gint x1, gint y0, gint y1)
- {
--  gint i, j;
-+  gint i, j, dest_stride;
-+
-+  dest_stride = gst_text_overlay_get_stride (overlay, 0);
- 
-   x0 = CLAMP (x0 - BOX_XPAD, 0, overlay->width);
-   x1 = CLAMP (x1 + BOX_XPAD, 0, overlay->width);
-@@ -1448,7 +1458,7 @@ gst_text_overlay_shade_xRGB (GstTextOverlay * overlay, guchar * dest,
-     for (j = x0; j < x1; j++) {
-       gint y, y_pos, k;
- 
--      y_pos = (i * 4 * overlay->width) + j * 4;
-+      y_pos = (i * dest_stride) + j * 4;
-       for (k = 0; k < 4; k++) {
-         y = dest[y_pos + k] + overlay->shading_value;
-         dest[y_pos + k] = CLAMP (y, 0, 255);
-@@ -1480,10 +1490,10 @@ gst_text_overlay_blit_NV12_NV21 (GstTextOverlay * overlay,
-   w = overlay->width;
-   h = overlay->height;
- 
--  y_stride = gst_video_format_get_row_stride (overlay->format, 0, w);
--  uv_stride = gst_video_format_get_row_stride (overlay->format, 1, w);
--  u_offset = gst_video_format_get_component_offset (overlay->format, 1, w, h);
--  v_offset = gst_video_format_get_component_offset (overlay->format, 2, w, h);
-+  y_stride = gst_text_overlay_get_stride (overlay, 0);
-+  uv_stride = gst_text_overlay_get_stride (overlay, 1);
-+  u_offset = gst_video_format_get_component_offset (overlay->format, 1, y_stride, h);
-+  v_offset = gst_video_format_get_component_offset (overlay->format, 2, y_stride, h);
- 
-   gst_text_overlay_blit_1 (overlay, yuv_pixels, xpos, ypos, overlay->text_image,
-       y_stride);
-@@ -1509,6 +1519,9 @@ gst_text_overlay_blit_I420 (GstTextOverlay * overlay,
-   w = overlay->width;
-   h = overlay->height;
- 
-+  /* XXX this is not updated for rowstride.. but rowstride could be
-+   * ambiguous for I420.. is the U and V plane rowstride or rowstride/2?
-+   */
-   y_stride = gst_video_format_get_row_stride (GST_VIDEO_FORMAT_I420, 0, w);
-   u_stride = gst_video_format_get_row_stride (GST_VIDEO_FORMAT_I420, 1, w);
-   v_stride = gst_video_format_get_row_stride (GST_VIDEO_FORMAT_I420, 2, w);
-diff --git a/ext/pango/gsttextoverlay.h b/ext/pango/gsttextoverlay.h
-index 5fddf3a..bc2940b 100644
---- a/ext/pango/gsttextoverlay.h
-+++ b/ext/pango/gsttextoverlay.h
-@@ -112,6 +112,7 @@ struct _GstTextOverlay {
- 
-     gint                     width;
-     gint                     height;
-+    gint                     rowstride;
-     gint                     fps_n;
-     gint                     fps_d;
-     GstVideoFormat           format;
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0019-video-more-flexible-video-caps-utility.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0019-video-more-flexible-video-caps-utility.patch
deleted file mode 100644
index fcf4fd6..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0019-video-more-flexible-video-caps-utility.patch
+++ /dev/null
@@ -1,228 +0,0 @@
-From ecac5f6e2cab295e742784f6d4d11800b1f37c6d Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Mon, 13 Sep 2010 19:04:47 -0500
-Subject: [PATCH 19/24] video: more flexible video caps utility
-
-Add gst_video_format_new_caps_simple() to allow for more flexible video
-caps builder, which could be used for template caps and non-fixed caps.
----
- gst-libs/gst/video/video.c |  129 ++++++++++++++++++++++++++------------------
- gst-libs/gst/video/video.h |    2 +
- 2 files changed, 78 insertions(+), 53 deletions(-)
-
-diff --git a/gst-libs/gst/video/video.c b/gst-libs/gst/video/video.c
-index ff9c4fb..ef8edcc 100644
---- a/gst-libs/gst/video/video.c
-+++ b/gst-libs/gst/video/video.c
-@@ -590,15 +590,12 @@ gst_video_format_new_caps_interlaced (GstVideoFormat format,
- }
- 
- /**
-- * gst_video_format_new_caps_strided:
-+ * gst_video_format_new_caps_simple:
-  * @format: the #GstVideoFormat describing the raw video format
-- * @width: width of video
-- * @height: height of video
-- * @rowstride: the rowstride (in bytes), or 0 if no rowstride
-- * @framerate_n: numerator of frame rate
-- * @framerate_d: denominator of frame rate
-- * @par_n: numerator of pixel aspect ratio
-- * @par_d: denominator of pixel aspect ratio
-+ * @rowstride: 0 for unstrided, -1 for any stride (unfixed), or other
-+ *     for fixed stride
-+ * @fieldname: first field to set
-+ * @...: additional arguments
-  *
-  * Creates a new #GstCaps object based on the parameters provided.
-  *
-@@ -607,25 +604,20 @@ gst_video_format_new_caps_interlaced (GstVideoFormat format,
-  * Returns: a new #GstCaps object, or NULL if there was an error
-  */
- GstCaps *
--gst_video_format_new_caps_strided (GstVideoFormat format,
--    int width, int height, int rowstride,
--    int framerate_n, int framerate_d, int par_n, int par_d)
-+gst_video_format_new_caps_simple (GstVideoFormat format, int rowstride,
-+    const char *fieldname, ...)
- {
--  GstCaps *caps = NULL;
-+  va_list varargs;
-+  GstStructure *s;
- 
-   g_return_val_if_fail (format != GST_VIDEO_FORMAT_UNKNOWN, NULL);
--  g_return_val_if_fail (width > 0 && height > 0, NULL);
- 
-   if (gst_video_format_is_yuv (format)) {
--    caps = gst_caps_new_simple (
--        rowstride ? "video/x-raw-yuv-strided" : "video/x-raw-yuv",
-+    s = gst_structure_new (rowstride ?
-+        "video/x-raw-yuv-strided" : "video/x-raw-yuv",
-         "format", GST_TYPE_FOURCC, gst_video_format_to_fourcc (format),
--        "width", G_TYPE_INT, width,
--        "height", G_TYPE_INT, height,
--        "framerate", GST_TYPE_FRACTION, framerate_n, framerate_d,
--        "pixel-aspect-ratio", GST_TYPE_FRACTION, par_n, par_d, NULL);
-+        NULL);
-   } else if (gst_video_format_is_rgb (format)) {
--    GstCaps *caps;
-     int red_mask = 0;
-     int blue_mask = 0;
-     int green_mask = 0;
-@@ -684,15 +676,12 @@ gst_video_format_new_caps_strided (GstVideoFormat format,
-       } else {
-         mask = 0xff0000;
-       }
--      red_mask =
--          mask >> (8 * gst_video_format_get_component_offset (format, 0,
--              width, height));
--      green_mask =
--          mask >> (8 * gst_video_format_get_component_offset (format, 1,
--              width, height));
--      blue_mask =
--          mask >> (8 * gst_video_format_get_component_offset (format, 2,
--              width, height));
-+      red_mask = mask >>
-+          (8 * gst_video_format_get_component_offset (format, 0, 1, 1));
-+      green_mask = mask >>
-+          (8 * gst_video_format_get_component_offset (format, 1, 1, 1));
-+      blue_mask = mask >>
-+          (8 * gst_video_format_get_component_offset (format, 2, 1, 1));
-     } else if (bpp == 16) {
-       switch (format) {
-         case GST_VIDEO_FORMAT_RGB16:
-@@ -723,17 +712,13 @@ gst_video_format_new_caps_strided (GstVideoFormat format,
-       return NULL;
-     }
- 
--    caps = gst_caps_new_simple (
-+    s = gst_structure_new (
-         rowstride ? "video/x-raw-rgb-strided" : "video/x-raw-rgb",
-         "bpp", G_TYPE_INT, bpp,
--        "depth", G_TYPE_INT, depth,
--        "width", G_TYPE_INT, width,
--        "height", G_TYPE_INT, height,
--        "framerate", GST_TYPE_FRACTION, framerate_n, framerate_d,
--        "pixel-aspect-ratio", GST_TYPE_FRACTION, par_n, par_d, NULL);
-+        "depth", G_TYPE_INT, depth, NULL);
- 
-     if (bpp != 8) {
--      gst_caps_set_simple (caps,
-+      gst_structure_set (s,
-           "endianness", G_TYPE_INT, G_BIG_ENDIAN,
-           "red_mask", G_TYPE_INT, red_mask,
-           "green_mask", G_TYPE_INT, green_mask,
-@@ -741,10 +726,12 @@ gst_video_format_new_caps_strided (GstVideoFormat format,
-     }
- 
-     if (have_alpha) {
--      alpha_mask =
--          mask >> (8 * gst_video_format_get_component_offset (format, 3,
--              width, height));
--      gst_caps_set_simple (caps, "alpha_mask", G_TYPE_INT, alpha_mask, NULL);
-+      /* note: we are passing a bogus width/height to get_component_offset(),
-+       * but those parameters are ignored for the packed formats so it is ok
-+       */
-+      alpha_mask = mask >>
-+          (8 * gst_video_format_get_component_offset (format, 3, 1, 1));
-+      gst_structure_set (s, "alpha_mask", G_TYPE_INT, alpha_mask, NULL);
-     }
-   } else if (gst_video_format_is_gray (format)) {
-     int bpp;
-@@ -770,32 +757,68 @@ gst_video_format_new_caps_strided (GstVideoFormat format,
-     }
- 
-     if (bpp > 8) {
--      caps = gst_caps_new_simple ("video/x-raw-gray",
-+      s = gst_structure_new (rowstride ?
-+          "video/x-raw-gray-strided" : "video/x-raw-gray",
-           "bpp", G_TYPE_INT, bpp,
-           "depth", G_TYPE_INT, depth,
--          "width", G_TYPE_INT, width,
--          "height", G_TYPE_INT, height,
--          "framerate", GST_TYPE_FRACTION, framerate_n, framerate_d,
--          "pixel-aspect-ratio", GST_TYPE_FRACTION, par_n, par_d, NULL);
-+          NULL);
-     } else {
--      caps = gst_caps_new_simple ("video/x-raw-gray",
-+      s = gst_structure_new (rowstride ?
-+          "video/x-raw-gray-strided" : "video/x-raw-gray",
-           "bpp", G_TYPE_INT, bpp,
-           "depth", G_TYPE_INT, depth,
-           "endianness", G_TYPE_INT, G_BIG_ENDIAN,
--          "width", G_TYPE_INT, width,
--          "height", G_TYPE_INT, height,
--          "framerate", GST_TYPE_FRACTION, framerate_n, framerate_d,
--          "pixel-aspect-ratio", GST_TYPE_FRACTION, par_n, par_d, NULL);
-+          NULL);
-     }
-   } else {
-     return NULL;
-   }
- 
--  if (rowstride) {
--    gst_caps_set_simple (caps, "rowstride", G_TYPE_INT, rowstride, NULL);
-+  if (rowstride > 0) {
-+    gst_structure_set (s, "rowstride",
-+        G_TYPE_INT, rowstride, NULL);
-+  } else if (rowstride < 0) {
-+    gst_structure_set (s, "rowstride",
-+        GST_TYPE_INT_RANGE, 1, G_MAXINT, NULL);
-   }
- 
--  return caps;
-+  va_start (varargs, fieldname);
-+  gst_structure_set_valist (s, fieldname, varargs);
-+  va_end (varargs);
-+
-+  return gst_caps_new_full (s, NULL);
-+}
-+
-+/**
-+ * gst_video_format_new_caps_strided:
-+ * @format: the #GstVideoFormat describing the raw video format
-+ * @width: width of video
-+ * @height: height of video
-+ * @rowstride: the rowstride (in bytes), or 0 if no rowstride
-+ * @framerate_n: numerator of frame rate
-+ * @framerate_d: denominator of frame rate
-+ * @par_n: numerator of pixel aspect ratio
-+ * @par_d: denominator of pixel aspect ratio
-+ *
-+ * Creates a new #GstCaps object based on the parameters provided.
-+ *
-+ * Since: ???
-+ *
-+ * Returns: a new #GstCaps object, or NULL if there was an error
-+ */
-+GstCaps *
-+gst_video_format_new_caps_strided (GstVideoFormat format,
-+    int width, int height, int rowstride,
-+    int framerate_n, int framerate_d, int par_n, int par_d)
-+{
-+  g_return_val_if_fail (width > 0 && height > 0, NULL);
-+
-+  return gst_video_format_new_caps_simple (format, rowstride,
-+      "width", G_TYPE_INT, width,
-+      "height", G_TYPE_INT, height,
-+      "framerate", GST_TYPE_FRACTION, framerate_n, framerate_d,
-+      "pixel-aspect-ratio", GST_TYPE_FRACTION, par_n, par_d,
-+      NULL);
- }
- 
- /**
-diff --git a/gst-libs/gst/video/video.h b/gst-libs/gst/video/video.h
-index 5bac21f..bbd33f7 100644
---- a/gst-libs/gst/video/video.h
-+++ b/gst-libs/gst/video/video.h
-@@ -430,6 +430,8 @@ GstCaps * gst_video_format_new_caps_interlaced (GstVideoFormat format,
- GstCaps * gst_video_format_new_caps_strided (GstVideoFormat format,
-     int width, int height, int rowstride,
-     int framerate_n, int framerate_d, int par_n, int par_d);
-+GstCaps * gst_video_format_new_caps_simple (GstVideoFormat format,
-+    int rowstride, const char *fieldname, ...);
- GstVideoFormat gst_video_format_from_fourcc (guint32 fourcc);
- guint32 gst_video_format_to_fourcc (GstVideoFormat format);
- gboolean gst_video_format_is_rgb (GstVideoFormat format);
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0020-video-fix-endianess-issue-for-16bit-RGB-formats.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0020-video-fix-endianess-issue-for-16bit-RGB-formats.patch
deleted file mode 100644
index bf07cea..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0020-video-fix-endianess-issue-for-16bit-RGB-formats.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 569f9ca7a8ce923d43956771e8a142a9b31114f1 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Mon, 13 Sep 2010 19:05:56 -0500
-Subject: [PATCH 20/24] video: fix endianess issue for 16bit RGB formats
-
----
- gst-libs/gst/video/video.c |    4 +++-
- 1 files changed, 3 insertions(+), 1 deletions(-)
-
-diff --git a/gst-libs/gst/video/video.c b/gst-libs/gst/video/video.c
-index ef8edcc..a5ec6b7 100644
---- a/gst-libs/gst/video/video.c
-+++ b/gst-libs/gst/video/video.c
-@@ -625,6 +625,7 @@ gst_video_format_new_caps_simple (GstVideoFormat format, int rowstride,
-     int depth;
-     int bpp;
-     gboolean have_alpha;
-+    int endianness = G_BIG_ENDIAN;
-     unsigned int mask = 0;
- 
-     switch (format) {
-@@ -708,6 +709,7 @@ gst_video_format_new_caps_simple (GstVideoFormat format, int rowstride,
-         default:
-           return NULL;
-       }
-+      endianness = G_BYTE_ORDER;
-     } else if (bpp != 8) {
-       return NULL;
-     }
-@@ -719,7 +721,7 @@ gst_video_format_new_caps_simple (GstVideoFormat format, int rowstride,
- 
-     if (bpp != 8) {
-       gst_structure_set (s,
--          "endianness", G_TYPE_INT, G_BIG_ENDIAN,
-+          "endianness", G_TYPE_INT, endianness,
-           "red_mask", G_TYPE_INT, red_mask,
-           "green_mask", G_TYPE_INT, green_mask,
-           "blue_mask", G_TYPE_INT, blue_mask, NULL);
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0021-stride-more-flexible-stride-color-conversion.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0021-stride-more-flexible-stride-color-conversion.patch
deleted file mode 100644
index b897c5e..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0021-stride-more-flexible-stride-color-conversion.patch
+++ /dev/null
@@ -1,1131 +0,0 @@
-From e8e3c9ae037daa4abd60f08bc49f370dd5f7b3c6 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Mon, 13 Sep 2010 19:10:36 -0500
-Subject: [PATCH 21/24] stride: more flexible stride/color conversion
-
-Refactor stride transform element to address a number of limitations:
-1) support converting buffers from one rowstride to another, in addition to
-just handling conversion from strided <-> unstrided.
-2) refactor convert code to make it easier to add new formats
-3) refactor caps handling code to build template caps based upon color
-formats listed in convert (stride_conversions table).
-4) refactor caps parsing/building to correctly handle RGB formats
-5) add support for crop.. currently we optimize by just only copying the
-uncropped part of the frame, but this is the first step to true handling of
-cropping, so that we can crop out padding for the benefit of sink elements
-that don't understand crop or stride.  (The convert code handles it fine..
-the caps parsing/building in gststridetransform.c would need to handle caps
-re-negotiation when the crop changes for this to be complete.)
----
- gst/stride/armv7.s              |    8 +-
- gst/stride/convert.c            |  400 ++++++++++++++++++++-------------------
- gst/stride/gststridetransform.c |  375 +++++++++++++++++++++++++------------
- gst/stride/gststridetransform.h |   25 +++-
- 4 files changed, 490 insertions(+), 318 deletions(-)
-
-diff --git a/gst/stride/armv7.s b/gst/stride/armv7.s
-index 2697a14..5f4200d 100644
---- a/gst/stride/armv7.s
-+++ b/gst/stride/armv7.s
-@@ -28,7 +28,7 @@
-        .global stride_copy_zip2
-        .type   stride_copy_zip2, %function
- @void
--@stride_copy_zip2 (guchar *new_buf, guchar *orig_buf1, guchar *orig_buf2, gint sz)
-+@stride_copy_zip2 (guchar * out, guchar * in1, guchar * in2, gint sz)
- @{
- @@@@ note: r0-r3, q0-3, and q8-q15 do not need to be preserved
- stride_copy_zip2:
-@@ -74,8 +74,8 @@ stride_copy_zip2_3:
-        .global stride_copy_zip3a
-        .type   stride_copy_zip3a, %function
- @void
--@stride_copy_zip3a (guchar *new_buf,
--@    guchar *orig_buf1, guchar *orig_buf2, guchar *orig_buf3, gint sz)
-+@stride_copy_zip3a (guchar * out,
-+@    guchar * in1, guchar * in2, guchar * in3, gint sz)
- @{
- @@@@ note: r0-r3, q0-3, and q8-q15 do not need to be preserved
- stride_copy_zip3a:
-@@ -136,7 +136,7 @@ stride_copy_zip3a_3:
-        .global stride_copy
-        .type   stride_copy, %function
- @void
--@stride_copy (guchar *new_buf, guchar *orig_buf, gint sz)
-+@stride_copy (guchar *out, guchar *in, gint sz)
- @{
- @@@@ note: r0-r3, q0-3, and q8-q15 do not need to be preserved
- stride_copy:
-diff --git a/gst/stride/convert.c b/gst/stride/convert.c
-index 17f9e2a..5d392ac 100644
---- a/gst/stride/convert.c
-+++ b/gst/stride/convert.c
-@@ -55,32 +55,31 @@ void stride_copy_zip3a (guchar * new_buf, guchar * orig_buf1,
- void stride_copy (guchar * new_buf, guchar * orig_buf, gint sz);
- 
- WEAK void
--stride_copy_zip2 (guchar * new_buf, guchar * orig_buf1, guchar * orig_buf2,
--    gint sz)
-+stride_copy_zip2 (guchar * out, guchar * in1, guchar * in2, gint sz)
- {
-   while (sz--) {
--    *new_buf++ = *orig_buf1++;
--    *new_buf++ = *orig_buf2++;
-+    *out++ = *in1++;
-+    *out++ = *in2++;
-   }
- }
- 
- WEAK void
--stride_copy_zip3a (guchar * new_buf,
--    guchar * orig_buf1, guchar * orig_buf2, guchar * orig_buf3, gint sz)
-+stride_copy_zip3a (guchar * out,
-+    guchar * in1, guchar * in2, guchar * in3, gint sz)
- {
-   while (sz > 1) {
--    *new_buf++ = *orig_buf1++;
--    *new_buf++ = *orig_buf2++;
--    *new_buf++ = *orig_buf1++;
--    *new_buf++ = *orig_buf3++;
-+    *out++ = *in1++;
-+    *out++ = *in2++;
-+    *out++ = *in1++;
-+    *out++ = *in3++;
-     sz -= 2;
-   }
- }
- 
- WEAK void
--stride_copy (guchar * new_buf, guchar * orig_buf, gint sz)
-+stride_copy (guchar * out, guchar * in, gint sz)
- {
--  memcpy (new_buf, orig_buf, sz);
-+  memcpy (out, in, sz);
- }
- 
- 
-@@ -88,31 +87,19 @@ stride_copy (guchar * new_buf, guchar * orig_buf, gint sz)
-  * move to strided buffer, interleaving two planes of identical dimensions
-  */
- static void
--stridemove_zip2 (guchar * new_buf, guchar * orig_buf1, guchar * orig_buf2,
--    gint new_width, gint orig_width, gint height)
-+stridemove_zip2 (guchar * out, guchar * in1, guchar * in2,
-+    gint out_bpl, gint in_bpl, gint width, gint height)
- {
-   int row;
- 
-   GST_DEBUG
--      ("new_buf=%p, orig_buf1=%p, orig_buf2=%p, new_width=%d, orig_width=%d, height=%d",
--      new_buf, orig_buf1, orig_buf2, new_width, orig_width, height);
--
--  /* if increasing the stride, work from bottom-up to avoid overwriting data
--   * that has not been moved yet.. otherwise, work in the opposite order,
--   * for the same reason.
--   */
--  if (new_width > orig_width) {
--    for (row = height - 1; row >= 0; row--) {
--      stride_copy_zip2 (new_buf + (new_width * row),
--          orig_buf1 + (orig_width * row),
--          orig_buf2 + (orig_width * row), orig_width);
--    }
--  } else {
--    for (row = 0; row < height; row++) {
--      stride_copy_zip2 (new_buf + (new_width * row),
--          orig_buf1 + (orig_width * row),
--          orig_buf2 + (orig_width * row), new_width);
--    }
-+      ("out=%p, in1=%p, in2=%p, out_bpl=%d, in_bpl=%d, width=%d, height=%d",
-+      out, in1, in2, out_bpl, in_bpl, width, height);
-+
-+  for (row = 0; row < height; row++) {
-+    stride_copy_zip2 (out + (out_bpl * row),
-+        in1 + (in_bpl * row),
-+        in2 + (in_bpl * row), width);
-   }
- }
- 
-@@ -121,26 +108,28 @@ stridemove_zip2 (guchar * new_buf, guchar * orig_buf1, guchar * orig_buf2,
-  * (orig_buf1) has 2x as many samples.. Ie. ABACABAC..
-  */
- static void
--stridemove_zip3a (guchar * new_buf,
--    guchar * orig_buf1, guchar * orig_buf2, guchar * orig_buf3,
--    guint new_width, gint orig_width, gint height)
-+stridemove_zip3a (guchar * out,
-+    guchar * in1, guchar * in2, guchar * in3,
-+    guint out_bpl, gint in_bpl, gint width, gint height)
- {
--  gint copy_width = (new_width < orig_width) ? new_width : orig_width;
-+  GST_DEBUG
-+      ("out=%p, in1=%p, in2=%p, in3=%p, out_bpl=%d, in_bpl=%d, width=%d, height=%d",
-+      out, in1, in2, in3, out_bpl, in_bpl, width, height);
- 
-   while (height > 0) {
- 
-     /* even row */
--    stride_copy_zip3a (new_buf, orig_buf1, orig_buf2, orig_buf3, copy_width);
--    new_buf += new_width;
--    orig_buf1 += orig_width;
-+    stride_copy_zip3a (out, in1, in2, in3, width);
-+    out += out_bpl;
-+    in1 += in_bpl;
- 
-     /* odd row, recycles same U & V */
--    stride_copy_zip3a (new_buf, orig_buf1, orig_buf2, orig_buf3, copy_width);
--    new_buf += new_width;
--    orig_buf1 += orig_width;
-+    stride_copy_zip3a (out, in1, in2, in3, width);
-+    out += out_bpl;
-+    in1 += in_bpl;
- 
--    orig_buf2 += orig_width / 2;
--    orig_buf3 += orig_width / 2;
-+    in2 += in_bpl / 2;
-+    in3 += in_bpl / 2;
- 
-     height -= 2;
-   }
-@@ -154,28 +143,18 @@ stridemove_zip3a (guchar * new_buf,
-  * enough.
-  */
- static void
--stridemove (guchar * new_buf, guchar * orig_buf, gint new_width,
--    gint orig_width, gint height)
-+stridemove (guchar * out, guchar * in, gint out_bpl, gint in_bpl,
-+    gint width, gint height)
- {
-   int row;
- 
--  GST_DEBUG ("new_buf=%p, orig_buf=%p, new_width=%d, orig_width=%d, height=%d",
--      new_buf, orig_buf, new_width, orig_width, height);
--
--  /* if increasing the stride, work from bottom-up to avoid overwriting data
--   * that has not been moved yet.. otherwise, work in the opposite order,
--   * for the same reason.
--   */
--  if (new_width > orig_width) {
--    for (row = height - 1; row >= 0; row--) {
--      stride_copy (new_buf + (new_width * row), orig_buf + (orig_width * row),
--          orig_width);
--    }
--  } else {
--    for (row = 0; row < height; row++) {
--      stride_copy (new_buf + (new_width * row), orig_buf + (orig_width * row),
--          new_width);
--    }
-+  GST_DEBUG ("out=%p, in=%p, out_bpl=%d, in_bpl=%d, width=%d, height=%d",
-+      out, in, out_bpl, in_bpl, width, height);
-+
-+  for (row = 0; row < height; row++) {
-+    stride_copy (out, in, width);
-+    out += out_bpl;
-+    in  += in_bpl;
-   }
- }
- 
-@@ -183,195 +162,232 @@ stridemove (guchar * new_buf, guchar * orig_buf, gint new_width,
-  * Conversion Functions:
-  */
- 
--/** convert 4:2:0 semiplanar to same 4:2:0 semiplanar */
--static GstFlowReturn
--unstridify_420sp_420sp (GstStrideTransform * self, guchar * unstrided,
--    guchar * strided)
-+/**
-+ * helper to calculate offsets/sizes that are re-used for each frame (until
-+ * caps or crop changes)
-+ * @isx:  input sub-sampling in x direction
-+ * @osx:  output sub-sampling in x direction
-+ * @isy:  input sub-sampling in y direction
-+ * @isx:  input sub-sampling in y direction
-+ */
-+static inline gboolean refresh_cache(GstStrideTransform * self,
-+    gint nplanes, gint bpp, gint * isx, gint * osx, gint * isy, gint * osy)
- {
--  gint width = self->width;
--  gint height = self->height;
--  gint stride = self->in_rowstride;
-+  gint in_off, out_off;
-+  int i;
- 
--  g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-+  if (((self->crop_top + self->crop_height) > self->height) ||
-+      ((self->crop_left + self->crop_width) > self->width)) {
-+    GST_ERROR_OBJECT (self, "invalid crop parameter");
-+    return GST_FLOW_ERROR;
-+  }
- 
--  stridemove (unstrided, strided, width, stride,
--      (GST_ROUND_UP_2 (height) * 3) / 2);
-+  in_off = out_off = 0;
- 
--  return GST_FLOW_OK;
--}
-+  for (i = 0; i < nplanes; i++) {
-+    Cache * cache = &self->cache[i];
- 
--static GstFlowReturn
--stridify_420sp_420sp (GstStrideTransform * self, guchar * strided,
--    guchar * unstrided)
--{
--  gint width = self->width;
--  gint height = self->height;
--  gint stride = self->out_rowstride;
-+    cache->in_bpl = self->in_rowstride ?
-+        self->in_rowstride : bpp * self->width;
- 
--  g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-+    cache->out_bpl = self->out_rowstride ?
-+        self->out_rowstride : bpp * self->width;
- 
--  g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
--  stridemove (strided, unstrided, stride, width,
--      (GST_ROUND_UP_2 (height) * 3) / 2);
-+    if ((cache->in_bpl < (self->width * bpp)) ||
-+        (cache->out_bpl < (self->width * bpp))) {
-+      GST_ERROR_OBJECT (self, "invalid stride parameter");
-+      return GST_FLOW_ERROR;
-+    }
- 
--  return GST_FLOW_OK;
--}
-+    cache->width = self->crop_width ?
-+        self->crop_width : self->width;
- 
--/** convert 4:2:0 planar to same 4:2:0 planar */
--static GstFlowReturn
--unstridify_420p_420p (GstStrideTransform * self, guchar * unstrided,
--    guchar * strided)
--{
--  gint width = self->width;
--  gint height = self->height;
--  gint stride = self->in_rowstride;
-+    cache->height = self->crop_height ?
-+        self->crop_height : self->height;
- 
--  g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-+    if ((cache->width > self->width) ||
-+        (cache->height > self->height)) {
-+      GST_ERROR_OBJECT (self, "invalid crop width/height parameter");
-+      return GST_FLOW_ERROR;
-+    }
- 
--  stridemove (unstrided, strided, width, stride, height);       /* move Y */
--  stridemove (unstrided + (height * width), strided + (height * stride), width / 2, stride, height);    /* move V/U */
--  /* XXX odd widths/heights/strides: */
--  stridemove (unstrided + (int) (height * width * 1.5), strided + (int) (height * stride * 1.5), width / 2, stride, height);    /* move U/V */
-+    /* note: everything above here is same for each plane, so in theory we
-+     * could only calculate on first plane, and copy on subsequent planes
-+     */
-+
-+    /* adjust for sub-sampling and bytes per pixel (bpp): */
-+    cache->in_bpl /= *isx;
-+    cache->out_bpl /= *osx;
-+    cache->width *= bpp;
-+    cache->width /= *isx;
-+    cache->height /= *isy;
-+
-+    /* calculate offset to beginning of data to copy/transform: */
-+    cache->in_off = in_off;
-+    cache->in_off += (bpp * self->crop_left / *isx) +
-+        (cache->in_bpl * self->crop_top / *isy);
-+
-+    cache->out_off = out_off;
-+    cache->out_off += (bpp * self->crop_left / *osx) +
-+        (cache->out_bpl * self->crop_top / *osy);
-+
-+    in_off += (self->height / *isy) * cache->in_bpl;
-+    out_off += (self->height / *osy) * cache->out_bpl;
-+
-+    osx++;
-+    isx++;
-+    osy++;
-+    isy++;
-+  }
- 
-   return GST_FLOW_OK;
- }
- 
--static GstFlowReturn
--stridify_420p_420p (GstStrideTransform * self, guchar * strided,
--    guchar * unstrided)
-+/** perform simple convert between buffers of same format */
-+static inline GstFlowReturn convert_n_n (GstStrideTransform *self,
-+    guchar * out, guchar * in, gint nplanes)
- {
--  gint width = self->width;
--  gint height = self->height;
--  gint stride = self->out_rowstride;
--
--  g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-+  int i;
- 
--  /* XXX odd widths/heights/strides: */
--  stridemove (strided + (int) (height * stride * 1.5), unstrided + (int) (height * width * 1.5), stride, width / 2, height);    /* move U/V */
--  stridemove (strided + (height * stride), unstrided + (height * width), stride, width / 2, height);    /* move V/U */
--  stridemove (strided, unstrided, stride, width, height);       /* move Y */
-+  for (i = 0; i < nplanes; i++) {
-+    stridemove (out + self->cache[i].out_off, in + self->cache[i].in_off,
-+        self->cache[i].out_bpl, self->cache[i].in_bpl,
-+        self->cache[i].width, self->cache[i].height);
-+  }
- 
-   return GST_FLOW_OK;
- }
- 
--/** convert 4:2:2 packed to same 4:2:2 packed */
-+/** convert 4:2:0 semiplanar to same 4:2:0 semiplanar */
- static GstFlowReturn
--unstridify_422i_422i (GstStrideTransform * self, guchar * unstrided,
--    guchar * strided)
-+convert_420sp_420sp (GstStrideTransform * self,
-+    guchar * out, guchar * in)
- {
--  gint width = self->width;
--  gint height = self->height;
--  gint stride = self->in_rowstride;
--
--  g_return_val_if_fail (stride >= (width * 2), GST_FLOW_ERROR);
--
--  stridemove (unstrided, strided, width * 2, stride, height);
-+  if (G_UNLIKELY (self->needs_refresh)) {
-+    gint sx[] = {1, 1};
-+    gint sy[] = {1, 2};
-+    if (refresh_cache (self, 2, 1, sx, sx, sy, sy))
-+      return GST_FLOW_ERROR;
-+    self->needs_refresh = FALSE;
-+  }
- 
--  return GST_FLOW_OK;
-+  return convert_n_n (self, out, in, 2);
- }
- 
-+/** convert 4:2:0 planar to same 4:2:0 planar */
- static GstFlowReturn
--stridify_422i_422i (GstStrideTransform * self, guchar * strided,
--    guchar * unstrided)
-+convert_420p_420p (GstStrideTransform * self,
-+    guchar * out, guchar * in)
- {
--  gint width = self->width;
--  gint height = self->height;
--  gint stride = self->out_rowstride;
--
--  g_return_val_if_fail (stride >= (width * 2), GST_FLOW_ERROR);
--
--  stridemove (strided, unstrided, stride, width * 2, height);
-+  if (G_UNLIKELY (self->needs_refresh)) {
-+    gint sx[] = {1, 2, 2};
-+    gint sy[] = {1, 2, 2};
-+    if (refresh_cache (self, 3, 1, sx, sx, sy, sy))
-+      return GST_FLOW_ERROR;
-+    self->needs_refresh = FALSE;
-+  }
- 
--  return GST_FLOW_OK;
-+  return convert_n_n (self, out, in, 3);
- }
- 
--/** convert I420 unstrided to NV12 strided */
-+/** convert 4:2:2 packed to same 4:2:2 packed */
-+
- static GstFlowReturn
--stridify_i420_nv12 (GstStrideTransform * self, guchar * strided,
--    guchar * unstrided)
-+convert_422i_422i (GstStrideTransform * self,
-+    guchar * out, guchar * in)
- {
--  gint width = self->width;
--  gint height = self->height;
--  gint stride = self->out_rowstride;
--
--  g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
--
--  /* XXX widths/heights/strides that are not multiple of four??: */
--  stridemove_zip2 (strided + (height * stride), unstrided + (height * width),   /* U */
--      unstrided + (int) (height * width * 1.25),        /* V */
--      stride, width / 2, height / 2);
--  stridemove (strided, unstrided, stride, width, height);       /* Y */
-+  if (G_UNLIKELY (self->needs_refresh)) {
-+    gint sx[] = {1};
-+    gint sy[] = {1};
-+    if (refresh_cache (self, 1, 2, sx, sx, sy, sy))
-+      return GST_FLOW_ERROR;
-+    self->needs_refresh = FALSE;
-+  }
- 
--  return GST_FLOW_OK;
-+  return convert_n_n (self, out, in, 1);
- }
- 
--/** convert I420 unstrided to YUY2 strided */
-+/** convert I420 unstrided to NV12 strided */
- static GstFlowReturn
--stridify_i420_yuy2 (GstStrideTransform * self, guchar * strided,
--    guchar * unstrided)
-+convert_i420_nv12 (GstStrideTransform * self,
-+    guchar * out, guchar * in)
- {
--  gint width = self->width;
--  gint height = self->height;
--  gint stride = self->out_rowstride;
-+  GstFlowReturn ret;
-+
-+  if (G_UNLIKELY (self->needs_refresh)) {
-+    gint isx[] = {1, 2, 2};
-+    gint osx[] = {1, 1, 1};
-+    gint sy[]  = {1, 2, 2};
-+    if (refresh_cache (self, 3, 1, isx, osx, sy, sy))
-+      return GST_FLOW_ERROR;
-+    self->needs_refresh = FALSE;
-+  }
- 
--  g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
-+  ret = convert_n_n (self, out, in, 1);
-+  if (ret != GST_FLOW_OK)
-+    return ret;
- 
--  /* XXX widths/heights/strides that are not multiple of four??: */
--  stridemove_zip3a (strided, unstrided, /* Y */
--      unstrided + (height * width),     /* U */
--      unstrided + (int) (height * width * 1.25),        /* V */
--      stride, width, height);
-+  stridemove_zip2 (out + self->cache[1].out_off,
-+      in + self->cache[1].in_off,      /* U */
-+      in + self->cache[2].in_off,      /* V */
-+      self->cache[2].out_bpl,
-+      self->cache[1].in_bpl,
-+      self->cache[1].width,
-+      self->cache[1].height);
- 
-   return GST_FLOW_OK;
- }
- 
--/** convert RGB565 to RGB565 strided **/
-+/** convert I420 unstrided to YUY2 strided */
- static GstFlowReturn
--stridify_rgb565_rgb565 (GstStrideTransform * self, guchar * strided,
--    guchar * unstrided)
-+convert_i420_yuy2 (GstStrideTransform * self,
-+    guchar * out, guchar * in)
- {
--  gint width = self->width;
--  gint height = self->height;
--  gint stride = self->out_rowstride;
--
--  g_return_val_if_fail (stride >= (width * 2), GST_FLOW_ERROR);
-+  if (G_UNLIKELY (self->needs_refresh)) {
-+    gint sx[] = {1, 2, 2};
-+    gint sy[] = {1, 2, 2};
-+    if (refresh_cache (self, 3, 1, sx, sx, sy, sy))
-+      return GST_FLOW_ERROR;
-+    self->needs_refresh = FALSE;
-+  }
- 
--  stridemove (strided, unstrided, stride, width * 2, height);
-+  stridemove_zip3a (out,
-+      in + self->cache[0].in_off,      /* Y */
-+      in + self->cache[1].in_off,      /* U */
-+      in + self->cache[2].in_off,      /* V */
-+      self->cache[0].out_bpl,
-+      self->cache[0].in_bpl,
-+      self->cache[0].width,
-+      self->cache[0].height);
- 
-   return GST_FLOW_OK;
- }
- 
--/** convert RGB565 strided to RGB565 **/
-+/** convert 16bpp rgb formats */
- static GstFlowReturn
--unstridify_rgb565_rgb565 (GstStrideTransform * self, guchar * strided,
--    guchar * unstrided)
-+convert_rgb16_rgb16 (GstStrideTransform * self,
-+    guchar * out, guchar * in)
- {
--  gint width = self->width;
--  gint height = self->height;
--  gint stride = self->in_rowstride;
--
--  g_return_val_if_fail (stride >= (width * 2), GST_FLOW_ERROR);
--
--  stridemove (unstrided, strided, width * 2, stride, height);
--  return GST_FLOW_OK;
-+  /* format is same 2-bytes per pixel */
-+  return convert_422i_422i (self, out, in);
- }
- 
--#define CONVERT(tofmt, fromfmt, stridify, unstridify)           \
-+#define CONVERT(tofmt, fromfmt, convert)                        \
- 		{                                                           \
-       { GST_VIDEO_FORMAT_##tofmt, GST_VIDEO_FORMAT_##fromfmt }, \
--      stridify, unstridify                                      \
-+      convert                                                   \
-     }
- 
- /* last entry has GST_VIDEO_FORMAT_UNKNOWN for in/out formats */
- const Conversion stride_conversions[] = {
--  CONVERT (NV12, NV12, stridify_420sp_420sp, unstridify_420sp_420sp),
--  CONVERT (I420, I420, stridify_420p_420p, unstridify_420p_420p),
--  CONVERT (YV12, YV12, stridify_420p_420p, unstridify_420p_420p),
--  CONVERT (YUY2, YUY2, stridify_422i_422i, unstridify_422i_422i),
--  CONVERT (UYVY, UYVY, stridify_422i_422i, unstridify_422i_422i),
--  CONVERT (I420, NV12, stridify_i420_nv12, NULL),
--  CONVERT (I420, YUY2, stridify_i420_yuy2, NULL),
--  CONVERT (RGB16, RGB16, stridify_rgb565_rgb565, unstridify_rgb565_rgb565),
-+  CONVERT (NV12, NV12, convert_420sp_420sp),
-+  CONVERT (I420, I420, convert_420p_420p),
-+  CONVERT (YV12, YV12, convert_420p_420p),
-+  CONVERT (YUY2, YUY2, convert_422i_422i),
-+  CONVERT (UYVY, UYVY, convert_422i_422i),
-+  CONVERT (I420, NV12, convert_i420_nv12),
-+  CONVERT (I420, YUY2, convert_i420_yuy2),
-+  CONVERT (RGB16, RGB16, convert_rgb16_rgb16),
-   /* add new entries before here */
-   {{GST_VIDEO_FORMAT_UNKNOWN}}
- };
-diff --git a/gst/stride/gststridetransform.c b/gst/stride/gststridetransform.c
-index 4469e7f..7874ed4 100644
---- a/gst/stride/gststridetransform.c
-+++ b/gst/stride/gststridetransform.c
-@@ -57,27 +57,6 @@
- /* last entry has GST_VIDEO_FORMAT_UNKNOWN for in/out formats */
- extern const Conversion stride_conversions[];
- 
--/* TODO: add rgb formats too! */
--#define YUV_SUPPORTED_CAPS                                                        \
--  GST_VIDEO_CAPS_YUV_STRIDED ("{I420, YV12, YUY2, UYVY, NV12 }", "[ 0, max ]")
--
--#define RGB_SUPPORTED_CAPS                                                        \
--  GST_VIDEO_CAPS_RGB_16_STRIDED ("[ 0, max ]")
--
--
--static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src",
--    GST_PAD_SRC,
--    GST_PAD_ALWAYS,
--    GST_STATIC_CAPS (YUV_SUPPORTED_CAPS ";" RGB_SUPPORTED_CAPS)
--    );
--
--static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
--    GST_PAD_SINK,
--    GST_PAD_ALWAYS,
--    GST_STATIC_CAPS (YUV_SUPPORTED_CAPS ";" RGB_SUPPORTED_CAPS)
--    );
--
--
- GST_DEBUG_CATEGORY (stridetransform_debug);
- #define GST_CAT_DEFAULT stridetransform_debug
- 
-@@ -85,6 +64,8 @@ GST_DEBUG_CATEGORY (stridetransform_debug);
- static void gst_stride_transform_dispose (GObject * obj);
- 
- /* GstBaseTransform functions */
-+static gboolean gst_stride_transform_event (GstBaseTransform * trans,
-+    GstEvent * event);
- static gboolean gst_stride_transform_get_unit_size (GstBaseTransform * base,
-     GstCaps * caps, guint * size);
- static gboolean gst_stride_transform_transform_size (GstBaseTransform * base,
-@@ -96,6 +77,7 @@ static gboolean gst_stride_transform_set_caps (GstBaseTransform * base,
-     GstCaps * incaps, GstCaps * outcaps);
- static GstFlowReturn gst_stride_transform_transform (GstBaseTransform * base,
-     GstBuffer * inbuf, GstBuffer * outbuf);
-+static GstCaps * get_all_templ_caps (GstPadDirection direction);
- 
- GST_BOILERPLATE (GstStrideTransform, gst_stride_transform, GstVideoFilter,
-     GST_TYPE_VIDEO_FILTER);
-@@ -115,9 +97,11 @@ gst_stride_transform_base_init (gpointer g_class)
-       "Rob Clark <rob@ti.com>,");
- 
-   gst_element_class_add_pad_template (gstelement_class,
--      gst_static_pad_template_get (&sink_template));
-+      gst_pad_template_new ("sink", GST_PAD_SINK, GST_PAD_ALWAYS,
-+          get_all_templ_caps (GST_PAD_SINK)));
-   gst_element_class_add_pad_template (gstelement_class,
--      gst_static_pad_template_get (&src_template));
-+      gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS,
-+          get_all_templ_caps (GST_PAD_SRC)));
- }
- 
- static void
-@@ -128,6 +112,8 @@ gst_stride_transform_class_init (GstStrideTransformClass * klass)
- 
-   gobject_class->dispose = gst_stride_transform_dispose;
- 
-+  basetransform_class->event =
-+      GST_DEBUG_FUNCPTR (gst_stride_transform_event);
-   basetransform_class->get_unit_size =
-       GST_DEBUG_FUNCPTR (gst_stride_transform_get_unit_size);
-   basetransform_class->transform_size =
-@@ -160,6 +146,35 @@ gst_stride_transform_dispose (GObject * object)
-   G_OBJECT_CLASS (parent_class)->dispose (object);
- }
- 
-+static gboolean
-+gst_stride_transform_event (GstBaseTransform * trans, GstEvent * event)
-+{
-+  GstStrideTransform *self = GST_STRIDE_TRANSFORM (trans);
-+
-+  GST_DEBUG_OBJECT (self, "event %" GST_PTR_FORMAT, event);
-+
-+  switch (GST_EVENT_TYPE (event)) {
-+    /* if we get a crop, we don't change output size (yet, although it
-+     * would be nice to be able to figure out if the sink supported
-+     * cropping and if it does not perform the crop ourselves.. which
-+     * would involve adjusting output caps appropriately).  For now
-+     * we just treat it as an optimization and avoid copying the data
-+     * that will be later cropped out by the sink.
-+     */
-+    case GST_EVENT_CROP:
-+      gst_event_parse_crop (event, &self->crop_top, &self->crop_left,
-+          &self->crop_width, &self->crop_height);
-+      self->needs_refresh = TRUE;
-+      GST_DEBUG_OBJECT (self, "cropping at %d,%d %dx%d", self->crop_top,
-+          self->crop_left, self->crop_width, self->crop_height);
-+    default:
-+      break;
-+  }
-+
-+  /* forward all events */
-+  return TRUE;
-+}
-+
- /**
-  * figure out the required buffer size based on @caps
-  */
-@@ -212,95 +227,205 @@ gst_stride_transform_transform_size (GstBaseTransform * base,
-   return TRUE;
- }
- 
-+static inline GstCaps *
-+get_templ_caps (GstVideoFormat fmt, gboolean strided)
-+{
-+  return gst_video_format_new_caps_simple (fmt,
-+      strided ? -1 : 0,
-+      "width", GST_TYPE_INT_RANGE, 1, G_MAXINT,
-+      "height", GST_TYPE_INT_RANGE, 1, G_MAXINT,
-+      "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT, 1,
-+      NULL);
-+}
-+
- /**
-- * helper to check possible @fourcc conversions to the list @formats
-+ * Utility to get all possible template caps for given direction
-  */
--static void
--add_all_fourcc_conversions (GValue * formats, guint32 fourcc,
--    GstPadDirection direction)
-+static GstCaps *
-+get_all_templ_caps (GstPadDirection direction)
- {
-+  int i;
-   gint to_format = (direction == GST_PAD_SINK) ? 1 : 0;
--  gint from_format = (direction == GST_PAD_SRC) ? 1 : 0;
--  GValue fourccval = { 0 };
--  gint i;
--  GstVideoFormat format = gst_video_format_from_fourcc (fourcc);
--
--  g_value_init (&fourccval, GST_TYPE_FOURCC);
-+  GstCaps *templ = gst_caps_new_empty ();
- 
--  for (i = 0; stride_conversions[i].format[0] != GST_VIDEO_FORMAT_UNKNOWN; i++) {
--    if (stride_conversions[i].format[from_format] == format) {
--      guint result_fourcc =
--          gst_video_format_to_fourcc (stride_conversions[i].format[to_format]);
--      gst_value_set_fourcc (&fourccval, result_fourcc);
--      gst_value_list_append_value (formats, &fourccval);
--    }
-+  for (i = 0; stride_conversions[i].format[0]; i++) {
-+    const Conversion *c = &stride_conversions[i];
-+    gst_caps_append (templ, get_templ_caps (c->format[to_format], TRUE));
-+    gst_caps_append (templ, get_templ_caps (c->format[to_format], FALSE));
-   }
-+
-+  gst_caps_do_simplify (templ);
-+
-+  GST_DEBUG ("template %s caps: %"GST_PTR_FORMAT,
-+      (direction == GST_PAD_SINK) ? "sink" : "src", templ);
-+
-+  return templ;
- }
- 
--/**
-- * helper to add all fields, other than rowstride to @caps, copied from @s.
-- */
--static void
--add_all_fields (GstCaps * caps, const gchar * name, GstStructure * s,
--    gboolean rowstride, GstPadDirection direction)
-+static inline gboolean
-+is_filtered_field (const gchar *name)
- {
--  gint idx;
--  GstStructure *new_s = gst_structure_new (name, NULL);
-+  static const gchar * filtered_fields[] = {
-+      "rowstride", "format", "bpp", "depth", "endianness",
-+      "red_mask", "green_mask", "blue_mask"
-+  };
-+  gint i;
-+  for (i = 0; i < G_N_ELEMENTS (filtered_fields); i++)
-+    if (!strcmp (filtered_fields[i], name))
-+      return TRUE;
-+  return FALSE;
-+}
- 
--  if (rowstride) {
--    gst_structure_set (new_s, "rowstride", GST_TYPE_INT_RANGE, 1, G_MAXINT,
--        NULL);
--  }
-+static inline GstCaps *
-+get_caps (GstVideoFormat fmt, gboolean strided, GstStructure *s)
-+{
-+  gint idx;
-+  GstCaps *ret =
-+      gst_video_format_new_caps_simple (fmt, strided ? -1 : 0, NULL);
- 
-   idx = gst_structure_n_fields (s) - 1;
-   while (idx >= 0) {
-     const gchar *name = gst_structure_nth_field_name (s, idx);
--    const GValue *val = gst_structure_get_value (s, name);
- 
-     idx--;
- 
--    /* for format field, check the stride_conversions table to see what
--     * we can support:
-+    /* filter out certain format specific fields.. copy everything else
-+     * from the original struct
-      */
--    if (!strcmp ("format", name)) {
--      GValue formats = { 0 };
--
--      g_value_init (&formats, GST_TYPE_LIST);
-+    if (!is_filtered_field (name)) {
-+      const GValue *val = gst_structure_get_value (s, name);
-+      gst_caps_set_value (ret, name, val);
-+    }
-+  }
- 
--      if (GST_VALUE_HOLDS_FOURCC (val)) {
--        add_all_fourcc_conversions (&formats,
--            gst_value_get_fourcc (val), direction);
--      } else if (GST_VALUE_HOLDS_LIST (val)) {
--        gint i;
--        for (i = 0; i < gst_value_list_get_size (val); i++) {
--          const GValue *list_val = gst_value_list_get_value (val, i);
--          if (GST_VALUE_HOLDS_FOURCC (list_val)) {
--            add_all_fourcc_conversions (&formats,
--                gst_value_get_fourcc (list_val), direction);
--          } else {
--            GST_WARNING ("malformed caps!!");
--            break;
--          }
--        }
--      } else {
--        GST_WARNING ("malformed caps!!");
--      }
-+  return ret;
-+}
- 
--      gst_structure_set_value (new_s, "format", &formats);
-+/**
-+ * Utility to get all possible caps that can be converted to/from (depending
-+ * on 'direction') the specified 'fmt'.  The rest of the fields are populated
-+ * from 's'
-+ */
-+static GstCaps *
-+get_all_caps (GstPadDirection direction, GstVideoFormat fmt, GstStructure *s)
-+{
-+  GstCaps *ret = gst_caps_new_empty ();
-+  gint to_format = (direction == GST_PAD_SINK) ? 1 : 0;
-+  gint from_format = (direction == GST_PAD_SRC) ? 1 : 0;
-+  gint i;
- 
--      continue;
-+  for (i = 0; stride_conversions[i].format[0]; i++) {
-+    const Conversion *c = &stride_conversions[i];
-+    if (c->format[from_format] == fmt) {
-+      gst_caps_append (ret, get_caps (c->format[to_format], TRUE, s));
-+      gst_caps_append (ret, get_caps (c->format[to_format], FALSE, s));
-     }
-+  }
-+
-+  return ret;
-+}
- 
--    /* copy over all other non-rowstride fields: */
--    if (strcmp ("rowstride", name)) {
--      gst_structure_set_value (new_s, name, val);
-+/** convert GValue holding fourcc to GstVideoFormat (for YUV) */
-+static inline GstVideoFormat
-+fmt_from_val (const GValue *val)
-+{
-+  return gst_video_format_from_fourcc (gst_value_get_fourcc (val));
-+}
-+
-+/** convert structure to GstVideoFormat (for RGB) */
-+static inline GstVideoFormat
-+fmt_from_struct (const GstStructure *s)
-+{
-+  /* hmm.. this is not supporting any case where ranges/lists are used
-+   * for any of the rgb related fields in the caps.  But I'm not quite
-+   * sure a sane way to handle that..  rgb caps suck
-+   */
-+  gint depth, bpp, endianness;
-+  gint red_mask, green_mask, blue_mask, alpha_mask;
-+  gboolean have_alpha, ok = TRUE;
-+
-+  ok &= gst_structure_get_int (s, "depth", &depth);
-+  ok &= gst_structure_get_int (s, "bpp", &bpp);
-+  ok &= gst_structure_get_int (s, "endianness", &endianness);
-+  ok &= gst_structure_get_int (s, "red_mask", &red_mask);
-+  ok &= gst_structure_get_int (s, "green_mask", &green_mask);
-+  ok &= gst_structure_get_int (s, "blue_mask", &blue_mask);
-+  have_alpha = gst_structure_get_int (s, "alpha_mask", &alpha_mask);
-+
-+  if (!ok)
-+    return GST_VIDEO_FORMAT_UNKNOWN;
-+
-+  if (depth == 24 && bpp == 32 && endianness == G_BIG_ENDIAN) {
-+    if (red_mask == 0xff000000 && green_mask == 0x00ff0000 &&
-+        blue_mask == 0x0000ff00) {
-+      return GST_VIDEO_FORMAT_RGBx;
-+    }
-+    if (red_mask == 0x0000ff00 && green_mask == 0x00ff0000 &&
-+        blue_mask == 0xff000000) {
-+      return GST_VIDEO_FORMAT_BGRx;
-+    }
-+    if (red_mask == 0x00ff0000 && green_mask == 0x0000ff00 &&
-+        blue_mask == 0x000000ff) {
-+      return GST_VIDEO_FORMAT_xRGB;
-+    }
-+    if (red_mask == 0x000000ff && green_mask == 0x0000ff00 &&
-+        blue_mask == 0x00ff0000) {
-+      return GST_VIDEO_FORMAT_xBGR;
-+    }
-+  } else if (depth == 32 && bpp == 32 && endianness == G_BIG_ENDIAN &&
-+      have_alpha) {
-+    if (red_mask == 0xff000000 && green_mask == 0x00ff0000 &&
-+        blue_mask == 0x0000ff00 && alpha_mask == 0x000000ff) {
-+      return GST_VIDEO_FORMAT_RGBA;
-+    }
-+    if (red_mask == 0x0000ff00 && green_mask == 0x00ff0000 &&
-+        blue_mask == 0xff000000 && alpha_mask == 0x000000ff) {
-+      return GST_VIDEO_FORMAT_BGRA;
-+    }
-+    if (red_mask == 0x00ff0000 && green_mask == 0x0000ff00 &&
-+        blue_mask == 0x000000ff && alpha_mask == 0xff000000) {
-+      return GST_VIDEO_FORMAT_ARGB;
-+    }
-+    if (red_mask == 0x000000ff && green_mask == 0x0000ff00 &&
-+        blue_mask == 0x00ff0000 && alpha_mask == 0xff000000) {
-+      return GST_VIDEO_FORMAT_ABGR;
-+    }
-+  } else if (depth == 24 && bpp == 24 && endianness == G_BIG_ENDIAN) {
-+    if (red_mask == 0xff0000 && green_mask == 0x00ff00 &&
-+        blue_mask == 0x0000ff) {
-+      return GST_VIDEO_FORMAT_RGB;
-+    }
-+    if (red_mask == 0x0000ff && green_mask == 0x00ff00 &&
-+        blue_mask == 0xff0000) {
-+      return GST_VIDEO_FORMAT_BGR;
-+    }
-+  } else if ((depth == 15 || depth == 16) && bpp == 16 &&
-+      endianness == G_BYTE_ORDER) {
-+    if (red_mask == GST_VIDEO_COMP1_MASK_16_INT
-+        && green_mask == GST_VIDEO_COMP2_MASK_16_INT
-+        && blue_mask == GST_VIDEO_COMP3_MASK_16_INT) {
-+      return GST_VIDEO_FORMAT_RGB16;
-+    }
-+    if (red_mask == GST_VIDEO_COMP3_MASK_16_INT
-+        && green_mask == GST_VIDEO_COMP2_MASK_16_INT
-+        && blue_mask == GST_VIDEO_COMP1_MASK_16_INT) {
-+      return GST_VIDEO_FORMAT_BGR16;
-+    }
-+    if (red_mask == GST_VIDEO_COMP1_MASK_15_INT
-+        && green_mask == GST_VIDEO_COMP2_MASK_15_INT
-+        && blue_mask == GST_VIDEO_COMP3_MASK_15_INT) {
-+      return GST_VIDEO_FORMAT_RGB15;
-+    }
-+    if (red_mask == GST_VIDEO_COMP3_MASK_15_INT
-+        && green_mask == GST_VIDEO_COMP2_MASK_15_INT
-+        && blue_mask == GST_VIDEO_COMP1_MASK_15_INT) {
-+      return GST_VIDEO_FORMAT_BGR15;
-     }
-   }
- 
--  gst_caps_merge_structure (caps, new_s);
-+  return GST_VIDEO_FORMAT_UNKNOWN;
- }
- 
--
- /**
-  * we can transform @caps to strided or non-strided caps with otherwise
-  * identical parameters
-@@ -310,31 +435,50 @@ gst_stride_transform_transform_caps (GstBaseTransform * base,
-     GstPadDirection direction, GstCaps * caps)
- {
-   GstStrideTransform *self = GST_STRIDE_TRANSFORM (base);
--  GstCaps *ret;
--  GstStructure *s;
--
--  g_return_val_if_fail (GST_CAPS_IS_SIMPLE (caps), NULL);
--
--  GST_DEBUG_OBJECT (self, "direction=%d, caps=%p", direction, caps);
--  LOG_CAPS (self, caps);
--
--  ret = gst_caps_new_empty ();
--  s = gst_caps_get_structure (caps, 0);
--
--  if (gst_structure_has_name (s, "video/x-raw-yuv") ||
--      gst_structure_has_name (s, "video/x-raw-yuv-strided")) {
--
--    add_all_fields (ret, "video/x-raw-yuv", s, FALSE, direction);
--    add_all_fields (ret, "video/x-raw-yuv-strided", s, TRUE, direction);
--
--  } else if (gst_structure_has_name (s, "video/x-raw-rgb") ||
--      gst_structure_has_name (s, "video/x-raw-rgb-strided")) {
--
--    add_all_fields (ret, "video/x-raw-rgb", s, FALSE, direction);
--    add_all_fields (ret, "video/x-raw-rgb-strided", s, TRUE, direction);
-+  GstCaps *ret = gst_caps_new_empty ();
-+  int i;
-+
-+  for (i = 0; i < gst_caps_get_size (caps); i++) {
-+    GstStructure *s = gst_caps_get_structure (caps, i);
-+    const char *name = gst_structure_get_name (s);
-+
-+    /* this is a bit ugly.. ideally it would be easier to parse caps
-+     * a bit more generically without having to care so much about
-+     * difference between RGB and YUV.. but YUV can be specified as
-+     * a list of format params, whereas RGB is a combination of many
-+     * fields..
-+     */
-+    if (g_str_has_prefix (name, "video/x-raw-yuv")) {
-+      const GValue *val = gst_structure_get_value (s, "format");
- 
-+      if (GST_VALUE_HOLDS_FOURCC (val)) {
-+        gst_caps_append (ret,
-+            get_all_caps (direction, fmt_from_val (val), s));
-+      } else if (GST_VALUE_HOLDS_LIST (val)) {
-+        gint j;
-+        for (j = 0; j < gst_value_list_get_size (val); j++) {
-+          const GValue *list_val = gst_value_list_get_value (val, j);
-+          if (GST_VALUE_HOLDS_FOURCC (list_val)) {
-+            gst_caps_append (ret,
-+                get_all_caps (direction, fmt_from_val (list_val), s));
-+          } else {
-+            GST_WARNING_OBJECT (self,
-+                "malformed format in caps: %"GST_PTR_FORMAT, s);
-+            break;
-+          }
-+        }
-+      } else {
-+        GST_WARNING_OBJECT (self, "malformed yuv caps: %"GST_PTR_FORMAT, s);
-+      }
-+    } else if (g_str_has_prefix (name, "video/x-raw-rgb")) {
-+      gst_caps_append (ret, get_all_caps (direction, fmt_from_struct (s), s));
-+    } else {
-+      GST_WARNING_OBJECT (self, "ignoring: %"GST_PTR_FORMAT, s);
-+    }
-   }
- 
-+  gst_caps_do_simplify (ret);
-+
-   LOG_CAPS (self, ret);
- 
-   return ret;
-@@ -369,6 +513,7 @@ gst_stride_transform_set_caps (GstBaseTransform * base,
-         (stride_conversions[i].format[1] == out_format)) {
-       GST_DEBUG_OBJECT (self, "found stride_conversion: %d", i);
-       self->conversion = &stride_conversions[i];
-+      self->needs_refresh = TRUE;
-       break;
-     }
-   }
-@@ -378,10 +523,6 @@ gst_stride_transform_set_caps (GstBaseTransform * base,
-       i, self->conversion, self->in_rowstride, self->out_rowstride);
- 
-   g_return_val_if_fail (self->conversion, FALSE);
--  g_return_val_if_fail (self->conversion->unstridify
--      || !self->in_rowstride, FALSE);
--  g_return_val_if_fail (self->conversion->stridify
--      || !self->out_rowstride, FALSE);
-   g_return_val_if_fail (self->width == width, FALSE);
-   g_return_val_if_fail (self->height == height, FALSE);
- 
-@@ -399,20 +540,14 @@ gst_stride_transform_transform (GstBaseTransform * base,
-   GST_DEBUG_OBJECT (self, "inbuf=%p (size=%d), outbuf=%p (size=%d)",
-       inbuf, GST_BUFFER_SIZE (inbuf), outbuf, GST_BUFFER_SIZE (outbuf));
- 
--  if (self->in_rowstride && self->out_rowstride) {
--    GST_DEBUG_OBJECT (self, "not implemented"); // TODO
--    return GST_FLOW_ERROR;
--  } else if (self->in_rowstride) {
--    return self->conversion->unstridify (self,
--        GST_BUFFER_DATA (outbuf), GST_BUFFER_DATA (inbuf));
--  } else if (self->out_rowstride) {
--    return self->conversion->stridify (self,
-+  if (self->conversion) {
-+    return self->conversion->convert (self,
-         GST_BUFFER_DATA (outbuf), GST_BUFFER_DATA (inbuf));
-   }
- 
-   GST_DEBUG_OBJECT (self,
--      "this shouldn't happen!  in_rowstride=%d, out_rowstride=%d",
--      self->in_rowstride, self->out_rowstride);
-+      "this shouldn't happen!  in_rowstride=%d, out_rowstride=%d, conversion=%p",
-+      self->in_rowstride, self->out_rowstride, self->conversion);
- 
-   return GST_FLOW_ERROR;
- }
-diff --git a/gst/stride/gststridetransform.h b/gst/stride/gststridetransform.h
-index bce2526..34733cd 100644
---- a/gst/stride/gststridetransform.h
-+++ b/gst/stride/gststridetransform.h
-@@ -52,11 +52,18 @@ typedef struct {
- 
-   GstVideoFormat format[2];   /* in_format, out_format */
- 
--  GstFlowReturn (*stridify) (GstStrideTransform *self, guchar *strided, guchar *unstrided);
--  GstFlowReturn (*unstridify) (GstStrideTransform *self, guchar *unstrided, guchar *strided);
-+  GstFlowReturn (*convert) (GstStrideTransform *self, guchar *out, guchar *in);
- 
- } Conversion;
- 
-+typedef struct {
-+  gint in_bpl;               /* bytes per line in input */
-+  gint out_bpl;              /* bytes per line in output */
-+  gint in_off;
-+  gint out_off;
-+  gint width;
-+  gint height;
-+} Cache;
- 
- /**
-  * GstStrideTransform:
-@@ -67,9 +74,23 @@ struct _GstStrideTransform {
-   GstVideoFilter videofilter;
- 
-   /*< private >*/
-+
-+  /* values set from caps: */
-   gint width, height;
-   gint in_rowstride;
-   gint out_rowstride;
-+
-+  /* values set from set from crop event: */
-+  gint crop_width, crop_height, crop_top, crop_left;
-+
-+  /* cached values used for each conversion, indexed by plane in case of
-+   * multi-planar formats.  These won't have zero values meaning not-used
-+   * (as long as !needs_refresh), but will be set to whatever byte width/
-+   * offset is appropriate for the format.
-+   */
-+  Cache cache[3];
-+  gboolean needs_refresh;
-+
-   const Conversion *conversion;
- 
-   /* for caching the tranform_size() results.. */
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0022-stride-support-for-32bit-RGB-formats.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0022-stride-support-for-32bit-RGB-formats.patch
deleted file mode 100644
index ac56a08..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0022-stride-support-for-32bit-RGB-formats.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 30b32e864e9a77b66a36d27d3b071f59633d08b7 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Mon, 13 Sep 2010 19:16:02 -0500
-Subject: [PATCH 22/24] stride: support for 32bit RGB formats
-
----
- gst/stride/convert.c |   24 ++++++++++++++++++++++++
- 1 files changed, 24 insertions(+), 0 deletions(-)
-
-diff --git a/gst/stride/convert.c b/gst/stride/convert.c
-index 5d392ac..7f976a5 100644
---- a/gst/stride/convert.c
-+++ b/gst/stride/convert.c
-@@ -372,6 +372,22 @@ convert_rgb16_rgb16 (GstStrideTransform * self,
-   return convert_422i_422i (self, out, in);
- }
- 
-+/** convert 32bbp rgb formats */
-+static GstFlowReturn
-+convert_rgb32_rgb32 (GstStrideTransform * self,
-+    guchar * out, guchar * in)
-+{
-+  if (G_UNLIKELY (self->needs_refresh)) {
-+    gint sx[] = {1};
-+    gint sy[] = {1};
-+    if (refresh_cache (self, 1, 4, sx, sx, sy, sy))
-+      return GST_FLOW_ERROR;
-+    self->needs_refresh = FALSE;
-+  }
-+
-+  return convert_n_n (self, out, in, 1);
-+}
-+
- #define CONVERT(tofmt, fromfmt, convert)                        \
- 		{                                                           \
-       { GST_VIDEO_FORMAT_##tofmt, GST_VIDEO_FORMAT_##fromfmt }, \
-@@ -388,6 +404,14 @@ const Conversion stride_conversions[] = {
-   CONVERT (I420, NV12, convert_i420_nv12),
-   CONVERT (I420, YUY2, convert_i420_yuy2),
-   CONVERT (RGB16, RGB16, convert_rgb16_rgb16),
-+  CONVERT (RGBx, RGBx, convert_rgb32_rgb32),
-+  CONVERT (BGRx, BGRx, convert_rgb32_rgb32),
-+  CONVERT (xRGB, xRGB, convert_rgb32_rgb32),
-+  CONVERT (xBGR, xBGR, convert_rgb32_rgb32),
-+  CONVERT (RGBA, RGBA, convert_rgb32_rgb32),
-+  CONVERT (BGRA, BGRA, convert_rgb32_rgb32),
-+  CONVERT (ARGB, ARGB, convert_rgb32_rgb32),
-+  CONVERT (ABGR, ABGR, convert_rgb32_rgb32),
-   /* add new entries before here */
-   {{GST_VIDEO_FORMAT_UNKNOWN}}
- };
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0023-ffmpegcolorspace-support-for-rowstride.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0023-ffmpegcolorspace-support-for-rowstride.patch
deleted file mode 100644
index d81de9c..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0023-ffmpegcolorspace-support-for-rowstride.patch
+++ /dev/null
@@ -1,410 +0,0 @@
-From 379447918aafc7f38a79219511764f6c04a2cbf9 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Fri, 24 Dec 2010 20:55:43 -0600
-Subject: [PATCH 23/24] ffmpegcolorspace: support for rowstride
-
----
- gst/ffmpegcolorspace/avcodec.h             |    2 +-
- gst/ffmpegcolorspace/gstffmpegcodecmap.c   |   85 +++++++++++++++++++--------
- gst/ffmpegcolorspace/gstffmpegcodecmap.h   |    1 +
- gst/ffmpegcolorspace/gstffmpegcolorspace.c |   30 ++++++++--
- gst/ffmpegcolorspace/gstffmpegcolorspace.h |    1 +
- gst/ffmpegcolorspace/imgconvert.c          |   12 ++--
- 6 files changed, 93 insertions(+), 38 deletions(-)
-
-diff --git a/gst/ffmpegcolorspace/avcodec.h b/gst/ffmpegcolorspace/avcodec.h
-index 57f551c..a4928ee 100644
---- a/gst/ffmpegcolorspace/avcodec.h
-+++ b/gst/ffmpegcolorspace/avcodec.h
-@@ -217,7 +217,7 @@ typedef struct AVPaletteControl {
- 
- } AVPaletteControl;
- 
--int avpicture_get_size(int pix_fmt, int width, int height);
-+int avpicture_get_size(int pix_fmt, int width, int height, int stride);
- 
- void avcodec_get_chroma_sub_sample(int pix_fmt, int *h_shift, int *v_shift);
- const char *avcodec_get_pix_fmt_name(int pix_fmt);
-diff --git a/gst/ffmpegcolorspace/gstffmpegcodecmap.c b/gst/ffmpegcolorspace/gstffmpegcodecmap.c
-index 318a90e..9c6a123 100644
---- a/gst/ffmpegcolorspace/gstffmpegcodecmap.c
-+++ b/gst/ffmpegcolorspace/gstffmpegcodecmap.c
-@@ -619,7 +619,8 @@ gst_ffmpeg_caps_to_pixfmt (const GstCaps * caps,
-   if (!raw)
-     return;
- 
--  if (gst_structure_has_name (structure, "video/x-raw-yuv")) {
-+  if (gst_structure_has_name (structure, "video/x-raw-yuv") ||
-+      gst_structure_has_name (structure, "video/x-raw-yuv-strided")) {
-     guint32 fourcc;
- 
-     if (gst_structure_get_fourcc (structure, "format", &fourcc)) {
-@@ -828,10 +829,10 @@ gst_ffmpegcsp_caps_with_codectype (enum CodecType type,
- int
- gst_ffmpegcsp_avpicture_fill (AVPicture * picture,
-     uint8_t * ptr, enum PixelFormat pix_fmt, int width, int height,
--    int interlaced)
-+    int stride, int interlaced)
- {
-   int size, w2, h2, size2;
--  int stride, stride2;
-+  int stride2;
-   PixFmtInfo *pinfo;
- 
-   pinfo = get_pix_fmt_info (pix_fmt);
-@@ -847,11 +848,15 @@ gst_ffmpegcsp_avpicture_fill (AVPicture * picture,
-     case PIX_FMT_YUVJ420P:
-     case PIX_FMT_YUVJ422P:
-     case PIX_FMT_YUVJ444P:
--      stride = GST_ROUND_UP_4 (width);
-       h2 = ROUND_UP_X (height, pinfo->y_chroma_shift);
--      size = stride * h2;
-       w2 = DIV_ROUND_UP_X (width, pinfo->x_chroma_shift);
--      stride2 = GST_ROUND_UP_4 (w2);
-+      if (stride) {
-+        stride2 = stride;
-+      } else {
-+        stride = GST_ROUND_UP_4 (width);
-+        stride2 = GST_ROUND_UP_4 (w2);
-+      }
-+      size = stride * h2;
-       h2 = DIV_ROUND_UP_X (height, pinfo->y_chroma_shift);
-       size2 = stride2 * h2;
-       picture->data[0] = ptr;
-@@ -864,11 +869,15 @@ gst_ffmpegcsp_avpicture_fill (AVPicture * picture,
-       /* PIX_FMT_YVU420P = YV12: same as PIX_FMT_YUV420P, but
-        *  with U and V plane swapped. Strides as in videotestsrc */
-     case PIX_FMT_YUVA420P:
--      stride = GST_ROUND_UP_4 (width);
-       h2 = ROUND_UP_X (height, pinfo->y_chroma_shift);
--      size = stride * h2;
-       w2 = DIV_ROUND_UP_X (width, pinfo->x_chroma_shift);
--      stride2 = GST_ROUND_UP_4 (w2);
-+      if (stride) {
-+        stride2 = stride;
-+      } else {
-+        stride = GST_ROUND_UP_4 (width);
-+        stride2 = GST_ROUND_UP_4 (w2);
-+      }
-+      size = stride * h2;
-       h2 = DIV_ROUND_UP_X (height, pinfo->y_chroma_shift);
-       size2 = stride2 * h2;
-       picture->data[0] = ptr;
-@@ -882,11 +891,15 @@ gst_ffmpegcsp_avpicture_fill (AVPicture * picture,
-       return 2 * size + 2 * size2;
-     case PIX_FMT_YVU410P:
-     case PIX_FMT_YVU420P:
--      stride = GST_ROUND_UP_4 (width);
-       h2 = ROUND_UP_X (height, pinfo->y_chroma_shift);
--      size = stride * h2;
-       w2 = DIV_ROUND_UP_X (width, pinfo->x_chroma_shift);
--      stride2 = GST_ROUND_UP_4 (w2);
-+      if (stride) {
-+        stride2 = stride;
-+      } else {
-+        stride = GST_ROUND_UP_4 (width);
-+        stride2 = GST_ROUND_UP_4 (w2);
-+      }
-+      size = stride * h2;
-       h2 = DIV_ROUND_UP_X (height, pinfo->y_chroma_shift);
-       size2 = stride2 * h2;
-       picture->data[0] = ptr;
-@@ -898,11 +911,15 @@ gst_ffmpegcsp_avpicture_fill (AVPicture * picture,
-       return size + 2 * size2;
-     case PIX_FMT_NV12:
-     case PIX_FMT_NV21:
--      stride = GST_ROUND_UP_4 (width);
-       h2 = ROUND_UP_X (height, pinfo->y_chroma_shift);
--      size = stride * h2;
-       w2 = 2 * DIV_ROUND_UP_X (width, pinfo->x_chroma_shift);
--      stride2 = GST_ROUND_UP_4 (w2);
-+      if (stride) {
-+        stride2 = stride;
-+      } else {
-+        stride = GST_ROUND_UP_4 (width);
-+        stride2 = GST_ROUND_UP_4 (w2);
-+      }
-+      size = stride * h2;
-       h2 = DIV_ROUND_UP_X (height, pinfo->y_chroma_shift);
-       size2 = stride2 * h2;
-       picture->data[0] = ptr;
-@@ -914,7 +931,9 @@ gst_ffmpegcsp_avpicture_fill (AVPicture * picture,
-       return size + size2;
-     case PIX_FMT_RGB24:
-     case PIX_FMT_BGR24:
--      stride = GST_ROUND_UP_4 (width * 3);
-+      if (!stride) {
-+        stride = GST_ROUND_UP_4 (width * 3);
-+      }
-       size = stride * height;
-       picture->data[0] = ptr;
-       picture->data[1] = NULL;
-@@ -930,7 +949,9 @@ gst_ffmpegcsp_avpicture_fill (AVPicture * picture,
-     case PIX_FMT_ABGR32:
-     case PIX_FMT_xRGB32:
-     case PIX_FMT_BGRx32:
--      stride = width * 4;
-+      if (!stride) {
-+        stride = width * 4;
-+      }
-       size = stride * height;
-       picture->data[0] = ptr;
-       picture->data[1] = NULL;
-@@ -942,7 +963,9 @@ gst_ffmpegcsp_avpicture_fill (AVPicture * picture,
-     case PIX_FMT_YUV422:
-     case PIX_FMT_UYVY422:
-     case PIX_FMT_YVYU422:
--      stride = GST_ROUND_UP_4 (width * 2);
-+      if (!stride) {
-+        stride = GST_ROUND_UP_4 (width * 2);
-+      }
-       size = stride * height;
-       picture->data[0] = ptr;
-       picture->data[1] = NULL;
-@@ -950,7 +973,9 @@ gst_ffmpegcsp_avpicture_fill (AVPicture * picture,
-       picture->linesize[0] = stride;
-       return size;
-     case PIX_FMT_V308:
--      stride = GST_ROUND_UP_4 (width * 3);
-+      if (!stride) {
-+        stride = GST_ROUND_UP_4 (width * 3);
-+      }
-       size = stride * height;
-       picture->data[0] = ptr;
-       picture->data[1] = NULL;
-@@ -958,8 +983,10 @@ gst_ffmpegcsp_avpicture_fill (AVPicture * picture,
-       picture->linesize[0] = stride;
-       return size;
-     case PIX_FMT_UYVY411:
--      stride =
--          GST_ROUND_UP_4 (GST_ROUND_UP_4 (width) + GST_ROUND_UP_4 (width) / 2);
-+      if (!stride) {
-+        stride = GST_ROUND_UP_4 (GST_ROUND_UP_4 (width) +
-+            GST_ROUND_UP_4 (width) / 2);
-+      }
-       size = stride * height;
-       picture->data[0] = ptr;
-       picture->data[1] = NULL;
-@@ -968,7 +995,9 @@ gst_ffmpegcsp_avpicture_fill (AVPicture * picture,
-       return size;
-     case PIX_FMT_Y800:
-     case PIX_FMT_GRAY8:
--      stride = GST_ROUND_UP_4 (width);
-+      if (!stride) {
-+        stride = GST_ROUND_UP_4 (width);
-+      }
-       size = stride * height;
-       picture->data[0] = ptr;
-       picture->data[1] = NULL;
-@@ -978,7 +1007,9 @@ gst_ffmpegcsp_avpicture_fill (AVPicture * picture,
-     case PIX_FMT_Y16:
-     case PIX_FMT_GRAY16_L:
-     case PIX_FMT_GRAY16_B:
--      stride = GST_ROUND_UP_4 (width * 2);
-+      if (!stride) {
-+        stride = GST_ROUND_UP_4 (width * 2);
-+      }
-       size = stride * height;
-       picture->data[0] = ptr;
-       picture->data[1] = NULL;
-@@ -987,7 +1018,9 @@ gst_ffmpegcsp_avpicture_fill (AVPicture * picture,
-       return size;
-     case PIX_FMT_MONOWHITE:
-     case PIX_FMT_MONOBLACK:
--      stride = GST_ROUND_UP_4 ((width + 7) >> 3);
-+      if (!stride) {
-+        stride = GST_ROUND_UP_4 ((width + 7) >> 3);
-+      }
-       size = stride * height;
-       picture->data[0] = ptr;
-       picture->data[1] = NULL;
-@@ -996,7 +1029,9 @@ gst_ffmpegcsp_avpicture_fill (AVPicture * picture,
-       return size;
-     case PIX_FMT_PAL8:
-       /* already forced to be with stride, so same result as other function */
--      stride = GST_ROUND_UP_4 (width);
-+      if (!stride) {
-+        stride = GST_ROUND_UP_4 (width);
-+      }
-       size = stride * height;
-       picture->data[0] = ptr;
-       picture->data[1] = ptr + size;    /* palette is stored here as 256 32 bit words */
-diff --git a/gst/ffmpegcolorspace/gstffmpegcodecmap.h b/gst/ffmpegcolorspace/gstffmpegcodecmap.h
-index 515f530..bcd212a 100644
---- a/gst/ffmpegcolorspace/gstffmpegcodecmap.h
-+++ b/gst/ffmpegcolorspace/gstffmpegcodecmap.h
-@@ -52,6 +52,7 @@ gst_ffmpegcsp_avpicture_fill (AVPicture * picture,
-                               enum PixelFormat pix_fmt,
-                               int         width,
-                               int         height,
-+                              int         stride,
- 			      int         interlaced);
- 
- #endif /* __GST_FFMPEG_CODECMAP_H__ */
-diff --git a/gst/ffmpegcolorspace/gstffmpegcolorspace.c b/gst/ffmpegcolorspace/gstffmpegcolorspace.c
-index 4ba0204..63430a0 100644
---- a/gst/ffmpegcolorspace/gstffmpegcolorspace.c
-+++ b/gst/ffmpegcolorspace/gstffmpegcolorspace.c
-@@ -48,6 +48,10 @@ GST_DEBUG_CATEGORY (ffmpegcolorspace_performance);
-   "video/x-raw-yuv, width = "GST_VIDEO_SIZE_RANGE" , "			\
-   "height="GST_VIDEO_SIZE_RANGE",framerate="GST_VIDEO_FPS_RANGE","	\
-   "format= (fourcc) { I420 , NV12 , NV21 , YV12 , YUY2 , Y42B , Y444 , YUV9 , YVU9 , Y41B , Y800 , Y8 , GREY , Y16 , UYVY , YVYU , IYU1 , v308 , AYUV, A420} ;" \
-+  "video/x-raw-yuv-strided, width = "GST_VIDEO_SIZE_RANGE" , "      \
-+  "height="GST_VIDEO_SIZE_RANGE",framerate="GST_VIDEO_FPS_RANGE","  \
-+  "rowstride="GST_VIDEO_SIZE_RANGE"," \
-+  "format= (fourcc) { I420 , NV12 , NV21 , YV12 , YUY2 , Y42B , Y444 , YUV9 , YVU9 , Y41B , Y800 , Y8 , GREY , Y16 , UYVY , YVYU , IYU1 , v308 , AYUV, A420} ;" \
-   GST_VIDEO_CAPS_RGB";"							\
-   GST_VIDEO_CAPS_BGR";"							\
-   GST_VIDEO_CAPS_RGBx";"						\
-@@ -205,8 +209,8 @@ gst_ffmpegcsp_set_caps (GstBaseTransform * btrans, GstCaps * incaps,
- {
-   GstFFMpegCsp *space;
-   GstStructure *structure;
--  gint in_height, in_width;
--  gint out_height, out_width;
-+  gint in_height, in_width, in_stride = 0;
-+  gint out_height, out_width, out_stride = 0;
-   const GValue *in_framerate = NULL;
-   const GValue *out_framerate = NULL;
-   const GValue *in_par = NULL;
-@@ -225,6 +229,10 @@ gst_ffmpegcsp_set_caps (GstBaseTransform * btrans, GstCaps * incaps,
-   if (!res)
-     goto no_width_height;
- 
-+  /* stride is optional: */
-+  if (gst_structure_has_name (structure, "video/x-raw-yuv-strided"))
-+    gst_structure_get_int (structure, "rowstride", &in_stride);
-+
-   /* and framerate */
-   in_framerate = gst_structure_get_value (structure, "framerate");
-   if (in_framerate == NULL || !GST_VALUE_HOLDS_FRACTION (in_framerate))
-@@ -241,6 +249,10 @@ gst_ffmpegcsp_set_caps (GstBaseTransform * btrans, GstCaps * incaps,
-   if (!res)
-     goto no_width_height;
- 
-+  /* stride is optional: */
-+  if (gst_structure_has_name (structure, "video/x-raw-yuv-strided"))
-+    gst_structure_get_int (structure, "rowstride", &out_stride);
-+
-   /* and framerate */
-   out_framerate = gst_structure_get_value (structure, "framerate");
-   if (out_framerate == NULL || !GST_VALUE_HOLDS_FRACTION (out_framerate))
-@@ -263,6 +275,8 @@ gst_ffmpegcsp_set_caps (GstBaseTransform * btrans, GstCaps * incaps,
- 
-   space->width = ctx->width = in_width;
-   space->height = ctx->height = in_height;
-+  space->in_stride = in_stride;
-+  space->out_stride = out_stride;
- 
-   space->interlaced = FALSE;
-   gst_structure_get_boolean (structure, "interlaced", &space->interlaced);
-@@ -401,7 +415,7 @@ gst_ffmpegcsp_get_unit_size (GstBaseTransform * btrans, GstCaps * caps,
-   GstStructure *structure = NULL;
-   AVCodecContext *ctx = NULL;
-   gboolean ret = TRUE;
--  gint width, height;
-+  gint width, height, stride = 0;
- 
-   g_assert (size);
- 
-@@ -409,6 +423,10 @@ gst_ffmpegcsp_get_unit_size (GstBaseTransform * btrans, GstCaps * caps,
-   gst_structure_get_int (structure, "width", &width);
-   gst_structure_get_int (structure, "height", &height);
- 
-+  /* stride is optional: */
-+  if (gst_structure_has_name (structure, "video/x-raw-yuv-strided"))
-+    gst_structure_get_int (structure, "rowstride", &stride);
-+
-   ctx = avcodec_alloc_context ();
- 
-   g_assert (ctx != NULL);
-@@ -422,7 +440,7 @@ gst_ffmpegcsp_get_unit_size (GstBaseTransform * btrans, GstCaps * caps,
-     goto beach;
-   }
- 
--  *size = avpicture_get_size (ctx->pix_fmt, width, height);
-+  *size = avpicture_get_size (ctx->pix_fmt, width, height, stride);
- 
-   /* ffmpeg frames have the palette after the frame data, whereas
-    * GStreamer currently puts it into the caps as 'palette_data' field,
-@@ -460,7 +478,7 @@ gst_ffmpegcsp_transform (GstBaseTransform * btrans, GstBuffer * inbuf,
-   /* fill from with source data */
-   gst_ffmpegcsp_avpicture_fill (&space->from_frame,
-       GST_BUFFER_DATA (inbuf), space->from_pixfmt, space->width, space->height,
--      space->interlaced);
-+      space->in_stride, space->interlaced);
- 
-   /* fill optional palette */
-   if (space->palette)
-@@ -469,7 +487,7 @@ gst_ffmpegcsp_transform (GstBaseTransform * btrans, GstBuffer * inbuf,
-   /* fill target frame */
-   gst_ffmpegcsp_avpicture_fill (&space->to_frame,
-       GST_BUFFER_DATA (outbuf), space->to_pixfmt, space->width, space->height,
--      space->interlaced);
-+      space->out_stride, space->interlaced);
- 
-   /* and convert */
-   result = img_convert (&space->to_frame, space->to_pixfmt,
-diff --git a/gst/ffmpegcolorspace/gstffmpegcolorspace.h b/gst/ffmpegcolorspace/gstffmpegcolorspace.h
-index 198ab8a..bd5e01c 100644
---- a/gst/ffmpegcolorspace/gstffmpegcolorspace.h
-+++ b/gst/ffmpegcolorspace/gstffmpegcolorspace.h
-@@ -46,6 +46,7 @@ struct _GstFFMpegCsp {
-   GstVideoFilter element;
- 
-   gint width, height;
-+  gint in_stride, out_stride;
-   gboolean interlaced;
-   gfloat fps;
-   enum PixelFormat from_pixfmt, to_pixfmt;
-diff --git a/gst/ffmpegcolorspace/imgconvert.c b/gst/ffmpegcolorspace/imgconvert.c
-index cb145bb..414c4a0 100644
---- a/gst/ffmpegcolorspace/imgconvert.c
-+++ b/gst/ffmpegcolorspace/imgconvert.c
-@@ -594,12 +594,12 @@ avpicture_layout (const AVPicture * src, int pix_fmt, int width, int height,
- #endif
- 
- int
--avpicture_get_size (int pix_fmt, int width, int height)
-+avpicture_get_size (int pix_fmt, int width, int height, int stride)
- {
-   AVPicture dummy_pict;
- 
-   return gst_ffmpegcsp_avpicture_fill (&dummy_pict, NULL, pix_fmt, width,
--      height, FALSE);
-+      height, stride, FALSE);
- }
- 
- /**
-@@ -3518,16 +3518,16 @@ get_convert_table_entry (int src_pix_fmt, int dst_pix_fmt)
- 
- static int
- avpicture_alloc (AVPicture * picture, int pix_fmt, int width, int height,
--    int interlaced)
-+    int stride, int interlaced)
- {
-   unsigned int size;
-   void *ptr;
- 
--  size = avpicture_get_size (pix_fmt, width, height);
-+  size = avpicture_get_size (pix_fmt, width, height, stride);
-   ptr = av_malloc (size);
-   if (!ptr)
-     goto fail;
--  gst_ffmpegcsp_avpicture_fill (picture, ptr, pix_fmt, width, height,
-+  gst_ffmpegcsp_avpicture_fill (picture, ptr, pix_fmt, width, height, stride,
-       interlaced);
-   return 0;
- fail:
-@@ -3775,7 +3775,7 @@ no_chroma_filter:
-     else
-       int_pix_fmt = PIX_FMT_RGB24;
-   }
--  if (avpicture_alloc (tmp, int_pix_fmt, dst_width, dst_height,
-+  if (avpicture_alloc (tmp, int_pix_fmt, dst_width, dst_height, 0,
-           dst->interlaced) < 0)
-     return -1;
-   ret = -1;
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0024-discoverer-rowstride-support.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0024-discoverer-rowstride-support.patch
deleted file mode 100644
index ebe1b6f..0000000
--- a/media-libs/gst-plugins-base/files/gst-0.10.32-0024-discoverer-rowstride-support.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 3bb025f5ba20aeb5d2fa575e4a78ea61e3bf5c1b Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Wed, 5 Jan 2011 11:40:03 -0600
-Subject: [PATCH 24/24] discoverer: rowstride support
-
----
- gst-libs/gst/pbutils/gstdiscoverer.c |    8 ++++----
- 1 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/gst-libs/gst/pbutils/gstdiscoverer.c b/gst-libs/gst/pbutils/gstdiscoverer.c
-index 8422d8f..2176196 100644
---- a/gst-libs/gst/pbutils/gstdiscoverer.c
-+++ b/gst-libs/gst/pbutils/gstdiscoverer.c
-@@ -558,7 +558,7 @@ collect_information (GstDiscoverer * dc, const GstStructure * st,
-   GstCaps *caps;
-   GstStructure *caps_st, *tags_st;
-   const gchar *name;
--  int tmp, tmp2;
-+  int tmp, tmp2, tmp3;
-   guint utmp;
-   gboolean btmp;
- 
-@@ -626,7 +626,7 @@ collect_information (GstDiscoverer * dc, const GstStructure * st,
-       info->parent.caps = caps;
-     }
- 
--    if (gst_video_format_parse_caps (caps, &format, &tmp, &tmp2)) {
-+    if (gst_video_format_parse_caps_strided (caps, &format, &tmp, &tmp2, &tmp3)) {
-       info->width = (guint) tmp;
-       info->height = (guint) tmp2;
-     }
-@@ -930,8 +930,8 @@ discoverer_collect (GstDiscoverer * dc)
-           gst_caps_get_structure (dc->priv->current_info->stream_info->caps, 0);
- 
-       if (g_str_has_prefix (gst_structure_get_name (st), "image/"))
--        ((GstDiscovererVideoInfo *) dc->priv->current_info->
--            stream_info)->is_image = TRUE;
-+        ((GstDiscovererVideoInfo *) dc->priv->current_info->stream_info)->
-+            is_image = TRUE;
-     }
-   }
- 
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-base/gst-plugins-base-0.10.32_p20110127.ebuild b/media-libs/gst-plugins-base/gst-plugins-base-0.10.32_p20110127.ebuild
deleted file mode 100644
index 93160d5..0000000
--- a/media-libs/gst-plugins-base/gst-plugins-base-0.10.32_p20110127.ebuild
+++ /dev/null
@@ -1,78 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI=1
-
-# order is important, gnome2 after gst-plugins
-inherit gst-plugins-base gst-plugins10 gnome2 flag-o-matic autotools eutils
-# libtool
-
-DESCRIPTION="Basepack of plugins for gstreamer"
-HOMEPAGE="http://gstreamer.sourceforge.net"
-MY_P=${P%%_*}
-SRC_URI="http://gstreamer.freedesktop.org/src/${PN}/${MY_P}.tar.bz2"
-S="${WORKDIR}/${MY_P}"
-
-LICENSE="GPL-2"
-KEYWORDS="~alpha ~amd64 arm ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
-IUSE="+introspection +orc"
-
-RDEPEND=">=dev-libs/glib-2.20
-	=media-libs/gstreamer-0.10.32_p20110127
-	dev-libs/libxml2
-	app-text/iso-codes
-	orc? ( >=dev-lang/orc-0.4.5 )
-	!<media-libs/gst-plugins-bad-0.10.10"
-DEPEND="${RDEPEND}
-	dev-util/pkgconfig
-	dev-util/gtk-doc-am"
-
-GST_PLUGINS_BUILD=""
-
-DOCS="AUTHORS NEWS README RELEASE"
-
-src_unpack() {
-	unpack ${A}
-	cd "${S}"
-	epatch "${FILESDIR}"/gst-0.10.32-0001-add-rowstride-support-to-video-utility-functions.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0002-stridetransform-skeletal-implementation-of-stridetra.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0003-stridetransform-implement-caps-negotiation-and-relat.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0004-stridetransform-implement-transform-function.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0005-add-gst_stride_transform_transform_size.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0006-fix-a-small-typo.-need-to-use-the-smaller-of-new_wid.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0007-Add-NV12-support-in-stridetransform.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0008-add-basic-support-for-I420-NV12-colorspace-conversio.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0009-fix-to-avoid-parsing-caps-on-every-frame.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0010-refactor-stridetransform-to-make-it-easier-to-add-ne.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0011-add-some-neon.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0012-add-support-to-convert-to-YUY2-YUYV-color-format.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0013-Add-support-for-RGB565-to-stridetransform.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0014-stridetransform-updates-for-new-extra-anal-compiler-.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0015-stridetransform-fix-problem-transforming-caps-with-l.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0016-modify-playbin-to-use-stridetransform.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0017-playbin-disable-interlaced-support.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0018-textoverlay-add-stride-support.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0019-video-more-flexible-video-caps-utility.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0020-video-fix-endianess-issue-for-16bit-RGB-formats.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0021-stride-more-flexible-stride-color-conversion.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0022-stride-support-for-32bit-RGB-formats.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0023-ffmpegcolorspace-support-for-rowstride.patch
-	eautoreconf
-}
-
-src_compile() {
-	# gst doesnt handle opts well, last tested with 0.10.15
-	strip-flags
-	replace-flags "-O3" "-O2"
-
-	gst-plugins-base_src_configure \
-		--disable-nls \
-		$(use_enable introspection) \
-		$(use_enable orc)
-	emake || die "emake failed."
-}
-
-src_install() {
-	gnome2_src_install
-}

diff --git a/media-libs/gst-plugins-good/Manifest b/media-libs/gst-plugins-good/Manifest
deleted file mode 100644
index 6f92a4e..0000000
--- a/media-libs/gst-plugins-good/Manifest
+++ /dev/null
@@ -1,14 +0,0 @@
-AUX gst-0.10.27-0001-v4l2-fix-handling-of-RGB32-BGR32-formats.patch 1699 RMD160 ee58e52c89ed3ac10ece5f24b2607461f693abb3 SHA1 5f93921349aa383b9f9a70f1ce62128eda6d9411 SHA256 b99e9322ba836e6de4df144ff5a6454bb4175a84713a9610fce3ff83402f82d5
-AUX gst-0.10.27-0002-v4l2sink-Add-rotation-support.patch 4255 RMD160 fe2024baf7398c83cec0c0adfdd649733a967482 SHA1 483ec498ce795764475b7e486560ae43ac12737c SHA256 08595843b8fddb76661aaec9b3d84791edf72226dc323050ca94ed1aebc49949
-AUX gst-0.10.27-0003-v4l2sink-Add-flip-property.patch 5880 RMD160 1fc14e374dc56b52cc16d189c3b87e0508b323fb SHA1 8475701469ea33dc355a0a030dc20a5d9a2a0e2f SHA256 42864937012aaede7fbd0ebd78b06be6b6326f99a0770ec6ec6ac57426004445
-AUX gst-0.10.27-0004-v4l2sink-Add-support-for-omap24xxvout-driver.patch 2205 RMD160 da01e8eb31d528971113679984e51f9e7d7e0326 SHA1 07ad77fe137d8c4548320f582d3cc88928e943c2 SHA256 7cca5ec0adf3ac20c7a400bf209523c9135cadb9292cbd219b631d588a3800af
-AUX gst-0.10.27-0005-v4l2sink-Add-support-for-omap_vout-driver.patch 1136 RMD160 2ba17fb3194790c60ab297a3cfbde4089575555d SHA1 f18af7103413df180b3eab08c4abe655d7a63ed3 SHA256 fa8486abf8bd9c12d2d29fe3077485e1ca77af9e39ef4a9b48a7d1ea696c2d85
-AUX gst-0.10.27-0006-v4l2-increase-v4l2sink-element-rank.patch 884 RMD160 5e18ee173f9749a46de9a146a4c6e0113f02281d SHA1 1bfab5660c9f5354eb6daed48a965824675bc07a SHA256 1cfcd14afba356fd6c6180b8f1018174e392d9cc9690870f5dd06918ef3454e5
-AUX gst-0.10.27-0007-use-GstQueryBuffers-to-get-buffer-requirements.patch 3392 RMD160 a7a197667a9fd0ca8d47125a8205f58f81e110cb SHA1 b650b0474355775a5bcb5b89090798e226786632 SHA256 5621c6c3c1a4a49c62faeffbe320e76a4c45d5ecf6c3ecb29adbe2eed25c64b4
-AUX gst-0.10.27-0008-add-rowstride-support.patch 20547 RMD160 cb4bf8074160cad277ba5754427a79cf42a139ed SHA1 60ac23640e799e558fce406e650ebe47b27645c4 SHA256 7ba17339344fe2f0b8e665cd1fd41e96c6543f2d38c4eeffbd071c6c2c21d407
-AUX gst-0.10.27-0009-use-GstEventCrop-to-get-crop-info.patch 4209 RMD160 7b827d6d1cb40f10bb25e0dedf8791884bd60bb5 SHA1 f1c47e70898c8480ce25e5ec6c90308c45cb77f7 SHA256 877141058a3662aa6c065003a048908eb5459206dd7d4cd68d46ba51bfd448a8
-AUX gst-0.10.27-0010-v4l2-prefer-NV12.patch 955 RMD160 1f8da679aa6562a8b7838a301dc98767f543ee12 SHA1 0fe801306c6dad176ef78f4269ecf99f6b270cb5 SHA256 2ddf29274b7f7d8b1ac1f2ed68c56485dddb000e82d12288e50b0acc12ffb0ec
-AUX gst-0.10.27-0011-v4l2sink-fix-issue-seen-with-autoconvert.patch 1938 RMD160 edb01fb57a548a6a6af67f016eea16d47337d0e0 SHA1 c80bbe19a4f6ad44967d077e4ee109094b5061bd SHA256 ad26b737d21721882a6c0de9011ac30984450b4ba213dc5045e9dfff9d2180fc
-AUX gst-0.10.27-0099-v4l2sink-Disable-rotation-code-when-not-found.patch 3484 RMD160 42b0d964871066c9203cdaf8aa79c4a08f8bef33 SHA1 2502fd3e41ecda556868785540d993e45872d7bc SHA256 a7981181b78cbbf2b717d2b09a177859a99f2a75f76f1c146549955d0bc300b9
-DIST gst-plugins-good-0.10.27.tar.bz2 3096221 RMD160 6486fca87a6394577ab1f0a4e94a19b1c3e2ca5e SHA1 49964ad3b8fbee9caa0b3fc437dd9169aafad79d SHA256 a9d801c3d42b456a6ebc0b95f68c44f153f756ec0fbd4877197c469cc67771fa
-EBUILD gst-plugins-good-0.10.27_p20110127.ebuild 2912 RMD160 9b8e627d4d2383464f1090c97fc3dd68b9a2c4ba SHA1 f4392e673c6c878c505e2ab33072a54d1d9fd12f SHA256 203dfad6d89aaa3860810d0eefd6d518e0cbe91757542d28519e719e65a11327

diff --git a/media-libs/gst-plugins-good/files/gst-0.10.27-0001-v4l2-fix-handling-of-RGB32-BGR32-formats.patch b/media-libs/gst-plugins-good/files/gst-0.10.27-0001-v4l2-fix-handling-of-RGB32-BGR32-formats.patch
deleted file mode 100644
index f2d85ef..0000000
--- a/media-libs/gst-plugins-good/files/gst-0.10.27-0001-v4l2-fix-handling-of-RGB32-BGR32-formats.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 194aa8513c02fbfcabf04b45ff4c81bf8a94527f Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Tue, 14 Sep 2010 07:42:50 -0500
-Subject: [PATCH 01/11] v4l2: fix handling of RGB32/BGR32 formats
-
-bpp is 32, but depth is only 24..
----
- sys/v4l2/gstv4l2object.c |   12 +++++++-----
- 1 files changed, 7 insertions(+), 5 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2object.c b/sys/v4l2/gstv4l2object.c
-index 7e15489..f5672b5 100644
---- a/sys/v4l2/gstv4l2object.c
-+++ b/sys/v4l2/gstv4l2object.c
-@@ -1132,14 +1132,16 @@ gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc)
-           b_mask = 0xff0000;
-           break;
-         case V4L2_PIX_FMT_RGB32:
--          bpp = depth = 32;
-+          depth = 24;
-+          bpp = 32;
-           endianness = G_BIG_ENDIAN;
-           r_mask = 0xff000000;
-           g_mask = 0x00ff0000;
-           b_mask = 0x0000ff00;
-           break;
-         case V4L2_PIX_FMT_BGR32:
--          bpp = depth = 32;
-+          depth = 24;
-+          bpp = 32;
-           endianness = G_BIG_ENDIAN;
-           r_mask = 0x000000ff;
-           g_mask = 0x0000ff00;
-@@ -1404,13 +1406,13 @@ gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps,
- #endif
-     }
-   } else if (!strcmp (mimetype, "video/x-raw-rgb")) {
--    gint depth, endianness, r_mask;
-+    gint bpp, endianness, r_mask;
- 
--    gst_structure_get_int (structure, "depth", &depth);
-+    gst_structure_get_int (structure, "bpp", &bpp);
-     gst_structure_get_int (structure, "endianness", &endianness);
-     gst_structure_get_int (structure, "red_mask", &r_mask);
- 
--    switch (depth) {
-+    switch (bpp) {
-       case 8:
-         fourcc = V4L2_PIX_FMT_RGB332;
-         break;
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-good/files/gst-0.10.27-0002-v4l2sink-Add-rotation-support.patch b/media-libs/gst-plugins-good/files/gst-0.10.27-0002-v4l2sink-Add-rotation-support.patch
deleted file mode 100644
index 11b777c..0000000
--- a/media-libs/gst-plugins-good/files/gst-0.10.27-0002-v4l2sink-Add-rotation-support.patch
+++ /dev/null
@@ -1,128 +0,0 @@
-From d43a9444fc5f7655a8acd2978039667a04222ba0 Mon Sep 17 00:00:00 2001
-From: Kiran Nataraju <knataraju@ti.com>
-Date: Fri, 27 Aug 2010 09:00:57 +0200
-Subject: [PATCH 02/11] v4l2sink: Add rotation support.
-
-Signed-off-by: Kiran Nataraju <knataraju@ti.com>
-Signed-off-by: Daniel Diaz <ddiaz@ti.com>
----
- sys/v4l2/gstv4l2sink.c |   34 ++++++++++++++++++++++++++++++++++
- sys/v4l2/gstv4l2sink.h |    1 +
- 2 files changed, 35 insertions(+), 0 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
-index aa6785c..5abf915 100644
---- a/sys/v4l2/gstv4l2sink.c
-+++ b/sys/v4l2/gstv4l2sink.c
-@@ -72,6 +72,10 @@ GST_DEBUG_CATEGORY (v4l2sink_debug);
- #define PROP_DEF_MIN_QUEUED_BUFS    1
- #define DEFAULT_PROP_DEVICE   "/dev/video1"
- 
-+#define MIN_ROTATION_ANGLE 0
-+#define MAX_ROTATION_ANGLE 360
-+#define DEFAULT_ROTATION_ANGLE 0
-+
- enum
- {
-   PROP_0,
-@@ -86,6 +90,7 @@ enum
-   PROP_CROP_LEFT,
-   PROP_CROP_WIDTH,
-   PROP_CROP_HEIGHT,
-+  PROP_ROTATION,
- };
- 
- 
-@@ -220,6 +225,7 @@ static GstFlowReturn gst_v4l2sink_buffer_alloc (GstBaseSink * bsink,
-     guint64 offset, guint size, GstCaps * caps, GstBuffer ** buf);
- static GstFlowReturn gst_v4l2sink_show_frame (GstBaseSink * bsink,
-     GstBuffer * buf);
-+static void gst_v4l2sink_set_rotation (GstV4l2Sink * v4l2sink);
- 
- static void
- gst_v4l2sink_base_init (gpointer g_class)
-@@ -306,6 +312,11 @@ gst_v4l2sink_class_init (GstV4l2SinkClass * klass)
-           "The height of the video crop; default is equal to negotiated image height",
-           0, 0xffffffff, 0, G_PARAM_READWRITE));
- 
-+  g_object_class_install_property (gobject_class, PROP_ROTATION,
-+      g_param_spec_int ("rotation", "Rotation angle",
-+          "Rotation angle for the image", MIN_ROTATION_ANGLE,
-+          MAX_ROTATION_ANGLE, DEFAULT_ROTATION_ANGLE, G_PARAM_READWRITE));
-+
-   basesink_class->get_caps = GST_DEBUG_FUNCPTR (gst_v4l2sink_get_caps);
-   basesink_class->set_caps = GST_DEBUG_FUNCPTR (gst_v4l2sink_set_caps);
-   basesink_class->buffer_alloc = GST_DEBUG_FUNCPTR (gst_v4l2sink_buffer_alloc);
-@@ -336,6 +347,7 @@ gst_v4l2sink_init (GstV4l2Sink * v4l2sink, GstV4l2SinkClass * klass)
-   v4l2sink->overlay_fields_set = 0;
-   v4l2sink->crop_fields_set = 0;
-   v4l2sink->state = 0;
-+  v4l2sink->rotation = 0;
- }
- 
- 
-@@ -475,6 +487,20 @@ gst_v4l2sink_sync_crop_fields (GstV4l2Sink * v4l2sink)
-   }
- }
- 
-+static void
-+gst_v4l2sink_set_rotation (GstV4l2Sink * v4l2sink)
-+{
-+  if (GST_V4L2_IS_OPEN (v4l2sink->v4l2object)) {
-+    struct v4l2_control control;
-+    gint fd = v4l2sink->v4l2object->video_fd;
-+
-+    memset (&control, 0x00, sizeof (struct v4l2_control));
-+    control.id = V4L2_CID_ROTATE;
-+    control.value = v4l2sink->rotation;
-+    g_return_if_fail (v4l2_ioctl (fd, VIDIOC_S_CTRL, &control) >= 0);
-+  }
-+}
-+
- 
- static void
- gst_v4l2sink_set_property (GObject * object,
-@@ -531,6 +557,10 @@ gst_v4l2sink_set_property (GObject * object,
-         v4l2sink->crop_fields_set |= RECT_HEIGHT_SET;
-         gst_v4l2sink_sync_crop_fields (v4l2sink);
-         break;
-+      case PROP_ROTATION:
-+        v4l2sink->rotation = g_value_get_int (value);
-+        gst_v4l2sink_set_rotation (v4l2sink);
-+        break;
-       default:
-         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-         break;
-@@ -578,6 +608,9 @@ gst_v4l2sink_get_property (GObject * object,
-       case PROP_CROP_HEIGHT:
-         g_value_set_uint (value, v4l2sink->crop.height);
-         break;
-+      case PROP_ROTATION:
-+        g_value_set_int (value, v4l2sink->rotation);
-+        break;
-       default:
-         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-         break;
-@@ -600,6 +633,7 @@ gst_v4l2sink_change_state (GstElement * element, GstStateChange transition)
-       /* open the device */
-       if (!gst_v4l2_object_start (v4l2sink->v4l2object))
-         return GST_STATE_CHANGE_FAILURE;
-+      gst_v4l2sink_set_rotation (v4l2sink);
-       break;
-     default:
-       break;
-diff --git a/sys/v4l2/gstv4l2sink.h b/sys/v4l2/gstv4l2sink.h
-index 8fe8222..1239621 100644
---- a/sys/v4l2/gstv4l2sink.h
-+++ b/sys/v4l2/gstv4l2sink.h
-@@ -75,6 +75,7 @@ struct _GstV4l2Sink {
-   guint8 overlay_fields_set, crop_fields_set;
- 
-   guint8 state;
-+  gint rotation;
- };
- 
- struct _GstV4l2SinkClass {
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-good/files/gst-0.10.27-0003-v4l2sink-Add-flip-property.patch b/media-libs/gst-plugins-good/files/gst-0.10.27-0003-v4l2sink-Add-flip-property.patch
deleted file mode 100644
index 9bdfa51..0000000
--- a/media-libs/gst-plugins-good/files/gst-0.10.27-0003-v4l2sink-Add-flip-property.patch
+++ /dev/null
@@ -1,187 +0,0 @@
-From 1381c64fd606d8ab7169eef52386139a4848c439 Mon Sep 17 00:00:00 2001
-From: Kiran Nataraju <knataraju@ti.com>
-Date: Tue, 21 Sep 2010 06:21:23 +0200
-Subject: [PATCH 03/11] v4l2sink: Add flip property.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: Kiran Nataraju <knataraju@ti.com>
-Signed-off-by: Daniel Díaz <yosoy@danieldiaz.org>
----
- sys/v4l2/gstv4l2sink.c |   88 +++++++++++++++++++++++++++++++++++++++++++++--
- sys/v4l2/gstv4l2sink.h |    1 +
- 2 files changed, 85 insertions(+), 4 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
-index 5abf915..6163747 100644
---- a/sys/v4l2/gstv4l2sink.c
-+++ b/sys/v4l2/gstv4l2sink.c
-@@ -91,6 +91,7 @@ enum
-   PROP_CROP_WIDTH,
-   PROP_CROP_HEIGHT,
-   PROP_ROTATION,
-+  PROP_FLIP,
- };
- 
- 
-@@ -129,6 +130,34 @@ gst_v4l2sink_iface_supported (GstImplementsInterface * iface, GType iface_type)
-   return TRUE;
- }
- 
-+/*
-+ * Flip state
-+ */
-+enum
-+{
-+  FLIP_NONE = 0,
-+  FLIP_HORIZONTAL = 1,
-+  FLIP_VERTICAL = 2,
-+};
-+
-+#define GST_TYPE_V4L2_FLIP (gst_v4l2_flip_get_type ())
-+static GType
-+gst_v4l2_flip_get_type (void)
-+{
-+  static GType type = 0;
-+
-+  if (!type) {
-+    static GEnumValue vals[] = {
-+      {FLIP_NONE, "No Flip", "none"},
-+      {FLIP_HORIZONTAL, "Horizontal Flip", "horiz"},
-+      {FLIP_VERTICAL, "Vertical Flip", "vert"},
-+      {0, NULL, NULL},
-+    };
-+    type = g_enum_register_static ("GstV4l2SinkFlip", vals);
-+  }
-+  return type;
-+}
-+
- static void
- gst_v4l2sink_interface_init (GstImplementsInterfaceClass * klass)
- {
-@@ -225,7 +254,7 @@ static GstFlowReturn gst_v4l2sink_buffer_alloc (GstBaseSink * bsink,
-     guint64 offset, guint size, GstCaps * caps, GstBuffer ** buf);
- static GstFlowReturn gst_v4l2sink_show_frame (GstBaseSink * bsink,
-     GstBuffer * buf);
--static void gst_v4l2sink_set_rotation (GstV4l2Sink * v4l2sink);
-+static void gst_v4l2sink_sync_rotation (GstV4l2Sink * v4l2sink);
- 
- static void
- gst_v4l2sink_base_init (gpointer g_class)
-@@ -317,6 +346,11 @@ gst_v4l2sink_class_init (GstV4l2SinkClass * klass)
-           "Rotation angle for the image", MIN_ROTATION_ANGLE,
-           MAX_ROTATION_ANGLE, DEFAULT_ROTATION_ANGLE, G_PARAM_READWRITE));
- 
-+  g_object_class_install_property (gobject_class, PROP_FLIP,
-+      g_param_spec_enum ("flip", "Flip State",
-+          "Flip horizontal/vertical",
-+          GST_TYPE_V4L2_FLIP, FLIP_NONE, G_PARAM_READWRITE));
-+
-   basesink_class->get_caps = GST_DEBUG_FUNCPTR (gst_v4l2sink_get_caps);
-   basesink_class->set_caps = GST_DEBUG_FUNCPTR (gst_v4l2sink_set_caps);
-   basesink_class->buffer_alloc = GST_DEBUG_FUNCPTR (gst_v4l2sink_buffer_alloc);
-@@ -348,8 +382,46 @@ gst_v4l2sink_init (GstV4l2Sink * v4l2sink, GstV4l2SinkClass * klass)
-   v4l2sink->crop_fields_set = 0;
-   v4l2sink->state = 0;
-   v4l2sink->rotation = 0;
-+  v4l2sink->flip = FLIP_NONE;
- }
- 
-+static void
-+gst_v4l2sink_sync_flip (GstV4l2Sink * v4l2sink)
-+{
-+  if (GST_V4L2_IS_OPEN (v4l2sink->v4l2object)) {
-+    struct v4l2_control control;
-+    gint fd = v4l2sink->v4l2object->video_fd;
-+
-+    memset (&control, 0x00, sizeof (struct v4l2_control));
-+
-+    switch (v4l2sink->flip) {
-+      case FLIP_VERTICAL:
-+        v4l2sink->rotation = 0;
-+        control.value = 1;
-+        break;
-+      case FLIP_HORIZONTAL:
-+        /* Horizontal Flip = Vertical Flip + 180 rotation */
-+        v4l2sink->rotation = 180;
-+        control.value = 1;
-+        break;
-+      case FLIP_NONE:
-+        /* In the below switch case logic we need to handle FLIP_NONE
-+         * case since the v4l2 driver holds on to the last configured
-+         * flip value even after the device file is closed.
-+         */
-+        control.value = 0;
-+        break;
-+      default:
-+        GST_WARNING_OBJECT (v4l2sink, "Invalid flip property");
-+        control.value = 0;
-+        break;
-+    }
-+
-+    gst_v4l2sink_sync_rotation (v4l2sink);
-+    control.id = V4L2_CID_VFLIP;
-+    g_return_if_fail (v4l2_ioctl (fd, VIDIOC_S_CTRL, &control) >= 0);
-+  }
-+}
- 
- static void
- gst_v4l2sink_dispose (GObject * object)
-@@ -488,7 +560,7 @@ gst_v4l2sink_sync_crop_fields (GstV4l2Sink * v4l2sink)
- }
- 
- static void
--gst_v4l2sink_set_rotation (GstV4l2Sink * v4l2sink)
-+gst_v4l2sink_sync_rotation (GstV4l2Sink * v4l2sink)
- {
-   if (GST_V4L2_IS_OPEN (v4l2sink->v4l2object)) {
-     struct v4l2_control control;
-@@ -559,7 +631,11 @@ gst_v4l2sink_set_property (GObject * object,
-         break;
-       case PROP_ROTATION:
-         v4l2sink->rotation = g_value_get_int (value);
--        gst_v4l2sink_set_rotation (v4l2sink);
-+        gst_v4l2sink_sync_rotation (v4l2sink);
-+        break;
-+      case PROP_FLIP:
-+        v4l2sink->flip = g_value_get_enum (value);
-+        gst_v4l2sink_sync_flip (v4l2sink);
-         break;
-       default:
-         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-@@ -611,6 +687,9 @@ gst_v4l2sink_get_property (GObject * object,
-       case PROP_ROTATION:
-         g_value_set_int (value, v4l2sink->rotation);
-         break;
-+      case PROP_FLIP:
-+        g_value_set_enum (value, v4l2sink->flip);
-+        break;
-       default:
-         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-         break;
-@@ -633,7 +712,8 @@ gst_v4l2sink_change_state (GstElement * element, GstStateChange transition)
-       /* open the device */
-       if (!gst_v4l2_object_start (v4l2sink->v4l2object))
-         return GST_STATE_CHANGE_FAILURE;
--      gst_v4l2sink_set_rotation (v4l2sink);
-+      gst_v4l2sink_sync_rotation (v4l2sink);
-+      gst_v4l2sink_sync_flip (v4l2sink);
-       break;
-     default:
-       break;
-diff --git a/sys/v4l2/gstv4l2sink.h b/sys/v4l2/gstv4l2sink.h
-index 1239621..907973a 100644
---- a/sys/v4l2/gstv4l2sink.h
-+++ b/sys/v4l2/gstv4l2sink.h
-@@ -76,6 +76,7 @@ struct _GstV4l2Sink {
- 
-   guint8 state;
-   gint rotation;
-+  gint flip;
- };
- 
- struct _GstV4l2SinkClass {
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-good/files/gst-0.10.27-0004-v4l2sink-Add-support-for-omap24xxvout-driver.patch b/media-libs/gst-plugins-good/files/gst-0.10.27-0004-v4l2sink-Add-support-for-omap24xxvout-driver.patch
deleted file mode 100644
index 38601f8..0000000
--- a/media-libs/gst-plugins-good/files/gst-0.10.27-0004-v4l2sink-Add-support-for-omap24xxvout-driver.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 39de525898eea073c1f2486b99b56ef25b6df289 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Sun, 4 Apr 2010 06:46:21 -0500
-Subject: [PATCH 04/11] v4l2sink: Add support for omap24xxvout driver
-
----
- sys/v4l2/gstv4l2sink.c |   22 +++++++++++++++++++++-
- 1 files changed, 21 insertions(+), 1 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
-index 6163747..4408428 100644
---- a/sys/v4l2/gstv4l2sink.c
-+++ b/sys/v4l2/gstv4l2sink.c
-@@ -888,6 +888,18 @@ gst_v4l2sink_buffer_alloc (GstBaseSink * bsink, guint64 offset, guint size,
-     /* initialize the buffer pool if not initialized yet (first buffer): */
-     if (G_UNLIKELY (!v4l2sink->pool)) {
- 
-+      gboolean no_pending_streamon = FALSE;
-+      char *driver = (char *) v4l2sink->v4l2object->vcap.driver;
-+
-+      /* the omap24xxvout driver wants us to start streaming before we
-+       * queue the first buffer:
-+       */
-+      if (!strcmp ("omap24xxvout", driver)) {
-+        GST_DEBUG_OBJECT (v4l2sink,
-+            "enabling no_pending_streamon hack for omap24xxvout driver");
-+        no_pending_streamon = TRUE;
-+      }
-+
-       /* set_caps() might not be called yet.. so just to make sure: */
-       if (!gst_v4l2sink_set_caps (bsink, caps)) {
-         return GST_FLOW_ERROR;
-@@ -909,7 +921,14 @@ gst_v4l2sink_buffer_alloc (GstBaseSink * bsink, guint64 offset, guint size,
-       gst_v4l2_xoverlay_prepare_xwindow_id (v4l2sink->v4l2object, TRUE);
- #endif
- 
--      v4l2sink->state = STATE_PENDING_STREAMON;
-+      if (no_pending_streamon) {
-+        if (!gst_v4l2_object_start_streaming (v4l2sink->v4l2object)) {
-+          return GST_FLOW_ERROR;
-+        }
-+        v4l2sink->state = STATE_STREAMING;
-+      } else {
-+        v4l2sink->state = STATE_PENDING_STREAMON;
-+      }
- 
-       GST_INFO_OBJECT (v4l2sink, "outputting buffers via mmap()");
- 
-@@ -996,6 +1015,7 @@ gst_v4l2sink_show_frame (GstBaseSink * bsink, GstBuffer * buf)
-   if (!gst_v4l2_buffer_pool_qbuf (v4l2sink->pool, GST_V4L2_BUFFER (buf))) {
-     return GST_FLOW_ERROR;
-   }
-+
-   if (v4l2sink->state == STATE_PENDING_STREAMON) {
-     if (!gst_v4l2_object_start_streaming (v4l2sink->v4l2object)) {
-       return GST_FLOW_ERROR;
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-good/files/gst-0.10.27-0005-v4l2sink-Add-support-for-omap_vout-driver.patch b/media-libs/gst-plugins-good/files/gst-0.10.27-0005-v4l2sink-Add-support-for-omap_vout-driver.patch
deleted file mode 100644
index 04b67bc..0000000
--- a/media-libs/gst-plugins-good/files/gst-0.10.27-0005-v4l2sink-Add-support-for-omap_vout-driver.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 1fabe36f40e872942c80041225bdbf41db561bea Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Sun, 4 Apr 2010 06:47:55 -0500
-Subject: [PATCH 05/11] v4l2sink: Add support for omap_vout driver
-
----
- sys/v4l2/gstv4l2sink.c |   11 +++++++++++
- 1 files changed, 11 insertions(+), 0 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
-index 4408428..66dda8e 100644
---- a/sys/v4l2/gstv4l2sink.c
-+++ b/sys/v4l2/gstv4l2sink.c
-@@ -900,6 +900,17 @@ gst_v4l2sink_buffer_alloc (GstBaseSink * bsink, guint64 offset, guint size,
-         no_pending_streamon = TRUE;
-       }
- 
-+      /* workaround for bug in omap_vout driver, when we ask for more
-+       * than four buffers:
-+       */
-+      if (!strcmp ("omap_vout", driver)) {
-+        if (v4l2sink->num_buffers > 4) {
-+          v4l2sink->num_buffers = 4;
-+          GST_DEBUG_OBJECT (v4l2sink,
-+              "limiting to 4 buffers to work-around omap_vout driver bug");
-+        }
-+      }
-+
-       /* set_caps() might not be called yet.. so just to make sure: */
-       if (!gst_v4l2sink_set_caps (bsink, caps)) {
-         return GST_FLOW_ERROR;
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-good/files/gst-0.10.27-0006-v4l2-increase-v4l2sink-element-rank.patch b/media-libs/gst-plugins-good/files/gst-0.10.27-0006-v4l2-increase-v4l2sink-element-rank.patch
deleted file mode 100644
index 8f5a21c..0000000
--- a/media-libs/gst-plugins-good/files/gst-0.10.27-0006-v4l2-increase-v4l2sink-element-rank.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 14d6f0fac0875981c418ac6577d23eafb5ff3f01 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Wed, 14 Apr 2010 03:29:20 -0500
-Subject: [PATCH 06/11] v4l2: increase v4l2sink element rank
-
-Increase rank so that it is autoplugged.
----
- sys/v4l2/gstv4l2.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2.c b/sys/v4l2/gstv4l2.c
-index 4a7056f..cba4157 100644
---- a/sys/v4l2/gstv4l2.c
-+++ b/sys/v4l2/gstv4l2.c
-@@ -55,7 +55,7 @@ plugin_init (GstPlugin * plugin)
-   if (!gst_element_register (plugin, "v4l2src", GST_RANK_PRIMARY,
-           GST_TYPE_V4L2SRC) ||
- #ifdef HAVE_EXPERIMENTAL
--      !gst_element_register (plugin, "v4l2sink", GST_RANK_NONE,
-+      !gst_element_register (plugin, "v4l2sink", GST_RANK_PRIMARY,
-           GST_TYPE_V4L2SINK) ||
- #endif
-       /*       !gst_element_register (plugin, "v4l2jpegsrc", */
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-good/files/gst-0.10.27-0007-use-GstQueryBuffers-to-get-buffer-requirements.patch b/media-libs/gst-plugins-good/files/gst-0.10.27-0007-use-GstQueryBuffers-to-get-buffer-requirements.patch
deleted file mode 100644
index 345f9df..0000000
--- a/media-libs/gst-plugins-good/files/gst-0.10.27-0007-use-GstQueryBuffers-to-get-buffer-requirements.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From 15c17ea368079fd5de19868af6d9ffad1cb09f3a Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Wed, 19 May 2010 17:33:46 -0500
-Subject: [PATCH 07/11] use GstQueryBuffers to get buffer requirements
-
----
- sys/v4l2/gstv4l2sink.c |   40 ++++++++++++++++++++++++++++++++++++++++
- sys/v4l2/gstv4l2sink.h |    1 +
- 2 files changed, 41 insertions(+), 0 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
-index 66dda8e..12323f7 100644
---- a/sys/v4l2/gstv4l2sink.c
-+++ b/sys/v4l2/gstv4l2sink.c
-@@ -373,6 +373,7 @@ gst_v4l2sink_init (GstV4l2Sink * v4l2sink, GstV4l2SinkClass * klass)
- 
-   /* number of buffers requested */
-   v4l2sink->num_buffers = PROP_DEF_QUEUE_SIZE;
-+  v4l2sink->num_buffers_can_change = TRUE;
-   v4l2sink->min_queued_bufs = PROP_DEF_MIN_QUEUED_BUFS;
- 
-   v4l2sink->probed_caps = NULL;
-@@ -808,6 +809,7 @@ static gboolean
- gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
- {
-   GstV4l2Sink *v4l2sink = GST_V4L2SINK (bsink);
-+  GstQuery *query;
-   gint w = 0, h = 0;
-   gboolean interlaced;
-   struct v4l2_fmtdesc *format;
-@@ -855,6 +857,39 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
-     return FALSE;
-   }
- 
-+  /* query to find if anyone upstream using these buffers has any
-+   * minimum requirements:
-+   */
-+  query = gst_query_new_buffers (caps);
-+  if (gst_element_query (GST_ELEMENT (v4l2sink), query)) {
-+    gint min_buffers, min_width, min_height;
-+
-+    gst_query_parse_buffers_count (query, &min_buffers);
-+
-+    /* XXX need to account for some buffers used by queue, etc.. probably
-+     * queue should handle query, pass on to sink pad, and then add some
-+     * number of buffers to the min, so this value is dynamic depending
-+     * on the pipeline?
-+     */
-+    if (min_buffers != -1) {
-+      min_buffers += 3 + v4l2sink->min_queued_bufs;
-+    }
-+
-+    if (min_buffers > v4l2sink->num_buffers) {
-+      v4l2sink->num_buffers_can_change = FALSE;
-+      v4l2sink->num_buffers = min_buffers;
-+    }
-+
-+    gst_query_parse_buffers_dimensions (query, &min_width, &min_height);
-+    if (min_width > w) {
-+      w = min_width;
-+    }
-+    if (min_height > h) {
-+      h = min_height;
-+    }
-+  }
-+  gst_query_unref (query);
-+
-   if (!gst_v4l2_object_set_format (v4l2sink->v4l2object, format->pixelformat,
-           w, h, interlaced)) {
-     /* error already posted */
-@@ -944,6 +979,11 @@ gst_v4l2sink_buffer_alloc (GstBaseSink * bsink, guint64 offset, guint size,
-       GST_INFO_OBJECT (v4l2sink, "outputting buffers via mmap()");
- 
-       if (v4l2sink->num_buffers != v4l2sink->pool->buffer_count) {
-+        if (!v4l2sink->num_buffers_can_change) {
-+          GST_WARNING_OBJECT (v4l2sink,
-+              "I can't handle a differing number of buffers!!!!");
-+          return GST_FLOW_ERROR;
-+        }
-         v4l2sink->num_buffers = v4l2sink->pool->buffer_count;
-         g_object_notify (G_OBJECT (v4l2sink), "queue-size");
-       }
-diff --git a/sys/v4l2/gstv4l2sink.h b/sys/v4l2/gstv4l2sink.h
-index 907973a..7649fa1 100644
---- a/sys/v4l2/gstv4l2sink.h
-+++ b/sys/v4l2/gstv4l2sink.h
-@@ -58,6 +58,7 @@ struct _GstV4l2Sink {
-   GstCaps *current_caps;        /* the current negotiated caps */
-   GstV4l2BufferPool *pool;
-   guint32 num_buffers;
-+  gboolean num_buffers_can_change;
-   guint32 min_queued_bufs;
- 
-   gint video_width, video_height;      /* original (unscaled) video w/h */
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-good/files/gst-0.10.27-0008-add-rowstride-support.patch b/media-libs/gst-plugins-good/files/gst-0.10.27-0008-add-rowstride-support.patch
deleted file mode 100644
index f4ff893..0000000
--- a/media-libs/gst-plugins-good/files/gst-0.10.27-0008-add-rowstride-support.patch
+++ /dev/null
@@ -1,572 +0,0 @@
-From a86d0326df31103c2ee38ee1e0c62802a758ef13 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Fri, 21 May 2010 15:21:32 -0500
-Subject: [PATCH 08/11] add rowstride support
-
----
- sys/v4l2/gstv4l2object.c |  141 +++++++++++++++++++++++++++++++++++++---------
- sys/v4l2/gstv4l2object.h |    6 +-
- sys/v4l2/gstv4l2sink.c   |   61 +++++++++++++-------
- sys/v4l2/gstv4l2src.c    |   28 +++++----
- 4 files changed, 174 insertions(+), 62 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2object.c b/sys/v4l2/gstv4l2object.c
-index f5672b5..5e34456 100644
---- a/sys/v4l2/gstv4l2object.c
-+++ b/sys/v4l2/gstv4l2object.c
-@@ -1064,16 +1064,23 @@ gst_v4l2_object_get_format_list (GstV4l2Object * v4l2object)
-   return v4l2object->formats;
- }
- 
--
--GstStructure *
--gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc)
-+/*
-+ * gst_v4l2_object_v4l2fourcc_to_structures:
-+ * @fourcc: requested format
-+ * @structures: an array of at least MAX_STRUCTS_PER_FOURCC to return the
-+ *   results in
-+ *
-+ * Returns the number of structures returned via structures
-+ */
-+gint
-+gst_v4l2_object_v4l2fourcc_to_structures (guint32 fourcc,
-+    GstStructure ** structures)
- {
--  GstStructure *structure = NULL;
--
-+  gint count = 0;
-   switch (fourcc) {
-     case V4L2_PIX_FMT_MJPEG:   /* Motion-JPEG */
-     case V4L2_PIX_FMT_JPEG:    /* JFIF JPEG */
--      structure = gst_structure_new ("image/jpeg", NULL);
-+      structures[count++] = gst_structure_new ("image/jpeg", NULL);
-       break;
-     case V4L2_PIX_FMT_RGB332:
-     case V4L2_PIX_FMT_RGB555:
-@@ -1151,17 +1158,25 @@ gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc)
-           g_assert_not_reached ();
-           break;
-       }
--      structure = gst_structure_new ("video/x-raw-rgb",
-+      structures[count++] = gst_structure_new ("video/x-raw-rgb",
-           "bpp", G_TYPE_INT, bpp,
-           "depth", G_TYPE_INT, depth,
-           "red_mask", G_TYPE_INT, r_mask,
-           "green_mask", G_TYPE_INT, g_mask,
-           "blue_mask", G_TYPE_INT, b_mask,
-           "endianness", G_TYPE_INT, endianness, NULL);
-+      structures[count++] = gst_structure_new ("video/x-raw-rgb-strided",
-+          "bpp", G_TYPE_INT, bpp,
-+          "depth", G_TYPE_INT, depth,
-+          "red_mask", G_TYPE_INT, r_mask,
-+          "green_mask", G_TYPE_INT, g_mask,
-+          "blue_mask", G_TYPE_INT, b_mask,
-+          "endianness", G_TYPE_INT, endianness,
-+          "rowstride", GST_TYPE_INT_RANGE, 1, G_MAXINT, NULL);
-       break;
-     }
-     case V4L2_PIX_FMT_GREY:    /*  8  Greyscale     */
--      structure = gst_structure_new ("video/x-raw-gray",
-+      structures[count++] = gst_structure_new ("video/x-raw-gray",
-           "bpp", G_TYPE_INT, 8, NULL);
-       break;
-     case V4L2_PIX_FMT_YYUV:    /* 16  YUV 4:2:2     */
-@@ -1227,38 +1242,41 @@ gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc)
-           g_assert_not_reached ();
-           break;
-       }
--      structure = gst_structure_new ("video/x-raw-yuv",
-+      structures[count++] = gst_structure_new ("video/x-raw-yuv",
-           "format", GST_TYPE_FOURCC, fcc, NULL);
-+      structures[count++] = gst_structure_new ("video/x-raw-yuv-strided",
-+          "format", GST_TYPE_FOURCC, fcc,
-+          "rowstride", GST_TYPE_INT_RANGE, 1, G_MAXINT, NULL);
-       break;
-     }
-     case V4L2_PIX_FMT_DV:
--      structure =
-+      structures[count++] =
-           gst_structure_new ("video/x-dv", "systemstream", G_TYPE_BOOLEAN, TRUE,
-           NULL);
-       break;
-     case V4L2_PIX_FMT_MPEG:    /* MPEG          */
--      structure = gst_structure_new ("video/mpegts", NULL);
-+      structures[count++] = gst_structure_new ("video/mpegts", NULL);
-       break;
-     case V4L2_PIX_FMT_WNVA:    /* Winnov hw compres */
-       break;
- #ifdef V4L2_PIX_FMT_SBGGR8
-     case V4L2_PIX_FMT_SBGGR8:
--      structure = gst_structure_new ("video/x-raw-bayer", NULL);
-+      structures[count++] = gst_structure_new ("video/x-raw-bayer", NULL);
-       break;
- #endif
- #ifdef V4L2_PIX_FMT_SN9C10X
-     case V4L2_PIX_FMT_SN9C10X:
--      structure = gst_structure_new ("video/x-sonix", NULL);
-+      structures[count++] = gst_structure_new ("video/x-sonix", NULL);
-       break;
- #endif
- #ifdef V4L2_PIX_FMT_PWC1
-     case V4L2_PIX_FMT_PWC1:
--      structure = gst_structure_new ("video/x-pwc1", NULL);
-+      structures[count++] = gst_structure_new ("video/x-pwc1", NULL);
-       break;
- #endif
- #ifdef V4L2_PIX_FMT_PWC2
-     case V4L2_PIX_FMT_PWC2:
--      structure = gst_structure_new ("video/x-pwc2", NULL);
-+      structures[count++] = gst_structure_new ("video/x-pwc2", NULL);
-       break;
- #endif
-     default:
-@@ -1267,7 +1285,7 @@ gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc)
-       break;
-   }
- 
--  return structure;
-+  return count;
- }
- 
- 
-@@ -1278,22 +1296,23 @@ gst_v4l2_object_get_all_caps (void)
-   static GstCaps *caps = NULL;
- 
-   if (caps == NULL) {
--    GstStructure *structure;
--
-     guint i;
- 
-     caps = gst_caps_new_empty ();
-     for (i = 0; i < GST_V4L2_FORMAT_COUNT; i++) {
--      structure =
--          gst_v4l2_object_v4l2fourcc_to_structure (gst_v4l2_formats[i].format);
--      if (structure) {
-+      GstStructure *structures[MAX_STRUCTS_PER_FOURCC];
-+      gint count, j;
-+      count =
-+          gst_v4l2_object_v4l2fourcc_to_structures (gst_v4l2_formats[i].format,
-+          structures);
-+      for (j = 0; j < count; j++) {
-         if (gst_v4l2_formats[i].dimensions) {
--          gst_structure_set (structure,
-+          gst_structure_set (structures[j],
-               "width", GST_TYPE_INT_RANGE, 1, GST_V4L2_MAX_SIZE,
-               "height", GST_TYPE_INT_RANGE, 1, GST_V4L2_MAX_SIZE,
-               "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, 100, 1, NULL);
-         }
--        gst_caps_append_structure (caps, structure);
-+        gst_caps_append_structure (caps, structures[j]);
-       }
-     }
-   }
-@@ -1306,12 +1325,14 @@ gst_v4l2_object_get_all_caps (void)
-  * @caps: given input caps
-  * @format: location for the v4l format
-  * @w/@h: location for width and height
-+ * @rs: required rowstride in bytes, or 0 if natural stride (based on format
-+ *   and width) or not-applicable
-  * @fps_n/@fps_d: location for framerate
-  * @size: location for expected size of the frame or 0 if unknown
-  */
- gboolean
- gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps,
--    struct v4l2_fmtdesc ** format, gint * w, gint * h,
-+    struct v4l2_fmtdesc ** format, gint * w, gint * h, gint * rs,
-     gboolean * interlaced, guint * fps_n, guint * fps_d, guint * size)
- {
-   GstStructure *structure;
-@@ -1319,10 +1340,12 @@ gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps,
-   guint32 fourcc;
-   const gchar *mimetype;
-   guint outsize;
-+  struct v4l2_format fmt = { 0, };
- 
-   /* default unknown values */
-   fourcc = 0;
-   outsize = 0;
-+  *rs = 0;
- 
-   structure = gst_caps_get_structure (caps, 0);
- 
-@@ -1351,61 +1374,73 @@ gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps,
-   *fps_n = gst_value_get_fraction_numerator (framerate);
-   *fps_d = gst_value_get_fraction_denominator (framerate);
- 
--  if (!strcmp (mimetype, "video/x-raw-yuv")) {
-+  if (!strcmp (mimetype, "video/x-raw-yuv") ||
-+      !strcmp (mimetype, "video/x-raw-yuv-strided")) {
-     gst_structure_get_fourcc (structure, "format", &fourcc);
- 
-     switch (fourcc) {
-       case GST_MAKE_FOURCC ('I', '4', '2', '0'):
-       case GST_MAKE_FOURCC ('I', 'Y', 'U', 'V'):
-         fourcc = V4L2_PIX_FMT_YUV420;
-+        *rs = GST_ROUND_UP_4 (*w);
-         outsize = GST_ROUND_UP_4 (*w) * GST_ROUND_UP_2 (*h);
-         outsize += 2 * ((GST_ROUND_UP_8 (*w) / 2) * (GST_ROUND_UP_2 (*h) / 2));
-         break;
-       case GST_MAKE_FOURCC ('Y', 'U', 'Y', '2'):
-         fourcc = V4L2_PIX_FMT_YUYV;
-+        *rs = GST_ROUND_UP_2 (*w) * 2;
-         outsize = (GST_ROUND_UP_2 (*w) * 2) * *h;
-         break;
-       case GST_MAKE_FOURCC ('Y', '4', '1', 'P'):
-         fourcc = V4L2_PIX_FMT_Y41P;
-+        *rs = GST_ROUND_UP_2 (*w) * 2;
-         outsize = (GST_ROUND_UP_2 (*w) * 2) * *h;
-         break;
-       case GST_MAKE_FOURCC ('U', 'Y', 'V', 'Y'):
-         fourcc = V4L2_PIX_FMT_UYVY;
-+        *rs = GST_ROUND_UP_2 (*w) * 2;
-         outsize = (GST_ROUND_UP_2 (*w) * 2) * *h;
-         break;
-       case GST_MAKE_FOURCC ('Y', 'V', '1', '2'):
-         fourcc = V4L2_PIX_FMT_YVU420;
-+        *rs = GST_ROUND_UP_4 (*w);
-         outsize = GST_ROUND_UP_4 (*w) * GST_ROUND_UP_2 (*h);
-         outsize += 2 * ((GST_ROUND_UP_8 (*w) / 2) * (GST_ROUND_UP_2 (*h) / 2));
-         break;
-       case GST_MAKE_FOURCC ('Y', '4', '1', 'B'):
-         fourcc = V4L2_PIX_FMT_YUV411P;
-+        *rs = GST_ROUND_UP_4 (*w);
-         outsize = GST_ROUND_UP_4 (*w) * *h;
-         outsize += 2 * ((GST_ROUND_UP_8 (*w) / 4) * *h);
-         break;
-       case GST_MAKE_FOURCC ('Y', '4', '2', 'B'):
-         fourcc = V4L2_PIX_FMT_YUV422P;
-+        *rs = GST_ROUND_UP_4 (*w);
-         outsize = GST_ROUND_UP_4 (*w) * *h;
-         outsize += 2 * ((GST_ROUND_UP_8 (*w) / 2) * *h);
-         break;
-       case GST_MAKE_FOURCC ('N', 'V', '1', '2'):
-         fourcc = V4L2_PIX_FMT_NV12;
-+        *rs = GST_ROUND_UP_4 (*w);
-         outsize = GST_ROUND_UP_4 (*w) * GST_ROUND_UP_2 (*h);
-         outsize += (GST_ROUND_UP_4 (*w) * *h) / 2;
-         break;
-       case GST_MAKE_FOURCC ('N', 'V', '2', '1'):
-         fourcc = V4L2_PIX_FMT_NV21;
-+        *rs = GST_ROUND_UP_4 (*w);
-         outsize = GST_ROUND_UP_4 (*w) * GST_ROUND_UP_2 (*h);
-         outsize += (GST_ROUND_UP_4 (*w) * *h) / 2;
-         break;
- #ifdef V4L2_PIX_FMT_YVYU
-       case GST_MAKE_FOURCC ('Y', 'V', 'Y', 'U'):
-         fourcc = V4L2_PIX_FMT_YVYU;
-+        *rs = GST_ROUND_UP_2 (*w) * 2;
-         outsize = (GST_ROUND_UP_2 (*w) * 2) * *h;
-         break;
- #endif
-     }
--  } else if (!strcmp (mimetype, "video/x-raw-rgb")) {
-+  } else if (!strcmp (mimetype, "video/x-raw-rgb") ||
-+      !strcmp (mimetype, "video/x-raw-rgb-strided")) {
-     gint bpp, endianness, r_mask;
- 
-     gst_structure_get_int (structure, "bpp", &bpp);
-@@ -1415,20 +1450,25 @@ gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps,
-     switch (bpp) {
-       case 8:
-         fourcc = V4L2_PIX_FMT_RGB332;
-+        *rs = *w;
-         break;
-       case 15:
-         fourcc = (endianness == G_LITTLE_ENDIAN) ?
-             V4L2_PIX_FMT_RGB555 : V4L2_PIX_FMT_RGB555X;
-+        *rs = 2 * *w;
-         break;
-       case 16:
-         fourcc = (endianness == G_LITTLE_ENDIAN) ?
-             V4L2_PIX_FMT_RGB565 : V4L2_PIX_FMT_RGB565X;
-+        *rs = 2 * *w;
-         break;
-       case 24:
-         fourcc = (r_mask == 0xFF) ? V4L2_PIX_FMT_BGR24 : V4L2_PIX_FMT_RGB24;
-+        *rs = 3 * *w;
-         break;
-       case 32:
-         fourcc = (r_mask == 0xFF) ? V4L2_PIX_FMT_BGR32 : V4L2_PIX_FMT_RGB32;
-+        *rs = 4 * *w;
-         break;
-     }
-   } else if (strcmp (mimetype, "video/x-dv") == 0) {
-@@ -1458,6 +1498,25 @@ gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps,
-   if (fourcc == 0)
-     return FALSE;
- 
-+  /* check what stride the driver supports */
-+  fmt.type = v4l2object->type;
-+  fmt.fmt.pix.width = *w;
-+  fmt.fmt.pix.height = *h;
-+  fmt.fmt.pix.pixelformat = fourcc;
-+  fmt.fmt.pix.field = V4L2_FIELD_ANY;
-+  fmt.fmt.pix.bytesperline = *rs;
-+  if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_TRY_FMT, &fmt) >= 0) {
-+    if (fmt.fmt.pix.bytesperline == *rs) {
-+      *rs = 0;
-+    } else {
-+      *rs = fmt.fmt.pix.bytesperline;
-+    }
-+    GST_INFO_OBJECT (v4l2object->element, "rowstride: %d", *rs);
-+  } else {
-+    GST_WARNING_OBJECT (v4l2object->element,
-+        "VIDIOC_TRY_FMT should not fail.. driver problem?");
-+  }
-+
- done:
-   *format = gst_v4l2_object_get_format_from_fourcc (v4l2object, fourcc);
-   *size = outsize;
-@@ -1465,6 +1524,36 @@ done:
-   return TRUE;
- }
- 
-+/* Update caps to reflect rowstride that has been requested by the
-+ * driver
-+ */
-+GstCaps *
-+gst_v4l2_object_update_rowstride (GstV4l2Object * v4l2object,
-+    GstCaps * caps, gint rs)
-+{
-+  GstStructure *structure;
-+  const gchar *mimetype;
-+
-+  caps = gst_caps_make_writable (caps);
-+
-+  structure = gst_caps_get_structure (caps, 0);
-+  mimetype = gst_structure_get_name (structure);
-+
-+  if (!strcmp (mimetype, "video/x-raw-yuv")) {
-+    mimetype = "video/x-raw-yuv-strided";
-+    gst_structure_set_name (structure, mimetype);
-+  } else if (!strcmp (mimetype, "video/x-raw-rgb")) {
-+    mimetype = "video/x-raw-rgb-strided";
-+    gst_structure_set_name (structure, mimetype);
-+  }
-+
-+  if (!strcmp (mimetype, "video/x-raw-yuv-strided") ||
-+      !strcmp (mimetype, "video/x-raw-rgb-strided")) {
-+    gst_structure_set (structure, "rowstride", G_TYPE_INT, rs, NULL);
-+  }
-+
-+  return caps;
-+}
- 
- static gboolean
- gst_v4l2_object_get_nearest_size (GstV4l2Object * v4l2object,
-diff --git a/sys/v4l2/gstv4l2object.h b/sys/v4l2/gstv4l2object.h
-index a0dd41c..228e7c7 100644
---- a/sys/v4l2/gstv4l2object.h
-+++ b/sys/v4l2/gstv4l2object.h
-@@ -179,15 +179,17 @@ GstCaps*      gst_v4l2_object_probe_caps_for_format (GstV4l2Object *v4l2object,
-                                              const GstStructure * template);
- 
- gboolean      gst_v4l2_object_get_caps_info (GstV4l2Object *v4l2object, GstCaps *caps,
--                                             struct v4l2_fmtdesc **format, gint *w, gint *h,
-+                                             struct v4l2_fmtdesc **format, gint *w, gint *h, gint *rs,
-                                              gboolean * interlaced, guint *fps_n, guint *fps_d, guint *size);
- 
-+GstCaps *     gst_v4l2_object_update_rowstride (GstV4l2Object * v4l2object, GstCaps * caps, gint rs);
- 
- GSList*       gst_v4l2_object_get_format_list  (GstV4l2Object *v4l2object);
- 
- GstCaps*      gst_v4l2_object_get_all_caps (void);
- 
--GstStructure* gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc);
-+#define MAX_STRUCTS_PER_FOURCC 2
-+gint          gst_v4l2_object_v4l2fourcc_to_structures (guint32 fourcc, GstStructure ** structures);
- 
- gboolean      gst_v4l2_object_set_format (GstV4l2Object *v4l2object, guint32 pixelformat, guint32 width, guint32 height, gboolean interlaced);
- 
-diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
-index 12323f7..a1f78cf 100644
---- a/sys/v4l2/gstv4l2sink.c
-+++ b/sys/v4l2/gstv4l2sink.c
-@@ -776,24 +776,23 @@ gst_v4l2sink_get_caps (GstBaseSink * bsink)
-   for (walk = v4l2sink->v4l2object->formats; walk; walk = walk->next) {
-     struct v4l2_fmtdesc *format;
- 
--    GstStructure *template;
-+    GstStructure *templates[MAX_STRUCTS_PER_FOURCC];
-+    gint count, i;
- 
-     format = (struct v4l2_fmtdesc *) walk->data;
- 
--    template = gst_v4l2_object_v4l2fourcc_to_structure (format->pixelformat);
-+    count = gst_v4l2_object_v4l2fourcc_to_structures (format->pixelformat,
-+        templates);
- 
--    if (template) {
-+    for (i = 0; i < count; i++) {
-       GstCaps *tmp;
- 
--      tmp =
--          gst_v4l2_object_probe_caps_for_format (v4l2sink->v4l2object,
--          format->pixelformat, template);
-+      tmp = gst_v4l2_object_probe_caps_for_format (v4l2sink->v4l2object,
-+          format->pixelformat, templates[i]);
-       if (tmp)
-         gst_caps_append (ret, tmp);
- 
--      gst_structure_free (template);
--    } else {
--      GST_DEBUG_OBJECT (v4l2sink, "unknown format %u", format->pixelformat);
-+      gst_structure_free (templates[i]);
-     }
-   }
- 
-@@ -810,7 +809,7 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
- {
-   GstV4l2Sink *v4l2sink = GST_V4L2SINK (bsink);
-   GstQuery *query;
--  gint w = 0, h = 0;
-+  gint w = 0, h = 0, rs = 0;
-   gboolean interlaced;
-   struct v4l2_fmtdesc *format;
-   guint fps_n, fps_d;
-@@ -823,11 +822,36 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
-     return FALSE;
-   }
- 
-+  /* we want our own v4l2 type of fourcc codes */
-+  if (!gst_v4l2_object_get_caps_info (v4l2sink->v4l2object, caps,
-+          &format, &w, &h, &rs, &interlaced, &fps_n, &fps_d, &size)) {
-+    GST_DEBUG_OBJECT (v4l2sink, "can't get capture format from caps %p", caps);
-+    return FALSE;
-+  }
-+
-+  if (!format) {
-+    GST_DEBUG_OBJECT (v4l2sink, "unrecognized caps!!");
-+    return FALSE;
-+  }
-+
-+  /* we need to make our own ref before we potentially update the
-+   * caps, to avoid that we release a ref that is not owned by us
-+   * when we make the caps writable
-+   */
-+  caps = gst_caps_ref (caps);
-+
-+  /* if necessary, update caps for rowstride */
-+  if (rs) {
-+    caps = gst_v4l2_object_update_rowstride (v4l2sink->v4l2object, caps, rs);
-+    GST_DEBUG_OBJECT (v4l2sink, "updated caps: %" GST_PTR_FORMAT, caps);
-+  }
-+
-   if (v4l2sink->current_caps) {
-     GST_DEBUG_OBJECT (v4l2sink, "already have caps set.. are they equal?");
-     LOG_CAPS (v4l2sink, v4l2sink->current_caps);
-     if (gst_caps_is_equal (v4l2sink->current_caps, caps)) {
-       GST_DEBUG_OBJECT (v4l2sink, "yes they are!");
-+      gst_caps_unref (caps);
-       return TRUE;
-     }
-     GST_DEBUG_OBJECT (v4l2sink, "no they aren't!");
-@@ -842,18 +866,7 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
-      *
-      */
-     GST_DEBUG_OBJECT (v4l2sink, "warning, changing caps not supported yet");
--    return FALSE;
--  }
--
--  /* we want our own v4l2 type of fourcc codes */
--  if (!gst_v4l2_object_get_caps_info (v4l2sink->v4l2object, caps,
--          &format, &w, &h, &interlaced, &fps_n, &fps_d, &size)) {
--    GST_DEBUG_OBJECT (v4l2sink, "can't get capture format from caps %p", caps);
--    return FALSE;
--  }
--
--  if (!format) {
--    GST_DEBUG_OBJECT (v4l2sink, "unrecognized caps!!");
-+    gst_caps_unref (caps);
-     return FALSE;
-   }
- 
-@@ -893,6 +906,7 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
-   if (!gst_v4l2_object_set_format (v4l2sink->v4l2object, format->pixelformat,
-           w, h, interlaced)) {
-     /* error already posted */
-+    gst_caps_unref (caps);
-     return FALSE;
-   }
- 
-@@ -951,6 +965,9 @@ gst_v4l2sink_buffer_alloc (GstBaseSink * bsink, guint64 offset, guint size,
-         return GST_FLOW_ERROR;
-       }
- 
-+      /* caps may have changed in _set_caps() if we need rowstride */
-+      caps = v4l2sink->current_caps;
-+
-       GST_V4L2_CHECK_OPEN (v4l2sink->v4l2object);
- 
-       if (!(v4l2sink->pool = gst_v4l2_buffer_pool_new (GST_ELEMENT (v4l2sink),
-diff --git a/sys/v4l2/gstv4l2src.c b/sys/v4l2/gstv4l2src.c
-index 4a37d35..a9a7787 100644
---- a/sys/v4l2/gstv4l2src.c
-+++ b/sys/v4l2/gstv4l2src.c
-@@ -581,24 +581,23 @@ gst_v4l2src_get_caps (GstBaseSrc * src)
-   for (walk = v4l2src->v4l2object->formats; walk; walk = walk->next) {
-     struct v4l2_fmtdesc *format;
- 
--    GstStructure *template;
-+    GstStructure *templates[MAX_STRUCTS_PER_FOURCC];
-+    gint count, i;
- 
-     format = (struct v4l2_fmtdesc *) walk->data;
- 
--    template = gst_v4l2_object_v4l2fourcc_to_structure (format->pixelformat);
-+    count = gst_v4l2_object_v4l2fourcc_to_structures (format->pixelformat,
-+        templates);
- 
--    if (template) {
-+    for (i = 0; i < count; i++) {
-       GstCaps *tmp;
- 
--      tmp =
--          gst_v4l2_object_probe_caps_for_format (v4l2src->v4l2object,
--          format->pixelformat, template);
-+      tmp = gst_v4l2_object_probe_caps_for_format (v4l2src->v4l2object,
-+          format->pixelformat, templates[i]);
-       if (tmp)
-         gst_caps_append (ret, tmp);
- 
--      gst_structure_free (template);
--    } else {
--      GST_DEBUG_OBJECT (v4l2src, "unknown format %u", format->pixelformat);
-+      gst_structure_free (templates[i]);
-     }
-   }
- 
-@@ -613,7 +612,7 @@ static gboolean
- gst_v4l2src_set_caps (GstBaseSrc * src, GstCaps * caps)
- {
-   GstV4l2Src *v4l2src;
--  gint w = 0, h = 0;
-+  gint w = 0, h = 0, rs = 0;
-   gboolean interlaced;
-   struct v4l2_fmtdesc *format;
-   guint fps_n, fps_d;
-@@ -635,13 +634,18 @@ gst_v4l2src_set_caps (GstBaseSrc * src, GstCaps * caps)
-   }
- 
-   /* we want our own v4l2 type of fourcc codes */
--  if (!gst_v4l2_object_get_caps_info (v4l2src->v4l2object, caps, &format, &w,
--          &h, &interlaced, &fps_n, &fps_d, &size)) {
-+  if (!gst_v4l2_object_get_caps_info (v4l2src->v4l2object, caps, &format,
-+      &w, &h, &rs, &interlaced, &fps_n, &fps_d, &size)) {
-     GST_INFO_OBJECT (v4l2src,
-         "can't get capture format from caps %" GST_PTR_FORMAT, caps);
-     return FALSE;
-   }
- 
-+  /* if necessary, update caps for rowstride */
-+  if (rs) {
-+    caps = gst_v4l2_object_update_rowstride (v4l2src->v4l2object, caps, rs);
-+  }
-+
-   GST_DEBUG_OBJECT (v4l2src, "trying to set_capture %dx%d at %d/%d fps, "
-       "format %s", w, h, fps_n, fps_d, format->description);
- 
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-good/files/gst-0.10.27-0009-use-GstEventCrop-to-get-crop-info.patch b/media-libs/gst-plugins-good/files/gst-0.10.27-0009-use-GstEventCrop-to-get-crop-info.patch
deleted file mode 100644
index c5d3197..0000000
--- a/media-libs/gst-plugins-good/files/gst-0.10.27-0009-use-GstEventCrop-to-get-crop-info.patch
+++ /dev/null
@@ -1,119 +0,0 @@
-From e7497b9f0c6c88b764d8f95e01197e2a2ea0dd95 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Tue, 25 May 2010 11:02:45 -0500
-Subject: [PATCH 09/11] use GstEventCrop to get crop info
-
----
- sys/v4l2/gstv4l2sink.c |   63 +++++++++++++++++++++++++++++++++++++++++++++++-
- 1 files changed, 62 insertions(+), 1 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
-index a1f78cf..feafe7a 100644
---- a/sys/v4l2/gstv4l2sink.c
-+++ b/sys/v4l2/gstv4l2sink.c
-@@ -252,6 +252,7 @@ static GstCaps *gst_v4l2sink_get_caps (GstBaseSink * bsink);
- static gboolean gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps);
- static GstFlowReturn gst_v4l2sink_buffer_alloc (GstBaseSink * bsink,
-     guint64 offset, guint size, GstCaps * caps, GstBuffer ** buf);
-+static gboolean gst_v4l2sink_event (GstBaseSink * bsink, GstEvent * event);
- static GstFlowReturn gst_v4l2sink_show_frame (GstBaseSink * bsink,
-     GstBuffer * buf);
- static void gst_v4l2sink_sync_rotation (GstV4l2Sink * v4l2sink);
-@@ -354,6 +355,7 @@ gst_v4l2sink_class_init (GstV4l2SinkClass * klass)
-   basesink_class->get_caps = GST_DEBUG_FUNCPTR (gst_v4l2sink_get_caps);
-   basesink_class->set_caps = GST_DEBUG_FUNCPTR (gst_v4l2sink_set_caps);
-   basesink_class->buffer_alloc = GST_DEBUG_FUNCPTR (gst_v4l2sink_buffer_alloc);
-+  basesink_class->event = GST_DEBUG_FUNCPTR (gst_v4l2sink_event);
-   basesink_class->render = GST_DEBUG_FUNCPTR (gst_v4l2sink_show_frame);
- }
- 
-@@ -895,11 +897,22 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
- 
-     gst_query_parse_buffers_dimensions (query, &min_width, &min_height);
-     if (min_width > w) {
-+      v4l2sink->crop.width = w;
-+      v4l2sink->crop_fields_set |= RECT_WIDTH_SET;
-       w = min_width;
-     }
-     if (min_height > h) {
-+      v4l2sink->crop.height = h;
-+      v4l2sink->crop_fields_set |= RECT_HEIGHT_SET;
-       h = min_height;
-     }
-+
-+    /* clear top/left crop values.. otherwise by default display will try
-+     * to center, rather than scale, the image if it is too big to fit on
-+     * display
-+     */
-+    v4l2sink->crop.top = v4l2sink->crop.left = 0;
-+    v4l2sink->crop_fields_set |= RECT_TOP_SET | RECT_LEFT_SET;
-   }
-   gst_query_unref (query);
- 
-@@ -919,7 +932,13 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
-   GST_VIDEO_SINK_WIDTH (v4l2sink) = w;
-   GST_VIDEO_SINK_HEIGHT (v4l2sink) = h;
- 
--  v4l2sink->current_caps = gst_caps_ref (caps);
-+  /* this needs to go after gst_v4l2_object_set_format() to ensure driver
-+   * has proper width/height (so we don't confuse it's error checking by
-+   * setting a crop larger than the picture size)
-+   */
-+  gst_v4l2sink_sync_crop_fields (v4l2sink);
-+
-+  v4l2sink->current_caps = caps;
- 
-   return TRUE;
- }
-@@ -1023,6 +1042,48 @@ gst_v4l2sink_buffer_alloc (GstBaseSink * bsink, guint64 offset, guint size,
-   }
- }
- 
-+/* called to handle events */
-+static gboolean
-+gst_v4l2sink_event (GstBaseSink * bsink, GstEvent * event)
-+{
-+  GstV4l2Sink *v4l2sink = GST_V4L2SINK (bsink);
-+  GstEventType type = GST_EVENT_TYPE (event);
-+
-+  GST_DEBUG_OBJECT (v4l2sink, "event %" GST_PTR_FORMAT, event);
-+
-+  switch (type) {
-+    case GST_EVENT_CROP:{
-+      gint top, left, width, height;
-+      gst_event_parse_crop (event, &top, &left, &width, &height);
-+      if (top >= 0) {
-+        v4l2sink->crop.top = top;
-+        v4l2sink->crop_fields_set |= RECT_TOP_SET;
-+      }
-+      if (left >= 0) {
-+        v4l2sink->crop.left = left;
-+        v4l2sink->crop_fields_set |= RECT_LEFT_SET;
-+      }
-+      if (width >= 0) {
-+        v4l2sink->crop.width = width;
-+        v4l2sink->crop_fields_set |= RECT_WIDTH_SET;
-+      }
-+      if (height >= 0) {
-+        v4l2sink->crop.height = height;
-+        v4l2sink->crop_fields_set |= RECT_HEIGHT_SET;
-+      }
-+      gst_v4l2sink_sync_crop_fields (v4l2sink);
-+      return TRUE;
-+    }
-+    default:{
-+      if (GST_BASE_SINK_CLASS (parent_class)->event) {
-+        return GST_BASE_SINK_CLASS (parent_class)->event (bsink, event);
-+      } else {
-+        return TRUE;
-+      }
-+    }
-+  }
-+}
-+
- /* called after A/V sync to render frame */
- static GstFlowReturn
- gst_v4l2sink_show_frame (GstBaseSink * bsink, GstBuffer * buf)
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-good/files/gst-0.10.27-0010-v4l2-prefer-NV12.patch b/media-libs/gst-plugins-good/files/gst-0.10.27-0010-v4l2-prefer-NV12.patch
deleted file mode 100644
index 301056a..0000000
--- a/media-libs/gst-plugins-good/files/gst-0.10.27-0010-v4l2-prefer-NV12.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 107c18830342c69229857f968dff33071d07992d Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Tue, 14 Sep 2010 07:44:01 -0500
-Subject: [PATCH 10/11] v4l2: prefer NV12
-
-All else being equal, the buffer sizes are smaller compared to a 422 format
-like YUY2/UYVY..  although ideally rank would come from driver.
----
- sys/v4l2/gstv4l2object.c |    3 +++
- 1 files changed, 3 insertions(+), 0 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2object.c b/sys/v4l2/gstv4l2object.c
-index 5e34456..644edcf 100644
---- a/sys/v4l2/gstv4l2object.c
-+++ b/sys/v4l2/gstv4l2object.c
-@@ -886,6 +886,9 @@ gst_v4l2_object_format_get_rank (const struct v4l2_fmtdesc *fmt)
-       break;
- 
-     case V4L2_PIX_FMT_NV12:    /* 12  Y/CbCr 4:2:0  */
-+      rank = YUV_BASE_RANK + 11;
-+      break;
-+
-     case V4L2_PIX_FMT_NV21:    /* 12  Y/CrCb 4:2:0  */
-     case V4L2_PIX_FMT_YYUV:    /* 16  YUV 4:2:2     */
-     case V4L2_PIX_FMT_HI240:   /*  8  8-bit color   */
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-good/files/gst-0.10.27-0011-v4l2sink-fix-issue-seen-with-autoconvert.patch b/media-libs/gst-plugins-good/files/gst-0.10.27-0011-v4l2sink-fix-issue-seen-with-autoconvert.patch
deleted file mode 100644
index 3384de7..0000000
--- a/media-libs/gst-plugins-good/files/gst-0.10.27-0011-v4l2sink-fix-issue-seen-with-autoconvert.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 4e319948c62aafd5339c38d065fd8dbfa5a09ced Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Thu, 13 Jan 2011 09:43:08 -0600
-Subject: [PATCH 11/11] v4l2sink: fix issue seen with autoconvert
-
-In this scenario _set_caps() will get called earlier than _buffer_alloc()
-so we need to not override the number of buffers in the case that the
-upstream element answers the query about number of requested buffers.
----
- sys/v4l2/gstv4l2sink.c |    6 ++++--
- 1 files changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
-index feafe7a..ca6ae15 100644
---- a/sys/v4l2/gstv4l2sink.c
-+++ b/sys/v4l2/gstv4l2sink.c
-@@ -881,6 +881,8 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
- 
-     gst_query_parse_buffers_count (query, &min_buffers);
- 
-+    GST_DEBUG_OBJECT (v4l2sink, "min_buffers=%d", min_buffers);
-+
-     /* XXX need to account for some buffers used by queue, etc.. probably
-      * queue should handle query, pass on to sink pad, and then add some
-      * number of buffers to the min, so this value is dynamic depending
-@@ -888,10 +890,10 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
-      */
-     if (min_buffers != -1) {
-       min_buffers += 3 + v4l2sink->min_queued_bufs;
-+      v4l2sink->num_buffers_can_change = FALSE;
-     }
- 
-     if (min_buffers > v4l2sink->num_buffers) {
--      v4l2sink->num_buffers_can_change = FALSE;
-       v4l2sink->num_buffers = min_buffers;
-     }
- 
-@@ -972,7 +974,7 @@ gst_v4l2sink_buffer_alloc (GstBaseSink * bsink, guint64 offset, guint size,
-        * than four buffers:
-        */
-       if (!strcmp ("omap_vout", driver)) {
--        if (v4l2sink->num_buffers > 4) {
-+        if (v4l2sink->num_buffers_can_change && v4l2sink->num_buffers > 4) {
-           v4l2sink->num_buffers = 4;
-           GST_DEBUG_OBJECT (v4l2sink,
-               "limiting to 4 buffers to work-around omap_vout driver bug");
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-good/files/gst-0.10.27-0099-v4l2sink-Disable-rotation-code-when-not-found.patch b/media-libs/gst-plugins-good/files/gst-0.10.27-0099-v4l2sink-Disable-rotation-code-when-not-found.patch
deleted file mode 100644
index 4a2b992..0000000
--- a/media-libs/gst-plugins-good/files/gst-0.10.27-0099-v4l2sink-Disable-rotation-code-when-not-found.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-From 606df19aa1230d0c6081e85d914c866eb7674a5a Mon Sep 17 00:00:00 2001
-From: Daniel Diaz <ddiaz@ti.com>
-Date: Fri, 28 Jan 2011 15:23:26 -0600
-Subject: [PATCH] v4l2sink: Disable rotation code when not found.
-
-Kernel headers might not include support for V4L2 rotation.
-
-Signed-off-by: Daniel Diaz <ddiaz@ti.com>
----
- sys/v4l2/gstv4l2sink.c |   14 ++++++++++++++
- 1 files changed, 14 insertions(+), 0 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
-index ca6ae15..374de88 100644
---- a/sys/v4l2/gstv4l2sink.c
-+++ b/sys/v4l2/gstv4l2sink.c
-@@ -255,7 +255,9 @@ static GstFlowReturn gst_v4l2sink_buffer_alloc (GstBaseSink * bsink,
- static gboolean gst_v4l2sink_event (GstBaseSink * bsink, GstEvent * event);
- static GstFlowReturn gst_v4l2sink_show_frame (GstBaseSink * bsink,
-     GstBuffer * buf);
-+#ifdef V4L2_CID_ROTATE
- static void gst_v4l2sink_sync_rotation (GstV4l2Sink * v4l2sink);
-+#endif
- 
- static void
- gst_v4l2sink_base_init (gpointer g_class)
-@@ -342,10 +344,12 @@ gst_v4l2sink_class_init (GstV4l2SinkClass * klass)
-           "The height of the video crop; default is equal to negotiated image height",
-           0, 0xffffffff, 0, G_PARAM_READWRITE));
- 
-+#ifdef V4L2_CID_ROTATE
-   g_object_class_install_property (gobject_class, PROP_ROTATION,
-       g_param_spec_int ("rotation", "Rotation angle",
-           "Rotation angle for the image", MIN_ROTATION_ANGLE,
-           MAX_ROTATION_ANGLE, DEFAULT_ROTATION_ANGLE, G_PARAM_READWRITE));
-+#endif
- 
-   g_object_class_install_property (gobject_class, PROP_FLIP,
-       g_param_spec_enum ("flip", "Flip State",
-@@ -420,7 +424,9 @@ gst_v4l2sink_sync_flip (GstV4l2Sink * v4l2sink)
-         break;
-     }
- 
-+#ifdef V4L2_CID_ROTATE
-     gst_v4l2sink_sync_rotation (v4l2sink);
-+#endif
-     control.id = V4L2_CID_VFLIP;
-     g_return_if_fail (v4l2_ioctl (fd, VIDIOC_S_CTRL, &control) >= 0);
-   }
-@@ -562,6 +568,7 @@ gst_v4l2sink_sync_crop_fields (GstV4l2Sink * v4l2sink)
-   }
- }
- 
-+#ifdef V4L2_CID_ROTATE
- static void
- gst_v4l2sink_sync_rotation (GstV4l2Sink * v4l2sink)
- {
-@@ -575,6 +582,7 @@ gst_v4l2sink_sync_rotation (GstV4l2Sink * v4l2sink)
-     g_return_if_fail (v4l2_ioctl (fd, VIDIOC_S_CTRL, &control) >= 0);
-   }
- }
-+#endif
- 
- 
- static void
-@@ -632,10 +640,12 @@ gst_v4l2sink_set_property (GObject * object,
-         v4l2sink->crop_fields_set |= RECT_HEIGHT_SET;
-         gst_v4l2sink_sync_crop_fields (v4l2sink);
-         break;
-+#ifdef V4L2_CID_ROTATE
-       case PROP_ROTATION:
-         v4l2sink->rotation = g_value_get_int (value);
-         gst_v4l2sink_sync_rotation (v4l2sink);
-         break;
-+#endif
-       case PROP_FLIP:
-         v4l2sink->flip = g_value_get_enum (value);
-         gst_v4l2sink_sync_flip (v4l2sink);
-@@ -687,9 +697,11 @@ gst_v4l2sink_get_property (GObject * object,
-       case PROP_CROP_HEIGHT:
-         g_value_set_uint (value, v4l2sink->crop.height);
-         break;
-+#ifdef V4L2_CID_ROTATE
-       case PROP_ROTATION:
-         g_value_set_int (value, v4l2sink->rotation);
-         break;
-+#endif
-       case PROP_FLIP:
-         g_value_set_enum (value, v4l2sink->flip);
-         break;
-@@ -715,7 +727,9 @@ gst_v4l2sink_change_state (GstElement * element, GstStateChange transition)
-       /* open the device */
-       if (!gst_v4l2_object_start (v4l2sink->v4l2object))
-         return GST_STATE_CHANGE_FAILURE;
-+#ifdef V4L2_CID_ROTATE
-       gst_v4l2sink_sync_rotation (v4l2sink);
-+#endif
-       gst_v4l2sink_sync_flip (v4l2sink);
-       break;
-     default:
--- 
-1.7.1
-

diff --git a/media-libs/gst-plugins-good/gst-plugins-good-0.10.27_p20110127.ebuild b/media-libs/gst-plugins-good/gst-plugins-good-0.10.27_p20110127.ebuild
deleted file mode 100644
index 272f98a..0000000
--- a/media-libs/gst-plugins-good/gst-plugins-good-0.10.27_p20110127.ebuild
+++ /dev/null
@@ -1,84 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-# order is important, gnome2 after gst-plugins
-inherit gst-plugins-good gst-plugins10 gnome2 eutils flag-o-matic libtool
-
-DESCRIPTION="Set of Good plug-ins for GStreamer"
-HOMEPAGE="http://gstreamer.net/"
-MY_P=${P%%_*}
-SRC_URI="http://gstreamer.freedesktop.org/src/${PN}/${MY_P}.tar.bz2"
-S="${WORKDIR}/${MY_P}"
-
-LICENSE="LGPL-2.1"
-KEYWORDS="~alpha ~amd64 arm ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd"
-IUSE=""
-
-RDEPEND=">=media-libs/gst-plugins-base-0.10.32
-	>=media-libs/gstreamer-0.10.32
-	>=dev-libs/liboil-0.3.14
-	sys-libs/zlib
-	app-arch/bzip2"
-DEPEND="${RDEPEND}
-	>=sys-devel/gettext-0.11.5
-	dev-util/pkgconfig
-	!<media-libs/gst-plugins-bad-0.10.19"
-
-# Always enable optional bz2 support for matroska
-# Always enable optional zlib support for qtdemux, id3demux and matroska
-# Many media files require these to work, as some container headers are often compressed, bug 291154
-GST_PLUGINS_BUILD="bz2 zlib"
-
-src_unpack() {
-	unpack ${A}
-	cd "${S}"
-	epatch "${FILESDIR}"/gst-0.10.27-0001-v4l2-fix-handling-of-RGB32-BGR32-formats.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0002-v4l2sink-Add-rotation-support.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0003-v4l2sink-Add-flip-property.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0004-v4l2sink-Add-support-for-omap24xxvout-driver.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0005-v4l2sink-Add-support-for-omap_vout-driver.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0006-v4l2-increase-v4l2sink-element-rank.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0007-use-GstQueryBuffers-to-get-buffer-requirements.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0008-add-rowstride-support.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0009-use-GstEventCrop-to-get-crop-info.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0010-v4l2-prefer-NV12.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0011-v4l2sink-fix-issue-seen-with-autoconvert.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0099-v4l2sink-Disable-rotation-code-when-not-found.patch
-}
-
-src_compile() {
-	# gst doesnt handle optimisations well
-	strip-flags
-	replace-flags "-O3" "-O2"
-	filter-flags "-fprefetch-loop-arrays" # see bug 22249
-
-	gst-plugins-good_src_configure \
-		--with-default-audiosink=autoaudiosink \
-		--with-default-visualizer=goom
-
-	emake || die "emake failed."
-}
-
-# override eclass
-src_install() {
-	gnome2_src_install
-}
-
-DOCS="AUTHORS ChangeLog NEWS README RELEASE"
-
-pkg_postinst () {
-	gnome2_pkg_postinst
-
-	echo
-	elog "The GStreamer plugins setup has changed quite a bit on Gentoo,"
-	elog "applications now should provide the basic plugins needed."
-	echo
-	elog "The new seperate plugins are all named 'gst-plugins-<plugin>'."
-	elog "To get a listing of currently available plugins execute 'emerge -s gst-plugins-'."
-	elog "In most cases it shouldn't be needed though to emerge extra plugins."
-}
-
-pkg_postrm() {
-	gnome2_pkg_postrm
-}

diff --git a/media-libs/gstreamer/Manifest b/media-libs/gstreamer/Manifest
deleted file mode 100644
index 82ecc0c..0000000
--- a/media-libs/gstreamer/Manifest
+++ /dev/null
@@ -1,7 +0,0 @@
-AUX gst-0.10.32-0001-gst-launch-add-loop-argument.patch 2042 RMD160 13e1dbf1e7b19d2a065ad2e2e60aa35214461c02 SHA1 178ebe1b011a8bf216b9a1ea42e9f3492d6020fa SHA256 2904a8fa9c847d5608328b52ef9d76e90d9fb88161a3fd5ac07a67c7df1b6dbb
-AUX gst-0.10.32-0002-Changes-to-make-it-possible-to-LD_PRELOAD-libttif.patch 10451 RMD160 97c13f0ebf4b62615e053f37484797a3cc53df66 SHA1 235c410bc00f247ad2f6f250d5f042dcae891c49 SHA256 a6dcd34798f6b327f2681cb37ac1ef105e260f365bf50791197b43a55fa00b00
-AUX gst-0.10.32-0003-add-GstQueryBuffers-query.patch 8548 RMD160 534925365ec7d7ddcffcf72d1f5de13697b1e608 SHA1 11a7aa6257d0d301636957e5e3f946db21201fa5 SHA256 1a8daee3c8f53a7aa566384d1e327120e05aed095c15e9b34a4f9f29a971779f
-AUX gst-0.10.32-0004-Add-GstEventCrop-event.patch 6061 RMD160 99498d853d4bed0cd3dffe4baa25feed743fce7e SHA1 3096b37936659c522e3f8e16d310092d7cadf666 SHA256 f6b568bb9e903d3135f88a0442be89e5376f8475e633fe7d9cb7cda7482da5a3
-AUX gst-0.10.32-0005-basetransform-don-t-do-unnecessary-pad_alloc.patch 2278 RMD160 726964b4a12f6b1fe928796e977f59019224e354 SHA1 d7d5239ecb93d353edbb67bd5aa050c91ff084b3 SHA256 e7fc825d541621980f46b3a58bc5d208c2e2facd60bdc70c0c45207c1e88cf7c
-DIST gstreamer-0.10.32.tar.bz2 3529980 RMD160 447fa2b8b4c622a628763805cb65006d54919e54 SHA1 95477044ed23cf94669e56ea43607de05c2a0cb3 SHA256 3bf4e46a186ee9a1f5e212aaf651d67cffb4f5f05345a7c99ae71d5d992be133
-EBUILD gstreamer-0.10.32_p20110127.ebuild 2181 RMD160 66581f42aabf63a23753081fdf29f6111406673f SHA1 1c2f9201a7883c127d3c10e3ce0a5b05db23927b SHA256 1c64a6fd9859e1347caa039eab89034808981646477dc68eec08b1801206bb38

diff --git a/media-libs/gstreamer/files/gst-0.10.32-0001-gst-launch-add-loop-argument.patch b/media-libs/gstreamer/files/gst-0.10.32-0001-gst-launch-add-loop-argument.patch
deleted file mode 100644
index bc592ed..0000000
--- a/media-libs/gstreamer/files/gst-0.10.32-0001-gst-launch-add-loop-argument.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 23dbd4ce2e492152a4d21b8043f353d224dfe355 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Sat, 13 Feb 2010 15:29:13 -0600
-Subject: [PATCH 1/5] gst-launch: add --loop argument
-
-if --loop is specified, automatically seek to beginning of clip when EOS is received
----
- tools/gst-launch.c |   16 +++++++++++++++-
- 1 files changed, 15 insertions(+), 1 deletions(-)
-
-diff --git a/tools/gst-launch.c b/tools/gst-launch.c
-index 10b7fae..d5b17f8 100644
---- a/tools/gst-launch.c
-+++ b/tools/gst-launch.c
-@@ -716,6 +716,7 @@ main (int argc, char *argv[])
-   gboolean no_sigusr_handler = FALSE;
-   gboolean trace = FALSE;
-   gboolean eos_on_shutdown = FALSE;
-+  gboolean loop = FALSE;
-   gchar *savefile = NULL;
-   gchar *exclude_args = NULL;
- #ifndef GST_DISABLE_OPTION_PARSING
-@@ -742,6 +743,8 @@ main (int argc, char *argv[])
-         N_("Print alloc trace (if enabled at compile time)"), NULL},
-     {"eos-on-shutdown", 'e', 0, G_OPTION_ARG_NONE, &eos_on_shutdown,
-         N_("Force EOS on sources before shutting the pipeline down"), NULL},
-+    {"loop", 'l', 0, G_OPTION_ARG_NONE, &loop,
-+        N_("Repeat clip in loop without rebuilding pipeline"), NULL},
-     GST_TOOLS_GOPTION_VERSION,
-     {NULL}
-   };
-@@ -926,7 +929,18 @@ main (int argc, char *argv[])
-       }
- 
-       tfthen = gst_util_get_timestamp ();
--      caught_error = event_loop (pipeline, TRUE, GST_STATE_PLAYING);
-+      do {
-+        caught_error = event_loop (pipeline, TRUE, GST_STATE_PLAYING);
-+        if (loop && (caught_error == ELR_NO_ERROR)) {
-+          PRINT (_("Looping ...\n"));
-+          gst_element_seek (pipeline, 1.0,
-+              GST_FORMAT_TIME,
-+              GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_KEY_UNIT,
-+              GST_SEEK_TYPE_SET, 0, GST_SEEK_TYPE_NONE, GST_CLOCK_TIME_NONE);
-+        } else {
-+          break;
-+        }
-+      } while (TRUE);
-       if (eos_on_shutdown && caught_error == ELR_INTERRUPT) {
-         PRINT (_("EOS on shutdown enabled -- Forcing EOS on the pipeline\n"));
-         waiting_eos = TRUE;
--- 
-1.7.1
-

diff --git a/media-libs/gstreamer/files/gst-0.10.32-0002-Changes-to-make-it-possible-to-LD_PRELOAD-libttif.patch b/media-libs/gstreamer/files/gst-0.10.32-0002-Changes-to-make-it-possible-to-LD_PRELOAD-libttif.patch
deleted file mode 100644
index 724bd58..0000000
--- a/media-libs/gstreamer/files/gst-0.10.32-0002-Changes-to-make-it-possible-to-LD_PRELOAD-libttif.patch
+++ /dev/null
@@ -1,262 +0,0 @@
-From ac55210758bdd06fe0dec6ef67a60a96a86b39f4 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Sun, 4 Apr 2010 09:14:34 -0500
-Subject: [PATCH 2/5] Changes to make it possible to LD_PRELOAD libttif
-
-1) if GST_USING_PRINTF_EXTENSION, then prepend the fmt string with "<%P> " and
-pass object as a normal arg.  When using TTIF, you want the whole fmt string,
-including the object name prefix, to be constant.  This way, only the fmt
-string pointer needs to be logged.
-2) GstDebugTraceLocation: small optimization to stash __FILE__, __LINE__, and
-GST_FUNCTION together and pass as a single ptr.. the optimization is probably
-lost in the noise with the default printf() based traces, but makes more of a
-difference with faster trace systems
----
- gst/gstinfo.c |   64 +++++++++++++++++++++++++++++++++++++++++++++++-----
- gst/gstinfo.h |   70 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
- 2 files changed, 123 insertions(+), 11 deletions(-)
-
-diff --git a/gst/gstinfo.c b/gst/gstinfo.c
-index 3688120..dfa8650 100644
---- a/gst/gstinfo.c
-+++ b/gst/gstinfo.c
-@@ -494,6 +494,31 @@ gst_path_basename (const gchar * file_name)
- #endif
- 
- /**
-+ * gst_debug_log2:
-+ * @category: category to log
-+ * @level: level of the message is in
-+ * @location: the file, function name, and line number of the location that
-+ *    emitted the message
-+ * @object: the object this message relates to or NULL if none
-+ * @format: a printf style format string
-+ * @...: optional arguments for the format
-+ *
-+ * Logs the given message using the currently registered debugging handlers.
-+ */
-+void
-+gst_debug_log2 (GstDebugCategory * category, GstDebugLevel level,
-+    const GstDebugTraceLocation * location,
-+    GObject * object, const gchar * format, ...)
-+{
-+  va_list var_args;
-+
-+  va_start (var_args, format);
-+  gst_debug_log_valist2 (category, level, location, object, format, var_args);
-+  va_end (var_args);
-+}
-+
-+
-+/**
-  * gst_debug_log_valist:
-  * @category: category to log
-  * @level: level of the message is in
-@@ -512,13 +537,39 @@ gst_debug_log_valist (GstDebugCategory * category, GstDebugLevel level,
-     const gchar * file, const gchar * function, gint line,
-     GObject * object, const gchar * format, va_list args)
- {
-+  GstDebugTraceLocation location = {
-+    .file = file,
-+    .function = function,
-+    .line = line
-+  };
-+  gst_debug_log_valist2 (category, level, &location, object, format, args);
-+}
-+
-+/**
-+ * gst_debug_log_valist2:
-+ * @category: category to log
-+ * @level: level of the message is in
-+ * @location: the file, function name, and line number of the location that
-+ *    emitted the message
-+ * @object: the object this message relates to or NULL if none
-+ * @format: a printf style format string
-+ * @args: optional arguments for the format
-+ *
-+ * Logs the given message using the currently registered debugging handlers.
-+ */
-+void
-+gst_debug_log_valist2 (GstDebugCategory * category, GstDebugLevel level,
-+    const GstDebugTraceLocation * location,
-+    GObject * object, const gchar * format, va_list args)
-+{
-   GstDebugMessage message;
-   LogFuncEntry *entry;
-   GSList *handler;
- 
-   g_return_if_fail (category != NULL);
--  g_return_if_fail (file != NULL);
--  g_return_if_fail (function != NULL);
-+  g_return_if_fail (location != NULL);
-+  g_return_if_fail (location->file != NULL);
-+  g_return_if_fail (location->function != NULL);
-   g_return_if_fail (format != NULL);
- 
-   /* The predefined macro __FILE__ is always the exact path given to the
-@@ -536,8 +587,9 @@ gst_debug_log_valist (GstDebugCategory * category, GstDebugLevel level,
-   while (handler) {
-     entry = handler->data;
-     handler = g_slist_next (handler);
--    entry->func (category, level, file, function, line, object, &message,
--        entry->user_data);
-+    // TODO: change GstLogFunction and pass GstDebugTraceLocation ptr instead..
-+    entry->func (category, level, location->file, location->function,
-+        location->line, object, &message, entry->user_data);
-   }
-   g_free (message.message);
-   va_end (message.arguments);
-@@ -610,7 +662,7 @@ gst_info_structure_to_string (GstStructure * s)
-     return gst_structure_to_string (s);
- }
- 
--static gchar *
-+gchar *
- gst_debug_print_object (gpointer ptr)
- {
-   GObject *object = (GObject *) ptr;
-@@ -708,7 +760,7 @@ gst_debug_print_object (gpointer ptr)
- 
- #ifdef HAVE_PRINTF_EXTENSION
- 
--static gchar *
-+gchar *
- gst_debug_print_segment (gpointer ptr)
- {
-   GstSegment *segment = (GstSegment *) ptr;
-diff --git a/gst/gstinfo.h b/gst/gstinfo.h
-index 7c2d86f..24ca706 100644
---- a/gst/gstinfo.h
-+++ b/gst/gstinfo.h
-@@ -177,6 +177,8 @@ struct _GstDebugCategory {
- 
-   const gchar *		name;
-   const gchar *		description;
-+
-+  void *ext;                /**< for use by LD_PRELOADED trace extension */
- };
- 
- /********** some convenience macros for debugging **********/
-@@ -260,6 +262,14 @@ typedef void (*GstLogFunction)  (GstDebugCategory * category,
- /* FIXME 0.11: move this into private headers */
- void            _gst_debug_init (void);
- 
-+typedef struct {
-+	const gchar *file;
-+	const gchar *function;
-+	const gint   line;
-+} GstDebugTraceLocation;
-+
-+#define GST_DEBUG_TRACE_LOCATION() \
-+	{ __FILE__, GST_FUNCTION, __LINE__ }
- 
- #ifdef GST_USING_PRINTF_EXTENSION
- 
-@@ -273,6 +283,13 @@ void		    gst_debug_log            (GstDebugCategory * category,
-                                           const gchar      * format,
-                                           ...) G_GNUC_NO_INSTRUMENT;
- 
-+void		    gst_debug_log2           (GstDebugCategory * category,
-+                                          GstDebugLevel      level,
-+                                          const GstDebugTraceLocation *location,
-+                                          GObject          * object,
-+                                          const gchar      * format,
-+                                          ...) G_GNUC_NO_INSTRUMENT;
-+
- #else /* GST_USING_PRINTF_EXTENSION */
- 
- void		    gst_debug_log            (GstDebugCategory * category,
-@@ -284,6 +301,13 @@ void		    gst_debug_log            (GstDebugCategory * category,
-                                           const gchar      * format,
-                                           ...) G_GNUC_PRINTF (7, 8) G_GNUC_NO_INSTRUMENT;
- 
-+void		    gst_debug_log2           (GstDebugCategory * category,
-+                                          GstDebugLevel      level,
-+                                          const GstDebugTraceLocation *location,
-+                                          GObject          * object,
-+                                          const gchar      * format,
-+                                          ...) G_GNUC_PRINTF (5, 6) G_GNUC_NO_INSTRUMENT;
-+
- #endif /* GST_USING_PRINTF_EXTENSION */
- 
- void            gst_debug_log_valist     (GstDebugCategory * category,
-@@ -321,8 +345,21 @@ G_CONST_RETURN gchar *
- 	_gst_debug_nameof_funcptr	(GstDebugFuncPtr	func) G_GNUC_NO_INSTRUMENT;
- 
- 
-+void            gst_debug_log_valist2    (GstDebugCategory * category,
-+                                          GstDebugLevel      level,
-+                                          const GstDebugTraceLocation *location,
-+                                          GObject          * object,
-+                                          const gchar      * format,
-+                                          va_list            args) G_GNUC_NO_INSTRUMENT;
-+
- const gchar   * gst_debug_message_get    (GstDebugMessage  * message);
- 
-+gchar *         gst_debug_print_object (gpointer ptr);
-+
-+#ifdef HAVE_PRINTF_EXTENSION
-+gchar *         gst_debug_print_segment (gpointer ptr);
-+#endif
-+
- void            gst_debug_log_default    (GstDebugCategory * category,
-                                           GstDebugLevel      level,
-                                           const gchar      * file,
-@@ -495,19 +532,41 @@ GST_EXPORT GstDebugLevel            __gst_debug_min;
-  * debugging messages. You will probably want to use one of the ones described
-  * below.
-  */
-+#if defined(GST_USING_PRINTF_EXTENSION) && defined(G_HAVE_GNUC_VARARGS)
-+#define GST_CAT_LEVEL_LOG_obj(cat,level,object,str,args...) G_STMT_START{  \
-+  if (G_UNLIKELY (level <= __gst_debug_min)) {                             \
-+    const GstDebugTraceLocation loc = GST_DEBUG_TRACE_LOCATION();          \
-+    gst_debug_log2 ((cat), (level), &loc, NULL, "%"GST_PTR_FORMAT" "str,   \
-+        (object), ##args );                                                \
-+  }                                                                        \
-+}G_STMT_END
-+#define GST_CAT_LEVEL_LOG_noobj(cat,level,object,str,args...) G_STMT_START{\
-+  if (G_UNLIKELY (level <= __gst_debug_min)) {                             \
-+    const GstDebugTraceLocation loc = GST_DEBUG_TRACE_LOCATION();          \
-+    gst_debug_log2 ((cat), (level), &loc, NULL, (str), ##args );           \
-+  }                                                                        \
-+}G_STMT_END
-+#else
-+#  define GST_CAT_LEVEL_LOG_obj   GST_CAT_LEVEL_LOG
-+#  define GST_CAT_LEVEL_LOG_noobj GST_CAT_LEVEL_LOG
-+#endif
-+
-+
- #ifdef G_HAVE_ISO_VARARGS
- #define GST_CAT_LEVEL_LOG(cat,level,object,...) G_STMT_START{		\
--  if (G_UNLIKELY (level <= __gst_debug_min)) {						\
--    gst_debug_log ((cat), (level), __FILE__, GST_FUNCTION, __LINE__,	\
--        (GObject *) (object), __VA_ARGS__);				\
-+  if (G_UNLIKELY (level <= __gst_debug_min)) {	\
-+	const GstDebugTraceLocation loc = GST_DEBUG_TRACE_LOCATION();	\
-+    gst_debug_log2 ((cat), (level), &loc, (GObject *) (object),		\
-+            __VA_ARGS__);											\
-   }									\
- }G_STMT_END
- #else /* G_HAVE_GNUC_VARARGS */
- #ifdef G_HAVE_GNUC_VARARGS
- #define GST_CAT_LEVEL_LOG(cat,level,object,args...) G_STMT_START{	\
-   if (G_UNLIKELY (level <= __gst_debug_min)) {						\
--    gst_debug_log ((cat), (level), __FILE__, GST_FUNCTION, __LINE__,	\
--        (GObject *) (object), ##args );					\
-+    const GstDebugTraceLocation loc = GST_DEBUG_TRACE_LOCATION();	\
-+    gst_debug_log2 ((cat), (level), &loc, (GObject *) (object),		\
-+            ##args );											    \
-   }									\
- }G_STMT_END
- #else /* no variadic macros, use inline */
-@@ -1244,6 +1303,7 @@ GST_TRACE (const char *format, ...)
- 
- #if defined(__GNUC__) && __GNUC__ >= 3
- #  pragma GCC poison gst_debug_log
-+#  pragma GCC poison gst_debug_log2
- #  pragma GCC poison gst_debug_log_valist
- #  pragma GCC poison _gst_debug_category_new
- #endif
--- 
-1.7.1
-

diff --git a/media-libs/gstreamer/files/gst-0.10.32-0003-add-GstQueryBuffers-query.patch b/media-libs/gstreamer/files/gst-0.10.32-0003-add-GstQueryBuffers-query.patch
deleted file mode 100644
index 4c54083..0000000
--- a/media-libs/gstreamer/files/gst-0.10.32-0003-add-GstQueryBuffers-query.patch
+++ /dev/null
@@ -1,258 +0,0 @@
-From 7f071cf72491a9f60c886f4779c7d14d924bc43d Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Wed, 19 May 2010 15:48:09 -0500
-Subject: [PATCH 3/5] add GstQueryBuffers query
-
-This query is used by buffer allocator, for example a video sink element,
-to find out any minimum buffer requirements of upstream elements that uses
-pad_alloc() to allocate buffers.  For example, some cameras may have need
-for additional padding/boarder around the frame (for vstab), or some video
-decoders may have requirements for a certain minimum number of buffers (so
-they can hold refs to reference-frames)
----
- gst/gstquark.c |    3 +-
- gst/gstquark.h |    7 ++-
- gst/gstquery.c |  141 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- gst/gstquery.h |   16 ++++++-
- 4 files changed, 164 insertions(+), 3 deletions(-)
-
-diff --git a/gst/gstquark.c b/gst/gstquark.c
-index 4073eb4..58badca 100644
---- a/gst/gstquark.c
-+++ b/gst/gstquark.c
-@@ -49,7 +49,8 @@ static const gchar *_quark_strings[] = {
-   "GstQueryURI", "GstEventStep", "GstMessageStepDone", "amount", "flush",
-   "intermediate", "GstMessageStepStart", "active", "eos", "sink-message",
-   "message", "GstMessageQOS", "running-time", "stream-time", "jitter",
--  "quality", "processed", "dropped", "buffering-ranges"
-+  "quality", "processed", "dropped", "buffering-ranges", "GstQueryBuffers",
-+  "caps", "count", "width", "height"
- };
- 
- GQuark _priv_gst_quark_table[GST_QUARK_MAX];
-diff --git a/gst/gstquark.h b/gst/gstquark.h
-index c95d9cd..f4c8e0f 100644
---- a/gst/gstquark.h
-+++ b/gst/gstquark.h
-@@ -127,8 +127,13 @@ typedef enum _GstQuarkId
-   GST_QUARK_PROCESSED = 98,
-   GST_QUARK_DROPPED = 99,
-   GST_QUARK_BUFFERING_RANGES = 100,
-+  GST_QUARK_QUERY_BUFFERS = 101,
-+  GST_QUARK_CAPS = 102,
-+  GST_QUARK_COUNT = 103,
-+  GST_QUARK_WIDTH = 104,
-+  GST_QUARK_HEIGHT = 105,
- 
--  GST_QUARK_MAX = 101
-+  GST_QUARK_MAX = 106
- } GstQuarkId;
- 
- extern GQuark _priv_gst_quark_table[GST_QUARK_MAX];
-diff --git a/gst/gstquery.c b/gst/gstquery.c
-index 9373175..4823ff0 100644
---- a/gst/gstquery.c
-+++ b/gst/gstquery.c
-@@ -96,6 +96,7 @@ static GstQueryTypeDefinition standard_definitions[] = {
-   {GST_QUERY_BUFFERING, "buffering", "Buffering status", 0},
-   {GST_QUERY_CUSTOM, "custom", "Custom query", 0},
-   {GST_QUERY_URI, "uri", "URI of the source or sink", 0},
-+  {GST_QUERY_BUFFERS, "buffers", "Minimum buffer requirements", 0},
-   {0, NULL, NULL, 0}
- };
- 
-@@ -1480,3 +1481,143 @@ gst_query_parse_uri (GstQuery * query, gchar ** uri)
-     *uri = g_value_dup_string (gst_structure_id_get_value (query->structure,
-             GST_QUARK (URI)));
- }
-+
-+/**
-+ * gst_query_new_buffers:
-+ * @caps: the #GstCaps for the buffers that are going to be allocated
-+ *
-+ * Constructs a new buffer requirements query object to query buffer
-+ * requirements for a particular caps.  Use gst_query_unref() when done
-+ * with it.
-+ *
-+ * Returns: A #GstQuery
-+ */
-+GstQuery *
-+gst_query_new_buffers (GstCaps * caps)
-+{
-+  GstQuery *query;
-+  GstStructure *structure;
-+
-+  /* XXX could add size here, for linear (non YUV/RGB) buffers?  But I'm not
-+   * entirely sure what is the use-case for that.. it should be easy enough
-+   * to add more optional reply fields later
-+   */
-+  structure = gst_structure_id_new (GST_QUARK (QUERY_BUFFERS),
-+      GST_QUARK (CAPS), GST_TYPE_CAPS, caps,
-+      GST_QUARK (COUNT), G_TYPE_INT, -1,
-+      GST_QUARK (WIDTH), G_TYPE_INT, -1,
-+      GST_QUARK (HEIGHT), G_TYPE_INT, -1, NULL);
-+
-+  query = gst_query_new (GST_QUERY_BUFFERS, structure);
-+
-+  return query;
-+}
-+
-+/**
-+ * gst_query_set_buffers_count:
-+ * @count: minimum number of buffers required
-+ *
-+ * Answer a buffers query by setting the minimum number of buffers required.
-+ * If there is no minimum buffer count requirement, don't set this field in
-+ * the query.
-+ */
-+void
-+gst_query_set_buffers_count (GstQuery * query, gint count)
-+{
-+  GstStructure *structure;
-+
-+  g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_BUFFERS);
-+
-+  structure = gst_query_get_structure (query);
-+  gst_structure_id_set (structure, GST_QUARK (COUNT), G_TYPE_INT, count, NULL);
-+}
-+
-+/**
-+ * gst_query_set_buffers_dimensions:
-+ * @width: minimum buffer width
-+ * @height: minimum buffer height
-+ *
-+ * Answer a buffers query by setting the minimum buffer dimensions required.
-+ * If there is no minimum buffer dimensions (beyond the width/height specified
-+ * in the #GstCaps), don't set this field in the query.
-+ */
-+void
-+gst_query_set_buffers_dimensions (GstQuery * query, gint width, gint height)
-+{
-+  GstStructure *structure;
-+
-+  g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_BUFFERS);
-+
-+  structure = gst_query_get_structure (query);
-+  gst_structure_id_set (structure,
-+      GST_QUARK (WIDTH), G_TYPE_INT, width,
-+      GST_QUARK (HEIGHT), G_TYPE_INT, height, NULL);
-+}
-+
-+/**
-+ * gst_query_parse_buffers_caps:
-+ * @query: a #GstQuery
-+ * @caps: the storage for the #GstCaps pointer, or NULL
-+ *
-+ * Parse a buffers query.
-+ */
-+void
-+gst_query_parse_buffers_caps (GstQuery * query, const GstCaps ** caps)
-+{
-+  GstStructure *structure;
-+
-+  g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_BUFFERS);
-+
-+  structure = gst_query_get_structure (query);
-+  if (caps)
-+    *caps = gst_value_get_caps (gst_structure_id_get_value (structure,
-+            GST_QUARK (CAPS)));
-+}
-+
-+/**
-+ * gst_query_parse_buffers_count:
-+ * @query: a #GstQuery
-+ * @count: the storage for minimum number of buffers, or NULL
-+ *
-+ * Parse a buffers query answer to see the minimum number of buffers
-+ * required.  A returned value of -1 means there is no minimum requirement
-+ */
-+void
-+gst_query_parse_buffers_count (GstQuery * query, gint * count)
-+{
-+  GstStructure *structure;
-+
-+  g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_BUFFERS);
-+
-+  structure = gst_query_get_structure (query);
-+  if (count)
-+    *count = g_value_get_int (gst_structure_id_get_value (structure,
-+            GST_QUARK (COUNT)));
-+}
-+
-+/**
-+ * gst_query_parse_buffers_dimensions:
-+ * @query: a #GstQuery
-+ * @width: the storage for minimum width, or NULL
-+ * @height: the storage for minimum height, or NULL
-+ *
-+ * Parse a buffers query answer to see the minimum buffer dimensions required.
-+ * A returned value of -1 for either dimension means there is no minimum
-+ * requirement in that axis
-+ */
-+void
-+gst_query_parse_buffers_dimensions (GstQuery * query, gint * width,
-+    gint * height)
-+{
-+  GstStructure *structure;
-+
-+  g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_BUFFERS);
-+
-+  structure = gst_query_get_structure (query);
-+  if (width)
-+    *width = g_value_get_int (gst_structure_id_get_value (structure,
-+            GST_QUARK (WIDTH)));
-+  if (height)
-+    *height = g_value_get_int (gst_structure_id_get_value (structure,
-+            GST_QUARK (HEIGHT)));
-+}
-diff --git a/gst/gstquery.h b/gst/gstquery.h
-index 09d0225..ae1f5cd 100644
---- a/gst/gstquery.h
-+++ b/gst/gstquery.h
-@@ -31,6 +31,7 @@
- #include <gst/gstminiobject.h>
- #include <gst/gststructure.h>
- #include <gst/gstformat.h>
-+#include <gst/gstcaps.h>
- 
- G_BEGIN_DECLS
- 
-@@ -51,6 +52,9 @@ G_BEGIN_DECLS
-  * @GST_QUERY_CUSTOM: a custom application or element defined query. Since
-  * 0.10.22.
-  * @GST_QUERY_URI: query the URI of the source or sink. Since 0.10.22.
-+ * @GST_QUERY_BUFFERS: query the upstream users of pad_alloc()'d buffers to
-+ * find any particular requirements about buffer size (padding) or numbers of
-+ * buffers. Since ?.?.?.
-  *
-  * Standard predefined Query types
-  */
-@@ -69,7 +73,8 @@ typedef enum {
-   GST_QUERY_FORMATS,
-   GST_QUERY_BUFFERING,
-   GST_QUERY_CUSTOM,
--  GST_QUERY_URI
-+  GST_QUERY_URI,
-+  GST_QUERY_BUFFERS
- } GstQueryType;
- 
- /**
-@@ -336,6 +341,15 @@ GstQuery *      gst_query_new_uri                 (void);
- void            gst_query_parse_uri               (GstQuery *query, gchar **uri);
- void            gst_query_set_uri                 (GstQuery *query, const gchar *uri);
- 
-+/* buffer requirements query */
-+GstQuery *      gst_query_new_buffers             (GstCaps * caps);
-+void            gst_query_set_buffers_count       (GstQuery * query, gint count);
-+void            gst_query_set_buffers_dimensions  (GstQuery * query, gint width, gint height);
-+void            gst_query_parse_buffers_caps      (GstQuery * query, const GstCaps ** caps);
-+void            gst_query_parse_buffers_count     (GstQuery * query, gint * count);
-+void            gst_query_parse_buffers_dimensions (GstQuery * query, gint * width, gint * height);
-+
-+
- G_END_DECLS
- 
- #endif /* __GST_QUERY_H__ */
--- 
-1.7.1
-

diff --git a/media-libs/gstreamer/files/gst-0.10.32-0004-Add-GstEventCrop-event.patch b/media-libs/gstreamer/files/gst-0.10.32-0004-Add-GstEventCrop-event.patch
deleted file mode 100644
index 0730dd4..0000000
--- a/media-libs/gstreamer/files/gst-0.10.32-0004-Add-GstEventCrop-event.patch
+++ /dev/null
@@ -1,161 +0,0 @@
-From 20378daaef4f4adb36d879879d6ab6d007a82636 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Mon, 24 May 2010 16:49:20 -0500
-Subject: [PATCH 4/5] Add GstEventCrop event
-
-This event can be used to set cropping / region-of-interest to take effect
-on the following buffer.
----
- gst/gstevent.c |   63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- gst/gstevent.h |   11 +++++++++
- gst/gstquark.c |    2 +-
- gst/gstquark.h |    5 +++-
- 4 files changed, 79 insertions(+), 2 deletions(-)
-
-diff --git a/gst/gstevent.c b/gst/gstevent.c
-index 6d2cc8b..d04df79 100644
---- a/gst/gstevent.c
-+++ b/gst/gstevent.c
-@@ -116,6 +116,7 @@ static GstEventQuarks event_quarks[] = {
-   {GST_EVENT_TAG, "tag", 0},
-   {GST_EVENT_BUFFERSIZE, "buffersize", 0},
-   {GST_EVENT_SINK_MESSAGE, "sink-message", 0},
-+  {GST_EVENT_CROP, "crop", 0},
-   {GST_EVENT_QOS, "qos", 0},
-   {GST_EVENT_SEEK, "seek", 0},
-   {GST_EVENT_NAVIGATION, "navigation", 0},
-@@ -1231,3 +1232,65 @@ gst_event_parse_sink_message (GstEvent * event, GstMessage ** msg)
-         GST_MESSAGE (gst_value_dup_mini_object (gst_structure_id_get_value
-             (event->structure, GST_QUARK (MESSAGE))));
- }
-+
-+/**
-+ * gst_event_new_crop:
-+ * @top:  the new offset to top of sub-image
-+ * @left:  the new offset to left of sub-image
-+ * @width:  the new width
-+ * @height:  the new height
-+ *
-+ * Create a new crop event.
-+ */
-+GstEvent *
-+gst_event_new_crop (gint top, gint left, gint width, gint height)
-+{
-+  GstEvent *event;
-+  GstStructure *structure;
-+
-+  GST_CAT_INFO (GST_CAT_EVENT, "creating crop event: %d,%d %dx%d",
-+      top, left, width, height);
-+
-+  structure = gst_structure_id_new (GST_QUARK (EVENT_CROP),
-+      GST_QUARK (TOP), G_TYPE_INT, top,
-+      GST_QUARK (LEFT), G_TYPE_INT, left,
-+      GST_QUARK (WIDTH), G_TYPE_INT, width,
-+      GST_QUARK (HEIGHT), G_TYPE_INT, height, NULL);
-+  event = gst_event_new_custom (GST_EVENT_CROP, structure);
-+
-+  return event;
-+}
-+
-+/**
-+ * gst_event_parse_crop:
-+ * @event: The event to query
-+ * @top: A pointer to store top offset in
-+ * @left: A pointer to store left offset in
-+ * @width: A pointer to store width in
-+ * @height: A pointer to store height in
-+ *
-+ * Parse the crop event.
-+ */
-+void
-+gst_event_parse_crop (GstEvent * event, gint * top, gint * left,
-+    gint * width, gint * height)
-+{
-+  const GstStructure *structure;
-+
-+  g_return_if_fail (GST_IS_EVENT (event));
-+  g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_CROP);
-+
-+  structure = gst_event_get_structure (event);
-+  if (top)
-+    *top = g_value_get_int (gst_structure_id_get_value (structure,
-+            GST_QUARK (TOP)));
-+  if (left)
-+    *left = g_value_get_int (gst_structure_id_get_value (structure,
-+            GST_QUARK (LEFT)));
-+  if (width)
-+    *width = g_value_get_int (gst_structure_id_get_value (structure,
-+            GST_QUARK (WIDTH)));
-+  if (height)
-+    *height = g_value_get_int (gst_structure_id_get_value (structure,
-+            GST_QUARK (HEIGHT)));
-+}
-diff --git a/gst/gstevent.h b/gst/gstevent.h
-index 9568514..ae08829 100644
---- a/gst/gstevent.h
-+++ b/gst/gstevent.h
-@@ -93,6 +93,10 @@ typedef enum {
-  * @GST_EVENT_SINK_MESSAGE: An event that sinks turn into a message. Used to
-  *                          send messages that should be emitted in sync with
-  *                          rendering.
-+ * @GST_EVENT_CROP: An event that can set horizontal (pan/scan) and vertical
-+ *                   (tilt/scan) offset and width/height within a larger
-+ *                   image.  This event precedes the buffer to which it
-+ *                   applies.
-  * @GST_EVENT_QOS: A quality message. Used to indicate to upstream elements
-  *                 that the downstream elements are being starved of or
-  *                 flooded with data.
-@@ -133,6 +137,7 @@ typedef enum {
-   GST_EVENT_TAG                   = GST_EVENT_MAKE_TYPE (7, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
-   GST_EVENT_BUFFERSIZE            = GST_EVENT_MAKE_TYPE (8, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
-   GST_EVENT_SINK_MESSAGE          = GST_EVENT_MAKE_TYPE (9, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
-+  GST_EVENT_CROP                  = GST_EVENT_MAKE_TYPE (10, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
-   /* upstream events */
-   GST_EVENT_QOS                   = GST_EVENT_MAKE_TYPE (15, FLAG(UPSTREAM)),
-   GST_EVENT_SEEK                  = GST_EVENT_MAKE_TYPE (16, FLAG(UPSTREAM)),
-@@ -484,6 +489,12 @@ GstEvent*       gst_event_new_step              (GstFormat format, guint64 amoun
- void            gst_event_parse_step            (GstEvent *event, GstFormat *format, guint64 *amount,
-                                                  gdouble *rate, gboolean *flush, gboolean *intermediate);
- 
-+/* crop event */
-+GstEvent *      gst_event_new_crop              (gint top, gint left, gint width, gint height);
-+void            gst_event_parse_crop            (GstEvent * event, gint * top, gint * left,
-+                                                 gint * width, gint * height);
-+
-+
- G_END_DECLS
- 
- #endif /* __GST_EVENT_H__ */
-diff --git a/gst/gstquark.c b/gst/gstquark.c
-index 58badca..f8716cc 100644
---- a/gst/gstquark.c
-+++ b/gst/gstquark.c
-@@ -50,7 +50,7 @@ static const gchar *_quark_strings[] = {
-   "intermediate", "GstMessageStepStart", "active", "eos", "sink-message",
-   "message", "GstMessageQOS", "running-time", "stream-time", "jitter",
-   "quality", "processed", "dropped", "buffering-ranges", "GstQueryBuffers",
--  "caps", "count", "width", "height"
-+  "caps", "count", "width", "height", "GstEventCrop", "top", "left"
- };
- 
- GQuark _priv_gst_quark_table[GST_QUARK_MAX];
-diff --git a/gst/gstquark.h b/gst/gstquark.h
-index f4c8e0f..6eeb77f 100644
---- a/gst/gstquark.h
-+++ b/gst/gstquark.h
-@@ -132,8 +132,11 @@ typedef enum _GstQuarkId
-   GST_QUARK_COUNT = 103,
-   GST_QUARK_WIDTH = 104,
-   GST_QUARK_HEIGHT = 105,
-+  GST_QUARK_EVENT_CROP = 106,
-+  GST_QUARK_TOP = 107,
-+  GST_QUARK_LEFT = 108,
- 
--  GST_QUARK_MAX = 106
-+  GST_QUARK_MAX = 109
- } GstQuarkId;
- 
- extern GQuark _priv_gst_quark_table[GST_QUARK_MAX];
--- 
-1.7.1
-

diff --git a/media-libs/gstreamer/files/gst-0.10.32-0005-basetransform-don-t-do-unnecessary-pad_alloc.patch b/media-libs/gstreamer/files/gst-0.10.32-0005-basetransform-don-t-do-unnecessary-pad_alloc.patch
deleted file mode 100644
index 27c7daa..0000000
--- a/media-libs/gstreamer/files/gst-0.10.32-0005-basetransform-don-t-do-unnecessary-pad_alloc.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 45650b7b1dfcaaa2b165a6d263b6dc74449c501c Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Wed, 26 May 2010 14:42:40 -0500
-Subject: [PATCH 5/5] basetransform: don't do unnecessary pad_alloc()
-
-Don't allocate a buffer in passthrough mode.
----
- libs/gst/base/gstbasetransform.c |   28 ++++++++++++++++++++--------
- 1 files changed, 20 insertions(+), 8 deletions(-)
-
-diff --git a/libs/gst/base/gstbasetransform.c b/libs/gst/base/gstbasetransform.c
-index 57192ab..1416b8e 100644
---- a/libs/gst/base/gstbasetransform.c
-+++ b/libs/gst/base/gstbasetransform.c
-@@ -2188,14 +2188,26 @@ gst_base_transform_handle_buffer (GstBaseTransform * trans, GstBuffer * inbuf,
- 
- no_qos:
- 
--  /* first try to allocate an output buffer based on the currently negotiated
--   * format. While we call pad-alloc we could renegotiate the srcpad format or
--   * have a new suggestion for upstream buffer-alloc. 
--   * In any case, outbuf will contain a buffer suitable for doing the configured
--   * transform after this function. */
--  ret = gst_base_transform_prepare_output_buffer (trans, inbuf, outbuf);
--  if (G_UNLIKELY (ret != GST_FLOW_OK))
--    goto no_buffer;
-+  if (trans->passthrough) {
-+    /* I'm not yet sure if we should bypass allocating output buffer in case of
-+     * passthrough, or if I should override the prepare_output_buffer vmethod..
-+     * I think the argument for always doing buffer allocation is to give a
-+     * chance for upstream caps-renegotiation.. except I think the existing
-+     * gst_base_transform_buffer_alloc() which itself does a pad_alloc() should
-+     * be sufficient..
-+     */
-+    GST_DEBUG_OBJECT (trans, "reuse input buffer");
-+    *outbuf = inbuf;
-+  } else {
-+    /* first try to allocate an output buffer based on the currently negotiated
-+     * format. While we call pad-alloc we could renegotiate the srcpad format or
-+     * have a new suggestion for upstream buffer-alloc.
-+     * In any case, outbuf will contain a buffer suitable for doing the configured
-+     * transform after this function. */
-+    ret = gst_base_transform_prepare_output_buffer (trans, inbuf, outbuf);
-+    if (G_UNLIKELY (ret != GST_FLOW_OK))
-+      goto no_buffer;
-+  }
- 
-   /* now perform the needed transform */
-   if (trans->passthrough) {
--- 
-1.7.1
-

diff --git a/media-libs/gstreamer/gstreamer-0.10.32_p20110127.ebuild b/media-libs/gstreamer/gstreamer-0.10.32_p20110127.ebuild
deleted file mode 100644
index f6879a1..0000000
--- a/media-libs/gstreamer/gstreamer-0.10.32_p20110127.ebuild
+++ /dev/null
@@ -1,68 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI=2
-
-inherit eutils multilib versionator
-
-# Create a major/minor combo for our SLOT and executables suffix
-PV_MAJ_MIN=$(get_version_component_range '1-2')
-
-DESCRIPTION="Streaming media framework"
-HOMEPAGE="http://gstreamer.sourceforge.net"
-MY_P=${P%%_*}
-SRC_URI="http://${PN}.freedesktop.org/src/${PN}/${MY_P}.tar.bz2"
-S="${WORKDIR}/${MY_P}"
-
-LICENSE="LGPL-2"
-SLOT=${PV_MAJ_MIN}
-KEYWORDS="~alpha ~amd64 arm ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd"
-IUSE="+introspection nls test"
-
-RDEPEND=">=dev-libs/glib-2.20:2
-	dev-libs/libxml2
-	introspection? ( >=dev-libs/gobject-introspection-0.6.3 )
-	!<media-libs/gst-plugins-base-0.10.26"
-	# ^^ queue2 move, mustn't have both libgstcoreleements.so and libgstqueue2.so at runtime providing the element at once
-DEPEND="${RDEPEND}
-	dev-util/pkgconfig
-	dev-util/gtk-doc-am
-	nls? ( sys-devel/gettext )"
-
-src_configure() {
-	# Disable static archives, dependency tracking and examples
-	# to speed up build time
-	econf \
-		--disable-static \
-		--disable-dependency-tracking \
-		$(use_enable nls) \
-		--disable-valgrind \
-		--disable-examples \
-		--enable-check \
-		$(use_enable introspection) \
-		$(use_enable test tests) \
-		--with-package-name="GStreamer ebuild for Gentoo" \
-		--with-package-origin="http://packages.gentoo.org/package/media-libs/gstreamer"
-}
-
-src_prepare() {
-	cd ${S}
-	epatch "${FILESDIR}"/gst-0.10.32-0001-gst-launch-add-loop-argument.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0002-Changes-to-make-it-possible-to-LD_PRELOAD-libttif.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0003-add-GstQueryBuffers-query.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0004-Add-GstEventCrop-event.patch
-	epatch "${FILESDIR}"/gst-0.10.32-0005-basetransform-don-t-do-unnecessary-pad_alloc.patch
-}
-
-src_install() {
-	emake DESTDIR="${D}" install || die "emake install failed."
-	dodoc AUTHORS ChangeLog NEWS MAINTAINERS README RELEASE
-
-	# Remove unversioned binaries to allow SLOT installations in future
-	cd "${D}"/usr/bin
-	local gst_bins
-	for gst_bins in $(ls *-${PV_MAJ_MIN}); do
-		rm -f ${gst_bins/-${PV_MAJ_MIN}/}
-	done
-}

diff --git a/media-libs/syslink-d2c/Manifest b/media-libs/syslink-d2c/Manifest
deleted file mode 100644
index 8a6d7ac..0000000
--- a/media-libs/syslink-d2c/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-EBUILD syslink-d2c-24.11_p1-r0.ebuild 843 RMD160 bfe6b5ecfb5a6acae52e236dc67b6dfc8f38ff36 SHA1 1370b7482e35cbbde3b7e6e4b79571975b36ec62 SHA256 3ce24272aa527c1fc8daa5f5b1f0076ec58902b46ffda27e5b4806cd4494c591

diff --git a/media-libs/syslink-d2c/syslink-d2c-24.11_p1-r0.ebuild b/media-libs/syslink-d2c/syslink-d2c-24.11_p1-r0.ebuild
deleted file mode 100644
index 01ed095..0000000
--- a/media-libs/syslink-d2c/syslink-d2c-24.11_p1-r0.ebuild
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI=2
-
-inherit git autotools eutils
-
-DESCRIPTION="Distributed OpenMAX for OMAP4 processors"
-HOMEPAGE="http://dev.omapzoom.org/?p=tisyslink/userspace-syslink.git;a=summary"
-DEPEND=">=media-libs/syslink-24.11"
-LICENSE="BSD"
-KEYWORDS="arm"
-SLOT="0"
-IUSE=""
-
-SRC_URI=""
-NPV=${PV/_/-}; NPV=${NPV^^}
-EGIT_REPO_URI="git://git.omapzoom.org/platform/hardware/ti/syslink.git"
-EGIT_BRANCH="syslink-2.0"
-# FIXME: Can't use tags?
-#EGIT_COMMIT="ti-syslink-mpu-rls-${NPV}"
-EGIT_COMMIT="16f0cebd8b5a430d943bc6bcfa0fe592bad425b9"
-S="${WORKDIR}/${P}/syslink/d2c"
-
-src_unpack() {
-	MY_S="${WORKDIR}/${P}"
-	S=${MY_S} git_src_unpack
-}
-
-src_prepare() {
-	cd ${S} && ./bootstrap.sh
-	eautoreconf
-}
-
-src_install() {
-	emake install DESTDIR="${D}"
-}

diff --git a/media-libs/syslink/Manifest b/media-libs/syslink/Manifest
deleted file mode 100644
index 5e525fc..0000000
--- a/media-libs/syslink/Manifest
+++ /dev/null
@@ -1,2 +0,0 @@
-AUX add-missing-libraries-to-linker.patch 1941 RMD160 b3508605749e7b83261a851d836c217f01aeaa65 SHA1 52ecbe1f189f8a3b53cf55463f71a9f64481e5ab SHA256 8ed1ac4ee5318c3420491bb72690b9fdb20f47510e44437c7187cf998bcfd9ee
-EBUILD syslink-24.11_p1-r0.ebuild 879 RMD160 0f3f74c0b79f68adcce999ce46d43a4437b04d67 SHA1 90e0825579d887b4eaa6f962f5d802920f8c8de8 SHA256 0faec0c8a51cfb9938bc110018007e4f9a11cb639fca087edacbff27af11d8de

diff --git a/media-libs/syslink/files/add-missing-libraries-to-linker.patch b/media-libs/syslink/files/add-missing-libraries-to-linker.patch
deleted file mode 100644
index 070933b..0000000
--- a/media-libs/syslink/files/add-missing-libraries-to-linker.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From e483e75b27c7cb0bef5d11892963a115689845c8 Mon Sep 17 00:00:00 2001
-From: Daniel Diaz <ddiaz@ti.com>
-Date: Fri, 21 Jan 2011 17:03:14 -0600
-Subject: [PATCH] Add missing libraries to linker.
-
-An undefined symbol appears on run-time:
-  gst-launch-0.10: symbol lookup error: /usr/lib/libsysmgr.so.0:
-  undefined symbol: Notify_getConfig
-
-This is also shown when building with --as-needed during the
-linking stage.
-
-Signed-off-by: Daniel Diaz <ddiaz@ti.com>
----
- syslink/api/src/ipc/Makefile.am    |    1 +
- syslink/api/src/notify/Makefile.am |    2 +-
- syslink/api/src/sysmgr/Makefile.am |    2 +-
- 3 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/syslink/api/src/ipc/Makefile.am b/syslink/api/src/ipc/Makefile.am
-index ba698f1..173b334 100644
---- a/syslink/api/src/ipc/Makefile.am
-+++ b/syslink/api/src/ipc/Makefile.am
-@@ -59,3 +59,4 @@ libipc_la_LIBTOOLFLAGS = --tag=disable-static
- libipc_la_CFLAGS = \
- 	-I$(PROJROOT)/api/include
- 
-+libipc_la_LDFLAGS = -lipcutils
-diff --git a/syslink/api/src/notify/Makefile.am b/syslink/api/src/notify/Makefile.am
-index 5c80c78..659fd4f 100644
---- a/syslink/api/src/notify/Makefile.am
-+++ b/syslink/api/src/notify/Makefile.am
-@@ -47,5 +47,5 @@ libsyslinknotify_la_CFLAGS = \
- 	-I$(PROJROOT)/api/include/linux
- 
- libsyslinknotify_la_LIBTOOLFLAGS = --tag=disable-static
--libsyslinknotify_la_LDFLAGS = -version-info 0:0:0
-+libsyslinknotify_la_LDFLAGS = -version-info 0:0:0 -lipc
- libsyslinknotify_la_LIBADD = ../../src/utils/libipcutils.la
-diff --git a/syslink/api/src/sysmgr/Makefile.am b/syslink/api/src/sysmgr/Makefile.am
-index ea958b5..0c5dfbf 100644
---- a/syslink/api/src/sysmgr/Makefile.am
-+++ b/syslink/api/src/sysmgr/Makefile.am
-@@ -45,4 +45,4 @@ libsysmgr_la_CFLAGS = \
- 	-I$(PROJROOT)/api/include
- 
- libsysmgr_la_LIBTOOLFLAGS = --tag=disable-static
--libsysmgr_la_LDFLAGS = -version-info 0:0:0
-+libsysmgr_la_LDFLAGS = -version-info 0:0:0 -lsyslinknotify -lipc -lprocmgr
--- 
-1.7.3.4
-

diff --git a/media-libs/syslink/syslink-24.11_p1-r0.ebuild b/media-libs/syslink/syslink-24.11_p1-r0.ebuild
deleted file mode 100644
index 578ef58..0000000
--- a/media-libs/syslink/syslink-24.11_p1-r0.ebuild
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI=2
-
-inherit git autotools eutils
-
-DESCRIPTION="Distributed OpenMAX for OMAP4 processors"
-HOMEPAGE="http://dev.omapzoom.org/?p=tisyslink/userspace-syslink.git;a=summary"
-DEPEND=">=media-libs/tiler-24.11"
-LICENSE="BSD"
-KEYWORDS="arm"
-SLOT="0"
-IUSE=""
-
-SRC_URI=""
-NPV=${PV/_/-}; NPV=${NPV^^}
-EGIT_REPO_URI="git://git.omapzoom.org/platform/hardware/ti/syslink.git"
-EGIT_BRANCH="syslink-2.0"
-# FIXME: Can't use tags?
-#EGIT_COMMIT="ti-syslink-mpu-rls-${NPV}"
-EGIT_COMMIT="16f0cebd8b5a430d943bc6bcfa0fe592bad425b9"
-S="${WORKDIR}/${P}/syslink"
-
-src_unpack() {
-	MY_S="${WORKDIR}/${P}"
-	S=${MY_S} git_src_unpack
-	cd ${S}
-	epatch "${FILESDIR}"/add-missing-libraries-to-linker.patch
-}
-
-src_prepare() {
-	eautoreconf
-}
-
-src_install() {
-	emake install DESTDIR="${D}"
-}

diff --git a/media-libs/tiler/Manifest b/media-libs/tiler/Manifest
deleted file mode 100644
index dd0556d..0000000
--- a/media-libs/tiler/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-EBUILD tiler-24.11-r0.ebuild 776 RMD160 e9aa02bdb189806c7af3a62d5e1001afe8c5cb24 SHA1 8abb2ca2f7036ec1f436eb6c4cd664584355281f SHA256 76cf528272302c11db4f0ece3dbb6d194952c2762f6ae5c81f68647cea61d7fc

diff --git a/media-libs/tiler/tiler-24.11-r0.ebuild b/media-libs/tiler/tiler-24.11-r0.ebuild
deleted file mode 100644
index f78ef5c..0000000
--- a/media-libs/tiler/tiler-24.11-r0.ebuild
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI=2
-
-inherit git autotools eutils libtool
-
-DESCRIPTION="TI TILER Memory Manager"
-HOMEPAGE="http://dev.omapzoom.org/?p=tiler/tiler-userspace.git;a=summary"
-#DEPEND=""
-LICENSE="BSD"
-KEYWORDS="arm"
-SLOT="0"
-IUSE=""
-
-SRC_URI=""
-NPV=${PV/_/-}; NPV=${NPV^^}
-EGIT_REPO_URI="git://git.omapzoom.org/platform/hardware/ti/tiler.git"
-EGIT_BRANCH="memmgr_1.0"
-# FIXME: Can't use tags?
-#EGIT_COMMIT="${NPV}"
-EGIT_COMMIT="d74be6020e970228f6bd25112fde12ecb4322f65"
-S="${WORKDIR}/${P}/memmgr"
-
-src_unpack() {
-	MY_S="${WORKDIR}/${P}"
-	S=${MY_S} git_src_unpack
-}
-
-src_prepare() {
-	cd ${S} && ./bootstrap.sh
-	eautoreconf
-}
-
-src_install() {
-	emake DESTDIR="${D}" install
-}

diff --git a/media-plugins/gst-openmax/Manifest b/media-plugins/gst-openmax/Manifest
deleted file mode 100644
index 267cb15..0000000
--- a/media-plugins/gst-openmax/Manifest
+++ /dev/null
@@ -1,5 +0,0 @@
-AUX 0001-videoenc-use-shared-buffers-on-output-port.patch 1030 RMD160 9bc17ddad4dc11c4441c48c90a2be9911bca8f8a SHA1 f3d45516e503c499c1e9b923cbe580abfe480328 SHA256 0c2b74ab2450ef6844e56e9a5a71f7b5243e305883c71a6da4867068f53039ff
-AUX 0002-Replace-deprecated-vstab-event-with-crop-event.patch 2428 RMD160 291b42e0f784dc7d6e3a492606ead5da072274bc SHA1 5aef9bcb25dbd3337f4b7bf6800652188335e880 SHA256 6298e7fd9291e2909c156828cec712417c8e908bf431e08d8668ceb162899ead
-AUX 0099-temp-32k-header-dec10.patch 1930 RMD160 743ce70a08f6927ee472acc719d138d58d9f23dd SHA1 c71328428a9bfeb63f53796ad305a4a08730fa5c SHA256 07b53f8b658281a231d134897ad9c0b94e6273304bf22b47ae658244144b2d1a
-AUX 0099-temp-32k-header-nov10.patch 1954 RMD160 abe12ee817de3f04dd47c0eebcff90ff1d7605ac SHA1 39f6d0eeda27c40fe44b8a6a95d6b360d86fd4f0 SHA256 18a081eee5edc65a73eb9f0be4565586ea6a67581c5bc914a439e0ef92e33e9c
-EBUILD gst-openmax-9999.ebuild 1003 RMD160 afd1226abe7fdd72c1f6c27933514573bc077f49 SHA1 e1446fa76e546b116115a96f57ae10658b01dccf SHA256 050c35b1cc8b92a9203263ce9a5b1ef7899c580c94737c512140a3abe3fa216c

diff --git a/media-plugins/gst-openmax/files/0001-videoenc-use-shared-buffers-on-output-port.patch b/media-plugins/gst-openmax/files/0001-videoenc-use-shared-buffers-on-output-port.patch
deleted file mode 100644
index ff10376..0000000
--- a/media-plugins/gst-openmax/files/0001-videoenc-use-shared-buffers-on-output-port.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From: Alejandro Gonzalez <a-gonzalez@ti.com>
-Date: Sat, 1 Jan 2000 00:03:26 +0000 (-0600)
-Subject: videoenc: Use shared buffers on output port.
-X-Git-Url: http://dev.omapzoom.org/?p=gstreamer%2Fgst-openmax.git;a=commitdiff_plain;h=0a0543a76ff2989d070693490b78625657a6c684
-
-videoenc: Use shared buffers on output port.
-
-Acked-by: Kiran Nataraju <knataraju@ti.com>
-Signed-off-by: Daniel Diaz <ddiaz@ti.com>
----
-
-diff --git a/omx/gstomx_base_videoenc.c b/omx/gstomx_base_videoenc.c
-index bdbd59b..c550e5e 100644
---- a/omx/gstomx_base_videoenc.c
-+++ b/omx/gstomx_base_videoenc.c
-@@ -332,9 +332,9 @@ type_instance_init (GTypeInstance *instance,
-     omx_base->omx_setup = omx_setup;
- 
-     omx_base->in_port->omx_allocate = FALSE;
--    omx_base->out_port->omx_allocate = TRUE;
-+    omx_base->out_port->omx_allocate = FALSE;
-     omx_base->in_port->share_buffer = TRUE;
--    omx_base->out_port->share_buffer = FALSE;
-+    omx_base->out_port->share_buffer = TRUE;
- 
-     gst_pad_set_setcaps_function (omx_base->sinkpad, sink_setcaps);
- 

diff --git a/media-plugins/gst-openmax/files/0002-Replace-deprecated-vstab-event-with-crop-event.patch b/media-plugins/gst-openmax/files/0002-Replace-deprecated-vstab-event-with-crop-event.patch
deleted file mode 100644
index cc6bea2..0000000
--- a/media-plugins/gst-openmax/files/0002-Replace-deprecated-vstab-event-with-crop-event.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From 74e364b3a4f6d64d14a56c0b527cd1530e0df917 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Fri, 24 Dec 2010 21:01:06 -0600
-Subject: [PATCH] Replace deprecated vstab event with crop event.
-
-Signed-off-by: Daniel Diaz <ddiaz@ti.com>
----
- omx/gstomx_base_videodec.c |    5 +++--
- omx/gstomx_base_videoenc.c |    4 ++--
- omx/gstomx_camera.c        |    5 +++--
- 3 files changed, 8 insertions(+), 6 deletions(-)
-
-diff --git a/omx/gstomx_base_videodec.c b/omx/gstomx_base_videodec.c
-index dd35c8c..299a947 100644
---- a/omx/gstomx_base_videodec.c
-+++ b/omx/gstomx_base_videodec.c
-@@ -77,8 +77,9 @@ push_buffer (GstOmxBaseFilter *omx_base, GstBuffer *buf)
-     if (n_offset)
-     {
-         gst_pad_push_event (omx_base->srcpad,
--                gst_event_new_vstab (n_offset / self->rowstride, /* top */
--                        n_offset % self->rowstride)); /* left */
-+                gst_event_new_crop (n_offset / self->rowstride, /* top */
-+                        n_offset % self->rowstride, /* left */
-+                        -1, -1)); /* width/height: can be invalid for now */
-     }
-     return parent_class->push_buffer (omx_base, buf);
- }
-diff --git a/omx/gstomx_base_videoenc.c b/omx/gstomx_base_videoenc.c
-index c550e5e..a83eb3d 100644
---- a/omx/gstomx_base_videoenc.c
-+++ b/omx/gstomx_base_videoenc.c
-@@ -303,10 +303,10 @@ pad_event (GstPad *pad, GstEvent *event)
- 
-     switch (GST_EVENT_TYPE (event))
-     {
--        case GST_EVENT_VSTAB:
-+        case GST_EVENT_CROP:
-         {
-             gint top, left;
--            gst_event_parse_vstab (event, &top, &left);
-+            gst_event_parse_crop (event, &top, &left, NULL, NULL);
- 
-             omx_base->in_port->n_offset = (self->rowstride * top) + left;
- 
-diff --git a/omx/gstomx_camera.c b/omx/gstomx_camera.c
-index ca03de4..dc3130e 100644
---- a/omx/gstomx_camera.c
-+++ b/omx/gstomx_camera.c
-@@ -1509,8 +1509,9 @@ create (GstBaseSrc *gst_base,
- 
-     if (n_offset)
-     {
--        vstab_evt = gst_event_new_vstab (n_offset / self->rowstride, /* top */
--                n_offset % self->rowstride); /* left */
-+        vstab_evt = gst_event_new_crop (n_offset / self->rowstride, /* top */
-+                n_offset % self->rowstride, /* left */
-+                -1, -1); /* width/height: we can just give invalid for now */
-         gst_pad_push_event (GST_BASE_SRC (self)->srcpad,
-                 gst_event_ref (vstab_evt));
-     }
--- 
-1.7.1
-

diff --git a/media-plugins/gst-openmax/files/0099-temp-32k-header-dec10.patch b/media-plugins/gst-openmax/files/0099-temp-32k-header-dec10.patch
deleted file mode 100644
index e85ad31..0000000
--- a/media-plugins/gst-openmax/files/0099-temp-32k-header-dec10.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From 45d23a18eb366220992e367422b958699be55623 Mon Sep 17 00:00:00 2001
-From: Olivier Naudan <o-naudan@ti.com>
-Date: Thu, 16 Dec 2010 13:10:03 +0100
-Subject: [PATCH] Temporary patch to access OMAP 32K timer (not yet exported by the kernel)
-
----
- omx/gstomx_camera.c |    2 +-
- omx/timer-32k.h     |   48 ++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 49 insertions(+), 1 deletions(-)
- create mode 100644 omx/timer-32k.h
-
-diff --git a/omx/gstomx_camera.c b/omx/gstomx_camera.c
-index 9a33cfb..fc73422 100644
---- a/omx/gstomx_camera.c
-+++ b/omx/gstomx_camera.c
-@@ -34,7 +34,7 @@
- #include <stdint.h>
- #include <fcntl.h>
- #include <sys/ioctl.h>
--#include <linux/timer-32k.h>
-+#include "timer-32k.h"
- #include <OMX_CoreExt.h>
- #include <OMX_IndexExt.h>
- 
-diff --git a/omx/timer-32k.h b/omx/timer-32k.h
-new file mode 100644
-index 0000000..98fc2dc
---- /dev/null
-+++ b/omx/timer-32k.h
-@@ -0,0 +1,48 @@
-+/*
-+ * OMAP2/3/4 timer32k driver interface
-+ *
-+ * Copyright (C) 2010 Texas Instruments, Inc
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ */
-+
-+#ifndef __LINUX_TIMER_32_H__
-+#define __LINUX_TIMER_32_H__
-+
-+#include <linux/ioctl.h>
-+#define OMAP_32K_READ       _IOWR('t', 0, uint32_t)
-+#define OMAP_32K_READRAW    _IOWR('t', 1, uint32_t)
-+
-+#ifndef __KERNEL__
-+
-+#include <stdint.h>
-+#include <fcntl.h>
-+#include <sys/ioctl.h>
-+
-+static inline uint32_t __omap_32k_call(int nr)
-+{
-+	static int fd;
-+	if (!fd)
-+		fd = open("/dev/timer32k", 0);
-+
-+	if (fd) {
-+		uint32_t t;
-+		if (ioctl(fd, nr, &t) >= 0)
-+			return t;
-+	}
-+	return 0;
-+}
-+static inline uint32_t omap_32k_read(void)
-+{
-+	return __omap_32k_call(OMAP_32K_READ);
-+}
-+static inline uint32_t omap_32k_readraw(void)
-+{
-+	return __omap_32k_call(OMAP_32K_READRAW);
-+}
-+#endif
-+
-+#endif /* __LINUX_TIMER_32_H__ */
-+
--- 
-1.7.1
-

diff --git a/media-plugins/gst-openmax/files/0099-temp-32k-header-nov10.patch b/media-plugins/gst-openmax/files/0099-temp-32k-header-nov10.patch
deleted file mode 100644
index 2851032..0000000
--- a/media-plugins/gst-openmax/files/0099-temp-32k-header-nov10.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 1c2c1413e6777865c037ba3d849da69cf9342b0a Mon Sep 17 00:00:00 2001
-From: Daniel Diaz <ddiaz@ti.com>
-Date: Thu, 20 Jan 2011 16:21:18 -0600
-Subject: [PATCH] Temporary patch to access OMAP 32K timer (not yet exported by the kernel)
-
-Signed-off-by: Daniel Diaz <ddiaz@ti.com>
----
- omx/gstomx_camera.c |    2 +-
- omx/timer-32k.h     |   48 ++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 49 insertions(+), 1 deletions(-)
- create mode 100644 omx/timer-32k.h
-
-diff --git a/omx/gstomx_camera.c b/omx/gstomx_camera.c
-index 8e3983e..eb101fd 100644
---- a/omx/gstomx_camera.c
-+++ b/omx/gstomx_camera.c
-@@ -34,7 +34,7 @@
- #include <stdint.h>
- #include <fcntl.h>
- #include <sys/ioctl.h>
--#include <linux/timer-32k.h>
-+#include "timer-32k.h"
- 
- /**
-  * SECTION:element-omx_camerasrc
-diff --git a/omx/timer-32k.h b/omx/timer-32k.h
-new file mode 100644
-index 0000000..98fc2dc
---- /dev/null
-+++ b/omx/timer-32k.h
-@@ -0,0 +1,48 @@
-+/*
-+ * OMAP2/3/4 timer32k driver interface
-+ *
-+ * Copyright (C) 2010 Texas Instruments, Inc
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ */
-+
-+#ifndef __LINUX_TIMER_32_H__
-+#define __LINUX_TIMER_32_H__
-+
-+#include <linux/ioctl.h>
-+#define OMAP_32K_READ       _IOWR('t', 0, uint32_t)
-+#define OMAP_32K_READRAW    _IOWR('t', 1, uint32_t)
-+
-+#ifndef __KERNEL__
-+
-+#include <stdint.h>
-+#include <fcntl.h>
-+#include <sys/ioctl.h>
-+
-+static inline uint32_t __omap_32k_call(int nr)
-+{
-+	static int fd;
-+	if (!fd)
-+		fd = open("/dev/timer32k", 0);
-+
-+	if (fd) {
-+		uint32_t t;
-+		if (ioctl(fd, nr, &t) >= 0)
-+			return t;
-+	}
-+	return 0;
-+}
-+static inline uint32_t omap_32k_read(void)
-+{
-+	return __omap_32k_call(OMAP_32K_READ);
-+}
-+static inline uint32_t omap_32k_readraw(void)
-+{
-+	return __omap_32k_call(OMAP_32K_READRAW);
-+}
-+#endif
-+
-+#endif /* __LINUX_TIMER_32_H__ */
-+
--- 
-1.7.3.4
-

diff --git a/media-plugins/gst-openmax/gst-openmax-9999.ebuild b/media-plugins/gst-openmax/gst-openmax-9999.ebuild
deleted file mode 100644
index 8589fe5..0000000
--- a/media-plugins/gst-openmax/gst-openmax-9999.ebuild
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI=3
-
-inherit git autotools
-
-DESCRIPTION="GStreamer plug-in that allows communication with OpenMAX IL components"
-HOMEPAGE="http://freedesktop.org/wiki/GstOpenMAX"
-EGIT_REPO_URI="git://github.com/mrchapp/gst-openmax.git"
-EGIT_BRANCH="gst-24.11-rc"
-EGIT_COMMIT="3214d731aefae7d2b5f0b69f126dc993a972cfd4"
-
-LICENSE="LGPL"
-SLOT="0"
-KEYWORDS="~arm"
-IUSE=""
-
-DEPEND=">=media-libs/gst-plugins-base-0.10.31 >=media-libs/gstreamer-0.10.31 >=media-libs/domx-24.11"
-RDEPEND="${DEPEND}"
-
-src_unpack() {
-	git_src_unpack
-	cd ${S}
-	epatch "${FILESDIR}"/0001-videoenc-use-shared-buffers-on-output-port.patch
-	epatch "${FILESDIR}"/0002-Replace-deprecated-vstab-event-with-crop-event.patch
-	epatch "${FILESDIR}"/0099-temp-32k-header-nov10.patch
-}
-
-src_prepare() {
-	git describe --tags --always > .version
-	eautoreconf
-}
-
-src_install() {
-	emake DESTDIR=${D} install || die 'emake install failed.'
-}

diff --git a/media-plugins/gst-plugins-v4l2/Manifest b/media-plugins/gst-plugins-v4l2/Manifest
deleted file mode 100644
index 4a10510..0000000
--- a/media-plugins/gst-plugins-v4l2/Manifest
+++ /dev/null
@@ -1,14 +0,0 @@
-AUX gst-0.10.27-0001-v4l2-fix-handling-of-RGB32-BGR32-formats.patch 1699 RMD160 ee58e52c89ed3ac10ece5f24b2607461f693abb3 SHA1 5f93921349aa383b9f9a70f1ce62128eda6d9411 SHA256 b99e9322ba836e6de4df144ff5a6454bb4175a84713a9610fce3ff83402f82d5
-AUX gst-0.10.27-0002-v4l2sink-Add-rotation-support.patch 4255 RMD160 fe2024baf7398c83cec0c0adfdd649733a967482 SHA1 483ec498ce795764475b7e486560ae43ac12737c SHA256 08595843b8fddb76661aaec9b3d84791edf72226dc323050ca94ed1aebc49949
-AUX gst-0.10.27-0003-v4l2sink-Add-flip-property.patch 5880 RMD160 1fc14e374dc56b52cc16d189c3b87e0508b323fb SHA1 8475701469ea33dc355a0a030dc20a5d9a2a0e2f SHA256 42864937012aaede7fbd0ebd78b06be6b6326f99a0770ec6ec6ac57426004445
-AUX gst-0.10.27-0004-v4l2sink-Add-support-for-omap24xxvout-driver.patch 2205 RMD160 da01e8eb31d528971113679984e51f9e7d7e0326 SHA1 07ad77fe137d8c4548320f582d3cc88928e943c2 SHA256 7cca5ec0adf3ac20c7a400bf209523c9135cadb9292cbd219b631d588a3800af
-AUX gst-0.10.27-0005-v4l2sink-Add-support-for-omap_vout-driver.patch 1136 RMD160 2ba17fb3194790c60ab297a3cfbde4089575555d SHA1 f18af7103413df180b3eab08c4abe655d7a63ed3 SHA256 fa8486abf8bd9c12d2d29fe3077485e1ca77af9e39ef4a9b48a7d1ea696c2d85
-AUX gst-0.10.27-0006-v4l2-increase-v4l2sink-element-rank.patch 884 RMD160 5e18ee173f9749a46de9a146a4c6e0113f02281d SHA1 1bfab5660c9f5354eb6daed48a965824675bc07a SHA256 1cfcd14afba356fd6c6180b8f1018174e392d9cc9690870f5dd06918ef3454e5
-AUX gst-0.10.27-0007-use-GstQueryBuffers-to-get-buffer-requirements.patch 3392 RMD160 a7a197667a9fd0ca8d47125a8205f58f81e110cb SHA1 b650b0474355775a5bcb5b89090798e226786632 SHA256 5621c6c3c1a4a49c62faeffbe320e76a4c45d5ecf6c3ecb29adbe2eed25c64b4
-AUX gst-0.10.27-0008-add-rowstride-support.patch 20547 RMD160 cb4bf8074160cad277ba5754427a79cf42a139ed SHA1 60ac23640e799e558fce406e650ebe47b27645c4 SHA256 7ba17339344fe2f0b8e665cd1fd41e96c6543f2d38c4eeffbd071c6c2c21d407
-AUX gst-0.10.27-0009-use-GstEventCrop-to-get-crop-info.patch 4209 RMD160 7b827d6d1cb40f10bb25e0dedf8791884bd60bb5 SHA1 f1c47e70898c8480ce25e5ec6c90308c45cb77f7 SHA256 877141058a3662aa6c065003a048908eb5459206dd7d4cd68d46ba51bfd448a8
-AUX gst-0.10.27-0010-v4l2-prefer-NV12.patch 955 RMD160 1f8da679aa6562a8b7838a301dc98767f543ee12 SHA1 0fe801306c6dad176ef78f4269ecf99f6b270cb5 SHA256 2ddf29274b7f7d8b1ac1f2ed68c56485dddb000e82d12288e50b0acc12ffb0ec
-AUX gst-0.10.27-0011-v4l2sink-fix-issue-seen-with-autoconvert.patch 1938 RMD160 edb01fb57a548a6a6af67f016eea16d47337d0e0 SHA1 c80bbe19a4f6ad44967d077e4ee109094b5061bd SHA256 ad26b737d21721882a6c0de9011ac30984450b4ba213dc5045e9dfff9d2180fc
-AUX gst-0.10.27-0099-v4l2sink-Define-rotation-if-kernel-header-doesnt.patch 851 RMD160 547630bebcffaa01a08415f544b05e7bd5131541 SHA1 d98f5524e9da8a54b338d5f97c46036996a47431 SHA256 6f3efdcdbaeb633d240473c192b487166bc56aaad9e49b6b1269a64aef50437f
-DIST gst-plugins-good-0.10.27.tar.bz2 3096221 RMD160 6486fca87a6394577ab1f0a4e94a19b1c3e2ca5e SHA1 49964ad3b8fbee9caa0b3fc437dd9169aafad79d SHA256 a9d801c3d42b456a6ebc0b95f68c44f153f756ec0fbd4877197c469cc67771fa
-EBUILD gst-plugins-v4l2-0.10.27_p20110127.ebuild 1433 RMD160 3bdbf19a55231ee506b86e81e32715e0d1866ccc SHA1 680039bb2a9ddacf9e718c4e3a4adc797158e310 SHA256 cae04719e242406fb8744765010cef913afee37621259deef63e8d3f8973a51c

diff --git a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0001-v4l2-fix-handling-of-RGB32-BGR32-formats.patch b/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0001-v4l2-fix-handling-of-RGB32-BGR32-formats.patch
deleted file mode 100644
index f2d85ef..0000000
--- a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0001-v4l2-fix-handling-of-RGB32-BGR32-formats.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 194aa8513c02fbfcabf04b45ff4c81bf8a94527f Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Tue, 14 Sep 2010 07:42:50 -0500
-Subject: [PATCH 01/11] v4l2: fix handling of RGB32/BGR32 formats
-
-bpp is 32, but depth is only 24..
----
- sys/v4l2/gstv4l2object.c |   12 +++++++-----
- 1 files changed, 7 insertions(+), 5 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2object.c b/sys/v4l2/gstv4l2object.c
-index 7e15489..f5672b5 100644
---- a/sys/v4l2/gstv4l2object.c
-+++ b/sys/v4l2/gstv4l2object.c
-@@ -1132,14 +1132,16 @@ gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc)
-           b_mask = 0xff0000;
-           break;
-         case V4L2_PIX_FMT_RGB32:
--          bpp = depth = 32;
-+          depth = 24;
-+          bpp = 32;
-           endianness = G_BIG_ENDIAN;
-           r_mask = 0xff000000;
-           g_mask = 0x00ff0000;
-           b_mask = 0x0000ff00;
-           break;
-         case V4L2_PIX_FMT_BGR32:
--          bpp = depth = 32;
-+          depth = 24;
-+          bpp = 32;
-           endianness = G_BIG_ENDIAN;
-           r_mask = 0x000000ff;
-           g_mask = 0x0000ff00;
-@@ -1404,13 +1406,13 @@ gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps,
- #endif
-     }
-   } else if (!strcmp (mimetype, "video/x-raw-rgb")) {
--    gint depth, endianness, r_mask;
-+    gint bpp, endianness, r_mask;
- 
--    gst_structure_get_int (structure, "depth", &depth);
-+    gst_structure_get_int (structure, "bpp", &bpp);
-     gst_structure_get_int (structure, "endianness", &endianness);
-     gst_structure_get_int (structure, "red_mask", &r_mask);
- 
--    switch (depth) {
-+    switch (bpp) {
-       case 8:
-         fourcc = V4L2_PIX_FMT_RGB332;
-         break;
--- 
-1.7.1
-

diff --git a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0002-v4l2sink-Add-rotation-support.patch b/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0002-v4l2sink-Add-rotation-support.patch
deleted file mode 100644
index 11b777c..0000000
--- a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0002-v4l2sink-Add-rotation-support.patch
+++ /dev/null
@@ -1,128 +0,0 @@
-From d43a9444fc5f7655a8acd2978039667a04222ba0 Mon Sep 17 00:00:00 2001
-From: Kiran Nataraju <knataraju@ti.com>
-Date: Fri, 27 Aug 2010 09:00:57 +0200
-Subject: [PATCH 02/11] v4l2sink: Add rotation support.
-
-Signed-off-by: Kiran Nataraju <knataraju@ti.com>
-Signed-off-by: Daniel Diaz <ddiaz@ti.com>
----
- sys/v4l2/gstv4l2sink.c |   34 ++++++++++++++++++++++++++++++++++
- sys/v4l2/gstv4l2sink.h |    1 +
- 2 files changed, 35 insertions(+), 0 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
-index aa6785c..5abf915 100644
---- a/sys/v4l2/gstv4l2sink.c
-+++ b/sys/v4l2/gstv4l2sink.c
-@@ -72,6 +72,10 @@ GST_DEBUG_CATEGORY (v4l2sink_debug);
- #define PROP_DEF_MIN_QUEUED_BUFS    1
- #define DEFAULT_PROP_DEVICE   "/dev/video1"
- 
-+#define MIN_ROTATION_ANGLE 0
-+#define MAX_ROTATION_ANGLE 360
-+#define DEFAULT_ROTATION_ANGLE 0
-+
- enum
- {
-   PROP_0,
-@@ -86,6 +90,7 @@ enum
-   PROP_CROP_LEFT,
-   PROP_CROP_WIDTH,
-   PROP_CROP_HEIGHT,
-+  PROP_ROTATION,
- };
- 
- 
-@@ -220,6 +225,7 @@ static GstFlowReturn gst_v4l2sink_buffer_alloc (GstBaseSink * bsink,
-     guint64 offset, guint size, GstCaps * caps, GstBuffer ** buf);
- static GstFlowReturn gst_v4l2sink_show_frame (GstBaseSink * bsink,
-     GstBuffer * buf);
-+static void gst_v4l2sink_set_rotation (GstV4l2Sink * v4l2sink);
- 
- static void
- gst_v4l2sink_base_init (gpointer g_class)
-@@ -306,6 +312,11 @@ gst_v4l2sink_class_init (GstV4l2SinkClass * klass)
-           "The height of the video crop; default is equal to negotiated image height",
-           0, 0xffffffff, 0, G_PARAM_READWRITE));
- 
-+  g_object_class_install_property (gobject_class, PROP_ROTATION,
-+      g_param_spec_int ("rotation", "Rotation angle",
-+          "Rotation angle for the image", MIN_ROTATION_ANGLE,
-+          MAX_ROTATION_ANGLE, DEFAULT_ROTATION_ANGLE, G_PARAM_READWRITE));
-+
-   basesink_class->get_caps = GST_DEBUG_FUNCPTR (gst_v4l2sink_get_caps);
-   basesink_class->set_caps = GST_DEBUG_FUNCPTR (gst_v4l2sink_set_caps);
-   basesink_class->buffer_alloc = GST_DEBUG_FUNCPTR (gst_v4l2sink_buffer_alloc);
-@@ -336,6 +347,7 @@ gst_v4l2sink_init (GstV4l2Sink * v4l2sink, GstV4l2SinkClass * klass)
-   v4l2sink->overlay_fields_set = 0;
-   v4l2sink->crop_fields_set = 0;
-   v4l2sink->state = 0;
-+  v4l2sink->rotation = 0;
- }
- 
- 
-@@ -475,6 +487,20 @@ gst_v4l2sink_sync_crop_fields (GstV4l2Sink * v4l2sink)
-   }
- }
- 
-+static void
-+gst_v4l2sink_set_rotation (GstV4l2Sink * v4l2sink)
-+{
-+  if (GST_V4L2_IS_OPEN (v4l2sink->v4l2object)) {
-+    struct v4l2_control control;
-+    gint fd = v4l2sink->v4l2object->video_fd;
-+
-+    memset (&control, 0x00, sizeof (struct v4l2_control));
-+    control.id = V4L2_CID_ROTATE;
-+    control.value = v4l2sink->rotation;
-+    g_return_if_fail (v4l2_ioctl (fd, VIDIOC_S_CTRL, &control) >= 0);
-+  }
-+}
-+
- 
- static void
- gst_v4l2sink_set_property (GObject * object,
-@@ -531,6 +557,10 @@ gst_v4l2sink_set_property (GObject * object,
-         v4l2sink->crop_fields_set |= RECT_HEIGHT_SET;
-         gst_v4l2sink_sync_crop_fields (v4l2sink);
-         break;
-+      case PROP_ROTATION:
-+        v4l2sink->rotation = g_value_get_int (value);
-+        gst_v4l2sink_set_rotation (v4l2sink);
-+        break;
-       default:
-         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-         break;
-@@ -578,6 +608,9 @@ gst_v4l2sink_get_property (GObject * object,
-       case PROP_CROP_HEIGHT:
-         g_value_set_uint (value, v4l2sink->crop.height);
-         break;
-+      case PROP_ROTATION:
-+        g_value_set_int (value, v4l2sink->rotation);
-+        break;
-       default:
-         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-         break;
-@@ -600,6 +633,7 @@ gst_v4l2sink_change_state (GstElement * element, GstStateChange transition)
-       /* open the device */
-       if (!gst_v4l2_object_start (v4l2sink->v4l2object))
-         return GST_STATE_CHANGE_FAILURE;
-+      gst_v4l2sink_set_rotation (v4l2sink);
-       break;
-     default:
-       break;
-diff --git a/sys/v4l2/gstv4l2sink.h b/sys/v4l2/gstv4l2sink.h
-index 8fe8222..1239621 100644
---- a/sys/v4l2/gstv4l2sink.h
-+++ b/sys/v4l2/gstv4l2sink.h
-@@ -75,6 +75,7 @@ struct _GstV4l2Sink {
-   guint8 overlay_fields_set, crop_fields_set;
- 
-   guint8 state;
-+  gint rotation;
- };
- 
- struct _GstV4l2SinkClass {
--- 
-1.7.1
-

diff --git a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0003-v4l2sink-Add-flip-property.patch b/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0003-v4l2sink-Add-flip-property.patch
deleted file mode 100644
index 9bdfa51..0000000
--- a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0003-v4l2sink-Add-flip-property.patch
+++ /dev/null
@@ -1,187 +0,0 @@
-From 1381c64fd606d8ab7169eef52386139a4848c439 Mon Sep 17 00:00:00 2001
-From: Kiran Nataraju <knataraju@ti.com>
-Date: Tue, 21 Sep 2010 06:21:23 +0200
-Subject: [PATCH 03/11] v4l2sink: Add flip property.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: Kiran Nataraju <knataraju@ti.com>
-Signed-off-by: Daniel Díaz <yosoy@danieldiaz.org>
----
- sys/v4l2/gstv4l2sink.c |   88 +++++++++++++++++++++++++++++++++++++++++++++--
- sys/v4l2/gstv4l2sink.h |    1 +
- 2 files changed, 85 insertions(+), 4 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
-index 5abf915..6163747 100644
---- a/sys/v4l2/gstv4l2sink.c
-+++ b/sys/v4l2/gstv4l2sink.c
-@@ -91,6 +91,7 @@ enum
-   PROP_CROP_WIDTH,
-   PROP_CROP_HEIGHT,
-   PROP_ROTATION,
-+  PROP_FLIP,
- };
- 
- 
-@@ -129,6 +130,34 @@ gst_v4l2sink_iface_supported (GstImplementsInterface * iface, GType iface_type)
-   return TRUE;
- }
- 
-+/*
-+ * Flip state
-+ */
-+enum
-+{
-+  FLIP_NONE = 0,
-+  FLIP_HORIZONTAL = 1,
-+  FLIP_VERTICAL = 2,
-+};
-+
-+#define GST_TYPE_V4L2_FLIP (gst_v4l2_flip_get_type ())
-+static GType
-+gst_v4l2_flip_get_type (void)
-+{
-+  static GType type = 0;
-+
-+  if (!type) {
-+    static GEnumValue vals[] = {
-+      {FLIP_NONE, "No Flip", "none"},
-+      {FLIP_HORIZONTAL, "Horizontal Flip", "horiz"},
-+      {FLIP_VERTICAL, "Vertical Flip", "vert"},
-+      {0, NULL, NULL},
-+    };
-+    type = g_enum_register_static ("GstV4l2SinkFlip", vals);
-+  }
-+  return type;
-+}
-+
- static void
- gst_v4l2sink_interface_init (GstImplementsInterfaceClass * klass)
- {
-@@ -225,7 +254,7 @@ static GstFlowReturn gst_v4l2sink_buffer_alloc (GstBaseSink * bsink,
-     guint64 offset, guint size, GstCaps * caps, GstBuffer ** buf);
- static GstFlowReturn gst_v4l2sink_show_frame (GstBaseSink * bsink,
-     GstBuffer * buf);
--static void gst_v4l2sink_set_rotation (GstV4l2Sink * v4l2sink);
-+static void gst_v4l2sink_sync_rotation (GstV4l2Sink * v4l2sink);
- 
- static void
- gst_v4l2sink_base_init (gpointer g_class)
-@@ -317,6 +346,11 @@ gst_v4l2sink_class_init (GstV4l2SinkClass * klass)
-           "Rotation angle for the image", MIN_ROTATION_ANGLE,
-           MAX_ROTATION_ANGLE, DEFAULT_ROTATION_ANGLE, G_PARAM_READWRITE));
- 
-+  g_object_class_install_property (gobject_class, PROP_FLIP,
-+      g_param_spec_enum ("flip", "Flip State",
-+          "Flip horizontal/vertical",
-+          GST_TYPE_V4L2_FLIP, FLIP_NONE, G_PARAM_READWRITE));
-+
-   basesink_class->get_caps = GST_DEBUG_FUNCPTR (gst_v4l2sink_get_caps);
-   basesink_class->set_caps = GST_DEBUG_FUNCPTR (gst_v4l2sink_set_caps);
-   basesink_class->buffer_alloc = GST_DEBUG_FUNCPTR (gst_v4l2sink_buffer_alloc);
-@@ -348,8 +382,46 @@ gst_v4l2sink_init (GstV4l2Sink * v4l2sink, GstV4l2SinkClass * klass)
-   v4l2sink->crop_fields_set = 0;
-   v4l2sink->state = 0;
-   v4l2sink->rotation = 0;
-+  v4l2sink->flip = FLIP_NONE;
- }
- 
-+static void
-+gst_v4l2sink_sync_flip (GstV4l2Sink * v4l2sink)
-+{
-+  if (GST_V4L2_IS_OPEN (v4l2sink->v4l2object)) {
-+    struct v4l2_control control;
-+    gint fd = v4l2sink->v4l2object->video_fd;
-+
-+    memset (&control, 0x00, sizeof (struct v4l2_control));
-+
-+    switch (v4l2sink->flip) {
-+      case FLIP_VERTICAL:
-+        v4l2sink->rotation = 0;
-+        control.value = 1;
-+        break;
-+      case FLIP_HORIZONTAL:
-+        /* Horizontal Flip = Vertical Flip + 180 rotation */
-+        v4l2sink->rotation = 180;
-+        control.value = 1;
-+        break;
-+      case FLIP_NONE:
-+        /* In the below switch case logic we need to handle FLIP_NONE
-+         * case since the v4l2 driver holds on to the last configured
-+         * flip value even after the device file is closed.
-+         */
-+        control.value = 0;
-+        break;
-+      default:
-+        GST_WARNING_OBJECT (v4l2sink, "Invalid flip property");
-+        control.value = 0;
-+        break;
-+    }
-+
-+    gst_v4l2sink_sync_rotation (v4l2sink);
-+    control.id = V4L2_CID_VFLIP;
-+    g_return_if_fail (v4l2_ioctl (fd, VIDIOC_S_CTRL, &control) >= 0);
-+  }
-+}
- 
- static void
- gst_v4l2sink_dispose (GObject * object)
-@@ -488,7 +560,7 @@ gst_v4l2sink_sync_crop_fields (GstV4l2Sink * v4l2sink)
- }
- 
- static void
--gst_v4l2sink_set_rotation (GstV4l2Sink * v4l2sink)
-+gst_v4l2sink_sync_rotation (GstV4l2Sink * v4l2sink)
- {
-   if (GST_V4L2_IS_OPEN (v4l2sink->v4l2object)) {
-     struct v4l2_control control;
-@@ -559,7 +631,11 @@ gst_v4l2sink_set_property (GObject * object,
-         break;
-       case PROP_ROTATION:
-         v4l2sink->rotation = g_value_get_int (value);
--        gst_v4l2sink_set_rotation (v4l2sink);
-+        gst_v4l2sink_sync_rotation (v4l2sink);
-+        break;
-+      case PROP_FLIP:
-+        v4l2sink->flip = g_value_get_enum (value);
-+        gst_v4l2sink_sync_flip (v4l2sink);
-         break;
-       default:
-         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-@@ -611,6 +687,9 @@ gst_v4l2sink_get_property (GObject * object,
-       case PROP_ROTATION:
-         g_value_set_int (value, v4l2sink->rotation);
-         break;
-+      case PROP_FLIP:
-+        g_value_set_enum (value, v4l2sink->flip);
-+        break;
-       default:
-         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-         break;
-@@ -633,7 +712,8 @@ gst_v4l2sink_change_state (GstElement * element, GstStateChange transition)
-       /* open the device */
-       if (!gst_v4l2_object_start (v4l2sink->v4l2object))
-         return GST_STATE_CHANGE_FAILURE;
--      gst_v4l2sink_set_rotation (v4l2sink);
-+      gst_v4l2sink_sync_rotation (v4l2sink);
-+      gst_v4l2sink_sync_flip (v4l2sink);
-       break;
-     default:
-       break;
-diff --git a/sys/v4l2/gstv4l2sink.h b/sys/v4l2/gstv4l2sink.h
-index 1239621..907973a 100644
---- a/sys/v4l2/gstv4l2sink.h
-+++ b/sys/v4l2/gstv4l2sink.h
-@@ -76,6 +76,7 @@ struct _GstV4l2Sink {
- 
-   guint8 state;
-   gint rotation;
-+  gint flip;
- };
- 
- struct _GstV4l2SinkClass {
--- 
-1.7.1
-

diff --git a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0004-v4l2sink-Add-support-for-omap24xxvout-driver.patch b/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0004-v4l2sink-Add-support-for-omap24xxvout-driver.patch
deleted file mode 100644
index 38601f8..0000000
--- a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0004-v4l2sink-Add-support-for-omap24xxvout-driver.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 39de525898eea073c1f2486b99b56ef25b6df289 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Sun, 4 Apr 2010 06:46:21 -0500
-Subject: [PATCH 04/11] v4l2sink: Add support for omap24xxvout driver
-
----
- sys/v4l2/gstv4l2sink.c |   22 +++++++++++++++++++++-
- 1 files changed, 21 insertions(+), 1 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
-index 6163747..4408428 100644
---- a/sys/v4l2/gstv4l2sink.c
-+++ b/sys/v4l2/gstv4l2sink.c
-@@ -888,6 +888,18 @@ gst_v4l2sink_buffer_alloc (GstBaseSink * bsink, guint64 offset, guint size,
-     /* initialize the buffer pool if not initialized yet (first buffer): */
-     if (G_UNLIKELY (!v4l2sink->pool)) {
- 
-+      gboolean no_pending_streamon = FALSE;
-+      char *driver = (char *) v4l2sink->v4l2object->vcap.driver;
-+
-+      /* the omap24xxvout driver wants us to start streaming before we
-+       * queue the first buffer:
-+       */
-+      if (!strcmp ("omap24xxvout", driver)) {
-+        GST_DEBUG_OBJECT (v4l2sink,
-+            "enabling no_pending_streamon hack for omap24xxvout driver");
-+        no_pending_streamon = TRUE;
-+      }
-+
-       /* set_caps() might not be called yet.. so just to make sure: */
-       if (!gst_v4l2sink_set_caps (bsink, caps)) {
-         return GST_FLOW_ERROR;
-@@ -909,7 +921,14 @@ gst_v4l2sink_buffer_alloc (GstBaseSink * bsink, guint64 offset, guint size,
-       gst_v4l2_xoverlay_prepare_xwindow_id (v4l2sink->v4l2object, TRUE);
- #endif
- 
--      v4l2sink->state = STATE_PENDING_STREAMON;
-+      if (no_pending_streamon) {
-+        if (!gst_v4l2_object_start_streaming (v4l2sink->v4l2object)) {
-+          return GST_FLOW_ERROR;
-+        }
-+        v4l2sink->state = STATE_STREAMING;
-+      } else {
-+        v4l2sink->state = STATE_PENDING_STREAMON;
-+      }
- 
-       GST_INFO_OBJECT (v4l2sink, "outputting buffers via mmap()");
- 
-@@ -996,6 +1015,7 @@ gst_v4l2sink_show_frame (GstBaseSink * bsink, GstBuffer * buf)
-   if (!gst_v4l2_buffer_pool_qbuf (v4l2sink->pool, GST_V4L2_BUFFER (buf))) {
-     return GST_FLOW_ERROR;
-   }
-+
-   if (v4l2sink->state == STATE_PENDING_STREAMON) {
-     if (!gst_v4l2_object_start_streaming (v4l2sink->v4l2object)) {
-       return GST_FLOW_ERROR;
--- 
-1.7.1
-

diff --git a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0005-v4l2sink-Add-support-for-omap_vout-driver.patch b/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0005-v4l2sink-Add-support-for-omap_vout-driver.patch
deleted file mode 100644
index 04b67bc..0000000
--- a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0005-v4l2sink-Add-support-for-omap_vout-driver.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 1fabe36f40e872942c80041225bdbf41db561bea Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Sun, 4 Apr 2010 06:47:55 -0500
-Subject: [PATCH 05/11] v4l2sink: Add support for omap_vout driver
-
----
- sys/v4l2/gstv4l2sink.c |   11 +++++++++++
- 1 files changed, 11 insertions(+), 0 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
-index 4408428..66dda8e 100644
---- a/sys/v4l2/gstv4l2sink.c
-+++ b/sys/v4l2/gstv4l2sink.c
-@@ -900,6 +900,17 @@ gst_v4l2sink_buffer_alloc (GstBaseSink * bsink, guint64 offset, guint size,
-         no_pending_streamon = TRUE;
-       }
- 
-+      /* workaround for bug in omap_vout driver, when we ask for more
-+       * than four buffers:
-+       */
-+      if (!strcmp ("omap_vout", driver)) {
-+        if (v4l2sink->num_buffers > 4) {
-+          v4l2sink->num_buffers = 4;
-+          GST_DEBUG_OBJECT (v4l2sink,
-+              "limiting to 4 buffers to work-around omap_vout driver bug");
-+        }
-+      }
-+
-       /* set_caps() might not be called yet.. so just to make sure: */
-       if (!gst_v4l2sink_set_caps (bsink, caps)) {
-         return GST_FLOW_ERROR;
--- 
-1.7.1
-

diff --git a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0006-v4l2-increase-v4l2sink-element-rank.patch b/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0006-v4l2-increase-v4l2sink-element-rank.patch
deleted file mode 100644
index 8f5a21c..0000000
--- a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0006-v4l2-increase-v4l2sink-element-rank.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 14d6f0fac0875981c418ac6577d23eafb5ff3f01 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Wed, 14 Apr 2010 03:29:20 -0500
-Subject: [PATCH 06/11] v4l2: increase v4l2sink element rank
-
-Increase rank so that it is autoplugged.
----
- sys/v4l2/gstv4l2.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2.c b/sys/v4l2/gstv4l2.c
-index 4a7056f..cba4157 100644
---- a/sys/v4l2/gstv4l2.c
-+++ b/sys/v4l2/gstv4l2.c
-@@ -55,7 +55,7 @@ plugin_init (GstPlugin * plugin)
-   if (!gst_element_register (plugin, "v4l2src", GST_RANK_PRIMARY,
-           GST_TYPE_V4L2SRC) ||
- #ifdef HAVE_EXPERIMENTAL
--      !gst_element_register (plugin, "v4l2sink", GST_RANK_NONE,
-+      !gst_element_register (plugin, "v4l2sink", GST_RANK_PRIMARY,
-           GST_TYPE_V4L2SINK) ||
- #endif
-       /*       !gst_element_register (plugin, "v4l2jpegsrc", */
--- 
-1.7.1
-

diff --git a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0007-use-GstQueryBuffers-to-get-buffer-requirements.patch b/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0007-use-GstQueryBuffers-to-get-buffer-requirements.patch
deleted file mode 100644
index 345f9df..0000000
--- a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0007-use-GstQueryBuffers-to-get-buffer-requirements.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From 15c17ea368079fd5de19868af6d9ffad1cb09f3a Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Wed, 19 May 2010 17:33:46 -0500
-Subject: [PATCH 07/11] use GstQueryBuffers to get buffer requirements
-
----
- sys/v4l2/gstv4l2sink.c |   40 ++++++++++++++++++++++++++++++++++++++++
- sys/v4l2/gstv4l2sink.h |    1 +
- 2 files changed, 41 insertions(+), 0 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
-index 66dda8e..12323f7 100644
---- a/sys/v4l2/gstv4l2sink.c
-+++ b/sys/v4l2/gstv4l2sink.c
-@@ -373,6 +373,7 @@ gst_v4l2sink_init (GstV4l2Sink * v4l2sink, GstV4l2SinkClass * klass)
- 
-   /* number of buffers requested */
-   v4l2sink->num_buffers = PROP_DEF_QUEUE_SIZE;
-+  v4l2sink->num_buffers_can_change = TRUE;
-   v4l2sink->min_queued_bufs = PROP_DEF_MIN_QUEUED_BUFS;
- 
-   v4l2sink->probed_caps = NULL;
-@@ -808,6 +809,7 @@ static gboolean
- gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
- {
-   GstV4l2Sink *v4l2sink = GST_V4L2SINK (bsink);
-+  GstQuery *query;
-   gint w = 0, h = 0;
-   gboolean interlaced;
-   struct v4l2_fmtdesc *format;
-@@ -855,6 +857,39 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
-     return FALSE;
-   }
- 
-+  /* query to find if anyone upstream using these buffers has any
-+   * minimum requirements:
-+   */
-+  query = gst_query_new_buffers (caps);
-+  if (gst_element_query (GST_ELEMENT (v4l2sink), query)) {
-+    gint min_buffers, min_width, min_height;
-+
-+    gst_query_parse_buffers_count (query, &min_buffers);
-+
-+    /* XXX need to account for some buffers used by queue, etc.. probably
-+     * queue should handle query, pass on to sink pad, and then add some
-+     * number of buffers to the min, so this value is dynamic depending
-+     * on the pipeline?
-+     */
-+    if (min_buffers != -1) {
-+      min_buffers += 3 + v4l2sink->min_queued_bufs;
-+    }
-+
-+    if (min_buffers > v4l2sink->num_buffers) {
-+      v4l2sink->num_buffers_can_change = FALSE;
-+      v4l2sink->num_buffers = min_buffers;
-+    }
-+
-+    gst_query_parse_buffers_dimensions (query, &min_width, &min_height);
-+    if (min_width > w) {
-+      w = min_width;
-+    }
-+    if (min_height > h) {
-+      h = min_height;
-+    }
-+  }
-+  gst_query_unref (query);
-+
-   if (!gst_v4l2_object_set_format (v4l2sink->v4l2object, format->pixelformat,
-           w, h, interlaced)) {
-     /* error already posted */
-@@ -944,6 +979,11 @@ gst_v4l2sink_buffer_alloc (GstBaseSink * bsink, guint64 offset, guint size,
-       GST_INFO_OBJECT (v4l2sink, "outputting buffers via mmap()");
- 
-       if (v4l2sink->num_buffers != v4l2sink->pool->buffer_count) {
-+        if (!v4l2sink->num_buffers_can_change) {
-+          GST_WARNING_OBJECT (v4l2sink,
-+              "I can't handle a differing number of buffers!!!!");
-+          return GST_FLOW_ERROR;
-+        }
-         v4l2sink->num_buffers = v4l2sink->pool->buffer_count;
-         g_object_notify (G_OBJECT (v4l2sink), "queue-size");
-       }
-diff --git a/sys/v4l2/gstv4l2sink.h b/sys/v4l2/gstv4l2sink.h
-index 907973a..7649fa1 100644
---- a/sys/v4l2/gstv4l2sink.h
-+++ b/sys/v4l2/gstv4l2sink.h
-@@ -58,6 +58,7 @@ struct _GstV4l2Sink {
-   GstCaps *current_caps;        /* the current negotiated caps */
-   GstV4l2BufferPool *pool;
-   guint32 num_buffers;
-+  gboolean num_buffers_can_change;
-   guint32 min_queued_bufs;
- 
-   gint video_width, video_height;      /* original (unscaled) video w/h */
--- 
-1.7.1
-

diff --git a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0008-add-rowstride-support.patch b/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0008-add-rowstride-support.patch
deleted file mode 100644
index f4ff893..0000000
--- a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0008-add-rowstride-support.patch
+++ /dev/null
@@ -1,572 +0,0 @@
-From a86d0326df31103c2ee38ee1e0c62802a758ef13 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Fri, 21 May 2010 15:21:32 -0500
-Subject: [PATCH 08/11] add rowstride support
-
----
- sys/v4l2/gstv4l2object.c |  141 +++++++++++++++++++++++++++++++++++++---------
- sys/v4l2/gstv4l2object.h |    6 +-
- sys/v4l2/gstv4l2sink.c   |   61 +++++++++++++-------
- sys/v4l2/gstv4l2src.c    |   28 +++++----
- 4 files changed, 174 insertions(+), 62 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2object.c b/sys/v4l2/gstv4l2object.c
-index f5672b5..5e34456 100644
---- a/sys/v4l2/gstv4l2object.c
-+++ b/sys/v4l2/gstv4l2object.c
-@@ -1064,16 +1064,23 @@ gst_v4l2_object_get_format_list (GstV4l2Object * v4l2object)
-   return v4l2object->formats;
- }
- 
--
--GstStructure *
--gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc)
-+/*
-+ * gst_v4l2_object_v4l2fourcc_to_structures:
-+ * @fourcc: requested format
-+ * @structures: an array of at least MAX_STRUCTS_PER_FOURCC to return the
-+ *   results in
-+ *
-+ * Returns the number of structures returned via structures
-+ */
-+gint
-+gst_v4l2_object_v4l2fourcc_to_structures (guint32 fourcc,
-+    GstStructure ** structures)
- {
--  GstStructure *structure = NULL;
--
-+  gint count = 0;
-   switch (fourcc) {
-     case V4L2_PIX_FMT_MJPEG:   /* Motion-JPEG */
-     case V4L2_PIX_FMT_JPEG:    /* JFIF JPEG */
--      structure = gst_structure_new ("image/jpeg", NULL);
-+      structures[count++] = gst_structure_new ("image/jpeg", NULL);
-       break;
-     case V4L2_PIX_FMT_RGB332:
-     case V4L2_PIX_FMT_RGB555:
-@@ -1151,17 +1158,25 @@ gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc)
-           g_assert_not_reached ();
-           break;
-       }
--      structure = gst_structure_new ("video/x-raw-rgb",
-+      structures[count++] = gst_structure_new ("video/x-raw-rgb",
-           "bpp", G_TYPE_INT, bpp,
-           "depth", G_TYPE_INT, depth,
-           "red_mask", G_TYPE_INT, r_mask,
-           "green_mask", G_TYPE_INT, g_mask,
-           "blue_mask", G_TYPE_INT, b_mask,
-           "endianness", G_TYPE_INT, endianness, NULL);
-+      structures[count++] = gst_structure_new ("video/x-raw-rgb-strided",
-+          "bpp", G_TYPE_INT, bpp,
-+          "depth", G_TYPE_INT, depth,
-+          "red_mask", G_TYPE_INT, r_mask,
-+          "green_mask", G_TYPE_INT, g_mask,
-+          "blue_mask", G_TYPE_INT, b_mask,
-+          "endianness", G_TYPE_INT, endianness,
-+          "rowstride", GST_TYPE_INT_RANGE, 1, G_MAXINT, NULL);
-       break;
-     }
-     case V4L2_PIX_FMT_GREY:    /*  8  Greyscale     */
--      structure = gst_structure_new ("video/x-raw-gray",
-+      structures[count++] = gst_structure_new ("video/x-raw-gray",
-           "bpp", G_TYPE_INT, 8, NULL);
-       break;
-     case V4L2_PIX_FMT_YYUV:    /* 16  YUV 4:2:2     */
-@@ -1227,38 +1242,41 @@ gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc)
-           g_assert_not_reached ();
-           break;
-       }
--      structure = gst_structure_new ("video/x-raw-yuv",
-+      structures[count++] = gst_structure_new ("video/x-raw-yuv",
-           "format", GST_TYPE_FOURCC, fcc, NULL);
-+      structures[count++] = gst_structure_new ("video/x-raw-yuv-strided",
-+          "format", GST_TYPE_FOURCC, fcc,
-+          "rowstride", GST_TYPE_INT_RANGE, 1, G_MAXINT, NULL);
-       break;
-     }
-     case V4L2_PIX_FMT_DV:
--      structure =
-+      structures[count++] =
-           gst_structure_new ("video/x-dv", "systemstream", G_TYPE_BOOLEAN, TRUE,
-           NULL);
-       break;
-     case V4L2_PIX_FMT_MPEG:    /* MPEG          */
--      structure = gst_structure_new ("video/mpegts", NULL);
-+      structures[count++] = gst_structure_new ("video/mpegts", NULL);
-       break;
-     case V4L2_PIX_FMT_WNVA:    /* Winnov hw compres */
-       break;
- #ifdef V4L2_PIX_FMT_SBGGR8
-     case V4L2_PIX_FMT_SBGGR8:
--      structure = gst_structure_new ("video/x-raw-bayer", NULL);
-+      structures[count++] = gst_structure_new ("video/x-raw-bayer", NULL);
-       break;
- #endif
- #ifdef V4L2_PIX_FMT_SN9C10X
-     case V4L2_PIX_FMT_SN9C10X:
--      structure = gst_structure_new ("video/x-sonix", NULL);
-+      structures[count++] = gst_structure_new ("video/x-sonix", NULL);
-       break;
- #endif
- #ifdef V4L2_PIX_FMT_PWC1
-     case V4L2_PIX_FMT_PWC1:
--      structure = gst_structure_new ("video/x-pwc1", NULL);
-+      structures[count++] = gst_structure_new ("video/x-pwc1", NULL);
-       break;
- #endif
- #ifdef V4L2_PIX_FMT_PWC2
-     case V4L2_PIX_FMT_PWC2:
--      structure = gst_structure_new ("video/x-pwc2", NULL);
-+      structures[count++] = gst_structure_new ("video/x-pwc2", NULL);
-       break;
- #endif
-     default:
-@@ -1267,7 +1285,7 @@ gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc)
-       break;
-   }
- 
--  return structure;
-+  return count;
- }
- 
- 
-@@ -1278,22 +1296,23 @@ gst_v4l2_object_get_all_caps (void)
-   static GstCaps *caps = NULL;
- 
-   if (caps == NULL) {
--    GstStructure *structure;
--
-     guint i;
- 
-     caps = gst_caps_new_empty ();
-     for (i = 0; i < GST_V4L2_FORMAT_COUNT; i++) {
--      structure =
--          gst_v4l2_object_v4l2fourcc_to_structure (gst_v4l2_formats[i].format);
--      if (structure) {
-+      GstStructure *structures[MAX_STRUCTS_PER_FOURCC];
-+      gint count, j;
-+      count =
-+          gst_v4l2_object_v4l2fourcc_to_structures (gst_v4l2_formats[i].format,
-+          structures);
-+      for (j = 0; j < count; j++) {
-         if (gst_v4l2_formats[i].dimensions) {
--          gst_structure_set (structure,
-+          gst_structure_set (structures[j],
-               "width", GST_TYPE_INT_RANGE, 1, GST_V4L2_MAX_SIZE,
-               "height", GST_TYPE_INT_RANGE, 1, GST_V4L2_MAX_SIZE,
-               "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, 100, 1, NULL);
-         }
--        gst_caps_append_structure (caps, structure);
-+        gst_caps_append_structure (caps, structures[j]);
-       }
-     }
-   }
-@@ -1306,12 +1325,14 @@ gst_v4l2_object_get_all_caps (void)
-  * @caps: given input caps
-  * @format: location for the v4l format
-  * @w/@h: location for width and height
-+ * @rs: required rowstride in bytes, or 0 if natural stride (based on format
-+ *   and width) or not-applicable
-  * @fps_n/@fps_d: location for framerate
-  * @size: location for expected size of the frame or 0 if unknown
-  */
- gboolean
- gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps,
--    struct v4l2_fmtdesc ** format, gint * w, gint * h,
-+    struct v4l2_fmtdesc ** format, gint * w, gint * h, gint * rs,
-     gboolean * interlaced, guint * fps_n, guint * fps_d, guint * size)
- {
-   GstStructure *structure;
-@@ -1319,10 +1340,12 @@ gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps,
-   guint32 fourcc;
-   const gchar *mimetype;
-   guint outsize;
-+  struct v4l2_format fmt = { 0, };
- 
-   /* default unknown values */
-   fourcc = 0;
-   outsize = 0;
-+  *rs = 0;
- 
-   structure = gst_caps_get_structure (caps, 0);
- 
-@@ -1351,61 +1374,73 @@ gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps,
-   *fps_n = gst_value_get_fraction_numerator (framerate);
-   *fps_d = gst_value_get_fraction_denominator (framerate);
- 
--  if (!strcmp (mimetype, "video/x-raw-yuv")) {
-+  if (!strcmp (mimetype, "video/x-raw-yuv") ||
-+      !strcmp (mimetype, "video/x-raw-yuv-strided")) {
-     gst_structure_get_fourcc (structure, "format", &fourcc);
- 
-     switch (fourcc) {
-       case GST_MAKE_FOURCC ('I', '4', '2', '0'):
-       case GST_MAKE_FOURCC ('I', 'Y', 'U', 'V'):
-         fourcc = V4L2_PIX_FMT_YUV420;
-+        *rs = GST_ROUND_UP_4 (*w);
-         outsize = GST_ROUND_UP_4 (*w) * GST_ROUND_UP_2 (*h);
-         outsize += 2 * ((GST_ROUND_UP_8 (*w) / 2) * (GST_ROUND_UP_2 (*h) / 2));
-         break;
-       case GST_MAKE_FOURCC ('Y', 'U', 'Y', '2'):
-         fourcc = V4L2_PIX_FMT_YUYV;
-+        *rs = GST_ROUND_UP_2 (*w) * 2;
-         outsize = (GST_ROUND_UP_2 (*w) * 2) * *h;
-         break;
-       case GST_MAKE_FOURCC ('Y', '4', '1', 'P'):
-         fourcc = V4L2_PIX_FMT_Y41P;
-+        *rs = GST_ROUND_UP_2 (*w) * 2;
-         outsize = (GST_ROUND_UP_2 (*w) * 2) * *h;
-         break;
-       case GST_MAKE_FOURCC ('U', 'Y', 'V', 'Y'):
-         fourcc = V4L2_PIX_FMT_UYVY;
-+        *rs = GST_ROUND_UP_2 (*w) * 2;
-         outsize = (GST_ROUND_UP_2 (*w) * 2) * *h;
-         break;
-       case GST_MAKE_FOURCC ('Y', 'V', '1', '2'):
-         fourcc = V4L2_PIX_FMT_YVU420;
-+        *rs = GST_ROUND_UP_4 (*w);
-         outsize = GST_ROUND_UP_4 (*w) * GST_ROUND_UP_2 (*h);
-         outsize += 2 * ((GST_ROUND_UP_8 (*w) / 2) * (GST_ROUND_UP_2 (*h) / 2));
-         break;
-       case GST_MAKE_FOURCC ('Y', '4', '1', 'B'):
-         fourcc = V4L2_PIX_FMT_YUV411P;
-+        *rs = GST_ROUND_UP_4 (*w);
-         outsize = GST_ROUND_UP_4 (*w) * *h;
-         outsize += 2 * ((GST_ROUND_UP_8 (*w) / 4) * *h);
-         break;
-       case GST_MAKE_FOURCC ('Y', '4', '2', 'B'):
-         fourcc = V4L2_PIX_FMT_YUV422P;
-+        *rs = GST_ROUND_UP_4 (*w);
-         outsize = GST_ROUND_UP_4 (*w) * *h;
-         outsize += 2 * ((GST_ROUND_UP_8 (*w) / 2) * *h);
-         break;
-       case GST_MAKE_FOURCC ('N', 'V', '1', '2'):
-         fourcc = V4L2_PIX_FMT_NV12;
-+        *rs = GST_ROUND_UP_4 (*w);
-         outsize = GST_ROUND_UP_4 (*w) * GST_ROUND_UP_2 (*h);
-         outsize += (GST_ROUND_UP_4 (*w) * *h) / 2;
-         break;
-       case GST_MAKE_FOURCC ('N', 'V', '2', '1'):
-         fourcc = V4L2_PIX_FMT_NV21;
-+        *rs = GST_ROUND_UP_4 (*w);
-         outsize = GST_ROUND_UP_4 (*w) * GST_ROUND_UP_2 (*h);
-         outsize += (GST_ROUND_UP_4 (*w) * *h) / 2;
-         break;
- #ifdef V4L2_PIX_FMT_YVYU
-       case GST_MAKE_FOURCC ('Y', 'V', 'Y', 'U'):
-         fourcc = V4L2_PIX_FMT_YVYU;
-+        *rs = GST_ROUND_UP_2 (*w) * 2;
-         outsize = (GST_ROUND_UP_2 (*w) * 2) * *h;
-         break;
- #endif
-     }
--  } else if (!strcmp (mimetype, "video/x-raw-rgb")) {
-+  } else if (!strcmp (mimetype, "video/x-raw-rgb") ||
-+      !strcmp (mimetype, "video/x-raw-rgb-strided")) {
-     gint bpp, endianness, r_mask;
- 
-     gst_structure_get_int (structure, "bpp", &bpp);
-@@ -1415,20 +1450,25 @@ gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps,
-     switch (bpp) {
-       case 8:
-         fourcc = V4L2_PIX_FMT_RGB332;
-+        *rs = *w;
-         break;
-       case 15:
-         fourcc = (endianness == G_LITTLE_ENDIAN) ?
-             V4L2_PIX_FMT_RGB555 : V4L2_PIX_FMT_RGB555X;
-+        *rs = 2 * *w;
-         break;
-       case 16:
-         fourcc = (endianness == G_LITTLE_ENDIAN) ?
-             V4L2_PIX_FMT_RGB565 : V4L2_PIX_FMT_RGB565X;
-+        *rs = 2 * *w;
-         break;
-       case 24:
-         fourcc = (r_mask == 0xFF) ? V4L2_PIX_FMT_BGR24 : V4L2_PIX_FMT_RGB24;
-+        *rs = 3 * *w;
-         break;
-       case 32:
-         fourcc = (r_mask == 0xFF) ? V4L2_PIX_FMT_BGR32 : V4L2_PIX_FMT_RGB32;
-+        *rs = 4 * *w;
-         break;
-     }
-   } else if (strcmp (mimetype, "video/x-dv") == 0) {
-@@ -1458,6 +1498,25 @@ gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps,
-   if (fourcc == 0)
-     return FALSE;
- 
-+  /* check what stride the driver supports */
-+  fmt.type = v4l2object->type;
-+  fmt.fmt.pix.width = *w;
-+  fmt.fmt.pix.height = *h;
-+  fmt.fmt.pix.pixelformat = fourcc;
-+  fmt.fmt.pix.field = V4L2_FIELD_ANY;
-+  fmt.fmt.pix.bytesperline = *rs;
-+  if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_TRY_FMT, &fmt) >= 0) {
-+    if (fmt.fmt.pix.bytesperline == *rs) {
-+      *rs = 0;
-+    } else {
-+      *rs = fmt.fmt.pix.bytesperline;
-+    }
-+    GST_INFO_OBJECT (v4l2object->element, "rowstride: %d", *rs);
-+  } else {
-+    GST_WARNING_OBJECT (v4l2object->element,
-+        "VIDIOC_TRY_FMT should not fail.. driver problem?");
-+  }
-+
- done:
-   *format = gst_v4l2_object_get_format_from_fourcc (v4l2object, fourcc);
-   *size = outsize;
-@@ -1465,6 +1524,36 @@ done:
-   return TRUE;
- }
- 
-+/* Update caps to reflect rowstride that has been requested by the
-+ * driver
-+ */
-+GstCaps *
-+gst_v4l2_object_update_rowstride (GstV4l2Object * v4l2object,
-+    GstCaps * caps, gint rs)
-+{
-+  GstStructure *structure;
-+  const gchar *mimetype;
-+
-+  caps = gst_caps_make_writable (caps);
-+
-+  structure = gst_caps_get_structure (caps, 0);
-+  mimetype = gst_structure_get_name (structure);
-+
-+  if (!strcmp (mimetype, "video/x-raw-yuv")) {
-+    mimetype = "video/x-raw-yuv-strided";
-+    gst_structure_set_name (structure, mimetype);
-+  } else if (!strcmp (mimetype, "video/x-raw-rgb")) {
-+    mimetype = "video/x-raw-rgb-strided";
-+    gst_structure_set_name (structure, mimetype);
-+  }
-+
-+  if (!strcmp (mimetype, "video/x-raw-yuv-strided") ||
-+      !strcmp (mimetype, "video/x-raw-rgb-strided")) {
-+    gst_structure_set (structure, "rowstride", G_TYPE_INT, rs, NULL);
-+  }
-+
-+  return caps;
-+}
- 
- static gboolean
- gst_v4l2_object_get_nearest_size (GstV4l2Object * v4l2object,
-diff --git a/sys/v4l2/gstv4l2object.h b/sys/v4l2/gstv4l2object.h
-index a0dd41c..228e7c7 100644
---- a/sys/v4l2/gstv4l2object.h
-+++ b/sys/v4l2/gstv4l2object.h
-@@ -179,15 +179,17 @@ GstCaps*      gst_v4l2_object_probe_caps_for_format (GstV4l2Object *v4l2object,
-                                              const GstStructure * template);
- 
- gboolean      gst_v4l2_object_get_caps_info (GstV4l2Object *v4l2object, GstCaps *caps,
--                                             struct v4l2_fmtdesc **format, gint *w, gint *h,
-+                                             struct v4l2_fmtdesc **format, gint *w, gint *h, gint *rs,
-                                              gboolean * interlaced, guint *fps_n, guint *fps_d, guint *size);
- 
-+GstCaps *     gst_v4l2_object_update_rowstride (GstV4l2Object * v4l2object, GstCaps * caps, gint rs);
- 
- GSList*       gst_v4l2_object_get_format_list  (GstV4l2Object *v4l2object);
- 
- GstCaps*      gst_v4l2_object_get_all_caps (void);
- 
--GstStructure* gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc);
-+#define MAX_STRUCTS_PER_FOURCC 2
-+gint          gst_v4l2_object_v4l2fourcc_to_structures (guint32 fourcc, GstStructure ** structures);
- 
- gboolean      gst_v4l2_object_set_format (GstV4l2Object *v4l2object, guint32 pixelformat, guint32 width, guint32 height, gboolean interlaced);
- 
-diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
-index 12323f7..a1f78cf 100644
---- a/sys/v4l2/gstv4l2sink.c
-+++ b/sys/v4l2/gstv4l2sink.c
-@@ -776,24 +776,23 @@ gst_v4l2sink_get_caps (GstBaseSink * bsink)
-   for (walk = v4l2sink->v4l2object->formats; walk; walk = walk->next) {
-     struct v4l2_fmtdesc *format;
- 
--    GstStructure *template;
-+    GstStructure *templates[MAX_STRUCTS_PER_FOURCC];
-+    gint count, i;
- 
-     format = (struct v4l2_fmtdesc *) walk->data;
- 
--    template = gst_v4l2_object_v4l2fourcc_to_structure (format->pixelformat);
-+    count = gst_v4l2_object_v4l2fourcc_to_structures (format->pixelformat,
-+        templates);
- 
--    if (template) {
-+    for (i = 0; i < count; i++) {
-       GstCaps *tmp;
- 
--      tmp =
--          gst_v4l2_object_probe_caps_for_format (v4l2sink->v4l2object,
--          format->pixelformat, template);
-+      tmp = gst_v4l2_object_probe_caps_for_format (v4l2sink->v4l2object,
-+          format->pixelformat, templates[i]);
-       if (tmp)
-         gst_caps_append (ret, tmp);
- 
--      gst_structure_free (template);
--    } else {
--      GST_DEBUG_OBJECT (v4l2sink, "unknown format %u", format->pixelformat);
-+      gst_structure_free (templates[i]);
-     }
-   }
- 
-@@ -810,7 +809,7 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
- {
-   GstV4l2Sink *v4l2sink = GST_V4L2SINK (bsink);
-   GstQuery *query;
--  gint w = 0, h = 0;
-+  gint w = 0, h = 0, rs = 0;
-   gboolean interlaced;
-   struct v4l2_fmtdesc *format;
-   guint fps_n, fps_d;
-@@ -823,11 +822,36 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
-     return FALSE;
-   }
- 
-+  /* we want our own v4l2 type of fourcc codes */
-+  if (!gst_v4l2_object_get_caps_info (v4l2sink->v4l2object, caps,
-+          &format, &w, &h, &rs, &interlaced, &fps_n, &fps_d, &size)) {
-+    GST_DEBUG_OBJECT (v4l2sink, "can't get capture format from caps %p", caps);
-+    return FALSE;
-+  }
-+
-+  if (!format) {
-+    GST_DEBUG_OBJECT (v4l2sink, "unrecognized caps!!");
-+    return FALSE;
-+  }
-+
-+  /* we need to make our own ref before we potentially update the
-+   * caps, to avoid that we release a ref that is not owned by us
-+   * when we make the caps writable
-+   */
-+  caps = gst_caps_ref (caps);
-+
-+  /* if necessary, update caps for rowstride */
-+  if (rs) {
-+    caps = gst_v4l2_object_update_rowstride (v4l2sink->v4l2object, caps, rs);
-+    GST_DEBUG_OBJECT (v4l2sink, "updated caps: %" GST_PTR_FORMAT, caps);
-+  }
-+
-   if (v4l2sink->current_caps) {
-     GST_DEBUG_OBJECT (v4l2sink, "already have caps set.. are they equal?");
-     LOG_CAPS (v4l2sink, v4l2sink->current_caps);
-     if (gst_caps_is_equal (v4l2sink->current_caps, caps)) {
-       GST_DEBUG_OBJECT (v4l2sink, "yes they are!");
-+      gst_caps_unref (caps);
-       return TRUE;
-     }
-     GST_DEBUG_OBJECT (v4l2sink, "no they aren't!");
-@@ -842,18 +866,7 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
-      *
-      */
-     GST_DEBUG_OBJECT (v4l2sink, "warning, changing caps not supported yet");
--    return FALSE;
--  }
--
--  /* we want our own v4l2 type of fourcc codes */
--  if (!gst_v4l2_object_get_caps_info (v4l2sink->v4l2object, caps,
--          &format, &w, &h, &interlaced, &fps_n, &fps_d, &size)) {
--    GST_DEBUG_OBJECT (v4l2sink, "can't get capture format from caps %p", caps);
--    return FALSE;
--  }
--
--  if (!format) {
--    GST_DEBUG_OBJECT (v4l2sink, "unrecognized caps!!");
-+    gst_caps_unref (caps);
-     return FALSE;
-   }
- 
-@@ -893,6 +906,7 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
-   if (!gst_v4l2_object_set_format (v4l2sink->v4l2object, format->pixelformat,
-           w, h, interlaced)) {
-     /* error already posted */
-+    gst_caps_unref (caps);
-     return FALSE;
-   }
- 
-@@ -951,6 +965,9 @@ gst_v4l2sink_buffer_alloc (GstBaseSink * bsink, guint64 offset, guint size,
-         return GST_FLOW_ERROR;
-       }
- 
-+      /* caps may have changed in _set_caps() if we need rowstride */
-+      caps = v4l2sink->current_caps;
-+
-       GST_V4L2_CHECK_OPEN (v4l2sink->v4l2object);
- 
-       if (!(v4l2sink->pool = gst_v4l2_buffer_pool_new (GST_ELEMENT (v4l2sink),
-diff --git a/sys/v4l2/gstv4l2src.c b/sys/v4l2/gstv4l2src.c
-index 4a37d35..a9a7787 100644
---- a/sys/v4l2/gstv4l2src.c
-+++ b/sys/v4l2/gstv4l2src.c
-@@ -581,24 +581,23 @@ gst_v4l2src_get_caps (GstBaseSrc * src)
-   for (walk = v4l2src->v4l2object->formats; walk; walk = walk->next) {
-     struct v4l2_fmtdesc *format;
- 
--    GstStructure *template;
-+    GstStructure *templates[MAX_STRUCTS_PER_FOURCC];
-+    gint count, i;
- 
-     format = (struct v4l2_fmtdesc *) walk->data;
- 
--    template = gst_v4l2_object_v4l2fourcc_to_structure (format->pixelformat);
-+    count = gst_v4l2_object_v4l2fourcc_to_structures (format->pixelformat,
-+        templates);
- 
--    if (template) {
-+    for (i = 0; i < count; i++) {
-       GstCaps *tmp;
- 
--      tmp =
--          gst_v4l2_object_probe_caps_for_format (v4l2src->v4l2object,
--          format->pixelformat, template);
-+      tmp = gst_v4l2_object_probe_caps_for_format (v4l2src->v4l2object,
-+          format->pixelformat, templates[i]);
-       if (tmp)
-         gst_caps_append (ret, tmp);
- 
--      gst_structure_free (template);
--    } else {
--      GST_DEBUG_OBJECT (v4l2src, "unknown format %u", format->pixelformat);
-+      gst_structure_free (templates[i]);
-     }
-   }
- 
-@@ -613,7 +612,7 @@ static gboolean
- gst_v4l2src_set_caps (GstBaseSrc * src, GstCaps * caps)
- {
-   GstV4l2Src *v4l2src;
--  gint w = 0, h = 0;
-+  gint w = 0, h = 0, rs = 0;
-   gboolean interlaced;
-   struct v4l2_fmtdesc *format;
-   guint fps_n, fps_d;
-@@ -635,13 +634,18 @@ gst_v4l2src_set_caps (GstBaseSrc * src, GstCaps * caps)
-   }
- 
-   /* we want our own v4l2 type of fourcc codes */
--  if (!gst_v4l2_object_get_caps_info (v4l2src->v4l2object, caps, &format, &w,
--          &h, &interlaced, &fps_n, &fps_d, &size)) {
-+  if (!gst_v4l2_object_get_caps_info (v4l2src->v4l2object, caps, &format,
-+      &w, &h, &rs, &interlaced, &fps_n, &fps_d, &size)) {
-     GST_INFO_OBJECT (v4l2src,
-         "can't get capture format from caps %" GST_PTR_FORMAT, caps);
-     return FALSE;
-   }
- 
-+  /* if necessary, update caps for rowstride */
-+  if (rs) {
-+    caps = gst_v4l2_object_update_rowstride (v4l2src->v4l2object, caps, rs);
-+  }
-+
-   GST_DEBUG_OBJECT (v4l2src, "trying to set_capture %dx%d at %d/%d fps, "
-       "format %s", w, h, fps_n, fps_d, format->description);
- 
--- 
-1.7.1
-

diff --git a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0009-use-GstEventCrop-to-get-crop-info.patch b/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0009-use-GstEventCrop-to-get-crop-info.patch
deleted file mode 100644
index c5d3197..0000000
--- a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0009-use-GstEventCrop-to-get-crop-info.patch
+++ /dev/null
@@ -1,119 +0,0 @@
-From e7497b9f0c6c88b764d8f95e01197e2a2ea0dd95 Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Tue, 25 May 2010 11:02:45 -0500
-Subject: [PATCH 09/11] use GstEventCrop to get crop info
-
----
- sys/v4l2/gstv4l2sink.c |   63 +++++++++++++++++++++++++++++++++++++++++++++++-
- 1 files changed, 62 insertions(+), 1 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
-index a1f78cf..feafe7a 100644
---- a/sys/v4l2/gstv4l2sink.c
-+++ b/sys/v4l2/gstv4l2sink.c
-@@ -252,6 +252,7 @@ static GstCaps *gst_v4l2sink_get_caps (GstBaseSink * bsink);
- static gboolean gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps);
- static GstFlowReturn gst_v4l2sink_buffer_alloc (GstBaseSink * bsink,
-     guint64 offset, guint size, GstCaps * caps, GstBuffer ** buf);
-+static gboolean gst_v4l2sink_event (GstBaseSink * bsink, GstEvent * event);
- static GstFlowReturn gst_v4l2sink_show_frame (GstBaseSink * bsink,
-     GstBuffer * buf);
- static void gst_v4l2sink_sync_rotation (GstV4l2Sink * v4l2sink);
-@@ -354,6 +355,7 @@ gst_v4l2sink_class_init (GstV4l2SinkClass * klass)
-   basesink_class->get_caps = GST_DEBUG_FUNCPTR (gst_v4l2sink_get_caps);
-   basesink_class->set_caps = GST_DEBUG_FUNCPTR (gst_v4l2sink_set_caps);
-   basesink_class->buffer_alloc = GST_DEBUG_FUNCPTR (gst_v4l2sink_buffer_alloc);
-+  basesink_class->event = GST_DEBUG_FUNCPTR (gst_v4l2sink_event);
-   basesink_class->render = GST_DEBUG_FUNCPTR (gst_v4l2sink_show_frame);
- }
- 
-@@ -895,11 +897,22 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
- 
-     gst_query_parse_buffers_dimensions (query, &min_width, &min_height);
-     if (min_width > w) {
-+      v4l2sink->crop.width = w;
-+      v4l2sink->crop_fields_set |= RECT_WIDTH_SET;
-       w = min_width;
-     }
-     if (min_height > h) {
-+      v4l2sink->crop.height = h;
-+      v4l2sink->crop_fields_set |= RECT_HEIGHT_SET;
-       h = min_height;
-     }
-+
-+    /* clear top/left crop values.. otherwise by default display will try
-+     * to center, rather than scale, the image if it is too big to fit on
-+     * display
-+     */
-+    v4l2sink->crop.top = v4l2sink->crop.left = 0;
-+    v4l2sink->crop_fields_set |= RECT_TOP_SET | RECT_LEFT_SET;
-   }
-   gst_query_unref (query);
- 
-@@ -919,7 +932,13 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
-   GST_VIDEO_SINK_WIDTH (v4l2sink) = w;
-   GST_VIDEO_SINK_HEIGHT (v4l2sink) = h;
- 
--  v4l2sink->current_caps = gst_caps_ref (caps);
-+  /* this needs to go after gst_v4l2_object_set_format() to ensure driver
-+   * has proper width/height (so we don't confuse it's error checking by
-+   * setting a crop larger than the picture size)
-+   */
-+  gst_v4l2sink_sync_crop_fields (v4l2sink);
-+
-+  v4l2sink->current_caps = caps;
- 
-   return TRUE;
- }
-@@ -1023,6 +1042,48 @@ gst_v4l2sink_buffer_alloc (GstBaseSink * bsink, guint64 offset, guint size,
-   }
- }
- 
-+/* called to handle events */
-+static gboolean
-+gst_v4l2sink_event (GstBaseSink * bsink, GstEvent * event)
-+{
-+  GstV4l2Sink *v4l2sink = GST_V4L2SINK (bsink);
-+  GstEventType type = GST_EVENT_TYPE (event);
-+
-+  GST_DEBUG_OBJECT (v4l2sink, "event %" GST_PTR_FORMAT, event);
-+
-+  switch (type) {
-+    case GST_EVENT_CROP:{
-+      gint top, left, width, height;
-+      gst_event_parse_crop (event, &top, &left, &width, &height);
-+      if (top >= 0) {
-+        v4l2sink->crop.top = top;
-+        v4l2sink->crop_fields_set |= RECT_TOP_SET;
-+      }
-+      if (left >= 0) {
-+        v4l2sink->crop.left = left;
-+        v4l2sink->crop_fields_set |= RECT_LEFT_SET;
-+      }
-+      if (width >= 0) {
-+        v4l2sink->crop.width = width;
-+        v4l2sink->crop_fields_set |= RECT_WIDTH_SET;
-+      }
-+      if (height >= 0) {
-+        v4l2sink->crop.height = height;
-+        v4l2sink->crop_fields_set |= RECT_HEIGHT_SET;
-+      }
-+      gst_v4l2sink_sync_crop_fields (v4l2sink);
-+      return TRUE;
-+    }
-+    default:{
-+      if (GST_BASE_SINK_CLASS (parent_class)->event) {
-+        return GST_BASE_SINK_CLASS (parent_class)->event (bsink, event);
-+      } else {
-+        return TRUE;
-+      }
-+    }
-+  }
-+}
-+
- /* called after A/V sync to render frame */
- static GstFlowReturn
- gst_v4l2sink_show_frame (GstBaseSink * bsink, GstBuffer * buf)
--- 
-1.7.1
-

diff --git a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0010-v4l2-prefer-NV12.patch b/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0010-v4l2-prefer-NV12.patch
deleted file mode 100644
index 301056a..0000000
--- a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0010-v4l2-prefer-NV12.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 107c18830342c69229857f968dff33071d07992d Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Tue, 14 Sep 2010 07:44:01 -0500
-Subject: [PATCH 10/11] v4l2: prefer NV12
-
-All else being equal, the buffer sizes are smaller compared to a 422 format
-like YUY2/UYVY..  although ideally rank would come from driver.
----
- sys/v4l2/gstv4l2object.c |    3 +++
- 1 files changed, 3 insertions(+), 0 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2object.c b/sys/v4l2/gstv4l2object.c
-index 5e34456..644edcf 100644
---- a/sys/v4l2/gstv4l2object.c
-+++ b/sys/v4l2/gstv4l2object.c
-@@ -886,6 +886,9 @@ gst_v4l2_object_format_get_rank (const struct v4l2_fmtdesc *fmt)
-       break;
- 
-     case V4L2_PIX_FMT_NV12:    /* 12  Y/CbCr 4:2:0  */
-+      rank = YUV_BASE_RANK + 11;
-+      break;
-+
-     case V4L2_PIX_FMT_NV21:    /* 12  Y/CrCb 4:2:0  */
-     case V4L2_PIX_FMT_YYUV:    /* 16  YUV 4:2:2     */
-     case V4L2_PIX_FMT_HI240:   /*  8  8-bit color   */
--- 
-1.7.1
-

diff --git a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0011-v4l2sink-fix-issue-seen-with-autoconvert.patch b/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0011-v4l2sink-fix-issue-seen-with-autoconvert.patch
deleted file mode 100644
index 3384de7..0000000
--- a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0011-v4l2sink-fix-issue-seen-with-autoconvert.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 4e319948c62aafd5339c38d065fd8dbfa5a09ced Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob@ti.com>
-Date: Thu, 13 Jan 2011 09:43:08 -0600
-Subject: [PATCH 11/11] v4l2sink: fix issue seen with autoconvert
-
-In this scenario _set_caps() will get called earlier than _buffer_alloc()
-so we need to not override the number of buffers in the case that the
-upstream element answers the query about number of requested buffers.
----
- sys/v4l2/gstv4l2sink.c |    6 ++++--
- 1 files changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
-index feafe7a..ca6ae15 100644
---- a/sys/v4l2/gstv4l2sink.c
-+++ b/sys/v4l2/gstv4l2sink.c
-@@ -881,6 +881,8 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
- 
-     gst_query_parse_buffers_count (query, &min_buffers);
- 
-+    GST_DEBUG_OBJECT (v4l2sink, "min_buffers=%d", min_buffers);
-+
-     /* XXX need to account for some buffers used by queue, etc.. probably
-      * queue should handle query, pass on to sink pad, and then add some
-      * number of buffers to the min, so this value is dynamic depending
-@@ -888,10 +890,10 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
-      */
-     if (min_buffers != -1) {
-       min_buffers += 3 + v4l2sink->min_queued_bufs;
-+      v4l2sink->num_buffers_can_change = FALSE;
-     }
- 
-     if (min_buffers > v4l2sink->num_buffers) {
--      v4l2sink->num_buffers_can_change = FALSE;
-       v4l2sink->num_buffers = min_buffers;
-     }
- 
-@@ -972,7 +974,7 @@ gst_v4l2sink_buffer_alloc (GstBaseSink * bsink, guint64 offset, guint size,
-        * than four buffers:
-        */
-       if (!strcmp ("omap_vout", driver)) {
--        if (v4l2sink->num_buffers > 4) {
-+        if (v4l2sink->num_buffers_can_change && v4l2sink->num_buffers > 4) {
-           v4l2sink->num_buffers = 4;
-           GST_DEBUG_OBJECT (v4l2sink,
-               "limiting to 4 buffers to work-around omap_vout driver bug");
--- 
-1.7.1
-

diff --git a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0099-v4l2sink-Define-rotation-if-kernel-header-doesnt.patch b/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0099-v4l2sink-Define-rotation-if-kernel-header-doesnt.patch
deleted file mode 100644
index 82917b8..0000000
--- a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0099-v4l2sink-Define-rotation-if-kernel-header-doesnt.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 97e06ec24aa68f94bdd75f02d7026490c6080e96 Mon Sep 17 00:00:00 2001
-From: Daniel Diaz <ddiaz@ti.com>
-Date: Fri, 28 Jan 2011 15:23:26 -0600
-Subject: [PATCH] v4l2sink: Define rotation if kernel header doesn't.
-
-Signed-off-by: Daniel Diaz <ddiaz@ti.com>
----
- sys/v4l2/gstv4l2sink.c |    4 ++++
- 1 files changed, 4 insertions(+), 0 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
-index ca6ae15..0438de9 100644
---- a/sys/v4l2/gstv4l2sink.c
-+++ b/sys/v4l2/gstv4l2sink.c
-@@ -102,6 +102,10 @@ GST_IMPLEMENT_V4L2_XOVERLAY_METHODS (GstV4l2Sink, gst_v4l2sink);
- #endif
- GST_IMPLEMENT_V4L2_VIDORIENT_METHODS (GstV4l2Sink, gst_v4l2sink);
- 
-+#ifndef V4L2_CID_ROTATE
-+#  define V4L2_CID_ROTATE (V4L2_CID_BASE+34)
-+#endif
-+
- static gboolean
- gst_v4l2sink_iface_supported (GstImplementsInterface * iface, GType iface_type)
- {
--- 
-1.7.3.4

diff --git a/media-plugins/gst-plugins-v4l2/gst-plugins-v4l2-0.10.27_p20110127.ebuild b/media-plugins/gst-plugins-v4l2/gst-plugins-v4l2-0.10.27_p20110127.ebuild
deleted file mode 100644
index 7f93109..0000000
--- a/media-plugins/gst-plugins-v4l2/gst-plugins-v4l2-0.10.27_p20110127.ebuild
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-inherit gst-plugins-good
-
-DESCRIPION="Plug-in to allow capture from video4linux2 (V4L2) devices"
-KEYWORDS="~alpha ~amd64 arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
-IUSE=""
-
-RDEPEND=">=media-libs/gst-plugins-base-0.10.32_p20110127"
-DEPEND="${RDEPEND}
-	virtual/os-headers"
-
-GST_PLUGINS_BUILD="gst_v4l2"
-
-src_unpack() {
-	unpack ${A}
-	cd "${S}"
-	epatch "${FILESDIR}"/gst-0.10.27-0001-v4l2-fix-handling-of-RGB32-BGR32-formats.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0002-v4l2sink-Add-rotation-support.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0003-v4l2sink-Add-flip-property.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0004-v4l2sink-Add-support-for-omap24xxvout-driver.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0005-v4l2sink-Add-support-for-omap_vout-driver.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0006-v4l2-increase-v4l2sink-element-rank.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0007-use-GstQueryBuffers-to-get-buffer-requirements.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0008-add-rowstride-support.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0009-use-GstEventCrop-to-get-crop-info.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0010-v4l2-prefer-NV12.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0011-v4l2sink-fix-issue-seen-with-autoconvert.patch
-	epatch "${FILESDIR}"/gst-0.10.27-0099-v4l2sink-Define-rotation-if-kernel-header-doesnt.patch
-}

diff --git a/net-wireless/tibtfm-wl1271-firmware/Manifest b/net-wireless/tibtfm-wl1271-firmware/Manifest
deleted file mode 100644
index 0f1098e..0000000
--- a/net-wireless/tibtfm-wl1271-firmware/Manifest
+++ /dev/null
@@ -1,3 +0,0 @@
-DIST tibtfm-wl1271-firmware_0.24.9.2.orig.tar.gz 44187 RMD160 c3575822eca64849f892c5063f973a702a0429fe SHA1 76b6e33f11845d61360dea04770231901a29323a SHA256 12320157d91b40d3917cc48046b0ab47ef840576b0b6b899d1bc6bff1ef687f2
-EBUILD tibtfm-wl1271-firmware-0.24.9.2.ebuild 592 RMD160 c5b9ae40e0b1ecacc4b8536fa70863a0e63bed81 SHA1 7ba732cbc9e402f25a7c5d1ae8ecfe40c8c6d218 SHA256 9b99575e66c144616fd9759b2ff56c497eeacbffb7e237e6e5cc12a781b8268b
-MISC metadata.xml 222 RMD160 3f50aa50f95905f1387e67bc72c80b4c1b63aab4 SHA1 b5ad6eab5a55d57fd25fa68a46d1359cc25759aa SHA256 b8f80af5f2e9d409535bd1e3981b685a013f820ec82b504d82d5c9c077cd9fa6

diff --git a/net-wireless/tibtfm-wl1271-firmware/metadata.xml b/net-wireless/tibtfm-wl1271-firmware/metadata.xml
deleted file mode 100644
index f6b1086..0000000
--- a/net-wireless/tibtfm-wl1271-firmware/metadata.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
-<herd>no-herd</herd>
-<maintainer>
-	<email>armin76@gentoo.org</email>
-</maintainer>
-</pkgmetadata>

diff --git a/net-wireless/tibtfm-wl1271-firmware/tibtfm-wl1271-firmware-0.24.9.2.ebuild b/net-wireless/tibtfm-wl1271-firmware/tibtfm-wl1271-firmware-0.24.9.2.ebuild
deleted file mode 100644
index 6569755..0000000
--- a/net-wireless/tibtfm-wl1271-firmware/tibtfm-wl1271-firmware-0.24.9.2.ebuild
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 1999-2007 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-wireless/zd1211-firmware/zd1211-firmware-1.4.ebuild,v 1.2 2007/11/03 12:03:19 dsd Exp $
-
-DESCRIPTION="Firmware for Texas Instruments WiLinkTM solution (WL1271)"
-
-HOMEPAGE="https://gforge.ti.com/gf/project/wilink_drivers/"
-SRC_URI="https://launchpad.net/~tiomap-dev/+archive/release/+files/${PN}_${PV}.orig.tar.gz"
-
-
-LICENSE="TI-TSPA-v1"
-SLOT="0"
-KEYWORDS="arm"
-
-IUSE=""
-DEPEND=""
-
-
-src_install() {
-	insinto /lib/firmware/
-	doins init_scripts/*
-}

diff --git a/net-wireless/tibtfm-wl1271/Manifest b/net-wireless/tibtfm-wl1271/Manifest
deleted file mode 100644
index d92ac24..0000000
--- a/net-wireless/tibtfm-wl1271/Manifest
+++ /dev/null
@@ -1,5 +0,0 @@
-AUX tibtfm-wl1271.init 704 RMD160 2a0b45c33f6a0bca00c6f62917caa2b05981f70b SHA1 e0db3f00841a075445ffe02b759547f2b7bb7462 SHA256 c31555c50d7d2520b9a1716382e3405b3e376ac1be05311c73dd2e8ac4197377
-DIST tibtfm-wl1271_0.24.9-0ubuntu6.diff.gz 4110 RMD160 4b6a9c13c9765458cf6d65a417de0ceb48c99de4 SHA1 3be118bee561efe59af28e1164b4a99ce8aff74d SHA256 d97315e1ffe66c1fc625726aff6a18fc67183e3def28616fb819ea2466e1487b
-DIST tibtfm-wl1271_0.24.9.orig.tar.gz 12032 RMD160 2c7fed1bf8d09f38f86d6443d4139713043397e3 SHA1 a28ae4d05d7730ea6d07576531059067e3374fca SHA256 9e243042c48fb2591735b0526d265f4f03af779acc8a31f6c847a45138d041b0
-EBUILD tibtfm-wl1271-0.24.9.ebuild 942 RMD160 0efa3e09faea04f1430708e6440311435c536b50 SHA1 17a75550d8864e36444268a22876513bf384416a SHA256 ba397eb8836afb8ec7c5e18a8d48dfca32dc2a2eba0926e736944342eefa571c
-MISC metadata.xml 222 RMD160 3f50aa50f95905f1387e67bc72c80b4c1b63aab4 SHA1 b5ad6eab5a55d57fd25fa68a46d1359cc25759aa SHA256 b8f80af5f2e9d409535bd1e3981b685a013f820ec82b504d82d5c9c077cd9fa6

diff --git a/net-wireless/tibtfm-wl1271/files/tibtfm-wl1271.init b/net-wireless/tibtfm-wl1271/files/tibtfm-wl1271.init
deleted file mode 100755
index 8975be6..0000000
--- a/net-wireless/tibtfm-wl1271/files/tibtfm-wl1271.init
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/sbin/runscript
-# Copyright 1999-2008 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-wireless/bluez/files/4.60/bluetooth-init.d,v 1.2 2010/06/11 10:14:00 pacho Exp $
-
-depend() {
-	after coldplug
-	need dbus localmount
-}
-
-start() {
-   	ebegin "Initializing BT module of wl1271"
-
-	start-stop-daemon --start --oknodo --background \
-	--name tibtfm-wl1271 --pidfile /var/run/tibtfm-wl1271.pid --make-pidfile \
-	--exec /usr/bin/uim -- /dev/ttyO1 3686400 1 22 
-
-	eend $?
-}
-
-stop() {
-	ebegin "Deinitializing BT module of wl1271"
-	start-stop-daemon --stop  \
-        --name tibtfm-wl1271 --pidfile /var/run/tibtfm-wl1271.pid
-	eend $?
-}

diff --git a/net-wireless/tibtfm-wl1271/metadata.xml b/net-wireless/tibtfm-wl1271/metadata.xml
deleted file mode 100644
index f6b1086..0000000
--- a/net-wireless/tibtfm-wl1271/metadata.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
-<herd>no-herd</herd>
-<maintainer>
-	<email>armin76@gentoo.org</email>
-</maintainer>
-</pkgmetadata>

diff --git a/net-wireless/tibtfm-wl1271/tibtfm-wl1271-0.24.9.ebuild b/net-wireless/tibtfm-wl1271/tibtfm-wl1271-0.24.9.ebuild
deleted file mode 100644
index 5a70f52..0000000
--- a/net-wireless/tibtfm-wl1271/tibtfm-wl1271-0.24.9.ebuild
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright 1999-2007 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-wireless/zd1211-firmware/zd1211-firmware-1.4.ebuild,v 1.2 2007/11/03 12:03:19 dsd Exp $
-
-EAPI="2"
-
-inherit eutils
-
-MY_P="${PN}_${PV}"
-
-DESCRIPTION="Texas Instruments WiLinkTM solution (WL1271) applications"
-HOMEPAGE="https://gforge.ti.com/gf/project/wilink_drivers/"
-BASE_URI="https://launchpad.net/~tiomap-dev/+archive/release/+files"
-SRC_URI="${BASE_URI}/${MY_P}.orig.tar.gz"
-SRC_URI="${SRC_URI} ${BASE_URI}/${MY_P}-0ubuntu6.diff.gz"
-
-
-
-LICENSE="TI-TSPA-v1"
-SLOT="0"
-KEYWORDS="arm"
-
-IUSE=""
-RDEPEND="net-wireless/tibtfm-wl1271-firmware"
-DEPEND="${RDEPEND}"
-
-src_prepare() {
-	cd ${WORKDIR}
-
-	epatch ${MY_P}*.diff
-	cd "${S}"
-	epatch "${S}"/debian/patches/*.patch
-}
-
-src_compile() {
-	cd "${S}"/uim
-	make -j1
-}
-
-src_install() {
-	cd "${S}"
-	dobin uim/uim
-
-	newinitd "${FILESDIR}"/${PN}.init ${PN}
-}

diff --git a/net-wireless/tiwlan-wl1271-firmware/Manifest b/net-wireless/tiwlan-wl1271-firmware/Manifest
deleted file mode 100644
index a2a82bc..0000000
--- a/net-wireless/tiwlan-wl1271-firmware/Manifest
+++ /dev/null
@@ -1,3 +0,0 @@
-DIST tiwlan-wl1271-firmware_0.24.9.1.orig.tar.gz 167524 RMD160 b094c1d787c889369d91f4b8c30bcaef5c6fdc5c SHA1 39a52b01792109f9fb9014fcc11f06bf2e74259b SHA256 b1641e294f1838911c39936c3e3cc23822dab32f42f84754e47c3b7f7cf1fe79
-EBUILD tiwlan-wl1271-firmware-0.24.9.1.ebuild 641 RMD160 4301708ec5ece7f8a7cb4b028de90b7a00d5e0ce SHA1 5cce61a3473f40970f41e0d8b820247588883351 SHA256 036ccbeb1ae1ce8bf9fb4870820bb68da8abab062c4042051f1440ceba156b84
-MISC metadata.xml 222 RMD160 3f50aa50f95905f1387e67bc72c80b4c1b63aab4 SHA1 b5ad6eab5a55d57fd25fa68a46d1359cc25759aa SHA256 b8f80af5f2e9d409535bd1e3981b685a013f820ec82b504d82d5c9c077cd9fa6

diff --git a/net-wireless/tiwlan-wl1271-firmware/metadata.xml b/net-wireless/tiwlan-wl1271-firmware/metadata.xml
deleted file mode 100644
index f6b1086..0000000
--- a/net-wireless/tiwlan-wl1271-firmware/metadata.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
-<herd>no-herd</herd>
-<maintainer>
-	<email>armin76@gentoo.org</email>
-</maintainer>
-</pkgmetadata>

diff --git a/net-wireless/tiwlan-wl1271-firmware/tiwlan-wl1271-firmware-0.24.9.1.ebuild b/net-wireless/tiwlan-wl1271-firmware/tiwlan-wl1271-firmware-0.24.9.1.ebuild
deleted file mode 100644
index eb00465..0000000
--- a/net-wireless/tiwlan-wl1271-firmware/tiwlan-wl1271-firmware-0.24.9.1.ebuild
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 1999-2007 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-wireless/zd1211-firmware/zd1211-firmware-1.4.ebuild,v 1.2 2007/11/03 12:03:19 dsd Exp $
-
-DESCRIPTION="Firmware for Texas Instruments WiLinkTM solution (WL1271)"
-
-HOMEPAGE="https://gforge.ti.com/gf/project/wilink_drivers/"
-SRC_URI="https://launchpad.net/~tiomap-dev/+archive/release/+files/tiwlan-wl1271-firmware_${PV}.orig.tar.gz"
-
-
-LICENSE="TI-TSPA-v1"
-SLOT="0"
-KEYWORDS="arm"
-
-IUSE=""
-DEPEND=""
-
-
-src_install() {
-#	cd "${S}"
-	insinto /lib/firmware/tiwlan-wl1271
-	doins firmware/firmware.bin
-}

diff --git a/net-wireless/tiwlan-wl1271/ChangeLog b/net-wireless/tiwlan-wl1271/ChangeLog
deleted file mode 100644
index 625d23e..0000000
--- a/net-wireless/tiwlan-wl1271/ChangeLog
+++ /dev/null
@@ -1,8 +0,0 @@
-# ChangeLog for net-wireless/tiwlan-wl1271
-# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: $
-
-  24 Dec 2010; Raúl Porcel <armin76@gentoo.org>
-  tiwlan-wl1271-0.24.9.ebuild:
-  Enhanced ebuild
-

diff --git a/net-wireless/tiwlan-wl1271/Manifest b/net-wireless/tiwlan-wl1271/Manifest
deleted file mode 100644
index 1f156f6..0000000
--- a/net-wireless/tiwlan-wl1271/Manifest
+++ /dev/null
@@ -1,5 +0,0 @@
-DIST tiwlan-wl1271_0.24.9-0ubuntu6.diff.gz 5228 RMD160 3dc0bb430d8e9b4cc12bbef050880b36c3af48af SHA1 72d21447f83b9113aa059c66db351a132c86dcb6 SHA256 bd9c72409a2cd79ff14c05f4e1d258840af68ef359edb8cbb3baf2f8c8d1c12c
-DIST tiwlan-wl1271_0.24.9.orig.tar.gz 1251415 RMD160 f10c004a0770de6efd61eb5b6a7d4f20147b15ea SHA1 6fbfd5b8bb382ed68e66116e061e41a41bec5d98 SHA256 60a64c8c3daee9dc897a8918e2f082bcfcb4a3dbd66c013978e331e1c8e6127b
-EBUILD tiwlan-wl1271-0.24.9.ebuild 1520 RMD160 1a480eb6cb864e704b0eacf932aca587b1c692fa SHA1 52bc6789e61fa3693e4c00012675ded6a51b34fc SHA256 30371da654faa299ae034fbdc14d6da7df6531b12db1eaa97981062b57f186df
-MISC ChangeLog 226 RMD160 865cb82d56f68a03ebadb5952c5c81e31eb42987 SHA1 2db2fe47296b2ef3c65853077ea7b63308384a6c SHA256 60eb2847621f2908efd00cdedcfea3bf52e84d26143facafa0136841d79c7f53
-MISC metadata.xml 222 RMD160 3f50aa50f95905f1387e67bc72c80b4c1b63aab4 SHA1 b5ad6eab5a55d57fd25fa68a46d1359cc25759aa SHA256 b8f80af5f2e9d409535bd1e3981b685a013f820ec82b504d82d5c9c077cd9fa6

diff --git a/net-wireless/tiwlan-wl1271/metadata.xml b/net-wireless/tiwlan-wl1271/metadata.xml
deleted file mode 100644
index f6b1086..0000000
--- a/net-wireless/tiwlan-wl1271/metadata.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
-<herd>no-herd</herd>
-<maintainer>
-	<email>armin76@gentoo.org</email>
-</maintainer>
-</pkgmetadata>

diff --git a/net-wireless/tiwlan-wl1271/tiwlan-wl1271-0.24.9.ebuild b/net-wireless/tiwlan-wl1271/tiwlan-wl1271-0.24.9.ebuild
deleted file mode 100644
index 2e90a53..0000000
--- a/net-wireless/tiwlan-wl1271/tiwlan-wl1271-0.24.9.ebuild
+++ /dev/null
@@ -1,70 +0,0 @@
-# Copyright 1999-2010 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-wireless/zd1211-firmware/zd1211-firmware-1.4.ebuild,v 1.2 2007/11/03 12:03:19 dsd Exp $
-
-EAPI="2"
-
-inherit eutils linux-mod
-
-MY_P="${PN}_${PV}"
-
-DESCRIPTION="Texas Instruments WiLinkTM solution (WL1271) applications"
-HOMEPAGE="https://gforge.ti.com/gf/project/wilink_drivers/"
-BASE_URI="https://launchpad.net/~tiomap-dev/+archive/release/+files"
-SRC_URI="${BASE_URI}/${MY_P}.orig.tar.gz"
-SRC_URI="${SRC_URI} ${BASE_URI}/${MY_P}-0ubuntu6.diff.gz"
-
-
-
-LICENSE="TI-TSPA-v1"
-SLOT="0"
-KEYWORDS="arm"
-
-IUSE=""
-RDEPEND="net-wireless/tiwlan-wl1271-firmware"
-DEPEND="${RDEPEND}"
-
-
-pkg_setup() {
-    linux-mod_pkg_setup
-
-}
-
-src_prepare() {
-	cd ${WORKDIR}
-
-	epatch ${MY_P}*.diff
-	cd "${S}"
-	epatch "${S}"/debian/patches/*.patch
-
-	cd wlan
-	cp wlan/Makefile .
-}
-
-src_compile() {
-	cd wlan
-        # compile modules
-        emake -j1 KERNEL_HEADERS=${KV_DIR} || die
-
-        # compile utils
-        cd CUDK
-        emake -j1 || die
-}
-
-src_install() {
-#	cd "${S}"
-	insinto /etc/udev/rules.d/
-	newins debian/tiwlan-wl1271-dkms.udev 40-tiwlan-wl1271.rules
-	
-	cd wlan/CUDK/output/
-	newbin tiwlan_loader tiwlan_loader_wl1271
-	newbin wlan_cu wlan_cu_wl1271
-	cd ../../platforms/os/linux/
-	insinto /lib/firmware/tiwlan-wl1271
-	doins tiwlan.ini tiwlan_dual.ini
-
-	cd "${S}"/wlan
-        insinto /lib/modules/${KV_FULL}/kernel/drivers/net/wireless/tiwlan-wl1271
-        doins sdio.ko tiwlan_drv.ko
-
-}

diff --git a/sys-kernel/omap4-sources/Manifest b/sys-kernel/omap4-sources/Manifest
index c929c9a..8d9571d 100644
--- a/sys-kernel/omap4-sources/Manifest
+++ b/sys-kernel/omap4-sources/Manifest
@@ -1,3 +1,5 @@
-DIST linux-ti-omap4_2.6.35-903.21.tar.gz 92525616 RMD160 270560330295d8821c3fd97786311a3c3b368dc3 SHA1 b1d687914035c1791f12ef008523a14257e9cf05 SHA256 4c17428854800e17cf66d702a552c79614edc247280e2eb8d40383d3f61c8c7e
-EBUILD omap4-sources-2.6.35.903.21.ebuild 577 RMD160 9fab1a35337dcfda1b55920d65bb5040fc5e7176 SHA1 8d628288133b0aa38a10f804957224c6a41ee62b SHA256 c7163f7c53b1d447bc23216b5d4d0847b409faa7c0897d08c9d77f1f12433acc
+DIST linux-ti-omap4_2.6.35-980.1release9.tar.gz 96864653 RMD160 43f6842b80da45f30424730da6c1036bc4b27115 SHA1 b63641ac0f1211e8f1bdfa586f350d0c17fa2267 SHA256 bf36a5746e282c839365010fb3908ba41768fcc54ceb6d67e28168fe0f350ef3
+DIST linux-ti-omap4_2.6.38-1207.10.tar.gz 100113866 RMD160 31cf5ebbd5be67ec75583bce91d32462ce24e827 SHA1 71ff4f2e020d1798a02fe153bfa26f96e495c4cc SHA256 a0b7a54e3362d1a2077088d3ae4213e800b394b75e187977c5fdf0d142c355ee
+EBUILD omap4-sources-2.6.35.980.1.9.ebuild 702 RMD160 52fe25f51123e0455e9ecc80f2051a04e04c6e0b SHA1 75bd9e8aec3e7bdeffd133e38b2f03218d9d0920 SHA256 da64086b86e45ac322048eb03fbe5d535af6cad9fb8208143683c6514ab5ef49
+EBUILD omap4-sources-2.6.38.1207.10.ebuild 574 RMD160 b4edddcc5e2d91c70ed7741d2968ac398c026f9f SHA1 64b28882fc92be7addf33ea0790c0fbe659fb95f SHA256 b74586ce37057dd1d0c40ee00ae80fe6dac5fda4ecd5f7083293e08ef5ff8efa
 MISC ChangeLog 663 RMD160 19c9debc73af5d511129a3826392ffed45fe8c59 SHA1 4ef0771489f535703215d31d88844eaf4939e499 SHA256 73e1c0fc7d1a00c7ea9a1171826d8920d36517757aa8e6a3b76ed5a1b54d4329

diff --git a/sys-kernel/omap4-sources/omap4-sources-2.6.35.903.21.ebuild b/sys-kernel/omap4-sources/omap4-sources-2.6.38.1207.10.ebuild
similarity index 93%
rename from sys-kernel/omap4-sources/omap4-sources-2.6.35.903.21.ebuild
rename to sys-kernel/omap4-sources/omap4-sources-2.6.38.1207.10.ebuild
index 4bffafe..e07ed9b 100644
--- a/sys-kernel/omap4-sources/omap4-sources-2.6.35.903.21.ebuild
+++ b/sys-kernel/omap4-sources/omap4-sources-2.6.38.1207.10.ebuild
@@ -21,7 +21,7 @@ S="${WORKDIR}"
 
 src_unpack() {
 	unpack ${A}
-	mv ubuntu-maverick linux-${PV}-omap4
+	mv ubuntu-natty linux-${PV}-omap4
 
 }
 

diff --git a/x11-drivers/pvr-omap4-kernel/Manifest b/x11-drivers/pvr-omap4-kernel/Manifest
index 330388b..df27fe3 100644
--- a/x11-drivers/pvr-omap4-kernel/Manifest
+++ b/x11-drivers/pvr-omap4-kernel/Manifest
@@ -1,4 +1,4 @@
-DIST pvr-omap4-kernel_0.24.9-2.diff.gz 5198 RMD160 851c03ecf256bf5b48ee6999036ea3b4aaa55853 SHA1 cf10d0f0df7db2443ba0abadb040be404f504a7d SHA256 e8f26952e588dfe0d009df909faa4d9cceaaacecf48fc5902544c71506a2c81d
-DIST pvr-omap4-kernel_0.24.9.orig.tar.gz 325677 RMD160 337236a41bc6d8a19b61214873bc80fcacea4151 SHA1 9b05cc80e93ee8eac34c73068386efeb417c3cf0 SHA256 0b404586a23eaebaa586ec18fd1da8cb3eed7682b1887823527ac62195e104bb
-EBUILD pvr-omap4-kernel-0.24.9.ebuild 998 RMD160 6b42cd3f6b27acc99e6a1b2d5157111408a71f96 SHA1 6d60f97d3aae672c1b8b5b8afcbf9d47b55e9003 SHA256 f35b29f7befd00746d7b56e6a312295f140efd1d78cb10f1d9e9f9f9460a0beb
+DIST pvr-omap4-kernel_1.7~git0f0b25f-2natty2.diff.gz 13621 RMD160 6399193111e475d79f579536f93885a83bd088b8 SHA1 e931e78cdb2abe23355c13656b915b7deb83ded3 SHA256 fd00668d34b698af60d0d62454a268a6aa98da522ab265153fb4f2310ba308fb
+DIST pvr-omap4-kernel_1.7~git0f0b25f.orig.tar.gz 379145 RMD160 a22e28d016bd5f0e3e8684ef8f315b8e6e2f0155 SHA1 c03dde4b540238526fd17df2705961db29871d4e SHA256 f0302437c159224cb591d41f29c44404941e97dc106cdfe588357b449545b18a
+EBUILD pvr-omap4-kernel-1.7.ebuild 948 RMD160 b3d20bbda4d9c22991ce213c29a5aecf4c70aa60 SHA1 5e78bc484dd28925e335a4879f070e551f2ba40e SHA256 92a181e281a946148438fc80372bb36ade820b67931e1e147e7674f0761f0813
 MISC ChangeLog 282 RMD160 0855c8692ee9341c2362eced70bf4572b58316f5 SHA1 5a1a636c8e89b3d701126445f4bb167c4c3bbdda SHA256 be2697730c16019faba9e3440abca06ea219ef08744be943e97b5c9e2240a2d2

diff --git a/x11-drivers/pvr-omap4-kernel/pvr-omap4-kernel-0.24.9.ebuild b/x11-drivers/pvr-omap4-kernel/pvr-omap4-kernel-1.7.ebuild
similarity index 60%
rename from x11-drivers/pvr-omap4-kernel/pvr-omap4-kernel-0.24.9.ebuild
rename to x11-drivers/pvr-omap4-kernel/pvr-omap4-kernel-1.7.ebuild
index 816fad5..46a4f3e 100644
--- a/x11-drivers/pvr-omap4-kernel/pvr-omap4-kernel-0.24.9.ebuild
+++ b/x11-drivers/pvr-omap4-kernel/pvr-omap4-kernel-1.7.ebuild
@@ -9,8 +9,8 @@ inherit eutils linux-mod
 DESCRIPTION="PowerVR SGX540 kernel driver for OMAP4"
 
 HOMEPAGE=""
-SRC_URI="https://launchpad.net/~tiomap-dev/+archive/release/+files/${PN}_${PV}.orig.tar.gz
-https://launchpad.net/~tiomap-dev/+archive/release/+files/${PN}_${PV}-2.diff.gz"
+SRC_URI="https://launchpad.net/~tiomap-dev/+archive/omap-trunk/+files/${PN}_1.7~git0f0b25f.orig.tar.gz
+https://launchpad.net/~tiomap-dev/+archive/omap-trunk/+files/${PN}_1.7~git0f0b25f-2natty2.diff.gz"
 
 
 LICENSE="TI"
@@ -21,25 +21,24 @@ IUSE=""
 DEPEND=""
 
 S="${WORKDIR}/${P}/sgx"
-RESTRICT="strip"
+#RESTRICT="strip"
 
 src_prepare() {
 	cd "${WORKDIR}"
 	epatch *.diff
-	
-	cd "${S}/.."
+
+	mv pvr-omap4-kernel-1.7~git0f0b25f ${P}
+
+	cd "${P}"
+
 	epatch debian/patches/*.patch
 }
 
 src_compile() {
-#	cd eurasiacon/build/linux/omap4430_linux/kbuild/
-	
-	export SUPPORT_XORG=1
-	emake -j1 KERNELDIR="${KV_DIR}" LDFLAGS="" || die
+	emake -j1 KERNELDIR="${KV_DIR}" LDFLAGS="" FLAVOUR=release  || die
 }
 
 src_install() {
 	insinto /lib/modules/${KV_FULL}/kernel/extra
-#	doins eurasiacon/binary_omap4430_linux_release/pvrsrvkm.ko
 	doins pvrsrvkm.ko
 }

diff --git a/x11-drivers/pvr-omap4/Manifest b/x11-drivers/pvr-omap4/Manifest
index 957970d..313b896 100644
--- a/x11-drivers/pvr-omap4/Manifest
+++ b/x11-drivers/pvr-omap4/Manifest
@@ -1,4 +1,4 @@
-DIST pvr-omap4_0.24.9c-1.diff.gz 9093 RMD160 88a2bea866a1b79d530289b6db5aa25644724e1e SHA1 911e8f9923449aa42a5df5f7fb3483d4b5431863 SHA256 ec75aba62209e86e0489427aead6619ab31b387a08f8575efc53cf60add773c6
-DIST pvr-omap4_0.24.9c.orig.tar.gz 1149685 RMD160 a6653bbd91746e1f8e8322614772cd96409cc8b2 SHA1 d3b6b0424a2fec88a5a3a16a0203f953e79f10ff SHA256 6b8e5904579ec3bae1467b5950d915bbad63ef3d0e54972370b9fddf9124852c
-EBUILD pvr-omap4-0.24.9c.ebuild 875 RMD160 00ebd4e7e9e437032fa405df0324ed0e73402da2 SHA1 76aee2463ffa13de0038b2ceedb65b4e45be340a SHA256 9a90022025d4b654d4cf8e5f8766a84a8162f6bf256633bb6cbcb2df01db655b
+DIST pvr-omap4_1.7~git0f0b25f.2natty5-1.diff.gz 9772 RMD160 139c944be520f0a405d10951821816e9fe407f10 SHA1 3fd724cb2c2b7a821a1f82a34d92e3766aab9432 SHA256 62776a6470ea3e921f130a3599d2f09ac9fcf7bf713920a10092be10b0616e6e
+DIST pvr-omap4_1.7~git0f0b25f.2natty5.orig.tar.gz 1852247 RMD160 a9ed7cd33145bc1436b209801ab737df2474de65 SHA1 99c460048fdcdf66da3b6a7f91f463f597856df2 SHA256 e64e98ba3cd75a629390b22828295d7901dd844da5a4a73c91a360eb0d9ed9ef
+EBUILD pvr-omap4-1.7.ebuild 1108 RMD160 c2371f0d41c65208b6d1713e1a34493d1e84b795 SHA1 b58a8db296c22a70e5fcd4ddee9fa2f25f0b0700 SHA256 d09706607e8fd39c1f70f0422b8f92287ba7450ad5240a1ef7ddd5f2b9a6f035
 MISC ChangeLog 564 RMD160 e24f6483546ce946be8605a4950b8c92eb30cad2 SHA1 5be113fcf58be034eee14679ffeda3b73c00a9f1 SHA256 fa5dac271f0034d161be3e8abd4840db38242f9d3f911ff1e8680a2d4c97f631

diff --git a/x11-drivers/pvr-omap4/pvr-omap4-0.24.9c.ebuild b/x11-drivers/pvr-omap4/pvr-omap4-0.24.9c.ebuild
deleted file mode 100644
index ac962ff..0000000
--- a/x11-drivers/pvr-omap4/pvr-omap4-0.24.9c.ebuild
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-wireless/zd1211-firmware/zd1211-firmware-1.4.ebuild,v 1.2 2007/11/03 12:03:19 dsd Exp $
-
-EAPI="3"
-
-inherit eutils
-
-DESCRIPTION="PowerVR SGX540 libraries for OMAP4"
-
-HOMEPAGE=""
-SRC_URI="https://launchpad.net/~tiomap-dev/+archive/release/+files/${PN}_${PV}.orig.tar.gz
-https://launchpad.net/~tiomap-dev/+archive/release/+files/${PN}_${PV}-1.diff.gz"
-
-
-LICENSE="TI"
-SLOT="0"
-KEYWORDS="arm"
-
-IUSE=""
-DEPEND=">=x11-base/xorg-server-1.9
-	x11-libs/libdrm
-	=x11-drivers/pvr-omap4-kernel-0.24.9"
-RDEPEND="${DEPEND}"
-
-S="${WORKDIR}"
-RESTRICT="strip"
-
-src_prepare() {
-	epatch *.diff
-	mv ${P}/Makefile .
-}
-
-src_install() {
-	make DESTDIR="${D}" install
-	rm -rf "${D}"/usr/lib/libEGL.so.1 \
-		"${D}"/etc/init "${D}"/usr/lib/libOpenVG.so.1
-
-}

diff --git a/x11-drivers/pvr-omap4/pvr-omap4-1.7.ebuild b/x11-drivers/pvr-omap4/pvr-omap4-1.7.ebuild
new file mode 100644
index 0000000..ce11a8e
--- /dev/null
+++ b/x11-drivers/pvr-omap4/pvr-omap4-1.7.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-wireless/zd1211-firmware/zd1211-firmware-1.4.ebuild,v 1.2 2007/11/03 12:03:19 dsd Exp $
+
+EAPI="3"
+
+inherit eutils
+
+DESCRIPTION="PowerVR SGX540 libraries for OMAP4"
+
+HOMEPAGE=""
+SRC_URI="https://launchpad.net/~tiomap-dev/+archive/omap-trunk/+files/${PN}_1.7~git0f0b25f.2natty5.orig.tar.gz
+https://launchpad.net/~tiomap-dev/+archive/omap-trunk/+files/${PN}_1.7~git0f0b25f.2natty5-1.diff.gz"
+
+
+LICENSE="TI"
+SLOT="0"
+KEYWORDS="arm"
+
+IUSE=""
+DEPEND=">=x11-base/xorg-server-1.10
+	x11-libs/libdrm
+	=x11-drivers/pvr-omap4-kernel-1.7"
+RDEPEND="${DEPEND}"
+
+#S="${WORKDIR}"
+RESTRICT="strip"
+
+src_prepare() {
+	cd "${WORKDIR}"
+	epatch *.diff
+
+	mv pvr-omap4-1.7~git0f0b25f.2natty5 ${P}
+}
+
+src_install() {
+	make DESTDIR="${D}" install
+
+	cd "${D}"
+	rm -rf usr/include/EGL \
+		usr/include/KHR \
+		usr/include/VG \
+		usr/lib/libEGL.so \
+		usr/lib/libOpenVG.so{,.1} \
+		usr/lib/pkgconfig \
+#	rm -rf "${D}"/usr/lib/libEGL.so.1 \
+#		"${D}"/etc/init "${D}"/usr/lib/libOpenVG.so.1
+
+}
+



^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2011-05-13 19:50 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-04-17 17:18 [gentoo-commits] proj/pandaboard:2.6.38 commit in: media-libs/gst-plugins-base/files/, media-plugins/gst-openmax/files/, Raúl Porcel
2011-05-13 19:49 ` [gentoo-commits] proj/pandaboard:master " Raúl Porcel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox