player: don't show A/V desync message in non-sense situations

last_av_difference can be MP_NOPTS_VALUE under certain circumstances
(like no video timestamp yet). This triggered the desync message,
because fabs(MP_NOPTS_VALUE) is quite a large value. We don't want to
show a message in this situation.
This commit is contained in:
wm4 2015-04-24 22:15:31 +02:00
parent ad11d877a5
commit 8d31ad85ec
1 changed files with 2 additions and 2 deletions

View File

@ -724,9 +724,9 @@ static void update_avsync_after_frame(struct MPContext *mpctx)
mpctx->last_av_difference = a_pos - mpctx->video_pts + opts->audio_delay; mpctx->last_av_difference = a_pos - mpctx->video_pts + opts->audio_delay;
if (mpctx->time_frame > 0) if (mpctx->time_frame > 0)
mpctx->last_av_difference += mpctx->time_frame * opts->playback_speed; mpctx->last_av_difference += mpctx->time_frame * opts->playback_speed;
if (a_pos == MP_NOPTS_VALUE || mpctx->video_pts == MP_NOPTS_VALUE) if (a_pos == MP_NOPTS_VALUE || mpctx->video_pts == MP_NOPTS_VALUE) {
mpctx->last_av_difference = MP_NOPTS_VALUE; mpctx->last_av_difference = MP_NOPTS_VALUE;
if (fabs(mpctx->last_av_difference) > 0.5 && !mpctx->drop_message_shown) { } else if (fabs(mpctx->last_av_difference) > 0.5 && !mpctx->drop_message_shown) {
MP_WARN(mpctx, "%s", av_desync_help_text); MP_WARN(mpctx, "%s", av_desync_help_text);
mpctx->drop_message_shown = true; mpctx->drop_message_shown = true;
} }