[SCM] FFmpeg packaging branch, master, updated. debian/0.5+svn20090706-6-22-gef11c38
siretart at users.alioth.debian.org
siretart at users.alioth.debian.org
Wed Mar 3 21:33:59 UTC 2010
The following commit has been merged in the master branch:
commit d1c4d8bee71333d014292e012251cb0f66357978
Author: Reinhard Tartler <siretart at tauware.de>
Date: Wed Mar 3 10:52:03 2010 +0100
remove patches that got merged into 0.5.1
diff --git a/debian/patches/100_kfreebsd b/debian/patches/100_kfreebsd
deleted file mode 100644
index 990d42c..0000000
--- a/debian/patches/100_kfreebsd
+++ /dev/null
@@ -1,17 +0,0 @@
-From: Aurelien Jarno <aurel32 at debian.org>
-Subject: [PATCH] Fix FTBFS for kfreebsd
-X-Upstream-Discussion: http://comments.gmane.org/gmane.comp.video.ffmpeg.devel/90686
-Forwarded: http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/103713
-
-==========================================================================
---- a/configure
-+++ b/configure
-@@ -1649,6 +1649,8 @@ case $target_os in
- interix)
- disable vhook
- ;;
-+ gnu/kfreebsd)
-+ ;;
-
- *)
- die "Unknown OS '$target_os'."
diff --git a/debian/patches/aac-regression.patch b/debian/patches/aac-regression.patch
deleted file mode 100644
index 53dfde3..0000000
--- a/debian/patches/aac-regression.patch
+++ /dev/null
@@ -1,222 +0,0 @@
-Author: Reinhard Tartler <siretart at tauware.de>
-
-fix aac playback regression
-
-patch taken from upstream svn:
-
-------------------------------------------------------------------------
-r17856 | alexc | 2009-03-06 20:47:01 +0100 (Fr, 06. Mär 2009) | 3 lines
-
-Fix the channel allocation bug/assumption (issue 800).
-Approved by Rob on IRC.
-
-------------------------------------------------------------------------
-r17860 | alexc | 2009-03-06 23:36:24 +0100 (Fr, 06. Mär 2009) | 2 lines
-
-If we get an error from ff_aac_parse_header() we should not trust the
-header info that it provides.
-
-------------------------------------------------------------------------
-r17861 | alexc | 2009-03-06 23:37:21 +0100 (Fr, 06. Mär 2009) | 2 lines
-
-Re-indent after last commit.
-
-------------------------------------------------------------------------
-
-diff --git a/libavcodec/aac.c b/libavcodec/aac.c
-index 80195c0..b6759dd 100644
---- a/libavcodec/aac.c
-+++ b/libavcodec/aac.c
-@@ -97,6 +97,56 @@ static VLC vlc_scalefactors;
- static VLC vlc_spectral[11];
-
-
-+static ChannelElement* get_che(AACContext *ac, int type, int elem_id) {
-+ static const int8_t tags_per_config[16] = { 0, 1, 1, 2, 3, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0 };
-+ if (ac->tag_che_map[type][elem_id]) {
-+ return ac->tag_che_map[type][elem_id];
-+ }
-+ if (ac->tags_mapped >= tags_per_config[ac->m4ac.chan_config]) {
-+ return NULL;
-+ }
-+ switch (ac->m4ac.chan_config) {
-+ case 7:
-+ if (ac->tags_mapped == 3 && type == TYPE_CPE) {
-+ ac->tags_mapped++;
-+ return ac->tag_che_map[TYPE_CPE][elem_id] = ac->che[TYPE_CPE][2];
-+ }
-+ case 6:
-+ /* Some streams incorrectly code 5.1 audio as SCE[0] CPE[0] CPE[1] SCE[1]
-+ instead of SCE[0] CPE[0] CPE[0] LFE[0]. If we seem to have
-+ encountered such a stream, transfer the LFE[0] element to SCE[1] */
-+ if (ac->tags_mapped == tags_per_config[ac->m4ac.chan_config] - 1 && (type == TYPE_LFE || type == TYPE_SCE)) {
-+ ac->tags_mapped++;
-+ return ac->tag_che_map[type][elem_id] = ac->che[TYPE_LFE][0];
-+ }
-+ case 5:
-+ if (ac->tags_mapped == 2 && type == TYPE_CPE) {
-+ ac->tags_mapped++;
-+ return ac->tag_che_map[TYPE_CPE][elem_id] = ac->che[TYPE_CPE][1];
-+ }
-+ case 4:
-+ if (ac->tags_mapped == 2 && ac->m4ac.chan_config == 4 && type == TYPE_SCE) {
-+ ac->tags_mapped++;
-+ return ac->tag_che_map[TYPE_SCE][elem_id] = ac->che[TYPE_SCE][1];
-+ }
-+ case 3:
-+ case 2:
-+ if (ac->tags_mapped == (ac->m4ac.chan_config != 2) && type == TYPE_CPE) {
-+ ac->tags_mapped++;
-+ return ac->tag_che_map[TYPE_CPE][elem_id] = ac->che[TYPE_CPE][0];
-+ } else if (ac->m4ac.chan_config == 2) {
-+ return NULL;
-+ }
-+ case 1:
-+ if (!ac->tags_mapped && type == TYPE_SCE) {
-+ ac->tags_mapped++;
-+ return ac->tag_che_map[TYPE_SCE][elem_id] = ac->che[TYPE_SCE][0];
-+ }
-+ default:
-+ return NULL;
-+ }
-+}
-+
- /**
- * Configure output channel order based on the current program configuration element.
- *
-@@ -106,7 +156,7 @@ static VLC vlc_spectral[11];
- * @return Returns error status. 0 - OK, !0 - error
- */
- static int output_configure(AACContext *ac, enum ChannelPosition che_pos[4][MAX_ELEM_ID],
-- enum ChannelPosition new_che_pos[4][MAX_ELEM_ID]) {
-+ enum ChannelPosition new_che_pos[4][MAX_ELEM_ID], int channel_config) {
- AVCodecContext *avctx = ac->avccontext;
- int i, type, channels = 0;
-
-@@ -140,7 +190,16 @@ static int output_configure(AACContext *ac, enum ChannelPosition che_pos[4][MAX_
- }
- }
-
-+ if (channel_config) {
-+ memset(ac->tag_che_map, 0, 4 * MAX_ELEM_ID * sizeof(ac->che[0][0]));
-+ ac->tags_mapped = 0;
-+ } else {
-+ memcpy(ac->tag_che_map, ac->che, 4 * MAX_ELEM_ID * sizeof(ac->che[0][0]));
-+ ac->tags_mapped = 4*MAX_ELEM_ID;
-+ }
-+
- avctx->channels = channels;
-+
- return 0;
- }
-
-@@ -286,7 +345,7 @@ static int decode_ga_specific_config(AACContext * ac, GetBitContext * gb, int ch
- if((ret = set_default_channel_config(ac, new_che_pos, channel_config)))
- return ret;
- }
-- if((ret = output_configure(ac, ac->che_pos, new_che_pos)))
-+ if((ret = output_configure(ac, ac->che_pos, new_che_pos, channel_config)))
- return ret;
-
- if (extension_flag) {
-@@ -394,7 +453,7 @@ static av_cold int aac_decode_init(AVCodecContext * avccontext) {
- memset(new_che_pos, 0, 4 * MAX_ELEM_ID * sizeof(new_che_pos[0][0]));
- if(set_default_channel_config(ac, new_che_pos, avccontext->channels - (avccontext->channels == 8)))
- return -1;
-- if(output_configure(ac, ac->che_pos, new_che_pos))
-+ if(output_configure(ac, ac->che_pos, new_che_pos, 1))
- return -1;
- ac->m4ac.sample_rate = avccontext->sample_rate;
- } else {
-@@ -1538,19 +1597,20 @@ static int parse_adts_frame_header(AACContext * ac, GetBitContext * gb) {
- ac->m4ac.sample_rate = hdr_info.sample_rate;
- ac->m4ac.sampling_index = hdr_info.sampling_index;
- ac->m4ac.object_type = hdr_info.object_type;
-- }
-- if (hdr_info.num_aac_frames == 1) {
-- if (!hdr_info.crc_absent)
-- skip_bits(gb, 16);
-- } else {
-- ff_log_missing_feature(ac->avccontext, "More than one AAC RDB per ADTS frame is", 0);
-- return -1;
-+ if (hdr_info.num_aac_frames == 1) {
-+ if (!hdr_info.crc_absent)
-+ skip_bits(gb, 16);
-+ } else {
-+ ff_log_missing_feature(ac->avccontext, "More than one AAC RDB per ADTS frame is", 0);
-+ return -1;
-+ }
- }
- return size;
- }
-
- static int aac_decode_frame(AVCodecContext * avccontext, void * data, int * data_size, const uint8_t * buf, int buf_size) {
- AACContext * ac = avccontext->priv_data;
-+ ChannelElement * che = NULL;
- GetBitContext gb;
- enum RawDataBlockType elem_type;
- int err, elem_id, data_size_tmp;
-@@ -1573,15 +1633,7 @@ static int aac_decode_frame(AVCodecContext * avccontext, void * data, int * data
- elem_id = get_bits(&gb, 4);
- err = -1;
-
-- if(elem_type == TYPE_SCE && elem_id == 1 &&
-- !ac->che[TYPE_SCE][elem_id] && ac->che[TYPE_LFE][0]) {
-- /* Some streams incorrectly code 5.1 audio as SCE[0] CPE[0] CPE[1] SCE[1]
-- instead of SCE[0] CPE[0] CPE[0] LFE[0]. If we seem to have
-- encountered such a stream, transfer the LFE[0] element to SCE[1] */
-- ac->che[TYPE_SCE][elem_id] = ac->che[TYPE_LFE][0];
-- ac->che[TYPE_LFE][0] = NULL;
-- }
-- if(elem_type < TYPE_DSE && !ac->che[elem_type][elem_id]) {
-+ if(elem_type < TYPE_DSE && !(che=get_che(ac, elem_type, elem_id))) {
- av_log(ac->avccontext, AV_LOG_ERROR, "channel element %d.%d is not allocated\n", elem_type, elem_id);
- return -1;
- }
-@@ -1589,19 +1641,19 @@ static int aac_decode_frame(AVCodecContext * avccontext, void * data, int * data
- switch (elem_type) {
-
- case TYPE_SCE:
-- err = decode_ics(ac, &ac->che[TYPE_SCE][elem_id]->ch[0], &gb, 0, 0);
-+ err = decode_ics(ac, &che->ch[0], &gb, 0, 0);
- break;
-
- case TYPE_CPE:
-- err = decode_cpe(ac, &gb, ac->che[TYPE_CPE][elem_id]);
-+ err = decode_cpe(ac, &gb, che);
- break;
-
- case TYPE_CCE:
-- err = decode_cce(ac, &gb, ac->che[TYPE_CCE][elem_id]);
-+ err = decode_cce(ac, &gb, che);
- break;
-
- case TYPE_LFE:
-- err = decode_ics(ac, &ac->che[TYPE_LFE][elem_id]->ch[0], &gb, 0, 0);
-+ err = decode_ics(ac, &che->ch[0], &gb, 0, 0);
- break;
-
- case TYPE_DSE:
-@@ -1615,7 +1667,7 @@ static int aac_decode_frame(AVCodecContext * avccontext, void * data, int * data
- memset(new_che_pos, 0, 4 * MAX_ELEM_ID * sizeof(new_che_pos[0][0]));
- if((err = decode_pce(ac, new_che_pos, &gb)))
- break;
-- err = output_configure(ac, ac->che_pos, new_che_pos);
-+ err = output_configure(ac, ac->che_pos, new_che_pos, 0);
- break;
- }
-
- Modified libavcodec/aac.h
-diff --git a/libavcodec/aac.h b/libavcodec/aac.h
-index 66b2e22..32e7224 100644
---- a/libavcodec/aac.h
-+++ b/libavcodec/aac.h
-@@ -260,6 +260,8 @@ typedef struct {
- * first index as the first 4 raw data block types
- */
- ChannelElement * che[4][MAX_ELEM_ID];
-+ ChannelElement * tag_che_map[4][MAX_ELEM_ID];
-+ int tags_mapped;
- /** @} */
-
- /**
diff --git a/debian/patches/build-pic-on-ppc.patch b/debian/patches/build-pic-on-ppc.patch
deleted file mode 100644
index 57335b2..0000000
--- a/debian/patches/build-pic-on-ppc.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Author: Reinhard Tartler <siretart at tauware.de>
-Bug-Debian: http://bugs.debian.org/561956
-Description: Build with pic on G3 macs
-Forwarded: http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/103697
-
-diff --git a/configure b/configure
-index fd11501..d0cadb7 100755
---- a/configure
-+++ b/configure
-@@ -2205,7 +2205,7 @@ if enabled shared; then
- # LIBOBJFLAGS may have already been set in the OS configuration
- if test -z "$LIBOBJFLAGS" ; then
- case "${subarch-$arch}" in
-- x86_64|ia64|alpha|sparc*|power*|parisc*|mips*) LIBOBJFLAGS='$(PIC)' ;;
-+ x86_64|ia64|alpha|sparc*|ppc|power*|parisc*|mips*) LIBOBJFLAGS='$(PIC)' ;;
- esac
- fi
- fi
diff --git a/debian/patches/cpu-runtime-detect-libswscale.patch b/debian/patches/cpu-runtime-detect-libswscale.patch
deleted file mode 100644
index 2871292..0000000
--- a/debian/patches/cpu-runtime-detect-libswscale.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-From: ramiro <ramiro at b3059339-0415-0410-9bf9-f77b7e298cf2>
-Date: Wed, 8 Apr 2009 20:21:21 +0000 (+0000)
-Subject: Rename RUNTIME_CPUDETECT to CONFIG_RUNTIME_CPUDETECT and always define it.
-X-Git-Url: http://git.ffmpeg.org/?p=libswscale;a=commitdiff_plain;h=ac1d1adfeecb0373e9a03d73b898eb6dcdeba334
-Forwarded: http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/103682
-
-Rename RUNTIME_CPUDETECT to CONFIG_RUNTIME_CPUDETECT and always define it.
-
-
-git-svn-id: file:///var/local/repositories/mplayer/trunk/libswscale@29154 b3059339-0415-0410-9bf9-f77b7e298cf2
----
-
---- a/libswscale/swscale.c
-+++ b/libswscale/swscale.c
-@@ -955,27 +955,27 @@ static inline void yuv2rgbXinC_full(SwsC
-
- //Note: we have C, X86, MMX, MMX2, 3DNOW versions, there is no 3DNOW+MMX2 one
- //Plain C versions
--#if ((!HAVE_MMX || !CONFIG_GPL) && !HAVE_ALTIVEC) || defined (RUNTIME_CPUDETECT)
-+#if ((!HAVE_MMX || !CONFIG_GPL) && !HAVE_ALTIVEC) || CONFIG_RUNTIME_CPUDETECT
- #define COMPILE_C
- #endif
-
- #if ARCH_PPC
--#if HAVE_ALTIVEC || defined (RUNTIME_CPUDETECT)
-+#if HAVE_ALTIVEC || CONFIG_RUNTIME_CPUDETECT
- #define COMPILE_ALTIVEC
- #endif
- #endif //ARCH_PPC
-
- #if ARCH_X86
-
--#if ((HAVE_MMX && !HAVE_AMD3DNOW && !HAVE_MMX2) || defined (RUNTIME_CPUDETECT)) && CONFIG_GPL
-+#if ((HAVE_MMX && !HAVE_AMD3DNOW && !HAVE_MMX2) || CONFIG_RUNTIME_CPUDETECT) && CONFIG_GPL
- #define COMPILE_MMX
- #endif
-
--#if (HAVE_MMX2 || defined (RUNTIME_CPUDETECT)) && CONFIG_GPL
-+#if (HAVE_MMX2 || CONFIG_RUNTIME_CPUDETECT) && CONFIG_GPL
- #define COMPILE_MMX2
- #endif
-
--#if ((HAVE_AMD3DNOW && !HAVE_MMX2) || defined (RUNTIME_CPUDETECT)) && CONFIG_GPL
-+#if ((HAVE_AMD3DNOW && !HAVE_MMX2) || CONFIG_RUNTIME_CPUDETECT) && CONFIG_GPL
- #define COMPILE_3DNOW
- #endif
- #endif //ARCH_X86
-@@ -1636,7 +1636,7 @@ static void globalInit(void){
-
- static SwsFunc getSwsFunc(int flags){
-
--#if defined(RUNTIME_CPUDETECT)
-+#if CONFIG_RUNTIME_CPUDETECT
- #if ARCH_X86 && CONFIG_GPL
- // ordered per speed fastest first
- if (flags & SWS_CPU_CAPS_MMX2)
-@@ -1657,7 +1657,7 @@ static SwsFunc getSwsFunc(int flags){
- #endif
- return swScale_C;
- #endif /* ARCH_X86 && CONFIG_GPL */
--#else //RUNTIME_CPUDETECT
-+#else //CONFIG_RUNTIME_CPUDETECT
- #if HAVE_MMX2
- return swScale_MMX2;
- #elif HAVE_AMD3DNOW
-@@ -1669,7 +1669,7 @@ static SwsFunc getSwsFunc(int flags){
- #else
- return swScale_C;
- #endif
--#endif //!RUNTIME_CPUDETECT
-+#endif //!CONFIG_RUNTIME_CPUDETECT
- }
-
- static int PlanarToNV12Wrapper(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY,
-@@ -2193,7 +2193,7 @@ SwsContext *sws_getContext(int srcW, int
- __asm__ volatile("emms\n\t"::: "memory");
- #endif
-
--#if !defined(RUNTIME_CPUDETECT) //ensure that the flags match the compiled variant if cpudetect is off
-+#if !CONFIG_RUNTIME_CPUDETECT //ensure that the flags match the compiled variant if cpudetect is off
- flags &= ~(SWS_CPU_CAPS_MMX|SWS_CPU_CAPS_MMX2|SWS_CPU_CAPS_3DNOW|SWS_CPU_CAPS_ALTIVEC|SWS_CPU_CAPS_BFIN);
- #if HAVE_MMX2
- flags |= SWS_CPU_CAPS_MMX|SWS_CPU_CAPS_MMX2;
-@@ -2206,7 +2206,7 @@ SwsContext *sws_getContext(int srcW, int
- #elif ARCH_BFIN
- flags |= SWS_CPU_CAPS_BFIN;
- #endif
--#endif /* RUNTIME_CPUDETECT */
-+#endif /* CONFIG_RUNTIME_CPUDETECT */
- if (clip_table[512] != 255) globalInit();
- if (!rgb15to16) sws_rgb2rgb_init(flags);
-
diff --git a/debian/patches/cpu-runtime-detect.patch b/debian/patches/cpu-runtime-detect.patch
deleted file mode 100644
index 0b8a4da..0000000
--- a/debian/patches/cpu-runtime-detect.patch
+++ /dev/null
@@ -1,111 +0,0 @@
-From: ramiro <ramiro at 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Wed, 8 Apr 2009 20:26:18 +0000 (+0000)
-Subject: configure: Add --enable-runtime-cpudetect
-X-Git-Url: http://git.ffmpeg.org/?p=ffmpeg;a=commitdiff_plain;h=dd47be64953f558826456ee3696220f587ec8a20
-Forwarded: http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/103682
-
-configure: Add --enable-runtime-cpudetect
-
-git-svn-id: file:///var/local/repositories/ffmpeg/trunk@18380 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
----
-
-diff --git a/configure b/configure
-index a9cc2fd..eae40c6 100755
---- a/configure
-+++ b/configure
-@@ -100,6 +100,7 @@ show_help(){
- echo " --disable-golomb disable Golomb code"
- echo " --disable-mdct disable MDCT code"
- echo " --disable-rdft disable RDFT code"
-+ echo " --enable-runtime-cpudetect detect cpu capabilities at runtime (bigger binary)"
- echo " --enable-hardcoded-tables use hardcoded tables instead of runtime generation"
- echo " --enable-memalign-hack emulate memalign, interferes with memory debuggers"
- echo " --enable-beos-netserver enable BeOS netserver"
-@@ -806,6 +807,7 @@ CONFIG_LIST="
- postproc
- powerpc_perf
- rdft
-+ runtime_cpudetect
- shared
- small
- static
-@@ -2282,6 +2284,7 @@ if test "$extra_version" != ""; then
- echo "version string suffix $extra_version"
- fi
- echo "big-endian ${bigendian-no}"
-+echo "runtime cpu detection ${runtime_cpudetect-no}"
- if enabled x86; then
- echo "yasm ${yasm-no}"
- echo "MMX enabled ${mmx-no}"
-diff --git a/libavcodec/ppc/check_altivec.c b/libavcodec/ppc/check_altivec.c
-index e034ceb..08cc0f4 100644
---- a/libavcodec/ppc/check_altivec.c
-+++ b/libavcodec/ppc/check_altivec.c
-@@ -63,7 +63,7 @@ int has_altivec(void)
-
- if (err == 0) return has_vu != 0;
- return 0;
--#elif defined(RUNTIME_CPUDETECT)
-+#elif CONFIG_RUNTIME_CPUDETECT
- int proc_ver;
- // Support of mfspr PVR emulation added in Linux 2.6.17.
- __asm__ volatile("mfspr %0, 287" : "=r" (proc_ver));
-diff --git a/libpostproc/postprocess.c b/libpostproc/postprocess.c
-index 4cfbaad..b5b6649 100644
---- a/libpostproc/postprocess.c
-+++ b/libpostproc/postprocess.c
-@@ -554,7 +554,7 @@ static av_always_inline void do_a_deblock_C(uint8_t *src, int step, int stride,
-
- //Note: we have C, MMX, MMX2, 3DNOW version there is no 3DNOW+MMX2 one
- //Plain C versions
--#if !(HAVE_MMX || HAVE_ALTIVEC) || defined (RUNTIME_CPUDETECT)
-+#if !(HAVE_MMX || HAVE_ALTIVEC) || CONFIG_RUNTIME_CPUDETECT
- #define COMPILE_C
- #endif
-
-@@ -564,15 +564,15 @@ static av_always_inline void do_a_deblock_C(uint8_t *src, int step, int stride,
-
- #if ARCH_X86
-
--#if (HAVE_MMX && !HAVE_AMD3DNOW && !HAVE_MMX2) || defined (RUNTIME_CPUDETECT)
-+#if (HAVE_MMX && !HAVE_AMD3DNOW && !HAVE_MMX2) || CONFIG_RUNTIME_CPUDETECT
- #define COMPILE_MMX
- #endif
-
--#if HAVE_MMX2 || defined (RUNTIME_CPUDETECT)
-+#if HAVE_MMX2 || CONFIG_RUNTIME_CPUDETECT
- #define COMPILE_MMX2
- #endif
-
--#if (HAVE_AMD3DNOW && !HAVE_MMX2) || defined (RUNTIME_CPUDETECT)
-+#if (HAVE_AMD3DNOW && !HAVE_MMX2) || CONFIG_RUNTIME_CPUDETECT
- #define COMPILE_3DNOW
- #endif
- #endif /* ARCH_X86 */
-@@ -645,7 +645,7 @@ static inline void postProcess(const uint8_t src[], int srcStride, uint8_t dst[]
- // Using ifs here as they are faster than function pointers although the
- // difference would not be measurable here but it is much better because
- // someone might exchange the CPU whithout restarting MPlayer ;)
--#ifdef RUNTIME_CPUDETECT
-+#if CONFIG_RUNTIME_CPUDETECT
- #if ARCH_X86
- // ordered per speed fastest first
- if(c->cpuCaps & PP_CPU_CAPS_MMX2)
-@@ -664,7 +664,7 @@ static inline void postProcess(const uint8_t src[], int srcStride, uint8_t dst[]
- #endif
- postProcess_C(src, srcStride, dst, dstStride, width, height, QPs, QPStride, isColor, c);
- #endif
--#else //RUNTIME_CPUDETECT
-+#else //CONFIG_RUNTIME_CPUDETECT
- #if HAVE_MMX2
- postProcess_MMX2(src, srcStride, dst, dstStride, width, height, QPs, QPStride, isColor, c);
- #elif HAVE_AMD3DNOW
-@@ -676,7 +676,7 @@ static inline void postProcess(const uint8_t src[], int srcStride, uint8_t dst[]
- #else
- postProcess_C(src, srcStride, dst, dstStride, width, height, QPs, QPStride, isColor, c);
- #endif
--#endif //!RUNTIME_CPUDETECT
-+#endif //!CONFIG_RUNTIME_CPUDETECT
- }
-
- //static void postProcess(uint8_t src[], int srcStride, uint8_t dst[], int dstStride, int width, int height,
diff --git a/debian/patches/enable-versioning.patch b/debian/patches/enable-versioning.patch
deleted file mode 100644
index ae96897..0000000
--- a/debian/patches/enable-versioning.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-Author: Reinhard Tartler <siretart at tauware.de>
-Subject: backport symbol versioning patch
-Forwarded: http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/103672
-
-Index: ffmpeg/common.mak
-===================================================================
---- ffmpeg.orig/common.mak 2010-01-01 18:57:45.000000000 +0000
-+++ ffmpeg/common.mak 2010-01-01 18:57:51.000000000 +0000
-@@ -77,7 +77,7 @@
- DEPS := $(OBJS:.o=.d)
- depend dep: $(DEPS)
-
--CLEANSUFFIXES = *.o *~ *.ho
-+CLEANSUFFIXES = *.o *~ *.ho *.ver
- LIBSUFFIXES = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a *.exp *.map
- DISTCLEANSUFFIXES = *.d *.pc
-
-Index: ffmpeg/libavcodec/libavcodec.v
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ ffmpeg/libavcodec/libavcodec.v 2010-01-01 18:57:51.000000000 +0000
-@@ -0,0 +1,3 @@
-+LIBAVCODEC_%MAJOR% {
-+ global: *;
-+};
-Index: ffmpeg/libavdevice/libavdevice.v
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ ffmpeg/libavdevice/libavdevice.v 2010-01-01 18:57:51.000000000 +0000
-@@ -0,0 +1,4 @@
-+LIBAVDEVICE_%MAJOR% {
-+ global: avdevice_*;
-+ local: *;
-+};
-Index: ffmpeg/libavfilter/libavfilter.v
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ ffmpeg/libavfilter/libavfilter.v 2010-01-01 18:57:51.000000000 +0000
-@@ -0,0 +1,4 @@
-+LIBAVFILTER_%MAJOR% {
-+ global: avfilter_*; av_*;
-+ local: *;
-+};
-Index: ffmpeg/libavformat/libavformat.v
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ ffmpeg/libavformat/libavformat.v 2010-01-01 18:57:51.000000000 +0000
-@@ -0,0 +1,3 @@
-+LIBAVFORMAT_%MAJOR% {
-+ global: *;
-+};
-Index: ffmpeg/libavutil/libavutil.v
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ ffmpeg/libavutil/libavutil.v 2010-01-01 18:57:51.000000000 +0000
-@@ -0,0 +1,4 @@
-+LIBAVUTIL_%MAJOR% {
-+ global: av_*; ff_*; avutil_*;
-+ local: *;
-+};
-Index: ffmpeg/libpostproc/libpostproc.v
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ ffmpeg/libpostproc/libpostproc.v 2010-01-01 18:57:51.000000000 +0000
-@@ -0,0 +1,4 @@
-+LIBPOSTPROC_%MAJOR% {
-+ global: postproc_*; pp_*;
-+ local: *;
-+};
-Index: ffmpeg/libswscale/libswscale.v
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ ffmpeg/libswscale/libswscale.v 2010-01-01 18:57:51.000000000 +0000
-@@ -0,0 +1,3 @@
-+LIBSWSCALE_%MAJOR% {
-+ global: *;
-+};
-Index: ffmpeg/subdir.mak
-===================================================================
---- ffmpeg.orig/subdir.mak 2010-01-01 18:57:45.000000000 +0000
-+++ ffmpeg/subdir.mak 2010-01-01 19:00:26.000000000 +0000
-@@ -27,9 +27,14 @@
- $(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR)
- cd ./$(SUBDIR) && $(LN_S) $(SLIBNAME_WITH_MAJOR) $(SLIBNAME)
-
--$(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(OBJS)
-+$(SUBDIR)lib$(NAME).ver: $(SRC_PATH_BARE)/$(SUBDIR)lib$(NAME).v
-+ sed 's/%MAJOR%/$(lib$(NAME)_VERSION_MAJOR)/' $$^ > $$@
-+
-+$(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(SUBDIR)lib$(NAME).ver $(OBJS)
- $(SLIB_CREATE_DEF_CMD)
-- $(CC) $(SHFLAGS) $(FFLDFLAGS) -o $$@ $$(filter-out $(DEP_LIBS),$$^) $(FFEXTRALIBS) $(EXTRAOBJS)
-+ $(CC) $(SHFLAGS) $(FFLDFLAGS) \
-+ -Wl,--version-script,$(SUBDIR)lib$(NAME).ver \
-+ -o $$@ $$(filter-out $(SUBDIR)lib$(NAME).ver $(DEP_LIBS),$$^) $(FFEXTRALIBS) $(EXTRAOBJS)
- $(SLIB_EXTRA_CMD)
-
- ifdef SUBDIR
diff --git a/debian/patches/issue1245.patch b/debian/patches/issue1245.patch
deleted file mode 100644
index f3ea9ca..0000000
--- a/debian/patches/issue1245.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From: michael <michael at 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Wed, 1 Jul 2009 18:50:31 +0000 (+0000)
-Subject: Make arguments of av_set_pts_info() unsigned.
-X-Git-Url: http://git.ffmpeg.org/?p=ffmpeg;a=commitdiff_plain;h=248dc1dd4cacbb7cb27d6bc0e66ff4f902b3bdc0
-
-Make arguments of av_set_pts_info() unsigned.
-Fixes issue1240/mpeg1/smclockmpeg1.avi.3.1
-
-
-git-svn-id: file:///var/local/repositories/ffmpeg/trunk@19319 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
----
-
-diff --git a/libavformat/avformat.h b/libavformat/avformat.h
-index 57faaed..2185edc 100644
---- a/libavformat/avformat.h
-+++ b/libavformat/avformat.h
-@@ -963,7 +963,7 @@ AVChapter *ff_new_chapter(AVFormatContext *s, int id, AVRational time_base,
- * @param pts_den denominator to convert to seconds (MPEG: 90000)
- */
- void av_set_pts_info(AVStream *s, int pts_wrap_bits,
-- int pts_num, int pts_den);
-+ unsigned int pts_num, unsigned int pts_den);
-
- #define AVSEEK_FLAG_BACKWARD 1 ///< seek backward
- #define AVSEEK_FLAG_BYTE 2 ///< seeking based on position in bytes
-diff --git a/libavformat/utils.c b/libavformat/utils.c
-index 9325e3d..b1c0363 100644
---- a/libavformat/utils.c
-+++ b/libavformat/utils.c
-@@ -3304,7 +3304,7 @@ char *ff_data_to_hex(char *buff, const uint8_t *src, int s)
- }
-
- void av_set_pts_info(AVStream *s, int pts_wrap_bits,
-- int pts_num, int pts_den)
-+ unsigned int pts_num, unsigned int pts_den)
- {
- unsigned int gcd= av_gcd(pts_num, pts_den);
- s->pts_wrap_bits = pts_wrap_bits;
diff --git a/debian/patches/security/libavcodec/ffv1/0001-Fix-a-possibly-exploitable-buffer-overflow.patch b/debian/patches/security/libavcodec/ffv1/0001-Fix-a-possibly-exploitable-buffer-overflow.patch
deleted file mode 100644
index 3ca0ef4..0000000
--- a/debian/patches/security/libavcodec/ffv1/0001-Fix-a-possibly-exploitable-buffer-overflow.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 97e433db7abb9095e2af61ef05ffeda2699588e4 Mon Sep 17 00:00:00 2001
-From: michael <michael at 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Tue, 21 Apr 2009 12:00:39 +0000
-Subject: [PATCH] Fix a possibly exploitable buffer overflow.
-
-git-svn-id: file:///var/local/repositories/ffmpeg/trunk@18640 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
----
- libavcodec/ffv1.c | 3 +--
- 1 files changed, 1 insertions(+), 2 deletions(-)
-
-diff --git a/libavcodec/ffv1.c b/libavcodec/ffv1.c
-index 86f2897..9eef531 100644
---- a/libavcodec/ffv1.c
-+++ b/libavcodec/ffv1.c
-@@ -249,10 +249,9 @@ static inline int get_symbol(RangeCoder *c, uint8_t *state, int is_signed){
- else{
- int i, e, a;
- e= 0;
-- while(get_rac(c, state+1 + e)){ //1..10
-+ while(get_rac(c, state+1 + e) && e<9){ //1..10
- e++;
- }
-- assert(e<=9);
-
- a= 1;
- for(i=e-1; i>=0; i--){
---
-1.6.3.3
-
diff --git a/debian/patches/security/libavcodec/h264/0001-Check-num_units_in_tick-time_scale-to-be-valid-and-w.patch b/debian/patches/security/libavcodec/h264/0001-Check-num_units_in_tick-time_scale-to-be-valid-and-w.patch
deleted file mode 100644
index 258dafb..0000000
--- a/debian/patches/security/libavcodec/h264/0001-Check-num_units_in_tick-time_scale-to-be-valid-and-w.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 1259942b556eb7e58c74d09f0e160c204c7f0ac1 Mon Sep 17 00:00:00 2001
-From: michael <michael at 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Wed, 23 Sep 2009 09:58:44 +0000
-Subject: [PATCH] Check num_units_in_tick/time_scale to be valid and within the range we support.
- based on a patch by chrome
-
-git-svn-id: file:///var/local/repositories/ffmpeg/trunk@19979 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
----
- libavcodec/h264.c | 4 ++++
- 1 files changed, 4 insertions(+), 0 deletions(-)
-
-diff --git a/libavcodec/h264.c b/libavcodec/h264.c
-index 20ad778..31bd4a6 100644
---- a/libavcodec/h264.c
-+++ b/libavcodec/h264.c
-@@ -7087,6 +7087,10 @@ static inline int decode_vui_parameters(H264Context *h, SPS *sps){
- if(sps->timing_info_present_flag){
- sps->num_units_in_tick = get_bits_long(&s->gb, 32);
- sps->time_scale = get_bits_long(&s->gb, 32);
-+ if(sps->num_units_in_tick-1 > 0x7FFFFFFEU || sps->time_scale-1 > 0x7FFFFFFEU){
-+ av_log(h->s.avctx, AV_LOG_ERROR, "time_scale/num_units_in_tick inavlid or unsupported (%d/%d)\n", sps->time_scale, sps->num_units_in_tick);
-+ return -1;
-+ }
- sps->fixed_frame_rate_flag = get_bits1(&s->gb);
- }
-
---
-1.6.3.3
-
diff --git a/debian/patches/security/libavcodec/mpegaudiodec/0001-check-data_size-in-decode_frame.patch b/debian/patches/security/libavcodec/mpegaudiodec/0001-check-data_size-in-decode_frame.patch
deleted file mode 100644
index a2b3c71..0000000
--- a/debian/patches/security/libavcodec/mpegaudiodec/0001-check-data_size-in-decode_frame.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From af59b51d945929694b5533d3d28ea4215e42af67 Mon Sep 17 00:00:00 2001
-From: michael <michael at 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Wed, 23 Sep 2009 11:29:38 +0000
-Subject: [PATCH 1/3] check data_size in decode_frame()
-
-git-svn-id: file:///var/local/repositories/ffmpeg/trunk@19986 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
----
- libavcodec/mpegaudiodec.c | 3 +++
- 1 files changed, 3 insertions(+), 0 deletions(-)
-
-diff --git a/libavcodec/mpegaudiodec.c b/libavcodec/mpegaudiodec.c
-index 2ba47df..6f451c3 100644
---- a/libavcodec/mpegaudiodec.c
-+++ b/libavcodec/mpegaudiodec.c
-@@ -2276,6 +2276,9 @@ static int decode_frame(AVCodecContext * avctx,
- avctx->bit_rate = s->bit_rate;
- avctx->sub_id = s->layer;
-
-+ if(*data_size < 1152*avctx->channels*sizeof(OUT_INT))
-+ return -1;
-+
- if(s->frame_size<=0 || s->frame_size > buf_size){
- av_log(avctx, AV_LOG_ERROR, "incomplete frame\n");
- return -1;
---
-1.6.3.3
-
diff --git a/debian/patches/security/libavcodec/mpegaudiodec/0002-Check-data_size-in-decode_frame_mp3on4.patch b/debian/patches/security/libavcodec/mpegaudiodec/0002-Check-data_size-in-decode_frame_mp3on4.patch
deleted file mode 100644
index e955645..0000000
--- a/debian/patches/security/libavcodec/mpegaudiodec/0002-Check-data_size-in-decode_frame_mp3on4.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From f6a0f8074a6ad33ebb90b687c77d33cd552f7005 Mon Sep 17 00:00:00 2001
-From: michael <michael at 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Wed, 23 Sep 2009 11:33:44 +0000
-Subject: [PATCH 2/3] Check data_size in decode_frame_mp3on4().
-
-git-svn-id: file:///var/local/repositories/ffmpeg/trunk@19987 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
----
- libavcodec/mpegaudiodec.c | 3 +++
- 1 files changed, 3 insertions(+), 0 deletions(-)
-
-diff --git a/libavcodec/mpegaudiodec.c b/libavcodec/mpegaudiodec.c
-index 6f451c3..3003e18 100644
---- a/libavcodec/mpegaudiodec.c
-+++ b/libavcodec/mpegaudiodec.c
-@@ -2466,6 +2466,9 @@ static int decode_frame_mp3on4(AVCodecContext * avctx,
- OUT_INT *outptr, *bp;
- int fr, j, n;
-
-+ if(*data_size < MPA_FRAME_SIZE * MPA_MAX_CHANNELS * s->frames * sizeof(OUT_INT))
-+ return -1;
-+
- *data_size = 0;
- // Discard too short frames
- if (buf_size < HEADER_SIZE)
---
-1.6.3.3
-
diff --git a/debian/patches/security/libavcodec/mpegaudiodec/0003-Set-data_size-to-0-to-avoid-having-it-uninitialized.patch b/debian/patches/security/libavcodec/mpegaudiodec/0003-Set-data_size-to-0-to-avoid-having-it-uninitialized.patch
deleted file mode 100644
index 925c6ee..0000000
--- a/debian/patches/security/libavcodec/mpegaudiodec/0003-Set-data_size-to-0-to-avoid-having-it-uninitialized.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 7565e59ef9effe28962d7103f78c2d25e76524e0 Mon Sep 17 00:00:00 2001
-From: michael <michael at 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Wed, 23 Sep 2009 11:44:30 +0000
-Subject: [PATCH 3/3] Set data_size to 0 to avoid having it uninitialized.
- based on 31_mp3_outlen.patch by chrome.
-
-git-svn-id: file:///var/local/repositories/ffmpeg/trunk@19988 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
----
- libavcodec/mpegaudiodec.c | 1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/libavcodec/mpegaudiodec.c b/libavcodec/mpegaudiodec.c
-index 3003e18..dd986bd 100644
---- a/libavcodec/mpegaudiodec.c
-+++ b/libavcodec/mpegaudiodec.c
-@@ -2278,6 +2278,7 @@ static int decode_frame(AVCodecContext * avctx,
-
- if(*data_size < 1152*avctx->channels*sizeof(OUT_INT))
- return -1;
-+ *data_size = 0;
-
- if(s->frame_size<=0 || s->frame_size > buf_size){
- av_log(avctx, AV_LOG_ERROR, "incomplete frame\n");
---
-1.6.3.3
-
diff --git a/debian/patches/security/libavcodec/vorbis_dec/0001-Check-dimensions-against-0-too.patch b/debian/patches/security/libavcodec/vorbis_dec/0001-Check-dimensions-against-0-too.patch
deleted file mode 100644
index f043c80..0000000
--- a/debian/patches/security/libavcodec/vorbis_dec/0001-Check-dimensions-against-0-too.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 68cb8f3c6c3bde792c0e918a441be3ede478f8cc Mon Sep 17 00:00:00 2001
-From: michael <michael at 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Wed, 23 Sep 2009 08:35:29 +0000
-Subject: [PATCH 01/12] Check dimensions against 0 too.
- 39_vorbis_zero_dims.patch from chrome
-
-git-svn-id: file:///var/local/repositories/ffmpeg/trunk@19976 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
----
- libavcodec/vorbis_dec.c | 4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/libavcodec/vorbis_dec.c b/libavcodec/vorbis_dec.c
-index 00542b9..25cfb31 100644
---- a/libavcodec/vorbis_dec.c
-+++ b/libavcodec/vorbis_dec.c
-@@ -244,8 +244,8 @@ static int vorbis_parse_setup_hdr_codebooks(vorbis_context *vc) {
- }
-
- codebook_setup->dimensions=get_bits(gb, 16);
-- if (codebook_setup->dimensions>16) {
-- av_log(vc->avccontext, AV_LOG_ERROR, " %"PRIdFAST16". Codebook's dimension is too large (%d). \n", cb, codebook_setup->dimensions);
-+ if (codebook_setup->dimensions>16||codebook_setup->dimensions==0) {
-+ av_log(vc->avccontext, AV_LOG_ERROR, " %"PRIdFAST16". Codebook's dimension is invalid (%d). \n", cb, codebook_setup->dimensions);
- goto error;
- }
- entries=get_bits(gb, 24);
---
-1.6.3.3
-
diff --git a/debian/patches/security/libavcodec/vorbis_dec/0002-typo.patch b/debian/patches/security/libavcodec/vorbis_dec/0002-typo.patch
deleted file mode 100644
index 03045b0..0000000
--- a/debian/patches/security/libavcodec/vorbis_dec/0002-typo.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 0a7e56db7441d14afa66d228de17c63d5b49f8e9 Mon Sep 17 00:00:00 2001
-From: michael <michael at 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Wed, 23 Sep 2009 10:33:49 +0000
-Subject: [PATCH 02/12] = -> == typo.
- 27_vorbis_residue_loop_error.patch by chrome
-
-git-svn-id: file:///var/local/repositories/ffmpeg/trunk@19982 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
----
- libavcodec/vorbis_dec.c | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/libavcodec/vorbis_dec.c b/libavcodec/vorbis_dec.c
-index 25cfb31..532a060 100644
---- a/libavcodec/vorbis_dec.c
-+++ b/libavcodec/vorbis_dec.c
-@@ -1484,7 +1484,7 @@ static int vorbis_parse_audio_packet(vorbis_context *vc) {
- uint_fast8_t ch=0;
-
- for(j=0;j<vc->audio_channels;++j) {
-- if ((mapping->submaps==1) || (i=mapping->mux[j])) {
-+ if ((mapping->submaps==1) || (i==mapping->mux[j])) {
- res_chan[j]=res_num;
- if (no_residue[j]) {
- do_not_decode[ch]=1;
---
-1.6.3.3
-
diff --git a/debian/patches/security/libavcodec/vorbis_dec/0003-Sanity-checks-for-magnitude-and-angle.patch b/debian/patches/security/libavcodec/vorbis_dec/0003-Sanity-checks-for-magnitude-and-angle.patch
deleted file mode 100644
index a82fc81..0000000
--- a/debian/patches/security/libavcodec/vorbis_dec/0003-Sanity-checks-for-magnitude-and-angle.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From b8f5dcd9af3d9997143b42980aec5226f7bad677 Mon Sep 17 00:00:00 2001
-From: michael <michael at 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Wed, 23 Sep 2009 10:40:33 +0000
-Subject: [PATCH 03/12] Sanity checks for magnitude and angle.
- 26_vorbis_mag_angle_index.patch by chrome
-
-git-svn-id: file:///var/local/repositories/ffmpeg/trunk@19983 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
----
- libavcodec/vorbis_dec.c | 9 ++++++++-
- 1 files changed, 8 insertions(+), 1 deletions(-)
-
-diff --git a/libavcodec/vorbis_dec.c b/libavcodec/vorbis_dec.c
-index 532a060..28417ee 100644
---- a/libavcodec/vorbis_dec.c
-+++ b/libavcodec/vorbis_dec.c
-@@ -697,7 +697,14 @@ static int vorbis_parse_setup_hdr_mappings(vorbis_context *vc) {
- for(j=0;j<mapping_setup->coupling_steps;++j) {
- mapping_setup->magnitude[j]=get_bits(gb, ilog(vc->audio_channels-1));
- mapping_setup->angle[j]=get_bits(gb, ilog(vc->audio_channels-1));
-- // FIXME: sanity checks
-+ if (mapping_setup->magnitude[j]>=vc->audio_channels) {
-+ av_log(vc->avccontext, AV_LOG_ERROR, "magnitude channel %d out of range. \n", mapping_setup->magnitude[j]);
-+ return 1;
-+ }
-+ if (mapping_setup->angle[j]>=vc->audio_channels) {
-+ av_log(vc->avccontext, AV_LOG_ERROR, "angle channel %d out of range. \n", mapping_setup->angle[j]);
-+ return 1;
-+ }
- }
- } else {
- mapping_setup->coupling_steps=0;
---
-1.6.3.3
-
diff --git a/debian/patches/security/libavcodec/vorbis_dec/0004-Fix-book_idx-check.patch b/debian/patches/security/libavcodec/vorbis_dec/0004-Fix-book_idx-check.patch
deleted file mode 100644
index 2fcb199..0000000
--- a/debian/patches/security/libavcodec/vorbis_dec/0004-Fix-book_idx-check.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From a2dad711e92fbb83a2d79959bb67764d034a56e3 Mon Sep 17 00:00:00 2001
-From: michael <michael at 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Wed, 23 Sep 2009 10:45:14 +0000
-Subject: [PATCH 04/12] Fix book_idx check.
- 25_vorbis_floor0_index.patch by chrome.
-
-git-svn-id: file:///var/local/repositories/ffmpeg/trunk@19984 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
----
- libavcodec/vorbis_dec.c | 5 ++---
- 1 files changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/libavcodec/vorbis_dec.c b/libavcodec/vorbis_dec.c
-index 28417ee..ce5a139 100644
---- a/libavcodec/vorbis_dec.c
-+++ b/libavcodec/vorbis_dec.c
-@@ -553,12 +553,11 @@ static int vorbis_parse_setup_hdr_floors(vorbis_context *vc) {
- uint_fast8_t book_idx;
- for (idx=0;idx<floor_setup->data.t0.num_books;++idx) {
- book_idx=get_bits(gb, 8);
-+ if (book_idx>=vc->codebook_count)
-+ return 1;
- floor_setup->data.t0.book_list[idx]=book_idx;
- if (vc->codebooks[book_idx].dimensions > max_codebook_dim)
- max_codebook_dim=vc->codebooks[book_idx].dimensions;
--
-- if (floor_setup->data.t0.book_list[idx]>vc->codebook_count)
-- return 1;
- }
- }
-
---
-1.6.3.3
-
diff --git a/debian/patches/security/libavcodec/vorbis_dec/0005-Check-classbook-value.patch b/debian/patches/security/libavcodec/vorbis_dec/0005-Check-classbook-value.patch
deleted file mode 100644
index cd7f26d..0000000
--- a/debian/patches/security/libavcodec/vorbis_dec/0005-Check-classbook-value.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 093a791b172df483199fe81ac59ffcdbb63bf6c7 Mon Sep 17 00:00:00 2001
-From: michael <michael at 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Wed, 23 Sep 2009 12:02:31 +0000
-Subject: [PATCH 05/12] Check classbook value.
- 11_vorbis_residue_book_index.patch by chrome.
-
-git-svn-id: file:///var/local/repositories/ffmpeg/trunk@19989 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
----
- libavcodec/vorbis_dec.c | 4 ++++
- 1 files changed, 4 insertions(+), 0 deletions(-)
-
-diff --git a/libavcodec/vorbis_dec.c b/libavcodec/vorbis_dec.c
-index ce5a139..2d5e610 100644
---- a/libavcodec/vorbis_dec.c
-+++ b/libavcodec/vorbis_dec.c
-@@ -630,6 +630,10 @@ static int vorbis_parse_setup_hdr_residues(vorbis_context *vc){
- res_setup->partition_size=get_bits(gb, 24)+1;
- res_setup->classifications=get_bits(gb, 6)+1;
- res_setup->classbook=get_bits(gb, 8);
-+ if (res_setup->classbook>=vc->codebook_count) {
-+ av_log(vc->avccontext, AV_LOG_ERROR, "classbook value %d out of range. \n", res_setup->classbook);
-+ return 1;
-+ }
-
- AV_DEBUG(" begin %d end %d part.size %d classif.s %d classbook %d \n", res_setup->begin, res_setup->end, res_setup->partition_size,
- res_setup->classifications, res_setup->classbook);
---
-1.6.3.3
-
diff --git a/debian/patches/security/libavcodec/vorbis_dec/0006-Add-checks-for-per-packet-mode-indexes-and-per-heade.patch b/debian/patches/security/libavcodec/vorbis_dec/0006-Add-checks-for-per-packet-mode-indexes-and-per-heade.patch
deleted file mode 100644
index 39962ec..0000000
--- a/debian/patches/security/libavcodec/vorbis_dec/0006-Add-checks-for-per-packet-mode-indexes-and-per-heade.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 6d7908b8de6d34b425e18c412c341ed34e4f1fe4 Mon Sep 17 00:00:00 2001
-From: michael <michael at 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Wed, 23 Sep 2009 12:09:33 +0000
-Subject: [PATCH 06/12] Add checks for per-packet mode indexes and per-header mode mapping indexes.
- 12_vorbis_mode_indexes.patch by chrome
- maybe exploitable
-
-git-svn-id: file:///var/local/repositories/ffmpeg/trunk@19990 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
----
- libavcodec/vorbis_dec.c | 10 +++++++++-
- 1 files changed, 9 insertions(+), 1 deletions(-)
-
-diff --git a/libavcodec/vorbis_dec.c b/libavcodec/vorbis_dec.c
-index 2d5e610..ec305ba 100644
---- a/libavcodec/vorbis_dec.c
-+++ b/libavcodec/vorbis_dec.c
-@@ -793,7 +793,11 @@ static int vorbis_parse_setup_hdr_modes(vorbis_context *vc) {
- mode_setup->blockflag=get_bits1(gb);
- mode_setup->windowtype=get_bits(gb, 16); //FIXME check
- mode_setup->transformtype=get_bits(gb, 16); //FIXME check
-- mode_setup->mapping=get_bits(gb, 8); //FIXME check
-+ mode_setup->mapping=get_bits(gb, 8);
-+ if (mode_setup->mapping>=vc->mapping_count) {
-+ av_log(vc->avccontext, AV_LOG_ERROR, "mode mapping value %d out of range. \n", mode_setup->mapping);
-+ return 1;
-+ }
-
- AV_DEBUG(" %d mode: blockflag %d, windowtype %d, transformtype %d, mapping %d \n", i, mode_setup->blockflag, mode_setup->windowtype, mode_setup->transformtype, mode_setup->mapping);
- }
-@@ -1450,6 +1454,10 @@ static int vorbis_parse_audio_packet(vorbis_context *vc) {
- } else {
- mode_number=get_bits(gb, ilog(vc->mode_count-1));
- }
-+ if (mode_number>=vc->mode_count) {
-+ av_log(vc->avccontext, AV_LOG_ERROR, "mode number %d out of range.\n", mode_number);
-+ return -1;
-+ }
- vc->mode_number=mode_number;
- mapping=&vc->mappings[vc->modes[mode_number].mapping];
-
---
-1.6.3.3
-
diff --git a/debian/patches/security/libavcodec/vorbis_dec/0007-Check-masterbook-index-and-subclass-book-index.patch b/debian/patches/security/libavcodec/vorbis_dec/0007-Check-masterbook-index-and-subclass-book-index.patch
deleted file mode 100644
index a63af1e..0000000
--- a/debian/patches/security/libavcodec/vorbis_dec/0007-Check-masterbook-index-and-subclass-book-index.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 8ff644b871f3afe9529e451d86efb2f08014b53b Mon Sep 17 00:00:00 2001
-From: michael <michael at 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Wed, 23 Sep 2009 12:17:54 +0000
-Subject: [PATCH 07/12] Check masterbook index and subclass book index.
- 14_floor_masterbook_index.patch by chrome
-
-git-svn-id: file:///var/local/repositories/ffmpeg/trunk@19991 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
----
- libavcodec/vorbis_dec.c | 14 ++++++++++++--
- 1 files changed, 12 insertions(+), 2 deletions(-)
-
-diff --git a/libavcodec/vorbis_dec.c b/libavcodec/vorbis_dec.c
-index ec305ba..3daba8f 100644
---- a/libavcodec/vorbis_dec.c
-+++ b/libavcodec/vorbis_dec.c
-@@ -487,13 +487,23 @@ static int vorbis_parse_setup_hdr_floors(vorbis_context *vc) {
- AV_DEBUG(" %d floor %d class dim: %d subclasses %d \n", i, j, floor_setup->data.t1.class_dimensions[j], floor_setup->data.t1.class_subclasses[j]);
-
- if (floor_setup->data.t1.class_subclasses[j]) {
-- floor_setup->data.t1.class_masterbook[j]=get_bits(gb, 8);
-+ int bits=get_bits(gb, 8);
-+ if (bits>=vc->codebook_count) {
-+ av_log(vc->avccontext, AV_LOG_ERROR, "Masterbook index %d is out of range.\n", bits);
-+ return 1;
-+ }
-+ floor_setup->data.t1.class_masterbook[j]=bits;
-
- AV_DEBUG(" masterbook: %d \n", floor_setup->data.t1.class_masterbook[j]);
- }
-
- for(k=0;k<(1<<floor_setup->data.t1.class_subclasses[j]);++k) {
-- floor_setup->data.t1.subclass_books[j][k]=(int16_t)get_bits(gb, 8)-1;
-+ int16_t bits=get_bits(gb, 8)-1;
-+ if (bits!=-1 && bits>=vc->codebook_count) {
-+ av_log(vc->avccontext, AV_LOG_ERROR, "Subclass book index %d is out of range.\n", bits);
-+ return 1;
-+ }
-+ floor_setup->data.t1.subclass_books[j][k]=bits;
-
- AV_DEBUG(" book %d. : %d \n", k, floor_setup->data.t1.subclass_books[j][k]);
- }
---
-1.6.3.3
-
diff --git a/debian/patches/security/libavcodec/vorbis_dec/0008-Check-res_setup-books.patch b/debian/patches/security/libavcodec/vorbis_dec/0008-Check-res_setup-books.patch
deleted file mode 100644
index 9429c34..0000000
--- a/debian/patches/security/libavcodec/vorbis_dec/0008-Check-res_setup-books.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From ecd690a24a440553e0ba587e13dc5b2ec279f0a8 Mon Sep 17 00:00:00 2001
-From: michael <michael at 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Wed, 23 Sep 2009 12:24:21 +0000
-Subject: [PATCH 08/12] Check res_setup->books.
- 15_more_residue_book_indexes.patch by chrome.
-
-git-svn-id: file:///var/local/repositories/ffmpeg/trunk@19992 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
----
- libavcodec/vorbis_dec.c | 7 ++++++-
- 1 files changed, 6 insertions(+), 1 deletions(-)
-
-diff --git a/libavcodec/vorbis_dec.c b/libavcodec/vorbis_dec.c
-index 3daba8f..ca43e99 100644
---- a/libavcodec/vorbis_dec.c
-+++ b/libavcodec/vorbis_dec.c
-@@ -663,7 +663,12 @@ static int vorbis_parse_setup_hdr_residues(vorbis_context *vc){
- for(j=0;j<res_setup->classifications;++j) {
- for(k=0;k<8;++k) {
- if (cascade[j]&(1<<k)) {
-- res_setup->books[j][k]=get_bits(gb, 8);
-+ int bits=get_bits(gb, 8);
-+ if (bits>=vc->codebook_count) {
-+ av_log(vc->avccontext, AV_LOG_ERROR, "book value %d out of range. \n", bits);
-+ return 1;
-+ }
-+ res_setup->books[j][k]=bits;
-
- AV_DEBUG(" %d class casscade depth %d book: %d \n", j, k, res_setup->books[j][k]);
-
---
-1.6.3.3
-
diff --git a/debian/patches/security/libavcodec/vorbis_dec/0009-Check-begin-end-partition_size.patch b/debian/patches/security/libavcodec/vorbis_dec/0009-Check-begin-end-partition_size.patch
deleted file mode 100644
index 79e62a4..0000000
--- a/debian/patches/security/libavcodec/vorbis_dec/0009-Check-begin-end-partition_size.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From d71f5b5b2b9f2e0ba2da67ca2c15b9bbb69ac1fc Mon Sep 17 00:00:00 2001
-From: michael <michael at 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Wed, 23 Sep 2009 13:08:48 +0000
-Subject: [PATCH 09/12] Check begin/end/partition_size.
- 23_vorbis_sane_partition.patch by chrome.
- Also this should be better documented but i prefer not to leave potential
- security issues open due to missing documentation.
-
-git-svn-id: file:///var/local/repositories/ffmpeg/trunk@19996 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
----
- libavcodec/vorbis_dec.c | 9 +++++++++
- 1 files changed, 9 insertions(+), 0 deletions(-)
-
-diff --git a/libavcodec/vorbis_dec.c b/libavcodec/vorbis_dec.c
-index ca43e99..ec3c561 100644
---- a/libavcodec/vorbis_dec.c
-+++ b/libavcodec/vorbis_dec.c
-@@ -37,6 +37,7 @@
- #define V_NB_BITS 8
- #define V_NB_BITS2 11
- #define V_MAX_VLCS (1<<16)
-+#define V_MAX_PARTITIONS (1<<20)
-
- #ifndef V_DEBUG
- #define AV_DEBUG(...)
-@@ -638,6 +639,14 @@ static int vorbis_parse_setup_hdr_residues(vorbis_context *vc){
- res_setup->begin=get_bits(gb, 24);
- res_setup->end=get_bits(gb, 24);
- res_setup->partition_size=get_bits(gb, 24)+1;
-+ /* Validations to prevent a buffer overflow later. */
-+ if (res_setup->begin>res_setup->end
-+ || res_setup->end>vc->blocksize[1]/(res_setup->type==2?1:2)
-+ || (res_setup->end-res_setup->begin)/res_setup->partition_size>V_MAX_PARTITIONS) {
-+ av_log(vc->avccontext, AV_LOG_ERROR, "partition out of bounds: type, begin, end, size, blocksize: %d, %d, %d, %d, %d\n", res_setup->type, res_setup->begin, res_setup->end, res_setup->partition_size, vc->blocksize[1]/2);
-+ return 1;
-+ }
-+
- res_setup->classifications=get_bits(gb, 6)+1;
- res_setup->classbook=get_bits(gb, 8);
- if (res_setup->classbook>=vc->codebook_count) {
---
-1.6.3.3
-
diff --git a/debian/patches/security/libavcodec/vorbis_dec/0010-Make-error-return-sign-consistent.patch b/debian/patches/security/libavcodec/vorbis_dec/0010-Make-error-return-sign-consistent.patch
deleted file mode 100644
index a3961aa..0000000
--- a/debian/patches/security/libavcodec/vorbis_dec/0010-Make-error-return-sign-consistent.patch
+++ /dev/null
@@ -1,251 +0,0 @@
-From 213d02328757c6b212ac6d4bb7ec23f70080fb25 Mon Sep 17 00:00:00 2001
-From: michael <michael at 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Wed, 23 Sep 2009 13:18:29 +0000
-Subject: [PATCH 10/12] Make error return sign consistent.
-
-edited by siretart at tauware.de to apply to 0.5
-
-git-svn-id: file:///var/local/repositories/ffmpeg/trunk@19997 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
----
- libavcodec/vorbis_dec.c | 60 +++++++++++++++++++++++-----------------------
- 1 files changed, 30 insertions(+), 30 deletions(-)
-
---- a/libavcodec/vorbis_dec.c
-+++ b/libavcodec/vorbis_dec.c
-@@ -418,7 +418,7 @@ static int vorbis_parse_setup_hdr_codebo
- error:
- av_free(tmp_vlc_bits);
- av_free(tmp_vlc_codes);
-- return 1;
-+ return -1;
- }
-
- // Process time domain transforms part (unused in Vorbis I)
-@@ -435,7 +435,7 @@ static int vorbis_parse_setup_hdr_tdtran
-
- if (vorbis_tdtransform) {
- av_log(vc->avccontext, AV_LOG_ERROR, "Vorbis time domain transform data nonzero. \n");
-- return 1;
-+ return -1;
- }
- }
- return 0;
-@@ -496,7 +496,7 @@ static int vorbis_parse_setup_hdr_floors
- int bits=get_bits(gb, 8);
- if (bits>=vc->codebook_count) {
- av_log(vc->avccontext, AV_LOG_ERROR, "Masterbook index %d is out of range.\n", bits);
-- return 1;
-+ return -1;
- }
- floor_setup->data.t1.class_masterbook[j]=bits;
-
-@@ -507,7 +507,7 @@ static int vorbis_parse_setup_hdr_floors
- int16_t bits=get_bits(gb, 8)-1;
- if (bits!=-1 && bits>=vc->codebook_count) {
- av_log(vc->avccontext, AV_LOG_ERROR, "Subclass book index %d is out of range.\n", bits);
-- return 1;
-+ return -1;
- }
- floor_setup->data.t1.subclass_books[j][k]=bits;
-
-@@ -554,7 +554,7 @@ static int vorbis_parse_setup_hdr_floors
- if (floor_setup->data.t0.amplitude_bits == 0) {
- av_log(vc->avccontext, AV_LOG_ERROR,
- "Floor 0 amplitude bits is 0.\n");
-- return 1;
-+ return -1;
- }
- floor_setup->data.t0.amplitude_offset=get_bits(gb, 8);
- floor_setup->data.t0.num_books=get_bits(gb, 4)+1;
-@@ -562,7 +562,7 @@ static int vorbis_parse_setup_hdr_floors
- /* allocate mem for booklist */
- floor_setup->data.t0.book_list=
- av_malloc(floor_setup->data.t0.num_books);
-- if(!floor_setup->data.t0.book_list) { return 1; }
-+ if(!floor_setup->data.t0.book_list) { return -1; }
- /* read book indexes */
- {
- int idx;
-@@ -570,7 +570,7 @@ static int vorbis_parse_setup_hdr_floors
- for (idx=0;idx<floor_setup->data.t0.num_books;++idx) {
- book_idx=get_bits(gb, 8);
- if (book_idx>=vc->codebook_count)
-- return 1;
-+ return -1;
- floor_setup->data.t0.book_list[idx]=book_idx;
- if (vc->codebooks[book_idx].dimensions > max_codebook_dim)
- max_codebook_dim=vc->codebooks[book_idx].dimensions;
-@@ -586,7 +586,7 @@ static int vorbis_parse_setup_hdr_floors
- floor_setup->data.t0.lsp=
- av_malloc((floor_setup->data.t0.order+1 + max_codebook_dim)
- * sizeof(float));
-- if(!floor_setup->data.t0.lsp) { return 1; }
-+ if(!floor_setup->data.t0.lsp) { return -1; }
- }
-
- #ifdef V_DEBUG /* debug output parsed headers */
-@@ -614,7 +614,7 @@ static int vorbis_parse_setup_hdr_floors
- }
- else {
- av_log(vc->avccontext, AV_LOG_ERROR, "Invalid floor type!\n");
-- return 1;
-+ return -1;
- }
- }
- return 0;
-@@ -649,14 +649,14 @@ static int vorbis_parse_setup_hdr_residu
- || res_setup->end>vc->blocksize[1]/(res_setup->type==2?1:2)
- || (res_setup->end-res_setup->begin)/res_setup->partition_size>V_MAX_PARTITIONS) {
- av_log(vc->avccontext, AV_LOG_ERROR, "partition out of bounds: type, begin, end, size, blocksize: %d, %d, %d, %d, %d\n", res_setup->type, res_setup->begin, res_setup->end, res_setup->partition_size, vc->blocksize[1]/2);
-- return 1;
-+ return -1;
- }
-
- res_setup->classifications=get_bits(gb, 6)+1;
- res_setup->classbook=get_bits(gb, 8);
- if (res_setup->classbook>=vc->codebook_count) {
- av_log(vc->avccontext, AV_LOG_ERROR, "classbook value %d out of range. \n", res_setup->classbook);
-- return 1;
-+ return -1;
- }
-
- AV_DEBUG(" begin %d end %d part.size %d classif.s %d classbook %d \n", res_setup->begin, res_setup->end, res_setup->partition_size,
-@@ -680,7 +680,7 @@ static int vorbis_parse_setup_hdr_residu
- int bits=get_bits(gb, 8);
- if (bits>=vc->codebook_count) {
- av_log(vc->avccontext, AV_LOG_ERROR, "book value %d out of range. \n", bits);
-- return 1;
-+ return -1;
- }
- res_setup->books[j][k]=bits;
-
-@@ -714,7 +714,7 @@ static int vorbis_parse_setup_hdr_mappin
-
- if (get_bits(gb, 16)) {
- av_log(vc->avccontext, AV_LOG_ERROR, "Other mappings than type 0 are not compliant with the Vorbis I specification. \n");
-- return 1;
-+ return -1;
- }
- if (get_bits1(gb)) {
- mapping_setup->submaps=get_bits(gb, 4)+1;
-@@ -731,11 +731,11 @@ static int vorbis_parse_setup_hdr_mappin
- mapping_setup->angle[j]=get_bits(gb, ilog(vc->audio_channels-1));
- if (mapping_setup->magnitude[j]>=vc->audio_channels) {
- av_log(vc->avccontext, AV_LOG_ERROR, "magnitude channel %d out of range. \n", mapping_setup->magnitude[j]);
-- return 1;
-+ return -1;
- }
- if (mapping_setup->angle[j]>=vc->audio_channels) {
- av_log(vc->avccontext, AV_LOG_ERROR, "angle channel %d out of range. \n", mapping_setup->angle[j]);
-- return 1;
-+ return -1;
- }
- }
- } else {
-@@ -746,7 +746,7 @@ static int vorbis_parse_setup_hdr_mappin
-
- if(get_bits(gb, 2)) {
- av_log(vc->avccontext, AV_LOG_ERROR, "%d. mapping setup data invalid. \n", i);
-- return 1; // following spec.
-+ return -1; // following spec.
- }
-
- if (mapping_setup->submaps>1) {
-@@ -825,7 +825,7 @@ static int vorbis_parse_setup_hdr_modes(
- mode_setup->mapping=get_bits(gb, 8);
- if (mode_setup->mapping>=vc->mapping_count) {
- av_log(vc->avccontext, AV_LOG_ERROR, "mode mapping value %d out of range. \n", mode_setup->mapping);
-- return 1;
-+ return -1;
- }
-
- AV_DEBUG(" %d mode: blockflag %d, windowtype %d, transformtype %d, mapping %d \n", i, mode_setup->blockflag, mode_setup->windowtype, mode_setup->transformtype, mode_setup->mapping);
-@@ -842,36 +842,36 @@ static int vorbis_parse_setup_hdr(vorbis
- (get_bits(gb, 8)!='r') || (get_bits(gb, 8)!='b') ||
- (get_bits(gb, 8)!='i') || (get_bits(gb, 8)!='s')) {
- av_log(vc->avccontext, AV_LOG_ERROR, " Vorbis setup header packet corrupt (no vorbis signature). \n");
-- return 1;
-+ return -1;
- }
-
- if (vorbis_parse_setup_hdr_codebooks(vc)) {
- av_log(vc->avccontext, AV_LOG_ERROR, " Vorbis setup header packet corrupt (codebooks). \n");
-- return 2;
-+ return -2;
- }
- if (vorbis_parse_setup_hdr_tdtransforms(vc)) {
- av_log(vc->avccontext, AV_LOG_ERROR, " Vorbis setup header packet corrupt (time domain transforms). \n");
-- return 3;
-+ return -3;
- }
- if (vorbis_parse_setup_hdr_floors(vc)) {
- av_log(vc->avccontext, AV_LOG_ERROR, " Vorbis setup header packet corrupt (floors). \n");
-- return 4;
-+ return -4;
- }
- if (vorbis_parse_setup_hdr_residues(vc)) {
- av_log(vc->avccontext, AV_LOG_ERROR, " Vorbis setup header packet corrupt (residues). \n");
-- return 5;
-+ return -5;
- }
- if (vorbis_parse_setup_hdr_mappings(vc)) {
- av_log(vc->avccontext, AV_LOG_ERROR, " Vorbis setup header packet corrupt (mappings). \n");
-- return 6;
-+ return -6;
- }
- if (vorbis_parse_setup_hdr_modes(vc)) {
- av_log(vc->avccontext, AV_LOG_ERROR, " Vorbis setup header packet corrupt (modes). \n");
-- return 7;
-+ return -7;
- }
- if (!get_bits1(gb)) {
- av_log(vc->avccontext, AV_LOG_ERROR, " Vorbis setup header packet corrupt (framing flag). \n");
-- return 8; // framing flag bit unset error
-+ return -8; // framing flag bit unset error
- }
-
- return 0;
-@@ -887,7 +887,7 @@ static int vorbis_parse_id_hdr(vorbis_co
- (get_bits(gb, 8)!='r') || (get_bits(gb, 8)!='b') ||
- (get_bits(gb, 8)!='i') || (get_bits(gb, 8)!='s')) {
- av_log(vc->avccontext, AV_LOG_ERROR, " Vorbis id header packet corrupt (no vorbis signature). \n");
-- return 1;
-+ return -1;
- }
-
- vc->version=get_bits_long(gb, 32); //FIXME check 0
-@@ -902,14 +902,14 @@ static int vorbis_parse_id_hdr(vorbis_co
- vc->blocksize[1]=(1<<bl1);
- if (bl0>13 || bl0<6 || bl1>13 || bl1<6 || bl1<bl0) {
- av_log(vc->avccontext, AV_LOG_ERROR, " Vorbis id header packet corrupt (illegal blocksize). \n");
-- return 3;
-+ return -3;
- }
- // output format int16
- if (vc->blocksize[1]/2 * vc->audio_channels * 2 >
- AVCODEC_MAX_AUDIO_FRAME_SIZE) {
- av_log(vc->avccontext, AV_LOG_ERROR, "Vorbis channel count makes "
- "output packets too large.\n");
-- return 4;
-+ return -4;
- }
- vc->win[0]=ff_vorbis_vwin[bl0-6];
- vc->win[1]=ff_vorbis_vwin[bl1-6];
-@@ -926,7 +926,7 @@ static int vorbis_parse_id_hdr(vorbis_co
-
- if ((get_bits1(gb)) == 0) {
- av_log(vc->avccontext, AV_LOG_ERROR, " Vorbis id header packet corrupt (framing flag not set). \n");
-- return 2;
-+ return -2;
- }
-
- vc->channel_residues= av_malloc((vc->blocksize[1]/2)*vc->audio_channels * sizeof(float));
-@@ -1415,7 +1415,7 @@ static inline int vorbis_residue_decode(
- return vorbis_residue_decode_internal(vc, vr, ch, do_not_decode, vec, vlen, 0);
- else {
- av_log(vc->avccontext, AV_LOG_ERROR, " Invalid residue type while residue decode?! \n");
-- return 1;
-+ return -1;
- }
- }
-
diff --git a/debian/patches/security/libavcodec/vorbis_dec/0011-Check-submap-indexes.patch b/debian/patches/security/libavcodec/vorbis_dec/0011-Check-submap-indexes.patch
deleted file mode 100644
index db75037..0000000
--- a/debian/patches/security/libavcodec/vorbis_dec/0011-Check-submap-indexes.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From c1fe0583d44a67f94047bd3e59f2b53f304db4ec Mon Sep 17 00:00:00 2001
-From: michael <michael at 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Wed, 23 Sep 2009 14:19:17 +0000
-Subject: [PATCH 11/12] Check submap indexes.
- 10_vorbis_submap_indexes.patch by chrome.
- Iam applying this even though reimar had some comments to improve it as it fixes
- a serious security issue and i do not want to leave such things unfixed.
-
-git-svn-id: file:///var/local/repositories/ffmpeg/trunk@20001 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
----
- libavcodec/vorbis_dec.c | 15 +++++++++++++--
- 1 files changed, 13 insertions(+), 2 deletions(-)
-
-diff --git a/libavcodec/vorbis_dec.c b/libavcodec/vorbis_dec.c
-index 2152f5f..ed4dace 100644
---- a/libavcodec/vorbis_dec.c
-+++ b/libavcodec/vorbis_dec.c
-@@ -752,9 +752,20 @@ static int vorbis_parse_setup_hdr_mappings(vorbis_context *vc) {
- }
-
- for(j=0;j<mapping_setup->submaps;++j) {
-+ int bits;
- skip_bits(gb, 8); // FIXME check?
-- mapping_setup->submap_floor[j]=get_bits(gb, 8);
-- mapping_setup->submap_residue[j]=get_bits(gb, 8);
-+ bits=get_bits(gb, 8);
-+ if (bits>=vc->floor_count) {
-+ av_log(vc->avccontext, AV_LOG_ERROR, "submap floor value %d out of range. \n", bits);
-+ return -1;
-+ }
-+ mapping_setup->submap_floor[j]=bits;
-+ bits=get_bits(gb, 8);
-+ if (bits>=vc->residue_count) {
-+ av_log(vc->avccontext, AV_LOG_ERROR, "submap residue value %d out of range. \n", bits);
-+ return -1;
-+ }
-+ mapping_setup->submap_residue[j]=bits;
-
- AV_DEBUG(" %d mapping %d submap : floor %d, residue %d \n", i, j, mapping_setup->submap_floor[j], mapping_setup->submap_residue[j]);
- }
---
-1.6.3.3
-
diff --git a/debian/patches/security/libavcodec/vorbis_dec/0012-Fix-format-string-to-match-the-types-printed.patch b/debian/patches/security/libavcodec/vorbis_dec/0012-Fix-format-string-to-match-the-types-printed.patch
deleted file mode 100644
index bc22352..0000000
--- a/debian/patches/security/libavcodec/vorbis_dec/0012-Fix-format-string-to-match-the-types-printed.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From c2ca1c6ee96c27ec872012dbc5a8b15fdb15eca9 Mon Sep 17 00:00:00 2001
-From: reimar <reimar at 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Wed, 23 Sep 2009 15:30:38 +0000
-Subject: [PATCH 12/12] Fix format string to match the types printed.
-
-git-svn-id: file:///var/local/repositories/ffmpeg/trunk@20003 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
----
- libavcodec/vorbis_dec.c | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/libavcodec/vorbis_dec.c b/libavcodec/vorbis_dec.c
-index ed4dace..4d992a8 100644
---- a/libavcodec/vorbis_dec.c
-+++ b/libavcodec/vorbis_dec.c
-@@ -643,7 +643,7 @@ static int vorbis_parse_setup_hdr_residues(vorbis_context *vc){
- if (res_setup->begin>res_setup->end
- || res_setup->end>vc->blocksize[1]/(res_setup->type==2?1:2)
- || (res_setup->end-res_setup->begin)/res_setup->partition_size>V_MAX_PARTITIONS) {
-- av_log(vc->avccontext, AV_LOG_ERROR, "partition out of bounds: type, begin, end, size, blocksize: %d, %d, %d, %d, %d\n", res_setup->type, res_setup->begin, res_setup->end, res_setup->partition_size, vc->blocksize[1]/2);
-+ av_log(vc->avccontext, AV_LOG_ERROR, "partition out of bounds: type, begin, end, size, blocksize: %"PRIdFAST16", %"PRIdFAST32", %"PRIdFAST32", %"PRIdFAST32", %"PRIdFAST32"\n", res_setup->type, res_setup->begin, res_setup->end, res_setup->partition_size, vc->blocksize[1]/2);
- return -1;
- }
-
---
-1.6.3.3
-
diff --git a/debian/patches/security/libavcodec/vp3/0001-Fix-init_get_bits-buffer-size.patch b/debian/patches/security/libavcodec/vp3/0001-Fix-init_get_bits-buffer-size.patch
deleted file mode 100644
index a90a9f3..0000000
--- a/debian/patches/security/libavcodec/vp3/0001-Fix-init_get_bits-buffer-size.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 351a67a951b4b95bc0cb05127445b685f362f9b9 Mon Sep 17 00:00:00 2001
-From: michael <michael at 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Wed, 23 Sep 2009 12:27:10 +0000
-Subject: [PATCH 1/3] Fix init_get_bits() buffer size.
- 18_fix_theora_header_bit_len.patch by chrome
-
-git-svn-id: file:///var/local/repositories/ffmpeg/trunk@19993 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
----
- libavcodec/vp3.c | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/libavcodec/vp3.c b/libavcodec/vp3.c
-index 4d27a8a..4896fd0 100644
---- a/libavcodec/vp3.c
-+++ b/libavcodec/vp3.c
-@@ -2319,7 +2319,7 @@ static av_cold int theora_decode_init(AVCodecContext *avctx)
- }
-
- for(i=0;i<3;i++) {
-- init_get_bits(&gb, header_start[i], header_len[i]);
-+ init_get_bits(&gb, header_start[i], header_len[i] * 8);
-
- ptype = get_bits(&gb, 8);
-
---
-1.6.3.3
-
diff --git a/debian/patches/security/libavcodec/vp3/0003-Make-sure-that-all-memory-allocations-succeed.patch b/debian/patches/security/libavcodec/vp3/0003-Make-sure-that-all-memory-allocations-succeed.patch
deleted file mode 100644
index bc1a7ce..0000000
--- a/debian/patches/security/libavcodec/vp3/0003-Make-sure-that-all-memory-allocations-succeed.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 3303bd41acebb0068f1afd09fbb39432d3982620 Mon Sep 17 00:00:00 2001
-From: melanson <melanson at 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Thu, 24 Sep 2009 06:33:16 +0000
-Subject: [PATCH 3/3] Make sure that all memory allocations succeed.
- Based on 28_theora_malloc_checks.patch from the Google Chrome team.
-
-git-svn-id: file:///var/local/repositories/ffmpeg/trunk@20008 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
----
- libavcodec/vp3.c | 12 ++++++++++++
- 1 files changed, 12 insertions(+), 0 deletions(-)
-
-diff --git a/libavcodec/vp3.c b/libavcodec/vp3.c
-index 6a6663f..60b84f0 100644
---- a/libavcodec/vp3.c
-+++ b/libavcodec/vp3.c
-@@ -42,6 +42,8 @@
-
- #define FRAGMENT_PIXELS 8
-
-+static av_cold int vp3_decode_end(AVCodecContext *avctx);
-+
- typedef struct Coeff {
- struct Coeff *next;
- DCTELEM coeff;
-@@ -1755,6 +1757,11 @@ static av_cold int vp3_decode_init(AVCodecContext *avctx)
- s->coeffs = av_malloc(s->fragment_count * sizeof(Coeff) * 65);
- s->coded_fragment_list = av_malloc(s->fragment_count * sizeof(int));
- s->pixel_addresses_initialized = 0;
-+ if (!s->superblock_coding || !s->all_fragments || !s->coeff_counts ||
-+ !s->coeffs || !s->coded_fragment_list) {
-+ vp3_decode_end(avctx);
-+ return -1;
-+ }
-
- if (!s->theora_tables)
- {
-@@ -1860,6 +1867,11 @@ static av_cold int vp3_decode_init(AVCodecContext *avctx)
- s->superblock_macroblocks = av_malloc(s->superblock_count * 4 * sizeof(int));
- s->macroblock_fragments = av_malloc(s->macroblock_count * 6 * sizeof(int));
- s->macroblock_coding = av_malloc(s->macroblock_count + 1);
-+ if (!s->superblock_fragments || !s->superblock_macroblocks ||
-+ !s->macroblock_fragments || !s->macroblock_coding) {
-+ vp3_decode_end(avctx);
-+ return -1;
-+ }
- init_block_mapping(s);
-
- for (i = 0; i < 3; i++) {
---
-1.6.3.3
-
diff --git a/debian/patches/security/libavformat/mov/0000-MOV-Support-stz2-Compact-Sample-Size-Box.patch b/debian/patches/security/libavformat/mov/0000-MOV-Support-stz2-Compact-Sample-Size-Box.patch
deleted file mode 100644
index 0eff8ac..0000000
--- a/debian/patches/security/libavformat/mov/0000-MOV-Support-stz2-Compact-Sample-Size-Box.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From 1e6a8e7b1f40e16f79ff63080d58126e8b52ad2c Mon Sep 17 00:00:00 2001
-From: alexc <alexc at 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Mon, 16 Mar 2009 16:14:36 +0000
-Subject: [PATCH] MOV: Support stz2 "Compact Sample Size Box"
-
-git-svn-id: file:///var/local/repositories/ffmpeg/trunk@18016 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
----
- libavformat/mov.c | 38 ++++++++++++++++++++++++++++++++++++--
- 1 files changed, 36 insertions(+), 2 deletions(-)
-
-diff --git a/libavformat/mov.c b/libavformat/mov.c
-index e6ac071..36e4bce 100644
---- a/libavformat/mov.c
-+++ b/libavformat/mov.c
-@@ -33,6 +33,7 @@
- #include "isom.h"
- #include "libavcodec/mpeg4audio.h"
- #include "libavcodec/mpegaudiodata.h"
-+#include "libavcodec/bitstream.h"
-
- #if CONFIG_ZLIB
- #include <zlib.h>
-@@ -1127,14 +1128,23 @@ static int mov_read_stsz(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
- {
- AVStream *st = c->fc->streams[c->fc->nb_streams-1];
- MOVStreamContext *sc = st->priv_data;
-- unsigned int i, entries, sample_size;
-+ unsigned int i, entries, sample_size, field_size, num_bytes;
-+ GetBitContext gb;
-+ unsigned char* buf;
-
- get_byte(pb); /* version */
- get_be24(pb); /* flags */
-
-+ if (atom.type == MKTAG('s','t','s','z')) {
- sample_size = get_be32(pb);
- if (!sc->sample_size) /* do not overwrite value computed in stsd */
- sc->sample_size = sample_size;
-+ field_size = 32;
-+ } else {
-+ sample_size = 0;
-+ get_be24(pb); /* reserved */
-+ field_size = get_byte(pb);
-+ }
- entries = get_be32(pb);
-
- dprintf(c->fc, "sample_size = %d sample_count = %d\n", sc->sample_size, entries);
-@@ -1143,14 +1153,37 @@ static int mov_read_stsz(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
- if (sample_size)
- return 0;
-
-+ if (field_size != 4 && field_size != 8 && field_size != 16 && field_size != 32) {
-+ av_log(c->fc, AV_LOG_ERROR, "Invalid sample field size %d\n", field_size);
-+ return -1;
-+ }
-+
- if(entries >= UINT_MAX / sizeof(int))
- return -1;
- sc->sample_sizes = av_malloc(entries * sizeof(int));
- if (!sc->sample_sizes)
- return AVERROR(ENOMEM);
-
-+ num_bytes = (entries*field_size+4)>>3;
-+
-+ buf = av_malloc(num_bytes);
-+ if (!buf) {
-+ av_freep(&sc->sample_sizes);
-+ return AVERROR(ENOMEM);
-+ }
-+
-+ if (get_buffer(pb, buf, num_bytes) < num_bytes) {
-+ av_freep(&sc->sample_sizes);
-+ av_free(buf);
-+ return -1;
-+ }
-+
-+ init_get_bits(&gb, buf, 8*num_bytes);
-+
- for(i=0; i<entries; i++)
-- sc->sample_sizes[i] = get_be32(pb);
-+ sc->sample_sizes[i] = get_bits_long(&gb, field_size);
-+
-+ av_free(buf);
- return 0;
- }
-
-@@ -1793,6 +1826,7 @@ static const MOVParseTableEntry mov_default_parse_table[] = {
- { MKTAG('s','t','s','s'), mov_read_stss }, /* sync sample */
- { MKTAG('s','t','s','z'), mov_read_stsz }, /* sample size */
- { MKTAG('s','t','t','s'), mov_read_stts },
-+{ MKTAG('s','t','z','2'), mov_read_stsz }, /* compact sample size */
- { MKTAG('t','k','h','d'), mov_read_tkhd }, /* track header */
- { MKTAG('t','f','h','d'), mov_read_tfhd }, /* track fragment header */
- { MKTAG('t','r','a','k'), mov_read_trak },
---
-1.6.3.3
-
diff --git a/debian/patches/security/libavformat/mov/0001-check-entries-against-field_size-potential-malloc-ov.patch b/debian/patches/security/libavformat/mov/0001-check-entries-against-field_size-potential-malloc-ov.patch
deleted file mode 100644
index db8c38e..0000000
--- a/debian/patches/security/libavformat/mov/0001-check-entries-against-field_size-potential-malloc-ov.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 59a7d76f26091bb379e41e546c561d6987b2df3b Mon Sep 17 00:00:00 2001
-From: bcoudurier <bcoudurier at 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Mon, 7 Sep 2009 22:42:51 +0000
-Subject: [PATCH] check entries against field_size, potential malloc overflow in read_stsz, fix #1357
-
-git-svn-id: file:///var/local/repositories/ffmpeg/trunk@19793 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
----
- libavformat/mov.c | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/libavformat/mov.c b/libavformat/mov.c
-index 5f11ebe..05fdfa3 100644
---- a/libavformat/mov.c
-+++ b/libavformat/mov.c
-@@ -1256,7 +1256,7 @@ static int mov_read_stsz(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
- return -1;
- }
-
-- if(entries >= UINT_MAX / sizeof(int))
-+ if (entries >= UINT_MAX / sizeof(int) || entries >= (UINT_MAX - 4) / field_size)
- return -1;
- sc->sample_sizes = av_malloc(entries * sizeof(int));
- if (!sc->sample_sizes)
---
-1.6.3.3
-
diff --git a/debian/patches/security/libavformat/mov/0002-add-one-missing-check-for-stream-existence-in-read_e.patch b/debian/patches/security/libavformat/mov/0002-add-one-missing-check-for-stream-existence-in-read_e.patch
deleted file mode 100644
index 8fbe248..0000000
--- a/debian/patches/security/libavformat/mov/0002-add-one-missing-check-for-stream-existence-in-read_e.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From b601744633167a1b37bc171d298872d57522400e Mon Sep 17 00:00:00 2001
-From: bcoudurier <bcoudurier at 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Mon, 7 Sep 2009 22:36:33 +0000
-Subject: [PATCH] add one missing check for stream existence in read_elst, fix #1364
-
-git-svn-id: file:///var/local/repositories/ffmpeg/trunk@19792 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
----
- libavformat/mov.c | 6 +++++-
- 1 files changed, 5 insertions(+), 1 deletions(-)
-
-diff --git a/libavformat/mov.c b/libavformat/mov.c
-index 74698e0..5f11ebe 100644
---- a/libavformat/mov.c
-+++ b/libavformat/mov.c
-@@ -1905,9 +1905,13 @@ free_and_return:
- /* edit list atom */
- static int mov_read_elst(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
- {
-- MOVStreamContext *sc = c->fc->streams[c->fc->nb_streams-1]->priv_data;
-+ MOVStreamContext *sc;
- int i, edit_count;
-
-+ if (c->fc->nb_streams < 1)
-+ return 0;
-+ sc = c->fc->streams[c->fc->nb_streams-1]->priv_data;
-+
- get_byte(pb); /* version */
- get_be24(pb); /* flags */
- edit_count = get_be32(pb); /* entries */
---
-1.6.3.3
-
diff --git a/debian/patches/security/libavformat/mov/0003-check-stream-existence-before-assignment-fix-1222.patch b/debian/patches/security/libavformat/mov/0003-check-stream-existence-before-assignment-fix-1222.patch
deleted file mode 100644
index 1242c16..0000000
--- a/debian/patches/security/libavformat/mov/0003-check-stream-existence-before-assignment-fix-1222.patch
+++ /dev/null
@@ -1,287 +0,0 @@
-From 83b7e34ccb8f63f24d91dfc4dd89a4971f36ce12 Mon Sep 17 00:00:00 2001
-From: bcoudurier <bcoudurier at 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Wed, 24 Jun 2009 03:38:47 +0000
-Subject: [PATCH] check stream existence before assignment, fix #1222
-
-git-svn-id: file:///var/local/repositories/ffmpeg/trunk@19259 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
----
- libavformat/mov.c | 136 +++++++++++++++++++++++++++++++++++++++++-----------
- 1 files changed, 107 insertions(+), 29 deletions(-)
-
---- a/libavformat/mov.c
-+++ b/libavformat/mov.c
-@@ -239,10 +239,15 @@ static int mov_read_default(MOVContext *
-
- static int mov_read_dref(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
- {
-- AVStream *st = c->fc->streams[c->fc->nb_streams-1];
-- MOVStreamContext *sc = st->priv_data;
-+ AVStream *st;
-+ MOVStreamContext *sc;
- int entries, i, j;
-
-+ if (c->fc->nb_streams < 1)
-+ return 0;
-+ st = c->fc->streams[c->fc->nb_streams-1];
-+ sc = st->priv_data;
-+
- get_be32(pb); // version + flags
- entries = get_be32(pb);
- if (entries >= UINT_MAX / sizeof(*sc->drefs))
-@@ -382,9 +387,13 @@ static const AVCodecTag mp4_audio_types[
-
- static int mov_read_esds(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
- {
-- AVStream *st = c->fc->streams[c->fc->nb_streams-1];
-+ AVStream *st;
- int tag, len;
-
-+ if (c->fc->nb_streams < 1)
-+ return 0;
-+ st = c->fc->streams[c->fc->nb_streams-1];
-+
- get_be32(pb); /* version + flags */
- len = mp4_read_descr(c, pb, &tag);
- if (tag == MP4ESDescrTag) {
-@@ -441,7 +450,12 @@ static int mov_read_pasp(MOVContext *c,
- {
- const int num = get_be32(pb);
- const int den = get_be32(pb);
-- AVStream * const st = c->fc->streams[c->fc->nb_streams-1];
-+ AVStream *st;
-+
-+ if (c->fc->nb_streams < 1)
-+ return 0;
-+ st = c->fc->streams[c->fc->nb_streams-1];
-+
- if (den != 0) {
- if ((st->sample_aspect_ratio.den != 1 || st->sample_aspect_ratio.num) && // default
- (den != st->sample_aspect_ratio.den || num != st->sample_aspect_ratio.num))
-@@ -495,12 +509,18 @@ static int mov_read_moof(MOVContext *c,
-
- static int mov_read_mdhd(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
- {
-- AVStream *st = c->fc->streams[c->fc->nb_streams-1];
-- MOVStreamContext *sc = st->priv_data;
-- int version = get_byte(pb);
-+ AVStream *st;
-+ MOVStreamContext *sc;
-+ int version;
- char language[4] = {0};
- unsigned lang;
-
-+ if (c->fc->nb_streams < 1)
-+ return 0;
-+ st = c->fc->streams[c->fc->nb_streams-1];
-+ sc = st->priv_data;
-+
-+ version = get_byte(pb);
- if (version > 1)
- return -1; /* unsupported */
-
-@@ -562,7 +582,11 @@ static int mov_read_mvhd(MOVContext *c,
-
- static int mov_read_smi(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
- {
-- AVStream *st = c->fc->streams[c->fc->nb_streams-1];
-+ AVStream *st;
-+
-+ if (c->fc->nb_streams < 1)
-+ return 0;
-+ st = c->fc->streams[c->fc->nb_streams-1];
-
- if((uint64_t)atom.size > (1<<30))
- return -1;
-@@ -582,9 +606,14 @@ static int mov_read_smi(MOVContext *c, B
-
- static int mov_read_enda(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
- {
-- AVStream *st = c->fc->streams[c->fc->nb_streams-1];
-- int little_endian = get_be16(pb);
-+ AVStream *st;
-+ int little_endian;
-+
-+ if (c->fc->nb_streams < 1)
-+ return 0;
-+ st = c->fc->streams[c->fc->nb_streams-1];
-
-+ little_endian = get_be16(pb);
- dprintf(c->fc, "enda %d\n", little_endian);
- if (little_endian == 1) {
- switch (st->codec->codec_id) {
-@@ -634,7 +663,11 @@ static int mov_read_extradata(MOVContext
-
- static int mov_read_wave(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
- {
-- AVStream *st = c->fc->streams[c->fc->nb_streams-1];
-+ AVStream *st;
-+
-+ if (c->fc->nb_streams < 1)
-+ return 0;
-+ st = c->fc->streams[c->fc->nb_streams-1];
-
- if((uint64_t)atom.size > (1<<30))
- return -1;
-@@ -661,7 +694,11 @@ static int mov_read_wave(MOVContext *c,
- */
- static int mov_read_glbl(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
- {
-- AVStream *st = c->fc->streams[c->fc->nb_streams-1];
-+ AVStream *st;
-+
-+ if (c->fc->nb_streams < 1)
-+ return 0;
-+ st = c->fc->streams[c->fc->nb_streams-1];
-
- if((uint64_t)atom.size > (1<<30))
- return -1;
-@@ -677,10 +714,15 @@ static int mov_read_glbl(MOVContext *c,
-
- static int mov_read_stco(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
- {
-- AVStream *st = c->fc->streams[c->fc->nb_streams-1];
-- MOVStreamContext *sc = st->priv_data;
-+ AVStream *st;
-+ MOVStreamContext *sc;
- unsigned int i, entries;
-
-+ if (c->fc->nb_streams < 1)
-+ return 0;
-+ st = c->fc->streams[c->fc->nb_streams-1];
-+ sc = st->priv_data;
-+
- get_byte(pb); /* version */
- get_be24(pb); /* flags */
-
-@@ -743,10 +785,15 @@ static enum CodecID mov_get_lpcm_codec_i
-
- static int mov_read_stsd(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
- {
-- AVStream *st = c->fc->streams[c->fc->nb_streams-1];
-- MOVStreamContext *sc = st->priv_data;
-+ AVStream *st;
-+ MOVStreamContext *sc;
- int j, entries, pseudo_stream_id;
-
-+ if (c->fc->nb_streams < 1)
-+ return 0;
-+ st = c->fc->streams[c->fc->nb_streams-1];
-+ sc = st->priv_data;
-+
- get_byte(pb); /* version */
- get_be24(pb); /* flags */
-
-@@ -1065,10 +1112,15 @@ static int mov_read_stsd(MOVContext *c,
-
- static int mov_read_stsc(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
- {
-- AVStream *st = c->fc->streams[c->fc->nb_streams-1];
-- MOVStreamContext *sc = st->priv_data;
-+ AVStream *st;
-+ MOVStreamContext *sc;
- unsigned int i, entries;
-
-+ if (c->fc->nb_streams < 1)
-+ return 0;
-+ st = c->fc->streams[c->fc->nb_streams-1];
-+ sc = st->priv_data;
-+
- get_byte(pb); /* version */
- get_be24(pb); /* flags */
-
-@@ -1093,10 +1145,15 @@ static int mov_read_stsc(MOVContext *c,
-
- static int mov_read_stss(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
- {
-- AVStream *st = c->fc->streams[c->fc->nb_streams-1];
-- MOVStreamContext *sc = st->priv_data;
-+ AVStream *st;
-+ MOVStreamContext *sc;
- unsigned int i, entries;
-
-+ if (c->fc->nb_streams < 1)
-+ return 0;
-+ st = c->fc->streams[c->fc->nb_streams-1];
-+ sc = st->priv_data;
-+
- get_byte(pb); /* version */
- get_be24(pb); /* flags */
-
-@@ -1120,12 +1177,17 @@ static int mov_read_stss(MOVContext *c,
-
- static int mov_read_stsz(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
- {
-- AVStream *st = c->fc->streams[c->fc->nb_streams-1];
-- MOVStreamContext *sc = st->priv_data;
-+ AVStream *st;
-+ MOVStreamContext *sc;
- unsigned int i, entries, sample_size, field_size, num_bytes;
- GetBitContext gb;
- unsigned char* buf;
-
-+ if (c->fc->nb_streams < 1)
-+ return 0;
-+ st = c->fc->streams[c->fc->nb_streams-1];
-+ sc = st->priv_data;
-+
- get_byte(pb); /* version */
- get_be24(pb); /* flags */
-
-@@ -1183,12 +1245,17 @@ static int mov_read_stsz(MOVContext *c,
-
- static int mov_read_stts(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
- {
-- AVStream *st = c->fc->streams[c->fc->nb_streams-1];
-- MOVStreamContext *sc = st->priv_data;
-+ AVStream *st;
-+ MOVStreamContext *sc;
- unsigned int i, entries;
- int64_t duration=0;
- int64_t total_sample_count=0;
-
-+ if (c->fc->nb_streams < 1)
-+ return 0;
-+ st = c->fc->streams[c->fc->nb_streams-1];
-+ sc = st->priv_data;
-+
- get_byte(pb); /* version */
- get_be24(pb); /* flags */
- entries = get_be32(pb);
-@@ -1227,10 +1294,15 @@ static int mov_read_stts(MOVContext *c,
-
- static int mov_read_ctts(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
- {
-- AVStream *st = c->fc->streams[c->fc->nb_streams-1];
-- MOVStreamContext *sc = st->priv_data;
-+ AVStream *st;
-+ MOVStreamContext *sc;
- unsigned int i, entries;
-
-+ if (c->fc->nb_streams < 1)
-+ return 0;
-+ st = c->fc->streams[c->fc->nb_streams-1];
-+ sc = st->priv_data;
-+
- get_byte(pb); /* version */
- get_be24(pb); /* flags */
- entries = get_be32(pb);
-@@ -1537,10 +1609,16 @@ static int mov_read_tkhd(MOVContext *c,
- int height;
- int64_t disp_transform[2];
- int display_matrix[3][2];
-- AVStream *st = c->fc->streams[c->fc->nb_streams-1];
-- MOVStreamContext *sc = st->priv_data;
-- int version = get_byte(pb);
-+ AVStream *st;
-+ MOVStreamContext *sc;
-+ int version;
-+
-+ if (c->fc->nb_streams < 1)
-+ return 0;
-+ st = c->fc->streams[c->fc->nb_streams-1];
-+ sc = st->priv_data;
-
-+ version = get_byte(pb);
- get_be24(pb); /* flags */
- /*
- MOV_TRACK_ENABLED 0x0001
diff --git a/debian/patches/security/libavformat/oggdec/0001-Disable-parsing-for-ogg-streams-where-no-ogg-header-.patch b/debian/patches/security/libavformat/oggdec/0001-Disable-parsing-for-ogg-streams-where-no-ogg-header-.patch
deleted file mode 100644
index c8f6d64..0000000
--- a/debian/patches/security/libavformat/oggdec/0001-Disable-parsing-for-ogg-streams-where-no-ogg-header-.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 7fb2fe280374bcb1c41c2a8e7aa5632d18dc4279 Mon Sep 17 00:00:00 2001
-From: reimar <reimar at 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Wed, 30 Sep 2009 09:46:48 +0000
-Subject: [PATCH] Disable parsing for ogg streams where no ogg header was found,
- if no header was found the parser was not initialized and thus will
- crash when trying to use it.
-
-git-svn-id: file:///var/local/repositories/ffmpeg/trunk@20093 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
----
- libavformat/oggdec.c | 5 +++++
- 1 files changed, 5 insertions(+), 0 deletions(-)
-
-diff --git a/libavformat/oggdec.c b/libavformat/oggdec.c
-index 5d42db7..adf0ad0 100644
---- a/libavformat/oggdec.c
-+++ b/libavformat/oggdec.c
-@@ -477,12 +477,17 @@ static int
- ogg_read_header (AVFormatContext * s, AVFormatParameters * ap)
- {
- struct ogg *ogg = s->priv_data;
-+ int i;
- ogg->curidx = -1;
- //linear headers seek from start
- if (ogg_get_headers (s) < 0){
- return -1;
- }
-
-+ for (i = 0; i < ogg->nstreams; i++)
-+ if (ogg->streams[i].header < 0)
-+ ogg->streams[i].codec = NULL;
-+
- //linear granulepos seek from end
- ogg_get_length (s);
-
---
-1.6.3.3
-
diff --git a/debian/patches/security/libavformat/oggparsevorbis/0001-Fix-possible-buffer-over-read-in-vorbis_comment-fix-.patch b/debian/patches/security/libavformat/oggparsevorbis/0001-Fix-possible-buffer-over-read-in-vorbis_comment-fix-.patch
deleted file mode 100644
index 2a8d510..0000000
--- a/debian/patches/security/libavformat/oggparsevorbis/0001-Fix-possible-buffer-over-read-in-vorbis_comment-fix-.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From fdf622ded070640a924e63a6e630325520d0b567 Mon Sep 17 00:00:00 2001
-From: reimar <reimar at 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Thu, 24 Sep 2009 15:37:09 +0000
-Subject: [PATCH] Fix possible buffer over-read in vorbis_comment, fix it double to be sure.
- First, make s signed, so that comparisons against end - p will not be made as
- unsigned, making the check incorrectly pass if p is beyond end.
- Also ensure that p will never be > end, so the code is correct also if
- buf is not padded.
-
-git-svn-id: file:///var/local/repositories/ffmpeg/trunk@20014 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
----
- libavformat/oggparsevorbis.c | 9 +++++----
- 1 files changed, 5 insertions(+), 4 deletions(-)
-
-diff --git a/libavformat/oggparsevorbis.c b/libavformat/oggparsevorbis.c
-index afc3fcb..1ef7365 100644
---- a/libavformat/oggparsevorbis.c
-+++ b/libavformat/oggparsevorbis.c
-@@ -50,27 +50,28 @@ vorbis_comment(AVFormatContext * as, uint8_t *buf, int size)
- {
- const uint8_t *p = buf;
- const uint8_t *end = buf + size;
-- unsigned s, n, j;
-+ unsigned n, j;
-+ int s;
-
- if (size < 8) /* must have vendor_length and user_comment_list_length */
- return -1;
-
- s = bytestream_get_le32(&p);
-
-- if (end - p < s)
-+ if (end - p - 4 < s || s < 0)
- return -1;
-
- p += s;
-
- n = bytestream_get_le32(&p);
-
-- while (p < end && n > 0) {
-+ while (end - p >= 4 && n > 0) {
- const char *t, *v;
- int tl, vl;
-
- s = bytestream_get_le32(&p);
-
-- if (end - p < s)
-+ if (end - p < s || s < 0)
- break;
-
- t = p;
---
-1.6.3.3
-
diff --git a/debian/patches/series b/debian/patches/series
index f225941..a251239 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,16 +1,9 @@
-100_kfreebsd
fix-qtrle-encoding-when-previous-frame-linesize.patch
-aac-regression.patch
fix-dv-seeking.patch
fix-constant-quant-encoding.patch
increase-VOFW-on-x86.patch
-issue1245.patch
-build-pic-on-ppc.patch
-enable-versioning.patch
use-normal-check_func-test-for-math-functions.patch
wmapro-backport.patch
-cpu-runtime-detect.patch
-cpu-runtime-detect-libswscale.patch
900_doxyfile
901-fix-misc-typos.patch
# fpic-ftbfs-fix.patch
@@ -40,43 +33,3 @@ neon/0019-ARM-NEON-optimised-MDCT.patch
neon/0020-ARM-remove-unnecessary-.fpu-neon-directives.patch
neon/0021-ARM-check-for-VFP-register-arguments.patch
-#vorbis_dec security backports
-security/libavcodec/vorbis_dec/0001-Check-dimensions-against-0-too.patch
-security/libavcodec/vorbis_dec/0002-typo.patch
-security/libavcodec/vorbis_dec/0003-Sanity-checks-for-magnitude-and-angle.patch
-security/libavcodec/vorbis_dec/0004-Fix-book_idx-check.patch
-security/libavcodec/vorbis_dec/0005-Check-classbook-value.patch
-security/libavcodec/vorbis_dec/0006-Add-checks-for-per-packet-mode-indexes-and-per-heade.patch
-security/libavcodec/vorbis_dec/0007-Check-masterbook-index-and-subclass-book-index.patch
-security/libavcodec/vorbis_dec/0008-Check-res_setup-books.patch
-security/libavcodec/vorbis_dec/0009-Check-begin-end-partition_size.patch
-security/libavcodec/vorbis_dec/0010-Make-error-return-sign-consistent.patch
-security/libavcodec/vorbis_dec/0011-Check-submap-indexes.patch
-security/libavcodec/vorbis_dec/0012-Fix-format-string-to-match-the-types-printed.patch
-
-# vorbis security backports
-security/libavformat/oggparsevorbis/0001-Fix-possible-buffer-over-read-in-vorbis_comment-fix-.patch
-
-# libavcodec vp3 fixes
-security/libavcodec/vp3/0003-Make-sure-that-all-memory-allocations-succeed.patch
-security/libavcodec/vp3/0001-Fix-init_get_bits-buffer-size.patch
-
-# ffv1 fix
-security/libavcodec/ffv1/0001-Fix-a-possibly-exploitable-buffer-overflow.patch
-
-# mpegaudiodec backports
-security/libavcodec/mpegaudiodec/0001-check-data_size-in-decode_frame.patch
-security/libavcodec/mpegaudiodec/0002-Check-data_size-in-decode_frame_mp3on4.patch
-security/libavcodec/mpegaudiodec/0003-Set-data_size-to-0-to-avoid-having-it-uninitialized.patch
-
-# h264 security backports
-security/libavcodec/h264/0001-Check-num_units_in_tick-time_scale-to-be-valid-and-w.patch
-
-# mov security backports
-security/libavformat/mov/0000-MOV-Support-stz2-Compact-Sample-Size-Box.patch
-security/libavformat/mov/0001-check-entries-against-field_size-potential-malloc-ov.patch
-security/libavformat/mov/0002-add-one-missing-check-for-stream-existence-in-read_e.patch
-security/libavformat/mov/0003-check-stream-existence-before-assignment-fix-1222.patch
-
-# oggedc backports
-security/libavformat/oggdec/0001-Disable-parsing-for-ogg-streams-where-no-ogg-header-.patch
--
FFmpeg packaging
More information about the pkg-multimedia-commits
mailing list