summaryrefslogtreecommitdiffstats
path: root/player
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2019-06-09 23:39:03 +0200
committerwm4 <wm4@nowhere>2019-09-19 20:37:05 +0200
commit27fcd4ddc6cc76073795fbb48c55bfa2dce47063 (patch)
tree264aebba0c0731745c8083b9d7d497165740820b /player
parentcb82a206a966ce746737e0c0b407ac116cd93990 (diff)
downloadmpv-27fcd4ddc6cc76073795fbb48c55bfa2dce47063.tar.bz2
mpv-27fcd4ddc6cc76073795fbb48c55bfa2dce47063.tar.xz
demux_lavf: compensate timestamp resets for OGG web radio streams
Some OGG web radio streams use timestamp resets when a new song starts (you can find those Xiph's directory - other streams there don't show this behavior). Basically, the OGG stream behaves like concatenated OGG files, and "of course" the timestamps will start at 0 again when the song changes. This is very inconvenient, and breaks the seekable demuxer cache. In fact, any kind of seeking will break This is more time wasted in Xiph's bullshit. No, having timestamp resets by design is not reasonable, and fuck you. I much prefer the awful ICY/mp3 streaming mess, even if that's lower quality and awful. Maybe it wouldn't be so bad if libavformat could tell us WHERE THE FUCK THE RESET HAPPENS. But it doesn't, and the randomly changing timestamps is the only thing we get from its API. At this point, demux_lavf.c is like 90% hacks. But well, if libavformat applies this strange mixture of being clever for us vs. giving us unfiltered garbage (while pretending it abstracts everything, and hiding _useful_ implementation/low level details), not much we can do. This timestamp linearizing would, in general, probably be better done after the decoder, because then we wouldn't need to deal with timestamp resets. But the main purpose of this change is to fix seeking within the demuxer cache, so we have to do it on the lowest level. This can probably be applied to other containers and video streams too. But that is untested. Some further caveats are explained in the manpage.
Diffstat (limited to 'player')
0 files changed, 0 insertions, 0 deletions