summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2017-04-07 13:12:10 +0200
committerwm4 <wm4@nowhere>2017-04-07 13:12:10 +0200
commitb7b12c36af96af14b8371d16c5a7f98a7a17915f (patch)
tree73c1196f9940c19d7d612240091e7a6152d5dc3e
parentbcfdcd6226d7c898d790aa88c65d854cda92d35e (diff)
downloadmpv-b7b12c36af96af14b8371d16c5a7f98a7a17915f.tar.bz2
mpv-b7b12c36af96af14b8371d16c5a7f98a7a17915f.tar.xz
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.
-rw-r--r--demux/demux_lavf.c6
1 files changed, 5 insertions, 1 deletions
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,