From b7b12c36af96af14b8371d16c5a7f98a7a17915f Mon Sep 17 00:00:00 2001 From: wm4 Date: Fri, 7 Apr 2017 13:12:10 +0200 Subject: demux_lavf: disable half-working mp4 edit list support in libavcodec Instead, enable the "old" code, which uses this for gapless info (audio padding/trailing) only. --- demux/demux_lavf.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'demux/demux_lavf.c') diff --git a/demux/demux_lavf.c b/demux/demux_lavf.c index 8371985419..f853a775ff 100644 --- a/demux/demux_lavf.c +++ b/demux/demux_lavf.c @@ -133,6 +133,7 @@ struct format_hack { // segment, with e.g. HLS, player knows about the playlist main file only). bool clear_filepos : 1; bool ignore_start : 1; + bool fix_editlists : 1; }; #define BLACKLIST(fmt) {fmt, .ignore = true} @@ -152,7 +153,7 @@ static const struct format_hack format_hacks[] = { {"mpeg", .use_stream_ids = true}, {"mpegts", .use_stream_ids = true}, - {"mp4", .skipinfo = true}, + {"mp4", .skipinfo = true, .fix_editlists = true}, {"matroska", .skipinfo = true}, // In theory, such streams might contain timestamps, but virtually none do. @@ -875,6 +876,9 @@ static int demux_open_lavf(demuxer_t *demuxer, enum demux_check check) guess_and_set_vobsub_name(demuxer, &dopts); + if (priv->format_hack.fix_editlists) + av_dict_set(&dopts, "advanced_editlist", "0", 0); + avfc->interrupt_callback = (AVIOInterruptCB){ .callback = interrupt_cb, .opaque = demuxer, -- cgit v1.2.3