[SCM] ffmpeg/master: Add backported patches for 0.7.1
siretart at users.alioth.debian.org
siretart at users.alioth.debian.org
Sat Jul 16 13:26:30 UTC 2011
The following commit has been merged in the master branch:
commit 32beec8414c990530dc7e837ba51cdba6ffbb542
Author: Reinhard Tartler <siretart at tauware.de>
Date: Sat Jul 16 14:35:59 2011 +0200
Add backported patches for 0.7.1
These patches are taken from the release/0.7 branch. All of them are to
be dropped on the next upstream release.
diff --git a/debian/patches/post-0.7/0001-h264-Fix-assert-that-failed-to-compile-with-DDEBUG.patch b/debian/patches/post-0.7/0001-h264-Fix-assert-that-failed-to-compile-with-DDEBUG.patch
new file mode 100644
index 0000000..2d15607
--- /dev/null
+++ b/debian/patches/post-0.7/0001-h264-Fix-assert-that-failed-to-compile-with-DDEBUG.patch
@@ -0,0 +1,29 @@
+From 403eee165c7763c56ba8b51ad91b4b6cf0811b40 Mon Sep 17 00:00:00 2001
+From: Diego Biurrun <diego at biurrun.de>
+Date: Tue, 21 Jun 2011 01:11:28 +0200
+Subject: [PATCH 01/57] h264: Fix assert that failed to compile with -DDEBUG.
+
+The assert referenced a variable that no longer exists since 4:4:4 support.
+(cherry picked from commit 6371ce4b0f0535a7f576b8f109d35345e3d11d7d)
+
+Signed-off-by: Reinhard Tartler <siretart at tauware.de>
+---
+ libavcodec/h264.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/libavcodec/h264.c b/libavcodec/h264.c
+index dc4acb8..13a6380 100644
+--- a/libavcodec/h264.c
++++ b/libavcodec/h264.c
+@@ -1682,7 +1682,7 @@ static av_always_inline void hl_decode_mb_predict_luma(H264Context *h, int mb_ty
+ uint64_t tr_high;
+ if(dir == DIAG_DOWN_LEFT_PRED || dir == VERT_LEFT_PRED){
+ const int topright_avail= (h->topright_samples_available<<i)&0x8000;
+- assert(mb_y || linesize <= block_offset[i]);
++ assert(s->mb_y || linesize <= block_offset[i]);
+ if(!topright_avail){
+ if (pixel_shift) {
+ tr_high= ((uint16_t*)ptr)[3 - linesize/2]*0x0001000100010001ULL;
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0002-rawvideo-Support-auv2-fourcc.patch b/debian/patches/post-0.7/0002-rawvideo-Support-auv2-fourcc.patch
new file mode 100644
index 0000000..2efef83
--- /dev/null
+++ b/debian/patches/post-0.7/0002-rawvideo-Support-auv2-fourcc.patch
@@ -0,0 +1,39 @@
+From 6cef3ddbdc354799bc30711766a98ff9082332c6 Mon Sep 17 00:00:00 2001
+From: ami_stuff <amiUNDERSCOREstuff at o2.pl>
+Date: Mon, 25 Apr 2011 00:20:27 +0200
+Subject: [PATCH 02/57] rawvideo: Support auv2 fourcc.
+ (cherry picked from commit d352df093169f39631f1ec0017a3f186ef85f83c)
+
+Signed-off-by: Reinhard Tartler <siretart at tauware.de>
+---
+ libavcodec/raw.c | 1 +
+ libavformat/riff.c | 1 +
+ 2 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/libavcodec/raw.c b/libavcodec/raw.c
+index 7d92aba..bc7c156 100644
+--- a/libavcodec/raw.c
++++ b/libavcodec/raw.c
+@@ -61,6 +61,7 @@ const PixelFormatTag ff_raw_pix_fmt_tags[] = {
+ { PIX_FMT_UYVY422, MKTAG('A', 'V', '1', 'x') }, /* Avid 1:1x */
+ { PIX_FMT_UYVY422, MKTAG('A', 'V', 'u', 'p') },
+ { PIX_FMT_UYVY422, MKTAG('V', 'D', 'T', 'Z') }, /* SoftLab-NSK VideoTizer */
++ { PIX_FMT_UYVY422, MKTAG('a', 'u', 'v', '2') },
+ { PIX_FMT_UYYVYY411, MKTAG('Y', '4', '1', '1') },
+ { PIX_FMT_GRAY8, MKTAG('G', 'R', 'E', 'Y') },
+ { PIX_FMT_NV12, MKTAG('N', 'V', '1', '2') },
+diff --git a/libavformat/riff.c b/libavformat/riff.c
+index fe6cc55..756fc57 100644
+--- a/libavformat/riff.c
++++ b/libavformat/riff.c
+@@ -180,6 +180,7 @@ const AVCodecTag ff_codec_bmp_tags[] = {
+ { CODEC_ID_RAWVIDEO, MKTAG('Y', '4', '2', 'B') },
+ { CODEC_ID_RAWVIDEO, MKTAG('Y', 'U', 'V', '9') },
+ { CODEC_ID_RAWVIDEO, MKTAG('Y', 'V', 'U', '9') },
++ { CODEC_ID_RAWVIDEO, MKTAG('a', 'u', 'v', '2') },
+ { CODEC_ID_FRWU, MKTAG('F', 'R', 'W', 'U') },
+ { CODEC_ID_R10K, MKTAG('R', '1', '0', 'k') },
+ { CODEC_ID_R210, MKTAG('r', '2', '1', '0') },
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0003-riff-Add-M263-XVIX-MMJP-CDV5-fourccs.patch b/debian/patches/post-0.7/0003-riff-Add-M263-XVIX-MMJP-CDV5-fourccs.patch
new file mode 100644
index 0000000..982aaf7
--- /dev/null
+++ b/debian/patches/post-0.7/0003-riff-Add-M263-XVIX-MMJP-CDV5-fourccs.patch
@@ -0,0 +1,50 @@
+From 137838945fc355207234a0cc846e23d4996bfcc1 Mon Sep 17 00:00:00 2001
+From: Carl Eugen Hoyos <cehoyos at ag.or.at>
+Date: Mon, 25 Apr 2011 00:27:03 +0200
+Subject: [PATCH 03/57] riff: Add M263, XVIX, MMJP, CDV5 fourccs.
+ (cherry picked from commit 682a20114e9ee0272be764c68dc1cf251ff083da)
+
+Signed-off-by: Reinhard Tartler <siretart at tauware.de>
+---
+ libavformat/riff.c | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+diff --git a/libavformat/riff.c b/libavformat/riff.c
+index 756fc57..95e08b2 100644
+--- a/libavformat/riff.c
++++ b/libavformat/riff.c
+@@ -40,6 +40,7 @@ const AVCodecTag ff_codec_bmp_tags[] = {
+ { CODEC_ID_H263, MKTAG('L', '2', '6', '3') },
+ { CODEC_ID_H263, MKTAG('V', 'X', '1', 'K') },
+ { CODEC_ID_H263, MKTAG('Z', 'y', 'G', 'o') },
++ { CODEC_ID_H263, MKTAG('M', '2', '6', '3') },
+ { CODEC_ID_H263P, MKTAG('H', '2', '6', '3') },
+ { CODEC_ID_H263I, MKTAG('I', '2', '6', '3') }, /* intel h263 */
+ { CODEC_ID_H261, MKTAG('H', '2', '6', '1') },
+@@ -83,6 +84,7 @@ const AVCodecTag ff_codec_bmp_tags[] = {
+ { CODEC_ID_MPEG4, MKTAG('U', 'L', 'D', 'X') },
+ { CODEC_ID_MPEG4, MKTAG('G', 'E', 'O', 'V') },
+ { CODEC_ID_MPEG4, MKTAG('S', 'I', 'P', 'P') }, /* Samsung SHR-6040 */
++ { CODEC_ID_MPEG4, MKTAG('X', 'V', 'I', 'X') },
+ { CODEC_ID_MSMPEG4V3, MKTAG('M', 'P', '4', '3') },
+ { CODEC_ID_MSMPEG4V3, MKTAG('D', 'I', 'V', '3') },
+ { CODEC_ID_MSMPEG4V3, MKTAG('M', 'P', 'G', '3') },
+@@ -107,6 +109,7 @@ const AVCodecTag ff_codec_bmp_tags[] = {
+ { CODEC_ID_DVVIDEO, MKTAG('d', 'v', '5', '0') },
+ { CODEC_ID_DVVIDEO, MKTAG('c', 'd', 'v', 'c') }, /* Canopus DV */
+ { CODEC_ID_DVVIDEO, MKTAG('C', 'D', 'V', 'H') }, /* Canopus DV */
++ { CODEC_ID_DVVIDEO, MKTAG('C', 'D', 'V', '5') }, /* Canopus DV */
+ { CODEC_ID_DVVIDEO, MKTAG('d', 'v', 'c', ' ') },
+ { CODEC_ID_DVVIDEO, MKTAG('d', 'v', 'c', 's') },
+ { CODEC_ID_DVVIDEO, MKTAG('d', 'v', 'h', '1') },
+@@ -148,6 +151,7 @@ const AVCodecTag ff_codec_bmp_tags[] = {
+ { CODEC_ID_MJPEG, MKTAG('A', 'V', 'I', '2') },
+ { CODEC_ID_MJPEG, MKTAG('M', 'T', 'S', 'J') },
+ { CODEC_ID_MJPEG, MKTAG('Z', 'J', 'P', 'G') }, /* Paradigm Matrix M-JPEG Codec */
++ { CODEC_ID_MJPEG, MKTAG('M', 'M', 'J', 'P') },
+ { CODEC_ID_HUFFYUV, MKTAG('H', 'F', 'Y', 'U') },
+ { CODEC_ID_FFVHUFF, MKTAG('F', 'F', 'V', 'H') },
+ { CODEC_ID_CYUV, MKTAG('C', 'Y', 'U', 'V') },
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0004-riff-Add-DAVC-fourcc.patch b/debian/patches/post-0.7/0004-riff-Add-DAVC-fourcc.patch
new file mode 100644
index 0000000..530288f
--- /dev/null
+++ b/debian/patches/post-0.7/0004-riff-Add-DAVC-fourcc.patch
@@ -0,0 +1,29 @@
+From 5254285636a2d58805152be0f9700f773624879c Mon Sep 17 00:00:00 2001
+From: ami_stuff <ami_stuff at o2.pl>
+Date: Wed, 11 May 2011 22:18:15 +0200
+Subject: [PATCH 04/57] riff: Add DAVC fourcc.
+
+This fourcc is used by the "mpegable AVC" codec and files encoded with
+this codec decode correctly with our H.264 decoder.
+(cherry picked from commit 2ea1ca1714f655a463b941b115e45a1a2f031f7b)
+
+Signed-off-by: Reinhard Tartler <siretart at tauware.de>
+---
+ libavformat/riff.c | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/libavformat/riff.c b/libavformat/riff.c
+index 95e08b2..b2e8414 100644
+--- a/libavformat/riff.c
++++ b/libavformat/riff.c
+@@ -33,6 +33,7 @@ const AVCodecTag ff_codec_bmp_tags[] = {
+ { CODEC_ID_H264, MKTAG('X', '2', '6', '4') },
+ { CODEC_ID_H264, MKTAG('x', '2', '6', '4') },
+ { CODEC_ID_H264, MKTAG('a', 'v', 'c', '1') },
++ { CODEC_ID_H264, MKTAG('D', 'A', 'V', 'C') },
+ { CODEC_ID_H264, MKTAG('V', 'S', 'S', 'H') },
+ { CODEC_ID_H263, MKTAG('H', '2', '6', '3') },
+ { CODEC_ID_H263, MKTAG('X', '2', '6', '3') },
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0005-riff-img2-Add-JPEG-2000-codec-IDs.patch b/debian/patches/post-0.7/0005-riff-img2-Add-JPEG-2000-codec-IDs.patch
new file mode 100644
index 0000000..9925127
--- /dev/null
+++ b/debian/patches/post-0.7/0005-riff-img2-Add-JPEG-2000-codec-IDs.patch
@@ -0,0 +1,39 @@
+From 9ac3e32b29ae9e4af30ed671e736d1d83b0c7255 Mon Sep 17 00:00:00 2001
+From: Kamil Nowosad <k.nowosad at students.mimuw.edu.pl>
+Date: Mon, 23 May 2011 23:13:34 +0200
+Subject: [PATCH 05/57] riff/img2: Add JPEG 2000 codec IDs.
+ (cherry picked from commit a304a833621a793bbf49b796fe1fd11ea1cd54c8)
+
+Signed-off-by: Reinhard Tartler <siretart at tauware.de>
+---
+ libavformat/img2.c | 1 +
+ libavformat/riff.c | 1 +
+ 2 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/libavformat/img2.c b/libavformat/img2.c
+index ec37a38..4eef623 100644
+--- a/libavformat/img2.c
++++ b/libavformat/img2.c
+@@ -82,6 +82,7 @@ static const IdStrMap img_tags[] = {
+ { CODEC_ID_SUNRAST , "im24"},
+ { CODEC_ID_SUNRAST , "sunras"},
+ { CODEC_ID_JPEG2000 , "jp2"},
++ { CODEC_ID_JPEG2000 , "jpc"},
+ { CODEC_ID_DPX , "dpx"},
+ { CODEC_ID_PICTOR , "pic"},
+ { CODEC_ID_NONE , NULL}
+diff --git a/libavformat/riff.c b/libavformat/riff.c
+index b2e8414..817349c 100644
+--- a/libavformat/riff.c
++++ b/libavformat/riff.c
+@@ -250,6 +250,7 @@ const AVCodecTag ff_codec_bmp_tags[] = {
+ { CODEC_ID_ZMBV, MKTAG('Z', 'M', 'B', 'V') },
+ { CODEC_ID_KMVC, MKTAG('K', 'M', 'V', 'C') },
+ { CODEC_ID_CAVS, MKTAG('C', 'A', 'V', 'S') },
++ { CODEC_ID_JPEG2000, MKTAG('m', 'j', 'p', '2') },
+ { CODEC_ID_JPEG2000, MKTAG('M', 'J', '2', 'C') },
+ { CODEC_ID_VMNC, MKTAG('V', 'M', 'n', 'c') },
+ { CODEC_ID_TARGA, MKTAG('t', 'g', 'a', ' ') },
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0006-mov-Support-R10g-codec-identifier.patch b/debian/patches/post-0.7/0006-mov-Support-R10g-codec-identifier.patch
new file mode 100644
index 0000000..0d6ffb3
--- /dev/null
+++ b/debian/patches/post-0.7/0006-mov-Support-R10g-codec-identifier.patch
@@ -0,0 +1,26 @@
+From 1aef8de6d730df7f0a0841939954d12cd604b2d7 Mon Sep 17 00:00:00 2001
+From: ami_stuff <ami_stuff at o2.pl>
+Date: Fri, 13 May 2011 00:49:29 +0200
+Subject: [PATCH 06/57] mov: Support R10g codec identifier.
+ (cherry picked from commit 7ac639654f21aa78e0afa14f6c049ffa2c9078bd)
+
+Signed-off-by: Reinhard Tartler <siretart at tauware.de>
+---
+ libavformat/isom.c | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/libavformat/isom.c b/libavformat/isom.c
+index c65f931..dd4008b 100644
+--- a/libavformat/isom.c
++++ b/libavformat/isom.c
+@@ -83,6 +83,7 @@ const AVCodecTag codec_movvideo_tags[] = {
+ { CODEC_ID_RAWVIDEO, MKTAG('b', '4', '8', 'r') },
+
+ { CODEC_ID_R10K, MKTAG('R', '1', '0', 'k') }, /* UNCOMPRESSED 10BIT RGB */
++ { CODEC_ID_R10K, MKTAG('R', '1', '0', 'g') }, /* UNCOMPRESSED 10BIT RGB */
+ { CODEC_ID_R210, MKTAG('r', '2', '1', '0') }, /* UNCOMPRESSED 10BIT RGB */
+ { CODEC_ID_V210, MKTAG('v', '2', '1', '0') }, /* UNCOMPRESSED 10BIT 4:2:2 */
+
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0007-mov-Support-Digital-Voodoo-SD-8-Bit-and-DTS-codec-id.patch b/debian/patches/post-0.7/0007-mov-Support-Digital-Voodoo-SD-8-Bit-and-DTS-codec-id.patch
new file mode 100644
index 0000000..42079de
--- /dev/null
+++ b/debian/patches/post-0.7/0007-mov-Support-Digital-Voodoo-SD-8-Bit-and-DTS-codec-id.patch
@@ -0,0 +1,56 @@
+From 26f48752fbaa49161eb3454eda68dc043d733567 Mon Sep 17 00:00:00 2001
+From: Carl Eugen Hoyos <cehoyos at ag.or.at>
+Date: Fri, 13 May 2011 01:08:01 +0200
+Subject: [PATCH 07/57] mov: Support Digital Voodoo SD 8 Bit and DTS codec identifiers.
+ (cherry picked from commit 53d5cd2c8225e251826c77f8f69a30250038fbd0)
+
+Signed-off-by: Reinhard Tartler <siretart at tauware.de>
+---
+ libavcodec/raw.c | 1 +
+ libavformat/isom.c | 4 ++++
+ 2 files changed, 5 insertions(+), 0 deletions(-)
+
+diff --git a/libavcodec/raw.c b/libavcodec/raw.c
+index bc7c156..4bc07b8 100644
+--- a/libavcodec/raw.c
++++ b/libavcodec/raw.c
+@@ -122,6 +122,7 @@ const PixelFormatTag ff_raw_pix_fmt_tags[] = {
+ { PIX_FMT_UYVY422, MKTAG('A', 'V', 'U', 'I') }, /* FIXME merge both fields */
+ { PIX_FMT_YUYV422, MKTAG('y', 'u', 'v', '2') },
+ { PIX_FMT_YUYV422, MKTAG('y', 'u', 'v', 's') },
++ { PIX_FMT_YUYV422, MKTAG('D', 'V', 'O', 'O') }, /* Digital Voodoo SD 8 Bit */
+ { PIX_FMT_PAL8, MKTAG('W', 'R', 'A', 'W') },
+ { PIX_FMT_RGB555LE,MKTAG('L', '5', '5', '5') },
+ { PIX_FMT_RGB565LE,MKTAG('L', '5', '6', '5') },
+diff --git a/libavformat/isom.c b/libavformat/isom.c
+index dd4008b..eb17e25 100644
+--- a/libavformat/isom.c
++++ b/libavformat/isom.c
+@@ -57,6 +57,7 @@ const AVCodecTag ff_mp4_obj_type[] = {
+ { CODEC_ID_VC1 , 0xA3 },
+ { CODEC_ID_DIRAC , 0xA4 },
+ { CODEC_ID_AC3 , 0xA5 },
++ { CODEC_ID_DTS , 0xA9 }, /* mp4ra.org */
+ { CODEC_ID_VORBIS , 0xDD }, /* non standard, gpac uses it */
+ { CODEC_ID_DVD_SUBTITLE, 0xE0 }, /* non standard, see unsupported-embedded-subs-2.mp4 */
+ { CODEC_ID_QCELP , 0xE1 },
+@@ -81,6 +82,7 @@ const AVCodecTag codec_movvideo_tags[] = {
+ { CODEC_ID_RAWVIDEO, MKTAG('A', 'B', 'G', 'R') },
+ { CODEC_ID_RAWVIDEO, MKTAG('b', '1', '6', 'g') },
+ { CODEC_ID_RAWVIDEO, MKTAG('b', '4', '8', 'r') },
++ { CODEC_ID_RAWVIDEO, MKTAG('D', 'V', 'O', 'O') }, /* Digital Voodoo SD 8 Bit */
+
+ { CODEC_ID_R10K, MKTAG('R', '1', '0', 'k') }, /* UNCOMPRESSED 10BIT RGB */
+ { CODEC_ID_R10K, MKTAG('R', '1', '0', 'g') }, /* UNCOMPRESSED 10BIT RGB */
+@@ -243,6 +245,8 @@ const AVCodecTag codec_movaudio_tags[] = {
+ { CODEC_ID_AAC, MKTAG('m', 'p', '4', 'a') }, /* MPEG-4 AAC */
+ { CODEC_ID_AC3, MKTAG('a', 'c', '-', '3') }, /* ETSI TS 102 366 Annex F */
+ { CODEC_ID_AC3, MKTAG('s', 'a', 'c', '3') }, /* Nero Recode */
++ { CODEC_ID_DTS, MKTAG('d', 't', 's', 'c') }, /* mp4ra.org */
++ { CODEC_ID_DTS, MKTAG('D', 'T', 'S', ' ') }, /* non-standard */
+
+ { CODEC_ID_AMR_NB, MKTAG('s', 'a', 'm', 'r') }, /* AMR-NB 3gp */
+ { CODEC_ID_AMR_WB, MKTAG('s', 'a', 'w', 'b') }, /* AMR-WB 3gp */
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0008-configure-report-optimization-for-size-separately.patch b/debian/patches/post-0.7/0008-configure-report-optimization-for-size-separately.patch
new file mode 100644
index 0000000..87d24ac
--- /dev/null
+++ b/debian/patches/post-0.7/0008-configure-report-optimization-for-size-separately.patch
@@ -0,0 +1,40 @@
+From 6a34f5d4478bf79b452ab90eb47df75b62202d9c Mon Sep 17 00:00:00 2001
+From: Mans Rullgard <mans at mansr.com>
+Date: Sun, 19 Jun 2011 18:41:14 +0100
+Subject: [PATCH 08/57] configure: report optimization for size separately
+
+This removes an unsightly override of the 'optimizations' setting
+only to make the configure report print 'small' when --enable-small
+is used.
+
+Signed-off-by: Mans Rullgard <mans at mansr.com>
+(cherry picked from commit f082a0fb420f0367bdd00219fd0fe8fe3caf7bc7)
+
+Signed-off-by: Reinhard Tartler <siretart at tauware.de>
+---
+ configure | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/configure b/configure
+index 31e82fc..b26394e 100755
+--- a/configure
++++ b/configure
+@@ -3006,7 +3006,6 @@ fi
+
+ if enabled small; then
+ add_cflags $size_cflags
+- optimizations="small"
+ elif enabled optimizations; then
+ add_cflags $speed_cflags
+ else
+@@ -3140,6 +3139,7 @@ if enabled sparc; then
+ echo "VIS enabled ${vis-no}"
+ fi
+ echo "debug symbols ${debug-no}"
++echo "optimize for size ${small-no}"
+ echo "optimizations ${optimizations-no}"
+ echo "static ${static-no}"
+ echo "shared ${shared-no}"
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0009-rawdec-Fix-decoding-of-QT-WRAW-files.patch b/debian/patches/post-0.7/0009-rawdec-Fix-decoding-of-QT-WRAW-files.patch
new file mode 100644
index 0000000..2a88bd7
--- /dev/null
+++ b/debian/patches/post-0.7/0009-rawdec-Fix-decoding-of-QT-WRAW-files.patch
@@ -0,0 +1,54 @@
+From fcd26ebc8f371612e56e9f591b578d519e04c4c2 Mon Sep 17 00:00:00 2001
+From: ami_stuff <ami_stuff at o2.pl>
+Date: Tue, 24 May 2011 23:38:01 +0200
+Subject: [PATCH 09/57] rawdec: Fix decoding of QT WRAW files.
+
+From some tests it results that:
+1. All of the AVI/MOV WRAW files need to be flipped.
+2. MOV WRAW files need to use AVI color modes.
+3. Assigning PAL8 mode by default to WRAW codec is not correct.
+(cherry picked from commit 67e7dc54049d9b51a0c2168c8265145a9aef7780)
+
+Signed-off-by: Reinhard Tartler <siretart at tauware.de>
+---
+ libavcodec/raw.c | 1 -
+ libavcodec/rawdec.c | 4 +++-
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/libavcodec/raw.c b/libavcodec/raw.c
+index 4bc07b8..aa1ea30 100644
+--- a/libavcodec/raw.c
++++ b/libavcodec/raw.c
+@@ -123,7 +123,6 @@ const PixelFormatTag ff_raw_pix_fmt_tags[] = {
+ { PIX_FMT_YUYV422, MKTAG('y', 'u', 'v', '2') },
+ { PIX_FMT_YUYV422, MKTAG('y', 'u', 'v', 's') },
+ { PIX_FMT_YUYV422, MKTAG('D', 'V', 'O', 'O') }, /* Digital Voodoo SD 8 Bit */
+- { PIX_FMT_PAL8, MKTAG('W', 'R', 'A', 'W') },
+ { PIX_FMT_RGB555LE,MKTAG('L', '5', '5', '5') },
+ { PIX_FMT_RGB565LE,MKTAG('L', '5', '6', '5') },
+ { PIX_FMT_RGB565BE,MKTAG('B', '5', '6', '5') },
+diff --git a/libavcodec/rawdec.c b/libavcodec/rawdec.c
+index 6b3387f..5e8e6c4 100644
+--- a/libavcodec/rawdec.c
++++ b/libavcodec/rawdec.c
+@@ -78,6 +78,8 @@ static av_cold int raw_init_decoder(AVCodecContext *avctx)
+
+ if (avctx->codec_tag == MKTAG('r','a','w',' '))
+ avctx->pix_fmt = find_pix_fmt(pix_fmt_bps_mov, avctx->bits_per_coded_sample);
++ else if (avctx->codec_tag == MKTAG('W','R','A','W'))
++ avctx->pix_fmt = find_pix_fmt(pix_fmt_bps_avi, avctx->bits_per_coded_sample);
+ else if (avctx->codec_tag)
+ avctx->pix_fmt = find_pix_fmt(ff_raw_pix_fmt_tags, avctx->codec_tag);
+ else if (avctx->pix_fmt == PIX_FMT_NONE && avctx->bits_per_coded_sample)
+@@ -98,7 +100,7 @@ static av_cold int raw_init_decoder(AVCodecContext *avctx)
+ avctx->coded_frame= &context->pic;
+
+ if((avctx->extradata_size >= 9 && !memcmp(avctx->extradata + avctx->extradata_size - 9, "BottomUp", 9)) ||
+- avctx->codec_tag == MKTAG( 3 , 0 , 0 , 0 ))
++ avctx->codec_tag == MKTAG(3, 0, 0, 0) || avctx->codec_tag == MKTAG('W','R','A','W'))
+ context->flip=1;
+
+ return 0;
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0010-alsa-add-support-for-more-formats.patch b/debian/patches/post-0.7/0010-alsa-add-support-for-more-formats.patch
new file mode 100644
index 0000000..66984fd
--- /dev/null
+++ b/debian/patches/post-0.7/0010-alsa-add-support-for-more-formats.patch
@@ -0,0 +1,42 @@
+From bf5ed476ba6315daeff83930787cdf02aa3268e0 Mon Sep 17 00:00:00 2001
+From: Carl Eugen Hoyos <cehoyos at ag.or.at>
+Date: Mon, 13 Jun 2011 21:16:30 +0200
+Subject: [PATCH 10/57] alsa: add support for more formats.
+
+Specifically, f32, f64, s32, s24, a-law and mu-law.
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+(cherry picked from commit 921715edffbba5db8deb26b7ad3cb583ba963d03)
+
+Signed-off-by: Reinhard Tartler <siretart at tauware.de>
+---
+ libavdevice/alsa-audio-common.c | 10 ++++++++++
+ 1 files changed, 10 insertions(+), 0 deletions(-)
+
+diff --git a/libavdevice/alsa-audio-common.c b/libavdevice/alsa-audio-common.c
+index ff6c9f8..4279790 100644
+--- a/libavdevice/alsa-audio-common.c
++++ b/libavdevice/alsa-audio-common.c
+@@ -36,9 +36,19 @@
+ static av_cold snd_pcm_format_t codec_id_to_pcm_format(int codec_id)
+ {
+ switch(codec_id) {
++ case CODEC_ID_PCM_F64LE: return SND_PCM_FORMAT_FLOAT64_LE;
++ case CODEC_ID_PCM_F64BE: return SND_PCM_FORMAT_FLOAT64_BE;
++ case CODEC_ID_PCM_F32LE: return SND_PCM_FORMAT_FLOAT_LE;
++ case CODEC_ID_PCM_F32BE: return SND_PCM_FORMAT_FLOAT_BE;
++ case CODEC_ID_PCM_S32LE: return SND_PCM_FORMAT_S32_LE;
++ case CODEC_ID_PCM_S32BE: return SND_PCM_FORMAT_S32_BE;
++ case CODEC_ID_PCM_S24LE: return SND_PCM_FORMAT_S24_3LE;
++ case CODEC_ID_PCM_S24BE: return SND_PCM_FORMAT_S24_3BE;
+ case CODEC_ID_PCM_S16LE: return SND_PCM_FORMAT_S16_LE;
+ case CODEC_ID_PCM_S16BE: return SND_PCM_FORMAT_S16_BE;
+ case CODEC_ID_PCM_S8: return SND_PCM_FORMAT_S8;
++ case CODEC_ID_PCM_MULAW: return SND_PCM_FORMAT_MU_LAW;
++ case CODEC_ID_PCM_ALAW: return SND_PCM_FORMAT_A_LAW;
+ default: return SND_PCM_FORMAT_UNKNOWN;
+ }
+ }
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0011-H.264-fix-bug-in-lossless-4-4-4-decoding.patch b/debian/patches/post-0.7/0011-H.264-fix-bug-in-lossless-4-4-4-decoding.patch
new file mode 100644
index 0000000..8efd781
--- /dev/null
+++ b/debian/patches/post-0.7/0011-H.264-fix-bug-in-lossless-4-4-4-decoding.patch
@@ -0,0 +1,29 @@
+From e4071fa04c213ab3ddf4f89953daf4e3788a9d0f Mon Sep 17 00:00:00 2001
+From: Jason Garrett-Glaser <jason at x264.com>
+Date: Mon, 20 Jun 2011 15:56:35 -0700
+Subject: [PATCH 11/57] H.264: fix bug in lossless 4:4:4 decoding
+
+Coefficient test for i16x16 add_pixels4 assumed luma plane.
+(cherry picked from commit 3b79f2e2e928eb346dbea85cc89393dcdf010ca9)
+
+Signed-off-by: Reinhard Tartler <siretart at tauware.de>
+---
+ libavcodec/h264.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/libavcodec/h264.c b/libavcodec/h264.c
+index 13a6380..124f9a8 100644
+--- a/libavcodec/h264.c
++++ b/libavcodec/h264.c
+@@ -1744,7 +1744,7 @@ static av_always_inline void hl_decode_mb_idct_luma(H264Context *h, int mb_type,
+ h->hpc.pred16x16_add[h->intra16x16_pred_mode](dest_y, block_offset, h->mb + (p*256 << pixel_shift), linesize);
+ }else{
+ for(i=0; i<16; i++){
+- if(h->non_zero_count_cache[ scan8[i+p*16] ] || dctcoef_get(h->mb, pixel_shift, i*16))
++ if(h->non_zero_count_cache[ scan8[i+p*16] ] || dctcoef_get(h->mb, pixel_shift, i*16+p*256))
+ s->dsp.add_pixels4(dest_y + block_offset[i], h->mb + (i*16+p*256 << pixel_shift), linesize);
+ }
+ }
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0012-H.264-reference-the-correct-SPS-in-decode_scaling_ma.patch b/debian/patches/post-0.7/0012-H.264-reference-the-correct-SPS-in-decode_scaling_ma.patch
new file mode 100644
index 0000000..ee5878d
--- /dev/null
+++ b/debian/patches/post-0.7/0012-H.264-reference-the-correct-SPS-in-decode_scaling_ma.patch
@@ -0,0 +1,34 @@
+From 4c8b14c37ff292ca9d4a412984e5132a27a83858 Mon Sep 17 00:00:00 2001
+From: Jason Garrett-Glaser <jason at x264.com>
+Date: Tue, 21 Jun 2011 01:10:37 -0700
+Subject: [PATCH 12/57] H.264: reference the correct SPS in decode_scaling_matrices
+
+(cherry picked from commit 85a88f9c0c0fcc2fc48121db1beb5ada68d24bdc)
+
+Signed-off-by: Reinhard Tartler <siretart at tauware.de>
+---
+ libavcodec/h264_ps.c | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/libavcodec/h264_ps.c b/libavcodec/h264_ps.c
+index 9c41e4c..5ca2361 100644
+--- a/libavcodec/h264_ps.c
++++ b/libavcodec/h264_ps.c
+@@ -281,12 +281,12 @@ static void decode_scaling_matrices(H264Context *h, SPS *sps, PPS *pps, int is_s
+ decode_scaling_list(h,scaling_matrix4[5],16,default_scaling4[1],scaling_matrix4[4]); // Inter, Cb
+ if(is_sps || pps->transform_8x8_mode){
+ decode_scaling_list(h,scaling_matrix8[0],64,default_scaling8[0],fallback[2]); // Intra, Y
+- if(h->sps.chroma_format_idc == 3){
++ if(sps->chroma_format_idc == 3){
+ decode_scaling_list(h,scaling_matrix8[1],64,default_scaling8[0],scaling_matrix8[0]); // Intra, Cr
+ decode_scaling_list(h,scaling_matrix8[2],64,default_scaling8[0],scaling_matrix8[1]); // Intra, Cb
+ }
+ decode_scaling_list(h,scaling_matrix8[3],64,default_scaling8[1],fallback[3]); // Inter, Y
+- if(h->sps.chroma_format_idc == 3){
++ if(sps->chroma_format_idc == 3){
+ decode_scaling_list(h,scaling_matrix8[4],64,default_scaling8[1],scaling_matrix8[3]); // Inter, Cr
+ decode_scaling_list(h,scaling_matrix8[5],64,default_scaling8[1],scaling_matrix8[4]); // Inter, Cb
+ }
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0013-H.264-fix-4-4-4-cropping-warning.patch b/debian/patches/post-0.7/0013-H.264-fix-4-4-4-cropping-warning.patch
new file mode 100644
index 0000000..9c27129
--- /dev/null
+++ b/debian/patches/post-0.7/0013-H.264-fix-4-4-4-cropping-warning.patch
@@ -0,0 +1,36 @@
+From 18052f1df9d5a21ff354c4f70ae35993959d9686 Mon Sep 17 00:00:00 2001
+From: Jason Garrett-Glaser <jason at x264.com>
+Date: Tue, 21 Jun 2011 04:16:33 -0700
+Subject: [PATCH 13/57] H.264: fix 4:4:4 cropping warning
+
+(cherry picked from commit 932db250243812380640112fd27a59bc0642bc8a)
+
+Signed-off-by: Reinhard Tartler <siretart at tauware.de>
+---
+ libavcodec/h264_ps.c | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/libavcodec/h264_ps.c b/libavcodec/h264_ps.c
+index 5ca2361..7491807 100644
+--- a/libavcodec/h264_ps.c
++++ b/libavcodec/h264_ps.c
+@@ -396,6 +396,7 @@ int ff_h264_decode_seq_parameter_set(H264Context *h){
+ #endif
+ sps->crop= get_bits1(&s->gb);
+ if(sps->crop){
++ int crop_limit = sps->chroma_format_idc == 3 ? 16 : 8;
+ sps->crop_left = get_ue_golomb(&s->gb);
+ sps->crop_right = get_ue_golomb(&s->gb);
+ sps->crop_top = get_ue_golomb(&s->gb);
+@@ -403,7 +404,7 @@ int ff_h264_decode_seq_parameter_set(H264Context *h){
+ if(sps->crop_left || sps->crop_top){
+ av_log(h->s.avctx, AV_LOG_ERROR, "insane cropping not completely supported, this could look slightly wrong ...\n");
+ }
+- if(sps->crop_right >= (8<<CHROMA444) || sps->crop_bottom >= (8<<CHROMA444)){
++ if(sps->crop_right >= crop_limit || sps->crop_bottom >= crop_limit){
+ av_log(h->s.avctx, AV_LOG_ERROR, "brainfart cropping not supported, this could look slightly wrong ...\n");
+ }
+ }else{
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0014-H.264-fix-4-4-4-deblocking-MBAFF.patch b/debian/patches/post-0.7/0014-H.264-fix-4-4-4-deblocking-MBAFF.patch
new file mode 100644
index 0000000..a570f61
--- /dev/null
+++ b/debian/patches/post-0.7/0014-H.264-fix-4-4-4-deblocking-MBAFF.patch
@@ -0,0 +1,77 @@
+From 13c943ffb1d0faa6de0de292d196551990e93512 Mon Sep 17 00:00:00 2001
+From: Jason Garrett-Glaser <jason at x264.com>
+Date: Wed, 22 Jun 2011 02:05:14 -0700
+Subject: [PATCH 14/57] H.264: fix 4:4:4 + deblocking + MBAFF
+
+(cherry picked from commit 7c9079ab4cf0bcf34103fc9c5e49ec1fd7dd390c)
+
+Signed-off-by: Reinhard Tartler <siretart at tauware.de>
+---
+ libavcodec/h264.c | 4 ++--
+ libavcodec/h264_loopfilter.c | 30 ++++++++++++++++++++++--------
+ 2 files changed, 24 insertions(+), 10 deletions(-)
+
+diff --git a/libavcodec/h264.c b/libavcodec/h264.c
+index 124f9a8..6bee7c3 100644
+--- a/libavcodec/h264.c
++++ b/libavcodec/h264.c
+@@ -3300,8 +3300,8 @@ static void loop_filter(H264Context *h, int start_x, int end_x){
+ uvlinesize = h->mb_uvlinesize = s->uvlinesize * 2;
+ if(mb_y&1){ //FIXME move out of this function?
+ dest_y -= s->linesize*15;
+- dest_cb-= s->uvlinesize*7;
+- dest_cr-= s->uvlinesize*7;
++ dest_cb-= s->uvlinesize*((8 << CHROMA444)-1);
++ dest_cr-= s->uvlinesize*((8 << CHROMA444)-1);
+ }
+ } else {
+ linesize = h->mb_linesize = s->linesize;
+diff --git a/libavcodec/h264_loopfilter.c b/libavcodec/h264_loopfilter.c
+index 1ae534e..b88c338 100644
+--- a/libavcodec/h264_loopfilter.c
++++ b/libavcodec/h264_loopfilter.c
+@@ -663,19 +663,33 @@ void ff_h264_filter_mb( H264Context *h, int mb_x, int mb_y, uint8_t *img_y, uint
+ filter_mb_mbaff_edgev ( h, img_y , linesize, bS , 1, qp [0] );
+ filter_mb_mbaff_edgev ( h, img_y + 8* linesize, linesize, bS+4, 1, qp [1] );
+ if (chroma){
+- filter_mb_mbaff_edgecv( h, img_cb, uvlinesize, bS , 1, bqp[0] );
+- filter_mb_mbaff_edgecv( h, img_cb + 4*uvlinesize, uvlinesize, bS+4, 1, bqp[1] );
+- filter_mb_mbaff_edgecv( h, img_cr, uvlinesize, bS , 1, rqp[0] );
+- filter_mb_mbaff_edgecv( h, img_cr + 4*uvlinesize, uvlinesize, bS+4, 1, rqp[1] );
++ if (CHROMA444) {
++ filter_mb_mbaff_edgev ( h, img_cb, uvlinesize, bS , 1, bqp[0] );
++ filter_mb_mbaff_edgev ( h, img_cb + 8*uvlinesize, uvlinesize, bS+4, 1, bqp[1] );
++ filter_mb_mbaff_edgev ( h, img_cr, uvlinesize, bS , 1, rqp[0] );
++ filter_mb_mbaff_edgev ( h, img_cr + 8*uvlinesize, uvlinesize, bS+4, 1, rqp[1] );
++ }else{
++ filter_mb_mbaff_edgecv( h, img_cb, uvlinesize, bS , 1, bqp[0] );
++ filter_mb_mbaff_edgecv( h, img_cb + 4*uvlinesize, uvlinesize, bS+4, 1, bqp[1] );
++ filter_mb_mbaff_edgecv( h, img_cr, uvlinesize, bS , 1, rqp[0] );
++ filter_mb_mbaff_edgecv( h, img_cr + 4*uvlinesize, uvlinesize, bS+4, 1, rqp[1] );
++ }
+ }
+ }else{
+ filter_mb_mbaff_edgev ( h, img_y , 2* linesize, bS , 2, qp [0] );
+ filter_mb_mbaff_edgev ( h, img_y + linesize, 2* linesize, bS+1, 2, qp [1] );
+ if (chroma){
+- filter_mb_mbaff_edgecv( h, img_cb, 2*uvlinesize, bS , 2, bqp[0] );
+- filter_mb_mbaff_edgecv( h, img_cb + uvlinesize, 2*uvlinesize, bS+1, 2, bqp[1] );
+- filter_mb_mbaff_edgecv( h, img_cr, 2*uvlinesize, bS , 2, rqp[0] );
+- filter_mb_mbaff_edgecv( h, img_cr + uvlinesize, 2*uvlinesize, bS+1, 2, rqp[1] );
++ if (CHROMA444) {
++ filter_mb_mbaff_edgev ( h, img_cb, 2*uvlinesize, bS , 2, bqp[0] );
++ filter_mb_mbaff_edgev ( h, img_cb + uvlinesize, 2*uvlinesize, bS+1, 2, bqp[1] );
++ filter_mb_mbaff_edgev ( h, img_cr, 2*uvlinesize, bS , 2, rqp[0] );
++ filter_mb_mbaff_edgev ( h, img_cr + uvlinesize, 2*uvlinesize, bS+1, 2, rqp[1] );
++ }else{
++ filter_mb_mbaff_edgecv( h, img_cb, 2*uvlinesize, bS , 2, bqp[0] );
++ filter_mb_mbaff_edgecv( h, img_cb + uvlinesize, 2*uvlinesize, bS+1, 2, bqp[1] );
++ filter_mb_mbaff_edgecv( h, img_cr, 2*uvlinesize, bS , 2, rqp[0] );
++ filter_mb_mbaff_edgecv( h, img_cr + uvlinesize, 2*uvlinesize, bS+1, 2, rqp[1] );
++ }
+ }
+ }
+ }
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0015-H.264-fix-4-4-4-deblocking-8x8dct-cavlc-MBAFF.patch b/debian/patches/post-0.7/0015-H.264-fix-4-4-4-deblocking-8x8dct-cavlc-MBAFF.patch
new file mode 100644
index 0000000..7709212
--- /dev/null
+++ b/debian/patches/post-0.7/0015-H.264-fix-4-4-4-deblocking-8x8dct-cavlc-MBAFF.patch
@@ -0,0 +1,43 @@
+From 180faac637c9b8cd63fc8007a126e55175d415aa Mon Sep 17 00:00:00 2001
+From: Jason Garrett-Glaser <jason at x264.com>
+Date: Wed, 22 Jun 2011 02:34:02 -0700
+Subject: [PATCH 15/57] H.264: fix 4:4:4 + deblocking + 8x8dct + cavlc + MBAFF
+
+(cherry picked from commit 2702a6f114f996ddfb334f1d8ddfae50e2c7eef7)
+
+Signed-off-by: Reinhard Tartler <siretart at tauware.de>
+---
+ libavcodec/h264_loopfilter.c | 10 +++++-----
+ 1 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/libavcodec/h264_loopfilter.c b/libavcodec/h264_loopfilter.c
+index b88c338..86ecb27 100644
+--- a/libavcodec/h264_loopfilter.c
++++ b/libavcodec/h264_loopfilter.c
+@@ -393,10 +393,10 @@ static av_always_inline void filter_mb_dir(H264Context *h, int mb_x, int mb_y, u
+ AV_WN64A(bS, 0x0003000300030003ULL);
+ } else {
+ if(!CABAC && IS_8x8DCT(s->current_picture.mb_type[mbn_xy])){
+- bS[0]= 1+((h->cbp_table[mbn_xy] & 4)||h->non_zero_count_cache[scan8[0]+0]);
+- bS[1]= 1+((h->cbp_table[mbn_xy] & 4)||h->non_zero_count_cache[scan8[0]+1]);
+- bS[2]= 1+((h->cbp_table[mbn_xy] & 8)||h->non_zero_count_cache[scan8[0]+2]);
+- bS[3]= 1+((h->cbp_table[mbn_xy] & 8)||h->non_zero_count_cache[scan8[0]+3]);
++ bS[0]= 1+((h->cbp_table[mbn_xy] & 0x4000)||h->non_zero_count_cache[scan8[0]+0]);
++ bS[1]= 1+((h->cbp_table[mbn_xy] & 0x4000)||h->non_zero_count_cache[scan8[0]+1]);
++ bS[2]= 1+((h->cbp_table[mbn_xy] & 0x8000)||h->non_zero_count_cache[scan8[0]+2]);
++ bS[3]= 1+((h->cbp_table[mbn_xy] & 0x8000)||h->non_zero_count_cache[scan8[0]+3]);
+ }else{
+ const uint8_t *mbn_nnz = h->non_zero_count[mbn_xy] + 3*4;
+ int i;
+@@ -635,7 +635,7 @@ void ff_h264_filter_mb( H264Context *h, int mb_x, int mb_y, uint8_t *img_y, uint
+ else{
+ bS[i] = 1 + !!(h->non_zero_count_cache[12+8*(i>>1)] |
+ ((!h->pps.cabac && IS_8x8DCT(mbn_type)) ?
+- (h->cbp_table[mbn_xy] & ((MB_FIELD ? (i&2) : (mb_y&1)) ? 8 : 2))
++ (h->cbp_table[mbn_xy] & (((MB_FIELD ? (i&2) : (mb_y&1)) ? 8 : 2) << 12))
+ :
+ h->non_zero_count[mbn_xy][ off[i] ]));
+ }
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0016-alsa-support-unsigned-variants-of-already-supported-.patch b/debian/patches/post-0.7/0016-alsa-support-unsigned-variants-of-already-supported-.patch
new file mode 100644
index 0000000..f2f57d1
--- /dev/null
+++ b/debian/patches/post-0.7/0016-alsa-support-unsigned-variants-of-already-supported-.patch
@@ -0,0 +1,38 @@
+From acb62e998f4d72bd53cd6837cdcb2ba6f59ab3f1 Mon Sep 17 00:00:00 2001
+From: Carl Eugen Hoyos <cehoyos at ag.or.at>
+Date: Thu, 14 Apr 2011 01:04:18 +0200
+Subject: [PATCH 16/57] alsa: support unsigned variants of already supported signed formats.
+
+(cherry picked from commit 2359aeb52d2325ed6c28d4f7579e0999963bcec1)
+
+Signed-off-by: Reinhard Tartler <siretart at tauware.de>
+---
+ libavdevice/alsa-audio-common.c | 7 +++++++
+ 1 files changed, 7 insertions(+), 0 deletions(-)
+
+diff --git a/libavdevice/alsa-audio-common.c b/libavdevice/alsa-audio-common.c
+index 4279790..baa6ac7 100644
+--- a/libavdevice/alsa-audio-common.c
++++ b/libavdevice/alsa-audio-common.c
+@@ -42,11 +42,18 @@ static av_cold snd_pcm_format_t codec_id_to_pcm_format(int codec_id)
+ case CODEC_ID_PCM_F32BE: return SND_PCM_FORMAT_FLOAT_BE;
+ case CODEC_ID_PCM_S32LE: return SND_PCM_FORMAT_S32_LE;
+ case CODEC_ID_PCM_S32BE: return SND_PCM_FORMAT_S32_BE;
++ case CODEC_ID_PCM_U32LE: return SND_PCM_FORMAT_U32_LE;
++ case CODEC_ID_PCM_U32BE: return SND_PCM_FORMAT_U32_BE;
+ case CODEC_ID_PCM_S24LE: return SND_PCM_FORMAT_S24_3LE;
+ case CODEC_ID_PCM_S24BE: return SND_PCM_FORMAT_S24_3BE;
++ case CODEC_ID_PCM_U24LE: return SND_PCM_FORMAT_U24_3LE;
++ case CODEC_ID_PCM_U24BE: return SND_PCM_FORMAT_U24_3BE;
+ case CODEC_ID_PCM_S16LE: return SND_PCM_FORMAT_S16_LE;
+ case CODEC_ID_PCM_S16BE: return SND_PCM_FORMAT_S16_BE;
++ case CODEC_ID_PCM_U16LE: return SND_PCM_FORMAT_U16_LE;
++ case CODEC_ID_PCM_U16BE: return SND_PCM_FORMAT_U16_BE;
+ case CODEC_ID_PCM_S8: return SND_PCM_FORMAT_S8;
++ case CODEC_ID_PCM_U8: return SND_PCM_FORMAT_U8;
+ case CODEC_ID_PCM_MULAW: return SND_PCM_FORMAT_MU_LAW;
+ case CODEC_ID_PCM_ALAW: return SND_PCM_FORMAT_A_LAW;
+ default: return SND_PCM_FORMAT_UNKNOWN;
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0017-build-Remove-dependency-and-editor-backup-files-also.patch b/debian/patches/post-0.7/0017-build-Remove-dependency-and-editor-backup-files-also.patch
new file mode 100644
index 0000000..ef72f0d
--- /dev/null
+++ b/debian/patches/post-0.7/0017-build-Remove-dependency-and-editor-backup-files-also.patch
@@ -0,0 +1,25 @@
+From 4ad56612f94f5e4312ba24155b5c446e151e6ca1 Mon Sep 17 00:00:00 2001
+From: Diego Biurrun <diego at biurrun.de>
+Date: Thu, 23 Jun 2011 12:38:03 +0200
+Subject: [PATCH 17/57] build: Remove dependency and editor backup files also in the doc/ subdirectory.
+
+---
+ Makefile | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 084e175..d6bae76 100644
+--- a/Makefile
++++ b/Makefile
+@@ -172,7 +172,7 @@ testclean:
+ clean:: testclean
+ $(RM) $(ALLPROGS)
+ $(RM) $(CLEANSUFFIXES)
+- $(RM) doc/*.html doc/*.pod doc/*.1
++ $(RM) doc/*.html doc/*.pod doc/*.1 doc/*.d doc/*~
+ $(RM) $(TOOLS)
+ $(RM) $(CLEANSUFFIXES:%=tools/%)
+
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0018-add-changelog-entries-for-added-fourcc-codecs-and-H..patch b/debian/patches/post-0.7/0018-add-changelog-entries-for-added-fourcc-codecs-and-H..patch
new file mode 100644
index 0000000..f23cf74
--- /dev/null
+++ b/debian/patches/post-0.7/0018-add-changelog-entries-for-added-fourcc-codecs-and-H..patch
@@ -0,0 +1,30 @@
+From 9c709f053474dd74890f32662b7d7010e5cc0b0d Mon Sep 17 00:00:00 2001
+From: Reinhard Tartler <siretart at tauware.de>
+Date: Thu, 23 Jun 2011 09:50:43 +0200
+Subject: [PATCH 18/57] add changelog entries for added fourcc codecs and H.264 fixes
+
+---
+ Changelog | 7 +++++++
+ 1 files changed, 7 insertions(+), 0 deletions(-)
+
+diff --git a/Changelog b/Changelog
+index b785197..276812b 100644
+--- a/Changelog
++++ b/Changelog
+@@ -2,6 +2,13 @@ Entries are sorted chronologically from oldest to youngest within each release,
+ releases are sorted from youngest to oldest.
+
+
++version 0.7.1:
++
++- added various additional FOURCC codec identifiers
++- H.264 4:4:4 fixes
++- build system fixes
++
++
+ version 0.7:
+
+ - E-AC-3 audio encoder
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0019-ARM-silence-some-annoying-armcc-warnings.patch b/debian/patches/post-0.7/0019-ARM-silence-some-annoying-armcc-warnings.patch
new file mode 100644
index 0000000..cc697d6
--- /dev/null
+++ b/debian/patches/post-0.7/0019-ARM-silence-some-annoying-armcc-warnings.patch
@@ -0,0 +1,32 @@
+From 9b69efc02b6f34fbe50512d4d108ec5559ebb9ec Mon Sep 17 00:00:00 2001
+From: Mans Rullgard <mans at mansr.com>
+Date: Sat, 25 Jun 2011 18:51:00 +0100
+Subject: [PATCH 19/57] ARM: silence some annoying armcc warnings
+
+This silences warnings about pointer target sign mismatches as
+already done for gcc with -Wno-pointer-sign.
+
+Signed-off-by: Mans Rullgard <mans at mansr.com>
+(cherry picked from commit d0ce090ec553c88eb8e9c303156017417d4599cc)
+
+Signed-off-by: Reinhard Tartler <siretart at tauware.de>
+---
+ configure | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/configure b/configure
+index b26394e..b3c2035 100755
+--- a/configure
++++ b/configure
+@@ -3059,6 +3059,8 @@ elif enabled armcc; then
+ add_cflags -W${armcc_opt},--diag_suppress=1207
+ add_cflags -W${armcc_opt},--diag_suppress=1293 # assignment in condition
+ add_cflags -W${armcc_opt},--diag_suppress=3343 # hardfp compat
++ add_cflags -W${armcc_opt},--diag_suppress=167 # pointer sign
++ add_cflags -W${armcc_opt},--diag_suppress=513 # pointer sign
+ elif enabled tms470; then
+ add_cflags -pds=824 -pds=837
+ elif enabled pathscale; then
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0020-H.264-disable-2tap-qpel-with-CODEC_FLAG2_FAST-and-8-.patch b/debian/patches/post-0.7/0020-H.264-disable-2tap-qpel-with-CODEC_FLAG2_FAST-and-8-.patch
new file mode 100644
index 0000000..a0df714
--- /dev/null
+++ b/debian/patches/post-0.7/0020-H.264-disable-2tap-qpel-with-CODEC_FLAG2_FAST-and-8-.patch
@@ -0,0 +1,30 @@
+From e54fd33848355202c03edb3ebfcdb53b1d71c2ce Mon Sep 17 00:00:00 2001
+From: Jason Garrett-Glaser <jason at x264.com>
+Date: Sun, 26 Jun 2011 00:21:54 -0700
+Subject: [PATCH 20/57] H.264: disable 2tap qpel with CODEC_FLAG2_FAST and >8-bit
+
+2tap qpel isn't implemented yet for high bit depth, so it just breaks decoding.
+(cherry picked from commit 9a0dda8b3ab07fa7be60335715a6c350c907a7b8)
+
+Signed-off-by: Reinhard Tartler <siretart at tauware.de>
+---
+ libavcodec/h264.c | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/libavcodec/h264.c b/libavcodec/h264.c
+index 6bee7c3..2c000a3 100644
+--- a/libavcodec/h264.c
++++ b/libavcodec/h264.c
+@@ -2485,7 +2485,8 @@ static int decode_slice_header(H264Context *h, H264Context *h0){
+
+ s->dropable= h->nal_ref_idc == 0;
+
+- if((s->avctx->flags2 & CODEC_FLAG2_FAST) && !h->nal_ref_idc){
++ /* FIXME: 2tap qpel isn't implemented for high bit depth. */
++ if((s->avctx->flags2 & CODEC_FLAG2_FAST) && !h->nal_ref_idc && !h->pixel_shift){
+ s->me.qpel_put= s->dsp.put_2tap_qpel_pixels_tab;
+ s->me.qpel_avg= s->dsp.avg_2tap_qpel_pixels_tab;
+ }else{
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0021-Add-new-yuv444-pixfmts-to-avcodec_align_dimensions2.patch b/debian/patches/post-0.7/0021-Add-new-yuv444-pixfmts-to-avcodec_align_dimensions2.patch
new file mode 100644
index 0000000..d9c73bf
--- /dev/null
+++ b/debian/patches/post-0.7/0021-Add-new-yuv444-pixfmts-to-avcodec_align_dimensions2.patch
@@ -0,0 +1,31 @@
+From 87eedf69433d95a40830a98bb2d656a04dfd4609 Mon Sep 17 00:00:00 2001
+From: Jason Garrett-Glaser <jason at x264.com>
+Date: Tue, 28 Jun 2011 18:22:23 -0700
+Subject: [PATCH 21/57] Add new yuv444 pixfmts to avcodec_align_dimensions2
+
+Fixes draw_edges crashes with high-bit-depth 4:4:4 decoding.
+(cherry picked from commit da55ee6ccc05efdd9006bb8c31db9012a3326857)
+
+Signed-off-by: Reinhard Tartler <siretart at tauware.de>
+---
+ libavcodec/utils.c | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+diff --git a/libavcodec/utils.c b/libavcodec/utils.c
+index 1e58864..c32fda2 100644
+--- a/libavcodec/utils.c
++++ b/libavcodec/utils.c
+@@ -142,6 +142,10 @@ void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height, int l
+ case PIX_FMT_YUV420P10BE:
+ case PIX_FMT_YUV422P10LE:
+ case PIX_FMT_YUV422P10BE:
++ case PIX_FMT_YUV444P9LE:
++ case PIX_FMT_YUV444P9BE:
++ case PIX_FMT_YUV444P10LE:
++ case PIX_FMT_YUV444P10BE:
+ w_align= 16; //FIXME check for non mpeg style codecs and use less alignment
+ h_align= 16;
+ if(s->codec_id == CODEC_ID_MPEG2VIDEO || s->codec_id == CODEC_ID_MJPEG || s->codec_id == CODEC_ID_AMV || s->codec_id == CODEC_ID_THP || s->codec_id == CODEC_ID_H264)
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0022-wavpack-skip-blocks-with-no-samples.patch b/debian/patches/post-0.7/0022-wavpack-skip-blocks-with-no-samples.patch
new file mode 100644
index 0000000..12c9e7e
--- /dev/null
+++ b/debian/patches/post-0.7/0022-wavpack-skip-blocks-with-no-samples.patch
@@ -0,0 +1,50 @@
+From 9482dd0d17435c9b5b46d44cdf8af21b1f09235c Mon Sep 17 00:00:00 2001
+From: Kostya Shishkov <kostya.shishkov at gmail.com>
+Date: Tue, 28 Jun 2011 11:49:32 +0200
+Subject: [PATCH 22/57] wavpack: skip blocks with no samples
+
+These blocks don't report audio stream parameters and they are not needed
+for decoding.
+
+Signed-off-by: Mans Rullgard <mans at mansr.com>
+(cherry picked from commit cb7b55b0962f5503f601d6b557f8945444b73395)
+
+Signed-off-by: Reinhard Tartler <siretart at tauware.de>
+---
+ libavformat/wv.c | 13 +++++++++++--
+ 1 files changed, 11 insertions(+), 2 deletions(-)
+
+diff --git a/libavformat/wv.c b/libavformat/wv.c
+index 8f9d0fd..d6d7099 100644
+--- a/libavformat/wv.c
++++ b/libavformat/wv.c
+@@ -110,6 +110,9 @@ static int wv_read_block_header(AVFormatContext *ctx, AVIOContext *pb, int appen
+ size = wc->blksize;
+ }
+ wc->flags = AV_RL32(wc->extra + 4);
++ // blocks with zero samples don't contain actual audio information and should be ignored
++ if (!AV_RN32(wc->extra))
++ return 0;
+ //parse flags
+ bpp = ((wc->flags & 3) + 1) << 3;
+ chan = 1 + !(wc->flags & WV_MONO);
+@@ -207,8 +210,14 @@ static int wv_read_header(AVFormatContext *s,
+ AVStream *st;
+
+ wc->block_parsed = 0;
+- if(wv_read_block_header(s, pb, 0) < 0)
+- return -1;
++ for(;;){
++ if(wv_read_block_header(s, pb, 0) < 0)
++ return -1;
++ if(!AV_RN32(wc->extra))
++ avio_skip(pb, wc->blksize - 24);
++ else
++ break;
++ }
+
+ /* now we are ready: build format streams */
+ st = av_new_stream(s, 0);
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0023-ogg-fix-double-free-when-finding-length-of-small-cha.patch b/debian/patches/post-0.7/0023-ogg-fix-double-free-when-finding-length-of-small-cha.patch
new file mode 100644
index 0000000..11fa9dd
--- /dev/null
+++ b/debian/patches/post-0.7/0023-ogg-fix-double-free-when-finding-length-of-small-cha.patch
@@ -0,0 +1,34 @@
+From cb66b552700c4fe54f3387eb12207049ff63dfe3 Mon Sep 17 00:00:00 2001
+From: Ronald S. Bultje <rsbultje at gmail.com>
+Date: Tue, 28 Jun 2011 22:24:21 -0700
+Subject: [PATCH 23/57] ogg: fix double free when finding length of small chained oggs.
+
+ogg_save() copies streams[], but doesn't keep track of free()'ed
+struct members. Thus, if in between a call to ogg_save() and
+ogg_restore(), streams[].private was free()'ed, this would result
+in a double free -> crash, which happened when e.g. playing small
+chained ogg fragments.
+(cherry picked from commit 9ed6cbc3ee2ae3e7472fb25192a7e36fd7b15533)
+
+Signed-off-by: Reinhard Tartler <siretart at tauware.de>
+---
+ libavformat/oggdec.c | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/libavformat/oggdec.c b/libavformat/oggdec.c
+index f1ad630..998a33b 100644
+--- a/libavformat/oggdec.c
++++ b/libavformat/oggdec.c
+@@ -238,7 +238,8 @@ static int ogg_read_page(AVFormatContext *s, int *str)
+
+ for (n = 0; n < ogg->nstreams; n++) {
+ av_freep(&ogg->streams[n].buf);
+- av_freep(&ogg->streams[n].private);
++ if (!ogg->state || ogg->state->streams[n].private != ogg->streams[n].private)
++ av_freep(&ogg->streams[n].private);
+ }
+ ogg->curidx = -1;
+ ogg->nstreams = 0;
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0024-lavf-use-the-correct-pointer-in-av_open_input_stream.patch b/debian/patches/post-0.7/0024-lavf-use-the-correct-pointer-in-av_open_input_stream.patch
new file mode 100644
index 0000000..747c7e3
--- /dev/null
+++ b/debian/patches/post-0.7/0024-lavf-use-the-correct-pointer-in-av_open_input_stream.patch
@@ -0,0 +1,30 @@
+From 9da3063e1cadf0bb4b910e4d9bcd9f859f2bbec6 Mon Sep 17 00:00:00 2001
+From: Anton Khirnov <anton at khirnov.net>
+Date: Fri, 1 Jul 2011 21:24:17 +0200
+Subject: [PATCH 24/57] lavf: use the correct pointer in av_open_input_stream().
+
+(cherry picked from commit 5001d6ef4a2b70fe903b1d2e3e64c6ad7cc1cfa6)
+
+Signed-off-by: Reinhard Tartler <siretart at tauware.de>
+---
+ libavformat/utils.c | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/libavformat/utils.c b/libavformat/utils.c
+index 7370c60..29390b8 100644
+--- a/libavformat/utils.c
++++ b/libavformat/utils.c
+@@ -461,8 +461,9 @@ int av_open_input_stream(AVFormatContext **ic_ptr,
+ }
+ ic->pb = pb;
+
+- err = avformat_open_input(ic_ptr, filename, fmt, &opts);
++ err = avformat_open_input(&ic, filename, fmt, &opts);
+
++ *ic_ptr = ic;
+ fail:
+ av_dict_free(&opts);
+ return err;
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0025-lavf-restore-old-behavior-for-custom-AVIOContex-with.patch b/debian/patches/post-0.7/0025-lavf-restore-old-behavior-for-custom-AVIOContex-with.patch
new file mode 100644
index 0000000..e3fcd7d
--- /dev/null
+++ b/debian/patches/post-0.7/0025-lavf-restore-old-behavior-for-custom-AVIOContex-with.patch
@@ -0,0 +1,42 @@
+From b263e94f774fa612c8329ddd95b35fdf5dac86d5 Mon Sep 17 00:00:00 2001
+From: Anton Khirnov <anton at khirnov.net>
+Date: Fri, 24 Jun 2011 07:58:16 +0200
+Subject: [PATCH 25/57] lavf: restore old behavior for custom AVIOContex with an AVFMT_NOFILE format.
+
+av_open_input_stream used to allow this, even though it makes no sense.
+Make it just print a warning instead of failing, thus restoring
+compatibility.
+
+Note that avformat_open_input() will still reject this combination.
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+(cherry picked from commit 4f731c4429e1fe66a5c92ff15feb63253a36d8fb)
+
+Signed-off-by: Reinhard Tartler <siretart at tauware.de>
+---
+ libavformat/utils.c | 7 ++++++-
+ 1 files changed, 6 insertions(+), 1 deletions(-)
+
+diff --git a/libavformat/utils.c b/libavformat/utils.c
+index 29390b8..0e6b001 100644
+--- a/libavformat/utils.c
++++ b/libavformat/utils.c
+@@ -459,9 +459,14 @@ int av_open_input_stream(AVFormatContext **ic_ptr,
+ err = AVERROR(ENOMEM);
+ goto fail;
+ }
+- ic->pb = pb;
++ if (pb && fmt && fmt->flags & AVFMT_NOFILE)
++ av_log(ic, AV_LOG_WARNING, "Custom AVIOContext makes no sense and "
++ "will be ignored with AVFMT_NOFILE format.\n");
++ else
++ ic->pb = pb;
+
+ err = avformat_open_input(&ic, filename, fmt, &opts);
++ ic->pb = ic->pb ? ic->pb : pb; // don't leak custom pb if it wasn't set above
+
+ *ic_ptr = ic;
+ fail:
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0026-avformat-doxify-the-Metadata-API.patch b/debian/patches/post-0.7/0026-avformat-doxify-the-Metadata-API.patch
new file mode 100644
index 0000000..9960689
--- /dev/null
+++ b/debian/patches/post-0.7/0026-avformat-doxify-the-Metadata-API.patch
@@ -0,0 +1,124 @@
+From f1d1ef810ab4b1d5449b229c4be81321de5dff9c Mon Sep 17 00:00:00 2001
+From: Reinhard Tartler <siretart at tauware.de>
+Date: Fri, 1 Jul 2011 20:49:14 +0200
+Subject: [PATCH 26/57] avformat: doxify the Metadata API
+
+convert the comment that documents the metadata API to use
+the doxygen markup
+(cherry picked from commit 1a53a438dc04e74628b39f29d3ff81ae4aa086a0)
+
+Signed-off-by: Reinhard Tartler <siretart at tauware.de>
+---
+ libavformat/avformat.h | 73 +++++++++++++++++++++++++----------------------
+ 1 files changed, 39 insertions(+), 34 deletions(-)
+
+diff --git a/libavformat/avformat.h b/libavformat/avformat.h
+index 9abc9c5..05e80f1 100644
+--- a/libavformat/avformat.h
++++ b/libavformat/avformat.h
+@@ -48,63 +48,68 @@ const char *avformat_license(void);
+ struct AVFormatContext;
+
+
+-/*
+- * Public Metadata API.
++/**
++ * @defgroup metadata_api Public Metadata API
++ * @{
+ * The metadata API allows libavformat to export metadata tags to a client
+ * application using a sequence of key/value pairs. Like all strings in Libav,
+ * metadata must be stored as UTF-8 encoded Unicode. Note that metadata
+ * exported by demuxers isn't checked to be valid UTF-8 in most cases.
+ * Important concepts to keep in mind:
+- * 1. Keys are unique; there can never be 2 tags with the same key. This is
++ * - Keys are unique; there can never be 2 tags with the same key. This is
+ * also meant semantically, i.e., a demuxer should not knowingly produce
+ * several keys that are literally different but semantically identical.
+ * E.g., key=Author5, key=Author6. In this example, all authors must be
+ * placed in the same tag.
+- * 2. Metadata is flat, not hierarchical; there are no subtags. If you
++ * - Metadata is flat, not hierarchical; there are no subtags. If you
+ * want to store, e.g., the email address of the child of producer Alice
+ * and actor Bob, that could have key=alice_and_bobs_childs_email_address.
+- * 3. Several modifiers can be applied to the tag name. This is done by
++ * - Several modifiers can be applied to the tag name. This is done by
+ * appending a dash character ('-') and the modifier name in the order
+ * they appear in the list below -- e.g. foo-eng-sort, not foo-sort-eng.
+- * a) language -- a tag whose value is localized for a particular language
++ * - language -- a tag whose value is localized for a particular language
+ * is appended with the ISO 639-2/B 3-letter language code.
+ * For example: Author-ger=Michael, Author-eng=Mike
+ * The original/default language is in the unqualified "Author" tag.
+ * A demuxer should set a default if it sets any translated tag.
+- * b) sorting -- a modified version of a tag that should be used for
++ * - sorting -- a modified version of a tag that should be used for
+ * sorting will have '-sort' appended. E.g. artist="The Beatles",
+ * artist-sort="Beatles, The".
+ *
+- * 4. Demuxers attempt to export metadata in a generic format, however tags
++ * - Demuxers attempt to export metadata in a generic format, however tags
+ * with no generic equivalents are left as they are stored in the container.
+ * Follows a list of generic tag names:
+ *
+- * album -- name of the set this work belongs to
+- * album_artist -- main creator of the set/album, if different from artist.
+- * e.g. "Various Artists" for compilation albums.
+- * artist -- main creator of the work
+- * comment -- any additional description of the file.
+- * composer -- who composed the work, if different from artist.
+- * copyright -- name of copyright holder.
+- * creation_time-- date when the file was created, preferably in ISO 8601.
+- * date -- date when the work was created, preferably in ISO 8601.
+- * disc -- number of a subset, e.g. disc in a multi-disc collection.
+- * encoder -- name/settings of the software/hardware that produced the file.
+- * encoded_by -- person/group who created the file.
+- * filename -- original name of the file.
+- * genre -- <self-evident>.
+- * language -- main language in which the work is performed, preferably
+- * in ISO 639-2 format. Multiple languages can be specified by
+- * separating them with commas.
+- * performer -- artist who performed the work, if different from artist.
+- * E.g for "Also sprach Zarathustra", artist would be "Richard
+- * Strauss" and performer "London Philharmonic Orchestra".
+- * publisher -- name of the label/publisher.
+- * service_name -- name of the service in broadcasting (channel name).
+- * service_provider -- name of the service provider in broadcasting.
+- * title -- name of the work.
+- * track -- number of this work in the set, can be in form current/total.
+- * variant_bitrate -- the total bitrate of the bitrate variant that the current stream is part of
++ @verbatim
++ album -- name of the set this work belongs to
++ album_artist -- main creator of the set/album, if different from artist.
++ e.g. "Various Artists" for compilation albums.
++ artist -- main creator of the work
++ comment -- any additional description of the file.
++ composer -- who composed the work, if different from artist.
++ copyright -- name of copyright holder.
++ creation_time-- date when the file was created, preferably in ISO 8601.
++ date -- date when the work was created, preferably in ISO 8601.
++ disc -- number of a subset, e.g. disc in a multi-disc collection.
++ encoder -- name/settings of the software/hardware that produced the file.
++ encoded_by -- person/group who created the file.
++ filename -- original name of the file.
++ genre -- <self-evident>.
++ language -- main language in which the work is performed, preferably
++ in ISO 639-2 format. Multiple languages can be specified by
++ separating them with commas.
++ performer -- artist who performed the work, if different from artist.
++ E.g for "Also sprach Zarathustra", artist would be "Richard
++ Strauss" and performer "London Philharmonic Orchestra".
++ publisher -- name of the label/publisher.
++ service_name -- name of the service in broadcasting (channel name).
++ service_provider -- name of the service provider in broadcasting.
++ title -- name of the work.
++ track -- number of this work in the set, can be in form current/total.
++ variant_bitrate -- the total bitrate of the bitrate variant that the current stream is part of
++ @endverbatim
++ *
++ * @}
+ */
+
+ #if FF_API_OLD_METADATA2
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0027-doxygen-be-more-permissive-when-searching-for-API-ex.patch b/debian/patches/post-0.7/0027-doxygen-be-more-permissive-when-searching-for-API-ex.patch
new file mode 100644
index 0000000..683bc61
--- /dev/null
+++ b/debian/patches/post-0.7/0027-doxygen-be-more-permissive-when-searching-for-API-ex.patch
@@ -0,0 +1,34 @@
+From b91ebb60d898510bc131d7ff9157fcbb0302d532 Mon Sep 17 00:00:00 2001
+From: Reinhard Tartler <siretart at tauware.de>
+Date: Fri, 1 Jul 2011 20:53:09 +0200
+Subject: [PATCH 27/57] doxygen: be more permissive when searching for API examples
+
+(cherry picked from commit 7655cfb1b8d8a70e8cc4b1ca811bfc3f293768d8)
+---
+ Doxyfile | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Doxyfile b/Doxyfile
+index 5d80a2b..b75d2d6 100644
+--- a/Doxyfile
++++ b/Doxyfile
+@@ -591,14 +591,14 @@ EXCLUDE_SYMBOLS =
+ # directories that contain example code fragments that are included (see
+ # the \include command).
+
+-EXAMPLE_PATH =
++EXAMPLE_PATH = libavcodec/ libavformat/
+
+ # If the value of the EXAMPLE_PATH tag contains directories, you can use the
+ # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+ # and *.h) to filter out the source-files in the directories. If left
+ # blank all files are included.
+
+-EXAMPLE_PATTERNS =
++EXAMPLE_PATTERNS = *-example.c
+
+ # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+ # searched for input files to be used with the \include or \dontinclude
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0028-doxygen-Prefer-member-groups-over-grouping-into-modu.patch b/debian/patches/post-0.7/0028-doxygen-Prefer-member-groups-over-grouping-into-modu.patch
new file mode 100644
index 0000000..8754167
--- /dev/null
+++ b/debian/patches/post-0.7/0028-doxygen-Prefer-member-groups-over-grouping-into-modu.patch
@@ -0,0 +1,865 @@
+From 2fe47b21c825460f01d3cb5546b29b686b909e4d Mon Sep 17 00:00:00 2001
+From: Reinhard Tartler <siretart at tauware.de>
+Date: Sun, 3 Jul 2011 18:55:01 +0200
+Subject: [PATCH 28/57] doxygen: Prefer member groups over grouping into modules
+
+Before this, almost all module groups have been used for grouping functions
+and fields in structures semantically. This causes them to not appear
+properly in the file documentation and needlessly clutters up the "Modules"
+index.
+
+Additionally, this commit streamlines some spelling and appearances.
+(cherry picked from commit 21a19b7912fe0622f3d1748ff102fcc7bc7a974a)
+---
+ libavcodec/aac.h | 9 ++-
+ libavcodec/ac3.h | 4 +-
+ libavcodec/ac3dec.h | 30 +++++-----
+ libavcodec/amrnbdec.c | 16 +++---
+ libavcodec/apedec.c | 2 +-
+ libavcodec/ass.h | 3 +-
+ libavcodec/avcodec.h | 4 +-
+ libavcodec/h264.h | 2 +-
+ libavcodec/qcelpdata.h | 4 +-
+ libavcodec/rv34.c | 155 +++++++++++++++++++++++------------------------
+ libavcodec/rv40data.h | 2 +-
+ libavcodec/sbr.h | 8 +-
+ libavcodec/tableprint.h | 3 +-
+ libavcodec/vc1.c | 2 +-
+ libavcodec/vc1dec.c | 6 +-
+ libavcodec/wmavoice.c | 22 ++++---
+ libavformat/avio.h | 12 ++--
+ libavformat/rtmppkt.h | 2 +-
+ libavutil/lzo.h | 2 +-
+ 19 files changed, 143 insertions(+), 145 deletions(-)
+
+diff --git a/libavcodec/aac.h b/libavcodec/aac.h
+index 76b6a78..4861ec0 100644
+--- a/libavcodec/aac.h
++++ b/libavcodec/aac.h
+@@ -258,7 +258,7 @@ typedef struct {
+ DynamicRangeControl che_drc;
+
+ /**
+- * @defgroup elements Channel element related data.
++ * @name Channel element related data
+ * @{
+ */
+ enum ChannelPosition che_pos[4][MAX_ELEM_ID]; /**< channel element channel mapping with the
+@@ -270,14 +270,15 @@ typedef struct {
+ /** @} */
+
+ /**
+- * @defgroup temporary aligned temporary buffers (We do not want to have these on the stack.)
++ * @name temporary aligned temporary buffers
++ * (We do not want to have these on the stack.)
+ * @{
+ */
+ DECLARE_ALIGNED(32, float, buf_mdct)[1024];
+ /** @} */
+
+ /**
+- * @defgroup tables Computed / set up during initialization.
++ * @name Computed / set up during initialization
+ * @{
+ */
+ FFTContext mdct;
+@@ -289,7 +290,7 @@ typedef struct {
+ /** @} */
+
+ /**
+- * @defgroup output Members used for output interleaving.
++ * @name Members used for output interleaving
+ * @{
+ */
+ float *output_data[MAX_CHANNELS]; ///< Points to each element's 'ret' buffer (PCM output).
+diff --git a/libavcodec/ac3.h b/libavcodec/ac3.h
+index c06f3d5..9adad93 100644
+--- a/libavcodec/ac3.h
++++ b/libavcodec/ac3.h
+@@ -92,7 +92,7 @@ typedef struct AC3BitAllocParameters {
+ * Coded AC-3 header values up to the lfeon element, plus derived values.
+ */
+ typedef struct {
+- /** @defgroup coded Coded elements
++ /** @name Coded elements
+ * @{
+ */
+ uint16_t sync_word;
+@@ -110,7 +110,7 @@ typedef struct {
+ int num_blocks; ///< number of audio blocks
+ /** @} */
+
+- /** @defgroup derived Derived values
++ /** @name Derived values
+ * @{
+ */
+ uint8_t sr_shift;
+diff --git a/libavcodec/ac3dec.h b/libavcodec/ac3dec.h
+index 590bee6..aed8743 100644
+--- a/libavcodec/ac3dec.h
++++ b/libavcodec/ac3dec.h
+@@ -67,7 +67,7 @@ typedef struct {
+ GetBitContext gbc; ///< bitstream reader
+ uint8_t *input_buffer; ///< temp buffer to prevent overread
+
+-///@defgroup bsi bit stream information
++///@name Bit stream information
+ ///@{
+ int frame_type; ///< frame type (strmtyp)
+ int substreamid; ///< substream identification
+@@ -85,7 +85,7 @@ typedef struct {
+ int eac3; ///< indicates if current frame is E-AC-3
+ ///@}
+
+-///@defgroup audfrm frame syntax parameters
++///@name Frame syntax parameters
+ int snr_offset_strategy; ///< SNR offset strategy (snroffststr)
+ int block_switch_syntax; ///< block switch syntax enabled (blkswe)
+ int dither_flag_syntax; ///< dither flag syntax enabled (dithflage)
+@@ -95,7 +95,7 @@ typedef struct {
+ int skip_syntax; ///< skip field syntax enabled (skipflde)
+ ///@}
+
+-///@defgroup cpl standard coupling
++///@name Standard coupling
+ int cpl_in_use[AC3_MAX_BLOCKS]; ///< coupling in use (cplinu)
+ int cpl_strategy_exists[AC3_MAX_BLOCKS];///< coupling strategy exists (cplstre)
+ int channel_in_cpl[AC3_MAX_CHANNELS]; ///< channel in coupling (chincpl)
+@@ -108,7 +108,7 @@ typedef struct {
+ int cpl_coords[AC3_MAX_CHANNELS][AC3_MAX_CPL_BANDS]; ///< coupling coordinates (cplco)
+ ///@}
+
+-///@defgroup spx spectral extension
++///@name Spectral extension
+ ///@{
+ int spx_in_use; ///< spectral extension in use (spxinu)
+ uint8_t channel_uses_spx[AC3_MAX_CHANNELS]; ///< channel uses spectral extension (chinspx)
+@@ -124,12 +124,12 @@ typedef struct {
+ float spx_signal_blend[AC3_MAX_CHANNELS][SPX_MAX_BANDS];///< spx signal blending factor (sblendfact)
+ ///@}
+
+-///@defgroup aht adaptive hybrid transform
++///@name Adaptive hybrid transform
+ int channel_uses_aht[AC3_MAX_CHANNELS]; ///< channel AHT in use (chahtinu)
+ int pre_mantissa[AC3_MAX_CHANNELS][AC3_MAX_COEFS][AC3_MAX_BLOCKS]; ///< pre-IDCT mantissas
+ ///@}
+
+-///@defgroup channel channel
++///@name Channel
+ int fbw_channels; ///< number of full-bandwidth channels
+ int channels; ///< number of total channels
+ int lfe_ch; ///< index of LFE channel
+@@ -139,27 +139,27 @@ typedef struct {
+ int out_channels; ///< number of output channels
+ ///@}
+
+-///@defgroup dynrng dynamic range
++///@name Dynamic range
+ float dynamic_range[2]; ///< dynamic range
+ ///@}
+
+-///@defgroup bandwidth bandwidth
++///@name Bandwidth
+ int start_freq[AC3_MAX_CHANNELS]; ///< start frequency bin (strtmant)
+ int end_freq[AC3_MAX_CHANNELS]; ///< end frequency bin (endmant)
+ ///@}
+
+-///@defgroup rematrixing rematrixing
++///@name Rematrixing
+ int num_rematrixing_bands; ///< number of rematrixing bands (nrematbnd)
+ int rematrixing_flags[4]; ///< rematrixing flags (rematflg)
+ ///@}
+
+-///@defgroup exponents exponents
++///@name Exponents
+ int num_exp_groups[AC3_MAX_CHANNELS]; ///< Number of exponent groups (nexpgrp)
+ int8_t dexps[AC3_MAX_CHANNELS][AC3_MAX_COEFS]; ///< decoded exponents
+ int exp_strategy[AC3_MAX_BLOCKS][AC3_MAX_CHANNELS]; ///< exponent strategies (expstr)
+ ///@}
+
+-///@defgroup bitalloc bit allocation
++///@name Bit allocation
+ AC3BitAllocParameters bit_alloc_params; ///< bit allocation parameters
+ int first_cpl_leak; ///< first coupling leak state (firstcplleak)
+ int snr_offset[AC3_MAX_CHANNELS]; ///< signal-to-noise ratio offsets (snroffst)
+@@ -175,25 +175,25 @@ typedef struct {
+ uint8_t dba_values[AC3_MAX_CHANNELS][8]; ///< delta values for each segment
+ ///@}
+
+-///@defgroup dithering zero-mantissa dithering
++///@name Zero-mantissa dithering
+ int dither_flag[AC3_MAX_CHANNELS]; ///< dither flags (dithflg)
+ AVLFG dith_state; ///< for dither generation
+ ///@}
+
+-///@defgroup imdct IMDCT
++///@name IMDCT
+ int block_switch[AC3_MAX_CHANNELS]; ///< block switch flags (blksw)
+ FFTContext imdct_512; ///< for 512 sample IMDCT
+ FFTContext imdct_256; ///< for 256 sample IMDCT
+ ///@}
+
+-///@defgroup opt optimization
++///@name Optimization
+ DSPContext dsp; ///< for optimization
+ AC3DSPContext ac3dsp;
+ FmtConvertContext fmt_conv; ///< optimized conversion functions
+ float mul_bias; ///< scaling for float_to_int16 conversion
+ ///@}
+
+-///@defgroup arrays aligned arrays
++///@name Aligned arrays
+ DECLARE_ALIGNED(16, int, fixed_coeffs)[AC3_MAX_CHANNELS][AC3_MAX_COEFS]; ///< fixed-point transform coefficients
+ DECLARE_ALIGNED(32, float, transform_coeffs)[AC3_MAX_CHANNELS][AC3_MAX_COEFS]; ///< transform coefficients
+ DECLARE_ALIGNED(32, float, delay)[AC3_MAX_CHANNELS][AC3_BLOCK_SIZE]; ///< delay - added to the next block
+diff --git a/libavcodec/amrnbdec.c b/libavcodec/amrnbdec.c
+index 4e24e26..1c90aad 100644
+--- a/libavcodec/amrnbdec.c
++++ b/libavcodec/amrnbdec.c
+@@ -204,7 +204,7 @@ static enum Mode unpack_bitstream(AMRContext *p, const uint8_t *buf,
+ }
+
+
+-/// @defgroup amr_lpc_decoding AMR pitch LPC coefficient decoding functions
++/// @name AMR pitch LPC coefficient decoding functions
+ /// @{
+
+ /**
+@@ -341,7 +341,7 @@ static void lsf2lsp_3(AMRContext *p)
+ /// @}
+
+
+-/// @defgroup amr_pitch_vector_decoding AMR pitch vector decoding functions
++/// @name AMR pitch vector decoding functions
+ /// @{
+
+ /**
+@@ -403,7 +403,7 @@ static void decode_pitch_vector(AMRContext *p,
+ /// @}
+
+
+-/// @defgroup amr_algebraic_code_book AMR algebraic code book (fixed) vector decoding functions
++/// @name AMR algebraic code book (fixed) vector decoding functions
+ /// @{
+
+ /**
+@@ -547,7 +547,7 @@ static void pitch_sharpening(AMRContext *p, int subframe, enum Mode mode,
+ /// @}
+
+
+-/// @defgroup amr_gain_decoding AMR gain decoding functions
++/// @name AMR gain decoding functions
+ /// @{
+
+ /**
+@@ -633,7 +633,7 @@ static void decode_gains(AMRContext *p, const AMRNBSubframe *amr_subframe,
+ /// @}
+
+
+-/// @defgroup amr_pre_processing AMR pre-processing functions
++/// @name AMR preprocessing functions
+ /// @{
+
+ /**
+@@ -751,7 +751,7 @@ static const float *anti_sparseness(AMRContext *p, AMRFixed *fixed_sparse,
+ /// @}
+
+
+-/// @defgroup amr_synthesis AMR synthesis functions
++/// @name AMR synthesis functions
+ /// @{
+
+ /**
+@@ -812,7 +812,7 @@ static int synthesis(AMRContext *p, float *lpc,
+ /// @}
+
+
+-/// @defgroup amr_update AMR update functions
++/// @name AMR update functions
+ /// @{
+
+ /**
+@@ -837,7 +837,7 @@ static void update_state(AMRContext *p)
+ /// @}
+
+
+-/// @defgroup amr_postproc AMR Post processing functions
++/// @name AMR Postprocessing functions
+ /// @{
+
+ /**
+diff --git a/libavcodec/apedec.c b/libavcodec/apedec.c
+index d5a7efd..f92b375 100644
+--- a/libavcodec/apedec.c
++++ b/libavcodec/apedec.c
+@@ -217,7 +217,7 @@ static av_cold int ape_decode_close(AVCodecContext * avctx)
+ }
+
+ /**
+- * @defgroup rangecoder APE range decoder
++ * @name APE range decoding functions
+ * @{
+ */
+
+diff --git a/libavcodec/ass.h b/libavcodec/ass.h
+index d350cf3..594b5f3 100644
+--- a/libavcodec/ass.h
++++ b/libavcodec/ass.h
+@@ -25,8 +25,7 @@
+ #include "avcodec.h"
+
+ /**
+- * Default values for ASS style.
+- * @defgroup ass_default
++ * @name Default values for ASS style
+ * @{
+ */
+ #define ASS_DEFAULT_FONT "Arial"
+diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
+index a70d8ad..835279e 100644
+--- a/libavcodec/avcodec.h
++++ b/libavcodec/avcodec.h
+@@ -2488,7 +2488,7 @@ typedef struct AVCodecContext {
+
+ #if FF_API_FLAC_GLOBAL_OPTS
+ /**
+- * @defgroup flac_opts FLAC options
++ * @name FLAC options
+ * @deprecated Use FLAC encoder private options instead.
+ * @{
+ */
+@@ -2897,7 +2897,7 @@ typedef struct AVCodec {
+ const AVProfile *profiles; ///< array of recognized profiles, or NULL if unknown, array is terminated by {FF_PROFILE_UNKNOWN}
+
+ /**
+- * @defgroup framethreading Frame-level threading support functions.
++ * @name Frame-level threading support functions
+ * @{
+ */
+ /**
+diff --git a/libavcodec/h264.h b/libavcodec/h264.h
+index 3abf895..e3cc815 100644
+--- a/libavcodec/h264.h
++++ b/libavcodec/h264.h
+@@ -507,7 +507,7 @@ typedef struct H264Context{
+ int cabac_init_idc;
+
+ /**
+- * @defgroup multithreading Members for slice based multithreading
++ * @name Members for slice based multithreading
+ * @{
+ */
+ struct H264Context *thread_context[MAX_THREADS];
+diff --git a/libavcodec/qcelpdata.h b/libavcodec/qcelpdata.h
+index df33e91..672da49 100644
+--- a/libavcodec/qcelpdata.h
++++ b/libavcodec/qcelpdata.h
+@@ -38,14 +38,14 @@
+ * QCELP unpacked data frame
+ */
+ typedef struct {
+-/// @defgroup qcelp_codebook_parameters QCELP excitation codebook parameters
++/// @name QCELP excitation codebook parameters
+ /// @{
+ uint8_t cbsign[16]; ///!< sign of the codebook gain for each codebook subframe
+ uint8_t cbgain[16]; ///!< unsigned codebook gain for each codebook subframe
+ uint8_t cindex[16]; ///!< codebook index for each codebook subframe
+ /// @}
+
+-/// @defgroup qcelp_pitch_parameters QCELP pitch prediction parameters
++/// @name QCELP pitch prediction parameters
+ /// @{
+ uint8_t plag[4]; ///!< pitch lag for each pitch subframe
+ uint8_t pfrac[4]; ///!< fractional pitch lag for each pitch subframe
+diff --git a/libavcodec/rv34.c b/libavcodec/rv34.c
+index b5d314c..c5dcfdc 100644
+--- a/libavcodec/rv34.c
++++ b/libavcodec/rv34.c
+@@ -62,8 +62,10 @@ static const int rv34_mb_type_to_lavc[12] = {
+
+ static RV34VLC intra_vlcs[NUM_INTRA_TABLES], inter_vlcs[NUM_INTER_TABLES];
+
++static int rv34_decode_mv(RV34DecContext *r, int block_type);
++
+ /**
+- * @defgroup vlc RV30/40 VLC generating functions
++ * @name RV30/40 VLC generating functions
+ * @{
+ */
+
+@@ -171,7 +173,7 @@ static av_cold void rv34_init_tables(void)
+
+
+ /**
+- * @defgroup transform RV30/40 inverse transform functions
++ * @name RV30/40 inverse transform functions
+ * @{
+ */
+
+@@ -246,7 +248,7 @@ static void rv34_inv_transform_noround(DCTELEM *block){
+
+
+ /**
+- * @defgroup block RV30/40 4x4 block decoding functions
++ * @name RV30/40 4x4 block decoding functions
+ * @{
+ */
+
+@@ -393,7 +395,7 @@ static inline void rv34_dequant4x4_16x16(DCTELEM *block, int Qdc, int Q)
+
+
+ /**
+- * @defgroup rv3040_bitstream RV30/40 bitstream parsing
++ * @name RV30/40 bitstream parsing
+ * @{
+ */
+
+@@ -432,10 +434,76 @@ static inline int rv34_decode_dquant(GetBitContext *gb, int quant)
+ return get_bits(gb, 5);
+ }
+
++/**
++ * Decode macroblock header and return CBP in case of success, -1 otherwise.
++ */
++static int rv34_decode_mb_header(RV34DecContext *r, int8_t *intra_types)
++{
++ MpegEncContext *s = &r->s;
++ GetBitContext *gb = &s->gb;
++ int mb_pos = s->mb_x + s->mb_y * s->mb_stride;
++ int i, t;
++
++ if(!r->si.type){
++ r->is16 = get_bits1(gb);
++ if(!r->is16 && !r->rv30){
++ if(!get_bits1(gb))
++ av_log(s->avctx, AV_LOG_ERROR, "Need DQUANT\n");
++ }
++ s->current_picture_ptr->mb_type[mb_pos] = r->is16 ? MB_TYPE_INTRA16x16 : MB_TYPE_INTRA;
++ r->block_type = r->is16 ? RV34_MB_TYPE_INTRA16x16 : RV34_MB_TYPE_INTRA;
++ }else{
++ r->block_type = r->decode_mb_info(r);
++ if(r->block_type == -1)
++ return -1;
++ s->current_picture_ptr->mb_type[mb_pos] = rv34_mb_type_to_lavc[r->block_type];
++ r->mb_type[mb_pos] = r->block_type;
++ if(r->block_type == RV34_MB_SKIP){
++ if(s->pict_type == AV_PICTURE_TYPE_P)
++ r->mb_type[mb_pos] = RV34_MB_P_16x16;
++ if(s->pict_type == AV_PICTURE_TYPE_B)
++ r->mb_type[mb_pos] = RV34_MB_B_DIRECT;
++ }
++ r->is16 = !!IS_INTRA16x16(s->current_picture_ptr->mb_type[mb_pos]);
++ rv34_decode_mv(r, r->block_type);
++ if(r->block_type == RV34_MB_SKIP){
++ fill_rectangle(intra_types, 4, 4, r->intra_types_stride, 0, sizeof(intra_types[0]));
++ return 0;
++ }
++ r->chroma_vlc = 1;
++ r->luma_vlc = 0;
++ }
++ if(IS_INTRA(s->current_picture_ptr->mb_type[mb_pos])){
++ if(r->is16){
++ t = get_bits(gb, 2);
++ fill_rectangle(intra_types, 4, 4, r->intra_types_stride, t, sizeof(intra_types[0]));
++ r->luma_vlc = 2;
++ }else{
++ if(r->decode_intra_types(r, gb, intra_types) < 0)
++ return -1;
++ r->luma_vlc = 1;
++ }
++ r->chroma_vlc = 0;
++ r->cur_vlcs = choose_vlc_set(r->si.quant, r->si.vlc_set, 0);
++ }else{
++ for(i = 0; i < 16; i++)
++ intra_types[(i & 3) + (i>>2) * r->intra_types_stride] = 0;
++ r->cur_vlcs = choose_vlc_set(r->si.quant, r->si.vlc_set, 1);
++ if(r->mb_type[mb_pos] == RV34_MB_P_MIX16x16){
++ r->is16 = 1;
++ r->chroma_vlc = 1;
++ r->luma_vlc = 2;
++ r->cur_vlcs = choose_vlc_set(r->si.quant, r->si.vlc_set, 0);
++ }
++ }
++
++ return rv34_decode_cbp(gb, r->cur_vlcs, r->is16);
++}
++
+ /** @} */ //bitstream functions
+
+ /**
+- * @defgroup mv motion vector related code (prediction, reconstruction, motion compensation)
++ * @name motion vector related code (prediction, reconstruction, motion compensation)
+ * @{
+ */
+
+@@ -885,7 +953,7 @@ static int rv34_decode_mv(RV34DecContext *r, int block_type)
+ /** @} */ // mv group
+
+ /**
+- * @defgroup recons Macroblock reconstruction functions
++ * @name Macroblock reconstruction functions
+ * @{
+ */
+ /** mapping of RV30/40 intra prediction types to standard H.264 types */
+@@ -1027,79 +1095,6 @@ static void rv34_output_macroblock(RV34DecContext *r, int8_t *intra_types, int c
+ }
+ }
+
+-/** @} */ // recons group
+-
+-/**
+- * @addtogroup bitstream
+- * Decode macroblock header and return CBP in case of success, -1 otherwise.
+- */
+-static int rv34_decode_mb_header(RV34DecContext *r, int8_t *intra_types)
+-{
+- MpegEncContext *s = &r->s;
+- GetBitContext *gb = &s->gb;
+- int mb_pos = s->mb_x + s->mb_y * s->mb_stride;
+- int i, t;
+-
+- if(!r->si.type){
+- r->is16 = get_bits1(gb);
+- if(!r->is16 && !r->rv30){
+- if(!get_bits1(gb))
+- av_log(s->avctx, AV_LOG_ERROR, "Need DQUANT\n");
+- }
+- s->current_picture_ptr->mb_type[mb_pos] = r->is16 ? MB_TYPE_INTRA16x16 : MB_TYPE_INTRA;
+- r->block_type = r->is16 ? RV34_MB_TYPE_INTRA16x16 : RV34_MB_TYPE_INTRA;
+- }else{
+- r->block_type = r->decode_mb_info(r);
+- if(r->block_type == -1)
+- return -1;
+- s->current_picture_ptr->mb_type[mb_pos] = rv34_mb_type_to_lavc[r->block_type];
+- r->mb_type[mb_pos] = r->block_type;
+- if(r->block_type == RV34_MB_SKIP){
+- if(s->pict_type == AV_PICTURE_TYPE_P)
+- r->mb_type[mb_pos] = RV34_MB_P_16x16;
+- if(s->pict_type == AV_PICTURE_TYPE_B)
+- r->mb_type[mb_pos] = RV34_MB_B_DIRECT;
+- }
+- r->is16 = !!IS_INTRA16x16(s->current_picture_ptr->mb_type[mb_pos]);
+- rv34_decode_mv(r, r->block_type);
+- if(r->block_type == RV34_MB_SKIP){
+- fill_rectangle(intra_types, 4, 4, r->intra_types_stride, 0, sizeof(intra_types[0]));
+- return 0;
+- }
+- r->chroma_vlc = 1;
+- r->luma_vlc = 0;
+- }
+- if(IS_INTRA(s->current_picture_ptr->mb_type[mb_pos])){
+- if(r->is16){
+- t = get_bits(gb, 2);
+- fill_rectangle(intra_types, 4, 4, r->intra_types_stride, t, sizeof(intra_types[0]));
+- r->luma_vlc = 2;
+- }else{
+- if(r->decode_intra_types(r, gb, intra_types) < 0)
+- return -1;
+- r->luma_vlc = 1;
+- }
+- r->chroma_vlc = 0;
+- r->cur_vlcs = choose_vlc_set(r->si.quant, r->si.vlc_set, 0);
+- }else{
+- for(i = 0; i < 16; i++)
+- intra_types[(i & 3) + (i>>2) * r->intra_types_stride] = 0;
+- r->cur_vlcs = choose_vlc_set(r->si.quant, r->si.vlc_set, 1);
+- if(r->mb_type[mb_pos] == RV34_MB_P_MIX16x16){
+- r->is16 = 1;
+- r->chroma_vlc = 1;
+- r->luma_vlc = 2;
+- r->cur_vlcs = choose_vlc_set(r->si.quant, r->si.vlc_set, 0);
+- }
+- }
+-
+- return rv34_decode_cbp(gb, r->cur_vlcs, r->is16);
+-}
+-
+-/**
+- * @addtogroup recons
+- * @{
+- */
+ /**
+ * mask for retrieving all bits in coded block pattern
+ * corresponding to one 8x8 block
+@@ -1109,6 +1104,8 @@ static int rv34_decode_mb_header(RV34DecContext *r, int8_t *intra_types)
+ #define U_CBP_MASK 0x0F0000
+ #define V_CBP_MASK 0xF00000
+
++/** @} */ // recons group
++
+
+ static void rv34_apply_differences(RV34DecContext *r, int cbp)
+ {
+diff --git a/libavcodec/rv40data.h b/libavcodec/rv40data.h
+index 4787075..1b6e8c3 100644
+--- a/libavcodec/rv40data.h
++++ b/libavcodec/rv40data.h
+@@ -65,7 +65,7 @@ static const uint8_t rv40_luma_dc_quant[2][32] = {
+ };
+
+ /**
+- * @defgroup loopfilter coefficients used by the RV40 loop filter
++ * @name Coefficients used by the RV40 loop filter
+ * @{
+ */
+ /**
+diff --git a/libavcodec/sbr.h b/libavcodec/sbr.h
+index cbf3e23..5b0f334 100644
+--- a/libavcodec/sbr.h
++++ b/libavcodec/sbr.h
+@@ -42,7 +42,7 @@ typedef struct {
+ uint8_t bs_xover_band;
+
+ /**
+- * @defgroup bs_header_extra_1 Variables associated with bs_header_extra_1
++ * @name Variables associated with bs_header_extra_1
+ * @{
+ */
+ uint8_t bs_freq_scale;
+@@ -58,7 +58,7 @@ typedef struct {
+ */
+ typedef struct {
+ /**
+- * @defgroup aac_bitstream Main bitstream data variables
++ * @name Main bitstream data variables
+ * @{
+ */
+ unsigned bs_frame_class;
+@@ -74,7 +74,7 @@ typedef struct {
+ /** @} */
+
+ /**
+- * @defgroup state State variables
++ * @name State variables
+ * @{
+ */
+ DECLARE_ALIGNED(16, float, synthesis_filterbank_samples)[SBR_SYNTHESIS_BUF_SIZE];
+@@ -116,7 +116,7 @@ typedef struct {
+ SpectrumParameters spectrum_params;
+ int bs_amp_res_header;
+ /**
+- * @defgroup bs_header_extra_2 variables associated with bs_header_extra_2
++ * @name Variables associated with bs_header_extra_2
+ * @{
+ */
+ unsigned bs_limiter_bands;
+diff --git a/libavcodec/tableprint.h b/libavcodec/tableprint.h
+index ddf2635..c89f310 100644
+--- a/libavcodec/tableprint.h
++++ b/libavcodec/tableprint.h
+@@ -56,8 +56,7 @@ void write_##type##_2d_array(const void *arg, int len, int len2)\
+ }
+
+ /**
+- * \defgroup printfuncs Predefined functions for printing tables
+- *
++ * @name Predefined functions for printing tables
+ * \{
+ */
+ void write_int8_t_array (const int8_t *, int);
+diff --git a/libavcodec/vc1.c b/libavcodec/vc1.c
+index 7b878c1..32869b9 100644
+--- a/libavcodec/vc1.c
++++ b/libavcodec/vc1.c
+@@ -40,7 +40,7 @@
+
+ /***********************************************************************/
+ /**
+- * @defgroup vc1bitplane VC-1 Bitplane decoding
++ * @name VC-1 Bitplane decoding
+ * @see 8.7, p56
+ * @{
+ */
+diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c
+index 186610e..8fca2da 100644
+--- a/libavcodec/vc1dec.c
++++ b/libavcodec/vc1dec.c
+@@ -137,7 +137,7 @@ static int vc1_init_common(VC1Context *v)
+
+ /***********************************************************************/
+ /**
+- * @defgroup vc1bitplane VC-1 Bitplane decoding
++ * @name VC-1 Bitplane decoding
+ * @see 8.7, p56
+ * @{
+ */
+@@ -774,7 +774,7 @@ static void vc1_mc_4mv_chroma(VC1Context *v)
+
+ /***********************************************************************/
+ /**
+- * @defgroup vc1block VC-1 Block-level functions
++ * @name VC-1 Block-level functions
+ * @see 7.1.4, p91 and 8.1.1.7, p(1)04
+ * @{
+ */
+@@ -1512,7 +1512,7 @@ static inline int vc1_pred_dc(MpegEncContext *s, int overlap, int pq, int n,
+ /** @} */ // Block group
+
+ /**
+- * @defgroup vc1_std_mb VC1 Macroblock-level functions in Simple/Main Profiles
++ * @name VC1 Macroblock-level functions in Simple/Main Profiles
+ * @see 7.1.4, p91 and 8.1.1.7, p(1)04
+ * @{
+ */
+diff --git a/libavcodec/wmavoice.c b/libavcodec/wmavoice.c
+index 4e69b83..eb3bcb0 100644
+--- a/libavcodec/wmavoice.c
++++ b/libavcodec/wmavoice.c
+@@ -128,9 +128,7 @@ static const struct frame_type_desc {
+ */
+ typedef struct {
+ /**
+- * @defgroup struct_global Global values
+- * Global values, specified in the stream header / extradata or used
+- * all over.
++ * @name Global values specified in the stream header / extradata or used all over.
+ * @{
+ */
+ GetBitContext gb; ///< packet bitreader. During decoder init,
+@@ -182,8 +180,9 @@ typedef struct {
+
+ /**
+ * @}
+- * @defgroup struct_packet Packet values
+- * Packet values, specified in the packet header or related to a packet.
++ *
++ * @name Packet values specified in the packet header or related to a packet.
++ *
+ * A packet is considered to be a single unit of data provided to this
+ * decoder by the demuxer.
+ * @{
+@@ -213,7 +212,8 @@ typedef struct {
+
+ /**
+ * @}
+- * @defgroup struct_frame Frame and superframe values
++ *
++ * @name Frame and superframe values
+ * Superframe and frame data - these can change from frame to frame,
+ * although some of them do in that case serve as a cache / history for
+ * the next frame or superframe.
+@@ -256,7 +256,9 @@ typedef struct {
+ float synth_history[MAX_LSPS]; ///< see #excitation_history
+ /**
+ * @}
+- * @defgroup post_filter Postfilter values
++ *
++ * @name Postfilter values
++ *
+ * Variables used for postfilter implementation, mostly history for
+ * smoothing and so on, and context variables for FFT/iFFT.
+ * @{
+@@ -432,7 +434,7 @@ static av_cold int wmavoice_decode_init(AVCodecContext *ctx)
+ }
+
+ /**
+- * @defgroup postfilter Postfilter functions
++ * @name Postfilter functions
+ * Postfilter functions (gain control, wiener denoise filter, DC filter,
+ * kalman smoothening, plus surrounding code to wrap it)
+ * @{
+@@ -825,7 +827,7 @@ static void dequant_lsps(double *lsps, int num,
+ }
+
+ /**
+- * @defgroup lsp_dequant LSP dequantization routines
++ * @name LSP dequantization routines
+ * LSP dequantization routines, for 10/16LSPs and independent/residual coding.
+ * @note we assume enough bits are available, caller should check.
+ * lsp10i() consumes 24 bits; lsp10r() consumes an additional 24 bits;
+@@ -969,7 +971,7 @@ static void dequant_lsp16r(GetBitContext *gb,
+
+ /**
+ * @}
+- * @defgroup aw Pitch-adaptive window coding functions
++ * @name Pitch-adaptive window coding functions
+ * The next few functions are for pitch-adaptive window coding.
+ * @{
+ */
+diff --git a/libavformat/avio.h b/libavformat/avio.h
+index e07e3c3..211fe93 100644
+--- a/libavformat/avio.h
++++ b/libavformat/avio.h
+@@ -145,7 +145,7 @@ typedef struct URLPollEntry {
+ attribute_deprecated int url_poll(URLPollEntry *poll_table, int n, int timeout);
+
+ /**
+- * @defgroup open_modes URL open modes
++ * @name URL open modes
+ * The flags argument to url_open and cosins must be one of the following
+ * constants, optionally ORed with other flags.
+ * @{
+@@ -176,7 +176,7 @@ extern URLInterruptCB *url_interrupt_cb;
+
+ /**
+ * @defgroup old_url_funcs Old url_* functions
+- * @deprecated use the buffered API based on AVIOContext instead
++ * The following functions are deprecated. Use the buffered API based on #AVIOContext instead.
+ * @{
+ */
+ attribute_deprecated int url_open_protocol (URLContext **puc, struct URLProtocol *up,
+@@ -235,7 +235,7 @@ attribute_deprecated AVIOContext *av_alloc_put_byte(
+
+ /**
+ * @defgroup old_avio_funcs Old put_/get_*() functions
+- * @deprecated use the avio_ -prefixed functions instead.
++ * The following functions are deprecated. Use the "avio_"-prefixed functions instead.
+ * @{
+ */
+ attribute_deprecated int get_buffer(AVIOContext *s, unsigned char *buf, int size);
+@@ -272,7 +272,7 @@ attribute_deprecated int64_t av_url_read_fseek (AVIOContext *h, int stream_in
+
+ /**
+ * @defgroup old_url_f_funcs Old url_f* functions
+- * @deprecated use the avio_ -prefixed functions instead.
++ * The following functions are deprecated, use the "avio_"-prefixed functions instead.
+ * @{
+ */
+ attribute_deprecated int url_fopen( AVIOContext **s, const char *url, int flags);
+@@ -479,7 +479,7 @@ void avio_flush(AVIOContext *s);
+ int avio_read(AVIOContext *s, unsigned char *buf, int size);
+
+ /**
+- * @defgroup avio_read Functions for reading from AVIOContext.
++ * @name Functions for reading from AVIOContext
+ * @{
+ *
+ * @note return 0 if EOF, so you cannot use it if EOF handling is
+@@ -523,7 +523,7 @@ int avio_get_str16be(AVIOContext *pb, int maxlen, char *buf, int buflen);
+
+
+ /**
+- * @defgroup open_modes URL open modes
++ * @name URL open modes
+ * The flags argument to avio_open must be one of the following
+ * constants, optionally ORed with other flags.
+ * @{
+diff --git a/libavformat/rtmppkt.h b/libavformat/rtmppkt.h
+index bb34758..8372484 100644
+--- a/libavformat/rtmppkt.h
++++ b/libavformat/rtmppkt.h
+@@ -138,7 +138,7 @@ int ff_rtmp_packet_write(URLContext *h, RTMPPacket *p,
+ void ff_rtmp_packet_dump(void *ctx, RTMPPacket *p);
+
+ /**
+- * @defgroup amffuncs functions used to work with AMF format (which is also used in .flv)
++ * @name Functions used to work with the AMF format (which is also used in .flv)
+ * @see amf_* funcs in libavformat/flvdec.c
+ * @{
+ */
+diff --git a/libavutil/lzo.h b/libavutil/lzo.h
+index 01c9280..a3924de 100644
+--- a/libavutil/lzo.h
++++ b/libavutil/lzo.h
+@@ -24,7 +24,7 @@
+
+ #include <stdint.h>
+
+-/** \defgroup errflags Error flags returned by av_lzo1x_decode
++/** @name Error flags returned by av_lzo1x_decode
+ * \{ */
+ //! end of the input buffer reached before decoding finished
+ #define AV_LZO_INPUT_DEPLETED 1
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0029-libavformat-Add-an-example-how-to-use-the-metadata-A.patch b/debian/patches/post-0.7/0029-libavformat-Add-an-example-how-to-use-the-metadata-A.patch
new file mode 100644
index 0000000..cde35c3
--- /dev/null
+++ b/debian/patches/post-0.7/0029-libavformat-Add-an-example-how-to-use-the-metadata-A.patch
@@ -0,0 +1,105 @@
+From c5c265435114ccbfd489a04d8e2f8f3d05d4d858 Mon Sep 17 00:00:00 2001
+From: Reinhard Tartler <siretart at tauware.de>
+Date: Fri, 1 Jul 2011 20:50:33 +0200
+Subject: [PATCH 29/57] libavformat: Add an example how to use the metadata API
+
+Also include it into the doxygen documentation
+(cherry picked from commit 12489443dec228d60fa3dc56695f6ddae08beb37)
+---
+ libavformat/Makefile | 2 +-
+ libavformat/avformat.h | 2 +
+ libavformat/metadata-example.c | 56 ++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 59 insertions(+), 1 deletions(-)
+ create mode 100644 libavformat/metadata-example.c
+
+diff --git a/libavformat/Makefile b/libavformat/Makefile
+index c2fa8af..7a8aba6 100644
+--- a/libavformat/Makefile
++++ b/libavformat/Makefile
+@@ -335,7 +335,7 @@ OBJS-$(CONFIG_UDP_PROTOCOL) += udp.o
+ # libavdevice dependencies
+ OBJS-$(CONFIG_JACK_INDEV) += timefilter.o
+
+-EXAMPLES = output
++EXAMPLES = metadata output
+ TESTPROGS = timefilter
+
+ include $(SUBDIR)../subdir.mak
+diff --git a/libavformat/avformat.h b/libavformat/avformat.h
+index 05e80f1..8561a50 100644
+--- a/libavformat/avformat.h
++++ b/libavformat/avformat.h
+@@ -109,6 +109,8 @@ struct AVFormatContext;
+ variant_bitrate -- the total bitrate of the bitrate variant that the current stream is part of
+ @endverbatim
+ *
++ * Look in the examples section for an application example how to use the Metadata API.
++ *
+ * @}
+ */
+
+diff --git a/libavformat/metadata-example.c b/libavformat/metadata-example.c
+new file mode 100644
+index 0000000..7bf77e7
+--- /dev/null
++++ b/libavformat/metadata-example.c
+@@ -0,0 +1,56 @@
++/*
++ * Copyright (c) 2011 Reinhard Tartler
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining a copy
++ * of this software and associated documentation files (the "Software"), to deal
++ * in the Software without restriction, including without limitation the rights
++ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++ * copies of the Software, and to permit persons to whom the Software is
++ * furnished to do so, subject to the following conditions:
++ *
++ * The above copyright notice and this permission notice shall be included in
++ * all copies or substantial portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
++ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
++ * THE SOFTWARE.
++ */
++
++/**
++ * @file
++ * @example libavformat/metadata-example.c
++ * Shows how the metadata API can be used in application programs.
++ */
++
++#include <stdio.h>
++
++#include <libavformat/avformat.h>
++#include <libavutil/dict.h>
++
++int main (int argc, char **argv)
++{
++ AVFormatContext *fmt_ctx = NULL;
++ AVDictionaryEntry *tag = NULL;
++ int ret;
++
++ if (argc != 2) {
++ printf("usage: %s <input_file>\n"
++ "example program to demonstrate the use of the libavformat metadata API.\n"
++ "\n", argv[0]);
++ return 1;
++ }
++
++ av_register_all();
++ if ((ret = avformat_open_input(&fmt_ctx, argv[1], NULL, NULL)))
++ return ret;
++
++ while ((tag = av_dict_get(fmt_ctx->metadata, "", tag, AV_DICT_IGNORE_SUFFIX)))
++ printf("%s=%s\n", tag->key, tag->value);
++
++ avformat_free_context(fmt_ctx);
++ return 0;
++}
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0030-ffmpeg-use-av_get_bytes_per_sample-in-place-of-av_ge.patch b/debian/patches/post-0.7/0030-ffmpeg-use-av_get_bytes_per_sample-in-place-of-av_ge.patch
new file mode 100644
index 0000000..1b88e87
--- /dev/null
+++ b/debian/patches/post-0.7/0030-ffmpeg-use-av_get_bytes_per_sample-in-place-of-av_ge.patch
@@ -0,0 +1,29 @@
+From c445e9dc6284c24a4d527480a8f78fc89d1b56a3 Mon Sep 17 00:00:00 2001
+From: Stefano Sabatini <stefano.sabatini-lala at poste.it>
+Date: Sat, 2 Jul 2011 13:22:18 +0200
+Subject: [PATCH 30/57] ffmpeg: use av_get_bytes_per_sample() in place of av_get_bits_per_sample_fmt()
+
+av_get_bits_per_sample_fmt() was deprecated.
+
+Signed-off-by: Ronald S. Bultje <rsbultje at gmail.com>
+(cherry picked from commit f6d6783a4df127d2ad1cf755ac4f363decbd7fbb)
+---
+ ffmpeg.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/ffmpeg.c b/ffmpeg.c
+index b284087..2ed2802 100644
+--- a/ffmpeg.c
++++ b/ffmpeg.c
+@@ -1801,7 +1801,7 @@ static int output_packet(AVInputStream *ist, int ist_index,
+ ret = 0;
+ /* encode any samples remaining in fifo */
+ if (fifo_bytes > 0) {
+- int osize = av_get_bits_per_sample_fmt(enc->sample_fmt) >> 3;
++ int osize = av_get_bytes_per_sample(enc->sample_fmt);
+ int fs_tmp = enc->frame_size;
+
+ av_fifo_generic_read(ost->fifo, audio_buf, fifo_bytes, NULL);
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0031-suggest-to-use-av_get_bytes_per_sample-in-av_get_bit.patch b/debian/patches/post-0.7/0031-suggest-to-use-av_get_bytes_per_sample-in-av_get_bit.patch
new file mode 100644
index 0000000..70fc4ae
--- /dev/null
+++ b/debian/patches/post-0.7/0031-suggest-to-use-av_get_bytes_per_sample-in-av_get_bit.patch
@@ -0,0 +1,30 @@
+From d734d4ce6ae6e798b17c26ed1cc228891897b34f Mon Sep 17 00:00:00 2001
+From: Stefano Sabatini <stefano.sabatini-lala at poste.it>
+Date: Sat, 2 Jul 2011 13:22:35 +0200
+Subject: [PATCH 31/57] suggest to use av_get_bytes_per_sample() in av_get_bits_per_sample_format() doxy
+
+The previously suggested replacement - av_get_bits_per_sample_fmt() -
+was also deprecated.
+
+Signed-off-by: Ronald S. Bultje <rsbultje at gmail.com>
+(cherry picked from commit ccfa626db863b6019fd4c316d19d8f7018543bed)
+---
+ libavcodec/avcodec.h | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
+index 835279e..9a3076a 100644
+--- a/libavcodec/avcodec.h
++++ b/libavcodec/avcodec.h
+@@ -3847,7 +3847,7 @@ int av_get_bits_per_sample(enum CodecID codec_id);
+
+ #if FF_API_OLD_SAMPLE_FMT
+ /**
+- * @deprecated Use av_get_bits_per_sample_fmt() instead.
++ * @deprecated Use av_get_bytes_per_sample() instead.
+ */
+ attribute_deprecated
+ int av_get_bits_per_sample_format(enum AVSampleFormat sample_fmt);
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0032-Update-Doxyfile-to-the-format-preferred-by-Doxygen-1.patch b/debian/patches/post-0.7/0032-Update-Doxyfile-to-the-format-preferred-by-Doxygen-1.patch
new file mode 100644
index 0000000..b97cfce
--- /dev/null
+++ b/debian/patches/post-0.7/0032-Update-Doxyfile-to-the-format-preferred-by-Doxygen-1.patch
@@ -0,0 +1,588 @@
+From 154ea553f672ace5890fd93f8e70d6173aa1ac4a Mon Sep 17 00:00:00 2001
+From: Reinhard Tartler <siretart at tauware.de>
+Date: Sun, 3 Jul 2011 18:58:09 +0200
+Subject: [PATCH 32/57] Update Doxyfile to the format preferred by Doxygen 1.7.1 (via 'doxygen -u').
+
+This is the version available in Debian stable, so it should be a reasonable
+baseline that can be expected to be present on all developer machines.
+
+Moreover, this is the version that is used by the nightly cronjob that
+generates the online html version.
+(cherry picked from commit 10dde477c77e0ac0fecda49fdb1dc71329aa7513)
+---
+ Doxyfile | 345 +++++++++++++++++++++++++++++++++++++++++++++++++++-----------
+ 1 files changed, 283 insertions(+), 62 deletions(-)
+
+diff --git a/Doxyfile b/Doxyfile
+index b75d2d6..a4beaba 100644
+--- a/Doxyfile
++++ b/Doxyfile
+@@ -1,4 +1,4 @@
+-# Doxyfile 1.5.6
++# Doxyfile 1.7.1
+
+ # This file describes the settings to be used by the documentation system
+ # doxygen (www.doxygen.org) for a project
+@@ -54,11 +54,11 @@ CREATE_SUBDIRS = NO
+ # information to generate all constant output in the proper language.
+ # The default language is English, other supported languages are:
+ # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
+-# Croatian, Czech, Danish, Dutch, Farsi, Finnish, French, German, Greek,
+-# Hungarian, Italian, Japanese, Japanese-en (Japanese with English messages),
+-# Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, Polish,
+-# Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish,
+-# and Ukrainian.
++# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
++# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
++# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
++# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak,
++# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
+
+ OUTPUT_LANGUAGE = English
+
+@@ -155,13 +155,6 @@ QT_AUTOBRIEF = NO
+
+ MULTILINE_CPP_IS_BRIEF = NO
+
+-# If the DETAILS_AT_TOP tag is set to YES then Doxygen
+-# will output the detailed description near the top, like JavaDoc.
+-# If set to NO, the detailed description appears after the member
+-# documentation.
+-
+-DETAILS_AT_TOP = NO
+-
+ # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
+ # member inherits the documentation from any documented member that it
+ # re-implements.
+@@ -214,6 +207,18 @@ OPTIMIZE_FOR_FORTRAN = NO
+
+ OPTIMIZE_OUTPUT_VHDL = NO
+
++# Doxygen selects the parser to use depending on the extension of the files it
++# parses. With this tag you can assign which parser to use for a given extension.
++# Doxygen has a built-in mapping, but you can override or extend it using this
++# tag. The format is ext=language, where ext is a file extension, and language
++# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C,
++# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make
++# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C
++# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions
++# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
++
++EXTENSION_MAPPING =
++
+ # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+ # to include (a tag file for) the STL sources as input, then you should
+ # set this tag to YES in order to let doxygen match functions declarations and
+@@ -268,6 +273,22 @@ SUBGROUPING = YES
+
+ TYPEDEF_HIDES_STRUCT = NO
+
++# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
++# determine which symbols to keep in memory and which to flush to disk.
++# When the cache is full, less often used symbols will be written to disk.
++# For small to medium size projects (<1000 input files) the default value is
++# probably good enough. For larger projects a too small cache size can cause
++# doxygen to be busy swapping symbols to and from disk most of the time
++# causing a significant performance penality.
++# If the system has enough physical memory increasing the cache will improve the
++# performance by keeping more symbols in memory. Note that the value works on
++# a logarithmic scale so increasing the size by one will rougly double the
++# memory usage. The cache size is given by this formula:
++# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
++# corresponding to a cache size of 2^16 = 65536 symbols
++
++SYMBOL_CACHE_SIZE = 0
++
+ #---------------------------------------------------------------------------
+ # Build related configuration options
+ #---------------------------------------------------------------------------
+@@ -366,6 +387,12 @@ HIDE_SCOPE_NAMES = NO
+
+ SHOW_INCLUDE_FILES = YES
+
++# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen
++# will list include files with double quotes in the documentation
++# rather than with sharp brackets.
++
++FORCE_LOCAL_INCLUDES = NO
++
+ # If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
+ # is inserted in the documentation for inline members.
+
+@@ -385,6 +412,16 @@ SORT_MEMBER_DOCS = YES
+
+ SORT_BRIEF_DOCS = NO
+
++# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen
++# will sort the (brief and detailed) documentation of class members so that
++# constructors and destructors are listed first. If set to NO (the default)
++# the constructors will appear in the respective orders defined by
++# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.
++# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO
++# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
++
++SORT_MEMBERS_CTORS_1ST = NO
++
+ # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
+ # hierarchy of group names into alphabetical order. If set to NO (the default)
+ # the group names will appear in their defined order.
+@@ -459,7 +496,8 @@ SHOW_DIRECTORIES = NO
+ SHOW_FILES = YES
+
+ # Set the SHOW_NAMESPACES tag to NO to disable the generation of the
+-# Namespaces page. This will remove the Namespaces entry from the Quick Index
++# Namespaces page.
++# This will remove the Namespaces entry from the Quick Index
+ # and from the Folder Tree View (if specified). The default is YES.
+
+ SHOW_NAMESPACES = YES
+@@ -474,6 +512,15 @@ SHOW_NAMESPACES = YES
+
+ FILE_VERSION_FILTER =
+
++# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
++# by doxygen. The layout file controls the global structure of the generated
++# output files in an output format independent way. The create the layout file
++# that represents doxygen's defaults, run doxygen with the -l option.
++# You can optionally specify a file name after the option, if omitted
++# DoxygenLayout.xml will be used as the name of the layout file.
++
++LAYOUT_FILE =
++
+ #---------------------------------------------------------------------------
+ # configuration options related to warning and progress messages
+ #---------------------------------------------------------------------------
+@@ -577,7 +624,8 @@ EXCLUDE_SYMLINKS = NO
+ # against the file with absolute path, so to exclude all test directories
+ # for example use the pattern */test/*
+
+-EXCLUDE_PATTERNS = *.git *.d
++EXCLUDE_PATTERNS = *.git \
++ *.d
+
+ # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+ # (namespaces, classes, functions, etc.) that should be excluded from the
+@@ -591,7 +639,8 @@ EXCLUDE_SYMBOLS =
+ # directories that contain example code fragments that are included (see
+ # the \include command).
+
+-EXAMPLE_PATH = libavcodec/ libavformat/
++EXAMPLE_PATH = libavcodec/ \
++ libavformat/
+
+ # If the value of the EXAMPLE_PATH tag contains directories, you can use the
+ # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+@@ -618,14 +667,17 @@ IMAGE_PATH =
+ # by executing (via popen()) the command <filter> <input-file>, where <filter>
+ # is the value of the INPUT_FILTER tag, and <input-file> is the name of an
+ # input file. Doxygen will then use the output that the filter program writes
+-# to standard output. If FILTER_PATTERNS is specified, this tag will be
++# to standard output.
++# If FILTER_PATTERNS is specified, this tag will be
+ # ignored.
+
+ INPUT_FILTER =
+
+ # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+-# basis. Doxygen will compare the file name with each pattern and apply the
+-# filter if there is a match. The filters are a list of the form:
++# basis.
++# Doxygen will compare the file name with each pattern and apply the
++# filter if there is a match.
++# The filters are a list of the form:
+ # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
+ # info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
+ # is applied to all files.
+@@ -675,7 +727,8 @@ REFERENCES_RELATION = NO
+ # If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
+ # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
+ # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
+-# link to the source code. Otherwise they will link to the documentstion.
++# link to the source code.
++# Otherwise they will link to the documentation.
+
+ REFERENCES_LINK_SOURCE = YES
+
+@@ -758,18 +811,50 @@ HTML_FOOTER =
+
+ HTML_STYLESHEET =
+
++# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
++# Doxygen will adjust the colors in the stylesheet and background images
++# according to this color. Hue is specified as an angle on a colorwheel,
++# see http://en.wikipedia.org/wiki/Hue for more information.
++# For instance the value 0 represents red, 60 is yellow, 120 is green,
++# 180 is cyan, 240 is blue, 300 purple, and 360 is red again.
++# The allowed range is 0 to 359.
++
++HTML_COLORSTYLE_HUE = 220
++
++# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of
++# the colors in the HTML output. For a value of 0 the output will use
++# grayscales only. A value of 255 will produce the most vivid colors.
++
++HTML_COLORSTYLE_SAT = 100
++
++# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to
++# the luminance component of the colors in the HTML output. Values below
++# 100 gradually make the output lighter, whereas values above 100 make
++# the output darker. The value divided by 100 is the actual gamma applied,
++# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2,
++# and 100 does not change the gamma.
++
++HTML_COLORSTYLE_GAMMA = 80
++
++# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
++# page will contain the date and time when the page was generated. Setting
++# this to NO can help when comparing the output of multiple runs.
++
++HTML_TIMESTAMP = YES
++
+ # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
+ # files or namespaces will be aligned in HTML using tables. If set to
+ # NO a bullet list will be used.
+
+ HTML_ALIGN_MEMBERS = YES
+
+-# If the GENERATE_HTMLHELP tag is set to YES, additional index files
+-# will be generated that can be used as input for tools like the
+-# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
+-# of the generated HTML documentation.
++# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
++# documentation will contain sections that can be hidden and shown after the
++# page has loaded. For this to work a browser that supports
++# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
++# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
+
+-GENERATE_HTMLHELP = NO
++HTML_DYNAMIC_SECTIONS = NO
+
+ # If the GENERATE_DOCSET tag is set to YES, additional index files
+ # will be generated that can be used as input for Apple's Xcode 3
+@@ -779,6 +864,8 @@ GENERATE_HTMLHELP = NO
+ # directory and running "make install" will install the docset in
+ # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
+ # it at startup.
++# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
++# for more information.
+
+ GENERATE_DOCSET = NO
+
+@@ -796,13 +883,22 @@ DOCSET_FEEDNAME = "Doxygen generated docs"
+
+ DOCSET_BUNDLE_ID = org.doxygen.Project
+
+-# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+-# documentation will contain sections that can be hidden and shown after the
+-# page has loaded. For this to work a browser that supports
+-# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
+-# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
++# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify
++# the documentation publisher. This should be a reverse domain-name style
++# string, e.g. com.mycompany.MyDocSet.documentation.
+
+-HTML_DYNAMIC_SECTIONS = NO
++DOCSET_PUBLISHER_ID = org.doxygen.Publisher
++
++# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
++
++DOCSET_PUBLISHER_NAME = Publisher
++
++# If the GENERATE_HTMLHELP tag is set to YES, additional index files
++# will be generated that can be used as input for tools like the
++# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
++# of the generated HTML documentation.
++
++GENERATE_HTMLHELP = NO
+
+ # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
+ # be used to specify the file name of the resulting .chm file. You
+@@ -841,6 +937,76 @@ BINARY_TOC = NO
+
+ TOC_EXPAND = NO
+
++# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
++# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated
++# that can be used as input for Qt's qhelpgenerator to generate a
++# Qt Compressed Help (.qch) of the generated HTML documentation.
++
++GENERATE_QHP = NO
++
++# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
++# be used to specify the file name of the resulting .qch file.
++# The path specified is relative to the HTML output folder.
++
++QCH_FILE =
++
++# The QHP_NAMESPACE tag specifies the namespace to use when generating
++# Qt Help Project output. For more information please see
++# http://doc.trolltech.com/qthelpproject.html#namespace
++
++QHP_NAMESPACE = org.doxygen.Project
++
++# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
++# Qt Help Project output. For more information please see
++# http://doc.trolltech.com/qthelpproject.html#virtual-folders
++
++QHP_VIRTUAL_FOLDER = doc
++
++# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to
++# add. For more information please see
++# http://doc.trolltech.com/qthelpproject.html#custom-filters
++
++QHP_CUST_FILTER_NAME =
++
++# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the
++# custom filter to add. For more information please see
++# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">
++# Qt Help Project / Custom Filters</a>.
++
++QHP_CUST_FILTER_ATTRS =
++
++# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
++# project's
++# filter section matches.
++# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">
++# Qt Help Project / Filter Attributes</a>.
++
++QHP_SECT_FILTER_ATTRS =
++
++# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
++# be used to specify the location of Qt's qhelpgenerator.
++# If non-empty doxygen will try to run qhelpgenerator on the generated
++# .qhp file.
++
++QHG_LOCATION =
++
++# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
++# will be generated, which together with the HTML files, form an Eclipse help
++# plugin. To install this plugin and make it available under the help contents
++# menu in Eclipse, the contents of the directory containing the HTML and XML
++# files needs to be copied into the plugins directory of eclipse. The name of
++# the directory within the plugins directory should be the same as
++# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before
++# the help appears.
++
++GENERATE_ECLIPSEHELP = NO
++
++# A unique identifier for the eclipse help plugin. When installing the plugin
++# the directory name containing the HTML and XML files should also have
++# this name.
++
++ECLIPSE_DOC_ID = org.doxygen.Project
++
+ # The DISABLE_INDEX tag can be used to turn on/off the condensed index at
+ # top of each HTML page. The value NO (the default) enables the index and
+ # the value YES disables it.
+@@ -854,27 +1020,30 @@ ENUM_VALUES_PER_LINE = 4
+
+ # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+ # structure should be generated to display hierarchical information.
+-# If the tag value is set to FRAME, a side panel will be generated
++# If the tag value is set to YES, a side panel will be generated
+ # containing a tree-like index structure (just like the one that
+ # is generated for HTML Help). For this to work a browser that supports
+-# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+,
+-# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are
+-# probably better off using the HTML help feature. Other possible values
+-# for this tag are: HIERARCHIES, which will generate the Groups, Directories,
+-# and Class Hiererachy pages using a tree view instead of an ordered list;
+-# ALL, which combines the behavior of FRAME and HIERARCHIES; and NONE, which
+-# disables this behavior completely. For backwards compatibility with previous
+-# releases of Doxygen, the values YES and NO are equivalent to FRAME and NONE
+-# respectively.
++# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
++# Windows users are probably better off using the HTML help feature.
+
+ GENERATE_TREEVIEW = NO
+
++# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
++# and Class Hierarchy pages using a tree view instead of an ordered list.
++
++USE_INLINE_TREES = NO
++
+ # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
+ # used to set the initial width (in pixels) of the frame in which the tree
+ # is shown.
+
+ TREEVIEW_WIDTH = 250
+
++# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open
++# links to external symbols imported via tag files in a separate window.
++
++EXT_LINKS_IN_WINDOW = NO
++
+ # Use this tag to change the font size of Latex formulas included
+ # as images in the HTML documentation. The default is 10. Note that
+ # when you change the font size after a successful doxygen run you need
+@@ -883,6 +1052,34 @@ TREEVIEW_WIDTH = 250
+
+ FORMULA_FONTSIZE = 10
+
++# Use the FORMULA_TRANPARENT tag to determine whether or not the images
++# generated for formulas are transparent PNGs. Transparent PNGs are
++# not supported properly for IE 6.0, but are supported on all modern browsers.
++# Note that when changing this option you need to delete any form_*.png files
++# in the HTML output before the changes have effect.
++
++FORMULA_TRANSPARENT = YES
++
++# When the SEARCHENGINE tag is enabled doxygen will generate a search box
++# for the HTML output. The underlying search engine uses javascript
++# and DHTML and should work on any modern browser. Note that when using
++# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets
++# (GENERATE_DOCSET) there is already a search function so this one should
++# typically be disabled. For large projects the javascript based search engine
++# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
++
++SEARCHENGINE = NO
++
++# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
++# implemented using a PHP enabled web server instead of at the web client
++# using Javascript. Doxygen will generate the search PHP script and index
++# file to put on the web server. The advantage of the server
++# based approach is that it scales better to large projects and allows
++# full text search. The disadvances is that it is more difficult to setup
++# and does not have live searching capabilities.
++
++SERVER_BASED_SEARCH = NO
++
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+ #---------------------------------------------------------------------------
+@@ -900,6 +1097,9 @@ LATEX_OUTPUT = latex
+
+ # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+ # invoked. If left blank `latex' will be used as the default command name.
++# Note that when enabling USE_PDFLATEX this option is only used for
++# generating bitmaps for formulas in the HTML output, but not in the
++# Makefile that is written to the output directory.
+
+ LATEX_CMD_NAME = latex
+
+@@ -959,6 +1159,13 @@ LATEX_BATCHMODE = NO
+
+ LATEX_HIDE_INDICES = NO
+
++# If LATEX_SOURCE_CODE is set to YES then doxygen will include
++# source code with syntax highlighting in the LaTeX output.
++# Note that which sources are shown also depends on other settings
++# such as SOURCE_BROWSER.
++
++LATEX_SOURCE_CODE = NO
++
+ #---------------------------------------------------------------------------
+ # configuration options related to the RTF output
+ #---------------------------------------------------------------------------
+@@ -1095,8 +1302,10 @@ GENERATE_PERLMOD = NO
+ PERLMOD_LATEX = NO
+
+ # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
+-# nicely formatted so it can be parsed by a human reader. This is useful
+-# if you want to understand what is going on. On the other hand, if this
++# nicely formatted so it can be parsed by a human reader.
++# This is useful
++# if you want to understand what is going on.
++# On the other hand, if this
+ # tag is set to NO the size of the Perl module output will be much smaller
+ # and Perl will parse it just the same.
+
+@@ -1158,16 +1367,22 @@ INCLUDE_FILE_PATTERNS =
+ # undefined via #undef or recursively expanded use the := operator
+ # instead of the = operator.
+
+-PREDEFINED = __attribute__(x)="" "RENAME(x)=x ## _TMPL" "DEF(x)=x ## _TMPL" \
+- HAVE_AV_CONFIG_H HAVE_MMX HAVE_MMX2 HAVE_AMD3DNOW \
++PREDEFINED = "__attribute__(x)=" \
++ "RENAME(x)=x ## _TMPL" \
++ "DEF(x)=x ## _TMPL" \
++ HAVE_AV_CONFIG_H \
++ HAVE_MMX \
++ HAVE_MMX2 \
++ HAVE_AMD3DNOW \
++ "DECLARE_ALIGNED(a,t,n)=t n" \
++ "offsetof(x,y)=0x42"
+
+ # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
+ # this tag can be used to specify a list of macro names that should be expanded.
+ # The macro definition that is found in the sources will be used.
+ # Use the PREDEFINED tag if you want to use a different macro definition.
+
+-#EXPAND_AS_DEFINED = FF_COMMON_FRAME
+-EXPAND_AS_DEFINED = declare_idct(idct, table, idct_row_head, idct_row, idct_row_tail, idct_row_mid)
++EXPAND_AS_DEFINED = declare_idct
+
+ # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
+ # doxygen's preprocessor will remove all function-like macros that are alone
+@@ -1185,9 +1400,11 @@ SKIP_FUNCTION_MACROS = YES
+ # Optionally an initial location of the external documentation
+ # can be added for each tagfile. The format of a tag file without
+ # this location is as follows:
+-# TAGFILES = file1 file2 ...
++#
++# TAGFILES = file1 file2 ...
+ # Adding location for the tag files is done as follows:
+-# TAGFILES = file1=loc1 "file2 = loc2" ...
++#
++# TAGFILES = file1=loc1 "file2 = loc2" ...
+ # where "loc1" and "loc2" can be relative or absolute paths or
+ # URLs. If a location is present for each tag, the installdox tool
+ # does not have to be run to correct the links.
+@@ -1255,6 +1472,14 @@ HIDE_UNDOC_RELATIONS = YES
+
+ HAVE_DOT = NO
+
++# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is
++# allowed to run in parallel. When set to 0 (the default) doxygen will
++# base this on the number of processors available in the system. You can set it
++# explicitly to a value larger than 0 to get control over the balance
++# between CPU load and processing speed.
++
++DOT_NUM_THREADS = 0
++
+ # By default doxygen will write a font called FreeSans.ttf to the output
+ # directory and reference it in all dot files that doxygen generates. This
+ # font does not include all possible unicode characters however, so when you need
+@@ -1266,6 +1491,11 @@ HAVE_DOT = NO
+
+ DOT_FONTNAME = FreeSans
+
++# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
++# The default size is 10pt.
++
++DOT_FONTSIZE = 10
++
+ # By default doxygen will tell dot to use the output directory to look for the
+ # FreeSans.ttf font (which doxygen will put there itself). If you specify a
+ # different font using DOT_FONTNAME you can set the path where dot
+@@ -1383,10 +1613,10 @@ DOT_GRAPH_MAX_NODES = 50
+ MAX_DOT_GRAPH_DEPTH = 0
+
+ # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+-# background. This is enabled by default, which results in a transparent
+-# background. Warning: Depending on the platform used, enabling this option
+-# may lead to badly anti-aliased labels on the edges of a graph (i.e. they
+-# become hard to read).
++# background. This is disabled by default, because dot on Windows does not
++# seem to support this out of the box. Warning: Depending on the platform used,
++# enabling this option may lead to badly anti-aliased labels on the edges of
++# a graph (i.e. they become hard to read).
+
+ DOT_TRANSPARENT = YES
+
+@@ -1408,12 +1638,3 @@ GENERATE_LEGEND = YES
+ # the various graphs.
+
+ DOT_CLEANUP = YES
+-
+-#---------------------------------------------------------------------------
+-# Configuration::additions related to the search engine
+-#---------------------------------------------------------------------------
+-
+-# The SEARCHENGINE tag specifies whether or not a search engine should be
+-# used. If set to NO the values of all tags below this one will be ignored.
+-
+-SEARCHENGINE = NO
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0033-Fix-segmentation-fault-in-ffprobe.patch b/debian/patches/post-0.7/0033-Fix-segmentation-fault-in-ffprobe.patch
new file mode 100644
index 0000000..bf22d8c
--- /dev/null
+++ b/debian/patches/post-0.7/0033-Fix-segmentation-fault-in-ffprobe.patch
@@ -0,0 +1,25 @@
+From c172eb7925dad8db6ad8fde9cd81a90a5cb06bb6 Mon Sep 17 00:00:00 2001
+From: Gavin Kinsey <gkinsey at ad-holdings.co.uk>
+Date: Tue, 21 Jun 2011 13:13:37 +0100
+Subject: [PATCH 33/57] Fix segmentation fault in ffprobe
+
+(cherry picked from commit c558122e4ee53dc4cb82f87749a9c28c38ca9401)
+---
+ ffprobe.c | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/ffprobe.c b/ffprobe.c
+index 711a172..edda454 100644
+--- a/ffprobe.c
++++ b/ffprobe.c
+@@ -393,6 +393,7 @@ int main(int argc, char **argv)
+ int ret;
+
+ av_register_all();
++ init_opts();
+ #if CONFIG_AVDEVICE
+ avdevice_register_all();
+ #endif
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0034-doxygen-fix-usage-of-file-directive-in-libavutil-dic.patch b/debian/patches/post-0.7/0034-doxygen-fix-usage-of-file-directive-in-libavutil-dic.patch
new file mode 100644
index 0000000..e4fd940
--- /dev/null
+++ b/debian/patches/post-0.7/0034-doxygen-fix-usage-of-file-directive-in-libavutil-dic.patch
@@ -0,0 +1,42 @@
+From 093f0f13e611c7fd7a8ee6130c4211427033329d Mon Sep 17 00:00:00 2001
+From: Reinhard Tartler <siretart at tauware.de>
+Date: Thu, 30 Jun 2011 23:00:46 +0200
+Subject: [PATCH 34/57] doxygen: fix usage of @file directive in libavutil/{dict,file}.h
+
+(cherry picked from commit 134557f3a47697a7b5e5da2bd7e5a4b8f8d56b1c)
+---
+ libavutil/dict.h | 3 ++-
+ libavutil/file.h | 3 ++-
+ 2 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/libavutil/dict.h b/libavutil/dict.h
+index ff24b36..397ce38 100644
+--- a/libavutil/dict.h
++++ b/libavutil/dict.h
+@@ -18,7 +18,8 @@
+ */
+
+ /**
+- * @file Public dictionary API.
++ * @file
++ * Public dictionary API.
+ */
+
+ #ifndef AVUTIL_DICT_H
+diff --git a/libavutil/file.h b/libavutil/file.h
+index 8b65bfb..c481c37 100644
+--- a/libavutil/file.h
++++ b/libavutil/file.h
+@@ -22,7 +22,8 @@
+ #include "avutil.h"
+
+ /**
+- * @file misc file utilities
++ * @file
++ * Misc file utilities.
+ */
+
+ /**
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0035-doxygen-Remove-spurious-documentation-for-non-existi.patch b/debian/patches/post-0.7/0035-doxygen-Remove-spurious-documentation-for-non-existi.patch
new file mode 100644
index 0000000..04ffb7d
--- /dev/null
+++ b/debian/patches/post-0.7/0035-doxygen-Remove-spurious-documentation-for-non-existi.patch
@@ -0,0 +1,38 @@
+From 8f536408d1a8b6899442fd46a2e70ffb2897f4c2 Mon Sep 17 00:00:00 2001
+From: Diego Biurrun <diego at biurrun.de>
+Date: Sun, 3 Jul 2011 16:11:16 +0200
+Subject: [PATCH 35/57] doxygen: Remove spurious documentation for non-existing function parameters.
+
+(cherry picked from commit 01c17c88ede76f8321cf2c59a535dbbc5b5ff989)
+---
+ libavcodec/h264idct_template.c | 1 -
+ libswscale/swscale.h | 1 -
+ 2 files changed, 0 insertions(+), 2 deletions(-)
+
+diff --git a/libavcodec/h264idct_template.c b/libavcodec/h264idct_template.c
+index e7f9af7..e288f9b 100644
+--- a/libavcodec/h264idct_template.c
++++ b/libavcodec/h264idct_template.c
+@@ -237,7 +237,6 @@ void FUNCC(ff_h264_idct_add8)(uint8_t **dest, const int *block_offset, DCTELEM *
+ }
+ /**
+ * IDCT transforms the 16 dc values and dequantizes them.
+- * @param qp quantization parameter
+ */
+ void FUNCC(ff_h264_luma_dc_dequant_idct)(DCTELEM *_output, DCTELEM *_input, int qmul){
+ #define stride 16
+diff --git a/libswscale/swscale.h b/libswscale/swscale.h
+index 2aa5e50..3899596 100644
+--- a/libswscale/swscale.h
++++ b/libswscale/swscale.h
+@@ -235,7 +235,6 @@ int sws_scale(struct SwsContext *context, const uint8_t* const srcSlice[], const
+
+ /**
+ * @param inv_table the yuv2rgb coefficients, normally ff_yuv2rgb_coeffs[x]
+- * @param fullRange if 1 then the luma range is 0..255 if 0 it is 16..235
+ * @return -1 if not supported
+ */
+ int sws_setColorspaceDetails(struct SwsContext *c, const int inv_table[4],
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0036-doxygen-Drop-array-size-declarations-from-Doxygen-pa.patch b/debian/patches/post-0.7/0036-doxygen-Drop-array-size-declarations-from-Doxygen-pa.patch
new file mode 100644
index 0000000..2675e77
--- /dev/null
+++ b/debian/patches/post-0.7/0036-doxygen-Drop-array-size-declarations-from-Doxygen-pa.patch
@@ -0,0 +1,71 @@
+From f95e5225fe1b94c5c2ee683fa75aafed22c5b3e1 Mon Sep 17 00:00:00 2001
+From: Reinhard Tartler <siretart at tauware.de>
+Date: Sun, 3 Jul 2011 19:00:59 +0200
+Subject: [PATCH 36/57] doxygen: Drop array size declarations from Doxygen parameter names.
+
+Adding [] to a Doxygen parameter name clashes with Doxygen syntax.
+(cherry picked from commit ff993cd7fcdfeffcac10337c0c6b69c599060c2b)
+---
+ libavcodec/cook.c | 2 +-
+ libavcodec/motion_est_template.c | 4 ++--
+ libavutil/imgutils.h | 2 +-
+ libavutil/lfg.h | 2 +-
+ 4 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/libavcodec/cook.c b/libavcodec/cook.c
+index 84211a6..05d8d7a 100644
+--- a/libavcodec/cook.c
++++ b/libavcodec/cook.c
+@@ -335,7 +335,7 @@ static av_cold int cook_decode_close(AVCodecContext *avctx)
+ * Fill the gain array for the timedomain quantization.
+ *
+ * @param gb pointer to the GetBitContext
+- * @param gaininfo[9] array of gain indexes
++ * @param gaininfo array[9] of gain indexes
+ */
+
+ static void decode_gain_info(GetBitContext *gb, int *gaininfo)
+diff --git a/libavcodec/motion_est_template.c b/libavcodec/motion_est_template.c
+index 6b807dc..d65edd9 100644
+--- a/libavcodec/motion_est_template.c
++++ b/libavcodec/motion_est_template.c
+@@ -990,8 +990,8 @@ static av_always_inline int diamond_search(MpegEncContext * s, int *best, int dm
+ return var_diamond_search(s, best, dmin, src_index, ref_index, penalty_factor, size, h, flags);
+ }
+
+-/*!
+- \param P[10][2] a list of candidate mvs to check before starting the
++/**
++ @param P a list of candidate mvs to check before starting the
+ iterative search. If one of the candidates is close to the optimal mv, then
+ it takes fewer iterations. And it increases the chance that we find the
+ optimal mv.
+diff --git a/libavutil/imgutils.h b/libavutil/imgutils.h
+index b569eb1..fad4435 100644
+--- a/libavutil/imgutils.h
++++ b/libavutil/imgutils.h
+@@ -69,7 +69,7 @@ int av_image_fill_linesizes(int linesizes[4], enum PixelFormat pix_fmt, int widt
+ *
+ * @param data pointers array to be filled with the pointer for each image plane
+ * @param ptr the pointer to a buffer which will contain the image
+- * @param linesizes[4] the array containing the linesize for each
++ * @param linesizes the array containing the linesize for each
+ * plane, should be filled by av_image_fill_linesizes()
+ * @return the size in bytes required for the image buffer, a negative
+ * error code in case of failure
+diff --git a/libavutil/lfg.h b/libavutil/lfg.h
+index 89a635a..904d00a 100644
+--- a/libavutil/lfg.h
++++ b/libavutil/lfg.h
+@@ -55,7 +55,7 @@ static inline unsigned int av_mlfg_get(AVLFG *c){
+ * Get the next two numbers generated by a Box-Muller Gaussian
+ * generator using the random numbers issued by lfg.
+ *
+- * @param out[2] array where the two generated numbers are placed
++ * @param out array where the two generated numbers are placed
+ */
+ void av_bmg_get(AVLFG *lfg, double out[2]);
+
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0037-Add-version-number-to-doxygen-config.patch b/debian/patches/post-0.7/0037-Add-version-number-to-doxygen-config.patch
new file mode 100644
index 0000000..0fb9aa9
--- /dev/null
+++ b/debian/patches/post-0.7/0037-Add-version-number-to-doxygen-config.patch
@@ -0,0 +1,25 @@
+From 924b2ee8f29823877b6b544b48fe153f307d7be7 Mon Sep 17 00:00:00 2001
+From: Reinhard Tartler <siretart at tauware.de>
+Date: Sun, 3 Jul 2011 20:00:31 +0200
+Subject: [PATCH 37/57] Add version number to doxygen config
+
+---
+ Doxyfile | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/Doxyfile b/Doxyfile
+index a4beaba..485b93d 100644
+--- a/Doxyfile
++++ b/Doxyfile
+@@ -31,7 +31,7 @@ PROJECT_NAME = Libav
+ # This could be handy for archiving the generated documentation or
+ # if some version control system is used.
+
+-PROJECT_NUMBER =
++PROJECT_NUMBER = 0.7.1
+
+ # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
+ # base path where the generated documentation will be put.
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0038-update-Changelog.patch b/debian/patches/post-0.7/0038-update-Changelog.patch
new file mode 100644
index 0000000..cb83c1e
--- /dev/null
+++ b/debian/patches/post-0.7/0038-update-Changelog.patch
@@ -0,0 +1,26 @@
+From d32b2d4de164d6e2bd4b441c5f2aa0e442fef1f6 Mon Sep 17 00:00:00 2001
+From: Reinhard Tartler <siretart at tauware.de>
+Date: Sun, 3 Jul 2011 19:54:05 +0200
+Subject: [PATCH 38/57] update Changelog
+
+---
+ Changelog | 3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git a/Changelog b/Changelog
+index 276812b..1c6952c 100644
+--- a/Changelog
++++ b/Changelog
+@@ -7,6 +7,9 @@ version 0.7.1:
+ - added various additional FOURCC codec identifiers
+ - H.264 4:4:4 fixes
+ - build system fixes
++- Doxygen corrections and improvements
++- fixed segfault in ffprobe
++- behavioral fix in av_open_input_stream()
+
+
+ version 0.7:
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0039-vf_gradfun-relicense-x86-asm-to-LGPL.patch b/debian/patches/post-0.7/0039-vf_gradfun-relicense-x86-asm-to-LGPL.patch
new file mode 100644
index 0000000..daa097b
--- /dev/null
+++ b/debian/patches/post-0.7/0039-vf_gradfun-relicense-x86-asm-to-LGPL.patch
@@ -0,0 +1,50 @@
+From 2f0a10174efd47f210e4863cb66da54cfb5a898e Mon Sep 17 00:00:00 2001
+From: Loren Merritt <lorenm at u.washington.edu>
+Date: Sun, 3 Jul 2011 22:47:10 +0000
+Subject: [PATCH 39/57] vf_gradfun: relicense x86 asm to LGPL
+
+Actually I gave permission for LGPL long ago, but the original import
+failed to update the license header.
+(cherry picked from commit 082768f0b189b1706fdcd15b42dcca5fd0822315)
+---
+ libavfilter/x86/gradfun.c | 20 +++++++++++---------
+ 1 files changed, 11 insertions(+), 9 deletions(-)
+
+diff --git a/libavfilter/x86/gradfun.c b/libavfilter/x86/gradfun.c
+index c9ade82..ff3b19d 100644
+--- a/libavfilter/x86/gradfun.c
++++ b/libavfilter/x86/gradfun.c
+@@ -1,19 +1,21 @@
+ /*
++ * Copyright (C) 2009 Loren Merritt <lorenm at u.washignton.edu>
++ *
+ * This file is part of Libav.
+ *
+- * Libav is free software; you can redistribute it and/or modify
+- * it under the terms of the GNU General Public License as published by
+- * the Free Software Foundation; either version 2 of the License, or
+- * (at your option) any later version.
++ * Libav is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * Libav is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+- * GNU General Public License for more details.
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
+ *
+- * You should have received a copy of the GNU General Public License along
+- * with Libav; if not, write to the Free Software Foundation, Inc.,
+- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++ * You should have received a copy of the GNU Lesser General Public
++ * License along with Libav; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+ #include "libavutil/cpu.h"
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0040-doxygen-Escape-in-Doxygen-documentation.patch b/debian/patches/post-0.7/0040-doxygen-Escape-in-Doxygen-documentation.patch
new file mode 100644
index 0000000..37f25c0
--- /dev/null
+++ b/debian/patches/post-0.7/0040-doxygen-Escape-in-Doxygen-documentation.patch
@@ -0,0 +1,34 @@
+From 43de5c034fe8d9bf1687faec8865b5967291004b Mon Sep 17 00:00:00 2001
+From: Diego Biurrun <diego at biurrun.de>
+Date: Sun, 3 Jul 2011 16:33:25 +0200
+Subject: [PATCH 40/57] doxygen: Escape '\' in Doxygen documentation.
+
+(cherry picked from commit c81a2b9b4f5488c831dc27635152394ab632c46a)
+---
+ libavformat/internal.h | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/libavformat/internal.h b/libavformat/internal.h
+index 7413b09..c1a4b4f 100644
+--- a/libavformat/internal.h
++++ b/libavformat/internal.h
+@@ -157,14 +157,14 @@ void ff_put_v(AVIOContext *bc, uint64_t val);
+
+ /**
+ * Read a whole line of text from AVIOContext. Stop reading after reaching
+- * either a \n, a \0 or EOF. The returned string is always \0 terminated,
++ * either a \\n, a \\0 or EOF. The returned string is always \\0-terminated,
+ * and may be truncated if the buffer is too small.
+ *
+ * @param s the read-only AVIOContext
+ * @param buf buffer to store the read line
+ * @param maxlen size of the buffer
+ * @return the length of the string written in the buffer, not including the
+- * final \0
++ * final \\0
+ */
+ int ff_get_line(AVIOContext *s, char *buf, int maxlen);
+
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0041-RTSP-Doxygen-comment-cleanup.patch b/debian/patches/post-0.7/0041-RTSP-Doxygen-comment-cleanup.patch
new file mode 100644
index 0000000..9ac1254
--- /dev/null
+++ b/debian/patches/post-0.7/0041-RTSP-Doxygen-comment-cleanup.patch
@@ -0,0 +1,103 @@
+From 07dc4a79c701a4fd41d0973df1ab56333895faed Mon Sep 17 00:00:00 2001
+From: Diego Biurrun <diego at biurrun.de>
+Date: Sun, 3 Jul 2011 16:35:10 +0200
+Subject: [PATCH 41/57] RTSP: Doxygen comment cleanup
+
+Do not use Doxygen for comments that apply to specific implementation
+details; merge some duplicated Doxygen comment blocks.
+
+(cherry picked from commit f75e3da535f297ddbe501ce866e57ccca7645455)
+---
+ libavformat/rtsp.c | 18 +++++-------------
+ libavformat/rtsp.h | 6 ++++--
+ 2 files changed, 9 insertions(+), 15 deletions(-)
+
+diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
+index eeea9be..80cd587 100644
+--- a/libavformat/rtsp.c
++++ b/libavformat/rtsp.c
+@@ -428,11 +428,6 @@ static void sdp_parse_line(AVFormatContext *s, SDPParseState *s1,
+ }
+ }
+
+-/**
+- * Parse the sdp description and allocate the rtp streams and the
+- * pollfd array used for udp ones.
+- */
+-
+ int ff_sdp_parse(AVFormatContext *s, const char *content)
+ {
+ RTSPState *rt = s->priv_data;
+@@ -1050,9 +1045,6 @@ retry:
+ return 0;
+ }
+
+-/**
+- * @return 0 on success, <0 on error, 1 if protocol is unavailable.
+- */
+ int ff_rtsp_make_setup_request(AVFormatContext *s, const char *host, int port,
+ int lower_transport, const char *real_challenge)
+ {
+@@ -1078,7 +1070,7 @@ int ff_rtsp_make_setup_request(AVFormatContext *s, const char *host, int port,
+ for (j = RTSP_RTP_PORT_MIN, i = 0; i < rt->nb_rtsp_streams; ++i) {
+ char transport[2048];
+
+- /**
++ /*
+ * WMS serves all UDP data over a single connection, the RTX, which
+ * isn't necessarily the first in the SDP but has to be the first
+ * to be set up, else the second/third SETUP will fail with a 461.
+@@ -1151,7 +1143,7 @@ int ff_rtsp_make_setup_request(AVFormatContext *s, const char *host, int port,
+
+ /* RTP/TCP */
+ else if (lower_transport == RTSP_LOWER_TRANSPORT_TCP) {
+- /** For WMS streams, the application streams are only used for
++ /* For WMS streams, the application streams are only used for
+ * UDP. When trying to set it up for TCP streams, the server
+ * will return an error. Therefore, we skip those streams. */
+ if (rt->server_type == RTSP_SERVER_WMS &&
+@@ -1482,14 +1474,14 @@ redirect:
+ cmd[0] = 0;
+ if (rt->server_type == RTSP_SERVER_REAL)
+ av_strlcat(cmd,
+- /**
++ /*
+ * The following entries are required for proper
+ * streaming from a Realmedia server. They are
+ * interdependent in some way although we currently
+ * don't quite understand how. Values were copied
+ * from mplayer SVN r23589.
+- * @param CompanyID is a 16-byte ID in base64
+- * @param ClientChallenge is a 16-byte ID in hex
++ * ClientChallenge is a 16-byte ID in hex
++ * CompanyID is a 16-byte ID in base64
+ */
+ "ClientChallenge: 9e26d33f2984236010ef6253fb1887f7\r\n"
+ "PlayerStarttime: [28/03/2003:22:50:23 00:00]\r\n"
+diff --git a/libavformat/rtsp.h b/libavformat/rtsp.h
+index 5eae6bf..7d2460f 100644
+--- a/libavformat/rtsp.h
++++ b/libavformat/rtsp.h
+@@ -505,8 +505,9 @@ int ff_rtsp_setup_input_streams(AVFormatContext *s, RTSPMessageHeader *reply);
+ int ff_rtsp_setup_output_streams(AVFormatContext *s, const char *addr);
+
+ /**
+- * Parse a SDP description of streams by populating an RTSPState struct
+- * within the AVFormatContext.
++ * Parse an SDP description of streams by populating an RTSPState struct
++ * within the AVFormatContext; also allocate the RTP streams and the
++ * pollfd array used for UDP streams.
+ */
+ int ff_sdp_parse(AVFormatContext *s, const char *content);
+
+@@ -525,6 +526,7 @@ int ff_rtsp_fetch_packet(AVFormatContext *s, AVPacket *pkt);
+ /**
+ * Do the SETUP requests for each stream for the chosen
+ * lower transport mode.
++ * @return 0 on success, <0 on error, 1 if protocol is unavailable
+ */
+ int ff_rtsp_make_setup_request(AVFormatContext *s, const char *host, int port,
+ int lower_transport, const char *real_challenge);
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0042-ffmpeg-Fix-VDPAU-decoding-for-some-H264-samples.patch b/debian/patches/post-0.7/0042-ffmpeg-Fix-VDPAU-decoding-for-some-H264-samples.patch
new file mode 100644
index 0000000..d235ffb
--- /dev/null
+++ b/debian/patches/post-0.7/0042-ffmpeg-Fix-VDPAU-decoding-for-some-H264-samples.patch
@@ -0,0 +1,27 @@
+From b9e126fbe2510523dece2fe5433cdd00ab52f2f5 Mon Sep 17 00:00:00 2001
+From: Carl Eugen Hoyos <cehoyos at ag.or.at>
+Date: Mon, 27 Jun 2011 07:25:58 +0000
+Subject: [PATCH 42/57] ffmpeg: Fix VDPAU decoding for some H264 samples.
+
+(cherry picked from commit a4ab70f92e4d8705434a2fee42a2b69a8bfa6bb1)
+---
+ libavcodec/vdpau.c | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/libavcodec/vdpau.c b/libavcodec/vdpau.c
+index 5f8f091..5312b4b 100644
+--- a/libavcodec/vdpau.c
++++ b/libavcodec/vdpau.c
+@@ -183,7 +183,8 @@ void ff_vdpau_h264_picture_complete(MpegEncContext *s)
+ render->info.h264.deblocking_filter_control_present_flag = h->pps.deblocking_filter_parameters_present;
+ render->info.h264.redundant_pic_cnt_present_flag = h->pps.redundant_pic_cnt_present;
+ memcpy(render->info.h264.scaling_lists_4x4, h->pps.scaling_matrix4, sizeof(render->info.h264.scaling_lists_4x4));
+- memcpy(render->info.h264.scaling_lists_8x8, h->pps.scaling_matrix8, sizeof(render->info.h264.scaling_lists_8x8));
++ memcpy(render->info.h264.scaling_lists_8x8[0], h->pps.scaling_matrix8[0], sizeof(render->info.h264.scaling_lists_8x8[0]));
++ memcpy(render->info.h264.scaling_lists_8x8[1], h->pps.scaling_matrix8[3], sizeof(render->info.h264.scaling_lists_8x8[0]));
+
+ ff_draw_horiz_band(s, 0, s->avctx->height);
+ render->bitstream_buffers_used = 0;
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0043-vorbis-vpxenc-Add-missing-include-for-av_rescale.patch b/debian/patches/post-0.7/0043-vorbis-vpxenc-Add-missing-include-for-av_rescale.patch
new file mode 100644
index 0000000..9e66add
--- /dev/null
+++ b/debian/patches/post-0.7/0043-vorbis-vpxenc-Add-missing-include-for-av_rescale.patch
@@ -0,0 +1,40 @@
+From 46a2dc91753535ec36e5d743508a7b1b4602243e Mon Sep 17 00:00:00 2001
+From: Robert Swain <robert.swain at gmail.com>
+Date: Mon, 4 Jul 2011 08:44:49 +0200
+Subject: [PATCH 43/57] vorbis: vpxenc: Add missing include for av_rescale*
+
+Signed-off-by: Mans Rullgard <mans at mansr.com>
+
+(cherry picked from commit 954a6532160b9eac7773613be105fd706d639ade)
+---
+ libavcodec/libvorbis.c | 1 +
+ libavcodec/libvpxenc.c | 1 +
+ 2 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/libavcodec/libvorbis.c b/libavcodec/libvorbis.c
+index 88da705..85cb9c5 100644
+--- a/libavcodec/libvorbis.c
++++ b/libavcodec/libvorbis.c
+@@ -30,6 +30,7 @@
+ #include "avcodec.h"
+ #include "bytestream.h"
+ #include "vorbis.h"
++#include "libavutil/mathematics.h"
+
+ #undef NDEBUG
+ #include <assert.h>
+diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c
+index 02f8135..ca2e615 100644
+--- a/libavcodec/libvpxenc.c
++++ b/libavcodec/libvpxenc.c
+@@ -30,6 +30,7 @@
+
+ #include "avcodec.h"
+ #include "libavutil/base64.h"
++#include "libavutil/mathematics.h"
+
+ /**
+ * Portion of struct vpx_codec_cx_pkt from vpx_encoder.h.
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0044-libxvid-add-missing-include-of-libavutil-mathematics.patch b/debian/patches/post-0.7/0044-libxvid-add-missing-include-of-libavutil-mathematics.patch
new file mode 100644
index 0000000..c0a9892
--- /dev/null
+++ b/debian/patches/post-0.7/0044-libxvid-add-missing-include-of-libavutil-mathematics.patch
@@ -0,0 +1,27 @@
+From 8e3d264fb234db081436ab5b76525a355dc497db Mon Sep 17 00:00:00 2001
+From: Christian Schmidt <schmidt at digadd.de>
+Date: Mon, 4 Jul 2011 10:41:04 +0100
+Subject: [PATCH 44/57] libxvid: add missing include of libavutil/mathematics.h
+
+Signed-off-by: Mans Rullgard <mans at mansr.com>
+
+(cherry picked from commit 6c374bc0b40306c84e35a4002ab7fa96ace11c6c)
+---
+ libavcodec/libxvidff.c | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/libavcodec/libxvidff.c b/libavcodec/libxvidff.c
+index 1e887a2..fd0aea5 100644
+--- a/libavcodec/libxvidff.c
++++ b/libavcodec/libxvidff.c
+@@ -30,6 +30,7 @@
+ #include "avcodec.h"
+ #include "libavutil/cpu.h"
+ #include "libavutil/intreadwrite.h"
++#include "libavutil/mathematics.h"
+ #include "libxvid_internal.h"
+ #if !HAVE_MKSTEMP
+ #include <fcntl.h>
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0045-doxygen-Fix-documentation-for-some-VP8-functions.patch b/debian/patches/post-0.7/0045-doxygen-Fix-documentation-for-some-VP8-functions.patch
new file mode 100644
index 0000000..4d1dd45
--- /dev/null
+++ b/debian/patches/post-0.7/0045-doxygen-Fix-documentation-for-some-VP8-functions.patch
@@ -0,0 +1,80 @@
+From 64e2656f7c6d03c11b8e65202fc803cf58c03e1a Mon Sep 17 00:00:00 2001
+From: Diego Biurrun <diego at biurrun.de>
+Date: Sun, 3 Jul 2011 16:09:37 +0200
+Subject: [PATCH 45/57] doxygen: Fix documentation for some VP8 functions.
+
+(cherry picked from commit 3c432e1186443fae474fa4e8613fbc21fd8a6c63)
+---
+ libavcodec/vp8.c | 33 +++++++++++++++++++++++++++++----
+ 1 files changed, 29 insertions(+), 4 deletions(-)
+
+diff --git a/libavcodec/vp8.c b/libavcodec/vp8.c
+index 282d2fd..5e331c9 100644
+--- a/libavcodec/vp8.c
++++ b/libavcodec/vp8.c
+@@ -641,8 +641,6 @@ void decode_mb_mode(VP8Context *s, VP8Macroblock *mb, int mb_x, int mb_y, uint8_
+ * @param block destination for block coefficients
+ * @param probs probabilities to use when reading trees from the bitstream
+ * @param i initial coeff index, 0 unless a separate DC block is coded
+- * @param zero_nhood the initial prediction context for number of surrounding
+- * all-zero blocks (only left/top, so 0-2)
+ * @param qmul array holding the dc/ac dequant factor at position 0/1
+ * @return 0 if no coeffs were decoded
+ * otherwise, the index of the last coeff decoded plus one
+@@ -701,6 +699,17 @@ skip_eob:
+ }
+ #endif
+
++/**
++ * @param c arithmetic bitstream reader context
++ * @param block destination for block coefficients
++ * @param probs probabilities to use when reading trees from the bitstream
++ * @param i initial coeff index, 0 unless a separate DC block is coded
++ * @param zero_nhood the initial prediction context for number of surrounding
++ * all-zero blocks (only left/top, so 0-2)
++ * @param qmul array holding the dc/ac dequant factor at position 0/1
++ * @return 0 if no coeffs were decoded
++ * otherwise, the index of the last coeff decoded plus one
++ */
+ static av_always_inline
+ int decode_block_coeffs(VP56RangeCoder *c, DCTELEM block[16],
+ uint8_t probs[16][3][NUM_DCT_TOKENS-1],
+@@ -1034,10 +1043,9 @@ static const uint8_t subpel_idx[3][8] = {
+ };
+
+ /**
+- * Generic MC function.
++ * luma MC function
+ *
+ * @param s VP8 decoding context
+- * @param luma 1 for luma (Y) planes, 0 for chroma (Cb/Cr) planes
+ * @param dst target buffer for block data at block position
+ * @param src reference picture buffer at origin (0, 0)
+ * @param mv motion vector (relative to block position) to get pixel data from
+@@ -1083,6 +1091,23 @@ void vp8_mc_luma(VP8Context *s, uint8_t *dst, AVFrame *ref, const VP56mv *mv,
+ }
+ }
+
++/**
++ * chroma MC function
++ *
++ * @param s VP8 decoding context
++ * @param dst1 target buffer for block data at block position (U plane)
++ * @param dst2 target buffer for block data at block position (V plane)
++ * @param ref reference picture buffer at origin (0, 0)
++ * @param mv motion vector (relative to block position) to get pixel data from
++ * @param x_off horizontal position of block from origin (0, 0)
++ * @param y_off vertical position of block from origin (0, 0)
++ * @param block_w width of block (16, 8 or 4)
++ * @param block_h height of block (always same as block_w)
++ * @param width width of src/dst plane data
++ * @param height height of src/dst plane data
++ * @param linesize size of a single line of plane data, including padding
++ * @param mc_func motion compensation function pointers (bilinear or sixtap MC)
++ */
+ static av_always_inline
+ void vp8_mc_chroma(VP8Context *s, uint8_t *dst1, uint8_t *dst2, AVFrame *ref,
+ const VP56mv *mv, int x_off, int y_off,
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0046-Add-LGPL-license-boilerplate-to-files-lacking-it.patch b/debian/patches/post-0.7/0046-Add-LGPL-license-boilerplate-to-files-lacking-it.patch
new file mode 100644
index 0000000..edd878e
--- /dev/null
+++ b/debian/patches/post-0.7/0046-Add-LGPL-license-boilerplate-to-files-lacking-it.patch
@@ -0,0 +1,66 @@
+From 683df9bf548da58e97365d61cf0338c5262ea6cc Mon Sep 17 00:00:00 2001
+From: Diego Biurrun <diego at biurrun.de>
+Date: Sun, 3 Jul 2011 19:40:34 +0200
+Subject: [PATCH 46/57] Add LGPL license boilerplate to files lacking it.
+
+(cherry picked from commit e3759c567db42c8dff255ef9f7258326da470755)
+---
+ libavcodec/high_bit_depth.h | 18 ++++++++++++++++++
+ libavcodec/opt.h | 18 ++++++++++++++++++
+ 2 files changed, 36 insertions(+), 0 deletions(-)
+
+diff --git a/libavcodec/high_bit_depth.h b/libavcodec/high_bit_depth.h
+index 511cd00..c0a6eaf 100644
+--- a/libavcodec/high_bit_depth.h
++++ b/libavcodec/high_bit_depth.h
+@@ -1,3 +1,21 @@
++/*
++ * This file is part of Libav.
++ *
++ * Libav is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2.1 of the License, or (at your option) any later version.
++ *
++ * Libav is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public
++ * License along with Libav; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
+ #include "dsputil.h"
+
+ #ifndef BIT_DEPTH
+diff --git a/libavcodec/opt.h b/libavcodec/opt.h
+index 70de27d..2380e74 100644
+--- a/libavcodec/opt.h
++++ b/libavcodec/opt.h
+@@ -1,3 +1,21 @@
++/*
++ * This file is part of Libav.
++ *
++ * Libav is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2.1 of the License, or (at your option) any later version.
++ *
++ * Libav is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public
++ * License along with Libav; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
+ /**
+ * @file
+ * This header is provided for compatibility only and will be removed
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0047-oggdec-Abort-Ogg-header-parsing-when-encountering-a-.patch b/debian/patches/post-0.7/0047-oggdec-Abort-Ogg-header-parsing-when-encountering-a-.patch
new file mode 100644
index 0000000..007e4d1
--- /dev/null
+++ b/debian/patches/post-0.7/0047-oggdec-Abort-Ogg-header-parsing-when-encountering-a-.patch
@@ -0,0 +1,39 @@
+From 5a33a29a91fe0c3fc30eb89a0675258f538c6af8 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Reimar=20D=C3=B6ffinger?= <Reimar.Doeffinger at gmx.de>
+Date: Mon, 4 Jul 2011 02:57:47 +0200
+Subject: [PATCH 47/57] oggdec: Abort Ogg header parsing when encountering a data packet.
+
+Fixes Bugzilla #11.
+
+Signed-off-by: Diego Biurrun <diego at biurrun.de>
+(cherry picked from commit 0a94020b5b073d1abf442e28b6db3be785aa680a)
+---
+ libavformat/oggdec.c | 5 +----
+ 1 files changed, 1 insertions(+), 4 deletions(-)
+
+diff --git a/libavformat/oggdec.c b/libavformat/oggdec.c
+index 998a33b..49f24e9 100644
+--- a/libavformat/oggdec.c
++++ b/libavformat/oggdec.c
+@@ -373,8 +373,7 @@ static int ogg_packet(AVFormatContext *s, int *str, int *dstart, int *dsize,
+
+ // We have reached the first non-header packet in this stream.
+ // Unfortunately more header packets may still follow for others,
+- // so we reset this later unless we are done with the headers
+- // for all streams.
++ // but if we continue with header parsing we may lose data packets.
+ ogg->headers = 1;
+
+ // Update the header state for all streams and
+@@ -383,8 +382,6 @@ static int ogg_packet(AVFormatContext *s, int *str, int *dstart, int *dsize,
+ s->data_offset = os->sync_pos;
+ for (i = 0; i < ogg->nstreams; i++) {
+ struct ogg_stream *cur_os = ogg->streams + i;
+- if (cur_os->header > 0)
+- ogg->headers = 0;
+
+ // if we have a partial non-header packet, its start is
+ // obviously at or after the data start
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0048-oggdec-prevent-heap-corruption.patch b/debian/patches/post-0.7/0048-oggdec-prevent-heap-corruption.patch
new file mode 100644
index 0000000..4198311
--- /dev/null
+++ b/debian/patches/post-0.7/0048-oggdec-prevent-heap-corruption.patch
@@ -0,0 +1,48 @@
+From cd63c32ff6f6a24dc971a0bb2ca8f8a4f57e79da Mon Sep 17 00:00:00 2001
+From: Chris Evans <cevans at chromium.org>
+Date: Wed, 29 Jun 2011 15:44:40 -0700
+Subject: [PATCH 48/57] oggdec: prevent heap corruption.
+
+Specifically crafted samples can reinit ogg->streams[] while
+reading samples, and thus we should not cache old pointers since
+these may no longer be valid.
+
+Signed-off-by: Ronald S. Bultje <rsbultje at gmail.com>
+(cherry picked from commit 4cc3467e7abfea7e8d03b6af511f7719038a5a98)
+---
+ libavformat/oggdec.c | 5 +++--
+ 1 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/libavformat/oggdec.c b/libavformat/oggdec.c
+index 49f24e9..25f5cd8 100644
+--- a/libavformat/oggdec.c
++++ b/libavformat/oggdec.c
+@@ -583,15 +583,15 @@ static int64_t ogg_read_timestamp(AVFormatContext *s, int stream_index,
+ int64_t *pos_arg, int64_t pos_limit)
+ {
+ struct ogg *ogg = s->priv_data;
+- struct ogg_stream *os = ogg->streams + stream_index;
+ AVIOContext *bc = s->pb;
+ int64_t pts = AV_NOPTS_VALUE;
+- int i;
++ int i = -1;
+ avio_seek(bc, *pos_arg, SEEK_SET);
+ ogg_reset(ogg);
+
+ while (avio_tell(bc) < pos_limit && !ogg_packet(s, &i, NULL, NULL, pos_arg)) {
+ if (i == stream_index) {
++ struct ogg_stream *os = ogg->streams + stream_index;
+ pts = ogg_calc_pts(s, i, NULL);
+ if (os->keyframe_seek && !(os->pflags & AV_PKT_FLAG_KEY))
+ pts = AV_NOPTS_VALUE;
+@@ -617,6 +617,7 @@ static int ogg_read_seek(AVFormatContext *s, int stream_index,
+ os->keyframe_seek = 1;
+
+ ret = av_seek_frame_binary(s, stream_index, timestamp, flags);
++ os = ogg->streams + stream_index;
+ if (ret < 0)
+ os->keyframe_seek = 0;
+ return ret;
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0049-docs-Remove-needless-configure-options.patch b/debian/patches/post-0.7/0049-docs-Remove-needless-configure-options.patch
new file mode 100644
index 0000000..afba2bf
--- /dev/null
+++ b/debian/patches/post-0.7/0049-docs-Remove-needless-configure-options.patch
@@ -0,0 +1,41 @@
+From 004194f465385c743adc2e52cdb726d8f70f6c0e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Martin=20Storsj=C3=B6?= <martin at martin.st>
+Date: Thu, 7 Jul 2011 09:51:57 +0300
+Subject: [PATCH 49/57] docs: Remove needless configure options
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Specifying --enable-static --disable-shared isn't necessary, these
+are the defaults.
+
+Signed-off-by: Martin Storsjö <martin at martin.st>
+---
+ doc/general.texi | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/doc/general.texi b/doc/general.texi
+index 775bf5d..dbc7faf 100644
+--- a/doc/general.texi
++++ b/doc/general.texi
+@@ -1024,7 +1024,7 @@ diffutils
+ Then run
+
+ @example
+-./configure --enable-static --disable-shared
++./configure
+ @end example
+
+ to make a static build.
+@@ -1071,7 +1071,7 @@ and add some special flags to your configure invocation.
+
+ For a static build run
+ @example
+-./configure --target-os=mingw32 --enable-memalign-hack --enable-static --disable-shared --extra-cflags=-mno-cygwin --extra-libs=-mno-cygwin
++./configure --target-os=mingw32 --extra-cflags=-mno-cygwin --extra-libs=-mno-cygwin
+ @end example
+
+ and for a build with shared libraries
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0050-docs-Don-t-recommend-adding-enable-memalign-hack.patch b/debian/patches/post-0.7/0050-docs-Don-t-recommend-adding-enable-memalign-hack.patch
new file mode 100644
index 0000000..d35c610
--- /dev/null
+++ b/debian/patches/post-0.7/0050-docs-Don-t-recommend-adding-enable-memalign-hack.patch
@@ -0,0 +1,41 @@
+From 5c2d7c4dc8b8618f6586e220f4af6e4baae6dac2 Mon Sep 17 00:00:00 2001
+From: Reinhard Tartler <siretart at tauware.de>
+Date: Tue, 12 Jul 2011 18:09:55 +0200
+Subject: [PATCH 50/57] docs: Don't recommend adding --enable-memalign-hack
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+It is enabled automatically when required nowadays.
+
+Signed-off-by: Martin Storsjö <martin at martin.st>
+(cherry picked from commit 9d36139231bfcf155a1b94f61a420768f1771174)
+---
+ doc/general.texi | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/doc/general.texi b/doc/general.texi
+index dbc7faf..93f563e 100644
+--- a/doc/general.texi
++++ b/doc/general.texi
+@@ -949,7 +949,7 @@ MSVC++-compatible import libraries.
+ @item Build Libav with
+
+ @example
+-./configure --enable-shared --enable-memalign-hack
++./configure --enable-shared
+ make
+ make install
+ @end example
+@@ -1076,7 +1076,7 @@ For a static build run
+
+ and for a build with shared libraries
+ @example
+-./configure --target-os=mingw32 --enable-memalign-hack --enable-shared --disable-static --extra-cflags=-mno-cygwin --extra-libs=-mno-cygwin
++./configure --target-os=mingw32 --enable-shared --disable-static --extra-cflags=-mno-cygwin --extra-libs=-mno-cygwin
+ @end example
+
+ @bye
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0051-docs-Use-proper-markup-for-a-literal-command-line-op.patch b/debian/patches/post-0.7/0051-docs-Use-proper-markup-for-a-literal-command-line-op.patch
new file mode 100644
index 0000000..cc325ef
--- /dev/null
+++ b/debian/patches/post-0.7/0051-docs-Use-proper-markup-for-a-literal-command-line-op.patch
@@ -0,0 +1,30 @@
+From a52c615a421d497614020df4e04d91e18fc8c0a2 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Martin=20Storsj=C3=B6?= <martin at martin.st>
+Date: Fri, 8 Jul 2011 13:37:54 +0300
+Subject: [PATCH 51/57] docs: Use proper markup for a literal command line option
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Martin Storsjö <martin at martin.st>
+(cherry picked from commit a3a94e1498685480800c22fc3ffa20d42ccfd527)
+---
+ doc/general.texi | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/doc/general.texi b/doc/general.texi
+index 93f563e..a35c809 100644
+--- a/doc/general.texi
++++ b/doc/general.texi
+@@ -986,7 +986,7 @@ extern __declspec(dllimport) const AVPixFmtDescriptor av_pix_fmt_descriptors[];
+
+ Note that using import libraries created by dlltool requires
+ the linker optimization option to be set to
+-"References: Keep Unreferenced Data (/OPT:NOREF)", otherwise
++"References: Keep Unreferenced Data (@code{/OPT:NOREF})", otherwise
+ the resulting binaries will fail during runtime. This isn't
+ required when using import libraries generated by lib.exe.
+
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0052-docs-Mention-the-upstream-bugzilla-url-about-the-dll.patch b/debian/patches/post-0.7/0052-docs-Mention-the-upstream-bugzilla-url-about-the-dll.patch
new file mode 100644
index 0000000..942ee22
--- /dev/null
+++ b/debian/patches/post-0.7/0052-docs-Mention-the-upstream-bugzilla-url-about-the-dll.patch
@@ -0,0 +1,30 @@
+From 0156f4f9da2577b32ebbb191047d7ff0ca613c44 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Martin=20Storsj=C3=B6?= <martin at martin.st>
+Date: Fri, 8 Jul 2011 11:00:01 +0300
+Subject: [PATCH 52/57] docs: Mention the upstream bugzilla url about the dlltool vs MSVC issue
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Martin Storsjö <martin at martin.st>
+(cherry picked from commit b369f327d5e6b01a4cae9e2726df7c73b2893eba)
+---
+ doc/general.texi | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/doc/general.texi b/doc/general.texi
+index a35c809..da6b621 100644
+--- a/doc/general.texi
++++ b/doc/general.texi
+@@ -989,6 +989,8 @@ the linker optimization option to be set to
+ "References: Keep Unreferenced Data (@code{/OPT:NOREF})", otherwise
+ the resulting binaries will fail during runtime. This isn't
+ required when using import libraries generated by lib.exe.
++This issue is reported upstream at
++ at url{http://sourceware.org/bugzilla/show_bug.cgi?id=12633}.
+
+ @subsection Cross compilation for Windows with Linux
+
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0053-vp8-mt-flush-worker-thread-not-application-thread-co.patch b/debian/patches/post-0.7/0053-vp8-mt-flush-worker-thread-not-application-thread-co.patch
new file mode 100644
index 0000000..5feeda8
--- /dev/null
+++ b/debian/patches/post-0.7/0053-vp8-mt-flush-worker-thread-not-application-thread-co.patch
@@ -0,0 +1,48 @@
+From dc1b670a2c34a0e1c5c0ba9531dfc8f5a6746a0b Mon Sep 17 00:00:00 2001
+From: Ronald S. Bultje <rsbultje at gmail.com>
+Date: Sun, 10 Jul 2011 21:23:09 -0700
+Subject: [PATCH 53/57] vp8/mt: flush worker thread, not application thread context, on seek.
+
+This prevents a crash when seeking.
+(cherry picked from commit d1cf45911935cc4fed9afd3a37d99616d31eb9da)
+---
+ libavcodec/pthread.c | 9 ++++++---
+ libavcodec/utils.c | 2 +-
+ 2 files changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/libavcodec/pthread.c b/libavcodec/pthread.c
+index 08ef4ba..9fea9a0 100644
+--- a/libavcodec/pthread.c
++++ b/libavcodec/pthread.c
+@@ -746,9 +746,12 @@ void ff_thread_flush(AVCodecContext *avctx)
+ if (!avctx->thread_opaque) return;
+
+ park_frame_worker_threads(fctx, avctx->thread_count);
+-
+- if (fctx->prev_thread)
+- update_context_from_thread(fctx->threads->avctx, fctx->prev_thread->avctx, 0);
++ if (fctx->prev_thread) {
++ if (fctx->prev_thread != &fctx->threads[0])
++ update_context_from_thread(fctx->threads[0].avctx, fctx->prev_thread->avctx, 0);
++ if (avctx->codec->flush)
++ avctx->codec->flush(fctx->threads[0].avctx);
++ }
+
+ fctx->next_decoding = fctx->next_finished = 0;
+ fctx->delaying = 1;
+diff --git a/libavcodec/utils.c b/libavcodec/utils.c
+index c32fda2..bbed726 100644
+--- a/libavcodec/utils.c
++++ b/libavcodec/utils.c
+@@ -1058,7 +1058,7 @@ void avcodec_flush_buffers(AVCodecContext *avctx)
+ {
+ if(HAVE_PTHREADS && avctx->active_thread_type&FF_THREAD_FRAME)
+ ff_thread_flush(avctx);
+- if(avctx->codec->flush)
++ else if(avctx->codec->flush)
+ avctx->codec->flush(avctx);
+ }
+
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0054-mt-proper-locking-around-release_buffer-calls.patch b/debian/patches/post-0.7/0054-mt-proper-locking-around-release_buffer-calls.patch
new file mode 100644
index 0000000..66cbfff
--- /dev/null
+++ b/debian/patches/post-0.7/0054-mt-proper-locking-around-release_buffer-calls.patch
@@ -0,0 +1,50 @@
+From 5e3578893a06644e226bcfefc726b60e2d75a890 Mon Sep 17 00:00:00 2001
+From: Ronald S. Bultje <rsbultje at gmail.com>
+Date: Sun, 10 Jul 2011 17:28:28 -0700
+Subject: [PATCH 54/57] mt: proper locking around release_buffer calls.
+
+This fixes a crash when seeking in some webm files with many
+threads (e.g. 8).
+(cherry picked from commit 5eafc8b46644764f8aef1b7b2ecae53ee8034822)
+---
+ libavcodec/pthread.c | 7 ++++++-
+ 1 files changed, 6 insertions(+), 1 deletions(-)
+
+diff --git a/libavcodec/pthread.c b/libavcodec/pthread.c
+index 9fea9a0..e546c21 100644
+--- a/libavcodec/pthread.c
++++ b/libavcodec/pthread.c
+@@ -408,9 +408,10 @@ static void release_delayed_buffers(PerThreadContext *p)
+ FrameThreadContext *fctx = p->parent;
+
+ while (p->num_released_buffers > 0) {
+- AVFrame *f = &p->released_buffers[--p->num_released_buffers];
++ AVFrame *f;
+
+ pthread_mutex_lock(&fctx->buffer_mutex);
++ f = &p->released_buffers[--p->num_released_buffers];
+ free_progress(f);
+ f->thread_opaque = NULL;
+
+@@ -839,6 +840,7 @@ int ff_thread_get_buffer(AVCodecContext *avctx, AVFrame *f)
+ void ff_thread_release_buffer(AVCodecContext *avctx, AVFrame *f)
+ {
+ PerThreadContext *p = avctx->thread_opaque;
++ FrameThreadContext *fctx;
+
+ if (!(avctx->active_thread_type&FF_THREAD_FRAME)) {
+ avctx->release_buffer(avctx, f);
+@@ -854,7 +856,10 @@ void ff_thread_release_buffer(AVCodecContext *avctx, AVFrame *f)
+ av_log(avctx, AV_LOG_DEBUG, "thread_release_buffer called on pic %p, %d buffers used\n",
+ f, f->owner->internal_buffer_count);
+
++ fctx = p->parent;
++ pthread_mutex_lock(&fctx->buffer_mutex);
+ p->released_buffers[p->num_released_buffers++] = *f;
++ pthread_mutex_unlock(&fctx->buffer_mutex);
+ memset(f->data, 0, sizeof(f->data));
+ }
+
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0055-update-Changelog.patch b/debian/patches/post-0.7/0055-update-Changelog.patch
new file mode 100644
index 0000000..a76f655
--- /dev/null
+++ b/debian/patches/post-0.7/0055-update-Changelog.patch
@@ -0,0 +1,31 @@
+From 2bbd81fba310aa34f2973f5dcff0f13bac1fd9b1 Mon Sep 17 00:00:00 2001
+From: Reinhard Tartler <siretart at tauware.de>
+Date: Mon, 4 Jul 2011 12:11:40 +0200
+Subject: [PATCH 55/57] update Changelog
+
+---
+ Changelog | 6 ++++--
+ 1 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/Changelog b/Changelog
+index 1c6952c..d3a1fb4 100644
+--- a/Changelog
++++ b/Changelog
+@@ -6,10 +6,12 @@ version 0.7.1:
+
+ - added various additional FOURCC codec identifiers
+ - H.264 4:4:4 fixes
+-- build system fixes
+-- Doxygen corrections and improvements
++- build system and compilation fixes
++- Doxygen and general documentation corrections and improvements
+ - fixed segfault in ffprobe
+ - behavioral fix in av_open_input_stream()
++- Licensing clarification for LGPL'ed vf_gradfun
++- bugfixes while seeking in multithreaded decoding
+
+
+ version 0.7:
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0056-Update-RELEASE-file.patch b/debian/patches/post-0.7/0056-Update-RELEASE-file.patch
new file mode 100644
index 0000000..62aae4f
--- /dev/null
+++ b/debian/patches/post-0.7/0056-Update-RELEASE-file.patch
@@ -0,0 +1,19 @@
+From 9459390f29ec6df63ff1878f13b7b4343811948a Mon Sep 17 00:00:00 2001
+From: Reinhard Tartler <siretart at tauware.de>
+Date: Tue, 12 Jul 2011 18:31:28 +0200
+Subject: [PATCH 56/57] Update RELEASE file
+
+---
+ RELEASE | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/RELEASE b/RELEASE
+index eb49d7c..39e898a 100644
+--- a/RELEASE
++++ b/RELEASE
+@@ -1 +1 @@
+-0.7
++0.7.1
+--
+1.7.4.1
+
diff --git a/debian/patches/post-0.7/0057-matroskadec-matroska_read_seek-after-after-EBML_STOP.patch b/debian/patches/post-0.7/0057-matroskadec-matroska_read_seek-after-after-EBML_STOP.patch
new file mode 100644
index 0000000..4b237ca
--- /dev/null
+++ b/debian/patches/post-0.7/0057-matroskadec-matroska_read_seek-after-after-EBML_STOP.patch
@@ -0,0 +1,39 @@
+From c29c609e0f4bf3fea29104c689c11f7dda499135 Mon Sep 17 00:00:00 2001
+From: John Stebbins <stebbins at jetheaddev.com>
+Date: Fri, 1 Jul 2011 08:57:42 -0700
+Subject: [PATCH 57/57] matroskadec: matroska_read_seek after after EBML_STOP leads to failure.
+
+EBML_STOP leaves matroska->current_id set. Then matroska_read_seek changes
+the stream position without resetting current_id. The next
+matroska_parse_cluster fails due to calculation of incorrect pos. So clear
+current_id when avio_seek happens in matroska_read_seek.
+
+Signed-off-by: Ronald S. Bultje <rsbultje at gmail.com>
+(cherry picked from commit cdc2c1c57616956d975c57b4b69eb73865f513f5)
+---
+ libavformat/matroskadec.c | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
+index 57a8f62..60f6c69 100644
+--- a/libavformat/matroskadec.c
++++ b/libavformat/matroskadec.c
+@@ -1903,6 +1903,7 @@ static int matroska_read_seek(AVFormatContext *s, int stream_index,
+
+ if ((index = av_index_search_timestamp(st, timestamp, flags)) < 0) {
+ avio_seek(s->pb, st->index_entries[st->nb_index_entries-1].pos, SEEK_SET);
++ matroska->current_id = 0;
+ while ((index = av_index_search_timestamp(st, timestamp, flags)) < 0) {
+ matroska_clear_queue(matroska);
+ if (matroska_parse_cluster(matroska) < 0)
+@@ -1931,6 +1932,7 @@ static int matroska_read_seek(AVFormatContext *s, int stream_index,
+ }
+
+ avio_seek(s->pb, st->index_entries[index_min].pos, SEEK_SET);
++ matroska->current_id = 0;
+ matroska->skip_to_keyframe = !(flags & AVSEEK_FLAG_ANY);
+ matroska->skip_to_timecode = st->index_entries[index].timestamp;
+ matroska->done = 0;
+--
+1.7.4.1
+
diff --git a/debian/patches/series b/debian/patches/series
index 89693a4..ac1294d 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1,58 @@
01-Tweak-doxygen-config.patch
+post-0.7/0001-h264-Fix-assert-that-failed-to-compile-with-DDEBUG.patch
+post-0.7/0002-rawvideo-Support-auv2-fourcc.patch
+post-0.7/0003-riff-Add-M263-XVIX-MMJP-CDV5-fourccs.patch
+post-0.7/0004-riff-Add-DAVC-fourcc.patch
+post-0.7/0005-riff-img2-Add-JPEG-2000-codec-IDs.patch
+post-0.7/0006-mov-Support-R10g-codec-identifier.patch
+post-0.7/0007-mov-Support-Digital-Voodoo-SD-8-Bit-and-DTS-codec-id.patch
+post-0.7/0008-configure-report-optimization-for-size-separately.patch
+post-0.7/0009-rawdec-Fix-decoding-of-QT-WRAW-files.patch
+post-0.7/0010-alsa-add-support-for-more-formats.patch
+post-0.7/0011-H.264-fix-bug-in-lossless-4-4-4-decoding.patch
+post-0.7/0012-H.264-reference-the-correct-SPS-in-decode_scaling_ma.patch
+post-0.7/0013-H.264-fix-4-4-4-cropping-warning.patch
+post-0.7/0014-H.264-fix-4-4-4-deblocking-MBAFF.patch
+post-0.7/0015-H.264-fix-4-4-4-deblocking-8x8dct-cavlc-MBAFF.patch
+post-0.7/0016-alsa-support-unsigned-variants-of-already-supported-.patch
+post-0.7/0017-build-Remove-dependency-and-editor-backup-files-also.patch
+post-0.7/0018-add-changelog-entries-for-added-fourcc-codecs-and-H..patch
+post-0.7/0019-ARM-silence-some-annoying-armcc-warnings.patch
+post-0.7/0020-H.264-disable-2tap-qpel-with-CODEC_FLAG2_FAST-and-8-.patch
+post-0.7/0021-Add-new-yuv444-pixfmts-to-avcodec_align_dimensions2.patch
+post-0.7/0022-wavpack-skip-blocks-with-no-samples.patch
+post-0.7/0023-ogg-fix-double-free-when-finding-length-of-small-cha.patch
+post-0.7/0024-lavf-use-the-correct-pointer-in-av_open_input_stream.patch
+post-0.7/0025-lavf-restore-old-behavior-for-custom-AVIOContex-with.patch
+post-0.7/0026-avformat-doxify-the-Metadata-API.patch
+post-0.7/0027-doxygen-be-more-permissive-when-searching-for-API-ex.patch
+post-0.7/0028-doxygen-Prefer-member-groups-over-grouping-into-modu.patch
+post-0.7/0029-libavformat-Add-an-example-how-to-use-the-metadata-A.patch
+post-0.7/0030-ffmpeg-use-av_get_bytes_per_sample-in-place-of-av_ge.patch
+post-0.7/0031-suggest-to-use-av_get_bytes_per_sample-in-av_get_bit.patch
+post-0.7/0032-Update-Doxyfile-to-the-format-preferred-by-Doxygen-1.patch
+post-0.7/0033-Fix-segmentation-fault-in-ffprobe.patch
+post-0.7/0034-doxygen-fix-usage-of-file-directive-in-libavutil-dic.patch
+post-0.7/0035-doxygen-Remove-spurious-documentation-for-non-existi.patch
+post-0.7/0036-doxygen-Drop-array-size-declarations-from-Doxygen-pa.patch
+post-0.7/0037-Add-version-number-to-doxygen-config.patch
+post-0.7/0038-update-Changelog.patch
+post-0.7/0039-vf_gradfun-relicense-x86-asm-to-LGPL.patch
+post-0.7/0040-doxygen-Escape-in-Doxygen-documentation.patch
+post-0.7/0041-RTSP-Doxygen-comment-cleanup.patch
+post-0.7/0042-ffmpeg-Fix-VDPAU-decoding-for-some-H264-samples.patch
+post-0.7/0043-vorbis-vpxenc-Add-missing-include-for-av_rescale.patch
+post-0.7/0044-libxvid-add-missing-include-of-libavutil-mathematics.patch
+post-0.7/0045-doxygen-Fix-documentation-for-some-VP8-functions.patch
+post-0.7/0046-Add-LGPL-license-boilerplate-to-files-lacking-it.patch
+post-0.7/0047-oggdec-Abort-Ogg-header-parsing-when-encountering-a-.patch
+post-0.7/0048-oggdec-prevent-heap-corruption.patch
+post-0.7/0049-docs-Remove-needless-configure-options.patch
+post-0.7/0050-docs-Don-t-recommend-adding-enable-memalign-hack.patch
+post-0.7/0051-docs-Use-proper-markup-for-a-literal-command-line-op.patch
+post-0.7/0052-docs-Mention-the-upstream-bugzilla-url-about-the-dll.patch
+post-0.7/0053-vp8-mt-flush-worker-thread-not-application-thread-co.patch
+post-0.7/0054-mt-proper-locking-around-release_buffer-calls.patch
+post-0.7/0055-update-Changelog.patch
+post-0.7/0056-Update-RELEASE-file.patch
+post-0.7/0057-matroskadec-matroska_read_seek-after-after-EBML_STOP.patch
--
Libav/FFmpeg packaging
More information about the pkg-multimedia-commits
mailing list