mirror of https://github.com/mpv-player/mpv
video: do not use MP_NOPTS_VALUE for A/V difference
There's no need for this, it just creates more corner cases. Also always reset it on seeks etc..
This commit is contained in:
parent
58e7d0a30b
commit
f3dcd85150
|
@ -505,8 +505,6 @@ static int mp_property_avsync(void *ctx, struct m_property *prop,
|
|||
MPContext *mpctx = ctx;
|
||||
if (!mpctx->d_audio || !mpctx->d_video)
|
||||
return M_PROPERTY_UNAVAILABLE;
|
||||
if (mpctx->last_av_difference == MP_NOPTS_VALUE)
|
||||
return M_PROPERTY_UNAVAILABLE;
|
||||
if (action == M_PROPERTY_PRINT) {
|
||||
*(char **)arg = talloc_asprintf(NULL, "%7.3f", mpctx->last_av_difference);
|
||||
return M_PROPERTY_OK;
|
||||
|
|
|
@ -207,10 +207,7 @@ static void print_status(struct MPContext *mpctx)
|
|||
|
||||
// A-V sync
|
||||
if (mpctx->d_audio && mpctx->d_video && mpctx->sync_audio_to_video) {
|
||||
if (mpctx->last_av_difference != MP_NOPTS_VALUE)
|
||||
saddf(&line, " A-V:%7.3f", mpctx->last_av_difference);
|
||||
else
|
||||
saddf(&line, " A-V: ???");
|
||||
saddf(&line, " A-V:%7.3f", mpctx->last_av_difference);
|
||||
if (fabs(mpctx->total_avsync_change) > 0.05)
|
||||
saddf(&line, " ct:%7.3f", mpctx->total_avsync_change);
|
||||
}
|
||||
|
|
|
@ -215,6 +215,7 @@ void reset_video_state(struct MPContext *mpctx)
|
|||
mpctx->video_pts = MP_NOPTS_VALUE;
|
||||
mpctx->video_next_pts = MP_NOPTS_VALUE;
|
||||
mpctx->total_avsync_change = 0;
|
||||
mpctx->last_av_difference = 0;
|
||||
mpctx->dropped_frames_total = 0;
|
||||
mpctx->dropped_frames = 0;
|
||||
mpctx->drop_message_shown = 0;
|
||||
|
@ -737,7 +738,7 @@ static void update_avsync_after_frame(struct MPContext *mpctx)
|
|||
if (mpctx->time_frame > 0)
|
||||
mpctx->last_av_difference += mpctx->time_frame * opts->playback_speed;
|
||||
if (a_pos == MP_NOPTS_VALUE || mpctx->video_pts == MP_NOPTS_VALUE) {
|
||||
mpctx->last_av_difference = MP_NOPTS_VALUE;
|
||||
mpctx->last_av_difference = 0;
|
||||
} else if (fabs(mpctx->last_av_difference) > 0.5 && !mpctx->drop_message_shown) {
|
||||
MP_WARN(mpctx, "%s", av_desync_help_text);
|
||||
mpctx->drop_message_shown = true;
|
||||
|
|
Loading…
Reference in New Issue