Index: mplayer.c =================================================================== --- mplayer.c (revision 27776) +++ mplayer.c (working copy) @@ -2085,12 +2085,18 @@ static int sleep_until_update(float *time_frame, float *aq_sleep_time) { int frame_time_remaining = 0; + float delay = 0.0; current_module="calc_sleep_time"; *time_frame -= GetRelativeTime(); // reset timer - if (mpctx->sh_audio && !mpctx->d_audio->eof) { - float delay = mpctx->audio_out->get_delay(); + if (mpctx->sh_audio) { + // If there still are audio in the buffers, + // we should continue to sync, especially as + // the audio demuxer may be EOF temporarily (TV acquisition). + delay = mpctx->audio_out->get_delay(); + } + if (delay > 0.0) { mp_dbg(MSGT_AVSYNC, MSGL_DBG2, "delay=%f\n", delay); if (autosync) {