static resolveTime_(parentElement, rateInfo, start, end) {
    const parentTime = shaka.text.TtmlTextParser.parseTime_(
        parentElement, rateInfo);

    if (start == null) {
      // No start time of your own?  Inherit from the parent.
      start = parentTime.start;
    } else {
      // Otherwise, the start time is relative to the parent's start time.
      if (parentTime.start != null) {
        start += parentTime.start;
      }
    }

    if (end == null) {
      // No end time of your own?  Inherit from the parent.
      end = parentTime.end;
    } else {
      // Otherwise, the end time is relative to the parent's _start_ time.
      // This is not a typo.  Both times are relative to the parent's _start_.
      if (parentTime.start != null) {
        end += parentTime.start;
      }
    }

    return {start, end};
  }
Factor parent/ancestor time attributes into the parsed time of a
child/descendent.

@param {!shaka.extern.xml.Node} parentElement
@param {!shaka.text.TtmlTextParser.RateInfo_} rateInfo
@param {?number} start The child's start time
@param {?number} end The child's end time
@return {{start: ?number, end: ?number}}
@private