diff options
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/ffmpeg/A00-latm.patch | 418 | ||||
-rw-r--r-- | contrib/ffmpeg/A01-mpegleak.patch | 52 | ||||
-rw-r--r-- | contrib/ffmpeg/A03-png-sequences.patch | 11 | ||||
-rw-r--r-- | contrib/ffmpeg/A04-disable-depend.patch | 33 | ||||
-rw-r--r-- | contrib/ffmpeg/P00-cygwin.patch | 15 | ||||
-rw-r--r-- | contrib/ffmpeg/P01-solaris.patch | 20 | ||||
-rw-r--r-- | contrib/ffmpeg/module.defs | 2 |
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 = |