summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjstebbins <[email protected]>2009-11-25 21:04:08 +0000
committerjstebbins <[email protected]>2009-11-25 21:04:08 +0000
commit08483929dd5352012eb8b1f1143f138e3d5f19f0 (patch)
tree9c131e18bd0e424344a952c0d7004b3bbd5656e9
parent484ee83aa7f0f2fad57c6a579d92dfa9dfa61f97 (diff)
Bump ffmpeg to r20602
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2979 b64f7644-9d1e-0410-96f1-a4d463321fa5
-rw-r--r--contrib/ffmpeg/A00-latm.patch418
-rw-r--r--contrib/ffmpeg/A01-mpegleak.patch52
-rw-r--r--contrib/ffmpeg/A03-png-sequences.patch11
-rw-r--r--contrib/ffmpeg/A04-disable-depend.patch33
-rw-r--r--contrib/ffmpeg/P00-cygwin.patch15
-rw-r--r--contrib/ffmpeg/P01-solaris.patch20
-rw-r--r--contrib/ffmpeg/module.defs2
7 files changed, 257 insertions, 294 deletions
diff --git a/contrib/ffmpeg/A00-latm.patch b/contrib/ffmpeg/A00-latm.patch
index b17c1145f..f986d5900 100644
--- a/contrib/ffmpeg/A00-latm.patch
+++ b/contrib/ffmpeg/A00-latm.patch
@@ -1,28 +1,8 @@
-diff -Naur ffmpeg-r19067.orig/libavcodec/Makefile ffmpeg-r19067/libavcodec/Makefile
---- ffmpeg-r19067.orig/libavcodec/Makefile 2009-05-25 18:19:35.000000000 -0400
-+++ ffmpeg-r19067/libavcodec/Makefile 2009-06-01 12:39:48.000000000 -0400
-@@ -382,7 +382,7 @@
- OBJS-$(CONFIG_LIBDIRAC_DECODER) += libdiracdec.o
- OBJS-$(CONFIG_LIBDIRAC_ENCODER) += libdiracenc.o libdirac_libschro.o
- OBJS-$(CONFIG_LIBFAAC) += libfaac.o
--OBJS-$(CONFIG_LIBFAAD) += libfaad.o
-+OBJS-$(CONFIG_LIBFAAD) += libfaad.o latmaac.o
- OBJS-$(CONFIG_LIBGSM) += libgsm.o
- OBJS-$(CONFIG_LIBMP3LAME) += libmp3lame.o
- OBJS-$(CONFIG_LIBOPENJPEG) += libopenjpeg.o
-@@ -395,7 +395,7 @@
- OBJS-$(CONFIG_LIBXVID) += libxvidff.o libxvid_rc.o
-
- # parsers
--OBJS-$(CONFIG_AAC_PARSER) += aac_parser.o aac_ac3_parser.o mpeg4audio.o
-+OBJS-$(CONFIG_AAC_PARSER) += aac_parser.o aac_ac3_parser.o mpeg4audio.o latm_parser.o
- OBJS-$(CONFIG_AC3_PARSER) += ac3_parser.o ac3tab.o aac_ac3_parser.o
- OBJS-$(CONFIG_CAVSVIDEO_PARSER) += cavs_parser.o
- OBJS-$(CONFIG_DCA_PARSER) += dca_parser.o
-diff -Naur ffmpeg-r19067.orig/libavcodec/allcodecs.c ffmpeg-r19067/libavcodec/allcodecs.c
---- ffmpeg-r19067.orig/libavcodec/allcodecs.c 2009-05-12 15:56:48.000000000 -0400
-+++ ffmpeg-r19067/libavcodec/allcodecs.c 2009-06-01 12:39:48.000000000 -0400
-@@ -306,6 +306,7 @@
+Index: libavcodec/allcodecs.c
+===================================================================
+--- ffmpeg.orig/libavcodec/allcodecs.c (revision 20594)
++++ ffmpeg/libavcodec/allcodecs.c (working copy)
+@@ -314,6 +314,7 @@
REGISTER_ENCDEC (LIBDIRAC, libdirac);
REGISTER_ENCODER (LIBFAAC, libfaac);
REGISTER_DECODER (LIBFAAD, libfaad);
@@ -30,7 +10,7 @@ diff -Naur ffmpeg-r19067.orig/libavcodec/allcodecs.c ffmpeg-r19067/libavcodec/al
REGISTER_ENCDEC (LIBGSM, libgsm);
REGISTER_ENCDEC (LIBGSM_MS, libgsm_ms);
REGISTER_ENCODER (LIBMP3LAME, libmp3lame);
-@@ -319,6 +320,7 @@
+@@ -329,6 +330,7 @@
/* parsers */
REGISTER_PARSER (AAC, aac);
@@ -38,10 +18,11 @@ diff -Naur ffmpeg-r19067.orig/libavcodec/allcodecs.c ffmpeg-r19067/libavcodec/al
REGISTER_PARSER (AC3, ac3);
REGISTER_PARSER (CAVSVIDEO, cavsvideo);
REGISTER_PARSER (DCA, dca);
-diff -Naur ffmpeg-r19067.orig/libavcodec/avcodec.h ffmpeg-r19067/libavcodec/avcodec.h
---- ffmpeg-r19067.orig/libavcodec/avcodec.h 2009-05-31 02:51:18.000000000 -0400
-+++ ffmpeg-r19067/libavcodec/avcodec.h 2009-06-01 12:39:48.000000000 -0400
-@@ -271,6 +271,7 @@
+Index: libavcodec/avcodec.h
+===================================================================
+--- ffmpeg.orig/libavcodec/avcodec.h (revision 20594)
++++ ffmpeg/libavcodec/avcodec.h (working copy)
+@@ -276,6 +276,7 @@
CODEC_ID_MP2= 0x15000,
CODEC_ID_MP3, ///< preferred ID for decoding MPEG audio layer 1, 2 or 3
CODEC_ID_AAC,
@@ -49,141 +30,32 @@ diff -Naur ffmpeg-r19067.orig/libavcodec/avcodec.h ffmpeg-r19067/libavcodec/avco
CODEC_ID_AC3,
CODEC_ID_DTS,
CODEC_ID_VORBIS,
-diff -Naur ffmpeg-r19067.orig/libavcodec/latm_parser.c ffmpeg-r19067/libavcodec/latm_parser.c
---- ffmpeg-r19067.orig/libavcodec/latm_parser.c 1969-12-31 19:00:00.000000000 -0500
-+++ ffmpeg-r19067/libavcodec/latm_parser.c 2009-06-01 12:39:48.000000000 -0400
-@@ -0,0 +1,128 @@
-+/*
-+ * LATM parser
-+ * Copyright (c) 2008 Paul Kendall <[email protected]>
-+ *
-+ * This file is part of FFmpeg.
-+ *
-+ * FFmpeg is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License as published by the Free Software Foundation; either
-+ * version 2.1 of the License, or (at your option) any later version.
-+ *
-+ * FFmpeg is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ * Lesser General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with FFmpeg; if not, write to the Free Software
-+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-+ */
-+
-+/**
-+ * @file latm_parser.c
-+ * LATM parser
-+ */
-+
-+#include "parser.h"
-+
-+#define LATM_HEADER 0x56e000 // 0x2b7 (11 bits)
-+#define LATM_MASK 0xFFE000 // top 11 bits
-+#define LATM_SIZE_MASK 0x001FFF // bottom 13 bits
-+
-+typedef struct LATMParseContext{
-+ ParseContext pc;
-+ int count;
-+} LATMParseContext;
-+
-+/**
-+ * finds the end of the current frame in the bitstream.
-+ * @return the position of the first byte of the next frame, or -1
-+ */
-+static int latm_find_frame_end(AVCodecParserContext *s1, const uint8_t *buf,
-+ int buf_size) {
-+ LATMParseContext *s = s1->priv_data;
-+ ParseContext *pc = &s->pc;
-+ int pic_found, i;
-+ uint32_t state;
-+
-+ pic_found = pc->frame_start_found;
-+ state = pc->state;
-+
-+ i = 0;
-+ if(!pic_found){
-+ for(i=0; i<buf_size; i++){
-+ state = (state<<8) | buf[i];
-+ if((state & LATM_MASK) == LATM_HEADER){
-+ i++;
-+ s->count = - i;
-+ pic_found=1;
-+ break;
-+ }
-+ }
-+ }
-+
-+ if(pic_found){
-+ /* EOF considered as end of frame */
-+ if (buf_size == 0)
-+ return 0;
-+ if((state & LATM_SIZE_MASK) - s->count <= buf_size) {
-+ pc->frame_start_found = 0;
-+ pc->state = -1;
-+ return (state & LATM_SIZE_MASK) - s->count;
-+ }
-+ }
-+
-+ s->count += buf_size;
-+ pc->frame_start_found = pic_found;
-+ pc->state = state;
-+ return END_NOT_FOUND;
-+}
-+
-+static int latm_parse(AVCodecParserContext *s1,
-+ AVCodecContext *avctx,
-+ const uint8_t **poutbuf, int *poutbuf_size,
-+ const uint8_t *buf, int buf_size)
-+{
-+ LATMParseContext *s = s1->priv_data;
-+ ParseContext *pc = &s->pc;
-+ int next;
-+
-+ if(s1->flags & PARSER_FLAG_COMPLETE_FRAMES){
-+ next = buf_size;
-+ }else{
-+ next = latm_find_frame_end(s1, buf, buf_size);
-+
-+ if (ff_combine_frame(pc, next, &buf, &buf_size) < 0) {
-+ *poutbuf = NULL;
-+ *poutbuf_size = 0;
-+ return buf_size;
-+ }
-+ }
-+ *poutbuf = buf;
-+ *poutbuf_size = buf_size;
-+ return next;
-+}
-+
-+static int latm_split(AVCodecContext *avctx,
-+ const uint8_t *buf, int buf_size)
-+{
-+ int i;
-+ uint32_t state= -1;
-+
-+ for(i=0; i<buf_size; i++){
-+ state= (state<<8) | buf[i];
-+ if((state & LATM_MASK) == LATM_HEADER)
-+ return i-2;
-+ }
-+ return 0;
-+}
-+
-+AVCodecParser aac_latm_parser = {
-+ { CODEC_ID_AAC_LATM },
-+ sizeof(LATMParseContext),
-+ NULL,
-+ latm_parse,
-+ ff_parse_close,
-+ latm_split,
-+};
-diff -Naur ffmpeg-r19067.orig/libavcodec/latmaac.c ffmpeg-r19067/libavcodec/latmaac.c
---- ffmpeg-r19067.orig/libavcodec/latmaac.c 1969-12-31 19:00:00.000000000 -0500
-+++ ffmpeg-r19067/libavcodec/latmaac.c 2009-06-01 12:39:48.000000000 -0400
+Index: libavcodec/Makefile
+===================================================================
+--- ffmpeg.orig/libavcodec/Makefile (revision 20594)
++++ ffmpeg/libavcodec/Makefile (working copy)
+@@ -474,7 +474,7 @@
+ OBJS-$(CONFIG_LIBDIRAC_DECODER) += libdiracdec.o
+ OBJS-$(CONFIG_LIBDIRAC_ENCODER) += libdiracenc.o libdirac_libschro.o
+ OBJS-$(CONFIG_LIBFAAC_ENCODER) += libfaac.o
+-OBJS-$(CONFIG_LIBFAAD_DECODER) += libfaad.o
++OBJS-$(CONFIG_LIBFAAD_DECODER) += libfaad.o latmaac.o
+ OBJS-$(CONFIG_LIBGSM_DECODER) += libgsm.o
+ OBJS-$(CONFIG_LIBGSM_ENCODER) += libgsm.o
+ OBJS-$(CONFIG_LIBGSM_MS_DECODER) += libgsm.o
+@@ -498,7 +498,7 @@
+
+ # parsers
+ OBJS-$(CONFIG_AAC_PARSER) += aac_parser.o aac_ac3_parser.o \
+- mpeg4audio.o
++ mpeg4audio.o latm_parser.o
+ OBJS-$(CONFIG_AC3_PARSER) += ac3_parser.o ac3tab.o \
+ aac_ac3_parser.o
+ OBJS-$(CONFIG_CAVSVIDEO_PARSER) += cavs_parser.o
+Index: libavcodec/latmaac.c
+===================================================================
+--- ffmpeg.orig/libavcodec/latmaac.c (revision 0)
++++ ffmpeg/libavcodec/latmaac.c (revision 0)
@@ -0,0 +1,624 @@
+/*
+ * copyright (c) 2008 Paul Kendall <[email protected]>
@@ -809,10 +681,178 @@ diff -Naur ffmpeg-r19067.orig/libavcodec/latmaac.c ffmpeg-r19067/libavcodec/latm
+ .decode = faac_decode_frame,
+ .long_name = "AAC over LATM",
+};
-diff -Naur ffmpeg-r19067.orig/libavformat/mpeg.c ffmpeg-r19067/libavformat/mpeg.c
---- ffmpeg-r19067.orig/libavformat/mpeg.c 2009-04-17 14:08:39.000000000 -0400
-+++ ffmpeg-r19067/libavformat/mpeg.c 2009-06-01 12:39:48.000000000 -0400
-@@ -279,7 +279,7 @@
+Index: libavcodec/latm_parser.c
+===================================================================
+--- ffmpeg.orig/libavcodec/latm_parser.c (revision 0)
++++ ffmpeg/libavcodec/latm_parser.c (revision 0)
+@@ -0,0 +1,128 @@
++/*
++ * LATM parser
++ * Copyright (c) 2008 Paul Kendall <[email protected]>
++ *
++ * This file is part of FFmpeg.
++ *
++ * FFmpeg is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2.1 of the License, or (at your option) any later version.
++ *
++ * FFmpeg is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public
++ * License along with FFmpeg; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/**
++ * @file latm_parser.c
++ * LATM parser
++ */
++
++#include "parser.h"
++
++#define LATM_HEADER 0x56e000 // 0x2b7 (11 bits)
++#define LATM_MASK 0xFFE000 // top 11 bits
++#define LATM_SIZE_MASK 0x001FFF // bottom 13 bits
++
++typedef struct LATMParseContext{
++ ParseContext pc;
++ int count;
++} LATMParseContext;
++
++/**
++ * finds the end of the current frame in the bitstream.
++ * @return the position of the first byte of the next frame, or -1
++ */
++static int latm_find_frame_end(AVCodecParserContext *s1, const uint8_t *buf,
++ int buf_size) {
++ LATMParseContext *s = s1->priv_data;
++ ParseContext *pc = &s->pc;
++ int pic_found, i;
++ uint32_t state;
++
++ pic_found = pc->frame_start_found;
++ state = pc->state;
++
++ i = 0;
++ if(!pic_found){
++ for(i=0; i<buf_size; i++){
++ state = (state<<8) | buf[i];
++ if((state & LATM_MASK) == LATM_HEADER){
++ i++;
++ s->count = - i;
++ pic_found=1;
++ break;
++ }
++ }
++ }
++
++ if(pic_found){
++ /* EOF considered as end of frame */
++ if (buf_size == 0)
++ return 0;
++ if((state & LATM_SIZE_MASK) - s->count <= buf_size) {
++ pc->frame_start_found = 0;
++ pc->state = -1;
++ return (state & LATM_SIZE_MASK) - s->count;
++ }
++ }
++
++ s->count += buf_size;
++ pc->frame_start_found = pic_found;
++ pc->state = state;
++ return END_NOT_FOUND;
++}
++
++static int latm_parse(AVCodecParserContext *s1,
++ AVCodecContext *avctx,
++ const uint8_t **poutbuf, int *poutbuf_size,
++ const uint8_t *buf, int buf_size)
++{
++ LATMParseContext *s = s1->priv_data;
++ ParseContext *pc = &s->pc;
++ int next;
++
++ if(s1->flags & PARSER_FLAG_COMPLETE_FRAMES){
++ next = buf_size;
++ }else{
++ next = latm_find_frame_end(s1, buf, buf_size);
++
++ if (ff_combine_frame(pc, next, &buf, &buf_size) < 0) {
++ *poutbuf = NULL;
++ *poutbuf_size = 0;
++ return buf_size;
++ }
++ }
++ *poutbuf = buf;
++ *poutbuf_size = buf_size;
++ return next;
++}
++
++static int latm_split(AVCodecContext *avctx,
++ const uint8_t *buf, int buf_size)
++{
++ int i;
++ uint32_t state= -1;
++
++ for(i=0; i<buf_size; i++){
++ state= (state<<8) | buf[i];
++ if((state & LATM_MASK) == LATM_HEADER)
++ return i-2;
++ }
++ return 0;
++}
++
++AVCodecParser aac_latm_parser = {
++ { CODEC_ID_AAC_LATM },
++ sizeof(LATMParseContext),
++ NULL,
++ latm_parse,
++ ff_parse_close,
++ latm_split,
++};
+Index: libavformat/mpegts.c
+===================================================================
+--- ffmpeg.orig/libavformat/mpegts.c (revision 20594)
++++ ffmpeg/libavformat/mpegts.c (working copy)
+@@ -499,7 +499,7 @@
+ { 0x04, CODEC_TYPE_AUDIO, CODEC_ID_MP3 },
+ { 0x0f, CODEC_TYPE_AUDIO, CODEC_ID_AAC },
+ { 0x10, CODEC_TYPE_VIDEO, CODEC_ID_MPEG4 },
+- { 0x11, CODEC_TYPE_AUDIO, CODEC_ID_AAC }, /* LATM syntax */
++ { 0x11, CODEC_TYPE_AUDIO, CODEC_ID_AAC_LATM }, /* LATM syntax */
+ { 0x1b, CODEC_TYPE_VIDEO, CODEC_ID_H264 },
+ { 0xd1, CODEC_TYPE_VIDEO, CODEC_ID_DIRAC },
+ { 0xea, CODEC_TYPE_VIDEO, CODEC_ID_VC1 },
+@@ -683,7 +683,7 @@
+
+ if ((!pes->st && pes->stream->nb_streams == MAX_STREAMS) ||
+ (pes->st && pes->st->discard == AVDISCARD_ALL) ||
+- code == 0x1be) /* padding_stream */
++ code == 0x1be || code == 0x1fa) /* padding_stream */
+ goto skip;
+
+ /* stream not present in PMT */
+Index: libavformat/mpegts.h
+===================================================================
+--- ffmpeg.orig/libavformat/mpegts.h (revision 20594)
++++ ffmpeg/libavformat/mpegts.h (working copy)
+@@ -49,6 +49,7 @@
+ #define STREAM_TYPE_PRIVATE_DATA 0x06
+ #define STREAM_TYPE_AUDIO_AAC 0x0f
+ #define STREAM_TYPE_VIDEO_MPEG4 0x10
++#define STREAM_TYPE_AUDIO_AAC_LATM 0x11
+ #define STREAM_TYPE_VIDEO_H264 0x1b
+ #define STREAM_TYPE_VIDEO_VC1 0xea
+ #define STREAM_TYPE_VIDEO_DIRAC 0xd1
+Index: libavformat/mpeg.c
+===================================================================
+--- ffmpeg.orig/libavformat/mpeg.c (revision 20594)
++++ ffmpeg/libavformat/mpeg.c (working copy)
+@@ -282,7 +282,7 @@
/* find matching stream */
if (!((startcode >= 0x1c0 && startcode <= 0x1df) ||
(startcode >= 0x1e0 && startcode <= 0x1ef) ||
@@ -821,7 +861,7 @@ diff -Naur ffmpeg-r19067.orig/libavformat/mpeg.c ffmpeg-r19067/libavformat/mpeg.
goto redo;
if (ppos) {
*ppos = url_ftell(s->pb) - 4;
-@@ -446,6 +446,9 @@
+@@ -449,6 +449,9 @@
} else if(es_type == STREAM_TYPE_AUDIO_AAC){
codec_id = CODEC_ID_AAC;
type = CODEC_TYPE_AUDIO;
@@ -831,9 +871,10 @@ diff -Naur ffmpeg-r19067.orig/libavformat/mpeg.c ffmpeg-r19067/libavformat/mpeg.
} else if(es_type == STREAM_TYPE_VIDEO_MPEG4){
codec_id = CODEC_ID_MPEG4;
type = CODEC_TYPE_VIDEO;
-diff -Naur ffmpeg-r19067.orig/libavformat/mpeg.h ffmpeg-r19067/libavformat/mpeg.h
---- ffmpeg-r19067.orig/libavformat/mpeg.h 2009-01-19 10:46:40.000000000 -0500
-+++ ffmpeg-r19067/libavformat/mpeg.h 2009-06-01 12:39:48.000000000 -0400
+Index: libavformat/mpeg.h
+===================================================================
+--- ffmpeg.orig/libavformat/mpeg.h (revision 20594)
++++ ffmpeg/libavformat/mpeg.h (working copy)
@@ -53,6 +53,7 @@
#define STREAM_TYPE_PRIVATE_DATA 0x06
#define STREAM_TYPE_AUDIO_AAC 0x0f
@@ -842,34 +883,3 @@ diff -Naur ffmpeg-r19067.orig/libavformat/mpeg.h ffmpeg-r19067/libavformat/mpeg.
#define STREAM_TYPE_VIDEO_H264 0x1b
#define STREAM_TYPE_AUDIO_AC3 0x81
-diff -Naur ffmpeg-r19067.orig/libavformat/mpegts.c ffmpeg-r19067/libavformat/mpegts.c
---- ffmpeg-r19067.orig/libavformat/mpegts.c 2009-05-31 04:47:40.000000000 -0400
-+++ ffmpeg-r19067/libavformat/mpegts.c 2009-06-01 12:39:48.000000000 -0400
-@@ -495,6 +495,7 @@
- { 0x04, CODEC_TYPE_AUDIO, CODEC_ID_MP3 },
- { 0x0f, CODEC_TYPE_AUDIO, CODEC_ID_AAC },
- { 0x10, CODEC_TYPE_VIDEO, CODEC_ID_MPEG4 },
-+ { 0x11, CODEC_TYPE_AUDIO, CODEC_ID_AAC_LATM },
- { 0x1b, CODEC_TYPE_VIDEO, CODEC_ID_H264 },
- { 0xd1, CODEC_TYPE_VIDEO, CODEC_ID_DIRAC },
- { 0xea, CODEC_TYPE_VIDEO, CODEC_ID_VC1 },
-@@ -933,7 +934,7 @@
- if (pes->st->discard == AVDISCARD_ALL ||
- !((code >= 0x1c0 && code <= 0x1df) ||
- (code >= 0x1e0 && code <= 0x1ef) ||
-- (code == 0x1bd) || (code == 0x1fd)))
-+ (code == 0x1bd) || (code == 0x1fa) || (code == 0x1fd)))
- goto skip;
- pes->state = MPEGTS_PESHEADER_FILL;
- pes->total_size = AV_RB16(pes->header + 4);
-diff -Naur ffmpeg-r19067.orig/libavformat/mpegts.h ffmpeg-r19067/libavformat/mpegts.h
---- ffmpeg-r19067.orig/libavformat/mpegts.h 2009-05-30 23:02:12.000000000 -0400
-+++ ffmpeg-r19067/libavformat/mpegts.h 2009-06-01 12:39:48.000000000 -0400
-@@ -47,6 +47,7 @@
- #define STREAM_TYPE_PRIVATE_DATA 0x06
- #define STREAM_TYPE_AUDIO_AAC 0x0f
- #define STREAM_TYPE_VIDEO_MPEG4 0x10
-+#define STREAM_TYPE_AUDIO_AAC_LATM 0x11
- #define STREAM_TYPE_VIDEO_H264 0x1b
- #define STREAM_TYPE_VIDEO_VC1 0xea
- #define STREAM_TYPE_VIDEO_DIRAC 0xd1
diff --git a/contrib/ffmpeg/A01-mpegleak.patch b/contrib/ffmpeg/A01-mpegleak.patch
index d02365d44..7b3b9be24 100644
--- a/contrib/ffmpeg/A01-mpegleak.patch
+++ b/contrib/ffmpeg/A01-mpegleak.patch
@@ -1,28 +1,8 @@
-diff -Naur ffmpeg-r19067.orig/libavcodec/h264.c ffmpeg-r19067/libavcodec/h264.c
---- ffmpeg-r19067.orig/libavcodec/h264.c 2009-05-29 20:24:20.000000000 -0400
-+++ ffmpeg-r19067/libavcodec/h264.c 2009-06-01 12:45:16.000000000 -0400
-@@ -3406,7 +3406,7 @@
- * stream. Need to discard one frame. Prevents overrun of the
- * short_ref and long_ref buffers.
- */
-- av_log(h->s.avctx, AV_LOG_ERROR,
-+ av_log(h->s.avctx, AV_LOG_DEBUG,
- "number of reference frames exceeds max (probably "
- "corrupt input), discarding one\n");
-
-@@ -7770,7 +7770,7 @@
-
- if(!(s->flags2 & CODEC_FLAG2_CHUNKS) && !s->current_picture_ptr){
- if (avctx->skip_frame >= AVDISCARD_NONREF || s->hurry_up) return 0;
-- av_log(avctx, AV_LOG_ERROR, "no frame!\n");
-+ av_log(avctx, AV_LOG_DEBUG, "no frame!\n");
- return -1;
- }
-
-diff -Naur ffmpeg-r19067.orig/libavcodec/mpegvideo.c ffmpeg-r19067/libavcodec/mpegvideo.c
---- ffmpeg-r19067.orig/libavcodec/mpegvideo.c 2009-05-27 15:55:35.000000000 -0400
-+++ ffmpeg-r19067/libavcodec/mpegvideo.c 2009-06-01 12:45:16.000000000 -0400
-@@ -831,19 +831,18 @@
+Index: libavcodec/mpegvideo.c
+===================================================================
+--- ffmpeg.orig/libavcodec/mpegvideo.c (revision 20594)
++++ ffmpeg/libavcodec/mpegvideo.c (working copy)
+@@ -834,19 +834,18 @@
}
av_log(s->avctx, AV_LOG_FATAL, "Internal error, picture buffer overflow\n");
@@ -54,3 +34,25 @@ diff -Naur ffmpeg-r19067.orig/libavcodec/mpegvideo.c ffmpeg-r19067/libavcodec/mp
}
static void update_noise_reduction(MpegEncContext *s){
+Index: libavcodec/h264.c
+===================================================================
+--- ffmpeg.orig/libavcodec/h264.c (revision 20594)
++++ ffmpeg/libavcodec/h264.c (working copy)
+@@ -3411,7 +3411,7 @@
+ * stream. Need to discard one frame. Prevents overrun of the
+ * short_ref and long_ref buffers.
+ */
+- av_log(h->s.avctx, AV_LOG_ERROR,
++ av_log(h->s.avctx, AV_LOG_DEBUG,
+ "number of reference frames exceeds max (probably "
+ "corrupt input), discarding one\n");
+
+@@ -7786,7 +7786,7 @@
+
+ if(!(s->flags2 & CODEC_FLAG2_CHUNKS) && !s->current_picture_ptr){
+ if (avctx->skip_frame >= AVDISCARD_NONREF || s->hurry_up) return 0;
+- av_log(avctx, AV_LOG_ERROR, "no frame!\n");
++ av_log(avctx, AV_LOG_DEBUG, "no frame!\n");
+ return -1;
+ }
+
diff --git a/contrib/ffmpeg/A03-png-sequences.patch b/contrib/ffmpeg/A03-png-sequences.patch
index c996fa1f7..5259160fb 100644
--- a/contrib/ffmpeg/A03-png-sequences.patch
+++ b/contrib/ffmpeg/A03-png-sequences.patch
@@ -1,7 +1,8 @@
-diff -Naur ffmpeg-r19067.orig/libavcodec/pngdec.c ffmpeg-r19067/libavcodec/pngdec.c
---- ffmpeg-r19067.orig/libavcodec/pngdec.c 2009-05-24 08:44:54.000000000 -0400
-+++ ffmpeg-r19067/libavcodec/pngdec.c 2009-06-03 18:53:52.000000000 -0400
-@@ -593,6 +593,18 @@
+Index: libavcodec/pngdec.c
+===================================================================
+--- ffmpeg.orig/libavcodec/pngdec.c (revision 20594)
++++ ffmpeg/libavcodec/pngdec.c (working copy)
+@@ -597,6 +597,18 @@
}
}
exit_loop:
@@ -20,7 +21,7 @@ diff -Naur ffmpeg-r19067.orig/libavcodec/pngdec.c ffmpeg-r19067/libavcodec/pngde
/* handle p-frames only if a predecessor frame is available */
if(s->last_picture->data[0] != NULL) {
if(!(avpkt->flags & PKT_FLAG_KEY)) {
-@@ -609,6 +621,7 @@
+@@ -613,6 +625,7 @@
}
}
}
diff --git a/contrib/ffmpeg/A04-disable-depend.patch b/contrib/ffmpeg/A04-disable-depend.patch
deleted file mode 100644
index e6099da2c..000000000
--- a/contrib/ffmpeg/A04-disable-depend.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff -Naur ffmpeg-r19067.orig/common.mak ffmpeg-r19067/common.mak
---- ffmpeg-r19067.orig/common.mak 2009-05-29 07:56:54.000000000 -0400
-+++ ffmpeg-r19067/common.mak 2009-06-23 20:36:58.000000000 -0400
-@@ -29,17 +29,6 @@
- %.ho: %.h
- $(CC) $(CFLAGS) $(LIBOBJFLAGS) -Wno-unused -c -o $@ -x c $<
-
--%.d: %.c
-- $(DEPEND_CMD) > $@
--
--%.d: %.S
-- $(DEPEND_CMD) > $@
--
--%.d: %.cpp
-- $(DEPEND_CMD) > $@
--
--%.o: %.d
--
- %$(EXESUF): %.c
-
- SVN_ENTRIES = $(SRC_PATH_BARE)/.svn/entries
-@@ -76,11 +65,6 @@
- ALLHEADERS := $(subst $(SRC_DIR)/,$(SUBDIR),$(wildcard $(SRC_DIR)/*.h $(SRC_DIR)/$(ARCH)/*.h))
- checkheaders: $(filter-out %_template.ho,$(ALLHEADERS:.h=.ho))
-
--DEPS := $(OBJS:.o=.d)
--depend dep: $(DEPS)
--
- CLEANSUFFIXES = *.o *~ *.ho *.map
- DISTCLEANSUFFIXES = *.d *.pc
- LIBSUFFIXES = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a *.exp
--
---include $(DEPS)
diff --git a/contrib/ffmpeg/P00-cygwin.patch b/contrib/ffmpeg/P00-cygwin.patch
deleted file mode 100644
index b6ca99f26..000000000
--- a/contrib/ffmpeg/P00-cygwin.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -Naur ffmpeg/libavcodec/mpegaudiodec.c ffmpeg-patched/libavcodec/mpegaudiodec.c
---- ffmpeg/libavcodec/mpegaudiodec.c 2006-09-23 14:22:06.000000000 -0400
-+++ ffmpeg-patched/libavcodec/mpegaudiodec.c 2007-01-01 18:31:51.156250000 -0500
-@@ -401,9 +401,9 @@
- for(i=0; i<512*16; i++){
- int exponent= (i>>4);
- double f= pow(i&15, 4.0 / 3.0) * pow(2, (exponent-400)*0.25 + FRAC_BITS + 5);
-- expval_table[exponent][i&15]= llrint(f);
-+ expval_table[exponent][i&15]= lrint(f);
- if((i&15)==1)
-- exp_table[exponent]= llrint(f);
-+ exp_table[exponent]= lrint(f);
- }
-
- for(i=0;i<7;i++) {
diff --git a/contrib/ffmpeg/P01-solaris.patch b/contrib/ffmpeg/P01-solaris.patch
index f5cd7d726..6924e562e 100644
--- a/contrib/ffmpeg/P01-solaris.patch
+++ b/contrib/ffmpeg/P01-solaris.patch
@@ -1,6 +1,8 @@
---- ffmpeg/configure Sat Jun 7 03:19:09 2008
-+++ ffmpeg.solaris/configure Thu Jun 19 12:10:48 2008
-@@ -50,6 +50,9 @@
+Index: configure
+===================================================================
+--- ffmpeg.orig/configure (revision 20594)
++++ ffmpeg/configure (working copy)
+@@ -54,6 +54,9 @@
exit 1
fi
@@ -8,18 +10,14 @@
+PATH=/usr/xpg4/bin:$PATH
+
show_help(){
- echo "Usage: configure [options]"
- echo "Options: [defaults in brackets after descriptions]"
-@@ -1585,8 +1588,11 @@
+ cat <<EOF
+ Usage: configure [options]
+@@ -2171,7 +2174,7 @@
check_cc <<EOF || die "endian test failed"
unsigned int endian = 'B' << 24 | 'I' << 16 | 'G' << 8 | 'E';
EOF
-od -A n -t x1 $TMPO | grep -q '42 *49 *47 *45' && enable bigendian
-+#od -A n -t x1 $TMPO | grep -q '42 *49 *47 *45' && enable bigendian
+/usr/bin/tr -cd "BIGE" < $TMPO | grep -q 'B *I *G *E' && enable bigendian
-+echo "BIGE=$bigendian"
-+
- # ---
- # check availability of some header files
+ if enabled arm; then
diff --git a/contrib/ffmpeg/module.defs b/contrib/ffmpeg/module.defs
index 4b8b092e9..b47ebdda4 100644
--- a/contrib/ffmpeg/module.defs
+++ b/contrib/ffmpeg/module.defs
@@ -1,7 +1,7 @@
$(eval $(call import.MODULE.defs,FFMPEG,ffmpeg,BZIP2 FAAD2 ZLIB))
$(eval $(call import.CONTRIB.defs,FFMPEG))
-FFMPEG.FETCH.url = http://download.m0k.org/handbrake/contrib/ffmpeg-r19067.tar.bz2
+FFMPEG.FETCH.url = http://download.m0k.org/handbrake/contrib/ffmpeg-r20602.tar.bz2
FFMPEG.CONFIGURE.deps =
FFMPEG.CONFIGURE.env =