[SCM] ffmpeg/master: add additional 0.7 patches

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Mon Sep 26 21:03:59 UTC 2011


The following commit has been merged in the master branch:
commit 0c5167108ccd4fad757ed96ff1ea97b6e42d8bdd
Author: Reinhard Tartler <siretart at tauware.de>
Date:   Mon Sep 26 22:17:03 2011 +0200

    add additional 0.7 patches

diff --git a/debian/patches/post-0.7.1/0006-swscale-don-t-use-planar-output-functions-to-write-t.patch b/debian/patches/post-0.7.1/0006-swscale-don-t-use-planar-output-functions-to-write-t.patch
new file mode 100644
index 0000000..58c4e61
--- /dev/null
+++ b/debian/patches/post-0.7.1/0006-swscale-don-t-use-planar-output-functions-to-write-t.patch
@@ -0,0 +1,31 @@
+From 47be9f5bd50e9c388adca6f8991cde7b4612db56 Mon Sep 17 00:00:00 2001
+From: Ronald S. Bultje <rsbultje at gmail.com>
+Date: Sun, 26 Jun 2011 15:52:00 -0700
+Subject: [PATCH 06/70] swscale: don't use planar output functions to write to NV12/21.
+
+This prevents a crash when converting to NV12/21 without the bitexact
+flags enabled.
+(cherry picked from commit 0d994b2f45c08794899057ee7ca54f48218c0a53)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libswscale/x86/swscale_template.c |    3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/libswscale/x86/swscale_template.c b/libswscale/x86/swscale_template.c
+index 8fad257..dc92cdd 100644
+--- a/libswscale/x86/swscale_template.c
++++ b/libswscale/x86/swscale_template.c
+@@ -2203,7 +2203,8 @@ static av_cold void RENAME(sws_init_swScale)(SwsContext *c)
+     enum PixelFormat srcFormat = c->srcFormat,
+                      dstFormat = c->dstFormat;
+ 
+-    if (!is16BPS(dstFormat) && !is9_OR_10BPS(dstFormat)) {
++    if (!is16BPS(dstFormat) && !is9_OR_10BPS(dstFormat) &&
++        dstFormat != PIX_FMT_NV12 && dstFormat != PIX_FMT_NV21) {
+         if (!(c->flags & SWS_BITEXACT)) {
+             if (c->flags & SWS_ACCURATE_RND) {
+                 c->yuv2yuv1 = RENAME(yuv2yuv1_ar    );
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0007-H.264-fix-overreads-of-qscale_table.patch b/debian/patches/post-0.7.1/0007-H.264-fix-overreads-of-qscale_table.patch
new file mode 100644
index 0000000..4237363
--- /dev/null
+++ b/debian/patches/post-0.7.1/0007-H.264-fix-overreads-of-qscale_table.patch
@@ -0,0 +1,54 @@
+From 8ad1f0852b26468cb681ad49be83e2bc25d07934 Mon Sep 17 00:00:00 2001
+From: Jason Garrett-Glaser <jason at x264.com>
+Date: Mon, 4 Jul 2011 06:05:34 -0700
+Subject: [PATCH 07/70] H.264: fix overreads of qscale_table
+
+filter_mb_fast assumed that qscale_table was padded like many of the other tables.
+(cherry picked from commit 5029a406334ad0eaf92130e23d596e405a8a5aa0)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/mpegvideo.c |    5 +++--
+ libavcodec/mpegvideo.h |    1 +
+ 2 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c
+index 4978d28..ceed41f 100644
+--- a/libavcodec/mpegvideo.c
++++ b/libavcodec/mpegvideo.c
+@@ -285,9 +285,10 @@ int ff_alloc_picture(MpegEncContext *s, Picture *pic, int shared){
+         }
+ 
+         FF_ALLOCZ_OR_GOTO(s->avctx, pic->mbskip_table , mb_array_size * sizeof(uint8_t)+2, fail) //the +2 is for the slice end check
+-        FF_ALLOCZ_OR_GOTO(s->avctx, pic->qscale_table , mb_array_size * sizeof(uint8_t)  , fail)
++        FF_ALLOCZ_OR_GOTO(s->avctx, pic->qscale_table_base , (big_mb_num + s->mb_stride) * sizeof(uint8_t)  , fail)
+         FF_ALLOCZ_OR_GOTO(s->avctx, pic->mb_type_base , (big_mb_num + s->mb_stride) * sizeof(uint32_t), fail)
+         pic->mb_type= pic->mb_type_base + 2*s->mb_stride+1;
++        pic->qscale_table = pic->qscale_table_base + 2*s->mb_stride + 1;
+         if(s->out_format == FMT_H264){
+             for(i=0; i<2; i++){
+                 FF_ALLOCZ_OR_GOTO(s->avctx, pic->motion_val_base[i], 2 * (b4_array_size+4)  * sizeof(int16_t), fail)
+@@ -339,7 +340,7 @@ static void free_picture(MpegEncContext *s, Picture *pic){
+     av_freep(&pic->mc_mb_var);
+     av_freep(&pic->mb_mean);
+     av_freep(&pic->mbskip_table);
+-    av_freep(&pic->qscale_table);
++    av_freep(&pic->qscale_table_base);
+     av_freep(&pic->mb_type_base);
+     av_freep(&pic->dct_coeff);
+     av_freep(&pic->pan_scan);
+diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h
+index 6ce7faa..f37977c 100644
+--- a/libavcodec/mpegvideo.h
++++ b/libavcodec/mpegvideo.h
+@@ -88,6 +88,7 @@ typedef struct Picture{
+      * halfpel luma planes.
+      */
+     uint8_t *interpolated[3];
++    int8_t *qscale_table_base;
+     int16_t (*motion_val_base[2])[2];
+     uint32_t *mb_type_base;
+ #define MB_TYPE_INTRA MB_TYPE_INTRA4x4 //default mb_type if there is just one type
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0008-dca-set-AVCodecContext-frame_size-for-DTS-audio.patch b/debian/patches/post-0.7.1/0008-dca-set-AVCodecContext-frame_size-for-DTS-audio.patch
new file mode 100644
index 0000000..a4f49a4
--- /dev/null
+++ b/debian/patches/post-0.7.1/0008-dca-set-AVCodecContext-frame_size-for-DTS-audio.patch
@@ -0,0 +1,35 @@
+From 06318968853ff8c628bbc75fb126483c08f22fd9 Mon Sep 17 00:00:00 2001
+From: John Stebbins <stebbins at jetheaddev.com>
+Date: Mon, 4 Jul 2011 09:55:19 -0700
+Subject: [PATCH 08/70] dca: set AVCodecContext frame_size for DTS audio
+
+Set the frame size when decoding DTS audio.
+
+This has the side effect of fixing the computation of timestamps for DTS-HD in compute_pkt_fields.  Since frame_size is
+not currently set, the duration of a frame is being guessed based on the streams bitrate.  But for DTS-HD, the bitrate
+currently used is the rate of the DTS core which is much different than the whole DTS-HD stream and leads to a wildly
+inaccurate frame duration estimate.
+
+Signed-off-by: Ronald S. Bultje <rsbultje at gmail.com>
+(cherry picked from commit 49c7006c7e815d4330247624a9e6ba30e288cd02)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/dca.c |    1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/libavcodec/dca.c b/libavcodec/dca.c
+index a9b2c9b..fad6bce 100644
+--- a/libavcodec/dca.c
++++ b/libavcodec/dca.c
+@@ -1650,6 +1650,7 @@ static int dca_decode_frame(AVCodecContext * avctx,
+     //set AVCodec values with parsed data
+     avctx->sample_rate = s->sample_rate;
+     avctx->bit_rate = s->bit_rate;
++    avctx->frame_size = s->sample_blocks * 32;
+ 
+     s->profile = FF_PROFILE_DTS;
+ 
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0009-mxfenc-fix-ignored-drop-flag-in-binary-timecode-repr.patch b/debian/patches/post-0.7.1/0009-mxfenc-fix-ignored-drop-flag-in-binary-timecode-repr.patch
new file mode 100644
index 0000000..04b69dc
--- /dev/null
+++ b/debian/patches/post-0.7.1/0009-mxfenc-fix-ignored-drop-flag-in-binary-timecode-repr.patch
@@ -0,0 +1,29 @@
+From 776603b650485f4f2d45f383b772ac5a4f03ebfb Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Cl=C3=A9ment=20B=C5=93sch?= <clement.boesch at smartjog.com>
+Date: Mon, 4 Jul 2011 10:19:46 +0200
+Subject: [PATCH 09/70] mxfenc: fix ignored drop flag in binary timecode representation.
+
+Signed-off-by: Ronald S. Bultje <rsbultje at gmail.com>
+(cherry picked from commit 4d5e7ab5c48451404038706ef3113c9925a83087)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavformat/mxfenc.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/libavformat/mxfenc.c b/libavformat/mxfenc.c
+index c448e14..387263e 100644
+--- a/libavformat/mxfenc.c
++++ b/libavformat/mxfenc.c
+@@ -1539,7 +1539,7 @@ static const uint8_t system_metadata_package_set_key[] = { 0x06,0x0E,0x2B,0x34,0
+ static uint32_t ff_framenum_to_12m_time_code(unsigned frame, int drop, int fps)
+ {
+     return (0                                    << 31) | // color frame flag
+-           (0                                    << 30) | // drop  frame flag
++           (drop                                 << 30) | // drop  frame flag
+            ( ((frame % fps) / 10)                << 28) | // tens  of frames
+            ( ((frame % fps) % 10)                << 24) | // units of frames
+            (0                                    << 23) | // field phase (NTSC), b0 (PAL)
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0010-ARM-workaround-for-bug-in-GNU-assembler.patch b/debian/patches/post-0.7.1/0010-ARM-workaround-for-bug-in-GNU-assembler.patch
new file mode 100644
index 0000000..5d9cbd5
--- /dev/null
+++ b/debian/patches/post-0.7.1/0010-ARM-workaround-for-bug-in-GNU-assembler.patch
@@ -0,0 +1,33 @@
+From 15355f9af2a415bbfbffdace04a4341c8af050e7 Mon Sep 17 00:00:00 2001
+From: Mans Rullgard <mans at mansr.com>
+Date: Tue, 5 Jul 2011 18:29:35 +0100
+Subject: [PATCH 10/70] ARM: workaround for bug in GNU assembler
+
+Some versions of the GNU assembler do not handle 64-bit
+immediate operands containing arithmetic.  Writing the
+value out in full works correctly.
+
+Signed-off-by: Mans Rullgard <mans at mansr.com>
+(cherry picked from commit fce1e43410bdc032c4cf2b1c66166a9ed99cc8f1)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/arm/fft_fixed_neon.S |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/libavcodec/arm/fft_fixed_neon.S b/libavcodec/arm/fft_fixed_neon.S
+index 14884d3..63d8159 100644
+--- a/libavcodec/arm/fft_fixed_neon.S
++++ b/libavcodec/arm/fft_fixed_neon.S
+@@ -56,7 +56,7 @@
+         vhsub.s16       \r0, \d0, \d1           @ t3, t4, t8, t7
+         vhsub.s16       \r1, \d1, \d0
+         vhadd.s16       \d0, \d0, \d1           @ t1, t2, t6, t5
+-        vmov.i64        \d1, #0xffff<<32
++        vmov.i64        \d1, #0xffff00000000
+         vbit            \r0, \r1, \d1
+         vrev64.16       \r1, \r0                @ t7, t8, t4, t3
+         vtrn.32         \r0, \r1                @ t3, t4, t7, t8
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0011-eval-fix-memleak.patch b/debian/patches/post-0.7.1/0011-eval-fix-memleak.patch
new file mode 100644
index 0000000..123d4cb
--- /dev/null
+++ b/debian/patches/post-0.7.1/0011-eval-fix-memleak.patch
@@ -0,0 +1,27 @@
+From e9520db07e1e4a795523726329d448d168b188d5 Mon Sep 17 00:00:00 2001
+From: Ronald S. Bultje <rsbultje at gmail.com>
+Date: Tue, 5 Jul 2011 18:10:48 -0700
+Subject: [PATCH 11/70] eval: fix memleak.
+
+(cherry picked from commit fe277b16f0861a327e1f6c00c0dbb8b00806d60d)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavutil/eval.c |    1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/libavutil/eval.c b/libavutil/eval.c
+index a378821..8bcba36 100644
+--- a/libavutil/eval.c
++++ b/libavutil/eval.c
+@@ -488,6 +488,7 @@ int av_expr_parse(AVExpr **expr, const char *s,
+     if ((ret = parse_expr(&e, &p)) < 0)
+         goto end;
+     if (*p.s) {
++        av_expr_free(e);
+         av_log(&p, AV_LOG_ERROR, "Invalid chars '%s' at the end of expression '%s'\n", p.s, s0);
+         ret = AVERROR(EINVAL);
+         goto end;
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0012-adts-Fix-PCE-copying.patch b/debian/patches/post-0.7.1/0012-adts-Fix-PCE-copying.patch
new file mode 100644
index 0000000..49a88d6
--- /dev/null
+++ b/debian/patches/post-0.7.1/0012-adts-Fix-PCE-copying.patch
@@ -0,0 +1,33 @@
+From 6107543d4e4f6bfa7810e3696ab57553f7257b4b Mon Sep 17 00:00:00 2001
+From: Alex Converse <alex.converse at gmail.com>
+Date: Wed, 29 Jun 2011 13:41:47 -0700
+Subject: [PATCH 12/70] adts: Fix PCE copying.
+
+Parse the extension flag bit when reading the MPEG4 AudioSpecificConfig.
+
+This has nothing to do with SBR/PS contradictory to what was noted when it was removed.
+(cherry picked from commit 7f01a4192cdf4565eadee457f76e6b5196e35e0b)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavformat/adtsenc.c |    4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+diff --git a/libavformat/adtsenc.c b/libavformat/adtsenc.c
+index e858a81..75649e2 100644
+--- a/libavformat/adtsenc.c
++++ b/libavformat/adtsenc.c
+@@ -59,6 +59,10 @@ int ff_adts_decode_extradata(AVFormatContext *s, ADTSContext *adts, uint8_t *buf
+         av_log(s, AV_LOG_ERROR, "Scalable configurations are not allowed in ADTS\n");
+         return -1;
+     }
++    if (get_bits(&gb, 1)) {
++        av_log(s, AV_LOG_ERROR, "Extension flag is not allowed in ADTS\n");
++        return -1;
++    }
+     if (!adts->channel_conf) {
+         init_put_bits(&pb, adts->pce_data, MAX_PCE_SIZE);
+ 
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0013-Revert-ffmpeg-get-rid-of-useless-AVInputStream.nb_st.patch b/debian/patches/post-0.7.1/0013-Revert-ffmpeg-get-rid-of-useless-AVInputStream.nb_st.patch
new file mode 100644
index 0000000..cc72577
--- /dev/null
+++ b/debian/patches/post-0.7.1/0013-Revert-ffmpeg-get-rid-of-useless-AVInputStream.nb_st.patch
@@ -0,0 +1,65 @@
+From 94177614747ebb8a8e1b7e70cfd5229cbac56c04 Mon Sep 17 00:00:00 2001
+From: Anton Khirnov <anton at khirnov.net>
+Date: Sun, 11 Sep 2011 12:27:51 +0200
+Subject: [PATCH 13/70] Revert "ffmpeg: get rid of useless AVInputStream.nb_streams."
+
+This reverts commit 2cf8355f98681bdd726b739008acd5483f82f8d7.
+AVInputStream.nb_streams tracks number of streams found at the
+beginning, new streams may appear that ffmpeg doesn't know about. Fixes
+crash in this case.
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ ffmpeg.c |    8 +++++---
+ 1 files changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/ffmpeg.c b/ffmpeg.c
+index c1db3d5..76d1cf3 100644
+--- a/ffmpeg.c
++++ b/ffmpeg.c
+@@ -329,6 +329,7 @@ typedef struct AVInputFile {
+     int eof_reached;      /* true if eof reached */
+     int ist_index;        /* index of first stream in ist_table */
+     int buffer_size;      /* current total buffer size */
++    int nb_streams;       /* nb streams we are aware of */
+ } AVInputFile;
+ 
+ static AVInputStream *input_streams = NULL;
+@@ -1983,7 +1984,7 @@ static int transcode(AVFormatContext **output_files,
+         int si = stream_maps[i].stream_index;
+ 
+         if (fi < 0 || fi > nb_input_files - 1 ||
+-            si < 0 || si > input_files[fi].ctx->nb_streams - 1) {
++            si < 0 || si > input_files[fi].nb_streams - 1) {
+             fprintf(stderr,"Could not find input stream #%d.%d\n", fi, si);
+             ret = AVERROR(EINVAL);
+             goto fail;
+@@ -1991,7 +1992,7 @@ static int transcode(AVFormatContext **output_files,
+         fi = stream_maps[i].sync_file_index;
+         si = stream_maps[i].sync_stream_index;
+         if (fi < 0 || fi > nb_input_files - 1 ||
+-            si < 0 || si > input_files[fi].ctx->nb_streams - 1) {
++            si < 0 || si > input_files[fi].nb_streams - 1) {
+             fprintf(stderr,"Could not find sync stream #%d.%d\n", fi, si);
+             ret = AVERROR(EINVAL);
+             goto fail;
+@@ -2607,7 +2608,7 @@ static int transcode(AVFormatContext **output_files,
+         }
+         /* the following test is needed in case new streams appear
+            dynamically in stream : we ignore them */
+-        if (pkt.stream_index >= input_files[file_index].ctx->nb_streams)
++        if (pkt.stream_index >= input_files[file_index].nb_streams)
+             goto discard_packet;
+         ist_index = input_files[file_index].ist_index + pkt.stream_index;
+         ist = &input_streams[ist_index];
+@@ -3365,6 +3366,7 @@ static int opt_input_file(const char *opt, const char *filename)
+     input_files = grow_array(input_files, sizeof(*input_files), &nb_input_files, nb_input_files + 1);
+     input_files[nb_input_files - 1].ctx        = ic;
+     input_files[nb_input_files - 1].ist_index  = nb_input_streams - ic->nb_streams;
++    input_files[nb_input_files - 1].nb_streams = ic->nb_streams;
+ 
+     frame_rate    = (AVRational){0, 0};
+     frame_pix_fmt = PIX_FMT_NONE;
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0014-gxf-Fix-25-fps-DV-material-in-GXF-being-misdetected-.patch b/debian/patches/post-0.7.1/0014-gxf-Fix-25-fps-DV-material-in-GXF-being-misdetected-.patch
new file mode 100644
index 0000000..b4872da
--- /dev/null
+++ b/debian/patches/post-0.7.1/0014-gxf-Fix-25-fps-DV-material-in-GXF-being-misdetected-.patch
@@ -0,0 +1,99 @@
+From c75ba07f6eb83439bc44e5504152f8ca03097bec Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tomas=20H=C3=A4rdin?= <tomas.hardin at codemill.se>
+Date: Thu, 23 Jun 2011 15:59:33 +0200
+Subject: [PATCH 14/70] gxf: Fix 25 fps DV material in GXF being misdetected as 50 fps
+
+Set DV packet durations using fields_per_frame.
+This requires turning gxf_stream_info into the demuxer's context for access to the value in gxf_packet().
+Since MPEG-2 seems to work fine this done only for DV.
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+(cherry picked from commit 99fecc64b064a013559d3d61f7d9790e3c95c80e)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavformat/gxf.c |   25 ++++++++++++++++---------
+ 1 files changed, 16 insertions(+), 9 deletions(-)
+
+diff --git a/libavformat/gxf.c b/libavformat/gxf.c
+index 74d925f..d77fd18 100644
+--- a/libavformat/gxf.c
++++ b/libavformat/gxf.c
+@@ -264,7 +264,7 @@ static int gxf_header(AVFormatContext *s, AVFormatParameters *ap) {
+     int map_len;
+     int len;
+     AVRational main_timebase = {0, 0};
+-    struct gxf_stream_info si;
++    struct gxf_stream_info *si = s->priv_data;
+     int i;
+     if (!parse_packet_header(pb, &pkt_type, &map_len) || pkt_type != PKT_MAP) {
+         av_log(s, AV_LOG_ERROR, "map packet not found\n");
+@@ -282,7 +282,7 @@ static int gxf_header(AVFormatContext *s, AVFormatParameters *ap) {
+         return 0;
+     }
+     map_len -= len;
+-    gxf_material_tags(pb, &len, &si);
++    gxf_material_tags(pb, &len, si);
+     avio_skip(pb, len);
+     map_len -= 2;
+     len = avio_rb16(pb); // length of track description
+@@ -300,7 +300,7 @@ static int gxf_header(AVFormatContext *s, AVFormatParameters *ap) {
+         track_id = avio_r8(pb);
+         track_len = avio_rb16(pb);
+         len -= track_len;
+-        gxf_track_tags(pb, &track_len, &si);
++        gxf_track_tags(pb, &track_len, si);
+         avio_skip(pb, track_len);
+         if (!(track_type & 0x80)) {
+            av_log(s, AV_LOG_ERROR, "invalid track type %x\n", track_type);
+@@ -316,12 +316,12 @@ static int gxf_header(AVFormatContext *s, AVFormatParameters *ap) {
+         if (idx < 0) continue;
+         st = s->streams[idx];
+         if (!main_timebase.num || !main_timebase.den) {
+-            main_timebase.num = si.frames_per_second.den;
+-            main_timebase.den = si.frames_per_second.num * 2;
++            main_timebase.num = si->frames_per_second.den;
++            main_timebase.den = si->frames_per_second.num * 2;
+         }
+-        st->start_time = si.first_field;
+-        if (si.first_field != AV_NOPTS_VALUE && si.last_field != AV_NOPTS_VALUE)
+-            st->duration = si.last_field - si.first_field;
++        st->start_time = si->first_field;
++        if (si->first_field != AV_NOPTS_VALUE && si->last_field != AV_NOPTS_VALUE)
++            st->duration = si->last_field - si->first_field;
+     }
+     if (len < 0)
+         av_log(s, AV_LOG_ERROR, "invalid track description length specified\n");
+@@ -422,6 +422,8 @@ static int gxf_packet(AVFormatContext *s, AVPacket *pkt) {
+     AVIOContext *pb = s->pb;
+     GXFPktType pkt_type;
+     int pkt_len;
++    struct gxf_stream_info *si = s->priv_data;
++
+     while (!pb->eof_reached) {
+         AVStream *st;
+         int track_type, track_id, ret;
+@@ -473,6 +475,11 @@ static int gxf_packet(AVFormatContext *s, AVPacket *pkt) {
+             avio_skip(pb, skip);
+         pkt->stream_index = stream_index;
+         pkt->dts = field_nr;
++
++        //set duration manually for DV or else lavf misdetects the frame rate
++        if (st->codec->codec_id == CODEC_ID_DVVIDEO)
++            pkt->duration = si->fields_per_frame;
++
+         return ret;
+     }
+     return AVERROR(EIO);
+@@ -518,7 +525,7 @@ static int64_t gxf_read_timestamp(AVFormatContext *s, int stream_index,
+ AVInputFormat ff_gxf_demuxer = {
+     "gxf",
+     NULL_IF_CONFIG_SMALL("GXF format"),
+-    0,
++    sizeof(struct gxf_stream_info),
+     gxf_probe,
+     gxf_header,
+     gxf_packet,
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0015-alsa-fallback-to-buffer_size-4-for-period_size.patch b/debian/patches/post-0.7.1/0015-alsa-fallback-to-buffer_size-4-for-period_size.patch
new file mode 100644
index 0000000..16354d1
--- /dev/null
+++ b/debian/patches/post-0.7.1/0015-alsa-fallback-to-buffer_size-4-for-period_size.patch
@@ -0,0 +1,30 @@
+From 6ed533f56137f678ff8507012de14d277aded9cc Mon Sep 17 00:00:00 2001
+From: Justin Ruggles <justin.ruggles at gmail.com>
+Date: Wed, 22 Jun 2011 15:33:56 -0400
+Subject: [PATCH 15/70] alsa: fallback to buffer_size/4 for period_size.
+
+buffer_size/4 is the value used by aplay. This fixes output to null
+devices, e.g. writing ALSA output to a file.
+(cherry picked from commit 8bfd7f6a475225a0595bf657f8b99a8fffb461e4)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavdevice/alsa-audio-common.c |    2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/libavdevice/alsa-audio-common.c b/libavdevice/alsa-audio-common.c
+index baa6ac7..4c7c881 100644
+--- a/libavdevice/alsa-audio-common.c
++++ b/libavdevice/alsa-audio-common.c
+@@ -146,6 +146,8 @@ av_cold int ff_alsa_open(AVFormatContext *ctx, snd_pcm_stream_t mode,
+     }
+ 
+     snd_pcm_hw_params_get_period_size_min(hw_params, &period_size, NULL);
++    if (!period_size)
++        period_size = buffer_size / 4;
+     res = snd_pcm_hw_params_set_period_size_near(h, hw_params, &period_size, NULL);
+     if (res < 0) {
+         av_log(ctx, AV_LOG_ERROR, "cannot set ALSA period size (%s)\n",
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0016-alsa-limit-buffer_size-to-32768-frames.patch b/debian/patches/post-0.7.1/0016-alsa-limit-buffer_size-to-32768-frames.patch
new file mode 100644
index 0000000..2754fe1
--- /dev/null
+++ b/debian/patches/post-0.7.1/0016-alsa-limit-buffer_size-to-32768-frames.patch
@@ -0,0 +1,44 @@
+From 0c039db4d8aa0928d9b7466c635247e6439df015 Mon Sep 17 00:00:00 2001
+From: Justin Ruggles <justin.ruggles at gmail.com>
+Date: Wed, 22 Jun 2011 16:38:20 -0400
+Subject: [PATCH 16/70] alsa: limit buffer_size to 32768 frames.
+
+In testing, the file output plugin gave a max buffer size of about 20 million
+frames, which is way more than what is really needed and causes a memory
+allocation error on my system.
+(cherry picked from commit e35c674d13a7f180412cfe058530a2e7f1d49a90)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavdevice/alsa-audio-common.c |    1 +
+ libavdevice/alsa-audio.h        |    2 ++
+ 2 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git a/libavdevice/alsa-audio-common.c b/libavdevice/alsa-audio-common.c
+index 4c7c881..825fcb1 100644
+--- a/libavdevice/alsa-audio-common.c
++++ b/libavdevice/alsa-audio-common.c
+@@ -137,6 +137,7 @@ av_cold int ff_alsa_open(AVFormatContext *ctx, snd_pcm_stream_t mode,
+     }
+ 
+     snd_pcm_hw_params_get_buffer_size_max(hw_params, &buffer_size);
++    buffer_size = FFMIN(buffer_size, ALSA_BUFFER_SIZE_MAX);
+     /* TODO: maybe use ctx->max_picture_buffer somehow */
+     res = snd_pcm_hw_params_set_buffer_size_near(h, hw_params, &buffer_size);
+     if (res < 0) {
+diff --git a/libavdevice/alsa-audio.h b/libavdevice/alsa-audio.h
+index 32c0742..c8c6ea4 100644
+--- a/libavdevice/alsa-audio.h
++++ b/libavdevice/alsa-audio.h
+@@ -40,6 +40,8 @@
+         other formats */
+ #define DEFAULT_CODEC_ID AV_NE(CODEC_ID_PCM_S16BE, CODEC_ID_PCM_S16LE)
+ 
++#define ALSA_BUFFER_SIZE_MAX 32768
++
+ typedef struct {
+     AVClass *class;
+     snd_pcm_t *h;
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0017-mpegts-fix-Continuity-Counter-error-detection.patch b/debian/patches/post-0.7.1/0017-mpegts-fix-Continuity-Counter-error-detection.patch
new file mode 100644
index 0000000..c37fa6b
--- /dev/null
+++ b/debian/patches/post-0.7.1/0017-mpegts-fix-Continuity-Counter-error-detection.patch
@@ -0,0 +1,44 @@
+From b772a757dd5e58ce94b56daee0deba78ab2e205e Mon Sep 17 00:00:00 2001
+From: Jindrich Makovicka <makovick at gmail.com>
+Date: Thu, 30 Jun 2011 09:03:15 +0000
+Subject: [PATCH 17/70] mpegts: fix Continuity Counter error detection
+
+According to MPEG-TS specs, the continuity_counter shall not be
+incremented when the adaptation_field_control of the packet
+equals '00' or '10'.
+
+Signed-off-by: Jindrich Makovicka <jindrich.makovicka at nangu.tv>
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+(cherry picked from commit 8923cfa328e8eb565aebcfe8672b276fd1c19bf7)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavformat/mpegts.c |    5 +++--
+ 1 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
+index e9b8b35..608cbe7 100644
+--- a/libavformat/mpegts.c
++++ b/libavformat/mpegts.c
+@@ -1247,7 +1247,7 @@ static int handle_packet(MpegTSContext *ts, const uint8_t *packet)
+ {
+     AVFormatContext *s = ts->stream;
+     MpegTSFilter *tss;
+-    int len, pid, cc, cc_ok, afc, is_start;
++    int len, pid, cc, expected_cc, cc_ok, afc, is_start;
+     const uint8_t *p, *p_end;
+     int64_t pos;
+ 
+@@ -1265,7 +1265,8 @@ static int handle_packet(MpegTSContext *ts, const uint8_t *packet)
+ 
+     /* continuity check (currently not used) */
+     cc = (packet[3] & 0xf);
+-    cc_ok = (tss->last_cc < 0) || ((((tss->last_cc + 1) & 0x0f) == cc));
++    expected_cc = (packet[3] & 0x10) ? (tss->last_cc + 1) & 0x0f : tss->last_cc;
++    cc_ok = (tss->last_cc < 0) || (expected_cc == cc);
+     tss->last_cc = cc;
+ 
+     /* skip adaptation field */
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0018-pix_fmt-Fix-number-of-bits-per-component-in-yuv444p9.patch b/debian/patches/post-0.7.1/0018-pix_fmt-Fix-number-of-bits-per-component-in-yuv444p9.patch
new file mode 100644
index 0000000..9132440
--- /dev/null
+++ b/debian/patches/post-0.7.1/0018-pix_fmt-Fix-number-of-bits-per-component-in-yuv444p9.patch
@@ -0,0 +1,33 @@
+From f8521560fa95c83bfbd95bb1b5adc8ded62a5104 Mon Sep 17 00:00:00 2001
+From: Oskar Arvidsson <oskar at irock.se>
+Date: Tue, 12 Jul 2011 10:52:19 +0200
+Subject: [PATCH 18/70] pix_fmt: Fix number of bits per component in yuv444p9be
+
+Signed-off-by: Ronald S. Bultje <rsbultje at gmail.com>
+(cherry picked from commit e59d6b4d7255d6d3dc89580f534e18af1433fe25)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavutil/pixdesc.c |    6 +++---
+ 1 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c
+index efc7c7e..c70a413 100644
+--- a/libavutil/pixdesc.c
++++ b/libavutil/pixdesc.c
+@@ -918,9 +918,9 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = {
+         .log2_chroma_w= 0,
+         .log2_chroma_h= 0,
+         .comp = {
+-            {0,1,1,0,9},        /* Y */
+-            {1,1,1,0,9},        /* U */
+-            {2,1,1,0,9},        /* V */
++            {0,1,1,0,8},        /* Y */
++            {1,1,1,0,8},        /* U */
++            {2,1,1,0,8},        /* V */
+         },
+         .flags = PIX_FMT_BE,
+     },
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0019-lavf-fix-segfault-in-av_open_input_stream.patch b/debian/patches/post-0.7.1/0019-lavf-fix-segfault-in-av_open_input_stream.patch
new file mode 100644
index 0000000..9f5a9f3
--- /dev/null
+++ b/debian/patches/post-0.7.1/0019-lavf-fix-segfault-in-av_open_input_stream.patch
@@ -0,0 +1,30 @@
+From 9c2a02466053dd4762d474d89d9be9a957eaaefe Mon Sep 17 00:00:00 2001
+From: Anton Khirnov <anton at khirnov.net>
+Date: Tue, 12 Jul 2011 22:42:18 +0200
+Subject: [PATCH 19/70] lavf: fix segfault in av_open_input_stream()
+
+ic is NULL in case of error.
+(cherry picked from commit 13551ad1e336573e3732fdeaf25607c47244bb80)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavformat/utils.c |    3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/libavformat/utils.c b/libavformat/utils.c
+index 0e6b001..2cb096e 100644
+--- a/libavformat/utils.c
++++ b/libavformat/utils.c
+@@ -465,7 +465,8 @@ int av_open_input_stream(AVFormatContext **ic_ptr,
+     else
+         ic->pb = pb;
+ 
+-    err = avformat_open_input(&ic, filename, fmt, &opts);
++    if ((err = avformat_open_input(&ic, filename, fmt, &opts)) < 0)
++        goto fail;
+     ic->pb = ic->pb ? ic->pb : pb; // don't leak custom pb if it wasn't set above
+ 
+     *ic_ptr = ic;
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0020-aacps-skip-some-memcpy-if-src-and-dst-would-be-equal.patch b/debian/patches/post-0.7.1/0020-aacps-skip-some-memcpy-if-src-and-dst-would-be-equal.patch
new file mode 100644
index 0000000..7331339
--- /dev/null
+++ b/debian/patches/post-0.7.1/0020-aacps-skip-some-memcpy-if-src-and-dst-would-be-equal.patch
@@ -0,0 +1,46 @@
+From f7831bb104c48118b38d4ba86a7d594fe4fa0f2c Mon Sep 17 00:00:00 2001
+From: Mans Rullgard <mans at mansr.com>
+Date: Fri, 15 Jul 2011 22:38:10 +0100
+Subject: [PATCH 20/70] aacps: skip some memcpy() if src and dst would be equal
+
+Signed-off-by: Mans Rullgard <mans at mansr.com>
+(cherry picked from commit e5902d60ce8f7cf10b6e87a57eec536b316261a3)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/aacps.c |   19 +++++++++++--------
+ 1 files changed, 11 insertions(+), 8 deletions(-)
+
+diff --git a/libavcodec/aacps.c b/libavcodec/aacps.c
+index 724c132..3f1424b 100644
+--- a/libavcodec/aacps.c
++++ b/libavcodec/aacps.c
+@@ -813,14 +813,17 @@ static void stereo_processing(PSContext *ps, float (*l)[32][2], float (*r)[32][2
+     const float (*H_LUT)[8][4] = (PS_BASELINE || ps->icc_mode < 3) ? HA : HB;
+ 
+     //Remapping
+-    memcpy(H11[0][0], H11[0][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H11[0][0][0]));
+-    memcpy(H11[1][0], H11[1][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H11[1][0][0]));
+-    memcpy(H12[0][0], H12[0][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H12[0][0][0]));
+-    memcpy(H12[1][0], H12[1][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H12[1][0][0]));
+-    memcpy(H21[0][0], H21[0][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H21[0][0][0]));
+-    memcpy(H21[1][0], H21[1][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H21[1][0][0]));
+-    memcpy(H22[0][0], H22[0][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H22[0][0][0]));
+-    memcpy(H22[1][0], H22[1][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H22[1][0][0]));
++    if (ps->num_env_old) {
++        memcpy(H11[0][0], H11[0][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H11[0][0][0]));
++        memcpy(H11[1][0], H11[1][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H11[1][0][0]));
++        memcpy(H12[0][0], H12[0][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H12[0][0][0]));
++        memcpy(H12[1][0], H12[1][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H12[1][0][0]));
++        memcpy(H21[0][0], H21[0][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H21[0][0][0]));
++        memcpy(H21[1][0], H21[1][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H21[1][0][0]));
++        memcpy(H22[0][0], H22[0][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H22[0][0][0]));
++        memcpy(H22[1][0], H22[1][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H22[1][0][0]));
++    }
++
+     if (is34) {
+         remap34(&iid_mapped, ps->iid_par, ps->nr_iid_par, ps->num_env, 1);
+         remap34(&icc_mapped, ps->icc_par, ps->nr_icc_par, ps->num_env, 1);
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0021-Do-not-decode-RV30-files-if-the-extradata-is-too-sma.patch b/debian/patches/post-0.7.1/0021-Do-not-decode-RV30-files-if-the-extradata-is-too-sma.patch
new file mode 100644
index 0000000..65311b6
--- /dev/null
+++ b/debian/patches/post-0.7.1/0021-Do-not-decode-RV30-files-if-the-extradata-is-too-sma.patch
@@ -0,0 +1,28 @@
+From 3ed12b97bed7f0cd430c4304f166e549b4dad634 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C3=ABl=20Carr=C3=A9?= <rafael.carre at gmail.com>
+Date: Sat, 16 Jul 2011 11:41:08 -0400
+Subject: [PATCH 21/70] Do not decode RV30 files if the extradata is too small
+
+Signed-off-by: Diego Biurrun <diego at biurrun.de>
+(cherry picked from commit 289c60001fb0a9a1d7a97c876d8a42b84c6874ac)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/rv30.c |    1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/libavcodec/rv30.c b/libavcodec/rv30.c
+index 62177dd..2b423cc 100644
+--- a/libavcodec/rv30.c
++++ b/libavcodec/rv30.c
+@@ -256,6 +256,7 @@ static av_cold int rv30_decode_init(AVCodecContext *avctx)
+     if(avctx->extradata_size - 8 < (r->rpr - 1) * 2){
+         av_log(avctx, AV_LOG_ERROR, "Insufficient extradata - need at least %d bytes, got %d\n",
+                6 + r->rpr * 2, avctx->extradata_size);
++        return EINVAL;
+     }
+     r->parse_slice_header = rv30_parse_slice_header;
+     r->decode_intra_types = rv30_decode_intra_types;
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0022-Fix-incorrect-max_lowres-values.patch b/debian/patches/post-0.7.1/0022-Fix-incorrect-max_lowres-values.patch
new file mode 100644
index 0000000..282ea98
--- /dev/null
+++ b/debian/patches/post-0.7.1/0022-Fix-incorrect-max_lowres-values.patch
@@ -0,0 +1,110 @@
+From 99ec59adbdaced97d892da73e5c881ac122bd27b Mon Sep 17 00:00:00 2001
+From: Mans Rullgard <mans at mansr.com>
+Date: Wed, 20 Jul 2011 09:55:48 +0100
+Subject: [PATCH 22/70] Fix incorrect max_lowres values
+
+Signed-off-by: Mans Rullgard <mans at mansr.com>
+(cherry picked from commit e23a05ab0605693aa715b95120bc0132079ded06)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/cdgraphics.c |    1 -
+ libavcodec/kgv1dec.c    |    1 -
+ libavcodec/pngdec.c     |    1 -
+ libavcodec/pnmdec.c     |    5 -----
+ libavcodec/sp5xdec.c    |    2 +-
+ 5 files changed, 1 insertions(+), 9 deletions(-)
+
+diff --git a/libavcodec/cdgraphics.c b/libavcodec/cdgraphics.c
+index 2f8e98c..bcfb6e9 100644
+--- a/libavcodec/cdgraphics.c
++++ b/libavcodec/cdgraphics.c
+@@ -377,6 +377,5 @@ AVCodec ff_cdgraphics_decoder = {
+     cdg_decode_end,
+     cdg_decode_frame,
+     CODEC_CAP_DR1,
+-    .max_lowres = 5,
+     .long_name = NULL_IF_CONFIG_SMALL("CD Graphics video"),
+ };
+diff --git a/libavcodec/kgv1dec.c b/libavcodec/kgv1dec.c
+index 5768434..88c54bf 100644
+--- a/libavcodec/kgv1dec.c
++++ b/libavcodec/kgv1dec.c
+@@ -173,6 +173,5 @@ AVCodec ff_kgv1_decoder = {
+     NULL,
+     decode_end,
+     decode_frame,
+-    .max_lowres = 1,
+     .long_name = NULL_IF_CONFIG_SMALL("Kega Game Video"),
+ };
+diff --git a/libavcodec/pngdec.c b/libavcodec/pngdec.c
+index 7477f67..1268c9e 100644
+--- a/libavcodec/pngdec.c
++++ b/libavcodec/pngdec.c
+@@ -667,6 +667,5 @@ AVCodec ff_png_decoder = {
+     decode_frame,
+     CODEC_CAP_DR1 /*| CODEC_CAP_DRAW_HORIZ_BAND*/,
+     NULL,
+-    .max_lowres = 5,
+     .long_name = NULL_IF_CONFIG_SMALL("PNG image"),
+ };
+diff --git a/libavcodec/pnmdec.c b/libavcodec/pnmdec.c
+index b9f20c0..988ea0c 100644
+--- a/libavcodec/pnmdec.c
++++ b/libavcodec/pnmdec.c
+@@ -199,7 +199,6 @@ AVCodec ff_pgm_decoder = {
+     pnm_decode_frame,
+     CODEC_CAP_DR1,
+     .pix_fmts  = (const enum PixelFormat[]){PIX_FMT_GRAY8, PIX_FMT_GRAY16BE, PIX_FMT_NONE},
+-    .max_lowres = 5,
+     .long_name = NULL_IF_CONFIG_SMALL("PGM (Portable GrayMap) image"),
+ };
+ #endif
+@@ -216,7 +215,6 @@ AVCodec ff_pgmyuv_decoder = {
+     pnm_decode_frame,
+     CODEC_CAP_DR1,
+     .pix_fmts  = (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
+-    .max_lowres = 5,
+     .long_name = NULL_IF_CONFIG_SMALL("PGMYUV (Portable GrayMap YUV) image"),
+ };
+ #endif
+@@ -233,7 +231,6 @@ AVCodec ff_ppm_decoder = {
+     pnm_decode_frame,
+     CODEC_CAP_DR1,
+     .pix_fmts  = (const enum PixelFormat[]){PIX_FMT_RGB24, PIX_FMT_RGB48BE, PIX_FMT_NONE},
+-    .max_lowres = 5,
+     .long_name = NULL_IF_CONFIG_SMALL("PPM (Portable PixelMap) image"),
+ };
+ #endif
+@@ -250,7 +247,6 @@ AVCodec ff_pbm_decoder = {
+     pnm_decode_frame,
+     CODEC_CAP_DR1,
+     .pix_fmts  = (const enum PixelFormat[]){PIX_FMT_MONOWHITE, PIX_FMT_NONE},
+-    .max_lowres = 5,
+     .long_name = NULL_IF_CONFIG_SMALL("PBM (Portable BitMap) image"),
+ };
+ #endif
+@@ -267,7 +263,6 @@ AVCodec ff_pam_decoder = {
+     pnm_decode_frame,
+     CODEC_CAP_DR1,
+     .pix_fmts  = (const enum PixelFormat[]){PIX_FMT_RGB24, PIX_FMT_RGB32, PIX_FMT_GRAY8, PIX_FMT_MONOWHITE, PIX_FMT_NONE},
+-    .max_lowres = 5,
+     .long_name = NULL_IF_CONFIG_SMALL("PAM (Portable AnyMap) image"),
+ };
+ #endif
+diff --git a/libavcodec/sp5xdec.c b/libavcodec/sp5xdec.c
+index 6726c18..ae25733 100644
+--- a/libavcodec/sp5xdec.c
++++ b/libavcodec/sp5xdec.c
+@@ -104,7 +104,7 @@ AVCodec ff_sp5x_decoder = {
+     sp5x_decode_frame,
+     CODEC_CAP_DR1,
+     NULL,
+-    .max_lowres = 5,
++    .max_lowres = 3,
+     .long_name = NULL_IF_CONFIG_SMALL("Sunplus JPEG (SP5X)"),
+ };
+ 
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0023-rv30-return-AVERROR-EINVAL-instead-of-EINVAL.patch b/debian/patches/post-0.7.1/0023-rv30-return-AVERROR-EINVAL-instead-of-EINVAL.patch
new file mode 100644
index 0000000..e70c45c
--- /dev/null
+++ b/debian/patches/post-0.7.1/0023-rv30-return-AVERROR-EINVAL-instead-of-EINVAL.patch
@@ -0,0 +1,29 @@
+From 44c718cf7116203e4e86ff2b92d7dcfd9c77e4b3 Mon Sep 17 00:00:00 2001
+From: Diego Biurrun <diego at biurrun.de>
+Date: Thu, 21 Jul 2011 14:25:01 +0200
+Subject: [PATCH 23/70] rv30: return AVERROR(EINVAL) instead of EINVAL
+
+On some platforms EINVAL could be positive, ensure we return negative values.
+(cherry picked from commit e5985185d2eda942333ebbb72bd7d043ffe40be7)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/rv30.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/libavcodec/rv30.c b/libavcodec/rv30.c
+index 2b423cc..b7f43a4 100644
+--- a/libavcodec/rv30.c
++++ b/libavcodec/rv30.c
+@@ -256,7 +256,7 @@ static av_cold int rv30_decode_init(AVCodecContext *avctx)
+     if(avctx->extradata_size - 8 < (r->rpr - 1) * 2){
+         av_log(avctx, AV_LOG_ERROR, "Insufficient extradata - need at least %d bytes, got %d\n",
+                6 + r->rpr * 2, avctx->extradata_size);
+-        return EINVAL;
++        return AVERROR(EINVAL);
+     }
+     r->parse_slice_header = rv30_parse_slice_header;
+     r->decode_intra_types = rv30_decode_intra_types;
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0024-vp3-theora-flush-after-seek.patch b/debian/patches/post-0.7.1/0024-vp3-theora-flush-after-seek.patch
new file mode 100644
index 0000000..8c1ac75
--- /dev/null
+++ b/debian/patches/post-0.7.1/0024-vp3-theora-flush-after-seek.patch
@@ -0,0 +1,62 @@
+From b3b97559bb47fceaaa7fc5aa25a351c9de7f60d6 Mon Sep 17 00:00:00 2001
+From: Ronald S. Bultje <rsbultje at gmail.com>
+Date: Tue, 26 Jul 2011 10:58:29 -0700
+Subject: [PATCH 24/70] vp3/theora: flush after seek.
+
+(cherry picked from commit 8dcf5184307f072d55fb29373be05ef8b0fd02df)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/vp3.c |   22 ++++++++++++++++++++++
+ 1 files changed, 22 insertions(+), 0 deletions(-)
+
+diff --git a/libavcodec/vp3.c b/libavcodec/vp3.c
+index c3dff7f..c117a64 100644
+--- a/libavcodec/vp3.c
++++ b/libavcodec/vp3.c
+@@ -2321,6 +2321,26 @@ static av_cold int theora_decode_init(AVCodecContext *avctx)
+     return vp3_decode_init(avctx);
+ }
+ 
++static void vp3_decode_flush(AVCodecContext *avctx)
++{
++    Vp3DecodeContext *s = avctx->priv_data;
++
++    if (s->golden_frame.data[0]) {
++        if (s->golden_frame.data[0] == s->last_frame.data[0])
++            memset(&s->last_frame, 0, sizeof(AVFrame));
++        if (s->current_frame.data[0] == s->golden_frame.data[0])
++            memset(&s->current_frame, 0, sizeof(AVFrame));
++        ff_thread_release_buffer(avctx, &s->golden_frame);
++    }
++    if (s->last_frame.data[0]) {
++        if (s->current_frame.data[0] == s->last_frame.data[0])
++            memset(&s->current_frame, 0, sizeof(AVFrame));
++        ff_thread_release_buffer(avctx, &s->last_frame);
++    }
++    if (s->current_frame.data[0])
++        ff_thread_release_buffer(avctx, &s->current_frame);
++}
++
+ AVCodec ff_theora_decoder = {
+     "theora",
+     AVMEDIA_TYPE_VIDEO,
+@@ -2332,6 +2352,7 @@ AVCodec ff_theora_decoder = {
+     vp3_decode_frame,
+     CODEC_CAP_DR1 | CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_FRAME_THREADS,
+     NULL,
++    .flush = vp3_decode_flush,
+     .long_name = NULL_IF_CONFIG_SMALL("Theora"),
+     .update_thread_context = ONLY_IF_THREADS_ENABLED(vp3_update_thread_context)
+ };
+@@ -2348,6 +2369,7 @@ AVCodec ff_vp3_decoder = {
+     vp3_decode_frame,
+     CODEC_CAP_DR1 | CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_FRAME_THREADS,
+     NULL,
++    .flush = vp3_decode_flush,
+     .long_name = NULL_IF_CONFIG_SMALL("On2 VP3"),
+     .update_thread_context = ONLY_IF_THREADS_ENABLED(vp3_update_thread_context)
+ };
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0025-mxfdec-Include-FF_INPUT_BUFFER_PADDING_SIZE-when-all.patch b/debian/patches/post-0.7.1/0025-mxfdec-Include-FF_INPUT_BUFFER_PADDING_SIZE-when-all.patch
new file mode 100644
index 0000000..e7a256d
--- /dev/null
+++ b/debian/patches/post-0.7.1/0025-mxfdec-Include-FF_INPUT_BUFFER_PADDING_SIZE-when-all.patch
@@ -0,0 +1,29 @@
+From c613a891433df18f5188efbab504942be8c809c0 Mon Sep 17 00:00:00 2001
+From: Alex Converse <alex.converse at gmail.com>
+Date: Fri, 29 Jul 2011 15:27:36 -0700
+Subject: [PATCH 25/70] mxfdec: Include FF_INPUT_BUFFER_PADDING_SIZE when allocating extradata.
+
+This prevents out of bounds reads when extradata is being decoded.
+(cherry picked from commit 1f6f58d5855288492fc2640a9f1035c01c75d356)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavformat/mxfdec.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c
+index 82daa2a..fcee7a7 100644
+--- a/libavformat/mxfdec.c
++++ b/libavformat/mxfdec.c
+@@ -599,7 +599,7 @@ static int mxf_read_generic_descriptor(void *arg, AVIOContext *pb, int tag, int
+     default:
+         /* Private uid used by SONY C0023S01.mxf */
+         if (IS_KLV_KEY(uid, mxf_sony_mpeg4_extradata)) {
+-            descriptor->extradata = av_malloc(size);
++            descriptor->extradata = av_malloc(size + FF_INPUT_BUFFER_PADDING_SIZE);
+             if (!descriptor->extradata)
+                 return -1;
+             descriptor->extradata_size = size;
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0026-aac-Remove-some-suspicious-illegal-memcpy-s-from-LTP.patch b/debian/patches/post-0.7.1/0026-aac-Remove-some-suspicious-illegal-memcpy-s-from-LTP.patch
new file mode 100644
index 0000000..abd40af
--- /dev/null
+++ b/debian/patches/post-0.7.1/0026-aac-Remove-some-suspicious-illegal-memcpy-s-from-LTP.patch
@@ -0,0 +1,32 @@
+From 96a453eb85a2d565681842a07ab759a52f1353fd Mon Sep 17 00:00:00 2001
+From: Alex Converse <alex.converse at gmail.com>
+Date: Fri, 29 Jul 2011 15:49:11 -0700
+Subject: [PATCH 26/70] aac: Remove some suspicious illegal memcpy()s from LTP.
+
+(cherry picked from commit a6c49f18abacb9bf52d4d808a2a56561a5b5445c)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/aacdec.c |    2 --
+ 1 files changed, 0 insertions(+), 2 deletions(-)
+
+diff --git a/libavcodec/aacdec.c b/libavcodec/aacdec.c
+index 69aacb8..f94b109 100644
+--- a/libavcodec/aacdec.c
++++ b/libavcodec/aacdec.c
+@@ -1753,12 +1753,10 @@ static void windowing_and_mdct_ltp(AACContext *ac, float *out,
+     } else {
+         memset(in, 0, 448 * sizeof(float));
+         ac->dsp.vector_fmul(in + 448, in + 448, swindow_prev, 128);
+-        memcpy(in + 576, in + 576, 448 * sizeof(float));
+     }
+     if (ics->window_sequence[0] != LONG_START_SEQUENCE) {
+         ac->dsp.vector_fmul_reverse(in + 1024, in + 1024, lwindow, 1024);
+     } else {
+-        memcpy(in + 1024, in + 1024, 448 * sizeof(float));
+         ac->dsp.vector_fmul_reverse(in + 1024 + 448, in + 1024 + 448, swindow, 128);
+         memset(in + 1024 + 576, 0, 448 * sizeof(float));
+     }
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0027-libx264-do-not-set-pic-quality-if-no-frame-is-output.patch b/debian/patches/post-0.7.1/0027-libx264-do-not-set-pic-quality-if-no-frame-is-output.patch
new file mode 100644
index 0000000..828880e
--- /dev/null
+++ b/debian/patches/post-0.7.1/0027-libx264-do-not-set-pic-quality-if-no-frame-is-output.patch
@@ -0,0 +1,32 @@
+From 67163d751ba1ffa89e61eff224158828d5f673a4 Mon Sep 17 00:00:00 2001
+From: Baptiste Coudurier <baptiste.coudurier at gmail.com>
+Date: Sat, 29 Jan 2011 17:05:42 -0800
+Subject: [PATCH 27/70] libx264: do not set pic quality if no frame is output
+
+Avoids uninitialized reads.
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+(cherry picked from commit 5caa2de19ece830e32c95731bc92a423d55cff0c)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/libx264.c |    3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c
+index e5fac00..74ee1d4 100644
+--- a/libavcodec/libx264.c
++++ b/libavcodec/libx264.c
+@@ -138,7 +138,8 @@ static int X264_frame(AVCodecContext *ctx, uint8_t *buf,
+     }
+ 
+     x4->out_pic.key_frame = pic_out.b_keyframe;
+-    x4->out_pic.quality   = (pic_out.i_qpplus1 - 1) * FF_QP2LAMBDA;
++    if (bufsize)
++        x4->out_pic.quality = (pic_out.i_qpplus1 - 1) * FF_QP2LAMBDA;
+ 
+     return bufsize;
+ }
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0028-Remove-incorrect-info-in-documentation-of-AVCodecCon.patch b/debian/patches/post-0.7.1/0028-Remove-incorrect-info-in-documentation-of-AVCodecCon.patch
new file mode 100644
index 0000000..97b44da
--- /dev/null
+++ b/debian/patches/post-0.7.1/0028-Remove-incorrect-info-in-documentation-of-AVCodecCon.patch
@@ -0,0 +1,28 @@
+From 042934e78676a7854038be560e8f8a7d05552b84 Mon Sep 17 00:00:00 2001
+From: Justin Ruggles <justin.ruggles at gmail.com>
+Date: Wed, 10 Aug 2011 14:07:35 -0400
+Subject: [PATCH 28/70] Remove incorrect info in documentation of AVCodecContext.bits_per_raw_sample.
+
+bits_per_raw_sample is used in video as well, where sample_fmt is not used.
+(cherry picked from commit d271d5b2152cafe540f3ab71d3be6ce8636d2fd6)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/avcodec.h |    1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
+index 9a3076a..0269892 100644
+--- a/libavcodec/avcodec.h
++++ b/libavcodec/avcodec.h
+@@ -2559,7 +2559,6 @@ typedef struct AVCodecContext {
+ 
+     /**
+      * Bits per sample/pixel of internal libavcodec pixel/sample format.
+-     * This field is applicable only when sample_fmt is AV_SAMPLE_FMT_S32.
+      * - encoding: set by user.
+      * - decoding: set by libavcodec.
+      */
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0029-h264-notice-memory-allocation-failure.patch b/debian/patches/post-0.7.1/0029-h264-notice-memory-allocation-failure.patch
new file mode 100644
index 0000000..fa98d44
--- /dev/null
+++ b/debian/patches/post-0.7.1/0029-h264-notice-memory-allocation-failure.patch
@@ -0,0 +1,44 @@
+From 59a22afa0b50b9037133a7bc26bdc5023e7e1df9 Mon Sep 17 00:00:00 2001
+From: Dustin Brody <libav at parsoma.net>
+Date: Thu, 11 Aug 2011 08:57:58 -0400
+Subject: [PATCH 29/70] h264: notice memory allocation failure
+
+Signed-off-by: Ronald S. Bultje <rsbultje at gmail.com>
+(cherry picked from commit bac3ab13ea6a9dd8853e79ef3eacf51d234c8774)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/h264.c |   10 ++++++++--
+ 1 files changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/libavcodec/h264.c b/libavcodec/h264.c
+index 2c000a3..99be210 100644
+--- a/libavcodec/h264.c
++++ b/libavcodec/h264.c
+@@ -1165,7 +1165,10 @@ static int decode_update_thread_context(AVCodecContext *dst, const AVCodecContex
+         memcpy(&h->s + 1, &h1->s + 1, sizeof(H264Context) - sizeof(MpegEncContext)); //copy all fields after MpegEnc
+         memset(h->sps_buffers, 0, sizeof(h->sps_buffers));
+         memset(h->pps_buffers, 0, sizeof(h->pps_buffers));
+-        ff_h264_alloc_tables(h);
++        if (ff_h264_alloc_tables(h) < 0) {
++            av_log(dst, AV_LOG_ERROR, "Could not allocate memory for h264\n");
++            return AVERROR(ENOMEM);
++        }
+         context_init(h);
+ 
+         for(i=0; i<2; i++){
+@@ -2635,7 +2638,10 @@ static int decode_slice_header(H264Context *h, H264Context *h0){
+         h->prev_interlaced_frame = 1;
+ 
+         init_scan_tables(h);
+-        ff_h264_alloc_tables(h);
++        if (ff_h264_alloc_tables(h) < 0) {
++            av_log(h->s.avctx, AV_LOG_ERROR, "Could not allocate memory for h264\n");
++            return AVERROR(ENOMEM);
++        }
+ 
+         if (!HAVE_THREADS || !(s->avctx->active_thread_type&FF_THREAD_SLICE)) {
+             if (context_init(h) < 0) {
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0030-VC-1-fix-reading-of-custom-PAR.patch b/debian/patches/post-0.7.1/0030-VC-1-fix-reading-of-custom-PAR.patch
new file mode 100644
index 0000000..579f9b2
--- /dev/null
+++ b/debian/patches/post-0.7.1/0030-VC-1-fix-reading-of-custom-PAR.patch
@@ -0,0 +1,37 @@
+From 28321b777f76528b061646a3555d08b94ff667bc Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Reimar=20D=C3=B6ffinger?= <Reimar.Doeffinger at gmx.de>
+Date: Sat, 13 Aug 2011 11:58:18 +0200
+Subject: [PATCH 30/70] VC-1: fix reading of custom PAR.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Custom PAR num/denum are in 1-256 range.
+
+Signed-off-by: Reimar Döffinger <Reimar.Doeffinger at gmx.de>
+Signed-off-by: Diego Biurrun <diego at biurrun.de>
+(cherry picked from commit 0e8696551414d4ea0aab2559f9475d1fe49d08f3)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/vc1.c |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/libavcodec/vc1.c b/libavcodec/vc1.c
+index 32869b9..5e53680 100644
+--- a/libavcodec/vc1.c
++++ b/libavcodec/vc1.c
+@@ -485,8 +485,8 @@ static int decode_sequence_header_adv(VC1Context *v, GetBitContext *gb)
+         if(ar && ar < 14){
+             v->s.avctx->sample_aspect_ratio = ff_vc1_pixel_aspect[ar];
+         }else if(ar == 15){
+-            w = get_bits(gb, 8);
+-            h = get_bits(gb, 8);
++            w = get_bits(gb, 8) + 1;
++            h = get_bits(gb, 8) + 1;
+             v->s.avctx->sample_aspect_ratio = (AVRational){w, h};
+         }
+         av_log(v->s.avctx, AV_LOG_DEBUG, "Aspect: %i:%i\n", v->s.avctx->sample_aspect_ratio.num, v->s.avctx->sample_aspect_ratio.den);
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0031-flvenc-use-int64_t-to-store-offsets.patch b/debian/patches/post-0.7.1/0031-flvenc-use-int64_t-to-store-offsets.patch
new file mode 100644
index 0000000..381ce81
--- /dev/null
+++ b/debian/patches/post-0.7.1/0031-flvenc-use-int64_t-to-store-offsets.patch
@@ -0,0 +1,33 @@
+From fe3e7297fe56a383baca484dea2c0d603ae305f8 Mon Sep 17 00:00:00 2001
+From: Luca Barbato <lu_zero at gentoo.org>
+Date: Wed, 8 Jun 2011 14:32:07 +0000
+Subject: [PATCH 31/70] flvenc: use int64_t to store offsets
+
+Metadata currently is written only at the start of the file in normal
+cases, when transcoding from a rtmp source metadata could be
+written later and the offset recorded can exceed 32bit.
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+(cherry picked from commit 7f5bf4fbaf1f2142547321a16358f9871fabdcc6)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavformat/flvenc.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/libavformat/flvenc.c b/libavformat/flvenc.c
+index 487993c..bd1a1f4 100644
+--- a/libavformat/flvenc.c
++++ b/libavformat/flvenc.c
+@@ -177,7 +177,7 @@ static int flv_write_header(AVFormatContext *s)
+     AVCodecContext *audio_enc = NULL, *video_enc = NULL;
+     int i;
+     double framerate = 0.0;
+-    int metadata_size_pos, data_size;
++    int64_t metadata_size_pos, data_size;
+     AVDictionaryEntry *tag = NULL;
+ 
+     for(i=0; i<s->nb_streams; i++){
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0032-rv10-20-tell-decoder-to-use-edge-emulation.patch b/debian/patches/post-0.7.1/0032-rv10-20-tell-decoder-to-use-edge-emulation.patch
new file mode 100644
index 0000000..9774983
--- /dev/null
+++ b/debian/patches/post-0.7.1/0032-rv10-20-tell-decoder-to-use-edge-emulation.patch
@@ -0,0 +1,32 @@
+From dec458b900439316ebdefa0de2bd1249440859cf Mon Sep 17 00:00:00 2001
+From: Kostya Shishkov <kostya.shishkov at gmail.com>
+Date: Wed, 17 Aug 2011 10:36:33 +0200
+Subject: [PATCH 32/70] rv10/20: tell decoder to use edge emulation
+
+This removes out-of-edge motion compensation artifacts (easily spotted green
+blocks in avplay, gray blocks in transcoding), for example here:
+http://samples.libav.org/samples/real/tv_watching_t1.rm
+
+Signed-off-by: Diego Biurrun <diego at biurrun.de>
+(cherry picked from commit 331971116d7d36743601bd2dc5384c5211d3bb48)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/rv10.c |    1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/libavcodec/rv10.c b/libavcodec/rv10.c
+index 6227dc6..78f97b1 100644
+--- a/libavcodec/rv10.c
++++ b/libavcodec/rv10.c
+@@ -438,6 +438,7 @@ static av_cold int rv10_decode_init(AVCodecContext *avctx)
+     s->avctx= avctx;
+     s->out_format = FMT_H263;
+     s->codec_id= avctx->codec_id;
++    avctx->flags |= CODEC_FLAG_EMU_EDGE;
+ 
+     s->orig_width = s->width  = avctx->coded_width;
+     s->orig_height= s->height = avctx->coded_height;
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0033-aac-Only-output-configure-if-audio-was-found.patch b/debian/patches/post-0.7.1/0033-aac-Only-output-configure-if-audio-was-found.patch
new file mode 100644
index 0000000..2d1c429
--- /dev/null
+++ b/debian/patches/post-0.7.1/0033-aac-Only-output-configure-if-audio-was-found.patch
@@ -0,0 +1,61 @@
+From b4099a6dc539c54156a788c7020356c54bc6485e Mon Sep 17 00:00:00 2001
+From: Alex Converse <alex.converse at gmail.com>
+Date: Tue, 16 Aug 2011 11:03:26 -0700
+Subject: [PATCH 33/70] aac: Only output configure if audio was found.
+
+Audio found is not triggered on a CCE because a CCE alone has no output.
+
+Signed-off-by: Luca Barbato <lu_zero at gentoo.org>
+(cherry picked from commit d8425ed4af6d8fce62ff363cc590f85e57bac06b)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/aacdec.c |    7 +++++--
+ 1 files changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/libavcodec/aacdec.c b/libavcodec/aacdec.c
+index f94b109..2958ddb 100644
+--- a/libavcodec/aacdec.c
++++ b/libavcodec/aacdec.c
+@@ -2074,7 +2074,7 @@ static int aac_decode_frame_int(AVCodecContext *avctx, void *data,
+     ChannelElement *che = NULL, *che_prev = NULL;
+     enum RawDataBlockType elem_type, elem_type_prev = TYPE_END;
+     int err, elem_id, data_size_tmp;
+-    int samples = 0, multiplier;
++    int samples = 0, multiplier, audio_found = 0;
+ 
+     if (show_bits(gb, 12) == 0xfff) {
+         if (parse_adts_frame_header(ac, gb) < 0) {
+@@ -2105,10 +2105,12 @@ static int aac_decode_frame_int(AVCodecContext *avctx, void *data,
+ 
+         case TYPE_SCE:
+             err = decode_ics(ac, &che->ch[0], gb, 0, 0);
++            audio_found = 1;
+             break;
+ 
+         case TYPE_CPE:
+             err = decode_cpe(ac, gb, che);
++            audio_found = 1;
+             break;
+ 
+         case TYPE_CCE:
+@@ -2117,6 +2119,7 @@ static int aac_decode_frame_int(AVCodecContext *avctx, void *data,
+ 
+         case TYPE_LFE:
+             err = decode_ics(ac, &che->ch[0], gb, 0, 0);
++            audio_found = 1;
+             break;
+ 
+         case TYPE_DSE:
+@@ -2193,7 +2196,7 @@ static int aac_decode_frame_int(AVCodecContext *avctx, void *data,
+                                                    samples, avctx->channels);
+     }
+ 
+-    if (ac->output_configured)
++    if (ac->output_configured && audio_found)
+         ac->output_configured = OC_LOCKED;
+ 
+     return 0;
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0034-h264-correct-the-check-for-invalid-long-term-frame-i.patch b/debian/patches/post-0.7.1/0034-h264-correct-the-check-for-invalid-long-term-frame-i.patch
new file mode 100644
index 0000000..8889149
--- /dev/null
+++ b/debian/patches/post-0.7.1/0034-h264-correct-the-check-for-invalid-long-term-frame-i.patch
@@ -0,0 +1,33 @@
+From 8ad6555f820cc8db5debd5f76d8779cd329def20 Mon Sep 17 00:00:00 2001
+From: Jeff Downs <heydowns at somuchpressure.net>
+Date: Tue, 5 Jul 2011 14:21:54 -0400
+Subject: [PATCH 34/70] h264: correct the check for invalid long term frame index in MMCO decode
+
+The current check on MMCO parameters prohibits a "max long term frame index
+plus 1" of 16 (frame idx of 15) for the "set max long term frame index" MMCO.
+Fix this off-by-one error to allow the full range of legal values.
+
+Signed-off-by: Diego Biurrun <diego at biurrun.de>
+(cherry picked from commit 29a09eae9a827f4dbc9c4517180d8fe2ecef321a)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/h264_refs.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/libavcodec/h264_refs.c b/libavcodec/h264_refs.c
+index a025f7d..b1c27ec 100644
+--- a/libavcodec/h264_refs.c
++++ b/libavcodec/h264_refs.c
+@@ -678,7 +678,7 @@ int ff_h264_decode_ref_pic_marking(H264Context *h, GetBitContext *gb){
+                 }
+                 if(opcode==MMCO_SHORT2LONG || opcode==MMCO_LONG2UNUSED || opcode==MMCO_LONG || opcode==MMCO_SET_MAX_LONG){
+                     unsigned int long_arg= get_ue_golomb_31(gb);
+-                    if(long_arg >= 32 || (long_arg >= 16 && !(opcode == MMCO_LONG2UNUSED && FIELD_PICTURE))){
++                    if(long_arg >= 32 || (long_arg >= 16 && !(opcode == MMCO_SET_MAX_LONG && long_arg == 16) && !(opcode == MMCO_LONG2UNUSED && FIELD_PICTURE))){
+                         av_log(h->s.avctx, AV_LOG_ERROR, "illegal long ref in memory management control operation %d\n", opcode);
+                         return -1;
+                     }
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0035-h264-correct-implicit-weight-table-computation-for-l.patch b/debian/patches/post-0.7.1/0035-h264-correct-implicit-weight-table-computation-for-l.patch
new file mode 100644
index 0000000..f4cac74
--- /dev/null
+++ b/debian/patches/post-0.7.1/0035-h264-correct-implicit-weight-table-computation-for-l.patch
@@ -0,0 +1,50 @@
+From 45b3f7c71ec213a2f4177e866586660fcbc68ecd Mon Sep 17 00:00:00 2001
+From: Jeff Downs <heydowns at somuchpressure.net>
+Date: Wed, 6 Jul 2011 11:54:36 -0400
+Subject: [PATCH 35/70] h264: correct implicit weight table computation for long ref pics
+
+Correct computation of implicit weight tables when referencing pictures
+that are marked for long reference.
+
+Signed-off-by: Diego Biurrun <diego at biurrun.de>
+(cherry picked from commit 87cf70eb237e7586cc7399627dafa1b980ec0b7d)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/h264.c |   20 +++++++++++---------
+ 1 files changed, 11 insertions(+), 9 deletions(-)
+
+diff --git a/libavcodec/h264.c b/libavcodec/h264.c
+index 99be210..1c60de7 100644
+--- a/libavcodec/h264.c
++++ b/libavcodec/h264.c
+@@ -2198,15 +2198,17 @@ static void implicit_weight_table(H264Context *h, int field){
+     for(ref0=ref_start; ref0 < ref_count0; ref0++){
+         int poc0 = h->ref_list[0][ref0].poc;
+         for(ref1=ref_start; ref1 < ref_count1; ref1++){
+-            int poc1 = h->ref_list[1][ref1].poc;
+-            int td = av_clip(poc1 - poc0, -128, 127);
+-            int w= 32;
+-            if(td){
+-                int tb = av_clip(cur_poc - poc0, -128, 127);
+-                int tx = (16384 + (FFABS(td) >> 1)) / td;
+-                int dist_scale_factor = (tb*tx + 32) >> 8;
+-                if(dist_scale_factor >= -64 && dist_scale_factor <= 128)
+-                    w = 64 - dist_scale_factor;
++            int w = 32;
++            if (!h->ref_list[0][ref0].long_ref && !h->ref_list[1][ref1].long_ref) {
++                int poc1 = h->ref_list[1][ref1].poc;
++                int td = av_clip(poc1 - poc0, -128, 127);
++                if(td){
++                    int tb = av_clip(cur_poc - poc0, -128, 127);
++                    int tx = (16384 + (FFABS(td) >> 1)) / td;
++                    int dist_scale_factor = (tb*tx + 32) >> 8;
++                    if(dist_scale_factor >= -64 && dist_scale_factor <= 128)
++                        w = 64 - dist_scale_factor;
++                }
+             }
+             if(field<0){
+                 h->implicit_weight[ref0][ref1][0]=
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0036-h264-fix-PCM-intra-coded-blocks-in-monochrome-case.patch b/debian/patches/post-0.7.1/0036-h264-fix-PCM-intra-coded-blocks-in-monochrome-case.patch
new file mode 100644
index 0000000..bb75cae
--- /dev/null
+++ b/debian/patches/post-0.7.1/0036-h264-fix-PCM-intra-coded-blocks-in-monochrome-case.patch
@@ -0,0 +1,80 @@
+From ce8f40a7b9e9fd8bc47181dc4a2b4de0042dac72 Mon Sep 17 00:00:00 2001
+From: Jeff Downs <heydowns at somuchpressure.net>
+Date: Tue, 5 Jul 2011 13:20:06 -0400
+Subject: [PATCH 36/70] h264: fix PCM intra-coded blocks in monochrome case
+
+Signed-off-by: Diego Biurrun <diego at biurrun.de>
+(cherry picked from commit 6581e161c5f46733a5619208483de29416eb9a51)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/h264.c |   46 ++++++++++++++++++++++++++++++++++------------
+ 1 files changed, 34 insertions(+), 12 deletions(-)
+
+diff --git a/libavcodec/h264.c b/libavcodec/h264.c
+index 1c60de7..75075f6 100644
+--- a/libavcodec/h264.c
++++ b/libavcodec/h264.c
+@@ -1851,15 +1851,30 @@ static av_always_inline void hl_decode_mb_internal(H264Context *h, int simple, i
+                     tmp_y[j] = get_bits(&gb, bit_depth);
+             }
+             if(simple || !CONFIG_GRAY || !(s->flags&CODEC_FLAG_GRAY)){
+-                for (i = 0; i < 8; i++) {
+-                    uint16_t *tmp_cb = (uint16_t*)(dest_cb + i*uvlinesize);
+-                    for (j = 0; j < 8; j++)
+-                        tmp_cb[j] = get_bits(&gb, bit_depth);
+-                }
+-                for (i = 0; i < 8; i++) {
+-                    uint16_t *tmp_cr = (uint16_t*)(dest_cr + i*uvlinesize);
+-                    for (j = 0; j < 8; j++)
+-                        tmp_cr[j] = get_bits(&gb, bit_depth);
++                if (!h->sps.chroma_format_idc) {
++                    for (i = 0; i < 8; i++) {
++                        uint16_t *tmp_cb = (uint16_t*)(dest_cb + i*uvlinesize);
++                        for (j = 0; j < 8; j++) {
++                            tmp_cb[j] = 1 << (bit_depth - 1);
++                        }
++                    }
++                    for (i = 0; i < 8; i++) {
++                        uint16_t *tmp_cr = (uint16_t*)(dest_cr + i*uvlinesize);
++                        for (j = 0; j < 8; j++) {
++                            tmp_cr[j] = 1 << (bit_depth - 1);
++                        }
++                    }
++                } else {
++                    for (i = 0; i < 8; i++) {
++                        uint16_t *tmp_cb = (uint16_t*)(dest_cb + i*uvlinesize);
++                        for (j = 0; j < 8; j++)
++                            tmp_cb[j] = get_bits(&gb, bit_depth);
++                    }
++                    for (i = 0; i < 8; i++) {
++                        uint16_t *tmp_cr = (uint16_t*)(dest_cr + i*uvlinesize);
++                        for (j = 0; j < 8; j++)
++                            tmp_cr[j] = get_bits(&gb, bit_depth);
++                    }
+                 }
+             }
+         } else {
+@@ -1867,9 +1882,16 @@ static av_always_inline void hl_decode_mb_internal(H264Context *h, int simple, i
+                 memcpy(dest_y + i*  linesize, h->mb       + i*8, 16);
+             }
+             if(simple || !CONFIG_GRAY || !(s->flags&CODEC_FLAG_GRAY)){
+-                for (i=0; i<8; i++) {
+-                    memcpy(dest_cb+ i*uvlinesize, h->mb + 128 + i*4,  8);
+-                    memcpy(dest_cr+ i*uvlinesize, h->mb + 160 + i*4,  8);
++                if (!h->sps.chroma_format_idc) {
++                    for (i = 0; i < 8; i++) {
++                        memset(dest_cb + i*uvlinesize, 128, 8);
++                        memset(dest_cr + i*uvlinesize, 128, 8);
++                    }
++                } else {
++                    for (i = 0; i < 8; i++) {
++                        memcpy(dest_cb + i*uvlinesize, h->mb + 128 + i*4,  8);
++                        memcpy(dest_cr + i*uvlinesize, h->mb + 160 + i*4,  8);
++                    }
+                 }
+             }
+         }
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0037-vc1-properly-zero-coded_block-edges-on-new-slice-ent.patch b/debian/patches/post-0.7.1/0037-vc1-properly-zero-coded_block-edges-on-new-slice-ent.patch
new file mode 100644
index 0000000..5e10c84
--- /dev/null
+++ b/debian/patches/post-0.7.1/0037-vc1-properly-zero-coded_block-edges-on-new-slice-ent.patch
@@ -0,0 +1,30 @@
+From 97ce2a29b623f785f6b542846746f51018230df4 Mon Sep 17 00:00:00 2001
+From: Ronald S. Bultje <rsbultje at gmail.com>
+Date: Wed, 24 Aug 2011 14:36:16 -0700
+Subject: [PATCH 37/70] vc1: properly zero coded_block[] edges on new slice entry.
+
+Previously, we would leave the left edge uninitialized, which led to
+CBP prediction errors on slice edges, e.g. in SA10098.vc1.
+(cherry picked from commit d4b9974465baf893e90527a366e7a7411ded1ef8)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/vc1dec.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c
+index 8fca2da..b17ce30 100644
+--- a/libavcodec/vc1dec.c
++++ b/libavcodec/vc1dec.c
+@@ -3020,7 +3020,7 @@ static void vc1_decode_i_blocks_adv(VC1Context *v)
+         s->mb_x = 0;
+         ff_init_block_index(s);
+         memset(&s->coded_block[s->block_index[0]-s->b8_stride], 0,
+-               s->b8_stride * sizeof(*s->coded_block));
++               (1 + s->b8_stride) * sizeof(*s->coded_block));
+     }
+     for(; s->mb_y < s->end_mb_y; s->mb_y++) {
+         s->mb_x = 0;
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0038-VC1-Fix-first-last-row-checks-with-slices.patch b/debian/patches/post-0.7.1/0038-VC1-Fix-first-last-row-checks-with-slices.patch
new file mode 100644
index 0000000..4109da7
--- /dev/null
+++ b/debian/patches/post-0.7.1/0038-VC1-Fix-first-last-row-checks-with-slices.patch
@@ -0,0 +1,84 @@
+From db5e27f94ed8e74c2cca45b61085ebad7180e22d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Alberto=20Delm=C3=A1s?= <adelmas at gmail.com>
+Date: Thu, 25 Aug 2011 11:00:37 +0200
+Subject: [PATCH 38/70] VC1: Fix first/last row checks with slices
+
+In some places 0/mb_height were used in place of start_mb_y/end_mb_y.
+
+Fixes SA00049, SA00058, SA10091, SA10097, SA10131, SA20021, SA30030
+
+Improves PSNR in SA00054, SA00059, SA00060, SA10096, SA10098, SA20022,
+SA30031, SA30032, SA40012, SA40013
+
+Signed-off-by: Ronald S. Bultje <rsbultje at gmail.com>
+(cherry picked from commit 1cf82cab0840d669198ea76ab0363aa661950647)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/vc1dec.c |   14 +++++++-------
+ 1 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c
+index b17ce30..c87558b 100644
+--- a/libavcodec/vc1dec.c
++++ b/libavcodec/vc1dec.c
+@@ -243,7 +243,7 @@ static void vc1_loop_filter_iblk(VC1Context *v, int pq)
+     }
+     v->vc1dsp.vc1_v_loop_filter16(s->dest[0] + 8*s->linesize, s->linesize, pq);
+ 
+-    if (s->mb_y == s->mb_height-1) {
++    if (s->mb_y == s->end_mb_y-1) {
+         if (s->mb_x) {
+             v->vc1dsp.vc1_h_loop_filter16(s->dest[0], s->linesize, pq);
+             v->vc1dsp.vc1_h_loop_filter8(s->dest[1], s->uvlinesize, pq);
+@@ -295,7 +295,7 @@ static void vc1_loop_filter_iblk_delayed(VC1Context *v, int pq)
+             v->vc1dsp.vc1_v_loop_filter16(s->dest[0] - 8 * s->linesize, s->linesize, pq);
+         }
+ 
+-        if (s->mb_y == s->mb_height) {
++        if (s->mb_y == s->end_mb_y) {
+             if (s->mb_x) {
+                 if (s->mb_x >= 2)
+                     v->vc1dsp.vc1_h_loop_filter16(s->dest[0] - 16 * s->linesize - 16, s->linesize, pq);
+@@ -2330,7 +2330,7 @@ static av_always_inline void vc1_apply_p_v_loop_filter(VC1Context *v, int block_
+     } else {
+         dst      = s->dest[0] + (block_num & 1) * 8 + ((block_num & 2) * 4 - 8) * linesize;
+     }
+-    if (s->mb_y != s->mb_height || block_num < 2) {
++    if (s->mb_y != s->end_mb_y || block_num < 2) {
+         int16_t (*mv)[2];
+         int mv_stride;
+ 
+@@ -3096,7 +3096,7 @@ static void vc1_decode_i_blocks_adv(VC1Context *v)
+         if(v->s.loop_filter) vc1_loop_filter_iblk_delayed(v, v->pq);
+     }
+     if (v->s.loop_filter)
+-        ff_draw_horiz_band(s, (s->mb_height-1)*16, 16);
++        ff_draw_horiz_band(s, (s->end_mb_y-1)*16, 16);
+     ff_er_add_slice(s, 0, s->start_mb_y, s->mb_width - 1, s->end_mb_y - 1, (AC_END|DC_END|MV_END));
+ }
+ 
+@@ -3219,7 +3219,7 @@ static void vc1_decode_b_blocks(VC1Context *v)
+         s->first_slice_line = 0;
+     }
+     if (v->s.loop_filter)
+-        ff_draw_horiz_band(s, (s->mb_height-1)*16, 16);
++        ff_draw_horiz_band(s, (s->end_mb_y-1)*16, 16);
+     ff_er_add_slice(s, 0, s->start_mb_y, s->mb_width - 1, s->end_mb_y - 1, (AC_END|DC_END|MV_END));
+ }
+ 
+@@ -3227,9 +3227,9 @@ static void vc1_decode_skip_blocks(VC1Context *v)
+ {
+     MpegEncContext *s = &v->s;
+ 
+-    ff_er_add_slice(s, 0, 0, s->mb_width - 1, s->mb_height - 1, (AC_END|DC_END|MV_END));
++    ff_er_add_slice(s, 0, s->start_mb_y, s->mb_width - 1, s->end_mb_y - 1, (AC_END|DC_END|MV_END));
+     s->first_slice_line = 1;
+-    for(s->mb_y = 0; s->mb_y < s->mb_height; s->mb_y++) {
++    for(s->mb_y = s->start_mb_y; s->mb_y < s->end_mb_y; s->mb_y++) {
+         s->mb_x = 0;
+         ff_init_block_index(s);
+         ff_update_block_index(s);
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0039-vf_scale-don-t-leak-SWS-context.patch b/debian/patches/post-0.7.1/0039-vf_scale-don-t-leak-SWS-context.patch
new file mode 100644
index 0000000..fb23e6f
--- /dev/null
+++ b/debian/patches/post-0.7.1/0039-vf_scale-don-t-leak-SWS-context.patch
@@ -0,0 +1,29 @@
+From 2b74db8d2781202742535a466a371a10a108b141 Mon Sep 17 00:00:00 2001
+From: Michael Niedermayer <michaelni at gmx.at>
+Date: Wed, 9 Mar 2011 03:30:24 +0100
+Subject: [PATCH 39/70] vf_scale: don't leak SWS context.
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+(cherry picked from commit 52982dbe474663709033e1ad259f8ff7a5a2eefa)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavfilter/vf_scale.c |    2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/libavfilter/vf_scale.c b/libavfilter/vf_scale.c
+index 65fe01c..5288d32 100644
+--- a/libavfilter/vf_scale.c
++++ b/libavfilter/vf_scale.c
+@@ -205,6 +205,8 @@ static int config_props(AVFilterLink *outlink)
+ 
+     scale->input_is_pal = av_pix_fmt_descriptors[inlink->format].flags & PIX_FMT_PAL;
+ 
++    if (scale->sws)
++        sws_freeContext(scale->sws);
+     scale->sws = sws_getContext(inlink ->w, inlink ->h, inlink ->format,
+                                 outlink->w, outlink->h, outlink->format,
+                                 scale->flags, NULL, NULL, NULL);
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0040-cpu-detection-avoid-a-signed-overflow.patch b/debian/patches/post-0.7.1/0040-cpu-detection-avoid-a-signed-overflow.patch
new file mode 100644
index 0000000..cba1d34
--- /dev/null
+++ b/debian/patches/post-0.7.1/0040-cpu-detection-avoid-a-signed-overflow.patch
@@ -0,0 +1,31 @@
+From 1cf3ba89711748b340c31fe018a3a72e8e9b75f1 Mon Sep 17 00:00:00 2001
+From: Sean McGovern <gseanmcg at gmail.com>
+Date: Mon, 25 Jul 2011 18:51:02 -0400
+Subject: [PATCH 40/70] cpu detection: avoid a signed overflow
+
+1<<31 overflows because 1 is signed, so force it to unsigned.
+
+Signed-off-by: Ronald S. Bultje <rsbultje at gmail.com>
+(cherry picked from commit 5938e02185430ca711106aaec9b5622dbf588af3)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavutil/x86/cpu.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/libavutil/x86/cpu.c b/libavutil/x86/cpu.c
+index 78aeadf..f747e4d 100644
+--- a/libavutil/x86/cpu.c
++++ b/libavutil/x86/cpu.c
+@@ -113,7 +113,7 @@ int ff_get_cpu_flags_x86(void)
+ 
+     if(max_ext_level >= 0x80000001){
+         cpuid(0x80000001, eax, ebx, ecx, ext_caps);
+-        if (ext_caps & (1<<31))
++        if (ext_caps & (1U<<31))
+             rval |= AV_CPU_FLAG_3DNOW;
+         if (ext_caps & (1<<30))
+             rval |= AV_CPU_FLAG_3DNOWEXT;
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0041-AVOptions-fix-av_set_string3-doxy-to-match-reality.patch b/debian/patches/post-0.7.1/0041-AVOptions-fix-av_set_string3-doxy-to-match-reality.patch
new file mode 100644
index 0000000..61baa6a
--- /dev/null
+++ b/debian/patches/post-0.7.1/0041-AVOptions-fix-av_set_string3-doxy-to-match-reality.patch
@@ -0,0 +1,29 @@
+From 54f12d2889390293d59c2a9c36f1bf78fbca8dca Mon Sep 17 00:00:00 2001
+From: Anton Khirnov <anton at khirnov.net>
+Date: Tue, 23 Aug 2011 07:46:51 +0200
+Subject: [PATCH 41/70] AVOptions: fix av_set_string3() doxy to match reality.
+
+Fixes bug 28.
+(cherry picked from commit e955a682e125d44143415ff2b96a99a4dac78da2)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavutil/opt.h |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/libavutil/opt.h b/libavutil/opt.h
+index 30aa54f..ce65865 100644
+--- a/libavutil/opt.h
++++ b/libavutil/opt.h
+@@ -134,7 +134,7 @@ const AVOption *av_find_opt(void *obj, const char *name, const char *unit, int m
+  *              when 0 then no av_free() nor av_strdup() will be used
+  * @return 0 if the value has been set, or an AVERROR code in case of
+  * error:
+- * AVERROR(ENOENT) if no matching option exists
++ * AVERROR_OPTION_NOT_FOUND if no matching option exists
+  * AVERROR(ERANGE) if the value is out of range
+  * AVERROR(EINVAL) if the value is not valid
+  */
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0042-lavc-fix-type-for-thread_type-option.patch b/debian/patches/post-0.7.1/0042-lavc-fix-type-for-thread_type-option.patch
new file mode 100644
index 0000000..48711af
--- /dev/null
+++ b/debian/patches/post-0.7.1/0042-lavc-fix-type-for-thread_type-option.patch
@@ -0,0 +1,29 @@
+From a4f2973b2dfb2efe41d4e387eb9be404511da5e0 Mon Sep 17 00:00:00 2001
+From: Anton Khirnov <anton at khirnov.net>
+Date: Sun, 4 Sep 2011 09:56:47 +0200
+Subject: [PATCH 42/70] lavc: fix type for thread_type option
+
+It should be flags, not int.
+(cherry picked from commit fb47997edb9d8ff16fc380d005a08c0545624aa6)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/options.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/libavcodec/options.c b/libavcodec/options.c
+index ae9e0c9..6f25ebe 100644
+--- a/libavcodec/options.c
++++ b/libavcodec/options.c
+@@ -446,7 +446,7 @@ static const AVOption options[]={
+ {"lpc_passes", "deprecated, use flac-specific options", OFFSET(lpc_passes), FF_OPT_TYPE_INT, {.dbl = -1 }, INT_MIN, INT_MAX, A|E},
+ #endif
+ {"slices", "number of slices, used in parallelized decoding", OFFSET(slices), FF_OPT_TYPE_INT, {.dbl = 0 }, 0, INT_MAX, V|E},
+-{"thread_type", "select multithreading type", OFFSET(thread_type), FF_OPT_TYPE_INT, {.dbl = FF_THREAD_SLICE|FF_THREAD_FRAME }, 0, INT_MAX, V|E|D, "thread_type"},
++{"thread_type", "select multithreading type", OFFSET(thread_type), FF_OPT_TYPE_FLAGS, {.dbl = FF_THREAD_SLICE|FF_THREAD_FRAME }, 0, INT_MAX, V|E|D, "thread_type"},
+ {"slice", NULL, 0, FF_OPT_TYPE_CONST, {.dbl = FF_THREAD_SLICE }, INT_MIN, INT_MAX, V|E|D, "thread_type"},
+ {"frame", NULL, 0, FF_OPT_TYPE_CONST, {.dbl = FF_THREAD_FRAME }, INT_MIN, INT_MAX, V|E|D, "thread_type"},
+ {"vbv_delay", "initial buffer fill time in periods of 27Mhz clock", 0, FF_OPT_TYPE_INT64, {.dbl = 0 }, 0, INT64_MAX},
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0043-Fixed-invalid-access-in-wavpack-decoder-on-corrupted.patch b/debian/patches/post-0.7.1/0043-Fixed-invalid-access-in-wavpack-decoder-on-corrupted.patch
new file mode 100644
index 0000000..a19a1bc
--- /dev/null
+++ b/debian/patches/post-0.7.1/0043-Fixed-invalid-access-in-wavpack-decoder-on-corrupted.patch
@@ -0,0 +1,32 @@
+From aee461277a54736511fdcb6298f0e7f9d90e0672 Mon Sep 17 00:00:00 2001
+From: Laurent Aimar <fenrir at videolan.org>
+Date: Wed, 7 Sep 2011 23:12:32 +0200
+Subject: [PATCH 43/70] Fixed invalid access in wavpack decoder on corrupted extra bits sub-blocks.
+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 beefafda639dd53fc59c21d8a7cf8334da9a1062)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/wavpack.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/libavcodec/wavpack.c b/libavcodec/wavpack.c
+index e4fe217..64725c7 100644
+--- a/libavcodec/wavpack.c
++++ b/libavcodec/wavpack.c
+@@ -385,7 +385,7 @@ static inline int wv_get_value_integer(WavpackFrameContext *s, uint32_t *crc, in
+     if(s->extra_bits){
+         S <<= s->extra_bits;
+ 
+-        if(s->got_extra_bits){
++        if(s->got_extra_bits && get_bits_left(&s->gb_extra_bits) >= s->extra_bits){
+             S |= get_bits(&s->gb_extra_bits, s->extra_bits);
+             *crc = *crc * 9 + (S&0xffff) * 3 + ((unsigned)S>>16);
+         }
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0044-Fixed-invalid-writes-in-wavpack-decoder-on-corrupted.patch b/debian/patches/post-0.7.1/0044-Fixed-invalid-writes-in-wavpack-decoder-on-corrupted.patch
new file mode 100644
index 0000000..e7741cb
--- /dev/null
+++ b/debian/patches/post-0.7.1/0044-Fixed-invalid-writes-in-wavpack-decoder-on-corrupted.patch
@@ -0,0 +1,50 @@
+From 685940da4c843beb9283a21718cbd2fa4fa5d796 Mon Sep 17 00:00:00 2001
+From: Laurent Aimar <fenrir at videolan.org>
+Date: Wed, 7 Sep 2011 22:17:39 +0200
+Subject: [PATCH 44/70] Fixed invalid writes in wavpack decoder on corrupted bitstreams.
+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 0aedab03405849962b469277afe047aa2c61a87f)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/wavpack.c |    6 +++---
+ 1 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/libavcodec/wavpack.c b/libavcodec/wavpack.c
+index 64725c7..5bd677e 100644
+--- a/libavcodec/wavpack.c
++++ b/libavcodec/wavpack.c
+@@ -1113,7 +1113,7 @@ static int wavpack_decode_block(AVCodecContext *avctx, int block_no,
+             int16_t *dst = (int16_t*)samples + 1;
+             int16_t *src = (int16_t*)samples;
+             int cnt = samplecount;
+-            while(cnt--){
++            while(cnt-- > 0){
+                 *dst = *src;
+                 src += channel_stride;
+                 dst += channel_stride;
+@@ -1122,7 +1122,7 @@ static int wavpack_decode_block(AVCodecContext *avctx, int block_no,
+             int32_t *dst = (int32_t*)samples + 1;
+             int32_t *src = (int32_t*)samples;
+             int cnt = samplecount;
+-            while(cnt--){
++            while(cnt-- > 0){
+                 *dst = *src;
+                 src += channel_stride;
+                 dst += channel_stride;
+@@ -1131,7 +1131,7 @@ static int wavpack_decode_block(AVCodecContext *avctx, int block_no,
+             float *dst = (float*)samples + 1;
+             float *src = (float*)samples;
+             int cnt = samplecount;
+-            while(cnt--){
++            while(cnt-- > 0){
+                 *dst = *src;
+                 src += channel_stride;
+                 dst += channel_stride;
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0045-Fixed-invalid-access-in-wavpack-decoder-on-corrupted.patch b/debian/patches/post-0.7.1/0045-Fixed-invalid-access-in-wavpack-decoder-on-corrupted.patch
new file mode 100644
index 0000000..848762a
--- /dev/null
+++ b/debian/patches/post-0.7.1/0045-Fixed-invalid-access-in-wavpack-decoder-on-corrupted.patch
@@ -0,0 +1,124 @@
+From 4b84e995ad88f3bfa533c38218f2791c14fd72f0 Mon Sep 17 00:00:00 2001
+From: Laurent Aimar <fenrir at videolan.org>
+Date: Wed, 7 Sep 2011 22:02:55 +0200
+Subject: [PATCH 45/70] Fixed invalid access in wavpack decoder on corrupted bitstream.
+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 55354b7de21e7bb4bbeb1c12ff55ea17f807c70c)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/wavpack.c |   49 +++++++++++++++++++++++++++++++++++--------------
+ 1 files changed, 35 insertions(+), 14 deletions(-)
+
+diff --git a/libavcodec/wavpack.c b/libavcodec/wavpack.c
+index 5bd677e..343120f 100644
+--- a/libavcodec/wavpack.c
++++ b/libavcodec/wavpack.c
+@@ -292,7 +292,14 @@ static int wv_get_value(WavpackFrameContext *ctx, GetBitContext *gb, int channel
+             }
+         }else{
+             t = get_unary_0_33(gb);
+-            if(t >= 2) t = get_bits(gb, t - 1) | (1 << (t-1));
++            if(t >= 2){
++                if(get_bits_left(gb) < t-1)
++                    goto error;
++                t = get_bits(gb, t - 1) | (1 << (t-1));
++            }else{
++                if(get_bits_left(gb) < 0)
++                    goto error;
++            }
+             ctx->zeroes = t;
+             if(ctx->zeroes){
+                 memset(ctx->ch[0].median, 0, sizeof(ctx->ch[0].median));
+@@ -303,24 +310,24 @@ static int wv_get_value(WavpackFrameContext *ctx, GetBitContext *gb, int channel
+         }
+     }
+ 
+-    if(get_bits_count(gb) >= ctx->data_size){
+-        *last = 1;
+-        return 0;
+-    }
+-
+     if(ctx->zero){
+         t = 0;
+         ctx->zero = 0;
+     }else{
+         t = get_unary_0_33(gb);
+-        if(get_bits_count(gb) >= ctx->data_size){
+-            *last = 1;
+-            return 0;
+-        }
++        if(get_bits_left(gb) < 0)
++            goto error;
+         if(t == 16) {
+             t2 = get_unary_0_33(gb);
+-            if(t2 < 2) t += t2;
+-            else t += get_bits(gb, t2 - 1) | (1 << (t2 - 1));
++            if(t2 < 2){
++                if(get_bits_left(gb) < 0)
++                    goto error;
++                t += t2;
++            }else{
++                if(get_bits_left(gb) < t2 - 1)
++                    goto error;
++                t += get_bits(gb, t2 - 1) | (1 << (t2 - 1));
++            }
+         }
+ 
+         if(ctx->one){
+@@ -360,9 +367,13 @@ static int wv_get_value(WavpackFrameContext *ctx, GetBitContext *gb, int channel
+     }
+     if(!c->error_limit){
+         ret = base + get_tail(gb, add);
++        if (get_bits_left(gb) <= 0)
++            goto error;
+     }else{
+         int mid = (base*2 + add + 1) >> 1;
+         while(add > c->error_limit){
++            if(get_bits_left(gb) <= 0)
++                goto error;
+             if(get_bits1(gb)){
+                 add -= (mid - base);
+                 base = mid;
+@@ -376,6 +387,10 @@ static int wv_get_value(WavpackFrameContext *ctx, GetBitContext *gb, int channel
+     if(ctx->hybrid_bitrate)
+         c->slow_level += wp_log2(ret) - LEVEL_DECAY(c->slow_level);
+     return sign ? ~ret : ret;
++
++error:
++    *last = 1;
++    return 0;
+ }
+ 
+ static inline int wv_get_value_integer(WavpackFrameContext *s, uint32_t *crc, int S)
+@@ -580,7 +595,10 @@ static inline int wv_unpack_stereo(WavpackFrameContext *s, GetBitContext *gb, vo
+         count++;
+     }while(!last && count < s->max_samples);
+ 
+-    s->samples_left -= count;
++    if (last)
++        s->samples_left = 0;
++    else
++        s->samples_left -= count;
+     if(!s->samples_left){
+         if(crc != s->CRC){
+             av_log(s->avctx, AV_LOG_ERROR, "CRC error\n");
+@@ -658,7 +676,10 @@ static inline int wv_unpack_mono(WavpackFrameContext *s, GetBitContext *gb, void
+         count++;
+     }while(!last && count < s->max_samples);
+ 
+-    s->samples_left -= count;
++    if (last)
++        s->samples_left = 0;
++    else
++        s->samples_left -= count;
+     if(!s->samples_left){
+         if(crc != s->CRC){
+             av_log(s->avctx, AV_LOG_ERROR, "CRC error\n");
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0046-wavpack-Check-error-codes-rather-than-working-around.patch b/debian/patches/post-0.7.1/0046-wavpack-Check-error-codes-rather-than-working-around.patch
new file mode 100644
index 0000000..1f2d0d8
--- /dev/null
+++ b/debian/patches/post-0.7.1/0046-wavpack-Check-error-codes-rather-than-working-around.patch
@@ -0,0 +1,64 @@
+From 5d4c065476da547fd1a8a604e3047e1b3a7a29d8 Mon Sep 17 00:00:00 2001
+From: Alex Converse <alex.converse at gmail.com>
+Date: Thu, 8 Sep 2011 11:02:43 -0700
+Subject: [PATCH 46/70] wavpack: Check error codes rather than working around error conditions.
+
+(cherry picked from commit dba2b63a98bdcac7bda1a8a2c48950518c075e17)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/wavpack.c |   13 ++++++++++---
+ 1 files changed, 10 insertions(+), 3 deletions(-)
+
+diff --git a/libavcodec/wavpack.c b/libavcodec/wavpack.c
+index 343120f..f614c7a 100644
+--- a/libavcodec/wavpack.c
++++ b/libavcodec/wavpack.c
+@@ -1119,6 +1119,10 @@ static int wavpack_decode_block(AVCodecContext *avctx, int block_no,
+             samplecount = wv_unpack_stereo(s, &s->gb, samples, AV_SAMPLE_FMT_S32);
+         else
+             samplecount = wv_unpack_stereo(s, &s->gb, samples, AV_SAMPLE_FMT_FLT);
++
++        if (samplecount < 0)
++            return -1;
++
+         samplecount >>= 1;
+     }else{
+         const int channel_stride = avctx->channels;
+@@ -1130,11 +1134,14 @@ static int wavpack_decode_block(AVCodecContext *avctx, int block_no,
+         else
+             samplecount = wv_unpack_mono(s, &s->gb, samples, AV_SAMPLE_FMT_FLT);
+ 
++        if (samplecount < 0)
++            return -1;
++
+         if(s->stereo && avctx->sample_fmt == AV_SAMPLE_FMT_S16){
+             int16_t *dst = (int16_t*)samples + 1;
+             int16_t *src = (int16_t*)samples;
+             int cnt = samplecount;
+-            while(cnt-- > 0){
++            while(cnt--){
+                 *dst = *src;
+                 src += channel_stride;
+                 dst += channel_stride;
+@@ -1143,7 +1150,7 @@ static int wavpack_decode_block(AVCodecContext *avctx, int block_no,
+             int32_t *dst = (int32_t*)samples + 1;
+             int32_t *src = (int32_t*)samples;
+             int cnt = samplecount;
+-            while(cnt-- > 0){
++            while(cnt--){
+                 *dst = *src;
+                 src += channel_stride;
+                 dst += channel_stride;
+@@ -1152,7 +1159,7 @@ static int wavpack_decode_block(AVCodecContext *avctx, int block_no,
+             float *dst = (float*)samples + 1;
+             float *src = (float*)samples;
+             int cnt = samplecount;
+-            while(cnt-- > 0){
++            while(cnt--){
+                 *dst = *src;
+                 src += channel_stride;
+                 dst += channel_stride;
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0047-ffv1-Fixed-size-given-to-init_get_bits-in-decoder.patch b/debian/patches/post-0.7.1/0047-ffv1-Fixed-size-given-to-init_get_bits-in-decoder.patch
new file mode 100644
index 0000000..d68152c
--- /dev/null
+++ b/debian/patches/post-0.7.1/0047-ffv1-Fixed-size-given-to-init_get_bits-in-decoder.patch
@@ -0,0 +1,41 @@
+From 07b3c4cde582a91377372d1dd2afe7c79230f56e Mon Sep 17 00:00:00 2001
+From: Laurent Aimar <fenrir at videolan.org>
+Date: Fri, 9 Sep 2011 22:04:09 +0200
+Subject: [PATCH 47/70] ffv1: Fixed size given to init_get_bits() in decoder.
+
+init_get_bits() takes a number of bits and not a number of bytes as
+its size argument.
+
+Signed-off-by: Alex Converse <alex.converse at gmail.com>
+(cherry picked from commit 46b004959bb7870a361a57272cd5fa7eea34250b)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/ffv1.c |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/libavcodec/ffv1.c b/libavcodec/ffv1.c
+index 50f1062..ab2cc6e 100644
+--- a/libavcodec/ffv1.c
++++ b/libavcodec/ffv1.c
+@@ -1765,7 +1765,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, AVPac
+         bytes_read = c->bytestream - c->bytestream_start - 1;
+         if(bytes_read ==0) av_log(avctx, AV_LOG_ERROR, "error at end of AC stream\n"); //FIXME
+ //printf("pos=%d\n", bytes_read);
+-        init_get_bits(&f->slice_context[0]->gb, buf + bytes_read, buf_size - bytes_read);
++        init_get_bits(&f->slice_context[0]->gb, buf + bytes_read, (buf_size - bytes_read) * 8);
+     } else {
+         bytes_read = 0; /* avoid warning */
+     }
+@@ -1782,7 +1782,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, AVPac
+         if(fs->ac){
+             ff_init_range_decoder(&fs->c, buf_p, v);
+         }else{
+-            init_get_bits(&fs->gb, buf_p, v);
++            init_get_bits(&fs->gb, buf_p, v * 8);
+         }
+     }
+ 
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0048-indeo2-init_get_bits-size-in-bits-instead-of-bytes.patch b/debian/patches/post-0.7.1/0048-indeo2-init_get_bits-size-in-bits-instead-of-bytes.patch
new file mode 100644
index 0000000..f1824dc
--- /dev/null
+++ b/debian/patches/post-0.7.1/0048-indeo2-init_get_bits-size-in-bits-instead-of-bytes.patch
@@ -0,0 +1,28 @@
+From af32fa929a81188c4c451f8648f2f650dcf5228a Mon Sep 17 00:00:00 2001
+From: Alex Converse <alex.converse at gmail.com>
+Date: Fri, 9 Sep 2011 13:24:19 -0700
+Subject: [PATCH 48/70] indeo2: init_get_bits size in bits instead of bytes
+
+(cherry picked from commit 68ca330cbd479111db9cb7649d7530ad59f04cc8)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/indeo2.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/libavcodec/indeo2.c b/libavcodec/indeo2.c
+index 0e588c3..6cf893b 100644
+--- a/libavcodec/indeo2.c
++++ b/libavcodec/indeo2.c
+@@ -165,7 +165,7 @@ static int ir2_decode_frame(AVCodecContext *avctx,
+ #endif
+     start = 48; /* hardcoded for now */
+ 
+-    init_get_bits(&s->gb, buf + start, buf_size - start);
++    init_get_bits(&s->gb, buf + start, (buf_size - start) * 8);
+ 
+     if (s->decode_delta) { /* intraframe */
+         ir2_decode_plane(s, avctx->width, avctx->height,
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0049-indeo2-fail-if-input-buffer-too-small.patch b/debian/patches/post-0.7.1/0049-indeo2-fail-if-input-buffer-too-small.patch
new file mode 100644
index 0000000..0bc65c6
--- /dev/null
+++ b/debian/patches/post-0.7.1/0049-indeo2-fail-if-input-buffer-too-small.patch
@@ -0,0 +1,41 @@
+From 6550e2b5c51cf7d3d40f666f6966b57f622ffffc Mon Sep 17 00:00:00 2001
+From: Alex Converse <alex.converse at gmail.com>
+Date: Fri, 9 Sep 2011 13:26:49 -0700
+Subject: [PATCH 49/70] indeo2: fail if input buffer too small
+
+(cherry picked from commit b7ce4f1d1c3add86ece7ca595ea6c4a10b471055)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/indeo2.c |    8 +++++++-
+ 1 files changed, 7 insertions(+), 1 deletions(-)
+
+diff --git a/libavcodec/indeo2.c b/libavcodec/indeo2.c
+index 6cf893b..544f476 100644
+--- a/libavcodec/indeo2.c
++++ b/libavcodec/indeo2.c
+@@ -156,6 +156,13 @@ static int ir2_decode_frame(AVCodecContext *avctx,
+         return -1;
+     }
+ 
++    start = 48; /* hardcoded for now */
++
++    if (start >= buf_size) {
++        av_log(s->avctx, AV_LOG_ERROR, "input buffer size too small (%d)\n", buf_size);
++        return AVERROR_INVALIDDATA;
++    }
++
+     s->decode_delta = buf[18];
+ 
+     /* decide whether frame uses deltas or not */
+@@ -163,7 +170,6 @@ static int ir2_decode_frame(AVCodecContext *avctx,
+     for (i = 0; i < buf_size; i++)
+         buf[i] = av_reverse[buf[i]];
+ #endif
+-    start = 48; /* hardcoded for now */
+ 
+     init_get_bits(&s->gb, buf + start, (buf_size - start) * 8);
+ 
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0050-cljr-init_get_bits-size-in-bits-instead-of-bytes.patch b/debian/patches/post-0.7.1/0050-cljr-init_get_bits-size-in-bits-instead-of-bytes.patch
new file mode 100644
index 0000000..a8198d2
--- /dev/null
+++ b/debian/patches/post-0.7.1/0050-cljr-init_get_bits-size-in-bits-instead-of-bytes.patch
@@ -0,0 +1,28 @@
+From 384ed15c2a81812757ecd182f01256f7426af290 Mon Sep 17 00:00:00 2001
+From: Alex Converse <alex.converse at gmail.com>
+Date: Fri, 9 Sep 2011 14:50:33 -0700
+Subject: [PATCH 50/70] cljr: init_get_bits size in bits instead of bytes
+
+(cherry picked from commit 0c1f5b93d9b97c4cc3684ba91a040e90bfc760d2)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/cljr.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/libavcodec/cljr.c b/libavcodec/cljr.c
+index e2b01e2..b83919e 100644
+--- a/libavcodec/cljr.c
++++ b/libavcodec/cljr.c
+@@ -67,7 +67,7 @@ static int decode_frame(AVCodecContext *avctx,
+     p->pict_type= AV_PICTURE_TYPE_I;
+     p->key_frame= 1;
+ 
+-    init_get_bits(&a->gb, buf, buf_size);
++    init_get_bits(&a->gb, buf, buf_size * 8);
+ 
+     for(y=0; y<avctx->height; y++){
+         uint8_t *luma= &a->picture.data[0][ y*a->picture.linesize[0] ];
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0051-Fixed-segfault-with-wavpack-decoder-on-corrupted-dec.patch b/debian/patches/post-0.7.1/0051-Fixed-segfault-with-wavpack-decoder-on-corrupted-dec.patch
new file mode 100644
index 0000000..f1ed07d
--- /dev/null
+++ b/debian/patches/post-0.7.1/0051-Fixed-segfault-with-wavpack-decoder-on-corrupted-dec.patch
@@ -0,0 +1,39 @@
+From 9b30b7b9bfc83df9ba7c9a39fd0dcd74dfc063f3 Mon Sep 17 00:00:00 2001
+From: Laurent Aimar <fenrir at videolan.org>
+Date: Wed, 7 Sep 2011 21:43:03 +0200
+Subject: [PATCH 51/70] Fixed segfault with wavpack decoder on corrupted decorrelation terms sub-blocks.
+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 8bfea4ab4e2cb32bc7bf6f697ee30a238c65d296)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/wavpack.c |    5 +++--
+ 1 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/libavcodec/wavpack.c b/libavcodec/wavpack.c
+index f614c7a..155633f 100644
+--- a/libavcodec/wavpack.c
++++ b/libavcodec/wavpack.c
+@@ -862,12 +862,13 @@ static int wavpack_decode_block(AVCodecContext *avctx, int block_no,
+         }
+         switch(id & WP_IDF_MASK){
+         case WP_ID_DECTERMS:
+-            s->terms = size;
+-            if(s->terms > MAX_TERMS){
++            if(size > MAX_TERMS){
+                 av_log(avctx, AV_LOG_ERROR, "Too many decorrelation terms\n");
++                s->terms = 0;
+                 buf += ssize;
+                 continue;
+             }
++            s->terms = size;
+             for(i = 0; i < s->terms; i++) {
+                 s->decorr[s->terms - i - 1].value = (*buf & 0x1F) - 5;
+                 s->decorr[s->terms - i - 1].delta = *buf >> 5;
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0052-smacker-demuxer-handle-possible-av_realloc-failure.patch b/debian/patches/post-0.7.1/0052-smacker-demuxer-handle-possible-av_realloc-failure.patch
new file mode 100644
index 0000000..01a3169
--- /dev/null
+++ b/debian/patches/post-0.7.1/0052-smacker-demuxer-handle-possible-av_realloc-failure.patch
@@ -0,0 +1,38 @@
+From 0b9b3570a3e3f3eff088ee061dbab165ff3eff2f Mon Sep 17 00:00:00 2001
+From: Kostya Shishkov <kostya.shishkov at gmail.com>
+Date: Mon, 12 Sep 2011 09:40:42 +0200
+Subject: [PATCH 52/70] smacker demuxer: handle possible av_realloc() failure.
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+(cherry picked from commit 47a8589f7bc69d1a29da1dfdfbd0dfa78a9e31fd)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavformat/smacker.c |    7 ++++++-
+ 1 files changed, 6 insertions(+), 1 deletions(-)
+
+diff --git a/libavformat/smacker.c b/libavformat/smacker.c
+index db9a02b..135b4ae 100644
+--- a/libavformat/smacker.c
++++ b/libavformat/smacker.c
+@@ -286,11 +286,16 @@ static int smacker_read_packet(AVFormatContext *s, AVPacket *pkt)
+         for(i = 0; i < 7; i++) {
+             if(flags & 1) {
+                 int size;
++                uint8_t *tmpbuf;
++
+                 size = avio_rl32(s->pb) - 4;
+                 frame_size -= size;
+                 frame_size -= 4;
+                 smk->curstream++;
+-                smk->bufs[smk->curstream] = av_realloc(smk->bufs[smk->curstream], size);
++                tmpbuf = av_realloc(smk->bufs[smk->curstream], size);
++                if (!tmpbuf)
++                    return AVERROR(ENOMEM);
++                smk->bufs[smk->curstream] = tmpbuf;
+                 smk->buf_sizes[smk->curstream] = size;
+                 ret = avio_read(s->pb, smk->bufs[smk->curstream], size);
+                 if(ret != size)
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0053-Fixed-size-given-to-init_get_bits-in-xan-decoder.patch b/debian/patches/post-0.7.1/0053-Fixed-size-given-to-init_get_bits-in-xan-decoder.patch
new file mode 100644
index 0000000..5ce8e22
--- /dev/null
+++ b/debian/patches/post-0.7.1/0053-Fixed-size-given-to-init_get_bits-in-xan-decoder.patch
@@ -0,0 +1,51 @@
+From e6694dce1cbaa1ecd2cbe547c9bf45745986e2c1 Mon Sep 17 00:00:00 2001
+From: Laurent Aimar <fenrir at videolan.org>
+Date: Sat, 10 Sep 2011 00:32:12 +0200
+Subject: [PATCH 53/70] Fixed size given to init_get_bits() in xan decoder.
+
+(cherry picked from commit 393d5031c6aaaf8c2dda4eb5d676974c349fae85)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/xan.c |   10 ++++++----
+ 1 files changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/libavcodec/xan.c b/libavcodec/xan.c
+index 876a9a5..521764f 100644
+--- a/libavcodec/xan.c
++++ b/libavcodec/xan.c
+@@ -95,17 +95,18 @@ static av_cold int xan_decode_init(AVCodecContext *avctx)
+     return 0;
+ }
+ 
+-static int xan_huffman_decode(unsigned char *dest, const unsigned char *src,
+-    int dest_len)
++static int xan_huffman_decode(unsigned char *dest, int dest_len,
++                              const unsigned char *src, int src_len)
+ {
+     unsigned char byte = *src++;
+     unsigned char ival = byte + 0x16;
+     const unsigned char * ptr = src + byte*2;
++    int ptr_len = src_len - 1 - byte*2;
+     unsigned char val = ival;
+     unsigned char *dest_end = dest + dest_len;
+     GetBitContext gb;
+ 
+-    init_get_bits(&gb, ptr, 0); // FIXME: no src size available
++    init_get_bits(&gb, ptr, ptr_len * 8);
+ 
+     while ( val != 0x16 ) {
+         val = src[val - 0x17 + get_bits1(&gb) * byte];
+@@ -270,7 +271,8 @@ static void xan_wc3_decode_frame(XanContext *s) {
+     vector_segment =    s->buf + AV_RL16(&s->buf[4]);
+     imagedata_segment = s->buf + AV_RL16(&s->buf[6]);
+ 
+-    xan_huffman_decode(opcode_buffer, huffman_segment, opcode_buffer_size);
++    xan_huffman_decode(opcode_buffer, opcode_buffer_size,
++                       huffman_segment, s->size - (huffman_segment - s->buf) );
+ 
+     if (imagedata_segment[0] == 2)
+         xan_unpack(s->buffer2, &imagedata_segment[1], s->buffer2_size);
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0054-xan-Add-some-buffer-checks.patch b/debian/patches/post-0.7.1/0054-xan-Add-some-buffer-checks.patch
new file mode 100644
index 0000000..ddb21c8
--- /dev/null
+++ b/debian/patches/post-0.7.1/0054-xan-Add-some-buffer-checks.patch
@@ -0,0 +1,93 @@
+From 61ddc8271d61b0e4ebb3b6954fc32f10799da228 Mon Sep 17 00:00:00 2001
+From: Alex Converse <alex.converse at gmail.com>
+Date: Fri, 9 Sep 2011 16:10:03 -0700
+Subject: [PATCH 54/70] xan: Add some buffer checks
+
+(cherry picked from commit 0872bb23b4bd2d94a8ba91070f706d1bc1c3ced8)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/xan.c |   37 +++++++++++++++++++++++++++++--------
+ 1 files changed, 29 insertions(+), 8 deletions(-)
+
+diff --git a/libavcodec/xan.c b/libavcodec/xan.c
+index 521764f..88a9adb 100644
+--- a/libavcodec/xan.c
++++ b/libavcodec/xan.c
+@@ -106,6 +106,9 @@ static int xan_huffman_decode(unsigned char *dest, int dest_len,
+     unsigned char *dest_end = dest + dest_len;
+     GetBitContext gb;
+ 
++    if (ptr_len < 0)
++        return AVERROR_INVALIDDATA;
++
+     init_get_bits(&gb, ptr, ptr_len * 8);
+ 
+     while ( val != 0x16 ) {
+@@ -245,7 +248,7 @@ static inline void xan_wc3_copy_pixel_run(XanContext *s,
+     }
+ }
+ 
+-static void xan_wc3_decode_frame(XanContext *s) {
++static int xan_wc3_decode_frame(XanContext *s) {
+ 
+     int width = s->avctx->width;
+     int height = s->avctx->height;
+@@ -265,14 +268,30 @@ static void xan_wc3_decode_frame(XanContext *s) {
+     const unsigned char *size_segment;
+     const unsigned char *vector_segment;
+     const unsigned char *imagedata_segment;
++    int huffman_offset, size_offset, vector_offset, imagedata_offset;
++
++    if (s->size < 8)
++        return AVERROR_INVALIDDATA;
++
++    huffman_offset    = AV_RL16(&s->buf[0]);
++    size_offset       = AV_RL16(&s->buf[2]);
++    vector_offset     = AV_RL16(&s->buf[4]);
++    imagedata_offset  = AV_RL16(&s->buf[6]);
+ 
+-    huffman_segment =   s->buf + AV_RL16(&s->buf[0]);
+-    size_segment =      s->buf + AV_RL16(&s->buf[2]);
+-    vector_segment =    s->buf + AV_RL16(&s->buf[4]);
+-    imagedata_segment = s->buf + AV_RL16(&s->buf[6]);
++    if (huffman_offset   >= s->size ||
++        size_offset      >= s->size ||
++        vector_offset    >= s->size ||
++        imagedata_offset >= s->size)
++        return AVERROR_INVALIDDATA;
+ 
+-    xan_huffman_decode(opcode_buffer, opcode_buffer_size,
+-                       huffman_segment, s->size - (huffman_segment - s->buf) );
++    huffman_segment   = s->buf + huffman_offset;
++    size_segment      = s->buf + size_offset;
++    vector_segment    = s->buf + vector_offset;
++    imagedata_segment = s->buf + imagedata_offset;
++
++    if (xan_huffman_decode(opcode_buffer, opcode_buffer_size,
++                           huffman_segment, s->size - huffman_offset) < 0)
++        return AVERROR_INVALIDDATA;
+ 
+     if (imagedata_segment[0] == 2)
+         xan_unpack(s->buffer2, &imagedata_segment[1], s->buffer2_size);
+@@ -358,6 +377,7 @@ static void xan_wc3_decode_frame(XanContext *s) {
+         y += (x + size) / width;
+         x  = (x + size) % width;
+     }
++    return 0;
+ }
+ 
+ #if RUNTIME_GAMMA
+@@ -519,7 +539,8 @@ static int xan_decode_frame(AVCodecContext *avctx,
+     s->buf = buf;
+     s->size = buf_size;
+ 
+-    xan_wc3_decode_frame(s);
++    if (xan_wc3_decode_frame(s) < 0)
++        return AVERROR_INVALIDDATA;
+ 
+     /* release the last frame if it is allocated */
+     if (s->last_frame.data[0])
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0055-ape-demuxer-fix-segfault-on-memory-allocation-failur.patch b/debian/patches/post-0.7.1/0055-ape-demuxer-fix-segfault-on-memory-allocation-failur.patch
new file mode 100644
index 0000000..8338991
--- /dev/null
+++ b/debian/patches/post-0.7.1/0055-ape-demuxer-fix-segfault-on-memory-allocation-failur.patch
@@ -0,0 +1,29 @@
+From 4ee014309c377f7cfaa9578a393864ae500136f6 Mon Sep 17 00:00:00 2001
+From: Laurent Aimar <fenrir at videolan.org>
+Date: Sun, 11 Sep 2011 19:17:40 +0200
+Subject: [PATCH 55/70] ape demuxer: fix segfault on memory allocation failure.
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+(cherry picked from commit 273aab99bf7be2bcda95dd64101c2317ee0fcb99)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavformat/ape.c |    2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/libavformat/ape.c b/libavformat/ape.c
+index 90b0261..b084100 100644
+--- a/libavformat/ape.c
++++ b/libavformat/ape.c
+@@ -270,6 +270,8 @@ static int ape_read_header(AVFormatContext * s, AVFormatParameters * ap)
+ 
+     if (ape->seektablelength > 0) {
+         ape->seektable = av_malloc(ape->seektablelength);
++        if (!ape->seektable)
++            return AVERROR(ENOMEM);
+         for (i = 0; i < ape->seektablelength / sizeof(uint32_t); i++)
+             ape->seektable[i] = avio_rl32(pb);
+     }
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0056-Check-for-invalid-packet-size-in-the-smacker-demuxer.patch b/debian/patches/post-0.7.1/0056-Check-for-invalid-packet-size-in-the-smacker-demuxer.patch
new file mode 100644
index 0000000..75a5a12
--- /dev/null
+++ b/debian/patches/post-0.7.1/0056-Check-for-invalid-packet-size-in-the-smacker-demuxer.patch
@@ -0,0 +1,32 @@
+From 4e7905fa9ee75eed404db4d2cca69f833452bf72 Mon Sep 17 00:00:00 2001
+From: Laurent Aimar <fenrir at videolan.org>
+Date: Mon, 12 Sep 2011 20:50:13 +0200
+Subject: [PATCH 56/70] Check for invalid packet size in the smacker demuxer.
+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 e055932f5636a82275837968eea9c8fcb5bca474)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavformat/smacker.c |    2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/libavformat/smacker.c b/libavformat/smacker.c
+index 135b4ae..87c59a3 100644
+--- a/libavformat/smacker.c
++++ b/libavformat/smacker.c
+@@ -304,6 +304,8 @@ static int smacker_read_packet(AVFormatContext *s, AVPacket *pkt)
+             }
+             flags >>= 1;
+         }
++        if (frame_size < 0)
++            return AVERROR_INVALIDDATA;
+         if (av_new_packet(pkt, frame_size + 768))
+             return AVERROR(ENOMEM);
+         if(smk->frm_size[smk->cur_frame] & 1)
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0057-Fixed-off-by-one-packet-size-allocation-in-the-smack.patch b/debian/patches/post-0.7.1/0057-Fixed-off-by-one-packet-size-allocation-in-the-smack.patch
new file mode 100644
index 0000000..425e718
--- /dev/null
+++ b/debian/patches/post-0.7.1/0057-Fixed-off-by-one-packet-size-allocation-in-the-smack.patch
@@ -0,0 +1,32 @@
+From 9f391c4971d4ce2e849a6465a19d1f9da1488194 Mon Sep 17 00:00:00 2001
+From: Laurent Aimar <fenrir at videolan.org>
+Date: Mon, 12 Sep 2011 20:50:34 +0200
+Subject: [PATCH 57/70] Fixed off by one packet size allocation in the smacker demuxer.
+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 a92d0fa5d234582583d41b67dddecffc2c819573)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavformat/smacker.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/libavformat/smacker.c b/libavformat/smacker.c
+index 87c59a3..a817c31 100644
+--- a/libavformat/smacker.c
++++ b/libavformat/smacker.c
+@@ -306,7 +306,7 @@ static int smacker_read_packet(AVFormatContext *s, AVPacket *pkt)
+         }
+         if (frame_size < 0)
+             return AVERROR_INVALIDDATA;
+-        if (av_new_packet(pkt, frame_size + 768))
++        if (av_new_packet(pkt, frame_size + 769))
+             return AVERROR(ENOMEM);
+         if(smk->frm_size[smk->cur_frame] & 1)
+             palchange |= 2;
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0058-Check-and-propagate-errors-when-VLC-trees-cannot-be-.patch b/debian/patches/post-0.7.1/0058-Check-and-propagate-errors-when-VLC-trees-cannot-be-.patch
new file mode 100644
index 0000000..526d3be
--- /dev/null
+++ b/debian/patches/post-0.7.1/0058-Check-and-propagate-errors-when-VLC-trees-cannot-be-.patch
@@ -0,0 +1,87 @@
+From 5b1f79b092a4684c1e700ea21d5da77c68ca7d44 Mon Sep 17 00:00:00 2001
+From: Laurent Aimar <fenrir at videolan.org>
+Date: Mon, 12 Sep 2011 23:46:49 +0200
+Subject: [PATCH 58/70] Check and propagate errors when VLC trees cannot be built in smacker decoder.
+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 9676ffba8346791f494451e68d2a3b37a2918a9b)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/smacker.c |   20 ++++++++++++--------
+ 1 files changed, 12 insertions(+), 8 deletions(-)
+
+diff --git a/libavcodec/smacker.c b/libavcodec/smacker.c
+index 8060e1c..e8de0d8 100644
+--- a/libavcodec/smacker.c
++++ b/libavcodec/smacker.c
+@@ -134,10 +134,10 @@ static int smacker_decode_bigtree(GetBitContext *gb, HuffContext *hc, DBCtx *ctx
+             return -1;
+         }
+         b1 = get_bits_count(gb);
+-        i1 = get_vlc2(gb, ctx->v1->table, SMKTREE_BITS, 3);
++        i1 = ctx->v1->table ? get_vlc2(gb, ctx->v1->table, SMKTREE_BITS, 3) : 0;
+         b1 = get_bits_count(gb) - b1;
+         b2 = get_bits_count(gb);
+-        i2 = get_vlc2(gb, ctx->v2->table, SMKTREE_BITS, 3);
++        i2 = ctx->v2->table ? get_vlc2(gb, ctx->v2->table, SMKTREE_BITS, 3) : 0;
+         b2 = get_bits_count(gb) - b2;
+         val = ctx->recode1[i1] | (ctx->recode2[i2] << 8);
+         if(val == ctx->escapes[0]) {
+@@ -290,7 +290,8 @@ static int decode_header_trees(SmackVContext *smk) {
+         smk->mmap_tbl[0] = 0;
+         smk->mmap_last[0] = smk->mmap_last[1] = smk->mmap_last[2] = 1;
+     } else {
+-        smacker_decode_header_tree(smk, &gb, &smk->mmap_tbl, smk->mmap_last, mmap_size);
++        if (smacker_decode_header_tree(smk, &gb, &smk->mmap_tbl, smk->mmap_last, mmap_size))
++            return -1;
+     }
+     if(!get_bits1(&gb)) {
+         av_log(smk->avctx, AV_LOG_INFO, "Skipping MCLR tree\n");
+@@ -298,7 +299,8 @@ static int decode_header_trees(SmackVContext *smk) {
+         smk->mclr_tbl[0] = 0;
+         smk->mclr_last[0] = smk->mclr_last[1] = smk->mclr_last[2] = 1;
+     } else {
+-        smacker_decode_header_tree(smk, &gb, &smk->mclr_tbl, smk->mclr_last, mclr_size);
++        if (smacker_decode_header_tree(smk, &gb, &smk->mclr_tbl, smk->mclr_last, mclr_size))
++            return -1;
+     }
+     if(!get_bits1(&gb)) {
+         av_log(smk->avctx, AV_LOG_INFO, "Skipping FULL tree\n");
+@@ -306,7 +308,8 @@ static int decode_header_trees(SmackVContext *smk) {
+         smk->full_tbl[0] = 0;
+         smk->full_last[0] = smk->full_last[1] = smk->full_last[2] = 1;
+     } else {
+-        smacker_decode_header_tree(smk, &gb, &smk->full_tbl, smk->full_last, full_size);
++        if (smacker_decode_header_tree(smk, &gb, &smk->full_tbl, smk->full_last, full_size))
++            return -1;
+     }
+     if(!get_bits1(&gb)) {
+         av_log(smk->avctx, AV_LOG_INFO, "Skipping TYPE tree\n");
+@@ -314,7 +317,8 @@ static int decode_header_trees(SmackVContext *smk) {
+         smk->type_tbl[0] = 0;
+         smk->type_last[0] = smk->type_last[1] = smk->type_last[2] = 1;
+     } else {
+-        smacker_decode_header_tree(smk, &gb, &smk->type_tbl, smk->type_last, type_size);
++        if (smacker_decode_header_tree(smk, &gb, &smk->type_tbl, smk->type_last, type_size))
++            return -1;
+     }
+ 
+     return 0;
+@@ -522,8 +526,8 @@ static av_cold int decode_init(AVCodecContext *avctx)
+         return -1;
+     }
+ 
+-    decode_header_trees(c);
+-
++    if (decode_header_trees(c))
++        return -1;
+ 
+     return 0;
+ }
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0059-Check-for-invalid-VLC-value-in-smacker-decoder.patch b/debian/patches/post-0.7.1/0059-Check-for-invalid-VLC-value-in-smacker-decoder.patch
new file mode 100644
index 0000000..09ef50a
--- /dev/null
+++ b/debian/patches/post-0.7.1/0059-Check-for-invalid-VLC-value-in-smacker-decoder.patch
@@ -0,0 +1,32 @@
+From 0d93b03e6861fafd3eddd9ee164cf56630c9d899 Mon Sep 17 00:00:00 2001
+From: Laurent Aimar <fenrir at videolan.org>
+Date: Mon, 12 Sep 2011 23:49:36 +0200
+Subject: [PATCH 59/70] Check for invalid VLC value in smacker decoder.
+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 6489455495fc5bfbebcfe3f57e5d4fdd6a781091)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/smacker.c |    2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/libavcodec/smacker.c b/libavcodec/smacker.c
+index e8de0d8..9628b07 100644
+--- a/libavcodec/smacker.c
++++ b/libavcodec/smacker.c
+@@ -139,6 +139,8 @@ static int smacker_decode_bigtree(GetBitContext *gb, HuffContext *hc, DBCtx *ctx
+         b2 = get_bits_count(gb);
+         i2 = ctx->v2->table ? get_vlc2(gb, ctx->v2->table, SMKTREE_BITS, 3) : 0;
+         b2 = get_bits_count(gb) - b2;
++        if (i1 < 0 || i2 < 0)
++            return -1;
+         val = ctx->recode1[i1] | (ctx->recode2[i2] << 8);
+         if(val == ctx->escapes[0]) {
+             ctx->last[0] = hc->current;
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0060-smacker-fix-a-few-off-by-1-errors.patch b/debian/patches/post-0.7.1/0060-smacker-fix-a-few-off-by-1-errors.patch
new file mode 100644
index 0000000..5a5f31c
--- /dev/null
+++ b/debian/patches/post-0.7.1/0060-smacker-fix-a-few-off-by-1-errors.patch
@@ -0,0 +1,304 @@
+From 78cd2e18a4aa2835f6d04cf145121fc82099c1a5 Mon Sep 17 00:00:00 2001
+From: Michael Niedermayer <michaelni at gmx.at>
+Date: Tue, 13 Sep 2011 23:24:56 +0200
+Subject: [PATCH 60/70] smacker: fix a few off by 1 errors
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+stereo & 16bit is untested due to lack of samples
+
+Signed-off-by: Martin Storsjö <martin at martin.st>
+(cherry picked from commit 5166376f24545207607f61ed8ff4e1b0572ff320)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/smacker.c   |    8 +-
+ tests/ref/fate/smacker |  160 ++++++++++++++++++++++++------------------------
+ 2 files changed, 84 insertions(+), 84 deletions(-)
+
+diff --git a/libavcodec/smacker.c b/libavcodec/smacker.c
+index 9628b07..1fa40de 100644
+--- a/libavcodec/smacker.c
++++ b/libavcodec/smacker.c
+@@ -624,9 +624,9 @@ static int smka_decode_frame(AVCodecContext *avctx, void *data, int *data_size,
+     if(bits) { //decode 16-bit data
+         for(i = stereo; i >= 0; i--)
+             pred[i] = av_bswap16(get_bits(&gb, 16));
+-        for(i = 0; i < stereo; i++)
++        for(i = 0; i <= stereo; i++)
+             *samples++ = pred[i];
+-        for(i = 0; i < unp_size / 2; i++) {
++        for(; i < unp_size / 2; i++) {
+             if(i & stereo) {
+                 if(vlc[2].table)
+                     res = get_vlc2(&gb, vlc[2].table, SMKTREE_BITS, 3);
+@@ -658,9 +658,9 @@ static int smka_decode_frame(AVCodecContext *avctx, void *data, int *data_size,
+     } else { //8-bit data
+         for(i = stereo; i >= 0; i--)
+             pred[i] = get_bits(&gb, 8);
+-        for(i = 0; i < stereo; i++)
++        for(i = 0; i <= stereo; i++)
+             *samples8++ = pred[i];
+-        for(i = 0; i < unp_size; i++) {
++        for(; i < unp_size; i++) {
+             if(i & stereo){
+                 if(vlc[1].table)
+                     res = get_vlc2(&gb, vlc[1].table, SMKTREE_BITS, 3);
+diff --git a/tests/ref/fate/smacker b/tests/ref/fate/smacker
+index 85c4a98..df88a4a 100644
+--- a/tests/ref/fate/smacker
++++ b/tests/ref/fate/smacker
+@@ -1,5 +1,5 @@
+ 0, 0, 192000, 0x8926d7fc
+-1, 0, 47240, 0xad778a78
++1, 0, 47240, 0x9974897c
+ 0, 6390, 192000, 0x2506d384
+ 0, 12780, 192000, 0x9a8dc93a
+ 0, 19170, 192000, 0x4badb7f2
+@@ -15,163 +15,163 @@
+ 0, 83070, 192000, 0x1a3d7971
+ 0, 89460, 192000, 0xa1a65bd5
+ 0, 95850, 192000, 0x344957b9
+-1, 96408, 3128, 0x4c1564ae
++1, 96408, 3128, 0x7e4064b4
+ 0, 102240, 192000, 0xe23b5f4e
+-1, 102792, 3128, 0x34553309
++1, 102792, 3128, 0x80883301
+ 0, 108630, 192000, 0xb5c2710b
+-1, 109176, 3136, 0xb474d246
++1, 109176, 3136, 0x2ad2d341
+ 0, 115020, 192000, 0x7a25938f
+-1, 115576, 3128, 0x87b868ea
++1, 115576, 3128, 0xda8468e3
+ 0, 121410, 192000, 0x0a84e4c9
+-1, 121959, 3136, 0xf1516dc3
++1, 121959, 3136, 0x9d6f6cdf
+ 0, 127800, 192000, 0x94209b0d
+-1, 128359, 3128, 0x867563cb
++1, 128359, 3128, 0x1aaa64b5
+ 0, 134190, 192000, 0xf940e51f
+-1, 134743, 3128, 0x5200728c
++1, 134743, 3128, 0x9182728b
+ 0, 140580, 192000, 0xb9fdec42
+-1, 141127, 3136, 0xeda118a0
++1, 141127, 3136, 0xfa8e17b3
+ 0, 146970, 192000, 0x7b04a376
+-1, 147527, 3128, 0x03e2c1d6
++1, 147527, 3128, 0x0dc3c1cf
+ 0, 153360, 192000, 0x5fe0026b
+-1, 153910, 3136, 0xc3e862b6
++1, 153910, 3136, 0x0109639d
+ 0, 159750, 192000, 0x775aca39
+-1, 160310, 3128, 0x937a13be
++1, 160310, 3128, 0x6d8a12d9
+ 0, 166140, 192000, 0xae14fb32
+-1, 166694, 3128, 0x7b1b9577
++1, 166694, 3128, 0x4b9a9597
+ 0, 172530, 192000, 0x661106e5
+-1, 173078, 3136, 0x042c7113
++1, 173078, 3136, 0x9112710e
+ 0, 178920, 192000, 0xe8658dbf
+-1, 179478, 3128, 0xac48f451
++1, 179478, 3128, 0x8cccf522
+ 0, 185310, 192000, 0x5359f0f9
+-1, 185861, 3128, 0x018fbbe9
++1, 185861, 3128, 0x6594bbf3
+ 0, 191700, 192000, 0xc1ec80f4
+-1, 192245, 3136, 0xc62aa7ce
++1, 192245, 3136, 0xd878a7d5
+ 0, 198090, 192000, 0xca53806b
+-1, 198645, 3128, 0x106e3924
++1, 198645, 3128, 0xaa6e3905
+ 0, 204480, 192000, 0xf0766b2e
+-1, 205029, 3136, 0xfeb82ecc
++1, 205029, 3136, 0x2a062e04
+ 0, 210870, 192000, 0x39962da8
+-1, 211429, 3128, 0x7e7c005b
++1, 211429, 3128, 0x84e4006a
+ 0, 217260, 192000, 0x4171c37f
+-1, 217812, 3128, 0x949d3560
++1, 217812, 3128, 0x85183633
+ 0, 223650, 192000, 0x3abf3b46
+-1, 224196, 3136, 0x02bd4aff
++1, 224196, 3136, 0xb62d4b02
+ 0, 230040, 192000, 0xecc68313
+-1, 230596, 3128, 0x4aaf4715
++1, 230596, 3128, 0xe209462a
+ 0, 236430, 192000, 0xea339baf
+-1, 236980, 3136, 0x2958825f
++1, 236980, 3136, 0x57c4824b
+ 0, 242820, 192000, 0x616b8f16
+-1, 243380, 3128, 0x99a5914d
++1, 243380, 3128, 0x664a9163
+ 0, 249210, 192000, 0xf77a8581
+-1, 249763, 3128, 0xe67277a4
++1, 249763, 3128, 0xb4287874
+ 0, 255600, 192000, 0xb315678b
+-1, 256147, 3136, 0x11296973
++1, 256147, 3136, 0xde626885
+ 0, 261990, 192000, 0x0a4a5218
+-1, 262547, 3128, 0x5cc362f7
++1, 262547, 3128, 0x919763c2
+ 0, 268380, 192000, 0x98802be4
+-1, 268931, 3128, 0x0c5e6586
++1, 268931, 3128, 0xa4f664e1
+ 0, 274770, 192000, 0xa2f0fd94
+-1, 275314, 3136, 0xe940b0f9
++1, 275314, 3136, 0xa0bab0d4
+ 0, 281160, 192000, 0x6671c84f
+-1, 281714, 3128, 0x2c9292cc
++1, 281714, 3128, 0xe938939c
+ 0, 287550, 192000, 0x38327e31
+-1, 288098, 3136, 0xa807c096
++1, 288098, 3136, 0x3679bfc7
+ 0, 293940, 192000, 0xb85d3e08
+-1, 294498, 3128, 0x9d2254d8
++1, 294498, 3128, 0xc96c55c3
+ 0, 300330, 192000, 0xdc69eba9
+-1, 300882, 3128, 0xe68015b0
++1, 300882, 3128, 0x119114d6
+ 0, 306720, 192000, 0x8955a0b3
+-1, 307265, 3136, 0x65d58029
++1, 307265, 3136, 0x42f3800f
+ 0, 313110, 192000, 0x714a548b
+-1, 313665, 3128, 0xcffcc48c
++1, 313665, 3128, 0x4250c4ad
+ 0, 319500, 192000, 0xc0471de9
+-1, 320049, 3136, 0x8c704944
++1, 320049, 3136, 0x5cdd4925
+ 0, 325890, 192000, 0x2e16e039
+-1, 326449, 3128, 0x1459231d
++1, 326449, 3128, 0xa4c12360
+ 0, 332280, 192000, 0x9fa4b033
+-1, 332833, 3128, 0x7dde4839
++1, 332833, 3128, 0x849f48de
+ 0, 338670, 192000, 0x4a0f9402
+-1, 339216, 3136, 0xbb6890e2
++1, 339216, 3136, 0x6acd8ff9
+ 0, 345060, 192000, 0x1f3e6843
+-1, 345616, 3128, 0xcd9a8524
++1, 345616, 3128, 0xb2758556
+ 0, 351450, 192000, 0x31774850
+-1, 352000, 3128, 0xa244fc31
++1, 352000, 3128, 0x10f2fcb1
+ 0, 357840, 192000, 0x9d5336a2
+-1, 358384, 3136, 0x504e2bd9
++1, 358384, 3136, 0xf0f02b23
+ 0, 364230, 192000, 0xf7de27a2
+-1, 364784, 3128, 0x655858d8
++1, 364784, 3128, 0x64f759c6
+ 0, 370620, 192000, 0x98c717ce
+-1, 371167, 3136, 0x46027610
++1, 371167, 3136, 0x7ec075e3
+ 0, 377010, 192000, 0x615b10b8
+-1, 377567, 3128, 0x4192d5e3
++1, 377567, 3128, 0xf981d51e
+ 0, 383400, 192000, 0xd5bc0e7e
+-1, 383951, 3128, 0x21d2e7fe
++1, 383951, 3128, 0xc622e8b9
+ 0, 389790, 192000, 0xd5bc0e7e
+-1, 390335, 3136, 0x7c93e329
++1, 390335, 3136, 0xf632e2f8
+ 0, 396180, 192000, 0xd5bc0e7e
+-1, 396735, 3128, 0xa67718c0
++1, 396735, 3128, 0xda561864
+ 0, 402570, 192000, 0xd5bc0e7e
+-1, 403118, 3136, 0x9bb6e8a3
++1, 403118, 3136, 0x14d2e888
+ 0, 408960, 192000, 0xd5bc0e7e
+-1, 409518, 3128, 0x0933b7a6
++1, 409518, 3128, 0x015bb869
+ 0, 415350, 192000, 0xd5bc0e7e
+-1, 415902, 3128, 0x07f1fb57
++1, 415902, 3128, 0xedb1fb62
+ 0, 421740, 192000, 0xd5bc0e7e
+-1, 422286, 3136, 0x8a050cfd
++1, 422286, 3136, 0xe0560c41
+ 0, 428130, 192000, 0xd5bc0e7e
+-1, 428686, 3128, 0xdb773c0b
++1, 428686, 3128, 0x14773c9a
+ 0, 434520, 192000, 0xd5bc0e7e
+-1, 435069, 3136, 0xd1281c53
++1, 435069, 3136, 0x850f1c82
+ 0, 440910, 192000, 0xd5bc0e7e
+-1, 441469, 3128, 0x9f395324
++1, 441469, 3128, 0xb0bd5347
+ 0, 447300, 192000, 0xd5bc0e7e
+-1, 447853, 3128, 0x5f13edec
++1, 447853, 3128, 0x8f82edbf
+ 0, 453690, 192000, 0xd5bc0e7e
+-1, 454237, 3136, 0x871cbecf
++1, 454237, 3136, 0x493abee2
+ 0, 460080, 192000, 0xd5bc0e7e
+-1, 460637, 3128, 0x799eff3e
++1, 460637, 3128, 0xf5daff3f
+ 0, 466470, 192000, 0xd5bc0e7e
+-1, 467020, 3128, 0x3f902762
++1, 467020, 3128, 0x78ad2690
+ 0, 472860, 192000, 0xd5bc0e7e
+-1, 473404, 3136, 0x29f8bb04
++1, 473404, 3136, 0x490ebafc
+ 0, 479250, 192000, 0xd5bc0e7e
+-1, 479804, 3128, 0xf3523ee9
++1, 479804, 3128, 0x70333fd2
+ 0, 485640, 192000, 0xd5bc0e7e
+-1, 486188, 3136, 0x4405c435
++1, 486188, 3136, 0x8cb1c350
+ 0, 492030, 192000, 0xd5bc0e7e
+-1, 492588, 3128, 0x892957cb
++1, 492588, 3128, 0x8bd057cb
+ 0, 498420, 192000, 0xd5bc0e7e
+-1, 498971, 3128, 0xdf483dbd
++1, 498971, 3128, 0x161b3dbc
+ 0, 504810, 192000, 0xd5bc0e7e
+-1, 505355, 3136, 0x5e8ab797
++1, 505355, 3136, 0xb47fb88a
+ 0, 511200, 192000, 0xd5bc0e7e
+-1, 511755, 3128, 0x92e13820
++1, 511755, 3128, 0x474b381e
+ 0, 517590, 192000, 0xd5bc0e7e
+-1, 518139, 3136, 0xfde719b6
++1, 518139, 3136, 0x07c519bb
+ 0, 523980, 192000, 0xd5bc0e7e
+-1, 524539, 3128, 0x442f17ae
++1, 524539, 3128, 0x15b916c8
+ 0, 530370, 192000, 0xd5bc0e7e
+-1, 530922, 3128, 0x011af61f
++1, 530922, 3128, 0x0ed7f6fb
+ 0, 536760, 192000, 0xd5bc0e7e
+-1, 537306, 3136, 0x4e3e3a6d
++1, 537306, 3136, 0x54d6397b
+ 0, 543150, 192000, 0xd5bc0e7e
+-1, 543706, 3128, 0xc11242b9
++1, 543706, 3128, 0x437242bb
+ 0, 549540, 192000, 0xd5bc0e7e
+-1, 550090, 3128, 0x01415b59
++1, 550090, 3128, 0x38f05c4d
+ 0, 555930, 192000, 0xd5bc0e7e
+-1, 556473, 3136, 0x302e0e55
++1, 556473, 3136, 0x5d000e59
+ 0, 562320, 192000, 0xd5bc0e7e
+-1, 562873, 3128, 0x20522d04
++1, 562873, 3128, 0xdeab2d04
+ 0, 568710, 192000, 0xd5bc0e7e
+-1, 569257, 3136, 0x316a697d
++1, 569257, 3136, 0x77de6880
+ 0, 575100, 192000, 0xd5bc0e7e
+-1, 575657, 3128, 0x6d75ee27
++1, 575657, 3128, 0xbc87ef25
+ 0, 581490, 192000, 0xd5bc0e7e
+-1, 582041, 3128, 0xcb008ae8
++1, 582041, 3128, 0xc1638ade
+ 0, 587880, 192000, 0xd5bc0e7e
+-1, 588424, 3136, 0xd2664b51
++1, 588424, 3136, 0xcfb64a5f
+ 0, 594270, 192000, 0xd5bc0e7e
+-1, 594824, 3128, 0xdfcab728
++1, 594824, 3128, 0x90b1b826
+ 0, 600660, 192000, 0xd5bc0e7e
+ 1, 601208, 3136, 0x00000000
+ 0, 607050, 192000, 0xd5bc0e7e
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0061-Fixed-size-given-to-init_get_bits.patch b/debian/patches/post-0.7.1/0061-Fixed-size-given-to-init_get_bits.patch
new file mode 100644
index 0000000..634458e
--- /dev/null
+++ b/debian/patches/post-0.7.1/0061-Fixed-size-given-to-init_get_bits.patch
@@ -0,0 +1,102 @@
+From 54a178f28ff5caf8cac5493cc3f1c22ac2323fcf Mon Sep 17 00:00:00 2001
+From: Laurent Aimar <fenrir at videolan.org>
+Date: Fri, 9 Sep 2011 23:46:00 +0200
+Subject: [PATCH 61/70] Fixed size given to init_get_bits().
+
+init_get_bits() takes a number of bits and not a number of bytes as
+its size argument.
+
+Signed-off-by: Alex Converse <alex.converse at gmail.com>
+(cherry picked from commit b59efc94347ccf0cbc2ff14a5a9e99819c5bdc4d)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/aac_adtstoasc_bsf.c |    2 +-
+ libavcodec/avs.c               |    2 +-
+ libavcodec/jvdec.c             |    2 +-
+ libavcodec/rv34.c              |    2 +-
+ libavcodec/tta.c               |    2 +-
+ libavformat/movenc.c           |    2 +-
+ 6 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/libavcodec/aac_adtstoasc_bsf.c b/libavcodec/aac_adtstoasc_bsf.c
+index fbb86f8..d1310c4 100644
+--- a/libavcodec/aac_adtstoasc_bsf.c
++++ b/libavcodec/aac_adtstoasc_bsf.c
+@@ -72,7 +72,7 @@ static int aac_adtstoasc_filter(AVBitStreamFilterContext *bsfc,
+         int            pce_size = 0;
+         uint8_t        pce_data[MAX_PCE_SIZE];
+         if (!hdr.chan_config) {
+-            init_get_bits(&gb, buf, buf_size);
++            init_get_bits(&gb, buf, buf_size * 8);
+             if (get_bits(&gb, 3) != 5) {
+                 av_log_missing_feature(avctx, "PCE based channel configuration, where the PCE is not the first syntax element is", 0);
+                 return -1;
+diff --git a/libavcodec/avs.c b/libavcodec/avs.c
+index 1c2682b..1a5e444 100644
+--- a/libavcodec/avs.c
++++ b/libavcodec/avs.c
+@@ -117,7 +117,7 @@ avs_decode_frame(AVCodecContext * avctx,
+     table = buf + (256 * vect_w * vect_h);
+     if (sub_type != AVS_I_FRAME) {
+         int map_size = ((318 / vect_w + 7) / 8) * (198 / vect_h);
+-        init_get_bits(&change_map, table, map_size);
++        init_get_bits(&change_map, table, map_size * 8);
+         table += map_size;
+     }
+ 
+diff --git a/libavcodec/jvdec.c b/libavcodec/jvdec.c
+index 0c34648..5249764 100644
+--- a/libavcodec/jvdec.c
++++ b/libavcodec/jvdec.c
+@@ -150,7 +150,7 @@ static int decode_frame(AVCodecContext *avctx,
+ 
+         if (video_type == 0 || video_type == 1) {
+             GetBitContext gb;
+-            init_get_bits(&gb, buf, FFMIN(video_size, buf_end - buf));
++            init_get_bits(&gb, buf, FFMIN(video_size, (buf_end - buf) * 8));
+ 
+             for (j = 0; j < avctx->height; j += 8)
+                 for (i = 0; i < avctx->width; i += 8)
+diff --git a/libavcodec/rv34.c b/libavcodec/rv34.c
+index c5dcfdc..910b933 100644
+--- a/libavcodec/rv34.c
++++ b/libavcodec/rv34.c
+@@ -1444,7 +1444,7 @@ int ff_rv34_decode_frame(AVCodecContext *avctx,
+         av_log(avctx, AV_LOG_ERROR, "Slice offset is greater than frame size\n");
+         return -1;
+     }
+-    init_get_bits(&s->gb, buf+get_slice_offset(avctx, slices_hdr, 0), buf_size-get_slice_offset(avctx, slices_hdr, 0));
++    init_get_bits(&s->gb, buf+get_slice_offset(avctx, slices_hdr, 0), (buf_size-get_slice_offset(avctx, slices_hdr, 0))*8);
+     if(r->parse_slice_header(r, &r->s.gb, &si) < 0 || si.start){
+         av_log(avctx, AV_LOG_ERROR, "First slice header is incorrect\n");
+         return -1;
+diff --git a/libavcodec/tta.c b/libavcodec/tta.c
+index 57f5818..fd5aa46 100644
+--- a/libavcodec/tta.c
++++ b/libavcodec/tta.c
+@@ -216,7 +216,7 @@ static av_cold int tta_decode_init(AVCodecContext * avctx)
+     if (avctx->extradata_size < 30)
+         return -1;
+ 
+-    init_get_bits(&s->gb, avctx->extradata, avctx->extradata_size);
++    init_get_bits(&s->gb, avctx->extradata, avctx->extradata_size * 8);
+     if (show_bits_long(&s->gb, 32) == AV_RL32("TTA1"))
+     {
+         /* signature */
+diff --git a/libavformat/movenc.c b/libavformat/movenc.c
+index dcc5581..0cf837c 100644
+--- a/libavformat/movenc.c
++++ b/libavformat/movenc.c
+@@ -206,7 +206,7 @@ static int mov_write_ac3_tag(AVIOContext *pb, MOVTrack *track)
+     avio_wb32(pb, 11);
+     ffio_wfourcc(pb, "dac3");
+ 
+-    init_get_bits(&gbc, track->vosData+4, track->vosLen-4);
++    init_get_bits(&gbc, track->vosData+4, (track->vosLen-4) * 8);
+     fscod      = get_bits(&gbc, 2);
+     frmsizecod = get_bits(&gbc, 6);
+     bsid       = get_bits(&gbc, 5);
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0062-oggdec-fix-out-of-bound-write-in-the-ogg-demuxer.patch b/debian/patches/post-0.7.1/0062-oggdec-fix-out-of-bound-write-in-the-ogg-demuxer.patch
new file mode 100644
index 0000000..c6c5e56
--- /dev/null
+++ b/debian/patches/post-0.7.1/0062-oggdec-fix-out-of-bound-write-in-the-ogg-demuxer.patch
@@ -0,0 +1,50 @@
+From a3d471e500674c31fa4f52a62ef789d5e7fdbd3c Mon Sep 17 00:00:00 2001
+From: Laurent Aimar <fenrir at videolan.org>
+Date: Sun, 11 Sep 2011 23:26:12 +0200
+Subject: [PATCH 62/70] oggdec: fix out of bound write in the ogg demuxer
+
+Between ogg_save() and ogg_restore() calls, the number of streams
+could have been reduced.
+
+Signed-off-by: Luca Barbato <lu_zero at gentoo.org>
+(cherry picked from commit 0e7efb9d23c3641d50caa288818e8c27647ce74d)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavformat/oggdec.c |   14 ++++++++++++--
+ 1 files changed, 12 insertions(+), 2 deletions(-)
+
+diff --git a/libavformat/oggdec.c b/libavformat/oggdec.c
+index 25f5cd8..1820167 100644
+--- a/libavformat/oggdec.c
++++ b/libavformat/oggdec.c
+@@ -92,14 +92,24 @@ static int ogg_restore(AVFormatContext *s, int discard)
+     ogg->state = ost->next;
+ 
+     if (!discard){
++        struct ogg_stream *old_streams = ogg->streams;
++
+         for (i = 0; i < ogg->nstreams; i++)
+             av_free (ogg->streams[i].buf);
+ 
+         avio_seek (bc, ost->pos, SEEK_SET);
+         ogg->curidx = ost->curidx;
+         ogg->nstreams = ost->nstreams;
+-        memcpy(ogg->streams, ost->streams,
+-               ost->nstreams * sizeof(*ogg->streams));
++        ogg->streams = av_realloc (ogg->streams,
++                                   ogg->nstreams * sizeof (*ogg->streams));
++
++        if (ogg->streams) {
++            memcpy(ogg->streams, ost->streams,
++                   ost->nstreams * sizeof(*ogg->streams));
++        } else {
++            av_free(old_streams);
++            ogg->nstreams = 0;
++        }
+     }
+ 
+     av_free (ost);
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0063-lavf-Fix-context-pointer-in-av_open_input_stream-whe.patch b/debian/patches/post-0.7.1/0063-lavf-Fix-context-pointer-in-av_open_input_stream-whe.patch
new file mode 100644
index 0000000..3a104dd
--- /dev/null
+++ b/debian/patches/post-0.7.1/0063-lavf-Fix-context-pointer-in-av_open_input_stream-whe.patch
@@ -0,0 +1,31 @@
+From 9973ca992e8499848b8d5b0b536e709109dc65e2 Mon Sep 17 00:00:00 2001
+From: David Goldwich <david.goldwich at gmail.com>
+Date: Sat, 17 Sep 2011 13:50:35 +0200
+Subject: [PATCH 63/70] lavf: Fix context pointer in av_open_input_stream when avformat_open_input fails
+
+Signed-off-by: David Goldwich <david.goldwich at gmail.com>
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+(cherry picked from commit 63d64228a7f31d534e3bcae87cbd37f4a0ae2dd6)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavformat/utils.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/libavformat/utils.c b/libavformat/utils.c
+index 2cb096e..d9d154e 100644
+--- a/libavformat/utils.c
++++ b/libavformat/utils.c
+@@ -469,8 +469,8 @@ int av_open_input_stream(AVFormatContext **ic_ptr,
+         goto fail;
+     ic->pb = ic->pb ? ic->pb : pb; // don't leak custom pb if it wasn't set above
+ 
+-    *ic_ptr = ic;
+ fail:
++    *ic_ptr = ic;
+     av_dict_free(&opts);
+     return err;
+ }
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0064-rv10-Reject-slices-that-does-not-have-the-same-type-.patch b/debian/patches/post-0.7.1/0064-rv10-Reject-slices-that-does-not-have-the-same-type-.patch
new file mode 100644
index 0000000..3c2270f
--- /dev/null
+++ b/debian/patches/post-0.7.1/0064-rv10-Reject-slices-that-does-not-have-the-same-type-.patch
@@ -0,0 +1,37 @@
+From 28d948ac44e38e8bec2f6268ccf4747ff4d992a9 Mon Sep 17 00:00:00 2001
+From: Laurent Aimar <fenrir at videolan.org>
+Date: Sun, 18 Sep 2011 00:03:08 +0200
+Subject: [PATCH 64/70] rv10: Reject slices that does not have the same type as the first one
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This prevents crashes with some corrupted bitstreams.
+
+Signed-off-by: Martin Storsjö <martin at martin.st>
+(cherry picked from commit 4a29b471869353c3077fb4b25b6518eb1047afb7)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/rv10.c |    5 +++++
+ 1 files changed, 5 insertions(+), 0 deletions(-)
+
+diff --git a/libavcodec/rv10.c b/libavcodec/rv10.c
+index 78f97b1..223500c 100644
+--- a/libavcodec/rv10.c
++++ b/libavcodec/rv10.c
+@@ -543,6 +543,11 @@ static int rv10_decode_packet(AVCodecContext *avctx,
+         if(MPV_frame_start(s, avctx) < 0)
+             return -1;
+         ff_er_frame_start(s);
++    } else {
++        if (s->current_picture_ptr->pict_type != s->pict_type) {
++            av_log(s->avctx, AV_LOG_ERROR, "Slice type mismatch\n");
++            return -1;
++        }
+     }
+ 
+     av_dlog(avctx, "qscale=%d\n", s->qscale);
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0065-rv34-Avoid-NULL-dereference-on-corrupted-bitstream.patch b/debian/patches/post-0.7.1/0065-rv34-Avoid-NULL-dereference-on-corrupted-bitstream.patch
new file mode 100644
index 0000000..6064a37
--- /dev/null
+++ b/debian/patches/post-0.7.1/0065-rv34-Avoid-NULL-dereference-on-corrupted-bitstream.patch
@@ -0,0 +1,34 @@
+From f0bcba238a540793adc514fb84e74282b04d2418 Mon Sep 17 00:00:00 2001
+From: Laurent Aimar <fenrir at videolan.org>
+Date: Sat, 17 Sep 2011 23:43:58 +0200
+Subject: [PATCH 65/70] rv34: Avoid NULL dereference on corrupted bitstream
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+rv34_decode_slice() can return without allocating any pictures.
+
+Signed-off-by: Martin Storsjö <martin at martin.st>
+(cherry picked from commit d0f6ab0298f2309c6104626787ed73416298b019)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/rv34.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/libavcodec/rv34.c b/libavcodec/rv34.c
+index 910b933..2383903 100644
+--- a/libavcodec/rv34.c
++++ b/libavcodec/rv34.c
+@@ -1486,7 +1486,7 @@ int ff_rv34_decode_frame(AVCodecContext *avctx,
+             break;
+     }
+ 
+-    if(last){
++    if(last && s->current_picture_ptr){
+         if(r->loop_filter)
+             r->loop_filter(r, s->mb_height - 1);
+         ff_er_frame_end(s);
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0066-rv34-Fix-potential-overreads.patch b/debian/patches/post-0.7.1/0066-rv34-Fix-potential-overreads.patch
new file mode 100644
index 0000000..18af6bf
--- /dev/null
+++ b/debian/patches/post-0.7.1/0066-rv34-Fix-potential-overreads.patch
@@ -0,0 +1,49 @@
+From b4a1bf0bbf53cc6a736a608732b2ac1de5c2447b Mon Sep 17 00:00:00 2001
+From: Laurent Aimar <fenrir at videolan.org>
+Date: Sat, 17 Sep 2011 16:56:30 +0200
+Subject: [PATCH 66/70] rv34: Fix potential overreads
+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 b4ed3d78cb6c41c9d3ee5918c326ab925edd6a89)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/rv34.c |    5 +++--
+ 1 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/libavcodec/rv34.c b/libavcodec/rv34.c
+index 2383903..87fca5c 100644
+--- a/libavcodec/rv34.c
++++ b/libavcodec/rv34.c
+@@ -1436,6 +1436,7 @@ int ff_rv34_decode_frame(AVCodecContext *avctx,
+         slice_count = (*buf++) + 1;
+         slices_hdr = buf + 4;
+         buf += 8 * slice_count;
++        buf_size -= 1 + 8 * slice_count;
+     }else
+         slice_count = avctx->slice_count;
+ 
+@@ -1454,7 +1455,7 @@ int ff_rv34_decode_frame(AVCodecContext *avctx,
+     if(   (avctx->skip_frame >= AVDISCARD_NONREF && si.type==AV_PICTURE_TYPE_B)
+        || (avctx->skip_frame >= AVDISCARD_NONKEY && si.type!=AV_PICTURE_TYPE_I)
+        ||  avctx->skip_frame >= AVDISCARD_ALL)
+-        return buf_size;
++        return avpkt->size;
+ 
+     for(i=0; i<slice_count; i++){
+         int offset= get_slice_offset(avctx, slices_hdr, i);
+@@ -1503,7 +1504,7 @@ int ff_rv34_decode_frame(AVCodecContext *avctx,
+         }
+         s->current_picture_ptr= NULL; //so we can detect if frame_end wasnt called (find some nicer solution...)
+     }
+-    return buf_size;
++    return avpkt->size;
+ }
+ 
+ av_cold int ff_rv34_decode_end(AVCodecContext *avctx)
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0067-rv34-Check-for-invalid-slice-offsets.patch b/debian/patches/post-0.7.1/0067-rv34-Check-for-invalid-slice-offsets.patch
new file mode 100644
index 0000000..d55d271
--- /dev/null
+++ b/debian/patches/post-0.7.1/0067-rv34-Check-for-invalid-slice-offsets.patch
@@ -0,0 +1,46 @@
+From 2bbb142a140173e1870017b66c439f4d430a6f67 Mon Sep 17 00:00:00 2001
+From: Laurent Aimar <fenrir at videolan.org>
+Date: Mon, 19 Sep 2011 22:48:53 +0200
+Subject: [PATCH 67/70] rv34: Check for invalid slice offsets
+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 4cc7732386eb36661ed22d1200339b38a5fa60bc)
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavcodec/rv34.c |    9 +++++----
+ 1 files changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/libavcodec/rv34.c b/libavcodec/rv34.c
+index 87fca5c..70c35ef 100644
+--- a/libavcodec/rv34.c
++++ b/libavcodec/rv34.c
+@@ -1441,8 +1441,9 @@ int ff_rv34_decode_frame(AVCodecContext *avctx,
+         slice_count = avctx->slice_count;
+ 
+     //parse first slice header to check whether this frame can be decoded
+-    if(get_slice_offset(avctx, slices_hdr, 0) > buf_size){
+-        av_log(avctx, AV_LOG_ERROR, "Slice offset is greater than frame size\n");
++    if(get_slice_offset(avctx, slices_hdr, 0) < 0 ||
++       get_slice_offset(avctx, slices_hdr, 0) > buf_size){
++        av_log(avctx, AV_LOG_ERROR, "Slice offset is invalid\n");
+         return -1;
+     }
+     init_get_bits(&s->gb, buf+get_slice_offset(avctx, slices_hdr, 0), (buf_size-get_slice_offset(avctx, slices_hdr, 0))*8);
+@@ -1465,8 +1466,8 @@ int ff_rv34_decode_frame(AVCodecContext *avctx,
+         else
+             size= get_slice_offset(avctx, slices_hdr, i+1) - offset;
+ 
+-        if(offset > buf_size){
+-            av_log(avctx, AV_LOG_ERROR, "Slice offset is greater than frame size\n");
++        if(offset < 0 || offset > buf_size || size < 0){
++            av_log(avctx, AV_LOG_ERROR, "Slice offset is invalid\n");
+             break;
+         }
+ 
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0068-ppc-fix-32-bit-PIC-build.patch b/debian/patches/post-0.7.1/0068-ppc-fix-32-bit-PIC-build.patch
new file mode 100644
index 0000000..e799e3d
--- /dev/null
+++ b/debian/patches/post-0.7.1/0068-ppc-fix-32-bit-PIC-build.patch
@@ -0,0 +1,101 @@
+From ecda54a640a7de55274ad2a86d58d0b483097aac Mon Sep 17 00:00:00 2001
+From: Mans Rullgard <mans at mansr.com>
+Date: Sun, 25 Sep 2011 12:53:44 +0100
+Subject: [PATCH 68/70] ppc: fix 32-bit PIC build
+
+On 32-bit ppc, the GOT pointer must be loaded manually.
+This adds a "get_got" assembler macro to compute the
+GOT address.  The "movrel" macro is updated to take an
+additional parameter containing the GOT address since
+no register is reserved for this purpose on ppc32.
+These changes have no effect on ppc64 builds.
+
+Signed-off-by: Mans Rullgard <mans at mansr.com>
+(cherry picked from commit 6e4a35ced96cdf31a9d3bd82fd147554750af839)
+
+Signed-off-by: Reinhard Tartler <siretart at tauware.de>
+---
+ libavcodec/ppc/asm.S           |   19 ++++++++++++++++---
+ libavcodec/ppc/fft_altivec_s.S |    7 ++++---
+ 2 files changed, 20 insertions(+), 6 deletions(-)
+
+diff --git a/libavcodec/ppc/asm.S b/libavcodec/ppc/asm.S
+index 5cbbf97..4d4285b 100644
+--- a/libavcodec/ppc/asm.S
++++ b/libavcodec/ppc/asm.S
+@@ -44,10 +44,13 @@ X(\name):
+ L(\name):
+ .endm
+ 
+-.macro movrel rd, sym
++.macro movrel rd, sym, gp
+     ld      \rd, \sym at got(r2)
+ .endm
+ 
++.macro get_got rd
++.endm
++
+ #else /* ARCH_PPC64 */
+ 
+ #define PTR  .int
+@@ -65,15 +68,25 @@ X(\name):
+ \name:
+ .endm
+ 
+-.macro movrel rd, sym
++.macro movrel rd, sym, gp
+ #if CONFIG_PIC
+-    lwz     \rd, \sym at got(r2)
++    lwz     \rd, \sym at got(\gp)
+ #else
+     lis     \rd, \sym at ha
+     la      \rd, \sym at l(\rd)
+ #endif
+ .endm
+ 
++.macro get_got rd
++#if CONFIG_PIC
++    bcl     20, 31, .Lgot\@
++.Lgot\@:
++    mflr    \rd
++    addis   \rd, \rd, _GLOBAL_OFFSET_TABLE_ - .Lgot\@@ha
++    addi    \rd, \rd, _GLOBAL_OFFSET_TABLE_ - .Lgot\@@l
++#endif
++.endm
++
+ #endif /* ARCH_PPC64 */
+ 
+ #if HAVE_IBM_ASM
+diff --git a/libavcodec/ppc/fft_altivec_s.S b/libavcodec/ppc/fft_altivec_s.S
+index ab33900..958d7df 100644
+--- a/libavcodec/ppc/fft_altivec_s.S
++++ b/libavcodec/ppc/fft_altivec_s.S
+@@ -353,6 +353,7 @@ extfunc ff_fft_calc\interleave\()_altivec
+     mflr    r0
+     stp     r0, 2*PS(r1)
+     stpu    r1, -(160+16*PS)(r1)
++    get_got r11
+     addi    r6, r1, 16*PS
+     stvm    r6, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29
+     mfvrsave r0
+@@ -360,14 +361,14 @@ extfunc ff_fft_calc\interleave\()_altivec
+     li      r6, 0xfffffffc
+     mtvrsave r6
+ 
+-    movrel  r6, fft_data
++    movrel  r6, fft_data, r11
+     lvm     r6, v14, v15, v16, v17, v18, v19, v20, v21
+     lvm     r6, v22, v23, v24, v25, v26, v27, v28, v29
+ 
+     li      r9, 16
+-    movrel  r12, X(ff_cos_tabs)
++    movrel  r12, X(ff_cos_tabs), r11
+ 
+-    movrel  r6, fft_dispatch_tab\interleave\()_altivec
++    movrel  r6, fft_dispatch_tab\interleave\()_altivec, r11
+     lwz     r3, 0(r3)
+     subi    r3, r3, 2
+     slwi    r3, r3, 2+ARCH_PPC64
+-- 
+1.7.4.1
+
diff --git a/debian/patches/post-0.7.1/0069-ppc-fix-some-pointer-to-integer-casts.patch b/debian/patches/post-0.7.1/0069-ppc-fix-some-pointer-to-integer-casts.patch
new file mode 100644
index 0000000..d699644
--- /dev/null
+++ b/debian/patches/post-0.7.1/0069-ppc-fix-some-pointer-to-integer-casts.patch
@@ -0,0 +1,67 @@
+From dde0fb4aeaf855fc38fb002c23dbbeba06407a09 Mon Sep 17 00:00:00 2001
+From: Mans Rullgard <mans at mansr.com>
+Date: Sun, 25 Sep 2011 18:27:47 +0100
+Subject: [PATCH 69/70] ppc: fix some pointer to integer casts
+
+Use uintptr_t instead of plain int.  Without this change, the
+comparisons will come out wrong for pointers in certain ranges.
+Fixes random failures on ppc64.  Also fixes some compiler warnings.
+
+Signed-off-by: Mans Rullgard <mans at mansr.com>
+(cherry picked from commit d853e571ad5e7e12c6a68cfde390daced7d85fbb)
+
+Signed-off-by: Reinhard Tartler <siretart at tauware.de>
+---
+ libswscale/ppc/swscale_altivec.c |   10 +++++-----
+ 1 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/libswscale/ppc/swscale_altivec.c b/libswscale/ppc/swscale_altivec.c
+index 42e965d..4476e1c 100644
+--- a/libswscale/ppc/swscale_altivec.c
++++ b/libswscale/ppc/swscale_altivec.c
+@@ -36,13 +36,13 @@ altivec_packIntArrayToCharArray(int *val, uint8_t* dest, int dstW)
+     register int i;
+     vector unsigned int altivec_vectorShiftInt19 =
+         vec_add(vec_splat_u32(10), vec_splat_u32(9));
+-    if ((unsigned int)dest % 16) {
++    if ((uintptr_t)dest % 16) {
+         /* badly aligned store, we force store alignment */
+         /* and will handle load misalignment on val w/ vec_perm */
+         vector unsigned char perm1;
+         vector signed int v1;
+         for (i = 0 ; (i < dstW) &&
+-            (((unsigned int)dest + i) % 16) ; i++) {
++            (((uintptr_t)dest + i) % 16) ; i++) {
+                 int t = val[i] >> 19;
+                 dest[i] = (t < 0) ? 0 : ((t > 255) ? 255 : t);
+         }
+@@ -251,7 +251,7 @@ static void hScale_altivec_real(int16_t *dst, int dstW,
+         vector unsigned char src_v1, src_vF;
+         vector signed short src_v, filter_v;
+         vector signed int val_vEven, val_s;
+-        if ((((int)src + srcPos)% 16) > 12) {
++        if ((((uintptr_t)src + srcPos) % 16) > 12) {
+             src_v1 = vec_ld(srcPos + 16, src);
+         }
+         src_vF = vec_perm(src_v0, src_v1, vec_lvsl(srcPos, src));
+@@ -290,7 +290,7 @@ static void hScale_altivec_real(int16_t *dst, int dstW,
+         vector unsigned char src_v1, src_vF;
+         vector signed short src_v, filter_v;
+         vector signed int val_v, val_s;
+-        if ((((int)src + srcPos)% 16) > 8) {
++        if ((((uintptr_t)src + srcPos) % 16) > 8) {
+             src_v1 = vec_ld(srcPos + 16, src);
+         }
+         src_vF = vec_perm(src_v0, src_v1, vec_lvsl(srcPos, src));
+@@ -376,7 +376,7 @@ static void hScale_altivec_real(int16_t *dst, int dstW,
+             //vector unsigned char src_v0 = vec_ld(srcPos + j, src);
+             vector unsigned char src_v1, src_vF;
+             vector signed short src_v, filter_v1R, filter_v;
+-            if ((((int)src + srcPos)% 16) > 8) {
++            if ((((uintptr_t)src + srcPos) % 16) > 8) {
+                 src_v1 = vec_ld(srcPos + j + 16, src);
+             }
+             src_vF = vec_perm(src_v0, src_v1, permS);
+-- 
+1.7.4.1
+
diff --git a/debian/patches/series b/debian/patches/series
index 905347b..70c43fb 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -3,6 +3,70 @@ post-0.7.1/0002-jpegdec-actually-search-for-and-parse-RSTn.patch
 post-0.7.1/0003-cavs-fix-some-crashes-with-invalid-bitstreams.patch
 post-0.7.1/0004-configure-add-missing-CFLAGS-to-fix-building-on-the-.patch
 post-0.7.1/0005-postprocess.c-filter-name-needs-to-be-double-0-termi.patch
+post-0.7.1/0006-swscale-don-t-use-planar-output-functions-to-write-t.patch
+post-0.7.1/0007-H.264-fix-overreads-of-qscale_table.patch
+post-0.7.1/0008-dca-set-AVCodecContext-frame_size-for-DTS-audio.patch
+post-0.7.1/0009-mxfenc-fix-ignored-drop-flag-in-binary-timecode-repr.patch
+post-0.7.1/0010-ARM-workaround-for-bug-in-GNU-assembler.patch
+post-0.7.1/0011-eval-fix-memleak.patch
+post-0.7.1/0012-adts-Fix-PCE-copying.patch
+post-0.7.1/0013-Revert-ffmpeg-get-rid-of-useless-AVInputStream.nb_st.patch
+post-0.7.1/0014-gxf-Fix-25-fps-DV-material-in-GXF-being-misdetected-.patch
+post-0.7.1/0015-alsa-fallback-to-buffer_size-4-for-period_size.patch
+post-0.7.1/0016-alsa-limit-buffer_size-to-32768-frames.patch
+post-0.7.1/0017-mpegts-fix-Continuity-Counter-error-detection.patch
+post-0.7.1/0018-pix_fmt-Fix-number-of-bits-per-component-in-yuv444p9.patch
+post-0.7.1/0019-lavf-fix-segfault-in-av_open_input_stream.patch
+post-0.7.1/0020-aacps-skip-some-memcpy-if-src-and-dst-would-be-equal.patch
+post-0.7.1/0021-Do-not-decode-RV30-files-if-the-extradata-is-too-sma.patch
+post-0.7.1/0022-Fix-incorrect-max_lowres-values.patch
+post-0.7.1/0023-rv30-return-AVERROR-EINVAL-instead-of-EINVAL.patch
+post-0.7.1/0024-vp3-theora-flush-after-seek.patch
+post-0.7.1/0025-mxfdec-Include-FF_INPUT_BUFFER_PADDING_SIZE-when-all.patch
+post-0.7.1/0026-aac-Remove-some-suspicious-illegal-memcpy-s-from-LTP.patch
+post-0.7.1/0027-libx264-do-not-set-pic-quality-if-no-frame-is-output.patch
+post-0.7.1/0028-Remove-incorrect-info-in-documentation-of-AVCodecCon.patch
+post-0.7.1/0029-h264-notice-memory-allocation-failure.patch
+post-0.7.1/0030-VC-1-fix-reading-of-custom-PAR.patch
+post-0.7.1/0031-flvenc-use-int64_t-to-store-offsets.patch
+post-0.7.1/0032-rv10-20-tell-decoder-to-use-edge-emulation.patch
+post-0.7.1/0033-aac-Only-output-configure-if-audio-was-found.patch
+post-0.7.1/0034-h264-correct-the-check-for-invalid-long-term-frame-i.patch
+post-0.7.1/0035-h264-correct-implicit-weight-table-computation-for-l.patch
+post-0.7.1/0036-h264-fix-PCM-intra-coded-blocks-in-monochrome-case.patch
+post-0.7.1/0037-vc1-properly-zero-coded_block-edges-on-new-slice-ent.patch
+post-0.7.1/0038-VC1-Fix-first-last-row-checks-with-slices.patch
+post-0.7.1/0039-vf_scale-don-t-leak-SWS-context.patch
+post-0.7.1/0040-cpu-detection-avoid-a-signed-overflow.patch
+post-0.7.1/0041-AVOptions-fix-av_set_string3-doxy-to-match-reality.patch
+post-0.7.1/0042-lavc-fix-type-for-thread_type-option.patch
+post-0.7.1/0043-Fixed-invalid-access-in-wavpack-decoder-on-corrupted.patch
+post-0.7.1/0044-Fixed-invalid-writes-in-wavpack-decoder-on-corrupted.patch
+post-0.7.1/0045-Fixed-invalid-access-in-wavpack-decoder-on-corrupted.patch
+post-0.7.1/0046-wavpack-Check-error-codes-rather-than-working-around.patch
+post-0.7.1/0047-ffv1-Fixed-size-given-to-init_get_bits-in-decoder.patch
+post-0.7.1/0048-indeo2-init_get_bits-size-in-bits-instead-of-bytes.patch
+post-0.7.1/0049-indeo2-fail-if-input-buffer-too-small.patch
+post-0.7.1/0050-cljr-init_get_bits-size-in-bits-instead-of-bytes.patch
+post-0.7.1/0051-Fixed-segfault-with-wavpack-decoder-on-corrupted-dec.patch
+post-0.7.1/0052-smacker-demuxer-handle-possible-av_realloc-failure.patch
+post-0.7.1/0053-Fixed-size-given-to-init_get_bits-in-xan-decoder.patch
+post-0.7.1/0054-xan-Add-some-buffer-checks.patch
+post-0.7.1/0055-ape-demuxer-fix-segfault-on-memory-allocation-failur.patch
+post-0.7.1/0056-Check-for-invalid-packet-size-in-the-smacker-demuxer.patch
+post-0.7.1/0057-Fixed-off-by-one-packet-size-allocation-in-the-smack.patch
+post-0.7.1/0058-Check-and-propagate-errors-when-VLC-trees-cannot-be-.patch
+post-0.7.1/0059-Check-for-invalid-VLC-value-in-smacker-decoder.patch
+post-0.7.1/0060-smacker-fix-a-few-off-by-1-errors.patch
+post-0.7.1/0061-Fixed-size-given-to-init_get_bits.patch
+post-0.7.1/0062-oggdec-fix-out-of-bound-write-in-the-ogg-demuxer.patch
+post-0.7.1/0063-lavf-Fix-context-pointer-in-av_open_input_stream-whe.patch
+post-0.7.1/0064-rv10-Reject-slices-that-does-not-have-the-same-type-.patch
+post-0.7.1/0065-rv34-Avoid-NULL-dereference-on-corrupted-bitstream.patch
+post-0.7.1/0066-rv34-Fix-potential-overreads.patch
+post-0.7.1/0067-rv34-Check-for-invalid-slice-offsets.patch
+post-0.7.1/0068-ppc-fix-32-bit-PIC-build.patch
+post-0.7.1/0069-ppc-fix-some-pointer-to-integer-casts.patch
 
 01-Tweak-doxygen-config.patch
 02-make-MAP_ANONYMOUS_AVAILABLE.patch

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list