summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhang Le <r0bertz@gentoo.org>2010-06-10 11:53:02 +0800
committerZhang Le <r0bertz@gentoo.org>2010-06-10 11:53:02 +0800
commit1126dba59a80fce29c5ba7534257525198d99ecd (patch)
tree4499580891632dca9bc15184915b6e82e0b15745 /media-video
parentbump libgcrypt to 1.4.5 (diff)
downloadloongson-1126dba59a80fce29c5ba7534257525198d99ecd.tar.gz
loongson-1126dba59a80fce29c5ba7534257525198d99ecd.tar.bz2
loongson-1126dba59a80fce29c5ba7534257525198d99ecd.zip
added ffmpeg-0.5_p22846.ebuild
Signed-off-by: Zhang Le <r0bertz@gentoo.org>
Diffstat (limited to 'media-video')
-rw-r--r--media-video/ffmpeg/ChangeLog1520
-rw-r--r--media-video/ffmpeg/Manifest5
-rw-r--r--media-video/ffmpeg/ffmpeg-0.5_p22846.ebuild249
-rw-r--r--media-video/ffmpeg/files/ffmpeg-loongson.patch1794
-rw-r--r--media-video/ffmpeg/metadata.xml28
5 files changed, 3596 insertions, 0 deletions
diff --git a/media-video/ffmpeg/ChangeLog b/media-video/ffmpeg/ChangeLog
new file mode 100644
index 0000000..83619bf
--- /dev/null
+++ b/media-video/ffmpeg/ChangeLog
@@ -0,0 +1,1520 @@
+# ChangeLog for media-video/ffmpeg
+# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/media-video/ffmpeg/ChangeLog,v 1.351 2010/05/11 10:18:21 aballier Exp $
+
+ 11 May 2010; Alexis Ballier <aballier@gentoo.org> ffmpeg-9999-r1.ebuild,
+ metadata.xml:
+ add vaapi useflag, by Olivier Huber <oli.huber@gmail.com>, bug #308857
+
+ 11 May 2010; Alexis Ballier <aballier@gentoo.org>
+ ffmpeg-0.5_p20373.ebuild, ffmpeg-0.5_p22846.ebuild:
+ force disabling vaapi to avoid automagics on unmasked versions, bug
+ #308857
+
+ 11 May 2010; Alexis Ballier <aballier@gentoo.org>
+ -ffmpeg-0.5_p20601-r1.ebuild, -ffmpeg-0.5_p21602.ebuild,
+ -files/ffmpeg-0.5_p20601-r1-libtheora.patch:
+ remove old
+
+ 23 Apr 2010; Samuli Suominen <ssuominen@gentoo.org>
+ ffmpeg-0.5_p20373.ebuild, ffmpeg-0.5_p20601-r1.ebuild,
+ ffmpeg-0.5_p21602.ebuild, ffmpeg-0.5_p22846.ebuild, metadata.xml:
+ Rename USE opencore-amr to amr.
+
+ 23 Apr 2010; Alexis Ballier <aballier@gentoo.org> ffmpeg-9999-r1.ebuild:
+ rename opencore-amr useflag to amr, we should get rid of the old non free
+ one
+
+*ffmpeg-0.5_p22846 (12 Apr 2010)
+
+ 12 Apr 2010; Alexis Ballier <aballier@gentoo.org>
+ +ffmpeg-0.5_p22846.ebuild:
+ push a new snapshot
+
+ 13 Mar 2010; Luca Barbato <lu_zero@gentoo.org> ffmpeg-0.5_p20373.ebuild,
+ ffmpeg-0.5_p20601-r1.ebuild, ffmpeg-0.5_p21602.ebuild,
+ ffmpeg-9999-r1.ebuild:
+ Add dep on pkg-config, fixes bug #306943
+
+ 10 Mar 2010; Alexis Ballier <aballier@gentoo.org> ffmpeg-9999-r1.ebuild:
+ simplify libgsm code as upstream now uses a more standard way for
+ #including it
+
+ 04 Feb 2010; Alexis Ballier <aballier@gentoo.org>
+ ffmpeg-0.5_p21602.ebuild, ffmpeg-9999-r1.ebuild:
+ Remove ipv6 useflag, it cannot be disabled separately anymore and is
+ automatically enabled when available with USE=network, reported by marienz
+
+*ffmpeg-0.5_p21602 (02 Feb 2010)
+
+ 02 Feb 2010; Alexis Ballier <aballier@gentoo.org>
+ +ffmpeg-0.5_p21602.ebuild:
+ bump a new snapshot
+
+ 31 Jan 2010; Raúl Porcel <armin76@gentoo.org> ffmpeg-0.5_p20373.ebuild:
+ ia64/sparc stable
+
+ 26 Jan 2010; Dror Levin <spatz@gentoo.org> ffmpeg-0.5_p20601-r1.ebuild,
+ ffmpeg-9999-r1.ebuild:
+ Handle -march=*-sse3 properly, bug 283968; Install the manpages, bug
+ 288467.
+
+ 26 Jan 2010; Dror Levin <spatz@gentoo.org> ffmpeg-0.5_p20601-r1.ebuild,
+ ffmpeg-9999-r1.ebuild:
+ Fix faac handling if USE=-encode, bug 300364.
+
+ 24 Jan 2010; Tobias Klausmann <klausman@gentoo.org>
+ ffmpeg-0.5_p20373.ebuild:
+ Stable on alpha, bug #297847
+
+ 19 Jan 2010; Alexis Ballier <aballier@gentoo.org> ffmpeg-9999-r1.ebuild:
+ Adjust x264 deps
+
+ 09 Jan 2010; Christian Faulhammer <fauli@gentoo.org>
+ ffmpeg-0.5_p20373.ebuild:
+ stable x86, bug 297847
+
+ 07 Jan 2010; Brent Baude <ranger@gentoo.org> ffmpeg-0.5_p20373.ebuild:
+ Marking ffmpeg-0.5_p20373 ppc for bug 297847
+
+ 06 Jan 2010; Brent Baude <ranger@gentoo.org> ffmpeg-0.5_p20373.ebuild:
+ Marking ffmpeg-0.5_p20373 ppc64 for bug 297847
+
+ 04 Jan 2010; Markus Meier <maekke@gentoo.org> ffmpeg-0.5_p20373.ebuild:
+ arm stable, bug #297847
+
+ 24 Dec 2009; Jeroen Roovers <jer@gentoo.org> ffmpeg-0.5_p20373.ebuild:
+ Stable for HPPA (bug #297847).
+
+ 22 Dec 2009; Samuli Suominen <ssuominen@gentoo.org>
+ ffmpeg-0.5_p20373.ebuild:
+ amd64 stable wrt #297847
+
+*ffmpeg-0.5_p20601-r1 (26 Nov 2009)
+
+ 26 Nov 2009; Steve Dibb <beandog@gentoo.org> -ffmpeg-0.5_p20601.ebuild,
+ +ffmpeg-0.5_p20601-r1.ebuild, +files/ffmpeg-0.5_p20601-r1-libtheora.patch:
+ Fix x264 compiling; libtheora patch for 1.0; bug 294469
+
+ 25 Nov 2009; Steve Dibb <beandog@gentoo.org> ffmpeg-0.5_p20601.ebuild,
+ ffmpeg-9999-r1.ebuild:
+ Fix libtheora dep
+
+ 24 Nov 2009; Steve Dibb <beandog@gentoo.org> ffmpeg-9999-r1.ebuild:
+ Update vdpau deps
+
+*ffmpeg-0.5_p20601 (24 Nov 2009)
+
+ 24 Nov 2009; Steve Dibb <beandog@gentoo.org> +ffmpeg-0.5_p20601.ebuild:
+ Snapshot bump
+
+ 18 Nov 2009; Raúl Porcel <armin76@gentoo.org> ffmpeg-0.5_p20373.ebuild:
+ Re-add ~sparc wrt #283953
+
+ 17 Nov 2009; Alexis Ballier <aballier@gentoo.org>
+ -ffmpeg-0.5_p19928.ebuild:
+ remove old
+
+ 06 Nov 2009; Alexis Ballier <aballier@gentoo.org> ffmpeg-9999-r1.ebuild:
+ Force disabling doc with use=-doc
+
+*ffmpeg-0.5_p20373 (26 Oct 2009)
+
+ 26 Oct 2009; Alexis Ballier <aballier@gentoo.org>
+ +ffmpeg-0.5_p20373.ebuild:
+ Bump a new snapshot
+
+ 22 Oct 2009; Alexis Ballier <aballier@gentoo.org> ffmpeg-9999-r1.ebuild:
+ bump deps on x264
+
+ 22 Oct 2009; Samuli Suominen <ssuominen@gentoo.org> ffmpeg-0.5-r1.ebuild,
+ ffmpeg-0.5_p19928.ebuild:
+ Fix media-libs/x264 depend wrt #290080, thanks to Diego E. 'Flameeyes'
+ Pettenò for reporting.
+
+ 28 Sep 2009; Alexis Ballier <aballier@gentoo.org>
+ -ffmpeg-0.5_p19787.ebuild:
+ remove old
+
+ 28 Sep 2009; Alexis Ballier <aballier@gentoo.org> ffmpeg-9999-r1.ebuild,
+ metadata.xml:
+ Add a pic useflag
+
+ 25 Sep 2009; Mounir Lamouri <volkmar@gentoo.org> ffmpeg-0.5_p19928.ebuild:
+ Keywording for ppc. Bug 283953
+
+ 24 Sep 2009; Raúl Porcel <armin76@gentoo.org> ffmpeg-0.5_p19787.ebuild,
+ ffmpeg-0.5_p19928.ebuild:
+ Re-add ~ia64 wrt #283953
+
+ 23 Sep 2009; Alexis Ballier <aballier@gentoo.org> ffmpeg-9999-r1.ebuild:
+ bump x264 requirements
+
+ 20 Sep 2009; Markus Meier <maekke@gentoo.org> ffmpeg-0.5_p19928.ebuild:
+ add ~arm
+
+ 20 Sep 2009; Markus Meier <maekke@gentoo.org> ffmpeg-0.5_p19787.ebuild:
+ add ~arm, bug #283953
+
+*ffmpeg-0.5_p19928 (20 Sep 2009)
+
+ 20 Sep 2009; Alexis Ballier <aballier@gentoo.org>
+ +ffmpeg-0.5_p19928.ebuild:
+ bump a new snapshot
+
+ 15 Sep 2009; Alexis Ballier <aballier@gentoo.org> ffmpeg-0.5-r1.ebuild:
+ Fix dependencies on x264 for 0.5, it doesn't detect the latest version,
+ bug #284937
+
+ 07 Sep 2009; Alexis Ballier <aballier@gentoo.org>
+ ffmpeg-0.5_p19787.ebuild, ffmpeg-9999-r1.ebuild:
+ disable tests without USE=encode, they fail if it is not enabled
+
+ 07 Sep 2009; Alexis Ballier <aballier@gentoo.org>
+ ffmpeg-0.5_p19787.ebuild:
+ drop keywords for arches that dont have opencore-amr keyworded
+
+*ffmpeg-0.5_p19787 (06 Sep 2009)
+
+ 06 Sep 2009; Alexis Ballier <aballier@gentoo.org>
+ +ffmpeg-0.5_p19787.ebuild:
+ Add today's ffmpeg svn snapshot.
+
+ 06 Sep 2009; Alexis Ballier <aballier@gentoo.org> ffmpeg-9999-r1.ebuild:
+ Use ffmpeg.org svn repo and add PV conditionals so that we can make
+ snapshots by simply copying -9999
+
+ 06 Sep 2009; Alexis Ballier <aballier@gentoo.org> ffmpeg-9999-r1.ebuild:
+ Correctly detect cpu by upstream checks when march=native is used, bug
+ #273421
+
+ 04 Aug 2009; Samuli Suominen <ssuominen@gentoo.org> ffmpeg-9999-r1.ebuild,
+ metadata.xml:
+ Rename opencore-amrnb and opencore-amrwb to opencore-amr to keep it in
+ sync with MPlayer.
+
+ 27 Jul 2009; Alexis Ballier <aballier@gentoo.org> ffmpeg-9999-r1.ebuild:
+ Set svn revision
+
+ 25 Jul 2009; Alexis Ballier <aballier@gentoo.org> ffmpeg-9999-r1.ebuild:
+ set target os when crosscompiling for a different os, support for linux,
+ freebsd and mingw32 so far
+
+ 22 Jul 2009; Alexis Ballier <aballier@gentoo.org> ffmpeg-9999-r1.ebuild:
+ Set cross-prefix when cross compiling so that CHOST-prefixed tools are
+ used
+
+ 09 Jul 2009; Samuli Suominen <ssuominen@gentoo.org> ffmpeg-0.5-r1.ebuild,
+ ffmpeg-9999-r1.ebuild:
+ USE vdpau with VIDEO_CARDS=nvidia wrt #262433, thanks to Bob Deblier for
+ reporting.
+
+ 08 Jul 2009; Samuli Suominen <ssuominen@gentoo.org>
+ ffmpeg-0.4.9_p20090201.ebuild, ffmpeg-0.5-r1.ebuild,
+ ffmpeg-9999-r1.ebuild:
+ Rename EXTRA_ECONF to EXTRA_FFMPEG_CONF because this package isn't using
+ econf and fails with --disable-dependency-tracking in it.
+
+ 07 Jul 2009; Alexis Ballier <aballier@gentoo.org> ffmpeg-9999-r1.ebuild:
+ Drop libamr support, its been removed upstream
+
+ 04 Jul 2009; Alexis Ballier <aballier@gentoo.org> ffmpeg-9999-r1.ebuild:
+ Reflect upstream changes for the way of disabling libavdevice in/outdevs
+
+ 03 Jul 2009; Alexis Ballier <aballier@gentoo.org> ffmpeg-9999-r1.ebuild:
+ force a non free license only when needed, ie, when faac or amr is
+ requested
+
+ 03 Jul 2009; Alexis Ballier <aballier@gentoo.org> ffmpeg-9999-r1.ebuild,
+ metadata.xml:
+ Add opencore-amr support, switch to GPL-3
+
+ 30 Jun 2009; Raúl Porcel <armin76@gentoo.org> ffmpeg-0.5-r1.ebuild:
+ arm/ia64/sparc stable
+
+ 20 Jun 2009; Jeroen Roovers <jer@gentoo.org> ffmpeg-0.5-r1.ebuild:
+ Stable for HPPA (bug #274666).
+
+ 10 Jun 2009; Alexis Ballier <aballier@gentoo.org> ffmpeg-9999-r1.ebuild:
+ remove useless warning, it must not be the user's duty to figure out abi
+ breaks
+
+ 10 Jun 2009; Alexis Ballier <aballier@gentoo.org> ffmpeg-9999-r1.ebuild:
+ make tests work when upgrading, they should pass so make them also fatal
+
+ 10 Jun 2009; Alexis Ballier <aballier@gentoo.org> ffmpeg-0.5-r1.ebuild,
+ ffmpeg-9999-r1.ebuild:
+ eapi2ify and depend on libtheora[encode] when needed, reported by remi
+
+ 21 May 2009; Brent Baude <ranger@gentoo.org> ffmpeg-0.5-r1.ebuild:
+ Marking ffmpeg-0.5-r1 ppc64 stable for bug 266986
+
+ 21 May 2009; Brent Baude <ranger@gentoo.org> ffmpeg-0.5-r1.ebuild:
+ Marking ffmpeg-0.5-r1 ppc stable for bug 266986
+
+ 16 May 2009; Mounir Lamouri <volkmar@gentoo.org> metadata.xml:
+ Use global gsm USE flag instead of local one.
+
+ 14 May 2009; Markus Meier <maekke@gentoo.org> ffmpeg-0.5-r1.ebuild:
+ amd64 stable, bug #266986
+
+ 12 May 2009; Christian Faulhammer <fauli@gentoo.org> ffmpeg-0.5-r1.ebuild:
+ stable x86, bug 266986
+
+ 03 May 2009; Peter Alfredsen <loki_val@gentoo.org> ffmpeg-0.5-r1.ebuild:
+ Update deps for USE="lame" w.r.t. bug 265830.
+
+ 03 May 2009; Tobias Klausmann <klausman@gentoo.org> ffmpeg-0.5-r1.ebuild:
+ Stable on alpha, bug #266986
+
+*ffmpeg-9999-r1 (02 May 2009)
+
+ 02 May 2009; Steve Dibb <beandog@gentoo.org> metadata.xml,
+ -ffmpeg-9999.ebuild, +ffmpeg-9999-r1.ebuild:
+ Add cpudetection use flag; require nonfree option for faac support
+
+ 04 Apr 2009; Alexis Ballier <aballier@gentoo.org>
+ -files/ffmpeg-0.4.9_p20081014-sparc-gcc43.patch,
+ -files/ffmpeg-shared-gcc4.1.patch, -ffmpeg-0.4.9_p20081014.ebuild,
+ -ffmpeg-0.4.9_p20081219.ebuild, -ffmpeg-0.4.9_p20090121.ebuild,
+ -ffmpeg-0.4.9_p20090201-r1.ebuild:
+ remove old
+
+ 04 Apr 2009; Raúl Porcel <armin76@gentoo.org>
+ ffmpeg-0.4.9_p20090201.ebuild, ffmpeg-0.4.9_p20090201-r1.ebuild,
+ ffmpeg-0.5-r1.ebuild, ffmpeg-9999.ebuild:
+ Enable arm optimizations again, now that i've found out that using -march
+ works fine
+
+ 04 Apr 2009; Alexis Ballier <aballier@gentoo.org> ffmpeg-9999.ebuild:
+ add jack useflag
+
+ 31 Mar 2009; Raúl Porcel <armin76@gentoo.org>
+ ffmpeg-0.4.9_p20090201.ebuild, ffmpeg-0.4.9_p20090201-r1.ebuild,
+ ffmpeg-0.5-r1.ebuild, ffmpeg-9999.ebuild:
+ arm stable, fix some arm-related stuff
+
+ 11 Mar 2009; Steve Dibb <beandog@gentoo.org> metadata.xml,
+ ffmpeg-0.5-r1.ebuild, ffmpeg-9999.ebuild:
+ Fix faac local use flag desc; don't disable by default in IUSE
+
+*ffmpeg-0.5-r1 (10 Mar 2009)
+
+ 10 Mar 2009; Steve Dibb <beandog@gentoo.org> metadata.xml,
+ -ffmpeg-0.5.ebuild, +ffmpeg-0.5-r1.ebuild, ffmpeg-9999.ebuild:
+ Drop aac use flag, split to faac / faad use flags - ffmpeg has native AAC
+ encoding / decoding which should be used by default; drop unused vhook use
+ flag on live ebuild
+
+*ffmpeg-0.5 (10 Mar 2009)
+
+ 10 Mar 2009; Alexis Ballier <aballier@gentoo.org> +ffmpeg-0.5.ebuild:
+ Bump to the 0.5 release.
+
+ 05 Mar 2009; Diego E. Pettenò <flameeyes@gentoo.org> metadata.xml,
+ ffmpeg-9999.ebuild:
+ Fix build with recent changes upstream (vhook removed in favour of
+ libavfilter, swscale cannot be disabled anylonger); merge the EAPI=1
+ changes from the snapshotted version; add 3dnowext USE flag.
+
+ 28 Feb 2009; Markus Meier <maekke@gentoo.org> metadata.xml:
+ custom-cflags is a global USE-flag
+
+*ffmpeg-0.4.9_p20090201-r1 (21 Feb 2009)
+
+ 21 Feb 2009; Luca Barbato <lu_zero@gentoo.org>
+ +ffmpeg-0.4.9_p20090201-r1.ebuild:
+ Set some useflag defaults and other minor changes
+
+ 11 Feb 2009; Tobias Scherbaum <dertobi123@gentoo.org>
+ ffmpeg-0.4.9_p20090201.ebuild:
+ ppc stable, bug #257217
+
+ 10 Feb 2009; Alexis Ballier <aballier@gentoo.org> ffmpeg-9999.ebuild:
+ add openjpeg support
+
+ 09 Feb 2009; Raúl Porcel <armin76@gentoo.org>
+ ffmpeg-0.4.9_p20090201.ebuild:
+ ia64/sparc stable wrt #257217
+
+ 05 Feb 2009; Jeroen Roovers <jer@gentoo.org>
+ ffmpeg-0.4.9_p20090201.ebuild:
+ Stable for HPPA (bug #257217).
+
+ 04 Feb 2009; Markus Meier <maekke@gentoo.org>
+ ffmpeg-0.4.9_p20090201.ebuild:
+ x86 stable, bug #257217
+
+ 02 Feb 2009; Tobias Heinlein <keytoaster@gentoo.org>
+ ffmpeg-0.4.9_p20090201.ebuild:
+ amd64 stable wrt security bug 257217
+
+ 02 Feb 2009; Brent Baude <ranger@gentoo.org>
+ ffmpeg-0.4.9_p20090201.ebuild:
+ Marking ffmpeg-0.4.9_p20090201 ppc64 for bug 257217
+
+ 02 Feb 2009; Tobias Klausmann <klausman@gentoo.org>
+ ffmpeg-0.4.9_p20090201.ebuild:
+ Stable on alpha, bug #257217
+
+*ffmpeg-0.4.9_p20090201 (01 Feb 2009)
+
+ 01 Feb 2009; Alexis Ballier <aballier@gentoo.org>
+ +ffmpeg-0.4.9_p20090201.ebuild:
+ new snapshot, bug #257217
+
+ 31 Jan 2009; Tobias Klausmann <klausman@gentoo.org>
+ ffmpeg-0.4.9_p20081219.ebuild:
+ Stable on alpha, bug #255008
+
+ 27 Jan 2009; Alexis Ballier <aballier@gentoo.org> ffmpeg-9999.ebuild:
+ no need for local variables when we use them only once
+
+ 27 Jan 2009; Alexis Ballier <aballier@gentoo.org> ffmpeg-9999.ebuild:
+ Add alsa/oss/3dnow useflags and disable servertest as its mainly broken
+
+ 25 Jan 2009; Markus Meier <maekke@gentoo.org>
+ ffmpeg-0.4.9_p20081219.ebuild:
+ amd64/x86 stable, bug #255008
+
+ 25 Jan 2009; Brent Baude <ranger@gentoo.org>
+ ffmpeg-0.4.9_p20081219.ebuild:
+ stable ppc64, bug 255008
+
+*ffmpeg-0.4.9_p20090121 (21 Jan 2009)
+
+ 21 Jan 2009; Alexis Ballier <aballier@gentoo.org>
+ +ffmpeg-0.4.9_p20090121.ebuild:
+ push a new snapshot
+
+ 20 Jan 2009; Alexis Ballier <aballier@gentoo.org> ffmpeg-9999.ebuild:
+ set empty keywords for the live ebuild
+
+ 19 Jan 2009; Alexis Ballier <aballier@gentoo.org>
+ ffmpeg-0.4.9_p20081014.ebuild, ffmpeg-0.4.9_p20081219.ebuild,
+ ffmpeg-9999.ebuild:
+ require gnu make 3.81, by Bernd Kaiser <meldron@gmx.net>, bug #255376
+
+ 17 Jan 2009; Alexis Ballier <aballier@gentoo.org>
+ ffmpeg-0.4.9_p20081219.ebuild, ffmpeg-9999.ebuild:
+ require at least speex 1.2, should fix #254922
+
+ 15 Jan 2009; Alexis Ballier <aballier@gentoo.org>
+ ffmpeg-0.4.9_p20081014.ebuild, ffmpeg-0.4.9_p20081219.ebuild,
+ ffmpeg-9999.ebuild:
+ make sure version.h gets created, bug #252269
+
+ 23 Dec 2008; Alexis Ballier <aballier@gentoo.org> ffmpeg-9999.ebuild:
+ Sync live ebuild with latest snapshot; merely add speex useflag and remove
+ unused make targets
+
+ 22 Dec 2008; Raúl Porcel <armin76@gentoo.org>
+ ffmpeg-0.4.9_p20081014.ebuild, ffmpeg-0.4.9_p20081219.ebuild:
+ arm/ia64 stable wrt #245285
+
+ 21 Dec 2008; nixnut <nixnut@gentoo.org> ffmpeg-0.4.9_p20081014.ebuild:
+ Stable on ppc wrt bug 245313
+
+ 20 Dec 2008; Ferris McCormick <fmccor@gentoo.org>
+ ffmpeg-0.4.9_p20081014.ebuild:
+ Sparc stable, Security Bug #245313.
+
+ 20 Dec 2008; Thomas Anderson <gentoofan23@gentoo.org>
+ ffmpeg-0.4.9_p20081014.ebuild:
+ stable amd64, security bug #245313
+
+*ffmpeg-0.4.9_p20081219 (19 Dec 2008)
+
+ 19 Dec 2008; Alexis Ballier <aballier@gentoo.org>
+ +ffmpeg-0.4.9_p20081219.ebuild:
+ push a new snapshot
+
+ 16 Dec 2008; Jeroen Roovers <jer@gentoo.org>
+ ffmpeg-0.4.9_p20081014.ebuild:
+ Stable for HPPA (bug #245291).
+
+ 16 Dec 2008; Brent Baude <ranger@gentoo.org>
+ ffmpeg-0.4.9_p20081014.ebuild:
+ Marking ffmpeg-0.4.9_p20081014 ppc64 for bug 245285
+
+ 15 Dec 2008; <ssuominen@gentoo.org> ffmpeg-0.4.9_p20081014.ebuild:
+ Change faad2 dep. to >= 2.6.1 wrt #251010.
+
+ 15 Dec 2008; <ssuominen@gentoo.org> ffmpeg-0.4.9_p20081014.ebuild:
+ x86 stable wrt #245285
+
+ 13 Dec 2008; <ssuominen@gentoo.org>
+ +files/ffmpeg-0.4.9_p20081014-sparc-gcc43.patch,
+ ffmpeg-0.4.9_p20081014.ebuild:
+ Backport upstream patch for sparc to allow compilation with GCC 4.3 wrt
+ #247653.
+
+ 12 Dec 2008; Tobias Klausmann <klausman@gentoo.org>
+ ffmpeg-0.4.9_p20081014.ebuild:
+ Stable on alpha, bug #245285
+
+*ffmpeg-9999 (07 Dec 2008)
+
+ 07 Dec 2008; Luca Barbato <lu_zero@gentoo.org> +ffmpeg-9999.ebuild:
+ live ebuild
+
+ 10 Nov 2008; Raúl Porcel <armin76@gentoo.org>
+ ffmpeg-0.4.9_p20081014.ebuild:
+ Add ~ia64 wrt #241908
+
+ 30 Oct 2008; Raúl Porcel <armin76@gentoo.org>
+ ffmpeg-0.4.9_p20070616-r3.ebuild:
+ alpha/arm/ia64 stable #231831
+
+ 27 Oct 2008; Alexis Ballier <aballier@gentoo.org>
+ ffmpeg-0.4.9_p20081014.ebuild:
+ Fixup crosscompilation, bug #237662
+
+ 27 Oct 2008; Mike Frysinger <vapier@gentoo.org>
+ ffmpeg-0.4.9_p20081014.ebuild:
+ Add arm/ppc love #241908.
+
+ 18 Oct 2008; Peter Alfredsen <loki_val@gentoo.org>
+ ffmpeg-0.4.9_p20080326.ebuild:
+ Fixup 20080326 dependency on x264 to be <0.0.20081006.
+
+ 18 Oct 2008; Alexis Ballier <aballier@gentoo.org>
+ ffmpeg-0.4.9_p20081014.ebuild:
+ Drop arm/ia64/ppc ~arch keywords per bug #241908 to allow unmasking
+
+ 14 Oct 2008; Jeroen Roovers <jer@gentoo.org>
+ +files/ffmpeg-0.4.9_p20080326-hppa.patch, ffmpeg-0.4.9_p20080326.ebuild:
+ Build PIC on HPPA (bug #241124).
+
+ 14 Oct 2008; Alexis Ballier <aballier@gentoo.org>
+ ffmpeg-0.4.9_p20081014.ebuild:
+ Give the configure the --cpu option based on CFLAGS; if it is unknown it
+ will not hurt because the configure script will warn and ignore it. This
+ helps getting better support for given cpu, like using CMOV on i686 and
+ later. Bug #172723.
+
+ 14 Oct 2008; Alexis Ballier <aballier@gentoo.org>
+ ffmpeg-0.4.9_p20081014.ebuild:
+ Set the ffmpeg version to the exported revision number, bug #233667,
+ borrowed from mplayer ebuild
+
+ 14 Oct 2008; Alexis Ballier <aballier@gentoo.org>
+ ffmpeg-0.4.9_p20081014.ebuild:
+ Broaden libdc1394 dep as it works with v2 too, by Fabio Correa
+ <facorread@gmail.com>, bug #237687
+
+ 14 Oct 2008; Alexis Ballier <aballier@gentoo.org>
+ ffmpeg-0.4.9_p20070616.ebuild, ffmpeg-0.4.9_p20070616-r1.ebuild,
+ ffmpeg-0.4.9_p20070616-r2.ebuild, ffmpeg-0.4.9_p20070616-r3.ebuild,
+ ffmpeg-0.4.9_p20070616-r20.ebuild, ffmpeg-0.4.9_p20080206.ebuild,
+ ffmpeg-0.4.9_p20080326.ebuild, ffmpeg-0.4.9_p20081014.ebuild:
+ Bump imlib2 dep for bug #196525
+
+*ffmpeg-0.4.9_p20081014 (14 Oct 2008)
+
+ 14 Oct 2008; Alexis Ballier <aballier@gentoo.org> metadata.xml,
+ +ffmpeg-0.4.9_p20081014.ebuild:
+ Add a new snapshot, masked because it breaks a lot of consumers.
+
+ 11 Oct 2008; Tobias Scherbaum <dertobi123@gentoo.org>
+ ffmpeg-0.4.9_p20070616-r3.ebuild:
+ ppc stable, bug #231831
+
+ 06 Oct 2008; Markus Meier <maekke@gentoo.org>
+ ffmpeg-0.4.9_p20070616-r3.ebuild:
+ amd64/x86 stable, bug #231831
+
+ 06 Oct 2008; Friedrich Oslage <bluebird@gentoo.org>
+ ffmpeg-0.4.9_p20070616-r3.ebuild:
+ Stable on sparc, security bug #231831
+
+ 06 Oct 2008; Jeroen Roovers <jer@gentoo.org>
+ ffmpeg-0.4.9_p20070616-r3.ebuild:
+ Stable for HPPA (bug #231831). Fixed some quoting issues.
+
+ 04 Oct 2008; Markus Rothe <corsair@gentoo.org>
+ ffmpeg-0.4.9_p20070616-r3.ebuild:
+ Stable on ppc64; bug #231831
+
+*ffmpeg-0.4.9_p20070616-r20 (17 Jul 2008)
+*ffmpeg-0.4.9_p20070616-r3 (17 Jul 2008)
+
+ 17 Jul 2008; Alexis Ballier <aballier@gentoo.org>
+ +files/CVE-2008-3162.patch, +ffmpeg-0.4.9_p20070616-r3.ebuild,
+ +ffmpeg-0.4.9_p20070616-r20.ebuild:
+ Add patches for security bug #231831. -r3 is -r0 with the patch, stable
+ candidate without swscaler. -r20 is -r2 with the patch, with swscaler.
+
+ 07 Jul 2008; Peter Alfredsen <loki_val@gentoo.org>
+ ffmpeg-0.4.9_p20080326.ebuild:
+ Fix build failure when disabling MMX, which would fail to disable MMX2
+ code on processors supporting it, resulting in #ifdef spaghetti build
+ failure. Bug 229981.
+
+ 20 Apr 2008; Mike Frysinger <vapier@gentoo.org>
+ +files/ffmpeg-arm-pld.patch, ffmpeg-0.4.9_p20070616.ebuild,
+ ffmpeg-0.4.9_p20070616-r1.ebuild, ffmpeg-0.4.9_p20070616-r2.ebuild,
+ ffmpeg-0.4.9_p20080206.ebuild:
+ Fix from upstream svn for building for older arm cpus.
+
+ 07 Apr 2008; Ben de Groot <yngwin@gentoo.org>
+ ffmpeg-0.4.9_p20070616.ebuild, ffmpeg-0.4.9_p20070616-r1.ebuild,
+ ffmpeg-0.4.9_p20070616-r2.ebuild, ffmpeg-0.4.9_p20080206.ebuild,
+ ffmpeg-0.4.9_p20080326.ebuild:
+ Pkgmove x264-svn to x264
+
+ 27 Mar 2008; Joerg Bornkessel <hd_brummy@gentoo.org> Manifest:
+ manifest fixed; #bug 214967
+
+*ffmpeg-0.4.9_p20080326 (26 Mar 2008)
+
+ 26 Mar 2008; Luca Barbato <lu_zero@gentoo.org>
+ -files/ffmpeg-0.4.9_p20051216-asneeded-configure.patch,
+ -ffmpeg-0.4.9_p20050226-r3.ebuild, -ffmpeg-0.4.9_p20061016.ebuild,
+ -ffmpeg-0.4.9_p20070330.ebuild, -ffmpeg-0.4.9_p20070525.ebuild,
+ +ffmpeg-0.4.9_p20080326.ebuild:
+ Furter cleanup and new version
+
+ 28 Feb 2008; Alexis Ballier <aballier@gentoo.org>
+ ffmpeg-0.4.9_p20080206.ebuild:
+ fix build with use ieee1394, dc1394->libdc1394. Bug #209610
+
+ 14 Feb 2008; Samuli Suominen <drac@gentoo.org>
+ -ffmpeg-0.4.9_p20051216.ebuild, -ffmpeg-0.4.9_p20060302.ebuild,
+ -ffmpeg-0.4.9_p20060530.ebuild, -ffmpeg-0.4.9_p20060816.ebuild,
+ ffmpeg-0.4.9_p20061016.ebuild, -ffmpeg-0.4.9_p20070129.ebuild,
+ -ffmpeg-0.4.9_p20070325.ebuild, ffmpeg-0.4.9_p20070330.ebuild:
+ Remove USE dts from some old ebuilds, and remove some entirely because
+ libdts is replaced by libdca.
+
+*ffmpeg-0.4.9_p20080206 (06 Feb 2008)
+
+ 06 Feb 2008; Luca Barbato <lu_zero@gentoo.org>
+ +ffmpeg-0.4.9_p20080206.ebuild:
+ New snapshot
+
+ 31 Oct 2007; Matthias Schwarzott <zzam@gentoo.org>
+ ffmpeg-0.4.9_p20051216.ebuild, ffmpeg-0.4.9_p20060302.ebuild,
+ ffmpeg-0.4.9_p20060530.ebuild, ffmpeg-0.4.9_p20060816.ebuild,
+ ffmpeg-0.4.9_p20061016.ebuild, ffmpeg-0.4.9_p20070129.ebuild,
+ ffmpeg-0.4.9_p20070325.ebuild, ffmpeg-0.4.9_p20070330.ebuild,
+ ffmpeg-0.4.9_p20070525.ebuild, ffmpeg-0.4.9_p20070616.ebuild,
+ ffmpeg-0.4.9_p20070616-r1.ebuild, ffmpeg-0.4.9_p20070616-r2.ebuild:
+ Improved text about possible ABI changes, noticed by mark_alec.
+
+*ffmpeg-0.4.9_p20070616-r2 (26 Oct 2007)
+
+ 26 Oct 2007; Steve Dibb <beandog@gentoo.org>
+ +ffmpeg-0.4.9_p20070616-r2.ebuild:
+ Add ipv6 use flag
+
+ 21 Oct 2007; Steve Dibb <beandog@gentoo.org>
+ ffmpeg-0.4.9_p20070616.ebuild:
+ amd64 stable, bug 193563
+
+ 20 Oct 2007; Ferris McCormick <fmccor@gentoo.org>
+ ffmpeg-0.4.9_p20070616.ebuild:
+ sparc stable --- Bug #193563 --- builds and works.
+
+ 08 Oct 2007; Markus Rothe <corsair@gentoo.org>
+ ffmpeg-0.4.9_p20070616.ebuild:
+ Stable on ppc64; bug #193563
+
+ 24 Sep 2007; Raúl Porcel <armin76@gentoo.org>
+ ffmpeg-0.4.9_p20070616.ebuild:
+ alpha/ia64 stable wrt #193563
+
+ 24 Sep 2007; Lars Weiler <pylon@gentoo.org> ffmpeg-0.4.9_p20070616.ebuild:
+ stable ppc, bug #193563
+
+ 24 Sep 2007; Jeroen Roovers <jer@gentoo.org>
+ ffmpeg-0.4.9_p20070616.ebuild:
+ Stable for HPPA (bug #193563).
+
+ 24 Sep 2007; Christian Faulhammer <opfer@gentoo.org>
+ ffmpeg-0.4.9_p20070616.ebuild:
+ stable x86, bug #193563
+
+ 07 Jul 2007; Samuli Suominen <drac@gentoo.org>
+ ffmpeg-0.4.9_p20070616-r1.ebuild:
+ Fix building with USE altivec for bug 183687. Thanks to Laurent G. for
+ reporting, Joe Jezak for solution, Kimura Masaru for testing.
+
+*ffmpeg-0.4.9_p20070616-r1 (26 Jun 2007)
+
+ 26 Jun 2007; Luca Barbato <lu_zero@gentoo.org>
+ +ffmpeg-0.4.9_p20070616-r1.ebuild:
+ Enable swscaler
+
+ 16 Jun 2007; Samuli Suominen <drac@gentoo.org>
+ ffmpeg-0.4.9_p20070616.ebuild:
+ enable xvid to enable libxvid.
+
+*ffmpeg-0.4.9_p20070616 (16 Jun 2007)
+
+ 16 Jun 2007; Luca Barbato <lu_zero@gentoo.org>
+ +ffmpeg-0.4.9_p20070616.ebuild:
+ New snapshot, SVN revision 9330
+
+ 01 Jun 2007; Samuli Suominen <drac@gentoo.org>
+ ffmpeg-0.4.9_p20070525.ebuild:
+ Append -DBROKEN_RELOCATIONS which is a hack to workaround bug 179872.
+
+ 01 Jun 2007; Samuli Suominen <drac@gentoo.org>
+ ffmpeg-0.4.9_p20070525.ebuild:
+ Remove USE dts for bug 180129.
+
+*ffmpeg-0.4.9_p20070525 (26 May 2007)
+
+ 26 May 2007; Luca Barbato <lu_zero@gentoo.org>
+ +ffmpeg-0.4.9_p20070525.ebuild:
+ New snapshot, using libamr
+
+ 16 May 2007; Jeroen Roovers <jer@gentoo.org>
+ ffmpeg-0.4.9_p20070330.ebuild:
+ Stable for HPPA (bug #174909).
+
+ 05 May 2007; Fabian Groffen <grobian@gentoo.org>
+ ffmpeg-0.4.9_p20051216.ebuild, ffmpeg-0.4.9_p20060302.ebuild,
+ ffmpeg-0.4.9_p20060530.ebuild:
+ Dropped ppc-macos keyword, see you in prefix
+
+ 22 Apr 2007; Bryan Østergaard <kloeri@gentoo.org>
+ ffmpeg-0.4.9_p20070330.ebuild:
+ Stable on Alpha, bug 174909.
+
+ 17 Apr 2007; Tobias Scherbaum <dertobi123@gentoo.org>
+ ffmpeg-0.4.9_p20070330.ebuild:
+ ppc stable, bug #168907
+
+ 16 Apr 2007; Raúl Porcel <armin76@gentoo.org>
+ ffmpeg-0.4.9_p20070330.ebuild:
+ ia64 stable
+
+ 12 Apr 2007; Raúl Porcel <armin76@gentoo.org>
+ ffmpeg-0.4.9_p20070330.ebuild:
+ x86 stable
+
+ 12 Apr 2007; Peter Weller <welp@gentoo.org> ffmpeg-0.4.9_p20070330.ebuild:
+ Stable on amd64 wrt bug 168907
+
+ 05 Apr 2007; Alexis Ballier <aballier@gentoo.org>
+ +files/ffmpeg-0.4.9_p20070330-asmpic.patch, ffmpeg-0.4.9_p20070330.ebuild:
+ Disable non pic safe asm on x86 and amd64, bug #172845, bug #172877 and dupes
+
+ 04 Apr 2007; Markus Rothe <corsair@gentoo.org>
+ ffmpeg-0.4.9_p20070330.ebuild:
+ Stable on ppc64
+
+ 04 Apr 2007; Gustavo Zacarias <gustavoz@gentoo.org>
+ ffmpeg-0.4.9_p20070330.ebuild:
+ Stable on sparc wrt #170860
+
+*ffmpeg-0.4.9_p20070330 (30 Mar 2007)
+
+ 30 Mar 2007; Luca Barbato <lu_zero@gentoo.org>
+ +ffmpeg-0.4.9_p20070330.ebuild:
+ New snapshot
+
+ 27 Mar 2007; Luca Barbato <lu_zero@gentoo.org>
+ ffmpeg-0.4.9_p20070325.ebuild:
+ s/a52/liba52
+
+ 25 Mar 2007; Luca Barbato <lu_zero@gentoo.org>
+ ffmpeg-0.4.9_p20070325.ebuild:
+ Minor fixes and update
+
+*ffmpeg-0.4.9_p20070325 (25 Mar 2007)
+
+ 25 Mar 2007; Luca Barbato <lu_zero@gentoo.org>
+ +ffmpeg-0.4.9_p20070325.ebuild:
+ New snapshot
+
+ 22 Mar 2007; Gustavo Zacarias <gustavoz@gentoo.org>
+ ffmpeg-0.4.9_p20070129.ebuild:
+ Stable on sparc
+
+ 21 Mar 2007; Christian Faulhammer <opfer@gentoo.org>
+ ffmpeg-0.4.9_p20070129.ebuild:
+ stable x86, security bug 170208
+
+ 16 Feb 2007; Simon Stelling <blubb@gentoo.org>
+ ffmpeg-0.4.9_p20061016.ebuild, ffmpeg-0.4.9_p20070129.ebuild:
+ depend on >=portage-2.1.2 on amd64 to make sure the mmx USE flag is unmasked
+
+ 29 Jan 2007; Steve Dibb <beandog@gentoo.org>
+ ffmpeg-0.4.9_p20070129.ebuild:
+ Rekeyword ~
+
+ 29 Jan 2007; Luca Barbato <lu_zero@gentoo.org>
+ ffmpeg-0.4.9_p20070129.ebuild:
+ Put it back in ~, not the right time, closing bug #164445, thanks to
+ Sebastian <sebastian_ml@gmx.net> for notifying.
+
+ 29 Jan 2007; Luca Barbato <lu_zero@gentoo.org>
+ files/ffmpeg-libdir-2007.patch:
+ Make the patch working everywhere, thanks to Markus Trippelsdorf
+ <markus@trippelsdorf.de> for pointing the issue
+
+*ffmpeg-0.4.9_p20070129 (29 Jan 2007)
+
+ 29 Jan 2007; Luca Barbato <lu_zero@gentoo.org>
+ +files/ffmpeg-libdir-2007.patch, +ffmpeg-0.4.9_p20070129.ebuild:
+ New snapshot
+
+ 29 Jan 2007; Bryan Østergaard <kloeri@gentoo.org>
+ ffmpeg-0.4.9_p20061016.ebuild:
+ Stable on Alpha + IA64.
+
+ 06 Jan 2007; Michael Cummings <mcummings@gentoo.org>
+ ffmpeg-0.4.9_p20061016.ebuild:
+ amd64 stable
+
+ 04 Jan 2007; Christian Faulhammer <opfer@gentoo.org>
+ ffmpeg-0.4.9_p20061016.ebuild:
+ stable x86, bug #157814
+
+ 30 Dec 2006; Bryan Østergaard <kloeri@gentoo.org>
+ ffmpeg-0.4.9_p20061016.ebuild:
+ Add ~alpha and ~ia64 keywords.
+
+ 23 Dec 2006; Tobias Scherbaum <dertobi123@gentoo.org>
+ ffmpeg-0.4.9_p20061016.ebuild:
+ Stable on ppc wrt bug #157814.
+
+ 21 Dec 2006; Gustavo Zacarias <gustavoz@gentoo.org>
+ ffmpeg-0.4.9_p20060530.ebuild, ffmpeg-0.4.9_p20061016.ebuild:
+ Stable on sparc wrt #157814
+
+ 21 Dec 2006; Markus Rothe <corsair@gentoo.org>
+ ffmpeg-0.4.9_p20061016.ebuild:
+ Stable on ppc64; bug #157814
+
+ 10 Dec 2006; Matthias Schwarzott <zzam@gentoo.org>
+ ffmpeg-0.4.9_p20050226-r3.ebuild, ffmpeg-0.4.9_p20051216.ebuild,
+ ffmpeg-0.4.9_p20060302.ebuild, ffmpeg-0.4.9_p20060517.ebuild,
+ ffmpeg-0.4.9_p20060530.ebuild, ffmpeg-0.4.9_p20060816.ebuild,
+ ffmpeg-0.4.9_p20061016.ebuild:
+ Corrected installation of source-Changelog-file, thanks to Josef Reidinger
+ <queen.killer@seznam.cz> for reporting, Bug #157628.
+
+ 07 Dec 2006; Luca Barbato <lu_zero@gentoo.org>
+ ffmpeg-0.4.9_p20061016.ebuild:
+ Fix reg depletion in x86, see bug #154922
+
+ 01 Dec 2006; Jeroen Roovers <jer@gentoo.org>
+ ffmpeg-0.4.9_p20061016.ebuild:
+ Stable for HPPA (or xine-lib will not even configure).
+
+*ffmpeg-0.4.9_p20061016 (17 Oct 2006)
+
+ 17 Oct 2006; Luca Barbato <lu_zero@gentoo.org>
+ +ffmpeg-0.4.9_p20061016.ebuild:
+ New version
+
+ 03 Oct 2006; Luca Barbato <lu_zero@gentoo.org>
+ ffmpeg-0.4.9_p20060530.ebuild, ffmpeg-0.4.9_p20060816.ebuild:
+ Fix deps, see bug #134555
+
+ 11 Sep 2006; Luca Barbato <lu_zero@gentoo.org>
+ ffmpeg-0.4.9_p20060816.ebuild:
+ emake -j1 calls and add emake depend just in case
+
+ 08 Sep 2006; Rene Nussbaumer <killerfox@gentoo.org>
+ ffmpeg-0.4.9_p20060530.ebuild:
+ Stable on hppa. See bug #133520.
+
+ 08 Sep 2006; Thomas Cort <tcort@gentoo.org> ffmpeg-0.4.9_p20060530.ebuild:
+ Stable on alpha wrt security Bug #133520.
+
+ 08 Sep 2006; Tobias Scherbaum <dertobi123@gentoo.org>
+ ffmpeg-0.4.9_p20060530.ebuild:
+ ppc stable, bug #133520
+
+ 07 Sep 2006; Joshua Jackson <tsunam@gentoo.org>
+ ffmpeg-0.4.9_p20060530.ebuild:
+ Stable x86; for security bug #133520
+
+ 07 Sep 2006; Thomas Cort <tcort@gentoo.org> ffmpeg-0.4.9_p20060530.ebuild:
+ Stable on amd64.
+
+ 07 Sep 2006; Gustavo Zacarias <gustavoz@gentoo.org>
+ ffmpeg-0.4.9_p20060530.ebuild:
+ Stable on sparc wrt #133520
+
+ 07 Sep 2006; Markus Rothe <corsair@gentoo.org>
+ ffmpeg-0.4.9_p20060530.ebuild:
+ Stable on ppc64; bug #133520
+
+ 04 Sep 2006; Diego Pettenò <flameeyes@gentoo.org>
+ ffmpeg-0.4.9_p20060530.ebuild, ffmpeg-0.4.9_p20060816.ebuild:
+ Export true as LDCONFIG value during install phases, so that it does not
+ trigger sandbox on Gentoo/FreeBSD.
+
+ 30 Aug 2006; Luca Barbato <lu_zero@gentoo.org>
+ ffmpeg-0.4.9_p20060816.ebuild:
+ Fix multilib-strict and support EXTRA_ECONF
+
+ 17 Aug 2006; Luca Barbato <lu_zero@gentoo.org>
+ ffmpeg-0.4.9_p20060816.ebuild:
+ fix sdl dep
+
+ 16 Aug 2006; Luca Barbato <lu_zero@gentoo.org> ChangeLog:
+ New version
+
+ 14 Aug 2006; Luca Barbato <lu_zero@gentoo.org>
+ +files/ffmpeg-0.4.9_p20060530-snow-mmx.patch,
+ ffmpeg-0.4.9_p20060530.ebuild:
+ Make snow compile on x86 with pic and mmx enabled at the same time, many
+ thanks to Martin von Gagern <Martin.vGagern@gmx.net> for the patch and the
+ overall help
+
+ 12 Aug 2006; Luca Barbato <lu_zero@gentoo.org>
+ ffmpeg-0.4.9_p20060530.ebuild:
+ Marked ~ppc64
+
+ 12 Aug 2006; Luca Barbato <lu_zero@gentoo.org>
+ ffmpeg-0.4.9_p20060530.ebuild:
+ Pin x264 version to avoid build issue with snapshots too new
+
+ 01 Aug 2006; Joshua Jackson <tsunam@gentoo.org>
+ ffmpeg-0.4.9_p20060530.ebuild:
+ Adding ~x86 as it works and all that jazz
+
+ 31 May 2006; Gustavo Zacarias <gustavoz@gentoo.org>
+ ffmpeg-0.4.9_p20060530.ebuild:
+ Gave it a ~sparc
+
+ 31 May 2006; Diego Pettenò <flameeyes@gentoo.org>
+ ffmpeg-0.4.9_p20060530.ebuild:
+ Re-add ~x86-fbsd and ~amd64 keywords.
+
+ 31 May 2006; Diego Pettenò <flameeyes@gentoo.org>
+ ffmpeg-0.4.9_p20060530.ebuild:
+ Remove keywording comments, we always add and drop them every other release.
+
+ 31 May 2006; Diego Pettenò <flameeyes@gentoo.org>
+ ffmpeg-0.4.9_p20060530.ebuild:
+ Remove old hack for $LDFLAGS passing (fixed upstream), remove the
+ append-flags (fixed upstream).
+
+ 12 Jun 2006; Luca Barbato <lu_zero@gentoo.org>
+ ffmpeg-0.4.9_p20060530.ebuild:
+ more files to the sed PIC
+
+ 31 May 2006; Luca Barbato <lu_zero@gentoo.org>
+ ffmpeg-0.4.9_p20060530.ebuild:
+ Missing patch
+
+*ffmpeg-0.4.9_p20060530 (30 May 2006)
+
+ 30 May 2006; Luca Barbato <lu_zero@gentoo.org>
+ +ffmpeg-0.4.9_p20060530.ebuild:
+ New snapshot
+
+ 28 May 2006; Diego Pettenò <flameeyes@gentoo.org>
+ -files/ffmpeg-0.4.9_p20050226-gcc4.patch,
+ -files/ffmpeg-0.4.9_p20050906-osx.patch, -files/ffmpeg-a52.patch,
+ -files/ffmpeg-configure.patch, -files/ffmpeg-missing_links.patch,
+ -files/ffmpeg-osx.patch, -files/gentoo-ffmpeg001.patch,
+ -ffmpeg-0.4.9_p20050226-r5.ebuild, -ffmpeg-0.4.9_p20050906.ebuild,
+ -ffmpeg-0.4.9_p20051120.ebuild:
+ Remove old versions.
+
+ 25 May 2006; Diego Pettenò <flameeyes@gentoo.org>
+ ffmpeg-0.4.9_p20060302.ebuild:
+ Add ~x86-fbsd keyword.
+
+*ffmpeg-0.4.9_p20060517 (17 May 2006)
+
+ 17 May 2006; Luca Barbato <lu_zero@gentoo.org>
+ +ffmpeg-0.4.9_p20060517.ebuild:
+ new snapshot, to be tested
+
+ 08 May 2006; Diego Pettenò <flameeyes@gentoo.org>
+ ffmpeg-0.4.9_p20060302.ebuild:
+ Use -rpath-link to make sure that the libraries are linked correctly, should
+ fixes bug #132171.
+
+ 03 May 2006; Diego Pettenò <flameeyes@gentoo.org> metadata.xml:
+ Update metadata to list media-video@gentoo.org as maintainer.
+
+ 20 Apr 2006; Daniel Gryniewicz <dang@gentoo.org>
+ +files/ffmpeg-0.4.9_p20060302-amr-64bit.patch,
+ ffmpeg-0.4.9_p20060302.ebuild:
+ Fix amr on 64-bit arches per bug# 130530
+
+ 14 Apr 2006; Diego Pettenò <flameeyes@gentoo.org>
+ +files/ffmpeg-0.4.9_p20060302-fbsd-flags.patch,
+ ffmpeg-0.4.9_p20060302.ebuild:
+ Add patch to respect CFLAGS on FreeBSD, and don't use preplib that's no more
+ needed anyway.
+
+ 31 Mar 2006; Simon Stelling <blubb@gentoo.org> +files/ffmpeg-libdir.patch,
+ ffmpeg-0.4.9_p20060302.ebuild:
+ fix wrong libdir paths in .pc files
+
+ 21 Mar 2006; Diego Pettenò <flameeyes@gentoo.org>
+ +files/ffmpeg-0.4.9_p20051216-asneeded-configure.patch,
+ ffmpeg-0.4.9_p20051216.ebuild, ffmpeg-0.4.9_p20060302.ebuild:
+ Use --cc option instead of overwriting CC variable to respect the compiler,
+ pass --extra-ldflags to respect LDFLAGS (only 20060302 respect them
+ entirely). Add patch to allow using --as-needed flag.
+
+ 08 Mar 2006; Diego Pettenò <flameeyes@gentoo.org>
+ ffmpeg-0.4.9_p20051216.ebuild, ffmpeg-0.4.9_p20060302.ebuild:
+ Disable strip, leaving to portage decide if and when to strip.
+
+ 06 Mar 2006; Luca Barbato <lu_zero@gentoo.org>
+ ffmpeg-0.4.9_p20060302.ebuild:
+ merged v4l and v4l2
+
+ 05 Mar 2006; Luca Barbato <lu_zero@gentoo.org>
+ ffmpeg-0.4.9_p20060302.ebuild:
+ Improved ebuild with amr and v4l2 support, thanks to Philip Kovacs
+ <kovacsp3@comcast.net> for the improved ebuild, other minor fixes
+
+ 04 Mar 2006; Luca Barbato <lu_zero@gentoo.org>
+ files/ffmpeg-shared-gcc4.1.patch:
+ fix
+
+ 04 Mar 2006; Luca Barbato <lu_zero@gentoo.org>
+ +files/ffmpeg-shared-gcc4.1.patch, ffmpeg-0.4.9_p20060302.ebuild:
+ ffmpeg-shared-gcc4 patch is back
+
+*ffmpeg-0.4.9_p20060302 (03 Mar 2006)
+
+ 03 Mar 2006; Luca Barbato <lu_zero@gentoo.org>
+ +ffmpeg-0.4.9_p20060302.ebuild:
+ New snapshot
+
+ 15 Feb 2006; Diego Pettenò <flameeyes@gentoo.org>
+ ffmpeg-0.4.9_p20050226-r3.ebuild:
+ Add missing sdl useflag in IUSE.
+
+ 30 Jan 2006; Luca Barbato <lu_zero@gentoo.org>
+ +files/ffmpeg-shared-gcc4.patch, ffmpeg-0.4.9_p20051216.ebuild:
+ x86 workaround from Kevin F. Quinn <kevquinn@gentoo.org>, I'll share the
+ blame if breaks something
+
+ 09 Jan 2006; Bryan Østergaard <kloeri@gentoo.org
+ ffmpeg-0.4.9_p20051216.ebuild:
+ Stable on alpha, bug 116181.
+
+ 06 Jan 2006; Luca Barbato <lu_zero@gentoo.org>
+ ffmpeg-0.4.9_p20051216.ebuild:
+ Warning added
+
+ 06 Jan 2006; Luca Barbato <lu_zero@gentoo.org>
+ files/ffmpeg-soname-symlink.patch:
+ minor fix for osx
+
+ 03 Jan 2006; Bryan Østergaard <kloeri@gentoo.org
+ ffmpeg-0.4.9_p20051216.ebuild:
+ ~alpha keyword, bug 116181.
+
+ 02 Jan 2006; Fabian Groffen <grobian@gentoo.org>
+ ffmpeg-0.4.9_p20051216.ebuild:
+ Marked ~ppc-macos (bug #116181)
+
+ 02 Jan 2006; Michael Hanselmann <hansmi@gentoo.org>
+ ffmpeg-0.4.9_p20051216.ebuild:
+ Stable on ppc.
+
+ 01 Jan 2006; Simon Stelling <blubb@gentoo.org>
+ ffmpeg-0.4.9_p20051216.ebuild:
+ stable on amd64 wrt bug 116181
+
+ 31 Dec 2005; Markus Rothe <corsair@gentoo.org>
+ ffmpeg-0.4.9_p20051216.ebuild:
+ Stable on ppc64
+
+ 30 Dec 2005; Mark Loeser <halcy0n@gentoo.org>
+ ffmpeg-0.4.9_p20051216.ebuild:
+ Stable on x86; bug #116181
+
+ 30 Dec 2005; Gustavo Zacarias <gustavoz@gentoo.org>
+ ffmpeg-0.4.9_p20051216.ebuild:
+ Stable on sparc wrt security #116181
+
+ 28 Dec 2005; Guy Martin <gmsoft@gentoo.org> ffmpeg-0.4.9_p20051216.ebuild:
+ Fix compilation of xine-lib on hppa.
+
+ 26 Dec 2005; Luca Barbato <lu_zero@gentoo.org> -ffmpeg-0.4.8.ebuild,
+ -ffmpeg-0.4.9_pre1-r1.ebuild, ffmpeg-0.4.9_p20050226-r3.ebuild:
+ Cleanup
+
+ 21 Dec 2005; Luis Medinas <metalgod@gentoo.org>
+ ffmpeg-0.4.9_p20051216.ebuild:
+ Add ~amd64 keyword for bug #116181.
+
+ 21 Dec 2005; Markus Rothe <corsair@gentoo.org>
+ ffmpeg-0.4.9_p20051216.ebuild:
+ Added ~ppc64; bug #116181
+
+ 21 Dec 2005; Mark Loeser <halcy0n@gentoo.org>
+ ffmpeg-0.4.9_p20051216.ebuild:
+ Adding ~x86; bug #116181
+
+ 20 Dec 2005; Rene Nussbaumer <killerfox@gentoo.org>
+ ffmpeg-0.4.9_p20051216.ebuild:
+ Unstable on hppa. See bug #116181.
+
+ 20 Dec 2005; Gustavo Zacarias <gustavoz@gentoo.org>
+ ffmpeg-0.4.9_p20051216.ebuild:
+ Keyworded ~sparc wrt #116181
+
+ 17 Dec 2005; Luca Barbato <lu_zero@gentoo.org>
+ files/ffmpeg-soname-symlink.patch:
+ yet another fix part 2
+
+ 17 Dec 2005; Luca Barbato <lu_zero@gentoo.org>
+ files/ffmpeg-soname-symlink.patch:
+ yet another fix
+
+ 16 Dec 2005; Luca Barbato <lu_zero@gentoo.org>
+ files/ffmpeg-soname-symlink.patch:
+ Fix in the patch
+
+*ffmpeg-0.4.9_p20051216 (16 Dec 2005)
+
+ 16 Dec 2005; Luca Barbato <lu_zero@gentoo.org>
+ +files/ffmpeg-soname-symlink.patch, +files/ffmpeg-unknown-options.patch,
+ +ffmpeg-0.4.9_p20051216.ebuild:
+ New snapshot
+
+ 04 Dec 2005; Lina Pezzella <j4rg0n@gentoo.org>
+ ffmpeg-0.4.9_p20051120.ebuild:
+ Testing ppc-macos, Bug #113107
+
+ 29 Nov 2005; Jason Wever <weeve@gentoo.org> ffmpeg-0.4.9_p20051120.ebuild:
+ Added ~sparc keyword wrt bug #113107.
+
+ 21 Nov 2005; Luca Barbato <lu_zero@gentoo.org>
+ ffmpeg-0.4.9_p20051120.ebuild:
+ Marked ~ppc
+
+ 21 Nov 2005; Markus Rothe <corsair@gentoo.org>
+ ffmpeg-0.4.9_p20051120.ebuild:
+ Added ~ppc64 keyword; bug #113107
+
+ 21 Nov 2005; Herbie Hopkins <herbs@gentoo.org>
+ ffmpeg-0.4.9_p20051120.ebuild:
+ Marked ~amd64 wrt bug #113107.
+
+ 21 Nov 2005; Chris White <chriswhite@gentoo.org>
+ ffmpeg-0.4.9_p20051120.ebuild:
+ Added ~x86 keyword as per bug #113107.
+
+*ffmpeg-0.4.9_p20051120 (20 Nov 2005)
+
+ 20 Nov 2005; Luca Barbato <lu_zero@gentoo.org>
+ +files/ffmpeg-configure.patch, +ffmpeg-0.4.9_p20051120.ebuild:
+ New experimental snapshot
+
+ 18 Sep 2005; Bryan Østergaard <kloeri@gentoo.org>
+ ffmpeg-0.4.9_p20050906.ebuild:
+ Add ~alpha keyword.
+
+ 17 Sep 2005; Luca Barbato <lu_zero@gentoo.org>
+ ffmpeg-0.4.9_p20050906.ebuild:
+ ~alpha temporary dropped
+
+ 17 Sep 2005; Luca Barbato <lu_zero@gentoo.org>
+ ffmpeg-0.4.9_p20050906.ebuild:
+ Dep fix for xvid, thanks to Staffan Palmroos <spalmroos@gmail.com>
+
+ 15 Sep 2005; Aron Griffis <agriffis@gentoo.org>
+ ffmpeg-0.4.9_p20050226-r5.ebuild:
+ Mark 0.4.9_p20050226-r5 stable on alpha
+
+ 15 Sep 2005; Luca Barbato <lu_zero@gentoo.org>
+ ffmpeg-0.4.9_p20050226-r5.ebuild:
+ ieee1394 issues, fixed the stable ebuild.
+
+ 12 Sep 2005; Luca Barbato <lu_zero@gentoo.org>
+ +files/ffmpeg-0.4.9_p20050906-osx.patch, ffmpeg-0.4.9_p20050906.ebuild:
+ Other fixes and dylib support
+
+ 12 Sep 2005; Luca Barbato <lu_zero@gentoo.org>
+ ffmpeg-0.4.9_p20050906.ebuild:
+ Fix ieee1394 issues
+
+ 10 Sep 2005; Diego Pettenò <flameeyes@gentoo.org>
+ ffmpeg-0.4.9_p20050906.ebuild:
+ Comments cleanup for missing keywords. Don't install INSTALL file.
+
+ 10 Sep 2005; Luca Barbato <lu_zero@gentoo.org>
+ ffmpeg-0.4.9_p20050906.ebuild:
+ Fix Ogg support
+
+*ffmpeg-0.4.9_p20050906 (08 Sep 2005)
+
+ 08 Sep 2005; Luca Barbato <lu_zero@gentoo.org>
+ +ffmpeg-0.4.9_p20050906.ebuild:
+ New snapshot, src_test added.
+
+ 26 Aug 2005; Seemant Kulleen <seemant@gentoo.org>
+ ffmpeg-0.4.9_p20050226-r5.ebuild:
+ moved libdc1394 from media-plugins to media-libs
+
+ 24 Aug 2005; Aron Griffis <agriffis@gentoo.org>
+ ffmpeg-0.4.9_p20050226-r5.ebuild:
+ stable on ia64
+
+ 12 Jun 2005; Bryan Østergaard <kloeri@gentoo.org>
+ ffmpeg-0.4.9_p20050226-r5.ebuild:
+ Add ~alpha keyword.
+
+ 10 Jun 2005; Diego Pettenò <flameeyes@gentoo.org>
+ ffmpeg-0.4.9_p20050226-r5.ebuild:
+ Use memalign hack on FreeBSD.
+
+ 06 Jun 2005; Markus Rothe <corsair@gentoo.org>
+ ffmpeg-0.4.9_p20050226-r5.ebuild:
+ Stable on ppc64
+
+ 17 May 2005; Gustavo Zacarias <gustavoz@gentoo.org>
+ ffmpeg-0.4.9_p20050226-r5.ebuild:
+ Stable on sparc
+
+ 15 May 2005; Diego Pettenò <flameeyes@gentoo.org>
+ ffmpeg-0.4.9_pre1-r1.ebuild, ffmpeg-0.4.9_p20050226-r3.ebuild,
+ ffmpeg-0.4.9_p20050226-r5.ebuild:
+ Removed unused gcc inheriting. Inherited toolchain-funcs where needed.
+
+ 09 May 2005; Aron Griffis <agriffis@gentoo.org>
+ ffmpeg-0.4.9_p20050226-r3.ebuild, ffmpeg-0.4.9_p20050226-r5.ebuild:
+ mark 0.4.9_p20050226-r3 stable on ia64. add ~ia64 to 0.4.9_p20050226-r5
+
+ 06 May 2005; Diego Pettenò <flameeyes@gentoo.org>
+ ffmpeg-0.4.9_p20050226-r5.ebuild:
+ Marked amd64.
+
+ 06 May 2005; Luca Barbato <lu_zero@gentoo.org>
+ ffmpeg-0.4.9_p20050226-r5.ebuild:
+ Marked ppc and x86
+
+ 05 May 2005; Donnie Berkholz <spyderous@gentoo.org>;
+ +files/0.4.8-gcc3.4-magicF2W.patch:
+ Re-add missing patch.
+
+*ffmpeg-0.4.9_pre1-r1 (04 May 2005)
+
+ 04 May 2005; Lina Pezzella <j4rg0n@gentoo.org> +files/ffmpeg-osx.patch,
+ +ffmpeg-0.4.9_pre1-r1.ebuild:
+ Re-added the pre1 ebuild since there are extensive patches made against it
+ that do not yet work with upstream's CVS. We're working on the latter, but
+ I'm not going to hold up ffmpeg any longer.
+
+ 02 May 2005; Luca Barbato <lu_zero@gentoo.org>
+ ffmpeg-0.4.9_p20050226-r5.ebuild:
+ Forced -fomit-frame-pointer
+
+*ffmpeg-0.4.9_p20050226-r5 (26 Apr 2005)
+
+ 26 Apr 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ -files/ffmpeg-0.4.7-2.6.patch, -files/0.4.8-gcc3.4-magicF2W.patch,
+ -files/alpha-idct.patch, +files/ffmpeg-a52.patch,
+ -files/ffmpeg-configure-extralibs.patch,
+ +files/ffmpeg-missing_links.patch, -ffmpeg-0.4.7.ebuild,
+ -ffmpeg-0.4.8.20040222.ebuild, -ffmpeg-0.4.8.20040322.ebuild,
+ -ffmpeg-0.4.8.20040322-r1.ebuild, -ffmpeg-0.4.9_pre1.ebuild,
+ -ffmpeg-0.4.9_p20050226-r1.ebuild, -ffmpeg-0.4.9_p20050226.ebuild,
+ -ffmpeg-0.4.9_p20050226-r2.ebuild, ffmpeg-0.4.9_p20050226-r3.ebuild,
+ -ffmpeg-0.4.9_p20050226-r4.ebuild, +ffmpeg-0.4.9_p20050226-r5.ebuild:
+ Revbump to add missing links to needed libs in libavformat. Handle a52 and
+ faad properly. Removing old versions.
+
+ 25 Apr 2005; Martin Schlemmer <azarah@gentoo.org>
+ files/ffmpeg-0.4.9_p20050226-gcc4.patch, ffmpeg-0.4.9_p20050226-r4.ebuild:
+ Fixup mafteah's patch the other way around, else it breaks avifile among
+ things.
+
+ 25 Apr 2005; Martin Schlemmer <azarah@gentoo.org>
+ +files/ffmpeg-0.4.9_p20050226-gcc4.patch,
+ ffmpeg-0.4.9_p20050226-r4.ebuild:
+ Fix building with gcc4. Patch from Genady Okrain (mafteah) 's overlay, with
+ some added hunks that was needed this side.
+
+ 24 Apr 2005; Diego Pettenò <flameeyes@gentoo.org>
+ +files/ffmpeg-configure-extralibs.patch, ffmpeg-0.4.9_p20050226-r4.ebuild:
+ Added patch to link to libdc1394 when ieee1394 is enabled. Fixes #90150.
+
+ 24 Apr 2005; Michael Hanselmann <hansmi@gentoo.org>
+ ffmpeg-0.4.9_p20050226-r3.ebuild:
+ Stable on hppa.
+
+ 24 Apr 2005; Bryan Østergaard <kloeri@gentoo.org>
+ ffmpeg-0.4.9_p20050226-r3.ebuild:
+ Stable on alpha.
+
+ 24 Apr 2005; Markus Rothe <corsair@gentoo.org>
+ ffmpeg-0.4.9_p20050226-r3.ebuild:
+ Stable on ppc64
+
+ 22 Apr 2005; Diego Pettenò <flameeyes@gentoo.org>
+ ffmpeg-0.4.9_p20050226-r4.ebuild:
+ Fixed typo on pic/mmx if condition.
+
+*ffmpeg-0.4.9_p20050226-r4 (21 Apr 2005)
+
+ 21 Apr 2005; Diego Pettenò <flameeyes@gentoo.org>
+ +ffmpeg-0.4.9_p20050226-r4.ebuild:
+ Added new revision which applies cleanups on bug #89172, and patch to enable
+ mmx on amd64 as for bug #88965.
+
+ 19 Apr 2005; Luca Barbato <lu_zero@gentoo.org>
+ ffmpeg-0.4.9_p20050226-r3.ebuild:
+ Marked ppc and x86
+
+ 19 Apr 2005; Diego Pettenò <flameeyes@gentoo.org>
+ ffmpeg-0.4.9_p20050226-r3.ebuild:
+ Mark ffmpeg-0.4.9_p20050226-r3 stable on amd64.
+
+ 18 Apr 2005; Diego Pettenò <flameeyes@gentoo.org>
+ ffmpeg-0.4.9_p20050226-r3.ebuild:
+ Changed xvid dependency to 1.0. Fixes #88879.
+
+*ffmpeg-0.4.9_p20050226-r3 (03 Apr 2005)
+
+ 03 Apr 2005; Jan Brinkmann <luckyduck@gentoo.org>
+ +ffmpeg-0.4.9_p20050226-r3.ebuild:
+ revision bump to indicate the latest changes, fixes #87681
+
+ 30 Mar 2005; Chris White <chriswhite@gentoo.org>
+ ffmpeg-0.4.9_p20050226-r1.ebuild, ffmpeg-0.4.9_p20050226-r2.ebuild,
+ ffmpeg-0.4.9_p20050226.ebuild:
+ Fixed bug #87069.
+
+ 21 Mar 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ ffmpeg-0.4.9_p20050226-r2.ebuild:
+ Use the right toolchain compiler.
+
+ 20 Mar 2005; Chris White <chriswhite@gentoo.org>
+ files/gentoo-ffmpeg001.patch, ffmpeg-0.4.9_p20050226-r2.ebuild:
+ Fixed a52 linking (again). Closes bugs #85929 and #85952.
+
+*ffmpeg-0.4.9_p20050226-r2 (19 Mar 2005)
+
+ 19 Mar 2005; Chris White <chriswhite@gentoo.org>
+ +files/ffmpeg-libdir-pic.patch, files/gentoo-ffmpeg001.patch,
+ +ffmpeg-0.4.9_p20050226-r2.ebuild:
+ Fix bug #84241 (multilib and pic).
+
+ 16 Mar 2005; Chris White <chriswhite@gentoo.org>
+ ffmpeg-0.4.9_p20050226-r1.ebuild:
+ Added missing emake.
+
+ 11 Mar 2005; Luca Barbato <lu_zero@gentoo.org>
+ ffmpeg-0.4.9_p20050226-r1.ebuild:
+ Put back xvid support
+
+*ffmpeg-0.4.9_p20050226-r1 (10 Mar 2005)
+
+ 10 Mar 2005; Chris White <chriswhite@gentoo.org>
+ +ffmpeg-0.4.9_p20050226-r1.ebuild:
+ Fixed bug #67947. -fPIC logic makes sense now. Thanks to Kevin Quin for
+ supplying the logic.
+
+ 07 Mar 2005; Chris White <chriswhite@gentoo.org>
+ ffmpeg-0.4.9_p20050226.ebuild:
+ Added threading support.
+
+ 03 Mar 2005; Luca Barbato <lu_zero@gentoo.org>
+ ffmpeg-0.4.9_p20050226.ebuild:
+ Removed xvid useflag
+
+ 01 Mar 2005; Chris White <chriswhite@gentoo.org>
+ ffmpeg-0.4.9_p20050226.ebuild:
+ Fix bad spelling.
+
+*ffmpeg-0.4.9_p20050226 (01 Mar 2005)
+
+ 01 Mar 2005; Chris White <chriswhite@gentoo.org>
+ +files/gentoo-ffmpeg001.patch, +ffmpeg-0.4.9_p20050226.ebuild:
+ Bumped to 20050226 snapshot release.
+
+ 24 Feb 2005; Jan Brinkmann <luckyduck@gentoo.org> ffmpeg-0.4.8.ebuild:
+ fixed #82873, emerge failed due to missing patch.
+
+ 06 Feb 2005; Jan Brinkmann <luckyduck@gentoo.org> ffmpeg-0.4.7.ebuild,
+ ffmpeg-0.4.8.20040222.ebuild, ffmpeg-0.4.8.20040322-r1.ebuild,
+ ffmpeg-0.4.8.20040322.ebuild, ffmpeg-0.4.8.ebuild, ffmpeg-0.4.9_pre1.ebuild:
+ added dummy src_test() to fix #77212
+
+ 16 Dec 2004; Markus Rothe <corsair@gentoo.org> ffmpeg-0.4.9_pre1.ebuild:
+ Stable on ppc64
+
+ 14 Dec 2004; Jeremy Huddleston <eradicator@gentoo.org>
+ ffmpeg-0.4.7.ebuild, ffmpeg-0.4.8.20040222.ebuild,
+ ffmpeg-0.4.8.20040322-r1.ebuild, ffmpeg-0.4.8.20040322.ebuild,
+ ffmpeg-0.4.8.ebuild, ffmpeg-0.4.9_pre1.ebuild:
+ Using 'aac' instead of faad and faac.
+
+ 02 Nov 2004; Markus Rothe <corsair@gentoo.org> ffmpeg-0.4.9_pre1.ebuild:
+ Marked ~ppc64
+
+ 25 Aug 2004; Sven Wegener <swegener@gentoo.org> ffmpeg-0.4.9_pre1.ebuild:
+ Changed SRC_URI to use mirror:// syntax.
+
+*ffmpeg-0.4.9_pre1 (21 Jul 2004)
+
+ 21 Jul 2004; Jeremy Huddleston <eradicator@gentoo.org>
+ +ffmpeg-0.4.9_pre1.ebuild:
+ Version bump closes bug #56613.
+
+ 25 Jun 2004; Daniel Goller <morfic@gentoo.org> ffmpeg-0.4.8.20040322-r1.ebuild:
+ ffmpeg-0.4.8.20040322-r1.ebuild adding patch for gcc 3.4.x
+ closes 49383 Credit goes to Ed Catmur for the patch
+
+ 24 Jun 2004; Martin Holzer <mholzer@gentoo.org>
+ ffmpeg-0.4.8.20040322-r1.ebuild, ffmpeg-0.4.8.20040322.ebuild:
+ removing symblink from ffplay to ffmpeg. closes 51014
+
+ 09 Jun 2004; Luca Barbato <lu_zero@gentoo.org>
+ ffmpeg-0.4.8.20040322-r1.ebuild:
+ Same fix from amd64
+
+ 09 Jun 2004; Thomas Raschbacher <lordvan@gentoo.org>
+ ffmpeg-0.4.8.20040322-r1.ebuild:
+ only enable faac when we are not on ia64 or alpha in src_compile
+
+*ffmpeg-0.4.8.20040322-r1 (09 Jun 2004)
+
+ 09 Jun 2004; Thomas Raschbacher <lordvan@gentoo.org>
+ +ffmpeg-0.4.8.20040322-r1.ebuild:
+ -r1 adds faac support, added local USE flag
+ fixes bug #48090, thanks to Stefan Briesenick <sbriesen@gmx.de>
+
+ 07 Jun 2004; Travis Tilley <lv@gentoo.org> ffmpeg-0.4.8.20040322.ebuild:
+ stable on amd64
+
+ 05 Jun 2004; <tester@gentoo.org> ffmpeg-0.4.8.20040322.ebuild:
+ No longer available from SRC_URI, changed the keywords to -*.. oops
+ we have it on our mirrors... sorry..
+
+ 30 Mar 2004; Sven Blumenstein <bazik@gentoo.org>
+ ffmpeg-0.4.8.20040322.ebuild:
+ Stable on sparc.
+
+ 26 Mar 2004; Joel Martin <kanaka@gentoo.org> ffmpeg-0.4.8.20040222.ebuild,
+ ffmpeg-0.4.8.20040322.ebuild:
+ Filter out -momit-leaf-frame-pointer flag from libpostproc compilation
+
+*ffmpeg-0.4.8.20040322 (22 Mar 2004)
+
+ 22 Mar 2004; Luca Barbato <lu_zero@gentoo.org> ffmpeg-0.4.8.20040322.ebuild:
+ New snapshot, works with ppc
+
+ 15 Mar 2004; Luca Barbato <lu_zero@gentoo.org> ffmpeg-0.4.8.20040222.ebuild:
+ Marked -ppc pending a fix for misbuild.
+
+*ffmpeg-0.4.8.20040222 (11 Mar 2004)
+
+ 11 Mar 2004; <kanaka@gentoo.org> ffmpeg-0.4.8.20040222.ebuild:
+ Install libpostproc library. Update to newer snapshot. Bug 27051
+
+ 17 Feb 2004; Aron Griffis <agriffis@gentoo.org> ffmpeg-0.4.8.ebuild:
+ stable on alpha and ia64
+
+ 16 Jan 2004; Bartosch Pixa <darkspecter@gentoo.org> ffmpeg-0.4.8.ebuild:
+ set ppc in keywords
+
+ 29 Nov 2003; Brad House <brad_mssw@gentoo.org> ffmpeg-0.4.8.ebuild:
+ amd64 needs -fPIC to compile properly
+
+ 22 Nov 2003; Luca Barbato <lu_zero@gentoo.org> ffmpeg-0.4.8.ebuild:
+ altivec related fix, thanks to Olivier <ocastan@noos.fr> for the report
+ and the patch
+
+*ffmpeg-0.4.8 (18 Oct 2003)
+
+ 18 Oct 2003; <iggy@gentoo.org> ffmpeg-0.4.8.ebuild:
+ version bump, fix a bug where it was trying to include X11/Xlib.h for no
+ apparent reason
+
+*ffmpeg-0.4.7 (09 Sep 2003)
+
+ 09 Sep 2003; Martin Holzer <mholzer@gentoo.org> ffmpeg-0.4.7.ebuild:
+ Version bumped.
+
+ 14 Jul 2003; Alastair Tse <liquidx@gentoo.org>
+ ffmpeg-0.4.7_pre20030624.ebuild:
+ depend on a non-masked version of imlib2
+
+ 13 Jul 2003; Nick Hadaway <raker@gentoo.org> ffmpeg-0.4.7_pre20030624.ebuild:
+ Adding sdl, imlib, and truetype use flags.
+
+ 06 Jul 2003; Nick Hadaway <raker@gentoo.org> ffmpeg-0.4.7_pre20030624.ebuild:
+ Marked stble for x86
+
+ 02 Jul 2003; Nick Hadaway <raker@gentoo.org> ffmpeg-0.4.7_pre20030624.ebuild,
+ files/alpha-idct.patch:
+ Addresses bug #23563. This problem was fixed upstream in cvs.
+ Added a small patch.
+
+*ffmpeg-0.4.7_pre20030624 (26 Jun 2003)
+
+ 26 Jun 2003; Nick Hadaway <raker@gentoo.org> ffmpeg-0.4.7_pre20030624.ebuild:
+ As of June 9th, 0.4.6 is considered obsolete by the upstream author.
+ This build pulled from a cvs snapshot now has support for the dvd
+ and static use variables. Also added faad as a local use variable.
+
+*ffmpeg-0.4.6-r1 (4 Jan 2003)
+
+ 10 Mar 2003; Will Woods <wwoods@gentoo.org> ffmpeg-0.4.6-r1.ebuild:
+ Added ~alpha to keywords and -fPIC to flags, fixes bug #16281
+
+ 19 Feb 2003; Martin Holzer <mholzer@gentoo.org> ffmpeg-0.4.6-r1.ebuild :
+ Marked as stable.
+
+ 26 Jan 2003; Seemant Kulleen <seemant@gentoo.org> ffmpeg-0.4.6-r1.ebuild :
+
+ Added -fPIC to the filter-flags to sort out compiling issues such as
+ those reported in bug #14500 by atomicdog@akier.net (Conrad Akier)
+
+ 4 Jan 2003; Joshua Brindle <method@gentoo.org> ffmpeg-0.4.6-r1.ebuild :
+ merge patches to ebuild and package from Rene Wagner <reenoo@gmx.de>
+ to install libavcodec as a .so.
+
+*ffmpeg-0.4.6 (3 Jan 2003)
+
+ 3 Jan 2003; Joshua Brindle <method@gentoo.org> ffmpeg-0.4.6.ebuild :
+ version bump, this is a release non-snapshot version, recommend upgrade
+
+*ffmpeg-0.4.5.20021212 (13 Dec 2002)
+
+ 5 Jan 2002; Joshua Brindle <method@gentoo.org ffmpeg-0.4.5.20021212.ebuild :
+ removed this ebuild from portage, it is old and was a cvs snapshot, 0.4.6
+ contains everything this did and is a release version
+
+ 14 Dec 2002; Joshua Brindle <method@gentoo.org> ffmpeg-0.4.5.20021212.ebuild :
+ Changing url to reflect where author moved his.
+
+ 13 Dec 2002; Bryon Roche <kain@gentoo.org> ffmpeg-0.4.5.20021212.ebuild :
+ ffmpeg isn't REALLY x86 specific. Giving ppc and sparc a nice big ~.
+
+ 12 Dec 2002; Joshua Brindle <method@gentoo.org> ffmpeg-0.4.5.20021212.ebuild :
+ cvs snapshot so that streaming will work, also added mp3lame and oggvorbis
+ support with encode and oggvorbis use vars.
+
+ 06 Dec 2002; Rodney Rees <manson@gentoo.org> : changed sparc ~sparc keywords
+
+*ffmpeg-0.4.5 (1 Feb 2002)
+
+ 25 Sep 2002; Daniel Ahlberg <aliz@gentoo.org> ffmpeg-0.4.5.ebuild :
+ Filter out "-fforce-addr".
+
+ 05 Sep 2002; Seemant Kulleen <seemant@gentoo.org> ffmpeg-0.4.5.ebuild :
+
+ Added nasm to DEPEND. Thanks to: jfelice@cronosys.com (Jay 'Eraserhead'
+ Felice) in bug #7481. Also tagged it x86 only due to this.
+
+ 1 Feb 2002; G.Bevin <gbevin@gentoo.org> ChangeLog :
+
+ Added initial ChangeLog which should be updated whenever the package is
+ updated in any way. This changelog is targetted to users. This means that the
+ comments should well explained and written in clean English. The details about
+ writing correct changelogs are explained in the skel.ChangeLog file which you
+ can find in the root directory of the portage repository.
diff --git a/media-video/ffmpeg/Manifest b/media-video/ffmpeg/Manifest
new file mode 100644
index 0000000..75afea2
--- /dev/null
+++ b/media-video/ffmpeg/Manifest
@@ -0,0 +1,5 @@
+AUX ffmpeg-loongson.patch 55657 RMD160 ec3487a22679200b1aae60700d6453387a8fc71f SHA1 c17afd72e1a211a9ec33acdfbaf6ae08f6050437 SHA256 c115f49a271f7f69923527af70311b76d05c12ce6659bd4cdaaae6ba0da73157
+DIST ffmpeg-0.5_p22846.tar.bz2 3675057 RMD160 3ebd997321d59fa0baf87329518e925ccbed3cf8 SHA1 d207570ed009b63c94485ccc64439107cf700f39 SHA256 a52d82476afa7c8ed62c1a52760e49907947c1ef1ecfc3e9022fa713e9783f2f
+EBUILD ffmpeg-0.5_p22846.ebuild 7658 RMD160 788bfaddfb9c1d883393b6d46bb05b6d54ec8e47 SHA1 e21405b2a6002cab5249d5516ff87bd17feec615 SHA256 a9caa8701e3383c454378580d1a9bf0612484c75335fadc5bd18039ddf31d323
+MISC ChangeLog 52729 RMD160 855d3b5b6c5c08956fbec01454c41e276c89fd08 SHA1 a75e9b54685d91b944bda6174839f75efd53117b SHA256 6212eddd7cc186cca8bf1f7fcc489f59435fc9f4ee373947d89f7d02be9b11db
+MISC metadata.xml 1830 RMD160 88d52f0a9539230e1addcab5fd704400d34b84d3 SHA1 9e2bdcf8205744623d964f1e426dadacbf24b0e1 SHA256 eb541891f7dab5e5ed4b46975a578d4ff19b88d9d80e44668f2195774fb157c8
diff --git a/media-video/ffmpeg/ffmpeg-0.5_p22846.ebuild b/media-video/ffmpeg/ffmpeg-0.5_p22846.ebuild
new file mode 100644
index 0000000..9697f47
--- /dev/null
+++ b/media-video/ffmpeg/ffmpeg-0.5_p22846.ebuild
@@ -0,0 +1,249 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-video/ffmpeg/ffmpeg-0.5_p22846.ebuild,v 1.3 2010/05/11 09:50:42 aballier Exp $
+
+EAPI=2
+SCM=""
+if [ "${PV#9999}" != "${PV}" ] ; then
+ SCM=subversion
+ ESVN_REPO_URI="svn://svn.ffmpeg.org/ffmpeg/trunk"
+fi
+
+inherit eutils flag-o-matic multilib toolchain-funcs ${SCM}
+
+DESCRIPTION="Complete solution to record, convert and stream audio and video. Includes libavcodec."
+HOMEPAGE="http://ffmpeg.org/"
+if [ "${PV#9999}" != "${PV}" ] ; then
+ SRC_URI=""
+elif [ "${PV%_p*}" != "${PV}" ] ; then # Snapshot
+ SRC_URI="mirror://gentoo/${P}.tar.bz2"
+else # Release
+ SRC_URI="http://ffmpeg.org/releases/${P}.tar.bz2"
+fi
+FFMPEG_REVISION="${PV#*_p}"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd"
+IUSE="+3dnow +3dnowext alsa altivec cpudetection custom-cflags debug dirac
+ doc ieee1394 +encode faac faad gsm jack +mmx +mmxext vorbis test
+ theora threads x264 xvid network zlib sdl X mp3 amr
+ oss pic schroedinger +hardcoded-tables bindist v4l v4l2
+ speex +ssse3 jpeg2k vdpau"
+
+VIDEO_CARDS="nvidia"
+
+for x in ${VIDEO_CARDS}; do
+ IUSE="${IUSE} video_cards_${x}"
+done
+
+RDEPEND="sdl? ( >=media-libs/libsdl-1.2.10 )
+ alsa? ( media-libs/alsa-lib )
+ encode? (
+ faac? ( media-libs/faac )
+ mp3? ( media-sound/lame )
+ vorbis? ( media-libs/libvorbis media-libs/libogg )
+ theora? ( >=media-libs/libtheora-1.1.1[encode] media-libs/libogg )
+ x264? ( >=media-libs/x264-0.0.20100118 )
+ xvid? ( >=media-libs/xvid-1.1.0 ) )
+ faad? ( >=media-libs/faad2-2.6.1 )
+ zlib? ( sys-libs/zlib )
+ ieee1394? ( media-libs/libdc1394
+ sys-libs/libraw1394 )
+ dirac? ( media-video/dirac )
+ gsm? ( >=media-sound/gsm-1.0.12-r1 )
+ jpeg2k? ( >=media-libs/openjpeg-1.3-r2 )
+ amr? ( media-libs/opencore-amr )
+ schroedinger? ( media-libs/schroedinger )
+ speex? ( >=media-libs/speex-1.2_beta3 )
+ jack? ( media-sound/jack-audio-connection-kit )
+ X? ( x11-libs/libX11 x11-libs/libXext )
+ video_cards_nvidia? (
+ vdpau? ( x11-libs/libvdpau )
+ )"
+
+DEPEND="${RDEPEND}
+ >=sys-devel/make-3.81
+ dirac? ( dev-util/pkgconfig )
+ schroedinger? ( dev-util/pkgconfig )
+ mmx? ( dev-lang/yasm )
+ doc? ( app-text/texi2html )
+ test? ( net-misc/wget )
+ v4l? ( sys-kernel/linux-headers )
+ v4l2? ( sys-kernel/linux-headers )"
+
+src_prepare() {
+ if [[ ${PV} = *9999* ]]; then
+ # Set SVN version manually
+ subversion_wc_info
+ sed -i s/UNKNOWN/SVN-r${ESVN_WC_REVISION}/ "${S}/version.sh"
+ elif [ "${PV%_p*}" != "${PV}" ] ; then # Snapshot
+ sed -i s/UNKNOWN/SVN-r${FFMPEG_REVISION}/ "${S}/version.sh"
+ fi
+ cd ${S}
+ epatch ${FILESDIR}/${PN}-loongson.patch
+}
+
+src_configure() {
+ local myconf="${EXTRA_FFMPEG_CONF}"
+
+ # enabled by default
+ use debug || myconf="${myconf} --disable-debug"
+ use zlib || myconf="${myconf} --disable-zlib"
+ use sdl || myconf="${myconf} --disable-ffplay"
+ use network || myconf="${myconf} --disable-network"
+
+ use custom-cflags && myconf="${myconf} --disable-optimizations"
+ use cpudetection && myconf="${myconf} --enable-runtime-cpudetect"
+
+ # enabled by default
+ if use encode
+ then
+ use mp3 && myconf="${myconf} --enable-libmp3lame"
+ use vorbis && myconf="${myconf} --enable-libvorbis"
+ use theora && myconf="${myconf} --enable-libtheora"
+ use x264 && myconf="${myconf} --enable-libx264"
+ use xvid && myconf="${myconf} --enable-libxvid"
+ if use bindist
+ then
+ use faac && ewarn "faac is nonfree and cannot be distributed;
+ disabling faac support."
+ else
+ use faac && myconf="${myconf} --enable-libfaac --enable-nonfree"
+ fi
+ else
+ myconf="${myconf} --disable-encoders"
+ fi
+
+ # libavdevice options
+ use ieee1394 && myconf="${myconf} --enable-libdc1394"
+ # Indevs
+ for i in v4l v4l2 alsa oss jack ; do
+ use $i || myconf="${myconf} --disable-indev=$i"
+ done
+ # Outdevs
+ for i in alsa oss ; do
+ use $i || myconf="${myconf} --disable-outdev=$i"
+ done
+ use X && myconf="${myconf} --enable-x11grab"
+
+ # Threads; we only support pthread for now but ffmpeg supports more
+ use threads && myconf="${myconf} --enable-pthreads"
+
+ # Decoders
+ use amr && myconf="${myconf} --enable-libopencore-amrwb
+ --enable-libopencore-amrnb"
+ for i in gsm faad dirac schroedinger speex; do
+ use $i && myconf="${myconf} --enable-lib$i"
+ done
+ use jpeg2k && myconf="${myconf} --enable-libopenjpeg"
+
+ #for i in h264_vdpau mpeg1_vdpau mpeg_vdpau vc1_vdpau wmv3_vdpau; do
+ # use video_cards_nvidia || myconf="${myconf} --disable-decoder=$i"
+ # use vdpau || myconf="${myconf} --disable-decoder=$i"
+ #done
+ use video_cards_nvidia || myconf="${myconf} --disable-vdpau"
+ use vdpau || myconf="${myconf} --disable-vdpau"
+ myconf="${myconf} --disable-vaapi"
+
+ # CPU features
+ for i in mmx ssse3 altivec ; do
+ use $i || myconf="${myconf} --disable-$i"
+ done
+ use mmxext || myconf="${myconf} --disable-mmx2"
+ use 3dnow || myconf="${myconf} --disable-amd3dnow"
+ use 3dnowext || myconf="${myconf} --disable-amd3dnowext"
+ # disable mmx accelerated code if PIC is required
+ # as the provided asm decidedly is not PIC.
+ if gcc-specs-pie ; then
+ myconf="${myconf} --disable-mmx --disable-mmx2"
+ fi
+
+ # Option to force building pic
+ use pic && myconf="${myconf} --enable-pic"
+
+ # Try to get cpu type based on CFLAGS.
+ # Bug #172723
+ # We need to do this so that features of that CPU will be better used
+ # If they contain an unknown CPU it will not hurt since ffmpeg's configure
+ # will just ignore it.
+ for i in $(get-flag march) $(get-flag mcpu) $(get-flag mtune) ; do
+ [ "${i}" = "native" ] && i="host" # bug #273421
+ [[ ${i} = *-sse3 ]] && i="${i%-sse3}" # bug 283968
+ myconf="${myconf} --cpu=$i"
+ break
+ done
+
+ # Mandatory configuration
+ myconf="${myconf} --enable-gpl --enable-version3 --enable-postproc \
+ --enable-avfilter --enable-avfilter-lavf \
+ --disable-stripping"
+
+ # cross compile support
+ if tc-is-cross-compiler ; then
+ myconf="${myconf} --enable-cross-compile --arch=$(tc-arch-kernel) --cross-prefix=${CHOST}-"
+ case ${CHOST} in
+ *freebsd*)
+ myconf="${myconf} --target-os=freebsd"
+ ;;
+ mingw32*)
+ myconf="${myconf} --target-os=mingw32"
+ ;;
+ *linux*)
+ myconf="${myconf} --target-os=linux"
+ ;;
+ esac
+ fi
+
+ # Misc stuff
+ use hardcoded-tables && myconf="${myconf} --enable-hardcoded-tables"
+ use doc || myconf="${myconf} --disable-doc"
+
+ # Specific workarounds for too-few-registers arch...
+ if [[ $(tc-arch) == "x86" ]]; then
+ filter-flags -fforce-addr -momit-leaf-frame-pointer
+ append-flags -fomit-frame-pointer
+ is-flag -O? || append-flags -O2
+ if (use debug); then
+ # no need to warn about debug if not using debug flag
+ ewarn ""
+ ewarn "Debug information will be almost useless as the frame pointer is omitted."
+ ewarn "This makes debugging harder, so crashes that has no fixed behavior are"
+ ewarn "difficult to fix. Please have that in mind."
+ ewarn ""
+ fi
+ fi
+
+ cd "${S}"
+ ./configure \
+ --prefix=/usr \
+ --libdir=/usr/$(get_libdir) \
+ --shlibdir=/usr/$(get_libdir) \
+ --mandir=/usr/share/man \
+ --enable-static --enable-shared \
+ --cc="$(tc-getCC)" \
+ ${myconf} || die "configure failed"
+}
+
+src_compile() {
+ emake version.h || die #252269
+ emake || die "make failed"
+}
+
+src_install() {
+ emake DESTDIR="${D}" install install-man || die "Install Failed"
+
+ dodoc Changelog README INSTALL
+ dodoc doc/*
+}
+
+src_test() {
+ if use encode ; then
+ for t in codectest lavftest seektest ; do
+ LD_LIBRARY_PATH="${S}/libpostproc:${S}/libswscale:${S}/libavcodec:${S}/libavdevice:${S}/libavfilter:${S}/libavformat:${S}/libavutil" \
+ emake ${t} || die "Some tests in ${t} failed"
+ done
+ else
+ ewarn "Tests fail without USE=encode, skipping"
+ fi
+}
diff --git a/media-video/ffmpeg/files/ffmpeg-loongson.patch b/media-video/ffmpeg/files/ffmpeg-loongson.patch
new file mode 100644
index 0000000..1bc4146
--- /dev/null
+++ b/media-video/ffmpeg/files/ffmpeg-loongson.patch
@@ -0,0 +1,1794 @@
+diff --git a/configure b/configure
+index 25e8cef..1d6c652 100755
+--- a/configure
++++ b/configure
+@@ -230,6 +230,7 @@ Advanced options (experts only):
+ --disable-armvfp disable ARM VFP optimizations
+ --disable-iwmmxt disable iwmmxt optimizations
+ --disable-mmi disable MMI optimizations
++ --disable-loongson2mmi disable LOONGSON2 Multi-Media Instructions usage"
+ --disable-neon disable neon optimizations
+ --disable-vis disable VIS optimizations
+ --disable-yasm disable use of yasm assembler
+@@ -995,6 +996,7 @@ ARCH_EXT_LIST='
+ armvfp
+ iwmmxt
+ mmi
++ loongson2mmi
+ mmx
+ mmx2
+ neon
+@@ -2862,6 +2864,7 @@ if enabled arm; then
+ fi
+ if enabled mips; then
+ echo "MMI enabled ${mmi-no}"
++ echo "LOONGSON2MMI enabled ${loongson2mmi-no}"
+ fi
+ if enabled ppc; then
+ echo "AltiVec enabled ${altivec-no}"
+diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
+index add4b10..8244e51 100644
+--- a/libavcodec/avcodec.h
++++ b/libavcodec/avcodec.h
+@@ -1586,6 +1586,8 @@ typedef struct AVCodecContext {
+ #define FF_IDCT_SIMPLENEON 22
+ #define FF_IDCT_SIMPLEALPHA 23
+ #define FF_IDCT_BINK 24
++#define FF_IDCT_LIBMPEG2LOONGSON2 25
++#define FF_IDCT_XVIDLOONGSON2 26
+
+ /**
+ * slice count
+diff --git a/libavcodec/dsputil.c b/libavcodec/dsputil.c
+index bbfdb6a..dfc3452 100644
+--- a/libavcodec/dsputil.c
++++ b/libavcodec/dsputil.c
+@@ -4525,6 +4525,7 @@ av_cold void dsputil_init(DSPContext* c, AVCodecContext *avctx)
+ if (HAVE_MMI) dsputil_init_mmi (c, avctx);
+ if (ARCH_SH4) dsputil_init_sh4 (c, avctx);
+ if (ARCH_BFIN) dsputil_init_bfin (c, avctx);
++ if (HAVE_LOONGSON2MMI) dsputil_init_loongson2(c, avctx);
+
+ for(i=0; i<64; i++){
+ if(!c->put_2tap_qpel_pixels_tab[0][i])
+diff --git a/libavcodec/dsputil.h b/libavcodec/dsputil.h
+index d1816e6..1a72ae9 100644
+--- a/libavcodec/dsputil.h
++++ b/libavcodec/dsputil.h
+@@ -636,6 +636,7 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx);
+ void dsputil_init_ppc(DSPContext* c, AVCodecContext *avctx);
+ void dsputil_init_sh4(DSPContext* c, AVCodecContext *avctx);
+ void dsputil_init_vis(DSPContext* c, AVCodecContext *avctx);
++void dsputil_init_loongson2(DSPContext* c, AVCodecContext *avctx);
+
+ void ff_dsputil_init_dwt(DSPContext *c);
+ void ff_cavsdsp_init(DSPContext* c, AVCodecContext *avctx);
+diff --git a/libavcodec/loongson2/dsputil_loongson2.c b/libavcodec/loongson2/dsputil_loongson2.c
+new file mode 100644
+index 0000000..01bd3ac
+--- /dev/null
++++ b/libavcodec/loongson2/dsputil_loongson2.c
+@@ -0,0 +1,221 @@
++/*
++ * Copyright(C) 2006-2010 comcat <jiankemeng@gmail.com>
++ *
++ * Optimized for Loongson2 CPUs by comcat <jiankemeng@gmail.com>
++ *
++ */
++
++#include "dsputil_loongson2.h"
++#include "../simple_idct.h"
++#include "../mpegvideo.h"
++
++//extern void ff_idct_xvid_loongson2(short *block);
++
++extern void ff_loongson2_idct(DCTELEM *block);
++extern void ff_idct_xvid_loongson2(short *block);
++
++static void add_pixels_clamped_loongson2(const DCTELEM *block, uint8_t *restrict pixels, int line_size)
++{
++ const DCTELEM *p;
++ uint8_t *pix;
++ int i,j;
++ p = block;
++ pix = pixels;
++ i = 4;
++ j = line_size << 1;
++ __asm __volatile("xor $f14, $f14, $f14\n\t");
++ do {
++ __asm __volatile(
++// ".set mips3 \n\t"
++ "ldc1 $f0, 0(%2) \n\t"
++ "ldc1 $f2, 8(%2) \n\t"
++ "ldc1 $f4, 16(%2) \n\t"
++ "ldc1 $f6, 24(%2) \n\t"
++ "ldc1 $f8, %0 \n\t"
++ "ldc1 $f12, %1 \n\t"
++ "mov.d $f10, $f8 \n\t"
++
++ "punpcklbh $f8, $f8, $f14 \n\t"
++ "punpckhbh $f10, $f10, $f14\n\t"
++
++ "paddsh $f0, $f0, $f8 \n\t"
++ "paddsh $f2, $f2, $f10 \n\t"
++
++ "mov.d $f10, $f12 \n\t"
++
++ "punpcklbh $f12, $f12, $f14\n\t"
++ "punpckhbh $f10, $f10, $f14\n\t"
++
++ "paddsh $f4, $f4, $f12 \n\t"
++ "paddsh $f6, $f6, $f10 \n\t"
++
++ "packushb $f0, $f0, $f2 \n\t"
++ "packushb $f4, $f4, $f6 \n\t"
++
++ "sdc1 $f0, %0 \n\t"
++ "sdc1 $f4, %1 \n\t"
++// ".set mips2 \n\t"
++ :"+m"(*pix), "+m"(*(pix+line_size))
++ :"r"(p)
++ :"$f0","$f2","$f4","$f6","$f8","$f10","$f12","$f14","memory");
++ pix += j;
++ p += 16;
++ } while (--i);
++
++}
++
++static void put_pixels_clamped_loongson2(const DCTELEM *block, uint8_t *restrict pixels, int line_size)
++{
++ const DCTELEM *p;
++ uint8_t *pix;
++ int tmp = line_size * 3;
++ p = block;
++ pix = pixels;
++ __asm __volatile
++ (
++// ".set mips3 \n\t"
++ //"dadd $12, $0, $0\n\t"
++ //"dadd $13, $0, $0\n\t"
++ //"dadd $14, $0, $0\n\t"
++
++ "ldc1 $f0, 0(%3)\n\t"
++ "ldc1 $f2, 8(%3)\n\t"
++ "ldc1 $f4, 16(%3)\n\t"
++ "ldc1 $f6, 24(%3)\n\t"
++ "ldc1 $f8, 32(%3)\n\t"
++ "ldc1 $f10, 40(%3)\n\t"
++ "ldc1 $f16, 48(%3)\n\t"
++ "ldc1 $f18, 56(%3)\n\t"
++
++ "packushb $f0, $f0, $f2\n\t"
++ "packushb $f4, $f4, $f6\n\t"
++ "packushb $f8, $f8, $f10\n\t"
++ "packushb $f16, $f16, $f18\n\t"
++
++ "add $12, %0, %1\n\t"
++ "add $13, $12, %1\n\t"
++ "add $14, %0, %2\n\t"
++
++ "sdc1 $f0, 0(%0)\n\t"
++ "sdc1 $f4, 0($12)\n\t"
++ "sdc1 $f8, 0($13)\n\t"
++ "sdc1 $f16, 0($14)\n\t"
++// ".set mips2\n\t"
++ :
++ :"r" (pix), "r" (line_size), "r" (tmp), "r"(p)
++ :"$12","$13","$14","$f0","$f2","$f4","$f6","$f8","$f10","$16","$18"
++ );
++
++ pix += line_size*4;
++ p += 32;
++
++ __asm __volatile
++ (
++// ".set mips3 \n\t"
++
++ "dadd $12, $0, $0\n\t"
++ "dadd $13, $0, $0\n\t"
++ "dadd $14, $0, $0\n\t"
++ "lw $12, %3\n\t"
++
++ "ldc1 $f0, 0($12)\n\t"
++ "ldc1 $f2, 8($12)\n\t"
++ "ldc1 $f4, 16($12)\n\t"
++ "ldc1 $f6, 24($12)\n\t"
++ "ldc1 $f8, 32($12)\n\t"
++ "ldc1 $f10, 40($12)\n\t"
++ "ldc1 $f16, 48($12)\n\t"
++ "ldc1 $f18, 56($12)\n\t"
++
++ "packushb $f0, $f0, $f2\n\t"
++ "packushb $f4, $f4, $f6\n\t"
++ "packushb $f8, $f8, $f10\n\t"
++ "packushb $f16, $f16, $f18\n\t"
++
++ "add $12, %1, %0\n\t"
++ "add $13, $12, %1\n\t"
++ "add $15, %2, %0\n\t"
++
++ "sdc1 $f0, 0(%0)\n\t"
++ "sdc1 $f4, 0($12)\n\t"
++
++ "sdc1 $f8, 0($13)\n\t"
++ "sdc1 $f16, 0($15)\n\t"
++// ".set mips2\n\t"
++ :
++ :"r" (pix), "r" (line_size), "r" (tmp), "m"(p)
++ :"$12","$13","$15","$f0","$f2","$f4","$f6","$f8","$f10","$16","$18","memory"
++ );
++
++}
++
++/*
++void put_signed_pixels_clamped_loongson2(const DCTELEM *block, uint8_t *pixels, int line_size)
++{
++
++}
++
++
++void ff_loongson2_idct_put(uint8_t *dest, int line_size, DCTELEM *block)
++{
++ ff_loongson2_idct(block);
++ put_pixels_clamped_loongson2(block, dest, line_size);
++}
++
++void ff_loongson2_idct_add(uint8_t *dest, int line_size, DCTELEM *block)
++{
++ ff_loongson2_idct(block);
++ add_pixels_clamped_loongson2(block, dest, line_size);
++}*/
++
++static void ff_idct_xvid_loongson2_put(uint8_t *dest, int line_size, DCTELEM *block)
++{
++ ff_idct_xvid_loongson2(block);
++ put_pixels_clamped_loongson2(block, dest, line_size);
++}
++
++static void ff_idct_xvid_loongson2_add(uint8_t *dest, int line_size, DCTELEM *block)
++{
++ ff_idct_xvid_loongson2(block);
++ add_pixels_clamped_loongson2(block, dest, line_size);
++}
++
++void dsputil_init_loongson2(DSPContext *c, AVCodecContext *avctx)
++{
++
++ const int idct_algo = avctx->idct_algo;
++
++/*
++#ifdef CONFIG_ENCODERS
++ const int dct_algo = avctx->dct_algo;
++ if(dct_algo == FF_DCT_AUTO || dct_algo == FF_DCT_LOONGSON2)
++ c->fdct = ff_fdct_loongson2;
++#endif
++*/
++
++#if 0
++ if(avctx->lowres==0)
++ {
++ if(idct_algo == FF_IDCT_LIBMPEG2LOONGSON2)
++ {
++ c->idct_add = ff_loongson2_idct_add;
++ c->idct_put = ff_loongson2_idct_put;
++ c->idct = ff_loongson2_idct;
++ }
++ else if(idct_algo == FF_IDCT_XVIDLOONGSON2)
++ {
++#endif
++ c->idct_add = ff_idct_xvid_loongson2_add;
++ c->idct_put = ff_idct_xvid_loongson2_put;
++ c->idct = ff_idct_xvid_loongson2;
++ //}
++ //}
++
++ c->put_pixels_clamped = put_pixels_clamped_loongson2;
++ c->add_pixels_clamped = add_pixels_clamped_loongson2;
++
++#ifdef CONFIG_ENCODERS
++ dsputil_init_pix_loongson2(c, avctx);
++#endif
++
++}
+diff --git a/libavcodec/loongson2/dsputil_loongson2.d b/libavcodec/loongson2/dsputil_loongson2.d
+new file mode 100644
+index 0000000..808f0a3
+--- /dev/null
++++ b/libavcodec/loongson2/dsputil_loongson2.d
+@@ -0,0 +1,18 @@
++libavcodec/loongson2/dsputil_loongson2.o: \
++ libavcodec/loongson2/dsputil_loongson2.c \
++ libavcodec/loongson2/dsputil_loongson2.h libavcodec/dsputil.h \
++ libavutil/intreadwrite.h config.h libavutil/bswap.h \
++ libavutil/attributes.h libavutil/common.h libavutil/intmath.h \
++ libavutil/mem.h libavutil/internal.h libavutil/timer.h libavutil/libm.h \
++ libavutil/mips/intreadwrite.h libavcodec/avcodec.h libavutil/avutil.h \
++ libavutil/error.h libavutil/avutil.h libavutil/mathematics.h \
++ libavutil/rational.h libavutil/intfloat_readwrite.h libavutil/log.h \
++ libavutil/pixfmt.h libavutil/avconfig.h \
++ libavcodec/loongson2/../simple_idct.h libavcodec/loongson2/../dsputil.h \
++ libavcodec/loongson2/../mpegvideo.h libavcodec/loongson2/../get_bits.h \
++ libavutil/bswap.h libavutil/common.h libavutil/log.h \
++ libavcodec/loongson2/../mathops.h libavcodec/loongson2/../mips/mathops.h \
++ libavcodec/loongson2/../put_bits.h libavcodec/loongson2/../ratecontrol.h \
++ libavcodec/loongson2/../eval.h libavcodec/loongson2/../parser.h \
++ libavcodec/loongson2/../avcodec.h libavcodec/loongson2/../mpeg12data.h \
++ libavutil/rational.h libavcodec/loongson2/../rl.h
+diff --git a/libavcodec/loongson2/dsputil_loongson2.h b/libavcodec/loongson2/dsputil_loongson2.h
+new file mode 100644
+index 0000000..87c7bd9
+--- /dev/null
++++ b/libavcodec/loongson2/dsputil_loongson2.h
+@@ -0,0 +1,3 @@
++#include "libavcodec/dsputil.h"
++
++void dsputil_init_pix_loongson2(DSPContext* c, AVCodecContext *avctx);
+diff --git a/libavcodec/loongson2/dsputil_loongson2.o b/libavcodec/loongson2/dsputil_loongson2.o
+new file mode 100644
+index 0000000..fca0b55
+Binary files /dev/null and b/libavcodec/loongson2/dsputil_loongson2.o differ
+diff --git a/libavcodec/loongson2/idct_loongson2.c b/libavcodec/loongson2/idct_loongson2.c
+new file mode 100644
+index 0000000..539cab5
+--- /dev/null
++++ b/libavcodec/loongson2/idct_loongson2.c
+@@ -0,0 +1,336 @@
++/*
++ * Copyright (C) 2000-2003 Michel Lespinasse <walken@zoy.org>
++ * Copyright (C) 1999-2000 Aaron Holtzman <aholtzma@ess.engr.uvic.ca>
++ *
++ * Copyright (c) 2007-2010 comcat <jiankemeng@gmail.com>.
++ *
++ * Optimized for Loongson2 CPUs by comcat <jiankemeng@gmail.com>
++ *
++ * Based on i386
++ */
++
++#include "libavutil/common.h"
++#include "dsputil_loongson2.h"
++
++
++#define ATTR_ALIGN(align) __attribute__ ((__aligned__ (align)))
++
++
++#define ROW_SHIFT 11
++#define COL_SHIFT 6
++
++#define round(bias) ((int)(((bias)+0.5) * (1<<ROW_SHIFT)))
++#define rounder(bias) {round (bias), round (bias)}
++
++
++
++#define loongson2_table(c1,c2,c3,c4,c5,c6,c7) { c4,c2,-c4,-c2, \
++ c4,c6,c4,c6, \
++ c1,c3,-c1,-c5,\
++ c5,c7,c3,-c7, \
++ c4,-c6,c4,-c6, \
++ -c4,c2,c4,-c2, \
++ c5,-c1,c3,-c1, \
++ c7,c3,c7,-c5 }
++
++
++static inline void loongson2_row_head(int16_t * const row, const int offset,
++ const int16_t * const table)
++{
++ __asm__ volatile(
++// ".set\tmips3\n"
++ ".set noreorder\n"
++ "ldc1 $f6,%0\n"
++ "ldc1 $f14,%1\n"
++ "ldc1 $f2,%2\n"
++ "ldc1 $f8,%3\n"
++ "dli $12,%4\n"
++ "dmtc1 $12,$f16\n"
++ "mov.d $f4,$f6\n"
++ "mov.d $f10,$f14\n"
++ "pmaddhw $f2,$f2,$f4\n"
++ "pshufh $f6,$f6,$f16\n"
++ ".set reorder\n"
++// ".set\tmips0\n"
++ :
++ :"m"(*(row+offset)),"m"(*(row+offset+4)),"m"(*table),"m"(*(table+4)),"i"(0x4e)
++ :"$f2","$f4","$f6","$f8","$f10","$f14","$f16","$12"
++ );
++}
++
++
++static inline void loongson2_row(const int16_t * const table,
++ const int32_t * const rounder)
++{
++ __asm__ volatile (
++// ".set\tmips3\n"
++ ".set\tnoreorder\n"
++ "ldc1 $f0,%0\n"
++ "pmaddhw $f8,$f8,$f6\n"
++ "ldc1 $f16,%1\n"
++ "dli $13,%8\n"
++ "ldc1 $f20,%2\n"
++ "pmaddhw $f0,$f0,$f14\n"
++ "ldc1 $f22,%3\n"
++ "pmaddhw $f4,$f4,$f16\n"
++ "paddw $f2,$f2,$f22\n"
++ "ldc1 $f22,%4\n"
++ "dmtc1 $13,$f16\n"
++ "paddw $f2,$f2,$f8\n"
++ "pmaddhw $f14,$f14,$f22\n"
++ "mov.d $f8,$f2\n"
++ "pshufh $f10,$f10,$f16\n"
++ "ldc1 $f22,%3\n"
++ "pmaddhw $f20,$f20,$f10\n"
++ "ldc1 $f16,%5\n"
++ "paddw $f4,$f4,$f22\n"
++ "paddw $f0,$f0,$f20\n"
++ "dli $12,%6\n"
++ "pmaddhw $f6,$f6,$f16\n"
++ "psubw $f2,$f2,$f0\n"
++ "ldc1 $f16,%7\n"
++ "paddw $f0,$f0,$f8\n"
++ "paddw $f4,$f4,$f6\n"
++ "pmaddhw $f10,$f10,$f16\n"
++ "mov.d $f8,$f4\n"
++ "dmtc1 $12,$f16\n"
++ "paddw $f14,$f14,$f10\n"
++ "psraw $f2,$f2,$f16\n"
++ "psraw $f0,$f0,$f16\n"
++ "paddw $f4,$f4,$f14\n"
++ "psubw $f8,$f8,$f14\n"
++ ".set\treorder\n"
++// ".set\tmips0\n"
++ :
++ :"m"(*(table+8)),"m"(*(table+16)),"m"(*(table+12)),"m"(*rounder),"m"(*(table+24)),"m"(*(table+20)),"i"(ROW_SHIFT),"m"(*(table+16)),"i"(0x4e)
++ :"$f0","$f2","$f4","$f6","$f8","$f10","$f14","$f16","$f20","$f22","$12","$13","memory"
++ );
++}
++
++static inline void loongson2_row_tail(int16_t * const row, const int store)
++{
++ __asm__ volatile (
++// ".set\tmips3\n"
++ ".set\tnoreorder\n"
++ "dli $12,%2\n"
++ "dmtc1 $12,$f16\n"
++ "psraw $f4,$f4,$f16\n"
++ "psraw $f8,$f8,$f16\n"
++ "packsswh $f0,$f0,$f4\n"
++ "packsswh $f8,$f8,$f2\n"
++ "sdc1 $f0,%0\n"
++ "dli $13,%3\n"
++ "dmtc1 $13,$f22\n"
++ "pshufh $f8,$f8,$f22\n"
++ "sdc1 $f8,%1\n"
++ ".set\treorder\n"
++// ".set\tmips0\n"
++ :"=m"(*(row+store)),"=m"(*(row+store+4))
++ :"i"(ROW_SHIFT),"i"(0xb1)
++ :"$f0","$f2","$f4","$f6","$f8","$f16","$f22","$12","$13","memory"
++ );
++}
++
++static inline void loongson2_row_mid(int16_t * const row, const int store,
++ const int offset,
++ const int16_t * const table)
++{
++ __asm__ volatile (
++// ".set\tmips3\n"
++ ".set\tnoreorder\n"
++ "ldc1 $f6,%2\n"
++ "dli $12,%3\n"
++ "dmtc1 $12,$f16\n"
++ "psraw $f4,$f4,$f16\n"
++ "ldc1 $f14,%4\n"
++ "psraw $f8,$f8,$f16\n"
++ "packsswh $f0,$f0,$f4\n"
++ "mov.d $f10,$f14\n"
++ "packsswh $f8,$f8,$f2\n"
++ "mov.d $f4,$f6\n"
++ "sdc1 $f0,%0\n"
++ "dli $13,%5\n"
++ "dmtc1 $13,$f22\n"
++ "pshufh $f8,$f8,$f22\n"
++ "ldc1 $f2,%6\n"
++ "sdc1 $f8,%1\n"
++ "pmaddhw $f2,$f2,$f4\n"
++ "ldc1 $f8,%7\n"
++ "dli $12,%8\n"
++ "dmtc1 $12,$f16\n"
++ "pshufh $f6,$f6,$f16\n"
++ ".set\treorder\n"
++// ".set\tmips0\n"
++ :"=m"(*(row+store)),"=m"(*(row+store+4))
++ : "m"(*(row+offset)),"i"(ROW_SHIFT),"m"(*(row+offset+4)),"i"(0xb1),"m"(*table),"m"(*(table+4)),"i"(0x4e)
++ :"$f0","$f2","$f4","$f6","$f8","$f10","$14","$f16","$f22","$12","$13","memory"
++ );
++}
++
++static inline void idct_col(int16_t * const col, const int offset)
++{
++#define T1 13036
++#define T2 27146
++#define T3 43790
++#define C4 23170
++ static const short _T1[] ATTR_ALIGN(8) = {T1,T1,T1,T1};
++ static const short _T2[] ATTR_ALIGN(8) = {T2,T2,T2,T2};
++ static const short _T3[] ATTR_ALIGN(8) = {T3,T3,T3,T3};
++ static const short _C4[] ATTR_ALIGN(8) = {C4,C4,C4,C4};
++
++ __asm__ volatile (
++// ".set\tmips3\n"
++ ".set\tnoreorder\n"
++ "ldc1 $f4,%8\n"
++ "ldc1 $f0,%9\n"
++ "mov.d $f6,$f4\n"
++ "ldc1 $f8,%10\n"
++ "pmulhh $f4,$f4,$f0\n"
++ "ldc1 $f14,%11\n"
++ "pmulhh $f6,$f6,$f8\n"
++ "ldc1 $f10,%12\n"
++ "mov.d $f20,$f14\n"
++ "ldc1 $f2,%13\n"
++ "psubsh $f4,$f4,$f8\n"
++ "ldc1 $f8,%14\n"
++ "pmulhh $f14,$f14,$f2\n"
++ "paddsh $f0,$f0,$f6\n"
++ "pmulhh $f20,$f20,$f10\n"
++ "mov.d $f6,$f8\n"
++ "paddsh $f14,$f14,$f2\n"
++ "ldc1 $f16,%15\n"
++ "pmulhh $f8,$f8,$f16\n"
++ "paddsh $f20,$f20,$f10\n"
++ "psubsh $f14,$f14,$f10\n"
++ "paddsh $f20,$f20,$f2\n"
++ "ldc1 $f2,%16\n"
++ "mov.d $f10,$f4\n"
++ "pmulhh $f6,$f6,$f2\n"
++ "psubsh $f4,$f4,$f14\n"
++ "psubsh $f8,$f8,$f2\n"
++ "paddsh $f14,$f14,$f10\n"
++ "sdc1 $f4,%0\n"
++ "mov.d $f10,$f0\n"
++ "ldc1 $f22,%15\n"
++ "paddsh $f6,$f6,$f22\n"
++ "paddsh $f10,$f10,$f20\n"
++ "psubsh $f0,$f0,$f20\n"
++ "mov.d $f20,$f0\n"
++ "ldc1 $f2,%17\n"
++ "paddsh $f0,$f0,$f14\n"
++ "ldc1 $f4,%18\n"
++ "psubsh $f20,$f20,$f14\n"
++ "sdc1 $f10,%1\n"
++ "pmulhh $f0,$f0,$f4\n"
++ "mov.d $f10,$f8\n"
++ "pmulhh $f20,$f20,$f4\n"
++ "ldc1 $f14,%19\n"
++ "mov.d $f4,$f2\n"
++ "psubsh $f2,$f2,$f14\n"
++ "paddsh $f4,$f4,$f14\n"
++ "paddsh $f8,$f8,$f2\n"
++ "mov.d $f14,$f4\n"
++ "psubsh $f2,$f2,$f10\n"
++ "paddsh $f14,$f14,$f6\n"
++ "paddsh $f0,$f0,$f0\n"
++ "psubsh $f4,$f4,$f6\n"
++ "paddsh $f20,$f20,$f20\n"
++ "mov.d $f6,$f2\n"
++ "mov.d $f10,$f8\n"
++ "paddsh $f2,$f2,$f20\n"
++ "dli $12,%20\n"
++ "dmtc1 $12,$f16\n"
++ "psrah $f2,$f2,$f16\n"
++ "paddsh $f8,$f8,$f0\n"
++ "psrah $f8,$f8,$f16\n"
++ "psubsh $f10,$f10,$f0\n"
++ "ldc1 $f0,%12\n"
++ "psubsh $f6,$f6,$f20\n"
++ "psrah $f10,$f10,$f16\n"
++ "mov.d $f20,$f14\n"
++ "sdc1 $f8,%2\n"
++ "psrah $f6,$f6,$f16\n"
++ "sdc1 $f2,%3\n"
++ "paddsh $f14,$f14,$f0\n"
++ "ldc1 $f8,%13\n"
++ "psubsh $f20,$f20,$f0\n"
++ "psrah $f14,$f14,$f16\n"
++ "mov.d $f2,$f4\n"
++ "sdc1 $f6,%1\n"
++ "psubsh $f2,$f2,$f8\n"
++ "psrah $f20,$f20,$f16\n"
++ "paddsh $f8,$f8,$f4\n"
++ "sdc1 $f14,%4\n"
++ "psrah $f2,$f2,$f16\n"
++ "sdc1 $f10,%5\n"
++ "psrah $f8,$f8,$f16\n"
++ "sdc1 $f20,%6\n"
++ "sdc1 $f2,%7\n"
++ "sdc1 $f8,%0\n"
++ ".set\treorder\n"
++// ".set\tmips0\n"
++ :"=m"(*(col+offset+3*8)),"=m"(*(col+offset+5*8)),"=m"(*(col+offset+1*8)),"=m"(*(col+offset+2*8)),"=m"(*(col+offset+0*8)),"=m"(*(col+offset+6*8)),"=m"(*(col+offset+7*8)),"=m"(*(col+offset+4*8))
++ :"m"(*_T1),"m"(*(col+offset+1*8)),"m"(*(col+offset+7*8)),"m"(*_T3),"m"(*(col+offset+5*8)),"m"(*(col+offset+3*8)),"m"(*_T2),"m"(*(col+offset+2*8)),"m"(*(col+offset+6*8)),"m"(*(col+offset+0*8)),"m"(*_C4),"m"(*(col+offset+4*8)),"i"(COL_SHIFT)
++ :"$f0","$f2","$f4","$f6","$f8","$f10","$14","$f16","$20","$f22","$12","memory"
++ );
++}
++
++static const int32_t rounder0[] ATTR_ALIGN(8) =
++ rounder ((1 << (COL_SHIFT - 1)) - 0.5);
++static const int32_t rounder4[] ATTR_ALIGN(8) = rounder (0);
++static const int32_t rounder1[] ATTR_ALIGN(8) =
++ rounder (1.25683487303); /* C1*(C1/C4+C1+C7)/2 */
++static const int32_t rounder7[] ATTR_ALIGN(8) =
++ rounder (-0.25); /* C1*(C7/C4+C7-C1)/2 */
++static const int32_t rounder2[] ATTR_ALIGN(8) =
++ rounder (0.60355339059); /* C2 * (C6+C2)/2 */
++static const int32_t rounder6[] ATTR_ALIGN(8) =
++ rounder (-0.25); /* C2 * (C6-C2)/2 */
++static const int32_t rounder3[] ATTR_ALIGN(8) =
++ rounder (0.087788325588); /* C3*(-C3/C4+C3+C5)/2 */
++static const int32_t rounder5[] ATTR_ALIGN(8) =
++ rounder (-0.441341716183); /* C3*(-C5/C4+C5-C3)/2 */
++
++
++#undef COL_SHIFT
++#undef ROW_SHIFT
++
++
++#define declare_idct(idct,table,idct_row_head,idct_row,idct_row_tail,idct_row_mid) \
++inline void idct (int16_t * const block) \
++{ \
++ static const int16_t table04[] ATTR_ALIGN(16) = \
++ table (22725, 21407, 19266, 16384, 12873, 8867, 4520); \
++ static const int16_t table17[] ATTR_ALIGN(16) = \
++ table (31521, 29692, 26722, 22725, 17855, 12299, 6270); \
++ static const int16_t table26[] ATTR_ALIGN(16) = \
++ table (29692, 27969, 25172, 21407, 16819, 11585, 5906); \
++ static const int16_t table35[] ATTR_ALIGN(16) = \
++ table (26722, 25172, 22654, 19266, 15137, 10426, 5315); \
++ \
++ idct_row_head (block, 0*8, table04); \
++ idct_row (table04, rounder0); \
++ idct_row_mid (block, 0*8, 4*8, table04); \
++ idct_row (table04, rounder4); \
++ idct_row_mid (block, 4*8, 1*8, table17); \
++ idct_row (table17, rounder1); \
++ idct_row_mid (block, 1*8, 7*8, table17); \
++ idct_row (table17, rounder7); \
++ idct_row_mid (block, 7*8, 2*8, table26); \
++ idct_row (table26, rounder2); \
++ idct_row_mid (block, 2*8, 6*8, table26); \
++ idct_row (table26, rounder6); \
++ idct_row_mid (block, 6*8, 3*8, table35); \
++ idct_row (table35, rounder3); \
++ idct_row_mid (block, 3*8, 5*8, table35); \
++ idct_row (table35, rounder5); \
++ idct_row_tail (block, 5*8); \
++ \
++ idct_col (block, 0); \
++ idct_col (block, 4); \
++}
++
++void ff_loongson2_idct(DCTELEM *block);
++
++declare_idct (ff_loongson2_idct, loongson2_table,
++ loongson2_row_head, loongson2_row, loongson2_row_tail, loongson2_row_mid)
+diff --git a/libavcodec/loongson2/idct_loongson2_xvid.c b/libavcodec/loongson2/idct_loongson2_xvid.c
+new file mode 100644
+index 0000000..4a1ee1e
+--- /dev/null
++++ b/libavcodec/loongson2/idct_loongson2_xvid.c
+@@ -0,0 +1,301 @@
++/*
++ * XVID MPEG-4 VIDEO CODEC
++ *
++ * Copyright(C) 2006-2010 comcat <jiankemeng@gmail.com>
++ *
++ * Optimized for Loongson2 CPUs by comcat <jiankemeng@gmail.com>
++ *
++ * Based on i386
++ *
++ */
++
++
++#include <inttypes.h>
++#include "../avcodec.h"
++
++void ff_idct_xvid_loongson2(short *block);
++
++//=============================================================================
++// Macros and other preprocessor constants
++//=============================================================================
++
++#define BITS_INV_ACC 5 // 4 or 5 for IEEE
++#define SHIFT_INV_ROW (16 - BITS_INV_ACC) //11
++#define SHIFT_INV_COL (1 + BITS_INV_ACC) //6
++#define RND_INV_ROW (1024 * (6 - BITS_INV_ACC))
++#define RND_INV_COL (16 * (BITS_INV_ACC - 3))
++#define RND_INV_CORR (RND_INV_COL - 1)
++
++#define BITS_FRW_ACC 3 // 2 or 3 for accuracy
++#define SHIFT_FRW_COL BITS_FRW_ACC
++#define SHIFT_FRW_ROW (BITS_FRW_ACC + 17)
++#define RND_FRW_ROW (262144*(BITS_FRW_ACC - 1))
++
++
++//-----------------------------------------------------------------------------
++// Various memory constants (trigonometric values or rounding values)
++//-----------------------------------------------------------------------------
++
++static const int16_t tg_1_16[4*4] attribute_used __attribute__ ((aligned(8))) = {
++ 13036,13036,13036,13036, // tg * (2<<16) + 0.5
++ 27146,27146,27146,27146, // tg * (2<<16) + 0.5
++ -21746,-21746,-21746,-21746, // tg * (2<<16) + 0.5
++ 23170,23170,23170,23170}; // cos * (2<<15) + 0.5
++
++static const int32_t rounder_0[2*8] attribute_used __attribute__ ((aligned(8))) = {
++ 65536,65536,
++ 3597,3597,
++ 2260,2260,
++ 1203,1203,
++ 0,0,
++ 120,120,
++ 512,512,
++ 512,512};
++
++
++// Table for rows 0,4 - constants are multiplied by cos_4_16
++static const int16_t tab_i_04_mmx[32*4] attribute_used __attribute__ ((aligned(8))) = {
++ 16384,16384,16384,-16384, // movq-> w06 w04 w02 w00
++ 21407,8867,8867,-21407, // w07 w05 w03 w01
++ 16384,-16384,16384,16384, // w14 w12 w10 w08
++ -8867,21407,-21407,-8867, // w15 w13 w11 w09
++ 22725,12873,19266,-22725, // w22 w20 w18 w16
++ 19266,4520,-4520,-12873, // w23 w21 w19 w17
++ 12873,4520,4520,19266, // w30 w28 w26 w24
++ -22725,19266,-12873,-22725, // w31 w29 w27 w25
++// Table for rows 1,7 - constants are multiplied by cos_1_16
++ 22725,22725,22725,-22725, // movq-> w06 w04 w02 w00
++ 29692,12299,12299,-29692, // w07 w05 w03 w01
++ 22725,-22725,22725,22725, // w14 w12 w10 w08
++ -12299,29692,-29692,-12299, // w15 w13 w11 w09
++ 31521,17855,26722,-31521, // w22 w20 w18 w16
++ 26722,6270,-6270,-17855, // w23 w21 w19 w17
++ 17855,6270,6270,26722, // w30 w28 w26 w24
++ -31521,26722,-17855,-31521, // w31 w29 w27 w25
++// Table for rows 2,6 - constants are multiplied by cos_2_16
++ 21407,21407,21407,-21407, // movq-> w06 w04 w02 w00
++ 27969,11585,11585,-27969, // w07 w05 w03 w01
++ 21407,-21407,21407,21407, // w14 w12 w10 w08
++ -11585,27969,-27969,-11585, // w15 w13 w11 w09
++ 29692,16819,25172,-29692, // w22 w20 w18 w16
++ 25172,5906,-5906,-16819, // w23 w21 w19 w17
++ 16819,5906,5906,25172, // w30 w28 w26 w24
++ -29692,25172,-16819,-29692, // w31 w29 w27 w25
++// Table for rows 3,5 - constants are multiplied by cos_3_16
++ 19266,19266,19266,-19266, // movq-> w06 w04 w02 w00
++ 25172,10426,10426,-25172, // w07 w05 w03 w01
++ 19266,-19266,19266,19266, // w14 w12 w10 w08
++ -10426,25172,-25172,-10426, // w15 w13 w11 w09
++ 26722,15137,22654,-26722, // w22 w20 w18 w16
++ 22654,5315,-5315,-15137, // w23 w21 w19 w17
++ 15137,5315,5315,22654, // w30 w28 w26 w24
++ -26722,22654,-15137,-26722, // w31 w29 w27 w25
++};
++
++
++// %3 for rows 0,4 - constants are multiplied by cos_4_16
++static const int16_t tab_i_04_xmm[32*4] attribute_used __attribute__ ((aligned(8))) = {
++ 16384,21407,16384,8867, // movq-> w05 w04 w01 w00
++ 16384,8867,-16384,-21407, // w07 w06 w03 w02
++ 16384,-8867,16384,-21407, // w13 w12 w09 w08
++ -16384,21407,16384,-8867, // w15 w14 w11 w10
++ 22725,19266,19266,-4520, // w21 w20 w17 w16
++ 12873,4520,-22725,-12873, // w23 w22 w19 w18
++ 12873,-22725,4520,-12873, // w29 w28 w25 w24
++ 4520,19266,19266,-22725, // w31 w30 w27 w26
++// %3 for rows 1,7 - constants are multiplied by cos_1_16
++ 22725,29692,22725,12299, // movq-> w05 w04 w01 w00
++ 22725,12299,-22725,-29692, // w07 w06 w03 w02
++ 22725,-12299,22725,-29692, // w13 w12 w09 w08
++ -22725,29692,22725,-12299, // w15 w14 w11 w10
++ 31521,26722,26722,-6270, // w21 w20 w17 w16
++ 17855,6270,-31521,-17855, // w23 w22 w19 w18
++ 17855,-31521,6270,-17855, // w29 w28 w25 w24
++ 6270,26722,26722,-31521, // w31 w30 w27 w26
++// %3 for rows 2,6 - constants are multiplied by cos_2_16
++ 21407,27969,21407,11585, // movq-> w05 w04 w01 w00
++ 21407,11585,-21407,-27969, // w07 w06 w03 w02
++ 21407,-11585,21407,-27969, // w13 w12 w09 w08
++ -21407,27969,21407,-11585, // w15 w14 w11 w10
++ 29692,25172,25172,-5906, // w21 w20 w17 w16
++ 16819,5906,-29692,-16819, // w23 w22 w19 w18
++ 16819,-29692,5906,-16819, // w29 w28 w25 w24
++ 5906,25172,25172,-29692, // w31 w30 w27 w26
++// %3 for rows 3,5 - constants are multiplied by cos_3_16
++ 19266,25172,19266,10426, // movq-> w05 w04 w01 w00
++ 19266,10426,-19266,-25172, // w07 w06 w03 w02
++ 19266,-10426,19266,-25172, // w13 w12 w09 w08
++ -19266,25172,19266,-10426, // w15 w14 w11 w10
++ 26722,22654,22654,-5315, // w21 w20 w17 w16
++ 15137,5315,-26722,-15137, // w23 w22 w19 w18
++ 15137,-26722,5315,-15137, // w29 w28 w25 w24
++ 5315,22654,22654,-26722, // w31 w30 w27 w26
++};
++
++
++
++#define DCT_8_INV_ROW_LOONGSON2(A1,A2,A3,A4)\
++ "ldc1 $f0, " #A1 " \n\t"/* 0 ; x3 x2 x1 x0*/\
++ "ldc1 $f2, 8+" #A1 " \n\t"/* 1 ; x7 x6 x5 x4*/\
++ "mov.d $f4, $f0 \n\t"/* 2 ; x3 x2 x1 x0*/\
++ "ldc1 $f6, " #A3 " \n\t"/* 3 ; w05 w04 w01 w00*/\
++ "li $12, 0x88 \n\t"\
++ "dmtc1 $12, $f16 \n\t"\
++ "pshufh $f0, $f0, $f16 \n\t"/* x2 x0 x2 x0*/\
++ "ldc1 $f8, 8+" #A3 " \n\t"/* 4 ; w07 w06 w03 w02*/\
++ "mov.d $f10, $f2 \n\t"/* 5 ; x7 x6 x5 x4*/\
++ "pmaddhw $f6, $f6, $f0 \n\t"/* x2*w05+x0*w04 x2*w01+x0*w00*/\
++ "ldc1 $f12, 32+" #A3 " \n\t"/* 6 ; w21 w20 w17 w16*/\
++ "pshufh $f2, $f2, $f16 \n\t"/* x6 x4 x6 x4*/\
++ "pmaddhw $f8, $f8, $f2 \n\t"/* x6*w07+x4*w06 x6*w03+x4*w02*/\
++ "li $12, 0xdd \n\t"\
++ "dmtc1 $12, $f16 \n\t"\
++ "ldc1 $f14, 40+" #A3 " \n\t"/* 7 ; w23 w22 w19 w18*/\
++ "pshufh $f4, $f4, $f16 \n\t"/* x3 x1 x3 x1*/\
++ "pmaddhw $f12, $f12, $f4 \n\t"/* x3*w21+x1*w20 x3*w17+x1*w16*/\
++ "ldc1 $f18, " #A4 " \n\t" \
++ "ldc1 $f20, 16+" #A3 " \n\t" \
++ "ldc1 $f22, 24+" #A3 " \n\t" \
++ "ldc1 $f24, 48+" #A3 " \n\t" \
++ "ldc1 $f26, 56+" #A3 " \n\t" \
++ "pshufh $f10, $f10, $f16 \n\t"/* x7 x5 x7 x5*/\
++ "pmaddhw $f14, $f14, $f10 \n\t"/* x7*w23+x5*w22 x7*w19+x5*w18*/\
++ "paddw $f6, $f6, $f18 \n\t"/* +%4*/\
++ "pmaddhw $f0, $f0, $f20 \n\t"/* x2*w13+x0*w12 x2*w09+x0*w08*/\
++ "paddw $f6, $f6, $f8 \n\t"/* 4 ; a1=sum(even1) a0=sum(even0)*/\
++ "pmaddhw $f2, $f2, $f22 \n\t"/* x6*w15+x4*w14 x6*w11+x4*w10*/\
++ "mov.d $f8, $f6 \n\t"/* 4 ; a1 a0*/\
++ "li $12, 11 \n\t"\
++ "dmtc1 $12, $f16 \n\t"\
++ "pmaddhw $f4, $f4, $f24 \n\t"/* x3*w29+x1*w28 x3*w25+x1*w24*/\
++ "paddw $f12, $f12, $f14 \n\t"/* 7 ; b1=sum(odd1) b0=sum(odd0)*/\
++ "pmaddhw $f10, $f10, $f26 \n\t"/* x7*w31+x5*w30 x7*w27+x5*w26*/\
++ "paddw $f6, $f6, $f12 \n\t"/* a1+b1 a0+b0*/\
++ "paddw $f0, $f0, $f18 \n\t"/* +%4*/\
++ "psraw $f6, $f6, $f16 \n\t"/* y1=a1+b1 y0=a0+b0*/\
++ "paddw $f0, $f0, $f2 \n\t"/* 1 ; a3=sum(even3) a2=sum(even2)*/\
++ "psubw $f8, $f8, $f12 \n\t"/* 6 ; a1-b1 a0-b0*/\
++ "mov.d $f14, $f0 \n\t"/* 7 ; a3 a2*/\
++ "paddw $f4, $f4, $f10 \n\t"/* 5 ; b3=sum(odd3) b2=sum(odd2)*/\
++ "paddw $f0, $f0, $f4 \n\t"/* a3+b3 a2+b2*/\
++ "psraw $f8, $f8, $f16 \n\t"/* y6=a1-b1 y7=a0-b0*/\
++ "psubw $f14, $f14, $f4 \n\t"/* 2 ; a3-b3 a2-b2*/\
++ "psraw $f0, $f0, $f16 \n\t"/* y3=a3+b3 y2=a2+b2*/\
++ "psraw $f14, $f14, $f16 \n\t"/* y4=a3-b3 y5=a2-b2*/\
++ "li $12, 0xb1 \n\t"\
++ "dmtc1 $12, $f20 \n\t"\
++ "packsswh $f6, $f6, $f0 \n\t"/* 0 ; y3 y2 y1 y0*/\
++ "packsswh $f14, $f14, $f8 \n\t"/* 4 ; y6 y7 y4 y5*/\
++ "sdc1 $f6, " #A2 " \n\t"/* 3 ; save y3 y2 y1 y0*/\
++ "pshufh $f14, $f14, $f20 \n\t"/* y7 y6 y5 y4*/\
++ "sdc1 $f14, 8 +" #A2 " \n\t"/* 7 ; save y7 y6 y5 y4*/\
++
++
++#define DCT_8_INV_COL(A1,A2)\
++ "ldc1 $f0, 2*8(%3) \n\t"/* */\
++ "ldc1 $f6, 16*3+" #A1 " \n\t"/* x3 */\
++ "mov.d $f2, $f0 \n\t"/* tg_3_16*/\
++ "ldc1 $f10, 16*5+" #A1 " \n\t"/* x5 */\
++ "pmulhh $f0, $f0, $f6 \n\t"/* x3*(tg_3_16-1)*/\
++ "ldc1 $f8, (%3) \n\t"\
++ "pmulhh $f2, $f2, $f10 \n\t"/* x5*(tg_3_16-1)*/\
++ "ldc1 $f14, 16*7+" #A1 " \n\t"/* x7 */\
++ "mov.d $f4, $f8 \n\t"/* tg_1_16*/\
++ "ldc1 $f12, 16*1+" #A1 " \n\t"/* x1 */\
++ "pmulhh $f8, $f8, $f14 \n\t"/* x7*tg_1_16*/\
++ "paddsh $f0, $f0, $f6 \n\t"/* x3*tg_3_16*/\
++ "pmulhh $f4, $f4, $f12 \n\t"/* x1*tg_1_16*/\
++ "paddsh $f2, $f2, $f6 \n\t"/* x3+x5*(tg_3_16-1)*/\
++ "psubsh $f0, $f0, $f10 \n\t"/* x3*tg_3_16-x5 = tm35*/\
++ "ldc1 $f6, 3*8(%3) \n\t"\
++ "paddsh $f2, $f2, $f10 \n\t"/* x3+x5*tg_3_16 = tp35*/\
++ "paddsh $f8, $f8, $f12 \n\t"/* x1+tg_1_16*x7 = tp17*/\
++ "psubsh $f4, $f4, $f14 \n\t"/* x1*tg_1_16-x7 = tm17*/\
++ "mov.d $f10, $f8 \n\t"/* tp17*/\
++ "mov.d $f12, $f4 \n\t"/* tm17*/\
++ "paddsh $f10, $f10, $f2 \n\t"/* tp17+tp35 = b0*/\
++ "psubsh $f12, $f12, $f0 \n\t"/* tm17-tm35 = b3*/\
++ "psubsh $f8, $f8, $f2 \n\t"/* tp17-tp35 = t1*/\
++ "paddsh $f4, $f4, $f0 \n\t"/* tm17+tm35 = t2*/\
++ "ldc1 $f14, 1*8(%3) \n\t"\
++ "mov.d $f2, $f8 \n\t"/* t1*/\
++ "sdc1 $f10, 3*16+" #A2 " \n\t"/* save b0*/\
++ "paddsh $f2, $f2, $f4 \n\t"/* t1+t2*/\
++ "sdc1 $f12, 5*16+" #A2 " \n\t"/* save b3*/\
++ "psubsh $f8, $f8, $f4 \n\t"/* t1-t2*/\
++ "ldc1 $f10, 2*16+" #A1 " \n\t"\
++ "mov.d $f0, $f14 \n\t"/* tg_2_16*/\
++ "ldc1 $f12, 6*16+" #A1 " \n\t"\
++ "pmulhh $f0, $f0, $f10 \n\t"/* x2*tg_2_16*/\
++ "pmulhh $f14, $f14, $f12 \n\t"/* x6*tg_2_16*/\
++ "pmulhh $f2, $f2, $f6 \n\t"/* ocos_4_16*(t1+t2) = b1/2*/\
++ "ldc1 $f4, 0*16+" #A1 " \n\t"\
++ "pmulhh $f8, $f8, $f6 \n\t"/* ocos_4_16*(t1-t2) = b2/2*/\
++ "psubsh $f0, $f0, $f12 \n\t"/* t2*tg_2_16-x6 = tm26*/\
++ "mov.d $f6, $f4 \n\t"/* x0*/\
++ "ldc1 $f12, 4*16+" #A1 " \n\t"\
++ "paddsh $f14, $f14, $f10 \n\t"/* x2+x6*tg_2_16 = tp26*/\
++ "paddsh $f4, $f4, $f12 \n\t"/* x0+x4 = tp04*/\
++ "psubsh $f6, $f6, $f12 \n\t"/* x0-x4 = tm04*/\
++ "mov.d $f10, $f4 \n\t"/* tp04*/\
++ "mov.d $f12, $f6 \n\t"/* tm04*/\
++ "psubsh $f4, $f4, $f14 \n\t"/* tp04-tp26 = a3*/\
++ "paddsh $f6, $f6, $f0 \n\t"/* tm04+tm26 = a1*/\
++ "paddsh $f2, $f2, $f2 \n\t"/* b1*/\
++ "paddsh $f8, $f8, $f8 \n\t"/* b2*/\
++ "paddsh $f10, $f10, $f14 \n\t"/* tp04+tp26 = a0*/\
++ "psubsh $f12, $f12, $f0 \n\t"/* tm04-tm26 = a2*/\
++ "li $12, 6 \n\t"\
++ "dmtc1 $12, $f18 \n\t"\
++ "mov.d $f14, $f6 \n\t"/* a1*/\
++ "mov.d $f0, $f12 \n\t"/* a2*/\
++ "paddsh $f6, $f6, $f2 \n\t"/* a1+b1*/\
++ "paddsh $f12, $f12, $f8 \n\t"/* a2+b2*/\
++ "psrah $f6, $f6, $f18 \n\t"/* dst1*/\
++ "psubsh $f14, $f14, $f2 \n\t"/* a1-b1*/\
++ "psrah $f12, $f12, $f18 \n\t"/* dst2*/\
++ "psubsh $f0, $f0, $f8 \n\t"/* a2-b2*/\
++ "ldc1 $f2, 3*16+" #A2 " \n\t"/* load b0*/\
++ "psrah $f14, $f14, $f18 \n\t"/* dst6*/\
++ "mov.d $f8, $f10 \n\t"/* a0*/\
++ "psrah $f0, $f0, $f18 \n\t"/* dst5*/\
++ "sdc1 $f6, 1*16+" #A2 " \n\t"\
++ "paddsh $f10, $f10, $f2 \n\t"/* a0+b0*/\
++ "sdc1 $f12, 2*16+" #A2 " \n\t"\
++ "psubsh $f8, $f8, $f2 \n\t"/* a0-b0*/\
++ "ldc1 $f6, 5*16+" #A2 " \n\t"/* load b3*/\
++ "psrah $f10, $f10, $f18 \n\t"/* dst0*/\
++ "mov.d $f12, $f4 \n\t"/* a3*/\
++ "psrah $f8, $f8, $f18 \n\t"/* dst7*/\
++ "sdc1 $f0, 5*16+" #A2 " \n\t"\
++ "paddsh $f4, $f4, $f6 \n\t"/* a3+b3*/\
++ "sdc1 $f14, 6*16+" #A2 " \n\t"\
++ "psubsh $f12, $f12, $f6 \n\t"/* a3-b3*/\
++ "sdc1 $f10, 0*16+" #A2 " \n\t"\
++ "psrah $f4, $f4, $f18 \n\t"/* dst3*/\
++ "sdc1 $f8, 7*16+" #A2 " \n\t"\
++ "psrah $f12, $f12, $f18 \n\t"/* dst4*/\
++ "sdc1 $f4, 3*16+" #A2 " \n\t"\
++ "sdc1 $f12, 4*16+" #A2 " \n\t"
++
++
++
++void ff_idct_xvid_loongson2(short *block){
++ __asm__ volatile(
++ //# Process each row
++ DCT_8_INV_ROW_LOONGSON2(0*16(%0), 0*16(%0), 64*0(%2), 8*0(%1))
++ DCT_8_INV_ROW_LOONGSON2(1*16(%0), 1*16(%0), 64*1(%2), 8*1(%1))
++ DCT_8_INV_ROW_LOONGSON2(2*16(%0), 2*16(%0), 64*2(%2), 8*2(%1))
++ DCT_8_INV_ROW_LOONGSON2(3*16(%0), 3*16(%0), 64*3(%2), 8*3(%1))
++ DCT_8_INV_ROW_LOONGSON2(4*16(%0), 4*16(%0), 64*0(%2), 8*4(%1))
++ DCT_8_INV_ROW_LOONGSON2(5*16(%0), 5*16(%0), 64*3(%2), 8*5(%1))
++ DCT_8_INV_ROW_LOONGSON2(6*16(%0), 6*16(%0), 64*2(%2), 8*6(%1))
++ DCT_8_INV_ROW_LOONGSON2(7*16(%0), 7*16(%0), 64*1(%2), 8*7(%1))
++
++ //# Process the columns (4 at a time)
++ DCT_8_INV_COL(0(%0), 0(%0))
++ DCT_8_INV_COL(8(%0), 8(%0))
++ :
++ : "r"(block), "r"(rounder_0), "r"(tab_i_04_xmm), "r"(tg_1_16)
++ :"$f0","$f2","$f4","$f6","$f8","$f10","$f12","$f14","$f18","$f16","$20","$22","$24","$26");
++}
++
+diff --git a/libavcodec/loongson2/motion_est_loongson2.c b/libavcodec/loongson2/motion_est_loongson2.c
+new file mode 100644
+index 0000000..bb67290
+--- /dev/null
++++ b/libavcodec/loongson2/motion_est_loongson2.c
+@@ -0,0 +1,365 @@
++/*
++ * Loongson2E MMI optimized motion estimation
++ * Copyright (c) 2007 comcat <jiankemeng@gmail.com>.
++ *
++ * based on Michael Niedermayer <michaelni@gmx.at>
++ *
++ */
++
++#include "dsputil_loongson2.h"
++#include "../avcodec.h"
++
++static const __attribute__ ((aligned(8))) uint64_t round_tab[3]={
++ 0x0000000000000000ULL,
++ 0x0001000100010001ULL,
++ 0x0002000200020002ULL,
++};
++
++static attribute_used __attribute__ ((aligned(8))) uint64_t bone= 0x0101010101010101LL;
++
++static inline void sad8_1_loongson2(uint8_t *blk1, uint8_t *blk2, int stride, int h)
++{
++ long len= -(stride*h);
++ __asm__ volatile(
++
++// ".set mips3 \n\t"
++ ".align 4 \n\t"
++
++ "move $8, %0 \n\t"
++ "move $21, %1 \n\t"
++ "move $22, %2 \n\t"
++ "move $23, %3 \n\t"
++
++ "1: \n\t"
++
++ "add $9, $8, $21 \n\t"
++ "add $10, $8, $22 \n\t"
++
++ "uld $11, ($9) \n\t"
++ "dmtc1 $11, $f0 \n\t"
++
++ "uld $12, ($9) \n\t"
++ "dmtc1 $12, $f4 \n\t"
++
++ "pasubub $f10, $f0, $f4 \n\t"
++ "biadd $f0, $f10 \n\t"
++
++ "add $8, $8, $23 \n\t"
++
++ "add $9, $8, $21 \n\t"
++ "add $10, $8, $22 \n\t"
++
++ "uld $11, ($9) \n\t"
++ "dmtc1 $11, $f2 \n\t"
++
++ "uld $12, ($10) \n\t"
++ "dmtc1 $12, $f6 \n\t"
++
++ "pasubub $f16, $f2, $f6 \n\t"
++ "biadd $f6, $f16 \n\t"
++
++ "paddh $f0, $f0, $f6 \n\t"
++
++ "paddh $f12, $f12, $f0 \n\t"
++
++ "bltz $8, 1b \n\t"
++ "add $8, $8, $23 \n\t"
++
++ : "+r" (len)
++ : "r" (blk1 - len), "r" (blk2 - len), "r" ((long)stride)
++ : "$8", "$9", "$10", "$21", "$22", "$23", "$f0", "$f2", "$f4", "$f6", "$f10", "$f16"
++ );
++}
++
++static inline void sad8_2_loongson2(uint8_t *blk1a, uint8_t *blk1b, uint8_t *blk2, int stride, int h)
++{
++ long len= -(stride*h);
++ __asm__ volatile(
++
++// ".set mips3 \n\t"
++ ".align 4 \n\t"
++
++ "move $8, %0 \n\t"
++
++ "1: \n\t"
++ "add $9, $8, %1 \n\t"
++ "add $10, $8, %2 \n\t"
++ "add $11, $8, %3 \n\t"
++
++ "uld $12, ($9) \n\t"
++ "dmtc1 $12, $f0 \n\t"
++ "uld $13, ($10) \n\t"
++ "dmtc1 $13, $f4 \n\t"
++
++ "pavgb $f0, $f0, $f4 \n\t"
++
++ "uld $12, ($11) \n\t"
++ "dmtc1 $12, $f4 \n\t"
++
++ "pasubub $f10, $f0, $f4 \n\t"
++ "biadd $f0, $f10 \n\t"
++
++ "add $8, $8, %4 \n\t"
++
++ "add $9, $8, %1 \n\t"
++ "add $10, $8, %2 \n\t"
++ "add $11, $8, %3 \n\t"
++
++ "uld $12, ($9) \n\t"
++ "dmtc1 $12, $f2 \n\t"
++ "uld $13, ($10) \n\t"
++ "dmtc1 $13, $f6 \n\t"
++
++ "pavgb $f6, $f6, $f2 \n\t"
++
++ "uld $12, ($11) \n\t"
++ "dmtc1 $12, $f2 \n\t"
++
++ "pasubub $f16, $f6, $f2 \n\t"
++ "biadd $f6, $f16 \n\t"
++
++ "paddh $f0, $f0, $f6 \n\t"
++ "paddh $f12, $f12, $f0 \n\t"
++
++ "bltz $8, 1b \n\t"
++ "add $8, $8, %4 \n\t"
++ : "+r" (len)
++ : "r" (blk1a - len), "r" (blk1b -len), "r" (blk2 - len), "r" ((long)stride)
++ : "$8", "$9", "$10", "$11", "$12", "$13", "$f0", "$f2", "$f4", "$f6", "$f10", "$f16"
++ );
++}
++
++static inline void sad8_4_loongson2(uint8_t *blk1, uint8_t *blk2, int stride, int h)
++{
++ long len= -(stride*h);
++ __asm__ volatile(
++
++
++// ".set mips3 \n\t"
++ ".align 4 \n\t"
++
++ "ldc1 $f10, "MANGLE(bone)" \n\t"
++
++ "move $8, %0 \n\t"
++
++ "1: \n\t"
++ "add $9, $8, %1 \n\t"
++ "add $10, $8, %2 \n\t"
++ "add $11, $8, %3 \n\t"
++
++ "uld $12, ($9) \n\t"
++ "dmtc1 $12, $f0 \n\t"
++
++ "uld $13, ($10) \n\t"
++ "dmtc1 $13, $f4 \n\t"
++
++ "uld $12, 1($9) \n\t"
++ "dmtc1 $12, $f2 \n\t"
++
++ "uld $13, 1($10) \n\t"
++ "dmtc1 $13, $f6 \n\t"
++
++ "pavgb $f0, $f0, $f4 \n\t"
++ "pavgb $f6, $f6, $f2 \n\t"
++
++ "psubusb $f6, $f6, $f10 \n\t"
++ "pavgb $f0, $f0, $f6 \n\t"
++
++ "uld $13, 1($11) \n\t"
++ "dmtc1 $13, $f4 \n\t"
++
++ "pasubub $f16, $f0, $f4 \n\t"
++ "biadd $f0, $f16 \n\t"
++
++ "add $8, $8, %4 \n\t"
++
++ "add $9, $8, %1 \n\t"
++ "add $10, $8, %2 \n\t"
++ "add $11, $8, %3 \n\t"
++
++ "uld $12, ($9) \n\t"
++ "dmtc1 $12, $f2 \n\t"
++ "uld $13, ($10) \n\t"
++ "dmtc1 $12, $f6 \n\t"
++ "uld $12, 1($9) \n\t"
++ "dmtc1 $12, $f4 \n\t"
++ "uld $13, 1($10) \n\t"
++ "dmtc1 $12, $f8 \n\t"
++
++ "pavgb $f2, $f2, $f6 \n\t"
++ "pavgb $f4, $f4, $f8 \n\t"
++
++ "psubusb $f4, $f4, $f10 \n\t"
++ "pavgb $f4, $f4, $f2 \n\t"
++
++ "uld $13, ($11) \n\t"
++ "dmtc1 $13, $f2 \n\t"
++
++ "pasubub $f18, $f4, $f2 \n\t"
++ "biadd $f4, $f18 \n\t"
++
++ "paddh $f0, $f0, $f4 \n\t"
++ "paddh $f12, $f12, $f0 \n\t"
++
++ "bltz $8, 1b \n\t"
++ "add $8, $8, %4 \n\t"
++ : "+r" (len)
++ : "r" (blk1 - len), "r" (blk1 - len + stride), "r" (blk2 - len), "r" ((long)stride)
++ : "$8", "$9", "$10", "$11", "$12", "$13", "$f0", "$f2", "$f4", "$f6", "$f8", "$f10", "$f16", "$f18"
++ );
++}
++
++static inline int sum_loongson2(void)
++{
++ int ret;
++ __asm__ volatile(
++// ".set mips3 \n\t"
++
++ "dmfc1 %0, $f12 \n\t"
++ : "=r" (ret)
++ );
++ return ret;
++}
++
++
++static int sad8_loongson2(void *v, uint8_t *blk2, uint8_t *blk1, int stride, int h)
++{
++ assert(h==8);
++ __asm__ volatile(
++// ".set mips3 \n\t"
++ "xor $f14, $f14, $f14 \n\t"
++ "xor $f12, $f12, $f12 \n\t"
++ :
++ );
++
++ sad8_1_loongson2(blk1, blk2, stride, 8);
++
++ return sum_loongson2();
++}
++
++static int sad8_x2_loongson2(void *v, uint8_t *blk2, uint8_t *blk1, int stride, int h)
++{
++ assert(h==8);
++ __asm__ volatile(
++// ".set mips3 \n\t"
++ "xor $f14, $f14, $f14 \n\t"
++ "xor $f12, $f12, $f12 \n\t"
++
++ "ldc1 $f10, %0 \n\t"
++ :: "m"(round_tab[1])
++ );
++
++ sad8_2_loongson2(blk1, blk1+1, blk2, stride, 8);
++
++ return sum_loongson2();
++}
++
++static int sad8_y2_loongson2(void *v, uint8_t *blk2, uint8_t *blk1, int stride, int h)
++{
++ assert(h==8);
++ __asm__ volatile(
++// ".set mips3 \n\t"
++ "xor $f14, $f14, $f14 \n\t"
++ "xor $f12, $f12, $f12 \n\t"
++
++ "ldc1 $f10, %0 \n\t"
++ :: "m"(round_tab[1])
++ );
++
++ sad8_2_loongson2(blk1, blk1+stride, blk2, stride, 8);
++
++ return sum_loongson2();
++}
++
++static int sad8_xy2_loongson2(void *v, uint8_t *blk2, uint8_t *blk1, int stride, int h)
++{
++ assert(h==8);
++ __asm__ volatile(
++// ".set mips3 \n\t"
++ "xor $f14, $f14, $f14 \n\t"
++ "xor $f12, $f12, $f12 \n\t"
++ "ldc1 $f10, %0 \n\t"
++ :: "m"(round_tab[2])
++ );
++
++ sad8_4_loongson2(blk1, blk2, stride, 8);
++
++ return sum_loongson2();
++}
++
++static int sad16_loongson2(void *v, uint8_t *blk2, uint8_t *blk1, int stride, int h)
++{
++ __asm__ volatile(
++// ".set mips3 \n\t"
++ "xor $f14, $f14, $f14 \n\t"
++ "xor $f12, $f12, $f12 \n\t":);
++
++ sad8_1_loongson2(blk1 , blk2 , stride, h);
++ sad8_1_loongson2(blk1+8, blk2+8, stride, h);
++
++ return sum_loongson2();
++}
++
++static int sad16_x2_loongson2(void *v, uint8_t *blk2, uint8_t *blk1, int stride, int h)
++{
++ __asm__ volatile(
++// ".set mips3 \n\t"
++ "xor $f14, $f14, $f14 \n\t"
++ "xor $f12, $f12, $f12 \n\t"
++ "ldc1 $f10, %0 \n\t"
++ :: "m"(round_tab[1])
++ );
++
++ sad8_2_loongson2(blk1 , blk1+1, blk2 , stride, h);
++ sad8_2_loongson2(blk1+8, blk1+9, blk2+8, stride, h);
++
++ return sum_loongson2();
++}
++
++static int sad16_y2_loongson2(void *v, uint8_t *blk2, uint8_t *blk1, int stride, int h)
++{
++ __asm__ volatile(
++// ".set mips3 \n\t"
++ "xor $f14, $f14, $f14 \n\t"
++ "xor $f12, $f12, $f12 \n\t"
++ "ldc1 $f10, %0 \n\t"
++ :: "m"(round_tab[1])
++ );
++
++ sad8_2_loongson2(blk1 , blk1+stride, blk2 , stride, h);
++ sad8_2_loongson2(blk1+8, blk1+stride+8,blk2+8, stride, h);
++
++ return sum_loongson2();
++}
++
++static int sad16_xy2_loongson2(void *v, uint8_t *blk2, uint8_t *blk1, int stride, int h)
++{
++ __asm__ volatile(
++// ".set mips3 \n\t"
++ "xor $f14, $f14, $f14 \n\t"
++ "xor $f12, $f12, $f12 \n\t"
++ "ldc1 $f10, %0 \n\t"
++ :: "m"(round_tab[2])
++ );
++
++ sad8_4_loongson2(blk1 , blk2 , stride, h);
++ sad8_4_loongson2(blk1+8, blk2+8, stride, h);
++
++ return sum_loongson2();
++}
++
++
++void dsputil_init_pix_loongson2(DSPContext* c, AVCodecContext *avctx)
++{
++ c->pix_abs[0][0] = sad16_loongson2;
++ c->pix_abs[0][1] = sad16_x2_loongson2;
++ c->pix_abs[0][2] = sad16_y2_loongson2;
++ c->pix_abs[0][3] = sad16_xy2_loongson2;
++ c->pix_abs[1][0] = sad8_loongson2;
++ c->pix_abs[1][1] = sad8_x2_loongson2;
++ c->pix_abs[1][2] = sad8_y2_loongson2;
++ c->pix_abs[1][3] = sad8_xy2_loongson2;
++
++ c->sad[0]= sad16_loongson2;
++ c->sad[1]= sad8_loongson2;
++}
+diff --git a/libavcodec/loongson2/mpegvideo_loongson2.c b/libavcodec/loongson2/mpegvideo_loongson2.c
+new file mode 100644
+index 0000000..18d070a
+--- /dev/null
++++ b/libavcodec/loongson2/mpegvideo_loongson2.c
+@@ -0,0 +1,385 @@
++/*
++ * The simplest mpeg encoder (well, it was the simplest!)
++ * Copyright (c) 2007-2010 comcat <jiankemeng@gmail.com>.
++ *
++ * Optimized for Loongson2 CPUs by comcat <jiankemeng@gmail.com>
++ *
++ * Based on i386
++ */
++
++#include "dsputil_loongson2.h"
++#include "../mpegvideo.h"
++#include "../avcodec.h"
++
++extern uint8_t zigzag_direct_noperm[64];
++extern uint16_t inv_zigzag_direct16[64];
++
++static const unsigned long long int mm_wabs __attribute__ ((aligned(8))) = 0xffffffffffffffffULL;
++static const unsigned long long int mm_wone __attribute__ ((aligned(8))) = 0x0001000100010001ULL;
++
++
++static void dct_unquantize_h263_intra_loongson2(MpegEncContext *s,
++ DCTELEM *block, int n, int qscale)
++{
++ long level, qmul, qadd, nCoeffs;
++
++ qmul = qscale << 1;
++
++ assert(s->block_last_index[n]>=0 || s->h263_aic);
++ if (!s->h263_aic) {
++ if (n < 4)
++ level = block[0] * s->y_dc_scale;
++ else
++ level = block[0] * s->c_dc_scale;
++ qadd = (qscale - 1) | 1;
++ }else{
++ qadd = 0;
++ level= block[0];
++ }
++ if(s->ac_pred)
++ nCoeffs=63;
++ else
++ nCoeffs= s->inter_scantable.raster_end[ s->block_last_index[n] ];
++
++
++ __asm__ volatile(
++// ".set mips3 \n\t"
++
++ "xor $f12, $f12, $f12 \n\t"
++ "lwc1 $f12, %1 \n\t"
++
++ "xor $f10, $f10, $f10 \n\t"
++
++ "packsswh $f12, $f12, $f12 \n\t"
++
++ "lwc1 $f10, %2 \n\t"
++
++ "packsswh $f10, $f10, $f10 \n\t"
++
++ "packsswh $f12, $f12, $f12 \n\t"
++
++ "xor $f14, $f14, $f14 \n\t"
++
++ "packsswh $f10, $f10, $f10 \n\t"
++
++ "xor $f8, $f8, $f8 \n\t"
++
++ "psubh $f14, $f14, $f10 \n\t"
++
++
++ "1: \n\t"
++ "add $12, %0, %3 \n\t"
++
++ "ldc1 $f0, ($12) \n\t"
++
++ "ldc1 $f2, 8($12) \n\t"
++
++ "mov.d $f4, $f0 \n\t"
++ "mov.d $f6, $f2 \n\t"
++
++ "pmullh $f0, $f0, $f12 \n\t"
++ "pmullh $f2, $f2, $f12 \n\t"
++
++ "pcmpgth $f4, $f4, $f8 \n\t"
++ "pcmpgth $f6, $f6, $f8 \n\t"
++
++ "xor $f0, $f0, $f4 \n\t"
++ "xor $f2, $f2, $f6 \n\t"
++
++
++ "paddh $f0, $f0, $f14 \n\t"
++
++ "paddh $f2, $f2, $f14 \n\t"
++
++
++ "xor $f4, $f4, $f0 \n\t"
++
++ "xor $f6, $f6, $f2 \n\t"
++
++
++ "pcmpeqh $f0, $f0, $f14 \n\t"
++
++ "pcmpeqh $f2, $f2, $f14 \n\t"
++
++
++ "pandn $f0, $f0, $f4 \n\t"
++
++ "pandn $f2, $f2, $f6 \n\t"
++
++
++ "sdc1 $f0, ($12) \n\t"
++
++ "sdc1 $f2, 8($12) \n\t"
++
++
++ "addiu %3, %3, 16 \n\t"
++
++ "blez %3, 1b \n\t"
++ "nop \n\t"
++ ::"r" (block+nCoeffs), "m"(qmul), "m" (qadd), "r" (2*(-nCoeffs))
++ : "memory"
++ );
++ block[0]= level;
++}
++
++
++static void dct_unquantize_h263_inter_loongson2(MpegEncContext *s,
++ DCTELEM *block, int n, int qscale)
++{
++ long qmul, qadd, nCoeffs;
++
++ qmul = qscale << 1;
++ qadd = (qscale - 1) | 1;
++
++ assert(s->block_last_index[n]>=0 || s->h263_aic);
++
++ nCoeffs= s->inter_scantable.raster_end[ s->block_last_index[n] ];
++
++ __asm__ volatile(
++// ".set mips3 \n\t"
++
++ "xor $f12, $f12, $f12 \n\t"
++ "lwc1 $f12, %1 \n\t"
++
++ "xor $f10, $f10, $f10 \n\t"
++
++ "packsswh $f12, $f12, $f12 \n\t"
++
++ "lwc1 $f10, %2 \n\t"
++
++ "packsswh $f10, $f10, $f10 \n\t"
++
++ "xor $f14, $f14, $f14 \n\t"
++
++ "packsswh $f12, $f12, $f12 \n\t"
++
++ "packsswh $f10, $f10, $f10 \n\t"
++
++ "xor $f8, $f8, $f8 \n\t"
++
++ "psubh $f14, $f14, $f10 \n\t"
++
++
++ "1: \n\t"
++ "add $12, %0, %3 \n\t"
++
++ "ldc1 $f0, ($12) \n\t"
++
++ "ldc1 $f2, 8($12) \n\t"
++
++ "mov.d $f4, $f0 \n\t"
++ "mov.d $f6, $f2 \n\t"
++
++ "pmullh $f0, $f0, $f12 \n\t"
++
++ "pmullh $f2, $f2, $f12 \n\t"
++
++ "pcmpgth $f4, $f4, $f8 \n\t"
++
++ "pcmpgth $f6, $f6, $f8 \n\t"
++
++ "xor $f0, $f0, $f4 \n\t"
++
++ "xor $f2, $f2, $f6 \n\t"
++
++ "paddh $f0, $f0, $f14 \n\t"
++
++ "paddh $f2, $f2, $f14 \n\t"
++
++ "xor $f4, $f4, $f0 \n\t"
++
++ "xor $f6, $f6, $f2 \n\t"
++
++ "pcmpeqh $f0, $f0, $f14 \n\t"
++
++ "pcmpeqh $f2, $f2, $f14 \n\t"
++
++ "pandn $f0, $f0, $f4 \n\t"
++
++ "pandn $f2, $f2, $f6 \n\t"
++
++ "sdc1 $f0, ($12) \n\t"
++
++ "sdc1 $f2, 8($12) \n\t"
++
++
++ "addiu %3, %3, 16 \n\t"
++
++ "blez %3, 1b \n\t"
++ "nop \n\t"
++ ::"r" (block+nCoeffs), "m"(qmul), "m" (qadd), "r" (2*(-nCoeffs))
++ : "memory"
++ );
++}
++
++
++/* draw the edges of width 'w' of an image of size width, height
++ this mmx version can only handle w==8 || w==16 */
++
++static void draw_edges_loongson2(uint8_t *buf, int wrap, int width, int height, int w)
++{
++ uint8_t *ptr, *last_line;
++ int i;
++
++ last_line = buf + (height - 1) * wrap;
++
++ ptr = buf;
++ if(w==8)
++ {
++ __asm__ volatile(
++// ".set mips3 \n\t"
++
++ "move $9, %0 \n\t"
++
++ "1: \n\t"
++
++ "xor $f0, $f0, $f0 \n\t"
++ "lwc1 $f0, ($9) \n\t"
++
++ "punpcklbh $f0, $f0, $f0 \n\t"
++
++ "add $12, $9, %2 \n\t"
++
++ "punpcklhw $f0, $f0, $f0 \n\t"
++
++ "punpcklwd $f0, $f0, $f0 \n\t"
++
++ "ldc1 $f2, -8($12) \n\t"
++
++ "sdc1 $f0, -8($9) \n\t"
++
++ "punpckhbh $f2, $f2, $f2 \n\t"
++
++ "add $9, $9, %1 \n\t"
++
++ "punpckhhw $f2, $f2, $f2 \n\t"
++
++ "sub $13, $9, %3 \n\t"
++
++ "punpckhwd $f2, $f2, $f2 \n\t"
++
++ "bltz $13, 1b \n\t"
++
++ "sdc1 $f2, ($12) \n\t"
++
++ : "+r" (ptr)
++ : "r" ((long)wrap), "r" ((long)width), "r" (ptr + wrap*height)
++ : "$9", "$13", "$12", "$f2", "$f0"
++ );
++ }
++ else
++ {
++ __asm__ volatile(
++// ".set mips3 \n\t"
++
++ "move $8, %0 \n\t"
++
++ "1: \n\t"
++
++ "xor $f0, $f0, $f0 \n\t"
++ "lwc1 $f0, ($8) \n\t"
++
++ "punpcklbh $f0, $f0, $f0 \n\t"
++ "punpcklhw $f0, $f0, $f0 \n\t"
++ "punpcklwd $f0, $f0, $f0 \n\t"
++
++ "sdc1 $f0, -8($8) \n\t"
++ "sdc1 $f0, -16($8) \n\t"
++
++ "add $15, $8, %2 \n\t"
++ "ldc1 $f2, -8($15) \n\t"
++
++ "punpckhbh $f2, $f2, $f2 \n\t"
++ "punpckhhw $f2, $f2, $f2 \n\t"
++ "punpckhwd $f2, $f2, $f2 \n\t"
++
++ "sdc1 $f2, ($15) \n\t"
++ "sdc1 $f2, 8($15) \n\t"
++
++ "add $8, $8, %1 \n\t"
++
++ "sub $16, $8, %3 \n\t"
++ "bltz $16, 1b \n\t"
++ "nop \n\t"
++ : "+r" (ptr)
++ : "r" ((long)wrap), "r" ((long)width), "r" (ptr + wrap*height)
++ : "$8", "$15", "$16", "$f0", "$f2"
++ );
++ }
++
++ for(i=0;i<w;i+=4) {
++
++ ptr= buf - (i + 1) * wrap - w;
++ __asm__ volatile(
++// ".set mips3 \n\t"
++ "move $8, %0 \n\t"
++
++ "1: \n\t"
++
++ "add $9, $8, %1 \n\t"
++ "ldc1 $f0, ($9) \n\t"
++
++ "add $10, $8, %2 \n\t"
++ "add $11, $10, %2 \n\t"
++ "add $12, $8, %3 \n\t"
++
++ "sdc1 $f0, ($8) \n\t"
++ "sdc1 $f0, ($10) \n\t"
++ "sdc1 $f0, ($11) \n\t"
++ "sdc1 $f0, ($12) \n\t"
++
++ "addiu $8, $8, 8 \n\t"
++
++ "sub $13, $8, %4 \n\t"
++
++ "bltz $13, 1b \n\t"
++ "nop \n\t"
++
++ : "+r" (ptr)
++ : "r" (((long)buf - (long)ptr - w)), "r" ((long)-wrap), "r" ((long)-wrap*3), "r" (*(ptr+width+2*w))
++ : "$8", "$9", "$10", "$11", "$12", "$13", "$f0"
++ );
++
++ ptr= last_line + (i + 1) * wrap - w;
++
++ __asm__ volatile(
++// ".set mips3 \n\t"
++
++ "move $9, %0 \n\t"
++
++ "1: \n\t"
++
++ "add $10, $9, %1 \n\t"
++ "ldc1 $f0, ($10) \n\t"
++
++ "add $11, $9, %2 \n\t"
++ "add $12, $11, %2 \n\t"
++ "add $13, $9, %3 \n\t"
++
++ "sdc1 $f0, ($9) \n\t"
++ "sdc1 $f0, ($11) \n\t"
++ "sdc1 $f0, ($12) \n\t"
++ "sdc1 $f0, ($13) \n\t"
++
++ "addiu $9, $9, 8 \n\t"
++
++ "sub $14, $9, %4 \n\t"
++
++ "bltz $14, 1b \n\t"
++ "nop \n\t"
++ : "+r" (ptr)
++ : "r" ((long)last_line - (long)ptr - w), "r" ((long)wrap), "r" ((long)wrap*3), "r" (ptr+width+2*w)
++ : "$9", "$10", "$11", "$12", "$13", "$14", "$f0"
++
++ );
++ }
++}
++
++void MPV_common_init_loongson2(MpegEncContext *s)
++{
++ s->dct_unquantize_h263_intra = dct_unquantize_h263_intra_loongson2;
++ s->dct_unquantize_h263_inter = dct_unquantize_h263_inter_loongson2;
++
++// draw_edges = draw_edges_loongson2;
++
++}
+diff --git a/libavcodec/mips/Makefile b/libavcodec/mips/Makefile
+index 3f4da68..73e4d56 100644
+--- a/libavcodec/mips/Makefile
++++ b/libavcodec/mips/Makefile
+@@ -1,3 +1,9 @@
+ OBJS-$(HAVE_MMI) += ps2/dsputil_mmi.o \
+ ps2/idct_mmi.o \
+ ps2/mpegvideo_mmi.o \
++
++OBJS-$(HAVE_LOONGSON2MMI) += loongson2/idct_loongson2.o \
++ loongson2/dsputil_loongson2.o \
++ loongson2/idct_loongson2_xvid.o \
++ loongson2/mpegvideo_loongson2.o \
++ loongson2/motion_est_loongson2.o
+diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c
+index b47ff9a..af92552 100644
+--- a/libavcodec/mpegvideo.c
++++ b/libavcodec/mpegvideo.c
+@@ -176,6 +176,9 @@ av_cold int ff_dct_common_init(MpegEncContext *s)
+ #elif ARCH_BFIN
+ MPV_common_init_bfin(s);
+ #endif
++#ifdef HAVE_LOONGSON2MMI
++ MPV_common_init_loongson2(s);
++#endif
+
+ /* load & permutate scantables
+ note: only wmv uses different ones
+diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h
+index 5302be9..8d09906 100644
+--- a/libavcodec/mpegvideo.h
++++ b/libavcodec/mpegvideo.h
+@@ -689,6 +689,7 @@ int MPV_encode_picture(AVCodecContext *avctx, unsigned char *buf, int buf_size,
+ void MPV_common_init_mmx(MpegEncContext *s);
+ void MPV_common_init_axp(MpegEncContext *s);
+ void MPV_common_init_mlib(MpegEncContext *s);
++void MPV_common_init_loongson2(MpegEncContext *s);
+ void MPV_common_init_mmi(MpegEncContext *s);
+ void MPV_common_init_arm(MpegEncContext *s);
+ void MPV_common_init_altivec(MpegEncContext *s);
+diff --git a/libavcodec/options.c b/libavcodec/options.c
+index 7ca1062..c05b3f4 100644
+--- a/libavcodec/options.c
++++ b/libavcodec/options.c
+@@ -205,6 +205,8 @@ static const AVOption options[]={
+ {"simple", NULL, 0, FF_OPT_TYPE_CONST, FF_IDCT_SIMPLE, INT_MIN, INT_MAX, V|E|D, "idct"},
+ {"simplemmx", NULL, 0, FF_OPT_TYPE_CONST, FF_IDCT_SIMPLEMMX, INT_MIN, INT_MAX, V|E|D, "idct"},
+ {"libmpeg2mmx", NULL, 0, FF_OPT_TYPE_CONST, FF_IDCT_LIBMPEG2MMX, INT_MIN, INT_MAX, V|E|D, "idct"},
++{"libmpeg2loongson2", NULL, 0, FF_OPT_TYPE_CONST, FF_IDCT_LIBMPEG2LOONGSON2, INT_MIN, INT_MAX, V|E|D, "idct"},
++{"xvidloongson2", NULL, 0, FF_OPT_TYPE_CONST, FF_IDCT_XVIDLOONGSON2, INT_MIN, INT_MAX, V|E|D, "idct"},
+ {"ps2", NULL, 0, FF_OPT_TYPE_CONST, FF_IDCT_PS2, INT_MIN, INT_MAX, V|E|D, "idct"},
+ {"mlib", NULL, 0, FF_OPT_TYPE_CONST, FF_IDCT_MLIB, INT_MIN, INT_MAX, V|E|D, "idct"},
+ {"arm", NULL, 0, FF_OPT_TYPE_CONST, FF_IDCT_ARM, INT_MIN, INT_MAX, V|E|D, "idct"},
diff --git a/media-video/ffmpeg/metadata.xml b/media-video/ffmpeg/metadata.xml
new file mode 100644
index 0000000..afa3011
--- /dev/null
+++ b/media-video/ffmpeg/metadata.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>video</herd>
+ <maintainer>
+ <email>media-video@gentoo.org</email>
+ </maintainer>
+ <use>
+ <flag name="3dnowext">
+ Enable manually-optimised routines using the AMD 3DNow!Ex SIMD
+ instruction set, present in modern AMD CPUs. (Check for
+ 3dnowext in /proc/cpuinfo to know whether your CPU supports it).
+ </flag>
+ <flag name="amr">Enables Adaptive Multi-Rate Audio support</flag>
+ <flag name="cpudetection">Enables runtime CPU detection (useful for bindist, compatibility on other CPUs)</flag>
+ <flag name="dirac">Enable Dirac video support (an advanced royalty-free video compression format) via the reference library: dirac.</flag>
+ <flag name="faac">Use external faac library for AAC encoding</flag>
+ <flag name="faad">Use external faad library for AAC decoding (instead of internal libavcodec support)</flag>
+ <flag name="hardcoded-tables">Use pre-calculated tables rather than calculating them on the fly.</flag>
+ <flag name="mmxext">Enables mmx2 support</flag>
+ <flag name="network">Enables network streaming support</flag>
+ <flag name="pic">Force shared libraries to be built as PIC (this is slower)</flag>
+ <flag name="schroedinger">Enable Dirac video support (an advanced royalty-free video compression format) via libschroedinger (high-speed implementation in C of the Dirac codec).</flag>
+ <flag name="ssse3">faster floating point optimization for SSSE3 capable chips (Intel Core 2 and later chips)</flag>
+ <flag name="vaapi">Enables VAAPI (Video Acceleration API) for hardware decoding</flag>
+ <flag name="vdpau">Enables VDPAU decoders (requires nVidia video cards to offload CPU processing to video card</flag>
+ </use>
+</pkgmetadata>