mirror of https://github.com/mpv-player/mpv
sub: add auto option to --sub-fix-timing
Third try is the charm? I stupidly missed that this option already existed in my previous commits. Instead, add an auto value to it and enable it by default for sd_lavc but not sd_ass. On my limited samples, it seems to fix the gaps issue that can occur but without regressing some duration timings for sub_lavc subtitles. Well hopefully anyway. Fixes #12327.
This commit is contained in:
parent
a7185fbb60
commit
b47a58516a
|
@ -56,6 +56,7 @@ Interface changes
|
|||
- add `--video-crop`
|
||||
- add `video-params/crop-[w,h,x,y]`
|
||||
- remove `--tone-mapping-mode`
|
||||
- add `auto` to `--sub-fix-timing` and make it the default
|
||||
--- mpv 0.36.0 ---
|
||||
- add `--target-contrast`
|
||||
- Target luminance value is now also applied when ICC profile is used.
|
||||
|
|
|
@ -2627,10 +2627,11 @@ Subtitles
|
|||
particular subtitles in mkv files) are always assumed to be UTF-8.
|
||||
|
||||
|
||||
``--sub-fix-timing=<yes|no>``
|
||||
``--sub-fix-timing=<auto|yes|no>``
|
||||
Adjust subtitle timing is to remove minor gaps or overlaps between
|
||||
subtitles (if the difference is smaller than 210 ms, the gap or overlap
|
||||
is removed).
|
||||
is removed). The ``auto`` value enables this for non-text subtitles such
|
||||
as PGS or DVD (default: ``auto``).
|
||||
|
||||
``--sub-forced-events-only=<yes|no>``
|
||||
Enabling this displays only forced events within subtitle streams. Only
|
||||
|
|
|
@ -267,7 +267,8 @@ const struct m_sub_options mp_subtitle_sub_opts = {
|
|||
{"stretch-dvd-subs", OPT_BOOL(stretch_dvd_subs)},
|
||||
{"stretch-image-subs-to-screen", OPT_BOOL(stretch_image_subs)},
|
||||
{"image-subs-video-resolution", OPT_BOOL(image_subs_video_res)},
|
||||
{"sub-fix-timing", OPT_BOOL(sub_fix_timing)},
|
||||
{"sub-fix-timing", OPT_CHOICE(sub_fix_timing,
|
||||
{"auto", -1}, {"no", 0}, {"yes", 1})},
|
||||
{"sub-pos", OPT_FLOAT(sub_pos), M_RANGE(0.0, 150.0)},
|
||||
{"sub-gauss", OPT_FLOAT(sub_gauss), M_RANGE(0.0, 3.0)},
|
||||
{"sub-gray", OPT_BOOL(sub_gray)},
|
||||
|
@ -306,6 +307,7 @@ const struct m_sub_options mp_subtitle_sub_opts = {
|
|||
.defaults = &(OPT_BASE_STRUCT){
|
||||
.sub_visibility = true,
|
||||
.sec_sub_visibility = true,
|
||||
.sub_fix_timing = -1,
|
||||
.sub_pos = 100,
|
||||
.sub_speed = 1.0,
|
||||
.ass_enabled = true,
|
||||
|
|
|
@ -89,7 +89,7 @@ struct mp_subtitle_opts {
|
|||
bool stretch_dvd_subs;
|
||||
bool stretch_image_subs;
|
||||
bool image_subs_video_res;
|
||||
bool sub_fix_timing;
|
||||
int sub_fix_timing;
|
||||
bool sub_scale_by_window;
|
||||
bool sub_scale_with_window;
|
||||
bool ass_scale_with_window;
|
||||
|
|
|
@ -498,7 +498,7 @@ static long long find_timestamp(struct sd *sd, double pts)
|
|||
|
||||
long long ts = llrint(pts * 1000);
|
||||
|
||||
if (!sd->opts->sub_fix_timing || sd->opts->ass_style_override == 0)
|
||||
if (sd->opts->sub_fix_timing != 1 || sd->opts->ass_style_override == 0)
|
||||
return ts;
|
||||
|
||||
// Try to fix small gaps and overlaps.
|
||||
|
|
Loading…
Reference in New Issue