parsePatchPeriod_(periods) {
    goog.asserts.assert(this.manifestPatchContext_.getBaseUris,
        'Must provide getBaseUris on manifestPatchContext_');

    /** @type {shaka.dash.DashParser.Context} */
    const context = {
      dynamic: this.manifestPatchContext_.type == 'dynamic',
      presentationTimeline: this.manifest_.presentationTimeline,
      period: null,
      periodInfo: null,
      adaptationSet: null,
      representation: null,
      bandwidth: 0,
      indexRangeWarningGiven: false,
      availabilityTimeOffset: this.manifestPatchContext_.availabilityTimeOffset,
      profiles: this.manifestPatchContext_.profiles,
      mediaPresentationDuration:
          this.manifestPatchContext_.mediaPresentationDuration,
      roles: null,
      urlParams: () => '',
    };

    const periodsAndDuration = this.parsePeriods_(context,
        this.manifestPatchContext_.getBaseUris, periods, /* newPeriod= */ true);

    return periodsAndDuration.periods;
  }
Ingests a full MPD period element from a patch update

@param {!shaka.extern.xml.Node} periods
@private