library/core/src/main/java/com/google/android/exoplayer2/video/FixedFrameRateEstimator.java
/**
   * Called when the renderer's output format changes.
   *
   * @param formatFrameRate The format's frame rate, or {@link Format#NO_VALUE} if unknown.
   */
Called when the renderer's output format changes.
@param formatFrameRate The format's frame rate, or  Format#NO_VALUE if unknown.
Called when the renderer ' s output format changes . @param formatFrameRate The format ' s frame rate or Format#NO_VALUE if unknown .
public void onFormatChanged(float formatFrameRate) {
    if (this.formatFrameRate != formatFrameRate) {
      reset();
    } else {
      switchToCandidateMatcherWhenSynced = true;
    }
    this.formatFrameRate = formatFrameRate;
  }
public void onFormatChanged ( float formatFrameRate ) { if ( this . formatFrameRate != formatFrameRate ) { reset ( ) ; } else { switchToCandidateMatcherWhenSynced = true ; } this . formatFrameRate = formatFrameRate ; }
Called when the renderer's output format changes.
Called when the renderer ' s output format changes .
// The format frame rate is only used to determine to what extent the estimator should be reset. // Frame rate estimates are always calculated directly from frame presentation timestamps. // Keep the current matcher, but prefer to switch to a new matcher once synced even if the // current one does not lose sync. This avoids an issue where the current matcher would // continue to be used if a frame rate change has occurred that's too small to trigger sync // loss (e.g., a change from 30fps to 29.97fps) and which is not represented in the format // frame rates (e.g., because they're unset or only have integer precision).