[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