public void end_of_file(){
  _elapsed_time+=_timestamp_end - _timestamp_beg;
  long end=(long)Math.ceil(_timestamp_end);
  long addend=_file_timestamp_gap + _file_timestamp_gap_min - 1;
  _timestamp_ofs=(end + addend) / _file_timestamp_gap * _file_timestamp_gap;
  _timestamp_beg=_input_has_time_zero ? _timestamp_ofs : -1.0;
  _timestamp_end=_timestamp_beg;
}

public void end_of_file ( ) { _elapsed_time += _timestamp_end - _timestamp_beg ; long end = ( long ) Math . ceil ( _timestamp_end ) ; long addend = _file_timestamp_gap + _file_timestamp_gap_min - 1 ; _timestamp_ofs = ( end + addend ) / _file_timestamp_gap * _file_timestamp_gap ; _timestamp_beg = _input_has_time_zero ? _timestamp_ofs : - 1.0 ; _timestamp_end = _timestamp_beg ; }
this must be called after each file or input stream has been read to maintain accurate timestamps .
