summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaúl Porcel <armin76@gentoo.org>2011-04-17 19:18:10 +0200
committerRaúl Porcel <armin76@gentoo.org>2011-04-17 19:18:10 +0200
commit18f87cb140ef5e299af0bb6576f20fd5834f508a (patch)
treef71f34fcddf3632271f1861f0e0f56297f0a26c3
parentAdd ebuild for gst-plugins-v4l2. (diff)
downloadpandaboard-18f87cb140ef5e299af0bb6576f20fd5834f508a.tar.gz
pandaboard-18f87cb140ef5e299af0bb6576f20fd5834f508a.tar.bz2
pandaboard-18f87cb140ef5e299af0bb6576f20fd5834f508a.zip
Add 2.6.38 ebuilds
-rw-r--r--eclass/gst-plugins-good.eclass129
-rw-r--r--media-libs/domx/Manifest2
-rw-r--r--media-libs/domx/domx-24.11-r0.ebuild31
-rw-r--r--media-libs/domx/domx-24.11_p1-r0.ebuild31
-rw-r--r--media-libs/gst-plugins-base/Manifest26
-rw-r--r--media-libs/gst-plugins-base/files/gst-0.10.32-0001-add-rowstride-support-to-video-utility-functions.patch536
-rw-r--r--media-libs/gst-plugins-base/files/gst-0.10.32-0002-stridetransform-skeletal-implementation-of-stridetra.patch368
-rw-r--r--media-libs/gst-plugins-base/files/gst-0.10.32-0003-stridetransform-implement-caps-negotiation-and-relat.patch379
-rw-r--r--media-libs/gst-plugins-base/files/gst-0.10.32-0004-stridetransform-implement-transform-function.patch215
-rw-r--r--media-libs/gst-plugins-base/files/gst-0.10.32-0005-add-gst_stride_transform_transform_size.patch143
-rw-r--r--media-libs/gst-plugins-base/files/gst-0.10.32-0006-fix-a-small-typo.-need-to-use-the-smaller-of-new_wid.patch36
-rw-r--r--media-libs/gst-plugins-base/files/gst-0.10.32-0007-Add-NV12-support-in-stridetransform.patch77
-rw-r--r--media-libs/gst-plugins-base/files/gst-0.10.32-0008-add-basic-support-for-I420-NV12-colorspace-conversio.patch186
-rw-r--r--media-libs/gst-plugins-base/files/gst-0.10.32-0009-fix-to-avoid-parsing-caps-on-every-frame.patch35
-rw-r--r--media-libs/gst-plugins-base/files/gst-0.10.32-0010-refactor-stridetransform-to-make-it-easier-to-add-ne.patch759
-rw-r--r--media-libs/gst-plugins-base/files/gst-0.10.32-0011-add-some-neon.patch293
-rw-r--r--media-libs/gst-plugins-base/files/gst-0.10.32-0012-add-support-to-convert-to-YUY2-YUYV-color-format.patch197
-rw-r--r--media-libs/gst-plugins-base/files/gst-0.10.32-0013-Add-support-for-RGB565-to-stridetransform.patch336
-rw-r--r--media-libs/gst-plugins-base/files/gst-0.10.32-0014-stridetransform-updates-for-new-extra-anal-compiler-.patch61
-rw-r--r--media-libs/gst-plugins-base/files/gst-0.10.32-0015-stridetransform-fix-problem-transforming-caps-with-l.patch544
-rw-r--r--media-libs/gst-plugins-base/files/gst-0.10.32-0016-modify-playbin-to-use-stridetransform.patch62
-rw-r--r--media-libs/gst-plugins-base/files/gst-0.10.32-0017-playbin-disable-interlaced-support.patch33
-rw-r--r--media-libs/gst-plugins-base/files/gst-0.10.32-0018-textoverlay-add-stride-support.patch132
-rw-r--r--media-libs/gst-plugins-base/files/gst-0.10.32-0019-video-more-flexible-video-caps-utility.patch228
-rw-r--r--media-libs/gst-plugins-base/files/gst-0.10.32-0020-video-fix-endianess-issue-for-16bit-RGB-formats.patch41
-rw-r--r--media-libs/gst-plugins-base/files/gst-0.10.32-0021-stride-more-flexible-stride-color-conversion.patch1131
-rw-r--r--media-libs/gst-plugins-base/files/gst-0.10.32-0022-stride-support-for-32bit-RGB-formats.patch54
-rw-r--r--media-libs/gst-plugins-base/files/gst-0.10.32-0023-ffmpegcolorspace-support-for-rowstride.patch410
-rw-r--r--media-libs/gst-plugins-base/files/gst-0.10.32-0024-discoverer-rowstride-support.patch45
-rw-r--r--media-libs/gst-plugins-base/gst-plugins-base-0.10.32_p20110127.ebuild78
-rw-r--r--media-libs/gst-plugins-good/Manifest14
-rw-r--r--media-libs/gst-plugins-good/files/gst-0.10.27-0001-v4l2-fix-handling-of-RGB32-BGR32-formats.patch53
-rw-r--r--media-libs/gst-plugins-good/files/gst-0.10.27-0002-v4l2sink-Add-rotation-support.patch128
-rw-r--r--media-libs/gst-plugins-good/files/gst-0.10.27-0003-v4l2sink-Add-flip-property.patch187
-rw-r--r--media-libs/gst-plugins-good/files/gst-0.10.27-0004-v4l2sink-Add-support-for-omap24xxvout-driver.patch59
-rw-r--r--media-libs/gst-plugins-good/files/gst-0.10.27-0005-v4l2sink-Add-support-for-omap_vout-driver.patch34
-rw-r--r--media-libs/gst-plugins-good/files/gst-0.10.27-0006-v4l2-increase-v4l2sink-element-rank.patch26
-rw-r--r--media-libs/gst-plugins-good/files/gst-0.10.27-0007-use-GstQueryBuffers-to-get-buffer-requirements.patch97
-rw-r--r--media-libs/gst-plugins-good/files/gst-0.10.27-0008-add-rowstride-support.patch572
-rw-r--r--media-libs/gst-plugins-good/files/gst-0.10.27-0009-use-GstEventCrop-to-get-crop-info.patch119
-rw-r--r--media-libs/gst-plugins-good/files/gst-0.10.27-0010-v4l2-prefer-NV12.patch28
-rw-r--r--media-libs/gst-plugins-good/files/gst-0.10.27-0011-v4l2sink-fix-issue-seen-with-autoconvert.patch49
-rw-r--r--media-libs/gst-plugins-good/files/gst-0.10.27-0099-v4l2sink-Disable-rotation-code-when-not-found.patch103
-rw-r--r--media-libs/gst-plugins-good/gst-plugins-good-0.10.27_p20110127.ebuild84
-rw-r--r--media-libs/gstreamer/Manifest7
-rw-r--r--media-libs/gstreamer/files/gst-0.10.32-0001-gst-launch-add-loop-argument.patch54
-rw-r--r--media-libs/gstreamer/files/gst-0.10.32-0002-Changes-to-make-it-possible-to-LD_PRELOAD-libttif.patch262
-rw-r--r--media-libs/gstreamer/files/gst-0.10.32-0003-add-GstQueryBuffers-query.patch258
-rw-r--r--media-libs/gstreamer/files/gst-0.10.32-0004-Add-GstEventCrop-event.patch161
-rw-r--r--media-libs/gstreamer/files/gst-0.10.32-0005-basetransform-don-t-do-unnecessary-pad_alloc.patch52
-rw-r--r--media-libs/gstreamer/gstreamer-0.10.32_p20110127.ebuild68
-rw-r--r--media-libs/syslink-d2c/Manifest1
-rw-r--r--media-libs/syslink-d2c/syslink-d2c-24.11_p1-r0.ebuild38
-rw-r--r--media-libs/syslink/Manifest2
-rw-r--r--media-libs/syslink/files/add-missing-libraries-to-linker.patch52
-rw-r--r--media-libs/syslink/syslink-24.11_p1-r0.ebuild39
-rw-r--r--media-libs/tiler/Manifest1
-rw-r--r--media-libs/tiler/tiler-24.11-r0.ebuild38
-rw-r--r--media-plugins/gst-openmax/Manifest5
-rw-r--r--media-plugins/gst-openmax/files/0001-videoenc-use-shared-buffers-on-output-port.patch27
-rw-r--r--media-plugins/gst-openmax/files/0002-Replace-deprecated-vstab-event-with-crop-event.patch64
-rw-r--r--media-plugins/gst-openmax/files/0099-temp-32k-header-dec10.patch81
-rw-r--r--media-plugins/gst-openmax/files/0099-temp-32k-header-nov10.patch82
-rw-r--r--media-plugins/gst-openmax/gst-openmax-9999.ebuild38
-rw-r--r--media-plugins/gst-plugins-v4l2/Manifest14
-rw-r--r--media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0001-v4l2-fix-handling-of-RGB32-BGR32-formats.patch53
-rw-r--r--media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0002-v4l2sink-Add-rotation-support.patch128
-rw-r--r--media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0003-v4l2sink-Add-flip-property.patch187
-rw-r--r--media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0004-v4l2sink-Add-support-for-omap24xxvout-driver.patch59
-rw-r--r--media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0005-v4l2sink-Add-support-for-omap_vout-driver.patch34
-rw-r--r--media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0006-v4l2-increase-v4l2sink-element-rank.patch26
-rw-r--r--media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0007-use-GstQueryBuffers-to-get-buffer-requirements.patch97
-rw-r--r--media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0008-add-rowstride-support.patch572
-rw-r--r--media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0009-use-GstEventCrop-to-get-crop-info.patch119
-rw-r--r--media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0010-v4l2-prefer-NV12.patch28
-rw-r--r--media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0011-v4l2sink-fix-issue-seen-with-autoconvert.patch49
-rw-r--r--media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0099-v4l2sink-Define-rotation-if-kernel-header-doesnt.patch27
-rw-r--r--media-plugins/gst-plugins-v4l2/gst-plugins-v4l2-0.10.27_p20110127.ebuild32
-rw-r--r--net-wireless/tibtfm-wl1271-firmware/Manifest3
-rw-r--r--net-wireless/tibtfm-wl1271-firmware/metadata.xml8
-rw-r--r--net-wireless/tibtfm-wl1271-firmware/tibtfm-wl1271-firmware-0.24.9.2.ebuild22
-rw-r--r--net-wireless/tibtfm-wl1271/Manifest5
-rwxr-xr-xnet-wireless/tibtfm-wl1271/files/tibtfm-wl1271.init26
-rw-r--r--net-wireless/tibtfm-wl1271/metadata.xml8
-rw-r--r--net-wireless/tibtfm-wl1271/tibtfm-wl1271-0.24.9.ebuild45
-rw-r--r--net-wireless/tiwlan-wl1271-firmware/Manifest3
-rw-r--r--net-wireless/tiwlan-wl1271-firmware/metadata.xml8
-rw-r--r--net-wireless/tiwlan-wl1271-firmware/tiwlan-wl1271-firmware-0.24.9.1.ebuild23
-rw-r--r--net-wireless/tiwlan-wl1271/ChangeLog8
-rw-r--r--net-wireless/tiwlan-wl1271/Manifest5
-rw-r--r--net-wireless/tiwlan-wl1271/metadata.xml8
-rw-r--r--net-wireless/tiwlan-wl1271/tiwlan-wl1271-0.24.9.ebuild70
-rw-r--r--sys-kernel/omap4-sources/Manifest6
-rw-r--r--sys-kernel/omap4-sources/omap4-sources-2.6.38.1207.10.ebuild (renamed from sys-kernel/omap4-sources/omap4-sources-2.6.35.903.21.ebuild)2
-rw-r--r--x11-drivers/pvr-omap4-kernel/Manifest6
-rw-r--r--x11-drivers/pvr-omap4-kernel/pvr-omap4-kernel-1.7.ebuild (renamed from x11-drivers/pvr-omap4-kernel/pvr-omap4-kernel-0.24.9.ebuild)19
-rw-r--r--x11-drivers/pvr-omap4/Manifest6
-rw-r--r--x11-drivers/pvr-omap4/pvr-omap4-0.24.9c.ebuild39
-rw-r--r--x11-drivers/pvr-omap4/pvr-omap4-1.7.ebuild50
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
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
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
+
+}
+