mpv/sub
wm4 da76eb9f14 sub: fix accidental subtitle overlaps
The fix_overlaps_and_gaps() function in dec_sub.c fixes small gaps or
overlaps between subtitle events. However, sometimes it could happen
that the corrected subtitle events could overlap by 1ms due to bad
rounding, making libass shift subtitles to reduce collisions. (The
second subtitle will be shown above the previous one, even if both
subtitles are visible only for 1ms.)

sd_ass.c rounds the timestamps when converting to integers for unknown
reasons. I think it would work fine without that rounding, but since
I have no clue why it rounds, and since it could be needed to ensure
correct timestamps with ASS subtitles demuxed from Matroska, I'd rather
not touch it. So the solution is to use already rounded timestamps to
calculate the new subtitle duration in fix_overlaps_and_gaps().

See github issue #182.
2013-08-15 23:43:36 +02:00
..
ass_mp.c core: move contents to mpvcore (2/2) 2013-08-06 22:52:31 +02:00
ass_mp.h sub: add demux_libass wrapper, drop old hacks 2013-06-25 00:11:56 +02:00
dec_sub.c sub: fix accidental subtitle overlaps 2013-08-15 23:43:36 +02:00
dec_sub.h sd_add: add terrible hack for (xy-)vsfilter compatibility 2013-07-15 02:01:37 +02:00
draw_bmp.c core: move contents to mpvcore (2/2) 2013-08-06 22:52:31 +02:00
draw_bmp.h vo_xv, vo_x11: simplify OSD redrawing 2013-01-13 20:04:12 +01:00
find_subfiles.c core: move contents to mpvcore (2/2) 2013-08-06 22:52:31 +02:00
find_subfiles.h sub: remove vobsub reader in favor of ffmpeg vobsub demuxer 2012-12-11 00:37:54 +01:00
img_convert.c Fix some -Wshadow warnings 2013-07-23 00:45:23 +02:00
img_convert.h img_convert: add sub_bitmap bounding box functions 2013-01-13 20:04:16 +01:00
osd_dummy.c sub: allow rendering OSD in ASS image format directly, simplify 2012-10-16 07:26:30 +02:00
osd_font.otf osd: convert OSD font to OpenType 2013-04-27 18:03:19 +02:00
osd_libass.c core: move contents to mpvcore (2/2) 2013-08-06 22:52:31 +02:00
sd.h dec_sub: introduce sub_control(), use it for sub_step 2013-06-29 22:58:14 +02:00
sd_ass.c core: move contents to mpvcore (2/2) 2013-08-06 22:52:31 +02:00
sd_lavc.c core: move contents to mpvcore (2/2) 2013-08-06 22:52:31 +02:00
sd_lavc_conv.c core: move contents to mpvcore (2/2) 2013-08-06 22:52:31 +02:00
sd_lavf_srt.c core: move contents to mpvcore (2/2) 2013-08-06 22:52:31 +02:00
sd_microdvd.c core: move contents to mpvcore (2/2) 2013-08-06 22:52:31 +02:00
sd_movtext.c sd_ass: disable special handling of subtitles with duration 0 2013-06-25 00:11:54 +02:00
sd_spu.c core: move contents to mpvcore (2/2) 2013-08-06 22:52:31 +02:00
sd_srt.c core: move contents to mpvcore (2/2) 2013-08-06 22:52:31 +02:00
spudec.c core: move contents to mpvcore (2/2) 2013-08-06 22:52:31 +02:00
spudec.h sub: add sd_spu.c to wrap spudec, cleanup mplayer.c 2013-05-30 22:40:32 +02:00
sub.c core: move contents to mpvcore (2/2) 2013-08-06 22:52:31 +02:00
sub.h core: move contents to mpvcore (2/2) 2013-08-06 22:52:31 +02:00