mirror of
https://github.com/mpv-player/mpv
synced 2025-04-01 23:00:41 +00:00
core: remove demux_mpg subtitle PTS hack
This code used to be part of the demux_mpg and vobsub specific code path. Then (just recently) the different code paths for subtitles were merged, so this code became active even for demux_lavf and demux_mkv. As far as I can tell, this code won't help much, and at least sd_lavc (which will be used for DVD subs and other potentially weird things) can deal with NOPTS values.
This commit is contained in:
parent
5ec611e7ba
commit
07c5327fa0
@ -1792,20 +1792,6 @@ static void update_subtitles(struct MPContext *mpctx, double refpts_tl)
|
||||
if (!d_sub->first)
|
||||
break;
|
||||
double subpts_s = ds_get_next_pts(d_sub);
|
||||
if (subpts_s == MP_NOPTS_VALUE) {
|
||||
// Try old method of getting PTS. This is only needed in the
|
||||
// DVD playback case with demux_mpg.
|
||||
// XXX This is wrong, sh_video->pts can be arbitrarily
|
||||
// much behind demuxing position. Unfortunately using
|
||||
// d_video->pts which would have been the simplest
|
||||
// improvement doesn't work because mpeg specific hacks
|
||||
// in video.c set d_video->pts to 0.
|
||||
float x = d_sub->pts - refpts_s;
|
||||
if (x > -20 && x < 20) // prevent missing subs on pts reset
|
||||
subpts_s = d_sub->pts;
|
||||
else
|
||||
subpts_s = curpts_s;
|
||||
}
|
||||
if (subpts_s > curpts_s) {
|
||||
mp_dbg(MSGT_CPLAYER, MSGL_DBG2,
|
||||
"Sub early: c_pts=%5.3f s_pts=%5.3f\n",
|
||||
@ -1817,16 +1803,11 @@ static void update_subtitles(struct MPContext *mpctx, double refpts_tl)
|
||||
if (non_interleaved && subpts_s > curpts_s + 1)
|
||||
break;
|
||||
}
|
||||
struct demux_packet pkt;
|
||||
struct demux_packet *orig = ds_get_packet_sub(d_sub);
|
||||
if (!orig)
|
||||
break;
|
||||
pkt = *orig;
|
||||
pkt.pts = subpts_s;
|
||||
struct demux_packet *pkt = ds_get_packet_sub(d_sub);
|
||||
mp_dbg(MSGT_CPLAYER, MSGL_V, "Sub: c_pts=%5.3f s_pts=%5.3f "
|
||||
"duration=%5.3f len=%d\n", curpts_s, pkt.pts, pkt.duration,
|
||||
pkt.len);
|
||||
sub_decode(dec_sub, &pkt);
|
||||
"duration=%5.3f len=%d\n", curpts_s, pkt->pts, pkt->duration,
|
||||
pkt->len);
|
||||
sub_decode(dec_sub, pkt);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user