[SCM] libav/master: Add post-release upstream patches

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sat Sep 13 12:15:23 UTC 2014


The following commit has been merged in the master branch:
commit c73fcfa8f21b9dab9bd7496faaa46370f8911f72
Author: Reinhard Tartler <siretart at tauware.de>
Date:   Sat Sep 13 07:46:18 2014 -0400

    Add post-release upstream patches
    
    These patches are part of the upstream release/11 branch, and will be
    part of the final libav11 release.
    
    Please revert this commit when merging the next (and hopefully final)
    release/11 tarball.

diff --git a/debian/patches/post-release/0001-tiff-Return-proper-error-for-missing-LZMA-compressio.patch b/debian/patches/post-release/0001-tiff-Return-proper-error-for-missing-LZMA-compressio.patch
new file mode 100644
index 0000000..20b8f93
--- /dev/null
+++ b/debian/patches/post-release/0001-tiff-Return-proper-error-for-missing-LZMA-compressio.patch
@@ -0,0 +1,49 @@
+From 12640e4cbb142be0cd025bcf37f1ea437bdfecd0 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Diego=20Elio=20Petten=C3=B2?= <flameeyes at flameeyes.eu>
+Date: Mon, 18 Aug 2014 09:27:49 +0100
+Subject: [PATCH 01/37] tiff: Return proper error for missing LZMA compression
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The LZMA support is a semi-official extension supported by libtiff 4.0.0
+and later.
+
+Signed-off-by: Diego Elio Pettenò <flameeyes at flameeyes.eu>
+Signed-off-by: Luca Barbato <lu_zero at gentoo.org>
+---
+ libavcodec/tiff.c | 3 +++
+ libavcodec/tiff.h | 3 ++-
+ 2 files changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/libavcodec/tiff.c b/libavcodec/tiff.c
+index ca5ec75..3b2fc7d 100644
+--- a/libavcodec/tiff.c
++++ b/libavcodec/tiff.c
+@@ -408,6 +408,9 @@ static int tiff_decode_tag(TiffContext *s)
+         case TIFF_NEWJPEG:
+             avpriv_report_missing_feature(s->avctx, "JPEG compression");
+             return AVERROR_PATCHWELCOME;
++        case TIFF_LZMA:
++            avpriv_report_missing_feature(s->avctx, "LZMA compression");
++            return AVERROR_PATCHWELCOME;
+         default:
+             av_log(s->avctx, AV_LOG_ERROR, "Unknown compression method %i\n",
+                    s->compr);
+diff --git a/libavcodec/tiff.h b/libavcodec/tiff.h
+index 8a3f7f7..68ac695 100644
+--- a/libavcodec/tiff.h
++++ b/libavcodec/tiff.h
+@@ -71,7 +71,8 @@ enum TiffCompr {
+     TIFF_NEWJPEG,
+     TIFF_ADOBE_DEFLATE,
+     TIFF_PACKBITS = 0x8005,
+-    TIFF_DEFLATE  = 0x80B2
++    TIFF_DEFLATE  = 0x80B2,
++    TIFF_LZMA     = 0x886D,
+ };
+ 
+ enum TiffTypes {
+-- 
+1.9.1
+
diff --git a/debian/patches/post-release/0002-proresenc-Remove-unneeded-parameters-from-encode_alp.patch b/debian/patches/post-release/0002-proresenc-Remove-unneeded-parameters-from-encode_alp.patch
new file mode 100644
index 0000000..2e795a1
--- /dev/null
+++ b/debian/patches/post-release/0002-proresenc-Remove-unneeded-parameters-from-encode_alp.patch
@@ -0,0 +1,39 @@
+From b16699f2da9c1d41eff852ec3a0c81f74fd44421 Mon Sep 17 00:00:00 2001
+From: Christophe Gisquet <christophe.gisquet at gmail.com>
+Date: Mon, 18 Aug 2014 14:15:21 +0000
+Subject: [PATCH 02/37] proresenc: Remove unneeded parameters from
+ encode_alpha_plane()
+
+Signed-off-by: Diego Biurrun <diego at biurrun.de>
+Signed-off-by: Luca Barbato <lu_zero at gentoo.org>
+---
+ libavcodec/proresenc.c | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/libavcodec/proresenc.c b/libavcodec/proresenc.c
+index bdb826c..6acaede 100644
+--- a/libavcodec/proresenc.c
++++ b/libavcodec/proresenc.c
+@@ -468,7 +468,6 @@ static void put_alpha_run(PutBitContext *pb, int run)
+ 
+ // todo alpha quantisation for high quants
+ static int encode_alpha_plane(ProresContext *ctx, PutBitContext *pb,
+-                              const uint16_t *src, int linesize,
+                               int mbs_per_slice, uint16_t *blocks,
+                               int quant)
+ {
+@@ -563,9 +562,8 @@ static int encode_slice(AVCodecContext *avctx, const AVFrame *pic,
+             get_alpha_data(ctx, src, linesize, xp, yp,
+                            pwidth, avctx->height / ctx->pictures_per_frame,
+                            ctx->blocks[0], mbs_per_slice, ctx->alpha_bits);
+-            sizes[i] = encode_alpha_plane(ctx, pb, src, linesize,
+-                                          mbs_per_slice, ctx->blocks[0],
+-                                          quant);
++            sizes[i] = encode_alpha_plane(ctx, pb, mbs_per_slice,
++                                          ctx->blocks[0], quant);
+         }
+         total_size += sizes[i];
+     }
+-- 
+1.9.1
+
diff --git a/debian/patches/post-release/0003-proresenc-Report-buffer-overflow.patch b/debian/patches/post-release/0003-proresenc-Report-buffer-overflow.patch
new file mode 100644
index 0000000..bf49735
--- /dev/null
+++ b/debian/patches/post-release/0003-proresenc-Report-buffer-overflow.patch
@@ -0,0 +1,59 @@
+From 58b68e4fdea22e22178e237bda950b09cc6f363a Mon Sep 17 00:00:00 2001
+From: Christophe Gisquet <christophe.gisquet at gmail.com>
+Date: Mon, 18 Aug 2014 14:15:22 +0000
+Subject: [PATCH 03/37] proresenc: Report buffer overflow
+
+If the allocated size, despite best efforts, is too small, exit
+with the appropriate error.
+
+CC: libav-stable at libav.org
+
+Signed-off-by: Diego Biurrun <diego at biurrun.de>
+Signed-off-by: Luca Barbato <lu_zero at gentoo.org>
+---
+ libavcodec/proresenc.c | 14 +++++++++++---
+ 1 file changed, 11 insertions(+), 3 deletions(-)
+
+diff --git a/libavcodec/proresenc.c b/libavcodec/proresenc.c
+index 6acaede..2ac9792 100644
+--- a/libavcodec/proresenc.c
++++ b/libavcodec/proresenc.c
+@@ -566,6 +566,11 @@ static int encode_slice(AVCodecContext *avctx, const AVFrame *pic,
+                                           ctx->blocks[0], quant);
+         }
+         total_size += sizes[i];
++        if (put_bits_left(pb) < 0) {
++            av_log(avctx, AV_LOG_ERROR,
++                   "Underestimated required buffer size.\n");
++            return AVERROR_BUG;
++        }
+     }
+     return total_size;
+ }
+@@ -936,9 +941,9 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt,
+     avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
+     avctx->coded_frame->key_frame = 1;
+ 
+-    pkt_size = ctx->frame_size_upper_bound + FF_MIN_BUFFER_SIZE;
++    pkt_size = ctx->frame_size_upper_bound;
+ 
+-    if ((ret = ff_alloc_packet(pkt, pkt_size)) < 0) {
++    if ((ret = ff_alloc_packet(pkt, pkt_size + FF_MIN_BUFFER_SIZE)) < 0) {
+         av_log(avctx, AV_LOG_ERROR, "Error getting output packet.\n");
+         return ret;
+     }
+@@ -1017,7 +1022,10 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt,
+                 slice_hdr = buf;
+                 buf += slice_hdr_size - 1;
+                 init_put_bits(&pb, buf, (pkt_size - (buf - orig_buf)) * 8);
+-                encode_slice(avctx, pic, &pb, sizes, x, y, q, mbs_per_slice);
++                ret = encode_slice(avctx, pic, &pb, sizes, x, y, q,
++                                   mbs_per_slice);
++                if (ret < 0)
++                    return ret;
+ 
+                 bytestream_put_byte(&slice_hdr, q);
+                 slice_size = slice_hdr_size + sizes[ctx->num_planes - 1];
+-- 
+1.9.1
+
diff --git a/debian/patches/post-release/0004-proresenc-Realloc-if-buffer-is-too-small.patch b/debian/patches/post-release/0004-proresenc-Realloc-if-buffer-is-too-small.patch
new file mode 100644
index 0000000..1936624
--- /dev/null
+++ b/debian/patches/post-release/0004-proresenc-Realloc-if-buffer-is-too-small.patch
@@ -0,0 +1,93 @@
+From 45ce880a9b3e50cfa088f111dffaf8685bd7bc6b Mon Sep 17 00:00:00 2001
+From: Christophe Gisquet <christophe.gisquet at gmail.com>
+Date: Mon, 18 Aug 2014 14:15:23 +0000
+Subject: [PATCH 04/37] proresenc: Realloc if buffer is too small
+
+The buffer allocation may be incorrect (e.g. with an alpha plane),
+and currently causes the buffer to be set to NULL by init_put_bits,
+causing a crash later on.
+
+So, detect that situation, and if detected, reallocate the buffer
+and ask for a sample that shows the problem.
+
+CC: libav-stable at libav.org
+
+Signed-off-by: Diego Biurrun <diego at biurrun.de>
+Signed-off-by: Luca Barbato <lu_zero at gentoo.org>
+---
+ libavcodec/proresenc.c | 38 +++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 37 insertions(+), 1 deletion(-)
+
+diff --git a/libavcodec/proresenc.c b/libavcodec/proresenc.c
+index 2ac9792..262f0ba 100644
+--- a/libavcodec/proresenc.c
++++ b/libavcodec/proresenc.c
+@@ -206,6 +206,7 @@ typedef struct ProresContext {
+     int bits_per_mb;
+     int force_quant;
+     int alpha_bits;
++    int warn;
+ 
+     char *vendor;
+     int quant_sel;
+@@ -934,7 +935,7 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt,
+     int sizes[4] = { 0 };
+     int slice_hdr_size = 2 + 2 * (ctx->num_planes - 1);
+     int frame_size, picture_size, slice_size;
+-    int pkt_size, ret;
++    int pkt_size, ret, max_slice_size = 0;
+     uint8_t frame_flags;
+ 
+     *avctx->coded_frame           = *pic;
+@@ -1021,6 +1022,39 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt,
+                 bytestream_put_byte(&buf, slice_hdr_size << 3);
+                 slice_hdr = buf;
+                 buf += slice_hdr_size - 1;
++                if (pkt_size <= buf - orig_buf + 2 * max_slice_size) {
++                    uint8_t *start = pkt->data;
++                    // Recompute new size according to max_slice_size
++                    // and deduce delta
++                    int delta = 200 + ctx->pictures_per_frame *
++                                ctx->slices_per_picture * max_slice_size -
++                                pkt_size;
++
++                    delta = FFMAX(delta, 2 * max_slice_size);
++                    ctx->frame_size_upper_bound += delta;
++
++                    if (!ctx->warn) {
++                        avpriv_request_sample(avctx,
++                                              "Packet too small: is %i,"
++                                              " needs %i (slice: %i). "
++                                              "Correct allocation",
++                                              pkt_size, delta, max_slice_size);
++                        ctx->warn = 1;
++                    }
++
++                    ret = av_grow_packet(pkt, delta);
++                    if (ret < 0)
++                        return ret;
++
++                    pkt_size += delta;
++                    // restore pointers
++                    orig_buf         = pkt->data + (orig_buf         - start);
++                    buf              = pkt->data + (buf              - start);
++                    picture_size_pos = pkt->data + (picture_size_pos - start);
++                    slice_sizes      = pkt->data + (slice_sizes      - start);
++                    slice_hdr        = pkt->data + (slice_hdr        - start);
++                    tmp              = pkt->data + (tmp              - start);
++                }
+                 init_put_bits(&pb, buf, (pkt_size - (buf - orig_buf)) * 8);
+                 ret = encode_slice(avctx, pic, &pb, sizes, x, y, q,
+                                    mbs_per_slice);
+@@ -1035,6 +1069,8 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt,
+                 }
+                 bytestream_put_be16(&slice_sizes, slice_size);
+                 buf += slice_size - slice_hdr_size;
++                if (max_slice_size < slice_size)
++                    max_slice_size = slice_size;
+             }
+         }
+ 
+-- 
+1.9.1
+
diff --git a/debian/patches/post-release/0005-proresenc-Properly-account-for-alpha-plane.patch b/debian/patches/post-release/0005-proresenc-Properly-account-for-alpha-plane.patch
new file mode 100644
index 0000000..643b2a5
--- /dev/null
+++ b/debian/patches/post-release/0005-proresenc-Properly-account-for-alpha-plane.patch
@@ -0,0 +1,47 @@
+From 41e1354c101004ccd46dc08d3dd6e956e83a6b51 Mon Sep 17 00:00:00 2001
+From: Christophe Gisquet <christophe.gisquet at gmail.com>
+Date: Mon, 18 Aug 2014 14:15:24 +0000
+Subject: [PATCH 05/37] proresenc: Properly account for alpha plane
+
+The packet buffer allocation considers the alpha channel as DCT-coded,
+while it is actually run-coded and thus requires a larger buffer.
+
+CC: libav-stable at libav.org
+
+Signed-off-by: Diego Biurrun <diego at biurrun.de>
+Signed-off-by: Luca Barbato <lu_zero at gentoo.org>
+---
+ libavcodec/proresenc.c | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/libavcodec/proresenc.c b/libavcodec/proresenc.c
+index 262f0ba..3a82c2c 100644
+--- a/libavcodec/proresenc.c
++++ b/libavcodec/proresenc.c
+@@ -1246,8 +1246,6 @@ static av_cold int encode_init(AVCodecContext *avctx)
+         ctx->bits_per_mb = ls * 8;
+         if (ctx->chroma_factor == CFACTOR_Y444)
+             ctx->bits_per_mb += ls * 4;
+-        if (ctx->num_planes == 4)
+-            ctx->bits_per_mb += ls * 4;
+     }
+ 
+     ctx->frame_size_upper_bound = ctx->pictures_per_frame *
+@@ -1256,6 +1254,14 @@ static av_cold int encode_init(AVCodecContext *avctx)
+                                    (mps * ctx->bits_per_mb) / 8)
+                                   + 200;
+ 
++    if (ctx->alpha_bits) {
++         // The alpha plane is run-coded and might exceed the bit budget.
++         ctx->frame_size_upper_bound += ctx->pictures_per_frame *
++                                        ctx->slices_per_picture *
++         /* num pixels per slice */     (ctx->mbs_per_slice * 256 *
++         /* bits per pixel */            (1 + ctx->alpha_bits + 1) + 7 >> 3);
++    }
++
+     avctx->codec_tag   = ctx->profile_info->tag;
+ 
+     av_log(avctx, AV_LOG_DEBUG,
+-- 
+1.9.1
+
diff --git a/debian/patches/post-release/0006-mov-Drop-unused-parameter-from-ff_mov_read_esds.patch b/debian/patches/post-release/0006-mov-Drop-unused-parameter-from-ff_mov_read_esds.patch
new file mode 100644
index 0000000..a93556a
--- /dev/null
+++ b/debian/patches/post-release/0006-mov-Drop-unused-parameter-from-ff_mov_read_esds.patch
@@ -0,0 +1,66 @@
+From 86dfcfd0e30d6645eea2c63c1c60a0550e7c97ea Mon Sep 17 00:00:00 2001
+From: Diego Biurrun <diego at biurrun.de>
+Date: Fri, 15 Aug 2014 22:13:03 +0200
+Subject: [PATCH 06/37] mov: Drop unused parameter from ff_mov_read_esds()
+
+This is cleaner and avoids an uninitialized variable warning with MSVC.
+---
+ libavformat/cafdec.c | 3 +--
+ libavformat/isom.h   | 2 +-
+ libavformat/mov.c    | 4 ++--
+ 3 files changed, 4 insertions(+), 5 deletions(-)
+
+diff --git a/libavformat/cafdec.c b/libavformat/cafdec.c
+index 6574623..0034f00 100644
+--- a/libavformat/cafdec.c
++++ b/libavformat/cafdec.c
+@@ -109,10 +109,9 @@ static int read_kuki_chunk(AVFormatContext *s, int64_t size)
+            The lavc AAC decoder requires the data from the codec specific
+            description as extradata input. */
+         int strt, skip;
+-        MOVAtom atom;
+ 
+         strt = avio_tell(pb);
+-        ff_mov_read_esds(s, pb, atom);
++        ff_mov_read_esds(s, pb);
+         skip = size - (avio_tell(pb) - strt);
+         if (skip < 0 || !st->codec->extradata ||
+             st->codec->codec_id != AV_CODEC_ID_AAC) {
+diff --git a/libavformat/isom.h b/libavformat/isom.h
+index 70064bc..0bc912a 100644
+--- a/libavformat/isom.h
++++ b/libavformat/isom.h
+@@ -215,7 +215,7 @@ void ff_mp4_parse_es_descr(AVIOContext *pb, int *es_id);
+      (tag) == MKTAG('A', 'V', 'i', 'n'))
+ 
+ 
+-int ff_mov_read_esds(AVFormatContext *fc, AVIOContext *pb, MOVAtom atom);
++int ff_mov_read_esds(AVFormatContext *fc, AVIOContext *pb);
+ enum AVCodecID ff_mov_get_lpcm_codec_id(int bps, int flags);
+ 
+ int ff_mov_read_stsd_entries(MOVContext *c, AVIOContext *pb, int entries);
+diff --git a/libavformat/mov.c b/libavformat/mov.c
+index 3ab6776..3734689 100644
+--- a/libavformat/mov.c
++++ b/libavformat/mov.c
+@@ -543,7 +543,7 @@ static int mov_read_hdlr(MOVContext *c, AVIOContext *pb, MOVAtom atom)
+     return 0;
+ }
+ 
+-int ff_mov_read_esds(AVFormatContext *fc, AVIOContext *pb, MOVAtom atom)
++int ff_mov_read_esds(AVFormatContext *fc, AVIOContext *pb)
+ {
+     AVStream *st;
+     int tag;
+@@ -567,7 +567,7 @@ int ff_mov_read_esds(AVFormatContext *fc, AVIOContext *pb, MOVAtom atom)
+ 
+ static int mov_read_esds(MOVContext *c, AVIOContext *pb, MOVAtom atom)
+ {
+-    return ff_mov_read_esds(c->fc, pb, atom);
++    return ff_mov_read_esds(c->fc, pb);
+ }
+ 
+ static int mov_read_dac3(MOVContext *c, AVIOContext *pb, MOVAtom atom)
+-- 
+1.9.1
+
diff --git a/debian/patches/post-release/0007-vfwcap-Drop-fallback-VfW-defines.patch b/debian/patches/post-release/0007-vfwcap-Drop-fallback-VfW-defines.patch
new file mode 100644
index 0000000..a391192
--- /dev/null
+++ b/debian/patches/post-release/0007-vfwcap-Drop-fallback-VfW-defines.patch
@@ -0,0 +1,32 @@
+From 8bc52dbd9dffb1b2fa4a6aeed2d298d036b619b2 Mon Sep 17 00:00:00 2001
+From: Diego Biurrun <diego at biurrun.de>
+Date: Fri, 15 Aug 2014 22:13:06 +0200
+Subject: [PATCH 07/37] vfwcap: Drop fallback VfW defines
+
+The defines were added long ago when MinGW still lacked them.
+---
+ libavdevice/vfwcap.c | 8 --------
+ 1 file changed, 8 deletions(-)
+
+diff --git a/libavdevice/vfwcap.c b/libavdevice/vfwcap.c
+index 5fdda4a..c067be3 100644
+--- a/libavdevice/vfwcap.c
++++ b/libavdevice/vfwcap.c
+@@ -27,14 +27,6 @@
+ #include <windows.h>
+ #include <vfw.h>
+ 
+-/* Defines for VFW missing from MinGW.
+- * Remove this when MinGW incorporates them. */
+-#define HWND_MESSAGE                ((HWND)-3)
+-
+-#define BI_RGB                      0
+-
+-/* End of missing MinGW defines */
+-
+ struct vfw_ctx {
+     const AVClass *class;
+     HWND hwnd;
+-- 
+1.9.1
+
diff --git a/debian/patches/post-release/0008-vc1-Add-missing-parentheses-to-conditions-in-vc1_dec.patch b/debian/patches/post-release/0008-vc1-Add-missing-parentheses-to-conditions-in-vc1_dec.patch
new file mode 100644
index 0000000..ebd13d9
--- /dev/null
+++ b/debian/patches/post-release/0008-vc1-Add-missing-parentheses-to-conditions-in-vc1_dec.patch
@@ -0,0 +1,29 @@
+From d456baafb68cd80c0f537f1d843076e4dd853558 Mon Sep 17 00:00:00 2001
+From: Diego Biurrun <diego at biurrun.de>
+Date: Fri, 15 Aug 2014 22:13:08 +0200
+Subject: [PATCH 08/37] vc1: Add missing parentheses to conditions in
+ vc1_decode_b_mb_intfr()
+
+---
+ libavcodec/vc1dec.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c
+index f0ea471..8ad4f0f 100644
+--- a/libavcodec/vc1dec.c
++++ b/libavcodec/vc1dec.c
+@@ -4570,9 +4570,9 @@ static int vc1_decode_b_mb_intfr(VC1Context *v)
+             if (mb_has_coeffs)
+                 cbp = 1 + get_vlc2(&v->s.gb, v->cbpcy_vlc->table, VC1_CBPCY_P_VLC_BITS, 2);
+             if (!direct) {
+-                if (bmvtype == BMV_TYPE_INTERPOLATED & twomv) {
++                if (bmvtype == (BMV_TYPE_INTERPOLATED & twomv)) {
+                     v->fourmvbp = get_vlc2(gb, v->fourmvbp_vlc->table, VC1_4MV_BLOCK_PATTERN_VLC_BITS, 1);
+-                } else if (bmvtype == BMV_TYPE_INTERPOLATED | twomv) {
++                } else if (bmvtype == (BMV_TYPE_INTERPOLATED | twomv)) {
+                     v->twomvbp = get_vlc2(gb, v->twomvbp_vlc->table, VC1_2MV_BLOCK_PATTERN_VLC_BITS, 1);
+                 }
+             }
+-- 
+1.9.1
+
diff --git a/debian/patches/post-release/0009-pcm-Drop-unused-variable-from-DECODE_PLANAR-macro.patch b/debian/patches/post-release/0009-pcm-Drop-unused-variable-from-DECODE_PLANAR-macro.patch
new file mode 100644
index 0000000..233fa28
--- /dev/null
+++ b/debian/patches/post-release/0009-pcm-Drop-unused-variable-from-DECODE_PLANAR-macro.patch
@@ -0,0 +1,24 @@
+From 14d2006ca6c0e2b54784b93560f09e0e19c0a270 Mon Sep 17 00:00:00 2001
+From: Diego Biurrun <diego at biurrun.de>
+Date: Fri, 15 Aug 2014 22:13:10 +0200
+Subject: [PATCH 09/37] pcm: Drop unused variable from DECODE_PLANAR macro
+
+---
+ libavcodec/pcm.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/libavcodec/pcm.c b/libavcodec/pcm.c
+index 9fadcb7..2985156 100644
+--- a/libavcodec/pcm.c
++++ b/libavcodec/pcm.c
+@@ -264,7 +264,6 @@ static av_cold int pcm_decode_init(AVCodecContext *avctx)
+ #else
+ #define DECODE_PLANAR(size, endian, src, dst, n, shift, offset)         \
+     {                                                                   \
+-        int av_unused n2;                                               \
+         n /= avctx->channels;                                           \
+         for (c = 0; c < avctx->channels; c++) {                         \
+             samples = frame->extended_data[c];                          \
+-- 
+1.9.1
+
diff --git a/debian/patches/post-release/0010-pcm-Drop-av_unused-attribute-from-variable-that-is-a.patch b/debian/patches/post-release/0010-pcm-Drop-av_unused-attribute-from-variable-that-is-a.patch
new file mode 100644
index 0000000..0bfbcea
--- /dev/null
+++ b/debian/patches/post-release/0010-pcm-Drop-av_unused-attribute-from-variable-that-is-a.patch
@@ -0,0 +1,26 @@
+From 6af2930222ee5d8ce19f3b999a78d85a3c457391 Mon Sep 17 00:00:00 2001
+From: Diego Biurrun <diego at biurrun.de>
+Date: Fri, 15 Aug 2014 22:13:11 +0200
+Subject: [PATCH 10/37] pcm: Drop av_unused attribute from variable that is
+ always used
+
+---
+ libavcodec/pcm.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libavcodec/pcm.c b/libavcodec/pcm.c
+index 2985156..e06712e 100644
+--- a/libavcodec/pcm.c
++++ b/libavcodec/pcm.c
+@@ -253,7 +253,7 @@ static av_cold int pcm_decode_init(AVCodecContext *avctx)
+ #if HAVE_BIGENDIAN
+ #define DECODE_PLANAR(size, endian, src, dst, n, shift, offset)         \
+     {                                                                   \
+-        int av_unused n2;                                               \
++        int n2;                                                         \
+         n /= avctx->channels;                                           \
+         for (c = 0; c < avctx->channels; c++) {                         \
+             samples = frame->extended_data[c];                          \
+-- 
+1.9.1
+
diff --git a/debian/patches/post-release/0011-vsrc_movie-Avoid-a-variable-indirection-in-movie_get.patch b/debian/patches/post-release/0011-vsrc_movie-Avoid-a-variable-indirection-in-movie_get.patch
new file mode 100644
index 0000000..4a3b5da
--- /dev/null
+++ b/debian/patches/post-release/0011-vsrc_movie-Avoid-a-variable-indirection-in-movie_get.patch
@@ -0,0 +1,37 @@
+From b977b287f61fea48ecd6251d54a26334213b7ec6 Mon Sep 17 00:00:00 2001
+From: Diego Biurrun <diego at biurrun.de>
+Date: Fri, 15 Aug 2014 22:13:14 +0200
+Subject: [PATCH 11/37] vsrc_movie: Avoid a variable indirection in
+ movie_get_frame()
+
+This avoids an unused variable warning with MSVC since the variable is
+only used in a debug mode printf statement.
+---
+ libavfilter/vsrc_movie.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/libavfilter/vsrc_movie.c b/libavfilter/vsrc_movie.c
+index 8ebdd06..1ee0f16 100644
+--- a/libavfilter/vsrc_movie.c
++++ b/libavfilter/vsrc_movie.c
+@@ -206,7 +206,6 @@ static int movie_get_frame(AVFilterLink *outlink)
+     MovieContext *movie = outlink->src->priv;
+     AVPacket pkt;
+     int ret, frame_decoded;
+-    AVStream av_unused *st = movie->format_ctx->streams[movie->stream_index];
+ 
+     if (movie->is_done == 1)
+         return 0;
+@@ -226,7 +225,8 @@ static int movie_get_frame(AVFilterLink *outlink)
+                 av_dlog(outlink->src,
+                         "movie_get_frame(): file:'%s' pts:%"PRId64" time:%f aspect:%d/%d\n",
+                         movie->file_name, movie->frame->pts,
+-                        (double)movie->frame->pts * av_q2d(st->time_base),
++                        (double)movie->frame->pts *
++                        av_q2d(movie->format_ctx->streams[movie->stream_index]),
+                         movie->frame->sample_aspect_ratio.num,
+                         movie->frame->sample_aspect_ratio.den);
+                 // We got it. Free the packet since we are returning
+-- 
+1.9.1
+
diff --git a/debian/patches/post-release/0012-avfilter-Remove-unused-variable-from-ff_get_video_bu.patch b/debian/patches/post-release/0012-avfilter-Remove-unused-variable-from-ff_get_video_bu.patch
new file mode 100644
index 0000000..892462b
--- /dev/null
+++ b/debian/patches/post-release/0012-avfilter-Remove-unused-variable-from-ff_get_video_bu.patch
@@ -0,0 +1,25 @@
+From 67a7695c142561fe60f21adffe89c133385d37c9 Mon Sep 17 00:00:00 2001
+From: Diego Biurrun <diego at biurrun.de>
+Date: Fri, 15 Aug 2014 22:13:09 +0200
+Subject: [PATCH 12/37] avfilter: Remove unused variable from
+ ff_get_video_buffer()
+
+---
+ libavfilter/video.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/libavfilter/video.c b/libavfilter/video.c
+index 23bf867..9f1103e 100644
+--- a/libavfilter/video.c
++++ b/libavfilter/video.c
+@@ -105,7 +105,6 @@ AVFrame *ff_get_video_buffer(AVFilterLink *link, int w, int h)
+ {
+     AVFrame *ret = NULL;
+ 
+-    av_unused char buf[16];
+     FF_DPRINTF_START(NULL, get_video_buffer); ff_dlog_link(NULL, link, 0);
+ 
+     if (link->dstpad->get_video_buffer)
+-- 
+1.9.1
+
diff --git a/debian/patches/post-release/0013-Revert-lavf-eliminate-ff_get_audio_frame_size.patch b/debian/patches/post-release/0013-Revert-lavf-eliminate-ff_get_audio_frame_size.patch
new file mode 100644
index 0000000..76b1df9
--- /dev/null
+++ b/debian/patches/post-release/0013-Revert-lavf-eliminate-ff_get_audio_frame_size.patch
@@ -0,0 +1,77 @@
+From 04361427e65a687469a3bb0859971292d2dc11e4 Mon Sep 17 00:00:00 2001
+From: Andrew Stone <andrew at clovar.com>
+Date: Mon, 18 Aug 2014 17:28:23 -0400
+Subject: [PATCH 13/37] Revert "lavf: eliminate ff_get_audio_frame_size()"
+
+This reverts commit 30e50c50274f88f0f5ae829f401cd3c7f5266719.
+
+The original commit broke the ability to stream AAC over HTTP/Icecast. It looks
+like avformat_find_stream_info() gets stuck in an infinite loop, never hitting
+AVFormatContext.max_analyze_duration since duration is never set for any of
+the packets.
+
+Example stream: http://listen.classicrocklounge.com:8000/aac64
+
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavformat/internal.h |  2 ++
+ libavformat/utils.c    | 23 ++++++++++++++++++++++-
+ 2 files changed, 24 insertions(+), 1 deletion(-)
+
+diff --git a/libavformat/internal.h b/libavformat/internal.h
+index 9921ce1..2824436 100644
+--- a/libavformat/internal.h
++++ b/libavformat/internal.h
+@@ -326,6 +326,8 @@ int ff_interleave_packet_per_dts(AVFormatContext *s, AVPacket *out,
+ void ff_compute_frame_duration(int *pnum, int *pden, AVStream *st,
+                                AVCodecParserContext *pc, AVPacket *pkt);
+ 
++int ff_get_audio_frame_size(AVCodecContext *enc, int size, int mux);
++
+ unsigned int ff_codec_get_tag(const AVCodecTag *tags, enum AVCodecID id);
+ 
+ enum AVCodecID ff_codec_get_id(const AVCodecTag *tags, unsigned int tag);
+diff --git a/libavformat/utils.c b/libavformat/utils.c
+index 4cc246d..973ab94 100644
+--- a/libavformat/utils.c
++++ b/libavformat/utils.c
+@@ -454,6 +454,27 @@ int ff_read_packet(AVFormatContext *s, AVPacket *pkt)
+ /**********************************************************/
+ 
+ /**
++ * Get the number of samples of an audio frame. Return -1 on error.
++ */
++int ff_get_audio_frame_size(AVCodecContext *enc, int size, int mux)
++{
++    int frame_size;
++
++    /* give frame_size priority if demuxing */
++    if (!mux && enc->frame_size > 1)
++        return enc->frame_size;
++
++    if ((frame_size = av_get_audio_frame_duration(enc, size)) > 0)
++        return frame_size;
++
++    /* Fall back on using frame_size if muxing. */
++    if (enc->frame_size > 1)
++        return enc->frame_size;
++
++    return -1;
++}
++
++/**
+  * Return the frame duration in seconds. Return 0 if not available.
+  */
+ void ff_compute_frame_duration(int *pnum, int *pden, AVStream *st,
+@@ -488,7 +509,7 @@ void ff_compute_frame_duration(int *pnum, int *pden, AVStream *st,
+         }
+         break;
+     case AVMEDIA_TYPE_AUDIO:
+-        frame_size = av_get_audio_frame_duration(st->codec, pkt->size);
++        frame_size = ff_get_audio_frame_size(st->codec, pkt->size, 0);
+         if (frame_size <= 0 || st->codec->sample_rate <= 0)
+             break;
+         *pnum = frame_size;
+-- 
+1.9.1
+
diff --git a/debian/patches/post-release/0014-electronicarts-do-not-fail-on-zero-sized-chunks.patch b/debian/patches/post-release/0014-electronicarts-do-not-fail-on-zero-sized-chunks.patch
new file mode 100644
index 0000000..d640290
--- /dev/null
+++ b/debian/patches/post-release/0014-electronicarts-do-not-fail-on-zero-sized-chunks.patch
@@ -0,0 +1,61 @@
+From 7dfccac20c0c539e139bd9f75101f72ed4f2736c Mon Sep 17 00:00:00 2001
+From: Anton Khirnov <anton at khirnov.net>
+Date: Wed, 20 Aug 2014 05:40:53 +0000
+Subject: [PATCH 14/37] electronicarts: do not fail on zero-sized chunks
+
+At least one FATE sample contains such chunks and happens to work simply
+by accident (due to find_stream_info() swallowing the error).
+
+CC: libav-stable at libav.org
+(cherry picked from commit 4d6c5152849e23a4cc0f6a6ac2880c01ebcd301b)
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavformat/electronicarts.c | 11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/libavformat/electronicarts.c b/libavformat/electronicarts.c
+index 879ed97..adcd45a 100644
+--- a/libavformat/electronicarts.c
++++ b/libavformat/electronicarts.c
+@@ -522,7 +522,7 @@ static int ea_read_packet(AVFormatContext *s, AVPacket *pkt)
+     while (!packet_read) {
+         chunk_type = avio_rl32(pb);
+         chunk_size = ea->big_endian ? avio_rb32(pb) : avio_rl32(pb);
+-        if (chunk_size <= 8)
++        if (chunk_size < 8)
+             return AVERROR_INVALIDDATA;
+         chunk_size -= 8;
+ 
+@@ -547,6 +547,9 @@ static int ea_read_packet(AVFormatContext *s, AVPacket *pkt)
+                 avio_skip(pb, 8);
+                 chunk_size -= 12;
+             }
++            if (!chunk_size)
++                continue;
++
+             ret = av_get_packet(pb, pkt, chunk_size);
+             if (ret < 0)
+                 return ret;
+@@ -607,6 +610,9 @@ static int ea_read_packet(AVFormatContext *s, AVPacket *pkt)
+             goto get_video_packet;
+ 
+         case mTCD_TAG:
++            if (chunk_size < 8)
++                return AVERROR_INVALIDDATA;
++
+             avio_skip(pb, 8);               // skip ea DCT header
+             chunk_size -= 8;
+             goto get_video_packet;
+@@ -617,6 +623,9 @@ static int ea_read_packet(AVFormatContext *s, AVPacket *pkt)
+             key = AV_PKT_FLAG_KEY;
+         case MV0F_TAG:
+ get_video_packet:
++            if (!chunk_size)
++                continue;
++
+             ret = av_get_packet(pb, pkt, chunk_size);
+             if (ret < 0)
+                 return ret;
+-- 
+1.9.1
+
diff --git a/debian/patches/post-release/0015-vsrc_movie-Adjust-a-silly-typo-from-b977b287f61fea48.patch b/debian/patches/post-release/0015-vsrc_movie-Adjust-a-silly-typo-from-b977b287f61fea48.patch
new file mode 100644
index 0000000..2fbd2ca
--- /dev/null
+++ b/debian/patches/post-release/0015-vsrc_movie-Adjust-a-silly-typo-from-b977b287f61fea48.patch
@@ -0,0 +1,28 @@
+From e8f2823f06513d3d1177b8ba7c853d63194e5d8a Mon Sep 17 00:00:00 2001
+From: Diego Biurrun <diego at biurrun.de>
+Date: Wed, 20 Aug 2014 09:56:26 -0700
+Subject: [PATCH 15/37] vsrc_movie: Adjust a silly typo from
+ b977b287f61fea48ecd6251d54a26334213b7ec6
+
+(cherry picked from commit 11cd727fbd603197cb1e49654fce3352d56f8fd8)
+Signed-off-by: Diego Biurrun <diego at biurrun.de>
+---
+ libavfilter/vsrc_movie.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libavfilter/vsrc_movie.c b/libavfilter/vsrc_movie.c
+index 1ee0f16..0e5df32 100644
+--- a/libavfilter/vsrc_movie.c
++++ b/libavfilter/vsrc_movie.c
+@@ -226,7 +226,7 @@ static int movie_get_frame(AVFilterLink *outlink)
+                         "movie_get_frame(): file:'%s' pts:%"PRId64" time:%f aspect:%d/%d\n",
+                         movie->file_name, movie->frame->pts,
+                         (double)movie->frame->pts *
+-                        av_q2d(movie->format_ctx->streams[movie->stream_index]),
++                        av_q2d(movie->format_ctx->streams[movie->stream_index]->time_base),
+                         movie->frame->sample_aspect_ratio.num,
+                         movie->frame->sample_aspect_ratio.den);
+                 // We got it. Free the packet since we are returning
+-- 
+1.9.1
+
diff --git a/debian/patches/post-release/0016-error_resilience-Drop-asserts-from-guess_mv.patch b/debian/patches/post-release/0016-error_resilience-Drop-asserts-from-guess_mv.patch
new file mode 100644
index 0000000..fc41bd8
--- /dev/null
+++ b/debian/patches/post-release/0016-error_resilience-Drop-asserts-from-guess_mv.patch
@@ -0,0 +1,30 @@
+From d04fb118684f7d57474ee52da9c03cfee7a442b5 Mon Sep 17 00:00:00 2001
+From: Diego Biurrun <diego at biurrun.de>
+Date: Wed, 20 Aug 2014 09:35:08 -0700
+Subject: [PATCH 16/37] error_resilience: Drop asserts from guess_mv()
+
+The asserts check struct members that are not referenced in guess_mv()
+and one of them fails to compile.
+
+(cherry picked from commit 7cb66ebc0be48489785f7166c9d15eac594b0763)
+Signed-off-by: Diego Biurrun <diego at biurrun.de>
+---
+ libavcodec/error_resilience.c | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/libavcodec/error_resilience.c b/libavcodec/error_resilience.c
+index b41474a..33b0360 100644
+--- a/libavcodec/error_resilience.c
++++ b/libavcodec/error_resilience.c
+@@ -430,8 +430,6 @@ static void guess_mv(ERContext *s)
+ 
+                     if (fixed[mb_xy] == MV_FROZEN)
+                         continue;
+-                    assert(!IS_INTRA(s->cur_pic.mb_type[mb_xy]));
+-                    assert(s->last_pic && s->last_pic.f->data[0]);
+ 
+                     j = 0;
+                     if (mb_x > 0             && fixed[mb_xy - 1]         == MV_FROZEN)
+-- 
+1.9.1
+
diff --git a/debian/patches/post-release/0017-mpeg12enc-Add-missing-include-for-PICT_FRAME.patch b/debian/patches/post-release/0017-mpeg12enc-Add-missing-include-for-PICT_FRAME.patch
new file mode 100644
index 0000000..2bb988e
--- /dev/null
+++ b/debian/patches/post-release/0017-mpeg12enc-Add-missing-include-for-PICT_FRAME.patch
@@ -0,0 +1,26 @@
+From d2bad216f775da9c17a79c41ffd3df501b403100 Mon Sep 17 00:00:00 2001
+From: Diego Biurrun <diego at biurrun.de>
+Date: Wed, 20 Aug 2014 09:48:54 -0700
+Subject: [PATCH 17/37] mpeg12enc: Add missing #include for PICT_FRAME
+
+(cherry picked from commit 8fc6a70c2167b645b7a37d0cbc0e276e7b787cc9)
+Signed-off-by: Diego Biurrun <diego at biurrun.de>
+---
+ libavcodec/mpeg12enc.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/libavcodec/mpeg12enc.c b/libavcodec/mpeg12enc.c
+index c4089c9..3376f10 100644
+--- a/libavcodec/mpeg12enc.c
++++ b/libavcodec/mpeg12enc.c
+@@ -37,6 +37,7 @@
+ #include "mathops.h"
+ #include "mpeg12.h"
+ #include "mpeg12data.h"
++#include "mpegutils.h"
+ #include "mpegvideo.h"
+ 
+ 
+-- 
+1.9.1
+
diff --git a/debian/patches/post-release/0018-setpts-Add-missing-inttypes.h-include-for-PRId64.patch b/debian/patches/post-release/0018-setpts-Add-missing-inttypes.h-include-for-PRId64.patch
new file mode 100644
index 0000000..991810d
--- /dev/null
+++ b/debian/patches/post-release/0018-setpts-Add-missing-inttypes.h-include-for-PRId64.patch
@@ -0,0 +1,51 @@
+From 63795fe5b967b93bd476aedfd6a9260b99355525 Mon Sep 17 00:00:00 2001
+From: Diego Biurrun <diego at biurrun.de>
+Date: Wed, 20 Aug 2014 09:54:50 -0700
+Subject: [PATCH 18/37] setpts: Add missing inttypes.h #include for PRId64
+
+Also convert a debug av_log() to av_dlog().
+
+(cherry picked from commit 593aaee953f8b07c141ff115e67bae85ef0350c7)
+Signed-off-by: Diego Biurrun <diego at biurrun.de>
+---
+ libavfilter/setpts.c | 17 ++++++++---------
+ 1 file changed, 8 insertions(+), 9 deletions(-)
+
+diff --git a/libavfilter/setpts.c b/libavfilter/setpts.c
+index ff0016d..fa7a0be 100644
+--- a/libavfilter/setpts.c
++++ b/libavfilter/setpts.c
+@@ -24,6 +24,8 @@
+  * video presentation timestamp (PTS) modification filter
+  */
+ 
++#include <inttypes.h>
++
+ #include "libavutil/eval.h"
+ #include "libavutil/internal.h"
+ #include "libavutil/mathematics.h"
+@@ -141,15 +143,12 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
+     d = av_expr_eval(setpts->expr, setpts->var_values, NULL);
+     frame->pts = D2TS(d);
+ 
+-#ifdef DEBUG
+-    av_log(inlink->dst, AV_LOG_DEBUG,
+-           "n:%"PRId64" interlaced:%d pts:%"PRId64" t:%f -> pts:%"PRId64" t:%f\n",
+-           (int64_t)setpts->var_values[VAR_N],
+-           (int)setpts->var_values[VAR_INTERLACED],
+-           in_pts, in_pts * av_q2d(inlink->time_base),
+-           frame->pts, frame->pts * av_q2d(inlink->time_base));
+-#endif
+-
++    av_dlog(inlink->dst,
++            "n:%"PRId64" interlaced:%d pts:%"PRId64" t:%f -> pts:%"PRId64" t:%f\n",
++            (int64_t)setpts->var_values[VAR_N],
++            (int)setpts->var_values[VAR_INTERLACED],
++            in_pts, in_pts * av_q2d(inlink->time_base),
++            frame->pts, frame->pts * av_q2d(inlink->time_base));
+ 
+     if (inlink->type == AVMEDIA_TYPE_VIDEO) {
+         setpts->var_values[VAR_N] += 1.0;
+-- 
+1.9.1
+
diff --git a/debian/patches/post-release/0019-vfwcap-Add-fallback-define-for-HWND_MESSAGE.patch b/debian/patches/post-release/0019-vfwcap-Add-fallback-define-for-HWND_MESSAGE.patch
new file mode 100644
index 0000000..8c88fd8
--- /dev/null
+++ b/debian/patches/post-release/0019-vfwcap-Add-fallback-define-for-HWND_MESSAGE.patch
@@ -0,0 +1,32 @@
+From 0263750a0db723760d61bcaafc6964a371adcdfc Mon Sep 17 00:00:00 2001
+From: Diego Biurrun <diego at biurrun.de>
+Date: Mon, 25 Aug 2014 17:26:15 +0200
+Subject: [PATCH 19/37] vfwcap: Add fallback define for HWND_MESSAGE
+
+Some obsolete versions of the MinGW32 runtime (<4.0.0) lack the definition.
+
+(cherry picked from commit ab56fabe6294524e99815451ad01e4ff50c6d734)
+Signed-off-by: Diego Biurrun <diego at biurrun.de>
+---
+ libavdevice/vfwcap.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/libavdevice/vfwcap.c b/libavdevice/vfwcap.c
+index c067be3..b47de1b 100644
+--- a/libavdevice/vfwcap.c
++++ b/libavdevice/vfwcap.c
+@@ -27,6 +27,11 @@
+ #include <windows.h>
+ #include <vfw.h>
+ 
++/* Some obsolete versions of MinGW32 before 4.0.0 lack this. */
++#ifndef HWND_MESSAGE
++#define HWND_MESSAGE ((HWND) -3)
++#endif
++
+ struct vfw_ctx {
+     const AVClass *class;
+     HWND hwnd;
+-- 
+1.9.1
+
diff --git a/debian/patches/post-release/0020-vc1-Fix-the-skip-condition.patch b/debian/patches/post-release/0020-vc1-Fix-the-skip-condition.patch
new file mode 100644
index 0000000..167a297
--- /dev/null
+++ b/debian/patches/post-release/0020-vc1-Fix-the-skip-condition.patch
@@ -0,0 +1,45 @@
+From 8c91414803e4cd26dcb27e6147424d09d19cd72a Mon Sep 17 00:00:00 2001
+From: Luca Barbato <lu_zero at gentoo.org>
+Date: Sun, 24 Aug 2014 19:34:13 +0200
+Subject: [PATCH 20/37] vc1: Fix the skip condition
+
+As written in the comment above, skip must be added only if a
+start code is found.
+---
+ libavcodec/vc1_parser.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/libavcodec/vc1_parser.c b/libavcodec/vc1_parser.c
+index 43ca0ed..a653282 100644
+--- a/libavcodec/vc1_parser.c
++++ b/libavcodec/vc1_parser.c
+@@ -123,6 +123,7 @@ static int vc1_parse(AVCodecParserContext *s,
+     uint8_t *unesc_buffer = vpc->unesc_buffer;
+     size_t unesc_index = vpc->unesc_index;
+     VC1ParseSearchState search_state = vpc->search_state;
++    int start_code_found;
+     int next = END_NOT_FOUND;
+     int i = vpc->bytes_to_skip;
+ 
+@@ -133,8 +134,8 @@ static int vc1_parse(AVCodecParserContext *s,
+         next = 0;
+     }
+     while (i < buf_size) {
+-        int start_code_found = 0;
+         uint8_t b;
++        start_code_found = 0;
+         while (i < buf_size && unesc_index < UNESCAPED_THRESHOLD) {
+             b = buf[i++];
+             unesc_buffer[unesc_index++] = b;
+@@ -232,7 +233,7 @@ static int vc1_parse(AVCodecParserContext *s,
+      * the start code we've already seen, or cause extra bytes to be
+      * inserted at the start of the unescaped buffer. */
+     vpc->bytes_to_skip = 4;
+-    if (next < 0)
++    if (next < 0 && start_code_found)
+         vpc->bytes_to_skip += next;
+ 
+     *poutbuf = buf;
+-- 
+1.9.1
+
diff --git a/debian/patches/post-release/0021-mpegenc-limit-the-maximum-muxrate.patch b/debian/patches/post-release/0021-mpegenc-limit-the-maximum-muxrate.patch
new file mode 100644
index 0000000..224173b
--- /dev/null
+++ b/debian/patches/post-release/0021-mpegenc-limit-the-maximum-muxrate.patch
@@ -0,0 +1,30 @@
+From c2d6cc2971b365bf3e90b5b57a6ba3fe0e19061f Mon Sep 17 00:00:00 2001
+From: Anton Khirnov <anton at khirnov.net>
+Date: Mon, 25 Aug 2014 21:21:57 +0000
+Subject: [PATCH 21/37] mpegenc: limit the maximum muxrate
+
+It is written to the file as a 22-bit value.
+
+CC: libav-stable at libav.org
+(cherry picked from commit 75bbaf2493a71ee66eaabe3c21fadd84d07888de)
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ libavformat/mpegenc.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libavformat/mpegenc.c b/libavformat/mpegenc.c
+index 1ba7647..88590b3 100644
+--- a/libavformat/mpegenc.c
++++ b/libavformat/mpegenc.c
+@@ -1157,7 +1157,7 @@ static int mpeg_mux_end(AVFormatContext *ctx)
+ #define OFFSET(x) offsetof(MpegMuxContext, x)
+ #define E AV_OPT_FLAG_ENCODING_PARAM
+ static const AVOption options[] = {
+-    { "muxrate", NULL,                                          OFFSET(mux_rate), AV_OPT_TYPE_INT, { .i64 =      0 }, 0, INT_MAX, E },
++    { "muxrate", NULL,                                          OFFSET(mux_rate), AV_OPT_TYPE_INT, { .i64 =      0 }, 0, (1 << 22) - 1, E },
+     { "preload", "Initial demux-decode delay in microseconds.", OFFSET(preload),  AV_OPT_TYPE_INT, { .i64 = 500000 }, 0, INT_MAX, E },
+     { NULL },
+ };
+-- 
+1.9.1
+
diff --git a/debian/patches/post-release/0022-avconv-fix-the-muxrate-values-for-target.patch b/debian/patches/post-release/0022-avconv-fix-the-muxrate-values-for-target.patch
new file mode 100644
index 0000000..704c7fb
--- /dev/null
+++ b/debian/patches/post-release/0022-avconv-fix-the-muxrate-values-for-target.patch
@@ -0,0 +1,39 @@
+From 7c4685507498025d11bb48b3f54301a99fcf8582 Mon Sep 17 00:00:00 2001
+From: Anton Khirnov <anton at khirnov.net>
+Date: Mon, 25 Aug 2014 21:24:35 +0000
+Subject: [PATCH 22/37] avconv: fix the muxrate values for -target
+
+The mpegenc private option values are in 50-byte units.
+
+CC: libav-stable at libav.org
+(cherry picked from commit 1688eef25385089026aba55da1885f70a57815ab)
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ avconv_opt.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/avconv_opt.c b/avconv_opt.c
+index f070b99..33ac290 100644
+--- a/avconv_opt.c
++++ b/avconv_opt.c
+@@ -1803,7 +1803,7 @@ static int opt_target(void *optctx, const char *opt, const char *arg)
+         parse_option(o, "ac", "2", options);
+ 
+         opt_default(NULL, "packetsize", "2324");
+-        opt_default(NULL, "muxrate", "1411200"); // 2352 * 75 * 8;
++        opt_default(NULL, "muxrate", "3528"); // 2352 * 75 / 50;
+ 
+         /* We have to offset the PTS, so that it is consistent with the SCR.
+            SCR starts at 36000, but the first two packs contain only padding
+@@ -1849,7 +1849,7 @@ static int opt_target(void *optctx, const char *opt, const char *arg)
+         opt_default(NULL, "bufsize", "1835008"); // 224*1024*8;
+ 
+         opt_default(NULL, "packetsize", "2048");  // from www.mpucoder.com: DVD sectors contain 2048 bytes of data, this is also the size of one pack.
+-        opt_default(NULL, "muxrate", "10080000"); // from mplex project: data_rate = 1260000. mux_rate = data_rate * 8
++        opt_default(NULL, "muxrate", "25200"); // from mplex project: data_rate = 1260000. mux_rate = data_rate / 50
+ 
+         opt_default(NULL, "b:a", "448000");
+         parse_option(o, "ar", "48000", options);
+-- 
+1.9.1
+
diff --git a/debian/patches/post-release/0023-avconv-fix-parsing-the-AVOptions-for-target.patch b/debian/patches/post-release/0023-avconv-fix-parsing-the-AVOptions-for-target.patch
new file mode 100644
index 0000000..f42adce
--- /dev/null
+++ b/debian/patches/post-release/0023-avconv-fix-parsing-the-AVOptions-for-target.patch
@@ -0,0 +1,30 @@
+From e2a89f7f0f8fe1c769c83d33efa717cc7b2edc57 Mon Sep 17 00:00:00 2001
+From: Anton Khirnov <anton at khirnov.net>
+Date: Tue, 26 Aug 2014 06:26:35 +0000
+Subject: [PATCH 23/37] avconv: fix parsing the AVOptions for -target
+
+CC: libav-stable at libav.org
+(cherry picked from commit f5245a9c6206878b892adf3ccbccc9311c202af5)
+Signed-off-by: Anton Khirnov <anton at khirnov.net>
+---
+ avconv_opt.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/avconv_opt.c b/avconv_opt.c
+index 33ac290..2d06912 100644
+--- a/avconv_opt.c
++++ b/avconv_opt.c
+@@ -1870,6 +1870,10 @@ static int opt_target(void *optctx, const char *opt, const char *arg)
+         av_log(NULL, AV_LOG_ERROR, "Unknown target: %s\n", arg);
+         return AVERROR(EINVAL);
+     }
++
++    av_dict_copy(&o->g->codec_opts,  codec_opts, 0);
++    av_dict_copy(&o->g->format_opts, format_opts, 0);
++
+     return 0;
+ }
+ 
+-- 
+1.9.1
+
diff --git a/debian/patches/post-release/0024-vc1-Initialize-start_code_found-to-0.patch b/debian/patches/post-release/0024-vc1-Initialize-start_code_found-to-0.patch
new file mode 100644
index 0000000..a69564e
--- /dev/null
+++ b/debian/patches/post-release/0024-vc1-Initialize-start_code_found-to-0.patch
@@ -0,0 +1,25 @@
+From ee099059e71efe44a877af6111b74878dac618ce Mon Sep 17 00:00:00 2001
+From: Luca Barbato <lu_zero at gentoo.org>
+Date: Wed, 27 Aug 2014 02:50:58 +0200
+Subject: [PATCH 24/37] vc1: Initialize start_code_found to 0
+
+---
+ libavcodec/vc1_parser.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libavcodec/vc1_parser.c b/libavcodec/vc1_parser.c
+index a653282..7d8d016 100644
+--- a/libavcodec/vc1_parser.c
++++ b/libavcodec/vc1_parser.c
+@@ -123,7 +123,7 @@ static int vc1_parse(AVCodecParserContext *s,
+     uint8_t *unesc_buffer = vpc->unesc_buffer;
+     size_t unesc_index = vpc->unesc_index;
+     VC1ParseSearchState search_state = vpc->search_state;
+-    int start_code_found;
++    int start_code_found = 0;
+     int next = END_NOT_FOUND;
+     int i = vpc->bytes_to_skip;
+ 
+-- 
+1.9.1
+
diff --git a/debian/patches/post-release/0025-pulse-Add-a-wallclock-option-to-be-compatible-with-o.patch b/debian/patches/post-release/0025-pulse-Add-a-wallclock-option-to-be-compatible-with-o.patch
new file mode 100644
index 0000000..42a1404
--- /dev/null
+++ b/debian/patches/post-release/0025-pulse-Add-a-wallclock-option-to-be-compatible-with-o.patch
@@ -0,0 +1,58 @@
+From e62f08ca8d6e558956ff3094085338cb4dd6afd8 Mon Sep 17 00:00:00 2001
+From: Luca Barbato <lu_zero at gentoo.org>
+Date: Sat, 23 Aug 2014 19:03:21 +0200
+Subject: [PATCH 25/37] pulse: Add a wallclock option to be compatible with
+ other other captures
+
+alsa and x11grab use av_gettime() to report timestamps.
+
+Have it on by default.
+
+Bug-Id: 647
+(cherry picked from commit 424b929b5cb9ca4094099f25179829260d4b0fa3)
+(cherry picked from commit 404731bd20e1df5880e6fe381e975ba48afc75b2)
+Signed-off-by: Luca Barbato <lu_zero at gentoo.org>
+---
+ libavdevice/pulse.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/libavdevice/pulse.c b/libavdevice/pulse.c
+index a8e710d..2136ee3 100644
+--- a/libavdevice/pulse.c
++++ b/libavdevice/pulse.c
+@@ -31,6 +31,7 @@
+ 
+ #include "libavformat/avformat.h"
+ #include "libavformat/internal.h"
++#include "libavutil/time.h"
+ #include "libavutil/opt.h"
+ 
+ #define DEFAULT_CODEC_ID AV_NE(AV_CODEC_ID_PCM_S16BE, AV_CODEC_ID_PCM_S16LE)
+@@ -47,6 +48,7 @@ typedef struct PulseData {
+     pa_simple *s;
+     int64_t pts;
+     int64_t frame_duration;
++    int wallclock;
+ } PulseData;
+ 
+ static pa_sample_format_t codec_id_to_pulse_format(int codec_id) {
+@@ -141,6 +143,8 @@ static int pulse_read_packet(AVFormatContext *s, AVPacket *pkt)
+ 
+     if (pd->pts == AV_NOPTS_VALUE) {
+         pd->pts = -latency;
++        if (pd->wallclock)
++            pd->pts += av_gettime();
+     }
+ 
+     pkt->pts = pd->pts;
+@@ -168,6 +172,7 @@ static const AVOption options[] = {
+     { "channels",      "number of audio channels",                       OFFSET(channels),      AV_OPT_TYPE_INT,    {.i64 = 2},        1, INT_MAX, D },
+     { "frame_size",    "number of bytes per frame",                      OFFSET(frame_size),    AV_OPT_TYPE_INT,    {.i64 = 1024},     1, INT_MAX, D },
+     { "fragment_size", "buffering size, affects latency and cpu usage",  OFFSET(fragment_size), AV_OPT_TYPE_INT,    {.i64 = -1},      -1, INT_MAX, D },
++    { "wallclock",     "set the initial pts using the current time",     OFFSET(wallclock),     AV_OPT_TYPE_INT,    {.i64 = 1},       -1, 1, D },
+     { NULL },
+ };
+ 
+-- 
+1.9.1
+
diff --git a/debian/patches/post-release/0026-doc-APIchanges-fill-in-missing-hashes-and-dates.patch b/debian/patches/post-release/0026-doc-APIchanges-fill-in-missing-hashes-and-dates.patch
new file mode 100644
index 0000000..7401811
--- /dev/null
+++ b/debian/patches/post-release/0026-doc-APIchanges-fill-in-missing-hashes-and-dates.patch
@@ -0,0 +1,153 @@
+From 1f52f82a55a544838f5e49e639488c1f15de8a42 Mon Sep 17 00:00:00 2001
+From: Anton Khirnov <anton at khirnov.net>
+Date: Sun, 18 May 2014 10:52:41 +0200
+Subject: [PATCH 26/37] doc/APIchanges: fill in missing hashes and dates
+
+---
+ doc/APIchanges | 58 +++++++++++++++++++++++++++++-----------------------------
+ 1 file changed, 29 insertions(+), 29 deletions(-)
+
+diff --git a/doc/APIchanges b/doc/APIchanges
+index 6d1f061..14ec297 100644
+--- a/doc/APIchanges
++++ b/doc/APIchanges
+@@ -13,107 +13,107 @@ libavutil:     2014-08-09
+ 
+ API changes, most recent first:
+ 
+-2014-08-xx - xxxxxxx - lavu 54.03.0 - mem.h
++2014-08-13 - 8ddc326 - lavu 54.03.0 - mem.h
+   Add av_strndup().
+ 
+-2014-xx-xx - xxxxxxx - lavu 54.02.0 - opt.h
++2014-08-13 - a8c104a - lavu 54.02.0 - opt.h
+   Add av_opt_get_dict_val/set_dict_val with AV_OPT_TYPE_DICT to support
+   dictionary types being set as options.
+ 
+-2014-xx-xx - xxxxxxx - lavf 56.01.0 - avformat.h
++2014-08-13 - afbd4b8 - lavf 56.01.0 - avformat.h
+   Add AVFormatContext.event_flags and AVStream.event_flags for signaling to
+   the user when events happen in the file/stream.
+ 
+-2014-04-xx - xxxxxxx - lavr 2.1.0 - avresample.h
++2014-08-10 - fb1ddcd - lavr 2.1.0 - avresample.h
+   Add avresample_convert_frame() and avresample_config().
+ 
+-2014-04-xx - xxxxxxx - lavu 54.1.0 - error.h
++2014-08-10 - fb1ddcd - lavu 54.1.0 - error.h
+   Add AVERROR_INPUT_CHANGED and AVERROR_OUTPUT_CHANGED.
+ 
+-2014-08-xx - xxxxxxx - lavc 55.57.4 - avcodec.h
++2014-08-08 - d35b94f - lavc 55.57.4 - avcodec.h
+   Deprecate FF_IDCT_XVIDMMX define and xvidmmx idct option.
+   Replaced by FF_IDCT_XVID and xvid respectively.
+ 
+-2014-08-xx - xxxxxxx - lsws 2.1.3 - swscale.h
++2014-08-07 - bb78903 - lsws 2.1.3 - swscale.h
+   sws_getCachedContext is not going to be removed in the future.
+ 
+-2014-08-xx - xxxxxxx - lavc 55.57.3 - avcodec.h
++2014-08-07 - ad1ee5f - lavc 55.57.3 - avcodec.h
+   reordered_opaque is not going to be removed in the future.
+ 
+-2014-08-xx - xxxxxxx - lavu 53.22.0 - pixfmt.h
++2014-08-04 - e9abafc - lavu 53.22.0 - pixfmt.h
+   Add AV_PIX_FMT_YA16 pixel format for 16 bit packed gray with alpha.
+ 
+-2014-08-xx - xxxxxxx - lavu 53.21.1 - avstring.h
++2014-08-04 - e96c3b8 - lavu 53.21.1 - avstring.h
+   Rename AV_PIX_FMT_Y400A to AV_PIX_FMT_YA8 to better identify the format.
+   An alias pixel format and color space name are provided for compatibility.
+ 
+-2014-08-xx - xxxxxxx - lavu 53.21.0 - pixdesc.h
++2014-08-04 - d2962e9 - lavu 53.21.0 - pixdesc.h
+   Support name aliases for pixel formats.
+ 
+-2014-08-xx - xxxxxxx - lavc 55.57.2 - avcodec.h
+-2014-08-xx - xxxxxxx - lavu 53.20.0 - frame.h
++2014-08-03 - 1ef9e83 - lavc 55.57.2 - avcodec.h
++2014-08-03 - 1ef9e83 - lavu 53.20.0 - frame.h
+   Deprecate AVCodecContext.dtg_active_format and use side-data instead.
+ 
+-2014-08-xx - xxxxxxx - lavc 55.57.1 - avcodec.h
++2014-08-03 - 9f17685 - lavc 55.57.1 - avcodec.h
+   Deprecate unused FF_IDCT_IPP define and ipp avcodec option.
+   Deprecate unused FF_DEBUG_PTS define and pts avcodec option.
+   Deprecate unused FF_CODER_TYPE_DEFLATE define and deflate avcodec option.
+   Deprecate unused FF_DCT_INT define and int avcodec option.
+   Deprecate unused avcodec option scenechange_factor.
+ 
+-2014-07-xx - xxxxxxx - lavu 53.19.0 - avstring.h
++2014-07-29 - 69e7336 - lavu 53.19.0 - avstring.h
+   Make name matching function from lavf public as av_match_name().
+ 
+-2014-xx-xx - xxxxxxx - lavc 55.57.0 - avcodec.h
++2014-07-28 - c5fca01 - lavc 55.57.0 - avcodec.h
+   Add AV_CODEC_PROP_REORDER to mark codecs supporting frame reordering.
+ 
+-2014-07-xx - xxxxxxx - lavu 53.18.0 - display.h
++2014-07-09 - a54f03b - lavu 53.18.0 - display.h
+   Add av_display_matrix_flip() to flip the transformation matrix.
+ 
+-2014-07-xx - xxxxxxx - lavc 55.56.0 - dv_profile.h
++2014-07-09 - f6ee61f - lavc 55.56.0 - dv_profile.h
+   Add a public API for DV profile handling.
+ 
+-2014-06-xx - xxxxxxx - lavu 53.17.0 - imgutils.h
++2014-06-20 - 9e500ef - lavu 53.17.0 - imgutils.h
+   Add av_image_check_sar().
+ 
+-2014-06-xx - xxxxxxx - lavc 55.55.0 - avcodec.h
++2014-06-20 - 874390e - lavc 55.55.0 - avcodec.h
+   Add av_packet_rescale_ts() to simplify timestamp conversion.
+ 
+-2014-xx-xx - xxxxxxx - lavf 55.20.0 - avformat.h
++2014-06-18 - 194be1f - lavf 55.20.0 - avformat.h
+   The proper way for providing a hint about the desired timebase to the muxers
+   is now setting AVStream.time_base, instead of AVStream.codec.time_base as was
+   done previously. The old method is now deprecated.
+ 
+-2014-04-xx - xxxxxxx - lavc 55.54.0 - avcodec.h
++2014-06-01 - 0957b27 - lavc 55.54.0 - avcodec.h
+   Add AVCodecContext.side_data_only_packets to allow encoders to output packets
+   with only side data. This option may become mandatory in the future, so all
+   users are recommended to update their code and enable this option.
+ 
+-2014-xx-xx - xxxxxxx - lavu 53.16.0 - frame.h, pixfmt.h
++2014-06-01 - 8c02adc - lavu 53.16.0 - frame.h, pixfmt.h
+   Move all color-related enums (AVColorPrimaries, AVColorSpace, AVColorRange,
+   AVColorTransferCharacteristic, and AVChromaLocation) inside lavu.
+   Add AVFrame fields for them on the next lavu major bump.
+ 
+-2014-04-xx - xxxxxxx - lavr 1.3.0 - avresample.h
++2014-05-28 - b2d4565 - lavr 1.3.0 - avresample.h
+   Add avresample_max_output_samples
+ 
+-2014-05-24 - xxxxxxx - lavf 55.19.0 - avformat.h
++2014-05-28 - 6d21259 - lavf 55.19.0 - avformat.h
+   Add strict_std_compliance and related AVOptions to support experimental
+   muxing.
+ 
+-2014-05-19 - xxxxxxx - lavf 55.18.0 - avformat.h
++2014-05-20 - c23c96b - lavf 55.18.0 - avformat.h
+   Add av_stream_get_side_data() to access stream-level side data
+   in the same way as av_packet_get_side_data().
+ 
+-2014-05-xx - xxxxxxx - lavu 53.15.0 - frame.h, display.h
++2014-05-19 - bddd8cb - lavu 53.15.0 - frame.h, display.h
+   Add AV_FRAME_DATA_DISPLAYMATRIX for exporting frame-level
+   spatial rendering on video frames for proper display.
+ 
+-2014-05-xx - xxxxxxx - lavc 55.53.0 - avcodec.h
++2014-05-19 - bddd8cb - lavc 55.53.0 - avcodec.h
+   Add AV_PKT_DATA_DISPLAYMATRIX for exporting packet-level
+   spatial rendering on video frames for proper display.
+ 
+-2014-05-xx - xxxxxxx - lavf 55.17.1 - avformat.h
++2014-05-19 - a312f71 - lavf 55.17.1 - avformat.h
+   Deprecate AVStream.pts and the AVFrac struct, which was its only use case.
+   Those fields were poorly defined and not meant to be public, so there is
+   no replacement for them.
+-- 
+1.9.1
+
diff --git a/debian/patches/post-release/0027-matroska-list-supported-extensions.patch b/debian/patches/post-release/0027-matroska-list-supported-extensions.patch
new file mode 100644
index 0000000..6c2d3e7
--- /dev/null
+++ b/debian/patches/post-release/0027-matroska-list-supported-extensions.patch
@@ -0,0 +1,24 @@
+From 5694831e0693ad70581a766d1f0ebefbbae8bc2f Mon Sep 17 00:00:00 2001
+From: Vittorio Giovara <vittorio.giovara at gmail.com>
+Date: Wed, 23 Jul 2014 09:49:24 +0100
+Subject: [PATCH 27/37] matroska: list supported extensions
+
+---
+ libavformat/matroskadec.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
+index 42204a4..431fe57 100644
+--- a/libavformat/matroskadec.c
++++ b/libavformat/matroskadec.c
+@@ -2601,6 +2601,7 @@ static int matroska_read_close(AVFormatContext *s)
+ AVInputFormat ff_matroska_demuxer = {
+     .name           = "matroska,webm",
+     .long_name      = NULL_IF_CONFIG_SMALL("Matroska / WebM"),
++    .extensions     = "mkv,mk3d,mka,mks",
+     .priv_data_size = sizeof(MatroskaDemuxContext),
+     .read_probe     = matroska_probe,
+     .read_header    = matroska_read_header,
+-- 
+1.9.1
+
diff --git a/debian/patches/post-release/0028-avcodec-add-stream-level-stereo3d-side-data.patch b/debian/patches/post-release/0028-avcodec-add-stream-level-stereo3d-side-data.patch
new file mode 100644
index 0000000..f693461
--- /dev/null
+++ b/debian/patches/post-release/0028-avcodec-add-stream-level-stereo3d-side-data.patch
@@ -0,0 +1,155 @@
+From 110841c3ab1d617107f4fb229fcd33d5ca357bbe Mon Sep 17 00:00:00 2001
+From: Vittorio Giovara <vittorio.giovara at gmail.com>
+Date: Wed, 23 Jul 2014 09:21:28 +0100
+Subject: [PATCH 28/37] avcodec: add stream-level stereo3d side data
+
+---
+ doc/APIchanges       |  3 +++
+ libavcodec/avcodec.h |  6 ++++++
+ libavcodec/utils.c   |  9 +++++++++
+ libavcodec/version.h |  2 +-
+ libavformat/dump.c   | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
+ 5 files changed, 69 insertions(+), 1 deletion(-)
+
+diff --git a/doc/APIchanges b/doc/APIchanges
+index 14ec297..7134e78 100644
+--- a/doc/APIchanges
++++ b/doc/APIchanges
+@@ -13,6 +13,9 @@ libavutil:     2014-08-09
+ 
+ API changes, most recent first:
+ 
++2014-08-28 - 9301486 - lavc 56.1.0 - avcodec.h
++  Add AV_PKT_DATA_STEREO3D to export container-level stereo3d information.
++
+ 2014-08-13 - 8ddc326 - lavu 54.03.0 - mem.h
+   Add av_strndup().
+ 
+diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
+index 93aad35..14440fe 100644
+--- a/libavcodec/avcodec.h
++++ b/libavcodec/avcodec.h
+@@ -911,6 +911,12 @@ enum AVPacketSideDataType {
+      * See libavutil/display.h for a detailed description of the data.
+      */
+     AV_PKT_DATA_DISPLAYMATRIX,
++
++    /*
++     * This side data should be associated with a video stream and contains
++     * Stereoscopic 3D information in form of the AVStereo3D struct.
++     */
++    AV_PKT_DATA_STEREO3D,
+ };
+ 
+ typedef struct AVPacketSideData {
+diff --git a/libavcodec/utils.c b/libavcodec/utils.c
+index afc0396..c5fa50d 100644
+--- a/libavcodec/utils.c
++++ b/libavcodec/utils.c
+@@ -596,6 +596,15 @@ int ff_decode_frame_props(AVCodecContext *avctx, AVFrame *frame)
+ 
+         memcpy(frame_sd->data, packet_sd, size);
+     }
++    /* copy the stereo3d format to the output frame */
++    packet_sd = av_packet_get_side_data(pkt, AV_PKT_DATA_STEREO3D, &size);
++    if (packet_sd) {
++        frame_sd = av_frame_new_side_data(frame, AV_FRAME_DATA_STEREO3D, size);
++        if (!frame_sd)
++            return AVERROR(ENOMEM);
++
++        memcpy(frame_sd->data, packet_sd, size);
++    }
+ 
+     return 0;
+ }
+diff --git a/libavcodec/version.h b/libavcodec/version.h
+index b42b970..8cc2fb0 100644
+--- a/libavcodec/version.h
++++ b/libavcodec/version.h
+@@ -29,7 +29,7 @@
+ #include "libavutil/version.h"
+ 
+ #define LIBAVCODEC_VERSION_MAJOR 56
+-#define LIBAVCODEC_VERSION_MINOR  0
++#define LIBAVCODEC_VERSION_MINOR  1
+ #define LIBAVCODEC_VERSION_MICRO  0
+ 
+ #define LIBAVCODEC_VERSION_INT  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
+diff --git a/libavformat/dump.c b/libavformat/dump.c
+index cdf2da1..58ed654 100644
+--- a/libavformat/dump.c
++++ b/libavformat/dump.c
+@@ -27,6 +27,7 @@
+ #include "libavutil/log.h"
+ #include "libavutil/mathematics.h"
+ #include "libavutil/replaygain.h"
++#include "libavutil/stereo3d.h"
+ 
+ #include "avformat.h"
+ 
+@@ -229,6 +230,51 @@ static void dump_replaygain(void *ctx, AVPacketSideData *sd)
+     print_peak(ctx, "album peak", rg->album_peak);
+ }
+ 
++static void dump_stereo3d(void *ctx, AVPacketSideData *sd)
++{
++    AVStereo3D *stereo;
++
++    if (sd->size < sizeof(*stereo)) {
++        av_log(ctx, AV_LOG_INFO, "invalid data");
++        return;
++    }
++
++    stereo = (AVStereo3D *)sd->data;
++
++    switch (stereo->type) {
++    case AV_STEREO3D_2D:
++        av_log(ctx, AV_LOG_INFO, "2D");
++        break;
++    case AV_STEREO3D_SIDEBYSIDE:
++        av_log(ctx, AV_LOG_INFO, "side by side");
++        break;
++    case AV_STEREO3D_TOPBOTTOM:
++        av_log(ctx, AV_LOG_INFO, "top and bottom");
++        break;
++    case AV_STEREO3D_FRAMESEQUENCE:
++        av_log(ctx, AV_LOG_INFO, "frame alternate");
++        break;
++    case AV_STEREO3D_CHECKERBOARD:
++        av_log(ctx, AV_LOG_INFO, "checkerboard");
++        break;
++    case AV_STEREO3D_LINES:
++        av_log(ctx, AV_LOG_INFO, "interleaved lines");
++        break;
++    case AV_STEREO3D_COLUMNS:
++        av_log(ctx, AV_LOG_INFO, "interleaved columns");
++        break;
++    case AV_STEREO3D_SIDEBYSIDE_QUINCUNX:
++        av_log(ctx, AV_LOG_INFO, "side by side (quincunx subsampling)");
++        break;
++    default:
++        av_log(ctx, AV_LOG_WARNING, "unknown");
++        break;
++    }
++
++    if (stereo->flags & AV_STEREO3D_FLAG_INVERT)
++        av_log(ctx, AV_LOG_INFO, " (inverted)");
++}
++
+ static void dump_sidedata(void *ctx, AVStream *st, const char *indent)
+ {
+     int i;
+@@ -262,6 +308,10 @@ static void dump_sidedata(void *ctx, AVStream *st, const char *indent)
+             av_log(ctx, AV_LOG_INFO, "displaymatrix: rotation of %.2f degrees",
+                    av_display_rotation_get((int32_t *)sd.data));
+             break;
++        case AV_PKT_DATA_STEREO3D:
++            av_log(ctx, AV_LOG_INFO, "stereo3d: ");
++            dump_stereo3d(ctx, &sd);
++            break;
+         default:
+             av_log(ctx, AV_LOG_WARNING,
+                    "unknown side data type %d (%d bytes)", sd.type, sd.size);
+-- 
+1.9.1
+
diff --git a/debian/patches/post-release/0029-matroskadec-parse-stereo-mode-on-decoding.patch b/debian/patches/post-release/0029-matroskadec-parse-stereo-mode-on-decoding.patch
new file mode 100644
index 0000000..4cbad2c
--- /dev/null
+++ b/debian/patches/post-release/0029-matroskadec-parse-stereo-mode-on-decoding.patch
@@ -0,0 +1,175 @@
+From 152e09fde7f6dd5ea92575c3a8e61129148c8478 Mon Sep 17 00:00:00 2001
+From: Vittorio Giovara <vittorio.giovara at gmail.com>
+Date: Tue, 12 Aug 2014 22:28:49 +0100
+Subject: [PATCH 29/37] matroskadec: parse stereo mode on decoding
+
+Convert the Matroska stereo format to the Stereo3D format, and add a
+Stereo3D side data to the stream.
+
+Bump the doctype version supported.
+
+Bug-Id: 728 / https://bugs.debian.org/757185
+---
+ Changelog                 |  1 +
+ libavformat/matroska.c    | 64 +++++++++++++++++++++++++++++++++++++++++++++++
+ libavformat/matroska.h    |  3 +++
+ libavformat/matroskadec.c | 12 +++++++--
+ 4 files changed, 78 insertions(+), 2 deletions(-)
+
+diff --git a/Changelog b/Changelog
+index ea9d721..da12f59 100644
+--- a/Changelog
++++ b/Changelog
+@@ -31,6 +31,7 @@ version <next>:
+ - Icecast protocol
+ - request icecast metadata by default
+ - support for using metadata in stream specifiers in avtools
++- matroska 3d support
+ 
+ 
+ version 10:
+diff --git a/libavformat/matroska.c b/libavformat/matroska.c
+index 9628abc..237f26f 100644
+--- a/libavformat/matroska.c
++++ b/libavformat/matroska.c
+@@ -19,6 +19,8 @@
+  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+  */
+ 
++#include "libavutil/stereo3d.h"
++
+ #include "matroska.h"
+ 
+ const CodecTags ff_mkv_codec_tags[]={
+@@ -103,3 +105,65 @@ const AVMetadataConv ff_mkv_metadata_conv[] = {
+     { "PART_NUMBER"   , "track"  },
+     { 0 }
+ };
++
++int ff_mkv_stereo3d_conv(AVStream *st, MatroskaVideoStereoModeType stereo_mode)
++{
++    AVPacketSideData *sd, *tmp;
++    AVStereo3D *stereo;
++
++    stereo = av_stereo3d_alloc();
++    if (!stereo)
++        return AVERROR(ENOMEM);
++
++    tmp = av_realloc_array(st->side_data, st->nb_side_data + 1, sizeof(*tmp));
++    if (!tmp) {
++        av_freep(&stereo);
++        return AVERROR(ENOMEM);
++    }
++    st->side_data = tmp;
++    st->nb_side_data++;
++
++    sd = &st->side_data[st->nb_side_data - 1];
++    sd->type = AV_PKT_DATA_STEREO3D;
++    sd->data = (uint8_t *)stereo;
++    sd->size = sizeof(*stereo);
++
++    // note: the missing breaks are intentional
++    switch (stereo_mode) {
++    case MATROSKA_VIDEO_STEREOMODE_TYPE_MONO:
++        stereo->type = AV_STEREO3D_2D;
++        break;
++    case MATROSKA_VIDEO_STEREOMODE_TYPE_RIGHT_LEFT:
++        stereo->flags |= AV_STEREO3D_FLAG_INVERT;
++    case MATROSKA_VIDEO_STEREOMODE_TYPE_LEFT_RIGHT:
++        stereo->type = AV_STEREO3D_SIDEBYSIDE;
++        break;
++    case MATROSKA_VIDEO_STEREOMODE_TYPE_BOTTOM_TOP:
++        stereo->flags |= AV_STEREO3D_FLAG_INVERT;
++    case MATROSKA_VIDEO_STEREOMODE_TYPE_TOP_BOTTOM:
++        stereo->type = AV_STEREO3D_TOPBOTTOM;
++        break;
++    case MATROSKA_VIDEO_STEREOMODE_TYPE_CHECKERBOARD_RL:
++        stereo->flags |= AV_STEREO3D_FLAG_INVERT;
++    case MATROSKA_VIDEO_STEREOMODE_TYPE_CHECKERBOARD_LR:
++        stereo->type = AV_STEREO3D_CHECKERBOARD;
++        break;
++    case MATROSKA_VIDEO_STEREOMODE_TYPE_ROW_INTERLEAVED_RL:
++        stereo->flags |= AV_STEREO3D_FLAG_INVERT;
++    case MATROSKA_VIDEO_STEREOMODE_TYPE_ROW_INTERLEAVED_LR:
++        stereo->type = AV_STEREO3D_LINES;
++        break;
++    case MATROSKA_VIDEO_STEREOMODE_TYPE_COL_INTERLEAVED_RL:
++        stereo->flags |= AV_STEREO3D_FLAG_INVERT;
++    case MATROSKA_VIDEO_STEREOMODE_TYPE_COL_INTERLEAVED_LR:
++        stereo->type = AV_STEREO3D_COLUMNS;
++        break;
++    case MATROSKA_VIDEO_STEREOMODE_TYPE_BOTH_EYES_BLOCK_RL:
++        stereo->flags |= AV_STEREO3D_FLAG_INVERT;
++    case MATROSKA_VIDEO_STEREOMODE_TYPE_BOTH_EYES_BLOCK_LR:
++        stereo->type = AV_STEREO3D_FRAMESEQUENCE;
++        break;
++    }
++
++    return 0;
++}
+diff --git a/libavformat/matroska.h b/libavformat/matroska.h
+index 667f92a..d8f4f8e 100644
+--- a/libavformat/matroska.h
++++ b/libavformat/matroska.h
+@@ -237,6 +237,7 @@ typedef enum {
+   MATROSKA_VIDEO_STEREOMODE_TYPE_ANAGLYPH_GREEN_MAG = 12,
+   MATROSKA_VIDEO_STEREOMODE_TYPE_BOTH_EYES_BLOCK_LR = 13,
+   MATROSKA_VIDEO_STEREOMODE_TYPE_BOTH_EYES_BLOCK_RL = 14,
++  MATROSKA_VIDEO_STEREOMODE_TYPE_NB,
+ } MatroskaVideoStereoModeType;
+ 
+ /*
+@@ -255,4 +256,6 @@ extern const CodecTags ff_mkv_codec_tags[];
+ extern const CodecMime ff_mkv_mime_tags[];
+ extern const AVMetadataConv ff_mkv_metadata_conv[];
+ 
++int ff_mkv_stereo3d_conv(AVStream *st, MatroskaVideoStereoModeType stereo_mode);
++
+ #endif /* AVFORMAT_MATROSKA_H */
+diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
+index 431fe57..59fc34b 100644
+--- a/libavformat/matroskadec.c
++++ b/libavformat/matroskadec.c
+@@ -123,6 +123,7 @@ typedef struct {
+     uint64_t pixel_width;
+     uint64_t pixel_height;
+     uint64_t fourcc;
++    uint64_t stereo_mode;
+ } MatroskaTrackVideo;
+ 
+ typedef struct {
+@@ -319,7 +320,7 @@ static EbmlSyntax matroska_track_video[] = {
+     { MATROSKA_ID_VIDEOPIXELCROPR,     EBML_NONE },
+     { MATROSKA_ID_VIDEODISPLAYUNIT,    EBML_NONE },
+     { MATROSKA_ID_VIDEOFLAGINTERLACED, EBML_NONE },
+-    { MATROSKA_ID_VIDEOSTEREOMODE,     EBML_NONE },
++    { MATROSKA_ID_VIDEOSTEREOMODE,     EBML_UINT,  0, offsetof(MatroskaTrackVideo, stereo_mode), { .u = MATROSKA_VIDEO_STEREOMODE_TYPE_NB } },
+     { MATROSKA_ID_VIDEOASPECTRATIO,    EBML_NONE },
+     { 0 }
+ };
+@@ -1786,6 +1787,13 @@ static int matroska_parse_tracks(AVFormatContext *s)
+                 av_reduce(&st->avg_frame_rate.num, &st->avg_frame_rate.den,
+                           1000000000, track->default_duration, 30000);
+             }
++            // add stream level stereo3d side data if it is a supported format
++            if (track->video.stereo_mode < MATROSKA_VIDEO_STEREOMODE_TYPE_NB &&
++                track->video.stereo_mode != 10 && track->video.stereo_mode != 12) {
++                int ret = ff_mkv_stereo3d_conv(st, track->video.stereo_mode);
++                if (ret < 0)
++                    return ret;
++            }
+         } else if (track->type == MATROSKA_TRACK_TYPE_AUDIO) {
+             st->codec->codec_type  = AVMEDIA_TYPE_AUDIO;
+             st->codec->sample_rate = track->audio.out_samplerate;
+@@ -1821,7 +1829,7 @@ static int matroska_read_header(AVFormatContext *s)
+         ebml.version         > EBML_VERSION      ||
+         ebml.max_size        > sizeof(uint64_t)  ||
+         ebml.id_length       > sizeof(uint32_t)  ||
+-        ebml.doctype_version > 2) {
++        ebml.doctype_version > 3) {
+         av_log(matroska->ctx, AV_LOG_ERROR,
+                "EBML header using unsupported features\n"
+                "(EBML version %"PRIu64", doctype %s, doc version %"PRIu64")\n",
+-- 
+1.9.1
+
diff --git a/debian/patches/post-release/0030-matroskaenc-convert-avstream-stereo3d-side-data-duri.patch b/debian/patches/post-release/0030-matroskaenc-convert-avstream-stereo3d-side-data-duri.patch
new file mode 100644
index 0000000..6ecf336
--- /dev/null
+++ b/debian/patches/post-release/0030-matroskaenc-convert-avstream-stereo3d-side-data-duri.patch
@@ -0,0 +1,137 @@
+From 5b740d1eaa63ebc9d210f0c348daa66fcd50a275 Mon Sep 17 00:00:00 2001
+From: Vittorio Giovara <vittorio.giovara at gmail.com>
+Date: Tue, 5 Aug 2014 11:16:17 +0100
+Subject: [PATCH 30/37] matroskaenc: convert avstream stereo3d side data during
+ encoding
+
+Write the StereoMode Embl to bitstream.
+---
+ libavformat/matroskaenc.c | 94 ++++++++++++++++++++++++++++++++++++++---------
+ 1 file changed, 76 insertions(+), 18 deletions(-)
+
+diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
+index cc4e71a..225f6a6 100644
+--- a/libavformat/matroskaenc.c
++++ b/libavformat/matroskaenc.c
+@@ -43,6 +43,7 @@
+ #include "libavutil/opt.h"
+ #include "libavutil/random_seed.h"
+ #include "libavutil/samplefmt.h"
++#include "libavutil/stereo3d.h"
+ 
+ #include "libavcodec/xiph.h"
+ #include "libavcodec/mpeg4audio.h"
+@@ -624,25 +625,78 @@ static int mkv_write_codecprivate(AVFormatContext *s, AVIOContext *pb,
+     return ret;
+ }
+ 
+-static void mkv_write_stereo_mode(AVIOContext *pb, uint8_t stereo_fmt,
+-                                  int mode)
++static int mkv_write_stereo_mode(AVFormatContext *s, AVIOContext *pb,
++                                 AVStream *st, int mode)
+ {
+-    int valid_fmt = 0;
++    int i;
++    AVDictionaryEntry *tag;
++    MatroskaVideoStereoModeType format = MATROSKA_VIDEO_STEREOMODE_TYPE_NB;
++
++    // convert metadata into proper side data and add it to the stream
++    if ((tag = av_dict_get(s->metadata, "stereo_mode", NULL, 0))) {
++        int stereo_mode = atoi(tag->value);
++        if (stereo_mode < MATROSKA_VIDEO_STEREOMODE_TYPE_NB &&
++            stereo_mode != 10 && stereo_mode != 12) {
++            int ret = ff_mkv_stereo3d_conv(st, stereo_mode);
++            if (ret < 0)
++                return ret;
++        }
++    }
+ 
+-    switch (mode) {
+-    case MODE_WEBM:
+-        if (stereo_fmt <= MATROSKA_VIDEO_STEREOMODE_TYPE_TOP_BOTTOM ||
+-            stereo_fmt == MATROSKA_VIDEO_STEREOMODE_TYPE_RIGHT_LEFT)
+-            valid_fmt = 1;
+-        break;
+-    case MODE_MATROSKAv2:
+-        if (stereo_fmt <= MATROSKA_VIDEO_STEREOMODE_TYPE_BOTH_EYES_BLOCK_RL)
+-            valid_fmt = 1;
+-        break;
++    for (i = 0; i < st->nb_side_data; i++) {
++        AVPacketSideData sd = st->side_data[i];
++        if (sd.type == AV_PKT_DATA_STEREO3D) {
++            AVStereo3D *stereo = (AVStereo3D *)sd.data;
++
++            switch (stereo->type) {
++            case AV_STEREO3D_2D:
++                format = MATROSKA_VIDEO_STEREOMODE_TYPE_MONO;
++                break;
++            case AV_STEREO3D_SIDEBYSIDE:
++                format = (stereo->flags & AV_STEREO3D_FLAG_INVERT)
++                    ? MATROSKA_VIDEO_STEREOMODE_TYPE_RIGHT_LEFT
++                    : MATROSKA_VIDEO_STEREOMODE_TYPE_LEFT_RIGHT;
++                break;
++            case AV_STEREO3D_TOPBOTTOM:
++                format = MATROSKA_VIDEO_STEREOMODE_TYPE_TOP_BOTTOM;
++                if (stereo->flags & AV_STEREO3D_FLAG_INVERT)
++                    format--;
++                break;
++            case AV_STEREO3D_CHECKERBOARD:
++                format = MATROSKA_VIDEO_STEREOMODE_TYPE_CHECKERBOARD_LR;
++                if (stereo->flags & AV_STEREO3D_FLAG_INVERT)
++                    format--;
++                break;
++            case AV_STEREO3D_LINES:
++                format = MATROSKA_VIDEO_STEREOMODE_TYPE_ROW_INTERLEAVED_LR;
++                if (stereo->flags & AV_STEREO3D_FLAG_INVERT)
++                    format--;
++                break;
++            case AV_STEREO3D_COLUMNS:
++                format = MATROSKA_VIDEO_STEREOMODE_TYPE_COL_INTERLEAVED_LR;
++                if (stereo->flags & AV_STEREO3D_FLAG_INVERT)
++                    format--;
++                break;
++            case AV_STEREO3D_FRAMESEQUENCE:
++                format = MATROSKA_VIDEO_STEREOMODE_TYPE_BOTH_EYES_BLOCK_LR;
++                if (stereo->flags & AV_STEREO3D_FLAG_INVERT)
++                    format++;
++                break;
++            }
++
++            break;
++        }
+     }
+ 
+-    if (valid_fmt)
+-        put_ebml_uint (pb, MATROSKA_ID_VIDEOSTEREOMODE, stereo_fmt);
++    if (mode == MODE_WEBM &&
++        (format > MATROSKA_VIDEO_STEREOMODE_TYPE_TOP_BOTTOM &&
++         format != MATROSKA_VIDEO_STEREOMODE_TYPE_RIGHT_LEFT))
++        format = MATROSKA_VIDEO_STEREOMODE_TYPE_NB;
++
++    if (format < MATROSKA_VIDEO_STEREOMODE_TYPE_NB)
++        put_ebml_uint(pb, MATROSKA_ID_VIDEOSTEREOMODE, format);
++
++    return 0;
+ }
+ 
+ static int mkv_write_track(AVFormatContext *s, MatroskaMuxContext *mkv,
+@@ -743,9 +797,13 @@ static int mkv_write_track(AVFormatContext *s, MatroskaMuxContext *mkv,
+         // XXX: interlace flag?
+         put_ebml_uint (pb, MATROSKA_ID_VIDEOPIXELWIDTH , codec->width);
+         put_ebml_uint (pb, MATROSKA_ID_VIDEOPIXELHEIGHT, codec->height);
+-        if ((tag = av_dict_get(s->metadata, "stereo_mode", NULL, 0))) {
+-            mkv_write_stereo_mode(pb, atoi(tag->value), mkv->mode);
+-        }
++
++        // check both side data and metadata for stereo information,
++        // write the result to the bitstream if any is found
++        ret = mkv_write_stereo_mode(s, pb, st, mkv->mode);
++        if (ret < 0)
++            return ret;
++
+         if (st->sample_aspect_ratio.num) {
+             int d_width = codec->width*av_q2d(st->sample_aspect_ratio);
+             put_ebml_uint(pb, MATROSKA_ID_VIDEODISPLAYWIDTH , d_width);
+-- 
+1.9.1
+
diff --git a/debian/patches/post-release/0031-license-Mention-that-vf_interlace-is-GPL-not-LGPL.patch b/debian/patches/post-release/0031-license-Mention-that-vf_interlace-is-GPL-not-LGPL.patch
new file mode 100644
index 0000000..bfff134
--- /dev/null
+++ b/debian/patches/post-release/0031-license-Mention-that-vf_interlace-is-GPL-not-LGPL.patch
@@ -0,0 +1,26 @@
+From 4cde8bae49275edb2815b98cc3404238bb5799dd Mon Sep 17 00:00:00 2001
+From: Diego Biurrun <diego at biurrun.de>
+Date: Wed, 27 Aug 2014 13:14:20 +0200
+Subject: [PATCH 31/37] license: Mention that vf_interlace is GPL, not LGPL
+
+(cherry picked from commit 9e8bbe7d4d1dcd5fec491dbfbb98ed2038a7bed5)
+Signed-off-by: Diego Biurrun <diego at biurrun.de>
+---
+ LICENSE | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/LICENSE b/LICENSE
+index fb29178..701e6e1 100644
+--- a/LICENSE
++++ b/LICENSE
+@@ -21,6 +21,7 @@ Specifically, the GPL parts of Libav are
+     - vf_cropdetect.c
+     - vf_delogo.c
+     - vf_hqdn3d.c
++    - vf_interlace.c
+ 
+ Should you, for whatever reason, prefer to use version 3 of the (L)GPL, then
+ the configure parameter --enable-version3 will activate this licensing option
+-- 
+1.9.1
+
diff --git a/debian/patches/post-release/0032-Prepare-for-11_beta2-Release.patch b/debian/patches/post-release/0032-Prepare-for-11_beta2-Release.patch
new file mode 100644
index 0000000..5039fe0
--- /dev/null
+++ b/debian/patches/post-release/0032-Prepare-for-11_beta2-Release.patch
@@ -0,0 +1,19 @@
+From b5d4f49e3cb1a13642542f08c8c54791c3d54dfb Mon Sep 17 00:00:00 2001
+From: Reinhard Tartler <siretart at tauware.de>
+Date: Sat, 30 Aug 2014 11:51:28 -0400
+Subject: [PATCH 32/37] Prepare for 11_beta2 Release
+
+---
+ RELEASE | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/RELEASE b/RELEASE
+index 929c0bd..d826aee 100644
+--- a/RELEASE
++++ b/RELEASE
+@@ -1 +1,2 @@
+ 11_beta1
++11_beta2
+-- 
+1.9.1
+
diff --git a/debian/patches/post-release/0033-avcodec-fix-missing-doxygen-comment-marker.patch b/debian/patches/post-release/0033-avcodec-fix-missing-doxygen-comment-marker.patch
new file mode 100644
index 0000000..e3bddac
--- /dev/null
+++ b/debian/patches/post-release/0033-avcodec-fix-missing-doxygen-comment-marker.patch
@@ -0,0 +1,25 @@
+From 480633c6c2e1434c981cc887c6d54d502e24d6d7 Mon Sep 17 00:00:00 2001
+From: Michael Niedermayer <michaelni at gmx.at>
+Date: Mon, 1 Sep 2014 00:48:50 +0100
+Subject: [PATCH 33/37] avcodec: fix missing doxygen comment marker
+
+---
+ libavcodec/avcodec.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
+index 14440fe..253e45a 100644
+--- a/libavcodec/avcodec.h
++++ b/libavcodec/avcodec.h
+@@ -912,7 +912,7 @@ enum AVPacketSideDataType {
+      */
+     AV_PKT_DATA_DISPLAYMATRIX,
+ 
+-    /*
++    /**
+      * This side data should be associated with a video stream and contains
+      * Stereoscopic 3D information in form of the AVStereo3D struct.
+      */
+-- 
+1.9.1
+
diff --git a/debian/patches/post-release/0034-Add-release-notes-for-11.patch b/debian/patches/post-release/0034-Add-release-notes-for-11.patch
new file mode 100644
index 0000000..dd0a372
--- /dev/null
+++ b/debian/patches/post-release/0034-Add-release-notes-for-11.patch
@@ -0,0 +1,152 @@
+From 9d3e69ae3013027b1d4d79edf2ed5db00e4d5462 Mon Sep 17 00:00:00 2001
+From: Anton Khirnov <anton at khirnov.net>
+Date: Mon, 18 Aug 2014 18:04:47 +0000
+Subject: [PATCH 34/37] Add release notes for 11.
+
+(cherry picked from commit 12f0388f9cb32016ac0dacaeca631b088b29bb96)
+Signed-off-by: Diego Biurrun <diego at biurrun.de>
+---
+ doc/RELEASE_NOTES | 109 +++++++++++++++++++++++++-----------------------------
+ 1 file changed, 50 insertions(+), 59 deletions(-)
+
+diff --git a/doc/RELEASE_NOTES b/doc/RELEASE_NOTES
+index 478bc1d..bda4789 100644
+--- a/doc/RELEASE_NOTES
++++ b/doc/RELEASE_NOTES
+@@ -1,51 +1,50 @@
+ Release Notes
+ =============
+ 
+-* 10 "Eks"
++* 11 "One Louder"
+ 
+ General notes
+ -------------
+ 
+-One of the main features of this release is the addition of reference-counted
+-data buffers to Libav and their use in various structures. Specifically, the
+-data buffers used by AVPacket and AVFrame can now be reference counted, which
+-should allow to significantly simplify many use cases. In addition,
+-reference-counted AVFrames can now be used in libavfilter, avoiding the need
+-for a separate libavfilter-specific frame structure. Frames can now be passed
+-straight from the decoders into filters or from filters to encoders.
++With this release we are trying to answer the numerous calls from our users for
++shorter development cycles. From now on we will aim for approximately two major
++releases per year.
+ 
+-These additions made it necessary to bump the major versions of libavcodec,
+-libavformat, libavdevice, libavfilter, and libavutil, which was accompanied by
+-dropping some old deprecated APIs. These libraries are thus not ABI- or API-
+-compatible with the previous release. All the other libraries (libavresample
+-and libswscale) should be both ABI- and API-compatible.
++Libav 11 is API-, but not ABI-compatible with the previous major release. This
++means that the code using our libraries needs to be rebuilt, but no source
++changes should be required. Note however, that a number of old APIs remain
++deprecated and will be dropped in the near future. All users are strongly
++encouraged to update their code as soon as possible. The doc/APIchanges file in
++the Libav source tree and the migration guide on the wiki should help with
++migration to the new APIs. If those are not sufficient, do not hesitate to
++contact us on IRC or through the user mailing list.
+ 
+-Another major point is the inclusion of the HEVC (AKA H.265, the successor of
+-H.264) decoder in the main codebase. It was started in 2012 as a Libav Google
+-Summer of Code project by Guillaume Martres and subsequently completed with
+-the assistance of the OpenHEVC project and several Libav developers.
++One specific API issue in libavformat deserves mentioning here. When using
++libavcodec for decoding or encoding and libavformat for demuxing or muxing,
++the standard practice was to use the stream codec context (AVStream.codec) for
++actual decoding or encoding. There are multiple problems with this pattern
++(the main one is that the decoder/demuxer or encoder/muxer are not necessarily
++synchronized and may overwrite each other's state), so it is now strongly
++discouraged and will likely be deprecated in the future. Users should instead
++allocate a separate decoding or encoding context and populate it from the
++demuxing codec context (or the reverse for encoding) with the
++avcodec_copy_context() function.
+ 
+-As usual, this release also contains support for other new formats, many smaller
+-new features and countless bug fixes. We can highlight a native VP9 decoder,
+-with encoding provided through libvpx, native decoders for WebP, JPEG 2000, and
+-AIC, as well as improved WavPack support with encoding through libwavpack,
+-support for more AAC flavors (LD - low delay, ELD - enhanced low delay), slice
+-multithreading in libavfilter, or muxing chapters in ASF. Furthermore a few new
+-filters have been introduced, namely compand, to change audio dynamics, framepack,
+-to create stereoscopic videos, asetpts, to set audio pts, and interlace, to convert
+-progressive video to interlaced. Finally there is more fine-grained detection of
+-host and target libc, which should allow better portability to various cross
+-compilation scenarios.
++The main highlights of this release include native Opus, VP7, OpenEXR, and On2
++AVC decoders, HEVC encoding through libx265, new APIs for exporting ReplayGain
++and display transformation metadata and countless bug fixes. A large effort was
++also expended on internal cleanups which are not very visible to our users,
++but should make the codebase cleaner, safer and easier to maintain and extend.
++One point worth mentioning is refactoring the large monolithic framework for
++architecture-specific codec optimizations into small blocks, which reduces the
++size of configurations that selectively enable or disable certain codecs.
+ 
+-See the Changelog file for a fuller list of significant changes.
+-
+-Please note that our policy on bug reports has not changed. We still only accept
+-bug reports against HEAD of the Libav trunk repository. If you are experiencing
+-issues with any formally released version of Libav, please try a current version
+-of the development code to check if the issue still exists. If it does, make
+-your report against the development code following the usual bug reporting
+-guidelines.
++The avserver streaming tool, which has not been maintained for many years and
++was mostly broken, was removed from the tree. It was decided that it is a
++significant maintenance burden and that we do our users no service by pretending
++to support it, while we in fact do not.
+ 
++See the Changelog file for a more extensive list of significant changes.
+ 
+ API changes
+ -----------
+@@ -54,31 +53,23 @@ A number of additional APIs have been introduced and some existing functions
+ have been deprecated and are scheduled for removal in the next release.
+ Significant API changes include:
+ 
+-[libavutil]
+-+ added the reference-counted buffers API (buffers.h)
+-+ moved the AVFrame struct to libavutil and added a new API for working with
+-  reference-counted AVFrames (frame.h)
+-
+ [libavcodec]
+-+ added an API for working with reference-counted AVPackets (av_packet_*)
+-+- converted VDPAU to the hwaccel framework; the old way of using VDPAU is no
+-   longer supported
+-- old audio encoding and decoding APIs removed
+-- old video encoding API removed
+-- deprecated enum CodecID removed (enum AVCodecID should be used instead)
+-- deprecated audio resampling API removed (libavresample should be used
+-  instead)
+++  Added the avcodec_copy_context() function that must from now on be used for
++   freeing codec contexts.
+++- Added a new VDA hardware acceleration API, since the old one was broken and
++   not fixable in a compatible way. Deprecated the old VDA API.
++
++[libavformat]
+++  Added support for exporting stream-global (as opposed to per-packet) side
++   data. This feature is now used by some demuxers to export ReplayGain or
++   display transformation matrix (aka rotation) or stereoscopic 3D mode.
+++  Added an API for live metadata updates through event flags.
+++- Changed the way to provide a hint about the desired timebase to muxers.
++   Previously it was done by setting AVStream.codec.time_base. Now callers
++   should set AVStream.time_base.
+ 
+-[libavfilter]
+-+- replaced AVFilterBufferRef with AVFrame; AVFilterBufferRef and everything
+-   related to it still exists, but is deprecated
+-+ converted all filters to use the AVOptions system for configuration, it is
+-  now possible to query the supported options, their values and set them
+-  directly with av_opt_*
+-+ added a slice multithreading framework
+-+- merged avfiltergraph.h to avfilter.h, using AVFilterGraph is now explicitly
+-   mandatory (it was implicitly required even before); added new API for
+-   allocating and initializing filters
++[libavresample]
+++ Added an API for working with AVFrames.
+ 
+ Please see the file doc/APIchanges for details along with similar
+ programmer-centric information.
+-- 
+1.9.1
+
diff --git a/debian/patches/post-release/0035-Mark-11-release-in-the-changelog.patch b/debian/patches/post-release/0035-Mark-11-release-in-the-changelog.patch
new file mode 100644
index 0000000..2f249ae
--- /dev/null
+++ b/debian/patches/post-release/0035-Mark-11-release-in-the-changelog.patch
@@ -0,0 +1,54 @@
+From 07b0ccf5116c3b2ce1ccfed4c8c593641a815fd6 Mon Sep 17 00:00:00 2001
+From: Diego Biurrun <diego at biurrun.de>
+Date: Wed, 3 Sep 2014 00:43:29 +0200
+Subject: [PATCH 35/37] Mark 11 release in the changelog
+
+Also fix some typos in the entries for the 11 release.
+
+(cherry picked from commit d9792b773516a560ecb99694b8ee745a50027fac)
+Signed-off-by: Diego Biurrun <diego at biurrun.de>
+---
+ Changelog | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/Changelog b/Changelog
+index da12f59..73e8378 100644
+--- a/Changelog
++++ b/Changelog
+@@ -1,7 +1,7 @@
+ Entries are sorted chronologically from oldest to youngest within each release,
+ releases are sorted from youngest to oldest.
+ 
+-version <next>:
++version 11:
+ - libx265 encoder
+ - shuffleplanes filter
+ - replaygain data export
+@@ -9,7 +9,7 @@ version <next>:
+ - BRender PIX image decoder
+ - Amazing Studio PAF playback support
+ - XBM decoder
+-- bmp standalone parser
++- BMP standalone parser
+ - OpenEXR image decoder
+ - support encoding and decoding 4-channel SGI images
+ - support decoding 16-bit RLE SGI images
+@@ -26,12 +26,12 @@ version <next>:
+ - support for decoding through DXVA2 in avconv
+ - libbs2b-based stereo-to-binaural audio filter
+ - native Opus decoder
+-- display matrix export and rotation api
++- display matrix export and rotation API
+ - drop avserver, it was unmaintained for years and largely broken
+ - Icecast protocol
+-- request icecast metadata by default
++- request Icecast metadata by default
+ - support for using metadata in stream specifiers in avtools
+-- matroska 3d support
++- Matroska 3D support
+ 
+ 
+ version 10:
+-- 
+1.9.1
+
diff --git a/debian/patches/post-release/0036-Fix-RELEASE-identification.patch b/debian/patches/post-release/0036-Fix-RELEASE-identification.patch
new file mode 100644
index 0000000..0385b18
--- /dev/null
+++ b/debian/patches/post-release/0036-Fix-RELEASE-identification.patch
@@ -0,0 +1,20 @@
+From 7d8ebb877408e03beb9dd6b99a51291b17d9a969 Mon Sep 17 00:00:00 2001
+From: Sean McGovern <gseanmcg at gmail.com>
+Date: Fri, 5 Sep 2014 01:04:21 -0400
+Subject: [PATCH 36/37] Fix RELEASE identification
+
+This was accidentally left over in b5d4f49e3cb1a13642542f08c8c54791c3d54dfb
+---
+ RELEASE | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/RELEASE b/RELEASE
+index d826aee..27383c3 100644
+--- a/RELEASE
++++ b/RELEASE
+@@ -1,2 +1 @@
+-11_beta1
+ 11_beta2
+-- 
+1.9.1
+
diff --git a/debian/patches/post-release/0037-doc-Fix-syntax-and-logical-errors-in-avconv-stream-c.patch b/debian/patches/post-release/0037-doc-Fix-syntax-and-logical-errors-in-avconv-stream-c.patch
new file mode 100644
index 0000000..040bb51
--- /dev/null
+++ b/debian/patches/post-release/0037-doc-Fix-syntax-and-logical-errors-in-avconv-stream-c.patch
@@ -0,0 +1,36 @@
+From 4f2d4b98fc9877f8618c1524570b230e51e8d474 Mon Sep 17 00:00:00 2001
+From: Diego Biurrun <diego at biurrun.de>
+Date: Wed, 10 Sep 2014 18:38:15 +0200
+Subject: [PATCH 37/37] doc: Fix syntax and logical errors in avconv stream
+ combination example
+
+Bug-Id: 661
+CC: libav-stable at libav.org
+(cherry picked from commit 775a0b04f0cf8102fe322b2ee03fe1a0633dea04)
+Signed-off-by: Diego Biurrun <diego at biurrun.de>
+---
+ doc/avconv.texi | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/doc/avconv.texi b/doc/avconv.texi
+index 1156176..37733bc 100644
+--- a/doc/avconv.texi
++++ b/doc/avconv.texi
+@@ -1129,11 +1129,11 @@ only formats accepting a normal integer are suitable.
+ You can put many streams of the same type in the output:
+ 
+ @example
+-avconv -i test1.avi -i test2.avi -map 0.3 -map 0.2 -map 0.1 -map 0.0 -c copy test12.nut
++avconv -i test1.avi -i test2.avi -map 1:1 -map 1:0 -map 0:1 -map 0:0 -c copy -y test12.nut
+ @end example
+ 
+-The resulting output file @file{test12.avi} will contain first four streams from
+-the input file in reverse order.
++The resulting output file @file{test12.nut} will contain the first four streams
++from the input files in reverse order.
+ 
+ @item
+ To force CBR video output:
+-- 
+1.9.1
+
diff --git a/debian/patches/series b/debian/patches/series
index 3199e41..7793bbc 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1,38 @@
 03-disable-configuration-warnings.patch
+post-release/0001-tiff-Return-proper-error-for-missing-LZMA-compressio.patch
+post-release/0002-proresenc-Remove-unneeded-parameters-from-encode_alp.patch
+post-release/0003-proresenc-Report-buffer-overflow.patch
+post-release/0004-proresenc-Realloc-if-buffer-is-too-small.patch
+post-release/0005-proresenc-Properly-account-for-alpha-plane.patch
+post-release/0006-mov-Drop-unused-parameter-from-ff_mov_read_esds.patch
+post-release/0007-vfwcap-Drop-fallback-VfW-defines.patch
+post-release/0008-vc1-Add-missing-parentheses-to-conditions-in-vc1_dec.patch
+post-release/0009-pcm-Drop-unused-variable-from-DECODE_PLANAR-macro.patch
+post-release/0010-pcm-Drop-av_unused-attribute-from-variable-that-is-a.patch
+post-release/0011-vsrc_movie-Avoid-a-variable-indirection-in-movie_get.patch
+post-release/0012-avfilter-Remove-unused-variable-from-ff_get_video_bu.patch
+post-release/0013-Revert-lavf-eliminate-ff_get_audio_frame_size.patch
+post-release/0014-electronicarts-do-not-fail-on-zero-sized-chunks.patch
+post-release/0015-vsrc_movie-Adjust-a-silly-typo-from-b977b287f61fea48.patch
+post-release/0016-error_resilience-Drop-asserts-from-guess_mv.patch
+post-release/0017-mpeg12enc-Add-missing-include-for-PICT_FRAME.patch
+post-release/0018-setpts-Add-missing-inttypes.h-include-for-PRId64.patch
+post-release/0019-vfwcap-Add-fallback-define-for-HWND_MESSAGE.patch
+post-release/0020-vc1-Fix-the-skip-condition.patch
+post-release/0021-mpegenc-limit-the-maximum-muxrate.patch
+post-release/0022-avconv-fix-the-muxrate-values-for-target.patch
+post-release/0023-avconv-fix-parsing-the-AVOptions-for-target.patch
+post-release/0024-vc1-Initialize-start_code_found-to-0.patch
+post-release/0025-pulse-Add-a-wallclock-option-to-be-compatible-with-o.patch
+post-release/0026-doc-APIchanges-fill-in-missing-hashes-and-dates.patch
+post-release/0027-matroska-list-supported-extensions.patch
+post-release/0028-avcodec-add-stream-level-stereo3d-side-data.patch
+post-release/0029-matroskadec-parse-stereo-mode-on-decoding.patch
+post-release/0030-matroskaenc-convert-avstream-stereo3d-side-data-duri.patch
+post-release/0031-license-Mention-that-vf_interlace-is-GPL-not-LGPL.patch
+post-release/0032-Prepare-for-11_beta2-Release.patch
+post-release/0033-avcodec-fix-missing-doxygen-comment-marker.patch
+post-release/0034-Add-release-notes-for-11.patch
+post-release/0035-Mark-11-release-in-the-changelog.patch
+post-release/0036-Fix-RELEASE-identification.patch
+post-release/0037-doc-Fix-syntax-and-logical-errors-in-avconv-stream-c.patch

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list