diff options
-rw-r--r-- | contrib/ffmpeg/A01-mpegleak.patch | 6 | ||||
-rw-r--r-- | contrib/ffmpeg/A02-audioconvert.patch | 2 | ||||
-rw-r--r-- | contrib/ffmpeg/A05-mkv-seek.patch | 20 | ||||
-rw-r--r-- | contrib/ffmpeg/P01-solaris.patch | 4 | ||||
-rw-r--r-- | contrib/ffmpeg/P02-darwin-pic.patch | 6 | ||||
-rw-r--r-- | contrib/ffmpeg/module.defs | 2 | ||||
-rw-r--r-- | libhb/stream.c | 22 |
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, |