[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