summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjstebbins <[email protected]>2011-08-01 17:48:28 +0000
committerjstebbins <[email protected]>2011-08-01 17:48:28 +0000
commit7a083edaa1a8d331ca8eb2878f051a4fc1966d43 (patch)
treeb0b14bdb5a0e07eaf007811b27817e2ffa960332
parentac3e2eaf6d6deb4ce9b86ce38a3715b3d8968da1 (diff)
bump Libav from git-v0.7b2-406-g7b20d35 to release 0.7.1
It includes the following fixes: - MKV seek issue: http://git.libav.org/?p=libav.git;a=commit;h=c29c609 - crash when decoding corrupt MPEG-2 streams: http://git.libav.org/?p=libav.git;a=commit;h=20153fb - other misc. fixes: http://git.libav.org/?p=libav.git;a=shortlog;h=refs/heads/release/0.7 It includes the following new feature: - support for DTS in MP4 and MOV files: http://git.libav.org/?p=libav.git;a=commit;h=26f4875 git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4148 b64f7644-9d1e-0410-96f1-a4d463321fa5
-rw-r--r--contrib/ffmpeg/A01-mpegleak.patch6
-rw-r--r--contrib/ffmpeg/A02-audioconvert.patch2
-rw-r--r--contrib/ffmpeg/A05-mkv-seek.patch20
-rw-r--r--contrib/ffmpeg/P01-solaris.patch4
-rw-r--r--contrib/ffmpeg/P02-darwin-pic.patch6
-rw-r--r--contrib/ffmpeg/module.defs2
-rw-r--r--libhb/stream.c22
7 files changed, 21 insertions, 41 deletions
diff --git a/contrib/ffmpeg/A01-mpegleak.patch b/contrib/ffmpeg/A01-mpegleak.patch
index 1ca462c6d..555be9228 100644
--- a/contrib/ffmpeg/A01-mpegleak.patch
+++ b/contrib/ffmpeg/A01-mpegleak.patch
@@ -1,8 +1,8 @@
diff --git a/libavcodec/h264.c b/libavcodec/h264.c
-index 0aa923f..15bf61d 100644
+index 2c000a3..93850d6 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
-@@ -3644,7 +3644,7 @@ static int decode_frame(AVCodecContext *avctx,
+@@ -3908,7 +3908,7 @@ static int decode_frame(AVCodecContext *avctx,
if(!(s->flags2 & CODEC_FLAG2_CHUNKS) && !s->current_picture_ptr){
if (avctx->skip_frame >= AVDISCARD_NONREF)
return 0;
@@ -25,7 +25,7 @@ index a025f7d..eda5e41 100644
"corrupt input), discarding one\n",
h->long_ref_count, h->short_ref_count, h->sps.ref_frame_count);
diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c
-index 6a45da8..dc25c4d 100644
+index 4978d28..bb9509f 100644
--- a/libavcodec/mpegvideo.c
+++ b/libavcodec/mpegvideo.c
@@ -986,19 +986,18 @@ int ff_find_unused_picture(MpegEncContext *s, int shared){
diff --git a/contrib/ffmpeg/A02-audioconvert.patch b/contrib/ffmpeg/A02-audioconvert.patch
index befe00fab..f8481240b 100644
--- a/contrib/ffmpeg/A02-audioconvert.patch
+++ b/contrib/ffmpeg/A02-audioconvert.patch
@@ -1,5 +1,5 @@
diff --git a/libavcodec/Makefile b/libavcodec/Makefile
-index b772bf1..17c4649 100644
+index 0cfa08c..f9c407e 100644
--- a/libavcodec/Makefile
+++ b/libavcodec/Makefile
@@ -3,7 +3,7 @@ include $(SUBDIR)../config.mak
diff --git a/contrib/ffmpeg/A05-mkv-seek.patch b/contrib/ffmpeg/A05-mkv-seek.patch
deleted file mode 100644
index 7ac47014a..000000000
--- a/contrib/ffmpeg/A05-mkv-seek.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
-index 57a8f62..60f6c69 100644
---- a/libavformat/matroskadec.c
-+++ b/libavformat/matroskadec.c
-@@ -1903,6 +1903,7 @@ static int matroska_read_seek(AVFormatContext *s, int stream_index,
-
- if ((index = av_index_search_timestamp(st, timestamp, flags)) < 0) {
- avio_seek(s->pb, st->index_entries[st->nb_index_entries-1].pos, SEEK_SET);
-+ matroska->current_id = 0;
- while ((index = av_index_search_timestamp(st, timestamp, flags)) < 0) {
- matroska_clear_queue(matroska);
- if (matroska_parse_cluster(matroska) < 0)
-@@ -1931,6 +1932,7 @@ static int matroska_read_seek(AVFormatContext *s, int stream_index,
- }
-
- avio_seek(s->pb, st->index_entries[index_min].pos, SEEK_SET);
-+ matroska->current_id = 0;
- matroska->skip_to_keyframe = !(flags & AVSEEK_FLAG_ANY);
- matroska->skip_to_timecode = st->index_entries[index].timestamp;
- matroska->done = 0;
diff --git a/contrib/ffmpeg/P01-solaris.patch b/contrib/ffmpeg/P01-solaris.patch
index 364e07adf..d807d76de 100644
--- a/contrib/ffmpeg/P01-solaris.patch
+++ b/contrib/ffmpeg/P01-solaris.patch
@@ -1,5 +1,5 @@
diff --git a/configure b/configure
-index 2a1883b..ab0c8b3 100755
+index 5e40e08..12d6232 100755
--- a/configure
+++ b/configure
@@ -54,6 +54,9 @@ if test "$E1" != 0 || test "$E2" = 0; then
@@ -12,7 +12,7 @@ index 2a1883b..ab0c8b3 100755
show_help(){
cat <<EOF
Usage: configure [options]
-@@ -2595,7 +2598,7 @@ EOF
+@@ -2597,7 +2600,7 @@ EOF
check_cc <<EOF || die "endian test failed"
unsigned int endian = 'B' << 24 | 'I' << 16 | 'G' << 8 | 'E';
EOF
diff --git a/contrib/ffmpeg/P02-darwin-pic.patch b/contrib/ffmpeg/P02-darwin-pic.patch
index 5df981507..115f07696 100644
--- a/contrib/ffmpeg/P02-darwin-pic.patch
+++ b/contrib/ffmpeg/P02-darwin-pic.patch
@@ -1,8 +1,8 @@
diff --git a/configure b/configure
-index 2a1883b..4b4242a 100755
+index 5e40e08..4e05487 100755
--- a/configure
+++ b/configure
-@@ -2410,6 +2410,7 @@ case $target_os in
+@@ -2412,6 +2412,7 @@ case $target_os in
FFSERVERLDFLAGS=-Wl,-bind_at_load
objformat="macho"
enabled x86_64 && objformat="macho64"
@@ -10,7 +10,7 @@ index 2a1883b..4b4242a 100755
enabled_any pic shared ||
{ check_cflags -mdynamic-no-pic && add_asflags -mdynamic-no-pic; }
;;
-@@ -2521,7 +2522,7 @@ esac
+@@ -2523,7 +2524,7 @@ esac
echo "config:$arch:$subarch:$cpu:$target_os:$cc_ident:$LIBAV_CONFIGURATION" >config.fate
diff --git a/contrib/ffmpeg/module.defs b/contrib/ffmpeg/module.defs
index 90cbd5c75..36c486463 100644
--- a/contrib/ffmpeg/module.defs
+++ b/contrib/ffmpeg/module.defs
@@ -1,7 +1,7 @@
$(eval $(call import.MODULE.defs,FFMPEG,ffmpeg,BZIP2 ZLIB))
$(eval $(call import.CONTRIB.defs,FFMPEG))
-FFMPEG.FETCH.url = http://download.handbrake.fr/handbrake/contrib/ffmpeg-git-v0.7b2-406-g7b20d35.tar.bz2
+FFMPEG.FETCH.url = http://download.handbrake.fr/handbrake/contrib/ffmpeg-v0.7.1.tar.bz2
FFMPEG.CONFIGURE.deps =
FFMPEG.CONFIGURE.env =
diff --git a/libhb/stream.c b/libhb/stream.c
index a95ce532c..84d31fe0b 100644
--- a/libhb/stream.c
+++ b/libhb/stream.c
@@ -3097,7 +3097,7 @@ static int ffmpeg_open( hb_stream_t *stream, hb_title_t *title, int scan )
// But then the seek fails for some stream types. So the safest thing
// to do seems to be to open 2 AVFormatContext. One for probing info
// and the other for reading.
- if ( av_open_input_file( &info_ic, stream->path, NULL, 0, NULL ) < 0 )
+ if ( avformat_open_input( &info_ic, stream->path, NULL, NULL ) < 0 )
{
return 0;
}
@@ -3106,7 +3106,7 @@ static int ffmpeg_open( hb_stream_t *stream, hb_title_t *title, int scan )
title->opaque_priv = (void*)info_ic;
stream->ffmpeg_info_ic = info_ic;
- if ( av_open_input_file( &reader_ic, stream->path, NULL, 0, NULL ) < 0 )
+ if ( avformat_open_input( &reader_ic, stream->path, NULL, NULL ) < 0 )
{
goto fail;
}
@@ -3168,7 +3168,7 @@ static void add_ffmpeg_audio( hb_title_t *title, hb_stream_t *stream, int id )
{
AVStream *st = stream->ffmpeg_info_ic->streams[id];
AVCodecContext *codec = st->codec;
- AVMetadataTag *tag;
+ AVDictionaryEntry *tag;
int layout;
// scan will ignore any audio without a bitrate. Since we've already
@@ -3216,7 +3216,7 @@ static void add_ffmpeg_audio( hb_title_t *title, hb_stream_t *stream, int id )
audio->config.in.channel_map = &hb_smpte_chan_map;
}
- tag = av_metadata_get( st->metadata, "language", NULL, 0 );
+ tag = av_dict_get( st->metadata, "language", NULL, 0 );
set_audio_description( stream, audio,
lang_for_code2( tag ? tag->value : "und" ) );
@@ -3386,10 +3386,10 @@ static void add_ffmpeg_subtitle( hb_title_t *title, hb_stream_t *stream, int id
return;
}
- AVMetadataTag *tag;
+ AVDictionaryEntry *tag;
iso639_lang_t *language;
- tag = av_metadata_get( st->metadata, "language", NULL, 0 );
+ tag = av_dict_get( st->metadata, "language", NULL, 0 );
language = lang_for_code2( tag ? tag->value : "und" );
strcpy( subtitle->lang, language->eng_name );
strncpy( subtitle->iso639_2, language->iso639_2, 4 );
@@ -3402,10 +3402,10 @@ static void add_ffmpeg_subtitle( hb_title_t *title, hb_stream_t *stream, int id
hb_list_add(title->list_subtitle, subtitle);
}
-static char *get_ffmpeg_metadata_value( AVMetadata *m, char *key )
+static char *get_ffmpeg_metadata_value( AVDictionary *m, char *key )
{
- AVMetadataTag *tag = NULL;
- while ( (tag = av_metadata_get(m, "", tag, AV_METADATA_IGNORE_SUFFIX)) )
+ AVDictionaryEntry *tag = NULL;
+ while ( (tag = av_dict_get(m, "", tag, AV_DICT_IGNORE_SUFFIX)) )
{
if ( !strcmp( key, tag->key ) )
{
@@ -3525,7 +3525,7 @@ static hb_title_t *ffmpeg_title_scan( hb_stream_t *stream, hb_title_t *title )
for( i = 0; i < ic->nb_chapters; i++ )
if( ( m = ic->chapters[i] ) != NULL )
{
- AVMetadataTag *tag;
+ AVDictionaryEntry *tag;
hb_chapter_t * chapter;
chapter = calloc( sizeof( hb_chapter_t ), 1 );
chapter->index = i+1;
@@ -3534,7 +3534,7 @@ static hb_title_t *ffmpeg_title_scan( hb_stream_t *stream, hb_title_t *title )
chapter->hours = chapter->duration / 90000 / 3600;
chapter->minutes = ( ( chapter->duration / 90000 ) % 3600 ) / 60;
chapter->seconds = ( chapter->duration / 90000 ) % 60;
- tag = av_metadata_get( m->metadata, "title", NULL, 0 );
+ tag = av_dict_get( m->metadata, "title", NULL, 0 );
strcpy( chapter->title, tag ? tag->value : "" );
hb_deep_log( 2, "Added chapter %i, name='%s', dur=%"PRIu64", (%02i:%02i:%02i)",
chapter->index, chapter->title,